* Add _getTemplates function
* Add template renderer to display pages
* Add AnkiNoteBuilder to Display
* Update AnkiTemplatesController to directly use TemplateRenderer
* Remove old APIs
* Add inputs to options.scanning
* Update CSS for mouse buttons
* Update list counters
* Set up HTML/CSS
* Add input controller
* Use new inputs
* Include mouse buttons
* Update how button inputs are detected
* Add index/empty fields to the input details object
* Update none check for scanning modifier
* Remove old settings
* Remove unused global
* Add hideDelay option
* Add _clearSelection
* Use hideDelay
* Prevent repeated delayed selection clears
* Fix popup hide timer being cleared when the cursor is moved into the frame
* Template helper updates
* Add pitch data to exported field formatting data
* Reuse note data
* Add no-op
* Set up pitch accent templates
* Refactor version update functions
* Implement upgrade process for new Anki templates
* Consistency
* Update README and anki.js to have matching markers
* Add page exit prevention functionality to SettingsController
* Update dictionary controller to use new page exit prevention system
* Remove page-exit-prevention.js
* Move "yomichan" object setup to a separate file
* Update script imports
* Align message handlers
* Rename Yomichan.prepare to Yomichan.ready
* Add new prepare function
* Improve isExtensionUrl
* Add support for injecting stylesheets into a custom parent node
* Add api.getStylesheetContent
* Add support for injecting a CSS file's content
* Add usePopupShadowDom option
* Use a per-parentNode cache
* Add support for using a shadow DOM wrapper around popup iframes
* Ignore the popup container instead of the frame
* Use new CrossFrameAPI for popup proxy communication
* Remove use of old cross-frame communication classes
* Remove use of old cross-frame communication files
* Make the crossFrame object a member of the api object
* Update how optionsContext is assigned to targets
* Add getSettings and modifySettings
* Merge DOMSettingsBinder into GenericSettingController
* Remove old DOMSettingsBinder
* Update how fields are populated
* Update how fields are modified after a model change
* Update how _onFieldsChanged assigns fields
* Update how spinner is hidden
* Remove jQuery usage
* Use non-jQuery events
* Remove debug info
* Trigger onOptionsUpdated instead of formWrite when profile changes
* Update how Anki field changes are observed
* Update how general.enableClipboardPopups setting is changed
* Change where ankiTemplatesUpdateValue occurs
* Change where onDictionaryOptionsChanged occurs
* Remove unused global declarations
* Remove stray data attribute
* wip
* add environment class
* use Environment class
* use Environment for scanning modifier options
* remove Environment in favor of API
* await promise
* use modifier symbols on macOS
* fix key separator issues
* if else to switch
* simplify variable names
* Convert mixed japanese.js to utility class
* Copy functions from bg/js/japanese.js into mixed/js/japanese.js
* Remove bg/js/japanese.js
* Make wanakana dependency optional
* Update tests
* update Frontend options on modifier change
* add modifier key profile condition
* use select element for modifier condition value
* support "is" and "is not" modifier key conditions
* use plural
* remove dead null check
it's never null in that function
* pass element on rather than assigning to this
* rename event
* remove Firefox OS key to Meta detection
* hide Meta from dropdown on Firefox
* move input type