@e280/quay 0.0.0-2 → 0.0.0-20

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 (168) hide show
  1. package/README.md +98 -0
  2. package/package.json +17 -11
  3. package/s/cellar/cask.ts +1 -13
  4. package/s/cellar/cellar.test.ts +25 -42
  5. package/s/cellar/cellar.ts +16 -20
  6. package/s/cellar/index.ts +0 -4
  7. package/s/cellar/mammoth.ts +50 -0
  8. package/s/cellar/mammoth.worker.bundle.ts +30 -0
  9. package/s/demo/main.bundle.ts +2 -3
  10. package/s/dom/components/breadcrumb/component.ts +6 -5
  11. package/s/dom/components/browser/component.ts +11 -7
  12. package/s/dom/components/browser/style.css.ts +31 -31
  13. package/s/dom/components/dropzone/component.ts +6 -4
  14. package/s/dom/components/dropzone/style.css.ts +12 -13
  15. package/s/dom/components/filter/component.ts +13 -8
  16. package/s/dom/components/outliner/component.ts +8 -5
  17. package/s/dom/components/searchbar/component.ts +13 -7
  18. package/s/dom/components/sort/component.ts +13 -9
  19. package/s/dom/theme.css.ts +66 -2
  20. package/s/dom/views/tree/component.ts +10 -8
  21. package/s/dom/views/tree/style.css.ts +10 -10
  22. package/s/genius/parts/hy-tree.ts +10 -9
  23. package/s/index.html.ts +68 -73
  24. package/s/index.ts +6 -1
  25. package/s/logic/aspects/codex/codex.ts +3 -3
  26. package/s/logic/aspects/codex/example.ts +1 -4
  27. package/s/logic/aspects/codex/parts/codex-item.ts +4 -4
  28. package/s/logic/aspects/codex/parts/hierarchy.ts +1 -0
  29. package/s/logic/aspects/codex/parts/types.ts +1 -1
  30. package/s/logic/aspects/dropzone.ts +20 -16
  31. package/s/logic/aspects/tree-trail.ts +5 -4
  32. package/s/logic/brain.ts +5 -3
  33. package/s/logic/group.ts +13 -10
  34. package/s/logic/presets/media/group.ts +5 -4
  35. package/s/logic/presets/media/library.test.ts +82 -0
  36. package/s/logic/presets/media/library.ts +249 -0
  37. package/s/logic/presets/media/schema.ts +10 -1
  38. package/s/logic/presets/opfs/schema.ts +1 -1
  39. package/s/logic/presets/plain/group.ts +2 -2
  40. package/s/logic/presets/plain/schema.ts +1 -1
  41. package/s/logic/types.ts +1 -1
  42. package/s/tests.test.ts +2 -0
  43. package/x/cellar/cask.d.ts +2 -4
  44. package/x/cellar/cask.js +3 -12
  45. package/x/cellar/cask.js.map +1 -1
  46. package/x/cellar/cellar.d.ts +9 -7
  47. package/x/cellar/cellar.js +17 -22
  48. package/x/cellar/cellar.js.map +1 -1
  49. package/x/cellar/cellar.test.d.ts +2 -3
  50. package/x/cellar/cellar.test.js +24 -39
  51. package/x/cellar/cellar.test.js.map +1 -1
  52. package/x/cellar/index.d.ts +0 -3
  53. package/x/cellar/index.js +0 -3
  54. package/x/cellar/index.js.map +1 -1
  55. package/x/cellar/mammoth.d.ts +23 -0
  56. package/x/cellar/mammoth.js +34 -0
  57. package/x/cellar/mammoth.js.map +1 -0
  58. package/x/cellar/mammoth.worker.bundle.d.ts +1 -0
  59. package/x/cellar/mammoth.worker.bundle.js +20 -0
  60. package/x/cellar/mammoth.worker.bundle.js.map +1 -0
  61. package/x/cellar/mammoth.worker.bundle.min.js +8 -0
  62. package/x/cellar/mammoth.worker.bundle.min.js.map +7 -0
  63. package/x/demo/main.bundle.js +2 -2
  64. package/x/demo/main.bundle.js.map +1 -1
  65. package/x/demo/main.bundle.min.js +229 -197
  66. package/x/demo/main.bundle.min.js.LEGAL.txt +33 -0
  67. package/x/demo/main.bundle.min.js.map +7 -0
  68. package/x/dom/components/breadcrumb/component.d.ts +1 -1
  69. package/x/dom/components/breadcrumb/component.js +6 -5
  70. package/x/dom/components/breadcrumb/component.js.map +1 -1
  71. package/x/dom/components/browser/component.d.ts +1 -1
  72. package/x/dom/components/browser/component.js +10 -7
  73. package/x/dom/components/browser/component.js.map +1 -1
  74. package/x/dom/components/browser/style.css.d.ts +1 -1
  75. package/x/dom/components/browser/style.css.js +31 -30
  76. package/x/dom/components/browser/style.css.js.map +1 -1
  77. package/x/dom/components/dropzone/component.d.ts +1 -1
  78. package/x/dom/components/dropzone/component.js +6 -4
  79. package/x/dom/components/dropzone/component.js.map +1 -1
  80. package/x/dom/components/dropzone/style.css.d.ts +1 -1
  81. package/x/dom/components/dropzone/style.css.js +12 -12
  82. package/x/dom/components/dropzone/style.css.js.map +1 -1
  83. package/x/dom/components/filter/component.d.ts +1 -1
  84. package/x/dom/components/filter/component.js +10 -8
  85. package/x/dom/components/filter/component.js.map +1 -1
  86. package/x/dom/components/outliner/component.d.ts +1 -1
  87. package/x/dom/components/outliner/component.js +7 -5
  88. package/x/dom/components/outliner/component.js.map +1 -1
  89. package/x/dom/components/searchbar/component.d.ts +1 -1
  90. package/x/dom/components/searchbar/component.js +12 -6
  91. package/x/dom/components/searchbar/component.js.map +1 -1
  92. package/x/dom/components/sort/component.d.ts +1 -1
  93. package/x/dom/components/sort/component.js +11 -9
  94. package/x/dom/components/sort/component.js.map +1 -1
  95. package/x/dom/components.d.ts +7 -7
  96. package/x/dom/theme.css.d.ts +1 -1
  97. package/x/dom/theme.css.js +65 -1
  98. package/x/dom/theme.css.js.map +1 -1
  99. package/x/dom/views/tree/component.d.ts +1 -6
  100. package/x/dom/views/tree/component.js +10 -8
  101. package/x/dom/views/tree/component.js.map +1 -1
  102. package/x/dom/views/tree/style.css.d.ts +1 -1
  103. package/x/dom/views/tree/style.css.js +10 -10
  104. package/x/dom/views/tree/style.css.js.map +1 -1
  105. package/x/genius/parts/hy-tree.js +9 -8
  106. package/x/genius/parts/hy-tree.js.map +1 -1
  107. package/x/index.d.ts +6 -1
  108. package/x/index.html +70 -167
  109. package/x/index.html.d.ts +1 -2
  110. package/x/index.html.js +67 -73
  111. package/x/index.html.js.map +1 -1
  112. package/x/index.js +6 -1
  113. package/x/index.js.map +1 -1
  114. package/x/logic/aspects/codex/codex.js +3 -3
  115. package/x/logic/aspects/codex/codex.js.map +1 -1
  116. package/x/logic/aspects/codex/example.d.ts +0 -1
  117. package/x/logic/aspects/codex/example.js +1 -3
  118. package/x/logic/aspects/codex/example.js.map +1 -1
  119. package/x/logic/aspects/codex/parts/codex-item.d.ts +1 -1
  120. package/x/logic/aspects/codex/parts/codex-item.js +4 -4
  121. package/x/logic/aspects/codex/parts/codex-item.js.map +1 -1
  122. package/x/logic/aspects/codex/parts/hierarchy.js +1 -0
  123. package/x/logic/aspects/codex/parts/hierarchy.js.map +1 -1
  124. package/x/logic/aspects/codex/parts/types.d.ts +1 -1
  125. package/x/logic/aspects/dropzone.d.ts +1 -1
  126. package/x/logic/aspects/dropzone.js +19 -15
  127. package/x/logic/aspects/dropzone.js.map +1 -1
  128. package/x/logic/aspects/tree-trail.d.ts +1 -1
  129. package/x/logic/aspects/tree-trail.js +4 -4
  130. package/x/logic/aspects/tree-trail.js.map +1 -1
  131. package/x/logic/brain.d.ts +4 -2
  132. package/x/logic/brain.js.map +1 -1
  133. package/x/logic/group.d.ts +7 -7
  134. package/x/logic/group.js +10 -8
  135. package/x/logic/group.js.map +1 -1
  136. package/x/logic/presets/media/group.d.ts +1 -1
  137. package/x/logic/presets/media/group.js +3 -3
  138. package/x/logic/presets/media/group.js.map +1 -1
  139. package/x/logic/presets/media/library.d.ts +59 -0
  140. package/x/logic/presets/media/library.js +201 -0
  141. package/x/logic/presets/media/library.js.map +1 -0
  142. package/x/logic/presets/media/library.test.d.ts +9 -0
  143. package/x/logic/presets/media/library.test.js +62 -0
  144. package/x/logic/presets/media/library.test.js.map +1 -0
  145. package/x/logic/presets/media/schema.d.ts +10 -1
  146. package/x/logic/presets/opfs/schema.d.ts +1 -1
  147. package/x/logic/presets/plain/group.js +2 -2
  148. package/x/logic/presets/plain/group.js.map +1 -1
  149. package/x/logic/presets/plain/schema.d.ts +1 -1
  150. package/x/logic/types.d.ts +1 -1
  151. package/x/tests.test.js +2 -0
  152. package/x/tests.test.js.map +1 -1
  153. package/s/cellar/forklift.ts +0 -9
  154. package/s/cellar/memory-forklift.ts +0 -29
  155. package/s/cellar/opfs-forklift.ts +0 -49
  156. package/x/cellar/forklift.d.ts +0 -7
  157. package/x/cellar/forklift.js +0 -2
  158. package/x/cellar/forklift.js.map +0 -1
  159. package/x/cellar/memory-forklift.d.ts +0 -9
  160. package/x/cellar/memory-forklift.js +0 -21
  161. package/x/cellar/memory-forklift.js.map +0 -1
  162. package/x/cellar/opfs-forklift.d.ts +0 -11
  163. package/x/cellar/opfs-forklift.js +0 -44
  164. package/x/cellar/opfs-forklift.js.map +0 -1
  165. package/x/genius/folio.md +0 -29
  166. package/x/genius/quay.md +0 -13
  167. package/x/genius/turbo.md +0 -21
  168. package/x/importmap.json +0 -47
@@ -1,70 +1,59 @@
1
- class t{#t=!1;lock(t){this.#t=!0;const e=t();return this.#t=!1,e}get locked(){return this.#t}}const e=()=>new Map,s=()=>new Set;function r(t){return{guarantee:(e,s)=>function(t,e,s){if(t.has(e))return t.get(e);{const r=s();return t.set(e,r),r}}(t,e,s)}}class n{#e=new WeakMap;grab_keymap(t){const s=r(this.#e).guarantee(t,e);return{keymap:s,grab_symbolmap:t=>r(s).guarantee(t,e)}}clear(){this.#e=new WeakMap}}class i{#s=new Map;stop(t){const e=this.#s.get(t);e&&(this.#s.delete(t),e())}add(t,e){this.#s.set(t,e)}}class o{#r=[];record(t){const s=e();this.#r.push(s);const r=t();return this.#r.pop(),{payload:r,recording:s}}record_that_key_was_accessed(t,e){const n=this.#r.at(-1);if(n){r(n).guarantee(t,s).add(e)}}}class a extends Error{name=this.constructor.name}class c extends a{constructor(t){super(`forbidden circularity, rejected assignment to "${t}"`)}}class l extends a{constructor(t){super(`forbidden assignment to readonly property "${t}"`)}}function h(t){return new Proxy(t,{get:(t,e)=>t[e],set(t,e){throw new l(e)}})}function d(t,e){let s,r,n=[];function i(){s=[],r&&clearTimeout(r),r=void 0,n=[]}return i(),(...o)=>{s=o,r&&clearTimeout(r);const a=new Promise(((t,e)=>{n.push({resolve:t,reject:e})}));return r=setTimeout((()=>{Promise.resolve().then((()=>e(...s))).then((t=>{for(const{resolve:e}of n)e(t);i()})).catch((t=>{for(const{reject:e}of n)e(t);i()}))}),t),a}}class u{#n=new Map;#i=Promise.resolve();#o=d(0,(()=>{const t=[...this.#n.values()];this.#n.clear();for(const e of t)e()}));get wait(){return this.#i}add(t,e){this.#n.set(t,e),this.#i=this.#o()}}function p(t){return function(e){return()=>{const s="function"==typeof t?t():t;return e(s)}}}function f(t,e,s,r){const n=[];for(const[i,o]of e){const{grab_symbolmap:e}=s.grab_keymap(i);for(const s of o){const i=e(s);i.set(t,r),n.push((()=>i.delete(t)))}}return()=>n.forEach((t=>t()))}var g;!function(t){t.proxy=(t,e)=>new Proxy(e,{get:(s,r)=>{const n=e[r],i=t.getAttribute(r);switch(n){case String:return i??void 0;case Number:return null!==i?Number(i):void 0;case Boolean:return null!==i;default:throw new Error(`invalid attribute type for "${r}"`)}},set:(s,r,n)=>{switch(e[r]){case String:return t.setAttribute(r,n),!0;case Number:return t.setAttribute(r,n.toString()),!0;case Boolean:return n?t.setAttribute(r,""):t.removeAttribute(r),!0;default:throw new Error(`invalid attribute type for "${r}"`)}}}),t.on_change=function(t,e){const s=new MutationObserver(e);return s.observe(t,{attributes:!0}),()=>s.disconnect()}}(g||(g={}));class m{#a;constructor(t){this.#a=t}get state(){return this.#a.getter(this.#a.parent.state)}transmute(t){this.#a.parent.transmute((e=>{const s=this.#a.getter(e),r=t(s);return this.#a.setter(e,r)}))}slice({getter:t,setter:e}){return new m({parent:this,getter:t,setter:e})}}const v=t=>"object"==typeof t&&null!==t;const w={clone:function t(e,s=new Set){if(s.has(e))throw new Error("cannot clone circular reference");let r;return"function"==typeof e||null!==e&&"object"==typeof e?(s.add(e),r=Array.isArray(e)?e.map((e=>t(e,new Set(s)))):e.constructor===Object?Object.fromEntries(Object.entries(e).map((([e,r])=>[e,t(r,new Set(s))]))):e instanceof Map?new Map(Array.from(e,(([e,r])=>[e,t(r,new Set(s))]))):e instanceof Set?new Set(Array.from(e,(e=>t(e,new Set(s))))):e instanceof Date?new Date(e.getTime()):e,s.delete(e)):r=e,r},equal:(t,e)=>function t(e,s,r){if(!v(e)||!v(s))return e===s;if(r.includes(e))throw new Error("forbidden circularity detected in deep equal comparison");const n=[...r,e];if(e instanceof Map&&s instanceof Map){if(e.size!==s.size)return!1;for(const[r,i]of e)if(!s.has(r)||!t(i,s.get(r),n))return!1}else if(e instanceof Set&&s instanceof Set){if(e.size!==s.size)return!1;for(const r of e)if(!Array.from(s).some((e=>t(r,e,n))))return!1}else{const r=Object.keys(e),i=Object.keys(s);if(r.length!==i.length)return!1;for(const o of r){if(!i.includes(o))return!1;if(!t(e[o],s[o],n))return!1}}return!0}(t,e,[]),freeze:function(t){return function t(e,s){if(!v(e)||s.includes(e))return e;const r=[...s,e];if(e instanceof Map)for(const s of e.entries())for(const e of s)t(e,r);else if(e instanceof Set)for(const s of e)t(s,r);else if(Array.isArray(e))for(const s of e)t(s,r);else for(const s of Object.values(e))t(s,r);return Object.freeze(e)}(t,[])}};class b{#c;#l;#h;#d=!1;#u(){return w.freeze(structuredClone(this.#c))}constructor(t,e=()=>{}){this.#c=structuredClone(t),this.#l=this.#u(),this.#h=e}get state(){return this.#l}transmute(t){if(this.#d)throw new Error("circular error");this.#d=!0,this.#c=t(structuredClone(this.#c)),this.#l=this.#u(),this.#h(),this.#d=!1}slice({getter:t,setter:e}){return new m({parent:this,getter:t,setter:e})}}const y=Error;var _;function $(t){return{map:e=>x(t,e),filter:e=>A(t,e)}}!function(t){function e(t){return"ready"===t.status?t.payload:void 0}function s(t,e){switch(t.status){case"loading":return e.loading();case"error":return e.error(t.reason);case"ready":return e.ready(t.payload);default:throw console.error("op",t),new y("invalid op status")}}t.loading=()=>({status:"loading"}),t.error=t=>({status:"error",reason:t}),t.ready=t=>({status:"ready",payload:t}),t.is=Object.freeze({loading:t=>"loading"===t.status,error:t=>"error"===t.status,ready:t=>"ready"===t.status}),t.payload=e,t.reason=function(t){return"error"===t.status?t.reason:void 0},t.select=s,t.load=async function(e,s){e(t.loading());try{const r=await s();return e(t.ready(r)),r}catch(s){const r=s instanceof y?s.message:"string"==typeof s?s:"error";throw e(t.error(r)),s}},t.morph=function(e,r){return s(e,{loading:()=>t.loading(),error:e=>t.error(e),ready:e=>t.ready(r(e))})},t.all=function(...s){const r=s.find(t.is.error);return r||(s.every(t.is.ready)?t.ready(s.map(e)):t.loading())}}(_||(_={})),$.pipe=Object.freeze({map:t=>e=>x(e,t),filter:t=>e=>A(e,t)});const x=(t,e)=>Object.fromEntries(Object.entries(t).map((([t,s])=>[t,e(s,t)]))),A=(t,e)=>Object.fromEntries(Object.entries(t).filter((([t,s])=>e(s,t)))),k=Symbol();class S extends Error{name=this.constructor.name}class C{static unwrap=t=>t instanceof C?t.value:t;#p;#f=!1;#i;#g=new Set;[k]=!1;constructor(t){this.#p=t,this.#i=Promise.resolve(t)}subscribe(t){return this.on(t)}on(t){return this.#g.add(t),()=>{this.#g.delete(t)}}once(t){const e=s=>{t(s),this.#g.delete(e)};return this.#g.add(e),()=>{this.#g.delete(e)}}clear(){return this.#g.clear()}#m=d(0,(()=>{const t=this.#p;this.#f=!0;for(const e of this.#g)e(t);return this.#f=!1,t}));async publish(){this.#i=this.#m(),await this.#i}get wait(){return this.#i}get value(){return this[k]=!0,this.#p}set value(t){if(this.#f)throw new S("you can't set a signal in a signal's subscription listener (infinite loop forbidden)");this.#p!==t&&(this.#p=t,this.publish())}setDeep(t){if(this.#f)throw new S("you can't set a signal in a signal's subscription listener (infinite loop forbidden)");w.equal(t,this.#p)||(this.#p=t,this.publish())}setAndPublish(t){if(this.#f)throw new S("you can't set a signal in a signal's subscription listener (infinite loop forbidden)");this.#p=t,this.publish()}setWithoutPublish(t){if(this.#f)throw new S("you can't set a signal in a signal's subscription listener (infinite loop forbidden)");this.#p=t}setValueNoPublish(t){return this.setWithoutPublish(t)}}class E extends C{#v=0;constructor(t){super(t)}async load(t){const e=++this.#v;return _.load((t=>{this.#v===e&&(this.value=t)}),t)}setLoading(){this.value=_.loading()}setError(t){this.value=_.error(t)}setReady(t){this.value=_.ready(t)}isLoading(){return _.is.loading(this.value)}isError(){return _.is.error(this.value)}isReady(){return _.is.ready(this.value)}get payload(){return _.payload(this.value)}select(t){return _.select(this.value,t)}}class P{#w=!0;#b;#y;#_=new Set;#$=new Set;constructor({all_signals:t,waiters:e}){this.#b=t,this.#y=e}#o=d(0,(t=>{if(this.#w)if("lean"in t)t.actor();else{const{payload:e,recording:s}=this.observe(t.collector);this.add_listeners(t,s),t.responder&&t.responder(e)}}));#x(){for(const t of this.#b)t[k]=!1}get#A(){return[...this.#b].filter((t=>t[k]&&!this.#_.has(t)))}observe(t){this.#x();return{payload:t(),recording:this.#A}}add_listeners(t,e){for(const s of e)this.#_.add(s),this.#$.add(s.on((()=>this.#y.add(this.#o(t)))))}shutdown(){this.#w=!1,this.#$.forEach((t=>t()))}}const M=new class{static readonly=h;static collectivize=p;#k=new n;#S=new o;#C=new t;#E=new i;#P=new u;#M=function(t,e,s,r,n){function i([s,n]){if("lean"in n)n.actor();else{const{payload:i,recording:o}=e.record(n.collector);r.add(s,f(s,o,t,n)),n.responder&&n.responder(i)}}return{get:(t,s)=>(e.record_that_key_was_accessed(t,s),t[s]),set:(e,r,o)=>{if(s.locked)throw new c(r);e[r]=o;const a=[...t.grab_keymap(e).grab_symbolmap(r)];for(const t of a){const[e]=t;n.add(e,(()=>s.lock((()=>i(t)))))}return!0}}}(this.#k,this.#S,this.#C,this.#E,this.#P);get wait(){return this.#P.wait}state(t){return new Proxy(t,this.#M)}reaction(t,e){const s=Symbol(),{recording:r}=this.#S.record((()=>this.#C.lock(t)));return this.#E.add(s,f(s,r,this.#k,{collector:t,responder:e})),()=>this.#E.stop(s)}lean(t){const e=Symbol();return{stop:()=>this.#E.stop(e),collect:s=>{const{payload:r,recording:n}=this.#S.record((()=>this.#C.lock(s)));return this.#E.add(e,f(e,n,this.#k,{lean:!0,actor:t})),r}}}clear(){this.#k.clear()}},z=new class{#z=new Set;#y=new Set;signal(t){const e=new C(t);return this.#z.add(e),e}computed(t){const e=this.signal(t());return this.reaction((()=>{e.value=t()})),e}async computedAsync(t,e){const s=await e(t()),r=this.signal(s);return this.reaction(t,(async t=>{r.value=await e(t)})),r}op(t=_.loading()){const e=new E(t);return this.#z.add(e),e}load(t){const e=this.op(_.loading());return e.load(t),e}many(t){return $(t).map((t=>this.signal(t)))}reaction(t,e){const s=new P({waiters:this.#y,all_signals:this.#z}),r={collector:t,responder:e},{recording:n}=s.observe(r.collector);return s.add_listeners(r,n),()=>s.shutdown()}lean(t){const e=new P({waiters:this.#y,all_signals:this.#z}),s={lean:!0,actor:t};return{stop:()=>e.shutdown(),collect:t=>{const{payload:r,recording:n}=e.observe(t);return e.add_listeners(s,n),r}}}async#O(){return await Promise.all([...this.#z].map((t=>t.wait))).then((()=>Promise.all([...this.#y]))).then((()=>{this.#y.clear()}))}get wait(){return Promise.resolve().then((()=>this.#O())).then((()=>this.#O()))}},O=new class{#z;#U=new Set;#g=new Set;#T=new Map;#j=Promise.resolve();constructor(t){this.#z=t}get wait(){return this.#j}#q=d(0,(()=>{for(const t of this.#U)t();for(const t of this.#g)t()}));dispatch(){this.#j=this.#q()}computed(t){const e=this.#z.signal(t());return this.#U.add((()=>{e.value=t()})),e}track(t,e){let s=!0;const r=()=>{const r=t(),n=this.#T.get(t);!s&&w.equal(r,n)||(s=!1,this.#T.set(t,r),e(r))};r(),this.#g.add(r);return()=>this.#g.delete(r)}stateTree(t){return new b(t,(()=>this.dispatch()))}}(z);M.state.bind(M);const U=z.signal.bind(z);z.computed.bind(z),z.op.bind(z);const T=new class{flat;signals;#i=Promise.resolve();constructor(t,e){this.flat=t,this.signals=e}get wait(){return Promise.all([this.flat.wait,this.signals.wait]).then((()=>this.#i))}reaction(t,e){const s=e?()=>e(n()):()=>n(),r=this.lean(s),n=()=>r.collect(t);return n(),r.stop}lean(t){const e=this.flat.lean(t),s=this.signals.lean(t);return{stop(){e.stop(),s.stop()},collect:t=>e.collect((()=>s.collect(t)))}}}(M,z);class j{static with(t){return new this(t)}#D;constructor(t){this.#D=t}to(t){return new j(t(this.#D))}done(){return this.#D}}var q;function D(t){return[t].flat().filter((t=>!!t))}!function(t){function e(...t){return function(e){return class extends e{static get styles(){return R(e.styles,t)}}}}function s(t=T){return function(e){return class extends e{#N=null;render(){return this.#N?.collect((()=>super.render()))}connectedCallback(){super.connectedCallback(),this.#N=t.lean((()=>this.requestUpdate()))}disconnectedCallback(){super.disconnectedCallback(),this.#N&&(this.#N.stop(),this.#N=null)}}}}t.css=e,t.css_deferred=function(t){return function(e){return class extends e{static get styles(){return R(e.styles,t())}}}},t.signals=function(t){return function(e){return class extends e{#N=null;render(){return this.#N?.collect((()=>super.render()))}connectedCallback(){super.connectedCallback(),this.#N=t.lean((()=>this.requestUpdate()))}disconnectedCallback(){super.disconnectedCallback(),this.#N&&(this.#N.stop(),this.#N=null)}}}},t.flat=function(t){return function(e){return class extends e{#N=null;render(){return this.#N?.collect((()=>super.render()))}connectedCallback(){super.connectedCallback(),this.#N=t.lean((()=>this.requestUpdate()))}disconnectedCallback(){super.disconnectedCallback(),this.#N&&(this.#N.stop(),this.#N=null)}}}},t.reactive=s,t.reactor=s,t.setup=function(...t){return function(r){return j.with(r).to(e(...t)).to(s()).done()}}}(q||(q={}));const N=t=>void 0!==t;function R(t,e){return[...D(t)??[],...D(e)].flat().filter(N)}var H;function F(t,e={}){const{soft:s=!1,upgrade:r=!0}=e;for(const[e,n]of Object.entries(t)){const t=e.replace(/([a-zA-Z])(?=[A-Z])/g,"$1-").toLowerCase(),i=customElements.get(t);s&&i||(customElements.define(t,n),r&&document.querySelectorAll(t).forEach((t=>{t.constructor===HTMLElement&&customElements.upgrade(t)})))}}!function(t){t.css=t=>e=>$(e).map((e=>q.css(t)(e))),t.flat=t=>e=>$(e).map((e=>q.flat(t)(e))),t.signals=t=>e=>$(e).map((e=>q.signals(t)(e))),t.reactive=(t=T)=>e=>$(e).map((e=>q.reactive(t)(e))),t.reactor=t.reactive,t.context=e=>s=>j.with(s).to(t.css(e.theme)).to(t.reactive()).done(),t.setup=(...t)=>e=>$(e).map((e=>q.setup(...t)(e)))}(H||(H={}));const L=F,B=globalThis,I=B.ShadowRoot&&(void 0===B.ShadyCSS||B.ShadyCSS.nativeShadow)&&"adoptedStyleSheets"in Document.prototype&&"replace"in CSSStyleSheet.prototype,V=Symbol(),K=new WeakMap;
2
- /**
3
- * @license
4
- * Copyright 2019 Google LLC
5
- * SPDX-License-Identifier: BSD-3-Clause
6
- */let W=class{constructor(t,e,s){if(this._$cssResult$=!0,s!==V)throw Error("CSSResult is not constructable. Use `unsafeCSS` or `css` instead.");this.cssText=t,this.t=e}get styleSheet(){let t=this.o;const e=this.t;if(I&&void 0===t){const s=void 0!==e&&1===e.length;s&&(t=K.get(e)),void 0===t&&((this.o=t=new CSSStyleSheet).replaceSync(this.cssText),s&&K.set(e,t))}return t}toString(){return this.cssText}};const Q=(t,...e)=>{const s=1===t.length?t[0]:e.reduce(((e,s,r)=>e+(t=>{if(!0===t._$cssResult$)return t.cssText;if("number"==typeof t)return t;throw Error("Value passed to 'css' function must be a 'css' function result: "+t+". Use 'unsafeCSS' to pass non-literal values, but take care to ensure page security.")})(s)+t[r+1]),t[0]);return new W(s,t,V)},G=(t,e)=>{if(I)t.adoptedStyleSheets=e.map((t=>t instanceof CSSStyleSheet?t:t.styleSheet));else for(const s of e){const e=document.createElement("style"),r=B.litNonce;void 0!==r&&e.setAttribute("nonce",r),e.textContent=s.cssText,t.appendChild(e)}},Z=I?t=>t:t=>t instanceof CSSStyleSheet?(t=>{let e="";for(const s of t.cssRules)e+=s.cssText;return(t=>new W("string"==typeof t?t:t+"",void 0,V))(e)})(t):t,{is:X,defineProperty:Y,getOwnPropertyDescriptor:J,getOwnPropertyNames:tt,getOwnPropertySymbols:et,getPrototypeOf:st}=Object,rt=globalThis,nt=rt.trustedTypes,it=nt?nt.emptyScript:"",ot=rt.reactiveElementPolyfillSupport,at=(t,e)=>t,ct={toAttribute(t,e){switch(e){case Boolean:t=t?it:null;break;case Object:case Array:t=null==t?t:JSON.stringify(t)}return t},fromAttribute(t,e){let s=t;switch(e){case Boolean:s=null!==t;break;case Number:s=null===t?null:Number(t);break;case Object:case Array:try{s=JSON.parse(t)}catch(t){s=null}}return s}},lt=(t,e)=>!X(t,e),ht={attribute:!0,type:String,converter:ct,reflect:!1,useDefault:!1,hasChanged:lt};
7
- /**
8
- * @license
9
- * Copyright 2017 Google LLC
10
- * SPDX-License-Identifier: BSD-3-Clause
11
- */Symbol.metadata??=Symbol("metadata"),rt.litPropertyMetadata??=new WeakMap;let dt=class extends HTMLElement{static addInitializer(t){this._$Ei(),(this.l??=[]).push(t)}static get observedAttributes(){return this.finalize(),this._$Eh&&[...this._$Eh.keys()]}static createProperty(t,e=ht){if(e.state&&(e.attribute=!1),this._$Ei(),this.prototype.hasOwnProperty(t)&&((e=Object.create(e)).wrapped=!0),this.elementProperties.set(t,e),!e.noAccessor){const s=Symbol(),r=this.getPropertyDescriptor(t,s,e);void 0!==r&&Y(this.prototype,t,r)}}static getPropertyDescriptor(t,e,s){const{get:r,set:n}=J(this.prototype,t)??{get(){return this[e]},set(t){this[e]=t}};return{get:r,set(e){const i=r?.call(this);n?.call(this,e),this.requestUpdate(t,i,s)},configurable:!0,enumerable:!0}}static getPropertyOptions(t){return this.elementProperties.get(t)??ht}static _$Ei(){if(this.hasOwnProperty(at("elementProperties")))return;const t=st(this);t.finalize(),void 0!==t.l&&(this.l=[...t.l]),this.elementProperties=new Map(t.elementProperties)}static finalize(){if(this.hasOwnProperty(at("finalized")))return;if(this.finalized=!0,this._$Ei(),this.hasOwnProperty(at("properties"))){const t=this.properties,e=[...tt(t),...et(t)];for(const s of e)this.createProperty(s,t[s])}const t=this[Symbol.metadata];if(null!==t){const e=litPropertyMetadata.get(t);if(void 0!==e)for(const[t,s]of e)this.elementProperties.set(t,s)}this._$Eh=new Map;for(const[t,e]of this.elementProperties){const s=this._$Eu(t,e);void 0!==s&&this._$Eh.set(s,t)}this.elementStyles=this.finalizeStyles(this.styles)}static finalizeStyles(t){const e=[];if(Array.isArray(t)){const s=new Set(t.flat(1/0).reverse());for(const t of s)e.unshift(Z(t))}else void 0!==t&&e.push(Z(t));return e}static _$Eu(t,e){const s=e.attribute;return!1===s?void 0:"string"==typeof s?s:"string"==typeof t?t.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((t=>this.enableUpdating=t)),this._$AL=new Map,this._$E_(),this.requestUpdate(),this.constructor.l?.forEach((t=>t(this)))}addController(t){(this._$EO??=new Set).add(t),void 0!==this.renderRoot&&this.isConnected&&t.hostConnected?.()}removeController(t){this._$EO?.delete(t)}_$E_(){const t=new Map,e=this.constructor.elementProperties;for(const s of e.keys())this.hasOwnProperty(s)&&(t.set(s,this[s]),delete this[s]);t.size>0&&(this._$Ep=t)}createRenderRoot(){const t=this.shadowRoot??this.attachShadow(this.constructor.shadowRootOptions);return G(t,this.constructor.elementStyles),t}connectedCallback(){this.renderRoot??=this.createRenderRoot(),this.enableUpdating(!0),this._$EO?.forEach((t=>t.hostConnected?.()))}enableUpdating(t){}disconnectedCallback(){this._$EO?.forEach((t=>t.hostDisconnected?.()))}attributeChangedCallback(t,e,s){this._$AK(t,s)}_$ET(t,e){const s=this.constructor.elementProperties.get(t),r=this.constructor._$Eu(t,s);if(void 0!==r&&!0===s.reflect){const n=(void 0!==s.converter?.toAttribute?s.converter:ct).toAttribute(e,s.type);this._$Em=t,null==n?this.removeAttribute(r):this.setAttribute(r,n),this._$Em=null}}_$AK(t,e){const s=this.constructor,r=s._$Eh.get(t);if(void 0!==r&&this._$Em!==r){const t=s.getPropertyOptions(r),n="function"==typeof t.converter?{fromAttribute:t.converter}:void 0!==t.converter?.fromAttribute?t.converter:ct;this._$Em=r,this[r]=n.fromAttribute(e,t.type)??this._$Ej?.get(r)??null,this._$Em=null}}requestUpdate(t,e,s){if(void 0!==t){const r=this.constructor,n=this[t];if(s??=r.getPropertyOptions(t),!((s.hasChanged??lt)(n,e)||s.useDefault&&s.reflect&&n===this._$Ej?.get(t)&&!this.hasAttribute(r._$Eu(t,s))))return;this.C(t,e,s)}!1===this.isUpdatePending&&(this._$ES=this._$EP())}C(t,e,{useDefault:s,reflect:r,wrapped:n},i){s&&!(this._$Ej??=new Map).has(t)&&(this._$Ej.set(t,i??e??this[t]),!0!==n||void 0!==i)||(this._$AL.has(t)||(this.hasUpdated||s||(e=void 0),this._$AL.set(t,e)),!0===r&&this._$Em!==t&&(this._$Eq??=new Set).add(t))}async _$EP(){this.isUpdatePending=!0;try{await this._$ES}catch(t){Promise.reject(t)}const t=this.scheduleUpdate();return null!=t&&await t,!this.isUpdatePending}scheduleUpdate(){return this.performUpdate()}performUpdate(){if(!this.isUpdatePending)return;if(!this.hasUpdated){if(this.renderRoot??=this.createRenderRoot(),this._$Ep){for(const[t,e]of this._$Ep)this[t]=e;this._$Ep=void 0}const t=this.constructor.elementProperties;if(t.size>0)for(const[e,s]of t){const{wrapped:t}=s,r=this[e];!0!==t||this._$AL.has(e)||void 0===r||this.C(e,void 0,s,r)}}let t=!1;const e=this._$AL;try{t=this.shouldUpdate(e),t?(this.willUpdate(e),this._$EO?.forEach((t=>t.hostUpdate?.())),this.update(e)):this._$EM()}catch(e){throw t=!1,this._$EM(),e}t&&this._$AE(e)}willUpdate(t){}_$AE(t){this._$EO?.forEach((t=>t.hostUpdated?.())),this.hasUpdated||(this.hasUpdated=!0,this.firstUpdated(t)),this.updated(t)}_$EM(){this._$AL=new Map,this.isUpdatePending=!1}get updateComplete(){return this.getUpdateComplete()}getUpdateComplete(){return this._$ES}shouldUpdate(t){return!0}update(t){this._$Eq&&=this._$Eq.forEach((t=>this._$ET(t,this[t]))),this._$EM()}updated(t){}firstUpdated(t){}};dt.elementStyles=[],dt.shadowRootOptions={mode:"open"},dt[at("elementProperties")]=new Map,dt[at("finalized")]=new Map,ot?.({ReactiveElement:dt}),(rt.reactiveElementVersions??=[]).push("2.1.0");
12
- /**
13
- * @license
14
- * Copyright 2017 Google LLC
15
- * SPDX-License-Identifier: BSD-3-Clause
16
- */
17
- const ut=globalThis,pt=ut.trustedTypes,ft=pt?pt.createPolicy("lit-html",{createHTML:t=>t}):void 0,gt="$lit$",mt=`lit$${Math.random().toFixed(9).slice(2)}$`,vt="?"+mt,wt=`<${vt}>`,bt=document,yt=()=>bt.createComment(""),_t=t=>null===t||"object"!=typeof t&&"function"!=typeof t,$t=Array.isArray,xt="[ \t\n\f\r]",At=/<(?:(!--|\/[^a-zA-Z])|(\/?[a-zA-Z][^>\s]*)|(\/?$))/g,kt=/-->/g,St=/>/g,Ct=RegExp(`>|${xt}(?:([^\\s"'>=/]+)(${xt}*=${xt}*(?:[^ \t\n\f\r"'\`<>=]|("|')|))|$)`,"g"),Et=/'/g,Pt=/"/g,Mt=/^(?:script|style|textarea|title)$/i,zt=(t=>(e,...s)=>({_$litType$:t,strings:e,values:s}))(1),Ot=Symbol.for("lit-noChange"),Ut=Symbol.for("lit-nothing"),Tt=new WeakMap,jt=bt.createTreeWalker(bt,129);function qt(t,e){if(!$t(t)||!t.hasOwnProperty("raw"))throw Error("invalid template strings array");return void 0!==ft?ft.createHTML(e):e}const Dt=(t,e)=>{const s=t.length-1,r=[];let n,i=2===e?"<svg>":3===e?"<math>":"",o=At;for(let e=0;e<s;e++){const s=t[e];let a,c,l=-1,h=0;for(;h<s.length&&(o.lastIndex=h,c=o.exec(s),null!==c);)h=o.lastIndex,o===At?"!--"===c[1]?o=kt:void 0!==c[1]?o=St:void 0!==c[2]?(Mt.test(c[2])&&(n=RegExp("</"+c[2],"g")),o=Ct):void 0!==c[3]&&(o=Ct):o===Ct?">"===c[0]?(o=n??At,l=-1):void 0===c[1]?l=-2:(l=o.lastIndex-c[2].length,a=c[1],o=void 0===c[3]?Ct:'"'===c[3]?Pt:Et):o===Pt||o===Et?o=Ct:o===kt||o===St?o=At:(o=Ct,n=void 0);const d=o===Ct&&t[e+1].startsWith("/>")?" ":"";i+=o===At?s+wt:l>=0?(r.push(a),s.slice(0,l)+gt+s.slice(l)+mt+d):s+mt+(-2===l?e:d)}return[qt(t,i+(t[s]||"<?>")+(2===e?"</svg>":3===e?"</math>":"")),r]};class Nt{constructor({strings:t,_$litType$:e},s){let r;this.parts=[];let n=0,i=0;const o=t.length-1,a=this.parts,[c,l]=Dt(t,e);if(this.el=Nt.createElement(c,s),jt.currentNode=this.el.content,2===e||3===e){const t=this.el.content.firstChild;t.replaceWith(...t.childNodes)}for(;null!==(r=jt.nextNode())&&a.length<o;){if(1===r.nodeType){if(r.hasAttributes())for(const t of r.getAttributeNames())if(t.endsWith(gt)){const e=l[i++],s=r.getAttribute(t).split(mt),o=/([.?@])?(.*)/.exec(e);a.push({type:1,index:n,name:o[2],strings:s,ctor:"."===o[1]?Bt:"?"===o[1]?It:"@"===o[1]?Vt:Lt}),r.removeAttribute(t)}else t.startsWith(mt)&&(a.push({type:6,index:n}),r.removeAttribute(t));if(Mt.test(r.tagName)){const t=r.textContent.split(mt),e=t.length-1;if(e>0){r.textContent=pt?pt.emptyScript:"";for(let s=0;s<e;s++)r.append(t[s],yt()),jt.nextNode(),a.push({type:2,index:++n});r.append(t[e],yt())}}}else if(8===r.nodeType)if(r.data===vt)a.push({type:2,index:n});else{let t=-1;for(;-1!==(t=r.data.indexOf(mt,t+1));)a.push({type:7,index:n}),t+=mt.length-1}n++}}static createElement(t,e){const s=bt.createElement("template");return s.innerHTML=t,s}}function Rt(t,e,s=t,r){if(e===Ot)return e;let n=void 0!==r?s._$Co?.[r]:s._$Cl;const i=_t(e)?void 0:e._$litDirective$;return n?.constructor!==i&&(n?._$AO?.(!1),void 0===i?n=void 0:(n=new i(t),n._$AT(t,s,r)),void 0!==r?(s._$Co??=[])[r]=n:s._$Cl=n),void 0!==n&&(e=Rt(t,n._$AS(t,e.values),n,r)),e}class Ht{constructor(t,e){this._$AV=[],this._$AN=void 0,this._$AD=t,this._$AM=e}get parentNode(){return this._$AM.parentNode}get _$AU(){return this._$AM._$AU}u(t){const{el:{content:e},parts:s}=this._$AD,r=(t?.creationScope??bt).importNode(e,!0);jt.currentNode=r;let n=jt.nextNode(),i=0,o=0,a=s[0];for(;void 0!==a;){if(i===a.index){let e;2===a.type?e=new Ft(n,n.nextSibling,this,t):1===a.type?e=new a.ctor(n,a.name,a.strings,this,t):6===a.type&&(e=new Kt(n,this,t)),this._$AV.push(e),a=s[++o]}i!==a?.index&&(n=jt.nextNode(),i++)}return jt.currentNode=bt,r}p(t){let e=0;for(const s of this._$AV)void 0!==s&&(void 0!==s.strings?(s._$AI(t,s,e),e+=s.strings.length-2):s._$AI(t[e])),e++}}class Ft{get _$AU(){return this._$AM?._$AU??this._$Cv}constructor(t,e,s,r){this.type=2,this._$AH=Ut,this._$AN=void 0,this._$AA=t,this._$AB=e,this._$AM=s,this.options=r,this._$Cv=r?.isConnected??!0}get parentNode(){let t=this._$AA.parentNode;const e=this._$AM;return void 0!==e&&11===t?.nodeType&&(t=e.parentNode),t}get startNode(){return this._$AA}get endNode(){return this._$AB}_$AI(t,e=this){t=Rt(this,t,e),_t(t)?t===Ut||null==t||""===t?(this._$AH!==Ut&&this._$AR(),this._$AH=Ut):t!==this._$AH&&t!==Ot&&this._(t):void 0!==t._$litType$?this.$(t):void 0!==t.nodeType?this.T(t):(t=>$t(t)||"function"==typeof t?.[Symbol.iterator])(t)?this.k(t):this._(t)}O(t){return this._$AA.parentNode.insertBefore(t,this._$AB)}T(t){this._$AH!==t&&(this._$AR(),this._$AH=this.O(t))}_(t){this._$AH!==Ut&&_t(this._$AH)?this._$AA.nextSibling.data=t:this.T(bt.createTextNode(t)),this._$AH=t}$(t){const{values:e,_$litType$:s}=t,r="number"==typeof s?this._$AC(t):(void 0===s.el&&(s.el=Nt.createElement(qt(s.h,s.h[0]),this.options)),s);if(this._$AH?._$AD===r)this._$AH.p(e);else{const t=new Ht(r,this),s=t.u(this.options);t.p(e),this.T(s),this._$AH=t}}_$AC(t){let e=Tt.get(t.strings);return void 0===e&&Tt.set(t.strings,e=new Nt(t)),e}k(t){$t(this._$AH)||(this._$AH=[],this._$AR());const e=this._$AH;let s,r=0;for(const n of t)r===e.length?e.push(s=new Ft(this.O(yt()),this.O(yt()),this,this.options)):s=e[r],s._$AI(n),r++;r<e.length&&(this._$AR(s&&s._$AB.nextSibling,r),e.length=r)}_$AR(t=this._$AA.nextSibling,e){for(this._$AP?.(!1,!0,e);t&&t!==this._$AB;){const e=t.nextSibling;t.remove(),t=e}}setConnected(t){void 0===this._$AM&&(this._$Cv=t,this._$AP?.(t))}}class Lt{get tagName(){return this.element.tagName}get _$AU(){return this._$AM._$AU}constructor(t,e,s,r,n){this.type=1,this._$AH=Ut,this._$AN=void 0,this.element=t,this.name=e,this._$AM=r,this.options=n,s.length>2||""!==s[0]||""!==s[1]?(this._$AH=Array(s.length-1).fill(new String),this.strings=s):this._$AH=Ut}_$AI(t,e=this,s,r){const n=this.strings;let i=!1;if(void 0===n)t=Rt(this,t,e,0),i=!_t(t)||t!==this._$AH&&t!==Ot,i&&(this._$AH=t);else{const r=t;let o,a;for(t=n[0],o=0;o<n.length-1;o++)a=Rt(this,r[s+o],e,o),a===Ot&&(a=this._$AH[o]),i||=!_t(a)||a!==this._$AH[o],a===Ut?t=Ut:t!==Ut&&(t+=(a??"")+n[o+1]),this._$AH[o]=a}i&&!r&&this.j(t)}j(t){t===Ut?this.element.removeAttribute(this.name):this.element.setAttribute(this.name,t??"")}}class Bt extends Lt{constructor(){super(...arguments),this.type=3}j(t){this.element[this.name]=t===Ut?void 0:t}}class It extends Lt{constructor(){super(...arguments),this.type=4}j(t){this.element.toggleAttribute(this.name,!!t&&t!==Ut)}}class Vt extends Lt{constructor(t,e,s,r,n){super(t,e,s,r,n),this.type=5}_$AI(t,e=this){if((t=Rt(this,t,e,0)??Ut)===Ot)return;const s=this._$AH,r=t===Ut&&s!==Ut||t.capture!==s.capture||t.once!==s.once||t.passive!==s.passive,n=t!==Ut&&(s===Ut||r);r&&this.element.removeEventListener(this.name,this,s),n&&this.element.addEventListener(this.name,this,t),this._$AH=t}handleEvent(t){"function"==typeof this._$AH?this._$AH.call(this.options?.host??this.element,t):this._$AH.handleEvent(t)}}class Kt{constructor(t,e,s){this.element=t,this.type=6,this._$AN=void 0,this._$AM=e,this.options=s}get _$AU(){return this._$AM._$AU}_$AI(t){Rt(this,t)}}const Wt=ut.litHtmlPolyfillSupport;Wt?.(Nt,Ft),(ut.litHtmlVersions??=[]).push("3.3.0");const Qt=(t,e,s)=>{const r=s?.renderBefore??e;let n=r._$litPart$;if(void 0===n){const t=s?.renderBefore??null;r._$litPart$=n=new Ft(e.insertBefore(yt(),t),t,void 0,s??{})}return n._$AI(t),n
18
- /**
19
- * @license
20
- * Copyright 2017 Google LLC
21
- * SPDX-License-Identifier: BSD-3-Clause
22
- */},Gt=globalThis;let Zt=class extends dt{constructor(){super(...arguments),this.renderOptions={host:this},this._$Do=void 0}createRenderRoot(){const t=super.createRenderRoot();return this.renderOptions.renderBefore??=t.firstChild,t}update(t){const e=this.render();this.hasUpdated||(this.renderOptions.isConnected=this.isConnected),super.update(t),this._$Do=Qt(e,this.renderRoot,this.renderOptions)}connectedCallback(){super.connectedCallback(),this._$Do?.setConnected(!0)}disconnectedCallback(){super.disconnectedCallback(),this._$Do?.setConnected(!1)}render(){return Ot}};Zt._$litElement$=!0,Zt.finalized=!0,Gt.litElementHydrateSupport?.({LitElement:Zt});const Xt=Gt.litElementPolyfillSupport;Xt?.({LitElement:Zt}),(Gt.litElementVersions??=[]).push("4.2.0");class Yt extends(function(t){return class extends t{#R=(new Set).add((()=>this.setup()));#H=new Set;register_setup(t){this.#R.add(t)}setup(){return()=>{}}connectedCallback(){for(const t of this.#R)this.#H.add(t())}disconnectedCallback(){for(const t of this.#H)t();this.#H.clear()}}}(HTMLElement)){}function Jt(){let t,e;const s=new Promise(((s,r)=>{t=s,e=r}));return{promise:s,resolve:t,reject:e,entangle:function(r){return r.then(t).catch(e),s}}}function te(t,e){G(t,function(t){const e=[];if(Array.isArray(t)){const s=new Set(t.flat(1/0).reverse());for(const t of s)e.unshift(Z(t))}else void 0!==t&&e.push(Z(t));return e}(e))}class ee extends Yt{static get styles(){}#F;#L=Jt();#i=this.#L.promise;init(){}constructor(){super(),this.#F=this.attachShadow({mode:"open"});const t=this.constructor;te(this.#F,t.styles),this.init()}get root(){return this.#F}get updateComplete(){return this.#i.then((()=>!0))}render(){}#B=d(0,(()=>{const t=this.#F,e=this.render();e&&Qt(e,t,{host:this})}));async requestUpdate(){const t=this.#B();return this.#L&&(t.then(this.#L.resolve),this.#L=void 0),this.#i=t,t}connectedCallback(){super.connectedCallback(),this.requestUpdate()}}class se extends Yt{#L=Jt();#i=this.#L.promise;init(){}constructor(){super(),this.init()}get updateComplete(){return this.#i.then((()=>!0))}render(){}#B=d(0,(()=>{const t=this.render();Qt(t,this,{host:this})}));async requestUpdate(){const t=this.#B();return this.#L&&(t.then(this.#L.resolve),this.#L=void 0),this.#i=t,t}connectedCallback(){super.connectedCallback(),this.requestUpdate()}}const re=Symbol();class ne{#p=0;pull(){return this.#p++}reset(){this.#p=0}}class ie{[re]={wrap:t=>(...e)=>(this.#I.reset(),t(...e)),disconnect:()=>{for(const t of this.#V)t();this.#V.clear();for(const t of this.#K)t();this.#K.clear(),this.#W.clear();for(const{untrack:t}of this.#Q.values())t();this.#Q.clear()},reconnect:()=>{for(const t of this.#G.values())this.#V.add(t());for(const[t,e]of this.#Z.entries()){const[s,r]=e();this.#W.set(t,s),this.#K.add(r)}},afterRender:()=>{for(const t of this.#X.values())t()}};#Y;#J;#I=new ne;constructor(t,e){this.#J=t,this.#Y=e}get context(){return this.#Y}rerender(){this.#J()}#G=new Map;#V=new Set;mount(t){const e=this.#I.pull();this.#G.has(e)||(this.#G.set(e,t),this.#V.add(t()))}#Z=new Map;#W=new Map;#K=new Set;init(t){const e=this.#I.pull();if(!this.#Z.has(e)){this.#Z.set(e,t);const[s,r]=t();return this.#W.set(e,s),this.#K.add(r),s}return this.#W.get(e)}#tt=new Map;once(t){const e=this.#I.pull();return r(this.#tt).guarantee(e,t)}#X=new Map;defer(t){const e=this.signal(void 0),s=this.#I.pull();return this.#X.has(s)||this.#X.set(s,(()=>{e.value=t()})),e}#et=new Set;deferOnce(t){this.mount((()=>(this.#et.clear(),()=>{})));const e=this.signal(void 0),s=this.#I.pull();return this.#X.has(s)||this.#X.set(s,(()=>{this.#et.has(s)||(this.#et.add(s),e.value=t())})),e}#st=new Map;state(t){const e=this.#I.pull();return[r(this.#st).guarantee(e,(()=>"function"==typeof t?t():t)),t=>{this.#st.set(e,t),this.#J()},()=>this.#st.get(e)]}#rt=new Map;flatstate(t){const e=this.#I.pull();return r(this.#rt).guarantee(e,(()=>M.state("function"==typeof t?t():t)))}#z=new Map;signal(t){const e=this.#I.pull();return r(this.#z).guarantee(e,(()=>z.signal("function"==typeof t?t():t)))}computed(t){const e=this.#I.pull();return r(this.#z).guarantee(e,(()=>z.computed(t)))}op(){const t=this.#I.pull();return r(this.#z).guarantee(t,(()=>z.op()))}load(t){const e=this.op();return this.once((()=>e.load(t))),e}#Q=new Map;watch(t){const e=this.#I.pull(),{data:s}=r(this.#Q).guarantee(e,(()=>{const e={data:t(),untrack:()=>{}};return e.untrack=O.track(t,(t=>{e.data=t,this.#J()})),e}));return s}#nt=new Map;effect(t,e){e=e.map(C.unwrap);const s=this.#I.pull(),r=this.#nt.get(s);if(r){const[n,i]=r;w.equal(e,i)||(n(),this.#nt.set(s,[t(),e]))}else{this.#G.set(s,t);const r=t();this.#V.add(r),this.#nt.set(s,[r,e])}}}class oe extends ie{#it;get element(){return this.#it}#ot;get shadow(){return this.#ot}styles(...t){this.once((()=>te(this.shadow,[this.context.theme,...t])))}css(...t){return this.styles(...t)}constructor(t,e,s,r){super(s,r),this.#it=t,this.#ot=e}}function ae(t){let e;return function(s){return e||(e=function(t,e){return g.on_change(t,(()=>t.requestUpdate())),g.proxy(t,e)}(t,s)),e}}class ce extends oe{attrs;constructor(t,e,s,r){super(t,e,s,r),this.attrs=ae(t)}}class le extends ie{#it;get element(){return this.#it}attrs;constructor(t,e,s){super(e,s),this.#it=t,this.attrs=ae(t)}}class he extends ce{}class de extends le{}class ue extends ie{element;name(t){this.once((()=>this.element.setAttribute("view",t)))}constructor(t,e,s){super(e,s),this.element=t}}class pe extends oe{name(t){this.once((()=>this.element.setAttribute("view",t)))}}class fe{#Y;constructor(t){this.#Y=t}get context(){if(this.#Y)return this.#Y;throw new Error("nexus.context was not set, but it's necessary")}set context(t){this.#Y=t}}function ge(t,e){const s=T.lean(e);return{stop:s.stop,render:(...e)=>s.collect((()=>t(...e)))}}const me=t=>e=>class extends ee{#at=new he(this,this.root,(()=>{this.requestUpdate()}),t.context);#ct=this.#at[re].wrap((()=>e(this.#at)));#lt;render(){return this.updateComplete.then((()=>this.#at[re].afterRender())),this.#lt?.render()}connectedCallback(){super.connectedCallback(),this.#at[re].reconnect(),this.#lt=ge(this.#ct,(()=>{this.requestUpdate()}))}disconnectedCallback(){super.disconnectedCallback(),this.#at[re].disconnect(),this.#lt&&(this.#lt.stop(),this.#lt=void 0)}},ve=2;
23
- /**
24
- * @license
25
- * Copyright 2020 Google LLC
26
- * SPDX-License-Identifier: BSD-3-Clause
27
- */class we{constructor(t){}get _$AU(){return this._$AM._$AU}_$AT(t,e,s){this._$Ct=t,this._$AM=e,this._$Ci=s}_$AS(t,e){return this.update(t,e)}update(t,e){return this.render(...e)}}
28
- /**
29
- * @license
30
- * Copyright 2017 Google LLC
31
- * SPDX-License-Identifier: BSD-3-Clause
32
- */const be=(t,e)=>{const s=t._$AN;if(void 0===s)return!1;for(const t of s)t._$AO?.(e,!1),be(t,e);return!0},ye=t=>{let e,s;do{if(void 0===(e=t._$AM))break;s=e._$AN,s.delete(t),t=e}while(0===s?.size)},_e=t=>{for(let e;e=t._$AM;t=e){let s=e._$AN;if(void 0===s)e._$AN=s=new Set;else if(s.has(t))break;s.add(t),Ae(e)}};function $e(t){void 0!==this._$AN?(ye(this),this._$AM=t,_e(this)):this._$AM=t}function xe(t,e=!1,s=0){const r=this._$AH,n=this._$AN;if(void 0!==n&&0!==n.size)if(e)if(Array.isArray(r))for(let t=s;t<r.length;t++)be(r[t],!1),ye(r[t]);else null!=r&&(be(r,!1),ye(r));else be(this,t)}const Ae=t=>{t.type==ve&&(t._$AP??=xe,t._$AQ??=$e)};class ke extends we{constructor(){super(...arguments),this._$AN=void 0}_$AT(t,e,s){super._$AT(t,e,s),_e(this),this.isConnected=t._$AU}_$AO(t,e=!0){t!==this.isConnected&&(this.isConnected=t,t?this.reconnected?.():this.disconnected?.()),e&&(be(this,t),ye(this))}setValue(t){if((t=>void 0===t.strings)(this._$Ct))this._$Ct._$AI(t,this);else{const e=[...this._$Ct._$AH];e[this._$Ci]=t,this._$Ct._$AI(e,this,0)}}disconnected(){}reconnected(){}}function Se(){const t=new Set;function e(e){return t.add(e),()=>{t.delete(e)}}return e.publish=e=>{for(const s of t)s(e)},e.clear=()=>t.clear(),e.once=e=>{const s=r=>{e(r),t.delete(s)};return t.add(s),()=>{t.delete(s)}},e}class Ce extends HTMLElement{static tag="slate-view";onConnected=Se();onDisconnected=Se();connectedCallback(){this.onConnected.publish()}disconnectedCallback(){this.onDisconnected.publish()}}function Ee(...t){const e=new Set,s=t.map((t=>t??"")).flatMap(Pe);for(const t of s)e.add(t);return e}function Pe(t){return t.split(/\s+/).map((t=>t.trim())).filter((t=>!!t))}function Me(t){return t.split(",").map((t=>t.trim())).filter((t=>!!t)).map((t=>t.includes(":")?t.split(":").map((t=>t.trim()))[1]:t))}function ze(t,e){const s=Ee(t.getAttribute("part")),r=Ee(t.getAttribute("data-gpart")),n=function(t,e){return Object.fromEntries(Object.entries(e).map((([e,s])=>[e,Array.from(t.querySelectorAll(`[${s}]`)).map((t=>t.getAttribute(s)))])))}(e,{part:"part",gpart:"data-gpart",exportparts:"exportparts",gexportparts:"gexportparts"}),i=new Set([...n.part.flatMap(Pe),...n.exportparts.flatMap(Me)]),o=new Set([...n.gpart.flatMap(Pe),...n.gexportparts.flatMap(Pe)]);i.size&&t.setAttribute("exportparts",[...s].flatMap(function(t,e){return s=>[...t].flatMap((t=>[`${t}:${s}-${t}`,...e.has(t)?[t]:[]]))}(i,o)).join(", ")),(o.size||t.hasAttribute("data-gpart"))&&t.setAttribute("gexportparts",[...o,...[...r].flatMap((t=>[...i].map((e=>`${t}-${e}`))))].join(" "))}function Oe(t,e={},s={}){const{content:r,attrs:n={}}=e,{attrs:i={}}=s;function o(e,s,r,n){e!==s&&(void 0===e?t.removeAttribute(r):t.setAttribute(r,n()))}n&&function(t,e){for(const[s,r]of Object.entries(e))"string"==typeof r?t.setAttribute(s,r):"number"==typeof r?t.setAttribute(s,r.toString()):"boolean"==typeof r?!0===r?t.setAttribute(s,""):t.removeAttribute(s):void 0===r?t.removeAttribute(s):console.warn(`invalid attribute type ${s} is ${typeof r}`)}(t,n),o(n.class,i?.class,"class",(()=>n.class)),o(n.part,i?.part,"part",(()=>n.part)),o(n.gpart,i?.gpart,"data-gpart",(()=>n.gpart)),r&&Qt(r,t,{host:t})}const Ue=t=>e=>(t=>(e,s={})=>({_$litDirective$:t,values:[{meta:s,props:e}]}))(class extends ke{#D;#ht=!0;#F=function({afterRender:t,onConnected:e,onDisconnected:s}){const r=document.createElement(Ce.tag);r.onConnected(e),r.onDisconnected(s);const n=r.attachShadow({mode:"open"});let i=!1;return{container:r,shadow:n,set auto_exportparts(t){i=t},render_into_shadow:e=>(Qt(e,n),i&&ze(r,n),t(),r)}}({afterRender:()=>this.#at[re].afterRender(),onDisconnected:()=>this.disconnected(),onConnected:()=>{this.#ht||this.reconnected(),this.#ht=!1}});#J=d(0,(()=>{this.#D&&this.isConnected&&this.setValue(this.#F.render_into_shadow(this.render(this.#D)))}));#at=new pe(this.#F.container,this.#F.shadow,this.#J,t.context);#ct=this.#at[re].wrap(e(this.#at));#lt=ge(this.#ct,this.#J);update(t,e){return this.#F.render_into_shadow(this.render(...e))}render(t){return Oe(this.#F.container,t.meta,this.#D?.meta),this.#D=t,this.#F.auto_exportparts=t.meta.auto_exportparts??!0,this.#lt?.render(...t.props)}reconnected(){this.#at[re].reconnect(),this.#lt=ge(this.#ct,this.#J)}disconnected(){this.#at[re].disconnect(),this.#lt&&(this.#lt.stop(),this.#lt=void 0)}}),Te=t=>e=>class extends se{#at=new de(this,(()=>{this.requestUpdate()}),t.context);#ct=this.#at[re].wrap((()=>e(this.#at)));#lt;render(){return this.updateComplete.then((()=>this.#at[re].afterRender())),this.#lt?.render()}connectedCallback(){super.connectedCallback(),this.#lt=ge(this.#ct,(()=>{this.requestUpdate()})),this.#at[re].reconnect()}disconnectedCallback(){super.disconnectedCallback(),this.#lt&&(this.#lt.stop(),this.#lt=void 0),this.#at[re].disconnect()}},je=t=>e=>(t=>(...e)=>({_$litDirective$:t,values:e}))(class extends ke{#dt;#it=document.createElement(Ce.tag);#ut(t){return Qt(t,this.#it),this.#at[re].afterRender(),this.#it}#J=d(0,(()=>{this.#dt&&this.isConnected&&this.setValue(this.#ut(this.render(...this.#dt)))}));#at=new ue(this.#it,this.#J,t.context);#ct=this.#at[re].wrap(e(this.#at));#lt=ge(this.#ct,this.#J);update(t,e){return this.#ut(this.render(...e))}render(...t){return this.#dt=t,this.#lt?.render(...t)}reconnected(){this.#at[re].reconnect(),this.#lt=ge(this.#ct,this.#J)}disconnected(){this.#at[re].disconnect(),this.#lt&&(this.#lt.stop(),this.#lt=void 0)}});Q`
33
- @layer reset {
34
- * {
35
- margin: 0;
36
- padding: 0;
37
- box-sizing: border-box;
38
-
39
- scrollbar-width: thin;
40
- scrollbar-color: #888 transparent;
41
- }
42
-
43
- ::-webkit-scrollbar { width: 8px; }
44
- ::-webkit-scrollbar-track { background: transparent; }
45
- ::-webkit-scrollbar-thumb { background: #333; border-radius: 1em; }
46
- ::-webkit-scrollbar-thumb:hover { background: #444; }
47
- }
48
- `;const qe=(t,...e)=>zt(t,...e.map(C.unwrap));const De=Q`
49
- :host {
50
- display: contents;
51
- }
52
- `;"undefined"!=typeof process&&process.versions&&process.versions.node||"undefined"!=typeof Deno&&void 0!==Deno.version||L({SlateView:Ce},{soft:!0});const Ne=new class extends fe{lightComponent;shadowComponent;lightView;shadowView;shadowComponentify;constructor(t){super(t),this.lightComponent=Te(this),this.shadowComponent=me(this),this.lightView=je(this),this.shadowView=Ue(this),this.shadowComponentify=(t=>e=>t.shadowComponent((t=>(t.styles(De),e([])))))(this)}component=t=>q.setup(this.context.theme)(t);components=t=>H.setup(this.context.theme)(t)}(new class{theme=[]}),Re=Ne;Ne.lightView,Ne.lightComponent;const He=Ne.shadowView,Fe=Ne.shadowComponent;function Le(t,e){const s=setInterval(e,t);return()=>clearInterval(s)}Ne.component,Ne.components,Ne.shadowComponentify,Le.hz=(t,e)=>Le(1e3/t,e);const Be=Q`
53
- :host {
54
- color: red;
55
- font-family: monospace;
1
+ var Lr=Object.defineProperty;var yt=(r,e)=>{for(var t in e)Lr(r,t,{get:e[t],enumerable:!0})};var xe=globalThis,ye=xe.ShadowRoot&&(xe.ShadyCSS===void 0||xe.ShadyCSS.nativeShadow)&&"adoptedStyleSheets"in Document.prototype&&"replace"in CSSStyleSheet.prototype,nt=Symbol(),wt=new WeakMap,oe=class{constructor(e,t,o){if(this._$cssResult$=!0,o!==nt)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(ye&&e===void 0){let o=t!==void 0&&t.length===1;o&&(e=wt.get(t)),e===void 0&&((this.o=e=new CSSStyleSheet).replaceSync(this.cssText),o&&wt.set(t,e))}return e}toString(){return this.cssText}},$t=r=>new oe(typeof r=="string"?r:r+"",void 0,nt),h=(r,...e)=>{let t=r.length===1?r[0]:e.reduce(((o,s,n)=>o+(a=>{if(a._$cssResult$===!0)return a.cssText;if(typeof a=="number")return a;throw Error("Value passed to 'css' function must be a 'css' function result: "+a+". Use 'unsafeCSS' to pass non-literal values, but take care to ensure page security.")})(s)+r[n+1]),r[0]);return new oe(t,r,nt)},we=(r,e)=>{if(ye)r.adoptedStyleSheets=e.map((t=>t instanceof CSSStyleSheet?t:t.styleSheet));else for(let t of e){let o=document.createElement("style"),s=xe.litNonce;s!==void 0&&o.setAttribute("nonce",s),o.textContent=t.cssText,r.appendChild(o)}},Y=ye?r=>r:r=>r instanceof CSSStyleSheet?(e=>{let t="";for(let o of e.cssRules)t+=o.cssText;return $t(t)})(r):r;var{is:Rr,defineProperty:qr,getOwnPropertyDescriptor:Dr,getOwnPropertyNames:Nr,getOwnPropertySymbols:Hr,getPrototypeOf:jr}=Object,$e=globalThis,At=$e.trustedTypes,Ur=At?At.emptyScript:"",Fr=$e.reactiveElementPolyfillSupport,se=(r,e)=>r,it={toAttribute(r,e){switch(e){case Boolean:r=r?Ur: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}},St=(r,e)=>!Rr(r,e),_t={attribute:!0,type:String,converter:it,reflect:!1,useDefault:!1,hasChanged:St};Symbol.metadata??=Symbol("metadata"),$e.litPropertyMetadata??=new WeakMap;var q=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=_t){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&&qr(this.prototype,e,s)}}static getPropertyDescriptor(e,t,o){let{get:s,set:n}=Dr(this.prototype,e)??{get(){return this[t]},set(a){this[t]=a}};return{get:s,set(a){let u=s?.call(this);n?.call(this,a),this.requestUpdate(e,u,o)},configurable:!0,enumerable:!0}}static getPropertyOptions(e){return this.elementProperties.get(e)??_t}static _$Ei(){if(this.hasOwnProperty(se("elementProperties")))return;let e=jr(this);e.finalize(),e.l!==void 0&&(this.l=[...e.l]),this.elementProperties=new Map(e.elementProperties)}static finalize(){if(this.hasOwnProperty(se("finalized")))return;if(this.finalized=!0,this._$Ei(),this.hasOwnProperty(se("properties"))){let t=this.properties,o=[...Nr(t),...Hr(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(Y(s))}else e!==void 0&&t.push(Y(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 we(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:it).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),a=typeof n.converter=="function"?{fromAttribute:n.converter}:n.converter?.fromAttribute!==void 0?n.converter:it;this._$Em=s,this[s]=a.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??St)(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},a){o&&!(this._$Ej??=new Map).has(e)&&(this._$Ej.set(e,a??t??this[e]),n!==!0||a!==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:a}=n,u=this[s];a!==!0||this._$AL.has(s)||u===void 0||this.C(s,void 0,n,u)}}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){}};q.elementStyles=[],q.shadowRootOptions={mode:"open"},q[se("elementProperties")]=new Map,q[se("finalized")]=new Map,Fr?.({ReactiveElement:q}),($e.reactiveElementVersions??=[]).push("2.1.0");var ct=globalThis,Ae=ct.trustedTypes,Et=Ae?Ae.createPolicy("lit-html",{createHTML:r=>r}):void 0,lt="$lit$",D=`lit$${Math.random().toFixed(9).slice(2)}$`,ut="?"+D,Ir=`<${ut}>`,B=document,ie=()=>B.createComment(""),ae=r=>r===null||typeof r!="object"&&typeof r!="function",pt=Array.isArray,Ot=r=>pt(r)||typeof r?.[Symbol.iterator]=="function",at=`[
2
+ \f\r]`,ne=/<(?:(!--|\/[^a-zA-Z])|(\/?[a-zA-Z][^>\s]*)|(\/?$))/g,kt=/-->/g,Ct=/>/g,F=RegExp(`>|${at}(?:([^\\s"'>=/]+)(${at}*=${at}*(?:[^
3
+ \f\r"'\`<>=]|("|')|))|$)`,"g"),Tt=/'/g,Pt=/"/g,Mt=/^(?:script|style|textarea|title)$/i,dt=r=>(e,...t)=>({_$litType$:r,strings:e,values:t}),p=dt(1),Eo=dt(2),ko=dt(3),G=Symbol.for("lit-noChange"),g=Symbol.for("lit-nothing"),zt=new WeakMap,I=B.createTreeWalker(B,129);function Lt(r,e){if(!pt(r)||!r.hasOwnProperty("raw"))throw Error("invalid template strings array");return Et!==void 0?Et.createHTML(e):e}var Rt=(r,e)=>{let t=r.length-1,o=[],s,n=e===2?"<svg>":e===3?"<math>":"",a=ne;for(let u=0;u<t;u++){let i=r[u],c,l,d=-1,E=0;for(;E<i.length&&(a.lastIndex=E,l=a.exec(i),l!==null);)E=a.lastIndex,a===ne?l[1]==="!--"?a=kt:l[1]!==void 0?a=Ct:l[2]!==void 0?(Mt.test(l[2])&&(s=RegExp("</"+l[2],"g")),a=F):l[3]!==void 0&&(a=F):a===F?l[0]===">"?(a=s??ne,d=-1):l[1]===void 0?d=-2:(d=a.lastIndex-l[2].length,c=l[1],a=l[3]===void 0?F:l[3]==='"'?Pt:Tt):a===Pt||a===Tt?a=F:a===kt||a===Ct?a=ne:(a=F,s=void 0);let H=a===F&&r[u+1].startsWith("/>")?" ":"";n+=a===ne?i+Ir:d>=0?(o.push(c),i.slice(0,d)+lt+i.slice(d)+D+H):i+D+(d===-2?u:H)}return[Lt(r,n+(r[t]||"<?>")+(e===2?"</svg>":e===3?"</math>":"")),o]},ce=class r{constructor({strings:e,_$litType$:t},o){let s;this.parts=[];let n=0,a=0,u=e.length-1,i=this.parts,[c,l]=Rt(e,t);if(this.el=r.createElement(c,o),I.currentNode=this.el.content,t===2||t===3){let d=this.el.content.firstChild;d.replaceWith(...d.childNodes)}for(;(s=I.nextNode())!==null&&i.length<u;){if(s.nodeType===1){if(s.hasAttributes())for(let d of s.getAttributeNames())if(d.endsWith(lt)){let E=l[a++],H=s.getAttribute(d).split(D),be=/([.?@])?(.*)/.exec(E);i.push({type:1,index:n,name:be[2],strings:H,ctor:be[1]==="."?Se:be[1]==="?"?Ee:be[1]==="@"?ke:V}),s.removeAttribute(d)}else d.startsWith(D)&&(i.push({type:6,index:n}),s.removeAttribute(d));if(Mt.test(s.tagName)){let d=s.textContent.split(D),E=d.length-1;if(E>0){s.textContent=Ae?Ae.emptyScript:"";for(let H=0;H<E;H++)s.append(d[H],ie()),I.nextNode(),i.push({type:2,index:++n});s.append(d[E],ie())}}}else if(s.nodeType===8)if(s.data===ut)i.push({type:2,index:n});else{let d=-1;for(;(d=s.data.indexOf(D,d+1))!==-1;)i.push({type:7,index:n}),d+=D.length-1}n++}}static createElement(e,t){let o=B.createElement("template");return o.innerHTML=e,o}};function W(r,e,t=r,o){if(e===G)return e;let s=o!==void 0?t._$Co?.[o]:t._$Cl,n=ae(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=W(r,s._$AS(r,e.values),s,o)),e}var _e=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??B).importNode(t,!0);I.currentNode=s;let n=I.nextNode(),a=0,u=0,i=o[0];for(;i!==void 0;){if(a===i.index){let c;i.type===2?c=new X(n,n.nextSibling,this,e):i.type===1?c=new i.ctor(n,i.name,i.strings,this,e):i.type===6&&(c=new Ce(n,this,e)),this._$AV.push(c),i=o[++u]}a!==i?.index&&(n=I.nextNode(),a++)}return I.currentNode=B,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++}},X=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=W(this,e,t),ae(e)?e===g||e==null||e===""?(this._$AH!==g&&this._$AR(),this._$AH=g):e!==this._$AH&&e!==G&&this._(e):e._$litType$!==void 0?this.$(e):e.nodeType!==void 0?this.T(e):Ot(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&&ae(this._$AH)?this._$AA.nextSibling.data=e:this.T(B.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=ce.createElement(Lt(o.h,o.h[0]),this.options)),o);if(this._$AH?._$AD===s)this._$AH.p(t);else{let n=new _e(s,this),a=n.u(this.options);n.p(t),this.T(a),this._$AH=n}}_$AC(e){let t=zt.get(e.strings);return t===void 0&&zt.set(e.strings,t=new ce(e)),t}k(e){pt(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(ie()),this.O(ie()),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))}},V=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,a=!1;if(n===void 0)e=W(this,e,t,0),a=!ae(e)||e!==this._$AH&&e!==G,a&&(this._$AH=e);else{let u=e,i,c;for(e=n[0],i=0;i<n.length-1;i++)c=W(this,u[o+i],t,i),c===G&&(c=this._$AH[i]),a||=!ae(c)||c!==this._$AH[i],c===g?e=g:e!==g&&(e+=(c??"")+n[i+1]),this._$AH[i]=c}a&&!s&&this.j(e)}j(e){e===g?this.element.removeAttribute(this.name):this.element.setAttribute(this.name,e??"")}},Se=class extends V{constructor(){super(...arguments),this.type=3}j(e){this.element[this.name]=e===g?void 0:e}},Ee=class extends V{constructor(){super(...arguments),this.type=4}j(e){this.element.toggleAttribute(this.name,!!e&&e!==g)}},ke=class extends V{constructor(e,t,o,s,n){super(e,t,o,s,n),this.type=5}_$AI(e,t=this){if((e=W(this,e,t,0)??g)===G)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)}},Ce=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){W(this,e)}},qt={M:lt,P:D,A:ut,C:1,L:Rt,R:_e,D:Ot,V:W,I:X,H:V,N:Ee,U:ke,B:Se,F:Ce},Br=ct.litHtmlPolyfillSupport;Br?.(ce,X),(ct.litHtmlVersions??=[]).push("3.3.0");var v=(r,e,t)=>{let o=t?.renderBefore??e,s=o._$litPart$;if(s===void 0){let n=t?.renderBefore??null;o._$litPart$=s=new X(e.insertBefore(ie(),n),n,void 0,t??{})}return s._$AI(r),s};var ht=globalThis,ee=class extends q{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=v(t,this.renderRoot,this.renderOptions)}connectedCallback(){super.connectedCallback(),this._$Do?.setConnected(!0)}disconnectedCallback(){super.disconnectedCallback(),this._$Do?.setConnected(!1)}render(){return G}};ee._$litElement$=!0,ee.finalized=!0,ht.litElementHydrateSupport?.({LitElement:ee});var Gr=ht.litElementPolyfillSupport;Gr?.({LitElement:ee});(ht.litElementVersions??=[]).push("4.2.0");var T={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},y={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)y.any(r,t,o)},record:(r,e)=>y.entries(r,Object.entries(e))};function Dt(r,e={}){let t=document.createElement(r);return y.record(t,e),t}function Nt(r){let e=document.createDocumentFragment();return v(r,e),e.firstElementChild}function Te(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,a]=s;r.addEventListener(o,a,n),t.push(()=>r.removeEventListener(o,a))}return()=>t.forEach(o=>o())}function Ht(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)=>T.string(this.element,t),set:(e,t,o)=>y.string(this.element,t,o)});numbers=new Proxy({},{get:(e,t)=>T.number(this.element,t),set:(e,t,o)=>y.number(this.element,t,o)});booleans=new Proxy({},{get:(e,t)=>T.boolean(this.element,t),set:(e,t,o)=>y.boolean(this.element,t,o)})};var jt=(r,e,t={})=>new Proxy(e,{get:(o,s)=>{switch(e[s]){case String:return T.string(r,s);case Number:return T.number(r,s);case Boolean:return T.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 y.string(r,s,n);case Number:return y.number(r,s,n);case Boolean:return y.boolean(r,s,n);default:throw new Error(`invalid attribute type for "${s}"`)}}finally{t.afterSet?.(s)}}});function te(r){let e=new Pe(r);return{strings:e.strings,numbers:e.numbers,booleans:e.booleans,on:t=>Ht(r,t),spec:(t,o={})=>jt(r,t,o)}}te.get=T;te.set=y;function Ut(r){return new ft(r)}var ft=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 y.entries(e,this.#e),e.append(...this.#t),e}};function re(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 Oe(r,e=document){return Array.from(e.querySelectorAll(r))}var Me=class r{element;#e;constructor(e){this.element=e}in(e){return new r(typeof e=="string"?re(e,this.element):e)}require(e){return re(e,this.element)}maybe(e){return ze(e,this.element)}all(e){return Oe(e,this.element)}render(...e){return v(e,this.element)}get attrs(){return this.#e??=te(this.element)}events(e){return Te(this.element,e)}};function Ft(r){return r.replace(/([a-zA-Z])(?=[A-Z])/g,"$1-").toLowerCase()}function It(r,e={}){let{soft:t=!1,upgrade:o=!0}=e;for(let[s,n]of Object.entries(r)){let a=Ft(s),u=customElements.get(a);t&&u||(customElements.define(a,n),o&&document.querySelectorAll(a).forEach(i=>{i.constructor===HTMLElement&&customElements.upgrade(i)}))}}function w(r,e=document){return re(r,e)}w.in=(r,e=document)=>new Me(e).in(r);w.need=re;w.maybe=ze;w.all=Oe;w.el=Dt;w.elmer=Ut;w.mk=Nt;w.events=Te;w.attrs=te;w.register=It;w.render=(r,...e)=>v(e,r);var qe={};yt(qe,{DragAndDrops:()=>mt,Drops:()=>gt,files:()=>Jr,hasFiles:()=>Zr,outsideCurrentTarget:()=>de});var P={};yt(P,{clone:()=>le,equal:()=>Wr,freeze:()=>Vr});function le(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=>le(o,new Set(e))):r.constructor===Object?t=Object.fromEntries(Object.entries(r).map(([o,s])=>[o,le(s,new Set(e))])):r instanceof Map?t=new Map(Array.from(r,([o,s])=>[o,le(s,new Set(e))])):r instanceof Set?t=new Set(Array.from(r,o=>le(o,new Set(e)))):r instanceof Date?t=new Date(r.getTime()):t=r,e.delete(r)):t=r,t}var ue=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 Wr=(r,e)=>{function t(o,s,n){if(!ue.object(o)||!ue.object(s))return o===s;if(n.includes(o))throw new Error("forbidden circularity detected in deep equal comparison");let a=[...n,o];if(o instanceof Map&&s instanceof Map){if(o.size!==s.size)return!1;for(let[u,i]of o)if(!s.has(u)||!t(i,s.get(u),a))return!1}else if(o instanceof Set&&s instanceof Set){if(o.size!==s.size)return!1;for(let u of o)if(!Array.from(s).some(i=>t(u,i,a)))return!1}else{let u=Object.keys(o),i=Object.keys(s);if(u.length!==i.length)return!1;for(let c of u)if(!i.includes(c)||!t(o[c],s[c],a))return!1}return!0}return t(r,e,[])};function Vr(r){function e(t,o){if(!ue.object(t)||o.includes(t))return t;let s=[...o,t];if(t instanceof Map)for(let n of t.entries())for(let a of n)e(a,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 Bt(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 Gt(r){if(r.ok)throw new Error("didn't get needed error");return r.error}function Wt(r,e,t){if(r.has(e))return r.get(e);{let o=t();return r.set(e,o),o}}var Le=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=Wt(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 Le;function f(r){return function e(){return arguments.length===0?(b.read(e),r):(r=arguments[0],b.write(e),r)}}var pn=b.batch;function Qt(r){return P.freeze(P.clone(r))}var z=Symbol("optic");var pe=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 Re=class r{[z];#e;#t;#r;constructor(e){this[z]=e,this.#e=P.clone(e.getState()),this.#t=new pe(()=>P.clone(e.getState())),this.#r=new pe(()=>Qt(e.getState()))}update(){let e=this[z].getState();!P.equal(e,this.#e)&&(this.#t.invalidate(),this.#r.invalidate(),this.#e=P.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[z].mutate(e)}lens(e){let t=new r({getState:()=>e(this[z].getState()),mutate:o=>this[z].mutate(s=>o(e(s))),registerLens:this[z].registerLens});return this[z].registerLens(t),t}};function Kt(r){if(!r.done)throw new Error("wait not done");return Bt(r)}function Zt(r){if(!r.done)throw new Error("wait not done");return Gt(r)}var Jt=r=>!r.done;var Yt=r=>r.done&&r.ok;function Xt(r,e){let{pending:t=()=>{},ok:o=()=>{},err:s=()=>{}}=e;return Jt(r)?t():Yt(r)?o(Kt(r)):s(Zt(r))}function Zr(r){return!!(r.dataTransfer&&r.dataTransfer.types.includes("Files"))}function Jr(r){return r.dataTransfer?Array.from(r.dataTransfer.files):[]}function de(r){let e=r.currentTarget,t=r.relatedTarget;return!e||!t||!e.contains(t)}var mt=class{params;$draggy=f(void 0);$droppy=f(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=>{de(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 gt=class{params;$indicator=f(!1);constructor(e){this.params=e}dragover=e=>{e.preventDefault(),this.$indicator(this.params.predicate(e))};dragleave=e=>{de(e)&&this.$indicator(!1)};drop=e=>{e.preventDefault(),this.$indicator(!1),this.params.predicate(e)&&this.params.acceptDrop(e)}};function he(){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 De(r){let e=null;return((...t)=>(e?e.params=t:(e={params:t,deferred:he()},queueMicrotask(()=>{let{params:o,deferred:s}=e;e=null,Promise.resolve(r(...o)).then(s.resolve).catch(s.reject)})),e.deferred.promise))}function er(r,e,t){if(r.has(e))return r.get(e);{let o=t();return r.set(e,o),o}}function tr(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 rr=(r=0)=>new Promise(e=>setTimeout(e,r));var Ne=h`
4
+ * {
5
+ margin: 0;
6
+ padding: 0;
7
+ box-sizing: border-box;
8
+
9
+ scrollbar-width: thin;
10
+ scrollbar-color: #888 transparent;
56
11
  }
57
- `;Re.shadowView((t=>e=>(t.name("error-indicator"),t.styles(Be),qe`${e||"unknown error"}`)));const Ie=Q`
12
+
13
+ ::-webkit-scrollbar { width: 8px; }
14
+ ::-webkit-scrollbar-track { background: transparent; }
15
+ ::-webkit-scrollbar-thumb { background: #888; border-radius: 1em; }
16
+ ::-webkit-scrollbar-thumb:hover { background: #999; }
17
+ `;var He=class r extends HTMLElement{static register(){w.register({SlyShadow:r},{soft:!0})}connectedCallback(){this.hasAttribute("view")||this.setAttribute("view","")}};var je=class{render;count=0;rendered=he();constructor(e){this.render=e}doneRender(){this.count++,this.rendered.resolve(),this.rendered=he()}},j=class extends je{host;shadow;constructor(e,t,o){super(e),this.host=t,this.shadow=o}};var vt=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()}}},C=globalThis[Symbol.for("e280.hooks")]??=new vt;var Q=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 a=b.subscribe(n,t);this.#e.push(a)}return s}};function k(r){let{scope:e,position:t}=C.increment();return er(e.values,t,r)}function N(r){let{scope:e}=C.increment();return k(()=>e.mounts.mount(r))}var Ue=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 K=class{cx;position=0;values=new Map;mounts=new Ue;constructor(e){this.cx=e}};var{I:za}=qt;var or=r=>r.strings===void 0;var sr={ATTRIBUTE:1,CHILD:2,PROPERTY:3,BOOLEAN_ATTRIBUTE:4,EVENT:5,ELEMENT:6},Ie=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 fe=(r,e)=>{let t=r._$AN;if(t===void 0)return!1;for(let o of t)o._$AO?.(e,!1),fe(o,e);return!0},Be=r=>{let e,t;do{if((e=r._$AM)===void 0)break;t=e._$AN,t.delete(r),r=e}while(t?.size===0)},nr=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),ro(e)}};function eo(r){this._$AN!==void 0?(Be(this),this._$AM=r,nr(this)):this._$AM=r}function to(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++)fe(o[n],!1),Be(o[n]);else o!=null&&(fe(o,!1),Be(o));else fe(this,r)}var ro=r=>{r.type==sr.CHILD&&(r._$AP??=to,r._$AQ??=eo)},me=class extends Fe{constructor(){super(...arguments),this._$AN=void 0}_$AT(e,t,o){super._$AT(e,t,o),nr(this),this.isConnected=e._$AU}_$AO(e,t=!0){e!==this.isConnected&&(this.isConnected=e,e?this.reconnected?.():this.disconnected?.()),t&&(fe(this,e),Be(this))}setValue(e){if(or(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 _(r){return class extends HTMLElement{#e;#t;#r=new Q;#s=this.attachShadow({mode:"open"});constructor(){super();let e=De(()=>{if(!this.isConnected)return;let t=this.#o();v(t,this.#e.shadow),this.#e.doneRender()});this.#e=new j(e,this,this.#s),this.#t=new K(this.#e)}#o(){return this.#r.observe(()=>C.wrap(this.#t,()=>r()),this.#e.render)}render(){v(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 Ge(r){return k(()=>new bt(r))}var bt=class{current;constructor(e){this.current=e}};function ir(){let{scope:r}=C.increment();return r.cx}function ar(){let r=ir();if(!(r instanceof j))throw new Error("this hook only works on shadow views (but was called in a light view)");return r}function Z(){return ir().render}function x(){return ar().host}function cr(){return ar().shadow}function lr(r,e){we(r,oo(e))}function oo(r){let e=[];if(Array.isArray(r)){let t=new Set(r.flat(1/0).reverse());for(let o of t)e.unshift(Y(o))}else r!==void 0&&e.push(Y(r));return e}function so(...r){let e=cr();k(()=>lr(e,r))}var m=so;function We(r=""){let e=x();k(()=>e.setAttribute("view",r))}function ur(r){return k(()=>f(r))}function pr(r){let e=Z(),t=Ge(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 dr(r,e){for(let[t,o]of Object.entries(e))no(r,t,o)}function no(r,e,t){let o=r.getAttribute(e),s=io(t);s!==o&&(s===null?r.removeAttribute(e):r.setAttribute(e,s))}function io(r){return typeof r=="string"?r:typeof r=="number"?r.toString():r?"":null}function ao(){He.register();let r=document.createElement("sly-shadow"),e=r.attachShadow({mode:"open"});return{host:r,shadow:e}}function J(r){return hr(ao,r)}J.setup=r=>(e=>hr(r,e));function hr(r,e){let t=Ie(class extends me{#e;#t;#r;#s=new Q;constructor(s){super(s);let{host:n,shadow:a}=r(),u=De(()=>{if(!this.#r)throw new Error("cannot render before props");if(!this.isConnected)return;let i=this.#o(this.#r);v(i,this.#e.shadow),this.#e.doneRender()});this.#e=new j(u,n,a),this.#t=new K(this.#e)}#o(s){return this.#r=s,this.#s.observe(()=>C.wrap(this.#t,()=>e(...this.#r)),this.#e.render)}render({props:s,children:n,attrs:a}){let{host:u}=this.#e;return this.isConnected&&(a&&dr(u,a),v(n,this.#e.host),v(this.#o(s),this.#e.shadow),this.#e.doneRender()),u}disconnected(){v(null,this.#e.shadow),v(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 O(r,e){return()=>co({hz:r,frames:e})}var co=J(({hz:r,frames:e})=>{We("loading"),m(Ne,lo);let t=ur(0);return N(()=>tr(async()=>{await rr(1e3/r);let o=t()+1;t(o>=e.length?0:o)})),e.at(t())}),lo=h`
18
+ :host {
19
+ font-family: monospace;
20
+ white-space: pre;
21
+ user-select: none;
22
+ }
23
+ `;var M=J(r=>(We("error"),m(Ne,uo),typeof r=="string"?r:r instanceof Error?p`<strong>${r.name}:</strong> <span>${r.message}</span>`:"error")),uo=h`
58
24
  :host {
59
25
  font-family: monospace;
26
+ color: red;
60
27
  }
61
- `;Re.shadowView((t=>(e,s)=>{t.name("loading-indicator"),t.styles(Ie);const r=t.signal(0);return t.mount((()=>Le.hz(e,(()=>{const t=r.value+1;r.value=t<s.length?t:0})))),qe`${s[r.value]}`}));class Ve{#pt;constructor(t){this.#pt=t}#c=M.state({grabbed:void 0,hovering:void 0});dragzone={draggable:()=>"true",dragstart:t=>e=>{this.#c.grabbed=t},dragend:()=>t=>{this.#c.grabbed=void 0,this.#c.hovering=void 0}};dropzone={dragenter:()=>t=>{},dragleave:()=>t=>{(function(t){if(!t.relatedTarget||0===t.clientX&&0===t.clientY)return!0;const e=t.currentTarget.getBoundingClientRect(),s=t.clientX>=e.left&&t.clientX<=e.right,r=t.clientY>=e.top&&t.clientY<=e.bottom;return!(s&&r)})(t)&&(this.#c.hovering=void 0)},dragover:t=>e=>{const{out_of_band:s}=this.#pt;e.preventDefault(),(this.#c.grabbed||s&&s.predicate(e,t))&&(this.#c.hovering=t)},drop:t=>e=>{const{handle_drop:s,out_of_band:r}=this.#pt;e.preventDefault();const{grabbed:n}=this.#c;this.#c.grabbed=void 0,this.#c.hovering=void 0,n?s(e,n,t):r&&r.predicate(e,t)&&r.handle_drop(e,t)}};get grabbed(){return this.#c.grabbed}get hovering(){return this.#c.hovering}}const Ke=[..."aeiou"],We=[..."bcdfghjklmnprstvwxyz"],Qe=new Set(["fuc","sex","cum","dic","coc","pen","vag","pus","gay","fap","jiz","fag","cun","nig","jew","goy","sem","bal","fat","god","big","dog","cow","pet","vax","sis","rot","zog","ana","uti","cat","bag","cuc","fuk","fak","wet","cux","bug","gey","pig","rat","bat","dik","bed","boy","man","fem","men","nob","rub","fut","jap","tit","gun","job","nip","but","rim","guy","suc","dad","mom","buk","jis","peg","kox","ded","mum","son","nog","hun","wop","cuk"]);function Ge(t,e){const s=e.length-t;if(s<=0)return e;const r=e.length/s,n=[];let i=r;for(let t=0;t<e.length;t++)t>=Math.round(i)?i+=r:n.push(e[t]);return n.slice(0,t)}function Ze(t){return[...new Set(t)]}const Xe=Ze(Ge(256,We.map((t=>Ke.map((e=>We.map((s=>t+e+s)))))).flat(2).filter((t=>!Qe.has(t))))),Ye=Ze(Ge(256,Ke.map((t=>We.map((e=>Ke.map((s=>t+e+s)))))).flat(2).filter((t=>!Qe.has(t))))),Je=Ze([...Ge(192,Xe),...Ge(64,Ye)]);if(256!==Xe.length)throw new Error("xox not 256");if(256!==Ye.length)throw new Error("oxo not 256");if(256!==Je.length)throw new Error("syllables not 256");var ts;new Set([..."अआइईउऊऋएऐओऔकखगघङचछजझञटठडढणतथदधनपफबभमयरलवशषसह",..."அஆஇஈஉஊஎஏஐஒஓகஙசஜஞடணதநபமயரலவழளறன",..."অআইঈউঊএঐওকখগঘঙচছজঝঞটঠডঢণতথদধনপফবভমযরলশষসহ",..."ਅਆਇਈਉਊਏਐਓਕਖਗਘਙਚਛਜਝਞਟਠਡਢਣਤਥਦਧਨਪਫਬਭਮਯਰਲਵਸਹ",..."അആഇഈഉഊഎഏഐഒഓകഖഗഘങചഛജഝഞടഠഡഢണതഥദധനപഫബഭമയരലവശസഹളഴറ",..."અઆઇઈઉઊએઐઓકખગઘઙચછજઝઞટઠડઢણતથદધનપફબભમયરલવશષસહ",..."ଅଆଇଈଉଊଏଐଓଔକଖଗଘଙଚଛଜଝଞଟଠଡଢଣତଥଦଧନପଫବଭମଯରଲଶଷସହ"]),function(t){t.actualize=function t(e,s){return $(s).map((s=>"function"==typeof s?(...t)=>{e.transmute((e=>(s(e,(t=>{e=t}))(...t),e)))}:t(e,s)))},t.fn=function(){return t=>t},t.blueprint=function(){return t=>t},t.prepFn=t=>e=>(s,r)=>(...n)=>(e(t(s,r))(...n),s),t.prepBlueprint=e=>s=>s(t.prepFn(e)),t.prep=function(e){return{action:t.prepFn(e),blueprint:t.prepBlueprint(e)}}}(ts||(ts={}));
62
- /**
63
- * @license
64
- * Copyright 2017 Google LLC
65
- * SPDX-License-Identifier: BSD-3-Clause
66
- */
67
- class es extends we{constructor(t){if(super(t),this.it=Ut,t.type!==ve)throw Error(this.constructor.directiveName+"() can only be used in child bindings")}render(t){if(t===Ut||null==t)return this._t=void 0,this.it=t;if(t===Ot)return t;if("string"!=typeof t)throw Error(this.constructor.directiveName+"() called with a non-string value");if(t===this.it)return this._t;this.it=t;const e=[t];return e.raw=e,this._t={_$litType$:this.constructor.resultType,strings:e,values:[]}}}es.directiveName="unsafeHTML",es.resultType=1;const ss=Object.freeze({eq(t,e){if(t.length!==e.length)return!1;for(let s=0;s<=t.length;s++)if(t.at(s)!==e.at(s))return!1;return!0},random:t=>crypto.getRandomValues(new Uint8Array(t))}),rs=Object.freeze({fromBytes:t=>[...t].map((t=>t.toString(16).padStart(2,"0"))).join(""),toBytes(t){if(t.length%2!=0)throw new Error("must have even number of hex characters");const e=new Uint8Array(t.length/2);for(let s=0;s<t.length;s+=2)e[s/2]=parseInt(t.slice(s,s+2),16);return e},random(t=32){return this.fromBytes(ss.random(t))},string:t=>rs.fromBytes(t),bytes:t=>rs.toBytes(t)});class ns extends Map{static require(t,e){const s=t.get(e);if(void 0===s)throw new Error(`required key not found: "${e}"`);return s}static guarantee(t,e,s){let r=t.get(e);return void 0===r&&(r=s(),t.set(e,r)),r}array(){return[...this]}require(t){return ns.require(this,t)}guarantee(t,e){return ns.guarantee(this,t,e)}}function is(){const t=new Set;function e(e){return t.add(e),()=>{t.delete(e)}}async function s(...e){await Promise.all([...t].map((t=>t(...e))))}async function r(){const{promise:t,resolve:s}=function(){let t,e;const s=new Promise(((s,r)=>{t=s,e=r}));return{promise:s,resolve:t,reject:e,entangle:function(r){return r.then(t).catch(e),s}}}(),r=e(((...t)=>{s(t),r()}));return t}function n(){t.clear()}return e.pub=s,e.sub=e,e.on=e,e.once=r,e.clear=n,s.pub=s,s.sub=e,s.on=e,s.once=r,s.clear=n,[s,e]}function os(t){return is()[1]}const as=new class{#ft=new ns;setGroup(t,e){return this.#ft.set(t,e),e}getGroup(t){return this.#ft.require(t)}};var cs=Q`@layer theme, view; @layer theme {
28
+ `;function L(r,e){return(t,o)=>Xt(t,{pending:r,err:e,ok:o})}var Ll=L(O(10,[" "," ",". ",".. ","..."," .."," ."]),M);var Hl=L(O(3,["\u{1F30E}","\u{1F30F}","\u{1F30D}"]),M);var Bl=L(O(10,["\u{1F312}","\u{1F313}","\u{1F314}","\u{1F315}","\u{1F316}","\u{1F317}","\u{1F318}","\u{1F311}","\u{1F311}","\u{1F311}"]),M);var Kl=L(O(16,["|","/","-","\\"]),M);var eu=L(O(20,[":....",":....","::...",".::..","..::.","...::","....:","....:","...::","..::.",".::..","::..."]),M);var fr=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 Ve=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(fr.random(r))},string(r){return Ve.fromBytes(r)},bytes(r){return Ve.toBytes(r)}});function mr(){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){if(e.has(t))return e.get(t);throw new Error(`required key not found: "${t}"`)}static guarantee(e,t,o){if(e.has(t))return e.get(t);{let s=o();return 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 po(){let r=new Set;async function e(...i){await Promise.all([...r].map(c=>c(...i)))}function t(i){return r.add(i),()=>{r.delete(i)}}async function o(...i){return e(...i)}function s(i){return t(i)}async function n(i){let{promise:c,resolve:l}=mr(),d=s(async(...E)=>{i&&await i(...E),l(E),d()});return c}function a(){r.clear()}let u={pub:o,sub:s,publish:e,subscribe:t,on:t,next:n,clear:a};return Object.assign(s,u),Object.assign(o,u),u}function R(r){let e=po();return r&&e.sub(r),e.sub}var Qe=class{#e=new A;setGroup(e,t){return this.#e.set(e,t),t}getGroup(e){return this.#e.require(e)}};var Ke=new Qe;var Ze=class{group;#e=new qe.DragAndDrops({acceptDrop:(e,t,o)=>this.group.move(t,o)});constructor(e){this.group=e}#t=f(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(u=>this.hovering?.id===u.id),a=this.grabbed?.parent?.id===this.hovering?.id;!s&&!n&&!a&&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 Je=class{signal=f([]);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 Ye=class{config;trail;dropzone=new Ze(this);searchText=f("");selectedFilter=f("");selectedSort=f("");on={newFolder:R(),move:R(),delete:R(),rename:R(),upload:R(),search:R(),refresh:R()};constructor(e){this.config=e,this.selectedFilter(e.defaultFilter),this.selectedSort(e.defaultSort),this.trail=new Je(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}).then(()=>this.on.refresh.pub({}))}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 ge;(function(r){r.rename="rename",r.move="move",r.delete="delete",r.refresh="refresh",r.newFolder="newFolder",r.search="search",r.upload="upload"})(ge||(ge={}));var ho=Object.values(ge);function xt(r,e={}){let t={};for(let o of ho)t[o]=o in e?e[o]:r;return t}var gr={all:xt(!0),readOnly:xt(!1,{[ge.refresh]:!0,[ge.search]:!0}),none:xt(!1)};var Xe=class{taxonomy;onChange=R();#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 et=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 tt=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,a]=o.shift();if(!(s.has(n)||!t(n,a))){s.add(n),yield[n,a];for(let u of this.getChildren(n))o.push([u,[...a,n]])}}}};var rt=class{codex;id;signal=f(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 vr(){return Ve.random()}var ot=class{clade;hierarchy;static setup(e){let t=new et(e),o=new Xe(t),s=new tt;return new this(o,s)}#e=new A;constructor(e,t){this.clade=e,this.hierarchy=t}create(e,t){let o=vr();this.clade.setSpecimen(o,e,t);let s=new rt(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 st=class r extends Ye{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",i=>i.isKind("folder")||i.isKind("file")&&i.specimen.format==="video").set("audio",i=>i.isKind("folder")||i.isKind("file")&&i.specimen.format==="audio"),o=new Map().set("label",(i,c)=>i.specimen.label.localeCompare(c.specimen.label)).set("format",(i,c)=>i.isKind("file")&&c.isKind("file")?i.specimen.format.localeCompare(c.specimen.format):i.isKind("file")?-1:c.isKind("file")?1:0),s=(i,c)=>{let l=i.join(" ").trim().toLowerCase();return l===""?!0:c.kind==="folder"?c.children.some(d=>s(i,d)):c.specimen.label.toLowerCase().includes(l)},n=ot.setup({folder:{icon:p`<sl-icon name="folder"></sl-icon>`},file:{icon:p`<sl-icon name="file"></sl-icon>`}}),a=n.root(n.create("folder",{label:"project"})),u=(i,c)=>i.isKind("file")?e.require(i.specimen.format):c?p`<sl-icon name="folder2-open"></sl-icon>`:i.taxon.icon;return{codex:n,root:a,sorts:o,filters:t,defaultFilter:"all",defaultSort:"label",search:(i,c)=>i.some(l=>c.kind.includes(l)||c.id.includes(l)||c.specimen.label.includes(l))||s(i,c),renderIcon:u,renderLabel:i=>i.specimen.label,renderPreview:i=>i.isKind("file")&&i.specimen.previewUrl?p`<img src=${i.specimen.previewUrl}>`:u(i,!1),permissions:i=>gr.all}};constructor(){super(r.config())}};var $=h`@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
+ }
68
57
 
69
58
  * {
70
59
  margin: 0;
@@ -72,101 +61,138 @@ class es extends we{constructor(t){if(super(t),this.it=Ut,t.type!==ve)throw Erro
72
61
  box-sizing: border-box;
73
62
  }
74
63
 
75
- }`;function ls(t){const e=function(t){for(let e=t;e;e=e.parentElement){const t=e.getAttribute("group");if(t)return t}return"default"}(t);return as.getGroup(e)}const hs=Fe((t=>{const e=ls(t.element);t.styles(cs,Q`
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 br(r){for(let e=r;e;e=e.parentElement){let t=e.getAttribute("group");if(t)return t}return"default"}function S(r){let e=br(r);return Ke.getGroup(e)}var xr=_(()=>{let r=x(),e=S(r);return m($,h`
76
101
  sl-button sl-icon {
77
- font-size: 14px;
102
+ font-size: var(--font-size-sm);
78
103
  }
79
104
 
80
105
  sl-menu {
81
- margin-top: 0.3em;
106
+ margin-top: var(--space-xs);
82
107
 
83
108
  .item {
84
109
  display: flex;
85
110
  align-items: center;
86
- gap: 0.5em;
111
+ gap: var(--space-sm);
87
112
  }
88
113
  }
89
- `);return qe`
114
+ `),p`
90
115
  <div class="panel">
91
116
  <sl-dropdown>
92
117
  <sl-button size="small" slot="trigger" caret>
93
118
  <sl-icon name="sort-down-alt"></sl-icon>
94
119
  </sl-button>
95
- <sl-menu @sl-select=${t=>{const s=t.detail.item.value;e.selectedSort.value=s}}>
96
- ${[...e.config.sorts?.keys()].map((t=>qe`
97
- <sl-menu-item value=${t}>
120
+ <sl-menu @sl-select=${o=>{let s=o.detail.item.value;e.selectedSort(s)}}>
121
+ ${[...e.config.sorts?.keys()].map(o=>p`
122
+ <sl-menu-item value=${o}>
98
123
  <div class=item>
99
- <sl-icon name="check" slot="prefix" style="visibility: ${t===e.selectedSort.value?"visible":"hidden"}"></sl-icon>
100
- <span>${t}</span>
124
+ <sl-icon name="check" slot="prefix" style="visibility: ${o===e.selectedSort()?"visible":"hidden"}"></sl-icon>
125
+ <span>${o}</span>
101
126
  </div>
102
127
  </sl-menu-item>
103
- `))}
128
+ `)}
104
129
  </sl-menu>
105
130
  </sl-dropdown>
106
- </div>`})),ds=Fe((t=>{const e=ls(t.element);t.styles(cs,Q`
131
+ </div>`});var yr=_(()=>{let r=x(),e=S(r);return m($,h`
107
132
  sl-menu {
108
- margin-top: 0.3em;
133
+ margin-top: var(--space-xs);
109
134
 
110
135
  .item {
111
136
  display: flex;
112
137
  align-items: center;
113
- gap: 0.5em;
138
+ gap: var(--space-sm);
114
139
  }
115
140
  }
116
- `);return qe`
141
+ `),p`
117
142
  <div class="panel">
118
143
  <sl-dropdown>
119
144
  <sl-button size="small" slot="trigger" caret>
120
145
  <sl-icon name="funnel"></sl-icon>
121
146
  </sl-button>
122
- <sl-menu @sl-select=${t=>{const s=t.detail.item.value;e.selectedFilter.value=s}}>
123
- ${[...e.config.filters?.keys()].map((t=>qe`
124
- <sl-menu-item value=${t}>
147
+ <sl-menu @sl-select=${o=>{let s=o.detail.item.value;e.selectedFilter(s)}}>
148
+ ${[...e.config.filters?.keys()].map(o=>p`
149
+ <sl-menu-item value=${o}>
125
150
  <div class=item>
126
- <sl-icon name="check" slot="prefix" style="visibility: ${t===e.selectedFilter.value?"visible":"hidden"}"></sl-icon>
127
- <span>${t}</span>
151
+ <sl-icon name="check" slot="prefix" style="visibility: ${o===e.selectedFilter()?"visible":"hidden"}"></sl-icon>
152
+ <span>${o}</span>
128
153
  </div>
129
154
  </sl-menu-item>
130
- `))}
155
+ `)}
131
156
  </sl-menu>
132
157
  </sl-dropdown>
133
- </div>`}));var us=Q`
158
+ </div>`});var wr=h`
134
159
 
135
160
  .toolbar {
136
161
  display: flex;
137
162
  justify-content: flex-end;
138
- padding: 0.5rem;
163
+ padding: var(--space-sm);
139
164
 
140
165
  sl-button {
141
- background: #0F0F11;
142
- border-radius: 5px;
166
+ background: var(--surface);
167
+ border-radius: var(--radius-small);
143
168
 
144
169
  &[data-active=true] {
145
- background: var(--sl-color-neutral-0);
170
+ background: var(--surface-active);
146
171
  }
147
172
 
148
173
  &::part(base) {
149
174
  display: flex;
150
175
  align-items: center;
151
- height: 30px;
176
+ height: var(--control-height);
177
+ border-radius: var(--radius-small);
152
178
  }
153
179
 
154
180
  &::part(label) {
155
181
  display: flex;
156
- width: 40px;
182
+ width: var(--control-width);
157
183
  }
158
184
  }
159
185
  }
160
186
 
161
187
  .tiles,
162
188
  .details {
163
- padding: 0.5rem;
189
+ padding: var(--space-sm);
164
190
  }
165
191
 
166
192
  .tiles {
167
193
  display: flex;
168
194
  flex-wrap: wrap;
169
- row-gap: 1em;
195
+ row-gap: var(--space-md);
170
196
  width: 100%;
171
197
 
172
198
  .item {
@@ -180,11 +206,11 @@ class es extends we{constructor(t){if(super(t),this.it=Ut,t.type!==ve)throw Erro
180
206
  display: flex;
181
207
  align-items: center;
182
208
  justify-content: center;
183
- width: 100px;
184
- height: 60px;
185
- border: 2px solid #0D0D0E;
186
- border-radius: 5px;
187
- 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);
188
214
  pointer-events: none;
189
215
 
190
216
  img {
@@ -194,14 +220,14 @@ class es extends we{constructor(t){if(super(t),this.it=Ut,t.type!==ve)throw Erro
194
220
  }
195
221
 
196
222
  .label {
197
- margin-top: 0.5em;
223
+ margin-top: var(--space-xs);
198
224
  max-width: 150px;
199
- font-size: 0.85rem;
225
+ font-size: var(--font-size-sm);
200
226
  text-align: center;
201
227
  white-space: nowrap;
202
228
  overflow: hidden;
203
229
  text-overflow: ellipsis;
204
- color: var(--sl-color-neutral-700);
230
+ color: var(--text-muted);
205
231
  }
206
232
  }
207
233
  }
@@ -209,84 +235,84 @@ class es extends we{constructor(t){if(super(t),this.it=Ut,t.type!==ve)throw Erro
209
235
  .details {
210
236
  .card {
211
237
  display: flex;
212
- gap: 1rem;
213
- padding: 0.8rem;
214
- border: 2px solid #0D0D0E;
215
- background: #0F0F11;
216
- border-radius: 6px;
217
- 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);
218
244
  align-items: center;
219
245
 
220
246
  .meta {
221
247
  .name {
222
248
  font-weight: 500;
223
- color: var(--sl-color-neutral-800);
249
+ color: var(--text);
224
250
  }
225
251
  .type {
226
- font-size: 0.75rem;
227
- color: var(--sl-color-neutral-500);
252
+ font-size: var(--font-size-xs);
253
+ color: var(--text-subtle);
228
254
  }
229
255
  }
230
256
  }
231
257
  }
232
258
 
233
259
  sl-icon {
234
- font-size: 2rem;
235
- color: var(--sl-color-neutral-300);
260
+ font-size: var(--icon-size);
261
+ color: var(--icon);
236
262
  }
237
263
 
238
264
  sl-tooltip {
239
265
  --sl-tooltip-arrow-size: 0;
240
266
 
241
267
  &::part(body) {
242
- background: #0D0D0E;
243
- color: var(--sl-color-neutral-700);
268
+ background: var(--border);
269
+ color: var(--text-muted);
244
270
  }
245
271
  }
246
272
 
247
- `;const ps=Fe((t=>{t.styles(cs,us);const e=ls(t.element),{trail:s,config:r}=e,[n,i]=t.state("tiles");t.mount((()=>{const s=e.on.upload.sub((()=>t.rerender()));return()=>s()}));const o=()=>e.sort(s.currentFolder).filter((t=>e.matches(t)));return qe`
273
+ `;var $r=_(()=>{m($,wr);let r=x(),e=Z(),t=S(r),{trail:o,config:s}=t,[n,a]=pr("tiles");N(()=>{let l=t.on.refresh.sub(()=>e());return()=>l()});let u=()=>t.sort(o.currentFolder).filter(l=>t.matches(l));return p`
248
274
  <div class="toolbar">
249
275
  <sl-button-group label="View mode">
250
276
  <sl-tooltip content="Tiles">
251
- <sl-button size="small" outline data-active=${"tiles"===n} @click=${()=>i("tiles")}>
277
+ <sl-button size="small" outline data-active=${n==="tiles"} @click=${()=>a("tiles")}>
252
278
  <sl-icon name="grid-3x3-gap"></sl-icon>
253
279
  </sl-button>
254
280
  </sl-tooltip>
255
281
  <sl-tooltip content="Details">
256
- <sl-button size="small" outline data-active=${"details"===n} @click=${()=>i("details")}>
282
+ <sl-button size="small" outline data-active=${n==="details"} @click=${()=>a("details")}>
257
283
  <sl-icon name="list"></sl-icon>
258
284
  </sl-button>
259
285
  </sl-tooltip>
260
286
  </sl-button-group>
261
287
  </div>
262
288
 
263
- ${"details"===n?qe`
289
+ ${n==="details"?p`
264
290
  <div class="details">
265
- ${o().map((t=>qe`
266
- <div @click=${e=>s.setTrail(e,t)} class="card">
267
- ${r.renderIcon(t,!1)}
291
+ ${u().map(l=>p`
292
+ <div @click=${d=>o.setTrail(d,l)} class="card">
293
+ ${s.renderIcon(l,!1)}
268
294
  <div class=meta>
269
- <div class=name>${r.renderLabel(t)}</div>
270
- <div class=type>${t.kind}</div>
295
+ <div class=name>${s.renderLabel(l)}</div>
296
+ <div class=type>${l.kind}</div>
271
297
  </div>
272
298
  </div>
273
- `))}
299
+ `)}
274
300
  </div>
275
- `:qe`
301
+ `:p`
276
302
  <div class="tiles">
277
- ${o().map((t=>qe`
278
- <div class="item" @click="${e=>s.setTrail(e,t)}">
303
+ ${u().map(l=>p`
304
+ <div class="item" @click="${d=>o.setTrail(d,l)}">
279
305
  <div class="media-icon">
280
- ${r.renderPreview(t)??r.renderIcon(t,!1)}
306
+ ${s.renderPreview(l)??s.renderIcon(l,!1)}
281
307
  </div>
282
- <div class="label" title="${r.renderLabel(t)}">
283
- ${r.renderLabel(t)}
308
+ <div class="label" title="${s.renderLabel(l)}">
309
+ ${s.renderLabel(l)}
284
310
  </div>
285
311
  </div>
286
- `))}
312
+ `)}
287
313
  </div>
288
314
  `}
289
- `}));var fs=Q`
315
+ `});var Ar=h`
290
316
 
291
317
  .dropzone {
292
318
  width: 100%;
@@ -295,16 +321,16 @@ sl-tooltip {
295
321
  align-items: center;
296
322
  justify-content: center;
297
323
  position: relative;
298
- border: 2px dashed var(--sl-color-neutral-300);
299
- border-radius: 6px;
300
- 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);
301
327
  }
302
328
 
303
329
  .dz-input {
304
330
  width: 100%;
305
331
  height: 100%;
306
- z-index: 999;
307
- font-size: 14px;
332
+ z-index: var(--z-overlay);
333
+ font-size: var(--font-size-sm);
308
334
  cursor: pointer;
309
335
  opacity: 0;
310
336
 
@@ -314,15 +340,15 @@ sl-tooltip {
314
340
  }
315
341
 
316
342
  .dropzone:hover {
317
- background: var(--sl-color-gray-50);
343
+ background: var(--surface-hover);
318
344
  }
319
345
 
320
346
  .dropzone[data-hovering] {
321
- background: var(--sl-color-gray-50);
322
- border-color: var(--sl-color-primary-500);
347
+ background: var(--surface-hover);
348
+ border-color: var(--primary);
323
349
 
324
350
  & .dz-info {
325
- color: var(--sl-color-primary-300);
351
+ color: var(--primary-soft);
326
352
  }
327
353
  }
328
354
 
@@ -332,39 +358,39 @@ sl-tooltip {
332
358
  flex-direction: column;
333
359
  align-items: center;
334
360
  justify-content: center;
335
- gap: 0.5em;
336
- color: var(--sl-color-neutral-700);
361
+ gap: var(--space-sm);
362
+ color: var(--text-muted);
337
363
  }
338
364
 
339
- `;const gs=Fe((t=>{t.styles(cs,fs);const e=ls(t.element),{dropzone:s,config:{root:r}}=e;return qe`
340
- <div class="dropzone" ?data-hovering=${s.hovering}>
365
+ `;var _r=_(()=>{m($,Ar);let r=x(),e=S(r),{dropzone:t,config:{root:o}}=e;return p`
366
+ <div class="dropzone" ?data-hovering=${t.hovering}>
341
367
  <input
342
368
  type="file"
343
369
  class="dz-input"
344
- @change=${t=>s.change(t,r)}
345
- @drop=${t=>s.drop(t,r)}
346
- @dragover=${t=>s.dragover(t,r)}
347
- @dragenter=${t=>s.dragenter(t,r)}
348
- @dragleave=${s.dragleave}
370
+ @change=${s=>t.change(s,o)}
371
+ @drop=${s=>t.drop(s,o)}
372
+ @dragover=${s=>t.dragover(s,o)}
373
+ @dragenter=${s=>t.dragenter(s,o)}
374
+ @dragleave=${t.dragleave}
349
375
  >
350
376
  <div class=dz-info>
351
377
  <sl-icon name="upload"></sl-icon>
352
378
  Drop files here
353
379
  </div>
354
380
  </div>
355
- `}));var ms=Q`
381
+ `});var Sr=h`
356
382
 
357
383
  sl-tree-item::part(expand-button) {
358
384
  rotate: none;
359
385
  }
360
386
 
361
387
  sl-tree-item::part(base) {
362
- min-height: 30px;
388
+ min-height: var(--control-height);
363
389
  justify-content: center;
364
390
  }
365
391
 
366
392
  sl-icon:is(.item) {
367
- padding: 0.5em;
393
+ padding: var(--space-sm);
368
394
  }
369
395
 
370
396
  sl-tree-item:not([data-type=folder])::part(expand-button) {
@@ -387,11 +413,11 @@ sl-tree-item:not([data-type=folder])::part(expand-button) {
387
413
  }
388
414
 
389
415
  sl-tree-item {
390
- min-height: 30px;
391
- 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);
392
418
 
393
419
  ::part(label) {
394
- gap: 0.5em;
420
+ gap: var(--space-sm);
395
421
  }
396
422
 
397
423
  .folder {
@@ -401,71 +427,77 @@ sl-tree-item {
401
427
  }
402
428
 
403
429
  ::part(item--selected) {
404
- background: rgba(0, 0, 0, 0.4);
405
- min-height: 30px;
430
+ background: var(--surface-selected);
431
+ min-height: var(--control-height);
406
432
  }
407
433
 
408
434
  }
409
435
 
410
436
  sl-tree-item[data-hover] {
411
- border-radius: 5px;
412
- background: rgba(0, 0, 0, 0.4);
437
+ border-radius: var(--radius-small);
438
+ background: var(--surface-selected);
413
439
  }
414
440
 
415
- `;const vs=He((t=>e=>{t.styles(cs,ms);const{config:s}=e,{dropzone:r,trail:n,config:{root:i}}=e;t.mount((()=>{const s=e.on.upload.sub((()=>t.rerender()));return()=>s()}));const o=t=>qe`
416
- <sl-tree-item
417
- draggable="true"
418
- @dragstart=${e=>r.dragstart(e,t)}
419
- @dragend=${r.dragend}
420
- @click=${e=>n.setTrail(e,t)}
421
- data-type=${t.kind}
422
- ?data-hover=${r.hovering?.id===t.id}
423
- >
424
- ${"folder"===t.kind?(t=>qe`
441
+ `;var Er=J(r=>{m($,Sr);let e=Z(),{config:t}=r,{dropzone:o,trail:s,config:{root:n}}=r;N(()=>{let c=r.on.upload.sub(()=>e());return()=>c()});let a=c=>p`
425
442
  <input
426
- @dragenter=${e=>r.dragenter(e,t)}
427
- @dragleave=${r.dragleave}
428
- @dragover=${e=>r.dragover(e,t)}
429
- @drop=${e=>r.drop(e,t)}
430
- @click=${t=>t.preventDefault()}
443
+ @dragenter=${l=>o.dragenter(l,c)}
444
+ @dragleave=${o.dragleave}
445
+ @dragover=${l=>o.dragover(l,c)}
446
+ @drop=${l=>o.drop(l,c)}
447
+ @click=${l=>l.preventDefault()}
431
448
  id="file-import"
432
449
  class="file-import folder-hover"
433
450
  >
434
- <span class="folder" slot="expand-icon">${s.renderIcon(t,!1)}</span>
435
- <span class="folder" slot="collapse-icon">${s.renderIcon(t,!0)}</span>
436
- ${s.renderLabel(t)}
437
- `)(t):(t=>qe`
438
- ${s.renderIcon(t,!1)}
439
- ${s.renderLabel(t)}
440
- `)(t)}
441
- ${e.sort(t.children).map((t=>e.matches(t)?o(t):null))}
451
+ <span class="folder" slot="expand-icon">${t.renderIcon(c,!1)}</span>
452
+ <span class="folder" slot="collapse-icon">${t.renderIcon(c,!0)}</span>
453
+ ${t.renderLabel(c)}
454
+ `,u=c=>p`
455
+ ${t.renderIcon(c,!1)}
456
+ ${t.renderLabel(c)}
457
+ `,i=c=>p`
458
+ <sl-tree-item
459
+ draggable="true"
460
+ @dragstart=${l=>o.dragstart(l,c)}
461
+ @dragend=${o.dragend}
462
+ @click=${l=>s.setTrail(l,c)}
463
+ data-type=${c.kind}
464
+ ?data-hover=${o.hovering?.id===c.id}
465
+ >
466
+ ${c.kind==="folder"?a(c):u(c)}
467
+ ${r.sort(c.children).map(l=>r.matches(l)?i(l):null)}
442
468
  </sl-tree-item>
443
- `;return qe`
469
+ `;return p`
444
470
  <sl-tree selection=leaf>
445
- ${o(i)}
446
- </sl-tree>`})),ws=Fe((t=>{t.styles(cs);const e=ls(t.element);return qe`
471
+ ${i(n)}
472
+ </sl-tree>`});var kr=_(()=>{m($);let r=x(),e=S(r);return p`
447
473
  <div class="panel">
448
- ${vs([e])}
449
- </div>`})),bs=Q`
474
+ ${Er(e)}
475
+ </div>`});var fo=h`
476
+ sl-input::part(base) {
477
+ border-radius: var(--radius);
478
+ }
479
+
450
480
  sl-input::part(prefix) {
451
- padding-left: 0.5em;
481
+ padding-left: var(--space-sm);
452
482
  }
453
- `,ys=Fe((t=>{t.styles(cs,bs);const e=ls(t.element);return qe`
483
+ `,Cr=_(()=>{m($,fo);let r=x(),e=S(r);return p`
454
484
  <sl-input
455
485
  size='small'
456
486
  pill
457
487
  placeholder='Search'
458
488
  clearable
459
- @sl-input=${t=>e.searchText.value=t.target.value}
489
+ @sl-input=${t=>e.searchText(t.target.value)}
460
490
  >
461
491
  <sl-icon name='search' slot='prefix'></sl-icon>
462
492
  </sl-input>
463
- `})),_s=Fe((t=>{t.css(cs);const e=ls(t.element),{trail:s,config:{codex:r,renderLabel:n}}=e;return qe`
493
+ `});var Tr=_(()=>{m($);let r=S(x()),{trail:e,config:{codex:t,renderLabel:o}}=r,s=n=>a=>r.trail.setTrail(a,n);return p`
464
494
  <sl-breadcrumb>
465
- ${s.signal.value.map((t=>qe`
466
- <sl-breadcrumb-item @click="${(t=>s=>e.trail.setTrail(s,t))(t)}">
467
- ${null===t?"root":n(r.require(t.id))}
495
+ ${e.signal().map(n=>p`
496
+ <sl-breadcrumb-item @click="${s(n)}">
497
+ ${n===null?"root":o(t.require(n.id))}
468
498
  </sl-breadcrumb-item>
469
- `))}
499
+ `)}
470
500
  </sl-breadcrumb>
471
- `})),$s={QuayOutliner:ws,QuaySearchbar:ys,QuayDropzone:gs,QuayBrowser:ps,QuayBreadcrumb:_s,QuayFilter:ds,QuaySort:hs};var xs;!function(t){t.rename="rename",t.move="move",t.delete="delete",t.refresh="refresh",t.newFolder="newFolder",t.search="search",t.upload="upload"}(xs||(xs={}));const As=Object.values(xs);function ks(t,e={}){const s={};for(const r of As)s[r]=r in e?e[r]:t;return s}const Ss={permissions:{all:ks(!0),readOnly:ks(!1,{[xs.refresh]:!0,[xs.search]:!0}),none:ks(!1)}};class Cs{group;#gt=new Ve({handle_drop:(t,e,s)=>this.group.move(e,s)});constructor(t){this.group=t}#mt=U(void 0);get grabbed(){return this.#gt.grabbed}get hovering(){return this.#gt.hovering??this.#mt.value}dragenter=(t,e)=>{t.preventDefault(),this.#gt.dropzone.dragenter()(t),this.#mt.value=e};dragleave=t=>{this.#gt.dropzone.dragleave()(t),this.#mt.value=void 0};dragstart=(t,e)=>{t.stopPropagation(),this.#gt.dragzone.dragstart(e)(t)};dragover=(t,e)=>{t.preventDefault(),this.#gt.dropzone.dragover(e)(t)};dragend=t=>{this.#gt.dragzone.dragend()(t),this.#mt.value=void 0};drop=(t,e)=>{t.preventDefault();const s=Array.from(t.dataTransfer?.files||[]);s.length&&this.group.upload(s,e);const r=this.grabbed?.id===this.hovering?.id,n=this.grabbed?.children.some((t=>this.hovering?.id===t.id)),i=this.grabbed?.parent?.id===this.hovering?.id;r||n||i||this.#gt.dropzone.drop(e)(t),this.#mt.value=void 0};change=(t,e)=>{const s=t.currentTarget,r=Array.from(s.files??[]);r.length&&this.group.upload(r,e)}}class Es{signal=U([]);constructor(t){this.signal.value=[t]}setTrail(t,e){if(t.target!==t.currentTarget)return;const s=[];let r="folder"===e.kind?e:e.parent;for(;r;)s.unshift(r),r=r.parent;this.signal.value=s}get currentFolder(){return this.signal.value.at(-1)?.children??[]}}class Ps{config;trail;dropzone=new Cs(this);searchText=U("");selectedFilter=U("");selectedSort=U("");on={newFolder:os(),move:os(),delete:os(),rename:os(),upload:os(),search:os(),refresh:os()};constructor(t){this.config=t,this.selectedFilter.value=t.defaultFilter,this.selectedSort.value=t.defaultSort,this.trail=new Es(t.root)}get permissions(){return this.config.permissions}getFilterFn(t){return this.config.filters.get(t)??(()=>!0)}getSearchFn(t){const e=t.trim().toLowerCase().split(/\s+/);return t=>this.config.search(e,t)}getSortFn(t){return this.config.sorts?.get(t)??(()=>0)}sort(t){const e=this.getSortFn(this.selectedSort.value);return[...t].sort(e)}matches(t){const e=this.getFilterFn(this.selectedFilter.value),s=this.getSearchFn(this.searchText.value);return e(t)&&s(t)}move(t,e){if(!this.permissions(t).move)throw new Error("move permission not granted");t.detach(),e.attach(t),this.on.move.pub({item:t,target:e})}delete(t){if(!this.permissions(t).delete)throw new Error("delete permission not granted");t.destroy(),this.on.delete.pub({item:t})}rename(t,e){if(!this.permissions(t).rename)throw new Error("rename permission not granted");this.on.rename.pub({item:t,newName:e})}upload(t,e){if(!this.permissions(e).upload)throw new Error("upload permission not granted");this.on.upload.pub({files:t,target:e})}addFolder(t){if(!this.permissions(t).newFolder)throw new Error("add folder permission not granted");this.on.newFolder.pub({parent:t})}components=()=>this.components}class Ms{taxonomy;onChange=os();#vt=new ns;constructor(t){this.taxonomy=t}getSpecimen(t){return this.#vt.require(t)}setSpecimen(t,e,s){this.#vt.set(t,[e,s]),this.onChange.pub()}query(t){const[e,s]=this.getSpecimen(t);return{kind:e,taxon:this.taxonomy.taxon(e),specimen:s}}}class zs{#wt=new ns;constructor(t){for(const[e,s]of Object.entries(t))this.#wt.set(e,s)}taxon(t){return this.#wt.require(t)}}class Os{#bt=new ns;#yt=new ns;has(t){return this.#bt.has(t)}getChildren(t){return this.#bt.require(t)}getParent(t){return this.#yt.get(t)}establishRoot(t){this.#bt.set(t,new Set)}attach(t,...e){const s=this.getChildren(t);for(const r of e){if(this.getParent(r))throw new Error("child already has parent");s.add(r),this.#yt.set(r,t),this.#bt.set(r,new Set)}}detach(t){if(!this.has(t))return;const e=this.getParent(t);if(e){this.getChildren(e).delete(t),this.#yt.delete(t)}}destroy(t){const e=[...this.crawl(t)];for(const[t]of e)this.#bt.delete(t),this.#yt.delete(t)}*crawl(t,e=()=>!0){const s=[[t,[]]],r=new Set;for(;s.length;){const[t,n]=s.shift();if(!r.has(t)&&e(t,n)){r.add(t),yield[t,n];for(const e of this.getChildren(t))s.push([e,[...n,t]])}}}}class Us{codex;id;signal=U(this);constructor(t,e){this.codex=t,this.id=e}get kind(){return this.codex.clade.query(this.id).kind}isKind(t){return t===this.kind}get taxon(){return this.codex.clade.query(this.id).taxon}get specimen(){return this.codex.clade.query(this.id).specimen}get parent(){const t=this.codex.hierarchy.getParent(this.id);return t?this.codex.require(t):void 0}get children(){return[...this.codex.hierarchy.getChildren(this.id)].map((t=>this.codex.require(t)))}attach(...t){return this.codex.hierarchy.attach(this.id,...t.map((t=>t.id))),this.signal.publish(),this}detach(){this.codex.hierarchy.detach(this.id),this.signal.publish()}create(t,e){const s=this.codex.create(t,e);return this.attach(s),s}destroy(){this.codex.hierarchy.destroy(this.id),this.signal.publish()}*crawl(t=()=>!0){const e=this.codex.hierarchy.crawl(this.id,((e,s)=>t(this.codex.require(e),s.map((t=>this.codex.require(t))))));for(const[t,s]of e)yield[this.codex.require(t),s.map((t=>this.codex.require(t)))]}}class Ts{clade;hierarchy;static setup(t){const e=new zs(t);return new this(new Ms(e),new Os)}#_t=new ns;constructor(t,e){this.clade=t,this.hierarchy=e}create(t,e){const s=rs.random();this.clade.setSpecimen(s,t,e);const r=new Us(this,s);return this.#_t.set(s,r),r.signal.value}root(t){return this.hierarchy.establishRoot(t.id),t.signal.value}require(t){return this.#_t.require(t).signal.value}}class js extends Ps{static config=()=>{const t=(new ns).set("audio",qe`<sl-icon name=music-note-beamed></sl-icon>`).set("video",qe`<sl-icon name=film></sl-icon>`).set("image",qe`<sl-icon name=image></sl-icon>`).set("other",qe`<sl-icon name=file-earmark></sl-icon>`),e=(new Map).set("all",(()=>!0)).set("video",(t=>t.isKind("folder")||t.isKind("file")&&"video"===t.specimen.format)).set("audio",(t=>t.isKind("folder")||t.isKind("file")&&"audio"===t.specimen.format)),s=(new Map).set("label",((t,e)=>t.specimen.label.localeCompare(e.specimen.label))).set("format",((t,e)=>t.isKind("file")&&e.isKind("file")?t.specimen.format.localeCompare(e.specimen.format):t.isKind("file")?-1:e.isKind("file")?1:0)),r=(t,e)=>{const s=t.join(" ").trim().toLowerCase();return""===s||("folder"===e.kind?e.children.some((e=>r(t,e))):e.specimen.label.toLowerCase().includes(s))},n=Ts.setup({folder:{icon:qe`<sl-icon name="folder"></sl-icon>`},file:{icon:qe`<sl-icon name="file"></sl-icon>`}}),i=n.root(n.create("folder",{label:"project"})),o=(e,s)=>e.isKind("file")?t.require(e.specimen.format):s?qe`<sl-icon name="folder2-open"></sl-icon>`:e.taxon.icon;return{codex:n,root:i,sorts:s,filters:e,defaultFilter:"all",defaultSort:"label",search:(t,e)=>t.some((t=>e.kind.includes(t)||e.id.includes(t)||e.specimen.label.includes(t)))||r(t,e),renderIcon:o,renderLabel:t=>t.specimen.label,renderPreview:t=>t.isKind("file")&&t.specimen.previewUrl?qe`<img src=${t.specimen.previewUrl}>`:o(t,!1),permissions:t=>Ss.permissions.all}};constructor(){super(js.config())}}const qs=as.setGroup("default",new js),{codex:Ds,root:Ns}=qs.config,Rs="/assets/preview.webp",Hs=Ds.create("file",{format:"video",label:"01‑introduction.mp4",previewUrl:Rs}),Fs=Ds.create("file",{format:"image",label:"cover.png",previewUrl:Rs}),Ls=Ds.create("file",{format:"audio",label:"click.wav",previewUrl:null}),Bs=Ds.create("folder",{label:"sprites"}),Is=Ds.create("file",{format:"image",label:"hero.png",previewUrl:Rs}),Vs=Ds.create("file",{format:"image",label:"enemy.png",previewUrl:Rs});Ds.root(Ns).attach(Hs).attach(Fs).attach(Ls).attach(Bs),Bs.attach(Is).attach(Vs),qs.on.upload.sub((({files:t,target:e})=>{for(const s of t){const t=s.type.split("/")[0],r=Ds.create("file",{label:s.name,format:t,previewUrl:Rs});e.attach(r)}})),document.documentElement.className="sl-theme-dark",F($s);
501
+ `});var Pr={QuayOutliner:kr,QuaySearchbar:Cr,QuayDropzone:_r,QuayBrowser:$r,QuayBreadcrumb:Tr,QuayFilter:yr,QuaySort:xr};function zr(){document.documentElement.className="sl-theme-dark"}var Or=Ke.setGroup("default",new st),{codex:U,root:mo}=Or.config,ve="/assets/preview.webp",go=U.create("file",{format:"video",label:"01\u2011introduction.mp4",previewUrl:ve}),vo=U.create("file",{format:"image",label:"cover.png",previewUrl:ve}),bo=U.create("file",{format:"audio",label:"click.wav",previewUrl:null}),Mr=U.create("folder",{label:"sprites"}),xo=U.create("file",{format:"image",label:"hero.png",previewUrl:ve}),yo=U.create("file",{format:"image",label:"enemy.png",previewUrl:ve});U.root(mo).attach(go).attach(vo).attach(bo).attach(Mr);Mr.attach(xo).attach(yo);Or.on.upload.sub(({files:r,target:e})=>{for(let t of r){let o=t.type.split("/")[0],s=U.create("file",{label:t.name,format:o,previewUrl:ve});e.attach(s)}});zr();w.register(Pr);
502
+ /*! For license information please see main.bundle.min.js.LEGAL.txt */
503
+ //# sourceMappingURL=main.bundle.min.js.map