@mantou/gem 2.2.10 → 2.2.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/gem.mjs CHANGED
@@ -1,6 +1,6 @@
1
- let t,e,n,r,i,s,o,a,l,c,u,h,d,f,p,m,g,y,b,v,w,S,_,$,E,C,T,x,P,L,O,k,j,N,A,M,I,R,H,D,V,z,W,U,G,q,B,K,J,F,Q,Y,Z,X,tt,te,tn,tr,ti,ts,to,ta,tl,tc,tu,th,td,tf,tp,tm,tg,ty,tb,tv,tw,tS,t_,t$,tE,tC,tT,tx,tP,tL,tO,tk,tj,tN,tA,tM,tI,tR,tH,tD,tV,tz,tW,tU,tG,tq,tB,tK,tJ,tF,tQ,tY,tZ,tX,t0,t1,t2,t3,t8,t4,t7,t6,t5,t9,et,ee,en,er,ei,es,eo,ea,el,ec,eu,eh,ed,ef,ep,em,eg,ey,eb,ev,ew,eS,e_,e$,eE,eC,eT,ex,eP,eL,eO,ek,ej,eN,eA,eM,eI,eR,eH,eD,eV,ez,eW,eU,eG,eq,eB;var eK={};eK.d=(t,e,n)=>{var r=(e,n)=>{for(var r in e)eK.o(e,r)&&!eK.o(t,r)&&Object.defineProperty(t,r,{enumerable:!0,[n]:e[r]})};r(e,"get"),r(n,"value")},eK.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),eK.r=t=>{"u">typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};var eJ={};eK.r(eJ),eK.d(eJ,{adoptedStyle:()=>rm,aria:()=>rw,async:()=>rv,attribute:()=>n6,boolattribute:()=>n5,connectStore:()=>rg,customElement:()=>rS,effect:()=>rn,emitter:()=>rd,fallback:()=>ra,globalemitter:()=>rf,light:()=>rb,memo:()=>re,mounted:()=>rs,numattribute:()=>n9,part:()=>rh,property:()=>rt,shadow:()=>ry,slot:()=>ru,state:()=>rl,template:()=>ro,unmounted:()=>rr,willMount:()=>ri});var eF={};eK.r(eF),eK.d(eF,{GemElement:()=>nV,SheetToken:()=>nT,UpdateToken:()=>nx,_RenderErrorEvent:()=>nL,_createTemplate:()=>e,createState:()=>t,css:()=>nA,html:()=>ny,render:()=>nb,setEngine:()=>nv,setHydrationEngine:()=>nS});var eQ={};eK.r(eQ),eK.d(eQ,{_StoreListenerMap:()=>np,connect:()=>ng,createStore:()=>nm});var eY={};eK.r(eY),eK.d(eY,{version:()=>it});let{assign:eZ,fromEntries:eX,entries:e0,keys:e1}=Object;function e2(t){Promise.resolve().then(t)}let e3=new Set;function e8(t,e=e2){e3.has(t)||(e(()=>{e3.delete(t),t()}),e3.add(t))}function e4(t,e){return delete e.name,delete e.length,eZ(e,t),e}function e7(t="",e=""){let{pathname:n,search:r,hash:i}=new URL(e,location.origin+t);return n+r+decodeURIComponent(i)}function e6(t,e,n,r){return t.addEventListener(e,n,r),()=>t.removeEventListener(e,n,r)}class e5 extends EventTarget{#t=new Map;#e;#n;#r(t){let e=this.#t.get(t);return e&&(e.prev?e.prev.next=e.next:this.#e=e.next,e.next?e.next.prev=e.prev:this.#n=e.prev,this.#t.delete(t)),e}get size(){return this.#t.size}get first(){return this.#e}get last(){return this.#n}isSuperLinkOf(t,e=!1){let n=t.first;if(!n)return!0;let r=e?this.#e:this.find(n.value);for(;r&&n;){if(r.value===n.value)n=n.next;else if(!e)return!1;r=r.next}return!n}find(t){return this.#t.get(t)}add(t){this.#n||this.dispatchEvent(new CustomEvent("start"));let e=this.#r(t)||{value:t};e.prev=this.#n,e.prev&&(e.prev.next=e),e.next=void 0,this.#n=e,this.#e||(this.#e=e),this.#t.set(t,e)}delete(t){let e=this.#r(t);return this.#e||this.dispatchEvent(new CustomEvent("end")),e}clear(){this.#t.clear(),this.#e=this.#n=void 0}get(){let t=this.#e;if(t)return this.delete(t.value),t.value}}class e9 extends WeakMap{get(t){let e=super.get(t);return e||(e={},this.set(t,e)),e}}class nt extends URLSearchParams{concat(t){e0("string"==typeof t?eX(new URLSearchParams(t).entries()):t).forEach(([t,e])=>{this.append(t,this.#i(e))})}#i=t=>"string"==typeof t?t:JSON.stringify(t);setAny(t,e){if(Array.isArray(e))this.delete(t),e.forEach(e=>this.append(t,this.#i(e)));else{let n=this.#i(e);n?this.set(t,n):this.delete(t)}}#s=t=>{if(!t)return null;try{return JSON.parse(t)}catch{return null}};getAny(t){return this.getAnyAll(t)[0]}getAnyAll(t){return this.getAll(t).filter(t=>""!==t).map(t=>this.#s(t))}toString(){let t=super.toString();return t?`?${t}`:""}toJSON(){return this.toString()}}function ne(t,...e){return t.reduce((t,n,r)=>t+(e[r-1]??"")+n)}let nn=ne;function nr(t=5){let e=Math.random().toString(36).slice(2,2+t);return e.length<t?e+nr(t-e.length):e}function ni(t){return t.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase()}function ns(t){return t.replace(/-(.)/g,(t,e)=>e.toUpperCase())}function no(t){return e1(t).forEach(e=>{delete t[e]}),t}class na extends Error{constructor(t){super(t),this.message=`gem: ${this.message}`}}function nl(t,e){let n=t.length;if(e.length!==n)return!0;for(let r=0;r<n;r++)if(t[r]!==e[r])return!0;return!1}function nc(t,e,n){let r=e;for(let i in t){let s=n(i,t[i]);r+=s?s+e:""}return r}function nu(t){return nc(t,";",(t,e)=>e||0===e?`${ni(t)}:${e}`:"")}function nh(t){return nc(t," ",(t,e)=>e?t:"")}let nd=nh;function nf(t){return nc(t,",",(t,e)=>!0===e||t===e?t:e?`${t}:${e}`:"")}let np=new WeakMap;function nm(t){let e=e4(t,t=>{Object.assign(e,t),np.get(e)?.forEach(t=>e8(t))});return np.set(e,new Set),e}function ng(t,e){let n=np.get(t);return n?.add(e),()=>n?.delete(e)}let ny=(t,...e)=>ne(t,...e.map(t=>t instanceof Element?t.outerHTML:t)),nb=(t,e)=>e.innerHTML=t;function nv(t,e){ny=t,nb=e}let nw=(t,e)=>{};function nS(t){nw=t}let{assign:n_,defineProperty:n$}=Object;n$(Symbol,"metadata",{value:Symbol.for("Symbol.metadata")});let nE=t=>"function"==typeof t&&t(),nC=globalThis.nQM,nT=Symbol.for("gem@sheetToken"),nx=Symbol.for("gem@update"),nP="gem-style-boundary",nL="gem@render-error",nO=new WeakMap,nk=new WeakMap;class nj extends CSSStyleSheet{#o;cssText="";get element(){return this.#o||(this.#o=document.createElement("style"),this.#o.textContent=this.cssText),this.#o}replaceSync(t){this.cssText=t,this.#o&&(this.#o.textContent=t),super.replaceSync(t)}}class nN{#a="";#l="";constructor(t=""){this.#l=t}setContent(t){this.#a=t}#c=new Map;#u=new Map;getStyle(t,e){let n=t&&!t.internals?.shadowRoot,r=n?t.constructor:this;if(!this.#c.has(r)){let t=new nj({media:this.#l});this.#c.set(r,t)}let i=this.#c.get(r);if(!this.#u.has(i)){let r=this.#a,s="";n&&(s=e?"@scope":`@scope (${t.tagName}) to (:state(${nP}) > *)`,r=`${s}{ ${r} }`),i.replaceSync(r),this.#u.set(i,s)}return i}updateStyle(){this.#u.forEach((t,e)=>{e.replaceSync(t?`${t}{${this.#a}}`:this.#a)})}}function nA(t,...e){let n="",r="",i=e.at(0);Array.isArray(t)?r=ne(t,...e):void 0!==i?(n=t,r=i):r=t;let s=new nN(n),o={[nT]:s},a="";return"string"==typeof r?a=r:Object.keys(r).forEach(t=>{let e="$"===t;o[t]=e||t.includes("-")?t:`${t}-${nr()}`,a+=`${e?":where(&:not([hidden])),:host(:where(:not([hidden])))":`.${o[t]}`} {${r[t]}}`}),s.setContent(a),o}let nM=(t,e,n)=>{let r=!1;e.forEach(e=>{let i=t.get(e)||0;r||=1===n&&0===i||-1===n&&1===i,t.set(e,i+n)}),r&&e8(nk.get(t),nC)};function nI(t){t?.forEach(t=>{let{callback:e,getDep:n,values:r,preCallback:i}=t,s=n?.();(!n||!r||nl(r,s))&&(nE(i),t.preCallback=e(s,r),t.values=s,t.initialized=!0)})}function nR(t){return t.filter(t=>(nE(t.preCallback),t.initialized=!1,t.values=void 0,t.fixed))}let nH=new e5,nD=(t=performance.now())=>{if(performance.now()>t+50)return requestAnimationFrame(nD);let e=nH.get();e&&(e(),nD(t))};nH.addEventListener("start",()=>e8(nD));class nV extends HTMLElement{#h;#d;#f=[];#p=[];#m=[];#g;#y;#b;#v;#w;[nx](){this.#y&&e8(this.#S)}static{t=t=>{let e=n,r=e4(t,t=>{let n=e.#f.at(0);if(!nC&&e.#y&&n&&!n.initialized)throw new na("Don't set state sync before insert the DOM");n_(r,t),!e.#v&&e.#y&&e8(e.#S,nC)});return e.#d.stateList.push(r),r},e=(t,e)=>t.#m.push(e)}constructor(){let t;super(),n=this;let{aria:e,mode:r,delegatesFocus:i,...s}=this.#_,{focusable:o,...a}=e||{};this.#h=r?this.shadowRoot||this.attachShadow({mode:r,delegatesFocus:i,...s}):this,this.#d=this.attachInternals(),this.#d.stateList=[],this.#d.sheets=[],n_(this.#d,a),this.#f.push({fixed:!0,getDep:()=>[this.disabled],callback:([e=!1])=>{if(void 0===t&&(t=this.hasAttribute("tabindex")),this.#d.ariaDisabled=String(e),o&&!t&&(this.tabIndex=-Number(e)),(o||i)&&e)return e6(this,"click",t=>t.isTrusted&&t.stopImmediatePropagation(),{capture:!0})}})}get #_(){return this.constructor[Symbol.metadata]}get #$(){return this.#m.findLast(t=>!t.condition||t.condition())}get internals(){return this.#d}#E=()=>{nI(this.#f)};#C=()=>{nI(this.#p)};#T=t=>{try{this.#v=!0,this.#C();let e=this.#h===this,n=t?t.render():e?void 0:ny`<slot></slot>`;if(void 0===n)return;let r=null!==n?n:ny`<style>${e?"@scope":":host"}{&{display:none!important;}}</style>`;nw(r,this.#h)||nb(r,this.#h)}catch(t){throw this.dispatchEvent(new CustomEvent(nL,{bubbles:!0,composed:!0,detail:t})),t}finally{this.#v=!1}};#x=()=>{let t=this.#$;this.#y&&(t||!this.#m.length)&&(this.#T(t),e8(this.#E))};#S=()=>{this.#_.noBlocking?nH.add(this.#x):this.#x()};#P=()=>{let{adoptedStyleSheets:t=[]}=this.#_,{shadowRoot:e,sheets:n}=this.#d,r=t.map(t=>t[nT].getStyle(this));if(!e)return this.prepend(...n.map(t=>t.element)),((t,e)=>{let n=t.getRootNode();if(!nO.has(n)){let t=new Map;nO.set(n,t),nk.set(t,()=>{let e=(n.adoptedStyleSheets||[]).filter(e=>!t.has(e));t.forEach((t,n)=>t&&e.push(n)),n.adoptedStyleSheets=e.reverse()})}let r=nO.get(n);return nM(r,e,1),()=>nM(r,e,-1)})(this,r);e.adoptedStyleSheets=r.concat(n)};#L=()=>{this.#f?.forEach(t=>{let{callback:e,getDep:n,initialized:r}=t;r||(t.values=n?.(),t.preCallback=e(t.values),t.initialized=!0)})};#O=()=>{this.willMount&&this.memo(this.willMount.bind(this),()=>[]),this.mounted&&this.effect(this.mounted.bind(this),()=>[]),this.updated&&this.effect((t,e)=>e&&this.updated.apply(this)),this.unmounted&&this.effect(()=>this.unmounted.bind(this),()=>[]),!this.#m.length&&this.render&&this.#m.push({render:this.render.bind(this),condition:this.shouldUpdate?.bind(this)})};#k;#j=async()=>{if(this.#g){this.#g=!1,this.#w?.(),this.#w=this.#P();return}this.#b=!0,this.#O();let{observedStores:t,mode:e,penetrable:n}=this.#_;this.#d.states.add("gem-element"),e||!this.#m.length||n||this.#d.states.add(nP),this.#k=t?.map(t=>ng(t,this.#S)),this.#T(this.#$),this.#y=!0,this.#w=this.#P(),e8(this.#L)};connectedCallback(){this.#_.noBlocking?nH.add(this.#j):this.#j()}disconnectedCallback(){if(this.isConnected){this.#g=!0;return}nH.delete(this.#j),nH.delete(this.#x),this.#y=!1,this.#k?.forEach(t=>t()),this.#f=nR(this.#f),this.#p=nR(this.#p),this.#w?.()}effect=(t,e)=>{let n={callback:t,getDep:e,initialized:this.#y,fixed:!this.#b};this.#y&&(n.values=e?.(),n.preCallback=t(n.values)),this.#f.push(n)};memo=(t,e)=>{this.#p.push({callback:t,getDep:e,fixed:!this.#b})};update=()=>e8(this.#S)}let{deleteProperty:nz,getOwnPropertyDescriptor:nW,defineProperty:nU}=Reflect,{getPrototypeOf:nG,assign:nq,hasOwn:nB}=Object,nK=new e9;function nJ(t,e,n){let r=t.metadata;nW(r,e)||nU(r,e,{value:r[e]?.filter(t=>t!==n)||[]}),r[e].push(n)}function nF(t,e){let{value:n}=nW(t,e)||{};nz(t,e),t[e]=n}let nQ=new WeakMap,{setAttribute:nY,toggleAttribute:nZ,removeAttribute:nX}=Element.prototype,n0=(t,e)=>nQ.get(nG(t))?.get(e);function n1(){}nV.prototype.setAttribute=function(t,e){let n=n0(this,t);if(!n)return nY.call(this,t,e);this[n]=e},nV.prototype.removeAttribute=function(t){let e=n0(this,t);if(!e)return nX.call(this,t);this[e]=null},nV.prototype.toggleAttribute=function(t,e){let n=n0(this,t);return n?this[n]=e??!this.hasAttribute(t):nZ.call(this,t,e)};let n2=Symbol("event handle");function n3(t,e,{attr:n,attrType:r,event:i,eventOptions:s}={}){nU(t,e,{configurable:!0,get(){let t=nK.get(this)[e];return i&&!t?(this[e]=n1,this[e]):t},set(t){let o=this,a=nK.get(o);n&&((t=r===Boolean&&""===t||r(t||""))?nY.call(this,n,r===Boolean?"":t):nX.call(this,n)),t!==a[e]&&(i?(a[e]=t?.[n2]?t:async(e,n)=>{await Promise.resolve();let r=new CustomEvent(i,{...n,...s,detail:e});o.dispatchEvent(r),await t(e,n)},a[e][n2]=!0):(a[e]=t,this[nx]()))}})}let n8=new WeakMap;function n4(t,{metadata:e}){let n=n8.get(e);if(n)return n;let r=t;do r=nG(r);while(r.constructor[Symbol.metadata]!==e);return n8.set(e,r),r}function n7(t,e){let n=t.name,r=ni(n);return t.addInitializer(function(){let i=n4(this,t);nB(i,n)||(nJ(t,"observedAttributes",r),n3(i,n,{attr:r,attrType:e})),nF(this,n);let s=nG(this),o=nQ.get(s)||new Map;o.set(r,n),nQ.set(s,o)}),function(t){return this.getAttribute(r)??t}}function n6(t,e){return n7(e,String)}function n5(t,e){return n7(e,Boolean)}function n9(t,e){return n7(e,Number)}function rt(t,e){let n=e.name;return e.addInitializer(function(){let t=n4(this,e);nB(t,n)||(nJ(e,"observedProperties",n),n3(t,n)),nF(this,n)}),function(t){return this[n]??t}}function re(t){return(e,n)=>{let{addInitializer:r,name:i,access:s,kind:o}=n;r(function(){let e=t&&(()=>t(this));if("getter"===o){if(n.private)throw new na("not support");let t=nW(n4(this,n),i).get.bind(this);this.memo(()=>{nU(this,i,{configurable:!0,value:t()})},e)}else this.memo(s.get.call(this,this).bind(this),e)})}}function rn(t){return(e,{addInitializer:n,access:r})=>{n(function(){this.effect(r.get.call(this,this).bind(this),t&&(()=>t(this)))})}}function rr(){return(t,{addInitializer:e,access:n})=>{e(function(){this.effect(()=>n.get.call(this,this).bind(this),()=>[])})}}function ri(){return re(()=>[])}function rs(){return rn(()=>[])}function ro(t){return(n,{addInitializer:r,access:i})=>{r(function(){e(this,{render:i.get.call(this,this).bind(this),condition:t&&(()=>t(this))})})}}function ra(){return(t,{addInitializer:e,access:n})=>{e(function(){this.addEventListener(nL,({detail:t})=>{nb(n.get.call(this,this).apply(this,[t]),this.internals.shadowRoot||this)})})}}function rl(t,e){let n=e.name,r=ni(n);e.addInitializer(function(){let t=n4(this,e);!nB(t,n)&&(nJ(e,"definedCSSStates",r),nU(t,n,{configurable:!0,get(){let{states:t}=this.internals;return t?.has(r)},set(t){let{states:e}=this.internals;t?e?.add(r):e?.delete(r)}}));nF(this,n)})}function rc(t,e,n,r){let i=t.name,s=ni(i);if(t.static)nJ(t,n,s);else{let r=nG(e);r[i]||(r[i]=s,nJ(t,n,s))}return r||s}function ru(t,e){return function(t){return rc(e,this,"definedSlots",t)}}function rh(t,e){return function(t){return rc(e,this,"definedParts",t)}}function rd(t,e){rp(e)}function rf(t,e){rp(e,{bubbles:!0,composed:!0})}function rp(t,e){let n=t.name,r=ni(n);t.addInitializer(function(){let i=n4(this,t);nB(i,n)||(nJ(t,"definedEvents",r),n3(i,n,{event:r,eventOptions:e})),nF(this,n)})}function rm(t){return(e,n)=>{nJ(n,"adoptedStyleSheets",t)}}function rg(t){return(e,n)=>{nJ(n,"observedStores",t)}}function ry({mode:t="open",serializable:e=!0,...n}={}){return(r,i)=>{nq(i.metadata,{mode:t,serializable:e,...n})}}function rb({penetrable:t}){return(e,n)=>{n.metadata.penetrable=t}}function rv(){return(t,e)=>{e.metadata.noBlocking=!0}}function rw(t){return(e,n)=>{let r=n.metadata;r.aria={...r.aria,...t}}}function rS(t){return(e,{addInitializer:n})=>{n(()=>{customElements.define(t,e)})}}let r_=globalThis.trustedTypes,r$=r_?.createPolicy("lit-html",{createHTML:t=>t}),rE="$lit$",rC=`lit$${Math.random().toFixed(9).slice(2)}$`,rT="?"+rC,rx=`<${rT}>`,rP=document,rL=()=>rP.createComment(""),rO=t=>null===t||"object"!=typeof t&&"function"!=typeof t,rk=t=>null==t,rj=`[
1
+ let t,e,n,r,i,s,o,a,l,c,u,h,d,f,p,m,g,y,b,v,w,S,_,$,E,C,T,x,P,L,O,k,j,N,A,M,R,I,H,D,V,z,W,U,G,q,B,K,J,F,Q,Y,Z,X,tt,te,tn,tr,ti,ts,to,ta,tl,tc,tu,th,td,tf,tp,tm,tg,ty,tb,tv,tw,tS,t_,t$,tE,tC,tT,tx,tP,tL,tO,tk,tj,tN,tA,tM,tR,tI,tH,tD,tV,tz,tW,tU,tG,tq,tB,tK,tJ,tF,tQ,tY,tZ,tX,t0,t1,t2,t3,t8,t4,t7,t6,t5,t9,et,ee,en,er,ei,es,eo,ea,el,ec,eu,eh,ed,ef,ep,em,eg,ey,eb,ev,ew,eS,e_,e$,eE,eC,eT,ex,eP,eL,eO,ek,ej,eN,eA,eM,eR,eI,eH,eD,eV,ez,eW,eU,eG,eq,eB;var eK={};eK.d=(t,e,n)=>{var r=(e,n)=>{for(var r in e)eK.o(e,r)&&!eK.o(t,r)&&Object.defineProperty(t,r,{enumerable:!0,[n]:e[r]})};r(e,"get"),r(n,"value")},eK.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),eK.r=t=>{"u">typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};var eJ={};eK.r(eJ),eK.d(eJ,{adoptedStyle:()=>rm,aria:()=>rw,async:()=>rv,attribute:()=>n6,boolattribute:()=>n5,connectStore:()=>rg,customElement:()=>rS,effect:()=>rn,emitter:()=>rd,fallback:()=>ra,globalemitter:()=>rf,light:()=>rb,memo:()=>re,mounted:()=>rs,numattribute:()=>n9,part:()=>rh,property:()=>rt,shadow:()=>ry,slot:()=>ru,state:()=>rl,template:()=>ro,unmounted:()=>rr,willMount:()=>ri});var eF={};eK.r(eF),eK.d(eF,{GemElement:()=>nV,SheetToken:()=>nT,UpdateToken:()=>nx,_RenderErrorEvent:()=>nL,_createTemplate:()=>e,createState:()=>t,css:()=>nA,html:()=>ny,render:()=>nb,setEngine:()=>nv,setHydrationEngine:()=>nS});var eQ={};eK.r(eQ),eK.d(eQ,{_StoreListenerMap:()=>np,connect:()=>ng,createStore:()=>nm});var eY={};eK.r(eY),eK.d(eY,{version:()=>it});let{assign:eZ,fromEntries:eX,entries:e0,keys:e1}=Object;function e2(t){Promise.resolve().then(t)}let e3=new Set;function e8(t,e=e2){e3.has(t)||(e(()=>{e3.delete(t),t()}),e3.add(t))}function e4(t,e){return delete e.name,delete e.length,eZ(e,t),e}function e7(t="",e=""){let{pathname:n,search:r,hash:i}=new URL(e,location.origin+t);return n+r+decodeURIComponent(i)}function e6(t,e,n,r){return t.addEventListener(e,n,r),()=>t.removeEventListener(e,n,r)}class e5 extends EventTarget{#t=new Map;#e;#n;#r(t){let e=this.#t.get(t);return e&&(e.prev?e.prev.next=e.next:this.#e=e.next,e.next?e.next.prev=e.prev:this.#n=e.prev,this.#t.delete(t)),e}get size(){return this.#t.size}get first(){return this.#e}get last(){return this.#n}isSuperLinkOf(t,e=!1){let n=t.first;if(!n)return!0;let r=e?this.#e:this.find(n.value);for(;r&&n;){if(r.value===n.value)n=n.next;else if(!e)return!1;r=r.next}return!n}find(t){return this.#t.get(t)}add(t){this.#n||this.dispatchEvent(new CustomEvent("start"));let e=this.#r(t)||{value:t};e.prev=this.#n,e.prev&&(e.prev.next=e),e.next=void 0,this.#n=e,this.#e||(this.#e=e),this.#t.set(t,e)}delete(t){let e=this.#r(t);return this.#e||this.dispatchEvent(new CustomEvent("end")),e}clear(){this.#t.clear(),this.#e=this.#n=void 0}get(){let t=this.#e;if(t)return this.delete(t.value),t.value}}class e9 extends WeakMap{get(t){let e=super.get(t);return e||(e={},this.set(t,e)),e}}class nt extends URLSearchParams{concat(t){e0("string"==typeof t?eX(new URLSearchParams(t).entries()):t).forEach(([t,e])=>{this.append(t,this.#i(e))})}#i=t=>"string"==typeof t?t:JSON.stringify(t);setAny(t,e){if(Array.isArray(e))this.delete(t),e.forEach(e=>this.append(t,this.#i(e)));else{let n=this.#i(e);n?this.set(t,n):this.delete(t)}}#s=t=>{if(!t)return null;try{return JSON.parse(t)}catch{return null}};getAny(t){return this.getAnyAll(t)[0]}getAnyAll(t){return this.getAll(t).filter(t=>""!==t).map(t=>this.#s(t))}toString(){let t=super.toString();return t?`?${t}`:""}toJSON(){return this.toString()}}function ne(t,...e){return t.reduce((t,n,r)=>t+(e[r-1]??"")+n)}let nn=ne;function nr(t=5){let e=Math.random().toString(36).slice(2,2+t);return e.length<t?e+nr(t-e.length):e}function ni(t){return t.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase()}function ns(t){return t.replace(/-(.)/g,(t,e)=>e.toUpperCase())}function no(t){return e1(t).forEach(e=>{delete t[e]}),t}class na extends Error{constructor(t){super(t),this.message=`gem: ${this.message}`}}function nl(t,e){let n=t.length;if(e.length!==n)return!0;for(let r=0;r<n;r++)if(t[r]!==e[r])return!0;return!1}function nc(t,e,n){let r=e;for(let i in t){let s=n(i,t[i]);r+=s?s+e:""}return r}function nu(t){return nc(t,";",(t,e)=>e||0===e?`${ni(t)}:${e}`:"")}function nh(t){return nc(t," ",(t,e)=>e?t:"")}let nd=nh;function nf(t){return nc(t,",",(t,e)=>!0===e||t===e?t:e?`${t}:${e}`:"")}let np=new WeakMap;function nm(t){let e=e4(t,t=>{Object.assign(e,t),np.get(e)?.forEach(t=>e8(t))});return np.set(e,new Set),e}function ng(t,e){let n=np.get(t);return n?.add(e),()=>n?.delete(e)}let ny=(t,...e)=>ne(t,...e.map(t=>t instanceof Element?t.outerHTML:t)),nb=(t,e)=>e.innerHTML=t;function nv(t,e){ny=t,nb=e}let nw=(t,e)=>{};function nS(t){nw=t}let{assign:n_,defineProperty:n$}=Object;n$(Symbol,"metadata",{value:Symbol.for("Symbol.metadata")});let nE=t=>"function"==typeof t&&t(),nC=globalThis.nQM,nT=Symbol.for("gem@sheetToken"),nx=Symbol.for("gem@update"),nP="gem-style-boundary",nL="gem@render-error",nO=new WeakMap,nk=new WeakMap;class nj extends CSSStyleSheet{#o;cssText="";get element(){return this.#o||(this.#o=document.createElement("style"),this.#o.textContent=this.cssText),this.#o}replaceSync(t){this.cssText=t,this.#o&&(this.#o.textContent=t),super.replaceSync(t)}}class nN{#a="";#l="";constructor(t=""){this.#l=t}setContent(t){this.#a=t}#c=new Map;#u=new Map;getStyle(t,e){let n=t&&!t.internals?.shadowRoot,r=n?t.constructor:this;if(!this.#c.has(r)){let t=new nj({media:this.#l});this.#c.set(r,t)}let i=this.#c.get(r);if(!this.#u.has(i)){let r=this.#a,s="";n&&(s=e?"@scope":`@scope (${t.tagName}) to (:state(${nP}) > *)`,r=`${s}{ ${r} }`),i.replaceSync(r),this.#u.set(i,s)}return i}updateStyle(){this.#u.forEach((t,e)=>{e.replaceSync(t?`${t}{${this.#a}}`:this.#a)})}}function nA(t,...e){let n="",r="",i=e.at(0);Array.isArray(t)?r=ne(t,...e):void 0!==i?(n=t,r=i):r=t;let s=new nN(n),o={[nT]:s},a="";return"string"==typeof r?a=r:Object.keys(r).forEach(t=>{let e="$"===t;o[t]=e||t.includes("-")?t:`${t}-${nr()}`,a+=`${e?":where(&:not([hidden])),:host(:where(:not([hidden])))":`.${o[t]}`} {${r[t]}}`}),s.setContent(a),o}let nM=(t,e,n)=>{let r=!1;e.forEach(e=>{let i=t.get(e)||0;r||=1===n&&0===i||-1===n&&1===i,t.set(e,i+n)}),r&&e8(nk.get(t),nC)};function nR(t){t?.forEach(t=>{let{callback:e,getDep:n,values:r,preCallback:i}=t,s=n?.();(!n||!r||nl(r,s))&&(nE(i),t.preCallback=e(s,r),t.values=s,t.initialized=!0)})}function nI(t){return t.filter(t=>(nE(t.preCallback),t.initialized=!1,t.values=void 0,t.fixed))}let nH=new e5,nD=(t=performance.now())=>{if(performance.now()>t+50)return requestAnimationFrame(nD);let e=nH.get();e&&(e(),nD(t))};nH.addEventListener("start",()=>e8(nD));class nV extends HTMLElement{#h;#d;#f=[];#p=[];#m=[];#g;#y;#b;#v;#w;[nx](){this.#y&&e8(this.#S)}static{t=t=>{let e=n,r=e4(t,t=>{let n=e.#f.at(0);if(!nC&&e.#y&&n&&!n.initialized)throw new na("Don't set state sync before insert the DOM");n_(r,t),!e.#v&&e.#y&&e8(e.#S,nC)});return e.#d.stateList.push(r),r},e=(t,e)=>t.#m.push(e)}constructor(){let t;super(),n=this;let{aria:e,mode:r,delegatesFocus:i,...s}=this.#_,{focusable:o,...a}=e||{};this.#h=r?this.shadowRoot||this.attachShadow({mode:r,delegatesFocus:i,...s}):this,this.#d=this.attachInternals(),this.#d.stateList=[],this.#d.sheets=[],n_(this.#d,a),this.#f.push({fixed:!0,getDep:()=>[this.disabled],callback:([e=!1])=>{if(void 0===t&&(t=this.hasAttribute("tabindex")),this.#d.ariaDisabled=String(e),o&&!t&&(this.tabIndex=-Number(e)),(o||i)&&e)return e6(this,"click",t=>t.isTrusted&&t.stopImmediatePropagation(),{capture:!0})}})}get #_(){return this.constructor[Symbol.metadata]}get #$(){return this.#m.findLast(t=>!t.condition||t.condition())}get internals(){return this.#d}#E=()=>{nR(this.#f)};#C=()=>{nR(this.#p)};#T=t=>{try{this.#v=!0,this.#C();let e=this.#h===this,n=t?t.render():e?void 0:ny`<slot></slot>`;if(void 0===n)return;let r=null!==n?n:ny`<style>${e?"@scope":":host"}{&{display:none!important;}}</style>`;nw(r,this.#h)||nb(r,this.#h)}catch(t){throw this.dispatchEvent(new CustomEvent(nL,{bubbles:!0,composed:!0,detail:t})),t}finally{this.#v=!1}};#x=()=>{let t=this.#$;this.#y&&(t||!this.#m.length)&&(this.#T(t),e8(this.#E))};#S=()=>{this.#_.noBlocking?nH.add(this.#x):this.#x()};#P=()=>{let{adoptedStyleSheets:t=[]}=this.#_,{shadowRoot:e,sheets:n}=this.#d,r=t.map(t=>t[nT].getStyle(this));if(!e)return this.prepend(...n.map(t=>t.element)),((t,e)=>{let n=t.getRootNode();if(!nO.has(n)){let t=new Map;nO.set(n,t),nk.set(t,()=>{let e=(n.adoptedStyleSheets||[]).filter(e=>!t.has(e));t.forEach((t,n)=>t&&e.push(n)),n.adoptedStyleSheets=e.reverse()})}let r=nO.get(n);return nM(r,e,1),()=>nM(r,e,-1)})(this,r);e.adoptedStyleSheets=r.concat(n)};#L=()=>{this.#f?.forEach(t=>{let{callback:e,getDep:n,initialized:r}=t;r||(t.values=n?.(),t.preCallback=e(t.values),t.initialized=!0)})};#O=()=>{this.willMount&&this.memo(this.willMount.bind(this),()=>[]),this.mounted&&this.effect(this.mounted.bind(this),()=>[]),this.updated&&this.effect((t,e)=>e&&this.updated.apply(this)),this.unmounted&&this.effect(()=>this.unmounted.bind(this),()=>[]),!this.#m.length&&this.render&&this.#m.push({render:this.render.bind(this),condition:this.shouldUpdate?.bind(this)})};#k;#j=async()=>{if(this.#g){this.#g=!1,this.#w?.(),this.#w=this.#P();return}this.#b=!0,this.#O();let{observedStores:t,mode:e,penetrable:n}=this.#_;this.#d.states.add("gem-element"),e||!this.#m.length||n||this.#d.states.add(nP),this.#k=t?.map(t=>ng(t,this.#S)),this.#T(this.#$),this.#y=!0,this.#w=this.#P(),e8(this.#L)};connectedCallback(){this.#_.noBlocking?nH.add(this.#j):this.#j()}disconnectedCallback(){if(this.isConnected){this.#g=!0;return}nH.delete(this.#j),nH.delete(this.#x),this.#y=!1,this.#k?.forEach(t=>t()),this.#f=nI(this.#f),this.#p=nI(this.#p),this.#w?.()}effect=(t,e)=>{let n={callback:t,getDep:e,initialized:this.#y,fixed:!this.#b};this.#y&&(n.values=e?.(),n.preCallback=t(n.values)),this.#f.push(n)};memo=(t,e)=>{this.#p.push({callback:t,getDep:e,fixed:!this.#b})};update=()=>e8(this.#S)}let{deleteProperty:nz,getOwnPropertyDescriptor:nW,defineProperty:nU}=Reflect,{getPrototypeOf:nG,assign:nq,hasOwn:nB}=Object,nK=new e9;function nJ(t,e,n){let r=t.metadata;nW(r,e)||nU(r,e,{value:r[e]?.filter(t=>t!==n)||[]}),r[e].push(n)}function nF(t,e){let{value:n}=nW(t,e)||{};nz(t,e),t[e]=n}let nQ=new WeakMap,{setAttribute:nY,toggleAttribute:nZ,removeAttribute:nX}=Element.prototype,n0=(t,e)=>nQ.get(nG(t))?.get(e);function n1(){}nV.prototype.setAttribute=function(t,e){let n=n0(this,t);if(!n)return nY.call(this,t,e);this[n]=e},nV.prototype.removeAttribute=function(t){let e=n0(this,t);if(!e)return nX.call(this,t);this[e]=null},nV.prototype.toggleAttribute=function(t,e){let n=n0(this,t);return n?this[n]=e??!this.hasAttribute(t):nZ.call(this,t,e)};let n2=Symbol("event handle");function n3(t,e,{attr:n,attrType:r,event:i,eventOptions:s}={}){nU(t,e,{configurable:!0,get(){let t=nK.get(this)[e];return i&&!t?(this[e]=n1,this[e]):t},set(t){let o=this,a=nK.get(o);n&&((t=r===Boolean&&""===t||r(t||""))?nY.call(this,n,r===Boolean?"":t):nX.call(this,n)),t!==a[e]&&(i?(a[e]=t?.[n2]?t:async(e,n)=>{await Promise.resolve();let r=new CustomEvent(i,{...n,...s,detail:e});o.dispatchEvent(r),await t(e,n)},a[e][n2]=!0):(a[e]=t,this[nx]()))}})}let n8=new WeakMap;function n4(t,{metadata:e}){let n=n8.get(e);if(n)return n;let r=t;do r=nG(r);while(r.constructor[Symbol.metadata]!==e);return n8.set(e,r),r}function n7(t,e){let n=t.name,r=ni(n);return t.addInitializer(function(){let i=n4(this,t);nB(i,n)||(nJ(t,"observedAttributes",r),n3(i,n,{attr:r,attrType:e})),nF(this,n);let s=nG(this),o=nQ.get(s)||new Map;o.set(r,n),nQ.set(s,o)}),function(t){return this.getAttribute(r)??t}}function n6(t,e){return n7(e,String)}function n5(t,e){return n7(e,Boolean)}function n9(t,e){return n7(e,Number)}function rt(t,e){let n=e.name;return e.addInitializer(function(){let t=n4(this,e);nB(t,n)||(nJ(e,"observedProperties",n),n3(t,n)),nF(this,n)}),function(t){return this[n]??t}}function re(t){return(e,n)=>{let{addInitializer:r,name:i,access:s,kind:o}=n;r(function(){let e=t&&(()=>t(this));if("getter"===o){if(n.private)throw new na("not support");let t=nW(n4(this,n),i).get.bind(this);this.memo(()=>{nU(this,i,{configurable:!0,value:t()})},e)}else this.memo(s.get.call(this,this).bind(this),e)})}}function rn(t){return(e,{addInitializer:n,access:r})=>{n(function(){this.effect(r.get.call(this,this).bind(this),t&&(()=>t(this)))})}}function rr(){return(t,{addInitializer:e,access:n})=>{e(function(){this.effect(()=>n.get.call(this,this).bind(this),()=>[])})}}function ri(){return re(()=>[])}function rs(){return rn(()=>[])}function ro(t){return(n,{addInitializer:r,access:i})=>{r(function(){e(this,{render:i.get.call(this,this).bind(this),condition:t&&(()=>t(this))})})}}function ra(){return(t,{addInitializer:e,access:n})=>{e(function(){this.addEventListener(nL,({detail:t})=>{nb(n.get.call(this,this).apply(this,[t]),this.internals.shadowRoot||this)})})}}function rl(t,e){let n=e.name,r=ni(n);e.addInitializer(function(){let t=n4(this,e);!nB(t,n)&&(nJ(e,"definedCSSStates",r),nU(t,n,{configurable:!0,get(){let{states:t}=this.internals;return t?.has(r)},set(t){let{states:e}=this.internals;t?e?.add(r):e?.delete(r)}}));nF(this,n)})}function rc(t,e,n,r){let i=t.name,s=ni(i);if(t.static)nJ(t,n,s);else{let r=nG(e);r[i]||(r[i]=s,nJ(t,n,s))}return r||s}function ru(t,e){return function(t){return rc(e,this,"definedSlots",t)}}function rh(t,e){return function(t){return rc(e,this,"definedParts",t)}}function rd(t,e){rp(e)}function rf(t,e){rp(e,{bubbles:!0,composed:!0})}function rp(t,e){let n=t.name,r=ni(n);t.addInitializer(function(){let i=n4(this,t);nB(i,n)||(nJ(t,"definedEvents",r),n3(i,n,{event:r,eventOptions:e})),nF(this,n)})}function rm(t){return(e,n)=>{nJ(n,"adoptedStyleSheets",t)}}function rg(t){return(e,n)=>{nJ(n,"observedStores",t)}}function ry({mode:t="open",serializable:e=!0,...n}={}){return(r,i)=>{nq(i.metadata,{mode:t,serializable:e,...n})}}function rb({penetrable:t}){return(e,n)=>{n.metadata.penetrable=t}}function rv(){return(t,e)=>{e.metadata.noBlocking=!0}}function rw(t){return(e,n)=>{let r=n.metadata;r.aria={...r.aria,...t}}}function rS(t){return(e,{addInitializer:n})=>{n(()=>{customElements.define(t,e)})}}let r_=globalThis.trustedTypes,r$=r_?.createPolicy("lit-html",{createHTML:t=>t}),rE="$lit$",rC=`lit$${Math.random().toFixed(9).slice(2)}$`,rT="?"+rC,rx=`<${rT}>`,rP=document,rL=()=>rP.createComment(""),rO=t=>null===t||"object"!=typeof t&&"function"!=typeof t,rk=t=>null==t,rj=`[
2
2
  \f\r]`,rN=`[^
3
- \f\r"'\`<>=]`,rA=/<(?:(!--|\/[^a-zA-Z])|(\/?[a-zA-Z][^>\s]*)|(\/?$))/g,rM=/-->/g,rI=/>/g,rR=RegExp(`>|${rj}(?:([^\\s"'>=/]+)(${rj}*=${rj}*(?:${rN}|("|')|))|$)`,"g"),rH=/'/g,rD=/"/g,rV=/^(?:script|style|textarea|title)$/i,rz="v-if",rW="v-else-if",rU="v-else";class rG{type;strings;values;constructor(t,e,n){this.type=t,this.strings=e,this.values=n}}let rq=t=>(e,...n)=>new rG(t,e,n),rB=rq(1),rK=rq(2),rJ=rq(3),rF=Symbol.for("lit-noChange"),rQ=new WeakMap,rY=rP.createTreeWalker(rP,129);class rZ{el;parts=[];constructor({strings:t,type:e},n){let r,i=0,s=0,o=t.length-1,a=this.parts,[l,c]=((t,e)=>{let n,r=t.length-1,i=[],s=2===e?"<svg>":3===e?"<math>":"",o=rA;for(let e=0;e<r;e++){let r,a,l=t[e],c=-1,u=0;for(;u<l.length&&(o.lastIndex=u,null!==(a=o.exec(l)));)u=o.lastIndex,o===rA?"!--"===a[1]?o=rM:void 0!==a[1]?o=rI:void 0!==a[2]?(rV.test(a[2])&&(n=RegExp(`</${a[2]}`,"g")),o=rR):void 0!==a[3]&&(o=rR):o===rR?">"===a[0]?(o=n??rA,c=-1):void 0===a[1]?c=-2:(c=o.lastIndex-a[2].length,r=a[1],o=void 0===a[3]?rR:'"'===a[3]?rD:rH):o===rD||o===rH?o=rR:o===rM||o===rI?o=rA:(o=rR,n=void 0);let h=o===rR&&t[e+1].startsWith("/>")?" ":"";s+=o===rA?l+rx:c>=0?(i.push(r),l.slice(0,c)+rE+l.slice(c)+rC+h):l+rC+(-2===c?e:h)}let a=s+(t[r]||"<?>")+(2===e?"</svg>":3===e?"</math>":"");return[function(t,e){if(!Array.isArray(t))throw Error("invalid template");return void 0!==r$?r$.createHTML(e):e}(t,a),i]})(t,e);if(this.el=rZ.createElement(l,n),rY.currentNode=this.el.content,2===e||3===e){let t=this.el.content.firstChild;t.replaceWith(...t.childNodes)}for(;null!==(r=rY.nextNode())&&a.length<o;){if(1===r.nodeType){if(r.hasAttributes())for(let t of r.getAttributeNames())if(t.endsWith(rE)){let e=c[s++],n=r.getAttribute(t).split(rC),o=/([.?@])?(.*)/.exec(e);a.push({type:1,index:i,name:o[2],strings:n,ctor:"."===o[1]?r8:"?"===o[1]?r4:"@"===o[1]?r7:r3}),r.removeAttribute(t)}else t.startsWith(rC)&&(a.push({type:6,index:i}),r.removeAttribute(t));if(rV.test(r.tagName)){let t=r.textContent.split(rC),e=t.length-1;if(e>0){r.textContent=r_?r_.emptyScript:"";for(let n=0;n<e;n++)r.append(t[n],rL()),rY.nextNode(),a.push({type:2,index:++i});r.append(t[e],rL())}}}else if(8===r.nodeType)if(r.data===rT)a.push({type:2,index:i});else{let t=-1;for(;-1!==(t=r.data.indexOf(rC,t+1));)a.push({type:7,index:i}),t+=rC.length-1}i++}}static createElement(t,e){let n=rP.createElement("template");return n.innerHTML=t,n}}function rX(t,e,n=t,r){if(e===rF)return e;let i=void 0!==r?n.__directives?.[r]:n.__directive,s=rO(e)?void 0:e._$litDirective$;return i?.constructor!==s&&(i?._$notifyDirectiveConnectionChanged?.(!1),void 0===s?i=void 0:(i=new s(t))._$initialize(t,n,r),void 0!==r?(n.__directives??=[])[r]=i:n.__directive=i),void 0!==i&&(e=rX(t,i._$resolve(t,e.values),i,r)),e}class r0{_$template;_$parts=[];_$conditions=[];_$parent;_$disconnectableChildren=void 0;constructor(t,e){this._$template=t,this._$parent=e}get parentNode(){return this._$parent.parentNode}get _$isConnected(){return this._$parent._$isConnected}_clone(t){let{el:{content:e},parts:n}=this._$template,r=new Map,i=new Map,s=(t?.creationScope??rP).importNode(e,!0);rY.currentNode=s;let o=rY.nextNode(),a=0,l=0,c=n[0];for(;void 0!==c;){if(a===c.index){let e;2===c.type?e=new r2(o,o.nextSibling,this,t):1===c.type?(c.name===rz&&r.set(o,l),c.name===rW&&i.set(o,l),e=new c.ctor(o,c.name,c.strings,this,t)):6===c.type&&(e=new r6(o,this,t)),this._$parts.push(e),c=n[++l]}a!==c?.index&&(o=rY.nextNode(),a++)}let u=new Map;for(let t of(r.forEach((t,e)=>{let n=new r1(e,t);this._$conditions.push(n),u.set(e,n);let r=e;for(;r=r.nextElementSibling;){let t=i.get(r);if(void 0===t)break;n.push(r,t)}}),this._$parts)){if(t?.type!==2)continue;let e=u.get(t._$endNode);e&&(t._$endNode=e.mark)}return rY.currentNode=rP,s}_update(t){let e=0;for(let n of this._$parts)void 0!==n&&(void 0!==n.strings?(n._$setValue(t,n,e),e+=n.strings.length-2):n.name===rz||n.name===rW||n._$setValue(t[e])),e++;this._$conditions.forEach(e=>e.update(t))}}class r1{mark;list;constructor(t,e){let n=rL();n._$chain=this,t.before(n),this.mark=n,this.list=[{ele:t,idx:e}],this.check()}get next(){return this.list.at(-1).ele.nextElementSibling}push(t,e){this.list.push({ele:t,idx:e}),this.check()}check(){let t=this.next;t?.attributes.getNamedItem(rU)&&(this.list.push({ele:t}),t.removeAttribute(rU))}update(t){let{mark:e,list:n}=this,r=n.find(({idx:e})=>void 0===e||!!t[e]);r&&!r.ele.parentNode&&e.after(r.ele),n.forEach(({ele:t})=>(!r||t!==r.ele)&&t.remove())}}class r2{type=2;options;_$committedValue;__directive;_$startNode;_$endNode;_$parent;__isConnected;get _$isConnected(){return this._$parent?._$isConnected??this.__isConnected}_$disconnectableChildren=void 0;constructor(t,e,n,r){this._$startNode=t,this._$endNode=e,this._$parent=n,this.options=r,this.__isConnected=r?.isConnected??!0}get parentNode(){let t=this._$startNode.parentNode,e=this._$parent;return void 0!==e&&t?.nodeType===11&&(t=e.parentNode),t}get startNode(){return this._$startNode}get endNode(){return this._$endNode}_$setValue(t,e=this){this.parentNode&&(rO(t=rX(this,t,e))?rk(t)||""===t?(rk(this._$committedValue)||this._$clear(),this._$committedValue=void 0):t!==this._$committedValue&&t!==rF&&this._commitText(t):t instanceof rG?this._commitTemplateResult(t):void 0!==t.nodeType?this._commitNode(t):Symbol.iterator in t?this._commitIterable(t):this._commitText(t))}_insert(t){return this._$startNode.parentNode.insertBefore(t,this._$endNode)}_commitNode(t){this._$committedValue!==t&&(this._$clear(),this._$committedValue=this._insert(t))}_commitText(t){!rk(this._$committedValue)&&rO(this._$committedValue)?this._$startNode.nextSibling.data=t:this._commitNode(rP.createTextNode(t)),this._$committedValue=t}_commitTemplateResult(t){let{values:e}=t,n=this._$getTemplate(t);if(this._$committedValue?._$template===n)this._$committedValue._update(e);else{let t=new r0(n,this),r=t._clone(this.options);t._update(e),this._commitNode(r),this._$committedValue=t}}_$getTemplate(t){let e=rQ.get(t.strings);return void 0===e&&rQ.set(t.strings,e=new rZ(t)),e}_commitIterable(t){let e;Array.isArray(this._$committedValue)||(this._$committedValue=[],this._$clear());let n=this._$committedValue,r=0;for(let i of t)r===n.length?n.push(e=new r2(this._insert(rL()),this._insert(rL()),this,this.options)):e=n[r],e._$setValue(i),r++;r<n.length&&(this._$clear(e&&e._$endNode.nextSibling,r),n.length=r)}_$clear(t=this._$startNode.nextSibling,e){for(this._$notifyConnectionChanged?.(!1,!0,e);t&&t!==this._$endNode;){let e=t.nextSibling;t.remove(),t=e}}setConnected(t){void 0===this._$parent&&(this.__isConnected=t,this._$notifyConnectionChanged?.(t))}}class r3{type=1;element;name;options;strings;_$committedValue;__directives;_$parent;_$disconnectableChildren=void 0;get tagName(){return this.element.tagName}get _$isConnected(){return this._$parent._$isConnected}constructor(t,e,n,r,i){this.element=t,this.name=e,this._$parent=r,this.options=i,n.length>2||""!==n[0]||""!==n[1]?(this._$committedValue=Array(n.length-1).fill(new String),this.strings=n):this._$committedValue=void 0}_$setValue(t,e=this,n,r){let i=this.strings,s=!1;if(void 0===i)(s=!rO(t=rX(this,t,e,0))||t!==this._$committedValue)&&(this._$committedValue=t);else{let r,o,a=t;for(t=i[0],r=0;r<i.length-1;r++)o=rX(this,a[n+r],e,r),s||=!rO(o)||o!==this._$committedValue[r],rk(o)?t=void 0:rk(t)||(t+=o+i[r+1]),this._$committedValue[r]=o}s&&!r&&this._commitValue(t)}_commitValue(t){rk(t)?this.element.removeAttribute(this.name):this.element.setAttribute(this.name,t)}}class r8 extends r3{type=3;_commitValue(t){this.element[this.name]=t}}class r4 extends r3{type=4;_commitValue(t){this.element.toggleAttribute(this.name,!!t)}}class r7 extends r3{type=5;_$setValue(t,e=this){t=rX(this,t,e,0);let n=this._$committedValue,r=n&&(!t||t.capture!==n.capture||t.once!==n.once||t.passive!==n.passive),i=t&&(!n||r);r&&this.element.removeEventListener(this.name,this,n),i&&this.element.addEventListener(this.name,this,t),this._$committedValue=t}handleEvent(t){"function"==typeof this._$committedValue?this._$committedValue.call(this.options?.host??this.element,t):this._$committedValue.handleEvent(t)}}class r6{element;type=6;__directive;_$committedValue;_$parent;_$disconnectableChildren=void 0;_$props;options;constructor(t,e,n){this.element=t,this._$parent=e,this.options=n}get _$isConnected(){return this._$parent._$isConnected}_$setValue(t){if(t)if(t instanceof r9)t.value=this.element;else if(t._$litDirective$)rX(this,t);else{if(this._$props)for(let t in this._$props)Reflect.set(this.element,t,void 0);Object.assign(this.element,t),this._$props=t}}}let r5=()=>new r9;class r9{value}let it="2.2.10",ie=t=>(...e)=>({_$litDirective$:t,values:e});class ir{__part;__attributeIndex;__directive;_$parent;_$disconnectableChildren;get _$isConnected(){return this._$parent._$isConnected}_$initialize(t,e,n){this.__part=t,this._$parent=e,this.__attributeIndex=n}_$resolve(t,e){return this.update(t,e)}update(t,e){return this.render(...e)}}let ii=(t,e,n)=>{let r=t._$startNode.parentNode,i=void 0===e?t._$endNode:e._$startNode;if(void 0===n)n=new r2(r.insertBefore(document.createComment(""),i),r.insertBefore(document.createComment(""),i),t,t.options);else{let e=n._$endNode.nextSibling,s=n._$parent,o=s!==t;if(o){let e;n._$reparentDisconnectables?.(t),n._$parent=t,void 0!==n._$notifyConnectionChanged&&(e=t._$isConnected)!==s._$isConnected&&n._$notifyConnectionChanged(e)}if(e!==i||o){let t=n._$startNode;for(;t!==e;){let e=t.nextSibling;r.insertBefore(t,i),t=e}}}return n},is=(t,e,n=t)=>(t._$setValue(e,n),t),io={},ia=t=>{t._$notifyConnectionChanged?.(!1,!0);let e=t._$startNode,n=t._$endNode.nextSibling;for(;e!==n;){let t=e.nextSibling;e.remove(),e=t}},il=(t,e,n)=>{let r=new Map;for(let i=e;i<=n;i++)r.set(t[i],i);return r},ic=ie(class extends ir{_itemKeys;constructor(t){if(super(),2!==t.type)throw Error("repeat() can only be used in text expressions")}_getValuesAndKeys(t,e,n){let r;void 0===n?n=e:void 0!==e&&(r=e);let i=[],s=[],o=0;for(let e of t)i[o]=r?r(e,o):o,s[o]=n(e,o),o++;return{values:s,keys:i}}render(t,e,n){return this._getValuesAndKeys(t,e,n).values}update(t,[e,n,r]){let i,s,o=t._$committedValue,{values:a,keys:l}=this._getValuesAndKeys(e,n,r);if(!Array.isArray(o))return this._itemKeys=l,a;let c=this._itemKeys??=[],u=[],h=0,d=o.length-1,f=0,p=a.length-1;for(;h<=d&&f<=p;)if(null===o[h])h++;else if(null===o[d])d--;else if(c[h]===l[f])u[f]=is(o[h],a[f]),h++,f++;else if(c[d]===l[p])u[p]=is(o[d],a[p]),d--,p--;else if(c[h]===l[p])u[p]=is(o[h],a[p]),ii(t,u[p+1],o[h]),h++,p--;else if(c[d]===l[f])u[f]=is(o[d],a[f]),ii(t,o[h],o[d]),d--,f++;else if(void 0===i&&(i=il(l,f,p),s=il(c,h,d)),i.has(c[h]))if(i.has(c[d])){let e=s.get(l[f]),n=void 0!==e?o[e]:null;if(null===n){let e=ii(t,o[h]);is(e,a[f]),u[f]=e}else u[f]=is(n,a[f]),ii(t,o[h],n),o[e]=null;f++}else ia(o[d]),d--;else ia(o[h]),h++;for(;f<=p;){let e=ii(t,u[p+1]);is(e,a[f]),u[f++]=e}for(;h<=d;){let t=o[h++];null!==t&&ia(t)}return this._itemKeys=l,((t,e=io)=>t._$committedValue=e)(t,u),rF}});nv(rB,(t,e,n)=>{let r=n?.renderBefore??e,i=r._$litPart$;if(void 0===i){let t=n?.renderBefore??null;r._$litPart$=i=new r2(e.insertBefore(rL(),t),t,void 0,n??{})}return i._$setValue(t),i}),globalThis.__GEM_DEVTOOLS__HOOK__&&!globalThis.__GEM_DEVTOOLS__HOOK__.GemElement&&Object.assign(globalThis.__GEM_DEVTOOLS__HOOK__,{...eF,...eJ,...eQ,...eY});let iu=globalThis.history,ih=iu.pushState.bind(iu),id=iu.replaceState.bind(iu),ip=0,im=()=>`${performance.now()}-${++ip}`,ig=nm({$hasCloseHandle:!1,$hasOpenHandle:!1,$hasShouldCloseHandle:!1,$key:""}),iy=new Map;function ib(t){let{$key:e,$hasCloseHandle:n,$hasOpenHandle:r,$hasShouldCloseHandle:i}=t||{};if(ig.$key!==e){if(e)throw new na("`$key` is not allowed");if(n)throw new na("`$hasCloseHandle` is not allowed");if(r)throw new na("`$hasOpenHandle` is not allowed");if(i)throw new na("`$hasShouldCloseHandle` is not allowed")}}function iv(t){return ix.basePath?ix.basePath+t:t}function iw(t){return t===ix.basePath?"/":t.replace(RegExp(`^${ix.basePath}/`),"/")}function iS(){ix.dispatchEvent(new CustomEvent("beforechange"))}function i_(t){let e=iy.get(ig.$key)||{path:iw(location.pathname),query:new nt},n=t.path?e7(e.path,t.path):iw(location.pathname),r=new nt(t.query??(t.path?"":location.search)),i=String(r)!==String(e.query),s=i?r:e.query,o=n!==e.path||i,a=t.title||(o?"":document.title),l=t.close||t.data||t.open||t.shouldClose,c=decodeURIComponent(t.hash??(!o&&l?location.hash:""));return{...t,title:a,path:n,query:s,hash:c}}function i$(t,e){ib(t.data);let n=i_(t),{title:r,path:i,query:s,hash:o,close:a,open:l,shouldClose:c,data:u}=n,h={$hasCloseHandle:!!a,$hasOpenHandle:!!l,$hasShouldCloseHandle:!!c,$key:im(),$title:r,...u};iy.set(h.$key,n),iS(),no(ig),ig(h);let d=iv(i)+new nt(s)+o,f=decodeURIComponent(location.hash);e(h,r,d),f!==o&&dispatchEvent(new CustomEvent("hashchange"))}function iE(t,e,n,r){ib(t);let i={$key:im(),$title:e,...t||{}},{pathname:s,search:o,hash:a}=new URL(n,location.origin+location.pathname),l=i_({path:s,query:new nt(o),hash:a,title:e,data:t});iy.set(i.$key,l),iS(),no(ig),ig(i);let c=iv(s)+l.query+a,u=location.hash;r(i,e,c),u!==a&&dispatchEvent(new CustomEvent("hashchange"))}let iC=nm({basePath:""});class iT extends EventTarget{get store(){return ig}get currentKey(){return ig.$key}get basePath(){return iC.basePath}set basePath(t){iC({basePath:t}),Object.assign(iy.get(ig.$key),{path:iw(location.pathname)})}getParams(){return iy.get(ig.$key)}updateParams(t){Object.assign(iy.get(ig.$key),t),ig()}push(t){i$(t,ih)}replace(t){i$(t,id)}pushIgnoreCloseHandle(t){ig.$hasCloseHandle?(iy.get(ig.$key)?.close?.(),this.replace(t)):this.push(t)}forward(){iu.forward()}back(){iu.back()}}let ix=new iT,iP=nm({defaultTitle:document.title,url:"",title:""});if(!globalThis._GEMHISTORY){if(globalThis._GEMHISTORY={history:ix,titleStore:iP,basePathStore:iC},iu.pushState=(t,e,n)=>{iE(t,e,n,ih)},iu.replaceState=(t,e,n)=>{iE(t,e,n,id)},addEventListener("hashchange",({isTrusted:t})=>{t&&ix.replace({hash:location.hash})}),iu.state)if(iu.state.$hasCloseHandle){ig(iu.state);let t=i_({title:document.title});iy.set(ig.$key,t),ix.back()}else{let t=i_({title:document.title,hash:location.hash});ig({$key:im(),...iu.state||{}}),iy.set(ig.$key,t)}else{let{protocol:t,pathname:e,search:n,hash:r}=location;(t.startsWith("http")||t.startsWith("tauri"))&&ix.replace({path:e,query:n,hash:r})}ng(iP,()=>{let t=iy.get(ig.$key);t&&(t.title=iP.title)}),ng(ig,()=>{let{title:t}=ix.getParams();t!==iP.title&&iP({title:t})});let t=!1;addEventListener("popstate",e=>{let n=e.state;if(n?.$key){if(t){t=!1;return}if(!iy.has(n.$key)){let{pathname:t,search:e,hash:r}=location;iy.set(n.$key,{path:iw(t),query:new nt(e),hash:decodeURIComponent(r),title:iP.title||n.$title,data:n})}if(parseFloat(n.$key)>parseFloat(ig.$key)&&n.$hasOpenHandle)iy.get(n.$key)?.open?.();else if(ig.$hasCloseHandle){let e=iy.get(ig.$key),r=e?.close,i=e?.shouldClose;if(i&&!i()){t=!0,ix.forward();return}r?r():n.$hasCloseHandle&&(t=!0,ix.back())}iS(),no(ig),ig(n)}})}let{history:iL,titleStore:iO,basePathStore:ik}=globalThis._GEMHISTORY;function ij(t,e,n){"symbol"==typeof e&&(e=(e=e.description)?"["+e+"]":"");try{Object.defineProperty(t,"name",{configurable:!0,value:n?n+" "+e:e})}catch(t){}return t}let iN=Symbol();r=rg(iL.store),i=rw({role:"dialog",ariaModal:"true"}),o=nV,a=ri();class iA extends o{static{({e:[l,c,u,h,d,f],c:[p,s]}=function(t,e,n,r,i){var s,o,a,l,c,u,h,d=Symbol.metadata||Symbol.for("Symbol.metadata"),f=Object.defineProperty,p=Object.create,m=[p(null),p(null)],g=e.length;function y(e,n,r){return function(i,s){n&&(s=i,i=t);for(var o=0;o<e.length;o++)s=e[o].apply(i,r?[s]:[]);return r?s:i}}function b(t,e,n,r){if("function"!=typeof t&&(r||void 0!==t))throw TypeError(e+" must "+(n||"be")+" a function"+(r?"":" or undefined"));return t}function v(t,e,n,r,i,s,o,a,l,c,d){function p(t){if(!d(t))throw TypeError("Attempted to access private element on non-instance")}var g=[].concat(e[0]),v=e[3],w=!o,S=1===i,_=3===i,$=4===i,E=2===i;function C(e,n,r){return function(i,s){return n&&(s=i,i=t),r&&r(i),desc[e].call(i,s)}}var T={},x=[],P=_?"get":$||S?"set":"value";if(!w&&(l?(c||S?T={get:ij(function(){return v(this)},r,"get"),set:function(t){e[4](this,t)}}:T[P]=v,c||ij(T[P],r,E?"":P)):c||(T=Object.getOwnPropertyDescriptor(t,r)),!c&&!l)){if((h=m[+a][r])&&(h^i)!=7)throw Error("Decorating two elements with the same name ("+T[P].name+") is not supported yet");m[+a][r]=i<3?1:i}for(var L=t,O=g.length-1;O>=0;O-=n?2:1){var k=b(g[O],"A decorator","be",!0),j=n?g[O-1]:void 0,N={},A={kind:["field","accessor","method","getter","setter","class"][i],name:r,metadata:u,addInitializer:(function(t,e){if(t.v)throw TypeError("attempted to call addInitializer after decoration was finished");b(e,"An initializer","be",!0),s.push(e)}).bind(null,N)};if(w){h=k.call(j,L,A),N.v=1,b(h,"class decorators","return")&&(L=h);continue}if(A.static=a,A.private=l,h=A.access={has:l?d.bind():function(t){return r in t}},$||(h.get=l?E?function(t){return p(t),T.value}:C("get",0,p):function(t){return t[r]}),E||_||(h.set=l?C("set",0,p):function(t,e){t[r]=e}),L=k.call(j,S?{get:T.get,set:T.set}:T[P],A),N.v=1,S){if("object"==typeof L&&L)(h=b(L.get,"accessor.get"))&&(T.get=h),(h=b(L.set,"accessor.set"))&&(T.set=h),(h=b(L.init,"accessor.init"))&&x.unshift(h);else if(void 0!==L)throw TypeError("accessor decorators must return an object with get, set, or init properties or undefined")}else b(L,(c?"field":"method")+" decorators","return")&&(c?x.unshift(L):T[P]=L)}return i<2&&o.push(y(x,a,1),y(s,a,0)),c||w||(l?S?o.splice(-1,0,C("get",a),C("set",a)):o.push(E?T[P]:b.call.bind(T[P])):f(t,r,T)),L}function w(t){return f(t,d,{configurable:!0,enumerable:!0,value:u})}return void 0!==i&&(u=i[d]),u=p(null==u?null:u),a=[],l=function(t){t&&a.push(y(t))},(c=function(e,i){for(var l=0;l<n.length;l++){var c=n[l],u=c[1],h=7&u;if((8&u)==e&&!h==i){var d=c[2],f=!!c[3],p=16&u;v(e?t:t.prototype,c,p,f?"#"+d:function(t){var e=function(t,e){if("object"!=typeof t||null===t)return t;var n=t[Symbol.toPrimitive];if(void 0!==n){var r=n.call(t,e||"default");if("object"!=typeof r)return r;throw TypeError("@@toPrimitive must return a primitive value.")}return("string"===e?String:Number)(t)}(t,"string");return"symbol"==typeof e?e:String(e)}(d),h,h<2?[]:e?o=o||[]:s=s||[],a,!!e,f,i,e&&f?function(e){return function(t){if(Object(t)!==t)throw TypeError("right-hand side of 'in' should be an object, got "+(null!==t?typeof t:"null"));return t}(e)===t}:r)}}})(8,0),c(0,0),c(8,1),c(0,1),l(s),l(o),h=a,g||w(t),{e:h,get c(){var S=[];return g&&[w(t=v(t,[e],0,t.name,5,S)),y(S,1)]}}}(this,[r,i],[[n6,0,"label"],[rl,0,"opened"],[a,0,"init",function(t){return t.#N},function(t,e){t.#N=e}]],t=>#N in t,o))}label=l(this);opened=(c(this),u(this));#A=void h(this);#M;#I=[];#R=()=>{this.inert=!0,this.#I.forEach(t=>t.inert=!1),this.#A?this.#A.before(this):this.#M&&this.#M?.appendChild(this),this.dispatchEvent(new CustomEvent("close")),this.opened=!1};#H=()=>{this.hidden=!1,this.inert=!1,this.#A=this.nextSibling,this.#M=this.parentElement||this.getRootNode(),this.#I=[...document.body.children].filter(t=>!t.inert),this.#I.forEach(t=>t.inert=!0),document.body.append(this),this.dispatchEvent(new CustomEvent("open")),this.opened=!0};#N=d(this,()=>this.inert=!0);open=(f(this),()=>{if(!this.opened)return this.#H(),iL.push({title:this.label,open:this.#H,close:this.#R,shouldClose:this.shouldClose}),iN});shouldClose(){return!0}close=()=>(iL.back(),iN);forceClose=()=>(this.opened=!1,setTimeout(this.close,100),iN);static{s()}}function iM(t,e,n){"symbol"==typeof e&&(e=(e=e.description)?"["+e+"]":"");try{Object.defineProperty(t,"name",{configurable:!0,value:n?n+" "+e:e})}catch(t){}return t}function iI(t){return t}let iR=Symbol("open mark");function iH(t){let e,n,r,i,s,o,a,l,c,u,h,d=Symbol();return e=ry(),n=rw({role:"alertdialog",ariaModal:"true"}),i=nV,s=rs(),o=rs(),new class extends iI{constructor(){super(h),r()}static [class extends i{static{({e:[a,l,c,u],c:[h,r]}=function(t,e,n,r,i){var s,o,a,l,c,u,h,d=Symbol.metadata||Symbol.for("Symbol.metadata"),f=Object.defineProperty,p=Object.create,m=[p(null),p(null)],g=e.length;function y(e,n,r){return function(i,s){n&&(s=i,i=t);for(var o=0;o<e.length;o++)s=e[o].apply(i,r?[s]:[]);return r?s:i}}function b(t,e,n,r){if("function"!=typeof t&&(r||void 0!==t))throw TypeError(e+" must "+(n||"be")+" a function"+(r?"":" or undefined"));return t}function v(t,e,n,r,i,s,o,a,l,c,d){function p(t){if(!d(t))throw TypeError("Attempted to access private element on non-instance")}var g=[].concat(e[0]),v=e[3],w=!o,S=1===i,_=3===i,$=4===i,E=2===i;function C(e,n,r){return function(i,s){return n&&(s=i,i=t),r&&r(i),desc[e].call(i,s)}}var T={},x=[],P=_?"get":$||S?"set":"value";if(!w&&(l?(c||S?T={get:iM(function(){return v(this)},r,"get"),set:function(t){e[4](this,t)}}:T[P]=v,c||iM(T[P],r,E?"":P)):c||(T=Object.getOwnPropertyDescriptor(t,r)),!c&&!l)){if((h=m[+a][r])&&(h^i)!=7)throw Error("Decorating two elements with the same name ("+T[P].name+") is not supported yet");m[+a][r]=i<3?1:i}for(var L=t,O=g.length-1;O>=0;O-=n?2:1){var k=b(g[O],"A decorator","be",!0),j=n?g[O-1]:void 0,N={},A={kind:["field","accessor","method","getter","setter","class"][i],name:r,metadata:u,addInitializer:(function(t,e){if(t.v)throw TypeError("attempted to call addInitializer after decoration was finished");b(e,"An initializer","be",!0),s.push(e)}).bind(null,N)};if(w){h=k.call(j,L,A),N.v=1,b(h,"class decorators","return")&&(L=h);continue}if(A.static=a,A.private=l,h=A.access={has:l?d.bind():function(t){return r in t}},$||(h.get=l?E?function(t){return p(t),T.value}:C("get",0,p):function(t){return t[r]}),E||_||(h.set=l?C("set",0,p):function(t,e){t[r]=e}),L=k.call(j,S?{get:T.get,set:T.set}:T[P],A),N.v=1,S){if("object"==typeof L&&L)(h=b(L.get,"accessor.get"))&&(T.get=h),(h=b(L.set,"accessor.set"))&&(T.set=h),(h=b(L.init,"accessor.init"))&&x.unshift(h);else if(void 0!==L)throw TypeError("accessor decorators must return an object with get, set, or init properties or undefined")}else b(L,(c?"field":"method")+" decorators","return")&&(c?x.unshift(L):T[P]=L)}return i<2&&o.push(y(x,a,1),y(s,a,0)),c||w||(l?S?o.splice(-1,0,C("get",a),C("set",a)):o.push(E?T[P]:b.call.bind(T[P])):f(t,r,T)),L}function w(t){return f(t,d,{configurable:!0,enumerable:!0,value:u})}return void 0!==i&&(u=i[d]),u=p(null==u?null:u),a=[],l=function(t){t&&a.push(y(t))},(c=function(e,i){for(var l=0;l<n.length;l++){var c=n[l],u=c[1],h=7&u;if((8&u)==e&&!h==i){var d=c[2],f=!!c[3],p=16&u;v(e?t:t.prototype,c,p,f?"#"+d:function(t){var e=function(t,e){if("object"!=typeof t||null===t)return t;var n=t[Symbol.toPrimitive];if(void 0!==n){var r=n.call(t,e||"default");if("object"!=typeof r)return r;throw TypeError("@@toPrimitive must return a primitive value.")}return("string"===e?String:Number)(t)}(t,"string");return"symbol"==typeof e?e:String(e)}(d),h,h<2?[]:e?o=o||[]:s=s||[],a,!!e,f,i,e&&f?function(e){return function(t){if(Object(t)!==t)throw TypeError("right-hand side of 'in' should be an object, got "+(null!==t?typeof t:"null"));return t}(e)===t}:r)}}})(8,0),c(0,0),c(8,1),c(0,1),l(s),l(o),h=a,g||w(t),{e:h,get c(){var S=[];return g&&[w(t=v(t,[e],0,t.name,5,S)),y(S,1)]}}}(this,[e,n],[[s,0,"connectHistory",function(t){return t.#D},function(t,e){t.#D=e}],[o,0,"connectStore",function(t){return t.#V},function(t,e){t.#V=e}]],t=>#D in t,i))}constructor(...t){super(...t),u(this)}static get isOpen(){return this.store[iR]}static open(t){let e=new this;this.instance=e,this.inertStore=[...document.body.children].filter(t=>!t.inert),this.inertStore.forEach(t=>t.inert=!0),document.body.append(e);let n=()=>this.store({[iR]:!0,...t});return setTimeout(()=>{n(),iL.push({title:e.label,open:n,close:this.closeHandle.bind(this),shouldClose:this.shouldClose.bind(this)})},100),d}static close(){return iL.back(),d}static closeHandle(){return this.inertStore.forEach(t=>t.inert=!1),this.instance?.remove(),this.store({[iR]:!1,...t}),d}static shouldClose(){return!0}label="";#D=a(this,()=>ng(iL.store,this.update));#V=(l(this),c(this,()=>ng(h.store,this.update)))}];inertStore=[];instance=null;store=nm({[iR]:!1,...t})},h}function iD(t,e,n){"symbol"==typeof e&&(e=(e=e.description)?"["+e+"]":"");try{Object.defineProperty(t,"name",{configurable:!0,value:n?n+" "+e:e})}catch(t){}return t}function iV(t,e,n,r,i,s){var o,a,l,c,u,h,d,f=Symbol.metadata||Symbol.for("Symbol.metadata"),p=Object.defineProperty,m=Object.create,g=[m(null),m(null)],y=e.length;function b(e,n,r){return function(i,s){n&&(s=i,i=t);for(var o=0;o<e.length;o++)s=e[o].apply(i,r?[s]:[]);return r?s:i}}function v(t,e,n,r){if("function"!=typeof t&&(r||void 0!==t))throw TypeError(e+" must "+(n||"be")+" a function"+(r?"":" or undefined"));return t}function w(t,e,n,r,i,s,o,a,l,c,u){function f(t){if(!u(t))throw TypeError("Attempted to access private element on non-instance")}var m=[].concat(e[0]),y=e[3],w=!o,S=1===i,_=3===i,$=4===i,E=2===i;function C(e,n,r){return function(i,s){return n&&(s=i,i=t),r&&r(i),desc[e].call(i,s)}}var T={},x=[],P=_?"get":$||S?"set":"value";if(!w&&(l?(c||S?T={get:iD(function(){return y(this)},r,"get"),set:function(t){e[4](this,t)}}:T[P]=y,c||iD(T[P],r,E?"":P)):c||(T=Object.getOwnPropertyDescriptor(t,r)),!c&&!l)){if((d=g[+a][r])&&(d^i)!=7)throw Error("Decorating two elements with the same name ("+T[P].name+") is not supported yet");g[+a][r]=i<3?1:i}for(var L=t,O=m.length-1;O>=0;O-=n?2:1){var k=v(m[O],"A decorator","be",!0),j=n?m[O-1]:void 0,N={},A={kind:["field","accessor","method","getter","setter","class"][i],name:r,metadata:h,addInitializer:(function(t,e){if(t.v)throw TypeError("attempted to call addInitializer after decoration was finished");v(e,"An initializer","be",!0),s.push(e)}).bind(null,N)};if(w){d=k.call(j,L,A),N.v=1,v(d,"class decorators","return")&&(L=d);continue}if(A.static=a,A.private=l,d=A.access={has:l?u.bind():function(t){return r in t}},$||(d.get=l?E?function(t){return f(t),T.value}:C("get",0,f):function(t){return t[r]}),E||_||(d.set=l?C("set",0,f):function(t,e){t[r]=e}),L=k.call(j,S?{get:T.get,set:T.set}:T[P],A),N.v=1,S){if("object"==typeof L&&L)(d=v(L.get,"accessor.get"))&&(T.get=d),(d=v(L.set,"accessor.set"))&&(T.set=d),(d=v(L.init,"accessor.init"))&&x.unshift(d);else if(void 0!==L)throw TypeError("accessor decorators must return an object with get, set, or init properties or undefined")}else v(L,(c?"field":"method")+" decorators","return")&&(c?x.unshift(L):T[P]=L)}return i<2&&o.push(b(x,a,1),b(s,a,0)),c||w||(l?S?o.splice(-1,0,C("get",a),C("set",a)):o.push(E?T[P]:v.call.bind(T[P])):p(t,r,T)),L}function S(t){return p(t,f,{configurable:!0,enumerable:!0,value:h})}return void 0!==s&&(h=s[f]),h=m(null==h?null:h),l=[],c=function(t){t&&l.push(b(t))},(u=function(e,r){for(var s=0;s<n.length;s++){var c=n[s],u=c[1],h=7&u;if((8&u)==e&&!h==r){var d=c[2],f=!!c[3],p=16&u;w(e?t:t.prototype,c,p,f?"#"+d:function(t){var e=function(t,e){if("object"!=typeof t||null===t)return t;var n=t[Symbol.toPrimitive];if(void 0!==n){var r=n.call(t,e||"default");if("object"!=typeof r)return r;throw TypeError("@@toPrimitive must return a primitive value.")}return("string"===e?String:Number)(t)}(t,"string");return"symbol"==typeof e?e:String(e)}(d),h,h<2?[]:e?a=a||[]:o=o||[],l,!!e,f,r,e&&f?function(e){return function(t){if(Object(t)!==t)throw TypeError("right-hand side of 'in' should be an object, got "+(null!==t?typeof t:"null"));return t}(e)===t}:i)}}})(8,0),u(0,0),u(8,1),u(0,1),c(o),c(a),d=l,y||S(t),{e:d,get c(){var _=[];return y&&[S(t=w(t,[e],r,t.name,5,_)),b(_,1)]}}}function iz(t){return t}class iW extends RegExp{constructor(t){let e=0;super(`^${t.replace(/((:[^/$]+)|(\*))/g,(t,n)=>"*"===n?`(?<_${e++}>.*)`:`(?<${n.slice(1)}>[^/]+)`)}$`)}}function iU(t,e){if(globalThis.URLPattern){let n=new URLPattern({pathname:t}),r=n.exec({pathname:e})||n.exec({pathname:`${e}/`});return r?r.pathname.groups:null}let n=new iW(t),r=e.match(n)||`${e}/`.match(n);if(!r)return null;let i={};return r.groups&&Object.entries(r.groups).forEach(([t,e])=>{i[t.startsWith("_")?t.slice(1):t]=e}),i}function iG(t,e){let n=0,r=t.pattern.replaceAll("*",()=>`:${n++}`),i=e?.params;return i&&Object.keys(i).forEach(t=>{r=r.replace(RegExp(`:${t}`,"g"),i[t])}),r}function iq(t,e){return{path:iG(t,e),...e}}let iB=ny``,iK=new Map;m=rb({penetrable:!0}),y=nV,b=rn(t=>[t.scrollContainer]),v=rn(t=>[t.scrollContainer]),w=ro(t=>!t.inert),new class extends iz{constructor(){super(te),g()}static [class extends y{static{({e:[S,_,$,E,C,T,x,P,L,O,k,j,N,A,M,I,R,H,D,V,z,W,U,G,q,B,K,J,F,Q],c:[te,g]}=iV(this,[m],[[n5,0,"transition"],[rt,0,"routes"],[rt,0,"locationStore"],[rt,0,"key"],[rd,0,"loading"],[rd,0,"beforeroutechange"],[rd,0,"routechange"],[rd,0,"error"],[rt,0,"scrollContainer"],[rt,0,"scrollIgnoreHash"],[rt,0,"trigger"],[b,0,"rememberScrollPosition",function(t){return t.#z},function(t,e){t.#z=e}],[v,0,"connectTriggerStore",function(t){return t.#W},function(t,e){t.#W=e}],[rn(t=>t.#U()),0,"updateContent",function(t){return t.#G},function(t,e){t.#G=e}],[w,0,"content",function(t){return t.#a},function(t,e){t.#a=e}]],0,t=>#z in t,y))}transition=S(this);routes=(_(this),$(this));locationStore=(E(this),C(this));key=(T(this),x(this));loading=(P(this),L(this));beforeroutechange=(O(this),k(this));routechange=(j(this),N(this));error=(A(this),M(this));scrollContainer=(I(this),R(this));scrollIgnoreHash=(H(this),D(this));trigger=(V(this),z(this,iL));currentRoute=void W(this);currentParams={};get #q(){return"function"==typeof this.scrollContainer?this.scrollContainer():this.scrollContainer}#B=t({content:iB});#K=()=>{if(!this.locationStore)return;let{path:t,query:e,hash:n,data:r}=iL.getParams();this.locationStore({path:t,params:this.currentParams,query:e,hash:n,data:r})};#J=()=>{if(!this.#q)return;let t=iK.get(iL.currentKey);t?this.#q.scroll(0,t):(this.scrollIgnoreHash||!iL.getParams().hash)&&this.#q.scroll(0,0)};#F;#Q=(t,e,n)=>{this.beforeroutechange(t),this.#F=void 0,this.currentRoute=t,this.currentParams=e;let r=async()=>{this.#B({content:n}),this.#K(),await Promise.resolve(),this.#J(),this.routechange(this.currentRoute)};this.transition&&"startViewTransition"in document?document.startViewTransition(()=>r()):r()};#z=U(this,()=>{if(this.#q)return e6(iL,"beforechange",()=>iK.set(iL.currentKey,this.#q.scrollTop))});#W=(G(this),q(this,()=>this.trigger.store&&ng(this.trigger.store,()=>this.#B())));#U=(B(this),()=>{let{path:t,query:e,hash:n}=this.trigger.getParams();return[this.key,t,e,n]});#G=K(this,([t,e],n)=>{n&&t===n[0]&&e===n[1]?this.#K():this.update()});#a=(J(this),F(this,()=>{let{content:t}=this.#B;if(void 0!==t){if(!this.shadowRoot){if(t===iB)return;return ny`${t}`}return t===iB?ny`<slot></slot>`:t}}));update=(Q(this),async()=>{let{path:t,hash:e,query:n}=this.trigger.getParams(),{route:r,params:i={}}=tn.findRoute(this.routes,t),{redirect:s,content:o,getContent:a}=r||{};if(s)return void this.trigger.replace({path:iG({pattern:s},{params:i}),query:n,hash:e});this.trigger===iL&&(location.href!==iO.url||r?.title)&&iO({url:location.href,title:r?.title});let l=o||a?.(i,this.shadowRoot||this);this.loading(r),this.#F=l;let c=()=>this.#F===l;try{let t=await l;c()&&this.#Q(r,i,t)}catch(t){c()&&this.error(t)}})}];createLocationStore=()=>{let{path:t,query:e,hash:n,data:r}=iL.getParams();return nm({path:t,query:e,hash:n,data:r,params:{}})};findRoute=(t=[],e)=>{let n=null;for(let r of Array.isArray(t)?t:Object.values(t))if("*"===r.pattern)n=r;else{let t=iU(r.pattern,e);if(t)return{route:r,params:t}}return{route:n}}};let iJ=nA`
3
+ \f\r"'\`<>=]`,rA=/<(?:(!--|\/[^a-zA-Z])|(\/?[a-zA-Z][^>\s]*)|(\/?$))/g,rM=/-->/g,rR=/>/g,rI=RegExp(`>|${rj}(?:([^\\s"'>=/]+)(${rj}*=${rj}*(?:${rN}|("|')|))|$)`,"g"),rH=/'/g,rD=/"/g,rV=/^(?:script|style|textarea|title)$/i,rz="v-if",rW="v-else-if",rU="v-else";class rG{type;strings;values;constructor(t,e,n){this.type=t,this.strings=e,this.values=n}}let rq=t=>(e,...n)=>new rG(t,e,n),rB=rq(1),rK=rq(2),rJ=rq(3),rF=Symbol.for("lit-noChange"),rQ=new WeakMap,rY=rP.createTreeWalker(rP,129);class rZ{el;parts=[];constructor({strings:t,type:e},n){let r,i=0,s=0,o=t.length-1,a=this.parts,[l,c]=((t,e)=>{let n,r=t.length-1,i=[],s=2===e?"<svg>":3===e?"<math>":"",o=rA;for(let e=0;e<r;e++){let r,a,l=t[e],c=-1,u=0;for(;u<l.length&&(o.lastIndex=u,null!==(a=o.exec(l)));)u=o.lastIndex,o===rA?"!--"===a[1]?o=rM:void 0!==a[1]?o=rR:void 0!==a[2]?(rV.test(a[2])&&(n=RegExp(`</${a[2]}`,"g")),o=rI):void 0!==a[3]&&(o=rI):o===rI?">"===a[0]?(o=n??rA,c=-1):void 0===a[1]?c=-2:(c=o.lastIndex-a[2].length,r=a[1],o=void 0===a[3]?rI:'"'===a[3]?rD:rH):o===rD||o===rH?o=rI:o===rM||o===rR?o=rA:(o=rI,n=void 0);let h=o===rI&&t[e+1].startsWith("/>")?" ":"";s+=o===rA?l+rx:c>=0?(i.push(r),l.slice(0,c)+rE+l.slice(c)+rC+h):l+rC+(-2===c?e:h)}let a=s+(t[r]||"<?>")+(2===e?"</svg>":3===e?"</math>":"");return[function(t,e){if(!Array.isArray(t))throw Error("invalid template");return void 0!==r$?r$.createHTML(e):e}(t,a),i]})(t,e);if(this.el=rZ.createElement(l,n),rY.currentNode=this.el.content,2===e||3===e){let t=this.el.content.firstChild;t.replaceWith(...t.childNodes)}for(;null!==(r=rY.nextNode())&&a.length<o;){if(1===r.nodeType){if(r.hasAttributes())for(let t of r.getAttributeNames())if(t.endsWith(rE)){let e=c[s++],n=r.getAttribute(t).split(rC),o=/([.?@])?(.*)/.exec(e);a.push({type:1,index:i,name:o[2],strings:n,ctor:"."===o[1]?r8:"?"===o[1]?r4:"@"===o[1]?r7:r3}),r.removeAttribute(t)}else t.startsWith(rC)&&(a.push({type:6,index:i}),r.removeAttribute(t));if(rV.test(r.tagName)){let t=r.textContent.split(rC),e=t.length-1;if(e>0){r.textContent=r_?r_.emptyScript:"";for(let n=0;n<e;n++)r.append(t[n],rL()),rY.nextNode(),a.push({type:2,index:++i});r.append(t[e],rL())}}}else if(8===r.nodeType)if(r.data===rT)a.push({type:2,index:i});else{let t=-1;for(;-1!==(t=r.data.indexOf(rC,t+1));)a.push({type:7,index:i}),t+=rC.length-1}i++}}static createElement(t,e){let n=rP.createElement("template");return n.innerHTML=t,n}}function rX(t,e,n=t,r){if(e===rF)return e;let i=void 0!==r?n.__directives?.[r]:n.__directive,s=rO(e)?void 0:e._$litDirective$;return i?.constructor!==s&&(i?._$notifyDirectiveConnectionChanged?.(!1),void 0===s?i=void 0:(i=new s(t))._$initialize(t,n,r),void 0!==r?(n.__directives??=[])[r]=i:n.__directive=i),void 0!==i&&(e=rX(t,i._$resolve(t,e.values),i,r)),e}class r0{_$template;_$parts=[];_$conditions=[];_$parent;_$disconnectableChildren=void 0;constructor(t,e){this._$template=t,this._$parent=e}get parentNode(){return this._$parent.parentNode}get _$isConnected(){return this._$parent._$isConnected}_clone(t){let{el:{content:e},parts:n}=this._$template,r=new Map,i=new Map,s=(t?.creationScope??rP).importNode(e,!0);rY.currentNode=s;let o=rY.nextNode(),a=0,l=0,c=n[0];for(;void 0!==c;){if(a===c.index){let e;2===c.type?e=new r2(o,o.nextSibling,this,t):1===c.type?(c.name===rz&&r.set(o,l),c.name===rW&&i.set(o,l),e=new c.ctor(o,c.name,c.strings,this,t)):6===c.type&&(e=new r6(o,this,t)),this._$parts.push(e),c=n[++l]}a!==c?.index&&(o=rY.nextNode(),a++)}let u=new Map;for(let t of(r.forEach((t,e)=>{let n=new r1(e,t);this._$conditions.push(n),u.set(e,n);let r=e;for(;r=r.nextElementSibling;){let t=i.get(r);if(void 0===t)break;n.push(r,t)}}),this._$parts)){if(t?.type!==2)continue;let e=u.get(t._$endNode);e&&(t._$endNode=e.mark)}return rY.currentNode=rP,s}_update(t){let e=0;for(let n of this._$parts)void 0!==n&&(void 0!==n.strings?(n._$setValue(t,n,e),e+=n.strings.length-2):n.name===rz||n.name===rW||n._$setValue(t[e])),e++;this._$conditions.forEach(e=>e.update(t))}}class r1{mark;list;constructor(t,e){let n=rL();n._$chain=this,t.before(n),this.mark=n,this.list=[{ele:t,idx:e}],this.check()}get next(){return this.list.at(-1).ele.nextElementSibling}push(t,e){this.list.push({ele:t,idx:e}),this.check()}check(){let t=this.next;t?.attributes.getNamedItem(rU)&&(this.list.push({ele:t}),t.removeAttribute(rU))}update(t){let{mark:e,list:n}=this,r=n.find(({idx:e})=>void 0===e||!!t[e]);r&&!r.ele.parentNode&&e.after(r.ele),n.forEach(({ele:t})=>(!r||t!==r.ele)&&t.remove())}}class r2{type=2;options;_$committedValue;__directive;_$startNode;_$endNode;_$parent;__isConnected;get _$isConnected(){return this._$parent?._$isConnected??this.__isConnected}_$disconnectableChildren=void 0;constructor(t,e,n,r){this._$startNode=t,this._$endNode=e,this._$parent=n,this.options=r,this.__isConnected=r?.isConnected??!0}get parentNode(){let t=this._$startNode.parentNode,e=this._$parent;return void 0!==e&&t?.nodeType===11&&(t=e.parentNode),t}get startNode(){return this._$startNode}get endNode(){return this._$endNode}_$setValue(t,e=this){this.parentNode&&(rO(t=rX(this,t,e))?rk(t)||""===t?(rk(this._$committedValue)||this._$clear(),this._$committedValue=void 0):t!==this._$committedValue&&t!==rF&&this._commitText(t):t instanceof rG?this._commitTemplateResult(t):void 0!==t.nodeType?this._commitNode(t):Symbol.iterator in t?this._commitIterable(t):this._commitText(t))}_insert(t){return this._$startNode.parentNode.insertBefore(t,this._$endNode)}_commitNode(t){this._$committedValue!==t&&(this._$clear(),this._$committedValue=this._insert(t))}_commitText(t){!rk(this._$committedValue)&&rO(this._$committedValue)?this._$startNode.nextSibling.data=t:this._commitNode(rP.createTextNode(t)),this._$committedValue=t}_commitTemplateResult(t){let{values:e}=t,n=this._$getTemplate(t);if(this._$committedValue?._$template===n)this._$committedValue._update(e);else{let t=new r0(n,this),r=t._clone(this.options);t._update(e),this._commitNode(r),this._$committedValue=t}}_$getTemplate(t){let e=rQ.get(t.strings);return void 0===e&&rQ.set(t.strings,e=new rZ(t)),e}_commitIterable(t){let e;Array.isArray(this._$committedValue)||(this._$committedValue=[],this._$clear());let n=this._$committedValue,r=0;for(let i of t)r===n.length?n.push(e=new r2(this._insert(rL()),this._insert(rL()),this,this.options)):e=n[r],e._$setValue(i),r++;r<n.length&&(this._$clear(e&&e._$endNode.nextSibling,r),n.length=r)}_$clear(t=this._$startNode.nextSibling,e){for(this._$notifyConnectionChanged?.(!1,!0,e);t&&t!==this._$endNode;){let e=t.nextSibling;t.remove(),t=e}}setConnected(t){void 0===this._$parent&&(this.__isConnected=t,this._$notifyConnectionChanged?.(t))}}class r3{type=1;element;name;options;strings;_$committedValue;__directives;_$parent;_$disconnectableChildren=void 0;get tagName(){return this.element.tagName}get _$isConnected(){return this._$parent._$isConnected}constructor(t,e,n,r,i){this.element=t,this.name=e,this._$parent=r,this.options=i,n.length>2||""!==n[0]||""!==n[1]?(this._$committedValue=Array(n.length-1).fill(new String),this.strings=n):this._$committedValue=void 0}_$setValue(t,e=this,n,r){let i=this.strings,s=!1;if(void 0===i)(s=!rO(t=rX(this,t,e,0))||t!==this._$committedValue)&&(this._$committedValue=t);else{let r,o,a=t;for(t=i[0],r=0;r<i.length-1;r++)o=rX(this,a[n+r],e,r),s||=!rO(o)||o!==this._$committedValue[r],rk(o)?t=void 0:rk(t)||(t+=o+i[r+1]),this._$committedValue[r]=o}s&&!r&&this._commitValue(t)}_commitValue(t){rk(t)?this.element.removeAttribute(this.name):this.element.setAttribute(this.name,t)}}class r8 extends r3{type=3;_commitValue(t){this.element[this.name]=t}}class r4 extends r3{type=4;_commitValue(t){this.element.toggleAttribute(this.name,!!t)}}class r7 extends r3{type=5;_$setValue(t,e=this){t=rX(this,t,e,0);let n=this._$committedValue,r=n&&(!t||t.capture!==n.capture||t.once!==n.once||t.passive!==n.passive),i=t&&(!n||r);r&&this.element.removeEventListener(this.name,this,n),i&&this.element.addEventListener(this.name,this,t),this._$committedValue=t}handleEvent(t){"function"==typeof this._$committedValue?this._$committedValue.call(this.options?.host??this.element,t):this._$committedValue.handleEvent(t)}}class r6{element;type=6;__directive;_$committedValue;_$parent;_$disconnectableChildren=void 0;_$props;options;constructor(t,e,n){this.element=t,this._$parent=e,this.options=n}get _$isConnected(){return this._$parent._$isConnected}_$setValue(t){if(t)if(t instanceof r9)t.value=this.element;else if(t._$litDirective$)rX(this,t);else{if(this._$props)for(let t in this._$props)Reflect.set(this.element,t,void 0);Object.assign(this.element,t),this._$props=t}}}let r5=()=>new r9;class r9{value}let it="2.2.11",ie=t=>(...e)=>({_$litDirective$:t,values:e});class ir{__part;__attributeIndex;__directive;_$parent;_$disconnectableChildren;get _$isConnected(){return this._$parent._$isConnected}_$initialize(t,e,n){this.__part=t,this._$parent=e,this.__attributeIndex=n}_$resolve(t,e){return this.update(t,e)}update(t,e){return this.render(...e)}}let ii=(t,e,n)=>{let r=t._$startNode.parentNode,i=void 0===e?t._$endNode:e._$startNode;if(void 0===n)n=new r2(r.insertBefore(document.createComment(""),i),r.insertBefore(document.createComment(""),i),t,t.options);else{let e=n._$endNode.nextSibling,s=n._$parent,o=s!==t;if(o){let e;n._$reparentDisconnectables?.(t),n._$parent=t,void 0!==n._$notifyConnectionChanged&&(e=t._$isConnected)!==s._$isConnected&&n._$notifyConnectionChanged(e)}if(e!==i||o){let t=n._$startNode;for(;t!==e;){let e=t.nextSibling;r.insertBefore(t,i),t=e}}}return n},is=(t,e,n=t)=>(t._$setValue(e,n),t),io={},ia=t=>{t._$notifyConnectionChanged?.(!1,!0);let e=t._$startNode,n=t._$endNode.nextSibling;for(;e!==n;){let t=e.nextSibling;e.remove(),e=t}},il=(t,e,n)=>{let r=new Map;for(let i=e;i<=n;i++)r.set(t[i],i);return r},ic=ie(class extends ir{_itemKeys;constructor(t){if(super(),2!==t.type)throw Error("repeat() can only be used in text expressions")}_getValuesAndKeys(t,e,n){let r;void 0===n?n=e:void 0!==e&&(r=e);let i=[],s=[],o=0;for(let e of t)i[o]=r?r(e,o):o,s[o]=n(e,o),o++;return{values:s,keys:i}}render(t,e,n){return this._getValuesAndKeys(t,e,n).values}update(t,[e,n,r]){let i,s,o=t._$committedValue,{values:a,keys:l}=this._getValuesAndKeys(e,n,r);if(!Array.isArray(o))return this._itemKeys=l,a;let c=this._itemKeys??=[],u=[],h=0,d=o.length-1,f=0,p=a.length-1;for(;h<=d&&f<=p;)if(null===o[h])h++;else if(null===o[d])d--;else if(c[h]===l[f])u[f]=is(o[h],a[f]),h++,f++;else if(c[d]===l[p])u[p]=is(o[d],a[p]),d--,p--;else if(c[h]===l[p])u[p]=is(o[h],a[p]),ii(t,u[p+1],o[h]),h++,p--;else if(c[d]===l[f])u[f]=is(o[d],a[f]),ii(t,o[h],o[d]),d--,f++;else if(void 0===i&&(i=il(l,f,p),s=il(c,h,d)),i.has(c[h]))if(i.has(c[d])){let e=s.get(l[f]),n=void 0!==e?o[e]:null;if(null===n){let e=ii(t,o[h]);is(e,a[f]),u[f]=e}else u[f]=is(n,a[f]),ii(t,o[h],n),o[e]=null;f++}else ia(o[d]),d--;else ia(o[h]),h++;for(;f<=p;){let e=ii(t,u[p+1]);is(e,a[f]),u[f++]=e}for(;h<=d;){let t=o[h++];null!==t&&ia(t)}return this._itemKeys=l,((t,e=io)=>t._$committedValue=e)(t,u),rF}});nv(rB,(t,e,n)=>{let r=n?.renderBefore??e,i=r._$litPart$;if(void 0===i){let t=n?.renderBefore??null;r._$litPart$=i=new r2(e.insertBefore(rL(),t),t,void 0,n??{})}return i._$setValue(t),i}),globalThis.__GEM_DEVTOOLS__HOOK__&&!globalThis.__GEM_DEVTOOLS__HOOK__.GemElement&&Object.assign(globalThis.__GEM_DEVTOOLS__HOOK__,{...eF,...eJ,...eQ,...eY});let iu=globalThis.history,ih=iu.pushState.bind(iu),id=iu.replaceState.bind(iu),ip=0,im=()=>`${performance.now()}-${++ip}`,ig=nm({$hasCloseHandle:!1,$hasOpenHandle:!1,$hasShouldCloseHandle:!1,$key:""}),iy=new Map;function ib(t){let{$key:e,$hasCloseHandle:n,$hasOpenHandle:r,$hasShouldCloseHandle:i}=t||{};if(ig.$key!==e){if(e)throw new na("`$key` is not allowed");if(n)throw new na("`$hasCloseHandle` is not allowed");if(r)throw new na("`$hasOpenHandle` is not allowed");if(i)throw new na("`$hasShouldCloseHandle` is not allowed")}}function iv(t){return ix.basePath?ix.basePath+t:t}function iw(t){return t===ix.basePath?"/":t.replace(RegExp(`^${ix.basePath}/`),"/")}function iS(){ix.dispatchEvent(new CustomEvent("beforechange"))}function i_(t){let e=iy.get(ig.$key)||{path:iw(location.pathname),query:new nt},n=t.path?e7(e.path,t.path):iw(location.pathname),r=new nt(t.query??(t.path?"":location.search)),i=String(r)!==String(e.query),s=i?r:e.query,o=n!==e.path||i,a=t.title||(o?"":document.title),l=t.close||t.data||t.open||t.shouldClose,c=decodeURIComponent(t.hash??(!o&&l?location.hash:""));return{...t,title:a,path:n,query:s,hash:c}}function i$(t,e){ib(t.data);let n=i_(t),{title:r,path:i,query:s,hash:o,close:a,open:l,shouldClose:c,data:u}=n,h={$hasCloseHandle:!!a,$hasOpenHandle:!!l,$hasShouldCloseHandle:!!c,$key:im(),$title:r,...u};iy.set(h.$key,n),iS(),no(ig),ig(h);let d=iv(i)+new nt(s)+o,f=decodeURIComponent(location.hash);e(h,r,d),f!==o&&dispatchEvent(new CustomEvent("hashchange"))}function iE(t,e,n,r){ib(t);let i={$key:im(),$title:e,...t||{}},{pathname:s,search:o,hash:a}=new URL(n,location.origin+location.pathname),l=i_({path:s,query:new nt(o),hash:a,title:e,data:t});iy.set(i.$key,l),iS(),no(ig),ig(i);let c=iv(s)+l.query+a,u=location.hash;r(i,e,c),u!==a&&dispatchEvent(new CustomEvent("hashchange"))}let iC=nm({basePath:""});class iT extends EventTarget{get store(){return ig}get currentKey(){return ig.$key}get basePath(){return iC.basePath}set basePath(t){iC({basePath:t}),Object.assign(iy.get(ig.$key),{path:iw(location.pathname)})}getParams(){return iy.get(ig.$key)}updateParams(t){Object.assign(iy.get(ig.$key),t),ig()}push(t){i$(t,ih)}replace(t){i$(t,id)}pushIgnoreCloseHandle(t){ig.$hasCloseHandle?(iy.get(ig.$key)?.close?.(),this.replace(t)):this.push(t)}forward(){iu.forward()}back(){iu.back()}}let ix=new iT,iP=nm({defaultTitle:document.title,url:"",title:""});if(!globalThis._GEMHISTORY){if(globalThis._GEMHISTORY={history:ix,titleStore:iP,basePathStore:iC},iu.pushState=(t,e,n)=>{iE(t,e,n,ih)},iu.replaceState=(t,e,n)=>{iE(t,e,n,id)},addEventListener("hashchange",({isTrusted:t})=>{t&&ix.replace({hash:location.hash})}),iu.state)if(iu.state.$hasCloseHandle){ig(iu.state);let t=i_({title:document.title});iy.set(ig.$key,t),ix.back()}else{let t=i_({title:document.title,hash:location.hash});ig({$key:im(),...iu.state||{}}),iy.set(ig.$key,t)}else{let{protocol:t,pathname:e,search:n,hash:r}=location;(t.startsWith("http")||t.startsWith("tauri"))&&ix.replace({path:e,query:n,hash:r})}ng(iP,()=>{let t=iy.get(ig.$key);t&&(t.title=iP.title)}),ng(ig,()=>{let{title:t}=ix.getParams();t!==iP.title&&iP({title:t})});let t=!1;addEventListener("popstate",e=>{let n=e.state;if(n?.$key){if(t){t=!1;return}if(!iy.has(n.$key)){let{pathname:t,search:e,hash:r}=location;iy.set(n.$key,{path:iw(t),query:new nt(e),hash:decodeURIComponent(r),title:iP.title||n.$title,data:n})}if(parseFloat(n.$key)>parseFloat(ig.$key)&&n.$hasOpenHandle)iy.get(n.$key)?.open?.();else if(ig.$hasCloseHandle){let e=iy.get(ig.$key),r=e?.close,i=e?.shouldClose;if(i&&!i()){t=!0,ix.forward();return}r?r():n.$hasCloseHandle&&(t=!0,ix.back())}iS(),no(ig),ig(n)}})}let{history:iL,titleStore:iO,basePathStore:ik}=globalThis._GEMHISTORY;function ij(t,e,n){"symbol"==typeof e&&(e=(e=e.description)?"["+e+"]":"");try{Object.defineProperty(t,"name",{configurable:!0,value:n?n+" "+e:e})}catch(t){}return t}let iN=Symbol();r=rg(iL.store),i=rw({role:"dialog",ariaModal:"true"}),o=nV,a=ri();class iA extends o{static{({e:[l,c,u,h,d,f],c:[p,s]}=function(t,e,n,r,i){var s,o,a,l,c,u,h,d=Symbol.metadata||Symbol.for("Symbol.metadata"),f=Object.defineProperty,p=Object.create,m=[p(null),p(null)],g=e.length;function y(e,n,r){return function(i,s){n&&(s=i,i=t);for(var o=0;o<e.length;o++)s=e[o].apply(i,r?[s]:[]);return r?s:i}}function b(t,e,n,r){if("function"!=typeof t&&(r||void 0!==t))throw TypeError(e+" must "+(n||"be")+" a function"+(r?"":" or undefined"));return t}function v(t,e,n,r,i,s,o,a,l,c,d){function p(t){if(!d(t))throw TypeError("Attempted to access private element on non-instance")}var g=[].concat(e[0]),v=e[3],w=!o,S=1===i,_=3===i,$=4===i,E=2===i;function C(e,n,r){return function(i,s){return n&&(s=i,i=t),r&&r(i),desc[e].call(i,s)}}var T={},x=[],P=_?"get":$||S?"set":"value";if(!w&&(l?(c||S?T={get:ij(function(){return v(this)},r,"get"),set:function(t){e[4](this,t)}}:T[P]=v,c||ij(T[P],r,E?"":P)):c||(T=Object.getOwnPropertyDescriptor(t,r)),!c&&!l)){if((h=m[+a][r])&&(h^i)!=7)throw Error("Decorating two elements with the same name ("+T[P].name+") is not supported yet");m[+a][r]=i<3?1:i}for(var L=t,O=g.length-1;O>=0;O-=n?2:1){var k=b(g[O],"A decorator","be",!0),j=n?g[O-1]:void 0,N={},A={kind:["field","accessor","method","getter","setter","class"][i],name:r,metadata:u,addInitializer:(function(t,e){if(t.v)throw TypeError("attempted to call addInitializer after decoration was finished");b(e,"An initializer","be",!0),s.push(e)}).bind(null,N)};if(w){h=k.call(j,L,A),N.v=1,b(h,"class decorators","return")&&(L=h);continue}if(A.static=a,A.private=l,h=A.access={has:l?d.bind():function(t){return r in t}},$||(h.get=l?E?function(t){return p(t),T.value}:C("get",0,p):function(t){return t[r]}),E||_||(h.set=l?C("set",0,p):function(t,e){t[r]=e}),L=k.call(j,S?{get:T.get,set:T.set}:T[P],A),N.v=1,S){if("object"==typeof L&&L)(h=b(L.get,"accessor.get"))&&(T.get=h),(h=b(L.set,"accessor.set"))&&(T.set=h),(h=b(L.init,"accessor.init"))&&x.unshift(h);else if(void 0!==L)throw TypeError("accessor decorators must return an object with get, set, or init properties or undefined")}else b(L,(c?"field":"method")+" decorators","return")&&(c?x.unshift(L):T[P]=L)}return i<2&&o.push(y(x,a,1),y(s,a,0)),c||w||(l?S?o.splice(-1,0,C("get",a),C("set",a)):o.push(E?T[P]:b.call.bind(T[P])):f(t,r,T)),L}function w(t){return f(t,d,{configurable:!0,enumerable:!0,value:u})}return void 0!==i&&(u=i[d]),u=p(null==u?null:u),a=[],l=function(t){t&&a.push(y(t))},(c=function(e,i){for(var l=0;l<n.length;l++){var c=n[l],u=c[1],h=7&u;if((8&u)==e&&!h==i){var d=c[2],f=!!c[3],p=16&u;v(e?t:t.prototype,c,p,f?"#"+d:function(t){var e=function(t,e){if("object"!=typeof t||null===t)return t;var n=t[Symbol.toPrimitive];if(void 0!==n){var r=n.call(t,e||"default");if("object"!=typeof r)return r;throw TypeError("@@toPrimitive must return a primitive value.")}return("string"===e?String:Number)(t)}(t,"string");return"symbol"==typeof e?e:String(e)}(d),h,h<2?[]:e?o=o||[]:s=s||[],a,!!e,f,i,e&&f?function(e){return function(t){if(Object(t)!==t)throw TypeError("right-hand side of 'in' should be an object, got "+(null!==t?typeof t:"null"));return t}(e)===t}:r)}}})(8,0),c(0,0),c(8,1),c(0,1),l(s),l(o),h=a,g||w(t),{e:h,get c(){var S=[];return g&&[w(t=v(t,[e],0,t.name,5,S)),y(S,1)]}}}(this,[r,i],[[n6,0,"label"],[rl,0,"opened"],[a,0,"init",function(t){return t.#N},function(t,e){t.#N=e}]],t=>#N in t,o))}label=l(this);opened=(c(this),u(this));#A=void h(this);#M;#R=[];#I=()=>{this.inert=!0,this.#R.forEach(t=>t.inert=!1),this.#A?this.#A.before(this):this.#M&&this.#M?.appendChild(this),this.dispatchEvent(new CustomEvent("close")),this.opened=!1};#H=()=>{this.hidden=!1,this.inert=!1,this.#A=this.nextSibling,this.#M=this.parentElement||this.getRootNode(),this.#R=[...document.body.children].filter(t=>!t.inert),this.#R.forEach(t=>t.inert=!0),document.body.append(this),this.dispatchEvent(new CustomEvent("open")),this.opened=!0};#N=d(this,()=>this.inert=!0);open=(f(this),()=>{if(!this.opened)return this.#H(),iL.push({title:this.label,open:this.#H,close:this.#I,shouldClose:this.shouldClose}),iN});shouldClose(){return!0}close=()=>(iL.back(),iN);forceClose=()=>(this.opened=!1,setTimeout(this.close,100),iN);static{s()}}function iM(t,e,n){"symbol"==typeof e&&(e=(e=e.description)?"["+e+"]":"");try{Object.defineProperty(t,"name",{configurable:!0,value:n?n+" "+e:e})}catch(t){}return t}function iR(t){return t}let iI=Symbol("open mark");function iH(t){let e,n,r,i,s,o,a,l,c,u,h,d=Symbol();return e=ry(),n=rw({role:"alertdialog",ariaModal:"true"}),i=nV,s=rs(),o=rs(),new class extends iR{constructor(){super(h),r()}static [class extends i{static{({e:[a,l,c,u],c:[h,r]}=function(t,e,n,r,i){var s,o,a,l,c,u,h,d=Symbol.metadata||Symbol.for("Symbol.metadata"),f=Object.defineProperty,p=Object.create,m=[p(null),p(null)],g=e.length;function y(e,n,r){return function(i,s){n&&(s=i,i=t);for(var o=0;o<e.length;o++)s=e[o].apply(i,r?[s]:[]);return r?s:i}}function b(t,e,n,r){if("function"!=typeof t&&(r||void 0!==t))throw TypeError(e+" must "+(n||"be")+" a function"+(r?"":" or undefined"));return t}function v(t,e,n,r,i,s,o,a,l,c,d){function p(t){if(!d(t))throw TypeError("Attempted to access private element on non-instance")}var g=[].concat(e[0]),v=e[3],w=!o,S=1===i,_=3===i,$=4===i,E=2===i;function C(e,n,r){return function(i,s){return n&&(s=i,i=t),r&&r(i),desc[e].call(i,s)}}var T={},x=[],P=_?"get":$||S?"set":"value";if(!w&&(l?(c||S?T={get:iM(function(){return v(this)},r,"get"),set:function(t){e[4](this,t)}}:T[P]=v,c||iM(T[P],r,E?"":P)):c||(T=Object.getOwnPropertyDescriptor(t,r)),!c&&!l)){if((h=m[+a][r])&&(h^i)!=7)throw Error("Decorating two elements with the same name ("+T[P].name+") is not supported yet");m[+a][r]=i<3?1:i}for(var L=t,O=g.length-1;O>=0;O-=n?2:1){var k=b(g[O],"A decorator","be",!0),j=n?g[O-1]:void 0,N={},A={kind:["field","accessor","method","getter","setter","class"][i],name:r,metadata:u,addInitializer:(function(t,e){if(t.v)throw TypeError("attempted to call addInitializer after decoration was finished");b(e,"An initializer","be",!0),s.push(e)}).bind(null,N)};if(w){h=k.call(j,L,A),N.v=1,b(h,"class decorators","return")&&(L=h);continue}if(A.static=a,A.private=l,h=A.access={has:l?d.bind():function(t){return r in t}},$||(h.get=l?E?function(t){return p(t),T.value}:C("get",0,p):function(t){return t[r]}),E||_||(h.set=l?C("set",0,p):function(t,e){t[r]=e}),L=k.call(j,S?{get:T.get,set:T.set}:T[P],A),N.v=1,S){if("object"==typeof L&&L)(h=b(L.get,"accessor.get"))&&(T.get=h),(h=b(L.set,"accessor.set"))&&(T.set=h),(h=b(L.init,"accessor.init"))&&x.unshift(h);else if(void 0!==L)throw TypeError("accessor decorators must return an object with get, set, or init properties or undefined")}else b(L,(c?"field":"method")+" decorators","return")&&(c?x.unshift(L):T[P]=L)}return i<2&&o.push(y(x,a,1),y(s,a,0)),c||w||(l?S?o.splice(-1,0,C("get",a),C("set",a)):o.push(E?T[P]:b.call.bind(T[P])):f(t,r,T)),L}function w(t){return f(t,d,{configurable:!0,enumerable:!0,value:u})}return void 0!==i&&(u=i[d]),u=p(null==u?null:u),a=[],l=function(t){t&&a.push(y(t))},(c=function(e,i){for(var l=0;l<n.length;l++){var c=n[l],u=c[1],h=7&u;if((8&u)==e&&!h==i){var d=c[2],f=!!c[3],p=16&u;v(e?t:t.prototype,c,p,f?"#"+d:function(t){var e=function(t,e){if("object"!=typeof t||null===t)return t;var n=t[Symbol.toPrimitive];if(void 0!==n){var r=n.call(t,e||"default");if("object"!=typeof r)return r;throw TypeError("@@toPrimitive must return a primitive value.")}return("string"===e?String:Number)(t)}(t,"string");return"symbol"==typeof e?e:String(e)}(d),h,h<2?[]:e?o=o||[]:s=s||[],a,!!e,f,i,e&&f?function(e){return function(t){if(Object(t)!==t)throw TypeError("right-hand side of 'in' should be an object, got "+(null!==t?typeof t:"null"));return t}(e)===t}:r)}}})(8,0),c(0,0),c(8,1),c(0,1),l(s),l(o),h=a,g||w(t),{e:h,get c(){var S=[];return g&&[w(t=v(t,[e],0,t.name,5,S)),y(S,1)]}}}(this,[e,n],[[s,0,"connectHistory",function(t){return t.#D},function(t,e){t.#D=e}],[o,0,"connectStore",function(t){return t.#V},function(t,e){t.#V=e}]],t=>#D in t,i))}constructor(...t){super(...t),u(this)}static get isOpen(){return this.store[iI]}static open(t){let e=new this;this.instance=e,this.inertStore=[...document.body.children].filter(t=>!t.inert),this.inertStore.forEach(t=>t.inert=!0),document.body.append(e);let n=()=>this.store({[iI]:!0,...t});return setTimeout(()=>{n(),iL.push({title:e.label,open:n,close:this.closeHandle.bind(this),shouldClose:this.shouldClose.bind(this)})},100),d}static close(){return iL.back(),d}static closeHandle(){return this.inertStore.forEach(t=>t.inert=!1),this.instance?.remove(),this.store({[iI]:!1,...t}),d}static shouldClose(){return!0}label="";#D=a(this,()=>ng(iL.store,this.update));#V=(l(this),c(this,()=>ng(h.store,this.update)))}];inertStore=[];instance=null;store=nm({[iI]:!1,...t})},h}function iD(t,e,n){"symbol"==typeof e&&(e=(e=e.description)?"["+e+"]":"");try{Object.defineProperty(t,"name",{configurable:!0,value:n?n+" "+e:e})}catch(t){}return t}function iV(t,e,n,r,i,s){var o,a,l,c,u,h,d,f=Symbol.metadata||Symbol.for("Symbol.metadata"),p=Object.defineProperty,m=Object.create,g=[m(null),m(null)],y=e.length;function b(e,n,r){return function(i,s){n&&(s=i,i=t);for(var o=0;o<e.length;o++)s=e[o].apply(i,r?[s]:[]);return r?s:i}}function v(t,e,n,r){if("function"!=typeof t&&(r||void 0!==t))throw TypeError(e+" must "+(n||"be")+" a function"+(r?"":" or undefined"));return t}function w(t,e,n,r,i,s,o,a,l,c,u){function f(t){if(!u(t))throw TypeError("Attempted to access private element on non-instance")}var m=[].concat(e[0]),y=e[3],w=!o,S=1===i,_=3===i,$=4===i,E=2===i;function C(e,n,r){return function(i,s){return n&&(s=i,i=t),r&&r(i),desc[e].call(i,s)}}var T={},x=[],P=_?"get":$||S?"set":"value";if(!w&&(l?(c||S?T={get:iD(function(){return y(this)},r,"get"),set:function(t){e[4](this,t)}}:T[P]=y,c||iD(T[P],r,E?"":P)):c||(T=Object.getOwnPropertyDescriptor(t,r)),!c&&!l)){if((d=g[+a][r])&&(d^i)!=7)throw Error("Decorating two elements with the same name ("+T[P].name+") is not supported yet");g[+a][r]=i<3?1:i}for(var L=t,O=m.length-1;O>=0;O-=n?2:1){var k=v(m[O],"A decorator","be",!0),j=n?m[O-1]:void 0,N={},A={kind:["field","accessor","method","getter","setter","class"][i],name:r,metadata:h,addInitializer:(function(t,e){if(t.v)throw TypeError("attempted to call addInitializer after decoration was finished");v(e,"An initializer","be",!0),s.push(e)}).bind(null,N)};if(w){d=k.call(j,L,A),N.v=1,v(d,"class decorators","return")&&(L=d);continue}if(A.static=a,A.private=l,d=A.access={has:l?u.bind():function(t){return r in t}},$||(d.get=l?E?function(t){return f(t),T.value}:C("get",0,f):function(t){return t[r]}),E||_||(d.set=l?C("set",0,f):function(t,e){t[r]=e}),L=k.call(j,S?{get:T.get,set:T.set}:T[P],A),N.v=1,S){if("object"==typeof L&&L)(d=v(L.get,"accessor.get"))&&(T.get=d),(d=v(L.set,"accessor.set"))&&(T.set=d),(d=v(L.init,"accessor.init"))&&x.unshift(d);else if(void 0!==L)throw TypeError("accessor decorators must return an object with get, set, or init properties or undefined")}else v(L,(c?"field":"method")+" decorators","return")&&(c?x.unshift(L):T[P]=L)}return i<2&&o.push(b(x,a,1),b(s,a,0)),c||w||(l?S?o.splice(-1,0,C("get",a),C("set",a)):o.push(E?T[P]:v.call.bind(T[P])):p(t,r,T)),L}function S(t){return p(t,f,{configurable:!0,enumerable:!0,value:h})}return void 0!==s&&(h=s[f]),h=m(null==h?null:h),l=[],c=function(t){t&&l.push(b(t))},(u=function(e,r){for(var s=0;s<n.length;s++){var c=n[s],u=c[1],h=7&u;if((8&u)==e&&!h==r){var d=c[2],f=!!c[3],p=16&u;w(e?t:t.prototype,c,p,f?"#"+d:function(t){var e=function(t,e){if("object"!=typeof t||null===t)return t;var n=t[Symbol.toPrimitive];if(void 0!==n){var r=n.call(t,e||"default");if("object"!=typeof r)return r;throw TypeError("@@toPrimitive must return a primitive value.")}return("string"===e?String:Number)(t)}(t,"string");return"symbol"==typeof e?e:String(e)}(d),h,h<2?[]:e?a=a||[]:o=o||[],l,!!e,f,r,e&&f?function(e){return function(t){if(Object(t)!==t)throw TypeError("right-hand side of 'in' should be an object, got "+(null!==t?typeof t:"null"));return t}(e)===t}:i)}}})(8,0),u(0,0),u(8,1),u(0,1),c(o),c(a),d=l,y||S(t),{e:d,get c(){var _=[];return y&&[S(t=w(t,[e],r,t.name,5,_)),b(_,1)]}}}function iz(t){return t}class iW extends RegExp{constructor(t){let e=0;super(`^${t.replace(/((:[^/$]+)|(\*))/g,(t,n)=>"*"===n?`(?<_${e++}>.*)`:`(?<${n.slice(1)}>[^/]+)`)}$`)}}function iU(t,e){if(globalThis.URLPattern){let n=new URLPattern({pathname:t}),r=n.exec({pathname:e})||n.exec({pathname:`${e}/`});return r?r.pathname.groups:null}let n=new iW(t),r=e.match(n)||`${e}/`.match(n);if(!r)return null;let i={};return r.groups&&Object.entries(r.groups).forEach(([t,e])=>{i[t.startsWith("_")?t.slice(1):t]=e}),i}function iG(t,e){let n=0,r=t.pattern.replaceAll("*",()=>`:${n++}`),i=e?.params;return i&&Object.keys(i).forEach(t=>{r=r.replace(RegExp(`:${t}`,"g"),i[t])}),r}function iq(t,e){return{path:iG(t,e),...e}}let iB=ny``,iK=new Map;m=rb({penetrable:!0}),y=nV,b=rn(t=>[t.scrollContainer]),v=rn(t=>[t.scrollContainer]),w=ro(t=>!t.inert),new class extends iz{constructor(){super(te),g()}static [class extends y{static{({e:[S,_,$,E,C,T,x,P,L,O,k,j,N,A,M,R,I,H,D,V,z,W,U,G,q,B,K,J,F,Q],c:[te,g]}=iV(this,[m],[[n5,0,"transition"],[rt,0,"routes"],[rt,0,"locationStore"],[rt,0,"key"],[rd,0,"loading"],[rd,0,"beforeroutechange"],[rd,0,"routechange"],[rd,0,"error"],[rt,0,"scrollContainer"],[rt,0,"scrollIgnoreHash"],[rt,0,"trigger"],[b,0,"rememberScrollPosition",function(t){return t.#z},function(t,e){t.#z=e}],[v,0,"connectTriggerStore",function(t){return t.#W},function(t,e){t.#W=e}],[rn(t=>t.#U()),0,"updateContent",function(t){return t.#G},function(t,e){t.#G=e}],[w,0,"content",function(t){return t.#a},function(t,e){t.#a=e}]],0,t=>#z in t,y))}transition=S(this);routes=(_(this),$(this));locationStore=(E(this),C(this));key=(T(this),x(this));loading=(P(this),L(this));beforeroutechange=(O(this),k(this));routechange=(j(this),N(this));error=(A(this),M(this));scrollContainer=(R(this),I(this));scrollIgnoreHash=(H(this),D(this));trigger=(V(this),z(this,iL));currentRoute=void W(this);currentParams={};get #q(){return"function"==typeof this.scrollContainer?this.scrollContainer():this.scrollContainer}#B=t({content:iB});#K=()=>{if(!this.locationStore)return;let{path:t,query:e,hash:n,data:r}=iL.getParams();this.locationStore({path:t,params:this.currentParams,query:e,hash:n,data:r})};#J=()=>{if(!this.#q)return;let t=iK.get(iL.currentKey);t?this.#q.scroll(0,t):(this.scrollIgnoreHash||!iL.getParams().hash)&&this.#q.scroll(0,0)};#F;#Q=(t,e,n)=>{this.beforeroutechange(t),this.#F=void 0,this.currentRoute=t,this.currentParams=e;let r=async()=>{this.#B({content:n}),this.#K(),await Promise.resolve(),this.#J(),this.routechange(this.currentRoute)};this.transition&&"startViewTransition"in document?document.startViewTransition(()=>r()):r()};#z=U(this,()=>{if(this.#q)return e6(iL,"beforechange",()=>iK.set(iL.currentKey,this.#q.scrollTop))});#W=(G(this),q(this,()=>this.trigger.store&&ng(this.trigger.store,()=>this.#B())));#U=(B(this),()=>{let{path:t,query:e,hash:n}=this.trigger.getParams();return[this.key,t,e,n]});#G=K(this,([t,e],n)=>{n&&t===n[0]&&e===n[1]?this.#K():this.update()});#a=(J(this),F(this,()=>{let{content:t}=this.#B;if(void 0!==t){if(!this.shadowRoot){if(t===iB)return;return ny`${t}`}return t===iB?ny`<slot></slot>`:t}}));update=(Q(this),async()=>{let{path:t,hash:e,query:n}=this.trigger.getParams(),{route:r,params:i={}}=tn.findRoute(this.routes,t),{redirect:s,content:o,getContent:a}=r||{};if(s)return void this.trigger.replace({path:iG({pattern:s},{params:i}),query:n,hash:e});this.trigger===iL&&(location.href!==iO.url||r?.title)&&iO({url:location.href,title:r?.title});let l=o||a?.(i,this.shadowRoot||this);this.loading(r),this.#F=l;let c=()=>this.#F===l;try{let t=await l;c()&&this.#Q(r,i,t)}catch(t){c()&&this.error(t)}})}];createLocationStore=()=>{let{path:t,query:e,hash:n,data:r}=iL.getParams();return nm({path:t,query:e,hash:n,data:r,params:{}})};findRoute=(t=[],e)=>{let n=null;for(let r of Array.isArray(t)?t:Object.values(t))if("*"===r.pattern)n=r;else{let t=iU(r.pattern,e);if(t)return{route:r,params:t}}return{route:n}}};let iJ=nA`
4
4
  :host(:where(:not([hidden]))),
5
5
  :not(:defined) {
6
6
  display: contents;
@@ -19,7 +19,7 @@ let t,e,n,r,i,s,o,a,l,c,u,h,d,f,p,m,g,y,b,v,w,S,_,$,E,C,T,x,P,L,O,k,j,N,A,M,I,R,
19
19
  a:visited {
20
20
  color: unset;
21
21
  }
22
- `;tr=rg(ik),ti=rm(i0),ts=ry(),to=rw({focusable:!0}),tl=nV,tc=rs(),tu=ro(),new class extends iZ{constructor(){super(tF),ta()}static [class extends tl{static{({e:[tM,th,td,tf,tp,tm,tg,ty,tb,tv,tw,tS,t_,t$,tE,tC,tT,tx,tP,tL,tO,tk,tj,tN,tA,tI,tR,tH],c:[tF,ta]}=iY(this,[tr,ti,ts,to],[[rh,8,"link"],[n6,0,"href"],[n6,0,"target"],[n6,0,"path"],[n6,0,"query"],[n6,0,"hash"],[n6,0,"hint"],[n5,0,"preload"],[rt,0,"route"],[rt,0,"options"],[rt,0,"routeOptions"],[rt,0,"prepare"],[tc,2,"init",function(){this.addEventListener("click",this.#Y),this.addEventListener("pointerenter",this.#Z)}],[tu,0,"content",function(t){return t.#a},function(t,e){t.#a=e}]],0,t=>#N in t,tl))}constructor(...t){super(...t),tR(this)}href=(tH(this),tf(this));target=(tp(this),tm(this));path=(tg(this),ty(this));query=(tb(this),tv(this));hash=(tw(this),tS(this));hint=(t_(this),t$(this));preload=(tE(this),tC(this));route=(tT(this),tx(this));options=(tP(this),tL(this));routeOptions=(tO(this),tk(this));prepare=(tj(this),tN(this));get #X(){return this.routeOptions||this.options}get #tt(){return this.hint||"on"}#Y=(tA(this),async t=>{t.preventDefault();let e=this._getLocationString();if(!e)return;if(iX(e))switch(this.target){case"_self":window.location.href=e;return;case"_parent":window.parent.location.href=e;return;case"_top":window.top.location.href=e;return;default:window.open(e);return}let{path:n,query:r,hash:i}=iL.getParams();if(n+r+i!==e)if(await this.prepare?.(),this.route)iL.pushIgnoreCloseHandle(iq(this.route,this.#X));else if(this.href){let t=new URL(e,location.origin);iL.pushIgnoreCloseHandle({path:t.pathname,query:t.search,hash:t.hash})}else iL.pushIgnoreCloseHandle({path:this.path,query:this.query,hash:this.hash})});#te=()=>{let t=this._getLocationString();return iX(t)?t:new URL(iL.basePath+t,location.origin).toString()};#Z=()=>{this.route?.content,this.route?.getContent?.({},this.shadowRoot)};get #N(){return tM}#a=tI(this,()=>{let t="off"===this.#tt?null:this.#te();return ny`<a part=${tF.link} href=${t} tabindex="-1"><slot></slot></a>`});_getLocationString(){if(this.route){let t=this.#X?.query||"",e=this.#X?.hash||"";return iG(this.route,this.#X)+t+e}{let t=this.href||this.path+this.query+this.hash,{path:e,query:n}=iL.getParams();return t.startsWith("#")?`${e}${n}${t}`:t.startsWith("?")?`${e}${t}`:t.startsWith(".")?e7(e,t):t}}}];link=(()=>{let t=th();return td(),t})()},tD=rg(iL.store),tz=tF,tW=rn();class i1 extends tz{static{({e:[tU,tG,tq,tB,tK,tJ],c:[tQ,tV]}=iY(this,[tD],[[n6,0,"pattern"],[rl,0,"active"],[tW,0,"updateState",function(t){return t.#tn},function(t,e){t.#tn=e}]],0,t=>#tn in t,tz))}constructor(...t){super(...t),tJ(this)}pattern=tU(this);active=(tG(this),tq(this));#tn=(tB(this),tK(this,()=>{let{path:t,query:e,hash:n}=iL.getParams(),r=this.pattern&&iU(this.pattern,t);this.active=!!r||t+e+n===this._getLocationString()}));static{tV()}}function i2(t,e,n){"symbol"==typeof e&&(e=(e=e.description)?"["+e+"]":"");try{Object.defineProperty(t,"name",{configurable:!0,value:n?n+" "+e:e})}catch(t){}return t}customElements.define("gem-link",tF),customElements.define("gem-active-link",tQ);let i3="gem-reflect-end",i8=t=>new Comment(t);tY=ri(),tZ=rn(t=>[t.target]);class i4 extends nV{static{({e:[tX,t0,t1,t2,t3,t8,t4,t7]}=function(t,e,n,r){var i,s,o,a,l,c,u,h=Symbol.metadata||Symbol.for("Symbol.metadata"),d=Object.defineProperty,f=Object.create,p=[f(null),f(null)],m=e.length;function g(e,n,r){return function(i,s){n&&(s=i,i=t);for(var o=0;o<e.length;o++)s=e[o].apply(i,r?[s]:[]);return r?s:i}}function y(t,e,n,r){if("function"!=typeof t&&(r||void 0!==t))throw TypeError(e+" must "+(n||"be")+" a function"+(r?"":" or undefined"));return t}function b(t,e,n,r,i,s,o,a,l,h,f){function m(t){if(!f(t))throw TypeError("Attempted to access private element on non-instance")}var b=[].concat(e[0]),v=e[3],w=!o,S=1===i,_=3===i,$=4===i,E=2===i;function C(e,n,r){return function(i,s){return n&&(s=i,i=t),r&&r(i),desc[e].call(i,s)}}var T={},x=[],P=_?"get":$||S?"set":"value";if(!w&&(l?(h||S?T={get:i2(function(){return v(this)},r,"get"),set:function(t){e[4](this,t)}}:T[P]=v,h||i2(T[P],r,E?"":P)):h||(T=Object.getOwnPropertyDescriptor(t,r)),!h&&!l)){if((u=p[+a][r])&&(u^i)!=7)throw Error("Decorating two elements with the same name ("+T[P].name+") is not supported yet");p[+a][r]=i<3?1:i}for(var L=t,O=b.length-1;O>=0;O-=n?2:1){var k=y(b[O],"A decorator","be",!0),j=n?b[O-1]:void 0,N={},A={kind:["field","accessor","method","getter","setter","class"][i],name:r,metadata:c,addInitializer:(function(t,e){if(t.v)throw TypeError("attempted to call addInitializer after decoration was finished");y(e,"An initializer","be",!0),s.push(e)}).bind(null,N)};if(w){u=k.call(j,L,A),N.v=1,y(u,"class decorators","return")&&(L=u);continue}if(A.static=a,A.private=l,u=A.access={has:l?f.bind():function(t){return r in t}},$||(u.get=l?E?function(t){return m(t),T.value}:C("get",0,m):function(t){return t[r]}),E||_||(u.set=l?C("set",0,m):function(t,e){t[r]=e}),L=k.call(j,S?{get:T.get,set:T.set}:T[P],A),N.v=1,S){if("object"==typeof L&&L)(u=y(L.get,"accessor.get"))&&(T.get=u),(u=y(L.set,"accessor.set"))&&(T.set=u),(u=y(L.init,"accessor.init"))&&x.unshift(u);else if(void 0!==L)throw TypeError("accessor decorators must return an object with get, set, or init properties or undefined")}else y(L,(h?"field":"method")+" decorators","return")&&(h?x.unshift(L):T[P]=L)}return i<2&&o.push(g(x,a,1),g(s,a,0)),h||w||(l?S?o.splice(-1,0,C("get",a),C("set",a)):o.push(E?T[P]:y.call.bind(T[P])):d(t,r,T)),L}function v(t){return d(t,h,{configurable:!0,enumerable:!0,value:c})}return c=f(null==c?null:c),o=[],a=function(t){t&&o.push(g(t))},(l=function(e,a){for(var l=0;l<n.length;l++){var c=n[l],u=c[1],h=7&u;if((8&u)==e&&!h==a){var d=c[2],f=!!c[3],p=16&u;b(e?t:t.prototype,c,p,f?"#"+d:function(t){var e=function(t,e){if("object"!=typeof t||null===t)return t;var n=t[Symbol.toPrimitive];if(void 0!==n){var r=n.call(t,e||"default");if("object"!=typeof r)return r;throw TypeError("@@toPrimitive must return a primitive value.")}return("string"===e?String:Number)(t)}(t,"string");return"symbol"==typeof e?e:String(e)}(d),h,h<2?[]:e?s=s||[]:i=i||[],o,!!e,f,a,e&&f?function(e){return function(t){if(Object(t)!==t)throw TypeError("right-hand side of 'in' should be an object, got "+(null!==t?typeof t:"null"));return t}(e)===t}:r)}}})(8,0),l(0,0),l(8,1),l(0,1),a(i),a(s),u=o,m||v(t),{e:u,get c(){var w=[];return m&&[v(t=b(t,[e],0,t.name,5,w)),g(w,1)]}}}(this,[],[[n6,0,"method"],[rt,0,"target"],[tY,0,"init",function(t){return t.#N},function(t,e){t.#N=e}],[tZ,0,"changeTarget",function(t){return t.#tr},function(t,e){t.#tr=e}]],t=>#N in t))}constructor(...t){super(...t),t7(this)}method=tX(this);target=(t0(this),t1(this,document.head));get #ti(){return this.method||"append"}#N=(t2(this),t3(this,()=>{this.hidden=!0}));#ts=(t8(this),i8("gem-reflect-start"));#to=i8(i3);#ta;#tr=t4(this,()=>((this.#ta||[this.#ts,...this.childNodes,this.#to]).forEach((t,e,n)=>{let r=n[e-1];r?r.after(t):this.target[this.#ti](t)}),()=>{this.#ta=(t=>{let e=[],n=t;for(;n&&(e.push(n),n.nodeValue!==i3);)n=n.nextSibling;return e})(this.#ts),this.#ta.forEach(t=>t.remove())}))}function i7(t,e,n){"symbol"==typeof e&&(e=(e=e.description)?"["+e+"]":"");try{Object.defineProperty(t,"name",{configurable:!0,value:n?n+" "+e:e})}catch(t){}return t}function i6(t){return t}customElements.define("gem-reflect",i4),customElements.define("gem-route",tn),customElements.define("gem-light-route",te);let i5=0,i9=t=>{clearTimeout(i5),i5=setTimeout(()=>document.title=t)};function st(t,e,n){"symbol"==typeof e&&(e=(e=e.description)?"["+e+"]":"");try{Object.defineProperty(t,"name",{configurable:!0,value:n?n+" "+e:e})}catch(t){}return t}t6=ry(),t9=nV,et=rn(t=>[t.inert]),ee=rs(),en=ro(),new class extends i6{constructor(){super(em),t5()}static [class extends t9{static{({e:[er,ei,es,eo,ea,el,ec,eu,eh,ed,ef,ep],c:[em,t5]}=function(t,e,n,r,i){var s,o,a,l,c,u,h,d=Symbol.metadata||Symbol.for("Symbol.metadata"),f=Object.defineProperty,p=Object.create,m=[p(null),p(null)],g=e.length;function y(e,n,r){return function(i,s){n&&(s=i,i=t);for(var o=0;o<e.length;o++)s=e[o].apply(i,r?[s]:[]);return r?s:i}}function b(t,e,n,r){if("function"!=typeof t&&(r||void 0!==t))throw TypeError(e+" must "+(n||"be")+" a function"+(r?"":" or undefined"));return t}function v(t,e,n,r,i,s,o,a,l,c,d){function p(t){if(!d(t))throw TypeError("Attempted to access private element on non-instance")}var g=[].concat(e[0]),v=e[3],w=!o,S=1===i,_=3===i,$=4===i,E=2===i;function C(e,n,r){return function(i,s){return n&&(s=i,i=t),r&&r(i),desc[e].call(i,s)}}var T={},x=[],P=_?"get":$||S?"set":"value";if(!w&&(l?(c||S?T={get:i7(function(){return v(this)},r,"get"),set:function(t){e[4](this,t)}}:T[P]=v,c||i7(T[P],r,E?"":P)):c||(T=Object.getOwnPropertyDescriptor(t,r)),!c&&!l)){if((h=m[+a][r])&&(h^i)!=7)throw Error("Decorating two elements with the same name ("+T[P].name+") is not supported yet");m[+a][r]=i<3?1:i}for(var L=t,O=g.length-1;O>=0;O-=n?2:1){var k=b(g[O],"A decorator","be",!0),j=n?g[O-1]:void 0,N={},A={kind:["field","accessor","method","getter","setter","class"][i],name:r,metadata:u,addInitializer:(function(t,e){if(t.v)throw TypeError("attempted to call addInitializer after decoration was finished");b(e,"An initializer","be",!0),s.push(e)}).bind(null,N)};if(w){h=k.call(j,L,A),N.v=1,b(h,"class decorators","return")&&(L=h);continue}if(A.static=a,A.private=l,h=A.access={has:l?d.bind():function(t){return r in t}},$||(h.get=l?E?function(t){return p(t),T.value}:C("get",0,p):function(t){return t[r]}),E||_||(h.set=l?C("set",0,p):function(t,e){t[r]=e}),L=k.call(j,S?{get:T.get,set:T.set}:T[P],A),N.v=1,S){if("object"==typeof L&&L)(h=b(L.get,"accessor.get"))&&(T.get=h),(h=b(L.set,"accessor.set"))&&(T.set=h),(h=b(L.init,"accessor.init"))&&x.unshift(h);else if(void 0!==L)throw TypeError("accessor decorators must return an object with get, set, or init properties or undefined")}else b(L,(c?"field":"method")+" decorators","return")&&(c?x.unshift(L):T[P]=L)}return i<2&&o.push(y(x,a,1),y(s,a,0)),c||w||(l?S?o.splice(-1,0,C("get",a),C("set",a)):o.push(E?T[P]:b.call.bind(T[P])):f(t,r,T)),L}function w(t){return f(t,d,{configurable:!0,enumerable:!0,value:u})}return void 0!==i&&(u=i[d]),u=p(null==u?null:u),a=[],l=function(t){t&&a.push(y(t))},(c=function(e,i){for(var l=0;l<n.length;l++){var c=n[l],u=c[1],h=7&u;if((8&u)==e&&!h==i){var d=c[2],f=!!c[3],p=16&u;v(e?t:t.prototype,c,p,f?"#"+d:function(t){var e=function(t,e){if("object"!=typeof t||null===t)return t;var n=t[Symbol.toPrimitive];if(void 0!==n){var r=n.call(t,e||"default");if("object"!=typeof r)return r;throw TypeError("@@toPrimitive must return a primitive value.")}return("string"===e?String:Number)(t)}(t,"string");return"symbol"==typeof e?e:String(e)}(d),h,h<2?[]:e?o=o||[]:s=s||[],a,!!e,f,i,e&&f?function(e){return function(t){if(Object(t)!==t)throw TypeError("right-hand side of 'in' should be an object, got "+(null!==t?typeof t:"null"));return t}(e)===t}:r)}}})(8,0),c(0,0),c(8,1),c(0,1),l(s),l(o),h=a,g||w(t),{e:h,get c(){var S=[];return g&&[w(t=v(t,[e],0,t.name,5,S)),y(S,1)]}}}(this,[t6],[[n6,0,"prefix"],[n6,0,"suffix"],[n5,0,"inert"],[et,0,"connectStore",function(t){return t.#V},function(t,e){t.#V=e}],[ee,0,"obTextContent",function(t){return t.#tl},function(t,e){t.#tl=e}],[en,0,"content",function(t){return t.#a},function(t,e){t.#a=e}]],t=>#V in t,t9))}constructor(...t){super(...t),ep(this)}prefix=er(this);suffix=(ei(this),es(this));inert=(eo(this),ea(this));static setTitle(t){iO({title:t})}#V=(el(this),ec(this,()=>!this.inert&&ng(iO,this.update)));#tc=(eu(this),new MutationObserver(()=>this.update()));#tl=eh(this,()=>{this.#tc.observe(this,{characterData:!0,childList:!0,subtree:!0})});#a=(ed(this),ef(this,()=>(!function(t,e="",n=""){let r=iO.title||t;r&&r!==iO.defaultTitle?i9(e+(em.title=r)+n):i9(em.title=iO.defaultTitle)}(this.textContent?.trim(),this.prefix,this.suffix),ny`${em.title}`)))}];title=document.title},customElements.define("gem-title",em);let se=nA`
22
+ `;tr=rg(ik),ti=rm(i0),ts=ry(),to=rw({focusable:!0}),tl=nV,tc=rs(),tu=ro(),new class extends iZ{constructor(){super(tF),ta()}static [class extends tl{static{({e:[tM,th,td,tf,tp,tm,tg,ty,tb,tv,tw,tS,t_,t$,tE,tC,tT,tx,tP,tL,tO,tk,tj,tN,tA,tR,tI,tH],c:[tF,ta]}=iY(this,[tr,ti,ts,to],[[rh,8,"link"],[n6,0,"href"],[n6,0,"target"],[n6,0,"path"],[n6,0,"query"],[n6,0,"hash"],[n6,0,"hint"],[n5,0,"preload"],[rt,0,"route"],[rt,0,"options"],[rt,0,"routeOptions"],[rt,0,"prepare"],[tc,2,"init",function(){this.addEventListener("click",this.#Y),this.addEventListener("pointerenter",this.#Z)}],[tu,0,"content",function(t){return t.#a},function(t,e){t.#a=e}]],0,t=>#N in t,tl))}constructor(...t){super(...t),tI(this)}href=(tH(this),tf(this));target=(tp(this),tm(this));path=(tg(this),ty(this));query=(tb(this),tv(this));hash=(tw(this),tS(this));hint=(t_(this),t$(this));preload=(tE(this),tC(this));route=(tT(this),tx(this));options=(tP(this),tL(this));routeOptions=(tO(this),tk(this));prepare=(tj(this),tN(this));get #X(){return this.routeOptions||this.options}get #tt(){return this.hint||"on"}#Y=(tA(this),async t=>{t.preventDefault();let e=this._getLocationString();if(!e)return;if(iX(e))switch(this.target){case"_self":window.location.href=e;return;case"_parent":window.parent.location.href=e;return;case"_top":window.top.location.href=e;return;default:window.open(e);return}let{path:n,query:r,hash:i}=iL.getParams();if(n+r+i!==e)if(await this.prepare?.(),this.route)iL.pushIgnoreCloseHandle(iq(this.route,this.#X));else if(this.href){let t=new URL(e,location.origin);iL.pushIgnoreCloseHandle({path:t.pathname,query:t.search,hash:t.hash})}else iL.pushIgnoreCloseHandle({path:this.path,query:this.query,hash:this.hash})});#te=()=>{let t=this._getLocationString();return iX(t)?t:new URL(iL.basePath+t,location.origin).toString()};#Z=()=>{this.route?.content,this.route?.getContent?.({},this.shadowRoot)};get #N(){return tM}#a=tR(this,()=>{let t="off"===this.#tt?null:this.#te();return ny`<a part=${tF.link} href=${t} tabindex="-1"><slot></slot></a>`});_getLocationString(){if(this.route){let t=this.#X?.query||"",e=this.#X?.hash||"";return iG(this.route,this.#X)+t+e}{let t=this.href||this.path+this.query+this.hash,{path:e,query:n}=iL.getParams();return t.startsWith("#")?`${e}${n}${t}`:t.startsWith("?")?`${e}${t}`:t.startsWith(".")?e7(e,t):t}}}];link=(()=>{let t=th();return td(),t})()},tD=rg(iL.store),tz=tF,tW=rn();class i1 extends tz{static{({e:[tU,tG,tq,tB,tK,tJ],c:[tQ,tV]}=iY(this,[tD],[[n6,0,"pattern"],[rl,0,"active"],[tW,0,"updateState",function(t){return t.#tn},function(t,e){t.#tn=e}]],0,t=>#tn in t,tz))}constructor(...t){super(...t),tJ(this)}pattern=tU(this);active=(tG(this),tq(this));#tn=(tB(this),tK(this,()=>{let{path:t,query:e,hash:n}=iL.getParams(),r=this.pattern&&iU(this.pattern,t);this.active=!!r||t+e+n===this._getLocationString()}));static{tV()}}function i2(t,e,n){"symbol"==typeof e&&(e=(e=e.description)?"["+e+"]":"");try{Object.defineProperty(t,"name",{configurable:!0,value:n?n+" "+e:e})}catch(t){}return t}customElements.define("gem-link",tF),customElements.define("gem-active-link",tQ);let i3="gem-reflect-end",i8=t=>new Comment(t);tY=ri(),tZ=rn(t=>[t.target]);class i4 extends nV{static{({e:[tX,t0,t1,t2,t3,t8,t4,t7]}=function(t,e,n,r){var i,s,o,a,l,c,u,h=Symbol.metadata||Symbol.for("Symbol.metadata"),d=Object.defineProperty,f=Object.create,p=[f(null),f(null)],m=e.length;function g(e,n,r){return function(i,s){n&&(s=i,i=t);for(var o=0;o<e.length;o++)s=e[o].apply(i,r?[s]:[]);return r?s:i}}function y(t,e,n,r){if("function"!=typeof t&&(r||void 0!==t))throw TypeError(e+" must "+(n||"be")+" a function"+(r?"":" or undefined"));return t}function b(t,e,n,r,i,s,o,a,l,h,f){function m(t){if(!f(t))throw TypeError("Attempted to access private element on non-instance")}var b=[].concat(e[0]),v=e[3],w=!o,S=1===i,_=3===i,$=4===i,E=2===i;function C(e,n,r){return function(i,s){return n&&(s=i,i=t),r&&r(i),desc[e].call(i,s)}}var T={},x=[],P=_?"get":$||S?"set":"value";if(!w&&(l?(h||S?T={get:i2(function(){return v(this)},r,"get"),set:function(t){e[4](this,t)}}:T[P]=v,h||i2(T[P],r,E?"":P)):h||(T=Object.getOwnPropertyDescriptor(t,r)),!h&&!l)){if((u=p[+a][r])&&(u^i)!=7)throw Error("Decorating two elements with the same name ("+T[P].name+") is not supported yet");p[+a][r]=i<3?1:i}for(var L=t,O=b.length-1;O>=0;O-=n?2:1){var k=y(b[O],"A decorator","be",!0),j=n?b[O-1]:void 0,N={},A={kind:["field","accessor","method","getter","setter","class"][i],name:r,metadata:c,addInitializer:(function(t,e){if(t.v)throw TypeError("attempted to call addInitializer after decoration was finished");y(e,"An initializer","be",!0),s.push(e)}).bind(null,N)};if(w){u=k.call(j,L,A),N.v=1,y(u,"class decorators","return")&&(L=u);continue}if(A.static=a,A.private=l,u=A.access={has:l?f.bind():function(t){return r in t}},$||(u.get=l?E?function(t){return m(t),T.value}:C("get",0,m):function(t){return t[r]}),E||_||(u.set=l?C("set",0,m):function(t,e){t[r]=e}),L=k.call(j,S?{get:T.get,set:T.set}:T[P],A),N.v=1,S){if("object"==typeof L&&L)(u=y(L.get,"accessor.get"))&&(T.get=u),(u=y(L.set,"accessor.set"))&&(T.set=u),(u=y(L.init,"accessor.init"))&&x.unshift(u);else if(void 0!==L)throw TypeError("accessor decorators must return an object with get, set, or init properties or undefined")}else y(L,(h?"field":"method")+" decorators","return")&&(h?x.unshift(L):T[P]=L)}return i<2&&o.push(g(x,a,1),g(s,a,0)),h||w||(l?S?o.splice(-1,0,C("get",a),C("set",a)):o.push(E?T[P]:y.call.bind(T[P])):d(t,r,T)),L}function v(t){return d(t,h,{configurable:!0,enumerable:!0,value:c})}return c=f(null==c?null:c),o=[],a=function(t){t&&o.push(g(t))},(l=function(e,a){for(var l=0;l<n.length;l++){var c=n[l],u=c[1],h=7&u;if((8&u)==e&&!h==a){var d=c[2],f=!!c[3],p=16&u;b(e?t:t.prototype,c,p,f?"#"+d:function(t){var e=function(t,e){if("object"!=typeof t||null===t)return t;var n=t[Symbol.toPrimitive];if(void 0!==n){var r=n.call(t,e||"default");if("object"!=typeof r)return r;throw TypeError("@@toPrimitive must return a primitive value.")}return("string"===e?String:Number)(t)}(t,"string");return"symbol"==typeof e?e:String(e)}(d),h,h<2?[]:e?s=s||[]:i=i||[],o,!!e,f,a,e&&f?function(e){return function(t){if(Object(t)!==t)throw TypeError("right-hand side of 'in' should be an object, got "+(null!==t?typeof t:"null"));return t}(e)===t}:r)}}})(8,0),l(0,0),l(8,1),l(0,1),a(i),a(s),u=o,m||v(t),{e:u,get c(){var w=[];return m&&[v(t=b(t,[e],0,t.name,5,w)),g(w,1)]}}}(this,[],[[n6,0,"method"],[rt,0,"target"],[tY,0,"init",function(t){return t.#N},function(t,e){t.#N=e}],[tZ,0,"changeTarget",function(t){return t.#tr},function(t,e){t.#tr=e}]],t=>#N in t))}constructor(...t){super(...t),t7(this)}method=tX(this);target=(t0(this),t1(this,document.head));get #ti(){return this.method||"append"}#N=(t2(this),t3(this,()=>{this.hidden=!0}));#ts=(t8(this),i8("gem-reflect-start"));#to=i8(i3);#ta;#tr=t4(this,()=>((this.#ta||[this.#ts,...this.childNodes,this.#to]).forEach((t,e,n)=>{let r=n[e-1];r?r.after(t):this.target[this.#ti](t)}),()=>{this.#ta=(t=>{let e=[],n=t;for(;n&&(e.push(n),n.nodeValue!==i3);)n=n.nextSibling;return e})(this.#ts),this.#ta.forEach(t=>t.remove())}))}function i7(t,e,n){"symbol"==typeof e&&(e=(e=e.description)?"["+e+"]":"");try{Object.defineProperty(t,"name",{configurable:!0,value:n?n+" "+e:e})}catch(t){}return t}function i6(t){return t}customElements.define("gem-reflect",i4),customElements.define("gem-route",tn),customElements.define("gem-light-route",te);let i5=0,i9=t=>{clearTimeout(i5),i5=setTimeout(()=>document.title=t)};function st(t,e,n){"symbol"==typeof e&&(e=(e=e.description)?"["+e+"]":"");try{Object.defineProperty(t,"name",{configurable:!0,value:n?n+" "+e:e})}catch(t){}return t}t6=ry(),t9=nV,et=rn(t=>[t.inert]),ee=rs(),en=ro(),new class extends i6{constructor(){super(em),t5()}static [class extends t9{static{({e:[er,ei,es,eo,ea,el,ec,eu,eh,ed,ef,ep],c:[em,t5]}=function(t,e,n,r,i){var s,o,a,l,c,u,h,d=Symbol.metadata||Symbol.for("Symbol.metadata"),f=Object.defineProperty,p=Object.create,m=[p(null),p(null)],g=e.length;function y(e,n,r){return function(i,s){n&&(s=i,i=t);for(var o=0;o<e.length;o++)s=e[o].apply(i,r?[s]:[]);return r?s:i}}function b(t,e,n,r){if("function"!=typeof t&&(r||void 0!==t))throw TypeError(e+" must "+(n||"be")+" a function"+(r?"":" or undefined"));return t}function v(t,e,n,r,i,s,o,a,l,c,d){function p(t){if(!d(t))throw TypeError("Attempted to access private element on non-instance")}var g=[].concat(e[0]),v=e[3],w=!o,S=1===i,_=3===i,$=4===i,E=2===i;function C(e,n,r){return function(i,s){return n&&(s=i,i=t),r&&r(i),desc[e].call(i,s)}}var T={},x=[],P=_?"get":$||S?"set":"value";if(!w&&(l?(c||S?T={get:i7(function(){return v(this)},r,"get"),set:function(t){e[4](this,t)}}:T[P]=v,c||i7(T[P],r,E?"":P)):c||(T=Object.getOwnPropertyDescriptor(t,r)),!c&&!l)){if((h=m[+a][r])&&(h^i)!=7)throw Error("Decorating two elements with the same name ("+T[P].name+") is not supported yet");m[+a][r]=i<3?1:i}for(var L=t,O=g.length-1;O>=0;O-=n?2:1){var k=b(g[O],"A decorator","be",!0),j=n?g[O-1]:void 0,N={},A={kind:["field","accessor","method","getter","setter","class"][i],name:r,metadata:u,addInitializer:(function(t,e){if(t.v)throw TypeError("attempted to call addInitializer after decoration was finished");b(e,"An initializer","be",!0),s.push(e)}).bind(null,N)};if(w){h=k.call(j,L,A),N.v=1,b(h,"class decorators","return")&&(L=h);continue}if(A.static=a,A.private=l,h=A.access={has:l?d.bind():function(t){return r in t}},$||(h.get=l?E?function(t){return p(t),T.value}:C("get",0,p):function(t){return t[r]}),E||_||(h.set=l?C("set",0,p):function(t,e){t[r]=e}),L=k.call(j,S?{get:T.get,set:T.set}:T[P],A),N.v=1,S){if("object"==typeof L&&L)(h=b(L.get,"accessor.get"))&&(T.get=h),(h=b(L.set,"accessor.set"))&&(T.set=h),(h=b(L.init,"accessor.init"))&&x.unshift(h);else if(void 0!==L)throw TypeError("accessor decorators must return an object with get, set, or init properties or undefined")}else b(L,(c?"field":"method")+" decorators","return")&&(c?x.unshift(L):T[P]=L)}return i<2&&o.push(y(x,a,1),y(s,a,0)),c||w||(l?S?o.splice(-1,0,C("get",a),C("set",a)):o.push(E?T[P]:b.call.bind(T[P])):f(t,r,T)),L}function w(t){return f(t,d,{configurable:!0,enumerable:!0,value:u})}return void 0!==i&&(u=i[d]),u=p(null==u?null:u),a=[],l=function(t){t&&a.push(y(t))},(c=function(e,i){for(var l=0;l<n.length;l++){var c=n[l],u=c[1],h=7&u;if((8&u)==e&&!h==i){var d=c[2],f=!!c[3],p=16&u;v(e?t:t.prototype,c,p,f?"#"+d:function(t){var e=function(t,e){if("object"!=typeof t||null===t)return t;var n=t[Symbol.toPrimitive];if(void 0!==n){var r=n.call(t,e||"default");if("object"!=typeof r)return r;throw TypeError("@@toPrimitive must return a primitive value.")}return("string"===e?String:Number)(t)}(t,"string");return"symbol"==typeof e?e:String(e)}(d),h,h<2?[]:e?o=o||[]:s=s||[],a,!!e,f,i,e&&f?function(e){return function(t){if(Object(t)!==t)throw TypeError("right-hand side of 'in' should be an object, got "+(null!==t?typeof t:"null"));return t}(e)===t}:r)}}})(8,0),c(0,0),c(8,1),c(0,1),l(s),l(o),h=a,g||w(t),{e:h,get c(){var S=[];return g&&[w(t=v(t,[e],0,t.name,5,S)),y(S,1)]}}}(this,[t6],[[n6,0,"prefix"],[n6,0,"suffix"],[n5,0,"inert"],[et,0,"connectStore",function(t){return t.#V},function(t,e){t.#V=e}],[ee,0,"obTextContent",function(t){return t.#tl},function(t,e){t.#tl=e}],[en,0,"content",function(t){return t.#a},function(t,e){t.#a=e}]],t=>#V in t,t9))}constructor(...t){super(...t),ep(this)}prefix=er(this);suffix=(ei(this),es(this));inert=(eo(this),ea(this));static setTitle(t){iO({title:t})}#V=(el(this),ec(this,()=>!this.inert&&ng(iO,this.update)));#tc=(eu(this),new MutationObserver(()=>this.update()));#tl=eh(this,()=>{this.#tc.observe(this,{characterData:!0,childList:!0,subtree:!0})});#a=(ed(this),ef(this,()=>(!function(t,e="",n=""){let r=iO.title||t;r&&r!==iO.defaultTitle?i9(e+(em.title=r)+n):i9(em.title=iO.defaultTitle)}(this.textContent?.trim(),this.prefix,this.suffix),ny`${em.title}`)))}];title=document.title},customElements.define("gem-title",em);let se=nA`
23
23
  :host(:where(:not([hidden]))) {
24
24
  display: contents;
25
25
  }
@@ -33,4 +33,4 @@ let t,e,n,r,i,s,o,a,l,c,u,h,d,f,p,m,g,y,b,v,w,S,_,$,E,C,T,x,P,L,O,k,j,N,A,M,I,R,
33
33
  width: 100%;
34
34
  height: 100%;
35
35
  }
36
- `,ss=new Map;ek=ry(),ej=rm(si),eA=nV,eM=ro();class so extends eA{static{({e:[eI,eR,eH,eD,eV,ez,eW,eU,eG,eq],c:[eB,eN]}=function(t,e,n,r,i){var s,o,a,l,c,u,h,d=Symbol.metadata||Symbol.for("Symbol.metadata"),f=Object.defineProperty,p=Object.create,m=[p(null),p(null)],g=e.length;function y(e,n,r){return function(i,s){n&&(s=i,i=t);for(var o=0;o<e.length;o++)s=e[o].apply(i,r?[s]:[]);return r?s:i}}function b(t,e,n,r){if("function"!=typeof t&&(r||void 0!==t))throw TypeError(e+" must "+(n||"be")+" a function"+(r?"":" or undefined"));return t}function v(t,e,n,r,i,s,o,a,l,c,d){function p(t){if(!d(t))throw TypeError("Attempted to access private element on non-instance")}var g=[].concat(e[0]),v=e[3],w=!o,S=1===i,_=3===i,$=4===i,E=2===i;function C(e,n,r){return function(i,s){return n&&(s=i,i=t),r&&r(i),desc[e].call(i,s)}}var T={},x=[],P=_?"get":$||S?"set":"value";if(!w&&(l?(c||S?T={get:sr(function(){return v(this)},r,"get"),set:function(t){e[4](this,t)}}:T[P]=v,c||sr(T[P],r,E?"":P)):c||(T=Object.getOwnPropertyDescriptor(t,r)),!c&&!l)){if((h=m[+a][r])&&(h^i)!=7)throw Error("Decorating two elements with the same name ("+T[P].name+") is not supported yet");m[+a][r]=i<3?1:i}for(var L=t,O=g.length-1;O>=0;O-=n?2:1){var k=b(g[O],"A decorator","be",!0),j=n?g[O-1]:void 0,N={},A={kind:["field","accessor","method","getter","setter","class"][i],name:r,metadata:u,addInitializer:(function(t,e){if(t.v)throw TypeError("attempted to call addInitializer after decoration was finished");b(e,"An initializer","be",!0),s.push(e)}).bind(null,N)};if(w){h=k.call(j,L,A),N.v=1,b(h,"class decorators","return")&&(L=h);continue}if(A.static=a,A.private=l,h=A.access={has:l?d.bind():function(t){return r in t}},$||(h.get=l?E?function(t){return p(t),T.value}:C("get",0,p):function(t){return t[r]}),E||_||(h.set=l?C("set",0,p):function(t,e){t[r]=e}),L=k.call(j,S?{get:T.get,set:T.set}:T[P],A),N.v=1,S){if("object"==typeof L&&L)(h=b(L.get,"accessor.get"))&&(T.get=h),(h=b(L.set,"accessor.set"))&&(T.set=h),(h=b(L.init,"accessor.init"))&&x.unshift(h);else if(void 0!==L)throw TypeError("accessor decorators must return an object with get, set, or init properties or undefined")}else b(L,(c?"field":"method")+" decorators","return")&&(c?x.unshift(L):T[P]=L)}return i<2&&o.push(y(x,a,1),y(s,a,0)),c||w||(l?S?o.splice(-1,0,C("get",a),C("set",a)):o.push(E?T[P]:b.call.bind(T[P])):f(t,r,T)),L}function w(t){return f(t,d,{configurable:!0,enumerable:!0,value:u})}return void 0!==i&&(u=i[d]),u=p(null==u?null:u),a=[],l=function(t){t&&a.push(y(t))},(c=function(e,i){for(var l=0;l<n.length;l++){var c=n[l],u=c[1],h=7&u;if((8&u)==e&&!h==i){var d=c[2],f=!!c[3],p=16&u;v(e?t:t.prototype,c,p,f?"#"+d:function(t){var e=function(t,e){if("object"!=typeof t||null===t)return t;var n=t[Symbol.toPrimitive];if(void 0!==n){var r=n.call(t,e||"default");if("object"!=typeof r)return r;throw TypeError("@@toPrimitive must return a primitive value.")}return("string"===e?String:Number)(t)}(t,"string");return"symbol"==typeof e?e:String(e)}(d),h,h<2?[]:e?o=o||[]:s=s||[],a,!!e,f,i,e&&f?function(e){return function(t){if(Object(t)!==t)throw TypeError("right-hand side of 'in' should be an object, got "+(null!==t?typeof t:"null"));return t}(e)===t}:r)}}})(8,0),c(0,0),c(8,1),c(0,1),l(s),l(o),h=a,g||w(t),{e:h,get c(){var S=[];return g&&[w(t=v(t,[e],0,t.name,5,S)),y(S,1)]}}}(this,[ek,ej],[[n6,0,"selector"],[rt,0,"root"],[rt,0,"element"],[rl,0,"active"],[eM,0,"content",function(t){return t.#a},function(t,e){t.#a=e}]],t=>#a in t,eA))}constructor(...t){super(...t),eq(this)}selector=eI(this);root=(eR(this),eH(this));element=(eD(this),eV(this));active=(ez(this),eW(this));#td=(eU(this),()=>{let t=this.element||(this.selector?(this.root||document).querySelector(this.selector):null);if("string"==typeof t){let e=ss.get(t);return e||((e=document.createElement("template")).innerHTML=t,ss.set(t,e)),e.content.cloneNode(!0)}return t instanceof HTMLTemplateElement?t.content.cloneNode(!0):t?.cloneNode(!0)});#a=eG(this,()=>ny`${this.#td()}<slot></slot>`);static{eN()}}customElements.define("gem-use",eB);class sa{#tf;get #tp(){return`[${this.#tf}]`}constructor(t){this.#tf=t}info=(...t)=>{console.log(this.#tp,...t)};warn=(...t)=>{console.warn(this.#tp,...t)};error=(...t)=>{console.error(this.#tp,...t)}}let sl=new sa("GEM"),sc=/\$\d(?:<[^>]*>)?/,su=/\$(\d)(<([^>]*)>)?/g;function sh(t,...e){let n,r=t.split(sc),i=[];for(;n=su.exec(t);){let t=n[3],r=e[Number(n[1])-1];i.push("function"==typeof r?r(t):r)}return ny(r,...i)}let sd=new Set;class sf{resources;fallbackLanguage;currentLanguage;cache;cachePrefix="gem-i18n";urlParamsType;urlParamsName;onChange;replace=({path:t})=>this.setLanguage(t);getParams=()=>({path:this.currentLanguage});get #tm(){return`${this.cachePrefix}:current`}get #tg(){let{hostname:t,pathname:e,search:n}=location,r=t.split(".");switch(this.urlParamsType){case"ccTLD":return r.pop();case"gTLD":return r.shift();case"path":return e.split("/")[1];default:{let t=this.urlParamsName&&new URLSearchParams(n).get(this.urlParamsName)||"";return t in this.resources?t:""}}}get #ty(){return this.cache&&localStorage.getItem(this.#tm)||""}get #tb(){return!sd.has(this)}set #tv(t){this.#tb&&(document.documentElement.lang=t),this.currentLanguage=t,this.onChange?.(t)}#tw=!0;constructor(t){if(!t.resources[t.fallbackLanguage])throw new na("i18n: fallbackLanguage invalid");Object.assign(this,t);let e=this.#tg||this.currentLanguage||this.#ty,n=document.querySelector(`[type*=${this.cachePrefix}]`);if(n)try{let t=JSON.parse(n.textContent||"");e=t.currentLanguage,this.resources[t.currentLanguage]=t.currentLanguagePack}catch{}e?(this.#tv=e,this.setLanguage(e)):this.resetLanguage(),this.#tw=!1}get(t,...e){let n=this.resources[this.currentLanguage],r=this.resources[this.fallbackLanguage],i=n[t]||r[t],s=i?.message||i||`[${t}]`;return e.length?sh(s,...e):s}detectLanguage(){let t=Object.keys(this.resources);for(let e of navigator.languages.map(t=>t.replace(/-(.*)/,t=>t.toUpperCase()))){let n=t.find(t=>t===e||e.startsWith(`${t}-`));if(n)return n}return this.fallbackLanguage}async setLanguage(t){let e;this.#tb&&sd.forEach(async e=>await e.setLanguage(t));let n=this.resources[t];if(!n)return sl.warn(`${this.cachePrefix}: not found \`${t}\``),this.resetLanguage();if("string"==typeof n){let t=`${this.cachePrefix}:`,r=`${t}${n}`,i=localStorage.getItem(r),s=async()=>{let e=await (await fetch(n)).json();if(this.cache){for(let e=0;e<localStorage.length;e++){let n=localStorage.key(e);n.startsWith(t)&&localStorage.removeItem(n)}localStorage.setItem(r,JSON.stringify(e))}return e};if(i)try{e=JSON.parse(i)}catch{e=await s()}else e=await s()}else e=n;if(this.resources[t]=e,!this.#tw){let t=[document.documentElement];for(;t.length;){let e=t.pop();e[nx]?.(),t.push(...[...e.children,...e.shadowRoot?.children||[]].reverse())}}return t!==this.currentLanguage&&(this.#tv=t),!0===this.cache&&this.setCache(),t}resetLanguage(){return this.#tb&&sd.forEach(t=>t.resetLanguage()),this.#tv=this.fallbackLanguage,this.cache&&localStorage.removeItem(this.#tm),this.setLanguage(this.detectLanguage())}setCache(){this.#tb&&sd.forEach(t=>t.setCache()),localStorage.setItem(this.#tm,this.currentLanguage)}createSubModule(t,e){let n=new sf({resources:e,cachePrefix:`${this.cachePrefix}-${t}`,currentLanguage:this.currentLanguage,fallbackLanguage:this.fallbackLanguage,cache:this.cache});return sd.add(n),n}toJSON(){return{currentLanguage:this.currentLanguage,currentLanguagePack:this.resources[this.currentLanguage]}}}let sp={PRINT:"print",get isPrint(){return matchMedia(this.PRINT).matches},HOVER:"(hover: hover)",get isHover(){return matchMedia(this.HOVER).matches},PWA:"(display-mode: standalone)",get isPWA(){return matchMedia(this.PWA).matches},MOTION_REDUCE:"(prefers-reduced-motion: reduce)",get isMotionReduce(){return matchMedia(this.MOTION_REDUCE).matches},DATA_REDUCE:"(prefers-reduced-data: reduce)",get isDataReduce(){return matchMedia(this.DATA_REDUCE).matches},WATCH:"(width < 320px)",get isWatch(){return matchMedia(this.WATCH).matches},SMALL_PHONE:"(320px <= width <= 480px) and (height <= 640px)",get isSmallPhone(){return matchMedia(this.SMALL_PHONE).matches},PHONE:"(320px <= width <= 480px)",get isPhone(){return matchMedia(this.PHONE).matches},PHONE_LANDSCAPE:"(480px < width < 960px) and (orientation: landscape)",get isPhoneLandscape(){return matchMedia(this.PHONE_LANDSCAPE).matches},SHORT:"(width >= 480px) and (height <= 320px)",get isShort(){return matchMedia(this.SHORT).matches},TABLET:"(480px < width <= 1280px)",get isTablet(){return matchMedia(this.TABLET).matches},DESKTOP:"(width > 1280px) and (orientation: landscape)",get isDesktop(){return matchMedia(this.DESKTOP).matches},WIDTHSCREEN:"(width >= 1920px) and (orientation: landscape)",get isWidthScreen(){return matchMedia(this.WIDTHSCREEN).matches}},sm=Object.getPrototypeOf(Object.getPrototypeOf(new Int8Array)).constructor;function sg(t={}){let{origin:e=location.origin,base:n="",appendHeaders:r=()=>({}),transformInput:i=t=>t,transformOutput:s=t=>t,...o}=t,a=t=>t instanceof FormData||t instanceof Blob||t instanceof sm||t instanceof URLSearchParams||t instanceof ReadableStream||t instanceof ArrayBuffer?t:"object"==typeof t?JSON.stringify(t):t,l=(t,r)=>{if(new URL(t,location.origin).pathname!==t)throw new na("`path` format is incorrect");let i=new URLSearchParams(r).toString();return`${e}${n}${t}${i?"?":""}${i}`},c=t=>t?t instanceof Headers?Object.fromEntries(t):Object.fromEntries((Array.isArray(t)?t:Object.entries(t)).map(([t,e])=>[t.toLowerCase(),e])):{},u=async(t,e={})=>{let n=new Request(t,{...o,...e,headers:new Headers({"content-type":"application/json",...c(o.headers),...c(e.headers)})}),r=await fetch(n);if(204===r.status)return;if(0===r.status)throw Error("Request fail");if(r.status>=500)throw Error(r.statusText);let i=n.headers.get("content-type"),a=r.status>=400;try{let t;if(t=i.includes("json")?await r.json():i.includes("octet-stream")?await r.arrayBuffer():await r.text(),a)throw Error(r.statusText,{cause:t});return await s(t,n)}catch{throw Error("Parse error")}};return{request:u,async get(t,e){let n=await i(e);return u(l(t,n),{method:"GET",headers:await r(n)})},async del(t,e){let n=await i(e);return u(l(t,n),{method:"DELETE",headers:await r(n)})},async put(t,e){let n=await i(e);return u(l(t),{method:"PUT",headers:await r(n),body:a(n)})},async post(t,e){let n=await i(e);return u(l(t),{method:"POST",headers:await r(n),body:a(n)})}}}let{request:sy,del:sb,get:sv,post:sw,put:sS}=sg(),s_=new WeakMap,s$=new WeakMap;function sE(t){return s_.get(t)}function sC(t){return s$.get(t)}function sT(t,e={}){let n=nr(),r=nA({})[nT],i=nm(t),s=new Proxy(e4({[nT]:r},t=>i(t)),{get(t,e){if(!t[e]){let[n,r,i]=e.match(/^(\w*Color)(\d+)$/)||[];r&&(t[e]=`oklch(from ${t[r]} calc(l - ${(Number(i)-400)/1e3}) c h)`)}return t[e]}});s$.set(s,e),s_.set(s,i);let o=()=>{let t="";Object.keys(i).forEach(r=>{e[r]||(e[r]=`--${ni(r)}-${n}`,s[r]=`var(${e[r]})`),t+=`${e[r]}:${i[r]};`}),r.setContent(`&,:host{${t}}`)};return o(),ng(i,()=>{o(),r.updateStyle()}),s}function sx(t){return sT(t)}function sP(t){let e=sx(t);return document.adoptedStyleSheets.push(e[nT].getStyle()),e}function sL(t,e){return sT(e,sC(t))}function sO(t){let e=sT(t),n=sC(e);return e4(e,e=>(r,{addInitializer:i,access:s})=>{i(function(){let r=sT({...t},n);this.internals.sheets.push(r[nT].getStyle(this,!0)),this.memo(()=>r(s.get(this).apply(this)),e&&(()=>e(this)))})})}export{nV as GemElement,na as GemError,i4 as GemReflectElement,sf as I18n,e5 as LinkedList,sa as Logger,e9 as PropProxyMap,nt as QueryString,nT as SheetToken,rG as TemplateResult,nx as UpdateToken,tQ as GemActiveLinkElement,p as GemDialogBaseElement,te as GemLightRouteElement,tF as GemLinkElement,tn as GemRouteElement,em as GemTitleElement,eO as GemUnsafeElement,eB as GemUseElement,nL as _RenderErrorEvent,np as _StoreListenerMap,e as _createTemplate,e7 as absoluteLocation,e6 as addListener,e8 as addMicrotask,rm as adoptedStyle,n6 as attribute,ik as basePathStore,n5 as boolattribute,ni as camelToKebabCase,nh as classMap,no as cleanObject,ng as connect,rg as connectStore,sO as createDecoratorTheme,iq as createHistoryParams,iH as createModalClass,sL as createOverrideTheme,iG as createPath,r5 as createRef,sx as createScopedTheme,t as createState,nm as createStore,sP as createTheme,e4 as createUpdater,nA as css,rS as customElement,rw as aria,rv as async,rn as effect,rh as part,rl as state,ro as template,sb as del,ie as directive,rd as emitter,nf as exportPartsMap,ra as fallback,sv as get,sC as getThemeProps,sE as getThemeStore,rf as globalemitter,iL as history,ny as html,sg as initRequest,nl as isArrayChange,ns as kebabToCamelCase,rb as light,sl as logger,iU as matchPath,rJ as mathml,sp as mediaQuery,re as memo,rs as mounted,n9 as numattribute,nc as objectMapToString,nd as partMap,sw as post,rt as property,sS as put,nr as randomStr,ne as raw,nb as render,ic as repeat,sy as request,nv as setEngine,nS as setHydrationEngine,ry as shadow,ru as slot,sh as splice,nu as styleMap,nn as styled,rK as svg,iO as titleStore,rr as unmounted,it as version,ri as willMount};
36
+ `,ss=new Map;ek=ry(),ej=rm(si),eA=nV,eM=ro();class so extends eA{static{({e:[eR,eI,eH,eD,eV,ez,eW,eU,eG,eq],c:[eB,eN]}=function(t,e,n,r,i){var s,o,a,l,c,u,h,d=Symbol.metadata||Symbol.for("Symbol.metadata"),f=Object.defineProperty,p=Object.create,m=[p(null),p(null)],g=e.length;function y(e,n,r){return function(i,s){n&&(s=i,i=t);for(var o=0;o<e.length;o++)s=e[o].apply(i,r?[s]:[]);return r?s:i}}function b(t,e,n,r){if("function"!=typeof t&&(r||void 0!==t))throw TypeError(e+" must "+(n||"be")+" a function"+(r?"":" or undefined"));return t}function v(t,e,n,r,i,s,o,a,l,c,d){function p(t){if(!d(t))throw TypeError("Attempted to access private element on non-instance")}var g=[].concat(e[0]),v=e[3],w=!o,S=1===i,_=3===i,$=4===i,E=2===i;function C(e,n,r){return function(i,s){return n&&(s=i,i=t),r&&r(i),desc[e].call(i,s)}}var T={},x=[],P=_?"get":$||S?"set":"value";if(!w&&(l?(c||S?T={get:sr(function(){return v(this)},r,"get"),set:function(t){e[4](this,t)}}:T[P]=v,c||sr(T[P],r,E?"":P)):c||(T=Object.getOwnPropertyDescriptor(t,r)),!c&&!l)){if((h=m[+a][r])&&(h^i)!=7)throw Error("Decorating two elements with the same name ("+T[P].name+") is not supported yet");m[+a][r]=i<3?1:i}for(var L=t,O=g.length-1;O>=0;O-=n?2:1){var k=b(g[O],"A decorator","be",!0),j=n?g[O-1]:void 0,N={},A={kind:["field","accessor","method","getter","setter","class"][i],name:r,metadata:u,addInitializer:(function(t,e){if(t.v)throw TypeError("attempted to call addInitializer after decoration was finished");b(e,"An initializer","be",!0),s.push(e)}).bind(null,N)};if(w){h=k.call(j,L,A),N.v=1,b(h,"class decorators","return")&&(L=h);continue}if(A.static=a,A.private=l,h=A.access={has:l?d.bind():function(t){return r in t}},$||(h.get=l?E?function(t){return p(t),T.value}:C("get",0,p):function(t){return t[r]}),E||_||(h.set=l?C("set",0,p):function(t,e){t[r]=e}),L=k.call(j,S?{get:T.get,set:T.set}:T[P],A),N.v=1,S){if("object"==typeof L&&L)(h=b(L.get,"accessor.get"))&&(T.get=h),(h=b(L.set,"accessor.set"))&&(T.set=h),(h=b(L.init,"accessor.init"))&&x.unshift(h);else if(void 0!==L)throw TypeError("accessor decorators must return an object with get, set, or init properties or undefined")}else b(L,(c?"field":"method")+" decorators","return")&&(c?x.unshift(L):T[P]=L)}return i<2&&o.push(y(x,a,1),y(s,a,0)),c||w||(l?S?o.splice(-1,0,C("get",a),C("set",a)):o.push(E?T[P]:b.call.bind(T[P])):f(t,r,T)),L}function w(t){return f(t,d,{configurable:!0,enumerable:!0,value:u})}return void 0!==i&&(u=i[d]),u=p(null==u?null:u),a=[],l=function(t){t&&a.push(y(t))},(c=function(e,i){for(var l=0;l<n.length;l++){var c=n[l],u=c[1],h=7&u;if((8&u)==e&&!h==i){var d=c[2],f=!!c[3],p=16&u;v(e?t:t.prototype,c,p,f?"#"+d:function(t){var e=function(t,e){if("object"!=typeof t||null===t)return t;var n=t[Symbol.toPrimitive];if(void 0!==n){var r=n.call(t,e||"default");if("object"!=typeof r)return r;throw TypeError("@@toPrimitive must return a primitive value.")}return("string"===e?String:Number)(t)}(t,"string");return"symbol"==typeof e?e:String(e)}(d),h,h<2?[]:e?o=o||[]:s=s||[],a,!!e,f,i,e&&f?function(e){return function(t){if(Object(t)!==t)throw TypeError("right-hand side of 'in' should be an object, got "+(null!==t?typeof t:"null"));return t}(e)===t}:r)}}})(8,0),c(0,0),c(8,1),c(0,1),l(s),l(o),h=a,g||w(t),{e:h,get c(){var S=[];return g&&[w(t=v(t,[e],0,t.name,5,S)),y(S,1)]}}}(this,[ek,ej],[[n6,0,"selector"],[rt,0,"root"],[rt,0,"element"],[rl,0,"active"],[eM,0,"content",function(t){return t.#a},function(t,e){t.#a=e}]],t=>#a in t,eA))}constructor(...t){super(...t),eq(this)}selector=eR(this);root=(eI(this),eH(this));element=(eD(this),eV(this));active=(ez(this),eW(this));#td=(eU(this),()=>{let t=this.element||(this.selector?(this.root||document).querySelector(this.selector):null);if("string"==typeof t){let e=ss.get(t);return e||((e=document.createElement("template")).innerHTML=t,ss.set(t,e)),e.content.cloneNode(!0)}return t instanceof HTMLTemplateElement?t.content.cloneNode(!0):t?.cloneNode(!0)});#a=eG(this,()=>ny`${this.#td()}<slot></slot>`);static{eN()}}customElements.define("gem-use",eB);class sa{#tf;get #tp(){return`[${this.#tf}]`}constructor(t){this.#tf=t}info=(...t)=>{console.log(this.#tp,...t)};warn=(...t)=>{console.warn(this.#tp,...t)};error=(...t)=>{console.error(this.#tp,...t)}}let sl=new sa("GEM"),sc=/\$\d(?:<[^>]*>)?/,su=/\$(\d)(<([^>]*)>)?/g;function sh(t,...e){let n,r=t.split(sc),i=[];for(;n=su.exec(t);){let t=n[3],r=e[Number(n[1])-1];i.push("function"==typeof r?r(t):r)}return ny(r,...i)}let sd=new Set;class sf{resources;fallbackLanguage;currentLanguage;cache;cachePrefix="gem-i18n";urlParamsType;urlParamsName;onChange;replace=({path:t})=>this.setLanguage(t);getParams=()=>({path:this.currentLanguage});get #tm(){return`${this.cachePrefix}:current`}get #tg(){let{hostname:t,pathname:e,search:n}=location,r=t.split(".");switch(this.urlParamsType){case"ccTLD":return r.pop();case"gTLD":return r.shift();case"path":return e.split("/")[1];default:{let t=this.urlParamsName&&new URLSearchParams(n).get(this.urlParamsName)||"";return t in this.resources?t:""}}}get #ty(){return this.cache&&localStorage.getItem(this.#tm)||""}get #tb(){return!sd.has(this)}set #tv(t){this.#tb&&(document.documentElement.lang=t),this.currentLanguage=t,this.onChange?.(t)}#tw=!0;constructor(t){if(!t.resources[t.fallbackLanguage])throw new na("i18n: fallbackLanguage invalid");Object.assign(this,t);let e=this.#tg||this.currentLanguage||this.#ty,n=document.querySelector(`[type*=${this.cachePrefix}]`);if(n)try{let t=JSON.parse(n.textContent||"");e=t.currentLanguage,this.resources[t.currentLanguage]=t.currentLanguagePack}catch{}e?(this.#tv=e,this.setLanguage(e)):this.resetLanguage(),this.#tw=!1}get(t,...e){let n=this.resources[this.currentLanguage],r=this.resources[this.fallbackLanguage],i=n[t]||r[t],s=i?.message||i||`[${t}]`;return e.length?sh(s,...e):s}detectLanguage(){let t=Object.keys(this.resources);for(let e of navigator.languages.map(t=>t.replace(/-(.*)/,t=>t.toUpperCase()))){let n=t.find(t=>t===e||e.startsWith(`${t}-`));if(n)return n}return this.fallbackLanguage}async setLanguage(t){let e;this.#tb&&sd.forEach(async e=>await e.setLanguage(t));let n=this.resources[t];if(!n)return sl.warn(`${this.cachePrefix}: not found \`${t}\``),this.resetLanguage();if("string"==typeof n){let t=`${this.cachePrefix}:`,r=`${t}${n}`,i=localStorage.getItem(r),s=async()=>{let e=await (await fetch(n)).json();if(this.cache){for(let e=0;e<localStorage.length;e++){let n=localStorage.key(e);n.startsWith(t)&&localStorage.removeItem(n)}localStorage.setItem(r,JSON.stringify(e))}return e};if(i)try{e=JSON.parse(i)}catch{e=await s()}else e=await s()}else e=n;if(this.resources[t]=e,!this.#tw){let t=[document.documentElement];for(;t.length;){let e=t.pop();e[nx]?.(),t.push(...[...e.children,...e.shadowRoot?.children||[]].reverse())}}return t!==this.currentLanguage&&(this.#tv=t),!0===this.cache&&this.setCache(),t}resetLanguage(){return this.#tb&&sd.forEach(t=>t.resetLanguage()),this.#tv=this.fallbackLanguage,this.cache&&localStorage.removeItem(this.#tm),this.setLanguage(this.detectLanguage())}setCache(){this.#tb&&sd.forEach(t=>t.setCache()),localStorage.setItem(this.#tm,this.currentLanguage)}createSubModule(t,e){let n=new sf({resources:e,cachePrefix:`${this.cachePrefix}-${t}`,currentLanguage:this.currentLanguage,fallbackLanguage:this.fallbackLanguage,cache:this.cache});return sd.add(n),n}toJSON(){return{currentLanguage:this.currentLanguage,currentLanguagePack:this.resources[this.currentLanguage]}}}let sp={PRINT:"print",get isPrint(){return matchMedia(this.PRINT).matches},HOVER:"(hover: hover)",get isHover(){return matchMedia(this.HOVER).matches},PWA:"(display-mode: standalone)",get isPWA(){return matchMedia(this.PWA).matches},MOTION_REDUCE:"(prefers-reduced-motion: reduce)",get isMotionReduce(){return matchMedia(this.MOTION_REDUCE).matches},DATA_REDUCE:"(prefers-reduced-data: reduce)",get isDataReduce(){return matchMedia(this.DATA_REDUCE).matches},WATCH:"(width < 320px)",get isWatch(){return matchMedia(this.WATCH).matches},SMALL_PHONE:"(320px <= width <= 480px) and (height <= 640px)",get isSmallPhone(){return matchMedia(this.SMALL_PHONE).matches},PHONE:"(320px <= width <= 480px)",get isPhone(){return matchMedia(this.PHONE).matches},PHONE_LANDSCAPE:"(480px < width < 960px) and (orientation: landscape)",get isPhoneLandscape(){return matchMedia(this.PHONE_LANDSCAPE).matches},SHORT:"(width >= 480px) and (height <= 320px)",get isShort(){return matchMedia(this.SHORT).matches},TABLET:"(480px < width <= 1280px)",get isTablet(){return matchMedia(this.TABLET).matches},DESKTOP:"(width > 1280px) and (orientation: landscape)",get isDesktop(){return matchMedia(this.DESKTOP).matches},WIDTHSCREEN:"(width >= 1920px) and (orientation: landscape)",get isWidthScreen(){return matchMedia(this.WIDTHSCREEN).matches}},sm=Object.getPrototypeOf(Object.getPrototypeOf(new Int8Array)).constructor;function sg(t={}){let{origin:e=location.origin,base:n="",appendHeaders:r=()=>({}),transformInput:i=t=>t,transformOutput:s=t=>t,...o}=t,a=t=>t instanceof FormData||t instanceof Blob||t instanceof sm||t instanceof URLSearchParams||t instanceof ReadableStream||t instanceof ArrayBuffer?t:"object"==typeof t?JSON.stringify(t):t,l=(t,r)=>{if(new URL(t,location.origin).pathname!==t)throw new na("`path` format is incorrect");let i=new URLSearchParams(r).toString();return`${e}${n}${t}${i?"?":""}${i}`},c=t=>t?t instanceof Headers?Object.fromEntries(t):Object.fromEntries((Array.isArray(t)?t:Object.entries(t)).map(([t,e])=>[t.toLowerCase(),e])):{},u=async(t,e={})=>{let n=new Request(t,{...o,...e,headers:new Headers({"content-type":"application/json",...c(o.headers),...c(e.headers)})}),r=await fetch(n);if(204===r.status)return;if(0===r.status)throw Error("Request fail");if(r.status>=500)throw Error(r.statusText);let i=n.headers.get("content-type"),a=r.status>=400;try{let t;if(t=i.includes("json")?await r.json():i.includes("octet-stream")?await r.arrayBuffer():await r.text(),a)throw Error(r.statusText,{cause:t});return await s(t,n)}catch{throw Error("Parse error")}};return{request:u,async get(t,e){let n=await i(e);return u(l(t,n),{method:"GET",headers:await r(n)})},async del(t,e){let n=await i(e);return u(l(t,n),{method:"DELETE",headers:await r(n)})},async put(t,e){let n=await i(e);return u(l(t),{method:"PUT",headers:await r(n),body:a(n)})},async post(t,e){let n=await i(e);return u(l(t),{method:"POST",headers:await r(n),body:a(n)})}}}let{request:sy,del:sb,get:sv,post:sw,put:sS}=sg(),s_=new WeakMap,s$=new WeakMap;function sE(t){return s_.get(t)}function sC(t){return s$.get(t)}function sT(t,e={}){let n=nr(),r=nA({})[nT],i=nm(t),s=new Proxy(e4({[nT]:r},t=>i(t)),{get(t,e){if(!t[e]){let[n,r,i]=e.match(/^(\w*Color)(\d+)$/)||[];r&&(t[e]=`oklch(from ${t[r]} calc(l - ${(Number(i)-400)/1e3}) c h)`)}return t[e]}});s$.set(s,e),s_.set(s,i);let o=()=>{let t="";Object.keys(i).forEach(r=>{e[r]||(e[r]=`--${ni(r)}-${n}`,s[r]=`var(${e[r]})`),t+=`${e[r]}:${i[r]};`}),r.setContent(`&,:host{${t}}`)};return o(),ng(i,()=>{o(),r.updateStyle()}),s}function sx(t){return sT(t)}function sP(t){let e=sx(t);return document.adoptedStyleSheets.push(e[nT].getStyle()),e}function sL(t,e){return sT(e,sC(t))}function sO(t){let e=sT(t),n=sC(e);return e4(e,e=>(r,{addInitializer:i,access:s})=>{i(function(){let r=sT({...t},n)[nT].getStyle(this,!0);this.internals.sheets.push(r),this.memo(()=>{let t=s.get(this).apply(this),e=r.cssRules[0],i=this.shadowRoot?e:r.element?.sheet?.cssRules[0]?.cssRules?.[0];for(let e in n)i?.style.setProperty(n[e],t[e])},e&&(()=>e(this)))})})}export{nV as GemElement,na as GemError,i4 as GemReflectElement,sf as I18n,e5 as LinkedList,sa as Logger,e9 as PropProxyMap,nt as QueryString,nT as SheetToken,rG as TemplateResult,nx as UpdateToken,tQ as GemActiveLinkElement,p as GemDialogBaseElement,te as GemLightRouteElement,tF as GemLinkElement,tn as GemRouteElement,em as GemTitleElement,eO as GemUnsafeElement,eB as GemUseElement,nL as _RenderErrorEvent,np as _StoreListenerMap,e as _createTemplate,e7 as absoluteLocation,e6 as addListener,e8 as addMicrotask,rm as adoptedStyle,n6 as attribute,ik as basePathStore,n5 as boolattribute,ni as camelToKebabCase,nh as classMap,no as cleanObject,ng as connect,rg as connectStore,sO as createDecoratorTheme,iq as createHistoryParams,iH as createModalClass,sL as createOverrideTheme,iG as createPath,r5 as createRef,sx as createScopedTheme,t as createState,nm as createStore,sP as createTheme,e4 as createUpdater,nA as css,rS as customElement,rw as aria,rv as async,rn as effect,rh as part,rl as state,ro as template,sb as del,ie as directive,rd as emitter,nf as exportPartsMap,ra as fallback,sv as get,sC as getThemeProps,sE as getThemeStore,rf as globalemitter,iL as history,ny as html,sg as initRequest,nl as isArrayChange,ns as kebabToCamelCase,rb as light,sl as logger,iU as matchPath,rJ as mathml,sp as mediaQuery,re as memo,rs as mounted,n9 as numattribute,nc as objectMapToString,nd as partMap,sw as post,rt as property,sS as put,nr as randomStr,ne as raw,nb as render,ic as repeat,sy as request,nv as setEngine,nS as setHydrationEngine,ry as shadow,ru as slot,sh as splice,nu as styleMap,nn as styled,rK as svg,iO as titleStore,rr as unmounted,it as version,ri as willMount};
@@ -24,6 +24,14 @@ export interface RotateEventDetail {
24
24
  y: number;
25
25
  rotate: number;
26
26
  }
27
+ /** Viewport coordinates in CSS pixels and a monotonic timestamp in milliseconds. */
28
+ export interface GestureSample {
29
+ clientX: number;
30
+ clientY: number;
31
+ timeStamp: number;
32
+ }
33
+ /** Detect the final flick from chronological samples, including the release position and pause. */
34
+ export declare function getSwipe(startEvent: GestureSample, moves: readonly GestureSample[], evt: GestureSample, getMovementX?: (x: number, y: number) => number, getMovementY?: (x: number, y: number) => number): SwipeEventDetail | undefined;
27
35
  /**
28
36
  * 块级元素,如果要设置成 `contents`,则内容块要设置 `touch-action: none`
29
37
  * https://javascript.info/pointer-events#event-pointercancel
@@ -1 +1 @@
1
- {"version":3,"file":"gesture.d.ts","sourceRoot":"","sources":["../../src/elements/base/gesture.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAEpD,OAAO,EAAO,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAErD,MAAM,MAAM,cAAc,GAAG;IAE3B,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,OAAO,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,OAAO,CAAC;CAClB,CAAC;AACF,MAAM,WAAW,gBAAgB;IAC/B,SAAS,EAAE,KAAK,GAAG,OAAO,GAAG,QAAQ,GAAG,MAAM,CAAC;IAC/C,KAAK,EAAE,MAAM,CAAC;CACf;AACD,MAAM,WAAW,gBAAgB;IAE/B,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,KAAK,EAAE,MAAM,CAAC;CACf;AACD,MAAM,WAAW,iBAAiB;IAEhC,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,MAAM,EAAE,MAAM,CAAC;CAChB;AA2BD;;;;GAIG;AACH,qBACa,iBAAkB,SAAQ,UAAU;;IACtC,GAAG,EAAE,OAAO,CAAC,cAAc,CAAC,CAAC;IAC7B,KAAK,EAAE,OAAO,CAAC,gBAAgB,CAAC,CAAC;IACjC,MAAM,EAAE,OAAO,CAAC,iBAAiB,CAAC,CAAC;IACnC,KAAK,EAAE,OAAO,CAAC,gBAAgB,CAAC,CAAC;IACjC,KAAK,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;IAC7B,GAAG,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;IAEzB,WAAW,EAAE,MAAM,CAAC;IAExB,QAAQ,EAAE,OAAO,CAAC;IA8MzB,oBAAoB;IACpB,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,cAAc,EAAE,CAAC,CAAa;CACrD"}
1
+ {"version":3,"file":"gesture.d.ts","sourceRoot":"","sources":["../../src/elements/base/gesture.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAEpD,OAAO,EAAO,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAErD,MAAM,MAAM,cAAc,GAAG;IAE3B,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,OAAO,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,OAAO,CAAC;CAClB,CAAC;AACF,MAAM,WAAW,gBAAgB;IAC/B,SAAS,EAAE,KAAK,GAAG,OAAO,GAAG,QAAQ,GAAG,MAAM,CAAC;IAC/C,KAAK,EAAE,MAAM,CAAC;CACf;AACD,MAAM,WAAW,gBAAgB;IAE/B,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,KAAK,EAAE,MAAM,CAAC;CACf;AACD,MAAM,WAAW,iBAAiB;IAEhC,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,MAAM,EAAE,MAAM,CAAC;CAChB;AAQD,oFAAoF;AACpF,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,mGAAmG;AACnG,wBAAgB,QAAQ,CACtB,UAAU,EAAE,aAAa,EACzB,KAAK,EAAE,SAAS,aAAa,EAAE,EAC/B,GAAG,EAAE,aAAa,EAClB,YAAY,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,KAAK,MAAM,EAC/C,YAAY,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,KAAK,MAAM,GAC9C,gBAAgB,GAAG,SAAS,CAgD9B;AA2BD;;;;GAIG;AACH,qBACa,iBAAkB,SAAQ,UAAU;;IACtC,GAAG,EAAE,OAAO,CAAC,cAAc,CAAC,CAAC;IAC7B,KAAK,EAAE,OAAO,CAAC,gBAAgB,CAAC,CAAC;IACjC,MAAM,EAAE,OAAO,CAAC,iBAAiB,CAAC,CAAC;IACnC,KAAK,EAAE,OAAO,CAAC,gBAAgB,CAAC,CAAC;IACjC,KAAK,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;IAC7B,GAAG,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;IAEzB,WAAW,EAAE,MAAM,CAAC;IAExB,QAAQ,EAAE,OAAO,CAAC;IA2MzB,oBAAoB;IACpB,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,cAAc,EAAE,CAAC,CAAa;CACrD"}
@@ -34,6 +34,65 @@ var __runInitializers = (this && this.__runInitializers) || function (thisArg, i
34
34
  };
35
35
  import { adoptedStyle, attribute, emitter, mounted, state } from '../../lib/decorators';
36
36
  import { css, GemElement } from '../../lib/reactive';
37
+ // 甩动手感的经验参数,非 UIKit 的公开阈值;坐标单位为 CSS px。
38
+ const SWIPE_TIME_WINDOW = 100;
39
+ const SWIPE_MIN_SPEED = 0.3; // px/ms
40
+ const SWIPE_MIN_DISTANCE = 20;
41
+ const SWIPE_DIRECTION_SLOP = 10;
42
+ /** Detect the final flick from chronological samples, including the release position and pause. */
43
+ export function getSwipe(startEvent, moves, evt, getMovementX, getMovementY) {
44
+ const targetTime = Math.max(startEvent.timeStamp, evt.timeStamp - SWIPE_TIME_WINDOW);
45
+ let sample = evt;
46
+ let furthest = sample;
47
+ let axis;
48
+ let sign = 0;
49
+ for (let i = moves.length - 1; i >= -1; i--) {
50
+ const previous = i < 0 ? startEvent : moves[i];
51
+ if (previous.timeStamp >= sample.timeStamp)
52
+ continue;
53
+ // 以抬手时间为窗口终点,插值边界,避免事件采样频率影响速度。
54
+ const timeStamp = Math.max(targetTime, previous.timeStamp);
55
+ const ratio = (timeStamp - previous.timeStamp) / (sample.timeStamp - previous.timeStamp);
56
+ sample = {
57
+ clientX: previous.clientX + (sample.clientX - previous.clientX) * ratio,
58
+ clientY: previous.clientY + (sample.clientY - previous.clientY) * ratio,
59
+ timeStamp,
60
+ };
61
+ const dx = evt.clientX - sample.clientX;
62
+ const dy = evt.clientY - sample.clientY;
63
+ if (!axis && Math.max(Math.abs(dx), Math.abs(dy)) >= SWIPE_DIRECTION_SLOP) {
64
+ axis = Math.abs(dx) >= Math.abs(dy) ? 'clientX' : 'clientY';
65
+ sign = Math.sign(evt[axis] - sample[axis]);
66
+ }
67
+ if (axis) {
68
+ if ((furthest[axis] - sample[axis]) * sign >= 0) {
69
+ furthest = sample;
70
+ }
71
+ else if ((sample[axis] - furthest[axis]) * sign >= SWIPE_DIRECTION_SLOP) {
72
+ // 明显回拉时只取最后一段,微抖不改变甩动方向。
73
+ sample = furthest;
74
+ break;
75
+ }
76
+ }
77
+ if (timeStamp <= targetTime)
78
+ break;
79
+ }
80
+ const duration = evt.timeStamp - sample.timeStamp;
81
+ if (duration <= 0)
82
+ return;
83
+ const dx = evt.clientX - sample.clientX;
84
+ const dy = evt.clientY - sample.clientY;
85
+ const horizontal = Math.abs(dx) > Math.abs(dy);
86
+ if (Math.abs(dx) === Math.abs(dy))
87
+ return;
88
+ const movement = horizontal ? (getMovementX?.(dx, dy) ?? dx) : (getMovementY?.(dx, dy) ?? dy);
89
+ const distance = Math.abs(movement);
90
+ const speed = distance / duration;
91
+ if (distance < SWIPE_MIN_DISTANCE || speed < SWIPE_MIN_SPEED)
92
+ return;
93
+ const direction = horizontal ? (movement > 0 ? 'right' : 'left') : movement > 0 ? 'bottom' : 'top';
94
+ return { direction, speed };
95
+ }
37
96
  function angleAB(a, b, c, { clientX: x1, clientY: y1 }, { clientX: x2, clientY: y2 }, { clientX: x3, clientY: y3 }) {
38
97
  // https://en.wikipedia.org/wiki/Law_of_cosines
39
98
  // https://blog.csdn.net/z278930050/article/details/53319091
@@ -123,6 +182,7 @@ let GemGestureElement = (() => {
123
182
  grabbing = (__runInitializers(this, _touchAction_extraInitializers), __runInitializers(this, _grabbing_initializers, void 0));
124
183
  #pressed = (__runInitializers(this, _grabbing_extraInitializers), false); // 触发 press 之后不触发其他事件
125
184
  #gestureTriggered = false; // 会排除 touchAction 方向
185
+ #multiTouch = false;
126
186
  #pressTimer = 0;
127
187
  #startEventMap = new Map();
128
188
  #getMoves = (pointerId) => {
@@ -132,7 +192,7 @@ let GemGestureElement = (() => {
132
192
  return this.#startEventMap.get(pointerId);
133
193
  };
134
194
  #getOtherLastMove = (pointerId) => {
135
- for (const id of this.movesMap.keys()) {
195
+ for (const id of this.#startEventMap.keys()) {
136
196
  if (id !== pointerId) {
137
197
  const moves = this.#getMoves(id);
138
198
  return moves[moves.length - 1] || this.#getStartEvent(id);
@@ -168,6 +228,7 @@ let GemGestureElement = (() => {
168
228
  return y;
169
229
  };
170
230
  #onStart = (evt) => {
231
+ this.#multiTouch = this.#startEventMap.size > 0;
171
232
  this.grabbing = true;
172
233
  evt.stopPropagation();
173
234
  this.setPointerCapture(evt.pointerId);
@@ -188,6 +249,8 @@ let GemGestureElement = (() => {
188
249
  if (this.hasPointerCapture(pointerId)) {
189
250
  const moves = this.#getMoves(pointerId);
190
251
  const startEvent = this.#getStartEvent(pointerId);
252
+ if (!startEvent)
253
+ return;
191
254
  const lastMove = moves[moves.length - 1] || startEvent;
192
255
  // Firefox contextmenu after trigger
193
256
  if (!lastMove)
@@ -208,7 +271,7 @@ let GemGestureElement = (() => {
208
271
  };
209
272
  moves.push(move);
210
273
  this.pan(move);
211
- if (this.movesMap.size !== 1) {
274
+ if (this.#startEventMap.size !== 1) {
212
275
  this.#gestureTriggered = true;
213
276
  const secondaryPoint = this.#getOtherLastMove(pointerId);
214
277
  const moveLen = Math.sqrt(movementX ** 2 + movementY ** 2);
@@ -235,56 +298,44 @@ let GemGestureElement = (() => {
235
298
  #onMoveSet = (evt) => {
236
299
  evt.stopPropagation();
237
300
  // https://bugs.webkit.org/show_bug.cgi?id=210454
238
- if ('getCoalescedEvents' in evt) {
239
- evt.getCoalescedEvents().forEach((event) => this.#onMove(event));
301
+ const events = 'getCoalescedEvents' in evt ? evt.getCoalescedEvents() : [];
302
+ if (events.length) {
303
+ events.forEach((event) => this.#onMove(event));
240
304
  }
241
305
  else {
242
306
  this.#onMove(evt);
243
307
  }
244
308
  };
309
+ #getSwipe = (evt) => {
310
+ return getSwipe(this.#getStartEvent(evt.pointerId), this.#getMoves(evt.pointerId), evt, this.#getMovementX, this.#getMovementY);
311
+ };
245
312
  #onEnd = async (evt) => {
246
313
  evt.stopPropagation();
247
314
  const { pointerId } = evt;
315
+ if (!this.#startEventMap.has(pointerId))
316
+ return;
248
317
  clearTimeout(this.#pressTimer);
249
- if (this.movesMap.size === 1) {
318
+ const moves = this.movesMap.get(pointerId);
319
+ // auto release: https://javascript.info/pointer-events#pointer-capturing
320
+ const swipe = evt.type === 'pointerup' &&
321
+ !this.#pressed &&
322
+ !this.#multiTouch &&
323
+ this.hasPointerCapture(pointerId) &&
324
+ this.#getSwipe(evt);
325
+ // end 处理器需要先拿到本次甩动速度,才能决定回弹或继续滑动。
326
+ if (swipe)
327
+ this.swipe(swipe);
328
+ this.#startEventMap.delete(pointerId);
329
+ const ended = this.#startEventMap.size === 0;
330
+ if (ended) {
250
331
  this.grabbing = false;
251
332
  this.#gestureTriggered = false;
252
333
  this.end(evt);
253
334
  }
254
- // auto release: https://javascript.info/pointer-events#pointer-capturing
255
- if (!this.#pressed && this.hasPointerCapture(pointerId)) {
256
- const moves = this.#getMoves(pointerId);
257
- if (moves.length > 2) {
258
- const { x, y, timeStamp, clientX, clientY } = moves[moves.length - 1];
259
- const move2 = moves[moves.length - 3];
260
- if (Math.abs(x) > 2) {
261
- if (Math.abs(x) > Math.abs(y)) {
262
- const speed = Math.abs(move2.clientX - clientX) / (timeStamp - move2.timeStamp);
263
- if (x > 0) {
264
- this.swipe({ direction: 'right', speed });
265
- }
266
- else {
267
- this.swipe({ direction: 'left', speed });
268
- }
269
- }
270
- }
271
- if (Math.abs(y) > 2) {
272
- const speed = Math.abs(move2.clientY - clientY) / (timeStamp - move2.timeStamp);
273
- if (Math.abs(y) > Math.abs(x)) {
274
- if (y > 0) {
275
- this.swipe({ direction: 'bottom', speed });
276
- }
277
- else {
278
- this.swipe({ direction: 'top', speed });
279
- }
280
- }
281
- }
282
- }
283
- }
284
- this.#startEventMap.delete(pointerId);
285
- // 确保外部 end 事件处理器中可以读取到
335
+ // 确保外部 end 事件处理器中可以读取到,且不删除新手势的记录。
286
336
  await Promise.resolve();
287
- this.movesMap.delete(pointerId);
337
+ if (this.movesMap.get(pointerId) === moves)
338
+ this.movesMap.delete(pointerId);
288
339
  };
289
340
  #preventDefault = (evt) => evt.preventDefault();
290
341
  #onTouchMove = (evt) => {