* Update PopupMenu event prevention
* Use vars for button padding
* Add button-inner-label style
* Add input-button button
* Update display of scope selection
* Add hidden argument text input field
* Remove unnecessary calls
* Display a strike through the enabled button when no scopes are selected
* Add part of speech info to headwords
* Expose parts of speech to Anki template rendering
* Expose parts of speech
* Update pitch accent categories
* Update docs
* Add part-of-speech
* Update options and tests
* Update markers
* Update test data
* Update test data
* Move translator.js
* Create new version of Translator
* Update Backend
* Update DictionaryDataUtil
* Update DisplayGenerator
* Create AnkiNoteDataCreator
* Replace AnkiNoteData with AnkiNoteDataCreator
* Update tests
* Remove AnkiNoteData
* Update test data
* Remove translator-old.js
* Add TypeScript interface definitions for the new translator data format
* Expose modifier keys
* Add updateMenuItems
* Don't close menu if shift key is held
* Add _createMenuItems
* Simplification
* Maintain a list of open popup menus
* Expose expression/reading
* Reuse existing items
* Update menu after a cache update
* Update menu position
* Fix content security policy for images
* Add createBlobFromBase64Content to MediaUtil
* Update MediaLoader to use MediaUtil
* Use blob URLs when importing dictionaries
* Update VM's URL to support createObjectURL and revokeObjectURL
* Fix test
* Move function
* Add _onSearchClick function
* Move _onSearchClick after event prevention
* Prevent search if selection is changed before a click occurs
* Remove redundant language assignment
* Segment furigana from DisplayGenerator
* Remove furiganaSegments from translator data
* Add backwards compatibility for furiganaSegments
* Update tests
* Make Deinflector._ruleTypes private
* Add createDeinflection helper
* Remove unnecessary field assignments from Deinflector
Move them to Translator instead
* Make invokeContentOrigin public
* Move display resizer functionality into a new class: DisplayResizer
* Simplify field names
* Use parent frame instead of content origin
* Remove unused
* Refactor _groupTerms and add doc comment
* Update where expression/reading is acquired from
* Add doc comment
* Add isPrimary field
* Update test data
* Add definition which has "isPrimary": false definitions
* Merge ungrouped characters
* Update iteration
* Fix incorrect code point handling
* Simplify text
* Specify language
* Update how parsed status is represented
* Add api.textHasJapaneseCharacters
* Add support for empty query
* Add support for showing the query parser for TextSourceElement
with content that does not start with Japanese text
* Update implementation of _buildTermMeta
* Remove old implementation
* Expose dictionaryPriority on frequencies and pitch accents
* Update how meta data is generated; add index
* Update order
* Update names
* Expose expressionIndex as part of pitch/frequency data
* Implement meta sorting
* Update test data
* Improve grouping for inflection and expression styles
* kanji-link => expression-kanji-link
* Remove unnecessary entry-header2 and entry-header3
* Move tag list into header for consistency with term definitions
* Move styles
* Add clear
* Add valid field
* Add isNoteDataValid function
* Update _areDefinitionsAddableForcedValue to return proper valid values
* Refactor isAnkiConnected check
* Force canAdd to false if not valid
* Add card icon to audio menu items
* Update cache data format
* Create _getCacheItem
* Add _playAudioFromSource function
* Implement default card audio info
* Specify exact audio to download when an override is assigned
* Abstract using _getMenuItemSourceInfo
* Update downloadability check
* Update the main audio menu buttons to also assign the default source
* Create Logger class and log instance
* Replace yomichan.logWarning with log.warn
* Replace yomichan.logError with log.error
* Replace yomichan.log with log.log
* Update the Yomichan class to use the global log object
* Update lint rules
* Move bg/js/anki.js to js/comm/anki.js
* Move bg/js/mecab.js to js/comm/mecab.js
* Move bg/js/search-main.js to js/display/search-main.js
* Move bg/js/template-patcher.js to js/templates/template-patcher.js
* Move bg/js/template-renderer-frame-api.js to js/templates/template-renderer-frame-api.js
* Move bg/js/template-renderer-frame-main.js to js/templates/template-renderer-frame-main.js
* Move bg/js/template-renderer-proxy.js to js/templates/template-renderer-proxy.js
* Move bg/js/template-renderer.js to js/templates/template-renderer.js
* Move bg/js/media-utility.js to js/media/media-utility.js
* Move bg/js/native-simple-dom-parser.js to js/dom/native-simple-dom-parser.js
* Move bg/js/simple-dom-parser.js to js/dom/simple-dom-parser.js
* Move bg/js/audio-downloader.js to js/media/audio-downloader.js
* Move bg/js/deinflector.js to js/language/deinflector.js
* Move bg/js/backend.js to js/background/backend.js
* Move bg/js/translator.js to js/language/translator.js
* Move bg/js/search-display-controller.js to js/display/search-display-controller.js
* Move bg/js/request-builder.js to js/background/request-builder.js
* Move bg/js/text-source-map.js to js/general/text-source-map.js
* Move bg/js/clipboard-reader.js to js/comm/clipboard-reader.js
* Move bg/js/clipboard-monitor.js to js/comm/clipboard-monitor.js
* Move bg/js/query-parser.js to js/display/query-parser.js
* Move bg/js/profile-conditions.js to js/background/profile-conditions.js
* Move bg/js/dictionary-database.js to js/language/dictionary-database.js
* Move bg/js/dictionary-importer.js to js/language/dictionary-importer.js
* Move bg/js/anki-note-builder.js to js/data/anki-note-builder.js
* Move bg/js/anki-note-data.js to js/data/anki-note-data.js
* Move bg/js/database.js to js/data/database.js
* Move bg/js/json-schema.js to js/data/json-schema.js
* Move bg/js/options.js to js/data/options-util.js
* Move bg/js/background-main.js to js/background/background-main.js
* Move bg/js/permissions-util.js to js/data/permissions-util.js
* Move bg/js/context-main.js to js/pages/action-popup-main.js
* Move bg/js/generic-page-main.js to js/pages/generic-page-main.js
* Move bg/js/info-main.js to js/pages/info-main.js
* Move bg/js/permissions-main.js to js/pages/permissions-main.js
* Move bg/js/welcome-main.js to js/pages/welcome-main.js
* Move fg/js/frame-ancestry-handler.js to js/comm/frame-ancestry-handler.js
* Move fg/js/frame-offset-forwarder.js to js/comm/frame-offset-forwarder.js
* Move fg/js/dom-text-scanner.js to js/dom/dom-text-scanner.js
* Move fg/js/text-source-element.js to js/dom/text-source-element.js
* Move fg/js/text-source-range.js to js/dom/text-source-range.js
* Move fg/js/float-main.js to js/display/popup-main.js
* Move fg/js/content-script-main.js to js/app/content-script-main.js
* Move fg/js/frontend.js to js/app/frontend.js
* Move fg/js/popup-factory.js to js/app/popup-factory.js
* Move fg/js/popup-proxy.js to js/app/popup-proxy.js
* Move fg/js/popup-window.js to js/app/popup-window.js
* Move fg/js/popup.js to js/app/popup.js