(function(){try{var t=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},e=new t.Error().stack;e&&(t._sentryDebugIds=t._sentryDebugIds||{},t._sentryDebugIds[e]="3c737308-4b08-4318-b77a-4f5f4ff68c07",t._sentryDebugIdIdentifier="sentry-dbid-3c737308-4b08-4318-b77a-4f5f4ff68c07")}catch{}})();function z(t){if(typeof t!="string"||!t)throw new Error("expected a non-empty string, got: "+t)}function Y(t){if(typeof t!="number")throw new Error("expected a number, got: "+t)}const ut=1,lt=1,L="emoji",$="keyvalue",de="favorites",ft="tokens",Ce="tokens",mt="unicode",Ie="count",pt="group",ht="order",Ae="group-order",ie="eTag",W="url",ye="skinTone",M="readonly",ue="readwrite",De="skinUnicodes",gt="skinUnicodes",bt="https://cdn.jsdelivr.net/npm/emoji-picker-element-data@^1/en/emojibase/data.json",yt="en";function kt(t,e){const n=new Set,i=[];for(const r of t){const o=e(r);n.has(o)||(n.add(o),i.push(r))}return i}function ke(t){return kt(t,e=>e.unicode)}function Et(t){function e(n,i,r){const o=i?t.createObjectStore(n,{keyPath:i}):t.createObjectStore(n);if(r)for(const[a,[f,m]]of Object.entries(r))o.createIndex(a,f,{multiEntry:m});return o}e($),e(L,mt,{[Ce]:[ft,!0],[Ae]:[[pt,ht]],[De]:[gt,!0]}),e(de,void 0,{[Ie]:[""]})}const re={},G={},V={};function Le(t,e,n){n.onerror=()=>e(n.error),n.onblocked=()=>e(new Error("IDB blocked")),n.onsuccess=()=>t(n.result)}async function vt(t){const e=await new Promise((n,i)=>{const r=indexedDB.open(t,ut);re[t]=r,r.onupgradeneeded=o=>{o.oldVersionle(t),e}function wt(t){return G[t]||(G[t]=vt(t)),G[t]}function A(t,e,n,i){return new Promise((r,o)=>{const a=t.transaction(e,n,{durability:"relaxed"}),f=typeof e=="string"?a.objectStore(e):e.map(d=>a.objectStore(d));let m;i(f,a,d=>{m=d}),a.oncomplete=()=>r(m),a.onerror=()=>o(a.error)})}function le(t){const e=re[t],n=e&&e.result;if(n){n.close();const i=V[t];if(i)for(const r of i)r()}delete re[t],delete G[t],delete V[t]}function Tt(t){return new Promise((e,n)=>{le(t);const i=indexedDB.deleteDatabase(t);Le(e,n,i)})}function jt(t,e){let n=V[t];n||(n=V[t]=[]),n.push(e)}const St=new Set([":D","XD",":'D","O:)",":X",":P",";P","XP",":L",":Z",":j","8D","XO","8)",":B",":O",":S",":'o","Dx","X(","D:",":C",">0)",":3","!e.match(/\w/)||St.has(e)?e.toLowerCase():e.replace(/[)(:,]/g,"").replace(/’/g,"'").toLowerCase()).filter(Boolean)}const xt=2;function Oe(t){return t.filter(Boolean).map(e=>e.toLowerCase()).filter(e=>e.length>=xt)}function _t(t){return t.map(({annotation:n,emoticon:i,group:r,order:o,shortcodes:a,skins:f,tags:m,emoji:d,version:u})=>{const h=[...new Set(Oe([...(a||[]).map(O).flat(),...(m||[]).map(O).flat(),...O(n),i]))].sort(),l={annotation:n,group:r,order:o,tags:m,tokens:h,unicode:d,version:u};if(i&&(l.emoticon=i),a&&(l.shortcodes=a),f){l.skinTones=[],l.skinUnicodes=[],l.skinVersions=[];for(const{tone:g,emoji:w,version:j}of f)l.skinTones.push(g),l.skinUnicodes.push(w),l.skinVersions.push(j)}return l})}function $e(t,e,n,i){t[e](n).onsuccess=r=>i&&i(r.target.result)}function D(t,e,n){$e(t,"get",e,n)}function Me(t,e,n){$e(t,"getAll",e,n)}function fe(t){t.commit&&t.commit()}function Ct(t,e){let n=t[0];for(let i=1;ie(r)&&(n=r)}return n}function Fe(t,e){const n=Ct(t,r=>r.length),i=[];for(const r of n)t.some(o=>o.findIndex(a=>e(a)===e(r))===-1)||i.push(r);return i}async function It(t){return!await me(t,$,W)}async function At(t,e,n){const[i,r]=await Promise.all([ie,W].map(o=>me(t,$,o)));return i===n&&r===e}async function Dt(t,e){return A(t,L,M,(i,r,o)=>{let a;const f=()=>{i.getAll(a&&IDBKeyRange.lowerBound(a,!0),50).onsuccess=m=>{const d=m.target.result;for(const u of d)if(a=u.unicode,e(u))return o(u);if(d.length<50)return o();f()}};f()})}async function Be(t,e,n,i){try{const r=_t(e);await A(t,[L,$],ue,([o,a],f)=>{let m,d,u=0;function h(){++u===2&&l()}function l(){if(!(m===i&&d===n)){o.clear();for(const g of r)o.put(g);a.put(i,ie),a.put(n,W),fe(f)}}D(a,ie,g=>{m=g,h()}),D(a,W,g=>{d=g,h()})})}finally{}}async function Lt(t,e){return A(t,L,M,(n,i,r)=>{const o=IDBKeyRange.bound([e,0],[e+1,0],!1,!0);Me(n.index(Ae),o,r)})}async function Re(t,e){const n=Oe(O(e));return n.length?A(t,L,M,(i,r,o)=>{const a=[],f=()=>{a.length===n.length&&m()},m=()=>{const d=Fe(a,u=>u.unicode);o(d.sort((u,h)=>u.order{a.push(l),f()})}}):[]}async function Ot(t,e){const n=await Re(t,e);return n.length?n.filter(i=>(i.shortcodes||[]).map(o=>o.toLowerCase()).includes(e.toLowerCase()))[0]||null:await Dt(t,r=>(r.shortcodes||[]).includes(e.toLowerCase()))||null}async function $t(t,e){return A(t,L,M,(n,i,r)=>D(n,e,o=>{if(o)return r(o);D(n.index(De),e,a=>r(a||null))}))}function me(t,e,n){return A(t,e,M,(i,r,o)=>D(i,n,o))}function Mt(t,e,n,i){return A(t,e,ue,(r,o)=>{r.put(i,n),fe(o)})}function Ft(t,e){return A(t,de,ue,(n,i)=>D(n,e,r=>{n.put((r||0)+1,e),fe(i)}))}function Bt(t,e,n){return n===0?[]:A(t,[de,L],M,([i,r],o,a)=>{const f=[];i.index(Ie).openCursor(void 0,"prev").onsuccess=m=>{const d=m.target.result;if(!d)return a(f);function u(g){if(f.push(g),f.length===n)return a(f);d.continue()}const h=d.primaryKey,l=e.byName(h);if(l)return u(l);D(r,h,g=>{if(g)return u(g);d.continue()})}})}const P="";function Rt(t,e){const n=new Map;for(const r of t){const o=e(r);for(const a of o){let f=n;for(let d=0;d{let a=n;for(let d=0;dh[0]!(i in t[0])));if(!e||n)throw new Error("Custom emojis are in the wrong format")}function Ee(t){zt(t);const e=(l,g)=>l.name.toLowerCase(){const g=new Set;if(l.shortcodes)for(const w of l.shortcodes)for(const j of O(w))g.add(j);return g}),o=l=>r(l,!0),a=l=>r(l,!1),f=l=>{const g=O(l),w=g.map((j,C)=>(Cj.name).sort(e)},m=new Map,d=new Map;for(const l of t){d.set(l.name.toLowerCase(),l);for(const g of l.shortcodes||[])m.set(g.toLowerCase(),l)}return{all:n,search:f,byShortcode:l=>m.get(l.toLowerCase()),byName:l=>d.get(l.toLowerCase())}}const Pt=typeof wrappedJSObject<"u";function B(t){if(!t)return t;if(Pt&&(t=structuredClone(t)),delete t.tokens,t.skinTones){const e=t.skinTones.length;t.skins=Array(e);for(let n=0;n!(e in t[0])))throw new Error("Emoji data is in the wrong format")}function ze(t,e){if(Math.floor(t.status/100)!==2)throw new Error("Failed to fetch: "+e+": "+t.status)}async function Kt(t){const e=await fetch(t,{method:"HEAD"});ze(e,t);const n=e.headers.get("etag");return Ne(n),n}async function se(t){const e=await fetch(t);ze(e,t);const n=e.headers.get("etag");Ne(n);const i=await e.json();return Gt(i),[n,i]}function Wt(t){for(var e="",n=new Uint8Array(t),i=n.byteLength,r=-1;++r(this._ready||(this._ready=this._init()),this._ready);await e(),this._db||await e()}async getEmojiByGroup(e){return Y(e),await this.ready(),ke(await Lt(this._db,e)).map(B)}async getEmojiBySearchQuery(e){z(e),await this.ready();const n=this._custom.search(e),i=ke(await Re(this._db,e)).map(B);return[...n,...i]}async getEmojiByShortcode(e){z(e),await this.ready();const n=this._custom.byShortcode(e);return n||B(await Ot(this._db,e))}async getEmojiByUnicodeOrName(e){z(e),await this.ready();const n=this._custom.byName(e);return n||B(await $t(this._db,e))}async getPreferredSkinTone(){return await this.ready(),await me(this._db,$,ye)||0}async setPreferredSkinTone(e){return Y(e),await this.ready(),Mt(this._db,$,ye,e)}async incrementFavoriteEmojiCount(e){return z(e),await this.ready(),Ft(this._db,e)}async getTopFavoriteEmoji(e){return Y(e),await this.ready(),(await Bt(this._db,this._custom,e)).map(B)}set customEmoji(e){this._custom=Ee(e)}get customEmoji(){return this._custom.all}async _shutdown(){await this.ready();try{await this._lazyUpdate}catch{}}_clear(){this._db=this._ready=this._lazyUpdate=void 0}async close(){await this._shutdown(),await le(this._dbName)}async delete(){await this._shutdown(),await Tt(this._dbName)}}const ae=[[-1,"\u2728","custom"],[0,"\u{1F600}","smileys-emotion"],[1,"\u{1F44B}","people-body"],[3,"\u{1F431}","animals-nature"],[4,"\u{1F34E}","food-drink"],[5,"\u{1F3E0}\uFE0F","travel-places"],[6,"\u26BD","activities"],[7,"\u{1F4DD}","objects"],[8,"\u26D4\uFE0F","symbols"],[9,"\u{1F3C1}","flags"]].map(([t,e,n])=>({id:t,emoji:e,name:n})),Z=ae.slice(1),Yt=2,ve=6,Ue=typeof requestIdleCallback=="function"?requestIdleCallback:setTimeout;function we(t){return t.unicode.includes("\u200D")}const Zt={"\u{1FAE9}":16,"\u{1FAE8}":15.1,"\u{1FAE0}":14,"\u{1F972}":13.1,"\u{1F97B}":12.1,"\u{1F970}":11,"\u{1F929}":5,"\u{1F471}\u200D\u2640\uFE0F":4,"\u{1F923}":3,"\u{1F441}\uFE0F\u200D\u{1F5E8}\uFE0F":2,"\u{1F600}":1,"\u{1F610}\uFE0F":.7,"\u{1F603}":.6},Jt=1e3,Qt="\u{1F590}\uFE0F",en=8,tn=["\u{1F60A}","\u{1F612}","\u2764\uFE0F","\u{1F44D}\uFE0F","\u{1F60D}","\u{1F602}","\u{1F62D}","\u263A\uFE0F","\u{1F614}","\u{1F629}","\u{1F60F}","\u{1F495}","\u{1F64C}","\u{1F618}"],Ge='"Twemoji Mozilla","Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji","EmojiOne Color","Android Emoji",sans-serif',nn=(t,e)=>te?1:0,Te=(t,e)=>{const n=document.createElement("canvas");n.width=n.height=1;const i=n.getContext("2d",{willReadFrequently:!0});return i.textBaseline="top",i.font=`100px ${Ge}`,i.fillStyle=e,i.scale(.01,.01),i.fillText(t,0,0),i.getImageData(0,0,1,1).data},on=(t,e)=>{const n=[...t].join(","),i=[...e].join(",");return n===i&&!n.startsWith("0,0,0,")};function rn(t){const e=Te(t,"#000"),n=Te(t,"#fff");return e&&n&&on(e,n)}function sn(){const t=Object.entries(Zt);try{for(const[e,n]of t)if(rn(e))return n}catch{}finally{}return t[0][1]}let J;const Q=()=>(J||(J=new Promise(t=>Ue(()=>t(sn())))),J),ce=new Map,an="\uFE0F",cn="\uD83C",dn="\u200D",un=127995,ln=57339;function fn(t,e){if(e===0)return t;const n=t.indexOf(dn);return n!==-1?t.substring(0,n)+String.fromCodePoint(un+e-1)+t.substring(n):(t.endsWith(an)&&(t=t.substring(0,t.length-1)),t+cn+String.fromCodePoint(ln+e-1))}function I(t){t.preventDefault(),t.stopPropagation()}function ee(t,e,n){return e+=t?-1:1,e<0?e=n.length-1:e>=n.length&&(e=0),e}function Ke(t,e){const n=new Set,i=[];for(const r of t){const o=e(r);n.has(o)||(n.add(o),i.push(r))}return i}function mn(t,e){const n=i=>{const r={};for(const o of i)typeof o.tone=="number"&&o.version<=e&&(r[o.tone]=o.unicode);return r};return t.map(({unicode:i,skins:r,shortcodes:o,url:a,name:f,category:m,annotation:d})=>({unicode:i,name:f,shortcodes:o,url:a,category:m,annotation:d,id:i||f,skins:r&&n(r)}))}const K=requestAnimationFrame;let pn=typeof ResizeObserver=="function";function hn(t,e,n){let i;pn?(i=new ResizeObserver(n),i.observe(t)):K(n),e.addEventListener("abort",()=>{i&&i.disconnect()})}function je(t){{const e=document.createRange();return e.selectNode(t.firstChild),e.getBoundingClientRect().width}}let te;function gn(t,e,n){let i=!0;for(const r of t){const o=n(r),a=je(o);typeof te>"u"&&(te=je(e));const f=a/1.8e)}function yn(t){t&&(t.scrollTop=0)}function R(t,e,n){let i=t.get(e);return i||(i=n(),t.set(e,i)),i}function Se(t){return""+t}function kn(t){const e=document.createElement("template");return e.innerHTML=t,e}const En=new WeakMap,vn=new WeakMap,wn=Symbol("un-keyed"),Tn="replaceChildren"in Element.prototype;function jn(t,e){Tn?t.replaceChildren(...e):(t.innerHTML="",t.append(...e))}function Sn(t,e){let n=t.firstChild,i=0;for(;n;){if(e[i]!==n)return!0;n=n.nextSibling,i++}return i!==e.length}function xn(t,e){const{targetNode:n}=e;let{targetParentNode:i}=e,r=!1;i?r=Sn(i,t):(r=!0,e.targetNode=void 0,e.targetParentNode=i=n.parentNode),r&&jn(i,t)}function _n(t,e){for(const n of e){const{targetNode:i,currentExpression:r,binding:{expressionIndex:o,attributeName:a,attributeValuePre:f,attributeValuePost:m}}=n,d=t[o];if(r!==d)if(n.currentExpression=d,a)i.setAttribute(a,f+Se(d)+m);else{let u;Array.isArray(d)?xn(d,n):d instanceof Element?(u=d,i.replaceWith(u)):i.nodeValue=Se(d),u&&(n.targetNode=u)}}}function Cn(t){let e="",n=!1,i=!1,r=-1;const o=new Map,a=[];for(let m=0,d=t.length;m":{n=!1,i=!1;break}case"=":{i=!0;break}}const h=a[a.length-1],l=R(o,h,()=>[]);let g,w,j;if(i){const S=/(\S+)="?([^"=]*)$/.exec(u);g=S[1],w=S[2],j=/^[^">]*/.exec(t[m+1])[0]}const C={attributeName:g,attributeValuePre:w,attributeValuePost:j,expressionIndex:m};l.push(C),!n&&!i&&(e+=" ")}return{template:kn(e),elementsToBindings:o}}function xe(t,e,n){for(let i=0;iCn(t)),i=e.cloneNode(!0).content.firstElementChild,r=In(i,n);return function(a){return _n(a,r),i}}function Dn(t){const e=R(vn,t,()=>new Map);let n=wn;function i(o,...a){const f=R(e,o,()=>new Map);return R(f,n,()=>An(o))(a)}function r(o,a,f){return o.map((m,d)=>{const u=n;n=f(m);try{return a(m,d)}finally{n=u}})}return{map:r,html:i}}function Ln(t,e,n,i,r,o,a,f,m){const{labelWithSkin:d,titleForEmoji:u,unicodeWithSkin:h}=n,{html:l,map:g}=Dn(e);function w(y,k,T){return g(y,(x,F)=>l``,x=>`${T}-${x.id}`)}const C=(()=>l`
${e.i18n.searchDescription}
${e.i18n.skinToneDescription}
${g(e.skinTones,(y,k)=>l`
${y}
`,y=>y)}
${g(e.currentEmojisWithCategories,(y,k)=>l`
${w(y.emojis,e.searchMode,"emo")}
`,y=>y.category)}
`)(),S=(y,k)=>{for(const T of t.querySelectorAll(`[${y}]`))k(T,T.getAttribute(y))};if(m){t.appendChild(C);for(const y of["click","focusout","input","keydown","keyup"])S(`data-on-${y}`,(k,T)=>{k.addEventListener(y,i[T])});S("data-ref",(y,k)=>{o[k]=y}),a.addEventListener("abort",()=>{t.removeChild(C)})}S("data-action",(y,k)=>{let T=f.get(k);T||f.set(k,T=new WeakSet),T.has(y)||(T.add(y),r[k](y))})}const H=typeof queueMicrotask=="function"?queueMicrotask:t=>Promise.resolve().then(t);function On(t){let e=!1,n;const i=new Map,r=new Set;let o;const a=()=>{if(e)return;const d=[...r];r.clear();try{for(const u of d)u()}finally{o=!1,r.size&&(o=!0,H(a))}},f=new Proxy({},{get(d,u){if(n){let h=i.get(u);h||(h=new Set,i.set(u,h)),h.add(n)}return d[u]},set(d,u,h){if(d[u]!==h){d[u]=h;const l=i.get(u);if(l){for(const g of l)r.add(g);o||(o=!0,H(a))}}return!0}}),m=d=>{const u=()=>{const h=n;n=u;try{return d()}finally{n=h}};return u()};return t.addEventListener("abort",()=>{e=!0}),{state:f,createEffect:m}}function ne(t,e,n){if(t.length!==e.length)return!1;for(let i=0;i{r.disconnect()})),r.observe(t)}}const oe=[],{assign:U}=Object;function Mn(t,e){const n={},i=new AbortController,r=i.signal,{state:o,createEffect:a}=On(r),f=new Map;U(o,{skinToneEmoji:void 0,i18n:void 0,database:void 0,customEmoji:void 0,customCategorySorting:void 0,emojiVersion:void 0}),U(o,e),U(o,{initialLoad:!0,currentEmojis:[],currentEmojisWithCategories:[],rawSearchText:"",searchText:"",searchMode:!1,activeSearchItem:-1,message:void 0,skinTonePickerExpanded:!1,skinTonePickerExpandedAfterAnimation:!1,currentSkinTone:0,activeSkinTone:0,skinToneButtonText:void 0,pickerStyle:void 0,skinToneButtonLabel:"",skinTones:[],currentFavorites:[],defaultFavoriteEmojis:void 0,numColumns:en,isRtl:!1,currentGroupIndex:0,groups:Z,databaseLoaded:!1,activeSearchItemId:void 0}),a(()=>{o.currentGroup!==o.groups[o.currentGroupIndex]&&(o.currentGroup=o.groups[o.currentGroupIndex])});const m=s=>{t.getElementById(s).focus()},d=s=>t.getElementById(`emo-${s.id}`),u=(s,c)=>{n.rootElement.dispatchEvent(new CustomEvent(s,{detail:c,bubbles:!0,composed:!0}))},h=(s,c)=>s.id===c.id,l=(s,c)=>{const{category:p,emojis:b}=s,{category:E,emojis:v}=c;return p!==E?!1:ne(b,v,h)},g=s=>{ne(o.currentEmojis,s,h)||(o.currentEmojis=s)},w=s=>{o.searchMode!==s&&(o.searchMode=s)},j=s=>{ne(o.currentEmojisWithCategories,s,l)||(o.currentEmojisWithCategories=s)},C=(s,c)=>c&&s.skins&&s.skins[c]||s.unicode,k={labelWithSkin:(s,c)=>bn([s.name||C(s,c),s.annotation,...s.shortcodes||oe].filter(Boolean)).join(", "),titleForEmoji:s=>s.annotation||(s.shortcodes||oe).join(", "),unicodeWithSkin:C},T={onClickSkinToneButton:rt,onEmojiClick:ot,onNavClick:tt,onNavKeydown:nt,onSearchKeydown:et,onSkinToneOptionsClick:it,onSkinToneOptionsFocusOut:ct,onSkinToneOptionsKeydown:st,onSkinToneOptionsKeyup:at,onSearchInput:dt},x={calculateEmojiGridStyle:qe,updateOnIntersection:Xe};let F=!0;a(()=>{Ln(t,o,k,T,x,n,r,f,F),F=!1}),o.emojiVersion||Q().then(s=>{s||(o.message=o.i18n.emojiUnsupportedMessage)}),a(()=>{async function s(){let c=!1;const p=setTimeout(()=>{c=!0,o.message=o.i18n.loadingMessage},Jt);try{await o.database.ready(),o.databaseLoaded=!0}catch(b){console.error(b),o.message=o.i18n.networkErrorMessage}finally{clearTimeout(p),c&&(c=!1,o.message="")}}o.database&&s()}),a(()=>{o.pickerStyle=` --num-groups: ${o.groups.length}; --indicator-opacity: ${o.searchMode?0:1}; --num-skintones: ${ve};`}),a(()=>{o.customEmoji&&o.database&&pe()}),a(()=>{o.customEmoji&&o.customEmoji.length?o.groups!==ae&&(o.groups=ae):o.groups!==Z&&(o.currentGroupIndex&&o.currentGroupIndex--,o.groups=Z)}),a(()=>{async function s(){o.databaseLoaded&&(o.currentSkinTone=await o.database.getPreferredSkinTone())}s()}),a(()=>{o.skinTones=Array(ve).fill().map((s,c)=>fn(o.skinToneEmoji,c))}),a(()=>{o.skinToneButtonText=o.skinTones[o.currentSkinTone]}),a(()=>{o.skinToneButtonLabel=o.i18n.skinToneLabel.replace("{skinTone}",o.i18n.skinTones[o.currentSkinTone])}),a(()=>{async function s(){const{database:c}=o,p=(await Promise.all(tn.map(b=>c.getEmojiByUnicodeOrName(b)))).filter(Boolean);o.defaultFavoriteEmojis=p}o.databaseLoaded&&s()});function pe(){const{customEmoji:s,database:c}=o,p=s||oe;c.customEmoji!==p&&(c.customEmoji=p)}a(()=>{async function s(){pe();const{database:c,defaultFavoriteEmojis:p,numColumns:b}=o,E=await c.getTopFavoriteEmoji(b),v=await q(Ke([...E,...p],_=>_.unicode||_.name).slice(0,b));o.currentFavorites=v}o.databaseLoaded&&o.defaultFavoriteEmojis&&s()});function qe(s){hn(s,r,()=>{{const c=getComputedStyle(n.rootElement),p=parseInt(c.getPropertyValue("--num-columns"),10),b=c.getPropertyValue("direction")==="rtl";o.numColumns=p,o.isRtl=b}})}function Xe(s){$n(s,r,c=>{for(const{target:p,isIntersecting:b}of c)p.classList.toggle("onscreen",b)})}a(()=>{async function s(){const{searchText:c,currentGroup:p,databaseLoaded:b,customEmoji:E}=o;if(!b)o.currentEmojis=[],o.searchMode=!1;else if(c.length>=Yt){const v=await Qe(c);o.searchText===c&&(g(v),w(!0))}else{const{id:v}=p;if(v!==-1||E&&E.length){const _=await Je(v);o.currentGroup.id===v&&(g(_),w(!1))}}}s()});const he=()=>{K(()=>yn(n.tabpanelElement))};a(()=>{const{currentEmojis:s,emojiVersion:c}=o,p=s.filter(b=>b.unicode).filter(b=>we(b)&&!ce.has(b.unicode));if(!c&&p.length)g(s),K(()=>Ye(p));else{const b=c?s:s.filter(Ze);g(b),he()}});function Ye(s){gn(s,n.baselineEmoji,d)?he():o.currentEmojis=[...o.currentEmojis]}function Ze(s){return!s.unicode||!we(s)||ce.get(s.unicode)}async function ge(s){const c=o.emojiVersion||await Q();return s.filter(({version:p})=>!p||p<=c)}async function q(s){return mn(s,o.emojiVersion||await Q())}async function Je(s){const c=s===-1?o.customEmoji:await o.database.getEmojiByGroup(s);return q(await ge(c))}async function Qe(s){return q(await ge(await o.database.getEmojiBySearchQuery(s)))}a(()=>{}),a(()=>{function s(){const{searchMode:p,currentEmojis:b}=o;if(p)return[{category:"",emojis:b}];const E=new Map;for(const v of b){const _=v.category||"";let N=E.get(_);N||(N=[],E.set(_,N)),N.push(v)}return[...E.entries()].map(([v,_])=>({category:v,emojis:_})).sort((v,_)=>o.customCategorySorting(v.category,_.category))}const c=s();j(c)}),a(()=>{o.activeSearchItemId=o.activeSearchItem!==-1&&o.currentEmojis[o.activeSearchItem].id}),a(()=>{const{rawSearchText:s}=o;Ue(()=>{o.searchText=(s||"").trim(),o.activeSearchItem=-1})});function et(s){if(!o.searchMode||!o.currentEmojis.length)return;const c=p=>{I(s),o.activeSearchItem=ee(p,o.activeSearchItem,o.currentEmojis)};switch(s.key){case"ArrowDown":return c(!1);case"ArrowUp":return c(!0);case"Enter":if(o.activeSearchItem===-1)o.activeSearchItem=0;else return I(s),be(o.currentEmojis[o.activeSearchItem].id)}}function tt(s){const{target:c}=s,p=c.closest(".nav-button");if(!p)return;const b=parseInt(p.dataset.groupId,10);n.searchElement.value="",o.rawSearchText="",o.searchText="",o.activeSearchItem=-1,o.currentGroupIndex=o.groups.findIndex(E=>E.id===b)}function nt(s){const{target:c,key:p}=s,b=E=>{E&&(I(s),E.focus())};switch(p){case"ArrowLeft":return b(c.previousElementSibling);case"ArrowRight":return b(c.nextElementSibling);case"Home":return b(c.parentElement.firstElementChild);case"End":return b(c.parentElement.lastElementChild)}}async function be(s){const c=await o.database.getEmojiByUnicodeOrName(s),p=[...o.currentEmojis,...o.currentFavorites].find(E=>E.id===s),b=p.unicode&&C(p,o.currentSkinTone);await o.database.incrementFavoriteEmojiCount(s),u("emoji-click",{emoji:c,skinTone:o.currentSkinTone,...b&&{unicode:b},...p.name&&{name:p.name}})}async function ot(s){const{target:c}=s;if(!c.classList.contains("emoji"))return;I(s);const p=c.id.substring(4);be(p)}function X(s){o.currentSkinTone=s,o.skinTonePickerExpanded=!1,m("skintone-button"),u("skin-tone-change",{skinTone:s}),o.database.setPreferredSkinTone(s)}function it(s){const{target:{id:c}}=s,p=c&&c.match(/^skintone-(\d)/);if(!p)return;I(s);const b=parseInt(p[1],10);X(b)}function rt(s){o.skinTonePickerExpanded=!o.skinTonePickerExpanded,o.activeSkinTone=o.currentSkinTone,o.skinTonePickerExpanded&&(I(s),K(()=>m("skintone-list")))}a(()=>{o.skinTonePickerExpanded?n.skinToneDropdown.addEventListener("transitionend",()=>{o.skinTonePickerExpandedAfterAnimation=!0},{once:!0}):o.skinTonePickerExpandedAfterAnimation=!1});function st(s){if(!o.skinTonePickerExpanded)return;const c=async p=>{I(s),o.activeSkinTone=p};switch(s.key){case"ArrowUp":return c(ee(!0,o.activeSkinTone,o.skinTones));case"ArrowDown":return c(ee(!1,o.activeSkinTone,o.skinTones));case"Home":return c(0);case"End":return c(o.skinTones.length-1);case"Enter":return I(s),X(o.activeSkinTone);case"Escape":return I(s),o.skinTonePickerExpanded=!1,m("skintone-button")}}function at(s){if(!!o.skinTonePickerExpanded)switch(s.key){case" ":return I(s),X(o.activeSkinTone)}}async function ct(s){const{relatedTarget:c}=s;(!c||c.id!=="skintone-list")&&(o.skinTonePickerExpanded=!1)}function dt(s){o.rawSearchText=s.target.value}return{$set(s){U(o,s)},$destroy(){i.abort()}}}const Fn="https://cdn.jsdelivr.net/npm/emoji-picker-element-data@^1/en/emojibase/data.json",Bn="en";var Rn={categoriesLabel:"Categories",emojiUnsupportedMessage:"Your browser does not support color emoji.",favoritesLabel:"Favorites",loadingMessage:"Loading\u2026",networkErrorMessage:"Could not load emoji.",regionLabel:"Emoji picker",searchDescription:"When search results are available, press up or down to select and enter to choose.",searchLabel:"Search",searchResultsLabel:"Search results",skinToneDescription:"When expanded, press up or down to select and enter to choose.",skinToneLabel:"Choose a skin tone (currently {skinTone})",skinTonesLabel:"Skin tones",skinTones:["Default","Light","Medium-Light","Medium","Medium-Dark","Dark"],categories:{custom:"Custom","smileys-emotion":"Smileys and emoticons","people-body":"People and body","animals-nature":"Animals and nature","food-drink":"Food and drink","travel-places":"Travel and places",activities:"Activities",objects:"Objects",symbols:"Symbols",flags:"Flags"}},Nn=':host{--emoji-size:1.375rem;--emoji-padding:0.5rem;--category-emoji-size:var(--emoji-size);--category-emoji-padding:var(--emoji-padding);--indicator-height:3px;--input-border-radius:0.5rem;--input-border-size:1px;--input-font-size:1rem;--input-line-height:1.5;--input-padding:0.25rem;--num-columns:8;--outline-size:2px;--border-size:1px;--border-radius:0;--skintone-border-radius:1rem;--category-font-size:1rem;display:flex;width:min-content;height:400px}:host,:host(.light){color-scheme:light;--background:#fff;--border-color:#e0e0e0;--indicator-color:#385ac1;--input-border-color:#999;--input-font-color:#111;--input-placeholder-color:#999;--outline-color:#999;--category-font-color:#111;--button-active-background:#e6e6e6;--button-hover-background:#d9d9d9}:host(.dark){color-scheme:dark;--background:#222;--border-color:#444;--indicator-color:#5373ec;--input-border-color:#ccc;--input-font-color:#efefef;--input-placeholder-color:#ccc;--outline-color:#fff;--category-font-color:#efefef;--button-active-background:#555555;--button-hover-background:#484848}@media (prefers-color-scheme:dark){:host{color-scheme:dark;--background:#222;--border-color:#444;--indicator-color:#5373ec;--input-border-color:#ccc;--input-font-color:#efefef;--input-placeholder-color:#ccc;--outline-color:#fff;--category-font-color:#efefef;--button-active-background:#555555;--button-hover-background:#484848}}:host([hidden]){display:none}button{margin:0;padding:0;border:0;background:0 0;box-shadow:none;-webkit-tap-highlight-color:transparent}button::-moz-focus-inner{border:0}input{padding:0;margin:0;line-height:1.15;font-family:inherit}input[type=search]{-webkit-appearance:none}:focus{outline:var(--outline-color) solid var(--outline-size);outline-offset:calc(-1*var(--outline-size))}:host([data-js-focus-visible]) :focus:not([data-focus-visible-added]){outline:0}:focus:not(:focus-visible){outline:0}.hide-focus{outline:0}*{box-sizing:border-box}.picker{contain:content;display:flex;flex-direction:column;background:var(--background);border:var(--border-size) solid var(--border-color);border-radius:var(--border-radius);width:100%;height:100%;overflow:hidden;--total-emoji-size:calc(var(--emoji-size) + (2 * var(--emoji-padding)));--total-category-emoji-size:calc(var(--category-emoji-size) + (2 * var(--category-emoji-padding)))}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.hidden{opacity:0;pointer-events:none}.abs-pos{position:absolute;left:0;top:0}.gone{display:none!important}.skintone-button-wrapper,.skintone-list{background:var(--background);z-index:3}.skintone-button-wrapper.expanded{z-index:1}.skintone-list{position:absolute;inset-inline-end:0;top:0;z-index:2;overflow:visible;border-bottom:var(--border-size) solid var(--border-color);border-radius:0 0 var(--skintone-border-radius) var(--skintone-border-radius);will-change:transform;transition:transform .2s ease-in-out;transform-origin:center 0}@media (prefers-reduced-motion:reduce){.skintone-list{transition-duration:.001s}}@supports not (inset-inline-end:0){.skintone-list{right:0}}.skintone-list.no-animate{transition:none}.tabpanel{overflow-y:auto;scrollbar-gutter:stable;-webkit-overflow-scrolling:touch;will-change:transform;min-height:0;flex:1;contain:content}.emoji-menu{display:grid;grid-template-columns:repeat(var(--num-columns),var(--total-emoji-size));justify-content:space-around;align-items:flex-start;width:100%}.emoji-menu.visibility-auto{content-visibility:auto;contain-intrinsic-size:calc(var(--num-columns)*var(--total-emoji-size)) calc(var(--num-rows)*var(--total-emoji-size))}.category{padding:var(--emoji-padding);font-size:var(--category-font-size);color:var(--category-font-color)}.emoji,button.emoji{font-size:var(--emoji-size);display:flex;align-items:center;justify-content:center;border-radius:100%;height:var(--total-emoji-size);width:var(--total-emoji-size);line-height:1;overflow:hidden;font-family:var(--emoji-font-family);cursor:pointer}@media (hover:hover) and (pointer:fine){.emoji:hover,button.emoji:hover{background:var(--button-hover-background)}}.emoji.active,.emoji:active,button.emoji.active,button.emoji:active{background:var(--button-active-background)}.onscreen .custom-emoji::after{content:"";width:var(--emoji-size);height:var(--emoji-size);background-repeat:no-repeat;background-position:center center;background-size:contain;background-image:var(--custom-emoji-background)}.nav,.nav-button{align-items:center}.nav{display:grid;justify-content:space-between;contain:content}.nav-button{display:flex;justify-content:center}.nav-emoji{font-size:var(--category-emoji-size);width:var(--total-category-emoji-size);height:var(--total-category-emoji-size)}.indicator-wrapper{display:flex;border-bottom:1px solid var(--border-color)}.indicator{width:calc(100%/var(--num-groups));height:var(--indicator-height);opacity:var(--indicator-opacity);background-color:var(--indicator-color);will-change:transform,opacity;transition:opacity .1s linear,transform .25s ease-in-out}@media (prefers-reduced-motion:reduce){.indicator{will-change:opacity;transition:opacity .1s linear}}.pad-top,input.search{background:var(--background);width:100%}.pad-top{height:var(--emoji-padding);z-index:3}.search-row{display:flex;align-items:center;position:relative;padding-inline-start:var(--emoji-padding);padding-bottom:var(--emoji-padding)}.search-wrapper{flex:1;min-width:0}input.search{padding:var(--input-padding);border-radius:var(--input-border-radius);border:var(--input-border-size) solid var(--input-border-color);color:var(--input-font-color);font-size:var(--input-font-size);line-height:var(--input-line-height)}input.search::placeholder{color:var(--input-placeholder-color)}.favorites{overflow-y:auto;scrollbar-gutter:stable;display:flex;flex-direction:row;border-top:var(--border-size) solid var(--border-color);contain:content}.message{padding:var(--emoji-padding)}';const We=["customEmoji","customCategorySorting","database","dataSource","i18n","locale","skinToneEmoji","emojiVersion"],zn=`:host{--emoji-font-family:${Ge}}`;class Ve extends HTMLElement{constructor(e){super(),this.attachShadow({mode:"open"});const n=document.createElement("style");n.textContent=Nn+zn,this.shadowRoot.appendChild(n),this._ctx={locale:Bn,dataSource:Fn,skinToneEmoji:Qt,customCategorySorting:nn,customEmoji:null,i18n:Rn,emojiVersion:null,...e};for(const i of We)i!=="database"&&Object.prototype.hasOwnProperty.call(this,i)&&(this._ctx[i]=this[i],delete this[i]);this._dbFlush()}connectedCallback(){this._cmp||(this._cmp=Mn(this.shadowRoot,this._ctx))}disconnectedCallback(){H(()=>{if(!this.isConnected&&this._cmp){this._cmp.$destroy(),this._cmp=void 0;const{database:e}=this._ctx;e.close().catch(n=>console.error(n))}})}static get observedAttributes(){return["locale","data-source","skin-tone-emoji","emoji-version"]}attributeChangedCallback(e,n,i){this._set(e.replace(/-([a-z])/g,(r,o)=>o.toUpperCase()),e==="emoji-version"?parseFloat(i):i)}_set(e,n){this._ctx[e]=n,this._cmp&&this._cmp.$set({[e]:n}),["locale","dataSource"].includes(e)&&this._dbFlush()}_dbCreate(){const{locale:e,dataSource:n,database:i}=this._ctx;(!i||i.locale!==e||i.dataSource!==n)&&this._set("database",new Xt({locale:e,dataSource:n}))}_dbFlush(){H(()=>this._dbCreate())}}const He={};for(const t of We)He[t]={get(){return t==="database"&&this._dbCreate(),this._ctx[t]},set(e){if(t==="database")throw new Error("database is read-only");this._set(t,e)}};Object.defineProperties(Ve.prototype,He);customElements.get("emoji-picker")||customElements.define("emoji-picker",Ve);export{Ve as P};