-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathpicmo_5.2.0.js
1 lines (1 loc) · 90.3 KB
/
picmo_5.2.0.js
1
function e(e,t,o,i){return new(o||(o=Promise))((function(s,n){function r(e){try{c(i.next(e))}catch(e){n(e)}}function a(e){try{c(i.throw(e))}catch(e){n(e)}}function c(e){var t;e.done?s(e.value):(t=e.value,t instanceof o?t:new o((function(e){e(t)}))).then(r,a)}c((i=i.apply(e,t||[])).next())}))}function t(e,t,o,i){if("a"===o&&!i)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof t?e!==t||!i:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===o?i:"a"===o?i.call(e):i?i.value:t.get(e)}function o(e,t,o,i,s){if("m"===i)throw new TypeError("Private method is not writable");if("a"===i&&!s)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof t?e!==t||!s:!t.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===i?s.call(e,o):s?s.value=o:t.set(e,o),o}async function i(e,t={}){const{local:o=!1,version:i="latest",cdnUrl:s,...n}=t,r=function(e,t,o){let i=`https://cdn.jsdelivr.net/npm/emojibase-data@${t}/${e}`;return"function"==typeof o?i=o(e,t):"string"==typeof o&&(i=`${o}/${e}`),i}(e,i,s),a=o?localStorage:sessionStorage,c=`emojibase/${i}/${e}`,l=a.getItem(c);if(l)return Promise.resolve(JSON.parse(l));const h=await fetch(r,{credentials:"omit",mode:"cors",redirect:"error",...n});if(!h.ok)throw new Error("Failed to load Emojibase dataset.");const d=await h.json();try{a.setItem(c,JSON.stringify(d))}catch{}return d}const s={discord:"joypixels",slack:"iamcal"};async function n(e,t,o){var n;return i(`${e}/shortcodes/${null!==(n=s[t])&&void 0!==n?n:t}.json`,o)}function r(e,t){if(0===t.length)return e;const o=new Set(e.shortcodes);return t.forEach((t=>{const i=t[e.hexcode];Array.isArray(i)?i.forEach((e=>o.add(e))):i&&o.add(i)})),e.shortcodes=[...o],e.skins&&e.skins.forEach((e=>{r(e,t)})),e}async function a(e,t={}){const{compact:o=!1,flat:s=!1,shortcodes:a=[],...c}=t,l=await i(`${e}/${o?"compact":"data"}.json`,c);let h=[];return a.length>0&&(h=await Promise.all(a.map((t=>{let o;if(t.includes("/")){const[e,i]=t.split("/");o=n(e,i,c)}else o=n(e,t,c);return o.catch((()=>({})))})))),s?function(e,t=[]){const o=[];return e.forEach((e=>{if(e.skins){const{skins:i,...s}=e;o.push(r(s,t)),i.forEach((e=>{const i={...e};s.tags&&(i.tags=[...s.tags]),o.push(r(i,t))}))}else o.push(r(e,t))})),o}(l,h):function(e,t){return 0===t.length||e.forEach((e=>{r(e,t)})),e}(l,h)}async function c(e,t){return i(`${e}/messages.json`,t)}function l(e,t){const o=e.target.closest("[data-emoji]");if(o){const e=t.find((e=>e.emoji===o.dataset.emoji));if(e)return e}return null}function h(e){var t;const o=null===(t=window.matchMedia)||void 0===t?void 0:t.call(window,"(prefers-reduced-motion: reduce)");return e.animate&&!(null==o?void 0:o.matches)}function d(e,t){return e.toLowerCase().includes(t.toLowerCase())}function m(e,t){let o=null;return()=>{o||(o=window.setTimeout((()=>{e(),o=null}),t))}}function u(e,t){let o=null;return(...i)=>{o&&window.clearTimeout(o),o=window.setTimeout((()=>{e(...i),o=null}),t)}}function g(e,t,o,i){return h(i)&&e.animate?e.animate(t,o).finished:Promise.resolve()}function v(e){var t;const o=document.createElement("template");return o.innerHTML=e,null===(t=o.content)||void 0===t?void 0:t.firstElementChild}function p(t){return e(this,void 0,void 0,(function*(){const e=(new TextEncoder).encode(t),o=yield crypto.subtle.digest("SHA-256",e);return Array.from(new Uint8Array(o)).map((e=>e.toString(16).padStart(2,"0"))).join("")}))}function y(t){return e(this,void 0,void 0,(function*(){try{return(yield fetch(t,{method:"HEAD"})).headers.get("etag")}catch(e){return null}}))}function f(t,o,i){return e(this,void 0,void 0,(function*(){const e=i||o(t);return yield e.open(),e}))}function w(t,o,i){return e(this,void 0,void 0,(function*(){const s=yield f(t,o,i),[n,r]=yield function(e){const{emojisUrl:t,messagesUrl:o}=function(e,t){const o=`https://cdn.jsdelivr.net/npm/emojibase-data@${"latest"}/${t}`;return{emojisUrl:`${o}/data.json`,messagesUrl:`${o}/messages.json`}}(0,e);try{return Promise.all([y(t),y(o)])}catch(e){return Promise.all([null,null])}}(t);if(yield s.isPopulated())n&&r&&(yield function(t,o,i){return e(this,void 0,void 0,(function*(){let e;try{e=yield t.getEtags()}catch(t){e={}}const{storedEmojisEtag:s,storedMessagesEtag:n}=e;if(i!==n||o!==s){const[e,s]=yield Promise.all([c(t.locale),a(t.locale)]);yield t.populate({groups:e.groups,emojis:s,emojisEtag:o,messagesEtag:i})}}))}(s,n,r));else{const[e,o]=yield Promise.all([c(t),a(t)]);yield s.populate({groups:e.groups,emojis:o,emojisEtag:n,messagesEtag:r})}return s}))}function b(t,o,i,s,n){return e(this,void 0,void 0,(function*(){const r=yield f(t,o,n),a=yield p(s);return(yield r.isPopulated())&&!(yield function(t,o){return e(this,void 0,void 0,(function*(){const e=yield t.getHash();return o!==e}))}(r,a))||(yield r.populate({groups:i.groups,emojis:s,hash:a})),r}))}function _(t,o,i,s,n){return e(this,void 0,void 0,(function*(){return i&&s?b(t,o,i,s,n):w(t,o,n)}))}function j(e,t){e.deleteDatabase(t)}class C{constructor(){this.handleKeyDown=this.handleKeyDown.bind(this)}activate(e){this.rootElement=e,this.rootElement.addEventListener("keydown",this.handleKeyDown)}deactivate(){var e;null===(e=this.rootElement)||void 0===e||e.removeEventListener("keydown",this.handleKeyDown)}get focusableElements(){return this.rootElement.querySelectorAll('input, [tabindex="0"]')}get lastFocusableElement(){return this.focusableElements[this.focusableElements.length-1]}get firstFocusableElement(){return this.focusableElements[0]}checkFocus(e,t,o){e.target===t&&(o.focus(),e.preventDefault())}handleKeyDown(e){"Tab"===e.key&&this.checkFocus(e,e.shiftKey?this.firstFocusableElement:this.lastFocusableElement,e.shiftKey?this.lastFocusableElement:this.firstFocusableElement)}}class k{constructor({template:e,classes:t,parent:o}){this.isDestroyed=!1,this.appEvents={},this.uiEvents=[],this.uiElements={},this.ui={},this.template=e,this.classes=t,this.parent=o,this.keyBindingHandler=this.keyBindingHandler.bind(this)}initialize(){this.bindAppEvents()}setCustomEmojis(e){this.customEmojis=e}setEvents(e){this.events=e}setPickerId(e){this.pickerId=e}emit(e,...t){this.events.emit(e,...t)}setI18n(e){this.i18n=e}setRenderer(e){this.renderer=e}setEmojiData(e){this.emojiDataPromise=e,e.then((e=>{this.emojiData=e}))}updateEmojiData(e){this.emojiData=e,this.emojiDataPromise=Promise.resolve(e)}setOptions(e){this.options=e}renderSync(e={}){return this.el=this.template.renderSync(Object.assign({classes:this.classes,i18n:this.i18n,pickerId:this.pickerId},e)),this.postRender(),this.el}render(t={}){return e(this,void 0,void 0,(function*(){return yield this.emojiDataPromise,this.el=yield this.template.renderAsync(Object.assign({classes:this.classes,i18n:this.i18n,pickerId:this.pickerId},t)),this.postRender(),this.el}))}postRender(){this.bindUIElements(),this.bindKeyBindings(),this.bindUIEvents(),this.scheduleShowAnimation()}bindAppEvents(){Object.keys(this.appEvents).forEach((e=>{this.events.on(e,this.appEvents[e],this)})),this.events.on("data:ready",this.updateEmojiData,this)}unbindAppEvents(){Object.keys(this.appEvents).forEach((e=>{this.events.off(e,this.appEvents[e])})),this.events.off("data:ready",this.updateEmojiData)}keyBindingHandler(e){const t=this.keyBindings[e.key];t&&t.call(this,e)}bindKeyBindings(){this.keyBindings&&this.el.addEventListener("keydown",this.keyBindingHandler)}unbindKeyBindings(){this.keyBindings&&this.el.removeEventListener("keydown",this.keyBindingHandler)}bindUIElements(){this.ui=Object.keys(this.uiElements).reduce(((e,t)=>Object.assign(Object.assign({},e),{[t]:this.el.querySelector(this.uiElements[t])})),{})}bindUIEvents(){this.uiEvents.forEach((e=>{e.handler=e.handler.bind(this);(e.target?this.ui[e.target]:this.el).addEventListener(e.event,e.handler,e.options)}))}unbindUIEvents(){this.uiEvents.forEach((e=>{(e.target?this.ui[e.target]:this.el).removeEventListener(e.event,e.handler)}))}destroy(){this.unbindAppEvents(),this.unbindUIEvents(),this.unbindKeyBindings(),this.el.remove(),this.isDestroyed=!0}scheduleShowAnimation(){if(this.parent){const e=new MutationObserver((t=>{const[o]=t;"childList"===o.type&&o.addedNodes[0]===this.el&&(h(this.options)&&this.animateShow&&this.animateShow(),e.disconnect)}));e.observe(this.parent,{childList:!0})}}static childEvent(e,t,o,i={}){return{target:e,event:t,handler:o,options:i}}static uiEvent(e,t,o={}){return{event:e,handler:t,options:o}}static byClass(e){return`.${e}`}}function E(e,t){void 0===t&&(t={});var o=t.insertAt;if(e&&"undefined"!=typeof document){var i=document.head||document.getElementsByTagName("head")[0],s=document.createElement("style");s.type="text/css","top"===o&&i.firstChild?i.insertBefore(s,i.firstChild):i.appendChild(s),s.styleSheet?s.styleSheet.cssText=e:s.appendChild(document.createTextNode(e))}}var x={icon:"icons_icon__YUQ3S","icon-small":"icons_icon-small__fEcU6","icon-medium":"icons_icon-medium__e5lKJ","icon-large":"icons_icon-large__t5mwg","icon-2x":"icons_icon-2x__on8is","icon-3x":"icons_icon-3x__RBDYg","icon-4x":"icons_icon-4x__UjvXP","icon-5x":"icons_icon-5x__zRG9K","icon-8x":"icons_icon-8x__PsCPS","icon-10x":"icons_icon-10x__WLjku"};E(".icons_icon__YUQ3S {\n width: 1.25em;\n height: 1em;\n fill: currentColor;\n}\n\n.icons_icon-small__fEcU6 {\n font-size: 0.8em;\n}\n\n.icons_icon-medium__e5lKJ {\n font-size: 1em;\n}\n\n.icons_icon-large__t5mwg {\n font-size: 1.25em;\n}\n\n.icons_icon-2x__on8is {\n font-size: 2em;\n}\n\n.icons_icon-3x__RBDYg {\n font-size: 3em;\n}\n\n.icons_icon-4x__UjvXP {\n font-size: 4em;\n}\n\n.icons_icon-5x__zRG9K {\n font-size: 5em;\n}\n\n.icons_icon-8x__PsCPS {\n font-size: 8em;\n}\n\n.icons_icon-10x__WLjku {\n font-size: 10em;\n}");const P={clock:'<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M256 512C114.6 512 0 397.4 0 256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256C512 397.4 397.4 512 256 512zM232 256C232 264 236 271.5 242.7 275.1L338.7 339.1C349.7 347.3 364.6 344.3 371.1 333.3C379.3 322.3 376.3 307.4 365.3 300L280 243.2V120C280 106.7 269.3 96 255.1 96C242.7 96 231.1 106.7 231.1 120L232 256z"/></svg>',flag:'<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M64 496C64 504.8 56.75 512 48 512h-32C7.25 512 0 504.8 0 496V32c0-17.75 14.25-32 32-32s32 14.25 32 32V496zM476.3 0c-6.365 0-13.01 1.35-19.34 4.233c-45.69 20.86-79.56 27.94-107.8 27.94c-59.96 0-94.81-31.86-163.9-31.87C160.9 .3055 131.6 4.867 96 15.75v350.5c32-9.984 59.87-14.1 84.85-14.1c73.63 0 124.9 31.78 198.6 31.78c31.91 0 68.02-5.971 111.1-23.09C504.1 355.9 512 344.4 512 332.1V30.73C512 11.1 495.3 0 476.3 0z"/></svg>',frown:'<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M0 256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256zM176.4 240C194 240 208.4 225.7 208.4 208C208.4 190.3 194 176 176.4 176C158.7 176 144.4 190.3 144.4 208C144.4 225.7 158.7 240 176.4 240zM336.4 176C318.7 176 304.4 190.3 304.4 208C304.4 225.7 318.7 240 336.4 240C354 240 368.4 225.7 368.4 208C368.4 190.3 354 176 336.4 176zM259.9 369.4C288.8 369.4 316.2 375.2 340.6 385.5C352.9 390.7 366.7 381.3 361.4 369.1C344.8 330.9 305.6 303.1 259.9 303.1C214.3 303.1 175.1 330.8 158.4 369.1C153.1 381.3 166.1 390.6 179.3 385.4C203.7 375.1 231 369.4 259.9 369.4L259.9 369.4z"/></svg>',gamepad:'<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><path d="M448 64H192C85.96 64 0 149.1 0 256s85.96 192 192 192h256c106 0 192-85.96 192-192S554 64 448 64zM247.1 280h-32v32c0 13.2-10.78 24-23.98 24c-13.2 0-24.02-10.8-24.02-24v-32L136 279.1C122.8 279.1 111.1 269.2 111.1 256c0-13.2 10.85-24.01 24.05-24.01L167.1 232v-32c0-13.2 10.82-24 24.02-24c13.2 0 23.98 10.8 23.98 24v32h32c13.2 0 24.02 10.8 24.02 24C271.1 269.2 261.2 280 247.1 280zM431.1 344c-22.12 0-39.1-17.87-39.1-39.1s17.87-40 39.1-40s39.1 17.88 39.1 40S454.1 344 431.1 344zM495.1 248c-22.12 0-39.1-17.87-39.1-39.1s17.87-40 39.1-40c22.12 0 39.1 17.88 39.1 40S518.1 248 495.1 248z"/></svg>',lightbulb:'<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><path d="M112.1 454.3c0 6.297 1.816 12.44 5.284 17.69l17.14 25.69c5.25 7.875 17.17 14.28 26.64 14.28h61.67c9.438 0 21.36-6.401 26.61-14.28l17.08-25.68c2.938-4.438 5.348-12.37 5.348-17.7L272 415.1h-160L112.1 454.3zM191.4 .0132C89.44 .3257 16 82.97 16 175.1c0 44.38 16.44 84.84 43.56 115.8c16.53 18.84 42.34 58.23 52.22 91.45c.0313 .25 .0938 .5166 .125 .7823h160.2c.0313-.2656 .0938-.5166 .125-.7823c9.875-33.22 35.69-72.61 52.22-91.45C351.6 260.8 368 220.4 368 175.1C368 78.61 288.9-.2837 191.4 .0132zM192 96.01c-44.13 0-80 35.89-80 79.1C112 184.8 104.8 192 96 192S80 184.8 80 176c0-61.76 50.25-111.1 112-111.1c8.844 0 16 7.159 16 16S200.8 96.01 192 96.01z"/></svg>',mug:'<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><path d="M512 32H120c-13.25 0-24 10.75-24 24L96.01 288c0 53 43 96 96 96h192C437 384 480 341 480 288h32c70.63 0 128-57.38 128-128S582.6 32 512 32zM512 224h-32V96h32c35.25 0 64 28.75 64 64S547.3 224 512 224zM560 416h-544C7.164 416 0 423.2 0 432C0 458.5 21.49 480 48 480h480c26.51 0 48-21.49 48-48C576 423.2 568.8 416 560 416z"/></svg>',plane:'<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path d="M482.3 192C516.5 192 576 221 576 256C576 292 516.5 320 482.3 320H365.7L265.2 495.9C259.5 505.8 248.9 512 237.4 512H181.2C170.6 512 162.9 501.8 165.8 491.6L214.9 320H112L68.8 377.6C65.78 381.6 61.04 384 56 384H14.03C6.284 384 0 377.7 0 369.1C0 368.7 .1818 367.4 .5398 366.1L32 256L.5398 145.9C.1818 144.6 0 143.3 0 142C0 134.3 6.284 128 14.03 128H56C61.04 128 65.78 130.4 68.8 134.4L112 192H214.9L165.8 20.4C162.9 10.17 170.6 0 181.2 0H237.4C248.9 0 259.5 6.153 265.2 16.12L365.7 192H482.3z"/></svg>',robot:'<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><path d="M9.375 233.4C3.375 239.4 0 247.5 0 256v128c0 8.5 3.375 16.62 9.375 22.62S23.5 416 32 416h32V224H32C23.5 224 15.38 227.4 9.375 233.4zM464 96H352V32c0-17.62-14.38-32-32-32S288 14.38 288 32v64H176C131.8 96 96 131.8 96 176V448c0 35.38 28.62 64 64 64h320c35.38 0 64-28.62 64-64V176C544 131.8 508.3 96 464 96zM256 416H192v-32h64V416zM224 296C201.9 296 184 278.1 184 256S201.9 216 224 216S264 233.9 264 256S246.1 296 224 296zM352 416H288v-32h64V416zM448 416h-64v-32h64V416zM416 296c-22.12 0-40-17.88-40-40S393.9 216 416 216S456 233.9 456 256S438.1 296 416 296zM630.6 233.4C624.6 227.4 616.5 224 608 224h-32v192h32c8.5 0 16.62-3.375 22.62-9.375S640 392.5 640 384V256C640 247.5 636.6 239.4 630.6 233.4z"/></svg>',sad:'<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512">\n <defs>\n <radialGradient gradientUnits="userSpaceOnUse" cy="10%" id="gradient-0">\n <stop offset="0" style="stop-color: hsl(50, 100%, 50%);"/>\n <stop offset="1" style="stop-color: hsl(50, 100%, 60%);"/>\n </radialGradient>\n </defs>\n <ellipse style="stroke: rgb(0, 0, 0); fill: rgba(0, 0, 0, 0.59);" cx="172.586" cy="207.006" rx="39.974" ry="39.974"/>\n <ellipse style="stroke: rgb(0, 0, 0); fill: rgba(0, 0, 0, 0.59);" cx="334.523" cy="207.481" rx="39.974" ry="39.974"/>\n <ellipse style="stroke: rgb(0, 0, 0); fill: rgba(0, 0, 0, 0.59);" cx="313.325" cy="356.208" rx="91.497" ry="59.893"/>\n <path style="fill: rgb(85, 167, 255);" d="M 159.427 274.06 L 102.158 363.286 L 124.366 417.011 L 160.476 423.338 L 196.937 414.736 L 218.502 375.214"></path>\n <path style="fill: url(#gradient-0);" d="M256 0C397.4 0 512 114.6 512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256C0 114.6 114.6 0 256 0zM256 352C290.9 352 323.2 367.8 348.3 394.9C354.3 401.4 364.4 401.7 370.9 395.7C377.4 389.7 377.7 379.6 371.7 373.1C341.6 340.5 301 320 256 320C247.2 320 240 327.2 240 336C240 344.8 247.2 352 256 352H256zM208 369C208 349 179.6 308.6 166.4 291.3C163.2 286.9 156.8 286.9 153.6 291.3C140.6 308.6 112 349 112 369C112 395 133.5 416 160 416C186.5 416 208 395 208 369H208zM303.6 208C303.6 225.7 317.1 240 335.6 240C353.3 240 367.6 225.7 367.6 208C367.6 190.3 353.3 176 335.6 176C317.1 176 303.6 190.3 303.6 208zM207.6 208C207.6 190.3 193.3 176 175.6 176C157.1 176 143.6 190.3 143.6 208C143.6 225.7 157.1 240 175.6 240C193.3 240 207.6 225.7 207.6 208z" />\n</svg>',search:'<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M500.3 443.7l-119.7-119.7c27.22-40.41 40.65-90.9 33.46-144.7C401.8 87.79 326.8 13.32 235.2 1.723C99.01-15.51-15.51 99.01 1.724 235.2c11.6 91.64 86.08 166.7 177.6 178.9c53.8 7.189 104.3-6.236 144.7-33.46l119.7 119.7c15.62 15.62 40.95 15.62 56.57 0C515.9 484.7 515.9 459.3 500.3 443.7zM79.1 208c0-70.58 57.42-128 128-128s128 57.42 128 128c0 70.58-57.42 128-128 128S79.1 278.6 79.1 208z"/></svg>',smiley:'<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M0 256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256zM256.3 331.8C208.9 331.8 164.1 324.9 124.5 312.8C112.2 309 100.2 319.7 105.2 331.5C130.1 390.6 188.4 432 256.3 432C324.2 432 382.4 390.6 407.4 331.5C412.4 319.7 400.4 309 388.1 312.8C348.4 324.9 303.7 331.8 256.3 331.8H256.3zM176.4 176C158.7 176 144.4 190.3 144.4 208C144.4 225.7 158.7 240 176.4 240C194 240 208.4 225.7 208.4 208C208.4 190.3 194 176 176.4 176zM336.4 240C354 240 368.4 225.7 368.4 208C368.4 190.3 354 176 336.4 176C318.7 176 304.4 190.3 304.4 208C304.4 225.7 318.7 240 336.4 240z"/></svg>',symbols:'<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M500.3 7.251C507.7 13.33 512 22.41 512 31.1V175.1C512 202.5 483.3 223.1 447.1 223.1C412.7 223.1 383.1 202.5 383.1 175.1C383.1 149.5 412.7 127.1 447.1 127.1V71.03L351.1 90.23V207.1C351.1 234.5 323.3 255.1 287.1 255.1C252.7 255.1 223.1 234.5 223.1 207.1C223.1 181.5 252.7 159.1 287.1 159.1V63.1C287.1 48.74 298.8 35.61 313.7 32.62L473.7 .6198C483.1-1.261 492.9 1.173 500.3 7.251H500.3zM74.66 303.1L86.5 286.2C92.43 277.3 102.4 271.1 113.1 271.1H174.9C185.6 271.1 195.6 277.3 201.5 286.2L213.3 303.1H239.1C266.5 303.1 287.1 325.5 287.1 351.1V463.1C287.1 490.5 266.5 511.1 239.1 511.1H47.1C21.49 511.1-.0019 490.5-.0019 463.1V351.1C-.0019 325.5 21.49 303.1 47.1 303.1H74.66zM143.1 359.1C117.5 359.1 95.1 381.5 95.1 407.1C95.1 434.5 117.5 455.1 143.1 455.1C170.5 455.1 191.1 434.5 191.1 407.1C191.1 381.5 170.5 359.1 143.1 359.1zM440.3 367.1H496C502.7 367.1 508.6 372.1 510.1 378.4C513.3 384.6 511.6 391.7 506.5 396L378.5 508C372.9 512.1 364.6 513.3 358.6 508.9C352.6 504.6 350.3 496.6 353.3 489.7L391.7 399.1H336C329.3 399.1 323.4 395.9 321 389.6C318.7 383.4 320.4 376.3 325.5 371.1L453.5 259.1C459.1 255 467.4 254.7 473.4 259.1C479.4 263.4 481.6 271.4 478.7 278.3L440.3 367.1zM116.7 219.1L19.85 119.2C-8.112 90.26-6.614 42.31 24.85 15.34C51.82-8.137 93.26-3.642 118.2 21.83L128.2 32.32L137.7 21.83C162.7-3.642 203.6-8.137 231.6 15.34C262.6 42.31 264.1 90.26 236.1 119.2L139.7 219.1C133.2 225.6 122.7 225.6 116.7 219.1H116.7z"/></svg>',tree:'<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M413.8 447.1L256 448l0 31.99C256 497.7 241.8 512 224.1 512c-17.67 0-32.1-14.32-32.1-31.99l0-31.99l-158.9-.0099c-28.5 0-43.69-34.49-24.69-56.4l68.98-79.59H62.22c-25.41 0-39.15-29.8-22.67-49.13l60.41-70.85H89.21c-21.28 0-32.87-22.5-19.28-37.31l134.8-146.5c10.4-11.3 28.22-11.3 38.62-.0033l134.9 146.5c13.62 14.81 2.001 37.31-19.28 37.31h-10.77l60.35 70.86c16.46 19.34 2.716 49.12-22.68 49.12h-15.2l68.98 79.59C458.7 413.7 443.1 447.1 413.8 447.1z"/></svg>',users:'<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><path d="M224 256c70.7 0 128-57.31 128-128S294.7 0 224 0C153.3 0 96 57.31 96 128S153.3 256 224 256zM274.7 304H173.3c-95.73 0-173.3 77.6-173.3 173.3C0 496.5 15.52 512 34.66 512H413.3C432.5 512 448 496.5 448 477.3C448 381.6 370.4 304 274.7 304zM479.1 320h-73.85C451.2 357.7 480 414.1 480 477.3C480 490.1 476.2 501.9 470 512h138C625.7 512 640 497.6 640 479.1C640 391.6 568.4 320 479.1 320zM432 256C493.9 256 544 205.9 544 144S493.9 32 432 32c-25.11 0-48.04 8.555-66.72 22.51C376.8 76.63 384 101.4 384 128c0 35.52-11.93 68.14-31.59 94.71C372.7 243.2 400.8 256 432 256z"/></svg>',warning:'<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512">\n <defs>\n <radialGradient id="radial" cy="85%">\n <stop offset="20%" stop-color="var(--color-secondary)" />\n <stop offset="100%" stop-color="var(--color-primary)" />\n </radialGradient>\n </defs>\n <path fill="url(\'#radial\')" d="M506.3 417l-213.3-364c-16.33-28-57.54-28-73.98 0l-213.2 364C-10.59 444.9 9.849 480 42.74 480h426.6C502.1 480 522.6 445 506.3 417zM232 168c0-13.25 10.75-24 24-24S280 154.8 280 168v128c0 13.25-10.75 24-23.1 24S232 309.3 232 296V168zM256 416c-17.36 0-31.44-14.08-31.44-31.44c0-17.36 14.07-31.44 31.44-31.44s31.44 14.08 31.44 31.44C287.4 401.9 273.4 416 256 416z" />\n</svg>',xmark:'<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 320 512"><path d="M310.6 361.4c12.5 12.5 12.5 32.75 0 45.25C304.4 412.9 296.2 416 288 416s-16.38-3.125-22.62-9.375L160 301.3L54.63 406.6C48.38 412.9 40.19 416 32 416S15.63 412.9 9.375 406.6c-12.5-12.5-12.5-32.75 0-45.25l105.4-105.4L9.375 150.6c-12.5-12.5-12.5-32.75 0-45.25s32.75-12.5 45.25 0L160 210.8l105.4-105.4c12.5-12.5 32.75-12.5 45.25 0s12.5 32.75 0 45.25l-105.4 105.4L310.6 361.4z"/></svg>'},S={recents:"clock","smileys-emotion":"smiley","people-body":"users","animals-nature":"tree","food-drink":"mug",activities:"gamepad","travel-places":"plane",objects:"lightbulb",symbols:"symbols",flags:"flag",custom:"robot"};function z(e,t){if(!(e in P))return console.warn(`Unknown icon: "${e}"`),document.createElement("div");const o=function(e,t){const o=v(t);return o.dataset.icon=e,o.classList.add(x.icon),o}(e,P[e]);return t&&o.classList.add(x[`icon-${t}`]),o}var L,F,T,$,A,M;const I="sync";class V{constructor(e,t={}){L.add(this),F.set(this,void 0),T.set(this,void 0),o(this,F,e,"f"),o(this,T,t.mode||I,"f")}renderSync(e={}){const o=v(t(this,F,"f").call(this,e));return t(this,L,"m",M).call(this,o,e),t(this,L,"m",A).call(this,o),t(this,L,"m",$).call(this,o,e),o}renderAsync(o={}){return e(this,void 0,void 0,(function*(){const e=v(t(this,F,"f").call(this,o));return t(this,L,"m",M).call(this,e,o),t(this,L,"m",A).call(this,e),yield t(this,L,"m",$).call(this,e,o),e}))}render(e){return"sync"===t(this,T,"f")?this.renderSync(e):this.renderAsync(e)}}F=new WeakMap,T=new WeakMap,L=new WeakSet,$=function(t,o){return e(this,void 0,void 0,(function*(){const e=t.querySelectorAll("[data-view]"),i=[];for(const t of e){const e=o[t.dataset.view];e?"sync"!==t.dataset.render?i.push(e.render().then((e=>(t.replaceWith(e),e)))):t.replaceWith(e.renderSync()):t.remove()}return Promise.all(i)}))},A=function(e){e.querySelectorAll("i[data-icon]").forEach((e=>{const{icon:t,size:o}=e.dataset;e.replaceWith(z(t,o))}))},M=function(e,t){return e.querySelectorAll("[data-placeholder]").forEach((e=>{const o=e.dataset.placeholder;if(o&&t[o]){const i=t[o];e.replaceWith(...[i].flat())}else console.warn(`Missing placeholder element for key "${o}"`)})),e};var R={imagePlaceholder:"common_imagePlaceholder__FRWLu",placeholder:"common_placeholder__qe-fo",shine:"common_shine__tUVG2"};E('@keyframes common_shine__tUVG2 {\n to {\n transform: translateX(100%);\n }\n}\n.common_imagePlaceholder__FRWLu {\n width: 2rem;\n height: 2rem;\n border-radius: 50%;\n}\n\n.common_placeholder__qe-fo {\n background: #DDDBDD;\n position: relative;\n}\n.common_placeholder__qe-fo::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n transform: translateX(-100%);\n background-image: linear-gradient(90deg, rgba(255, 255, 255, 0) 0, rgba(255, 255, 255, 0.2) 20%, rgba(255, 255, 255, 0.5) 60%, rgba(255, 255, 255, 0));\n animation: common_shine__tUVG2 2s infinite;\n content: "";\n}');const D=new V((({classes:e})=>`\n <div class="${e.placeholder} ${e.imagePlaceholder}"></div>\n`));class B extends k{constructor({classNames:e}={}){super({template:D,classes:R}),this.classNames=e}load(e){const t=document.createElement("img");this.classNames&&(t.className=this.classNames),t.addEventListener("load",(()=>{this.el.replaceWith(t)}),{once:!0}),Promise.resolve(e).then((e=>t.src=e))}renderSync(){if(super.renderSync(),this.classNames){this.classNames.split(" ").forEach((e=>this.el.classList.add(e)))}return this.el}}var H={customEmoji:"custom_customEmoji__Kspg6"};E(".custom_customEmoji__Kspg6 {\n width: 1em;\n height: 1em;\n}");class O{renderElement(e){return{content:e}}renderImage(e="",t){const o=new B({classNames:e});o.renderSync();return{content:o,resolver:()=>(o.load(t()),o.el)}}doRender(e,t,o){if(e.custom)return this.renderCustom(e,t,o);const{content:i,resolver:s}=this.render(e,o),n=i instanceof HTMLElement?i:i.el;return s&&s(),n}doEmit(e){return e.custom?this.emitCustom(e):this.emit(e)}emitCustom({url:e,label:t,emoji:o,data:i}){return{url:e,label:t,emoji:o,data:i}}renderCustom(e,t,o=""){const i=[H.customEmoji,o].join(" ").trim(),{content:s,resolver:n}=this.renderImage(i,(()=>e.url)),r=s instanceof HTMLElement?s:s.el;return n&&n(),r}}const N=new V((({emoji:e})=>`<span>${e}</span>`));class U extends O{render(e){return this.renderElement(N.renderSync({emoji:e.emoji}))}emit({emoji:e,hexcode:t,label:o}){return{emoji:e,hexcode:t,label:o}}}E(".themes_lightTheme__mMNem {\n color-scheme: light;\n --accent-color: #0066CC;\n --background-color: #ffffff;\n --border-color: #000000;\n --category-name-background-color: #f9fafb;\n --category-name-button-color: #999999;\n --category-name-text-color: hsl(214, 30%, 50%);\n --category-tab-active-background-color: rgba(255, 255, 255, 0.6);\n --category-tab-active-color: var(--accent-color);\n --category-tab-color: #666;\n --category-tab-highlight-background-color: rgba(0, 0, 0, 0.15);\n --error-color-dark: hsl(0, 100%, 45%);\n --error-color: hsl(0, 100%, 40%);\n --focus-indicator-background-color: hsl(198, 65%, 85%);\n --focus-indicator-color: #333333;\n --hover-background-color: transparent;\n --placeholder-background-color: #cccccc;\n --preview-background-color: var(--secondary-background-color);\n --scrollbar-background-color: var(--background-color);\n --scrollbar-color: rgba(0, 0, 0, 0.75);\n --search-background-color: #f9fafb;\n --search-focus-background-color: #ffffff;\n --search-icon-color: #999999;\n --search-placeholder-color: #71717a;\n --secondary-background-color: #e2e8f0;\n --secondary-text-color: #666666;\n --tag-background-color: rgba(162, 190, 245, 0.3);\n --text-color: #000000;\n --variant-popup-background-color: #ffffff;\n}\n\n.themes_darkTheme__qgrZP {\n color-scheme: dark;\n --accent-color: #0066CC;\n --background-color: #333333;\n --border-color: #666666;\n --category-name-background-color: #333333;\n --category-name-button-color: #eeeeee;\n --category-name-text-color: #ffffff;\n --category-tab-active-background-color: #000000;\n --category-tab-active-color: var(--accent-color);\n --category-tab-color: #cccccc;\n --category-tab-highlight-background-color: #4A4A4A;\n --error-color-dark: hsl(0, 7%, 3%);\n --error-color: hsl(0, 30%, 60%);\n --focus-indicator-background-color: transparent;\n --focus-indicator-color: transparent;\n --hover-background-color: transparent;\n --image-placeholder-color: #ffffff;\n --placeholder-background-color: #666666;\n --search-background-color: #71717a;\n --search-focus-background-color: #52525b;\n --search-icon-color: #cccccc;\n --search-placeholder-color: #d4d4d8;\n --secondary-background-color: #000000 ;\n --secondary-text-color: #999999;\n --tag-background-color: rgba(162, 190, 245, 0.3);\n --text-color: #ffffff;\n --variant-popup-background-color: #333333;\n}\n\n.themes_autoTheme__tik-v {\n color-scheme: light;\n --accent-color: #0066CC;\n --background-color: #f9fafb;\n --border-color: #cccccc;\n --category-name-background-color: #f9fafb;\n --category-name-button-color: #999999;\n --category-name-text-color: hsl(214, 30%, 50%);\n --category-tab-active-background-color: rgba(255, 255, 255, 0.6);\n --category-tab-active-color: var(--accent-color);\n --category-tab-color: #666;\n --category-tab-highlight-background-color: rgba(0, 0, 0, 0.15);\n --error-color-dark: hsl(0, 100%, 45%);\n --error-color: hsl(0, 100%, 40%);\n --focus-indicator-background-color: hsl(198, 65%, 85%);\n --focus-indicator-color: #333333;\n --hover-background-color: transparent;\n --placeholder-background-color: #cccccc;\n --preview-background-color: var(--secondary-background-color);\n --scrollbar-background-color: var(--background-color);\n --scrollbar-color: rgba(0, 0, 0, 0.75);\n --search-background-color: #f9fafb;\n --search-focus-background-color: #ffffff;\n --search-icon-color: #999999;\n --search-placeholder-color: #71717a;\n --secondary-background-color: #e2e8f0;\n --secondary-text-color: #666666;\n --tag-background-color: rgba(162, 190, 245, 0.3);\n --text-color: #000000;\n --variant-popup-background-color: #ffffff;\n}\n\n@media (prefers-color-scheme: dark) {\n .themes_autoTheme__tik-v {\n color-scheme: dark;\n --accent-color: #0066CC;\n --background-color: #333333;\n --border-color: #666666;\n --category-name-background-color: #333333;\n --category-name-button-color: #eeeeee;\n --category-name-text-color: #ffffff;\n --category-tab-active-background-color: #000000;\n --category-tab-active-color: var(--accent-color);\n --category-tab-color: #cccccc;\n --category-tab-highlight-background-color: #4A4A4A;\n --error-color-dark: hsl(0, 7%, 3%);\n --error-color: hsl(0, 30%, 60%);\n --focus-indicator-background-color: hsl(0, 0%, 50%);\n --focus-indicator-color: #999999;\n --hover-background-color: transparent;\n --image-placeholder-color: #ffffff;\n --placeholder-background-color: #666666;\n --search-background-color: #71717a;\n --search-focus-background-color: #52525b;\n --search-icon-color: #cccccc;\n --search-placeholder-color: #d4d4d8;\n --secondary-background-color: #000000 ;\n --secondary-text-color: #999999;\n --tag-background-color: rgba(162, 190, 245, 0.3);\n --text-color: #ffffff;\n --variant-popup-background-color: #333333;\n }\n}");const{autoTheme:K,lightTheme:q,darkTheme:W}={lightTheme:"themes_lightTheme__mMNem",darkTheme:"themes_darkTheme__qgrZP",autoTheme:"themes_autoTheme__tik-v"};var G={"categories.activities":"Activities","categories.animals-nature":"Animals & Nature","categories.custom":"Custom","categories.flags":"Flags","categories.food-drink":"Food & Drink","categories.objects":"Objects","categories.people-body":"People","categories.recents":"Recently Used","categories.smileys-emotion":"Smileys","categories.symbols":"Symbols","categories.travel-places":"Travel & Places","error.load":"Failed to load emojis","recents.clear":"Clear recent emojis","recents.none":"You haven't selected any emojis yet.",retry:"Try again","search.clear":"Clear Search","search.error":"Error — Try again","search.notFound":"No results found",search:"Search"};const J=[(e,t)=>("1F91D"===e.hexcode&&t<14&&(e.skins=[]),e),(e,t)=>(e.skins&&(e.skins=e.skins.filter((e=>!e.version||e.version<=t))),e)];function Y(e,t){return e.filter((e=>null!==function(e,t){return J.some((o=>null===o(e,t)))?null:e}(e,t)))}function Q(e){var t;return{emoji:e.emoji,label:e.label,tags:e.tags,skins:null===(t=e.skins)||void 0===t?void 0:t.map((e=>Q(e))),order:e.order,custom:!1,hexcode:e.hexcode,version:e.version}}function X(e,t,o){var i;return!(o&&!o.some((t=>t.order===e.group)))&&(d(e.label,t)||(null===(i=e.tags)||void 0===i?void 0:i.some((e=>d(e,t)))))}class Z{constructor(e="en"){this.locale=e}}function ee(e){return new te(e)}ee.deleteDatabase=e=>new Promise(((t,o)=>{const i=indexedDB.deleteDatabase(`PicMo-${e}`);i.addEventListener("success",t),i.addEventListener("error",o)}));class te extends Z{open(){return e(this,void 0,void 0,(function*(){const t=indexedDB.open(`PicMo-${this.locale}`);return new Promise(((o,i)=>{t.addEventListener("success",(e=>{var t;this.db=null===(t=e.target)||void 0===t?void 0:t.result,o()})),t.addEventListener("error",i),t.addEventListener("upgradeneeded",(t=>e(this,void 0,void 0,(function*(){var e;this.db=null===(e=t.target)||void 0===e?void 0:e.result,this.db.createObjectStore("category",{keyPath:"order"});const o=this.db.createObjectStore("emoji",{keyPath:"emoji"});o.createIndex("category","group"),o.createIndex("version","version"),this.db.createObjectStore("meta")}))))}))}))}delete(){return e(this,void 0,void 0,(function*(){this.close();const e=indexedDB.deleteDatabase(`PicMo-${this.locale}`);yield this.waitForRequest(e)}))}close(){this.db.close()}getEmojiCount(){return e(this,void 0,void 0,(function*(){const e=this.db.transaction("emoji","readonly").objectStore("emoji");return(yield this.waitForRequest(e.count())).target.result}))}getEtags(){return e(this,void 0,void 0,(function*(){const e=this.db.transaction("meta","readonly").objectStore("meta"),[t,o]=yield Promise.all([this.waitForRequest(e.get("emojisEtag")),this.waitForRequest(e.get("messagesEtag"))]);return{storedEmojisEtag:t.target.result,storedMessagesEtag:o.target.result}}))}setMeta(t){return e(this,void 0,void 0,(function*(){const e=this.db.transaction("meta","readwrite"),o=e.objectStore("meta");return new Promise((i=>{e.oncomplete=i;Object.keys(t).filter(Boolean).forEach((e=>{o.put(t[e],e)}))}))}))}getHash(){return e(this,void 0,void 0,(function*(){const e=this.db.transaction("meta","readonly").objectStore("meta");return(yield this.waitForRequest(e.get("hash"))).target.result}))}isPopulated(){return e(this,void 0,void 0,(function*(){const e=this.db.transaction("category","readonly").objectStore("category");return(yield this.waitForRequest(e.count())).target.result>0}))}populate({groups:t,emojis:o,emojisEtag:i,messagesEtag:s,hash:n}){return e(this,void 0,void 0,(function*(){yield this.removeAllObjects("category","emoji");const e=[this.addObjects("category",t),this.addObjects("emoji",o),this.setMeta({emojisEtag:i,messagesEtag:s,hash:n})];yield Promise.all(e)}))}getCategories(t){var o;return e(this,void 0,void 0,(function*(){const e=this.db.transaction("category","readonly").objectStore("category");let i=(yield this.waitForRequest(e.getAll())).target.result.filter((e=>"component"!==e.key));if(t.showRecents&&i.unshift({key:"recents",order:-1}),(null===(o=t.custom)||void 0===o?void 0:o.length)&&i.push({key:"custom",order:10}),t.categories){const e=t.categories;i=i.filter((t=>e.includes(t.key))),i.sort(((t,o)=>e.indexOf(t.key)-e.indexOf(o.key)))}else i.sort(((e,t)=>e.order-t.order));return i}))}getEmojis(t,o){return e(this,void 0,void 0,(function*(){const e=this.db.transaction("emoji","readonly").objectStore("emoji").index("category");return Y((yield this.waitForRequest(e.getAll(t.order))).target.result.filter((e=>e.version<=o)).sort(((e,t)=>null!=e.order&&null!=t.order?e.order-t.order:0)).map(Q),o)}))}searchEmojis(t,o,i,s){return e(this,void 0,void 0,(function*(){const e=[];return new Promise(((n,r)=>{const a=this.db.transaction("emoji","readonly").objectStore("emoji").openCursor();a.addEventListener("success",(r=>{var a;const c=null===(a=r.target)||void 0===a?void 0:a.result;if(!c)return n([...Y(e,i),...o.filter((e=>X(e,t)))]);const l=c.value;X(l,t,s)&&l.version<=i&&e.push(Q(l)),c.continue()})),a.addEventListener("error",(e=>{r(e)}))}))}))}waitForRequest(t){return e(this,void 0,void 0,(function*(){return new Promise(((e,o)=>{t.onsuccess=e,t.onerror=o}))}))}withTransaction(e,t="readwrite",o){return new Promise(((i,s)=>{const n=this.db.transaction(e,t);n.oncomplete=i,n.onerror=s,o(n)}))}removeAllObjects(...t){return e(this,void 0,void 0,(function*(){const e=this.db.transaction(t,"readwrite"),o=t.map((t=>e.objectStore(t)));yield Promise.all(o.map((e=>this.waitForRequest(e.clear()))))}))}addObjects(t,o){return e(this,void 0,void 0,(function*(){return this.withTransaction(t,"readwrite",(e=>{const i=e.objectStore(t);o.forEach((e=>{i.add(e)}))}))}))}}class oe{}class ie extends oe{constructor(e){super(),this.storage=e}clear(){this.storage.removeItem("PicMo:recents")}getRecents(e){var t;try{return JSON.parse(null!==(t=this.storage.getItem("PicMo:recents"))&&void 0!==t?t:"[]").slice(0,e)}catch(e){return[]}}addOrUpdateRecent(e,t){const o=[e,...this.getRecents(t).filter((t=>t.hexcode!==e.hexcode))].slice(0,t);try{this.storage.setItem("PicMo:recents",JSON.stringify(o))}catch(e){console.warn("storage is not available, recent emojis will not be saved")}}}class se extends ie{constructor(){super(localStorage)}}const ne={renderer:new U,dataStore:ee,theme:q,animate:!0,showCategoryTabs:!0,showPreview:!0,showRecents:!0,showSearch:!0,showVariants:!0,emojisPerRow:8,visibleRows:6,emojiVersion:"auto",i18n:G,locale:"en",maxRecents:50,recentsProvider:new se,custom:[]};function re(e={}){return Object.assign(Object.assign({},ne),e)}var ae,ce,le,he;class de{constructor(){ae.add(this),ce.set(this,new Map)}on(e,o,i){t(this,ae,"m",he).call(this,e,o,i)}once(e,o,i){t(this,ae,"m",he).call(this,e,o,i,!0)}off(e,o){const i=t(this,ae,"m",le).call(this,e);t(this,ce,"f").set(e,i.filter((e=>e.handler!==o)))}emit(e,...o){t(this,ae,"m",le).call(this,e).forEach((t=>{t.handler.apply(t.context,o),t.once&&this.off(e,t.handler)}))}removeAll(){t(this,ce,"f").clear()}}ce=new WeakMap,ae=new WeakSet,le=function(e){return t(this,ce,"f").has(e)||t(this,ce,"f").set(e,[]),t(this,ce,"f").get(e)},he=function(e,o,i,s=!1){t(this,ae,"m",le).call(this,e).push({context:i,handler:o,once:s})};class me extends de{}class ue extends de{}var ge={emojiCategory:"EmojiCategory_emojiCategory__7G3mq",categoryName:"EmojiCategory_categoryName__zHcOq",noRecents:"EmojiCategory_noRecents__Pk1Ys",recentEmojis:"EmojiCategory_recentEmojis__CybhN"};E(".EmojiCategory_emojiCategory__7G3mq {\n position: relative;\n}\n\n.EmojiCategory_categoryName__zHcOq {\n font-size: 0.9em;\n padding: 0.5rem;\n margin: 0;\n background: var(--category-name-background-color);\n color: var(--category-name-text-color);\n top: 0;\n z-index: 1;\n display: grid;\n gap: 4px;\n grid-template-columns: auto 1fr auto;\n align-items: center;\n line-height: 1;\n box-sizing: border-box;\n height: var(--category-name-height);\n justify-content: flex-start;\n text-transform: uppercase;\n}\n.EmojiCategory_categoryName__zHcOq button {\n background: transparent;\n border: none;\n display: flex;\n align-items: center;\n cursor: pointer;\n color: var(--category-name-button-color);\n}\n.EmojiCategory_categoryName__zHcOq button:hover {\n opacity: 1;\n}\n\n.EmojiCategory_noRecents__Pk1Ys {\n color: var(--secondary-text-color);\n grid-column: 1/span var(--emojis-per-row);\n font-size: 0.9em;\n text-align: center;\n display: flex;\n align-items: center;\n justify-content: center;\n min-height: calc(var(--emoji-size) * var(--emoji-size-multiplier));\n}\n\n.EmojiCategory_recentEmojis__CybhN[data-empty=true] {\n display: none;\n}\n\n.EmojiCategory_recentEmojis__CybhN[data-empty=false] + div {\n display: none;\n}");class ve extends k{constructor({template:e,category:t,showVariants:o,lazyLoader:i}){super({template:e,classes:ge}),this.baseUIElements={categoryName:k.byClass(ge.categoryName)},this.category=t,this.showVariants=o,this.lazyLoader=i}setActive(e,t,o){this.emojiContainer.setActive(e,t,o)}}var pe=new V((({classes:e,emoji:t})=>`\n <button\n type="button"\n class="${e.emoji}"\n title="${t.label}"\n data-emoji="${t.emoji}"\n tabindex="-1">\n <div data-placeholder="emojiContent"></div>\n </button>\n`)),ye={emoji:"Emoji_emoji__iKc1G"};E(".Emoji_emoji__iKc1G {\n background: transparent;\n border: none;\n border-radius: 15px;\n cursor: pointer;\n font-family: var(--emoji-font);\n font-size: var(--emoji-size);\n height: 100%;\n justify-content: center;\n margin: 0;\n overflow: hidden;\n padding: 0;\n width: 100%;\n}\n.Emoji_emoji__iKc1G:hover {\n background: transparent;\n}\n.Emoji_emoji__iKc1G:focus {\n border-radius: 0;\n background: var(--focus-indicator-background-color);\n outline: 1px soldi var(--focus-indicator-color);\n}");class fe extends k{constructor({emoji:e,lazyLoader:t,category:o}){super({template:pe,classes:ye}),this.emoji=e,this.lazyLoader=t,this.category=o}initialize(){this.uiEvents=[k.uiEvent("focus",this.handleFocus)],super.initialize()}handleFocus(){this.category&&this.events.emit("focus:change",this.category)}activateFocus(e){this.el.tabIndex=0,e&&this.el.focus()}deactivateFocus(){this.el.tabIndex=-1}renderSync(){return super.renderSync({emoji:this.emoji,emojiContent:this.renderer.doRender(this.emoji,this.lazyLoader)})}}class we{constructor(e,t,o=0,i=0,s=!1){this.events=new de,this.keyHandlers={ArrowLeft:this.focusPrevious.bind(this),ArrowRight:this.focusNext.bind(this),ArrowUp:this.focusUp.bind(this),ArrowDown:this.focusDown.bind(this)},this.rowCount=Math.ceil(t/e),this.columnCount=e,this.focusedRow=o,this.focusedColumn=i,this.emojiCount=t,this.wrap=s,this.handleKeyDown=this.handleKeyDown.bind(this)}destroy(){this.events.removeAll()}on(e,t){this.events.on(e,t)}handleKeyDown(e){e.key in this.keyHandlers&&(e.preventDefault(),this.keyHandlers[e.key]())}setCell(e,t,o=!0){const i=this.getIndex();this.focusedRow=e,void 0!==t&&(this.focusedColumn=Math.min(this.columnCount,t)),(this.focusedRow>=this.rowCount||this.getIndex()>=this.emojiCount)&&(this.focusedRow=this.rowCount-1,this.focusedColumn=this.emojiCount%this.columnCount-1),this.events.emit("focus:change",{from:i,to:this.getIndex(),performFocus:o})}setFocusedIndex(e,t=!0){const o=Math.floor(e/this.columnCount),i=e%this.columnCount;this.setCell(o,i,t)}focusNext(){this.focusedColumn<this.columnCount-1&&this.getIndex()<this.emojiCount-1?this.setCell(this.focusedRow,this.focusedColumn+1):this.focusedRow<this.rowCount-1?this.setCell(this.focusedRow+1,0):this.wrap?this.setCell(0,0):this.events.emit("focus:overflow",0)}focusPrevious(){this.focusedColumn>0?this.setCell(this.focusedRow,this.focusedColumn-1):this.focusedRow>0?this.setCell(this.focusedRow-1,this.columnCount-1):this.wrap?this.setCell(this.rowCount-1,this.columnCount-1):this.events.emit("focus:underflow",this.columnCount-1)}focusUp(){this.focusedRow>0?this.setCell(this.focusedRow-1,this.focusedColumn):this.events.emit("focus:underflow",this.focusedColumn)}focusDown(){this.focusedRow<this.rowCount-1?this.setCell(this.focusedRow+1,this.focusedColumn):this.events.emit("focus:overflow",this.focusedColumn)}focusToIndex(e){this.setCell(Math.floor(e/this.columnCount),e%this.columnCount)}getIndex(){return this.focusedRow*this.columnCount+this.focusedColumn}getCell(){return{row:this.focusedRow,column:this.focusedColumn}}getRowCount(){return this.rowCount}}var be=new V((({classes:e})=>`\n <div class="${e.emojiContainer}">\n <div data-placeholder="emojis"></div>\n </div>\n`)),_e={emojiContainer:"EmojiContainer_emojiContainer__4SPb5"};E(".EmojiContainer_emojiContainer__4SPb5 {\n display: grid;\n justify-content: space-between;\n gap: 1px;\n padding: 0 0.5em;\n grid-template-columns: repeat(var(--emojis-per-row), calc(var(--emoji-size) * var(--emoji-size-multiplier)));\n grid-auto-rows: calc(var(--emoji-size) * var(--emoji-size-multiplier));\n align-items: center;\n justify-items: center;\n}");class je extends k{constructor({emojis:e,showVariants:t,preview:o=!0,lazyLoader:i,category:s,fullHeight:n=!1}){super({template:be,classes:_e}),this.fullHeight=!1,this.showVariants=t,this.lazyLoader=i,this.preview=o,this.emojis=e,this.category=s,this.fullHeight=n,this.setFocus=this.setFocus.bind(this),this.triggerNextCategory=this.triggerNextCategory.bind(this),this.triggerPreviousCategory=this.triggerPreviousCategory.bind(this)}initialize(){this.grid=new we(this.options.emojisPerRow,this.emojiCount,0,0,!this.category),this.grid.on("focus:change",this.setFocus),this.grid.on("focus:overflow",this.triggerNextCategory),this.grid.on("focus:underflow",this.triggerPreviousCategory),this.uiEvents=[k.uiEvent("click",this.selectEmoji),k.uiEvent("keydown",this.grid.handleKeyDown)],this.preview&&this.uiEvents.push(k.uiEvent("mouseover",this.showPreview),k.uiEvent("mouseout",this.hidePreview),k.uiEvent("focus",this.showPreview,{capture:!0}),k.uiEvent("blur",this.hidePreview,{capture:!0})),super.initialize()}setFocusedView(e,t){if(e)if("string"==typeof e){const t=this.emojis.findIndex((t=>t.emoji===e));this.grid.setFocusedIndex(t,!1),setTimeout((()=>{var e,o,i,s;const n=this.emojiViews[t].el;n.scrollIntoView();const r=null===(e=n.parentElement)||void 0===e?void 0:e.previousElementSibling;(null===(i=null===(o=n.parentElement)||void 0===o?void 0:o.parentElement)||void 0===i?void 0:i.parentElement).scrollTop-=null!==(s=null==r?void 0:r.offsetHeight)&&void 0!==s?s:0}))}else"first"===e.row||0===e.row?this.grid.setCell(0,e.offset,t):"last"===e.row&&this.grid.setCell(this.grid.getRowCount()-1,e.offset,t)}setActive(e,t,o){var i;e?this.setFocusedView(t,o):null===(i=this.emojiViews[this.grid.getIndex()])||void 0===i||i.deactivateFocus()}renderSync(){return this.emojiViews=this.emojis.map((e=>this.viewFactory.create(fe,{emoji:e,category:this.category,lazyLoader:this.lazyLoader,renderer:this.renderer}))),this.emojiElements=this.emojiViews.map((e=>e.renderSync())),super.renderSync({emojis:this.emojiElements,i18n:this.i18n})}destroy(){super.destroy(),this.emojiViews.forEach((e=>e.destroy())),this.grid.destroy()}triggerPreviousCategory(e){this.events.emit("category:previous",e)}triggerNextCategory(e){this.category&&this.events.emit("category:next",e)}setFocus({from:e,to:t,performFocus:o}){var i,s;null===(i=this.emojiViews[e])||void 0===i||i.deactivateFocus(),null===(s=this.emojiViews[t])||void 0===s||s.activateFocus(o)}selectEmoji(e){const t=l(e,this.emojis);t&&this.events.emit("emoji:select",{emoji:t,showVariants:this.showVariants})}showPreview(e){const t=e.target.closest("button"),o=null==t?void 0:t.firstElementChild,i=l(e,this.emojis);i&&this.events.emit("preview:show",i,null==o?void 0:o.cloneNode(!0))}hidePreview(e){l(e,this.emojis)&&this.events.emit("preview:hide")}get emojiCount(){return this.emojis.length}}var Ce=new V((({classes:e,category:t,pickerId:o,icon:i,i18n:s})=>`\n <section class="${e.emojiCategory}" role="tabpanel" aria-labelledby="${o}-category-${t.key}">\n <h3 data-category="${t.key}" class="${e.categoryName}">\n <i data-icon="${i}"></i>\n ${s.get(`categories.${t.key}`,t.message||t.key)}\n </h3>\n <div data-view="emojis" data-render="sync"></div>\n </section>\n`));class ke extends ve{constructor({category:e,showVariants:t,lazyLoader:o,emojiVersion:i}){super({category:e,showVariants:t,lazyLoader:o,template:Ce}),this.showVariants=t,this.lazyLoader=o,this.emojiVersion=i}initialize(){this.uiElements=Object.assign({},this.baseUIElements),super.initialize()}render(){const t=Object.create(null,{render:{get:()=>super.render}});return e(this,void 0,void 0,(function*(){yield this.emojiDataPromise;const e=yield this.emojiData.getEmojis(this.category,this.emojiVersion);return this.emojiContainer=this.viewFactory.create(je,{emojis:e,showVariants:this.showVariants,lazyLoader:this.lazyLoader,category:this.category.key}),t.render.call(this,{category:this.category,emojis:this.emojiContainer,emojiCount:e.length,icon:S[this.category.key]})}))}}class Ee extends je{constructor({category:e,emojis:t,preview:o=!0,lazyLoader:i}){super({category:e,emojis:t,showVariants:!1,preview:o,lazyLoader:i})}addOrUpdate(t){return e(this,void 0,void 0,(function*(){const e=this.el.querySelector(`[data-emoji="${t.emoji}"]`);e&&(this.el.removeChild(e),this.emojis=this.emojis.filter((e=>e!==t)));const o=this.viewFactory.create(fe,{emoji:t});if(this.el.insertBefore(o.renderSync(),this.el.firstChild),this.emojis=[t,...this.emojis.filter((e=>e!==t))],this.emojis.length>this.options.maxRecents){this.emojis=this.emojis.slice(0,this.options.maxRecents);const e=this.el.childElementCount-this.options.maxRecents;for(let t=0;t<e;t++)this.el.lastElementChild&&this.el.removeChild(this.el.lastElementChild)}}))}}var xe=new V((({emojiCount:e,classes:t,category:o,pickerId:i,icon:s,i18n:n})=>`\n <section class="${t.emojiCategory}" role="tabpanel" aria-labelledby="${i}-category-${o.key}">\n <h3 data-category="${o.key}" class="${t.categoryName}">\n <i data-icon="${s}"></i>\n ${n.get(`categories.${o.key}`,o.message||o.key)}\n </h3>\n <div data-empty="${0===e}" class="${t.recentEmojis}">\n <div data-view="emojis" data-render="sync"></div>\n </div>\n <div class="${t.noRecents}">\n ${n.get("recents.none")}\n </div>\n</section>\n`),{mode:"async"});var Pe=new V((({classes:e,category:t,pickerId:o,icon:i,i18n:s})=>`\n <section class="${e.emojiCategory}" role="tabpanel" aria-labelledby="${o}-category-${t.key}">\n <h3 data-category="${t.key}" class="${e.categoryName}">\n <i data-icon="${i}"></i>\n ${s.get(`categories.${t.key}`,t.message||t.key)}\n </h3>\n <div data-view="emojis" data-render="sync"></div>\n </section>\n`));class Se{constructor(){this.elements=new Map}lazyLoad(e,t){return this.elements.set(e,t),e}observe(e){if(window.IntersectionObserver){const t=new IntersectionObserver((e=>{e.filter((e=>e.intersectionRatio>0)).map((e=>e.target)).forEach((e=>{const o=this.elements.get(e);null==o||o(),t.unobserve(e)}))}),{root:e});this.elements.forEach(((e,o)=>{t.observe(o)}))}else this.elements.forEach((e=>{e()}))}}var ze={emojis:"EmojiArea_emojis__L4mMq"};E(".EmojiArea_emojis__L4mMq {\n height: var(--emoji-area-height);\n overflow-y: auto;\n position: relative;\n scrollbar-color: var(--scrollbar-color) var(--scrollbar-background-color);\n scrollbar-width: 8px;\n}\n.EmojiArea_emojis__L4mMq::-webkit-scrollbar {\n background: var(--scrollbar-background-color);\n width: 1.1em;\n}\n.EmojiArea_emojis__L4mMq::-webkit-scrollbar-thumb {\n background: var(--scrollbar-color);\n border-left: 4px solid transparent;\n border-right: 4px solid transparent;\n background-clip: padding-box;\n height: 1em;\n border-radius: 1em;\n}");const Le=new V((({classes:e})=>`\n <div class="${e.emojis}">\n <div data-placeholder="emojis"></div>\n </div>\n`),{mode:"async"}),Fe={recents:class extends ve{constructor({category:e,lazyLoader:t,provider:o}){super({category:e,showVariants:!1,lazyLoader:t,template:xe}),this.provider=o}initialize(){this.uiElements=Object.assign(Object.assign({},this.baseUIElements),{recents:k.byClass(ge.recentEmojis)}),this.appEvents={"recent:add":this.addRecent},super.initialize()}addRecent(t){return e(this,void 0,void 0,(function*(){yield this.emojiContainer.addOrUpdate(t),this.ui.recents.dataset.empty="false"}))}render(){const t=Object.create(null,{render:{get:()=>super.render}});var o;return e(this,void 0,void 0,(function*(){const e=null===(o=this.provider)||void 0===o?void 0:o.getRecents(this.options.maxRecents);return this.emojiContainer=this.viewFactory.create(Ee,{emojis:e,showVariants:!1,lazyLoader:this.lazyLoader,category:this.category.key}),yield t.render.call(this,{category:this.category,emojis:this.emojiContainer,emojiCount:e.length,icon:S[this.category.key]}),this.el}))}},custom:class extends ve{constructor({category:e,lazyLoader:t}){super({template:Pe,showVariants:!1,lazyLoader:t,category:e})}initialize(){this.uiElements=Object.assign({},this.baseUIElements),super.initialize()}render(){const t=Object.create(null,{render:{get:()=>super.render}});return e(this,void 0,void 0,(function*(){return this.emojiContainer=this.viewFactory.create(je,{emojis:this.customEmojis,showVariants:this.showVariants,lazyLoader:this.lazyLoader,category:this.category.key}),t.render.call(this,{category:this.category,emojis:this.emojiContainer,emojiCount:this.customEmojis.length,icon:S[this.category.key]})}))}}};class Te extends k{constructor({categoryTabs:e,categories:t,emojiVersion:o}){super({template:Le,classes:ze}),this.selectedCategory=0,this.scrollListenerState="active",this.lazyLoader=new Se,this.categoryTabs=e,this.categories=t,this.emojiVersion=o,this.handleScroll=m(this.handleScroll.bind(this),100)}initialize(){this.appEvents={"category:select":this.handleCategorySelect,"category:previous":this.focusPreviousCategory,"category:next":this.focusNextCategory,"focus:change":this.updateFocusedCategory},this.uiElements={emojis:k.byClass(ze.emojis)},this.uiEvents=[k.uiEvent("scroll",this.handleScroll)],super.initialize()}get focusableEmoji(){return this.el.querySelector('[tabindex="0"]')}render(){const t=Object.create(null,{render:{get:()=>super.render}});return e(this,void 0,void 0,(function*(){this.emojiCategories=this.categories.map(this.createCategory,this);const e={};return this.categories.forEach(((t,o)=>{e[`emojis-${t.key}`]=this.emojiCategories[o]})),yield t.render.call(this,{emojis:yield Promise.all(this.emojiCategories.map((e=>e.render())))}),this.lazyLoader.observe(this.el),window.ResizeObserver&&(this.observer=new ResizeObserver((()=>{const e=this.el.scrollHeight-this.scrollHeight;0===this.el.scrollTop-this.scrollTop&&e>0&&(this.el.scrollTop+=e),this.scrollHeight=this.el.scrollHeight,this.scrollTop=this.el.scrollTop})),this.emojiCategories.forEach((e=>{this.observer.observe(e.el)}))),this.el}))}destroy(){super.destroy(),this.emojiCategories.forEach((e=>{var t;null===(t=this.observer)||void 0===t||t.unobserve(e.el),e.destroy()}))}handleCategorySelect(e,t){this.selectCategory(e,t)}createCategory(e){const t=function(e){return Fe[e.key]||ke}(e);return this.viewFactory.create(t,{category:e,showVariants:!0,lazyLoader:this.lazyLoader,emojiVersion:this.emojiVersion,provider:this.options.recentsProvider})}determineInitialCategory(){var e;return this.options.initialCategory&&this.categories.find((e=>e.key===this.options.initialCategory))?this.options.initialCategory:null===(e=this.categories.find((e=>"recents"!==e.key)))||void 0===e?void 0:e.key}determineFocusTarget(e){const t=this.emojiCategories.find((t=>t.category.key===e));return this.options.initialEmoji&&(null==t?void 0:t.el.querySelector(`[data-emoji="${this.options.initialEmoji}"]`))?this.options.initialEmoji:"button"}reset(){this.events.emit("preview:hide");const e=this.determineInitialCategory();e&&(this.selectCategory(e,{focus:this.determineFocusTarget(e),performFocus:!0,scroll:"jump"}),this.selectedCategory=this.getCategoryIndex(e))}getCategoryIndex(e){return this.categories.findIndex((t=>t.key===e))}focusPreviousCategory(e){this.selectedCategory>0&&this.focusCategory(this.selectedCategory-1,{row:"last",offset:null!=e?e:this.options.emojisPerRow})}focusNextCategory(e){this.selectedCategory<this.categories.length-1&&this.focusCategory(this.selectedCategory+1,{row:"first",offset:null!=e?e:0})}focusCategory(e,t){this.selectCategory(e,{focus:t,performFocus:!0})}selectCategory(t,o={}){var i;return e(this,void 0,void 0,(function*(){this.scrollListenerState="suspend";const{focus:e,performFocus:s,scroll:n}=Object.assign({performFocus:!1},o);this.emojiCategories[this.selectedCategory].setActive(!1);const r=this.selectedCategory="number"==typeof t?t:this.getCategoryIndex(t);null===(i=this.categoryTabs)||void 0===i||i.setActiveTab(this.selectedCategory,s,"button"===e);const a=this.emojiCategories[r].el.offsetTop;this.emojiCategories[r].setActive(!0,function(e){return e&&"button"!==e?e:{row:"first",offset:0}}(e),"button"!==e&&s),n&&(this.el.scrollTop=a),this.scrollListenerState="resume"}))}updateFocusedCategory(e){var t;this.categories[this.selectedCategory].key!==e&&(this.scrollListenerState="suspend",this.selectedCategory=this.getCategoryIndex(e),null===(t=this.categoryTabs)||void 0===t||t.setActiveTab(this.selectedCategory,!1),this.scrollListenerState="resume")}handleScroll(){if("suspend"===this.scrollListenerState||!this.categoryTabs)return;if("resume"===this.scrollListenerState)return void(this.scrollListenerState="active");const e=this.el.scrollTop,t=this.el.scrollHeight-this.el.offsetHeight,o=this.emojiCategories.findIndex(((t,o)=>{var i;return e<(null===(i=this.emojiCategories[o+1])||void 0===i?void 0:i.el.offsetTop)}));0===e?this.categoryTabs.setActiveTab(0,!1):Math.floor(e)===Math.floor(t)||o<0?this.categoryTabs.setActiveTab(this.categories.length-1,!1):this.categoryTabs.setActiveTab(o,!1)}}var $e=new V((({classList:e,classes:t,icon:o,message:i})=>`\n<div class="${e}" role="alert">\n <div class="${t.icon}"><i data-size="10x" data-icon="${o}"></i></div>\n <h3 class="${t.title}">${i}</h3>\n</div>\n`)),Ae={error:"ErrorMessage_error__7I7y1",icon:"ErrorMessage_icon__4---V","appear-grow":"ErrorMessage_appear-grow__oBenJ",title:"ErrorMessage_title__shDDT",appear:"ErrorMessage_appear__kry-R"};E("@keyframes ErrorMessage_appear__kry-R {\n 0% {\n opacity: 0;\n }\n 100% {\n opacity: 0.8;\n }\n}\n@keyframes ErrorMessage_appear-grow__oBenJ {\n 0% {\n opacity: 0;\n transform: scale(0.8);\n }\n 100% {\n opacity: 0.8;\n transform: scale(1);\n }\n}\n.ErrorMessage_error__7I7y1 {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n height: 100%;\n color: var(--secondary-text-color);\n}\n.ErrorMessage_error__7I7y1 .ErrorMessage_icon__4---V {\n opacity: 0.8;\n animation: ErrorMessage_appear-grow__oBenJ 250ms cubic-bezier(0.175, 0.885, 0.32, 1.275);\n --color-primary: var(--error-color);\n --color-secondary: var(--error-color-dark);\n}\n.ErrorMessage_error__7I7y1 .ErrorMessage_title__shDDT {\n animation: ErrorMessage_appear__kry-R 250ms;\n animation-delay: 50ms;\n animation-fill-mode: both;\n}\n.ErrorMessage_error__7I7y1 button {\n padding: 8px 16px;\n cursor: pointer;\n background: var(--background-color);\n border: 3px solid var(--text-color);\n border-radius: 5px;\n color: var(--text-color);\n}\n.ErrorMessage_error__7I7y1 button:hover {\n background: var(--text-color);\n color: var(--background-color);\n}");class Me extends k{constructor({message:e,icon:t="warning",template:o=$e,className:i}){super({template:o,classes:Ae}),this.message=e,this.icon=t,this.className=i}renderSync(){const e=[Ae.error,this.className].join(" ").trim();return super.renderSync({message:this.message,icon:this.icon,classList:e})}}var Ie="DataError_dataError__jyJ0H";E(".DataError_dataError__jyJ0H [data-icon] {\n opacity: 0.8;\n}");var Ve=new V((({classList:e,classes:t,icon:o,i18n:i,message:s})=>`\n <div class="${e}">\n <div class="${t.icon}"><i data-size="10x" data-icon="${o}"></i></div>\n <h3 class="${t.title}">${s}</h3>\n <button type="button">${i.get("retry")}</button>\n </div>\n`));class Re extends Me{constructor({message:e}){super({message:e,template:Ve,className:Ie})}initialize(){this.uiElements={retryButton:"button"},this.uiEvents=[k.childEvent("retryButton","click",this.onRetry)],super.initialize()}onRetry(){return e(this,void 0,void 0,(function*(){this.emojiData?yield this.emojiData.delete():yield this.options.dataStore.deleteDatabase(this.options.locale),this.events.emit("reinitialize");const e=yield _(this.options.locale,this.options.dataStore,this.options.messages,this.options.emojiData,this.emojiData);this.viewFactory.setEmojiData(e),this.events.emit("data:ready",e)}))}}var De={preview:"Preview_preview__HcFH6",previewEmoji:"Preview_previewEmoji__vjUki",previewName:"Preview_previewName__C79nL",tagList:"Preview_tagList__DielP",tag:"Preview_tag__aUSTM"};E('.Preview_preview__HcFH6 {\n border-top: 1px solid var(--border-color);\n display: grid;\n align-items: center;\n gap: 6px;\n grid-template-columns: auto 1fr;\n grid-template-rows: auto 1fr;\n grid-template-areas: "emoji name" "emoji tags";\n height: var(--emoji-preview-height);\n box-sizing: border-box;\n padding: 0.5em;\n position: relative;\n background: var(--preview-background-color);\n}\n\n.Preview_previewEmoji__vjUki {\n grid-area: emoji;\n font-size: var(--emoji-preview-size);\n font-family: var(--emoji-font);\n width: 1.25em;\n display: flex;\n align-items: center;\n justify-content: center;\n}\n\n.Preview_previewName__C79nL {\n grid-area: name;\n color: var(--text-color);\n font-size: 0.8em;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n font-weight: 500;\n}\n\n.Preview_tagList__DielP {\n grid-area: tags;\n list-style-type: none;\n display: flex;\n flex-direction: row;\n padding: 0;\n margin: 0;\n font-size: 0.75em;\n overflow: hidden;\n}\n\n.Preview_tag__aUSTM {\n border-radius: 3px;\n background: var(--tag-background-color);\n color: var(--text-color);\n padding: 2px 8px;\n margin-right: 0.25em;\n white-space: nowrap;\n}\n.Preview_tag__aUSTM:last-child {\n margin-right: 0;\n}');const Be=new V((({classes:e,tag:t})=>`\n <li class="${e.tag}">${t}</li>\n`)),He=new V((({classes:e})=>`\n <div class="${e.preview}">\n <div class="${e.previewEmoji}"></div>\n <div class="${e.previewName}"></div>\n <ul class="${e.tagList}"></ul>\n </div>\n`));class Oe extends k{constructor(){super({template:He,classes:De})}initialize(){this.uiElements={emoji:k.byClass(De.previewEmoji),name:k.byClass(De.previewName),tagList:k.byClass(De.tagList)},this.appEvents={"preview:show":this.showPreview,"preview:hide":this.hidePreview},super.initialize()}showPreview(e,t){if(this.ui.emoji.replaceChildren(t),this.ui.name.textContent=e.label,e.tags){this.ui.tagList.style.display="flex";const t=e.tags.map((e=>Be.renderSync({tag:e,classes:De})));this.ui.tagList.replaceChildren(...t)}}hidePreview(){this.ui.emoji.replaceChildren(),this.ui.name.textContent="",this.ui.tagList.replaceChildren()}}var Ne={searchContainer:"Search_searchContainer__aJW7V",searchField:"Search_searchField__tENKn",clearButton:"Search_clearButton__oFTEY",searchAccessory:"Search_searchAccessory__0rdYO",clearSearchButton:"Search_clearSearchButton__AoDtB",notFound:"Search_notFound__rOdr1"};E(".Search_searchContainer__aJW7V {\n display: flex;\n height: var(--search-height);\n box-sizing: border-box;\n padding: 0 8px;\n position: relative;\n}\n\n.Search_searchField__tENKn {\n background: var(--search-background-color);\n border-radius: 3px;\n border: none;\n box-sizing: border-box;\n color: var(--text-color);\n font-size: 0.9em;\n outline: none;\n padding-right: 2em;\n padding: 0.5em 2.25em 0.5em 0.5em;\n width: 100%;\n}\n.Search_searchField__tENKn:focus {\n background: var(--search-focus-background-color);\n}\n.Search_searchField__tENKn::placeholder {\n color: var(--search-placeholder-color);\n}\n\n.Search_clearButton__oFTEY {\n border: 0;\n color: var(--search-icon-color);\n background: transparent;\n cursor: pointer;\n}\n\n.Search_searchAccessory__0rdYO {\n color: var(--search-icon-color);\n height: 100%;\n position: absolute;\n right: 1em;\n top: 0;\n width: 1.25rem;\n display: flex;\n align-items: center;\n}\n.Search_searchAccessory__0rdYO svg {\n fill: var(--search-icon-color);\n}\n\n.Search_clearSearchButton__AoDtB {\n cursor: pointer;\n border: none;\n background: transparent;\n color: var(--search-icon-color);\n font-size: 1em;\n width: 100%;\n height: 100%;\n display: flex;\n align-items: center;\n padding: 0;\n}\n\n.Search_notFound__rOdr1 [data-icon] {\n fill: #f3e265;\n}");const Ue=new V((({classes:e,i18n:t})=>`\n <button title="${t.get("search.clear")}" class="${e.clearSearchButton}">\n <i data-icon="xmark"></i>\n </button>\n`)),Ke=new V((({classes:e,i18n:t})=>`\n<div class="${e.searchContainer}">\n <input class="${e.searchField}" autocmplete="off" autocorrect="off" autocapitalize="off" placeholder="${t.get("search")}">\n <span class="${e.searchAccessory}"></span>\n</div>\n`),{mode:"async"});class qe extends k{constructor({categories:e,emojiVersion:t}){super({template:Ke,classes:Ne}),this.categories=e.filter((e=>"recents"!==e.key)),this.emojiVersion=t,this.search=u(this.search.bind(this),100)}initialize(){this.uiElements={searchField:k.byClass(Ne.searchField),searchAccessory:k.byClass(Ne.searchAccessory)},this.uiEvents=[k.childEvent("searchField","keydown",this.onKeyDown),k.childEvent("searchField","input",this.onSearchInput)],super.initialize()}render(){const t=Object.create(null,{render:{get:()=>super.render}});return e(this,void 0,void 0,(function*(){return yield t.render.call(this),this.searchIcon=z("search"),this.notFoundMessage=this.viewFactory.create(Me,{message:this.i18n.get("search.notFound"),className:Ne.notFound,icon:"sad"}),this.notFoundMessage.renderSync(),this.errorMessage=this.viewFactory.create(Me,{message:this.i18n.get("search.error")}),this.errorMessage.renderSync(),this.clearSearchButton=Ue.render({classes:Ne,i18n:this.i18n}),this.clearSearchButton.addEventListener("click",(e=>this.onClearSearch(e))),this.searchField=this.ui.searchField,this.showSearchIcon(),this.el}))}showSearchIcon(){this.showSearchAccessory(this.searchIcon)}showClearSearchButton(){this.showSearchAccessory(this.clearSearchButton)}showSearchAccessory(e){this.ui.searchAccessory.replaceChildren(e)}clear(){this.searchField.value="",this.showSearchIcon()}focus(){this.searchField.focus()}onClearSearch(e){var t;e.stopPropagation(),this.searchField.value="",null===(t=this.resultsContainer)||void 0===t||t.destroy(),this.resultsContainer=null,this.showSearchIcon(),this.events.emit("content:show"),this.searchField.focus(); var emojiContainerDiv=document.getElementsByClassName('EmojiArea_emojis__L4mMq');setTimeout(()=>{emojiContainerDiv[0].scrollTo(0,0);},5);}handleResultsKeydown(e){this.resultsContainer&&"Escape"===e.key&&this.onClearSearch(e)}onKeyDown(e){var t;"Escape"===e.key&&this.searchField.value?this.onClearSearch(e):"Enter"!==e.key&&"ArrowDown"!==e.key||!this.resultsContainer||(e.preventDefault(),null===(t=this.resultsContainer.el.querySelector('[tabindex="0"]'))||void 0===t||t.focus())}onSearchInput(e){this.searchField.value?(this.showClearSearchButton(),this.search()):this.onClearSearch(e)}search(){var t;return e(this,void 0,void 0,(function*(){if(this.searchField.value)try{const e=yield this.emojiData.searchEmojis(this.searchField.value,this.customEmojis,this.emojiVersion,this.categories);if(this.events.emit("preview:hide"),e.length){const o=new Se;this.resultsContainer=this.viewFactory.create(je,{emojis:e,fullHeight:!0,showVariants:!0,lazyLoader:o}),this.resultsContainer.renderSync(),(null===(t=this.resultsContainer)||void 0===t?void 0:t.el)&&(o.observe(this.resultsContainer.el),this.resultsContainer.setActive(!0,{row:0,offset:0},!1),this.resultsContainer.el.addEventListener("keydown",(e=>this.handleResultsKeydown(e))),this.events.emit("content:show",this.resultsContainer))}else this.events.emit("content:show",this.notFoundMessage)}catch(e){this.events.emit("content:show",this.errorMessage)}}))}}var We=new V((({classes:e})=>`\n <div class="${e.variantOverlay}">\n <div class="${e.variantPopup}">\n <div data-view="emojis" data-render="sync"></div>\n </div>\n </div>\n`)),Ge={variantOverlay:"VariantPopup_variantOverlay__gGwue",variantPopup:"VariantPopup_variantPopup__c2pHF"};E(".VariantPopup_variantOverlay__gGwue {\n background: var(--overlay-background-color);\n border-radius: 5px;\n display: flex;\n flex-direction: column;\n height: 100%;\n justify-content: center;\n left: 0;\n position: absolute;\n top: 0;\n width: 100%;\n z-index: 1;\n}\n\n.VariantPopup_variantPopup__c2pHF {\n background: var(--variant-popup-background-color);\n border-radius: 5px;\n margin: 0.5em;\n padding: 0.5em;\n text-align: center;\n user-select: none;\n display: flex;\n align-items: center;\n justify-content: center;\n}");const Je={easing:"ease-in-out",duration:250,fill:"both"},Ye={opacity:[0,1]},Qe={opacity:[0,1],transform:["scale3d(0.8, 0.8, 0.8)","scale3d(1, 1, 1)"]};class Xe extends k{constructor({emoji:e,parent:t}){super({template:We,classes:Ge,parent:t}),this.focusedEmojiIndex=0,this.focusTrap=new C,this.animateShow=()=>Promise.all([g(this.el,Ye,Je,this.options),g(this.ui.popup,Qe,Je,this.options)]),this.emoji=e}initialize(){this.uiElements={popup:k.byClass(Ge.variantPopup)},this.uiEvents=[k.uiEvent("click",this.handleClick),k.uiEvent("keydown",this.handleKeydown)],super.initialize()}animateHide(){const e=Object.assign(Object.assign({},Je),{direction:"reverse"});return Promise.all([g(this.el,Ye,e,this.options),g(this.ui.popup,Qe,e,this.options)])}hide(){return e(this,void 0,void 0,(function*(){yield this.animateHide(),this.events.emit("variantPopup:hide")}))}handleKeydown(e){"Escape"===e.key&&(this.hide(),e.stopPropagation())}handleClick(e){this.ui.popup.contains(e.target)||this.hide()}getEmoji(e){return this.renderedEmojis[e]}setFocusedEmoji(e){this.getEmoji(this.focusedEmojiIndex).tabIndex=-1,this.focusedEmojiIndex=e;const t=this.getEmoji(this.focusedEmojiIndex);t.tabIndex=0,t.focus()}destroy(){this.emojiContainer.destroy(),this.focusTrap.deactivate(),super.destroy()}renderSync(){const e=[Object.assign(Object.assign({},this.emoji),{skins:null}),...(this.emoji.skins||[]).map((e=>Object.assign(Object.assign({},e),{label:this.emoji.label,tags:this.emoji.tags})))];return this.emojiContainer=this.viewFactory.create(je,{emojis:e,preview:!1}),super.renderSync({emojis:this.emojiContainer}),e.length<this.options.emojisPerRow&&this.el.style.setProperty("--emojis-per-row",e.length.toString()),this.el}activate(){this.emojiContainer.setActive(!0,{row:0,offset:0},!0),this.focusTrap.activate(this.el)}}var Ze=new V((({classes:e,i18n:t,category:o,pickerId:i,icon:s})=>`\n<li class="${e.categoryTab}">\n <button\n aria-selected="false"\n role="tab"\n class="${e.categoryButton}"\n tabindex="-1"\n title="${t.get(`categories.${o.key}`,o.message||o.key)}"\n type="button"\n data-category="${o.key}"\n id="${i}-category-${o.key}"\n >\n <i data-icon="${s}"></i>\n</li>\n`)),et={categoryButtons:"CategoryTabs_categoryButtons__dJVp-",categoryButton:"CategoryTabs_categoryButton__AsR9b",categoryTab:"CategoryTabs_categoryTab__fAgQT",categoryTabActive:"CategoryTabs_categoryTabActive__691be"};E(".CategoryTabs_categoryButtons__dJVp- {\n --tab-size-ratio: 1.55;\n --tab-padding: 0.5em;\n --tab-area-width: calc(var(--picker-width) - (var(--tab-padding) * 2));\n --tab-size: calc((var(--tab-area-width) / var(--category-count))) / var(--tab-size-ratio);\n display: grid;\n grid-auto-columns: 1fr;\n grid-auto-flow: column;\n gap: var(--tab-gap);\n justify-content: center;\n margin: 0;\n padding: 0 var(--tab-padding);\n align-items: center;\n height: var(--category-tabs-height);\n box-sizing: border-box;\n position: relative;\n list-style-type: none;\n}\n\n.CategoryTabs_categoryButton__AsR9b {\n border-radius: 5px;\n background: transparent;\n border: 2px solid transparent;\n color: var(--category-tab-color);\n cursor: pointer;\n padding: 2px;\n vertical-align: middle;\n display: flex;\n align-items: center;\n justify-content: center;\n font-size: 1.2rem;\n font-size: min(var(--tab-size), 1.2rem);\n width: 1.6em;\n height: 1.6em;\n transition: all 100ms;\n}\n.CategoryTabs_categoryButton__AsR9b img {\n width: var(--category-tab-size);\n height: var(--category-tab-size);\n}\n.CategoryTabs_categoryButton__AsR9b:hover {\n background: var(--category-tab-highlight-background-color);\n}\n\n.CategoryTabs_categoryTab__fAgQT {\n display: flex;\n align-items: center;\n justify-content: stretch;\n transition: all 100ms;\n}\n\n.CategoryTabs_categoryTabActive__691be .CategoryTabs_categoryButton__AsR9b {\n color: var(--category-tab-active-color);\n background: linear-gradient(rgba(255, 255, 255, 0.75) 0%, rgba(255, 255, 255, 0.75) 100%), linear-gradient(var(--category-tab-active-color) 0%, var(--category-tab-active-color) 100%);\n border: 2px solid var(--category-tab-active-color);\n}\n.CategoryTabs_categoryTabActive__691be .CategoryTabs_categoryButton__AsR9b:hover {\n background-color: var(--category-tab-active-background-color);\n}");class tt extends k{constructor({category:e,icon:t}){super({template:Ze,classes:et}),this.isActive=!1,this.category=e,this.icon=t}initialize(){this.uiElements={button:k.byClass(et.categoryButton)},this.uiEvents=[k.childEvent("button","click",this.selectCategory)],super.initialize()}renderSync(){return super.renderSync({category:this.category,icon:this.icon}),this.ui.button.ariaSelected="false",this.el}setActive(e,t=!0,o=!1){this.el.classList.toggle(et.categoryTabActive,e),t&&this.setFocused(e,o),this.isActive=e}setFocused(e,t=!1){this.ui.button.ariaSelected=e.toString(),e?(this.ui.button.tabIndex=0,this.ui.button.focus(),t&&this.events.emit("category:select",this.category.key,{scroll:"animate",focus:"button",performFocus:!1})):this.ui.button.tabIndex=-1}selectCategory(){this.isActive||this.events.emit("category:select",this.category.key,{scroll:"animate",focus:"button",performFocus:!0})}}var ot=new V((({classes:e})=>`\n <ul role="tablist" class="${e.categoryButtons}">\n <div data-placeholder="tabs"></div>\n </ul>\n`));class it extends k{constructor({categories:e}){super({template:ot,classes:et}),this.activeCategoryIndex=0,this.categories=e}initialize(){this.keyBindings={ArrowLeft:this.stepSelectedTab(-1),ArrowRight:this.stepSelectedTab(1)},super.initialize()}renderSync(){return this.tabViews=this.categories.map((e=>this.viewFactory.create(tt,{category:e,icon:S[e.key]}))),super.renderSync({tabs:this.tabViews.map((e=>e.renderSync()))}),this.currentTabView.setActive(!0),this.el}get currentCategory(){return this.categories[this.activeCategoryIndex]}get currentTabView(){return this.tabViews[this.activeCategoryIndex]}setActiveTab(e,t=!0,o=!0){if(e===this.activeCategoryIndex)return;const i=this.currentTabView,s=this.tabViews[e];i.setActive(!1,t),s.setActive(!0,t,o),this.activeCategoryIndex=e}getTargetCategory(e){return e<0?this.categories.length-1:e>=this.categories.length?0:e}stepSelectedTab(e){return()=>{const t=this.activeCategoryIndex+e;this.setActiveTab(this.getTargetCategory(t))}}}const st=[{version:15,emoji:String.fromCodePoint(129768)},{version:14,emoji:String.fromCodePoint(128733)},{version:13,emoji:String.fromCodePoint(129729)},{version:12,emoji:String.fromCodePoint(129449)},{version:11,emoji:String.fromCodePoint(129463)},{version:5,emoji:String.fromCodePoint(129322)},{version:4,emoji:String.fromCodePoint(9877)},{version:3,emoji:String.fromCodePoint(129314)},{version:2,emoji:String.fromCodePoint(128488)},{version:1,emoji:String.fromCodePoint(128512)}];function nt(){var e;const t=st.find((e=>function(e){const t=document.createElement("canvas").getContext("2d");if(t)return t.textBaseline="top",t.font="32px Arial",t.fillText(e,0,0),0!==t.getImageData(16,16,1,1).data[0]}(e.emoji)));return null!==(e=null==t?void 0:t.version)&&void 0!==e?e:1}function rt(e,t){return Array.from({length:e},(()=>t)).join("")}function at(e){const{emojiCount:t,classes:o,theme:i,className:s}=e;return`\n <div class="${o.skeleton} ${o.picker} ${i} ${s}">\n ${(({showHeader:t,classes:o})=>t?`\n <header class="${o.header}">\n ${(({showSearch:e,classes:t})=>e?`\n <div class="${t.searchSkeleton}">\n <div class="${t.searchInput} ${t.placeholder}"></div>\n </div>\n `:"")(e)}\n ${(({showCategoryTabs:e,classes:t})=>e?`\n <div class="${t.categoryTabsSkeleton}">\n ${rt(10,`<div class="${t.placeholder} ${t.categoryTab}"></div>`)}\n </div>\n `:"")(e)}\n </header>\n `:"")(e)}\n <div class="${o.contentSkeleton}">\n <div class="${o.placeholder} ${o.categoryName}"></div>\n <div class="${o.emojiGrid}">\n ${rt(t,`<div class="${o.placeholder} ${o.emoji}"></div>`)}\n </div>\n </div>\n ${(({showPreview:e,classes:t})=>e?`\n <div class="${t.previewSkeleton}">\n <div class="${t.placeholder} ${t.previewEmoji}"></div>\n <div class="${t.placeholder} ${t.previewName}"></div>\n <ul class="${t.tagList}">\n ${rt(3,`<li class="${t.placeholder} ${t.tag}"></li>`)}\n </ul>\n </div>\n `:"")(e)}\n </div>\n `}var ct=new V((e=>e.isLoaded?function(e){const{classes:t,theme:o,className:i=""}=e;return`\n <div class="${t.picker} ${o} ${i}">\n ${function({showHeader:e,classes:t}){return e?`\n <header class="${t.header}">\n <div data-view="search"></div>\n <div data-view="categoryTabs" data-render="sync"></div>\n </header>\n `:""}(e)}\n <div class="${t.content}">\n <div data-view="emojiArea"></div>\n </div>\n <div data-view="preview"></div>\n </div>\n `}(e):at(e))),lt={picker:"EmojiPicker_picker__19Vln",skeleton:"EmojiPicker_skeleton__M1a2g",placeholder:"EmojiPicker_placeholder__YDJn-",shine:"EmojiPicker_shine__s-vEs",searchSkeleton:"EmojiPicker_searchSkeleton__gNgdU",searchInput:"EmojiPicker_searchInput__tpaBs",categoryTabsSkeleton:"EmojiPicker_categoryTabsSkeleton__2dISl",categoryTab:"EmojiPicker_categoryTab__mmSVF",contentSkeleton:"EmojiPicker_contentSkeleton__UWfQu",categoryName:"EmojiPicker_categoryName__d2-Ed",emojiGrid:"EmojiPicker_emojiGrid__WnoCI",emoji:"EmojiPicker_emoji__jaN-w",previewSkeleton:"EmojiPicker_previewSkeleton__Bjqkm",previewEmoji:"EmojiPicker_previewEmoji__uOLbA",previewName:"EmojiPicker_previewName__QJ47d",tagList:"EmojiPicker_tagList__tc6nv",tag:"EmojiPicker_tag__gAU6B",overlay:"EmojiPicker_overlay__kDT99",content:"EmojiPicker_content__xT6Kl",fullHeight:"EmojiPicker_fullHeight__7kz2H",pluginContainer:"EmojiPicker_pluginContainer__Gz3yT",header:"EmojiPicker_header__eDZPD"};E('@keyframes EmojiPicker_shine__s-vEs {\n to {\n transform: translateX(100%);\n }\n}\n.EmojiPicker_picker__19Vln {\n --border-radius: 5px;\n --emoji-area-height: calc(\n (var(--row-count) * var(--emoji-size) * var(--emoji-size-multiplier)) + var(--category-name-height)\n );\n --content-height: var(--emoji-area-height);\n --emojis-per-row: 8;\n --row-count: 6;\n --emoji-preview-margin: 4px;\n --emoji-preview-height: calc(var(--emoji-preview-size) + 1em + 1px);\n --emoji-preview-height-full: calc(var(--emoji-preview-height) + var(--emoji-preview-margin));\n --emoji-preview-size: 2.75em;\n --emoji-size: 2rem;\n --emoji-size-multiplier: 1.3;\n --content-margin: 8px;\n --category-tabs-height: calc(1.5em + 4px + 4px + 1px);\n --category-tabs-offset: 8px;\n --category-tab-size: 1.2rem;\n --category-name-height: 2rem;\n --category-name-padding-y: 6px;\n --search-height: 2em;\n --search-margin: 0.5em;\n --search-margin-bottom: 4px;\n --search-height-full: calc(var(--search-height) + var(--search-margin) + var(--search-margin-bottom));\n --overlay-background-color: rgba(0, 0, 0, 0.8);\n --emoji-font: "Segoe UI Emoji", "Segoe UI Symbol", "Segoe UI", "Apple Color Emoji", "Twemoji Mozilla",\n "Noto Color Emoji", "EmojiOne Color", "Android Emoji";\n --ui-font: -apple-system, BlinkMacSystemFont, "Helvetica Neue", sans-serif;\n --ui-font-size: 16px;\n --picker-width: calc(var(--emojis-per-row) * var(--emoji-size) * var(--emoji-size-multiplier) + 2.75rem);\n background: var(--background-color);\n border-radius: var(--border-radius);\n border: 1px solid var(--border-color);\n font-family: var(--ui-font);\n font-size: var(--ui-font-size);\n overflow: hidden;\n position: relative;\n width: var(--picker-width);\n display: grid;\n gap: 8px;\n}\n.EmojiPicker_picker__19Vln > * {\n font-family: var(--ui-font);\n}\n\n.EmojiPicker_skeleton__M1a2g {\n background: var(--background-color);\n border-radius: var(--border-radius);\n border: 1px solid var(--border-color);\n font-family: var(--ui-font);\n width: var(--picker-width);\n color: var(--secondary-text-color);\n}\n.EmojiPicker_skeleton__M1a2g * {\n box-sizing: border-box;\n}\n.EmojiPicker_skeleton__M1a2g .EmojiPicker_placeholder__YDJn- {\n background: var(--placeholder-background-color);\n position: relative;\n overflow: hidden;\n}\n.EmojiPicker_skeleton__M1a2g .EmojiPicker_placeholder__YDJn-::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n transform: translateX(-100%);\n background-image: linear-gradient(90deg, rgba(255, 255, 255, 0) 0, rgba(255, 255, 255, 0.2) 20%, rgba(255, 255, 255, 0.5) 60%, rgba(255, 255, 255, 0));\n animation: EmojiPicker_shine__s-vEs 2s infinite;\n content: "";\n}\n.EmojiPicker_skeleton__M1a2g .EmojiPicker_searchSkeleton__gNgdU {\n padding: 0 8px;\n height: var(--search-height);\n}\n.EmojiPicker_skeleton__M1a2g .EmojiPicker_searchSkeleton__gNgdU .EmojiPicker_searchInput__tpaBs {\n width: 100%;\n height: 28px;\n border-radius: 3px;\n}\n.EmojiPicker_skeleton__M1a2g .EmojiPicker_categoryTabsSkeleton__2dISl {\n height: var(--category-tabs-height);\n display: flex;\n flex-direction: row;\n justify-content: space-around;\n align-items: center;\n}\n.EmojiPicker_skeleton__M1a2g .EmojiPicker_categoryTabsSkeleton__2dISl .EmojiPicker_categoryTab__mmSVF {\n width: 25px;\n height: 25px;\n padding: 2px;\n border-radius: 5px;\n}\n.EmojiPicker_skeleton__M1a2g .EmojiPicker_contentSkeleton__UWfQu {\n height: var(--content-height);\n padding-right: 8px;\n opacity: 0.7;\n}\n.EmojiPicker_skeleton__M1a2g .EmojiPicker_contentSkeleton__UWfQu .EmojiPicker_categoryName__d2-Ed {\n width: 50%;\n height: 1rem;\n margin: 0.5rem;\n box-sizing: border-box;\n}\n.EmojiPicker_skeleton__M1a2g .EmojiPicker_contentSkeleton__UWfQu .EmojiPicker_emojiGrid__WnoCI {\n display: grid;\n justify-content: space-between;\n gap: 1px;\n padding: 0 0.5em;\n grid-template-columns: repeat(var(--emojis-per-row), calc(var(--emoji-size) * var(--emoji-size-multiplier)));\n grid-auto-rows: calc(var(--emoji-size) * var(--emoji-size-multiplier));\n align-items: center;\n justify-items: center;\n}\n.EmojiPicker_skeleton__M1a2g .EmojiPicker_contentSkeleton__UWfQu .EmojiPicker_emojiGrid__WnoCI .EmojiPicker_emoji__jaN-w {\n width: var(--emoji-size);\n height: var(--emoji-size);\n border-radius: 50%;\n}\n.EmojiPicker_skeleton__M1a2g .EmojiPicker_previewSkeleton__Bjqkm {\n height: var(--emoji-preview-height);\n border-top: 1px solid var(--border-color);\n display: grid;\n align-items: center;\n padding: 0.5em;\n gap: 6px;\n grid-template-columns: auto 1fr;\n grid-template-rows: auto 1fr;\n grid-template-areas: "emoji name" "emoji tags";\n}\n.EmojiPicker_skeleton__M1a2g .EmojiPicker_previewSkeleton__Bjqkm .EmojiPicker_previewEmoji__uOLbA {\n grid-area: emoji;\n border-radius: 50%;\n width: var(--emoji-preview-size);\n height: var(--emoji-preview-size);\n}\n.EmojiPicker_skeleton__M1a2g .EmojiPicker_previewSkeleton__Bjqkm .EmojiPicker_previewName__QJ47d {\n grid-area: name;\n width: 12em;\n height: 0.8em;\n}\n.EmojiPicker_skeleton__M1a2g .EmojiPicker_previewSkeleton__Bjqkm .EmojiPicker_tagList__tc6nv {\n grid-area: tags;\n list-style-type: none;\n display: flex;\n flex-direction: row;\n padding: 0;\n margin: 0;\n}\n.EmojiPicker_skeleton__M1a2g .EmojiPicker_previewSkeleton__Bjqkm .EmojiPicker_tagList__tc6nv .EmojiPicker_tag__gAU6B {\n border-radius: 3px;\n padding: 2px 8px;\n margin-right: 0.25em;\n height: 1em;\n width: 3em;\n}\n\n.EmojiPicker_overlay__kDT99 {\n background: rgba(0, 0, 0, 0.75);\n height: 100%;\n left: 0;\n position: fixed;\n top: 0;\n width: 100%;\n z-index: 1000;\n}\n\n.EmojiPicker_content__xT6Kl {\n position: relative;\n overflow: hidden;\n height: var(--content-height);\n}\n.EmojiPicker_content__xT6Kl.EmojiPicker_fullHeight__7kz2H {\n height: calc(var(--content-height) + var(--category-tabs-height) + var(--category-tabs-offset));\n overflow-y: auto;\n}\n\n.EmojiPicker_pluginContainer__Gz3yT {\n margin: 0.5em;\n display: flex;\n flex-direction: row;\n}\n\n.EmojiPicker_header__eDZPD {\n background-color: var(--secondary-background-color);\n padding-top: 8px;\n padding-bottom: 8px;\n display: grid;\n gap: 8px;\n border-bottom: 1px solid var(--border-color);\n}\n\n@media (prefers-reduced-motion: reduce) {\n .EmojiPicker_placeholder__YDJn- {\n background: var(--placeholder-background-color);\n position: relative;\n overflow: hidden;\n }\n .EmojiPicker_placeholder__YDJn-::after {\n display: none;\n }\n}');const ht={emojisPerRow:"--emojis-per-row",visibleRows:"--row-count",emojiSize:"--emoji-size"};class dt extends k{constructor(){super({template:ct,classes:lt}),this.pickerReady=!1,this.externalEvents=new ue}initialize(){this.uiElements={pickerContent:k.byClass(lt.content),header:k.byClass(lt.header)},this.uiEvents=[k.uiEvent("keydown",this.handleKeyDown)],this.appEvents={error:this.onError,reinitialize:this.reinitialize,"data:ready":this.onDataReady,"content:show":this.showContent,"variantPopup:hide":this.hideVariantPopup,"emoji:select":this.selectEmoji},super.initialize(),this.options.recentsProvider}destroy(){var e,t;super.destroy(),null===(e=this.search)||void 0===e||e.destroy(),this.emojiArea.destroy(),null===(t=this.categoryTabs)||void 0===t||t.destroy(),this.events.removeAll(),this.externalEvents.removeAll()}clearRecents(){this.options.recentsProvider.clear()}addEventListener(e,t){this.externalEvents.on(e,t)}removeEventListener(e,t){this.externalEvents.off(e,t)}initializePickerView(){this.pickerReady&&(this.showContent(),this.emojiArea.reset())}handleKeyDown(e){const t=e.ctrlKey||e.metaKey;"s"===e.key&&t&&this.search&&(e.preventDefault(),this.search.focus())}buildChildViews(){return this.options.showPreview&&(this.preview=this.viewFactory.create(Oe)),this.options.showSearch&&(this.search=this.viewFactory.create(qe,{categories:this.categories,emojiVersion:this.emojiVersion})),this.options.showCategoryTabs&&(this.categoryTabs=this.viewFactory.create(it,{categories:this.categories})),this.currentView=this.emojiArea=this.viewFactory.create(Te,{categoryTabs:this.categoryTabs,categories:this.categories,emojiVersion:this.emojiVersion}),[this.preview,this.search,this.emojiArea,this.categoryTabs]}setStyleProperties(){this.options.showSearch||this.el.style.setProperty("--search-height-full","0px"),this.options.showCategoryTabs||(this.el.style.setProperty("--category-tabs-height","0px"),this.el.style.setProperty("--category-tabs-offset","0px")),this.options.showPreview||this.el.style.setProperty("--emoji-preview-height-full","0px"),Object.keys(ht).forEach((e=>{this.options[e]&&this.el.style.setProperty(ht[e],this.options[e].toString())}))}reinitialize(){this.renderSync()}onError(e){const t=this.viewFactory.create(Re,{message:this.i18n.get("error.load")}),o=this.el.offsetHeight||375;throw this.el.style.height=`${o}px`,this.el.replaceChildren(t.renderSync()),e}onDataReady(t){const o=Object.create(null,{render:{get:()=>super.render}});return e(this,void 0,void 0,(function*(){const e=this.el;try{t?this.emojiData=t:yield this.emojiDataPromise,"auto"===this.options.emojiVersion?this.emojiVersion=nt()||parseFloat("14.0"):this.emojiVersion=this.options.emojiVersion,this.categories=yield this.emojiData.getCategories(this.options);const[i,s,n,r]=this.buildChildViews();yield o.render.call(this,{isLoaded:!0,search:s,categoryTabs:r,emojiArea:n,preview:i,showHeader:Boolean(this.search||this.categoryTabs),theme:this.options.theme,className:this.options.className}),this.el.style.setProperty("--category-count",this.categories.length.toString()),this.pickerReady=!0,e.replaceWith(this.el),this.setStyleProperties(),this.initializePickerView(),this.setInitialFocus(),this.externalEvents.emit("data:ready")}catch(e){this.events.emit("error",e)}}))}renderSync(){if(super.renderSync({isLoaded:!1,theme:this.options.theme,showSearch:this.options.showSearch,showPreview:this.options.showPreview,showCategoryTabs:this.options.showCategoryTabs,showHeader:this.options.showSearch||this.options.showCategoryTabs,emojiCount:this.options.emojisPerRow*this.options.visibleRows}),!this.options.rootElement)throw new Error("Picker must be given a root element via the rootElement option");return this.options.rootElement.replaceChildren(this.el),this.setStyleProperties(),this.pickerReady&&this.initializePickerView(),this.el}setInitialFocus(){this.pickerReady&&(this.search&&this.options.autoFocusSearch?this.search.focus():this.emojiArea.focusableEmoji.focus())}reset(){this.pickerReady&&(this.emojiArea.reset(),this.showContent(this.emojiArea)),this.search&&this.search.clear()}showContent(e=this.emojiArea){var t,o;e!==this.currentView&&(this.currentView!==this.emojiArea&&(null===(t=this.currentView)||void 0===t||t.destroy()),this.ui.pickerContent.classList.toggle(lt.fullHeight,e!==this.emojiArea),this.ui.pickerContent.replaceChildren(e.el),this.currentView=e,e===this.emojiArea?(this.emojiArea.reset(),this.categoryTabs&&this.ui.header.appendChild(this.categoryTabs.el)):null===(o=this.categoryTabs)||void 0===o||o.el.remove());}hideVariantPopup(){var e;null===(e=this.variantPopup)||void 0===e||e.destroy()}isPickerClick(e){var t,o;const i=e.target,s=this.el.contains(i),n=null===(o=null===(t=this.variantPopup)||void 0===t?void 0:t.el)||void 0===o?void 0:o.contains(i);return s||n}selectEmoji({emoji:t}){var o,i;return e(this,void 0,void 0,(function*(){(null===(o=t.skins)||void 0===o?void 0:o.length)&&this.options.showVariants&&!this.isVariantPopupOpen?this.showVariantPopup(t):(yield null===(i=this.variantPopup)||void 0===i?void 0:i.animateHide(),this.events.emit("variantPopup:hide"),yield this.emitEmoji(t))}))}get isVariantPopupOpen(){return this.variantPopup&&!this.variantPopup.isDestroyed}showVariantPopup(t){return e(this,void 0,void 0,(function*(){const e=document.activeElement;this.events.once("variantPopup:hide",(()=>{null==e||e.focus()})),this.variantPopup=this.viewFactory.create(Xe,{emoji:t,parent:this.el}),this.el.appendChild(this.variantPopup.renderSync()),this.variantPopup.activate()}))}emitEmoji(t){return e(this,void 0,void 0,(function*(){this.externalEvents.emit("emoji:select",yield this.renderer.doEmit(t)),this.options.recentsProvider.addOrUpdateRecent(t,this.options.maxRecents),this.events.emit("recent:add",t)}))}}class mt{constructor({events:e,i18n:t,renderer:o,emojiData:i,options:s,customEmojis:n=[],pickerId:r}){this.events=e,this.i18n=t,this.renderer=o,this.emojiData=i,this.options=s,this.customEmojis=n,this.pickerId=r}setEmojiData(e){this.emojiData=Promise.resolve(e)}create(e,...t){const o=new e(...t);return o.setPickerId(this.pickerId),o.setEvents(this.events),o.setI18n(this.i18n),o.setRenderer(this.renderer),o.setEmojiData(this.emojiData),o.setOptions(this.options),o.setCustomEmojis(this.customEmojis),o.viewFactory=this,o.initialize(),o}}var ut;class gt{constructor(e={}){ut.set(this,void 0),o(this,ut,new Map(Object.entries(e)),"f")}get(e,o=e){return t(this,ut,"f").get(e)||o}}ut=new WeakMap;let vt=0;function pt(e){const t=re(e),o=((null==t?void 0:t.custom)||[]).map((e=>Object.assign(Object.assign({},e),{custom:!0,tags:["custom",...e.tags||[]]}))),i=new me,s=function(e){return _(e.locale,e.dataStore,e.messages,e.emojiData)}(t),n=new gt(t.i18n);s.then((e=>{i.emit("data:ready",e)})).catch((e=>{i.emit("error",e)}));const r=new mt({events:i,i18n:n,customEmojis:o,renderer:t.renderer,options:t,emojiData:s,pickerId:`picmo-${Date.now()}-${vt++}`}).create(dt);return r.renderSync(),r}const yt={};function ft(e){return yt[e]||(yt[e]=new wt(e)),yt[e]}ft.deleteDatabase=e=>{};class wt extends Z{open(){return Promise.resolve()}delete(){return Promise.resolve()}close(){}isPopulated(){return Promise.resolve(!1)}getEmojiCount(){return Promise.resolve(this.emojis.length)}getEtags(){return Promise.resolve({foo:"bar"})}getHash(){return Promise.resolve("")}populate(e){return this.categories=e.groups,this.emojis=e.emojis,Promise.resolve()}getCategories(e){var t;let o=this.categories.filter((e=>"component"!==e.key));if(e.showRecents&&o.unshift({key:"recents",order:-1}),(null===(t=e.custom)||void 0===t?void 0:t.length)&&o.push({key:"custom",order:10}),e.categories){const t=e.categories;o=o.filter((e=>t.includes(e.key))),o.sort(((e,o)=>t.indexOf(e.key)-t.indexOf(o.key)))}else o.sort(((e,t)=>e.order-t.order));return Promise.resolve(o)}getEmojis(e,t){const o=this.emojis.filter((t=>t.group===e.order)).filter((e=>e.version<=t)).sort(((e,t)=>null!=e.order&&null!=t.order?e.order-t.order:0)).map(Q);return Promise.resolve(Y(o,t))}searchEmojis(e,t,o,i){const s=this.emojis.filter((t=>X(t,e,i))).map(Q),n=t.filter((t=>X(t,e,i))),r=[...Y(s,o),...n];return Promise.resolve(r)}setMeta(e){this.meta=e}}class bt extends ie{constructor(){super(sessionStorage)}}function _t(t,o,i,s){return e(this,void 0,void 0,(function*(){(yield _(t,o,i,s)).close()}))}export{dt as EmojiPicker,de as Events,C as FocusTrap,ft as InMemoryStoreFactory,ee as IndexedDbStoreFactory,se as LocalStorageProvider,U as NativeRenderer,oe as RecentsProvider,O as Renderer,bt as SessionStorageProvider,g as animate,K as autoTheme,d as caseInsensitiveIncludes,p as computeHash,_t as createDatabase,pt as createPicker,W as darkTheme,u as debounce,j as deleteDatabase,G as en,l as getEmojiForEvent,re as getOptions,q as lightTheme,h as shouldAnimate,m as throttle,v as toElement};