gardenjs 1.6.9 → 1.7.0

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 (34) hide show
  1. package/README.md +1 -1
  2. package/dist/assets/frame-BOcgZVOc.js +9 -0
  3. package/dist/assets/index-BDdBNVTh.css +19 -0
  4. package/dist/assets/index-DFG9gkdS.js +46 -0
  5. package/dist/assets/props-COK33XqS.js +2 -0
  6. package/dist/frame.html +2 -2
  7. package/dist/index.html +3 -3
  8. package/package.json +1 -1
  9. package/src/client/GardenApp.svelte +105 -92
  10. package/src/client/GardenFrame.svelte +21 -5
  11. package/src/client/components/panes/HorizontalSplitPane.svelte +27 -23
  12. package/src/client/components/panes/VerticalSplitPane.svelte +32 -36
  13. package/src/client/components/sidebar/Sidebar.svelte +6 -10
  14. package/src/client/components/stage/Stage.svelte +47 -27
  15. package/src/client/components/stage/panel/ParamsPane.svelte +11 -13
  16. package/src/client/components/stage/panel/controls/ArrayControl.svelte +3 -3
  17. package/src/client/components/stage/panel/controls/BooleanControl.svelte +24 -22
  18. package/src/client/components/stage/panel/controls/ColorPickerControl.svelte +21 -19
  19. package/src/client/components/stage/panel/controls/DateControl.svelte +23 -21
  20. package/src/client/components/stage/panel/controls/DatetimeControl.svelte +23 -21
  21. package/src/client/components/stage/panel/controls/JsonControl.svelte +3 -3
  22. package/src/client/components/stage/panel/controls/MultiselectControl.svelte +43 -39
  23. package/src/client/components/stage/panel/controls/RangeControl.svelte +23 -21
  24. package/src/client/components/stage/panel/controls/SelectControl.svelte +50 -46
  25. package/src/client/components/stage/panel/controls/TextInputControl.svelte +64 -23
  26. package/src/client/components/stage/panel/controls/TimeControl.svelte +23 -21
  27. package/src/client/components/stage/panel/controls/button_unset.scss +12 -2
  28. package/src/client/logic/localStore.js +23 -0
  29. package/src/client/logic/sidebar.svelte.js +55 -0
  30. package/src/client/logic/stage.js +2 -63
  31. package/dist/assets/frame-HIvQhXZT.js +0 -9
  32. package/dist/assets/index-B_e-ixXE.css +0 -19
  33. package/dist/assets/index-CePXpz0w.js +0 -46
  34. package/dist/assets/props-C0iXbu7F.js +0 -2
@@ -0,0 +1,2 @@
1
+ (function(){const r=document.createElement("link").relList;if(r&&r.supports&&r.supports("modulepreload"))return;for(const f of document.querySelectorAll('link[rel="modulepreload"]'))n(f);new MutationObserver(f=>{for(const i of f)if(i.type==="childList")for(const u of i.addedNodes)u.tagName==="LINK"&&u.rel==="modulepreload"&&n(u)}).observe(document,{childList:!0,subtree:!0});function t(f){const i={};return f.integrity&&(i.integrity=f.integrity),f.referrerPolicy&&(i.referrerPolicy=f.referrerPolicy),f.crossOrigin==="use-credentials"?i.credentials="include":f.crossOrigin==="anonymous"?i.credentials="omit":i.credentials="same-origin",i}function n(f){if(f.ep)return;f.ep=!0;const i=t(f);fetch(f.href,i)}})();const Tt="5";typeof window<"u"&&((window.__svelte??={}).v??=new Set).add(Tt);const qe=1,je=2,Fr=4,Ot=8,Nt=16,Pt=1,xt=4,Ct=8,It=16,Rt=1,Mt=2,O=Symbol(),Lt="http://www.w3.org/1999/xhtml",qr=!1;var ir=Array.isArray,kt=Array.prototype.indexOf,fr=Array.from,Re=Object.defineProperty,J=Object.getOwnPropertyDescriptor,Dt=Object.getOwnPropertyDescriptors,Ft=Object.prototype,qt=Array.prototype,jr=Object.getPrototypeOf,Sr=Object.isExtensible;function ge(e){return typeof e=="function"}const Q=()=>{};function Ur(e){for(var r=0;r<e.length;r++)e[r]()}function jt(){var e,r,t=new Promise((n,f)=>{e=n,r=f});return{promise:t,resolve:e,reject:r}}function Yn(e,r){if(Array.isArray(e))return e;if(!(Symbol.iterator in e))return Array.from(e);const t=[];for(const n of e)if(t.push(n),t.length===r)break;return t}const L=2,ur=4,sr=8,Oe=16,K=32,be=64,Br=128,R=256,Me=512,S=1024,M=2048,ue=4096,j=8192,se=16384,lr=32768,Ue=65536,Tr=1<<17,Ut=1<<18,ar=1<<19,$r=1<<20,Qe=1<<21,or=1<<22,ne=1<<23,ee=Symbol("$state"),Hr=Symbol("legacy props"),Bt=Symbol(""),cr=new class extends Error{name="StaleReactionError";message="The reaction that called `getAbortSignal()` was re-run or destroyed"};function $t(){throw new Error("https://svelte.dev/e/await_outside_boundary")}function Vr(e){throw new Error("https://svelte.dev/e/lifecycle_outside_component")}function Ht(){throw new Error("https://svelte.dev/e/async_derived_orphan")}function Vt(e){throw new Error("https://svelte.dev/e/effect_in_teardown")}function Yt(){throw new Error("https://svelte.dev/e/effect_in_unowned_derived")}function Wt(e){throw new Error("https://svelte.dev/e/effect_orphan")}function Kt(){throw new Error("https://svelte.dev/e/effect_update_depth_exceeded")}function Gt(e){throw new Error("https://svelte.dev/e/props_invalid_value")}function zt(){throw new Error("https://svelte.dev/e/state_descriptors_fixed")}function Zt(){throw new Error("https://svelte.dev/e/state_prototype_fixed")}function Xt(){throw new Error("https://svelte.dev/e/state_unsafe_mutation")}let Jt=!1;function Yr(e){return e===this.v}function Wr(e,r){return e!=e?r==r:e!==r||e!==null&&typeof e=="object"||typeof e=="function"}function Kr(e){return!Wr(e,this.v)}let Qt=!1,k=null;function Le(e){k=e}function en(e,r=!1,t){k={p:k,c:null,e:null,s:e,x:null,l:null}}function rn(e){var r=k,t=r.e;if(t!==null){r.e=null;for(var n of t)ut(n)}return k=r.p,{}}function Gr(){return!0}const tn=new WeakMap;function nn(e){var r=g;if(r===null)return w.f|=ne,e;if((r.f&lr)===0){if((r.f&Br)===0)throw!r.parent&&e instanceof Error&&zr(e),e;r.b.error(e)}else vr(e,r)}function vr(e,r){for(;r!==null;){if((r.f&Br)!==0)try{r.b.error(e);return}catch(t){e=t}r=r.parent}throw e instanceof Error&&zr(e),e}function zr(e){const r=tn.get(e);r&&(Re(e,"message",{value:r.message}),Re(e,"stack",{value:r.stack}))}let ke=[];function fn(){var e=ke;ke=[],Ur(e)}function dr(e){ke.length===0&&queueMicrotask(fn),ke.push(e)}function un(){for(var e=g.b;e!==null&&!e.has_pending_snippet();)e=e.parent;return e===null&&$t(),e}function Be(e){var r=L|M,t=w!==null&&(w.f&L)!==0?w:null;return g===null||t!==null&&(t.f&R)!==0?r|=R:g.f|=ar,{ctx:k,deps:null,effects:null,equals:Yr,f:r,fn:e,reactions:null,rv:0,v:O,wv:0,parent:t??g,ac:null}}function sn(e,r){let t=g;t===null&&Ht();var n=t.b,f=void 0,i=Ae(O),u=null,a=!w;return gn(()=>{try{var s=e()}catch(_){s=Promise.reject(_)}var l=()=>s;f=u?.then(l,l)??Promise.resolve(s),u=f;var o=C,d=n.pending;a&&(n.update_pending_count(1),d||o.increment());const c=(_,v=void 0)=>{u=null,d||o.activate(),v?v!==cr&&(i.f|=ne,Se(i,v)):((i.f&ne)!==0&&(i.f^=ne),Se(i,_)),a&&(n.update_pending_count(-1),d||o.decrement()),Qr()};if(f.then(c,_=>c(null,_||"unknown")),o)return()=>{queueMicrotask(()=>o.neuter())}}),new Promise(s=>{function l(o){function d(){o===f?s(i):l(f)}o.then(d,d)}l(f)})}function Kn(e){const r=Be(e);return dt(r),r}function Zr(e){const r=Be(e);return r.equals=Kr,r}function Xr(e){var r=e.effects;if(r!==null){e.effects=null;for(var t=0;t<r.length;t+=1)W(r[t])}}function ln(e){for(var r=e.parent;r!==null;){if((r.f&L)===0)return r;r=r.parent}return null}function _r(e){var r,t=g;te(ln(e));try{Xr(e),r=pt(e)}finally{te(t)}return r}function Jr(e){var r=_r(e);if(e.equals(r)||(e.v=r,e.wv=_t()),!ae)if(_e!==null)_e.set(e,e.v);else{var t=(X||(e.f&R)!==0)&&e.deps!==null?ue:S;N(e,t)}}function an(e,r,t){const n=Be;if(r.length===0){t(e.map(n));return}var f=C,i=g,u=on(),a=un();Promise.all(r.map(s=>sn(s))).then(s=>{f?.activate(),u();try{t([...e.map(n),...s])}catch(l){(i.f&se)===0&&vr(l,i)}f?.deactivate(),Qr()}).catch(s=>{a.error(s)})}function on(){var e=g,r=w,t=k;return function(){te(e),$(r),Le(t)}}function Qr(){te(null),$(null),Le(null)}const Ce=new Set;let C=null,_e=null,Or=new Set,Ee=[],hr=null,er=!1;class $e{#l=new Map;#f=new Map;#u=new Set;#r=0;#a=null;#o=!1;#n=[];#s=[];#t=[];#e=[];#i=[];skipped_effects=new Set;#v(r){Ee=[];var t=null;if(Ce.size>1){t=new Map,_e=new Map;for(const[i,u]of this.#l)t.set(i,{v:i.v,wv:i.wv}),i.v=u;for(const i of Ce)if(i!==this)for(const[u,a]of i.#f)t.has(u)||(t.set(u,{v:u.v,wv:u.wv}),u.v=a)}for(const i of r)this.#d(i);if(this.#n.length===0&&this.#r===0){var n=this.#t,f=this.#e;this.#t=[],this.#e=[],this.#i=[],this.#c(),Nr(n),Nr(f),this.#a?.resolve()}else{for(const i of this.#t)N(i,S);for(const i of this.#e)N(i,S);for(const i of this.#i)N(i,S)}if(t){for(const[i,{v:u,wv:a}]of t)i.wv<=a&&(i.v=u);_e=null}for(const i of this.#n)ye(i);for(const i of this.#s)ye(i);this.#n=[],this.#s=[]}#d(r){r.f^=S;for(var t=r.first;t!==null;){var n=t.f,f=(n&(K|be))!==0,i=f&&(n&S)!==0,u=i||(n&j)!==0||this.skipped_effects.has(t);if(!u&&t.fn!==null){if(f)t.f^=S;else if((n&ur)!==0)this.#e.push(t);else if(Ye(t))if((n&or)!==0){var a=t.b?.pending?this.#s:this.#n;a.push(t)}else(t.f&Oe)!==0&&this.#i.push(t),ye(t);var s=t.first;if(s!==null){t=s;continue}}var l=t.parent;for(t=t.next;t===null&&l!==null;)t=l.next,l=l.parent}}capture(r,t){this.#f.has(r)||this.#f.set(r,t),this.#l.set(r,r.v)}activate(){C=this}deactivate(){C=null;for(const r of Or)if(Or.delete(r),r(),C!==null)break}neuter(){this.#o=!0}flush(){Ee.length>0?this.flush_effects():this.#c(),C===this&&(this.#r===0&&Ce.delete(this),this.deactivate())}flush_effects(){var r=de;er=!0;try{var t=0;for(Cr(!0);Ee.length>0;){if(t++>1e3){var n,f;cn()}this.#v(Ee),ie.clear()}}finally{er=!1,Cr(r),hr=null}}#c(){if(!this.#o)for(const r of this.#u)r();this.#u.clear()}increment(){this.#r+=1}decrement(){if(this.#r-=1,this.#r===0){for(const r of this.#t)N(r,M),re(r);for(const r of this.#e)N(r,M),re(r);for(const r of this.#i)N(r,M),re(r);this.#t=[],this.#e=[],this.flush()}else this.deactivate()}add_callback(r){this.#u.add(r)}settled(){return(this.#a??=jt()).promise}static ensure(r=!0){if(C===null){const t=C=new $e;Ce.add(C),r&&queueMicrotask(()=>{C===t&&t.flush()})}return C}}function cn(){try{Kt()}catch(e){vr(e,hr)}}function Nr(e){var r=e.length;if(r!==0){for(var t=0;t<r;t++){var n=e[t];if((n.f&(se|j))===0&&Ye(n)){var f=De;if(ye(n),n.deps===null&&n.first===null&&n.nodes_start===null&&(n.teardown===null?ot(n):n.fn=null),De>f&&(n.f&$r)!==0)break}}for(;t<r;t+=1)re(e[t])}}function re(e){for(var r=hr=e;r.parent!==null;){r=r.parent;var t=r.f;if(er&&r===g&&(t&Oe)!==0)return;if((t&(be|K))!==0){if((t&S)===0)return;r.f^=S}}Ee.push(r)}const ie=new Map;function Ae(e,r){var t={f:0,v:e,reactions:null,equals:Yr,rv:0,wv:0};return t}function Z(e,r){const t=Ae(e);return dt(t),t}function et(e,r=!1,t=!0){const n=Ae(e);return r||(n.equals=Kr),n}function V(e,r,t=!1){w!==null&&(!F||(w.f&Tr)!==0)&&Gr()&&(w.f&(L|Oe|or|Tr))!==0&&!Y?.includes(e)&&Xt();let n=t?ve(r):r;return Se(e,n)}function Se(e,r){if(!e.equals(r)){var t=e.v;ae?ie.set(e,r):ie.set(e,t),e.v=r,$e.ensure().capture(e,t),(e.f&L)!==0&&((e.f&M)!==0&&_r(e),N(e,(e.f&R)===0?S:ue)),e.wv=_t(),rt(e,M),g!==null&&(g.f&S)!==0&&(g.f&(K|be))===0&&(D===null?An([e]):D.push(e))}return r}function ze(e){V(e,e.v+1)}function rt(e,r){var t=e.reactions;if(t!==null)for(var n=t.length,f=0;f<n;f++){var i=t[f],u=i.f;(u&M)===0&&(N(i,r),(u&(S|R))!==0&&((u&L)!==0?rt(i,ue):re(i)))}}function ve(e){if(typeof e!="object"||e===null||ee in e)return e;const r=jr(e);if(r!==Ft&&r!==qt)return e;var t=new Map,n=ir(e),f=Z(0),i=fe,u=a=>{if(fe===i)return a();var s=w,l=fe;$(null),Rr(i);var o=a();return $(s),Rr(l),o};return n&&t.set("length",Z(e.length)),new Proxy(e,{defineProperty(a,s,l){(!("value"in l)||l.configurable===!1||l.enumerable===!1||l.writable===!1)&&zt();var o=t.get(s);return o===void 0?o=u(()=>{var d=Z(l.value);return t.set(s,d),d}):V(o,l.value,!0),!0},deleteProperty(a,s){var l=t.get(s);if(l===void 0){if(s in a){const o=u(()=>Z(O));t.set(s,o),ze(f)}}else V(l,O),ze(f);return!0},get(a,s,l){if(s===ee)return e;var o=t.get(s),d=s in a;if(o===void 0&&(!d||J(a,s)?.writable)&&(o=u(()=>{var _=ve(d?a[s]:O),v=Z(_);return v}),t.set(s,o)),o!==void 0){var c=q(o);return c===O?void 0:c}return Reflect.get(a,s,l)},getOwnPropertyDescriptor(a,s){var l=Reflect.getOwnPropertyDescriptor(a,s);if(l&&"value"in l){var o=t.get(s);o&&(l.value=q(o))}else if(l===void 0){var d=t.get(s),c=d?.v;if(d!==void 0&&c!==O)return{enumerable:!0,configurable:!0,value:c,writable:!0}}return l},has(a,s){if(s===ee)return!0;var l=t.get(s),o=l!==void 0&&l.v!==O||Reflect.has(a,s);if(l!==void 0||g!==null&&(!o||J(a,s)?.writable)){l===void 0&&(l=u(()=>{var c=o?ve(a[s]):O,_=Z(c);return _}),t.set(s,l));var d=q(l);if(d===O)return!1}return o},set(a,s,l,o){var d=t.get(s),c=s in a;if(n&&s==="length")for(var _=l;_<d.v;_+=1){var v=t.get(_+"");v!==void 0?V(v,O):_ in a&&(v=u(()=>Z(O)),t.set(_+"",v))}if(d===void 0)(!c||J(a,s)?.writable)&&(d=u(()=>Z(void 0)),V(d,ve(l)),t.set(s,d));else{c=d.v!==O;var h=u(()=>ve(l));V(d,h)}var p=Reflect.getOwnPropertyDescriptor(a,s);if(p?.set&&p.set.call(o,l),!c){if(n&&typeof s=="string"){var m=t.get("length"),b=Number(s);Number.isInteger(b)&&b>=m.v&&V(m,b+1)}ze(f)}return!0},ownKeys(a){q(f);var s=Reflect.ownKeys(a).filter(d=>{var c=t.get(d);return c===void 0||c.v!==O});for(var[l,o]of t)o.v!==O&&!(l in a)&&s.push(l);return s},setPrototypeOf(){Zt()}})}function Pr(e){try{if(e!==null&&typeof e=="object"&&ee in e)return e[ee]}catch{}return e}function Gn(e,r){return Object.is(Pr(e),Pr(r))}var xr,tt,nt,it;function vn(){if(xr===void 0){xr=window,tt=/Firefox/.test(navigator.userAgent);var e=Element.prototype,r=Node.prototype,t=Text.prototype;nt=J(r,"firstChild").get,it=J(r,"nextSibling").get,Sr(e)&&(e.__click=void 0,e.__className=void 0,e.__attributes=null,e.__style=void 0,e.__e=void 0),Sr(t)&&(t.__t=void 0)}}function le(e=""){return document.createTextNode(e)}function B(e){return nt.call(e)}function He(e){return it.call(e)}function zn(e,r){return B(e)}function Zn(e,r){{var t=B(e);return t instanceof Comment&&t.data===""?He(t):t}}function Xn(e,r=1,t=!1){let n=e;for(;r--;)n=He(n);return n}function dn(e){e.textContent=""}function pr(){return!1}function _n(e){g===null&&w===null&&Wt(),w!==null&&(w.f&R)!==0&&g===null&&Yt(),ae&&Vt()}function hn(e,r){var t=r.last;t===null?r.last=r.first=e:(t.next=e,e.prev=t,r.last=e)}function G(e,r,t,n=!0){var f=g;f!==null&&(f.f&j)!==0&&(e|=j);var i={ctx:k,deps:null,nodes_start:null,nodes_end:null,f:e|M,first:null,fn:r,last:null,next:null,parent:f,b:f&&f.b,prev:null,teardown:null,transitions:null,wv:0,ac:null};if(t)try{ye(i),i.f|=lr}catch(s){throw W(i),s}else r!==null&&re(i);var u=t&&i.deps===null&&i.first===null&&i.nodes_start===null&&i.teardown===null&&(i.f&ar)===0;if(!u&&n&&(f!==null&&hn(i,f),w!==null&&(w.f&L)!==0)){var a=w;(a.effects??=[]).push(i)}return i}function Jn(){return w!==null&&!F}function ft(e){const r=G(sr,null,!1);return N(r,S),r.teardown=e,r}function pn(e){_n();var r=g.f,t=!w&&(r&K)!==0&&(r&lr)===0;if(t){var n=k;(n.e??=[]).push(e)}else return ut(e)}function ut(e){return G(ur|$r,e,!1)}function bn(e){$e.ensure();const r=G(be,e,!0);return(t={})=>new Promise(n=>{t.outro?Ve(r,()=>{W(r),n(void 0)}):(W(r),n(void 0))})}function wn(e){return G(ur,e,!1)}function gn(e){return G(or|ar,e,!0)}function En(e,r=0){return G(sr|r,e,!0)}function mn(e,r=[],t=[]){an(r,t,n=>{G(sr,()=>e(...n.map(q)),!0)})}function br(e,r=0){var t=G(Oe|r,e,!0);return t}function he(e,r=!0){return G(K,e,!0,r)}function st(e){var r=e.teardown;if(r!==null){const t=ae,n=w;Ir(!0),$(null);try{r.call(null)}finally{Ir(t),$(n)}}}function lt(e,r=!1){var t=e.first;for(e.first=e.last=null;t!==null;){t.ac?.abort(cr);var n=t.next;(t.f&be)!==0?t.parent=null:W(t,r),t=n}}function yn(e){for(var r=e.first;r!==null;){var t=r.next;(r.f&K)===0&&W(r),r=t}}function W(e,r=!0){var t=!1;(r||(e.f&Ut)!==0)&&e.nodes_start!==null&&e.nodes_end!==null&&(at(e.nodes_start,e.nodes_end),t=!0),lt(e,r&&!t),Fe(e,0),N(e,se);var n=e.transitions;if(n!==null)for(const i of n)i.stop();st(e);var f=e.parent;f!==null&&f.first!==null&&ot(e),e.next=e.prev=e.teardown=e.ctx=e.deps=e.fn=e.nodes_start=e.nodes_end=e.ac=null}function at(e,r){for(;e!==null;){var t=e===r?null:He(e);e.remove(),e=t}}function ot(e){var r=e.parent,t=e.prev,n=e.next;t!==null&&(t.next=n),n!==null&&(n.prev=t),r!==null&&(r.first===e&&(r.first=n),r.last===e&&(r.last=t))}function Ve(e,r){var t=[];wr(e,t,!0),ct(t,()=>{W(e),r&&r()})}function ct(e,r){var t=e.length;if(t>0){var n=()=>--t||r();for(var f of e)f.out(n)}else r()}function wr(e,r,t){if((e.f&j)===0){if(e.f^=j,e.transitions!==null)for(const u of e.transitions)(u.is_global||t)&&r.push(u);for(var n=e.first;n!==null;){var f=n.next,i=(n.f&Ue)!==0||(n.f&K)!==0;wr(n,r,i?t:!1),n=f}}}function gr(e){vt(e,!0)}function vt(e,r){if((e.f&j)!==0){e.f^=j,(e.f&S)===0&&(N(e,M),re(e));for(var t=e.first;t!==null;){var n=t.next,f=(t.f&Ue)!==0||(t.f&K)!==0;vt(t,f?r:!1),t=n}if(e.transitions!==null)for(const i of e.transitions)(i.is_global||r)&&i.in()}}let de=!1;function Cr(e){de=e}let ae=!1;function Ir(e){ae=e}let w=null,F=!1;function $(e){w=e}let g=null;function te(e){g=e}let Y=null;function dt(e){w!==null&&(Y===null?Y=[e]:Y.push(e))}let P=null,I=0,D=null;function An(e){D=e}let De=1,Te=0,fe=Te;function Rr(e){fe=e}let X=!1;function _t(){return++De}function Ye(e){var r=e.f;if((r&M)!==0)return!0;if((r&ue)!==0){var t=e.deps,n=(r&R)!==0;if(t!==null){var f,i,u=(r&Me)!==0,a=n&&g!==null&&!X,s=t.length;if((u||a)&&(g===null||(g.f&se)===0)){var l=e,o=l.parent;for(f=0;f<s;f++)i=t[f],(u||!i?.reactions?.includes(l))&&(i.reactions??=[]).push(l);u&&(l.f^=Me),a&&o!==null&&(o.f&R)===0&&(l.f^=R)}for(f=0;f<s;f++)if(i=t[f],Ye(i)&&Jr(i),i.wv>e.wv)return!0}(!n||g!==null&&!X)&&N(e,S)}return!1}function ht(e,r,t=!0){var n=e.reactions;if(n!==null&&!Y?.includes(e))for(var f=0;f<n.length;f++){var i=n[f];(i.f&L)!==0?ht(i,r,!1):r===i&&(t?N(i,M):(i.f&S)!==0&&N(i,ue),re(i))}}function pt(e){var r=P,t=I,n=D,f=w,i=X,u=Y,a=k,s=F,l=fe,o=e.f;P=null,I=0,D=null,X=(o&R)!==0&&(F||!de||w===null),w=(o&(K|be))===0?e:null,Y=null,Le(e.ctx),F=!1,fe=++Te,e.ac!==null&&(e.ac.abort(cr),e.ac=null);try{e.f|=Qe;var d=(0,e.fn)(),c=e.deps;if(P!==null){var _;if(Fe(e,I),c!==null&&I>0)for(c.length=I+P.length,_=0;_<P.length;_++)c[I+_]=P[_];else e.deps=c=P;if(!X||(o&L)!==0&&e.reactions!==null)for(_=I;_<c.length;_++)(c[_].reactions??=[]).push(e)}else c!==null&&I<c.length&&(Fe(e,I),c.length=I);if(Gr()&&D!==null&&!F&&c!==null&&(e.f&(L|ue|M))===0)for(_=0;_<D.length;_++)ht(D[_],e);return f!==null&&f!==e&&(Te++,D!==null&&(n===null?n=D:n.push(...D))),(e.f&ne)!==0&&(e.f^=ne),d}catch(v){return nn(v)}finally{e.f^=Qe,P=r,I=t,D=n,w=f,X=i,Y=u,Le(a),F=s,fe=l}}function Sn(e,r){let t=r.reactions;if(t!==null){var n=kt.call(t,e);if(n!==-1){var f=t.length-1;f===0?t=r.reactions=null:(t[n]=t[f],t.pop())}}t===null&&(r.f&L)!==0&&(P===null||!P.includes(r))&&(N(r,ue),(r.f&(R|Me))===0&&(r.f^=Me),Xr(r),Fe(r,0))}function Fe(e,r){var t=e.deps;if(t!==null)for(var n=r;n<t.length;n++)Sn(e,t[n])}function ye(e){var r=e.f;if((r&se)===0){N(e,S);var t=g,n=de;g=e,de=!0;try{(r&Oe)!==0?yn(e):lt(e),st(e);var f=pt(e);e.teardown=typeof f=="function"?f:null,e.wv=De;var i;qr&&Qt&&(e.f&M)!==0&&e.deps}finally{de=n,g=t}}}function q(e){var r=e.f,t=(r&L)!==0;if(w!==null&&!F){var n=g!==null&&(g.f&se)!==0;if(!n&&!Y?.includes(e)){var f=w.deps;if((w.f&Qe)!==0)e.rv<Te&&(e.rv=Te,P===null&&f!==null&&f[I]===e?I++:P===null?P=[e]:(!X||!P.includes(e))&&P.push(e));else{(w.deps??=[]).push(e);var i=e.reactions;i===null?e.reactions=[w]:i.includes(w)||i.push(w)}}}else if(t&&e.deps===null&&e.effects===null){var u=e,a=u.parent;a!==null&&(a.f&R)===0&&(u.f^=R)}if(ae){if(ie.has(e))return ie.get(e);if(t){u=e;var s=u.v;return((u.f&S)!==0||bt(u))&&(s=_r(u)),ie.set(u,s),s}}else if(t){if(u=e,_e?.has(u))return _e.get(u);Ye(u)&&Jr(u)}if((e.f&ne)!==0)throw e.v;return e.v}function bt(e){if(e.v===O)return!0;if(e.deps===null)return!1;for(const r of e.deps)if(ie.has(r)||(r.f&L)!==0&&bt(r))return!0;return!1}function Ne(e){var r=F;try{return F=!0,e()}finally{F=r}}const Tn=-7169;function N(e,r){e.f=e.f&Tn|r}function On(e){var r=w,t=g;$(null),te(null);try{return e()}finally{$(r),te(t)}}const wt=new Set,rr=new Set;function gt(e,r,t,n={}){function f(i){if(n.capture||me.call(r,i),!i.cancelBubble)return On(()=>t?.call(this,i))}return e.startsWith("pointer")||e.startsWith("touch")||e==="wheel"?dr(()=>{r.addEventListener(e,f,n)}):r.addEventListener(e,f,n),f}function Qn(e,r,t,n={}){var f=gt(r,e,t,n);return()=>{e.removeEventListener(r,f,n)}}function ei(e,r,t,n,f){var i={capture:n,passive:f},u=gt(e,r,t,i);(r===document.body||r===window||r===document||r instanceof HTMLMediaElement)&&ft(()=>{r.removeEventListener(e,u,i)})}function ri(e){for(var r=0;r<e.length;r++)wt.add(e[r]);for(var t of rr)t(e)}function me(e){var r=this,t=r.ownerDocument,n=e.type,f=e.composedPath?.()||[],i=f[0]||e.target,u=0,a=e.__root;if(a){var s=f.indexOf(a);if(s!==-1&&(r===document||r===window)){e.__root=r;return}var l=f.indexOf(r);if(l===-1)return;s<=l&&(u=s)}if(i=f[u]||e.target,i!==r){Re(e,"currentTarget",{configurable:!0,get(){return i||t}});var o=w,d=g;$(null),te(null);try{for(var c,_=[];i!==null;){var v=i.assignedSlot||i.parentNode||i.host||null;try{var h=i["__"+n];if(h!=null&&(!i.disabled||e.target===i))if(ir(h)){var[p,...m]=h;p.apply(i,[e,...m])}else h.call(i,e)}catch(b){c?_.push(b):c=b}if(e.cancelBubble||v===r||v===null)break;i=v}if(c){for(let b of _)queueMicrotask(()=>{throw b});throw c}}finally{e.__root=r,delete e.currentTarget,$(o),te(d)}}}function Er(e){var r=document.createElement("template");return r.innerHTML=e.replaceAll("<!>","<!---->"),r.content}function pe(e,r){var t=g;t.nodes_start===null&&(t.nodes_start=e,t.nodes_end=r)}function ti(e,r){var t=(r&Rt)!==0,n=(r&Mt)!==0,f,i=!e.startsWith("<!>");return()=>{f===void 0&&(f=Er(i?e:"<!>"+e),t||(f=B(f)));var u=n||tt?document.importNode(f,!0):f.cloneNode(!0);if(t){var a=B(u),s=u.lastChild;pe(a,s)}else pe(u,u);return u}}function Nn(e,r,t="svg"){var n=!e.startsWith("<!>"),f=`<${t}>${n?e:"<!>"+e}</${t}>`,i;return()=>{if(!i){var u=Er(f),a=B(u);i=B(a)}var s=i.cloneNode(!0);return pe(s,s),s}}function ni(e,r){return Nn(e,r,"svg")}function ii(e=""){{var r=le(e+"");return pe(r,r),r}}function fi(){var e=document.createDocumentFragment(),r=document.createComment(""),t=le();return e.append(r,t),pe(r,t),e}function ui(e,r){e!==null&&e.before(r)}const Pn=["touchstart","touchmove"];function xn(e){return Pn.includes(e)}function si(e,r){var t=r==null?"":typeof r=="object"?r+"":r;t!==(e.__t??=e.nodeValue)&&(e.__t=t,e.nodeValue=t+"")}function li(e,r){return Cn(e,r)}const oe=new Map;function Cn(e,{target:r,anchor:t,props:n={},events:f,context:i,intro:u=!0}){vn();var a=new Set,s=d=>{for(var c=0;c<d.length;c++){var _=d[c];if(!a.has(_)){a.add(_);var v=xn(_);r.addEventListener(_,me,{passive:v});var h=oe.get(_);h===void 0?(document.addEventListener(_,me,{passive:v}),oe.set(_,1)):oe.set(_,h+1)}}};s(fr(wt)),rr.add(s);var l=void 0,o=bn(()=>{var d=t??r.appendChild(le());return he(()=>{if(i){en({});var c=k;c.c=i}f&&(n.$$events=f),l=e(d,n)||{},i&&rn()}),()=>{for(var c of a){r.removeEventListener(c,me);var _=oe.get(c);--_===0?(document.removeEventListener(c,me),oe.delete(c)):oe.set(c,_)}rr.delete(s),d!==t&&d.parentNode?.removeChild(d)}});return tr.set(l,o),l}let tr=new WeakMap;function ai(e,r){const t=tr.get(e);return t?(tr.delete(e),t(r)):Promise.resolve()}function In(e){k===null&&Vr(),pn(()=>{const r=Ne(e);if(typeof r=="function")return r})}function oi(e){k===null&&Vr(),In(()=>()=>Ne(e))}function ci(e,r,t=!1){var n=e,f=null,i=null,u=O,a=t?Ue:0,s=!1;const l=(_,v=!0)=>{s=!0,c(v,_)};var o=null;function d(){o!==null&&(o.lastChild.remove(),n.before(o),o=null);var _=u?f:i,v=u?i:f;_&&gr(_),v&&Ve(v,()=>{u?i=null:f=null})}const c=(_,v)=>{if(u!==(u=_)){var h=pr(),p=n;if(h&&(o=document.createDocumentFragment(),o.append(p=le())),u?f??=v&&he(()=>v(p)):i??=v&&he(()=>v(p)),h){var m=C,b=u?f:i,y=u?i:f;b&&m.skipped_effects.delete(b),y&&m.skipped_effects.add(y),m.add_callback(d)}else d()}};br(()=>{s=!1,r(l),s||c(null,null)},a)}function vi(e,r){return r}function Rn(e,r,t){for(var n=e.items,f=[],i=r.length,u=0;u<i;u++)wr(r[u].e,f,!0);var a=i>0&&f.length===0&&t!==null;if(a){var s=t.parentNode;dn(s),s.append(t),n.clear(),U(e,r[0].prev,r[i-1].next)}ct(f,()=>{for(var l=0;l<i;l++){var o=r[l];a||(n.delete(o.k),U(e,o.prev,o.next)),W(o.e,!a)}})}function di(e,r,t,n,f,i=null){var u=e,a={flags:r,items:new Map,first:null},s=(r&Fr)!==0;if(s){var l=e;u=l.appendChild(le())}var o=null,d=!1,c=new Map,_=Zr(()=>{var m=t();return ir(m)?m:m==null?[]:fr(m)}),v,h;function p(){Mn(h,v,a,c,u,f,r,n,t),i!==null&&(v.length===0?o?gr(o):o=he(()=>i(u)):o!==null&&Ve(o,()=>{o=null}))}br(()=>{h??=g,v=q(_);var m=v.length;if(!(d&&m===0)){d=m===0;var b,y,x,T;if(pr()){var E=new Set,A=C;for(y=0;y<m;y+=1){x=v[y],T=n(x,y);var H=a.items.get(T)??c.get(T);H?(r&(qe|je))!==0&&Et(H,x,y,r):(b=mt(null,a,null,null,x,T,y,f,r,t,!0),c.set(T,b)),E.add(T)}for(const[Pe,We]of a.items)E.has(Pe)||A.skipped_effects.add(We.e);A.add_callback(p)}else p();q(_)}})}function Mn(e,r,t,n,f,i,u,a,s){var l=(u&Ot)!==0,o=(u&(qe|je))!==0,d=r.length,c=t.items,_=t.first,v=_,h,p=null,m,b=[],y=[],x,T,E,A;if(l)for(A=0;A<d;A+=1)x=r[A],T=a(x,A),E=c.get(T),E!==void 0&&(E.a?.measure(),(m??=new Set).add(E));for(A=0;A<d;A+=1){if(x=r[A],T=a(x,A),E=c.get(T),E===void 0){var H=n.get(T);if(H!==void 0){n.delete(T),c.set(T,H);var Pe=p?p.next:v;U(t,p,H),U(t,H,Pe),Ze(H,Pe,f),p=H}else{var We=v?v.e.nodes_start:f;p=mt(We,t,p,p===null?t.first:p.next,x,T,A,i,u,s)}c.set(T,p),b=[],y=[],v=p.next;continue}if(o&&Et(E,x,A,u),(E.e.f&j)!==0&&(gr(E.e),l&&(E.a?.unfix(),(m??=new Set).delete(E))),E!==v){if(h!==void 0&&h.has(E)){if(b.length<y.length){var xe=y[0],z;p=xe.prev;var Ar=b[0],Ke=b[b.length-1];for(z=0;z<b.length;z+=1)Ze(b[z],xe,f);for(z=0;z<y.length;z+=1)h.delete(y[z]);U(t,Ar.prev,Ke.next),U(t,p,Ar),U(t,Ke,xe),v=xe,p=Ke,A-=1,b=[],y=[]}else h.delete(E),Ze(E,v,f),U(t,E.prev,E.next),U(t,E,p===null?t.first:p.next),U(t,p,E),p=E;continue}for(b=[],y=[];v!==null&&v.k!==T;)(v.e.f&j)===0&&(h??=new Set).add(v),y.push(v),v=v.next;if(v===null)continue;E=v}b.push(E),p=E,v=E.next}if(v!==null||h!==void 0){for(var we=h===void 0?[]:fr(h);v!==null;)(v.e.f&j)===0&&we.push(v),v=v.next;var Ge=we.length;if(Ge>0){var At=(u&Fr)!==0&&d===0?f:null;if(l){for(A=0;A<Ge;A+=1)we[A].a?.measure();for(A=0;A<Ge;A+=1)we[A].a?.fix()}Rn(t,we,At)}}l&&dr(()=>{if(m!==void 0)for(E of m)E.a?.apply()}),e.first=t.first&&t.first.e,e.last=p&&p.e;for(var St of n.values())W(St.e);n.clear()}function Et(e,r,t,n){(n&qe)!==0&&Se(e.v,r),(n&je)!==0?Se(e.i,t):e.i=t}function mt(e,r,t,n,f,i,u,a,s,l,o){var d=(s&qe)!==0,c=(s&Nt)===0,_=d?c?et(f,!1,!1):Ae(f):f,v=(s&je)===0?u:Ae(u),h={i:v,v:_,k:i,a:null,e:null,prev:t,next:n};try{if(e===null){var p=document.createDocumentFragment();p.append(e=le())}return h.e=he(()=>a(e,_,v,l),Jt),h.e.prev=t&&t.e,h.e.next=n&&n.e,t===null?o||(r.first=h):(t.next=h,t.e.next=h.e),n!==null&&(n.prev=h,n.e.prev=h.e),h}finally{}}function Ze(e,r,t){for(var n=e.next?e.next.e.nodes_start:t,f=r?r.e.nodes_start:t,i=e.e.nodes_start;i!==null&&i!==n;){var u=He(i);f.before(i),i=u}}function U(e,r,t){r===null?e.first=t:(r.next=t,r.e.next=t&&t.e),t!==null&&(t.prev=r,t.e.prev=r&&r.e)}function _i(e,r,t=!1,n=!1,f=!1){var i=e,u="";mn(()=>{var a=g;if(u!==(u=r()??"")&&(a.nodes_start!==null&&(at(a.nodes_start,a.nodes_end),a.nodes_start=a.nodes_end=null),u!=="")){var s=u+"";t?s=`<svg>${s}</svg>`:n&&(s=`<math>${s}</math>`);var l=Er(s);if((t||n)&&(l=B(l)),pe(B(l),l.lastChild),t||n)for(;B(l);)i.before(B(l));else i.before(l)}})}function hi(e,r,t){var n=e,f,i,u=null,a=null;function s(){i&&(Ve(i),i=null),u&&(u.lastChild.remove(),n.before(u),u=null),i=a,a=null}br(()=>{if(f!==(f=r())){var l=pr();if(f){var o=n;l&&(u=document.createDocumentFragment(),u.append(o=le())),a=he(()=>t(o,f))}l?C.add_callback(s):s()}},Ue)}function yt(e){var r,t,n="";if(typeof e=="string"||typeof e=="number")n+=e;else if(typeof e=="object")if(Array.isArray(e)){var f=e.length;for(r=0;r<f;r++)e[r]&&(t=yt(e[r]))&&(n&&(n+=" "),n+=t)}else for(t in e)e[t]&&(n&&(n+=" "),n+=t);return n}function Ln(){for(var e,r,t=0,n="",f=arguments.length;t<f;t++)(e=arguments[t])&&(r=yt(e))&&(n&&(n+=" "),n+=r);return n}function pi(e){return typeof e=="object"?Ln(e):e??""}const Mr=[...`
2
+ \r\f \v\uFEFF`];function kn(e,r,t){var n=e==null?"":""+e;if(r&&(n=n?n+" "+r:r),t){for(var f in t)if(t[f])n=n?n+" "+f:f;else if(n.length)for(var i=f.length,u=0;(u=n.indexOf(f,u))>=0;){var a=u+i;(u===0||Mr.includes(n[u-1]))&&(a===n.length||Mr.includes(n[a]))?n=(u===0?"":n.substring(0,u))+n.substring(a+1):u=a}}return n===""?null:n}function Lr(e,r=!1){var t=r?" !important;":";",n="";for(var f in e){var i=e[f];i!=null&&i!==""&&(n+=" "+f+": "+i+t)}return n}function Xe(e){return e[0]!=="-"||e[1]!=="-"?e.toLowerCase():e}function Dn(e,r){if(r){var t="",n,f;if(Array.isArray(r)?(n=r[0],f=r[1]):n=r,e){e=String(e).replaceAll(/\s*\/\*.*?\*\/\s*/g,"").trim();var i=!1,u=0,a=!1,s=[];n&&s.push(...Object.keys(n).map(Xe)),f&&s.push(...Object.keys(f).map(Xe));var l=0,o=-1;const h=e.length;for(var d=0;d<h;d++){var c=e[d];if(a?c==="/"&&e[d-1]==="*"&&(a=!1):i?i===c&&(i=!1):c==="/"&&e[d+1]==="*"?a=!0:c==='"'||c==="'"?i=c:c==="("?u++:c===")"&&u--,!a&&i===!1&&u===0){if(c===":"&&o===-1)o=d;else if(c===";"||d===h-1){if(o!==-1){var _=Xe(e.substring(l,o).trim());if(!s.includes(_)){c!==";"&&d++;var v=e.substring(l,d).trim();t+=" "+v+";"}}l=d+1,o=-1}}}}return n&&(t+=Lr(n)),f&&(t+=Lr(f,!0)),t=t.trim(),t===""?null:t}return e==null?null:String(e)}function bi(e,r,t,n,f,i){var u=e.__className;if(u!==t||u===void 0){var a=kn(t,n,i);a==null?e.removeAttribute("class"):r?e.className=a:e.setAttribute("class",a),e.__className=t}else if(i&&f!==i)for(var s in i){var l=!!i[s];(f==null||l!==!!f[s])&&e.classList.toggle(s,l)}return i}function Je(e,r={},t,n){for(var f in t){var i=t[f];r[f]!==i&&(t[f]==null?e.style.removeProperty(f):e.style.setProperty(f,i,n))}}function wi(e,r,t,n){var f=e.__style;if(f!==r){var i=Dn(r,n);i==null?e.removeAttribute("style"):e.style.cssText=i,e.__style=r}else n&&(Array.isArray(n)?(Je(e,t?.[0],n[0]),Je(e,t?.[1],n[1],"important")):Je(e,t,n));return n}const Fn=Symbol("is custom element"),qn=Symbol("is html");function gi(e,r){var t=mr(e);t.value===(t.value=r??void 0)||e.value===r&&(r!==0||e.nodeName!=="PROGRESS")||(e.value=r??"")}function Ei(e,r){var t=mr(e);t.checked!==(t.checked=r??void 0)&&(e.checked=r)}function mi(e,r,t,n){var f=mr(e);f[r]!==(f[r]=t)&&(r==="loading"&&(e[Bt]=t),t==null?e.removeAttribute(r):typeof t!="string"&&jn(e).includes(r)?e[r]=t:e.setAttribute(r,t))}function mr(e){return e.__attributes??={[Fn]:e.nodeName.includes("-"),[qn]:e.namespaceURI===Lt}}var kr=new Map;function jn(e){var r=kr.get(e.nodeName);if(r)return r;kr.set(e.nodeName,r=[]);for(var t,n=e,f=Element.prototype;f!==n;){t=Dt(n);for(var i in t)t[i].set&&r.push(i);n=jr(n)}return r}function Dr(e,r){return e===r||e?.[ee]===r}function yi(e={},r,t,n){return wn(()=>{var f,i;return En(()=>{f=i,i=[],Ne(()=>{e!==t(...i)&&(r(e,...i),f&&Dr(t(...f),e)&&r(null,...f))})}),()=>{dr(()=>{i&&Dr(t(...i),e)&&r(null,...i)})}}),e}function yr(e,r,t){if(e==null)return r(void 0),t&&t(void 0),Q;const n=Ne(()=>e.subscribe(r,t));return n.unsubscribe?()=>n.unsubscribe():n}const ce=[];function Un(e,r){return{subscribe:Bn(e,r).subscribe}}function Bn(e,r=Q){let t=null;const n=new Set;function f(a){if(Wr(e,a)&&(e=a,t)){const s=!ce.length;for(const l of n)l[1](),ce.push(l,e);if(s){for(let l=0;l<ce.length;l+=2)ce[l][0](ce[l+1]);ce.length=0}}}function i(a){f(a(e))}function u(a,s=Q){const l=[a,s];return n.add(l),n.size===1&&(t=r(f,i)||Q),a(e),()=>{n.delete(l),n.size===0&&t&&(t(),t=null)}}return{set:f,update:i,subscribe:u}}function Ai(e,r,t){const n=!Array.isArray(e),f=n?[e]:e;if(!f.every(Boolean))throw new Error("derived() expects stores as input, got a falsy value");const i=r.length<2;return Un(t,(u,a)=>{let s=!1;const l=[];let o=0,d=Q;const c=()=>{if(o)return;d();const v=r(n?l[0]:l,u,a);i?u(v):d=typeof v=="function"?v:Q},_=f.map((v,h)=>yr(v,p=>{l[h]=p,o&=~(1<<h),s&&c()},()=>{o|=1<<h}));return s=!0,c(),function(){Ur(_),d(),s=!1}})}function $n(e){let r;return yr(e,t=>r=t)(),r}let Ie=!1,nr=Symbol();function Si(e,r,t){const n=t[r]??={store:null,source:et(void 0),unsubscribe:Q};if(n.store!==e&&!(nr in t))if(n.unsubscribe(),n.store=e??null,e==null)n.source.v=void 0,n.unsubscribe=Q;else{var f=!0;n.unsubscribe=yr(e,i=>{f?n.source.v=i:V(n.source,i)}),f=!1}return e&&nr in t?$n(e):q(n.source)}function Ti(){const e={};function r(){ft(()=>{for(var t in e)e[t].unsubscribe();Re(e,nr,{enumerable:!1,value:!0})})}return[e,r]}function Hn(e){var r=Ie;try{return Ie=!1,[e(),Ie]}finally{Ie=r}}const Vn={get(e,r){let t=e.props.length;for(;t--;){let n=e.props[t];if(ge(n)&&(n=n()),typeof n=="object"&&n!==null&&r in n)return n[r]}},set(e,r,t){let n=e.props.length;for(;n--;){let f=e.props[n];ge(f)&&(f=f());const i=J(f,r);if(i&&i.set)return i.set(t),!0}return!1},getOwnPropertyDescriptor(e,r){let t=e.props.length;for(;t--;){let n=e.props[t];if(ge(n)&&(n=n()),typeof n=="object"&&n!==null&&r in n){const f=J(n,r);return f&&!f.configurable&&(f.configurable=!0),f}}},has(e,r){if(r===ee||r===Hr)return!1;for(let t of e.props)if(ge(t)&&(t=t()),t!=null&&r in t)return!0;return!1},ownKeys(e){const r=[];for(let t of e.props)if(ge(t)&&(t=t()),!!t){for(const n in t)r.includes(n)||r.push(n);for(const n of Object.getOwnPropertySymbols(t))r.includes(n)||r.push(n)}return r}};function Oi(...e){return new Proxy({props:e},Vn)}function Ni(e,r,t,n){var f=(t&Ct)!==0,i=(t&It)!==0,u=n,a=!0,s=()=>(a&&(a=!1,u=i?Ne(n):n),u),l;if(f){var o=ee in e||Hr in e;l=J(e,r)?.set??(o&&r in e?b=>e[r]=b:void 0)}var d,c=!1;f?[d,c]=Hn(()=>e[r]):d=e[r],d===void 0&&n!==void 0&&(d=s(),l&&(Gt(),l(d)));var _;if(_=()=>{var b=e[r];return b===void 0?s():(a=!0,b)},(t&xt)===0)return _;if(l){var v=e.$$legacy;return function(b,y){return arguments.length>0?((!y||v||c)&&l(y?_():b),b):_()}}var h=!1,p=((t&Pt)!==0?Be:Zr)(()=>(h=!1,_()));f&&q(p);var m=g;return function(b,y){if(arguments.length>0){const x=y?q(p):f?ve(b):b;return V(p,x),h=!0,u!==void 0&&(u=x),b}return ae&&h||(m.f&se)!==0?p.v:q(p)}}export{$n as $,Kn as A,bi as B,ui as C,rn as D,Ue as E,fi as F,Zn as G,hi as H,Oi as I,ve as J,ci as K,di as L,si as M,ii as N,pi as O,Ei as P,gi as Q,ei as R,vi as S,Yn as T,mi as U,_i as V,In as W,oi as X,ni as Y,Bn as Z,Qn as _,he as a,Ai as a0,Ti as a1,Si as a2,li as a3,ai as a4,br as b,ir as c,W as d,Jn as e,Gn as f,q as g,ri as h,ze as i,Ni as j,pn as k,Z as l,V as m,Q as n,ti as o,en as p,dr as q,En as r,Ae as s,ft as t,Ne as u,zn as v,Xn as w,yi as x,mn as y,wi as z};
package/dist/frame.html CHANGED
@@ -5,8 +5,8 @@
5
5
  <link rel="icon" href="/assets/favicon.svg" />
6
6
  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
7
7
  <title>Gardenjs UI Component Explorer</title>
8
- <script type="module" crossorigin src="/assets/frame-HIvQhXZT.js"></script>
9
- <link rel="modulepreload" crossorigin href="/assets/props-C0iXbu7F.js">
8
+ <script type="module" crossorigin src="/assets/frame-BOcgZVOc.js"></script>
9
+ <link rel="modulepreload" crossorigin href="/assets/props-COK33XqS.js">
10
10
  <link rel="stylesheet" crossorigin href="/assets/frame-BnV1YnGW.css">
11
11
  </head>
12
12
  <body
package/dist/index.html CHANGED
@@ -5,9 +5,9 @@
5
5
  <link rel="icon" href="/assets/favicon.svg" />
6
6
  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
7
7
  <title>Gardenjs UI Component Explorer</title>
8
- <script type="module" crossorigin src="/assets/index-CePXpz0w.js"></script>
9
- <link rel="modulepreload" crossorigin href="/assets/props-C0iXbu7F.js">
10
- <link rel="stylesheet" crossorigin href="/assets/index-B_e-ixXE.css">
8
+ <script type="module" crossorigin src="/assets/index-DFG9gkdS.js"></script>
9
+ <link rel="modulepreload" crossorigin href="/assets/props-COK33XqS.js">
10
+ <link rel="stylesheet" crossorigin href="/assets/index-BDdBNVTh.css">
11
11
  </head>
12
12
 
13
13
  <body>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "gardenjs",
3
- "version": "1.6.9",
3
+ "version": "1.7.0",
4
4
  "description": "A component library explorer for UI development, testing and documentation.",
5
5
  "repository": {
6
6
  "type": "git",
@@ -2,6 +2,17 @@
2
2
  import Stage from './components/stage/Stage.svelte'
3
3
  import Sidebar from './components/sidebar/Sidebar.svelte'
4
4
  import Topbar from './components/topbar/Topbar.svelte'
5
+ import VerticalSplitPane from './components/panes/VerticalSplitPane.svelte'
6
+ import {
7
+ sidebarWidth,
8
+ sidebarExpanded,
9
+ sidebarMaxWidth,
10
+ updateSidebarWidth,
11
+ updateSidebarMaxWidth,
12
+ toggleExpandSidebar,
13
+ collapseMobileNavIfVisible,
14
+ initSidebar,
15
+ } from './logic/sidebar.svelte.js'
5
16
  import {
6
17
  stageStyle,
7
18
  stageSize,
@@ -31,12 +42,9 @@
31
42
  updateStageWidth,
32
43
  updateStageRect,
33
44
  resetStage,
34
- sidebarExpanded,
35
- toggleExpandSidebar,
36
45
  toggleShowInspector,
37
46
  toggleShowGrid,
38
47
  toggleOrientation,
39
- handleSelectionChanged,
40
48
  showInspector,
41
49
  showGrid,
42
50
  gridSettings,
@@ -92,9 +100,11 @@
92
100
  })
93
101
  $effect(() => {
94
102
  updateSelectedComponent($componentName)
95
- handleSelectionChanged()
103
+ collapseMobileNavIfVisible()
96
104
  })
97
105
 
106
+ initSidebar()
107
+
98
108
  let projectTitle = config.project_title || ''
99
109
  let projectLogo = config.project_logo?.split('/').pop() || null
100
110
  let projectLogoDarkmode =
@@ -132,99 +142,101 @@
132
142
  </div>
133
143
  {:else}
134
144
  <div class="garden">
135
- <div class="sidebar">
136
- <Sidebar
137
- {docsLink}
138
- {projectLogoDarkmode}
139
- {projectLogo}
140
- {projectTitle}
141
- appTheme={$appTheme}
142
- bookmarks={$bookmarks}
143
- filter={$filterNavTree}
144
- nodes={$nodes}
145
- panelExpanded={$panelExpanded}
146
- treeCollapsed={$treeCollapsed}
147
- sidebarExpanded={$sidebarExpanded}
148
- onLogoClicked={resetStage}
149
- onToggleBookmark={toggleBookmark}
150
- onToggleExpandPanel={toggleExpandPanel}
151
- onToggleFoldStatusOfNode={toggleFolder}
152
- onUpdateFilter={updateFilter}
153
- onCollapseTree={collapseTree}
154
- onExpandTree={expandTree}
155
- />
156
- </div>
157
- <div class="main">
158
- <Topbar
159
- appTheme={$appTheme}
160
- landscape={$landscape}
161
- node={$selectedNode}
162
- showGrid={$showGrid}
163
- nodeVisibleInExplorer={$selectedNodeVisibleInTree}
164
- showInspector={$showInspector}
165
- sidebarExpanded={$sidebarExpanded}
166
- stageHeight={$stageHeight}
167
- stageMaxHeight={$stageMaxHeight}
168
- stageMaxWidth={$stageMaxWidth}
169
- stageRect={$stageRect}
170
- stageSize={$stageSize}
171
- stageSizes={$stageSizes}
172
- stageWidth={$stageWidth}
173
- themes={$themes}
174
- onOpenInTab={openInTab}
175
- onSetStageHeight={updateStageHeight}
176
- onSetStageWidth={updateStageWidth}
177
- onSetStageSize={setStagesize}
178
- onSetTheme={setTheme}
179
- onToggleAppTheme={toggleAppTheme}
180
- onToggleBookmark={toggleBookmark}
181
- onToggleExpandSidebar={toggleExpandSidebar}
182
- onToggleOrientation={toggleOrientation}
183
- onToggleShowGrid={toggleShowGrid}
184
- onToggleShowInspector={toggleShowInspector}
185
- onRevealInExplorer={() => navigateToLeafNode($selectedNode?.href)}
186
- />
187
- <Stage
188
- appTheme={$appTheme}
189
- componentName={$componentName}
190
- das={$das}
191
- devmodus={config.devmodus}
192
- gridSettings={$gridSettings}
193
- panelExpanded={$panelExpanded}
194
- selectedExample={$selectedExample}
195
- showGrid={$showGrid}
196
- showInspector={$showInspector}
197
- stageContainerHeight={$stageContainerHeight}
198
- stageContainerMaxHeight={$stageContainerMaxHeight}
199
- stageHeight={$stageHeight}
200
- stageMaxHeight={$stageMaxHeight}
201
- stageMaxWidth={$stageMaxWidth}
202
- stageSize={$stageSize}
203
- stageStyle={$stageStyle}
204
- stageWidth={$stageWidth}
205
- theme={$activeTheme}
206
- onSetStageContainerHeight={updateStageContainerHeight}
207
- onSetStageContainerMaxHeight={updateStageContainerMaxHeight}
208
- onSetStageContainerWidth={updateStageContainerWidth}
209
- onSetStageHeight={updateStageHeight}
210
- onSetStageWidth={updateStageWidth}
211
- onToggleExpandPanel={toggleExpandPanel}
212
- onUpdateStageRect={updateStageRect}
213
- />
214
- </div>
145
+ <VerticalSplitPane
146
+ leftWidth={$sidebarWidth}
147
+ maxWidth={$sidebarMaxWidth}
148
+ onSetLeftWidth={updateSidebarWidth}
149
+ onSetMaxWidth={updateSidebarMaxWidth}
150
+ hideDragBar
151
+ >
152
+ {#snippet left()}
153
+ <Sidebar
154
+ {docsLink}
155
+ {projectLogoDarkmode}
156
+ {projectLogo}
157
+ {projectTitle}
158
+ appTheme={$appTheme}
159
+ bookmarks={$bookmarks}
160
+ filter={$filterNavTree}
161
+ nodes={$nodes}
162
+ panelExpanded={$panelExpanded}
163
+ treeCollapsed={$treeCollapsed}
164
+ sidebarExpanded={$sidebarExpanded}
165
+ onLogoClicked={resetStage}
166
+ onToggleBookmark={toggleBookmark}
167
+ onToggleExpandPanel={toggleExpandPanel}
168
+ onToggleFoldStatusOfNode={toggleFolder}
169
+ onUpdateFilter={updateFilter}
170
+ onCollapseTree={collapseTree}
171
+ onExpandTree={expandTree}
172
+ />
173
+ {/snippet}
174
+ {#snippet right()}
175
+ <div class="main">
176
+ <Topbar
177
+ appTheme={$appTheme}
178
+ landscape={$landscape}
179
+ node={$selectedNode}
180
+ showGrid={$showGrid}
181
+ nodeVisibleInExplorer={$selectedNodeVisibleInTree}
182
+ showInspector={$showInspector}
183
+ sidebarExpanded={$sidebarExpanded}
184
+ stageHeight={$stageHeight}
185
+ stageMaxHeight={$stageMaxHeight}
186
+ stageMaxWidth={$stageMaxWidth}
187
+ stageRect={$stageRect}
188
+ stageSize={$stageSize}
189
+ stageSizes={$stageSizes}
190
+ stageWidth={$stageWidth}
191
+ themes={$themes}
192
+ onOpenInTab={openInTab}
193
+ onSetStageHeight={updateStageHeight}
194
+ onSetStageWidth={updateStageWidth}
195
+ onSetStageSize={setStagesize}
196
+ onSetTheme={setTheme}
197
+ onToggleAppTheme={toggleAppTheme}
198
+ onToggleBookmark={toggleBookmark}
199
+ onToggleExpandSidebar={toggleExpandSidebar}
200
+ onToggleOrientation={toggleOrientation}
201
+ onToggleShowGrid={toggleShowGrid}
202
+ onToggleShowInspector={toggleShowInspector}
203
+ onRevealInExplorer={() => navigateToLeafNode($selectedNode?.href)}
204
+ />
205
+ <Stage
206
+ appTheme={$appTheme}
207
+ componentName={$componentName}
208
+ das={$das}
209
+ devmodus={config.devmodus}
210
+ gridSettings={$gridSettings}
211
+ panelExpanded={$panelExpanded}
212
+ selectedExample={$selectedExample}
213
+ showGrid={$showGrid}
214
+ showInspector={$showInspector}
215
+ stageContainerHeight={$stageContainerHeight}
216
+ stageContainerMaxHeight={$stageContainerMaxHeight}
217
+ stageHeight={$stageHeight}
218
+ stageMaxHeight={$stageMaxHeight}
219
+ stageMaxWidth={$stageMaxWidth}
220
+ stageSize={$stageSize}
221
+ stageStyle={$stageStyle}
222
+ stageWidth={$stageWidth}
223
+ theme={$activeTheme}
224
+ onSetStageContainerHeight={updateStageContainerHeight}
225
+ onSetStageContainerMaxHeight={updateStageContainerMaxHeight}
226
+ onSetStageContainerWidth={updateStageContainerWidth}
227
+ onSetStageHeight={updateStageHeight}
228
+ onSetStageWidth={updateStageWidth}
229
+ onToggleExpandPanel={toggleExpandPanel}
230
+ onUpdateStageRect={updateStageRect}
231
+ />
232
+ </div>
233
+ {/snippet}
234
+ </VerticalSplitPane>
215
235
  </div>
216
236
  {/if}
217
237
 
218
238
  <style>
219
- .sidebar {
220
- flex-grow: 0;
221
- flex-shrink: 0;
222
- }
223
239
  .garden {
224
- display: flex;
225
- flex-direction: row;
226
- flex-wrap: nowrap;
227
- flex-grow: 1;
228
240
  margin: 0;
229
241
  padding: 0 0.375rem;
230
242
  width: 100vw;
@@ -233,6 +245,7 @@
233
245
  background-color: var(--c-bg-body);
234
246
  }
235
247
  .main {
248
+ margin-left: 0.125rem;
236
249
  display: flex;
237
250
  flex-direction: column;
238
251
  width: 100%;
@@ -56,11 +56,10 @@
56
56
  das = dasMap[evt.data.componentName]
57
57
  const rawSelectedExample =
58
58
  das?.examples?.find((ex) => ex.title === evt.data.selectedExample) ?? {}
59
- const argsFromMessage =
60
- evt.data?.args && typeof evt.data.args === 'object' ? evt.data.args : {}
59
+ const paramValues = evt.data?.paramValues ?? undefined
61
60
  selectedExample = {
62
61
  ...rawSelectedExample,
63
- input: { ...(rawSelectedExample?.input ?? {}), ...argsFromMessage },
62
+ input: paramValues ?? rawSelectedExample?.input ?? {},
64
63
  }
65
64
  componentChanged = componentName !== evt.data.componentName
66
65
  componentName = evt.data.componentName || 'Welcome'
@@ -74,7 +73,7 @@
74
73
  redirectData = {}
75
74
  return
76
75
  } else {
77
- updateComponent(component, selectedExample, das)
76
+ executeLatest(() => updateComponent(component, selectedExample, das))
78
77
  }
79
78
  })
80
79
 
@@ -90,6 +89,23 @@
90
89
  return DefaultRendererBuilder
91
90
  }
92
91
 
92
+ let latestTask
93
+ let running = false
94
+
95
+ const executeLatest = async (task) => {
96
+ latestTask = task
97
+ if (running) return
98
+ if (!running) {
99
+ running = true
100
+ while (latestTask != null) {
101
+ const currentTask = latestTask
102
+ latestTask = undefined
103
+ await currentTask()
104
+ }
105
+ running = false
106
+ }
107
+ }
108
+
93
109
  async function updateComponent(component, selectedExample, das) {
94
110
  if (config.renderer) {
95
111
  const newRendererBuilder = await getRendererBuilderFor(das?.file)
@@ -101,7 +117,7 @@
101
117
  await runHooks()
102
118
 
103
119
  try {
104
- currentRenderer?.updateComponent({
120
+ await currentRenderer?.updateComponent({
105
121
  component,
106
122
  selectedExample,
107
123
  das,
@@ -1,5 +1,4 @@
1
1
  <script>
2
- import { onMount, onDestroy } from 'svelte'
3
2
  let {
4
3
  topHeight = $bindable(),
5
4
  maxHeight,
@@ -33,39 +32,38 @@
33
32
  return undefined
34
33
  })
35
34
 
36
- const resizeObserver = new ResizeObserver((entries) => {
37
- entries.forEach(() => {
38
- onSetMaxHeight(element.offsetHeight)
39
- onSetMaxWidth(element.offsetWidth)
35
+ $effect(() => {
36
+ const resizeObserver = new ResizeObserver((entries) => {
37
+ entries.forEach(() => {
38
+ if (element) {
39
+ onSetMaxHeight(element.offsetHeight)
40
+ onSetMaxWidth(element.offsetWidth)
41
+ }
42
+ })
40
43
  })
41
- })
42
-
43
- onMount(() => {
44
44
  resizeObserver.observe(element)
45
- })
46
45
 
47
- onDestroy(() => {
48
- resizeObserver.disconnect()
46
+ return () => {
47
+ resizeObserver.disconnect()
48
+ }
49
49
  })
50
50
 
51
- function register() {
52
- document.addEventListener('mousemove', drag)
53
- document.addEventListener('mouseup', unregister)
51
+ function startDrag(e) {
52
+ e.currentTarget.setPointerCapture(e.pointerId)
53
+ document.body.style.userSelect = 'none'
54
54
  dragging = true
55
55
  }
56
56
 
57
57
  const drag = (e) => {
58
- window.getSelection().removeAllRanges()
59
- const newHeight = Math.min(maxHeight, e.pageY - element.offsetTop - 7)
60
- topHeight = newHeight
58
+ if (e.buttons !== 1) return
59
+ const newHeight = Math.min(maxHeight, topHeight + e.movementY)
60
+ topHeight = Math.max(100, newHeight)
61
61
  onSetTopHeight(topHeight)
62
62
  }
63
63
 
64
- function unregister() {
65
- document.removeEventListener('mousemove', drag)
66
- document.removeEventListener('mouseup', unregister)
67
-
68
- onSetTopHeight(topHeight)
64
+ function stopDrag(e) {
65
+ e.currentTarget.releasePointerCapture(e.pointerId)
66
+ document.body.style.userSelect = ''
69
67
  dragging = false
70
68
  }
71
69
  </script>
@@ -75,7 +73,13 @@
75
73
  {@render top?.()}
76
74
  </div>
77
75
  <!-- eslint-disable-next-line -->
78
- <div class="dragbar" class:dragging onmousedown={register}></div>
76
+ <div
77
+ class="dragbar"
78
+ class:dragging
79
+ onpointerdown={startDrag}
80
+ onpointerup={stopDrag}
81
+ onpointermove={drag}
82
+ ></div>
79
83
  {@render bottom?.()}
80
84
  </div>
81
85
 
@@ -1,5 +1,4 @@
1
1
  <script>
2
- import { onMount, onDestroy } from 'svelte'
3
2
  let {
4
3
  leftWidth = $bindable(),
5
4
  maxWidth,
@@ -7,6 +6,7 @@
7
6
  right,
8
7
  onSetMaxWidth,
9
8
  onSetLeftWidth,
9
+ hideDragBar,
10
10
  } = $props()
11
11
  let element = $state()
12
12
  let dragging = $state(false)
@@ -20,15 +20,11 @@
20
20
  return
21
21
  }
22
22
  const elementWidth = element.offsetWidth
23
- onSetMaxWidth(elementWidth)
23
+ onSetMaxWidth(elementWidth - 100)
24
24
  onSetLeftWidth(Math.round(elementWidth * 0.2))
25
25
  }
26
26
  })
27
27
 
28
- const leftPos = $derived.by(() => {
29
- return element ? element.getBoundingClientRect().left + window.scrollX : 0
30
- })
31
-
32
28
  const leftWidthWithUnit = $derived.by(() => {
33
29
  if (Number.isInteger(leftWidth) && Number.isInteger(maxWidth)) {
34
30
  return maxWidth < leftWidth ? maxWidth + 'px' : leftWidth + 'px'
@@ -36,46 +32,37 @@
36
32
  return undefined
37
33
  })
38
34
 
39
- const resizeObserver = new ResizeObserver((entries) => {
40
- entries.forEach(() => {
41
- onSetMaxWidth(element.offsetWidth)
35
+ $effect(() => {
36
+ const resizeObserver = new ResizeObserver((entries) => {
37
+ entries.forEach(() => {
38
+ if (element) {
39
+ onSetMaxWidth(element.offsetWidth - 100)
40
+ }
41
+ })
42
42
  })
43
- })
44
-
45
- onMount(() => {
46
43
  resizeObserver.observe(element)
47
- })
48
44
 
49
- onDestroy(() => {
50
- resizeObserver.disconnect()
45
+ return () => {
46
+ resizeObserver.disconnect()
47
+ }
51
48
  })
52
49
 
53
- function register() {
54
- document.addEventListener('mousemove', drag)
55
- document.addEventListener('mouseup', unregister)
50
+ function startDrag(e) {
51
+ e.currentTarget.setPointerCapture(e.pointerId)
52
+ document.body.style.userSelect = 'none'
56
53
  dragging = true
57
54
  }
58
55
 
59
56
  const drag = (e) => {
60
- window.getSelection().removeAllRanges()
61
- console.log(
62
- 'DEBUG',
63
- 'epagex',
64
- e.pageX,
65
- 'offsetleft',
66
- element.offsetLeft,
67
- leftPos
68
- )
69
- const newWidth = Math.min(maxWidth, e.pageX - leftPos)
70
- leftWidth = newWidth
57
+ if (e.buttons !== 1) return
58
+ const newWidth = Math.min(maxWidth, leftWidth + e.movementX)
59
+ leftWidth = Math.max(100, newWidth)
71
60
  onSetLeftWidth(leftWidth)
72
61
  }
73
62
 
74
- function unregister() {
75
- document.removeEventListener('mousemove', drag)
76
- document.removeEventListener('mouseup', unregister)
77
-
78
- onSetLeftWidth(leftWidth)
63
+ function stopDrag(e) {
64
+ e.currentTarget.releasePointerCapture(e.pointerId)
65
+ document.body.style.userSelect = ''
79
66
  dragging = false
80
67
  }
81
68
  </script>
@@ -85,7 +72,14 @@
85
72
  {@render left?.()}
86
73
  </div>
87
74
  <!-- eslint-disable-next-line -->
88
- <div class="dragbar" class:dragging onmousedown={register}></div>
75
+ <div
76
+ class="dragbar"
77
+ class:dragging
78
+ class:hide-drag-bar={hideDragBar}
79
+ onpointerdown={startDrag}
80
+ onpointerup={stopDrag}
81
+ onpointermove={drag}
82
+ ></div>
89
83
  {@render right?.()}
90
84
  </div>
91
85
 
@@ -103,7 +97,6 @@
103
97
  flex-shrink: 0;
104
98
  border-right: 0;
105
99
  border-radius: 0.625rem 0.625rem 0 0;
106
- padding: 0 1.25rem 0 0;
107
100
  overflow: auto;
108
101
  }
109
102
  .dragbar {
@@ -119,4 +112,7 @@
119
112
  background-color: var(--c-primary);
120
113
  transform: scaleX(2);
121
114
  }
115
+ .hide-drag-bar {
116
+ background-color: unset;
117
+ }
122
118
  </style>