UNPKG

@creaditor/newsletter-starterkit

Version:

Creaditor Newsletter Editor - Starterkit for creating beautiful email newsletters

2 lines β€’ 53.9 kB
/*! For license information please see 8550.creaditor.bundle.js.LICENSE.txt */ "use strict";(("undefined"!=typeof self?self:this).webpackChunkCreaditor=("undefined"!=typeof self?self:this).webpackChunkCreaditor||[]).push([[8550],{5015:()=>{function e(e){if("string"!=typeof e||!e)throw new Error("expected a non-empty string, got: "+e)}function t(e){if("number"!=typeof e)throw new Error("expected a number, got: "+e)}const n=1,o=1,i="emoji",r="keyvalue",s="favorites",a="tokens",c="tokens",l="unicode",d="count",u="group",h="order",p="group-order",m="eTag",f="url",g="skinTone",b="readonly",y="readwrite",v="skinUnicodes",k="skinUnicodes";function $(e){return function(e,t){const n=new Set,o=[];for(const i of e){const e=t(i);n.has(e)||(n.add(e),o.push(i))}return o}(e,(e=>e.unicode))}const w={},_={},E={};function j(e,t,n){n.onerror=()=>t(n.error),n.onblocked=()=>t(new Error("IDB blocked")),n.onsuccess=()=>e(n.result)}async function S(e){const t=await new Promise(((t,m)=>{const f=indexedDB.open(e,n);w[e]=f,f.onupgradeneeded=e=>{e.oldVersion<o&&function(e){function t(t,n,o){const i=n?e.createObjectStore(t,{keyPath:n}):e.createObjectStore(t);if(o)for(const[e,[t,n]]of Object.entries(o))i.createIndex(e,t,{multiEntry:n});return i}t(r),t(i,l,{[c]:[a,!0],[p]:[[u,h]],[v]:[k,!0]}),t(s,void 0,{[d]:[""]})}(f.result)},j(t,m,f)}));return t.onclose=()=>x(e),t}function A(e,t,n,o){return new Promise(((i,r)=>{const s=e.transaction(t,n,{durability:"relaxed"}),a="string"==typeof t?s.objectStore(t):t.map((e=>s.objectStore(e)));let c;o(a,s,(e=>{c=e})),s.oncomplete=()=>i(c),s.onerror=()=>r(s.error)}))}function x(e){const t=w[e],n=t&&t.result;if(n){n.close();const t=E[e];if(t)for(const e of t)e()}delete w[e],delete _[e],delete E[e]}const T=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","</3","<3","\\M/",":E","8#"]);function C(e){return e.split(/[\s_]+/).map((e=>!e.match(/\w/)||T.has(e)?e.toLowerCase():e.replace(/[)(:,]/g,"").replace(/’/g,"'").toLowerCase())).filter(Boolean)}const P=2;function M(e){return e.filter(Boolean).map((e=>e.toLowerCase())).filter((e=>e.length>=P))}function O(e,t,n,o){e[t](n).onsuccess=e=>o&&o(e.target.result)}function L(e,t,n){O(e,"get",t,n)}function z(e,t,n){O(e,"getAll",t,n)}function I(e){e.commit&&e.commit()}function N(e,t){const n=function(e,t){let n=e[0];for(let o=1;o<e.length;o++){const i=e[o];t(n)>t(i)&&(n=i)}return n}(e,(e=>e.length)),o=[];for(const i of n)e.some((e=>-1===e.findIndex((e=>t(e)===t(i)))))||o.push(i);return o}async function U(e,t,n,o){try{const s=function(e){return e.map((({annotation:e,emoticon:t,group:n,order:o,shortcodes:i,skins:r,tags:s,emoji:a,version:c})=>{const l={annotation:e,group:n,order:o,tags:s,tokens:[...new Set(M([...(i||[]).map(C).flat(),...(s||[]).map(C).flat(),...C(e),t]))].sort(),unicode:a,version:c};if(t&&(l.emoticon=t),i&&(l.shortcodes=i),r){l.skinTones=[],l.skinUnicodes=[],l.skinVersions=[];for(const{tone:e,emoji:t,version:n}of r)l.skinTones.push(e),l.skinUnicodes.push(t),l.skinVersions.push(n)}return l}))}(t);await A(e,[i,r],y,(([e,t],i)=>{let r,a,c=0;function l(){2==++c&&function(){if(r===o&&a===n)return;e.clear();for(const t of s)e.put(t);t.put(o,m),t.put(n,f),I(i)}()}L(t,m,(e=>{r=e,l()})),L(t,f,(e=>{a=e,l()}))}))}finally{}}async function B(e,t){const n=M(C(t));return n.length?A(e,i,b,((e,t,o)=>{const i=[],r=()=>{const e=N(i,(e=>e.unicode));o(e.sort(((e,t)=>e.order<t.order?-1:1)))};for(let t=0;t<n.length;t++){const o=n[t],s=t===n.length-1?IDBKeyRange.bound(o,o+"οΏΏ",!1,!0):IDBKeyRange.only(o);z(e.index(c),s,(e=>{i.push(e),i.length===n.length&&r()}))}})):[]}async function R(e,t){const n=await B(e,t);if(!n.length){const n=e=>(e.shortcodes||[]).includes(t.toLowerCase());return await async function(e,t){return A(e,i,b,((e,n,o)=>{let i;const r=()=>{e.getAll(i&&IDBKeyRange.lowerBound(i,!0),50).onsuccess=e=>{const n=e.target.result;for(const e of n)if(i=e.unicode,t(e))return o(e);if(n.length<50)return o();r()}};r()}))}(e,n)||null}return n.filter((e=>{const n=(e.shortcodes||[]).map((e=>e.toLowerCase()));return n.includes(t.toLowerCase())}))[0]||null}function D(e,t,n){return A(e,t,b,((e,t,o)=>L(e,n,o)))}const H="";const W=["name","url"];function F(e){!function(e){const t=e&&Array.isArray(e),n=t&&e.length&&(!e[0]||W.some((t=>!(t in e[0]))));if(!t||n)throw new Error("Custom emojis are in the wrong format")}(e);const t=(e,t)=>e.name.toLowerCase()<t.name.toLowerCase()?-1:1,n=e.sort(t),o=function(e,t){const n=new Map;for(const o of e){const e=t(o);for(const t of e){let e=n;for(let n=0;n<t.length;n++){const o=t.charAt(n);let i=e.get(o);i||(i=new Map,e.set(o,i)),e=i}let i=e.get(H);i||(i=[],e.set(H,i)),i.push(o)}}return(e,t)=>{let o=n;for(let t=0;t<e.length;t++){const n=e.charAt(t),i=o.get(n);if(!i)return[];o=i}if(t)return o.get(H)||[];const i=[],r=[o];for(;r.length;){const e=[...r.shift().entries()].sort(((e,t)=>e[0]<t[0]?-1:1));for(const[t,n]of e)t===H?i.push(...n):r.push(n)}return i}}(e,(e=>{const t=new Set;if(e.shortcodes)for(const n of e.shortcodes)for(const e of C(n))t.add(e);return t})),i=e=>o(e,!0),r=e=>o(e,!1),s=new Map,a=new Map;for(const t of e){a.set(t.name.toLowerCase(),t);for(const e of t.shortcodes||[])s.set(e.toLowerCase(),t)}return{all:n,search:e=>{const n=C(e);return N(n.map(((e,t)=>(t<n.length-1?i:r)(e))),(e=>e.name)).sort(t)},byShortcode:e=>s.get(e.toLowerCase()),byName:e=>a.get(e.toLowerCase())}}const V="undefined"!=typeof wrappedJSObject;function G(e){if(!e)return e;if(V&&(e=structuredClone(e)),delete e.tokens,e.skinTones){const t=e.skinTones.length;e.skins=Array(t);for(let n=0;n<t;n++)e.skins[n]={tone:e.skinTones[n],unicode:e.skinUnicodes[n],version:e.skinVersions[n]};delete e.skinTones,delete e.skinUnicodes,delete e.skinVersions}return e}function q(e){e||console.warn("emoji-picker-element is more efficient if the dataSource server exposes an ETag header.")}const K=["annotation","emoji","group","order","version"];function X(e,t){if(2!==Math.floor(e.status/100))throw new Error("Failed to fetch: "+t+": "+e.status)}async function J(e){const t=await fetch(e);X(t,e);const n=t.headers.get("etag");q(n);const o=await t.json();return function(e){if(!e||!Array.isArray(e)||!e[0]||"object"!=typeof e[0]||K.some((t=>!(t in e[0]))))throw new Error("Emoji data is in the wrong format")}(o),[n,o]}async function Q(e){let t=function(e){for(var t=e.length,n=new ArrayBuffer(t),o=new Uint8Array(n),i=-1;++i<t;)o[i]=e.charCodeAt(i);return n}(JSON.stringify(e));const n=function(e){for(var t="",n=new Uint8Array(e),o=n.byteLength,i=-1;++i<o;)t+=String.fromCharCode(n[i]);return t}(await crypto.subtle.digest("SHA-1",t));return btoa(n)}async function Z(e,t){let n,o=await async function(e){const t=await fetch(e,{method:"HEAD"});X(t,e);const n=t.headers.get("etag");return q(n),n}(t);if(!o){const e=await J(t);o=e[0],n=e[1],o||(o=await Q(n))}if(await async function(e,t,n){const[o,i]=await Promise.all([m,f].map((t=>D(e,r,t))));return o===n&&i===t}(e,t,o));else{if(!n){n=(await J(t))[1]}await U(e,n,t,o)}}class Y{constructor({dataSource:e="https://cdn.jsdelivr.net/npm/emoji-picker-element-data@^1/en/emojibase/data.json",locale:t="en",customEmoji:n=[]}={}){this.dataSource=e,this.locale=t,this._dbName=`emoji-picker-element-${this.locale}`,this._db=void 0,this._lazyUpdate=void 0,this._custom=F(n),this._clear=this._clear.bind(this),this._ready=this._init()}async _init(){const e=this._db=await(t=this._dbName,_[t]||(_[t]=S(t)),_[t]);var t;!function(e,t){let n=E[e];n||(n=E[e]=[]),n.push(t)}(this._dbName,this._clear);const n=this.dataSource,o=await async function(e){return!await D(e,r,f)}(e);o?await async function(e,t){let[n,o]=await J(t);n||(n=await Q(o)),await U(e,o,t,n)}(e,n):this._lazyUpdate=async function(e,t){try{await Z(e,t)}catch(e){if("InvalidStateError"!==e.name)throw e}}(e,n)}async ready(){const e=async()=>(this._ready||(this._ready=this._init()),this._ready);await e(),this._db||await e()}async getEmojiByGroup(e){return t(e),await this.ready(),$(await async function(e,t){return A(e,i,b,((e,n,o)=>{const i=IDBKeyRange.bound([t,0],[t+1,0],!1,!0);z(e.index(p),i,o)}))}(this._db,e)).map(G)}async getEmojiBySearchQuery(t){e(t),await this.ready();return[...this._custom.search(t),...$(await B(this._db,t)).map(G)]}async getEmojiByShortcode(t){e(t),await this.ready();const n=this._custom.byShortcode(t);return n||G(await R(this._db,t))}async getEmojiByUnicodeOrName(t){e(t),await this.ready();const n=this._custom.byName(t);return n||G(await async function(e,t){return A(e,i,b,((e,n,o)=>L(e,t,(n=>{if(n)return o(n);L(e.index(v),t,(e=>o(e||null)))}))))}(this._db,t))}async getPreferredSkinTone(){return await this.ready(),await D(this._db,r,g)||0}async setPreferredSkinTone(e){return t(e),await this.ready(),n=this._db,o=g,i=e,A(n,r,y,((e,t)=>{e.put(i,o),I(t)}));var n,o,i}async incrementFavoriteEmojiCount(t){return e(t),await this.ready(),n=this._db,o=t,A(n,s,y,((e,t)=>L(e,o,(n=>{e.put((n||0)+1,o),I(t)}))));var n,o}async getTopFavoriteEmoji(e){return t(e),await this.ready(),(await function(e,t,n){return 0===n?[]:A(e,[s,i],b,(([e,o],i,r)=>{const s=[];e.index(d).openCursor(void 0,"prev").onsuccess=e=>{const i=e.target.result;if(!i)return r(s);function a(e){if(s.push(e),s.length===n)return r(s);i.continue()}const c=i.primaryKey,l=t.byName(c);if(l)return a(l);L(o,c,(e=>{if(e)return a(e);i.continue()}))}}))}(this._db,this._custom,e)).map(G)}set customEmoji(e){this._custom=F(e)}get customEmoji(){return this._custom.all}async _shutdown(){await this.ready();try{await this._lazyUpdate}catch(e){}}_clear(){this._db=this._ready=this._lazyUpdate=void 0}async close(){await this._shutdown(),await x(this._dbName)}async delete(){var e;await this._shutdown(),await(e=this._dbName,new Promise(((t,n)=>{x(e),j(t,n,indexedDB.deleteDatabase(e))})))}}const ee=[[-1,"✨","custom"],[0,"πŸ˜€","smileys-emotion"],[1,"πŸ‘‹","people-body"],[3,"🐱","animals-nature"],[4,"🍎","food-drink"],[5,"🏠️","travel-places"],[6,"⚽","activities"],[7,"πŸ“","objects"],[8,"⛔️","symbols"],[9,"🏁","flags"]].map((([e,t,n])=>({id:e,emoji:t,name:n}))),te=ee.slice(1),ne=2,oe=6,ie="function"==typeof requestIdleCallback?requestIdleCallback:setTimeout;function re(e){return e.unicode.includes("‍")}const se={"🫩":16,"🫨":15.1,"🫠":14,"πŸ₯²":13.1,"πŸ₯»":12.1,"πŸ₯°":11,"🀩":5,"πŸ‘±β€β™€οΈ":4,"🀣":3,"πŸ‘οΈβ€πŸ—¨οΈ":2,"πŸ˜€":1,"😐️":.7,"πŸ˜ƒ":.6},ae=1e3,ce=8,le=["😊","πŸ˜’","❀️","πŸ‘οΈ","😍","πŸ˜‚","😭","☺️","πŸ˜”","😩","😏","πŸ’•","πŸ™Œ","😘"],de='"Twemoji Mozilla","Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji","EmojiOne Color","Android Emoji",sans-serif',ue=(e,t)=>e<t?-1:e>t?1:0,he=(e,t)=>{const n=document.createElement("canvas");n.width=n.height=1;const o=n.getContext("2d",{willReadFrequently:!0});return o.textBaseline="top",o.font=`100px ${de}`,o.fillStyle=t,o.scale(.01,.01),o.fillText(e,0,0),o.getImageData(0,0,1,1).data},pe=(e,t)=>{const n=[...e].join(",");return n===[...t].join(",")&&!n.startsWith("0,0,0,")};function me(e){const t=he(e,"#000"),n=he(e,"#fff");return t&&n&&pe(t,n)}let fe;const ge=()=>(fe||(fe=new Promise((e=>ie((()=>e(function(){const e=Object.entries(se);try{for(const[t,n]of e)if(me(t))return n}catch(e){}return e[0][1]}())))))),fe),be=new Map,ye="️",ve="\ud83c",ke="‍",$e=127995,we=57339;function _e(e){e.preventDefault(),e.stopPropagation()}function Ee(e,t,n){return(t+=e?-1:1)<0?t=n.length-1:t>=n.length&&(t=0),t}function je(e,t){const n=new Set,o=[];for(const i of e){const e=t(i);n.has(e)||(n.add(e),o.push(i))}return o}const Se=requestAnimationFrame;let Ae,xe="function"==typeof ResizeObserver;function Te(e){{const t=document.createRange();return t.selectNode(e.firstChild),t.getBoundingClientRect().width}}function Ce(e,t,n){let o=e.get(t);return o||(o=n(),e.set(t,o)),o}function Pe(e){return""+e}const Me=new WeakMap,Oe=new WeakMap,Le=Symbol("un-keyed"),ze="replaceChildren"in Element.prototype;function Ie(e,t){const{targetNode:n}=t;let{targetParentNode:o}=t,i=!1;o?i=function(e,t){let n=e.firstChild,o=0;for(;n;){if(t[o]!==n)return!0;n=n.nextSibling,o++}return o!==t.length}(o,e):(i=!0,t.targetNode=void 0,t.targetParentNode=o=n.parentNode),i&&function(e,t){ze?e.replaceChildren(...t):(e.innerHTML="",e.append(...t))}(o,e)}function Ne(e){let t="",n=!1,o=!1,i=-1;const r=new Map,s=[];let a=0;for(let c=0,l=e.length;c<l;c++){const d=e[c];if(t+=d.slice(a),c===l-1)break;for(let e=0;e<d.length;e++){switch(d.charAt(e)){case"<":"/"===d.charAt(e+1)?s.pop():(n=!0,s.push(++i));break;case">":n=!1,o=!1;break;case"=":o=!0}}const u=Ce(r,s[s.length-1],(()=>[]));let h,p,m;if(o){const n=/(\S+)="?([^"=]*)$/.exec(d);h=n[1],p=n[2];const o=/^([^">]*)("?)/.exec(e[c+1]);m=o[1],t=t.slice(0,-1*n[0].length),a=o[0].length}else a=0;const f={attributeName:h,attributeValuePre:p,attributeValuePost:m,expressionIndex:c};u.push(f),n||o||(t+=" ")}const c=function(e){const t=document.createElement("template");return t.innerHTML=e,t}(t);return{template:c,elementsToBindings:r}}function Ue(e,t,n){for(let o=0;o<e.length;o++){const i=e[o],r={binding:i,targetNode:i.attributeName?t:t.firstChild,targetParentNode:void 0,currentExpression:void 0};n.push(r)}}function Be(e){const{template:t,elementsToBindings:n}=Ce(Me,e,(()=>Ne(e))),o=t.cloneNode(!0).content.firstElementChild,i=function(e,t){const n=[];let o;if(1===t.size&&(o=t.get(0)))Ue(o,e,n);else{const o=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT);let i=e,r=-1;do{const e=t.get(++r);e&&Ue(e,i,n)}while(i=o.nextNode())}return n}(o,n);return function(e){return function(e,t){for(const n of t){const{targetNode:t,currentExpression:o,binding:{expressionIndex:i,attributeName:r,attributeValuePre:s,attributeValuePost:a}}=n,c=e[i];if(o!==c)if(n.currentExpression=c,r)if(null===c)t.removeAttribute(r);else{const e=s+Pe(c)+a;t.setAttribute(r,e)}else{let e;Array.isArray(c)?Ie(c,n):c instanceof Element?(e=c,t.replaceWith(e)):t.nodeValue=Pe(c),e&&(n.targetNode=e)}}}(e,i),o}}function Re(e,t,n,o,i,r,s,a,c){const{labelWithSkin:l,titleForEmoji:d,unicodeWithSkin:u}=n,{html:h,map:p}=function(e){const t=Ce(Oe,e,(()=>new Map));let n=Le;return{map:function(e,t,o){return e.map(((e,i)=>{const r=n;n=o(e);try{return t(e,i)}finally{n=r}}))},html:function(e,...o){const i=Ce(t,e,(()=>new Map));return Ce(i,n,(()=>Be(e)))(o)}}}(t);function m(e,n,o){return p(e,((e,i)=>h`<button role="${n?"option":"menuitem"}" aria-selected="${n?i===t.activeSearchItem:null}" aria-label="${l(e,t.currentSkinTone)}" title="${d(e)}" class="${"emoji"+(n&&i===t.activeSearchItem?" active":"")+(e.unicode?"":" custom-emoji")}" id="${`${o}-${e.id}`}" style="${e.unicode?null:`--custom-emoji-background: url(${JSON.stringify(e.url)})`}">${e.unicode?u(e,t.currentSkinTone):""}</button>`),(e=>`${o}-${e.id}`))}const f=h`<section data-ref="rootElement" class="picker" aria-label="${t.i18n.regionLabel}" style="${t.pickerStyle||""}"><div class="pad-top"></div><div class="search-row"><div class="search-wrapper"><input id="search" class="search" type="search" role="combobox" enterkeyhint="search" placeholder="${t.i18n.searchLabel}" autocapitalize="none" autocomplete="off" spellcheck="true" aria-expanded="${!(!t.searchMode||!t.currentEmojis.length)}" aria-controls="search-results" aria-describedby="search-description" aria-autocomplete="list" aria-activedescendant="${t.activeSearchItemId?`emo-${t.activeSearchItemId}`:null}" data-ref="searchElement" data-on-input="onSearchInput" data-on-keydown="onSearchKeydown"><label class="sr-only" for="search">${t.i18n.searchLabel}</label> <span id="search-description" class="sr-only">${t.i18n.searchDescription}</span></div><div class="skintone-button-wrapper ${t.skinTonePickerExpandedAfterAnimation?"expanded":""}"><button id="skintone-button" class="emoji ${t.skinTonePickerExpanded?"hide-focus":""}" aria-label="${t.skinToneButtonLabel}" title="${t.skinToneButtonLabel}" aria-describedby="skintone-description" aria-haspopup="listbox" aria-expanded="${t.skinTonePickerExpanded}" aria-controls="skintone-list" data-on-click="onClickSkinToneButton">${t.skinToneButtonText||""}</button></div><span id="skintone-description" class="sr-only">${t.i18n.skinToneDescription}</span><div data-ref="skinToneDropdown" id="skintone-list" class="skintone-list hide-focus ${t.skinTonePickerExpanded?"":"hidden no-animate"}" style="transform:translateY(${t.skinTonePickerExpanded?0:"calc(-1 * var(--num-skintones) * var(--total-emoji-size))"})" role="listbox" aria-label="${t.i18n.skinTonesLabel}" aria-activedescendant="skintone-${t.activeSkinTone}" aria-hidden="${!t.skinTonePickerExpanded}" tabIndex="-1" data-on-focusout="onSkinToneOptionsFocusOut" data-on-click="onSkinToneOptionsClick" data-on-keydown="onSkinToneOptionsKeydown" data-on-keyup="onSkinToneOptionsKeyup">${p(t.skinTones,((e,n)=>h`<div id="skintone-${n}" class="emoji ${n===t.activeSkinTone?"active":""}" aria-selected="${n===t.activeSkinTone}" role="option" title="${t.i18n.skinTones[n]}" aria-label="${t.i18n.skinTones[n]}">${e}</div>`),(e=>e))}</div></div><div class="nav" role="tablist" style="grid-template-columns:repeat(${t.groups.length},1fr)" aria-label="${t.i18n.categoriesLabel}" data-on-keydown="onNavKeydown" data-on-click="onNavClick">${p(t.groups,(e=>h`<button role="tab" class="nav-button" aria-controls="tab-${e.id}" aria-label="${t.i18n.categories[e.name]}" aria-selected="${!t.searchMode&&t.currentGroup.id===e.id}" title="${t.i18n.categories[e.name]}" data-group-id="${e.id}"><div class="nav-emoji emoji">${e.emoji}</div></button>`),(e=>e.id))}</div><div class="indicator-wrapper"><div class="indicator" style="transform:translateX(${(t.isRtl?-1:1)*t.currentGroupIndex*100}%)"></div></div><div class="message ${t.message?"":"gone"}" role="alert" aria-live="polite">${t.message||""}</div><div data-ref="tabpanelElement" class="tabpanel ${!t.databaseLoaded||t.message?"gone":""}" role="${t.searchMode?"region":"tabpanel"}" aria-label="${t.searchMode?t.i18n.searchResultsLabel:t.i18n.categories[t.currentGroup.name]}" id="${t.searchMode?null:`tab-${t.currentGroup.id}`}" tabIndex="0" data-on-click="onEmojiClick"><div data-action="calculateEmojiGridStyle">${p(t.currentEmojisWithCategories,((e,n)=>h`<div><div id="menu-label-${n}" class="category ${1===t.currentEmojisWithCategories.length&&""===t.currentEmojisWithCategories[0].category?"gone":""}" aria-hidden="true">${t.searchMode?t.i18n.searchResultsLabel:e.category?e.category:t.currentEmojisWithCategories.length>1?t.i18n.categories.custom:t.i18n.categories[t.currentGroup.name]}</div><div class="emoji-menu ${0===n||t.searchMode||-1!==t.currentGroup.id?"":"visibility-auto"}" style="${`--num-rows: ${Math.ceil(e.emojis.length/t.numColumns)}`}" data-action="updateOnIntersection" role="${t.searchMode?"listbox":"menu"}" aria-labelledby="menu-label-${n}" id="${t.searchMode?"search-results":null}">${m(e.emojis,t.searchMode,"emo")}</div></div>`),(e=>e.category))}</div></div><div class="favorites onscreen emoji-menu ${t.message?"gone":""}" role="menu" aria-label="${t.i18n.favoritesLabel}" data-on-click="onEmojiClick">${m(t.currentFavorites,!1,"fav")}</div><button data-ref="baselineEmoji" aria-hidden="true" tabindex="-1" class="abs-pos hidden emoji baseline-emoji">πŸ˜€</button></section>`,g=(t,n)=>{for(const o of e.querySelectorAll(`[${t}]`))n(o,o.getAttribute(t))};if(c){e.appendChild(f);for(const e of["click","focusout","input","keydown","keyup"])g(`data-on-${e}`,((t,n)=>{t.addEventListener(e,o[n])}));g("data-ref",((e,t)=>{r[t]=e})),s.addEventListener("abort",(()=>{e.removeChild(f)}))}g("data-action",((e,t)=>{let n=a.get(t);n||a.set(t,n=new WeakSet),n.has(e)||(n.add(e),i[t](e))}))}const De="function"==typeof queueMicrotask?queueMicrotask:e=>Promise.resolve().then(e);function He(e,t,n){if(e.length!==t.length)return!1;for(let o=0;o<e.length;o++)if(!n(e[o],t[o]))return!1;return!0}const We=new WeakMap;const Fe=[],{assign:Ve}=Object;function Ge(e,t){const n={},o=new AbortController,i=o.signal,{state:r,createEffect:s}=function(e){let t,n=!1;const o=new Map,i=new Set;let r;const s=()=>{if(n)return;const e=[...i];i.clear();try{for(const t of e)t()}finally{r=!1,i.size&&(r=!0,De(s))}},a=new Proxy({},{get(e,n){if(t){let e=o.get(n);e||(e=new Set,o.set(n,e)),e.add(t)}return e[n]},set(e,t,n){if(e[t]!==n){e[t]=n;const a=o.get(t);if(a){for(const e of a)i.add(e);r||(r=!0,De(s))}}return!0}});return e.addEventListener("abort",(()=>{n=!0})),{state:a,createEffect:e=>{const n=()=>{const o=t;t=n;try{return e()}finally{t=o}};return n()}}}(i),a=new Map;Ve(r,{skinToneEmoji:void 0,i18n:void 0,database:void 0,customEmoji:void 0,customCategorySorting:void 0,emojiVersion:void 0}),Ve(r,t),Ve(r,{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:ce,isRtl:!1,currentGroupIndex:0,groups:te,databaseLoaded:!1,activeSearchItemId:void 0}),s((()=>{r.currentGroup!==r.groups[r.currentGroupIndex]&&(r.currentGroup=r.groups[r.currentGroupIndex])}));const c=t=>{e.getElementById(t).focus()},l=t=>e.getElementById(`emo-${t.id}`),d=(e,t)=>{n.rootElement.dispatchEvent(new CustomEvent(e,{detail:t,bubbles:!0,composed:!0}))},u=(e,t)=>e.id===t.id,h=(e,t)=>{const{category:n,emojis:o}=e,{category:i,emojis:r}=t;return n===i&&He(o,r,u)},p=e=>{He(r.currentEmojis,e,u)||(r.currentEmojis=e)},m=e=>{r.searchMode!==e&&(r.searchMode=e)},f=(e,t)=>t&&e.skins&&e.skins[t]||e.unicode,g={labelWithSkin:(e,t)=>{return(n=[e.name||f(e,t),e.annotation,...e.shortcodes||Fe].filter(Boolean),je(n,(e=>e))).join(", ");var n},titleForEmoji:e=>e.annotation||(e.shortcodes||Fe).join(", "),unicodeWithSkin:f},b={onClickSkinToneButton:function(e){r.skinTonePickerExpanded=!r.skinTonePickerExpanded,r.activeSkinTone=r.currentSkinTone,r.skinTonePickerExpanded&&(_e(e),Se((()=>c("skintone-list"))))},onEmojiClick:async function(e){const{target:t}=e;if(!t.classList.contains("emoji"))return;_e(e);j(t.id.substring(4))},onNavClick:function(e){const{target:t}=e,o=t.closest(".nav-button");if(!o)return;const i=parseInt(o.dataset.groupId,10);n.searchElement.value="",r.rawSearchText="",r.searchText="",r.activeSearchItem=-1,r.currentGroupIndex=r.groups.findIndex((e=>e.id===i))},onNavKeydown:function(e){const{target:t,key:n}=e,o=t=>{t&&(_e(e),t.focus())};switch(n){case"ArrowLeft":return o(t.previousElementSibling);case"ArrowRight":return o(t.nextElementSibling);case"Home":return o(t.parentElement.firstElementChild);case"End":return o(t.parentElement.lastElementChild)}},onSearchKeydown:function(e){if(!r.searchMode||!r.currentEmojis.length)return;const t=t=>{_e(e),r.activeSearchItem=Ee(t,r.activeSearchItem,r.currentEmojis)};switch(e.key){case"ArrowDown":return t(!1);case"ArrowUp":return t(!0);case"Enter":if(-1!==r.activeSearchItem)return _e(e),j(r.currentEmojis[r.activeSearchItem].id);r.activeSearchItem=0}},onSkinToneOptionsClick:function(e){const{target:{id:t}}=e,n=t&&t.match(/^skintone-(\d)/);if(!n)return;_e(e);S(parseInt(n[1],10))},onSkinToneOptionsFocusOut:async function(e){const{relatedTarget:t}=e;t&&"skintone-list"===t.id||(r.skinTonePickerExpanded=!1)},onSkinToneOptionsKeydown:function(e){if(!r.skinTonePickerExpanded)return;const t=async t=>{_e(e),r.activeSkinTone=t};switch(e.key){case"ArrowUp":return t(Ee(!0,r.activeSkinTone,r.skinTones));case"ArrowDown":return t(Ee(!1,r.activeSkinTone,r.skinTones));case"Home":return t(0);case"End":return t(r.skinTones.length-1);case"Enter":return _e(e),S(r.activeSkinTone);case"Escape":return _e(e),r.skinTonePickerExpanded=!1,c("skintone-button")}},onSkinToneOptionsKeyup:function(e){if(!r.skinTonePickerExpanded)return;if(" "===e.key)return _e(e),S(r.activeSkinTone)},onSearchInput:function(e){r.rawSearchText=e.target.value}},y={calculateEmojiGridStyle:function(e){!function(e,t,n){let o;xe?(o=new ResizeObserver(n),o.observe(e)):Se(n),t.addEventListener("abort",(()=>{o&&o.disconnect()}))}(e,i,(()=>{{const e=getComputedStyle(n.rootElement),t=parseInt(e.getPropertyValue("--num-columns"),10),o="rtl"===e.getPropertyValue("direction");r.numColumns=t,r.isRtl=o}}))},updateOnIntersection:function(e){!function(e,t,n){{const o=e.closest(".tabpanel");let i=We.get(o);i||(i=new IntersectionObserver(n,{root:o,rootMargin:"50% 0px 50% 0px",threshold:0}),We.set(o,i),t.addEventListener("abort",(()=>{i.disconnect()}))),i.observe(e)}}(e,i,(e=>{for(const{target:t,isIntersecting:n}of e)t.classList.toggle("onscreen",n)}))}};let v=!0;function k(){const{customEmoji:e,database:t}=r,n=e||Fe;t.customEmoji!==n&&(t.customEmoji=n)}s((()=>{Re(e,r,g,b,y,n,i,a,v),v=!1})),r.emojiVersion||ge().then((e=>{e||(r.message=r.i18n.emojiUnsupportedMessage)})),s((()=>{r.database&&async function(){let e=!1;const t=setTimeout((()=>{e=!0,r.message=r.i18n.loadingMessage}),ae);try{await r.database.ready(),r.databaseLoaded=!0}catch(e){console.error(e),r.message=r.i18n.networkErrorMessage}finally{clearTimeout(t),e&&(e=!1,r.message="")}}()})),s((()=>{r.pickerStyle=`\n --num-groups: ${r.groups.length}; \n --indicator-opacity: ${r.searchMode?0:1}; \n --num-skintones: ${oe};`})),s((()=>{r.customEmoji&&r.database&&k()})),s((()=>{r.customEmoji&&r.customEmoji.length?r.groups!==ee&&(r.groups=ee):r.groups!==te&&(r.currentGroupIndex&&r.currentGroupIndex--,r.groups=te)})),s((()=>{!async function(){r.databaseLoaded&&(r.currentSkinTone=await r.database.getPreferredSkinTone())}()})),s((()=>{r.skinTones=Array(oe).fill().map(((e,t)=>function(e,t){if(0===t)return e;const n=e.indexOf(ke);return-1!==n?e.substring(0,n)+String.fromCodePoint($e+t-1)+e.substring(n):(e.endsWith(ye)&&(e=e.substring(0,e.length-1)),e+ve+String.fromCodePoint(we+t-1))}(r.skinToneEmoji,t)))})),s((()=>{r.skinToneButtonText=r.skinTones[r.currentSkinTone]})),s((()=>{r.skinToneButtonLabel=r.i18n.skinToneLabel.replace("{skinTone}",r.i18n.skinTones[r.currentSkinTone])})),s((()=>{r.databaseLoaded&&async function(){const{database:e}=r,t=(await Promise.all(le.map((t=>e.getEmojiByUnicodeOrName(t))))).filter(Boolean);r.defaultFavoriteEmojis=t}()})),s((()=>{r.databaseLoaded&&r.defaultFavoriteEmojis&&async function(){k();const{database:e,defaultFavoriteEmojis:t,numColumns:n}=r,o=await e.getTopFavoriteEmoji(n),i=await E(je([...o,...t],(e=>e.unicode||e.name)).slice(0,n));r.currentFavorites=i}()})),s((()=>{!async function(){const{searchText:e,currentGroup:t,databaseLoaded:n,customEmoji:o}=r;if(n)if(e.length>=ne){const t=await async function(e){return E(await _(await r.database.getEmojiBySearchQuery(e)))}(e);r.searchText===e&&(p(t),m(!0))}else{const{id:e}=t;if(-1!==e||o&&o.length){const t=await async function(e){const t=-1===e?r.customEmoji:await r.database.getEmojiByGroup(e);return E(await _(t))}(e);r.currentGroup.id===e&&(p(t),m(!1))}}else r.currentEmojis=[],r.searchMode=!1}()}));const $=()=>{Se((()=>{var e;(e=n.tabpanelElement)&&(e.scrollTop=0)}))};function w(e){return!e.unicode||!re(e)||be.get(e.unicode)}async function _(e){const t=r.emojiVersion||await ge();return e.filter((({version:e})=>!e||e<=t))}async function E(e){return function(e,t){const n=e=>{const n={};for(const o of e)"number"==typeof o.tone&&o.version<=t&&(n[o.tone]=o.unicode);return n};return e.map((({unicode:e,skins:t,shortcodes:o,url:i,name:r,category:s,annotation:a})=>({unicode:e,name:r,shortcodes:o,url:i,category:s,annotation:a,id:e||r,skins:t&&n(t)})))}(e,r.emojiVersion||await ge())}async function j(e){const t=await r.database.getEmojiByUnicodeOrName(e),n=[...r.currentEmojis,...r.currentFavorites].find((t=>t.id===e)),o=n.unicode&&f(n,r.currentSkinTone);await r.database.incrementFavoriteEmojiCount(e),d("emoji-click",{emoji:t,skinTone:r.currentSkinTone,...o&&{unicode:o},...n.name&&{name:n.name}})}function S(e){r.currentSkinTone=e,r.skinTonePickerExpanded=!1,c("skintone-button"),d("skin-tone-change",{skinTone:e}),r.database.setPreferredSkinTone(e)}return s((()=>{const{currentEmojis:e,emojiVersion:t}=r,o=e.filter((e=>e.unicode)).filter((e=>re(e)&&!be.has(e.unicode)));if(!t&&o.length)p(e),Se((()=>function(e){const t=function(e,t,n){let o=!0;for(const i of e){const e=n(i);if(!e)continue;const r=Te(e);void 0===Ae&&(Ae=Te(t));const s=r/1.8<Ae;be.set(i.unicode,s),s||(o=!1)}return o}(e,n.baselineEmoji,l);t?$():r.currentEmojis=[...r.currentEmojis]}(o)));else{const n=t?e:e.filter(w);p(n),$()}})),s((()=>{})),s((()=>{(e=>{He(r.currentEmojisWithCategories,e,h)||(r.currentEmojisWithCategories=e)})(function(){const{searchMode:e,currentEmojis:t}=r;if(e)return[{category:"",emojis:t}];const n=new Map;for(const e of t){const t=e.category||"";let o=n.get(t);o||(o=[],n.set(t,o)),o.push(e)}return[...n.entries()].map((([e,t])=>({category:e,emojis:t}))).sort(((e,t)=>r.customCategorySorting(e.category,t.category)))}())})),s((()=>{r.activeSearchItemId=-1!==r.activeSearchItem&&r.currentEmojis[r.activeSearchItem].id})),s((()=>{const{rawSearchText:e}=r;ie((()=>{r.searchText=(e||"").trim(),r.activeSearchItem=-1}))})),s((()=>{r.skinTonePickerExpanded?n.skinToneDropdown.addEventListener("transitionend",(()=>{r.skinTonePickerExpandedAfterAnimation=!0}),{once:!0}):r.skinTonePickerExpandedAfterAnimation=!1})),{$set(e){Ve(r,e)},$destroy(){o.abort()}}}var qe={categoriesLabel:"Categories",emojiUnsupportedMessage:"Your browser does not support color emoji.",favoritesLabel:"Favorites",loadingMessage:"Loading…",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"}};const Ke=["customEmoji","customCategorySorting","database","dataSource","i18n","locale","skinToneEmoji","emojiVersion"],Xe=`:host{--emoji-font-family:${de}}`;class Je extends HTMLElement{constructor(e){super(),this.attachShadow({mode:"open"});const t=document.createElement("style");t.textContent=':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)}'+Xe,this.shadowRoot.appendChild(t),this._ctx={locale:"en",dataSource:"https://cdn.jsdelivr.net/npm/emoji-picker-element-data@^1/en/emojibase/data.json",skinToneEmoji:"πŸ–οΈ",customCategorySorting:ue,customEmoji:null,i18n:qe,emojiVersion:null,...e};for(const e of Ke)"database"!==e&&Object.prototype.hasOwnProperty.call(this,e)&&(this._ctx[e]=this[e],delete this[e]);this._dbFlush()}connectedCallback(){this._cmp||(this._cmp=Ge(this.shadowRoot,this._ctx))}disconnectedCallback(){De((()=>{if(!this.isConnected&&this._cmp){this._cmp.$destroy(),this._cmp=void 0;const{database:e}=this._ctx;e.close().catch((e=>console.error(e)))}}))}static get observedAttributes(){return["locale","data-source","skin-tone-emoji","emoji-version"]}attributeChangedCallback(e,t,n){this._set(e.replace(/-([a-z])/g,((e,t)=>t.toUpperCase())),"emoji-version"===e?parseFloat(n):n)}_set(e,t){this._ctx[e]=t,this._cmp&&this._cmp.$set({[e]:t}),["locale","dataSource"].includes(e)&&this._dbFlush()}_dbCreate(){const{locale:e,dataSource:t,database:n}=this._ctx;n&&n.locale===e&&n.dataSource===t||this._set("database",new Y({locale:e,dataSource:t}))}_dbFlush(){De((()=>this._dbCreate()))}}const Qe={};for(const e of Ke)Qe[e]={get(){return"database"===e&&this._dbCreate(),this._ctx[e]},set(t){if("database"===e)throw new Error("database is read-only");this._set(e,t)}};Object.defineProperties(Je.prototype,Qe),customElements.get("emoji-picker")||customElements.define("emoji-picker",Je)},53951:(e,t,n)=>{n.d(t,{Cb:()=>s});var o=n(68853);const i={attribute:!0,type:String,converter:o.Ts,reflect:!1,hasChanged:o.Qu},r=(e=i,t,n)=>{const{kind:o,metadata:r}=n;let s=globalThis.litPropertyMetadata.get(r);if(void 0===s&&globalThis.litPropertyMetadata.set(r,s=new Map),"setter"===o&&((e=Object.create(e)).wrapped=!0),s.set(n.name,e),"accessor"===o){const{name:o}=n;return{set(n){const i=t.get.call(this);t.set.call(this,n),this.requestUpdate(o,i,e)},init(t){return void 0!==t&&this.C(o,void 0,e,t),t}}}if("setter"===o){const{name:o}=n;return function(n){const i=this[o];t.call(this,n),this.requestUpdate(o,i,e)}}throw Error("Unsupported decorator location: "+o)};function s(e){return(t,n)=>"object"==typeof n?r(e,t,n):((e,t,n)=>{const o=t.hasOwnProperty(n);return t.constructor.createProperty(n,e),o?Object.getOwnPropertyDescriptor(t,n):void 0})(e,t,n)}},99956:(e,t,n)=>{n.d(t,{oi:()=>W,iv:()=>o.iv,dy:()=>j});var o=n(68853);const i=globalThis,r=i.trustedTypes,s=r?r.createPolicy("lit-html",{createHTML:e=>e}):void 0,a="$lit$",c=`lit$${Math.random().toFixed(9).slice(2)}$`,l="?"+c,d=`<${l}>`,u=document,h=()=>u.createComment(""),p=e=>null===e||"object"!=typeof e&&"function"!=typeof e,m=Array.isArray,f=e=>m(e)||"function"==typeof e?.[Symbol.iterator],g="[ \t\n\f\r]",b=/<(?:(!--|\/[^a-zA-Z])|(\/?[a-zA-Z][^>\s]*)|(\/?$))/g,y=/-->/g,v=/>/g,k=RegExp(`>|${g}(?:([^\\s"'>=/]+)(${g}*=${g}*(?:[^ \t\n\f\r"'\`<>=]|("|')|))|$)`,"g"),$=/'/g,w=/"/g,_=/^(?:script|style|textarea|title)$/i,E=e=>(t,...n)=>({_$litType$:e,strings:t,values:n}),j=E(1),S=(E(2),E(3),Symbol.for("lit-noChange")),A=Symbol.for("lit-nothing"),x=new WeakMap,T=u.createTreeWalker(u,129);function C(e,t){if(!m(e)||!e.hasOwnProperty("raw"))throw Error("invalid template strings array");return void 0!==s?s.createHTML(t):t}const P=(e,t)=>{const n=e.length-1,o=[];let i,r=2===t?"<svg>":3===t?"<math>":"",s=b;for(let t=0;t<n;t++){const n=e[t];let l,u,h=-1,p=0;for(;p<n.length&&(s.lastIndex=p,u=s.exec(n),null!==u);)p=s.lastIndex,s===b?"!--"===u[1]?s=y:void 0!==u[1]?s=v:void 0!==u[2]?(_.test(u[2])&&(i=RegExp("</"+u[2],"g")),s=k):void 0!==u[3]&&(s=k):s===k?">"===u[0]?(s=i??b,h=-1):void 0===u[1]?h=-2:(h=s.lastIndex-u[2].length,l=u[1],s=void 0===u[3]?k:'"'===u[3]?w:$):s===w||s===$?s=k:s===y||s===v?s=b:(s=k,i=void 0);const m=s===k&&e[t+1].startsWith("/>")?" ":"";r+=s===b?n+d:h>=0?(o.push(l),n.slice(0,h)+a+n.slice(h)+c+m):n+c+(-2===h?t:m)}return[C(e,r+(e[n]||"<?>")+(2===t?"</svg>":3===t?"</math>":"")),o]};class M{constructor({strings:e,_$litType$:t},n){let o;this.parts=[];let i=0,s=0;const d=e.length-1,u=this.parts,[p,m]=P(e,t);if(this.el=M.createElement(p,n),T.currentNode=this.el.content,2===t||3===t){const e=this.el.content.firstChild;e.replaceWith(...e.childNodes)}for(;null!==(o=T.nextNode())&&u.length<d;){if(1===o.nodeType){if(o.hasAttributes())for(const e of o.getAttributeNames())if(e.endsWith(a)){const t=m[s++],n=o.getAttribute(e).split(c),r=/([.?@])?(.*)/.exec(t);u.push({type:1,index:i,name:r[2],strings:n,ctor:"."===r[1]?N:"?"===r[1]?U:"@"===r[1]?B:I}),o.removeAttribute(e)}else e.startsWith(c)&&(u.push({type:6,index:i}),o.removeAttribute(e));if(_.test(o.tagName)){const e=o.textContent.split(c),t=e.length-1;if(t>0){o.textContent=r?r.emptyScript:"";for(let n=0;n<t;n++)o.append(e[n],h()),T.nextNode(),u.push({type:2,index:++i});o.append(e[t],h())}}}else if(8===o.nodeType)if(o.data===l)u.push({type:2,index:i});else{let e=-1;for(;-1!==(e=o.data.indexOf(c,e+1));)u.push({type:7,index:i}),e+=c.length-1}i++}}static createElement(e,t){const n=u.createElement("template");return n.innerHTML=e,n}}function O(e,t,n=e,o){if(t===S)return t;let i=void 0!==o?n._$Co?.[o]:n._$Cl;const r=p(t)?void 0:t._$litDirective$;return i?.constructor!==r&&(i?._$AO?.(!1),void 0===r?i=void 0:(i=new r(e),i._$AT(e,n,o)),void 0!==o?(n._$Co??=[])[o]=i:n._$Cl=i),void 0!==i&&(t=O(e,i._$AS(e,t.values),i,o)),t}class L{constructor(e,t){this._$AV=[],this._$AN=void 0,this._$AD=e,this._$AM=t}get parentNode(){return this._$AM.parentNode}get _$AU(){return this._$AM._$AU}u(e){const{el:{content:t},parts:n}=this._$AD,o=(e?.creationScope??u).importNode(t,!0);T.currentNode=o;let i=T.nextNode(),r=0,s=0,a=n[0];for(;void 0!==a;){if(r===a.index){let t;2===a.type?t=new z(i,i.nextSibling,this,e):1===a.type?t=new a.ctor(i,a.name,a.strings,this,e):6===a.type&&(t=new R(i,this,e)),this._$AV.push(t),a=n[++s]}r!==a?.index&&(i=T.nextNode(),r++)}return T.currentNode=u,o}p(e){let t=0;for(const n of this._$AV)void 0!==n&&(void 0!==n.strings?(n._$AI(e,n,t),t+=n.strings.length-2):n._$AI(e[t])),t++}}class z{get _$AU(){return this._$AM?._$AU??this._$Cv}constructor(e,t,n,o){this.type=2,this._$AH=A,this._$AN=void 0,this._$AA=e,this._$AB=t,this._$AM=n,this.options=o,this._$Cv=o?.isConnected??!0}get parentNode(){let e=this._$AA.parentNode;const t=this._$AM;return void 0!==t&&11===e?.nodeType&&(e=t.parentNode),e}get startNode(){return this._$AA}get endNode(){return this._$AB}_$AI(e,t=this){e=O(this,e,t),p(e)?e===A||null==e||""===e?(this._$AH!==A&&this._$AR(),this._$AH=A):e!==this._$AH&&e!==S&&this._(e):void 0!==e._$litType$?this.$(e):void 0!==e.nodeType?this.T(e):f(e)?this.k(e):this._(e)}O(e){return this._$AA.parentNode.insertBefore(e,this._$AB)}T(e){this._$AH!==e&&(this._$AR(),this._$AH=this.O(e))}_(e){this._$AH!==A&&p(this._$AH)?this._$AA.nextSibling.data=e:this.T(u.createTextNode(e)),this._$AH=e}$(e){const{values:t,_$litType$:n}=e,o="number"==typeof n?this._$AC(e):(void 0===n.el&&(n.el=M.createElement(C(n.h,n.h[0]),this.options)),n);if(this._$AH?._$AD===o)this._$AH.p(t);else{const e=new L(o,this),n=e.u(this.options);e.p(t),this.T(n),this._$AH=e}}_$AC(e){let t=x.get(e.strings);return void 0===t&&x.set(e.strings,t=new M(e)),t}k(e){m(this._$AH)||(this._$AH=[],this._$AR());const t=this._$AH;let n,o=0;for(const i of e)o===t.length?t.push(n=new z(this.O(h()),this.O(h()),this,this.options)):n=t[o],n._$AI(i),o++;o<t.length&&(this._$AR(n&&n._$AB.nextSibling,o),t.length=o)}_$AR(e=this._$AA.nextSibling,t){for(this._$AP?.(!1,!0,t);e!==this._$AB;){const t=e.nextSibling;e.remove(),e=t}}setConnected(e){void 0===this._$AM&&(this._$Cv=e,this._$AP?.(e))}}class I{get tagName(){return this.element.tagName}get _$AU(){return this._$AM._$AU}constructor(e,t,n,o,i){this.type=1,this._$AH=A,this._$AN=void 0,this.element=e,this.name=t,this._$AM=o,this.options=i,n.length>2||""!==n[0]||""!==n[1]?(this._$AH=Array(n.length-1).fill(new String),this.strings=n):this._$AH=A}_$AI(e,t=this,n,o){const i=this.strings;let r=!1;if(void 0===i)e=O(this,e,t,0),r=!p(e)||e!==this._$AH&&e!==S,r&&(this._$AH=e);else{const o=e;let s,a;for(e=i[0],s=0;s<i.length-1;s++)a=O(this,o[n+s],t,s),a===S&&(a=this._$AH[s]),r||=!p(a)||a!==this._$AH[s],a===A?e=A:e!==A&&(e+=(a??"")+i[s+1]),this._$AH[s]=a}r&&!o&&this.j(e)}j(e){e===A?this.element.removeAttribute(this.name):this.element.setAttribute(this.name,e??"")}}class N extends I{constructor(){super(...arguments),this.type=3}j(e){this.element[this.name]=e===A?void 0:e}}class U extends I{constructor(){super(...arguments),this.type=4}j(e){this.element.toggleAttribute(this.name,!!e&&e!==A)}}class B extends I{constructor(e,t,n,o,i){super(e,t,n,o,i),this.type=5}_$AI(e,t=this){if((e=O(this,e,t,0)??A)===S)return;const n=this._$AH,o=e===A&&n!==A||e.capture!==n.capture||e.once!==n.once||e.passive!==n.passive,i=e!==A&&(n===A||o);o&&this.element.removeEventListener(this.name,this,n),i&&this.element.addEventListener(this.name,this,e),this._$AH=e}handleEvent(e){"function"==typeof this._$AH?this._$AH.call(this.options?.host??this.element,e):this._$AH.handleEvent(e)}}class R{constructor(e,t,n){this.element=e,this.type=6,this._$AN=void 0,this._$AM=t,this.options=n}get _$AU(){return this._$AM._$AU}_$AI(e){O(this,e)}}const D=i.litHtmlPolyfillSupport;D?.(M,z),(i.litHtmlVersions??=[]).push("3.3.1");const H=globalThis;class W extends o.fl{constructor(){super(...arguments),this.renderOptions={host:this},this._$Do=void 0}createRenderRoot(){const e=super.createRenderRoot();return this.renderOptions.renderBefore??=e.firstChild,e}update(e){const t=this.render();this.hasUpdated||(this.renderOptions.isConnected=this.isConnected),super.update(e),this._$Do=((e,t,n)=>{const o=n?.renderBefore??t;let i=o._$litPart$;if(void 0===i){const e=n?.renderBefore??null;o._$litPart$=i=new z(t.insertBefore(h(),e),e,void 0,n??{})}return i._$AI(e),i})(t,this.renderRoot,this.renderOptions)}connectedCallback(){super.connectedCallback(),this._$Do?.setConnected(!0)}disconnectedCallback(){super.disconnectedCallback(),this._$Do?.setConnected(!1)}render(){return S}}W._$litElement$=!0,W.finalized=!0,H.litElementHydrateSupport?.({LitElement:W});const F=H.litElementPolyfillSupport;F?.({LitElement:W});(H.litElementVersions??=[]).push("4.2.1")},68853:(e,t,n)=>{n.d(t,{fl:()=>j,iv:()=>c,Ts:()=>w,Qu:()=>_});const o=globalThis,i=o.ShadowRoot&&(void 0===o.ShadyCSS||o.ShadyCSS.nativeShadow)&&"adoptedStyleSheets"in Document.prototype&&"replace"in CSSStyleSheet.prototype,r=Symbol(),s=new WeakMap;class a{constructor(e,t,n){if(this._$cssResult$=!0,n!==r)throw Error("CSSResult is not constructable. Use `unsafeCSS` or `css` instead.");this.cssText=e,this.t=t}get styleSheet(){let e=this.o;const t=this.t;if(i&&void 0===e){const n=void 0!==t&&1===t.length;n&&(e=s.get(t)),void 0===e&&((this.o=e=new CSSStyleSheet).replaceSync(this.cssText),n&&s.set(t,e))}return e}toString(){return this.cssText}}const c=(e,...t)=>{const n=1===e.length?e[0]:t.reduce(((t,n,o)=>t+(e=>{if(!0===e._$cssResult$)return e.cssText;if("number"==typeof e)return e;throw Error("Value passed to 'css' function must be a 'css' function result: "+e+". Use 'unsafeCSS' to pass non-literal values, but take care to ensure page security.")})(n)+e[o+1]),e[0]);return new a(n,e,r)},l=(e,t)=>{if(i)e.adoptedStyleSheets=t.map((e=>e instanceof CSSStyleSheet?e:e.styleSheet));else for(const n of t){const t=document.createElement("style"),i=o.litNonce;void 0!==i&&t.setAttribute("nonce",i),t.textContent=n.cssText,e.appendChild(t)}},d=i?e=>e:e=>e instanceof CSSStyleSheet?(e=>{let t="";for(const n of e.cssRules)t+=n.cssText;return(e=>new a("string"==typeof e?e:e+"",void 0,r))(t)})(e):e,{is:u,defineProperty:h,getOwnPropertyDescriptor:p,getOwnPropertyNames:m,getOwnPropertySymbols:f,getPrototypeOf:g}=Object,b=globalThis,y=b.trustedTypes,v=y?y.emptyScript:"",k=b.reactiveElementPolyfillSupport,$=(e,t)=>e,w={toAttribute(e,t){switch(t){case Boolean:e=e?v:null;break;case Object:case Array:e=null==e?e:JSON.stringify(e)}return e},fromAttribute(e,t){let n=e;switch(t){case Boolean:n=null!==e;break;case Number:n=null===e?null:Number(e);break;case Object:case Array:try{n=JSON.parse(e)}catch(e){n=null}}return n}},_=(e,t)=>!u(e,t),E={attribute:!0,type:String,converter:w,reflect:!1,useDefault:!1,hasChanged:_};Symbol.metadata??=Symbol("metadata"),b.litPropertyMetadata??=new WeakMap;class j extends HTMLElement{static addInitializer(e){this._$Ei(),(this.l??=[]).push(e)}static get observedAttributes(){return this.finalize(),this._$Eh&&[...this._$Eh.keys()]}static createProperty(e,t=E){if(t.state&&(t.attribute=!1),this._$Ei(),this.prototype.hasOwnProperty(e)&&((t=Object.create(t)).wrapped=!0),this.elementProperties.set(e,t),!t.noAccessor){const n=Symbol(),o=this.getPropertyDescriptor(e,n,t);void 0!==o&&h(this.prototype,e,o)}}static getPropertyDescriptor(e,t,n){const{get:o,set:i}=p(this.prototype,e)??{get(){return this[t]},set(e){this[t]=e}};return{get:o,set(t){const r=o?.call(this);i?.call(this,t),this.requestUpdate(e,r,n)},configurable:!0,enumerable:!0}}static getPropertyOptions(e){return this.elementProperties.get(e)??E}static _$Ei(){if(this.hasOwnProperty($("elementProperties")))return;const e=g(this);e.finalize(),void 0!==e.l&&(this.l=[...e.l]),this.elementProperties=new Map(e.elementProperties)}static finalize(){if(this.hasOwnProperty($("finalized")))return;if(this.finalized=!0,this._$Ei(),this.hasOwnProperty($("properties"))){const e=this.properties,t=[...m(e),...f(e)];for(const n of t)this.createProperty(n,e[n])}const e=this[Symbol.metadata];if(null!==e){const t=litPropertyMetadata.get(e);if(void 0!==t)for(const[e,n]of t)this.elementProperties.set(e,n)}this._$Eh=new Map;for(const[e,t]of this.elementProperties){const n=this._$Eu(e,t);void 0!==n&&this._$Eh.set(n,e)}this.elementStyles=this.finalizeStyles(this.styles)}static finalizeSty