@e280/quay 0.0.0-12 → 0.0.0-14

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.
Files changed (46) hide show
  1. package/README.md +59 -0
  2. package/package.json +2 -1
  3. package/s/cellar/cask.ts +13 -7
  4. package/s/cellar/cellar.test.ts +20 -18
  5. package/s/cellar/cellar.ts +3 -3
  6. package/s/cellar/forklift.ts +2 -2
  7. package/s/cellar/memory-forklift.ts +4 -3
  8. package/s/cellar/opfs-forklift.ts +4 -6
  9. package/s/dom/components/browser/style.css.ts +30 -30
  10. package/s/dom/components/dropzone/style.css.ts +11 -12
  11. package/s/dom/components/filter/component.ts +2 -2
  12. package/s/dom/components/searchbar/component.ts +5 -2
  13. package/s/dom/components/sort/component.ts +3 -3
  14. package/s/dom/theme.css.ts +64 -1
  15. package/s/dom/views/tree/style.css.ts +9 -9
  16. package/s/logic/presets/media/library.ts +2 -3
  17. package/x/cellar/cask.d.ts +4 -4
  18. package/x/cellar/cask.js +13 -9
  19. package/x/cellar/cask.js.map +1 -1
  20. package/x/cellar/cellar.d.ts +1 -1
  21. package/x/cellar/cellar.js +3 -3
  22. package/x/cellar/cellar.js.map +1 -1
  23. package/x/cellar/cellar.test.js +19 -18
  24. package/x/cellar/cellar.test.js.map +1 -1
  25. package/x/cellar/forklift.d.ts +2 -2
  26. package/x/cellar/memory-forklift.d.ts +2 -2
  27. package/x/cellar/memory-forklift.js +3 -2
  28. package/x/cellar/memory-forklift.js.map +1 -1
  29. package/x/cellar/opfs-forklift.d.ts +2 -2
  30. package/x/cellar/opfs-forklift.js +3 -5
  31. package/x/cellar/opfs-forklift.js.map +1 -1
  32. package/x/demo/main.bundle.min.js +140 -71
  33. package/x/demo/main.bundle.min.js.map +2 -2
  34. package/x/dom/components/browser/style.css.js +30 -29
  35. package/x/dom/components/browser/style.css.js.map +1 -1
  36. package/x/dom/components/dropzone/style.css.js +11 -11
  37. package/x/dom/components/filter/component.js +2 -2
  38. package/x/dom/components/searchbar/component.js +5 -1
  39. package/x/dom/components/searchbar/component.js.map +1 -1
  40. package/x/dom/components/sort/component.js +3 -3
  41. package/x/dom/theme.css.js +64 -0
  42. package/x/dom/theme.css.js.map +1 -1
  43. package/x/dom/views/tree/style.css.js +9 -9
  44. package/x/index.html +2 -2
  45. package/x/logic/presets/media/library.js +2 -3
  46. package/x/logic/presets/media/library.js.map +1 -1
@@ -1,6 +1,6 @@
1
- var qr=Object.defineProperty;var Et=(r,e)=>{for(var t in e)qr(r,t,{get:e[t],enumerable:!0})};var ve=globalThis,$e=ve.ShadowRoot&&(ve.ShadyCSS===void 0||ve.ShadyCSS.nativeShadow)&&"adoptedStyleSheets"in Document.prototype&&"replace"in CSSStyleSheet.prototype,at=Symbol(),kt=new WeakMap,ne=class{constructor(e,t,o){if(this._$cssResult$=!0,o!==at)throw Error("CSSResult is not constructable. Use `unsafeCSS` or `css` instead.");this.cssText=e,this.t=t}get styleSheet(){let e=this.o,t=this.t;if($e&&e===void 0){let o=t!==void 0&&t.length===1;o&&(e=kt.get(t)),e===void 0&&((this.o=e=new CSSStyleSheet).replaceSync(this.cssText),o&&kt.set(t,e))}return e}toString(){return this.cssText}},Ct=r=>new ne(typeof r=="string"?r:r+"",void 0,at),d=(r,...e)=>{let t=r.length===1?r[0]:e.reduce(((o,s,n)=>o+(i=>{if(i._$cssResult$===!0)return i.cssText;if(typeof i=="number")return i;throw Error("Value passed to 'css' function must be a 'css' function result: "+i+". Use 'unsafeCSS' to pass non-literal values, but take care to ensure page security.")})(s)+r[n+1]),r[0]);return new ne(t,r,at)},Ae=(r,e)=>{if($e)r.adoptedStyleSheets=e.map((t=>t instanceof CSSStyleSheet?t:t.styleSheet));else for(let t of e){let o=document.createElement("style"),s=ve.litNonce;s!==void 0&&o.setAttribute("nonce",s),o.textContent=t.cssText,r.appendChild(o)}},ee=$e?r=>r:r=>r instanceof CSSStyleSheet?(e=>{let t="";for(let o of e.cssRules)t+=o.cssText;return Ct(t)})(r):r;var{is:Fr,defineProperty:Gr,getOwnPropertyDescriptor:Wr,getOwnPropertyNames:Vr,getOwnPropertySymbols:Qr,getPrototypeOf:Kr}=Object,Se=globalThis,Bt=Se.trustedTypes,Zr=Bt?Bt.emptyScript:"",Jr=Se.reactiveElementPolyfillSupport,ie=(r,e)=>r,ct={toAttribute(r,e){switch(e){case Boolean:r=r?Zr:null;break;case Object:case Array:r=r==null?r:JSON.stringify(r)}return r},fromAttribute(r,e){let t=r;switch(e){case Boolean:t=r!==null;break;case Number:t=r===null?null:Number(r);break;case Object:case Array:try{t=JSON.parse(r)}catch{t=null}}return t}},Pt=(r,e)=>!Fr(r,e),Tt={attribute:!0,type:String,converter:ct,reflect:!1,useDefault:!1,hasChanged:Pt};Symbol.metadata??=Symbol("metadata"),Se.litPropertyMetadata??=new WeakMap;var H=class extends HTMLElement{static addInitializer(e){this._$Ei(),(this.l??=[]).push(e)}static get observedAttributes(){return this.finalize(),this._$Eh&&[...this._$Eh.keys()]}static createProperty(e,t=Tt){if(t.state&&(t.attribute=!1),this._$Ei(),this.prototype.hasOwnProperty(e)&&((t=Object.create(t)).wrapped=!0),this.elementProperties.set(e,t),!t.noAccessor){let o=Symbol(),s=this.getPropertyDescriptor(e,o,t);s!==void 0&&Gr(this.prototype,e,s)}}static getPropertyDescriptor(e,t,o){let{get:s,set:n}=Wr(this.prototype,e)??{get(){return this[t]},set(i){this[t]=i}};return{get:s,set(i){let l=s?.call(this);n?.call(this,i),this.requestUpdate(e,l,o)},configurable:!0,enumerable:!0}}static getPropertyOptions(e){return this.elementProperties.get(e)??Tt}static _$Ei(){if(this.hasOwnProperty(ie("elementProperties")))return;let e=Kr(this);e.finalize(),e.l!==void 0&&(this.l=[...e.l]),this.elementProperties=new Map(e.elementProperties)}static finalize(){if(this.hasOwnProperty(ie("finalized")))return;if(this.finalized=!0,this._$Ei(),this.hasOwnProperty(ie("properties"))){let t=this.properties,o=[...Vr(t),...Qr(t)];for(let s of o)this.createProperty(s,t[s])}let e=this[Symbol.metadata];if(e!==null){let t=litPropertyMetadata.get(e);if(t!==void 0)for(let[o,s]of t)this.elementProperties.set(o,s)}this._$Eh=new Map;for(let[t,o]of this.elementProperties){let s=this._$Eu(t,o);s!==void 0&&this._$Eh.set(s,t)}this.elementStyles=this.finalizeStyles(this.styles)}static finalizeStyles(e){let t=[];if(Array.isArray(e)){let o=new Set(e.flat(1/0).reverse());for(let s of o)t.unshift(ee(s))}else e!==void 0&&t.push(ee(e));return t}static _$Eu(e,t){let o=t.attribute;return o===!1?void 0:typeof o=="string"?o:typeof e=="string"?e.toLowerCase():void 0}constructor(){super(),this._$Ep=void 0,this.isUpdatePending=!1,this.hasUpdated=!1,this._$Em=null,this._$Ev()}_$Ev(){this._$ES=new Promise((e=>this.enableUpdating=e)),this._$AL=new Map,this._$E_(),this.requestUpdate(),this.constructor.l?.forEach((e=>e(this)))}addController(e){(this._$EO??=new Set).add(e),this.renderRoot!==void 0&&this.isConnected&&e.hostConnected?.()}removeController(e){this._$EO?.delete(e)}_$E_(){let e=new Map,t=this.constructor.elementProperties;for(let o of t.keys())this.hasOwnProperty(o)&&(e.set(o,this[o]),delete this[o]);e.size>0&&(this._$Ep=e)}createRenderRoot(){let e=this.shadowRoot??this.attachShadow(this.constructor.shadowRootOptions);return Ae(e,this.constructor.elementStyles),e}connectedCallback(){this.renderRoot??=this.createRenderRoot(),this.enableUpdating(!0),this._$EO?.forEach((e=>e.hostConnected?.()))}enableUpdating(e){}disconnectedCallback(){this._$EO?.forEach((e=>e.hostDisconnected?.()))}attributeChangedCallback(e,t,o){this._$AK(e,o)}_$ET(e,t){let o=this.constructor.elementProperties.get(e),s=this.constructor._$Eu(e,o);if(s!==void 0&&o.reflect===!0){let n=(o.converter?.toAttribute!==void 0?o.converter:ct).toAttribute(t,o.type);this._$Em=e,n==null?this.removeAttribute(s):this.setAttribute(s,n),this._$Em=null}}_$AK(e,t){let o=this.constructor,s=o._$Eh.get(e);if(s!==void 0&&this._$Em!==s){let n=o.getPropertyOptions(s),i=typeof n.converter=="function"?{fromAttribute:n.converter}:n.converter?.fromAttribute!==void 0?n.converter:ct;this._$Em=s,this[s]=i.fromAttribute(t,n.type)??this._$Ej?.get(s)??null,this._$Em=null}}requestUpdate(e,t,o){if(e!==void 0){let s=this.constructor,n=this[e];if(o??=s.getPropertyOptions(e),!((o.hasChanged??Pt)(n,t)||o.useDefault&&o.reflect&&n===this._$Ej?.get(e)&&!this.hasAttribute(s._$Eu(e,o))))return;this.C(e,t,o)}this.isUpdatePending===!1&&(this._$ES=this._$EP())}C(e,t,{useDefault:o,reflect:s,wrapped:n},i){o&&!(this._$Ej??=new Map).has(e)&&(this._$Ej.set(e,i??t??this[e]),n!==!0||i!==void 0)||(this._$AL.has(e)||(this.hasUpdated||o||(t=void 0),this._$AL.set(e,t)),s===!0&&this._$Em!==e&&(this._$Eq??=new Set).add(e))}async _$EP(){this.isUpdatePending=!0;try{await this._$ES}catch(t){Promise.reject(t)}let e=this.scheduleUpdate();return e!=null&&await e,!this.isUpdatePending}scheduleUpdate(){return this.performUpdate()}performUpdate(){if(!this.isUpdatePending)return;if(!this.hasUpdated){if(this.renderRoot??=this.createRenderRoot(),this._$Ep){for(let[s,n]of this._$Ep)this[s]=n;this._$Ep=void 0}let o=this.constructor.elementProperties;if(o.size>0)for(let[s,n]of o){let{wrapped:i}=n,l=this[s];i!==!0||this._$AL.has(s)||l===void 0||this.C(s,void 0,n,l)}}let e=!1,t=this._$AL;try{e=this.shouldUpdate(t),e?(this.willUpdate(t),this._$EO?.forEach((o=>o.hostUpdate?.())),this.update(t)):this._$EM()}catch(o){throw e=!1,this._$EM(),o}e&&this._$AE(t)}willUpdate(e){}_$AE(e){this._$EO?.forEach((t=>t.hostUpdated?.())),this.hasUpdated||(this.hasUpdated=!0,this.firstUpdated(e)),this.updated(e)}_$EM(){this._$AL=new Map,this.isUpdatePending=!1}get updateComplete(){return this.getUpdateComplete()}getUpdateComplete(){return this._$ES}shouldUpdate(e){return!0}update(e){this._$Eq&&=this._$Eq.forEach((t=>this._$ET(t,this[t]))),this._$EM()}updated(e){}firstUpdated(e){}};H.elementStyles=[],H.shadowRootOptions={mode:"open"},H[ie("elementProperties")]=new Map,H[ie("finalized")]=new Map,Jr?.({ReactiveElement:H}),(Se.reactiveElementVersions??=[]).push("2.1.0");var ut=globalThis,_e=ut.trustedTypes,Ot=_e?_e.createPolicy("lit-html",{createHTML:r=>r}):void 0,pt="$lit$",L=`lit$${Math.random().toFixed(9).slice(2)}$`,ft="?"+L,Yr=`<${ft}>`,W=document,ce=()=>W.createComment(""),le=r=>r===null||typeof r!="object"&&typeof r!="function",dt=Array.isArray,Lt=r=>dt(r)||typeof r?.[Symbol.iterator]=="function",lt=`[
2
- \f\r]`,ae=/<(?:(!--|\/[^a-zA-Z])|(\/?[a-zA-Z][^>\s]*)|(\/?$))/g,zt=/-->/g,Mt=/>/g,F=RegExp(`>|${lt}(?:([^\\s"'>=/]+)(${lt}*=${lt}*(?:[^
3
- \f\r"'\`<>=]|("|')|))|$)`,"g"),jt=/'/g,Dt=/"/g,Nt=/^(?:script|style|textarea|title)$/i,ht=r=>(e,...t)=>({_$litType$:r,strings:e,values:t}),p=ht(1),Do=ht(2),Ho=ht(3),V=Symbol.for("lit-noChange"),g=Symbol.for("lit-nothing"),Ht=new WeakMap,G=W.createTreeWalker(W,129);function Rt(r,e){if(!dt(r)||!r.hasOwnProperty("raw"))throw Error("invalid template strings array");return Ot!==void 0?Ot.createHTML(e):e}var Ut=(r,e)=>{let t=r.length-1,o=[],s,n=e===2?"<svg>":e===3?"<math>":"",i=ae;for(let l=0;l<t;l++){let a=r[l],c,u,f=-1,D=0;for(;D<a.length&&(i.lastIndex=D,u=i.exec(a),u!==null);)D=i.lastIndex,i===ae?u[1]==="!--"?i=zt:u[1]!==void 0?i=Mt:u[2]!==void 0?(Nt.test(u[2])&&(s=RegExp("</"+u[2],"g")),i=F):u[3]!==void 0&&(i=F):i===F?u[0]===">"?(i=s??ae,f=-1):u[1]===void 0?f=-2:(f=i.lastIndex-u[2].length,c=u[1],i=u[3]===void 0?F:u[3]==='"'?Dt:jt):i===Dt||i===jt?i=F:i===zt||i===Mt?i=ae:(i=F,s=void 0);let U=i===F&&r[l+1].startsWith("/>")?" ":"";n+=i===ae?a+Yr:f>=0?(o.push(c),a.slice(0,f)+pt+a.slice(f)+L+U):a+L+(f===-2?l:U)}return[Rt(r,n+(r[t]||"<?>")+(e===2?"</svg>":e===3?"</math>":"")),o]},ue=class r{constructor({strings:e,_$litType$:t},o){let s;this.parts=[];let n=0,i=0,l=e.length-1,a=this.parts,[c,u]=Ut(e,t);if(this.el=r.createElement(c,o),G.currentNode=this.el.content,t===2||t===3){let f=this.el.content.firstChild;f.replaceWith(...f.childNodes)}for(;(s=G.nextNode())!==null&&a.length<l;){if(s.nodeType===1){if(s.hasAttributes())for(let f of s.getAttributeNames())if(f.endsWith(pt)){let D=u[i++],U=s.getAttribute(f).split(L),we=/([.?@])?(.*)/.exec(D);a.push({type:1,index:n,name:we[2],strings:U,ctor:we[1]==="."?ke:we[1]==="?"?Ce:we[1]==="@"?Be:K}),s.removeAttribute(f)}else f.startsWith(L)&&(a.push({type:6,index:n}),s.removeAttribute(f));if(Nt.test(s.tagName)){let f=s.textContent.split(L),D=f.length-1;if(D>0){s.textContent=_e?_e.emptyScript:"";for(let U=0;U<D;U++)s.append(f[U],ce()),G.nextNode(),a.push({type:2,index:++n});s.append(f[D],ce())}}}else if(s.nodeType===8)if(s.data===ft)a.push({type:2,index:n});else{let f=-1;for(;(f=s.data.indexOf(L,f+1))!==-1;)a.push({type:7,index:n}),f+=L.length-1}n++}}static createElement(e,t){let o=W.createElement("template");return o.innerHTML=e,o}};function Q(r,e,t=r,o){if(e===V)return e;let s=o!==void 0?t._$Co?.[o]:t._$Cl,n=le(e)?void 0:e._$litDirective$;return s?.constructor!==n&&(s?._$AO?.(!1),n===void 0?s=void 0:(s=new n(r),s._$AT(r,t,o)),o!==void 0?(t._$Co??=[])[o]=s:t._$Cl=s),s!==void 0&&(e=Q(r,s._$AS(r,e.values),s,o)),e}var Ee=class{constructor(e,t){this._$AV=[],this._$AN=void 0,this._$AD=e,this._$AM=t}get parentNode(){return this._$AM.parentNode}get _$AU(){return this._$AM._$AU}u(e){let{el:{content:t},parts:o}=this._$AD,s=(e?.creationScope??W).importNode(t,!0);G.currentNode=s;let n=G.nextNode(),i=0,l=0,a=o[0];for(;a!==void 0;){if(i===a.index){let c;a.type===2?c=new te(n,n.nextSibling,this,e):a.type===1?c=new a.ctor(n,a.name,a.strings,this,e):a.type===6&&(c=new Te(n,this,e)),this._$AV.push(c),a=o[++l]}i!==a?.index&&(n=G.nextNode(),i++)}return G.currentNode=W,s}p(e){let t=0;for(let o of this._$AV)o!==void 0&&(o.strings!==void 0?(o._$AI(e,o,t),t+=o.strings.length-2):o._$AI(e[t])),t++}},te=class r{get _$AU(){return this._$AM?._$AU??this._$Cv}constructor(e,t,o,s){this.type=2,this._$AH=g,this._$AN=void 0,this._$AA=e,this._$AB=t,this._$AM=o,this.options=s,this._$Cv=s?.isConnected??!0}get parentNode(){let e=this._$AA.parentNode,t=this._$AM;return t!==void 0&&e?.nodeType===11&&(e=t.parentNode),e}get startNode(){return this._$AA}get endNode(){return this._$AB}_$AI(e,t=this){e=Q(this,e,t),le(e)?e===g||e==null||e===""?(this._$AH!==g&&this._$AR(),this._$AH=g):e!==this._$AH&&e!==V&&this._(e):e._$litType$!==void 0?this.$(e):e.nodeType!==void 0?this.T(e):Lt(e)?this.k(e):this._(e)}O(e){return this._$AA.parentNode.insertBefore(e,this._$AB)}T(e){this._$AH!==e&&(this._$AR(),this._$AH=this.O(e))}_(e){this._$AH!==g&&le(this._$AH)?this._$AA.nextSibling.data=e:this.T(W.createTextNode(e)),this._$AH=e}$(e){let{values:t,_$litType$:o}=e,s=typeof o=="number"?this._$AC(e):(o.el===void 0&&(o.el=ue.createElement(Rt(o.h,o.h[0]),this.options)),o);if(this._$AH?._$AD===s)this._$AH.p(t);else{let n=new Ee(s,this),i=n.u(this.options);n.p(t),this.T(i),this._$AH=n}}_$AC(e){let t=Ht.get(e.strings);return t===void 0&&Ht.set(e.strings,t=new ue(e)),t}k(e){dt(this._$AH)||(this._$AH=[],this._$AR());let t=this._$AH,o,s=0;for(let n of e)s===t.length?t.push(o=new r(this.O(ce()),this.O(ce()),this,this.options)):o=t[s],o._$AI(n),s++;s<t.length&&(this._$AR(o&&o._$AB.nextSibling,s),t.length=s)}_$AR(e=this._$AA.nextSibling,t){for(this._$AP?.(!1,!0,t);e&&e!==this._$AB;){let o=e.nextSibling;e.remove(),e=o}}setConnected(e){this._$AM===void 0&&(this._$Cv=e,this._$AP?.(e))}},K=class{get tagName(){return this.element.tagName}get _$AU(){return this._$AM._$AU}constructor(e,t,o,s,n){this.type=1,this._$AH=g,this._$AN=void 0,this.element=e,this.name=t,this._$AM=s,this.options=n,o.length>2||o[0]!==""||o[1]!==""?(this._$AH=Array(o.length-1).fill(new String),this.strings=o):this._$AH=g}_$AI(e,t=this,o,s){let n=this.strings,i=!1;if(n===void 0)e=Q(this,e,t,0),i=!le(e)||e!==this._$AH&&e!==V,i&&(this._$AH=e);else{let l=e,a,c;for(e=n[0],a=0;a<n.length-1;a++)c=Q(this,l[o+a],t,a),c===V&&(c=this._$AH[a]),i||=!le(c)||c!==this._$AH[a],c===g?e=g:e!==g&&(e+=(c??"")+n[a+1]),this._$AH[a]=c}i&&!s&&this.j(e)}j(e){e===g?this.element.removeAttribute(this.name):this.element.setAttribute(this.name,e??"")}},ke=class extends K{constructor(){super(...arguments),this.type=3}j(e){this.element[this.name]=e===g?void 0:e}},Ce=class extends K{constructor(){super(...arguments),this.type=4}j(e){this.element.toggleAttribute(this.name,!!e&&e!==g)}},Be=class extends K{constructor(e,t,o,s,n){super(e,t,o,s,n),this.type=5}_$AI(e,t=this){if((e=Q(this,e,t,0)??g)===V)return;let o=this._$AH,s=e===g&&o!==g||e.capture!==o.capture||e.once!==o.once||e.passive!==o.passive,n=e!==g&&(o===g||s);s&&this.element.removeEventListener(this.name,this,o),n&&this.element.addEventListener(this.name,this,e),this._$AH=e}handleEvent(e){typeof this._$AH=="function"?this._$AH.call(this.options?.host??this.element,e):this._$AH.handleEvent(e)}},Te=class{constructor(e,t,o){this.element=e,this.type=6,this._$AN=void 0,this._$AM=t,this.options=o}get _$AU(){return this._$AM._$AU}_$AI(e){Q(this,e)}},It={M:pt,P:L,A:ft,C:1,L:Ut,R:Ee,D:Lt,V:Q,I:te,H:K,N:Ce,U:Be,B:ke,F:Te},Xr=ut.litHtmlPolyfillSupport;Xr?.(ue,te),(ut.litHtmlVersions??=[]).push("3.3.0");var y=(r,e,t)=>{let o=t?.renderBefore??e,s=o._$litPart$;if(s===void 0){let n=t?.renderBefore??null;o._$litPart$=s=new te(e.insertBefore(ce(),n),n,void 0,t??{})}return s._$AI(r),s};var mt=globalThis,re=class extends H{constructor(){super(...arguments),this.renderOptions={host:this},this._$Do=void 0}createRenderRoot(){let e=super.createRenderRoot();return this.renderOptions.renderBefore??=e.firstChild,e}update(e){let t=this.render();this.hasUpdated||(this.renderOptions.isConnected=this.isConnected),super.update(e),this._$Do=y(t,this.renderRoot,this.renderOptions)}connectedCallback(){super.connectedCallback(),this._$Do?.setConnected(!0)}disconnectedCallback(){super.disconnectedCallback(),this._$Do?.setConnected(!1)}render(){return V}};re._$litElement$=!0,re.finalized=!0,mt.litElementHydrateSupport?.({LitElement:re});var eo=mt.litElementPolyfillSupport;eo?.({LitElement:re});(mt.litElementVersions??=[]).push("4.2.0");var C={string:(r,e)=>r.getAttribute(e)??void 0,number:(r,e)=>{let t=r.getAttribute(e);return t===null||!t?void 0:Number(t)},boolean:(r,e)=>r.getAttribute(e)!==null},w={string:(r,e,t)=>(t===void 0?r.removeAttribute(e):r.setAttribute(e,t),!0),number:(r,e,t)=>(t===void 0?r.removeAttribute(e):r.setAttribute(e,t.toString()),!0),boolean:(r,e,t)=>(t?r.setAttribute(e,""):r.removeAttribute(e),!0),any:(r,e,t)=>{t==null?r.removeAttribute(e):typeof t=="string"?r.setAttribute(e,t):typeof t=="number"?r.setAttribute(e,t.toString()):typeof t=="boolean"?t===!0?r.setAttribute(e,""):r.removeAttribute(e):console.warn(`invalid attribute "${e}" type is "${typeof t}"`)},entries:(r,e)=>{for(let[t,o]of e)w.any(r,t,o)},record:(r,e)=>w.entries(r,Object.entries(e))};function qt(r,e={}){let t=document.createElement(r);return w.record(t,e),t}function Ft(r){let e=document.createDocumentFragment();return y(r,e),e.firstElementChild}function Pe(r,e){let t=[];for(let[o,s]of Object.entries(e))if(typeof s=="function")r.addEventListener(o,s),t.push(()=>r.removeEventListener(o,s));else{let[n,i]=s;r.addEventListener(o,i,n),t.push(()=>r.removeEventListener(o,i))}return()=>t.forEach(o=>o())}function Gt(r,e){let t=new MutationObserver(e);return t.observe(r,{attributes:!0}),()=>t.disconnect()}var Oe=class{element;constructor(e){this.element=e}strings=new Proxy({},{get:(e,t)=>C.string(this.element,t),set:(e,t,o)=>w.string(this.element,t,o)});numbers=new Proxy({},{get:(e,t)=>C.number(this.element,t),set:(e,t,o)=>w.number(this.element,t,o)});booleans=new Proxy({},{get:(e,t)=>C.boolean(this.element,t),set:(e,t,o)=>w.boolean(this.element,t,o)})};var Wt=(r,e,t={})=>new Proxy(e,{get:(o,s)=>{switch(e[s]){case String:return C.string(r,s);case Number:return C.number(r,s);case Boolean:return C.boolean(r,s);default:throw new Error(`invalid attribute type for "${s}"`)}},set:(o,s,n)=>{try{switch(t.beforeSet?.(s),e[s]){case String:return w.string(r,s,n);case Number:return w.number(r,s,n);case Boolean:return w.boolean(r,s,n);default:throw new Error(`invalid attribute type for "${s}"`)}}finally{t.afterSet?.(s)}}});function oe(r){let e=new Oe(r);return{strings:e.strings,numbers:e.numbers,booleans:e.booleans,on:t=>Gt(r,t),spec:(t,o={})=>Wt(r,t,o)}}oe.get=C;oe.set=w;function Vt(r){return new gt(r)}var gt=class{tagName;#e=new Map;#t=[];constructor(e){this.tagName=e}attr(e,t=!0){return this.#e.set(e,t),this}attrs(e){for(let[t,o]of Object.entries(e))this.attr(t,o);return this}children(...e){return this.#t.push(...e),this}done(){let e=document.createElement(this.tagName);return w.entries(e,this.#e),e.append(...this.#t),e}};function se(r,e=document){let t=e.querySelector(r);if(!t)throw new Error(`element not found (${r})`);return t}function ze(r,e=document){return e.querySelector(r)}function Me(r,e=document){return Array.from(e.querySelectorAll(r))}var je=class r{element;#e;constructor(e){this.element=e}in(e){return new r(typeof e=="string"?se(e,this.element):e)}require(e){return se(e,this.element)}maybe(e){return ze(e,this.element)}all(e){return Me(e,this.element)}render(...e){return y(e,this.element)}get attrs(){return this.#e??=oe(this.element)}events(e){return Pe(this.element,e)}};function Qt(r){return r.replace(/([a-zA-Z])(?=[A-Z])/g,"$1-").toLowerCase()}function Kt(r,e={}){let{soft:t=!1,upgrade:o=!0}=e;for(let[s,n]of Object.entries(r)){let i=Qt(s),l=customElements.get(i);t&&l||(customElements.define(i,n),o&&document.querySelectorAll(i).forEach(a=>{a.constructor===HTMLElement&&customElements.upgrade(a)}))}}function v(r,e=document){return se(r,e)}v.in=(r,e=document)=>new je(e).in(r);v.need=se;v.maybe=ze;v.all=Me;v.el=qt;v.elmer=Vt;v.mk=Ft;v.events=Pe;v.attrs=oe;v.register=Kt;v.render=(r,...e)=>y(e,r);var Le={};Et(Le,{DragAndDrops:()=>yt,Drops:()=>xt,files:()=>io,hasFiles:()=>no,outsideCurrentTarget:()=>he});var B={};Et(B,{clone:()=>pe,equal:()=>to,freeze:()=>ro});function pe(r,e=new Set){if(e.has(r))throw new Error("cannot clone circular reference");let t;return typeof r=="function"||r!==null&&typeof r=="object"?(e.add(r),Array.isArray(r)?t=r.map(o=>pe(o,new Set(e))):r.constructor===Object?t=Object.fromEntries(Object.entries(r).map(([o,s])=>[o,pe(s,new Set(e))])):r instanceof Map?t=new Map(Array.from(r,([o,s])=>[o,pe(s,new Set(e))])):r instanceof Set?t=new Set(Array.from(r,o=>pe(o,new Set(e)))):r instanceof Date?t=new Date(r.getTime()):t=r,e.delete(r)):t=r,t}var fe=Object.freeze({happy:r=>r!=null,sad:r=>r==null,boolean:r=>typeof r=="boolean",number:r=>typeof r=="number",string:r=>typeof r=="string",bigint:r=>typeof r=="bigint",object:r=>typeof r=="object"&&r!==null,array:r=>Array.isArray(r),fn:r=>typeof r=="function",symbol:r=>typeof r=="symbol"});var to=(r,e)=>{function t(o,s,n){if(!fe.object(o)||!fe.object(s))return o===s;if(n.includes(o))throw new Error("forbidden circularity detected in deep equal comparison");let i=[...n,o];if(o instanceof Map&&s instanceof Map){if(o.size!==s.size)return!1;for(let[l,a]of o)if(!s.has(l)||!t(a,s.get(l),i))return!1}else if(o instanceof Set&&s instanceof Set){if(o.size!==s.size)return!1;for(let l of o)if(!Array.from(s).some(a=>t(l,a,i)))return!1}else{let l=Object.keys(o),a=Object.keys(s);if(l.length!==a.length)return!1;for(let c of l)if(!a.includes(c)||!t(o[c],s[c],i))return!1}return!0}return t(r,e,[])};function ro(r){function e(t,o){if(!fe.object(t)||o.includes(t))return t;let s=[...o,t];if(t instanceof Map)for(let n of t.entries())for(let i of n)e(i,s);else if(t instanceof Set)for(let n of t)e(n,s);else if(Array.isArray(t))for(let n of t)e(n,s);else for(let n of Object.values(t))e(n,s);return Object.freeze(t)}return e(r,[])}function Zt(r){if(r.ok)return r.value;let{error:e}=r;throw e instanceof Error?e:typeof e=="string"?new Error(e):new Error("unknown")}function Jt(r){if(r.ok)throw new Error("didn't get needed error");return r.error}function Yt(r,e,t){if(r.has(e))return r.get(e);{let o=t();return r.set(e,o),o}}var De=class{#e=new Set;#t=[];#r=new WeakMap;#s=0;#o=new Set;read(e){this.#t.at(-1)?.add(e)}write(e){let t=this.#r.get(e);if(t){for(let o of t)this.#o.add(o);this.#s===0&&this.#n()}}observe(e){let t=new Set;this.#t.push(t);try{let o=e();return{seen:t,value:o}}finally{this.#t.pop()}}subscribe(e,t){let o=Yt(this.#r,e,()=>new Set);return o.add(t),()=>{o.delete(t),o.size===0&&this.#r.delete(e)}}batch=e=>{this.#s++;try{return e()}finally{this.#s--,this.#s===0&&this.#n()}};#i(e){if(this.#e.has(e))throw new Error("circularity forbidden");this.#e.add(e);try{e()}finally{this.#e.delete(e)}}#n(){for(;this.#o.size>0;){let e=[...this.#o];this.#o.clear();for(let t of e)this.#i(t)}}};var x=globalThis[Symbol.for("e280.tracker.2")]??=new De;function h(r){return function e(){return arguments.length===0?(x.read(e),r):(r=arguments[0],x.write(e),r)}}var vn=x.batch;function er(r){return B.freeze(B.clone(r))}var T=Symbol("optic");var de=class{calculate;#e=!1;#t;constructor(e){this.calculate=e,this.#t=e()}get(){return this.#e&&(this.#e=!1,this.#t=this.calculate()),this.#t}invalidate(){this.#e=!0}};var He=class r{[T];#e;#t;#r;constructor(e){this[T]=e,this.#e=B.clone(e.getState()),this.#t=new de(()=>B.clone(e.getState())),this.#r=new de(()=>er(e.getState()))}update(){let e=this[T].getState();!B.equal(e,this.#e)&&(this.#t.invalidate(),this.#r.invalidate(),this.#e=B.clone(e),x.write(this))}get state(){return x.read(this),this.#t.get()}get frozen(){return x.read(this),this.#r.get()}mutate(e){return this[T].mutate(e)}lens(e){let t=new r({getState:()=>e(this[T].getState()),mutate:o=>this[T].mutate(s=>o(e(s))),registerLens:this[T].registerLens});return this[T].registerLens(t),t}};function tr(r){if(!r.done)throw new Error("wait not done");return Zt(r)}function rr(r){if(!r.done)throw new Error("wait not done");return Jt(r)}var or=r=>!r.done;var sr=r=>r.done&&r.ok;function nr(r,e){let{pending:t=()=>{},ok:o=()=>{},err:s=()=>{}}=e;return or(r)?t():sr(r)?o(tr(r)):s(rr(r))}function no(r){return!!(r.dataTransfer&&r.dataTransfer.types.includes("Files"))}function io(r){return r.dataTransfer?Array.from(r.dataTransfer.files):[]}function he(r){let e=r.currentTarget,t=r.relatedTarget;return!e||!t||!e.contains(t)}var yt=class{params;$draggy=h(void 0);$droppy=h(void 0);constructor(e){this.params=e}get dragging(){return this.$draggy()}get hovering(){return this.$droppy()}dragzone=e=>({draggable:"true",dragstart:t=>{this.$draggy(e())},dragend:t=>{this.$draggy(void 0),this.$droppy(void 0)}});dropzone=e=>({dragenter:t=>{},dragover:t=>{t.preventDefault(),this.$draggy()?this.$droppy(e()):this.params.backchannelDrops?.dragover(t)},dragleave:t=>{he(t)&&this.$droppy(void 0),this.params.backchannelDrops?.dragleave(t)},drop:t=>{t.preventDefault();let{acceptDrop:o}=this.params,s=this.$draggy(),n=this.$droppy();try{s&&n?o(t,s,n):this.params.backchannelDrops?.drop(t)}finally{this.$draggy(void 0),this.$droppy(void 0)}}})};var xt=class{params;$indicator=h(!1);constructor(e){this.params=e}dragover=e=>{e.preventDefault(),this.$indicator(this.params.predicate(e))};dragleave=e=>{he(e)&&this.$indicator(!1)};drop=e=>{e.preventDefault(),this.$indicator(!1),this.params.predicate(e)&&this.params.acceptDrop(e)}};function me(){let r,e,t=new Promise((s,n)=>{r=s,e=n});function o(s){return s.then(r).catch(e),t}return{promise:t,resolve:r,reject:e,entangle:o}}function Ne(r){let e=null;return((...t)=>(e?e.params=t:(e={params:t,deferred:me()},queueMicrotask(()=>{let{params:o,deferred:s}=e;e=null,Promise.resolve(r(...o)).then(s.resolve).catch(s.reject)})),e.deferred.promise))}function ir(r,e,t){if(r.has(e))return r.get(e);{let o=t();return r.set(e,o),o}}function ar(r){let e,t=!1,o=()=>{t=!0,clearTimeout(e)},s=async()=>{t||(await r(o),!t&&(e=setTimeout(s,0)))};return s(),o}var cr=(r=0)=>new Promise(e=>setTimeout(e,r));var Re=d`
1
+ var Ir=Object.defineProperty;var Et=(r,e)=>{for(var t in e)Ir(r,t,{get:e[t],enumerable:!0})};var we=globalThis,$e=we.ShadowRoot&&(we.ShadyCSS===void 0||we.ShadyCSS.nativeShadow)&&"adoptedStyleSheets"in Document.prototype&&"replace"in CSSStyleSheet.prototype,at=Symbol(),kt=new WeakMap,ne=class{constructor(e,t,o){if(this._$cssResult$=!0,o!==at)throw Error("CSSResult is not constructable. Use `unsafeCSS` or `css` instead.");this.cssText=e,this.t=t}get styleSheet(){let e=this.o,t=this.t;if($e&&e===void 0){let o=t!==void 0&&t.length===1;o&&(e=kt.get(t)),e===void 0&&((this.o=e=new CSSStyleSheet).replaceSync(this.cssText),o&&kt.set(t,e))}return e}toString(){return this.cssText}},Ct=r=>new ne(typeof r=="string"?r:r+"",void 0,at),d=(r,...e)=>{let t=r.length===1?r[0]:e.reduce(((o,s,n)=>o+(i=>{if(i._$cssResult$===!0)return i.cssText;if(typeof i=="number")return i;throw Error("Value passed to 'css' function must be a 'css' function result: "+i+". Use 'unsafeCSS' to pass non-literal values, but take care to ensure page security.")})(s)+r[n+1]),r[0]);return new ne(t,r,at)},Ae=(r,e)=>{if($e)r.adoptedStyleSheets=e.map((t=>t instanceof CSSStyleSheet?t:t.styleSheet));else for(let t of e){let o=document.createElement("style"),s=we.litNonce;s!==void 0&&o.setAttribute("nonce",s),o.textContent=t.cssText,r.appendChild(o)}},ee=$e?r=>r:r=>r instanceof CSSStyleSheet?(e=>{let t="";for(let o of e.cssRules)t+=o.cssText;return Ct(t)})(r):r;var{is:Fr,defineProperty:Gr,getOwnPropertyDescriptor:Wr,getOwnPropertyNames:Vr,getOwnPropertySymbols:Qr,getPrototypeOf:Kr}=Object,Se=globalThis,Bt=Se.trustedTypes,Zr=Bt?Bt.emptyScript:"",Jr=Se.reactiveElementPolyfillSupport,ie=(r,e)=>r,ct={toAttribute(r,e){switch(e){case Boolean:r=r?Zr:null;break;case Object:case Array:r=r==null?r:JSON.stringify(r)}return r},fromAttribute(r,e){let t=r;switch(e){case Boolean:t=r!==null;break;case Number:t=r===null?null:Number(r);break;case Object:case Array:try{t=JSON.parse(r)}catch{t=null}}return t}},zt=(r,e)=>!Fr(r,e),Tt={attribute:!0,type:String,converter:ct,reflect:!1,useDefault:!1,hasChanged:zt};Symbol.metadata??=Symbol("metadata"),Se.litPropertyMetadata??=new WeakMap;var L=class extends HTMLElement{static addInitializer(e){this._$Ei(),(this.l??=[]).push(e)}static get observedAttributes(){return this.finalize(),this._$Eh&&[...this._$Eh.keys()]}static createProperty(e,t=Tt){if(t.state&&(t.attribute=!1),this._$Ei(),this.prototype.hasOwnProperty(e)&&((t=Object.create(t)).wrapped=!0),this.elementProperties.set(e,t),!t.noAccessor){let o=Symbol(),s=this.getPropertyDescriptor(e,o,t);s!==void 0&&Gr(this.prototype,e,s)}}static getPropertyDescriptor(e,t,o){let{get:s,set:n}=Wr(this.prototype,e)??{get(){return this[t]},set(i){this[t]=i}};return{get:s,set(i){let l=s?.call(this);n?.call(this,i),this.requestUpdate(e,l,o)},configurable:!0,enumerable:!0}}static getPropertyOptions(e){return this.elementProperties.get(e)??Tt}static _$Ei(){if(this.hasOwnProperty(ie("elementProperties")))return;let e=Kr(this);e.finalize(),e.l!==void 0&&(this.l=[...e.l]),this.elementProperties=new Map(e.elementProperties)}static finalize(){if(this.hasOwnProperty(ie("finalized")))return;if(this.finalized=!0,this._$Ei(),this.hasOwnProperty(ie("properties"))){let t=this.properties,o=[...Vr(t),...Qr(t)];for(let s of o)this.createProperty(s,t[s])}let e=this[Symbol.metadata];if(e!==null){let t=litPropertyMetadata.get(e);if(t!==void 0)for(let[o,s]of t)this.elementProperties.set(o,s)}this._$Eh=new Map;for(let[t,o]of this.elementProperties){let s=this._$Eu(t,o);s!==void 0&&this._$Eh.set(s,t)}this.elementStyles=this.finalizeStyles(this.styles)}static finalizeStyles(e){let t=[];if(Array.isArray(e)){let o=new Set(e.flat(1/0).reverse());for(let s of o)t.unshift(ee(s))}else e!==void 0&&t.push(ee(e));return t}static _$Eu(e,t){let o=t.attribute;return o===!1?void 0:typeof o=="string"?o:typeof e=="string"?e.toLowerCase():void 0}constructor(){super(),this._$Ep=void 0,this.isUpdatePending=!1,this.hasUpdated=!1,this._$Em=null,this._$Ev()}_$Ev(){this._$ES=new Promise((e=>this.enableUpdating=e)),this._$AL=new Map,this._$E_(),this.requestUpdate(),this.constructor.l?.forEach((e=>e(this)))}addController(e){(this._$EO??=new Set).add(e),this.renderRoot!==void 0&&this.isConnected&&e.hostConnected?.()}removeController(e){this._$EO?.delete(e)}_$E_(){let e=new Map,t=this.constructor.elementProperties;for(let o of t.keys())this.hasOwnProperty(o)&&(e.set(o,this[o]),delete this[o]);e.size>0&&(this._$Ep=e)}createRenderRoot(){let e=this.shadowRoot??this.attachShadow(this.constructor.shadowRootOptions);return Ae(e,this.constructor.elementStyles),e}connectedCallback(){this.renderRoot??=this.createRenderRoot(),this.enableUpdating(!0),this._$EO?.forEach((e=>e.hostConnected?.()))}enableUpdating(e){}disconnectedCallback(){this._$EO?.forEach((e=>e.hostDisconnected?.()))}attributeChangedCallback(e,t,o){this._$AK(e,o)}_$ET(e,t){let o=this.constructor.elementProperties.get(e),s=this.constructor._$Eu(e,o);if(s!==void 0&&o.reflect===!0){let n=(o.converter?.toAttribute!==void 0?o.converter:ct).toAttribute(t,o.type);this._$Em=e,n==null?this.removeAttribute(s):this.setAttribute(s,n),this._$Em=null}}_$AK(e,t){let o=this.constructor,s=o._$Eh.get(e);if(s!==void 0&&this._$Em!==s){let n=o.getPropertyOptions(s),i=typeof n.converter=="function"?{fromAttribute:n.converter}:n.converter?.fromAttribute!==void 0?n.converter:ct;this._$Em=s,this[s]=i.fromAttribute(t,n.type)??this._$Ej?.get(s)??null,this._$Em=null}}requestUpdate(e,t,o){if(e!==void 0){let s=this.constructor,n=this[e];if(o??=s.getPropertyOptions(e),!((o.hasChanged??zt)(n,t)||o.useDefault&&o.reflect&&n===this._$Ej?.get(e)&&!this.hasAttribute(s._$Eu(e,o))))return;this.C(e,t,o)}this.isUpdatePending===!1&&(this._$ES=this._$EP())}C(e,t,{useDefault:o,reflect:s,wrapped:n},i){o&&!(this._$Ej??=new Map).has(e)&&(this._$Ej.set(e,i??t??this[e]),n!==!0||i!==void 0)||(this._$AL.has(e)||(this.hasUpdated||o||(t=void 0),this._$AL.set(e,t)),s===!0&&this._$Em!==e&&(this._$Eq??=new Set).add(e))}async _$EP(){this.isUpdatePending=!0;try{await this._$ES}catch(t){Promise.reject(t)}let e=this.scheduleUpdate();return e!=null&&await e,!this.isUpdatePending}scheduleUpdate(){return this.performUpdate()}performUpdate(){if(!this.isUpdatePending)return;if(!this.hasUpdated){if(this.renderRoot??=this.createRenderRoot(),this._$Ep){for(let[s,n]of this._$Ep)this[s]=n;this._$Ep=void 0}let o=this.constructor.elementProperties;if(o.size>0)for(let[s,n]of o){let{wrapped:i}=n,l=this[s];i!==!0||this._$AL.has(s)||l===void 0||this.C(s,void 0,n,l)}}let e=!1,t=this._$AL;try{e=this.shouldUpdate(t),e?(this.willUpdate(t),this._$EO?.forEach((o=>o.hostUpdate?.())),this.update(t)):this._$EM()}catch(o){throw e=!1,this._$EM(),o}e&&this._$AE(t)}willUpdate(e){}_$AE(e){this._$EO?.forEach((t=>t.hostUpdated?.())),this.hasUpdated||(this.hasUpdated=!0,this.firstUpdated(e)),this.updated(e)}_$EM(){this._$AL=new Map,this.isUpdatePending=!1}get updateComplete(){return this.getUpdateComplete()}getUpdateComplete(){return this._$ES}shouldUpdate(e){return!0}update(e){this._$Eq&&=this._$Eq.forEach((t=>this._$ET(t,this[t]))),this._$EM()}updated(e){}firstUpdated(e){}};L.elementStyles=[],L.shadowRootOptions={mode:"open"},L[ie("elementProperties")]=new Map,L[ie("finalized")]=new Map,Jr?.({ReactiveElement:L}),(Se.reactiveElementVersions??=[]).push("2.1.0");var ut=globalThis,_e=ut.trustedTypes,Pt=_e?_e.createPolicy("lit-html",{createHTML:r=>r}):void 0,pt="$lit$",N=`lit$${Math.random().toFixed(9).slice(2)}$`,ft="?"+N,Yr=`<${ft}>`,W=document,ce=()=>W.createComment(""),le=r=>r===null||typeof r!="object"&&typeof r!="function",dt=Array.isArray,Nt=r=>dt(r)||typeof r?.[Symbol.iterator]=="function",lt=`[
2
+ \f\r]`,ae=/<(?:(!--|\/[^a-zA-Z])|(\/?[a-zA-Z][^>\s]*)|(\/?$))/g,Ot=/-->/g,Mt=/>/g,F=RegExp(`>|${lt}(?:([^\\s"'>=/]+)(${lt}*=${lt}*(?:[^
3
+ \f\r"'\`<>=]|("|')|))|$)`,"g"),jt=/'/g,Ht=/"/g,Rt=/^(?:script|style|textarea|title)$/i,ht=r=>(e,...t)=>({_$litType$:r,strings:e,values:t}),p=ht(1),Ho=ht(2),Lo=ht(3),V=Symbol.for("lit-noChange"),g=Symbol.for("lit-nothing"),Lt=new WeakMap,G=W.createTreeWalker(W,129);function qt(r,e){if(!dt(r)||!r.hasOwnProperty("raw"))throw Error("invalid template strings array");return Pt!==void 0?Pt.createHTML(e):e}var Dt=(r,e)=>{let t=r.length-1,o=[],s,n=e===2?"<svg>":e===3?"<math>":"",i=ae;for(let l=0;l<t;l++){let a=r[l],c,u,f=-1,H=0;for(;H<a.length&&(i.lastIndex=H,u=i.exec(a),u!==null);)H=i.lastIndex,i===ae?u[1]==="!--"?i=Ot:u[1]!==void 0?i=Mt:u[2]!==void 0?(Rt.test(u[2])&&(s=RegExp("</"+u[2],"g")),i=F):u[3]!==void 0&&(i=F):i===F?u[0]===">"?(i=s??ae,f=-1):u[1]===void 0?f=-2:(f=i.lastIndex-u[2].length,c=u[1],i=u[3]===void 0?F:u[3]==='"'?Ht:jt):i===Ht||i===jt?i=F:i===Ot||i===Mt?i=ae:(i=F,s=void 0);let D=i===F&&r[l+1].startsWith("/>")?" ":"";n+=i===ae?a+Yr:f>=0?(o.push(c),a.slice(0,f)+pt+a.slice(f)+N+D):a+N+(f===-2?l:D)}return[qt(r,n+(r[t]||"<?>")+(e===2?"</svg>":e===3?"</math>":"")),o]},ue=class r{constructor({strings:e,_$litType$:t},o){let s;this.parts=[];let n=0,i=0,l=e.length-1,a=this.parts,[c,u]=Dt(e,t);if(this.el=r.createElement(c,o),G.currentNode=this.el.content,t===2||t===3){let f=this.el.content.firstChild;f.replaceWith(...f.childNodes)}for(;(s=G.nextNode())!==null&&a.length<l;){if(s.nodeType===1){if(s.hasAttributes())for(let f of s.getAttributeNames())if(f.endsWith(pt)){let H=u[i++],D=s.getAttribute(f).split(N),ve=/([.?@])?(.*)/.exec(H);a.push({type:1,index:n,name:ve[2],strings:D,ctor:ve[1]==="."?ke:ve[1]==="?"?Ce:ve[1]==="@"?Be:K}),s.removeAttribute(f)}else f.startsWith(N)&&(a.push({type:6,index:n}),s.removeAttribute(f));if(Rt.test(s.tagName)){let f=s.textContent.split(N),H=f.length-1;if(H>0){s.textContent=_e?_e.emptyScript:"";for(let D=0;D<H;D++)s.append(f[D],ce()),G.nextNode(),a.push({type:2,index:++n});s.append(f[H],ce())}}}else if(s.nodeType===8)if(s.data===ft)a.push({type:2,index:n});else{let f=-1;for(;(f=s.data.indexOf(N,f+1))!==-1;)a.push({type:7,index:n}),f+=N.length-1}n++}}static createElement(e,t){let o=W.createElement("template");return o.innerHTML=e,o}};function Q(r,e,t=r,o){if(e===V)return e;let s=o!==void 0?t._$Co?.[o]:t._$Cl,n=le(e)?void 0:e._$litDirective$;return s?.constructor!==n&&(s?._$AO?.(!1),n===void 0?s=void 0:(s=new n(r),s._$AT(r,t,o)),o!==void 0?(t._$Co??=[])[o]=s:t._$Cl=s),s!==void 0&&(e=Q(r,s._$AS(r,e.values),s,o)),e}var Ee=class{constructor(e,t){this._$AV=[],this._$AN=void 0,this._$AD=e,this._$AM=t}get parentNode(){return this._$AM.parentNode}get _$AU(){return this._$AM._$AU}u(e){let{el:{content:t},parts:o}=this._$AD,s=(e?.creationScope??W).importNode(t,!0);G.currentNode=s;let n=G.nextNode(),i=0,l=0,a=o[0];for(;a!==void 0;){if(i===a.index){let c;a.type===2?c=new te(n,n.nextSibling,this,e):a.type===1?c=new a.ctor(n,a.name,a.strings,this,e):a.type===6&&(c=new Te(n,this,e)),this._$AV.push(c),a=o[++l]}i!==a?.index&&(n=G.nextNode(),i++)}return G.currentNode=W,s}p(e){let t=0;for(let o of this._$AV)o!==void 0&&(o.strings!==void 0?(o._$AI(e,o,t),t+=o.strings.length-2):o._$AI(e[t])),t++}},te=class r{get _$AU(){return this._$AM?._$AU??this._$Cv}constructor(e,t,o,s){this.type=2,this._$AH=g,this._$AN=void 0,this._$AA=e,this._$AB=t,this._$AM=o,this.options=s,this._$Cv=s?.isConnected??!0}get parentNode(){let e=this._$AA.parentNode,t=this._$AM;return t!==void 0&&e?.nodeType===11&&(e=t.parentNode),e}get startNode(){return this._$AA}get endNode(){return this._$AB}_$AI(e,t=this){e=Q(this,e,t),le(e)?e===g||e==null||e===""?(this._$AH!==g&&this._$AR(),this._$AH=g):e!==this._$AH&&e!==V&&this._(e):e._$litType$!==void 0?this.$(e):e.nodeType!==void 0?this.T(e):Nt(e)?this.k(e):this._(e)}O(e){return this._$AA.parentNode.insertBefore(e,this._$AB)}T(e){this._$AH!==e&&(this._$AR(),this._$AH=this.O(e))}_(e){this._$AH!==g&&le(this._$AH)?this._$AA.nextSibling.data=e:this.T(W.createTextNode(e)),this._$AH=e}$(e){let{values:t,_$litType$:o}=e,s=typeof o=="number"?this._$AC(e):(o.el===void 0&&(o.el=ue.createElement(qt(o.h,o.h[0]),this.options)),o);if(this._$AH?._$AD===s)this._$AH.p(t);else{let n=new Ee(s,this),i=n.u(this.options);n.p(t),this.T(i),this._$AH=n}}_$AC(e){let t=Lt.get(e.strings);return t===void 0&&Lt.set(e.strings,t=new ue(e)),t}k(e){dt(this._$AH)||(this._$AH=[],this._$AR());let t=this._$AH,o,s=0;for(let n of e)s===t.length?t.push(o=new r(this.O(ce()),this.O(ce()),this,this.options)):o=t[s],o._$AI(n),s++;s<t.length&&(this._$AR(o&&o._$AB.nextSibling,s),t.length=s)}_$AR(e=this._$AA.nextSibling,t){for(this._$AP?.(!1,!0,t);e&&e!==this._$AB;){let o=e.nextSibling;e.remove(),e=o}}setConnected(e){this._$AM===void 0&&(this._$Cv=e,this._$AP?.(e))}},K=class{get tagName(){return this.element.tagName}get _$AU(){return this._$AM._$AU}constructor(e,t,o,s,n){this.type=1,this._$AH=g,this._$AN=void 0,this.element=e,this.name=t,this._$AM=s,this.options=n,o.length>2||o[0]!==""||o[1]!==""?(this._$AH=Array(o.length-1).fill(new String),this.strings=o):this._$AH=g}_$AI(e,t=this,o,s){let n=this.strings,i=!1;if(n===void 0)e=Q(this,e,t,0),i=!le(e)||e!==this._$AH&&e!==V,i&&(this._$AH=e);else{let l=e,a,c;for(e=n[0],a=0;a<n.length-1;a++)c=Q(this,l[o+a],t,a),c===V&&(c=this._$AH[a]),i||=!le(c)||c!==this._$AH[a],c===g?e=g:e!==g&&(e+=(c??"")+n[a+1]),this._$AH[a]=c}i&&!s&&this.j(e)}j(e){e===g?this.element.removeAttribute(this.name):this.element.setAttribute(this.name,e??"")}},ke=class extends K{constructor(){super(...arguments),this.type=3}j(e){this.element[this.name]=e===g?void 0:e}},Ce=class extends K{constructor(){super(...arguments),this.type=4}j(e){this.element.toggleAttribute(this.name,!!e&&e!==g)}},Be=class extends K{constructor(e,t,o,s,n){super(e,t,o,s,n),this.type=5}_$AI(e,t=this){if((e=Q(this,e,t,0)??g)===V)return;let o=this._$AH,s=e===g&&o!==g||e.capture!==o.capture||e.once!==o.once||e.passive!==o.passive,n=e!==g&&(o===g||s);s&&this.element.removeEventListener(this.name,this,o),n&&this.element.addEventListener(this.name,this,e),this._$AH=e}handleEvent(e){typeof this._$AH=="function"?this._$AH.call(this.options?.host??this.element,e):this._$AH.handleEvent(e)}},Te=class{constructor(e,t,o){this.element=e,this.type=6,this._$AN=void 0,this._$AM=t,this.options=o}get _$AU(){return this._$AM._$AU}_$AI(e){Q(this,e)}},Ut={M:pt,P:N,A:ft,C:1,L:Dt,R:Ee,D:Nt,V:Q,I:te,H:K,N:Ce,U:Be,B:ke,F:Te},Xr=ut.litHtmlPolyfillSupport;Xr?.(ue,te),(ut.litHtmlVersions??=[]).push("3.3.0");var y=(r,e,t)=>{let o=t?.renderBefore??e,s=o._$litPart$;if(s===void 0){let n=t?.renderBefore??null;o._$litPart$=s=new te(e.insertBefore(ce(),n),n,void 0,t??{})}return s._$AI(r),s};var mt=globalThis,re=class extends L{constructor(){super(...arguments),this.renderOptions={host:this},this._$Do=void 0}createRenderRoot(){let e=super.createRenderRoot();return this.renderOptions.renderBefore??=e.firstChild,e}update(e){let t=this.render();this.hasUpdated||(this.renderOptions.isConnected=this.isConnected),super.update(e),this._$Do=y(t,this.renderRoot,this.renderOptions)}connectedCallback(){super.connectedCallback(),this._$Do?.setConnected(!0)}disconnectedCallback(){super.disconnectedCallback(),this._$Do?.setConnected(!1)}render(){return V}};re._$litElement$=!0,re.finalized=!0,mt.litElementHydrateSupport?.({LitElement:re});var eo=mt.litElementPolyfillSupport;eo?.({LitElement:re});(mt.litElementVersions??=[]).push("4.2.0");var C={string:(r,e)=>r.getAttribute(e)??void 0,number:(r,e)=>{let t=r.getAttribute(e);return t===null||!t?void 0:Number(t)},boolean:(r,e)=>r.getAttribute(e)!==null},v={string:(r,e,t)=>(t===void 0?r.removeAttribute(e):r.setAttribute(e,t),!0),number:(r,e,t)=>(t===void 0?r.removeAttribute(e):r.setAttribute(e,t.toString()),!0),boolean:(r,e,t)=>(t?r.setAttribute(e,""):r.removeAttribute(e),!0),any:(r,e,t)=>{t==null?r.removeAttribute(e):typeof t=="string"?r.setAttribute(e,t):typeof t=="number"?r.setAttribute(e,t.toString()):typeof t=="boolean"?t===!0?r.setAttribute(e,""):r.removeAttribute(e):console.warn(`invalid attribute "${e}" type is "${typeof t}"`)},entries:(r,e)=>{for(let[t,o]of e)v.any(r,t,o)},record:(r,e)=>v.entries(r,Object.entries(e))};function It(r,e={}){let t=document.createElement(r);return v.record(t,e),t}function Ft(r){let e=document.createDocumentFragment();return y(r,e),e.firstElementChild}function ze(r,e){let t=[];for(let[o,s]of Object.entries(e))if(typeof s=="function")r.addEventListener(o,s),t.push(()=>r.removeEventListener(o,s));else{let[n,i]=s;r.addEventListener(o,i,n),t.push(()=>r.removeEventListener(o,i))}return()=>t.forEach(o=>o())}function Gt(r,e){let t=new MutationObserver(e);return t.observe(r,{attributes:!0}),()=>t.disconnect()}var Pe=class{element;constructor(e){this.element=e}strings=new Proxy({},{get:(e,t)=>C.string(this.element,t),set:(e,t,o)=>v.string(this.element,t,o)});numbers=new Proxy({},{get:(e,t)=>C.number(this.element,t),set:(e,t,o)=>v.number(this.element,t,o)});booleans=new Proxy({},{get:(e,t)=>C.boolean(this.element,t),set:(e,t,o)=>v.boolean(this.element,t,o)})};var Wt=(r,e,t={})=>new Proxy(e,{get:(o,s)=>{switch(e[s]){case String:return C.string(r,s);case Number:return C.number(r,s);case Boolean:return C.boolean(r,s);default:throw new Error(`invalid attribute type for "${s}"`)}},set:(o,s,n)=>{try{switch(t.beforeSet?.(s),e[s]){case String:return v.string(r,s,n);case Number:return v.number(r,s,n);case Boolean:return v.boolean(r,s,n);default:throw new Error(`invalid attribute type for "${s}"`)}}finally{t.afterSet?.(s)}}});function oe(r){let e=new Pe(r);return{strings:e.strings,numbers:e.numbers,booleans:e.booleans,on:t=>Gt(r,t),spec:(t,o={})=>Wt(r,t,o)}}oe.get=C;oe.set=v;function Vt(r){return new gt(r)}var gt=class{tagName;#e=new Map;#t=[];constructor(e){this.tagName=e}attr(e,t=!0){return this.#e.set(e,t),this}attrs(e){for(let[t,o]of Object.entries(e))this.attr(t,o);return this}children(...e){return this.#t.push(...e),this}done(){let e=document.createElement(this.tagName);return v.entries(e,this.#e),e.append(...this.#t),e}};function se(r,e=document){let t=e.querySelector(r);if(!t)throw new Error(`element not found (${r})`);return t}function Oe(r,e=document){return e.querySelector(r)}function Me(r,e=document){return Array.from(e.querySelectorAll(r))}var je=class r{element;#e;constructor(e){this.element=e}in(e){return new r(typeof e=="string"?se(e,this.element):e)}require(e){return se(e,this.element)}maybe(e){return Oe(e,this.element)}all(e){return Me(e,this.element)}render(...e){return y(e,this.element)}get attrs(){return this.#e??=oe(this.element)}events(e){return ze(this.element,e)}};function Qt(r){return r.replace(/([a-zA-Z])(?=[A-Z])/g,"$1-").toLowerCase()}function Kt(r,e={}){let{soft:t=!1,upgrade:o=!0}=e;for(let[s,n]of Object.entries(r)){let i=Qt(s),l=customElements.get(i);t&&l||(customElements.define(i,n),o&&document.querySelectorAll(i).forEach(a=>{a.constructor===HTMLElement&&customElements.upgrade(a)}))}}function w(r,e=document){return se(r,e)}w.in=(r,e=document)=>new je(e).in(r);w.need=se;w.maybe=Oe;w.all=Me;w.el=It;w.elmer=Vt;w.mk=Ft;w.events=ze;w.attrs=oe;w.register=Kt;w.render=(r,...e)=>y(e,r);var Ne={};Et(Ne,{DragAndDrops:()=>yt,Drops:()=>bt,files:()=>io,hasFiles:()=>no,outsideCurrentTarget:()=>he});var B={};Et(B,{clone:()=>pe,equal:()=>to,freeze:()=>ro});function pe(r,e=new Set){if(e.has(r))throw new Error("cannot clone circular reference");let t;return typeof r=="function"||r!==null&&typeof r=="object"?(e.add(r),Array.isArray(r)?t=r.map(o=>pe(o,new Set(e))):r.constructor===Object?t=Object.fromEntries(Object.entries(r).map(([o,s])=>[o,pe(s,new Set(e))])):r instanceof Map?t=new Map(Array.from(r,([o,s])=>[o,pe(s,new Set(e))])):r instanceof Set?t=new Set(Array.from(r,o=>pe(o,new Set(e)))):r instanceof Date?t=new Date(r.getTime()):t=r,e.delete(r)):t=r,t}var fe=Object.freeze({happy:r=>r!=null,sad:r=>r==null,boolean:r=>typeof r=="boolean",number:r=>typeof r=="number",string:r=>typeof r=="string",bigint:r=>typeof r=="bigint",object:r=>typeof r=="object"&&r!==null,array:r=>Array.isArray(r),fn:r=>typeof r=="function",symbol:r=>typeof r=="symbol"});var to=(r,e)=>{function t(o,s,n){if(!fe.object(o)||!fe.object(s))return o===s;if(n.includes(o))throw new Error("forbidden circularity detected in deep equal comparison");let i=[...n,o];if(o instanceof Map&&s instanceof Map){if(o.size!==s.size)return!1;for(let[l,a]of o)if(!s.has(l)||!t(a,s.get(l),i))return!1}else if(o instanceof Set&&s instanceof Set){if(o.size!==s.size)return!1;for(let l of o)if(!Array.from(s).some(a=>t(l,a,i)))return!1}else{let l=Object.keys(o),a=Object.keys(s);if(l.length!==a.length)return!1;for(let c of l)if(!a.includes(c)||!t(o[c],s[c],i))return!1}return!0}return t(r,e,[])};function ro(r){function e(t,o){if(!fe.object(t)||o.includes(t))return t;let s=[...o,t];if(t instanceof Map)for(let n of t.entries())for(let i of n)e(i,s);else if(t instanceof Set)for(let n of t)e(n,s);else if(Array.isArray(t))for(let n of t)e(n,s);else for(let n of Object.values(t))e(n,s);return Object.freeze(t)}return e(r,[])}function Zt(r){if(r.ok)return r.value;let{error:e}=r;throw e instanceof Error?e:typeof e=="string"?new Error(e):new Error("unknown")}function Jt(r){if(r.ok)throw new Error("didn't get needed error");return r.error}function Yt(r,e,t){if(r.has(e))return r.get(e);{let o=t();return r.set(e,o),o}}var He=class{#e=new Set;#t=[];#r=new WeakMap;#s=0;#o=new Set;read(e){this.#t.at(-1)?.add(e)}write(e){let t=this.#r.get(e);if(t){for(let o of t)this.#o.add(o);this.#s===0&&this.#n()}}observe(e){let t=new Set;this.#t.push(t);try{let o=e();return{seen:t,value:o}}finally{this.#t.pop()}}subscribe(e,t){let o=Yt(this.#r,e,()=>new Set);return o.add(t),()=>{o.delete(t),o.size===0&&this.#r.delete(e)}}batch=e=>{this.#s++;try{return e()}finally{this.#s--,this.#s===0&&this.#n()}};#i(e){if(this.#e.has(e))throw new Error("circularity forbidden");this.#e.add(e);try{e()}finally{this.#e.delete(e)}}#n(){for(;this.#o.size>0;){let e=[...this.#o];this.#o.clear();for(let t of e)this.#i(t)}}};var b=globalThis[Symbol.for("e280.tracker.2")]??=new He;function h(r){return function e(){return arguments.length===0?(b.read(e),r):(r=arguments[0],b.write(e),r)}}var wn=b.batch;function er(r){return B.freeze(B.clone(r))}var T=Symbol("optic");var de=class{calculate;#e=!1;#t;constructor(e){this.calculate=e,this.#t=e()}get(){return this.#e&&(this.#e=!1,this.#t=this.calculate()),this.#t}invalidate(){this.#e=!0}};var Le=class r{[T];#e;#t;#r;constructor(e){this[T]=e,this.#e=B.clone(e.getState()),this.#t=new de(()=>B.clone(e.getState())),this.#r=new de(()=>er(e.getState()))}update(){let e=this[T].getState();!B.equal(e,this.#e)&&(this.#t.invalidate(),this.#r.invalidate(),this.#e=B.clone(e),b.write(this))}get state(){return b.read(this),this.#t.get()}get frozen(){return b.read(this),this.#r.get()}mutate(e){return this[T].mutate(e)}lens(e){let t=new r({getState:()=>e(this[T].getState()),mutate:o=>this[T].mutate(s=>o(e(s))),registerLens:this[T].registerLens});return this[T].registerLens(t),t}};function tr(r){if(!r.done)throw new Error("wait not done");return Zt(r)}function rr(r){if(!r.done)throw new Error("wait not done");return Jt(r)}var or=r=>!r.done;var sr=r=>r.done&&r.ok;function nr(r,e){let{pending:t=()=>{},ok:o=()=>{},err:s=()=>{}}=e;return or(r)?t():sr(r)?o(tr(r)):s(rr(r))}function no(r){return!!(r.dataTransfer&&r.dataTransfer.types.includes("Files"))}function io(r){return r.dataTransfer?Array.from(r.dataTransfer.files):[]}function he(r){let e=r.currentTarget,t=r.relatedTarget;return!e||!t||!e.contains(t)}var yt=class{params;$draggy=h(void 0);$droppy=h(void 0);constructor(e){this.params=e}get dragging(){return this.$draggy()}get hovering(){return this.$droppy()}dragzone=e=>({draggable:"true",dragstart:t=>{this.$draggy(e())},dragend:t=>{this.$draggy(void 0),this.$droppy(void 0)}});dropzone=e=>({dragenter:t=>{},dragover:t=>{t.preventDefault(),this.$draggy()?this.$droppy(e()):this.params.backchannelDrops?.dragover(t)},dragleave:t=>{he(t)&&this.$droppy(void 0),this.params.backchannelDrops?.dragleave(t)},drop:t=>{t.preventDefault();let{acceptDrop:o}=this.params,s=this.$draggy(),n=this.$droppy();try{s&&n?o(t,s,n):this.params.backchannelDrops?.drop(t)}finally{this.$draggy(void 0),this.$droppy(void 0)}}})};var bt=class{params;$indicator=h(!1);constructor(e){this.params=e}dragover=e=>{e.preventDefault(),this.$indicator(this.params.predicate(e))};dragleave=e=>{he(e)&&this.$indicator(!1)};drop=e=>{e.preventDefault(),this.$indicator(!1),this.params.predicate(e)&&this.params.acceptDrop(e)}};function me(){let r,e,t=new Promise((s,n)=>{r=s,e=n});function o(s){return s.then(r).catch(e),t}return{promise:t,resolve:r,reject:e,entangle:o}}function Re(r){let e=null;return((...t)=>(e?e.params=t:(e={params:t,deferred:me()},queueMicrotask(()=>{let{params:o,deferred:s}=e;e=null,Promise.resolve(r(...o)).then(s.resolve).catch(s.reject)})),e.deferred.promise))}function ir(r,e,t){if(r.has(e))return r.get(e);{let o=t();return r.set(e,o),o}}function ar(r){let e,t=!1,o=()=>{t=!0,clearTimeout(e)},s=async()=>{t||(await r(o),!t&&(e=setTimeout(s,0)))};return s(),o}var cr=(r=0)=>new Promise(e=>setTimeout(e,r));var qe=d`
4
4
  * {
5
5
  margin: 0;
6
6
  padding: 0;
@@ -14,18 +14,46 @@ var qr=Object.defineProperty;var Et=(r,e)=>{for(var t in e)qr(r,t,{get:e[t],enum
14
14
  ::-webkit-scrollbar-track { background: transparent; }
15
15
  ::-webkit-scrollbar-thumb { background: #888; border-radius: 1em; }
16
16
  ::-webkit-scrollbar-thumb:hover { background: #999; }
17
- `;var Ue=class r extends HTMLElement{static register(){v.register({SlyShadow:r},{soft:!0})}connectedCallback(){this.hasAttribute("view")||this.setAttribute("view","")}};var Ie=class{render;count=0;rendered=me();constructor(e){this.render=e}doneRender(){this.count++,this.rendered.resolve(),this.rendered=me()}},I=class extends Ie{host;shadow;constructor(e,t,o){super(e),this.host=t,this.shadow=o}};var bt=class{#e=[];get scope(){let e=this.#e.at(-1);if(!e)throw new Error("hooks must be called within a render fn");return e}increment(){let e=this.scope,t=e.position++;return{scope:e,position:t}}wrap(e,t){e.position=0,this.#e.push(e);try{return t()}finally{this.#e.pop()}}},k=globalThis[Symbol.for("e280.hooks")]??=new bt;var Z=class{#e=[];clear(){this.#e.forEach(e=>e()),this.#e=[]}observe(e,t){let{seen:o,value:s}=x.observe(e);this.clear();for(let n of o){let i=x.subscribe(n,t);this.#e.push(i)}return s}};function E(r){let{scope:e,position:t}=k.increment();return ir(e.values,t,r)}function N(r){let{scope:e}=k.increment();return E(()=>e.mounts.mount(r))}var qe=class{#e=[];#t=[];mount(e){this.#e.push(e),this.#t.push(e())}unmountAll(){for(let e of this.#t)e();this.#t=[]}remountAll(){for(let e of this.#e)this.#t.push(e())}};var J=class{cx;position=0;values=new Map;mounts=new qe;constructor(e){this.cx=e}};var{I:Ua}=It;var lr=r=>r.strings===void 0;var ur={ATTRIBUTE:1,CHILD:2,PROPERTY:3,BOOLEAN_ATTRIBUTE:4,EVENT:5,ELEMENT:6},Ge=r=>(...e)=>({_$litDirective$:r,values:e}),Fe=class{constructor(e){}get _$AU(){return this._$AM._$AU}_$AT(e,t,o){this._$Ct=e,this._$AM=t,this._$Ci=o}_$AS(e,t){return this.update(e,t)}update(e,t){return this.render(...t)}};var ge=(r,e)=>{let t=r._$AN;if(t===void 0)return!1;for(let o of t)o._$AO?.(e,!1),ge(o,e);return!0},We=r=>{let e,t;do{if((e=r._$AM)===void 0)break;t=e._$AN,t.delete(r),r=e}while(t?.size===0)},pr=r=>{for(let e;e=r._$AM;r=e){let t=e._$AN;if(t===void 0)e._$AN=t=new Set;else if(t.has(r))break;t.add(r),po(e)}};function lo(r){this._$AN!==void 0?(We(this),this._$AM=r,pr(this)):this._$AM=r}function uo(r,e=!1,t=0){let o=this._$AH,s=this._$AN;if(s!==void 0&&s.size!==0)if(e)if(Array.isArray(o))for(let n=t;n<o.length;n++)ge(o[n],!1),We(o[n]);else o!=null&&(ge(o,!1),We(o));else ge(this,r)}var po=r=>{r.type==ur.CHILD&&(r._$AP??=uo,r._$AQ??=lo)},ye=class extends Fe{constructor(){super(...arguments),this._$AN=void 0}_$AT(e,t,o){super._$AT(e,t,o),pr(this),this.isConnected=e._$AU}_$AO(e,t=!0){e!==this.isConnected&&(this.isConnected=e,e?this.reconnected?.():this.disconnected?.()),t&&(ge(this,e),We(this))}setValue(e){if(lr(this._$Ct))this._$Ct._$AI(e,this);else{let t=[...this._$Ct._$AH];t[this._$Ci]=e,this._$Ct._$AI(t,this,0)}}disconnected(){}reconnected(){}};function S(r){return class extends HTMLElement{#e;#t;#r=new Z;#s=this.attachShadow({mode:"open"});constructor(){super();let e=Ne(()=>{if(!this.isConnected)return;let t=this.#o();y(t,this.#e.shadow),this.#e.doneRender()});this.#e=new I(e,this,this.#s),this.#t=new J(this.#e)}#o(){return this.#r.observe(()=>k.wrap(this.#t,()=>r()),this.#e.render)}render(){y(this.#o(),this.#e.shadow),this.#e.doneRender()}connectedCallback(){this.#t.mounts.remountAll(),this.#e.render()}disconnectedCallback(){this.#t.mounts.unmountAll(),this.#r.clear()}}}function Ve(r){return E(()=>new wt(r))}var wt=class{current;constructor(e){this.current=e}};function fr(){let{scope:r}=k.increment();return r.cx}function dr(){let r=fr();if(!(r instanceof I))throw new Error("this hook only works on shadow views (but was called in a light view)");return r}function Y(){return fr().render}function b(){return dr().host}function hr(){return dr().shadow}function mr(r,e){Ae(r,fo(e))}function fo(r){let e=[];if(Array.isArray(r)){let t=new Set(r.flat(1/0).reverse());for(let o of t)e.unshift(ee(o))}else r!==void 0&&e.push(ee(r));return e}function ho(...r){let e=hr();E(()=>mr(e,r))}var m=ho;function Qe(r=""){let e=b();E(()=>e.setAttribute("view",r))}function gr(r){return E(()=>h(r))}function yr(r){let e=Y(),t=Ve(r),o=s=>{let n=typeof s=="function"?s(t.current):s;Object.is(n,t.current)||(t.current=n,e())};return[t.current,o]}function xr(r,e){for(let[t,o]of Object.entries(e))mo(r,t,o)}function mo(r,e,t){let o=r.getAttribute(e),s=go(t);s!==o&&(s===null?r.removeAttribute(e):r.setAttribute(e,s))}function go(r){return typeof r=="string"?r:typeof r=="number"?r.toString():r?"":null}function yo(){Ue.register();let r=document.createElement("sly-shadow"),e=r.attachShadow({mode:"open"});return{host:r,shadow:e}}function X(r){return br(yo,r)}X.setup=r=>(e=>br(r,e));function br(r,e){let t=Ge(class extends ye{#e;#t;#r;#s=new Z;constructor(s){super(s);let{host:n,shadow:i}=r(),l=Ne(()=>{if(!this.#r)throw new Error("cannot render before props");if(!this.isConnected)return;let a=this.#o(this.#r);y(a,this.#e.shadow),this.#e.doneRender()});this.#e=new I(l,n,i),this.#t=new J(this.#e)}#o(s){return this.#r=s,this.#s.observe(()=>k.wrap(this.#t,()=>e(...this.#r)),this.#e.render)}render({props:s,children:n,attrs:i}){let{host:l}=this.#e;return this.isConnected&&(i&&xr(l,i),y(n,this.#e.host),y(this.#o(s),this.#e.shadow),this.#e.doneRender()),l}disconnected(){y(null,this.#e.shadow),y(null,this.#e.host),this.#t.mounts.unmountAll(),this.#s.clear()}reconnected(){this.#t.mounts.remountAll(),this.#e.render()}});function o(...s){return t({props:s})}return o.with=t,o}function P(r,e){return()=>xo({hz:r,frames:e})}var xo=X(({hz:r,frames:e})=>{Qe("loading"),m(Re,bo);let t=gr(0);return N(()=>ar(async()=>{await cr(1e3/r);let o=t()+1;t(o>=e.length?0:o)})),e.at(t())}),bo=d`
17
+ `;var De=class r extends HTMLElement{static register(){w.register({SlyShadow:r},{soft:!0})}connectedCallback(){this.hasAttribute("view")||this.setAttribute("view","")}};var Ue=class{render;count=0;rendered=me();constructor(e){this.render=e}doneRender(){this.count++,this.rendered.resolve(),this.rendered=me()}},U=class extends Ue{host;shadow;constructor(e,t,o){super(e),this.host=t,this.shadow=o}};var xt=class{#e=[];get scope(){let e=this.#e.at(-1);if(!e)throw new Error("hooks must be called within a render fn");return e}increment(){let e=this.scope,t=e.position++;return{scope:e,position:t}}wrap(e,t){e.position=0,this.#e.push(e);try{return t()}finally{this.#e.pop()}}},k=globalThis[Symbol.for("e280.hooks")]??=new xt;var Z=class{#e=[];clear(){this.#e.forEach(e=>e()),this.#e=[]}observe(e,t){let{seen:o,value:s}=b.observe(e);this.clear();for(let n of o){let i=b.subscribe(n,t);this.#e.push(i)}return s}};function E(r){let{scope:e,position:t}=k.increment();return ir(e.values,t,r)}function R(r){let{scope:e}=k.increment();return E(()=>e.mounts.mount(r))}var Ie=class{#e=[];#t=[];mount(e){this.#e.push(e),this.#t.push(e())}unmountAll(){for(let e of this.#t)e();this.#t=[]}remountAll(){for(let e of this.#e)this.#t.push(e())}};var J=class{cx;position=0;values=new Map;mounts=new Ie;constructor(e){this.cx=e}};var{I:Da}=Ut;var lr=r=>r.strings===void 0;var ur={ATTRIBUTE:1,CHILD:2,PROPERTY:3,BOOLEAN_ATTRIBUTE:4,EVENT:5,ELEMENT:6},Ge=r=>(...e)=>({_$litDirective$:r,values:e}),Fe=class{constructor(e){}get _$AU(){return this._$AM._$AU}_$AT(e,t,o){this._$Ct=e,this._$AM=t,this._$Ci=o}_$AS(e,t){return this.update(e,t)}update(e,t){return this.render(...t)}};var ge=(r,e)=>{let t=r._$AN;if(t===void 0)return!1;for(let o of t)o._$AO?.(e,!1),ge(o,e);return!0},We=r=>{let e,t;do{if((e=r._$AM)===void 0)break;t=e._$AN,t.delete(r),r=e}while(t?.size===0)},pr=r=>{for(let e;e=r._$AM;r=e){let t=e._$AN;if(t===void 0)e._$AN=t=new Set;else if(t.has(r))break;t.add(r),po(e)}};function lo(r){this._$AN!==void 0?(We(this),this._$AM=r,pr(this)):this._$AM=r}function uo(r,e=!1,t=0){let o=this._$AH,s=this._$AN;if(s!==void 0&&s.size!==0)if(e)if(Array.isArray(o))for(let n=t;n<o.length;n++)ge(o[n],!1),We(o[n]);else o!=null&&(ge(o,!1),We(o));else ge(this,r)}var po=r=>{r.type==ur.CHILD&&(r._$AP??=uo,r._$AQ??=lo)},ye=class extends Fe{constructor(){super(...arguments),this._$AN=void 0}_$AT(e,t,o){super._$AT(e,t,o),pr(this),this.isConnected=e._$AU}_$AO(e,t=!0){e!==this.isConnected&&(this.isConnected=e,e?this.reconnected?.():this.disconnected?.()),t&&(ge(this,e),We(this))}setValue(e){if(lr(this._$Ct))this._$Ct._$AI(e,this);else{let t=[...this._$Ct._$AH];t[this._$Ci]=e,this._$Ct._$AI(t,this,0)}}disconnected(){}reconnected(){}};function S(r){return class extends HTMLElement{#e;#t;#r=new Z;#s=this.attachShadow({mode:"open"});constructor(){super();let e=Re(()=>{if(!this.isConnected)return;let t=this.#o();y(t,this.#e.shadow),this.#e.doneRender()});this.#e=new U(e,this,this.#s),this.#t=new J(this.#e)}#o(){return this.#r.observe(()=>k.wrap(this.#t,()=>r()),this.#e.render)}render(){y(this.#o(),this.#e.shadow),this.#e.doneRender()}connectedCallback(){this.#t.mounts.remountAll(),this.#e.render()}disconnectedCallback(){this.#t.mounts.unmountAll(),this.#r.clear()}}}function Ve(r){return E(()=>new vt(r))}var vt=class{current;constructor(e){this.current=e}};function fr(){let{scope:r}=k.increment();return r.cx}function dr(){let r=fr();if(!(r instanceof U))throw new Error("this hook only works on shadow views (but was called in a light view)");return r}function Y(){return fr().render}function x(){return dr().host}function hr(){return dr().shadow}function mr(r,e){Ae(r,fo(e))}function fo(r){let e=[];if(Array.isArray(r)){let t=new Set(r.flat(1/0).reverse());for(let o of t)e.unshift(ee(o))}else r!==void 0&&e.push(ee(r));return e}function ho(...r){let e=hr();E(()=>mr(e,r))}var m=ho;function Qe(r=""){let e=x();E(()=>e.setAttribute("view",r))}function gr(r){return E(()=>h(r))}function yr(r){let e=Y(),t=Ve(r),o=s=>{let n=typeof s=="function"?s(t.current):s;Object.is(n,t.current)||(t.current=n,e())};return[t.current,o]}function br(r,e){for(let[t,o]of Object.entries(e))mo(r,t,o)}function mo(r,e,t){let o=r.getAttribute(e),s=go(t);s!==o&&(s===null?r.removeAttribute(e):r.setAttribute(e,s))}function go(r){return typeof r=="string"?r:typeof r=="number"?r.toString():r?"":null}function yo(){De.register();let r=document.createElement("sly-shadow"),e=r.attachShadow({mode:"open"});return{host:r,shadow:e}}function X(r){return xr(yo,r)}X.setup=r=>(e=>xr(r,e));function xr(r,e){let t=Ge(class extends ye{#e;#t;#r;#s=new Z;constructor(s){super(s);let{host:n,shadow:i}=r(),l=Re(()=>{if(!this.#r)throw new Error("cannot render before props");if(!this.isConnected)return;let a=this.#o(this.#r);y(a,this.#e.shadow),this.#e.doneRender()});this.#e=new U(l,n,i),this.#t=new J(this.#e)}#o(s){return this.#r=s,this.#s.observe(()=>k.wrap(this.#t,()=>e(...this.#r)),this.#e.render)}render({props:s,children:n,attrs:i}){let{host:l}=this.#e;return this.isConnected&&(i&&br(l,i),y(n,this.#e.host),y(this.#o(s),this.#e.shadow),this.#e.doneRender()),l}disconnected(){y(null,this.#e.shadow),y(null,this.#e.host),this.#t.mounts.unmountAll(),this.#s.clear()}reconnected(){this.#t.mounts.remountAll(),this.#e.render()}});function o(...s){return t({props:s})}return o.with=t,o}function z(r,e){return()=>bo({hz:r,frames:e})}var bo=X(({hz:r,frames:e})=>{Qe("loading"),m(qe,xo);let t=gr(0);return R(()=>ar(async()=>{await cr(1e3/r);let o=t()+1;t(o>=e.length?0:o)})),e.at(t())}),xo=d`
18
18
  :host {
19
19
  font-family: monospace;
20
20
  white-space: pre;
21
21
  user-select: none;
22
22
  }
23
- `;var O=X(r=>(Qe("error"),m(Re,wo),typeof r=="string"?r:r instanceof Error?p`<strong>${r.name}:</strong> <span>${r.message}</span>`:"error")),wo=d`
23
+ `;var P=X(r=>(Qe("error"),m(qe,vo),typeof r=="string"?r:r instanceof Error?p`<strong>${r.name}:</strong> <span>${r.message}</span>`:"error")),vo=d`
24
24
  :host {
25
25
  font-family: monospace;
26
26
  color: red;
27
27
  }
28
- `;function z(r,e){return(t,o)=>nr(t,{pending:r,err:e,ok:o})}var Fl=z(P(10,[" "," ",". ",".. ","..."," .."," ."]),O);var Kl=z(P(3,["\u{1F30E}","\u{1F30F}","\u{1F30D}"]),O);var eu=z(P(10,["\u{1F312}","\u{1F313}","\u{1F314}","\u{1F315}","\u{1F316}","\u{1F317}","\u{1F318}","\u{1F311}","\u{1F311}","\u{1F311}"]),O);var nu=z(P(16,["|","/","-","\\"]),O);var uu=z(P(20,[":....",":....","::...",".::..","..::.","...::","....:","....:","...::","..::.",".::..","::..."]),O);var M=Object.freeze({eq(r,e){if(r.length!==e.length)return!1;for(let t=0;t<=r.length;t++)if(r.at(t)!==e.at(t))return!1;return!0},random(r){return crypto.getRandomValues(new Uint8Array(r))}});var R=Object.freeze({fromBytes(r){return[...r].map(e=>e.toString(16).padStart(2,"0")).join("")},toBytes(r){if(r.length%2!==0)throw new Error("must have even number of hex characters");let e=new Uint8Array(r.length/2);for(let t=0;t<r.length;t+=2)e[t/2]=parseInt(r.slice(t,t+2),16);return e},random(r=32){return this.fromBytes(M.random(r))},string(r){return R.fromBytes(r)},bytes(r){return R.toBytes(r)}});var vt=58,Ke="123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz",$t=Object.freeze({fromBytes(r){let e=BigInt("0x"+R.fromBytes(r)),t="";for(;e>0;){let o=e%BigInt(vt);e=e/BigInt(vt),t=Ke[Number(o)]+t}for(let o of r)if(o===0)t=Ke[0]+t;else break;return t},toBytes(r){let e=BigInt(0);for(let i of r){let l=Ke.indexOf(i);if(l===-1)throw new Error(`Invalid character '${i}' in base58 string`);e=e*BigInt(vt)+BigInt(l)}let t=e.toString(16);t.length%2!==0&&(t="0"+t);let o=R.toBytes(t),s=0;for(let i of r)if(i===Ke[0])s++;else break;let n=new Uint8Array(s+o.length);return n.set(o,s),n},random(r=32){return this.fromBytes(M.random(r))},string(r){return $t.fromBytes(r)},bytes(r){return $t.toBytes(r)}});var wr=class{lexicon;static lexicons=Object.freeze({base2:{characters:"01"},hex:{characters:"0123456789abcdef"},base36:{characters:"0123456789abcdefghijklmnopqrstuvwxyz"},base58:{characters:"123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"},base62:{characters:"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"},base64url:{negativePrefix:"~",characters:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_"},base64:{characters:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",padding:{character:"=",size:4}}});lookup;negativePrefix;constructor(e){this.lexicon=e,this.lookup=Object.fromEntries([...e.characters].map((t,o)=>[t,o])),this.negativePrefix=e.negativePrefix??"-"}toBytes(e){let t=Math.log2(this.lexicon.characters.length);if(Number.isInteger(t)){let l=0,a=0,c=[];for(let u of e){if(u===this.lexicon.padding?.character)continue;let f=this.lookup[u];if(f===void 0)throw new Error(`Invalid character: ${u}`);for(l=l<<t|f,a+=t;a>=8;)a-=8,c.push(l>>a&255)}return new Uint8Array(c)}let o=0n,s=BigInt(this.lexicon.characters.length),n=!1;e.startsWith(this.negativePrefix)&&(e=e.slice(this.negativePrefix.length),n=!0);for(let l of e){let a=this.lookup[l];if(a===void 0)throw new Error(`Invalid character: ${l}`);o=o*s+BigInt(a)}let i=[];for(;o>0n;)i.unshift(Number(o%256n)),o=o/256n;return new Uint8Array(i)}fromBytes(e){let t=Math.log2(this.lexicon.characters.length);if(Number.isInteger(t)){let i=0,l=0,a="";for(let c of e)for(i=i<<8|c,l+=8;l>=t;){l-=t;let u=i>>l&(1<<t)-1;a+=this.lexicon.characters[u]}if(l>0){let c=i<<t-l&(1<<t)-1;a+=this.lexicon.characters[c]}if(this.lexicon.padding)for(;a.length%this.lexicon.padding.size!==0;)a+=this.lexicon.padding.character;return a}let o=0n;for(let i of e)o=(o<<8n)+BigInt(i);if(o===0n)return this.lexicon.characters[0];let s=BigInt(this.lexicon.characters.length),n="";for(;o>0n;)n=this.lexicon.characters[Number(o%s)]+n,o=o/s;return n}toInteger(e){if(!e)return 0;let t=0n,o=!1,s=BigInt(this.lexicon.characters.length);e.startsWith(this.negativePrefix)&&(e=e.slice(this.negativePrefix.length),o=!0);for(let n of e){let i=this.lookup[n];if(i===void 0)throw new Error(`Invalid character: ${n}`);t=t*s+BigInt(i)}return Number(o?-t:t)}fromInteger(e){e=Math.floor(e);let t=e<0,o=BigInt(t?-e:e);if(o===0n)return this.lexicon.characters[0];let s=BigInt(this.lexicon.characters.length),n="";for(;o>0n;)n=this.lexicon.characters[Number(o%s)]+n,o=o/s;return t?`${this.negativePrefix}${n}`:n}random(e=32){return this.fromBytes(M.random(e))}};var At=Object.freeze({fromBytes(r){return typeof btoa=="function"?btoa(String.fromCharCode(...r)):Buffer.from(r).toString("base64")},toBytes(r){return typeof atob=="function"?Uint8Array.from(atob(r),e=>e.charCodeAt(0)):Uint8Array.from(Buffer.from(r,"base64"))},random(r=32){return this.fromBytes(M.random(r))},string(r){return At.fromBytes(r)},bytes(r){return At.toBytes(r)}});var vr=Object.freeze({fromBytes(r){return new TextDecoder().decode(r)},toBytes(r){return new TextEncoder().encode(r)},string(r){return vr.fromBytes(r)},bytes(r){return vr.toBytes(r)}});var St=Object.freeze({set:r=>r!=null,unset:r=>r==null,boolean:r=>typeof r=="boolean",number:r=>typeof r=="number",string:r=>typeof r=="string",bigint:r=>typeof r=="bigint",object:r=>typeof r=="object"&&r!==null,array:r=>Array.isArray(r),fn:r=>typeof r=="function",symbol:r=>typeof r=="symbol"});function $r(){let r,e,t=new Promise((s,n)=>{r=s,e=n});function o(s){return s.then(r).catch(e),t}return{promise:t,resolve:r,reject:e,entangle:o}}var A=class r extends Map{static require(e,t){let o=e.get(t);if(o===void 0)throw new Error(`required key not found: "${t}"`);return o}static guarantee(e,t,o){let s=e.get(t);return s===void 0&&(s=o(),e.set(t,s)),s}array(){return[...this]}require(e){return r.require(this,e)}guarantee(e,t){return r.guarantee(this,e,t)}};function vo(r){return{map:e=>Ar(r,e),filter:e=>Sr(r,e)}}vo.pipe=Object.freeze({map:r=>(e=>Ar(e,r)),filter:r=>(e=>Sr(e,r))});var Ar=(r,e)=>Object.fromEntries(Object.entries(r).map(([t,o])=>[t,e(o,t)])),Sr=(r,e)=>Object.fromEntries(Object.entries(r).filter(([t,o])=>e(o,t)));function $o(){let r=new Set;function e(n){return r.add(n),()=>{r.delete(n)}}async function t(...n){await Promise.all([...r].map(i=>i(...n)))}async function o(){let{promise:n,resolve:i}=$r(),l=e((...a)=>{i(a),l()});return n}function s(){r.clear()}return e.pub=t,e.sub=e,e.on=e,e.once=o,e.clear=s,t.pub=t,t.sub=e,t.on=e,t.once=o,t.clear=s,[t,e]}function j(r){let e=$o()[1];return r&&e.sub(r),e}var Ze=class{#e=new A;setGroup(e,t){return this.#e.set(e,t),t}getGroup(e){return this.#e.require(e)}};var Je=new Ze;var Ye=class{group;#e=new Le.DragAndDrops({acceptDrop:(e,t,o)=>this.group.move(t,o)});constructor(e){this.group=e}#t=h(void 0);get grabbed(){return this.#e.dragging}get hovering(){return this.#e.hovering??this.#t()}dragenter=(e,t)=>{e.preventDefault(),this.#e.dropzone(()=>t).dragenter(e),this.#t(t)};dragleave=e=>{let t=this.hovering;t&&this.#e.dropzone(()=>t).dragleave(e),this.#t(void 0)};dragstart=(e,t)=>{e.stopPropagation(),this.#e.dragzone(()=>t).dragstart(e)};dragover=(e,t)=>{e.preventDefault(),this.#e.dropzone(()=>t).dragover(e)};dragend=e=>{this.#e.$draggy(void 0),this.#e.$droppy(void 0),this.#t(void 0)};drop=(e,t)=>{e.preventDefault();let o=Array.from(e.dataTransfer?.files||[]);o.length&&this.group.upload(o,t);let s=this.grabbed?.id===this.hovering?.id,n=this.grabbed?.children.some(l=>this.hovering?.id===l.id),i=this.grabbed?.parent?.id===this.hovering?.id;!s&&!n&&!i&&this.#e.dropzone(()=>t).drop(e),this.#t(void 0)};change=(e,t)=>{let o=e.currentTarget,s=Array.from(o.files??[]);s.length&&this.group.upload(s,t)}};var Xe=class{signal=h([]);constructor(e){this.signal([e])}setTrail(e,t){if(e.target!==e.currentTarget)return;let o=[],s=t.kind==="folder"?t:t.parent;for(;s;)o.unshift(s),s=s.parent;this.signal(o)}get currentFolder(){return this.signal().at(-1)?.children??[]}};var et=class{config;trail;dropzone=new Ye(this);searchText=h("");selectedFilter=h("");selectedSort=h("");on={newFolder:j(),move:j(),delete:j(),rename:j(),upload:j(),search:j(),refresh:j()};constructor(e){this.config=e,this.selectedFilter(e.defaultFilter),this.selectedSort(e.defaultSort),this.trail=new Xe(e.root)}get permissions(){return this.config.permissions}getFilterFn(e){return this.config.filters.get(e)??(()=>!0)}getSearchFn(e){let t=e.trim().toLowerCase().split(/\s+/);return o=>this.config.search(t,o)}getSortFn(e){return this.config.sorts?.get(e)??(()=>0)}sort(e){let t=this.getSortFn(this.selectedSort());return[...e].sort(t)}matches(e){let t=this.getFilterFn(this.selectedFilter()),o=this.getSearchFn(this.searchText());return t(e)&&o(e)}move(e,t){if(!this.permissions(e).move)throw new Error("move permission not granted");e.detach(),t.attach(e),this.on.move.pub({item:e,target:t})}delete(e){if(!this.permissions(e).delete)throw new Error("delete permission not granted");let t=[...e.crawl()].map(([o])=>o);return e.destroy(),this.on.delete.pub({items:t})}rename(e,t){if(!this.permissions(e).rename)throw new Error("rename permission not granted");this.on.rename.pub({item:e,newName:t})}upload(e,t){if(!this.permissions(t).upload)throw new Error("upload permission not granted");return this.on.upload.pub({files:e,target:t})}addFolder(e){if(!this.permissions(e).newFolder)throw new Error("add folder permission not granted");this.on.newFolder.pub({parent:e})}components=()=>this.components};var xe;(function(r){r.rename="rename",r.move="move",r.delete="delete",r.refresh="refresh",r.newFolder="newFolder",r.search="search",r.upload="upload"})(xe||(xe={}));var Ao=Object.values(xe);function _t(r,e={}){let t={};for(let o of Ao)t[o]=o in e?e[o]:r;return t}var _r={all:_t(!0),readOnly:_t(!1,{[xe.refresh]:!0,[xe.search]:!0}),none:_t(!1)};var tt=class{taxonomy;onChange=j();#e=new A;constructor(e){this.taxonomy=e}getSpecimen(e){return this.#e.require(e)}setSpecimen(e,t,o){this.#e.set(e,[t,o]),this.onChange.pub()}query(e){let[t,o]=this.getSpecimen(e),s=this.taxonomy.taxon(t);return{kind:t,taxon:s,specimen:o}}};var rt=class{#e=new A;constructor(e){for(let[t,o]of Object.entries(e))this.#e.set(t,o)}taxon(e){return this.#e.require(e)}};var ot=class{#e=new A;#t=new A;has(e){return this.#e.has(e)}getChildren(e){return this.#e.require(e)}getParent(e){return this.#t.get(e)}establishRoot(e){this.#e.set(e,new Set)}attach(e,...t){let o=this.getChildren(e);for(let s of t){if(this.getParent(s))throw new Error("child already has parent");o.add(s),this.#t.set(s,e),this.#e.set(s,new Set)}}detach(e){if(!this.has(e))return;let t=this.getParent(e);t&&(this.getChildren(t).delete(e),this.#t.delete(e))}destroy(e){this.detach(e);let t=[...this.crawl(e)];for(let[o]of t)this.#e.delete(o),this.#t.delete(o)}*crawl(e,t=()=>!0){let o=[[e,[]]],s=new Set;for(;o.length;){let[n,i]=o.shift();if(!(s.has(n)||!t(n,i))){s.add(n),yield[n,i];for(let l of this.getChildren(n))o.push([l,[...i,n]])}}}};var st=class{codex;id;signal=h(this);constructor(e,t){this.codex=e,this.id=t}get kind(){return this.codex.clade.query(this.id).kind}isKind(e){return e===this.kind}get taxon(){return this.codex.clade.query(this.id).taxon}get specimen(){return this.codex.clade.query(this.id).specimen}get parent(){let e=this.codex.hierarchy.getParent(this.id);return e?this.codex.require(e):void 0}get children(){return[...this.codex.hierarchy.getChildren(this.id)].map(e=>this.codex.require(e))}attach(...e){return this.codex.hierarchy.attach(this.id,...e.map(t=>t.id)),this.signal(this),this}detach(){this.codex.hierarchy.detach(this.id),this.signal(this)}create(e,t){let o=this.codex.create(e,t);return this.attach(o),o}destroy(){this.codex.hierarchy.destroy(this.id),this.signal(this)}*crawl(e=()=>!0){let t=this.codex.hierarchy.crawl(this.id,(o,s)=>e(this.codex.require(o),s.map(n=>this.codex.require(n))));for(let[o,s]of t)yield[this.codex.require(o),s.map(n=>this.codex.require(n))]}};function Er(){return R.random()}var nt=class{clade;hierarchy;static setup(e){let t=new rt(e),o=new tt(t),s=new ot;return new this(o,s)}#e=new A;constructor(e,t){this.clade=e,this.hierarchy=t}create(e,t){let o=Er();this.clade.setSpecimen(o,e,t);let s=new st(this,o);return this.#e.set(o,s),s.signal()}root(e){return this.hierarchy.establishRoot(e.id),e.signal()}require(e){return this.#e.require(e).signal()}};var it=class r extends et{static config=()=>{let e=new A().set("audio",p`<sl-icon name=music-note-beamed></sl-icon>`).set("video",p`<sl-icon name=film></sl-icon>`).set("image",p`<sl-icon name=image></sl-icon>`).set("other",p`<sl-icon name=file-earmark></sl-icon>`),t=new Map().set("all",()=>!0).set("video",a=>a.isKind("folder")||a.isKind("file")&&a.specimen.format==="video").set("audio",a=>a.isKind("folder")||a.isKind("file")&&a.specimen.format==="audio"),o=new Map().set("label",(a,c)=>a.specimen.label.localeCompare(c.specimen.label)).set("format",(a,c)=>a.isKind("file")&&c.isKind("file")?a.specimen.format.localeCompare(c.specimen.format):a.isKind("file")?-1:c.isKind("file")?1:0),s=(a,c)=>{let u=a.join(" ").trim().toLowerCase();return u===""?!0:c.kind==="folder"?c.children.some(f=>s(a,f)):c.specimen.label.toLowerCase().includes(u)},n=nt.setup({folder:{icon:p`<sl-icon name="folder"></sl-icon>`},file:{icon:p`<sl-icon name="file"></sl-icon>`}}),i=n.root(n.create("folder",{label:"project"})),l=(a,c)=>a.isKind("file")?e.require(a.specimen.format):c?p`<sl-icon name="folder2-open"></sl-icon>`:a.taxon.icon;return{codex:n,root:i,sorts:o,filters:t,defaultFilter:"all",defaultSort:"label",search:(a,c)=>a.some(u=>c.kind.includes(u)||c.id.includes(u)||c.specimen.label.includes(u))||s(a,c),renderIcon:l,renderLabel:a=>a.specimen.label,renderPreview:a=>a.isKind("file")&&a.specimen.previewUrl?p`<img src=${a.specimen.previewUrl}>`:l(a,!1),permissions:a=>_r.all}};constructor(){super(r.config())}};var $=d`@layer theme, view; @layer theme {
28
+ `;function O(r,e){return(t,o)=>nr(t,{pending:r,err:e,ok:o})}var Fl=O(z(10,[" "," ",". ",".. ","..."," .."," ."]),P);var Kl=O(z(3,["\u{1F30E}","\u{1F30F}","\u{1F30D}"]),P);var eu=O(z(10,["\u{1F312}","\u{1F313}","\u{1F314}","\u{1F315}","\u{1F316}","\u{1F317}","\u{1F318}","\u{1F311}","\u{1F311}","\u{1F311}"]),P);var nu=O(z(16,["|","/","-","\\"]),P);var uu=O(z(20,[":....",":....","::...",".::..","..::.","...::","....:","....:","...::","..::.",".::..","::..."]),P);var M=Object.freeze({eq(r,e){if(r.length!==e.length)return!1;for(let t=0;t<=r.length;t++)if(r.at(t)!==e.at(t))return!1;return!0},random(r){return crypto.getRandomValues(new Uint8Array(r))}});var q=Object.freeze({fromBytes(r){return[...r].map(e=>e.toString(16).padStart(2,"0")).join("")},toBytes(r){if(r.length%2!==0)throw new Error("must have even number of hex characters");let e=new Uint8Array(r.length/2);for(let t=0;t<r.length;t+=2)e[t/2]=parseInt(r.slice(t,t+2),16);return e},random(r=32){return this.fromBytes(M.random(r))},string(r){return q.fromBytes(r)},bytes(r){return q.toBytes(r)}});var wt=58,Ke="123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz",$t=Object.freeze({fromBytes(r){let e=BigInt("0x"+q.fromBytes(r)),t="";for(;e>0;){let o=e%BigInt(wt);e=e/BigInt(wt),t=Ke[Number(o)]+t}for(let o of r)if(o===0)t=Ke[0]+t;else break;return t},toBytes(r){let e=BigInt(0);for(let i of r){let l=Ke.indexOf(i);if(l===-1)throw new Error(`Invalid character '${i}' in base58 string`);e=e*BigInt(wt)+BigInt(l)}let t=e.toString(16);t.length%2!==0&&(t="0"+t);let o=q.toBytes(t),s=0;for(let i of r)if(i===Ke[0])s++;else break;let n=new Uint8Array(s+o.length);return n.set(o,s),n},random(r=32){return this.fromBytes(M.random(r))},string(r){return $t.fromBytes(r)},bytes(r){return $t.toBytes(r)}});var vr=class{lexicon;static lexicons=Object.freeze({base2:{characters:"01"},hex:{characters:"0123456789abcdef"},base36:{characters:"0123456789abcdefghijklmnopqrstuvwxyz"},base58:{characters:"123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"},base62:{characters:"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"},base64url:{negativePrefix:"~",characters:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_"},base64:{characters:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",padding:{character:"=",size:4}}});lookup;negativePrefix;constructor(e){this.lexicon=e,this.lookup=Object.fromEntries([...e.characters].map((t,o)=>[t,o])),this.negativePrefix=e.negativePrefix??"-"}toBytes(e){let t=Math.log2(this.lexicon.characters.length);if(Number.isInteger(t)){let l=0,a=0,c=[];for(let u of e){if(u===this.lexicon.padding?.character)continue;let f=this.lookup[u];if(f===void 0)throw new Error(`Invalid character: ${u}`);for(l=l<<t|f,a+=t;a>=8;)a-=8,c.push(l>>a&255)}return new Uint8Array(c)}let o=0n,s=BigInt(this.lexicon.characters.length),n=!1;e.startsWith(this.negativePrefix)&&(e=e.slice(this.negativePrefix.length),n=!0);for(let l of e){let a=this.lookup[l];if(a===void 0)throw new Error(`Invalid character: ${l}`);o=o*s+BigInt(a)}let i=[];for(;o>0n;)i.unshift(Number(o%256n)),o=o/256n;return new Uint8Array(i)}fromBytes(e){let t=Math.log2(this.lexicon.characters.length);if(Number.isInteger(t)){let i=0,l=0,a="";for(let c of e)for(i=i<<8|c,l+=8;l>=t;){l-=t;let u=i>>l&(1<<t)-1;a+=this.lexicon.characters[u]}if(l>0){let c=i<<t-l&(1<<t)-1;a+=this.lexicon.characters[c]}if(this.lexicon.padding)for(;a.length%this.lexicon.padding.size!==0;)a+=this.lexicon.padding.character;return a}let o=0n;for(let i of e)o=(o<<8n)+BigInt(i);if(o===0n)return this.lexicon.characters[0];let s=BigInt(this.lexicon.characters.length),n="";for(;o>0n;)n=this.lexicon.characters[Number(o%s)]+n,o=o/s;return n}toInteger(e){if(!e)return 0;let t=0n,o=!1,s=BigInt(this.lexicon.characters.length);e.startsWith(this.negativePrefix)&&(e=e.slice(this.negativePrefix.length),o=!0);for(let n of e){let i=this.lookup[n];if(i===void 0)throw new Error(`Invalid character: ${n}`);t=t*s+BigInt(i)}return Number(o?-t:t)}fromInteger(e){e=Math.floor(e);let t=e<0,o=BigInt(t?-e:e);if(o===0n)return this.lexicon.characters[0];let s=BigInt(this.lexicon.characters.length),n="";for(;o>0n;)n=this.lexicon.characters[Number(o%s)]+n,o=o/s;return t?`${this.negativePrefix}${n}`:n}random(e=32){return this.fromBytes(M.random(e))}};var At=Object.freeze({fromBytes(r){return typeof btoa=="function"?btoa(String.fromCharCode(...r)):Buffer.from(r).toString("base64")},toBytes(r){return typeof atob=="function"?Uint8Array.from(atob(r),e=>e.charCodeAt(0)):Uint8Array.from(Buffer.from(r,"base64"))},random(r=32){return this.fromBytes(M.random(r))},string(r){return At.fromBytes(r)},bytes(r){return At.toBytes(r)}});var wr=Object.freeze({fromBytes(r){return new TextDecoder().decode(r)},toBytes(r){return new TextEncoder().encode(r)},string(r){return wr.fromBytes(r)},bytes(r){return wr.toBytes(r)}});var St=Object.freeze({set:r=>r!=null,unset:r=>r==null,boolean:r=>typeof r=="boolean",number:r=>typeof r=="number",string:r=>typeof r=="string",bigint:r=>typeof r=="bigint",object:r=>typeof r=="object"&&r!==null,array:r=>Array.isArray(r),fn:r=>typeof r=="function",symbol:r=>typeof r=="symbol"});function $r(){let r,e,t=new Promise((s,n)=>{r=s,e=n});function o(s){return s.then(r).catch(e),t}return{promise:t,resolve:r,reject:e,entangle:o}}var A=class r extends Map{static require(e,t){let o=e.get(t);if(o===void 0)throw new Error(`required key not found: "${t}"`);return o}static guarantee(e,t,o){let s=e.get(t);return s===void 0&&(s=o(),e.set(t,s)),s}array(){return[...this]}require(e){return r.require(this,e)}guarantee(e,t){return r.guarantee(this,e,t)}};function wo(r){return{map:e=>Ar(r,e),filter:e=>Sr(r,e)}}wo.pipe=Object.freeze({map:r=>(e=>Ar(e,r)),filter:r=>(e=>Sr(e,r))});var Ar=(r,e)=>Object.fromEntries(Object.entries(r).map(([t,o])=>[t,e(o,t)])),Sr=(r,e)=>Object.fromEntries(Object.entries(r).filter(([t,o])=>e(o,t)));function $o(){let r=new Set;function e(n){return r.add(n),()=>{r.delete(n)}}async function t(...n){await Promise.all([...r].map(i=>i(...n)))}async function o(){let{promise:n,resolve:i}=$r(),l=e((...a)=>{i(a),l()});return n}function s(){r.clear()}return e.pub=t,e.sub=e,e.on=e,e.once=o,e.clear=s,t.pub=t,t.sub=e,t.on=e,t.once=o,t.clear=s,[t,e]}function j(r){let e=$o()[1];return r&&e.sub(r),e}var Ze=class{#e=new A;setGroup(e,t){return this.#e.set(e,t),t}getGroup(e){return this.#e.require(e)}};var Je=new Ze;var Ye=class{group;#e=new Ne.DragAndDrops({acceptDrop:(e,t,o)=>this.group.move(t,o)});constructor(e){this.group=e}#t=h(void 0);get grabbed(){return this.#e.dragging}get hovering(){return this.#e.hovering??this.#t()}dragenter=(e,t)=>{e.preventDefault(),this.#e.dropzone(()=>t).dragenter(e),this.#t(t)};dragleave=e=>{let t=this.hovering;t&&this.#e.dropzone(()=>t).dragleave(e),this.#t(void 0)};dragstart=(e,t)=>{e.stopPropagation(),this.#e.dragzone(()=>t).dragstart(e)};dragover=(e,t)=>{e.preventDefault(),this.#e.dropzone(()=>t).dragover(e)};dragend=e=>{this.#e.$draggy(void 0),this.#e.$droppy(void 0),this.#t(void 0)};drop=(e,t)=>{e.preventDefault();let o=Array.from(e.dataTransfer?.files||[]);o.length&&this.group.upload(o,t);let s=this.grabbed?.id===this.hovering?.id,n=this.grabbed?.children.some(l=>this.hovering?.id===l.id),i=this.grabbed?.parent?.id===this.hovering?.id;!s&&!n&&!i&&this.#e.dropzone(()=>t).drop(e),this.#t(void 0)};change=(e,t)=>{let o=e.currentTarget,s=Array.from(o.files??[]);s.length&&this.group.upload(s,t)}};var Xe=class{signal=h([]);constructor(e){this.signal([e])}setTrail(e,t){if(e.target!==e.currentTarget)return;let o=[],s=t.kind==="folder"?t:t.parent;for(;s;)o.unshift(s),s=s.parent;this.signal(o)}get currentFolder(){return this.signal().at(-1)?.children??[]}};var et=class{config;trail;dropzone=new Ye(this);searchText=h("");selectedFilter=h("");selectedSort=h("");on={newFolder:j(),move:j(),delete:j(),rename:j(),upload:j(),search:j(),refresh:j()};constructor(e){this.config=e,this.selectedFilter(e.defaultFilter),this.selectedSort(e.defaultSort),this.trail=new Xe(e.root)}get permissions(){return this.config.permissions}getFilterFn(e){return this.config.filters.get(e)??(()=>!0)}getSearchFn(e){let t=e.trim().toLowerCase().split(/\s+/);return o=>this.config.search(t,o)}getSortFn(e){return this.config.sorts?.get(e)??(()=>0)}sort(e){let t=this.getSortFn(this.selectedSort());return[...e].sort(t)}matches(e){let t=this.getFilterFn(this.selectedFilter()),o=this.getSearchFn(this.searchText());return t(e)&&o(e)}move(e,t){if(!this.permissions(e).move)throw new Error("move permission not granted");e.detach(),t.attach(e),this.on.move.pub({item:e,target:t})}delete(e){if(!this.permissions(e).delete)throw new Error("delete permission not granted");let t=[...e.crawl()].map(([o])=>o);return e.destroy(),this.on.delete.pub({items:t})}rename(e,t){if(!this.permissions(e).rename)throw new Error("rename permission not granted");this.on.rename.pub({item:e,newName:t})}upload(e,t){if(!this.permissions(t).upload)throw new Error("upload permission not granted");return this.on.upload.pub({files:e,target:t})}addFolder(e){if(!this.permissions(e).newFolder)throw new Error("add folder permission not granted");this.on.newFolder.pub({parent:e})}components=()=>this.components};var be;(function(r){r.rename="rename",r.move="move",r.delete="delete",r.refresh="refresh",r.newFolder="newFolder",r.search="search",r.upload="upload"})(be||(be={}));var Ao=Object.values(be);function _t(r,e={}){let t={};for(let o of Ao)t[o]=o in e?e[o]:r;return t}var _r={all:_t(!0),readOnly:_t(!1,{[be.refresh]:!0,[be.search]:!0}),none:_t(!1)};var tt=class{taxonomy;onChange=j();#e=new A;constructor(e){this.taxonomy=e}getSpecimen(e){return this.#e.require(e)}setSpecimen(e,t,o){this.#e.set(e,[t,o]),this.onChange.pub()}query(e){let[t,o]=this.getSpecimen(e),s=this.taxonomy.taxon(t);return{kind:t,taxon:s,specimen:o}}};var rt=class{#e=new A;constructor(e){for(let[t,o]of Object.entries(e))this.#e.set(t,o)}taxon(e){return this.#e.require(e)}};var ot=class{#e=new A;#t=new A;has(e){return this.#e.has(e)}getChildren(e){return this.#e.require(e)}getParent(e){return this.#t.get(e)}establishRoot(e){this.#e.set(e,new Set)}attach(e,...t){let o=this.getChildren(e);for(let s of t){if(this.getParent(s))throw new Error("child already has parent");o.add(s),this.#t.set(s,e),this.#e.set(s,new Set)}}detach(e){if(!this.has(e))return;let t=this.getParent(e);t&&(this.getChildren(t).delete(e),this.#t.delete(e))}destroy(e){this.detach(e);let t=[...this.crawl(e)];for(let[o]of t)this.#e.delete(o),this.#t.delete(o)}*crawl(e,t=()=>!0){let o=[[e,[]]],s=new Set;for(;o.length;){let[n,i]=o.shift();if(!(s.has(n)||!t(n,i))){s.add(n),yield[n,i];for(let l of this.getChildren(n))o.push([l,[...i,n]])}}}};var st=class{codex;id;signal=h(this);constructor(e,t){this.codex=e,this.id=t}get kind(){return this.codex.clade.query(this.id).kind}isKind(e){return e===this.kind}get taxon(){return this.codex.clade.query(this.id).taxon}get specimen(){return this.codex.clade.query(this.id).specimen}get parent(){let e=this.codex.hierarchy.getParent(this.id);return e?this.codex.require(e):void 0}get children(){return[...this.codex.hierarchy.getChildren(this.id)].map(e=>this.codex.require(e))}attach(...e){return this.codex.hierarchy.attach(this.id,...e.map(t=>t.id)),this.signal(this),this}detach(){this.codex.hierarchy.detach(this.id),this.signal(this)}create(e,t){let o=this.codex.create(e,t);return this.attach(o),o}destroy(){this.codex.hierarchy.destroy(this.id),this.signal(this)}*crawl(e=()=>!0){let t=this.codex.hierarchy.crawl(this.id,(o,s)=>e(this.codex.require(o),s.map(n=>this.codex.require(n))));for(let[o,s]of t)yield[this.codex.require(o),s.map(n=>this.codex.require(n))]}};function Er(){return q.random()}var nt=class{clade;hierarchy;static setup(e){let t=new rt(e),o=new tt(t),s=new ot;return new this(o,s)}#e=new A;constructor(e,t){this.clade=e,this.hierarchy=t}create(e,t){let o=Er();this.clade.setSpecimen(o,e,t);let s=new st(this,o);return this.#e.set(o,s),s.signal()}root(e){return this.hierarchy.establishRoot(e.id),e.signal()}require(e){return this.#e.require(e).signal()}};var it=class r extends et{static config=()=>{let e=new A().set("audio",p`<sl-icon name=music-note-beamed></sl-icon>`).set("video",p`<sl-icon name=film></sl-icon>`).set("image",p`<sl-icon name=image></sl-icon>`).set("other",p`<sl-icon name=file-earmark></sl-icon>`),t=new Map().set("all",()=>!0).set("video",a=>a.isKind("folder")||a.isKind("file")&&a.specimen.format==="video").set("audio",a=>a.isKind("folder")||a.isKind("file")&&a.specimen.format==="audio"),o=new Map().set("label",(a,c)=>a.specimen.label.localeCompare(c.specimen.label)).set("format",(a,c)=>a.isKind("file")&&c.isKind("file")?a.specimen.format.localeCompare(c.specimen.format):a.isKind("file")?-1:c.isKind("file")?1:0),s=(a,c)=>{let u=a.join(" ").trim().toLowerCase();return u===""?!0:c.kind==="folder"?c.children.some(f=>s(a,f)):c.specimen.label.toLowerCase().includes(u)},n=nt.setup({folder:{icon:p`<sl-icon name="folder"></sl-icon>`},file:{icon:p`<sl-icon name="file"></sl-icon>`}}),i=n.root(n.create("folder",{label:"project"})),l=(a,c)=>a.isKind("file")?e.require(a.specimen.format):c?p`<sl-icon name="folder2-open"></sl-icon>`:a.taxon.icon;return{codex:n,root:i,sorts:o,filters:t,defaultFilter:"all",defaultSort:"label",search:(a,c)=>a.some(u=>c.kind.includes(u)||c.id.includes(u)||c.specimen.label.includes(u))||s(a,c),renderIcon:l,renderLabel:a=>a.specimen.label,renderPreview:a=>a.isKind("file")&&a.specimen.previewUrl?p`<img src=${a.specimen.previewUrl}>`:l(a,!1),permissions:a=>_r.all}};constructor(){super(r.config())}};var $=d`@layer theme, view; @layer theme {
29
+
30
+ :host {
31
+ --surface: var(--quay-surface, #0f0f11);
32
+ --surface-active: var(--quay-surface-hover, var(--sl-color-neutral-0, #fff));
33
+ --surface-hover: var(--quay-surface-hover, var(--sl-color-gray-50, #f8f9fa));
34
+ --surface-selected: var(--quay-surface-selected, rgb(0 0 0 / 40%));
35
+ --border: var(--quay-border, #0d0d0e);
36
+ --border-muted: var(--quay-border, var(--sl-color-neutral-300, #d0d0d0));
37
+ --border-width: 1px;
38
+ --text: var(--quay-text, var(--sl-color-neutral-800, #333));
39
+ --text-muted: var(--quay-muted, var(--sl-color-neutral-700, #555));
40
+ --text-subtle: var(--quay-muted, var(--sl-color-neutral-500, #777));
41
+ --icon: var(--quay-muted, var(--sl-color-neutral-300, #d0d0d0));
42
+ --primary: var(--quay-accent, var(--sl-color-primary-500, #0ea5e9));
43
+ --primary-soft: color-mix(in srgb, var(--primary), white 65%);
44
+ --radius: var(--quay-radius, var(--sl-border-radius-medium, 6px));
45
+ --radius-small: var(--sl-border-radius-small, var(--radius));
46
+ --space-xs: var(--sl-spacing-2x-small, 0.3em);
47
+ --space-sm: var(--sl-spacing-x-small, 0.5rem);
48
+ --space-md: var(--sl-spacing-medium, 1rem);
49
+ --font-size-xs: var(--sl-font-size-x-small, 0.75rem);
50
+ --font-size-sm: var(--sl-font-size-small, 0.85rem);
51
+ --control-height: 30px;
52
+ --control-width: 40px;
53
+ --icon-size: 2rem;
54
+ --z-overlay: 999;
55
+ --transition: 0.2s ease;
56
+ }
29
57
 
30
58
  * {
31
59
  margin: 0;
@@ -33,18 +61,54 @@ var qr=Object.defineProperty;var Et=(r,e)=>{for(var t in e)qr(r,t,{get:e[t],enum
33
61
  box-sizing: border-box;
34
62
  }
35
63
 
36
- }`;function kr(r){for(let e=r;e;e=e.parentElement){let t=e.getAttribute("group");if(t)return t}return"default"}function _(r){let e=kr(r);return Je.getGroup(e)}var Cr=S(()=>{let r=b(),e=_(r);return m($,d`
64
+ sl-button::part(base) {
65
+ border-color: var(--border);
66
+ color: var(--text-muted);
67
+ }
68
+
69
+ sl-button:hover::part(base),
70
+ sl-button:focus-within::part(base),
71
+ sl-button:active::part(base) {
72
+ background: var(--surface-hover);
73
+ border-color: var(--border);
74
+ color: var(--text);
75
+ }
76
+
77
+ sl-menu-item::part(base) {
78
+ color: var(--text-muted);
79
+ }
80
+
81
+ sl-menu-item:hover::part(base),
82
+ sl-menu-item:focus-visible::part(base) {
83
+ background: var(--surface-hover);
84
+ color: var(--text);
85
+ }
86
+
87
+ sl-input::part(base) {
88
+ border-color: var(--border);
89
+ color: var(--text);
90
+ }
91
+
92
+ sl-input:hover::part(base),
93
+ sl-input:focus-within::part(base) {
94
+ background: var(--surface);
95
+ border-color: var(--border);
96
+ box-shadow: 0 0 0 1px var(--surface-hover);
97
+ color: var(--text);
98
+ }
99
+
100
+ }`;function kr(r){for(let e=r;e;e=e.parentElement){let t=e.getAttribute("group");if(t)return t}return"default"}function _(r){let e=kr(r);return Je.getGroup(e)}var Cr=S(()=>{let r=x(),e=_(r);return m($,d`
37
101
  sl-button sl-icon {
38
- font-size: 14px;
102
+ font-size: var(--font-size-sm);
39
103
  }
40
104
 
41
105
  sl-menu {
42
- margin-top: 0.3em;
106
+ margin-top: var(--space-xs);
43
107
 
44
108
  .item {
45
109
  display: flex;
46
110
  align-items: center;
47
- gap: 0.5em;
111
+ gap: var(--space-sm);
48
112
  }
49
113
  }
50
114
  `),p`
@@ -64,14 +128,14 @@ var qr=Object.defineProperty;var Et=(r,e)=>{for(var t in e)qr(r,t,{get:e[t],enum
64
128
  `)}
65
129
  </sl-menu>
66
130
  </sl-dropdown>
67
- </div>`});var Br=S(()=>{let r=b(),e=_(r);return m($,d`
131
+ </div>`});var Br=S(()=>{let r=x(),e=_(r);return m($,d`
68
132
  sl-menu {
69
- margin-top: 0.3em;
133
+ margin-top: var(--space-xs);
70
134
 
71
135
  .item {
72
136
  display: flex;
73
137
  align-items: center;
74
- gap: 0.5em;
138
+ gap: var(--space-sm);
75
139
  }
76
140
  }
77
141
  `),p`
@@ -96,38 +160,39 @@ var qr=Object.defineProperty;var Et=(r,e)=>{for(var t in e)qr(r,t,{get:e[t],enum
96
160
  .toolbar {
97
161
  display: flex;
98
162
  justify-content: flex-end;
99
- padding: 0.5rem;
163
+ padding: var(--space-sm);
100
164
 
101
165
  sl-button {
102
- background: #0F0F11;
103
- border-radius: 5px;
166
+ background: var(--surface);
167
+ border-radius: var(--radius-small);
104
168
 
105
169
  &[data-active=true] {
106
- background: var(--sl-color-neutral-0);
170
+ background: var(--surface-active);
107
171
  }
108
172
 
109
173
  &::part(base) {
110
174
  display: flex;
111
175
  align-items: center;
112
- height: 30px;
176
+ height: var(--control-height);
177
+ border-radius: var(--radius-small);
113
178
  }
114
179
 
115
180
  &::part(label) {
116
181
  display: flex;
117
- width: 40px;
182
+ width: var(--control-width);
118
183
  }
119
184
  }
120
185
  }
121
186
 
122
187
  .tiles,
123
188
  .details {
124
- padding: 0.5rem;
189
+ padding: var(--space-sm);
125
190
  }
126
191
 
127
192
  .tiles {
128
193
  display: flex;
129
194
  flex-wrap: wrap;
130
- row-gap: 1em;
195
+ row-gap: var(--space-md);
131
196
  width: 100%;
132
197
 
133
198
  .item {
@@ -141,11 +206,11 @@ var qr=Object.defineProperty;var Et=(r,e)=>{for(var t in e)qr(r,t,{get:e[t],enum
141
206
  display: flex;
142
207
  align-items: center;
143
208
  justify-content: center;
144
- width: 100px;
145
- height: 60px;
146
- border: 2px solid #0D0D0E;
147
- border-radius: 5px;
148
- background: #0F0F11;
209
+ width: var(--quay-browser-thumb-width, 100px);
210
+ height: var(--quay-browser-thumb-height, 60px);
211
+ border: var(--border-width) solid var(--border);
212
+ border-radius: var(--radius-small);
213
+ background: var(--surface);
149
214
  pointer-events: none;
150
215
 
151
216
  img {
@@ -155,14 +220,14 @@ var qr=Object.defineProperty;var Et=(r,e)=>{for(var t in e)qr(r,t,{get:e[t],enum
155
220
  }
156
221
 
157
222
  .label {
158
- margin-top: 0.5em;
223
+ margin-top: var(--space-xs);
159
224
  max-width: 150px;
160
- font-size: 0.85rem;
225
+ font-size: var(--font-size-sm);
161
226
  text-align: center;
162
227
  white-space: nowrap;
163
228
  overflow: hidden;
164
229
  text-overflow: ellipsis;
165
- color: var(--sl-color-neutral-700);
230
+ color: var(--text-muted);
166
231
  }
167
232
  }
168
233
  }
@@ -170,42 +235,42 @@ var qr=Object.defineProperty;var Et=(r,e)=>{for(var t in e)qr(r,t,{get:e[t],enum
170
235
  .details {
171
236
  .card {
172
237
  display: flex;
173
- gap: 1rem;
174
- padding: 0.8rem;
175
- border: 2px solid #0D0D0E;
176
- background: #0F0F11;
177
- border-radius: 6px;
178
- margin-bottom: 0.5rem;
238
+ gap: var(--space-md);
239
+ padding: var(--space-sm);
240
+ border: var(--border-width) solid var(--border);
241
+ background: var(--surface);
242
+ border-radius: var(--radius);
243
+ margin-bottom: var(--space-sm);
179
244
  align-items: center;
180
245
 
181
246
  .meta {
182
247
  .name {
183
248
  font-weight: 500;
184
- color: var(--sl-color-neutral-800);
249
+ color: var(--text);
185
250
  }
186
251
  .type {
187
- font-size: 0.75rem;
188
- color: var(--sl-color-neutral-500);
252
+ font-size: var(--font-size-xs);
253
+ color: var(--text-subtle);
189
254
  }
190
255
  }
191
256
  }
192
257
  }
193
258
 
194
259
  sl-icon {
195
- font-size: 2rem;
196
- color: var(--sl-color-neutral-300);
260
+ font-size: var(--icon-size);
261
+ color: var(--icon);
197
262
  }
198
263
 
199
264
  sl-tooltip {
200
265
  --sl-tooltip-arrow-size: 0;
201
266
 
202
267
  &::part(body) {
203
- background: #0D0D0E;
204
- color: var(--sl-color-neutral-700);
268
+ background: var(--border);
269
+ color: var(--text-muted);
205
270
  }
206
271
  }
207
272
 
208
- `;var Pr=S(()=>{m($,Tr);let r=b(),e=Y(),t=_(r),{trail:o,config:s}=t,[n,i]=yr("tiles");N(()=>{let u=t.on.upload.sub(()=>e());return()=>u()});let l=()=>t.sort(o.currentFolder).filter(u=>t.matches(u));return p`
273
+ `;var zr=S(()=>{m($,Tr);let r=x(),e=Y(),t=_(r),{trail:o,config:s}=t,[n,i]=yr("tiles");R(()=>{let u=t.on.upload.sub(()=>e());return()=>u()});let l=()=>t.sort(o.currentFolder).filter(u=>t.matches(u));return p`
209
274
  <div class="toolbar">
210
275
  <sl-button-group label="View mode">
211
276
  <sl-tooltip content="Tiles">
@@ -247,7 +312,7 @@ sl-tooltip {
247
312
  `)}
248
313
  </div>
249
314
  `}
250
- `});var Or=d`
315
+ `});var Pr=d`
251
316
 
252
317
  .dropzone {
253
318
  width: 100%;
@@ -256,16 +321,16 @@ sl-tooltip {
256
321
  align-items: center;
257
322
  justify-content: center;
258
323
  position: relative;
259
- border: 2px dashed var(--sl-color-neutral-300);
260
- border-radius: 6px;
261
- transition: background 0.2s;
324
+ border: var(--border-width) dashed var(--border-muted);
325
+ border-radius: var(--radius);
326
+ transition: background var(--transition), border-color var(--transition), color var(--transition);
262
327
  }
263
328
 
264
329
  .dz-input {
265
330
  width: 100%;
266
331
  height: 100%;
267
- z-index: 999;
268
- font-size: 14px;
332
+ z-index: var(--z-overlay);
333
+ font-size: var(--font-size-sm);
269
334
  cursor: pointer;
270
335
  opacity: 0;
271
336
 
@@ -275,15 +340,15 @@ sl-tooltip {
275
340
  }
276
341
 
277
342
  .dropzone:hover {
278
- background: var(--sl-color-gray-50);
343
+ background: var(--surface-hover);
279
344
  }
280
345
 
281
346
  .dropzone[data-hovering] {
282
- background: var(--sl-color-gray-50);
283
- border-color: var(--sl-color-primary-500);
347
+ background: var(--surface-hover);
348
+ border-color: var(--primary);
284
349
 
285
350
  & .dz-info {
286
- color: var(--sl-color-primary-300);
351
+ color: var(--primary-soft);
287
352
  }
288
353
  }
289
354
 
@@ -293,11 +358,11 @@ sl-tooltip {
293
358
  flex-direction: column;
294
359
  align-items: center;
295
360
  justify-content: center;
296
- gap: 0.5em;
297
- color: var(--sl-color-neutral-700);
361
+ gap: var(--space-sm);
362
+ color: var(--text-muted);
298
363
  }
299
364
 
300
- `;var zr=S(()=>{m($,Or);let r=b(),e=_(r),{dropzone:t,config:{root:o}}=e;return p`
365
+ `;var Or=S(()=>{m($,Pr);let r=x(),e=_(r),{dropzone:t,config:{root:o}}=e;return p`
301
366
  <div class="dropzone" ?data-hovering=${t.hovering}>
302
367
  <input
303
368
  type="file"
@@ -320,12 +385,12 @@ sl-tree-item::part(expand-button) {
320
385
  }
321
386
 
322
387
  sl-tree-item::part(base) {
323
- min-height: 30px;
388
+ min-height: var(--control-height);
324
389
  justify-content: center;
325
390
  }
326
391
 
327
392
  sl-icon:is(.item) {
328
- padding: 0.5em;
393
+ padding: var(--space-sm);
329
394
  }
330
395
 
331
396
  sl-tree-item:not([data-type=folder])::part(expand-button) {
@@ -348,11 +413,11 @@ sl-tree-item:not([data-type=folder])::part(expand-button) {
348
413
  }
349
414
 
350
415
  sl-tree-item {
351
- min-height: 30px;
352
- transition: background 0.2s ease, border-radius 0.2s ease;
416
+ min-height: var(--control-height);
417
+ transition: background var(--transition), border-radius var(--transition);
353
418
 
354
419
  ::part(label) {
355
- gap: 0.5em;
420
+ gap: var(--space-sm);
356
421
  }
357
422
 
358
423
  .folder {
@@ -362,18 +427,18 @@ sl-tree-item {
362
427
  }
363
428
 
364
429
  ::part(item--selected) {
365
- background: rgba(0, 0, 0, 0.4);
366
- min-height: 30px;
430
+ background: var(--surface-selected);
431
+ min-height: var(--control-height);
367
432
  }
368
433
 
369
434
  }
370
435
 
371
436
  sl-tree-item[data-hover] {
372
- border-radius: 5px;
373
- background: rgba(0, 0, 0, 0.4);
437
+ border-radius: var(--radius-small);
438
+ background: var(--surface-selected);
374
439
  }
375
440
 
376
- `;var jr=X(r=>{m($,Mr);let e=Y(),{config:t}=r,{dropzone:o,trail:s,config:{root:n}}=r;N(()=>{let c=r.on.upload.sub(()=>e());return()=>c()});let i=c=>p`
441
+ `;var jr=X(r=>{m($,Mr);let e=Y(),{config:t}=r,{dropzone:o,trail:s,config:{root:n}}=r;R(()=>{let c=r.on.upload.sub(()=>e());return()=>c()});let i=c=>p`
377
442
  <input
378
443
  @dragenter=${u=>o.dragenter(u,c)}
379
444
  @dragleave=${o.dragleave}
@@ -404,14 +469,18 @@ sl-tree-item[data-hover] {
404
469
  `;return p`
405
470
  <sl-tree selection=leaf>
406
471
  ${a(n)}
407
- </sl-tree>`});var Dr=S(()=>{m($);let r=b(),e=_(r);return p`
472
+ </sl-tree>`});var Hr=S(()=>{m($);let r=x(),e=_(r);return p`
408
473
  <div class="panel">
409
474
  ${jr(e)}
410
475
  </div>`});var So=d`
476
+ sl-input::part(base) {
477
+ border-radius: var(--radius);
478
+ }
479
+
411
480
  sl-input::part(prefix) {
412
- padding-left: 0.5em;
481
+ padding-left: var(--space-sm);
413
482
  }
414
- `,Hr=S(()=>{m($,So);let r=b(),e=_(r);return p`
483
+ `,Lr=S(()=>{m($,So);let r=x(),e=_(r);return p`
415
484
  <sl-input
416
485
  size='small'
417
486
  pill
@@ -421,7 +490,7 @@ sl-tree-item[data-hover] {
421
490
  >
422
491
  <sl-icon name='search' slot='prefix'></sl-icon>
423
492
  </sl-input>
424
- `});var Lr=S(()=>{m($);let r=_(b()),{trail:e,config:{codex:t,renderLabel:o}}=r,s=n=>i=>r.trail.setTrail(i,n);return p`
493
+ `});var Nr=S(()=>{m($);let r=_(x()),{trail:e,config:{codex:t,renderLabel:o}}=r,s=n=>i=>r.trail.setTrail(i,n);return p`
425
494
  <sl-breadcrumb>
426
495
  ${e.signal().map(n=>p`
427
496
  <sl-breadcrumb-item @click="${s(n)}">
@@ -429,6 +498,6 @@ sl-tree-item[data-hover] {
429
498
  </sl-breadcrumb-item>
430
499
  `)}
431
500
  </sl-breadcrumb>
432
- `});var Nr={QuayOutliner:Dr,QuaySearchbar:Hr,QuayDropzone:zr,QuayBrowser:Pr,QuayBreadcrumb:Lr,QuayFilter:Br,QuaySort:Cr};function Rr(){document.documentElement.className="sl-theme-dark"}var Ur=Je.setGroup("default",new it),{codex:q,root:_o}=Ur.config,be="/assets/preview.webp",Eo=q.create("file",{format:"video",label:"01\u2011introduction.mp4",previewUrl:be}),ko=q.create("file",{format:"image",label:"cover.png",previewUrl:be}),Co=q.create("file",{format:"audio",label:"click.wav",previewUrl:null}),Ir=q.create("folder",{label:"sprites"}),Bo=q.create("file",{format:"image",label:"hero.png",previewUrl:be}),To=q.create("file",{format:"image",label:"enemy.png",previewUrl:be});q.root(_o).attach(Eo).attach(ko).attach(Co).attach(Ir);Ir.attach(Bo).attach(To);Ur.on.upload.sub(({files:r,target:e})=>{for(let t of r){let o=t.type.split("/")[0],s=q.create("file",{label:t.name,format:o,previewUrl:be});e.attach(s)}});Rr();v.register(Nr);
501
+ `});var Rr={QuayOutliner:Hr,QuaySearchbar:Lr,QuayDropzone:Or,QuayBrowser:zr,QuayBreadcrumb:Nr,QuayFilter:Br,QuaySort:Cr};function qr(){document.documentElement.className="sl-theme-dark"}var Dr=Je.setGroup("default",new it),{codex:I,root:_o}=Dr.config,xe="/assets/preview.webp",Eo=I.create("file",{format:"video",label:"01\u2011introduction.mp4",previewUrl:xe}),ko=I.create("file",{format:"image",label:"cover.png",previewUrl:xe}),Co=I.create("file",{format:"audio",label:"click.wav",previewUrl:null}),Ur=I.create("folder",{label:"sprites"}),Bo=I.create("file",{format:"image",label:"hero.png",previewUrl:xe}),To=I.create("file",{format:"image",label:"enemy.png",previewUrl:xe});I.root(_o).attach(Eo).attach(ko).attach(Co).attach(Ur);Ur.attach(Bo).attach(To);Dr.on.upload.sub(({files:r,target:e})=>{for(let t of r){let o=t.type.split("/")[0],s=I.create("file",{label:t.name,format:o,previewUrl:xe});e.attach(s)}});qr();w.register(Rr);
433
502
  /*! For license information please see main.bundle.min.js.LEGAL.txt */
434
503
  //# sourceMappingURL=main.bundle.min.js.map