* avoid HTML comments, simplify replacement logic ([#409](https://github.com/nolanlawson/emoji-picker-element/issues/409)) ([ce950ff](https://github.com/nolanlawson/emoji-picker-element/commit/ce950ff740292e6914ed0744b5587db2f3dcc1f7))
* minor refactor to reduce code size ([#406](https://github.com/nolanlawson/emoji-picker-element/issues/406)) ([55872ba](https://github.com/nolanlawson/emoji-picker-element/commit/55872ba99647425008b5b047960893cca9f88713))
* add more benchmarks ([#389](https://github.com/nolanlawson/emoji-picker-element/issues/389)) ([6eb3089](https://github.com/nolanlawson/emoji-picker-element/commit/6eb3089dc666124a96d2bf7c1039672bdde77593))
* replace Svelte with vanilla JS ([#381](https://github.com/nolanlawson/emoji-picker-element/issues/381)) ([5699285](https://github.com/nolanlawson/emoji-picker-element/commit/56992858c00513f5ee95025a55a20cea8c4b5f72))
* run all benchmark tests locally ([#391](https://github.com/nolanlawson/emoji-picker-element/issues/391)) ([750e849](https://github.com/nolanlawson/emoji-picker-element/commit/750e8493e33a67ecd81424fa6307787b1468acba))
* wait for initial load in benchmarks ([#390](https://github.com/nolanlawson/emoji-picker-element/issues/390)) ([8a4e4d6](https://github.com/nolanlawson/emoji-picker-element/commit/8a4e4d658686f24bd50b561dd755f2a64980593a))
* use correct "red heart" in default favorites ([#385](https://github.com/nolanlawson/emoji-picker-element/issues/385)) ([baf2908](https://github.com/nolanlawson/emoji-picker-element/commit/baf29084c1031a01a2534f3ad4c72131a9a4497f))
* add support for emoji v15.1 ([#383](https://github.com/nolanlawson/emoji-picker-element/issues/383)) ([2bf5aff](https://github.com/nolanlawson/emoji-picker-element/commit/2bf5aff0104586557915c692932ec5e8b2389cd0))
* avoid newer JS syntax to support old Safari ([#380](https://github.com/nolanlawson/emoji-picker-element/issues/380)) ([77e6e35](https://github.com/nolanlawson/emoji-picker-element/commit/77e6e35bd5e738e43e1f94b418e44228a3cb8c36))
* put annotation in title/aria-label ([#369](https://github.com/nolanlawson/emoji-picker-element/issues/369)) ([bd2004b](https://github.com/nolanlawson/emoji-picker-element/commit/bd2004b25d46554b6ecc46ea817f0233b1ec6bc5)), closes [#366](https://github.com/nolanlawson/emoji-picker-element/issues/366)
* make "People and body" category work in Firefox content script ([#357](https://github.com/nolanlawson/emoji-picker-element/issues/357)) ([b829d4c](https://github.com/nolanlawson/emoji-picker-element/commit/b829d4c8ce546cbe9bef03fb35e4d8ffa412c9cf))
### Performance Improvements
* hoist global check ([#358](https://github.com/nolanlawson/emoji-picker-element/issues/358)) ([60eeb8e](https://github.com/nolanlawson/emoji-picker-element/commit/60eeb8ef17287d96298539343fb75b93f8580b17))
* add support for emoji v15 ([#333](https://github.com/nolanlawson/emoji-picker-element/issues/333)) ([c68ecf5](https://github.com/nolanlawson/emoji-picker-element/commit/c68ecf515b4e6f73674172f4e38ed9513d5f4169))
* added Hindi & Indonesian text ([#322](https://github.com/nolanlawson/emoji-picker-element/issues/322)) ([db7021a](https://github.com/nolanlawson/emoji-picker-element/commit/db7021aaadb7d47aa8f148418aa9c228bf08b6ba))
* preserve state if component disconnects then immediately reconnects ([#313](https://github.com/nolanlawson/emoji-picker-element/issues/313)) ([5a8fc19](https://github.com/nolanlawson/emoji-picker-element/commit/5a8fc19b961ffbd02aa58a9b8cb41e0034f5aeda)), closes [#312](https://github.com/nolanlawson/emoji-picker-element/issues/312)
* used dark colors for scrollbar in dark mode ([#294](https://github.com/nolanlawson/emoji-picker-element/issues/294)) ([af959ae](https://github.com/nolanlawson/emoji-picker-element/commit/af959ae7fc1801f91b8291ea82009d9e7443cf44))
* rename zh-CN to match other intl files ([#288](https://github.com/nolanlawson/emoji-picker-element/issues/288)) ([27ef3fd](https://github.com/nolanlawson/emoji-picker-element/commit/27ef3fd4fdab112375a20d57e7da640e92b9fc7e))
* newer emoji and flags on Firefox on Windows ([#271](https://github.com/nolanlawson/emoji-picker-element/issues/271)) ([c45e3e9](https://github.com/nolanlawson/emoji-picker-element/commit/c45e3e9b4368d36716eaf325217b81c2c29905c5))
* fix db undefined when adding/removing element ([#227](https://github.com/nolanlawson/emoji-picker-element/issues/227)) ([fa24942](https://github.com/nolanlawson/emoji-picker-element/commit/fa2494223dbc241e18fab764f7ec1a659618d8a9)), closes [#225](https://github.com/nolanlawson/emoji-picker-element/issues/225)
* respect the hidden attribute ([#221](https://github.com/nolanlawson/emoji-picker-element/issues/221)) ([b3a5138](https://github.com/nolanlawson/emoji-picker-element/commit/b3a51381194af1f9ec6031a0afb1af39b4444a6f))
### Performance Improvements
* use relaxed IDB transactions and manually commit ([#218](https://github.com/nolanlawson/emoji-picker-element/issues/218)) ([d732610](https://github.com/nolanlawson/emoji-picker-element/commit/d732610e7fede78df4e9bbc6ce964690d2fe4adf))
* support RTL direction ([#213](https://github.com/nolanlawson/emoji-picker-element/issues/213)) ([7875925](https://github.com/nolanlawson/emoji-picker-element/commit/7875925be09d4a851edcea48c0f897d139398264)), closes [#212](https://github.com/nolanlawson/emoji-picker-element/issues/212)
* update favorites only on mount ([#210](https://github.com/nolanlawson/emoji-picker-element/issues/210)) ([567da73](https://github.com/nolanlawson/emoji-picker-element/commit/567da7316aa0aae29b3e853c99c0a4e73f94bb1d)), closes [#205](https://github.com/nolanlawson/emoji-picker-element/issues/205)
* use IDBObjectStore.clear ([#208](https://github.com/nolanlawson/emoji-picker-element/issues/208)) ([ed0ffac](https://github.com/nolanlawson/emoji-picker-element/commit/ed0ffac1e12634f1e7a5cf40045853ffb1c77654))
* use Object.prototype.hasOwnProperty ([#198](https://github.com/nolanlawson/emoji-picker-element/issues/198)) ([b8302b2](https://github.com/nolanlawson/emoji-picker-element/commit/b8302b215bbecd8e4f1aeb5e9095c5e672b9ede2))
* make database read-only ([#174](https://github.com/nolanlawson/emoji-picker-element/issues/174)) ([ede65df](https://github.com/nolanlawson/emoji-picker-element/commit/ede65df9f330b3c7622bb754803f08e3f4ebed4c))
* render custom category if only one exists ([#173](https://github.com/nolanlawson/emoji-picker-element/issues/173)) ([7a2e2c1](https://github.com/nolanlawson/emoji-picker-element/commit/7a2e2c141ad29b5aac4ccd6362e25ce2378a38e7)), closes [#172](https://github.com/nolanlawson/emoji-picker-element/issues/172)
* use our own custom element implementation ([#170](https://github.com/nolanlawson/emoji-picker-element/issues/170)) ([d63c1f8](https://github.com/nolanlawson/emoji-picker-element/commit/d63c1f8c0b0af93bc309c392be91a9d45d4a240b)), closes [#176](https://github.com/nolanlawson/emoji-picker-element/issues/176)
* determine emoji support in reverse order ([#160](https://github.com/nolanlawson/emoji-picker-element/issues/160)) ([2603055](https://github.com/nolanlawson/emoji-picker-element/commit/2603055d1a9983fdaf3217ea753c3e77485e7638))
* fix getEmojiByShortcode when shortcodes are optional ([#98](https://github.com/nolanlawson/emoji-picker-element/issues/98)) ([f4e7ad8](https://github.com/nolanlawson/emoji-picker-element/commit/f4e7ad8bdf063b0ca07dbbd3f9d1dcf50138de8a))
### Performance Improvements
* reduce bundle size by optimizing HTML/CSS a bit ([#97](https://github.com/nolanlawson/emoji-picker-element/issues/97)) ([3bf8225](https://github.com/nolanlawson/emoji-picker-element/commit/3bf8225b41f3cee9a8ec37cc00afd8f32a1a6499))
* simplify baseline emoji html ([#96](https://github.com/nolanlawson/emoji-picker-element/issues/96)) ([4f03bfc](https://github.com/nolanlawson/emoji-picker-element/commit/4f03bfc961145a95ebfa2deb3d6b5c23ded60d37))
* use batch cursor for full DB scan ([#94](https://github.com/nolanlawson/emoji-picker-element/issues/94)) ([e5b1750](https://github.com/nolanlawson/emoji-picker-element/commit/e5b17505722ea0800431b5b9b53d7d59d03142ab))
* fix short tokens in getEmojiByShortcode ([#90](https://github.com/nolanlawson/emoji-picker-element/issues/90)) ([992ac10](https://github.com/nolanlawson/emoji-picker-element/commit/992ac10164a46b28d87c348894cdd12d8eaaa015))
* use emoji-picker-element-data, make shortcodes optional ([#75](https://github.com/nolanlawson/emoji-picker-element/issues/75)) ([f40beed](https://github.com/nolanlawson/emoji-picker-element/commit/f40beeddd10c70392041ec9b045c299488beaa9a))
* emoticon is not a required field ([#73](https://github.com/nolanlawson/emoji-picker-element/issues/73)) ([c72bb44](https://github.com/nolanlawson/emoji-picker-element/commit/c72bb44a28ef7844a886beb8900caa5cc198af66))
* fix types for addEventListener and removeEventListener ([#61](https://github.com/nolanlawson/emoji-picker-element/issues/61)) ([f6b3d83](https://github.com/nolanlawson/emoji-picker-element/commit/f6b3d834b89a0be7d86258b3a762469ca82431f3))
* use @^ for versions ([#72](https://github.com/nolanlawson/emoji-picker-element/issues/72)) ([8261856](https://github.com/nolanlawson/emoji-picker-element/commit/82618562f1cc283a86e7939fce331705519ca9f6)), closes [#71](https://github.com/nolanlawson/emoji-picker-element/issues/71)
* use consistent HTML for custom emoji ([#64](https://github.com/nolanlawson/emoji-picker-element/issues/64)) ([60f8c04](https://github.com/nolanlawson/emoji-picker-element/commit/60f8c04e4c8dd82a1bebc997eb972651ac5a101a))
### Performance Improvements
* use lazy image loading ([#65](https://github.com/nolanlawson/emoji-picker-element/issues/65)) ([73d7639](https://github.com/nolanlawson/emoji-picker-element/commit/73d76399f77c86bb9f43e67925c0fde8d5935861))
* fix emoji support detection on Chrome on Mac ([#49](https://github.com/nolanlawson/emoji-picker-element/issues/49)) ([0a9e3bb](https://github.com/nolanlawson/emoji-picker-element/commit/0a9e3bb0734fbb868324dfaaf0e591b84ce6bccf))
* fix ZWJ detection on windows ([#50](https://github.com/nolanlawson/emoji-picker-element/issues/50)) ([a467685](https://github.com/nolanlawson/emoji-picker-element/commit/a4676858801f51057c5831e5fed07b5fadf4748b))
* support attribute format for some properties ([#33](https://github.com/nolanlawson/emoji-picker-element/issues/33)) ([83e516c](https://github.com/nolanlawson/emoji-picker-element/commit/83e516ce2168ec32e661e962d1429c989cf7b7e8)), closes [#7](https://github.com/nolanlawson/emoji-picker-element/issues/7)
* collapse skin tone picker on blur ([#17](https://github.com/nolanlawson/emoji-picker-element/issues/17)) ([b551e12](https://github.com/nolanlawson/emoji-picker-element/commit/b551e1276be80d06e3a48fbb98e506c7dba9d5e7)), closes [#16](https://github.com/nolanlawson/emoji-picker-element/issues/16)
* tabs are not aria-selected in search mode ([#18](https://github.com/nolanlawson/emoji-picker-element/issues/18)) ([4737d02](https://github.com/nolanlawson/emoji-picker-element/commit/4737d023b7d01a8280a028d49f594f46743a4059))
* remove blur/focusout event for now ([#15](https://github.com/nolanlawson/emoji-picker-element/issues/15)) ([d0bb1fd](https://github.com/nolanlawson/emoji-picker-element/commit/d0bb1fd51dc66ebfdd3d817f00335966773e7ec2)), closes [#14](https://github.com/nolanlawson/emoji-picker-element/issues/14)