UNPKG

@e280/quay

Version:

File-browser and outliner UI for the web

243 lines (216 loc) 56.8 kB
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=`[ \f\r]`,ae=/<(?:(!--|\/[^a-zA-Z])|(\/?[a-zA-Z][^>\s]*)|(\/?$))/g,Ot=/-->/g,Mt=/>/g,F=RegExp(`>|${lt}(?:([^\\s"'>=/]+)(${lt}*=${lt}*(?:[^ \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` * { margin: 0; padding: 0; box-sizing: border-box; scrollbar-width: thin; scrollbar-color: #888 transparent; } ::-webkit-scrollbar { width: 8px; } ::-webkit-scrollbar-track { background: transparent; } ::-webkit-scrollbar-thumb { background: #888; border-radius: 1em; } ::-webkit-scrollbar-thumb:hover { background: #999; } `;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` :host { font-family: monospace; white-space: pre; user-select: none; } `;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` :host { font-family: monospace; color: red; } `;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 { :host { --surface: var(--quay-surface, #0f0f11); --surface-active: var(--quay-surface-hover, var(--sl-color-neutral-0, #fff)); --surface-hover: var(--quay-surface-hover, var(--sl-color-gray-50, #f8f9fa)); --surface-selected: var(--quay-surface-selected, rgb(0 0 0 / 40%)); --border: var(--quay-border, #0d0d0e); --border-muted: var(--quay-border, var(--sl-color-neutral-300, #d0d0d0)); --border-width: 1px; --text: var(--quay-text, var(--sl-color-neutral-800, #333)); --text-muted: var(--quay-muted, var(--sl-color-neutral-700, #555)); --text-subtle: var(--quay-muted, var(--sl-color-neutral-500, #777)); --icon: var(--quay-muted, var(--sl-color-neutral-300, #d0d0d0)); --primary: var(--quay-accent, var(--sl-color-primary-500, #0ea5e9)); --primary-soft: color-mix(in srgb, var(--primary), white 65%); --radius: var(--quay-radius, var(--sl-border-radius-medium, 6px)); --radius-small: var(--sl-border-radius-small, var(--radius)); --space-xs: var(--sl-spacing-2x-small, 0.3em); --space-sm: var(--sl-spacing-x-small, 0.5rem); --space-md: var(--sl-spacing-medium, 1rem); --font-size-xs: var(--sl-font-size-x-small, 0.75rem); --font-size-sm: var(--sl-font-size-small, 0.85rem); --control-height: 30px; --control-width: 40px; --icon-size: 2rem; --z-overlay: 999; --transition: 0.2s ease; } * { margin: 0; padding: 0; box-sizing: border-box; } sl-button::part(base) { border-color: var(--border); color: var(--text-muted); } sl-button:hover::part(base), sl-button:focus-within::part(base), sl-button:active::part(base) { background: var(--surface-hover); border-color: var(--border); color: var(--text); } sl-menu-item::part(base) { color: var(--text-muted); } sl-menu-item:hover::part(base), sl-menu-item:focus-visible::part(base) { background: var(--surface-hover); color: var(--text); } sl-input::part(base) { border-color: var(--border); color: var(--text); } sl-input:hover::part(base), sl-input:focus-within::part(base) { background: var(--surface); border-color: var(--border); box-shadow: 0 0 0 1px var(--surface-hover); color: var(--text); } }`;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` sl-button sl-icon { font-size: var(--font-size-sm); } sl-menu { margin-top: var(--space-xs); .item { display: flex; align-items: center; gap: var(--space-sm); } } `),p` <div class="panel"> <sl-dropdown> <sl-button size="small" slot="trigger" caret> <sl-icon name="sort-down-alt"></sl-icon> </sl-button> <sl-menu @sl-select=${o=>{let s=o.detail.item.value;e.selectedSort(s)}}> ${[...e.config.sorts?.keys()].map(o=>p` <sl-menu-item value=${o}> <div class=item> <sl-icon name="check" slot="prefix" style="visibility: ${o===e.selectedSort()?"visible":"hidden"}"></sl-icon> <span>${o}</span> </div> </sl-menu-item> `)} </sl-menu> </sl-dropdown> </div>`});var Br=S(()=>{let r=x(),e=_(r);return m($,d` sl-menu { margin-top: var(--space-xs); .item { display: flex; align-items: center; gap: var(--space-sm); } } `),p` <div class="panel"> <sl-dropdown> <sl-button size="small" slot="trigger" caret> <sl-icon name="funnel"></sl-icon> </sl-button> <sl-menu @sl-select=${o=>{let s=o.detail.item.value;e.selectedFilter(s)}}> ${[...e.config.filters?.keys()].map(o=>p` <sl-menu-item value=${o}> <div class=item> <sl-icon name="check" slot="prefix" style="visibility: ${o===e.selectedFilter()?"visible":"hidden"}"></sl-icon> <span>${o}</span> </div> </sl-menu-item> `)} </sl-menu> </sl-dropdown> </div>`});var Tr=d` .toolbar { display: flex; justify-content: flex-end; padding: var(--space-sm); sl-button { background: var(--surface); border-radius: var(--radius-small); &[data-active=true] { background: var(--surface-active); } &::part(base) { display: flex; align-items: center; height: var(--control-height); border-radius: var(--radius-small); } &::part(label) { display: flex; width: var(--control-width); } } } .tiles, .details { padding: var(--space-sm); } .tiles { display: flex; flex-wrap: wrap; row-gap: var(--space-md); width: 100%; .item { flex: 1; max-width: 150px; display: flex; flex-direction: column; align-items: center; .media-icon { display: flex; align-items: center; justify-content: center; width: var(--quay-browser-thumb-width, 100px); height: var(--quay-browser-thumb-height, 60px); border: var(--border-width) solid var(--border); border-radius: var(--radius-small); background: var(--surface); pointer-events: none; img { width: 100%; height: 100%; } } .label { margin-top: var(--space-xs); max-width: 150px; font-size: var(--font-size-sm); text-align: center; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; color: var(--text-muted); } } } .details { .card { display: flex; gap: var(--space-md); padding: var(--space-sm); border: var(--border-width) solid var(--border); background: var(--surface); border-radius: var(--radius);