@neeloong/form 0.26.0 → 0.27.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.
package/index.d.mts CHANGED
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * @neeloong/form v0.26.0
2
+ * @neeloong/form v0.27.0
3
3
  * (c) 2024-2026 Fierflame
4
4
  * @license Apache-2.0
5
5
  */
@@ -129,9 +129,10 @@ declare namespace StoreLayout {
129
129
  relate?: ((store: Store, el: Element | StoreLayout.Relatedness) => () => void) | undefined;
130
130
  editable?: boolean | undefined;
131
131
  signal?: AbortSignal | undefined;
132
+ sanitizeHtml?: ((arg0: string) => string) | undefined;
132
133
  call?: ((name: string, event: Event, store: Store<any, any, any>, options?: StoreLayout.Options | null) => void) | undefined;
133
134
  };
134
- type Renderer<T_1 = unknown> = (store: Store<any, any, any>, renderer?: T_1, options?: StoreLayout.Options | null) => HTMLElement | null;
135
+ type Renderer<T_1 = unknown> = (store: Store<any, any, any>, renderer?: T_1 | string, options?: StoreLayout.Options | null) => HTMLElement | null;
135
136
  }
136
137
 
137
138
  type Schema<M = any, S extends {
package/index.full.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * @neeloong/form v0.26.0
2
+ * @neeloong/form v0.27.0
3
3
  * (c) 2024-2026 Fierflame
4
4
  * @license Apache-2.0
5
5
  */
@@ -5441,6 +5441,8 @@
5441
5441
  if (tagName === 'nl-form-field') {
5442
5442
  const field = node.getAttribute('name') || '';
5443
5443
  const mode = node.getAttribute('mode') || '';
5444
+ const renderer = node.getAttribute('renderer') || '';
5445
+ const editable = options?.editable && !node.hasAttribute('non-editable');
5444
5446
  const fieldStore = field ? store.child(field) : store;
5445
5447
  if (!fieldStore) { return; }
5446
5448
  /** @type {HTMLElement?} */
@@ -5450,11 +5452,11 @@
5450
5452
  const fieldLayout = field
5451
5453
  ? layout?.fields?.find(createFieldFilter(field)) || fieldStore.layout
5452
5454
  : { ...layout, html: '' };
5453
- el = Form(fieldStore, fieldRenderer, fieldLayout, options);
5455
+ el = Form(fieldStore, fieldRenderer, fieldLayout, {...options, editable});
5454
5456
  break;
5455
5457
  }
5456
5458
  default: {
5457
- el = fieldRenderer(fieldStore, layout.renderer, options);
5459
+ el = fieldRenderer(fieldStore, renderer || layout.renderer, {...options, editable});
5458
5460
  break;
5459
5461
  }
5460
5462
  }
@@ -5656,9 +5658,10 @@
5656
5658
  /**
5657
5659
  *
5658
5660
  * @param {string | ParentNode | null} [html]
5661
+ * @param {function(string): string} [sanitize]
5659
5662
  * @returns {ParentNode}
5660
5663
  */
5661
- function getHtmlContent(html) {
5664
+ function getHtmlContent(html, sanitize) {
5662
5665
  if (!html) {
5663
5666
  return document.createElement('template').content;
5664
5667
  }
@@ -5666,7 +5669,7 @@
5666
5669
  return /** @type {ParentNode} */(html.cloneNode(true));
5667
5670
  }
5668
5671
  const template = document.createElement('template');
5669
- template.innerHTML = html;
5672
+ template.innerHTML = sanitize ? sanitize(html) : html;
5670
5673
  return template.content;
5671
5674
  }
5672
5675
 
@@ -5683,7 +5686,7 @@
5683
5686
  if (options?.signal?.aborted) { return null; }
5684
5687
  const html = layout.html;
5685
5688
  if (html) {
5686
- const content = getHtmlContent(html);
5689
+ const content = getHtmlContent(html, options?.sanitizeHtml);
5687
5690
  renderHtml(store, fieldRenderer, content, options, layout);
5688
5691
  return content;
5689
5692
  }
@@ -6860,7 +6863,7 @@
6860
6863
  * @returns {ParentNode}
6861
6864
  */
6862
6865
  function Html(html, store, fieldRenderer, options, layout) {
6863
- const htmlContent = getHtmlContent(html);
6866
+ const htmlContent = getHtmlContent(html, options?.sanitizeHtml);
6864
6867
  renderHtml(store, fieldRenderer, htmlContent, options, layout);
6865
6868
  return htmlContent;
6866
6869
  }
@@ -6967,7 +6970,7 @@
6967
6970
  const html = layout.html;
6968
6971
  if (!html) { return null; }
6969
6972
  const [root, content] = createCell(options?.signal, layout, store);
6970
- const htmlContent = getHtmlContent(html);
6973
+ const htmlContent = getHtmlContent(html, options?.sanitizeHtml);
6971
6974
  renderHtml(store, fieldRenderer, htmlContent, options, layout);
6972
6975
  content.appendChild(htmlContent);
6973
6976
  return root;
@@ -7053,7 +7056,7 @@
7053
7056
  Form(store, fieldRenderer, storeLayout, options || null, root);
7054
7057
  return;
7055
7058
  }
7056
- const content = getHtmlContent(html);
7059
+ const content = getHtmlContent(html, options?.sanitizeHtml);
7057
7060
  renderHtml(store, fieldRenderer, content, options || null, storeLayout);
7058
7061
  root.appendChild(content);
7059
7062
  options?.signal?.addEventListener('abort', () => {
package/index.full.min.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * @neeloong/form v0.26.0
2
+ * @neeloong/form v0.27.0
3
3
  * (c) 2024-2026 Fierflame
4
4
  * @license Apache-2.0
5
5
  */
@@ -57,4 +57,4 @@ function(){throw new Error};function A(){return p(this),this.value}function $(e,
57
57
  * Use of this source code is governed by an MIT-style license that can be
58
58
  * found in the LICENSE file at https://angular.io/license
59
59
  */
60
- function(e){const t=Object.create(j);t.value=e;const n=()=>(p(t),t.value);return n[u]=t,n}(r),a=l[u];if(this[M]=a,a.wrapper=this,i){const t=i.equals;t&&(a.equal=t),a.watched=i[e.subtle.watched],a.unwatched=i[e.subtle.unwatched]}}get(){if(!(0,e.isState)(this))throw new TypeError("Wrong receiver type for Signal.State.prototype.get");return A.call(this[M])}set(t){if(!(0,e.isState)(this))throw new TypeError("Wrong receiver type for Signal.State.prototype.set");if(a)throw new Error("Writes to signals not permitted during Watcher callback");$(this[M],t)}};c=M,h=new WeakSet,e.isComputed=e=>r(h,e),e.Computed=class{constructor(t,r){o(this,h),n(this,c);const i=function(e){const t=Object.create(O);t.computation=e;const n=()=>x(t);return n[u]=t,n}(t),s=i[u];if(s.consumerAllowSignalWrites=!0,this[M]=s,s.wrapper=this,r){const t=r.equals;t&&(s.equal=t),s.watched=r[e.subtle.watched],s.unwatched=r[e.subtle.unwatched]}}get(){if(!(0,e.isComputed)(this))throw new TypeError("Wrong receiver type for Signal.Computed.prototype.get");return x(this[M])}},(t=>{var s,a,c,u;t.untrack=function(e){let t,n=null;try{n=d(null),t=e()}finally{d(n)}return t},t.introspectSources=function(t){var n;if(!(0,e.isComputed)(t)&&!(0,e.isWatcher)(t))throw new TypeError("Called introspectSources without a Computed or Watcher argument");return(null==(n=t[M].producerNode)?void 0:n.map((e=>e.wrapper)))??[]},t.introspectSinks=function(t){var n;if(!(0,e.isComputed)(t)&&!(0,e.isState)(t))throw new TypeError("Called introspectSinks without a Signal argument");return(null==(n=t[M].liveConsumerNode)?void 0:n.map((e=>e.wrapper)))??[]},t.hasSinks=function(t){if(!(0,e.isComputed)(t)&&!(0,e.isState)(t))throw new TypeError("Called hasSinks without a Signal argument");const n=t[M].liveConsumerNode;return!!n&&n.length>0},t.hasSources=function(t){if(!(0,e.isComputed)(t)&&!(0,e.isWatcher)(t))throw new TypeError("Called hasSources without a Computed or Watcher argument");const n=t[M].producerNode;return!!n&&n.length>0};s=M,a=new WeakSet,c=new WeakSet,u=function(t){for(const n of t)if(!(0,e.isComputed)(n)&&!(0,e.isState)(n))throw new TypeError("Called watch/unwatch without a Computed or State argument")},e.isWatcher=e=>r(a,e),t.Watcher=class{constructor(e){o(this,a),o(this,c),n(this,s);let t=Object.create(f);t.wrapper=this,t.consumerMarkedDirty=e,t.consumerIsAlwaysLive=!0,t.consumerAllowSignalWrites=!1,t.producerNode=[],this[M]=t}watch(...t){if(!(0,e.isWatcher)(this))throw new TypeError("Called unwatch without Watcher receiver");i(this,c,u).call(this,t);const n=this[M];n.dirty=!1;const r=d(n);for(const e of t)p(e[M]);d(r)}unwatch(...t){if(!(0,e.isWatcher)(this))throw new TypeError("Called unwatch without Watcher receiver");i(this,c,u).call(this,t);const n=this[M];w(n);for(let e=n.producerNode.length-1;e>=0;e--)if(t.includes(n.producerNode[e].wrapper)){v(n.producerNode[e],n.producerIndexOfThis[e]);const t=n.producerNode.length-1;if(n.producerNode[e]=n.producerNode[t],n.producerIndexOfThis[e]=n.producerIndexOfThis[t],n.producerNode.length--,n.producerIndexOfThis.length--,n.nextProducerIndex--,e<n.producerNode.length){const t=n.producerIndexOfThis[e],r=n.producerNode[e];E(r),r.liveConsumerIndexOfThis[t]=e}}}getPending(){if(!(0,e.isWatcher)(this))throw new TypeError("Called getPending without Watcher receiver");return this[M].producerNode.filter((e=>e.dirty)).map((e=>e.wrapper))}},t.currentComputed=function(){var e;return null==(e=l)?void 0:e.wrapper},t.watched=Symbol("watched"),t.unwatched=Symbol("unwatched")})(e.subtle||(e.subtle={}))})(e.Signal||(e.Signal={}));const k=e=>"string"==typeof e&&e||null,I=e=>"number"==typeof e&&e||null,B=e=>e instanceof RegExp?e:null,F=Boolean;function P(e){if("number"==typeof e||"string"==typeof e)return{label:e,value:e};if(!e||"object"!=typeof e)return null;const{children:t,label:n,value:r}=e,o=Array.isArray(t)?t.map(P).filter(F):[];return o.length?{children:o,label:n,value:r}:"number"==typeof r||"string"==typeof r?{label:n,value:r}:null}const R=e=>{if(!e||!Array.isArray(e))return null;const t=e.map(P).filter(F);return t.length?t:null};function U(t,n,r,o){const i=new e.Signal.State(n(r));let s;if("function"==typeof o){const r=o;s=new e.Signal.Computed((()=>n(r(t))))}else{const t=n(o);s=new e.Signal.Computed((()=>t))}const l=new e.Signal.Computed((()=>{const e=i.get();return null===e?s.get():e}));return[i,l]}const q=Symbol();function D(e){const t={[q]:e};for(const[n,r]of e)Object.defineProperty(t,n,{get:()=>r.ref,configurable:!1,enumerable:!0});return Object.defineProperty(t,q,{get:()=>e,configurable:!1,enumerable:!0}),t}let V=null,_=null,W=Object.create(null);function H(e,t){const n=e.type;let r=Y;if(!e.array||_&&t?.parent instanceof _)if("string"==typeof n){const e=W[n];e&&(r=e)}else n&&"object"==typeof n&&V&&(r=V);else _&&(r=_);return new r(e,t)}function K(e){return e?e instanceof Error?e.message:"string"!=typeof e?"":e:""}function z(t,...n){const r=n.flat().filter((e=>"function"==typeof e));if(!r.length)return[()=>Promise.resolve([]),new e.Signal.Computed((()=>[])),()=>{}];const o=new e.Signal.State([]);let i=null;return[function(){i?.abort(),i=new AbortController;const e=i.signal;return o.set([]),Promise.all(r.map((n=>async function(e,n){let r=[];try{r.push(await e(t,n))}catch(e){r.push(e)}const i=r.flat().map(K).filter(Boolean);return!n.aborted&&i.length&&o.set([...o.get(),...i]),i}(n,e)))).then((e=>e.flat()))},new e.Signal.Computed((()=>o.get())),()=>{i?.abort(),o.set([])}]}class Y{#e=new Map;emit(e,t){const n="number"==typeof e?String(e):e,r=this.#e;let o=!1;for(const e of[...r.get(n)||[]])o=!1===e(t,this)||o;return!o}listen(e,t){const n=t.bind(this),r=this.#e,o="number"==typeof e?String(e):e;let i=r.get(o);return i||(i=new Set,r.set(o,i)),i.add(n),()=>{i?.delete(n)}}static create(e,t={}){return H({type:e},{...t,parent:null})}static setStore(e,t){return function(e,t){W[e]=t}(e,t)}#t=!1;get null(){return this.#t}get kind(){return""}#n=null;get ref(){return this.#n||D(this)}constructor(t,{null:n,ref:r,default:o,setValue:i,convert:s,onUpdate:l,states:a,validator:c,validators:u,index:d,size:f,new:p,parent:h,hidden:g,clearable:m,required:b,disabled:v,readonly:y,removable:w,label:E,description:x,placeholder:S,min:L,max:C,step:O,minLength:N,maxLength:A,pattern:$,values:j}={}){this.schema=t;const M=h instanceof Y?h:null;var F,P;M&&(this.#r=M,this.#o=M.#o,this.#i=M.#i),this.#s=(F=this,"function"!=typeof(P=o??t.default)?()=>structuredClone(P):e=>structuredClone(P(F,e)));const q=new e.Signal.State(!1);this.#l=q,this.#i=q,this.#a=t.type,this.#c=t.meta,this.#u=t.component,this.#d=t.layout||{};const V=new e.Signal.State(Boolean(p));this.#f=V;const _=M?new e.Signal.Computed((()=>M.#p.get()||V.get())):new e.Signal.Computed((()=>V.get()));this.#p=_;const W=Boolean(t.immutable),H=!1!==t.creatable;this.#h=W,this.#g=H;const G=t.readonly,Q=new e.Signal.State("boolean"==typeof y?y:null);let X;if("function"==typeof G)X=new e.Signal.Computed((()=>Boolean(G(this))));else{const t=Boolean(G);X=new e.Signal.Computed((()=>t))}const Z=()=>{if(_.get()?!H:W)return!0;const e=Q.get();return null===e?X.get():e},J=M?M.#m:null;this.#b=Q,this.#m=J?new e.Signal.Computed((()=>J.get()||Z())):new e.Signal.Computed(Z),[this.#v,this.#y]=T(this,g,t.hidden,M?M.#y:null),[this.#w,this.#E]=T(this,m,t.clearable,M?M.#E:null),[this.#x,this.#S]=T(this,b,t.required,M?M.#S:null),[this.#L,this.#C]=T(this,v,t.disabled,M?M.#C:null),[this.#O,this.#N]=U(this,k,E,t.label),[this.#A,this.#$]=U(this,k,x,t.description),[this.#j,this.#M]=U(this,k,S,t.placeholder),[this.#T,this.#k]=U(this,I,L,t.min),[this.#I,this.#B]=U(this,I,C,t.max),[this.#F,this.#P]=U(this,I,O,t.step),[this.#R,this.#U]=U(this,I,N,t.minLength),[this.#q,this.#D]=U(this,I,A,t.maxLength),[this.#V,this.#_]=U(this,B,$,t.pattern),[this.#W,this.#H]=U(this,R,j,t.values),[this.#K,this.#z]=T(this,w,t.removable??!0);const ee=function(t,...n){const r=n.flat().filter((e=>"function"==typeof e));return r.length?new e.Signal.Computed((()=>{const e=[];for(const n of r)try{e.push(n(t))}catch(t){e.push(t)}return e.flat().map(K).filter(Boolean)})):new e.Signal.Computed((()=>[]))}(this,t.validator,c),te=t.states;this.#Y=te?Object.defineProperties(Object.create(null),Object.fromEntries(Object.entries(te).map((([t,{get:n,set:r,toState:o}])=>{const i=new e.Signal.State(o?.(a?.[t])),s=new e.Signal.Computed((()=>n(this,i)));return[t,{configurable:!0,enumerable:!0,get:()=>s.get(),set(e){return r?.(this,i,e)}}]})))):null;const[ne,re,oe]=z(this,t.validators?.change,u?.change),[ie,se,le]=z(this,t.validators?.blur,u?.blur);if(this.listen("change",(()=>{ne()})),this.listen("blur",(()=>{ie()})),this.#G=function(...t){const n=t.filter(Boolean);return new e.Signal.Computed((()=>n.flatMap((e=>e.get()))))}(ee,re,se),this.#Q=ee,this.#X=ne,this.#Z=ie,this.#J=oe,this.#ee=le,f instanceof e.Signal.State||f instanceof e.Signal.Computed?this.#te=f:this.#te=new e.Signal.State(f||0),n)return this.#t=!0,void(this.#n=D(this));this.#n=r||null,this.#ne=l||null,this.#re="function"==typeof i?i:null,this.#oe="function"==typeof s?s:null,this.#ie.set(d??"");for(const[e,n]of Object.entries(t.events||{}))"function"==typeof n&&this.listen(e,n)}#Y;get states(){return this.#Y}#d;get layout(){return this.#d}#s;createDefault(e){return this.#s(e)}#re=null;#oe=null;#ne=null;#r=null;#o=this;#a;#c;#u;#l=null;#i;get loading(){return this.#i.get()}set loading(e){const t=this.#l;t&&t.set(Boolean(e))}get store(){return this}get parent(){return this.#r}get root(){return this.#o}get type(){return this.#a}get meta(){return this.#c}get component(){return this.#u}#te;get size(){return this.#te.get()}#ie=new e.Signal.State("");get index(){return this.#ie.get()}set index(e){this.#ie.set(e)}get no(){if(this.#t)return"";const e=this.index;return"number"==typeof e?e+1:e}#g=!0;get creatable(){return this.#g}#h=!1;get immutable(){return this.#h}#p;#f;get selfNew(){return this.#f.get()}set selfNew(e){this.#f.set(Boolean(e))}get new(){return this.#p.get()}set new(e){this.#f.set(Boolean(e))}#v;#y;get selfHidden(){return this.#v.get()}set selfHidden(e){this.#v.set("boolean"==typeof e?e:null)}get hidden(){return this.#y.get()}set hidden(e){this.#v.set("boolean"==typeof e?e:null)}#w;#E;get selfClearable(){return this.#w.get()}set selfClearable(e){this.#w.set("boolean"==typeof e?e:null)}get clearable(){return this.#E.get()}set clearable(e){this.#w.set("boolean"==typeof e?e:null)}#x;#S;get selfRequired(){return this.#x.get()}set selfRequired(e){this.#x.set("boolean"==typeof e?e:null)}get required(){return this.#S.get()}set required(e){this.#x.set("boolean"==typeof e?e:null)}#L;#C;get selfDisabled(){return this.#L.get()}set selfDisabled(e){this.#L.set("boolean"==typeof e?e:null)}get disabled(){return this.#C.get()}set disabled(e){this.#L.set("boolean"==typeof e?e:null)}#b;#m;get selfReadonly(){return this.#b.get()}set selfReadonly(e){this.#b.set("boolean"==typeof e?e:null)}get readonly(){return this.#m.get()}set readonly(e){this.#b.set("boolean"==typeof e?e:null)}#K;#z;get selfRemovable(){return this.#K.get()}set selfRemovable(e){this.#K.set("boolean"==typeof e?e:null)}get removable(){return this.#z.get()}set removable(e){this.#K.set("boolean"==typeof e?e:null)}#O;#N;get selfLabel(){return this.#O.get()}set selfLabel(e){this.#O.set(k(e))}get label(){return this.#N.get()}set label(e){this.#O.set(k(e))}#A;#$;get selfDescription(){return this.#A.get()}set selfDescription(e){this.#A.set(k(e))}get description(){return this.#$.get()}set description(e){this.#A.set(k(e))}#j;#M;get selfPlaceholder(){return this.#j.get()}set selfPlaceholder(e){this.#j.set(k(e))}get placeholder(){return this.#M.get()}set placeholder(e){this.#j.set(k(e))}#T;#k;get selfMin(){return this.#T.get()}set selfMin(e){this.#T.set(I(e))}get min(){return this.#k.get()}set min(e){this.#T.set(I(e))}#I;#B;get selfMax(){return this.#I.get()}set selfMax(e){this.#I.set(I(e))}get max(){return this.#B.get()}set max(e){this.#I.set(I(e))}#F;#P;get selfStep(){return this.#F.get()}set selfStep(e){this.#F.set(I(e))}get step(){return this.#P.get()}set step(e){this.#F.set(I(e))}#R;#U;get selfMinLength(){return this.#R.get()}set selfMinLength(e){this.#R.set(I(e))}get minLength(){return this.#U.get()}set minLength(e){this.#R.set(I(e))}#q;#D;get selfMaxLength(){return this.#q.get()}set selfMaxLength(e){this.#q.set(I(e))}get maxLength(){return this.#D.get()}set maxLength(e){this.#q.set(I(e))}#V;#_;get selfPattern(){return this.#V.get()}set selfPattern(e){this.#V.set(B(e))}get pattern(){return this.#_.get()}set pattern(e){this.#V.set(B(e))}#W;#H;get selfValues(){return this.#W.get()}set selfValues(e){this.#W.set(R(e))}get values(){return this.#H.get()}set values(e){this.#W.set(R(e))}#G;#Q;#X;#Z;#J;#ee;get errors(){return this.#G.get()}get error(){return this.#G.get()[0]}*[Symbol.iterator](){}child(e){return null}#se=!1;#le=new e.Signal.State(null);#ae=new e.Signal.State(this.#le.get());bindObject(e){const t=this.#ce,n=[];for(const[r,o]of Object.entries(e)){const e=H(o,{index:r,parent:this,onUpdate:(e,n,o)=>{if(r!==n)return;if(t.has(o))return;const i=this.#ae??null;"object"!=typeof i||Array.isArray(i)||(this.value={...i,[n]:e})}});n.push(e),t.set(e,r)}return this.#ue(),()=>{for(const e of n)t.delete(e)}}#ce=new Map;get changed(){return!Object.is(this.#ae.get(),this.#le.get())}get value(){return this.#ae.get()}set value(e){const t=this.#re?.(e),n=void 0===t?e:t;this.#ae.set(n),this.#se||this.#le.set(n),this.#ne?.(n,this.#ie.get(),this),this.#ue()}#ue(){this.#de||(this.#de=!0,queueMicrotask((()=>{const e=this.#ae.get();this.#fe(e)})))}reset(e=(this.#se?this.#le.get():this.#s()),t=this.#f.get()){this.#pe(e,Boolean(t))}#pe(e,t){this.#f.set(t);const n=this.#re?.(e),r=void 0===n?e:n;if(this.#J(),this.#ee(),this.#se=!0,!r||"object"!=typeof r){for(const[,e]of this)e.#pe(null,!1);for(const[e]of this.#ce)e.#pe(null,!1);return this.#ae.set(r),this.#le.set(r),this.#ne?.(r,this.#ie.get(),this),r}const o=Array.isArray(r)?[...r]:{...r};for(const[e,t]of this)o[e]=t.#pe(Object.hasOwn(o,e)?o[e]:void 0,!1);for(const[e,t]of this.#ce)o[t]=e.#pe(Object.hasOwn(o,t)?o[t]:void 0,!1);return this.#ae.set(o),this.#le.set(o),this.#ne?.(o,this.#ie.get(),this),o}#de=!1;#he(e){let t=this.#oe?.(e)??e;return void 0===t&&(t=e),Object.is(this.#ae.get(),t)?t:this.#fe(t)}#fe(e){this.#de=!1;let t=e;if(e&&"object"==typeof e){let n=Array.isArray(e)?[...e]:{...e},r=!1;for(const[t,o]of this){const i=Object.hasOwn(e,t)?e[t]:void 0,s=o.#he(i);Object.is(i,s)||(n[t]=s,r=!0)}for(const[t,o]of this.#ce){const i=Object.hasOwn(e,o)?e[o]:void 0,s=t.#he(i);Object.is(i,s)||(n[o]=s,r=!0)}r&&(t=e=n,this.#ae.set(e))}return this.#se||(this.#se=!0,this.#le.set(t)),this.#ae.set(e),e}validate(e){if(!0===e)return Promise.all([this.#Q.get(),this.#X(),this.#Z()]).then((e=>{const t=e.flat();return t.length?t:null}));const t=Array.isArray(e)?e:[];if(this.#y.get())return Promise.resolve([]);const n=[this.validate(!0).then((e=>e?.length?[{path:[...t],store:this,errors:e}]:[]))];for(const[e,r]of this)n.push(r.validate([...t,e]));for(const[e,r]of this.#ce)n.push(e.validate([...t,r]));return Promise.all(n).then((e=>e.flat()))}}class G extends Y{get kind(){return"object"}#ge;*[Symbol.iterator](){yield*Object.entries(this.#ge)}child(e){return this.#ge[e]||null}constructor(e,{parent:t,index:n,new:r,onUpdate:o}={}){const i=Object.entries(e.type),s=Object.create(null);super(e,{parent:t,index:n,new:r,onUpdate:o,size:i.length,setValue:e=>"object"==typeof e?e:null,convert:e=>"object"==typeof e?e:{},default:e.default??((t,n)=>{const r=Object.entries(s);let o=n;return o&&"object"==typeof o||(o=e.default),o&&"object"==typeof o||(o={}),Object.fromEntries(r.map((([e,t])=>[e,t.createDefault(Object.hasOwn(o,e)?o[e]:null)])))})});const l={parent:this,onUpdate:(e,t,n)=>{n===this.#ge[t]&&(this.value={...this.value,[t]:e})}};for(const[e,t]of i)s[e]=H(t,{...l,index:e});this.#ge=s}}V=G;class Q extends Y{#me=()=>{throw new Error};#ge;get children(){return[...this.#ge.get()]}*[Symbol.iterator](){return yield*[...this.#ge.get().entries()]}child(e){const t=this.#ge.get();return"number"==typeof e&&e<0?t[t.length+e]||null:t[Number(e)]||null}get kind(){return"array"}constructor(t,{parent:n,onUpdate:r,index:o,new:i,addable:s}={}){const l=new e.Signal.State([]),a=e=>{const t=Array.isArray(e)&&e.length||0,n=[...l.get()],r=n.length;for(let e=n.length;e<t;e++)n.push(this.#me(e));n.length=t,r!==t&&l.set(n)};super({...t,immutable:!1},{index:o,new:i,parent:n,size:new e.Signal.Computed((()=>l.get().length)),setValue(e){const t=Array.isArray(e)?e:null==e?null:[e];return a(t),t},convert(e){const t=Array.isArray(e)?e:null==e?null:[e];return a(t),t},onUpdate:(e,t,n)=>{a(e),r?.(e,t,n)},default:t.default??[]}),[this.#be,this.#ve]=T(this,s,t.addable??!0),this.#ge=l;const c={parent:this,onUpdate:(e,t,n)=>{if(l.get()[t]!==n)return;const r=[...this.value||[]];r.length<t&&(r.length=t),r[t]=e,this.value=r}};this.#me=(e,n)=>{const r=H({...t,creatable:!0},{...c,index:e,new:n});return r.index=e,r}}bindObject(){throw new Error("ArrayStore 不支持 bindObject()方法")}#be;#ve;get selfAddable(){return this.#be.get()}set selfAddable(e){this.#be.set("boolean"==typeof e?e:null)}get addable(){return this.#ve.get()}set addable(e){this.#be.set("boolean"==typeof e?e:null)}insert(e,t=null,n){if(!this.addable)return!1;const r=this.value||[];if(!Array.isArray(r))return!1;const o=[...this.#ge.get()],i=Math.max(0,Math.min(Math.floor(e),o.length)),s=this.#me(i,n);s.new=!0,o.splice(i,0,s);for(let t=e+1;t<o.length;t++)o[t].index=t;const l=[...r];return l.splice(i,0,s.createDefault(t)),this.#ge.set(o),this.value=l,!0}add(e=null){return this.insert(this.#ge.get().length,e)}remove(e){const t=this.value;if(!Array.isArray(t))return;const n=[...this.#ge.get()],r=Math.max(0,Math.min(Math.floor(e),n.length)),[o]=n.splice(r,1);if(!o)return;for(let t=e;t<n.length;t++)n[t].index=t;const i=[...t],[s]=i.splice(r,1);return this.#ge.set(n),this.value=i,s}move(e,t,n=1){const r=Math.floor(n);if(r<1)return 0;if(e<=t&&e+r>t)return 0;const o=this.value;if(!Array.isArray(o))return 0;const i=[...this.#ge.get()],s=i.splice(e,r),l=s.length;if(!l)return 0;const a=r>1&&t>e?t-r+1:t;i.splice(a,0,...s);let c=Math.min(e,a),u=Math.max(e+r-1,t);for(let e=c;e<=u;e++)i[e].index=e;const d=[...o],f=d.splice(e,l);for(let e=f.length;e<l;e++)f.push(null);for(;a>d.length;)d.push(null);return d.splice(a,0,...f),this.#ge.set(i),this.value=d,l}exchange(e,t){const n=this.value;if(!Array.isArray(n))return!1;const r=[...this.#ge.get()],o=r[e],i=r[t];if(!o||!i)return!1;r[t]=o,r[e]=i,o.index=t,i.index=e;const s=[...n],l=s[e],a=s[t];return s[t]=l,s[e]=a,this.#ge.set(r),this.value=s,!0}}function X(e){if(!e?.length)return[];const t=[];let n=[],r=Object.create(null),o=!1;for(const t of e){if("string"==typeof t)continue;const e=t.template;if(!e)continue;o=!0;const n=Z(t);r[e]={params:t.params,children:n?[n]:[]}}function i(e){e.length&&t.push({type:"divergent",children:e.map((([e,t])=>{const n=Z(t);return n?"string"!=typeof n&&"fragment"===n.type?[n,e]:[{children:[n]},e]:[{children:[]},e]}))})}for(const r of e){if("string"==typeof r){i(n),n=[],t.push(r);continue}if(r.template){i(n),n=[];continue}if(n.length&&r.else){const e=r.if||null;n.push([e,r]),e||(i(n),n=[]);continue}i(n),n=[];const e=r.if;if(e){n.push([e,r]);continue}const o=Z(r);o&&t.push(o)}return i(n),o?[{type:"fragment",templates:r,children:t}]:t}function Z(e){let t=function(e){const t=e.fragment;if(t&&"string"==typeof t)return{type:"template",template:t,attrs:e.attrs,children:[]};const n=function({text:e,html:t}){return null!=e?{type:"content",value:e}:null!=t?{type:"content",value:t,html:!0}:void 0}(e),r=n?[n]:X(e.children);return!e.name||t?n||{type:"fragment",children:r}:{name:e.name,is:e.is,attrs:e.attrs,events:e.events,classes:e.classes,styles:e.styles,enhancements:e.enhancements,bind:e.bind,comment:e.comment,children:r}}(e),n=e.vars;n.length&&t&&"string"!=typeof t&&(t.vars?t.vars=[...n,...t.vars]:t?t.vars=n:t={type:"fragment",vars:n,children:[]},n=null);const r=e.enum,o=e.value;return r&&(t={type:"enum",value:r,sort:e.sort,vars:n,children:t?[t]:[]},n=null),o&&(t={type:"value",name:o,vars:n,children:t?[t]:[]},n=null),n?.length&&(t={type:"fragment",vars:n,children:t?[t]:[]}),t}!function(e){_=e}(Q);const J=/^([+-]?(\d(_?\d)*(\.(\d(_?\d)*)?)?|\.\d(_?\d)*)(?:e[+-]?\d(_?\d)*)|0(b[01](?:_?[01])*|o[0-7](?:_?[0-7])*|x[\dA-F](?:_?[\dA-F])*))$/is;const ee={CALC:"no `createCalc` option, no expression parsing support",EVENT:"no `createEvent`, options, no event parsing support",CLOSE:(e,t)=>`end tag name: ${e} is not match the current start tagName: ${t}`,UNCLOSE:e=>`end tag name: ${e} maybe not complete`,QUOTE:e=>`attribute value no end '${e}' match`,CLOSE_SYMBOL:"elements closed character '/' and '>' must be connected to",UNCOMPLETED:(e,t)=>t?`end tag name: ${e} is not complete: ${t}`:`end tag name: ${e} maybe not complete`,ENTITY:e=>`entity not found: ${e}`,SYMBOL:e=>`unexpected symbol: ${e}`,TAG:e=>`invalid tagName: ${e}`,ATTR:e=>`invalid attribute: ${e}`,EQUAL:"attribute equal must after attrName",ATTR_VALUE:'attribute value must after "="',EOF:"unexpected end of file"};class te extends Error{constructor(e,...t){const n=ee[e];super("function"==typeof n?n(...t):n),this.code=e}}const ne=/^(?<decorator>[:@!+*\.?]|style:|样式:)?(?<name>-?[\w\p{Unified_Ideograph}_][-\w\p{Unified_Ideograph}_:\d\.]*)$/u,re=/^~(?<enhancement>[\w\p{Unified_Ideograph}_][-\w\p{Unified_Ideograph}_\d\.]*)(?:(?<decorator>[:@!])(?<name>-?[\w\p{Unified_Ideograph}_][-\w\p{Unified_Ideograph}_:\d\.]*))?$/u,oe=/^(?<name>[a-zA-Z$\p{Unified_Ideograph}_][\da-zA-Z$\p{Unified_Ideograph}_]*)?$/u;function ie(e,t){const n=e[t];if(n)return n;const r={attrs:Object.create(null),events:Object.create(null)};return e[t]=r,r}function se(e,t){const n=e.replace(/$\s+|\s+$/gs,"");if("null"===n)return{value:null};if("true"===n)return{value:!0};if("false"===n)return{value:!1};const r=function(e){return J.test(e)?Number(e.replaceAll("_","")):NaN}(n);return Number.isNaN(r)?oe.test(n)?{name:n}:{calc:t(e)}:{value:r}}function le(e,t,n,r,o){const{attrs:i,events:s,classes:l,styles:a,vars:c,params:u,enhancements:d}=e;return function(f,p){const h=f.replace(/./g,".").replace(/:/g,":").replace(/@/g,"@").replace(/+/g,"+").replace(/-/g,"-").replace(/[*×]/g,"*").replace(/!/g,"!"),g=(ne.exec(h)||re.exec(h))?.groups;if(!g)throw new te("ATTR",f);const{name:m,enhancement:b}=g,v=g.decorator?.toLowerCase();if(b){if(":"===v)ie(d,b).attrs[m]=p?se(p,t):{name:m};else if("@"===v)ie(d,b).events[m]=p?oe.test(p)?{name:p}:{event:r(p)}:{name:m};else if("!"===v){if("bind"===m)ie(d,b).bind=p||!0}else ie(d,b).value=se(p,t);return}if(!v)return void(i[m]={value:p});if(":"===v)return void(i[m]=p?se(p,t):{name:m});if("."===v)return void(l[m]=p?se(p,t):{name:m});if("style:"===v)return void(a[m]=se(p,t));if("@"===v)return void(s[m]=p?oe.test(p)?{name:p}:{event:r(p)}:{name:m});if("+"===v)return void c.push({...p?se(p,n):{value:void 0},variable:m,init:!0});if("*"===v)return void c.push({...se(p,t),variable:m,init:!1});if("?"===v)return void(u[m]=se(p,t));if("!"!==v)return;switch(m.toString()){case"fragment":e.fragment=p||!0;break;case"else":e.else=!0;break;case"enum":e.enum=p?se(p,t):{value:!0};break;case"sort":e.sort=p?se(p,t):{value:!0};break;case"if":e.if=se(p,t);break;case"text":e.text=se(p,t);break;case"html":o&&(e.html=se(p,t));break;case"template":e.template=p;break;case"bind":e.bind=p||!0;break;case"value":e.value=p;break;case"comment":e.comment=p}}}function ae(e,t){return{name:e,is:t,children:[],attrs:Object.create(null),events:Object.create(null),classes:Object.create(null),styles:Object.create(null),vars:[],params:Object.create(null),enhancements:Object.create(null)}}var ce={lt:"<",gt:">",amp:"&",quot:'"',apos:"'",Agrave:"À",Aacute:"Á",Acirc:"Â",Atilde:"Ã",Auml:"Ä",Aring:"Å",AElig:"Æ",Ccedil:"Ç",Egrave:"È",Eacute:"É",Ecirc:"Ê",Euml:"Ë",Igrave:"Ì",Iacute:"Í",Icirc:"Î",Iuml:"Ï",ETH:"Ð",Ntilde:"Ñ",Ograve:"Ò",Oacute:"Ó",Ocirc:"Ô",Otilde:"Õ",Ouml:"Ö",Oslash:"Ø",Ugrave:"Ù",Uacute:"Ú",Ucirc:"Û",Uuml:"Ü",Yacute:"Ý",THORN:"Þ",szlig:"ß",agrave:"à",aacute:"á",acirc:"â",atilde:"ã",auml:"ä",aring:"å",aelig:"æ",ccedil:"ç",egrave:"è",eacute:"é",ecirc:"ê",euml:"ë",igrave:"ì",iacute:"í",icirc:"î",iuml:"ï",eth:"ð",ntilde:"ñ",ograve:"ò",oacute:"ó",ocirc:"ô",otilde:"õ",ouml:"ö",oslash:"ø",ugrave:"ù",uacute:"ú",ucirc:"û",uuml:"ü",yacute:"ý",thorn:"þ",yuml:"ÿ",nbsp:" ",iexcl:"¡",cent:"¢",pound:"£",curren:"¤",yen:"¥",brvbar:"¦",sect:"§",uml:"¨",copy:"©",ordf:"ª",laquo:"«",not:"¬",shy:"­­",reg:"®",macr:"¯",deg:"°",plusmn:"±",sup2:"²",sup3:"³",acute:"´",micro:"µ",para:"¶",middot:"·",cedil:"¸",sup1:"¹",ordm:"º",raquo:"»",frac14:"¼",frac12:"½",frac34:"¾",iquest:"¿",times:"×",divide:"÷",forall:"∀",part:"∂",exist:"∃",empty:"∅",nabla:"∇",isin:"∈",notin:"∉",ni:"∋",prod:"∏",sum:"∑",minus:"−",lowast:"∗",radic:"√",prop:"∝",infin:"∞",ang:"∠",and:"∧",or:"∨",cap:"∩",cup:"∪",int:"∫",there4:"∴",sim:"∼",cong:"≅",asymp:"≈",ne:"≠",equiv:"≡",le:"≤",ge:"≥",sub:"⊂",sup:"⊃",nsub:"⊄",sube:"⊆",supe:"⊇",oplus:"⊕",otimes:"⊗",perp:"⊥",sdot:"⋅",Alpha:"Α",Beta:"Β",Gamma:"Γ",Delta:"Δ",Epsilon:"Ε",Zeta:"Ζ",Eta:"Η",Theta:"Θ",Iota:"Ι",Kappa:"Κ",Lambda:"Λ",Mu:"Μ",Nu:"Ν",Xi:"Ξ",Omicron:"Ο",Pi:"Π",Rho:"Ρ",Sigma:"Σ",Tau:"Τ",Upsilon:"Υ",Phi:"Φ",Chi:"Χ",Psi:"Ψ",Omega:"Ω",alpha:"α",beta:"β",gamma:"γ",delta:"δ",epsilon:"ε",zeta:"ζ",eta:"η",theta:"θ",iota:"ι",kappa:"κ",lambda:"λ",mu:"μ",nu:"ν",xi:"ξ",omicron:"ο",pi:"π",rho:"ρ",sigmaf:"ς",sigma:"σ",tau:"τ",upsilon:"υ",phi:"φ",chi:"χ",psi:"ψ",omega:"ω",thetasym:"ϑ",upsih:"ϒ",piv:"ϖ",OElig:"Œ",oelig:"œ",Scaron:"Š",scaron:"š",Yuml:"Ÿ",fnof:"ƒ",circ:"ˆ",tilde:"˜",ensp:" ",emsp:" ",thinsp:" ",zwnj:"‌",zwj:"‍",lrm:"‎",rlm:"‏",ndash:"–",mdash:"—",lsquo:"‘",rsquo:"’",sbquo:"‚",ldquo:"“",rdquo:"”",bdquo:"„",dagger:"†",Dagger:"‡",bull:"•",hellip:"…",permil:"‰",prime:"′",Prime:"″",lsaquo:"‹",rsaquo:"›",oline:"‾",euro:"€",trade:"™",larr:"←",uarr:"↑",rarr:"→",darr:"↓",harr:"↔",crarr:"↵",lceil:"⌈",rceil:"⌉",lfloor:"⌊",rfloor:"⌋",loz:"◊",spades:"♠",clubs:"♣",hearts:"♥",diams:"♦"};const ue=/^(?<name>[\w\p{Unified_Ideograph}_][-\.\|:|d\w\p{Unified_Ideograph}_:]*)(?:|(?<is>[\w\p{Unified_Ideograph}_][-\.\|:|d\w\p{Unified_Ideograph}_]*))?$/u;function de(e){return"="!==e&&"/"!==e&&">"!==e&&e&&"'"!==e&&'"'!==e&&!function(e){return"0x80"===e||e<=" "}(e)}function fe(e,t,n,r){let o=r[n];return null==o&&(o=e.lastIndexOf("</"+n+">"),o<t&&(o=e.lastIndexOf("</"+n)),r[n]=o),o<t}function pe(...e){console.error(new te(...e))}function he(e){const t=e.slice(1,-1);return"#"===t.charAt(0)?String.fromCodePoint(parseInt(t.substring(1).replace("x","0x"))):t in ce?ce[t]:(pe("ENTITY",e),e)}var ge=Object.freeze({__proto__:null,parse:function(e,{createCalc:t=()=>{throw new te("CALC")},createInit:n=t,createEvent:r=()=>{throw new te("EVENT")},simpleTag:o=new Set,enableHTML:i=!1}={}){const s=[],l={children:s},a=[];let c=null,u=l;function d(){c=a.pop()||null,u=c||l}function f(e){(e=e.replace(/^\n|(?<=\n)\t+|\n\t*$/g,""))&&u.children.push(e)}let p={},h=0;function g(t){if(t<=h)return;f(e.substring(h,t).replace(/&#?\w+;/g,he)),h=t}for(;;){const m=e.indexOf("<",h);if(m<0){const N=e.substring(h);N.match(/^\s*$/)||f(N);break}m>h&&g(m);const b=e.charAt(m+1);if("!"===b){let A=m+2,$=">";if("--"===e.slice(m+2,m+4)&&(A+=4,$="--\x3e"),h=e.indexOf($,A),h<0)break;h++;continue}if("/"===b){h=e.indexOf(">",m+3);let j=e.substring(m+2,h);if(h<0?(j=e.substring(m+2).replace(/[\s<].*/,""),pe("UNCOMPLETED",j,c?.name),h=m+1+j.length):j.match(/\s</)&&(j=j.replace(/[\s<].*/,""),pe("UNCOMPLETED",j),h=m+1+j.length),c){const M=c.name;if(M===j)d();else{if(M.toLowerCase()!=j.toLowerCase())throw new te("CLOSE",j,c.name);d()}}h++;continue}function v(t){let n=h+1;if(h=e.indexOf(t,n),h<0)throw new te("QUOTE",t);const r=e.slice(n,h).replace(/&#?\w+;/g,he);return h++,r}function y(){let t=e.charAt(h);for(;t<=" "||"€"===t;t=e.charAt(++h));return t}function w(){let t=h,n=e.charAt(h);for(;de(n);)h++,n=e.charAt(h);return e.slice(t,h)}h=m+1;let E=e.charAt(h);switch(E){case"=":throw new te("EQUAL");case'"':case"'":throw new te("ATTR_VALUE");case">":case"/":throw new te("SYMBOL",E);case"":throw new te("EOF")}const x=w(),S=ue.exec(x)?.groups;if(!S)throw new te("TAG",x);a.push(c),c=ae(S.name,S.is),u.children.push(c),u=c;const L=le(c,t,n,r,i);let C=!0,O=!1;e:for(;C;){let T=y();switch(T){case"":pe("EOF"),h++;break e;case">":h++;break e;case"/":O=!0;break e;case'"':case"'":throw new te("ATTR_VALUE");case"=":throw new te("SYMBOL",T)}const k=w();if(!k){pe("EOF"),h++;break e}switch(T=y(),T){case"":pe("EOF"),h++;break e;case">":L(k,""),h++;break e;case"/":L(k,""),O=!0;break e;case"=":h++;break;case"'":case'"':L(k,v(T));continue;default:L(k,"");continue}switch(T=y(),T){case"":L(k,""),pe("EOF"),h++;break e;case">":L(k,""),h++;break e;case"/":L(k,""),O=!0;break e;case"'":case'"':L(k,v(T));continue}L(k,w())}if(O){for(;;){h++;const I=e.charAt(h);if("/"!==I&&!(I<=" "||"€"===I))break}switch(e.charAt(h)){case"=":throw new te("EQUAL");case'"':case"'":throw new te("ATTR_VALUE");case"":pe("EOF");break;case">":h++;break;default:throw new te("CLOSE_SYMBOL")}d()}else(o.has(x)||fe(e,h,x,p))&&d()}return X(s)}});function me(t,n){if(n?.aborted)return;let r=!0;const o=new e.Signal.subtle.Watcher((()=>{r&&(r=!1,queueMicrotask((()=>{r=!0;for(const e of o.getPending())e.get();o.watch()})))})),i=new e.Signal.Computed(t);if(o.watch(i),i.get(),!n)return()=>{o.unwatch(i)};n.addEventListener("abort",(()=>{o.unwatch(i)}),{once:!0})}function be(e,t,n,r){let o,i=!1;return me((()=>{const r=e();if(!i)return i=!0,o=r,void(n&&t(r));Object.is(r,o)||(o=r,t(r))}),r)}const ve=new Set(Object.keys({type:!0,meta:!0,component:!0,kind:!0,value:!0,store:!0,parent:!0,root:!0,ref:!0,schema:!0,new:!0,readonly:!0,creatable:!0,immutable:!0,changed:!0,loading:!0,required:!0,clearable:!0,hidden:!0,disabled:!0,label:!0,description:!0,placeholder:!0,min:!0,max:!0,step:!0,minLength:!0,maxLength:!0,pattern:!0,values:!0,null:!0,index:!0,no:!0,size:!0,error:!0,errors:!0}));function*ye(e,t="",n="$"){yield[`${t}`,{get:()=>e.value,set:t=>e.value=t,store:e}];for(const r of ve)yield[`${t}${n}${r}`,{get:()=>e[r]}];yield[`${t}${n}value`,{get:()=>e.value,set:t=>e.value=t}],yield[`${t}${n}state`,{get:()=>null,set:e=>{}}],yield[`${t}${n}reset`,{exec:()=>e.reset()}],yield[`${t}${n}validate`,{exec:t=>e.validate(t?[]:null)}],e instanceof Q?(yield[`${t}${n}addable`,{get:()=>e.addable}],yield[`${t}${n}insert`,{exec:(t,n)=>e.insert(t,n)}],yield[`${t}${n}add`,{exec:t=>e.add(t)}],yield[`${t}${n}remove`,{exec:t=>e.remove(t)}],yield[`${t}${n}move`,{exec:(t,n)=>e.move(t,n)}],yield[`${t}${n}exchange`,{exec:(t,n)=>e.exchange(t,n)}]):yield[`${t}${n}addable`,{get:()=>!1}]}function we(e,t,n){for(const[n,r]of t){for(const[t,o]of ye(r,n))e[t]=o;for(const[t,o]of ye(r,n,"$$"))e[t]=o}}const Ee={value$:{calc:e=>e?.[q].value},state$:{calc:e=>e?.[q].state}};var xe=Object.getOwnPropertyDescriptors(Ee);function Se(e){if(!e)return!1;const t=e.indexOf("$");return t<0||(e.indexOf("$",t+2)>0||"$"===e[0]&&"_$".includes(e[1]))}function Le(e,t){Object.defineProperty(t,"$store",{value:e,writable:!1,configurable:!0,enumerable:!1}),Object.defineProperty(t,"$root",{value:e.root,writable:!1,configurable:!0,enumerable:!1})}class Ce{exec({name:e,calc:t,value:n}){if("string"==typeof e){const t=this.#ye[e];if("function"!=typeof t?.get)return;return t.get()}return"function"==typeof t?t(this.getters):n}get({name:t,calc:n,value:r}){if("string"==typeof t){const e=this.#ye[t];if("function"!=typeof e?.get)return;const{get:n,set:r}=e;return{get:n,set:r}}if("function"==typeof n){const t=new e.Signal.Computed((()=>n(this.getters)));return{get:()=>t.get()}}return{get:()=>r}}watch(e,t){return be((()=>this.exec(e)),t,!0)}enum(e){const{name:t,calc:n}=e;if("function"==typeof n)return()=>n(this.getters);if("string"==typeof t){const e=this.#ye[t];if("function"!=typeof e?.get)return null;const n=e.store;return n instanceof Y?n:e.get}return this.store}getStore(e){if(!e)return null;const t=this.#ye[!0===e?"":e];return t?.get&&t.store||null}bind(e,t,n){const r=this.#ye[!0===e?"":e];if(!r?.get)return;const{store:o}=r;return o?ve.has(t)?be((()=>o[t]),n,!0):void 0:"value"===t?be((()=>r.get()),n,!0):void 0}bindAll(e){const t=this.#ye[!0===e?"":e];if(!t?.get)return;const{store:n}=t;if(!n){const e=t.get;if("function"!=typeof e)return;return{$value:t=>be(e,t,!0)}}const r=Object.fromEntries([...ve].map((e=>[`$${e}`,t=>be((()=>n[e]),t,!0)])));return r.$$state=e=>be((()=>null),e,!0),r}getBindAll(e){const t=this.#ye[!0===e?"":e];if(!t?.get)return{};const{store:n}=t;if(!n){const{get:e,set:n}=t;return{$value:{get:e,set:n}}}const r=Object.fromEntries([...ve].map((e=>[`$${e}`,"value"===e?{get:()=>n[e],set:t=>{n[e]=t}}:{get:()=>n[e]}])));return r.$$state={get:()=>null,set:()=>{}},r}bindSet(e,t){const n=this.#ye[!0===e?"":e];if(!n?.get)return;const{store:r}=n;if(r)switch(t){case"value":return e=>{r.value=e};case"state":return e=>{}}}bindEvents(e){const t=this.#ye[!0===e?"":e];if(!t?.get)return;const{store:n}=t;if(!n){const e=t.set;if("function"!=typeof e)return;return{$value:e}}return{$value:e=>{n.value=e},$state:e=>{},$input:e=>{n.emit("input",e)},$change:e=>{n.emit("change",e)},$click:e=>{n.emit("click",e)},$focus:e=>{n.emit("focus",e)},$blur:e=>{n.emit("blur",e)},$reset:e=>{n.reset()},$validate:e=>{n.validate(e?[]:null)}}}getEvent({name:e,event:t}){if("function"==typeof t)return t;const n=this.#ye[e];if(!n)return null;const{exec:r,calc:o}=n;return"function"==typeof r?r:"function"==typeof o?o:null}constructor(e,t){if(this.store=e,t instanceof Ce){this.#we=t.#we;const e=this.#Ee;for(const[n,r]of Object.entries(t.#Ee))e[n]=r;const n=this.#xe;for(const[e,r]of Object.entries(t.#xe))n[e]=r}else we(this.#Ee,e),this.#we=function(e){const t=Object.create(null,xe);if(!e||"object"!=typeof e)return t;for(const[n,r]of Object.entries(e)){if(!Se(n))continue;if(!r||"object"!=typeof r)continue;if(r instanceof Y){for(const[e,o]of ye(r,n))t[e]=o;continue}const{get:e,set:o,exec:i,calc:s}=r;"function"!=typeof e?"function"==typeof s||s&&"object"==typeof s?t[n]={calc:s}:("function"==typeof i||s&&"object"==typeof s)&&(t[n]={exec:i}):t[n]="function"==typeof o?{get:e,set:o}:{get:e}}return t}(t)}#we;#Ee=Object.create(null);#xe=Object.create(null);store;#Se=null;#r=null;#Le=null;get#ye(){const e=this.#Le;if(e)return e;const t=Object.create(null,Object.getOwnPropertyDescriptors({...this.#Ee,...this.#we,...this.#xe})),n=this.store,r=this.#r,o=this.#Se;for(const[e,r]of ye(n))t[e]=r;for(const[e,o]of function*(e,t,n="",r="$"){if(!(e instanceof Q))return yield[`${n}${r}removable`,{get:()=>!1}],yield[`${n}${r}upMovable`,{get:()=>!1}],yield[`${n}${r}downMovable`,{get:()=>!1}],yield[`${n}${r}remove`,{exec:()=>{}}],yield[`${n}${r}upMove`,{exec:()=>{}}],void(yield[`${n}${r}downMove`,{exec:()=>{}}]);yield[`${n}${r}removable`,{get:()=>!e.readonly&&!e.disabled&&!!t.removable}],yield[`${n}${r}upMovable`,{get:()=>{if(e.readonly)return!1;if(e.disabled)return!1;const n=t.index;return"number"==typeof n&&!(n<=0)}}],yield[`${n}${r}downMovable`,{get:()=>{if(e.readonly)return!1;if(e.disabled)return!1;const n=t.index;return"number"==typeof n&&!(n>=e.size-1)}}],yield[`${n}${r}remove`,{exec:()=>{e.readonly||e.disabled||t.removable&&e.remove(Number(t.index))}}],yield[`${n}${r}upMove`,{exec:()=>{if(e.readonly)return;if(e.disabled)return;const n=t.index;"number"==typeof n&&(n<=0||e.move(n,n-1))}}],yield[`${n}${r}downMove`,{exec:()=>{if(e.readonly)return;if(e.disabled)return;const n=t.index;"number"==typeof n&&(n>=e.size-1||e.move(n,n+1))}}]}(r,n))t[e]=o;if(o)for(const e of Object.keys(o))t[`$${e}`]={get:()=>o[e]};return this.#Le=t,t}setStore(e,t,n){const r=new Ce(e,this);return t&&(r.#r=t),we(r.#Ee,e),n&&(r.#Se=n),r}child(e){if(!e)return this;const t=this.store.child(e);if(!t)return null;const n=new Ce(t,this);return we(n.#Ee,t),n}params(t,n,r,o){let i=this.store;if(!0===o)i=r.store;else if(o){const e=r.#ye[o],t=e?.get&&e.store;t&&(i=t)}if(0===Object.keys(t).length)return this;const s=new Ce(i,this);s.#r=this.#r,s.#Se=this.#Se;const l=s.#xe,a=s.#ye;for(const[o,i]of Object.entries(t)){const t=o in n?n[o]:null;if(t){const{name:n,calc:i,value:s}=t;if(n){const e=r.#ye[n];if(!e?.get)continue;if(!e.store){l[o]=a[o]=e;continue}for(const[t,n]of ye(e.store,o))l[t]=a[t]=n;continue}if("function"==typeof i){const t=new e.Signal.Computed((()=>i(r.getters)));l[o]=a[o]={get:()=>t.get()};continue}l[o]=a[o]={get:()=>s}}else{const{name:t,calc:n,value:r}=i;if("function"==typeof n){const t=s.getters;s.#Ce=null;const r=new e.Signal.Computed((()=>n(t)));l[o]=a[o]={get:()=>r.get()};continue}if(t){const e=a[t];if(!e?.get)continue;if(!e.store){l[o]=a[o]=e;continue}for(const[t,n]of ye(e.store,o))l[t]=a[t]=n;continue}l[o]=a[o]={get:()=>r}}}return s}setObject(e){const t=new Ce(this.store,this);return t.#Se=e,t}set(t){if(!t?.length)return this;const n=new Ce(this.store,this);n.#r=this.#r,n.#Se=this.#Se;const r=n.#xe,o=n.#ye;for(const{variable:i,name:s,calc:l,value:a,init:c}of t)if(c){const t=new e.Signal.State(a);if("function"==typeof l){const e=n.settable;n.#Oe=null,t.set(l(e))}else if(s){const e=o[s];if(!e?.get)continue;t.set(e.get())}r[i]=o[i]={get:()=>t.get(),set:e=>{t.set(e)}}}else if("function"!=typeof l)if(s){const e=o[s];if(!e)continue;if(!e.get||!e.store){r[i]=o[i]=e;continue}for(const[t,n]of ye(e.store,i))r[t]=o[t]=n}else r[i]=o[i]={get:()=>a};else{const t=n.getters;n.#Ce=null;const s=new e.Signal.Computed((()=>l(t)));r[i]=o[i]={get:()=>s.get()}}return n}#Ne=null;get all(){const e=this.#Ne;if(e)return e;const t={};for(const[e,n]of Object.entries(this.#ye))n.get?Object.defineProperty(t,e,{get:n.get,set:n.set,configurable:!0,enumerable:!0}):n.calc?Object.defineProperty(t,e,{value:n.calc,writable:!1,configurable:!0,enumerable:!1}):Object.defineProperty(t,e,{value:n.exec,writable:!1,configurable:!0,enumerable:!1});return Le(this.store,t),this.#Ne=t,t}#Oe=null;get settable(){const e=this.#Oe;if(e)return e;const t={};for(const[e,n]of Object.entries(this.#ye))n.get?Object.defineProperty(t,e,{get:n.get,set:n.set,configurable:!0,enumerable:!0}):n.calc&&Object.defineProperty(t,e,{value:n.calc,writable:!1,configurable:!0,enumerable:!1});return Le(this.store,t),this.#Oe=t,t}#Ce=null;get getters(){const e=this.#Ce;if(e)return e;const t={};for(const[e,n]of Object.entries(this.#ye))n.get?Object.defineProperty(t,e,{get:n.get,configurable:!0,enumerable:!0}):n.calc&&Object.defineProperty(t,e,{value:n.calc,writable:!1,configurable:!0,enumerable:!1});return Le(this.store,t),this.#Ce=t,t}}const Oe={width:"px",height:"px",top:"px",right:"px",bottom:"px",left:"px",border:"px","border-top":"px","border-right":"px","border-left":"px","border-bottom":"px","border-width":"px","border-top-width":"px","border-right-width":"px","border-left-width":"px","border-bottom-width":"px","border-radius":"px","border-top-left-radius":"px","border-top-right-radius":"px","border-bottom-left-radius":"px","border-bottom-right-radius":"px",padding:"px","padding-top":"px","padding-right":"px","padding-left":"px","padding-bottom":"px",margin:"px","margin-top":"px","margin-right":"px","margin-left":"px","margin-bottom":"px"};function Ne(e,t){let n=!!Array.isArray(t)&&Boolean(t[1]),r="";if("string"==typeof t)return r=t.replace(/!important\s*$/,""),r?(n=r!==t,[r,n?"important":void 0]):null;const o=Array.isArray(t)?t[0]:t;return"number"==typeof o||"bigint"==typeof o?r=o&&e in Oe?`${o}${Oe[e]}`:`${o}`:"string"==typeof o&&(r=o),r?[r,n?"important":void 0]:null}class Ae{#e=new Map;emit(e,...t){const n="number"==typeof e?String(e):e,r=this.#e;for(const e of[...r.get(n)||[]])e(...t)}listen(e,t){const n=t.bind(this),r=this.#e,o="number"==typeof e?String(e):e;let i=r.get(o);return i||(i=new Set,r.set(o,i)),i.add(n),()=>{i?.delete(n)}}}const $e={stop(e){e instanceof Event&&e.stopPropagation()},prevent(e){e instanceof Event&&e.preventDefault()},self(e){if(e instanceof Event)return e.target===e.currentTarget},enter(e){if(e instanceof KeyboardEvent)return"Enter"===e.key},tab(e){if(e instanceof KeyboardEvent)return"Tab"===e.key},esc(e){if(e instanceof KeyboardEvent)return"Escape"===e.key},space(e){if(e instanceof KeyboardEvent)return" "===e.key},backspace(e){if(e instanceof KeyboardEvent)return"Backspace"===e.key},delete(e){if(e instanceof KeyboardEvent)return"Delete"===e.key},delBack(e){if(e instanceof KeyboardEvent)return"Delete"===e.key||"Backspace"===e.key},"del-back"(e){if(e instanceof KeyboardEvent)return"Delete"===e.key||"Backspace"===e.key},insert(e){if(e instanceof KeyboardEvent)return"Insert"===e.key},repeat(e){if(e instanceof KeyboardEvent)return e.repeat},key(e,t){if(e instanceof KeyboardEvent){const n=e.code.toLowerCase().replace(/-/g,"");for(const e of t)if(n===e.toLowerCase().replace(/-/g,""))return!0;return!1}},main(e){if(e instanceof MouseEvent)return 0===e.button},auxiliary(e){if(e instanceof MouseEvent)return 1===e.button},secondary(e){if(e instanceof MouseEvent)return 2===e.button},left(e){if(e instanceof MouseEvent)return 0===e.button},middle(e){if(e instanceof MouseEvent)return 1===e.button},right(e){if(e instanceof MouseEvent)return 2===e.button},primary(e){if(e instanceof PointerEvent)return e.isPrimary},mouse(e){if(e instanceof PointerEvent)return"mouse"===e.pointerType},pen(e){if(e instanceof PointerEvent)return"pen"===e.pointerType},touch(e){if(e instanceof PointerEvent)return"touch"===e.pointerType},pointer(e,t){if(e instanceof PointerEvent){const n=e.pointerType.toLowerCase().replace(/-/g,"");for(const e of t)if(n===e.toLowerCase().replace(/-/g,""))return!0;return!1}},ctrl(e){if(e instanceof MouseEvent||e instanceof KeyboardEvent||e instanceof TouchEvent)return e.ctrlKey},alt(e){if(e instanceof MouseEvent||e instanceof KeyboardEvent||e instanceof TouchEvent)return e.altKey},shift(e){if(e instanceof MouseEvent||e instanceof KeyboardEvent||e instanceof TouchEvent)return e.shiftKey},meta(e){if(e instanceof MouseEvent||e instanceof KeyboardEvent||e instanceof TouchEvent)return e.metaKey},cmd(e){if(e instanceof MouseEvent||e instanceof KeyboardEvent||e instanceof TouchEvent)return e.ctrlKey||e.metaKey}};function je(e,t,n){const r=[];if(t)for(let o=e.shift();o;o=e.shift()){const e=o.indexOf(":"),i=e>=0?o.slice(0,e):o,s=e>=0?o.slice(e+1).split(":"):[],l=i.replace(/^-+/,""),a=(i.length-l.length)%2==1;let c=t[l]||l;if(n)switch(c){case"once":case"passive":case"capture":n[c]=!a;continue}"string"==typeof c&&(c=$e[c]),"function"==typeof c&&r.push([c,s,a])}return r}function Me(e,t,n){return r=>{const o=e.all;for(const[e,t,i]of n)if(e(r,t,o)===i)return;t(r,o)}}function Te(e){return"number"==typeof e||"bigint"==typeof e?String(e):"boolean"==typeof e?e?"":null:"string"==typeof e?e:null===(e??null)?null:String(e)}function ke(e){return null===(e??null)?"":String(e)}function Ie(e,t){if(e instanceof HTMLInputElement&&"checked"===t)switch(e.type.toLowerCase()){case"checkbox":case"radio":return Boolean}if((e instanceof HTMLSelectElement||e instanceof HTMLInputElement||e instanceof HTMLTextAreaElement)&&"value"===t)return ke;if(e instanceof HTMLDetailsElement&&"open"===t)return Boolean;if(e instanceof HTMLMediaElement){if("muted"===t)return Boolean;if("paused"===t)return Boolean;if("currentTime"===t)return!0;if("playbackRate"===t)return!0;if("volume"===t)return!0}return!1}const Be={input:{attrs:{$min:(e,t)=>{t.min=e},$max:(e,t)=>{t.max=e},$step:(e,t)=>{t.step=e},$placeholder:(e,t)=>{t.placeholder=e},$disabled:(e,t)=>{t.disabled=e},$readonly:(e,t)=>{t.readOnly=e},$required:(e,t)=>{t.required=e},$value:(e,t)=>{switch(t.type){case"checkbox":case"radio":t.checked=Boolean(e)}t.value=ke(e)}},events:{$value:["input",(e,t)=>{switch(t.type){case"checkbox":case"radio":return t.checked;case"number":return Number(t.value)}return t.value}]}},textarea:{attrs:{$placeholder:(e,t)=>{t.placeholder=e},$disabled:(e,t)=>{t.disabled=e},$readonly:(e,t)=>{t.readOnly=e},$required:(e,t)=>{t.required=e},$value:(e,t)=>{t.value=ke(e)}},events:{$value:["input",(e,t)=>t.value]}},select:{attrs:{$disabled:(e,t)=>{t.disabled=e},$required:(e,t)=>{t.required=e},$value:(e,t)=>{t.value=ke(e)}},events:{$value:["change",(e,t)=>t.value]}}};function Fe(e,t,n){const r=document.createElement(t,{is:n||void 0}),{watch:o,props:i}=e;return["input","textarea","select"].includes(t.toLowerCase())&&e.relate(r),e.listen("init",(({events:n})=>{const s=Be[t.toLowerCase()],l=s?.attrs||{},a=s?.events||{};for(const[e,t,o]of n)if("$"!==e[0])r.addEventListener(e,t,o);else{const n=a[e];if(n){const[e,i]=n;r.addEventListener(e,(e=>t(i(e,r))),o)}}if(i)for(const[t,n]of Object.entries(e.attrs))if(o(t,(e=>{if(i.has(t))r[t]=e;else{const n=Te(e);null==n?r.removeAttribute(t):r.setAttribute(t,n)}})),i.has(t))r[t]=n;else{const e=Te(n);null!==e&&r.setAttribute(t,e)}else for(const[t,n]of Object.entries(e.attrs)){if(r instanceof HTMLInputElement&&"type"===t.toLocaleLowerCase()){const e=Te(n);null!==e&&r.setAttribute(t,e);continue}if("$hidden"===t){n&&(r.hidden=n),o(t,(e=>{r.hidden=e}));continue}if("$"===t[0]){const e=l[t];e&&(e(n,r),o(t,(t=>e(t,r))));continue}const e=Ie(r,t);if("function"==typeof e){r[t]=e(n),o(t,(n=>{r[t]=e(n)}));continue}if(e){r[t]=n,o(t,(e=>{r[t]=e}));continue}let i=Te(n);null!==i&&r.setAttribute(t,i),o(t,(e=>{const n=Te(e);null===n?r.removeAttribute(t):r.setAttribute(t,n)}))}})),r}function Pe(e){return null===(e??null)?"":String(e)}function Re(e,t,n,r,o){if(!o){const o=e.insertBefore(document.createTextNode(""),t),i=n.watch(r,(e=>o.textContent=Pe(e)));return()=>{o.remove(),i()}}const i=e.insertBefore(document.createComment(""),t),s=e.insertBefore(document.createComment(""),t),l=document.createElement("div");function a(){for(let e=i.nextSibling;e&&e!==s;e=i.nextSibling)e.remove()}const c=n.watch(r,(t=>{a(),function(t){l.innerHTML=t;for(let t=l.firstChild;t;t=i.firstChild)e.insertBefore(t,s)}(Pe(t))}));return()=>{c(),a(),i.remove(),s.remove()}}function Ue(e,t){if("bigint"==typeof e&&"bigint"==typeof t)return Number(e-t);if(!("number"!=typeof e&&"bigint"!=typeof e||"number"!=typeof t&&"bigint"!=typeof t))return Number(e)-Number(t);const n=String(e),r=String(t);return n>r?1:n<r?-1:0}const qe=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);function De(e,t,n,r,o){const i=e.children;if(!i.length)return()=>{};const s=t.insertBefore(document.createComment(""),n);let l=null,a=()=>{};const c=be((()=>i.find((([,e])=>!e||r.exec(e)))||null),(e=>{if(e===l)return;l=e,a(),a=()=>{};const t=e?.[0];t&&(a=o(t.children,t.vars,t.templates))}),!0);let u=!1;return()=>{u||(u=!0,c(),a(),a=()=>{},s.remove())}}function Ve(t,n,r,o,i,s,l,a,c){const u=t.bind,d=[...s,t.name],f=c?.(d);if(c&&!f)return()=>{};const{context:p,handler:h}=function(t,n,r,o){const i="string"==typeof t?t:t.tag,{attrs:s,events:l}="string"!=typeof t&&t||{attrs:null,events:null};let a=!1;const c=new e.Signal.State(!1);let u=!1;const d=new e.Signal.State(!1),f=Object.create(null),p=Object.create(null),h=new Set,g=[],m=new Ae;return{context:{events:g,props:s?new Set(Object.entries(s).filter((([,e])=>e.isProp)).map((([e])=>e))):null,attrs:p,watch(e,t){if(a)return()=>{};const n=f[e];if(!n)return()=>{};let r=n.get();const o=be((()=>n.get()),(n=>{const o=r;r=n,t(n,o,e)}),!0);return h.add(o),()=>{h.delete(o),o()}},relate(e){if(!r||!o||a)return()=>{};try{const t=o(r,e);return"function"!=typeof t?()=>{}:(h.add(t),()=>{h.delete(t),t()})}catch{return()=>{}}},get destroyed(){return c.get()},get init(){return d.get()},listen:(e,t)=>m.listen(e,t)},handler:{tag:i,set(t,n){if(s&&!(t in s))return;let r=f[t];if(r)return void r.set(n);const o=new e.Signal.State(n);f[t]=o,Object.defineProperty(p,t,{configurable:!0,enumerable:!0,get:o.get.bind(o)})},addEvent(e,t){if("function"!=typeof t)return;const[r,...o]=e.split(".").filter(Boolean),i=l?l[r].filters:{};if(!i)return;const s={},a=je(o,i,s);g.push([r,Me(n,t,a),s])},destroy(){if(!a){a=!0,c.set(!0);for(const e of h)e();m.emit("destroy")}},mount(){u||(u=!0,d.set(!0),m.emit("init",{events:g}))}}}}(f||t.name,o,o.getStore(u),a),g=f?.attrs,m=g?function(e,t,n,r,o){let i=new Set;for(const[s,l]of Object.entries(r)){if("class"===s||"style"===s)continue;if(s in n){const r=n[s],{name:o,calc:a,value:c}=n[s];if(!o&&!a){e.set(s,c);continue}l.immutable&&e.set(s,t.exec(r)),i.add(t.watch(r,(t=>e.set(s,t))));continue}const r=l.bind;if(!o||!r){e.set(s,l.default);continue}if("string"==typeof r){const n=t.bind(o,r,(t=>e.set(s,t)));n?i.add(n):e.set(s,l.default);continue}if(!Array.isArray(r)){e.set(s,l.default);continue}const[a,c,u]=r;if(!a||"function"!=typeof c)continue;if(!u){const n=!0===o?"":o;i.add(t.watch({name:n},(t=>e.set(s,t)))),e.addEvent(a,((...e)=>{t.all[n]=c(...e)}));continue}const d=t.bind(o,"state",(t=>e.set(s,t)));if(!d)continue;i.add(d);const f=t.bindSet(o,"state");f&&e.addEvent(a,((...e)=>{f(c(...e))}))}return()=>{const e=i;i=new Set;for(const t of e)t()}}(h,o,t.attrs,g,u):function(e,t,n){const r=e.tag;let o=new Set;for(const[i,s]of Object.entries(n)){if("class"===i||"style"===i)continue;const{name:n,calc:l,value:a}=s;if(n||l)if("string"!=typeof r||"input"!==r.toLocaleLowerCase()||"type"!==i.toLocaleLowerCase())o.add(t.watch(s,(t=>e.set(i,t))));else{const n=t.exec(s);e.set(i,n)}else e.set(i,a)}return()=>{const e=o;o=new Set;for(const t of e)t()}}(h,o,t.attrs);for(const[e,n]of Object.entries(t.events)){const t=o.getEvent(n);t&&h.addEvent(e,t)}const b=function(e,t,n){if(!n)return()=>{};let r=new Set;for(const[o,i]of Object.entries(t.bindAll(n)||{}))"function"==typeof i&&r.add(i((t=>e.set(o,t))));for(const[r,o]of Object.entries(t.bindEvents(n)||{}))e.addEvent(r,(e=>o(e)));return()=>{const e=r;r=new Set;for(const t of e)t()}}(h,o,u),v=f?"function"==typeof f.tag?f.tag(p):Fe(p,f.tag,f.is):Fe(p,t.name,t.is),y=Array.isArray(v)?v[0]:v,w=Array.isArray(v)?v[1]:y;n.insertBefore(y,r);const E=w?He(t.children||[],w,null,o,i,s,l,a,c):()=>{},x=function(e,t,n,r){if(!(e instanceof Element))return()=>{};r&&(e.className+=" "+t.exec(r));let o=new Set;for(const[r,i]of Object.entries(n))i.value?e.classList.add(r):o.add(be((()=>Boolean(t.exec(i))),(t=>{t?e.classList.add(r):e.classList.remove(r)}),!0));return()=>{if(!o)return;const e=o;o=null;for(const t of e)t()}}(y,o,t.classes,t.attrs.class),S=function(e,t,n,r){if(!(e instanceof HTMLElement||e instanceof SVGElement))return()=>{};if(r){const n=[e.getAttribute("style")||"",t.exec(r)||""].filter(Boolean).join(";");n&&e.setAttribute("style",n)}let o=new Set;for(const[r,i]of Object.entries(n))o.add(be((()=>Ne(r,t.exec(i))),(t=>{t?e.style.setProperty(r,...t):e.style.removeProperty(r)}),!0));return()=>{if(!o)return;const e=o;o=null;for(const t of e)t()}}(y,o,t.styles,t.attrs.style);h.mount();const L=function(t,n,r,o,i,s){let l=new Set;for(const[a,{attrs:c,value:u,events:d,bind:f}]of Object.entries(n)){if(!qe(o,a))continue;const p=o[a];if("function"!=typeof p)continue;let h=!1;const g=new e.Signal.State(!1),m=p?.events,b=[],v=Object.create(null),y=new Set,w=new Ae;function E(e,t){if("function"!=typeof t)return;const[n,...o]=e.split(".").filter(Boolean),i=m?m[n].filters:{};if(!i)return;const s={},l=je(o,i,s);b.push([n,Me(r,t,l),s])}function x(){if(!h){h=!0,g.set(!0);for(const e of y)e();w.emit("destroy")}}l.add(x);for(const[L,C]of Object.entries(c)){const O=r.get(C);O&&Object.defineProperty(v,L,{...O,configurable:!0,enumerable:!0})}for(const[N,A]of Object.entries(d)){const $=r.getEvent(A);$&&E(N,$)}if(f){for(const[j,M]of Object.entries(r.getBindAll(f)||{}))Object.defineProperty(v,j,{...M,configurable:!0,enumerable:!0});for(const[T,k]of Object.entries(r.bindEvents(f)||{}))E(T,(e=>k(e)))}const S={get value(){return null},events:b,attrs:v,watch(e,t){if(h)return()=>{};let n=v[e];const r=be((()=>v[e]),(r=>{const o=n;n=r,t(r,o,e)}),!0);return y.add(r),()=>{y.delete(r),r()}},get destroyed(){return g.get()},listen:(e,t)=>w.listen(e,t),root:i,slot:s,tag:t};if(u){const I=r.get(u);I&&Object.defineProperty(S,"value",{...I,configurable:!0,enumerable:!0})}p(S)}return()=>{const e=l;l=new Set;for(const t of e)t()}}(h.tag,t.enhancements,o,l,y,w);return()=>{L(),h.destroy(),y.remove(),m(),E(),b(),x(),S()}}function _e(e,t,n){if(!n)return t;const r=Object.entries(n);if(!r.length)return t;const o=Object.create(t);for(const[t,n]of r)o[t]=[n,e];return o}function We(t,n,r,o,i,s,l,a,c){if("string"==typeof t){const e=document.createTextNode(t);return n.insertBefore(e,r),()=>e.remove()}const u=o.set(t.vars),d=_e(u,i,t.templates);if("divergent"===t.type)return De(t,n,r,u,((e,t,o)=>{const d=u.set(t),f=_e(d,i,o);return He(e,n,r,d,f,s,l,a,c)}));if("value"===t.type){const e=u.child(t.name);return e?He(t.children,n,r,e,d,s,l,a,c):()=>{}}if("enum"===t.type){const o=u.enum(t.value),i=(e,r)=>He(t.children,n,e,r,d,s,l,a,c);return o instanceof Q?function(t,n,r,o,i){const s=t.insertBefore(document.createComment(""),n);let l=new Map;function a(e){for(const[t,n,r]of e.values())r(),t.remove(),n.remove()}const c=new e.Signal.State(0),u=be((()=>r.children),(function(e){if(!s.parentNode)return;let n=s.nextSibling;const u=l;l=new Map,c.set(e.length);for(let s of e){const e=u.get(s);if(!e){const e=t.insertBefore(document.createComment(""),n),a=t.insertBefore(document.createComment(""),n),u=i(a,o.setStore(s,r,{get count(){return c.get()},get key(){return s.index},get index(){return s.index},get item(){return s.value}}));l.set(s,[e,a,u]);continue}if(u.delete(s),l.set(s,e),n===e[0]){n=e[1].nextSibling;continue}let a=e[0];for(;a&&a!==e[1];){const e=a;a=a.nextSibling,t.insertBefore(e,n)}t.insertBefore(e[1],n)}a(u)}),!0);return()=>{s.remove(),a(l),u()}}(n,r,o,u,i,t.sort):o instanceof G?function(e,t,n,r,o,i){const s=[],l=[...n],a=l.length,c=i?l.map((([e,t])=>[e,t,r.setStore(t,n).exec(i)])).sort((([,,e],[,,t])=>Ue(e,t))).map((([e,t],n)=>[e,t,n])):l.map((([e,t],n)=>[e,t,n]));for(const[e,i,l]of c)s.push(o(t,r.setStore(i,n,{get count(){return a},get key(){return e},get index(){return l},get item(){return i.value}})));return()=>{for(const e of s)e()}}(0,r,o,u,i,t.sort):"function"==typeof o?function(t,n,r,o,i,s){const l=new e.Signal.Computed((()=>{const e=r();if("number"==typeof e){const t=Math.floor(e);return t?Array(t).fill(0).map(((e,t)=>[t+1,t])):[]}return e&&"object"==typeof e?Array.isArray(e)?e.map(((e,t)=>[e,t])):Object.entries(e).map((([e,t])=>[t,e])):[]})),a=s?new e.Signal.Computed((()=>{const e=l.get();return e.map((([t,n],r)=>[n,t,o.setObject({get count(){return e.length},get key(){return t},get item(){return n},get index(){return r}}).exec(s)])).sort((([,,e],[,,t])=>Ue(e,t))).map((([e,t],n)=>[t,n,e]))})):new e.Signal.Computed((()=>l.get().map((([e,t],n)=>[t,n,e])))),c=t.insertBefore(document.createComment(""),n);let u=[];function d(e){for(const[t,n,r]of e)r(),t.remove(),n.remove()}const f=new e.Signal.State(0),p=be((()=>a.get()),(function(n){if(!c.parentNode)return;let r=c.nextSibling;const s=u;u=[],f.set(n.length);for(const[l,a,c]of n){const n=s.findIndex((e=>e[3]===c)),[d]=n>=0?s.splice(n,1):[];if(!d){const n=t.insertBefore(document.createComment(""),r),s=t.insertBefore(document.createComment(""),r),d=new e.Signal.State(l),p=new e.Signal.State(a),h=i(s,o.setObject({get count(){return f.get()},get key(){return c},get item(){return d.get()},get index(){return p.get()}}));u.push([n,s,h,c,d,p]);continue}if(u.push(d),d[4].set(l),d[5].set(a),r===d[0]){r=d[1].nextSibling;continue}let p=d[0];for(;p&&p!==d[1];){const e=p;p=p.nextSibling,t.insertBefore(e,r)}t.insertBefore(d[1],r)}d(s)}),!0);return()=>{c.remove(),d(u),p()}}(n,r,o,u,i,t.sort):()=>{}}if("content"===t.type)return Re(n,r,u,t.value,t.html);if("template"===t.type){const e=d[t.template];if(!e)return()=>{};const[o,f]=e,p=f.params(o.params,t.attrs,u,t.bind),h=_e(p,i,o.templates);return He(o.children,n,r,p,h,s,l,a,c)}return"fragment"===t.type?He(t.children,n,r,u,d,s,l,a,c):Ve(t,n,r,u,d,s,l,a,c)}function He(e,t,n,r,o,i,s,l,a){const c=e.map((e=>We(e,t,n,r,o,i,s,l,a)));let u=!1;return()=>{if(!u){u=!0;for(const e of c)e()}}}function Ke(e){return t=>(!t.type||"field"===t.type)&&t.field===e}function ze(e,t,n,r,o,i,s){if(!r?.signal?.aborted){if(n instanceof Element){const l=n.tagName.toLowerCase();if(!n.parentNode)return;if("nl-form-field"===l){const d=n.getAttribute("name")||"",f=n.getAttribute("mode")||"",p=d?e.child(d):e;if(!p)return;let h=null;switch(f){case"grid":{const b=d?o?.fields?.find(Ke(d))||p.layout:{...o,html:""};h=ut(p,t,b,r);break}default:h=t(p,o.renderer,r)}if(!h){const v=n.getAttribute("placeholder")||"";return void n.replaceWith(document.createTextNode(v))}const g=n.getAttribute("class")||"";g&&h.setAttribute("class",[h.getAttribute("class")||"",g].filter(Boolean).join(" "));const m=n.getAttribute("style")||"";return m&&h.setAttribute("style",[h.getAttribute("style")||"",m].filter(Boolean).join(" ")),void n.replaceWith(h)}if("nl-form-button"===l){const y=document.createElement("button"),w=n.getAttribute("class")||"",E=n.getAttribute("style")||"";w&&y.setAttribute("class",w),E&&y.setAttribute("style",E),y.classList.add("NeeloongForm-item-button");const x=n.getAttribute("click")||"",S=r?.call;x&&"function"==typeof S&&y.addEventListener("click",(t=>S(x,t,e,r)));for(const L of[...n.childNodes])y.appendChild(L);return void n.replaceWith(y)}const a=n.getAttribute("nl-form-field");if(a){const C=a.endsWith("[]"),O=C?a.slice(0,a.length-2):a,N=O?e.child(O):e;if(!N)return;n.removeAttribute("nl-form-field");const A=O?o.fields?.find(Ke(O))||N.layout:{...o,html:""};if(!C)return void ze(N,t,n,r,A,i);if(!(N instanceof Q))return void n.remove();const $=n.parentElement;if(!$)return void n.remove();const j=$.insertBefore(document.createComment(""),n)||null;n.remove();let M=new Map;function T(e){for(const[t,n]of e.values())t instanceof Element&&t.remove(),n.abort()}let k=-1;const I=e=>{if(k<0)return;const t=e?Number(e.index):N.children.length;t<0||k<0||k===t||N.move(k,t)&&(k=t)};return be((()=>N.children),(e=>{let o=j.nextSibling;const i=M;M=new Map;for(const s of e){const e=i.get(s);if(e)i.delete(s),M.set(s,e),o!==e[0]?$.insertBefore(e[0],o):o=o.nextSibling;else{const e=new AbortController,i=$.insertBefore(n.cloneNode(!0),o);ze(s,t,i,{...r,signal:r?.signal?AbortSignal.any([r?.signal,e.signal]):e.signal},A,i),i.addEventListener("dragenter",(()=>{I(s)})),i.addEventListener("dragstart",(e=>{e.target===e.currentTarget&&(k=Number(s.index))})),i.addEventListener("dragend",(()=>{k=-1})),M.set(s,[i,e])}}T(i)}),!0,r?.signal),void r?.signal?.addEventListener("abort",(()=>{j.remove(),T(M)}),{once:!0})}if(null!==n.getAttribute("nl-form-remove")){const B=e.parent;B instanceof Q&&n.addEventListener("click",(()=>{B.remove(Number(e.index))}))}null!==n.getAttribute("nl-form-move")&&i instanceof HTMLElement&&n.addEventListener("pointerdown",(({pointerId:e})=>{i.draggable=!0;const t=n=>{n.pointerId===e&&(i.draggable=!1,window.removeEventListener("pointerup",t,{capture:!0}),window.removeEventListener("pointercancel",t,{capture:!0}))};window.addEventListener("pointerup",t,{capture:!0}),window.addEventListener("pointercancel",t,{capture:!0})}));const c=n.getAttribute("nl-form-add");if(c){const F=e.child(c);F instanceof Q&&n.addEventListener("click",(()=>{F.add({})}))}const u=r?.call;for(const P of[...n.getAttributeNames()]){const R=P.indexOf(":");if(R<0)continue;const U=P.slice(0,R).toLowerCase(),q=P.slice(R+1);if("nl-form-field"===U){const D=n.getAttribute(P),V=D?e.child(D):e;if(!V)continue;me((()=>{try{n.setAttribute(q,V.value)}catch{}}),r?.signal)}else if("nl-form-event"===U&&"function"==typeof u){const _=n.getAttribute(P);if(!_)continue;try{n.addEventListener(q,(t=>u(_,t,e,r)))}catch{}}}}if(n instanceof Element||n instanceof DocumentFragment)for(const W of[...n.children])ze(e,t,W,r,o,i)}}function Ye(e){if(!e)return document.createElement("template").content;if("string"!=typeof e)return e.cloneNode(!0);const t=document.createElement("template");return t.innerHTML=e,t.content}function Ge(e,t,n,r){if(r?.signal?.aborted)return null;const o=n.html;if(o){const i=Ye(o);return ze(e,t,i,r,n),i}return t(e,n.renderer,r)}function Qe(e,t,n,{columns:r,deletable:o,remove:i,dragenter:s,dragstart:l,dragend:a},c){const u=document.createElement("tbody");u.addEventListener("dragenter",(()=>{s()})),u.addEventListener("dragstart",(e=>{e.target===e.currentTarget&&l()})),u.addEventListener("dragend",a);const d=u.appendChild(document.createElement("tr"));let f=()=>{};const p=[];if(r.find((e=>e.actions?.includes("trigger")))){const o=ut(e,t,n,c);if(o){const e=u.appendChild(document.createElement("tr")),t=e.appendChild(document.createElement("td"));t.colSpan=r.length,t.appendChild(o),e.hidden=!0,f=()=>{if(e.hidden){e.hidden=!1;for(const e of p)e.classList.remove("NeeloongForm-table-line-open"),e.classList.add("NeeloongForm-table-line-close")}else{e.hidden=!0;for(const e of p)e.classList.remove("NeeloongForm-table-line-close"),e.classList.add("NeeloongForm-table-line-open")}}}}function h({pointerId:e}){function t(n){n.pointerId===e&&u&&(u.draggable=!1,window.removeEventListener("pointerup",t,{capture:!0}),window.removeEventListener("pointercancel",t,{capture:!0}))}u.draggable=!0,window.addEventListener("pointerup",t,{capture:!0}),window.addEventListener("pointercancel",t,{capture:!0})}for(const n of r){const{actions:r,field:s,pattern:l,editable:a}=n;if(!r?.length){const r=d.appendChild(document.createElement("td")),o=s&&e.child(s);if(o){const e=Ge(o,t,n,{...c,editable:c?.editable&&!1!==a});e&&r.appendChild(e)}continue}const u=d.appendChild(document.createElement("th"));u.classList.add("NeeloongForm-table-line-handle");for(const t of r)switch(t){case"trigger":{const e=u.appendChild(document.createElement("button"));e.classList.add("NeeloongForm-table-line-open"),p.push(e),e.addEventListener("click",f);continue}case"move":{if(!c?.editable)continue;const t=u.appendChild(document.createElement("button"));t.classList.add("NeeloongForm-table-move"),t.addEventListener("pointerdown",h),be((()=>e.readonly||e.disabled),(e=>{t.disabled=e}),!0,c.signal);continue}case"remove":{if(!c?.editable)continue;const e=u.appendChild(document.createElement("button"));e.classList.add("NeeloongForm-table-remove"),e.addEventListener("click",i),be((()=>!o.get()),(t=>{e.disabled=t}),!0,c.signal);continue}case"serial":u.appendChild(document.createElement("span")).classList.add("NeeloongForm-table-serial");continue}}return u}function Xe(e,t,n,r){const o=Object.entries(e.type||{}).filter((([e,t])=>"object"!=typeof t?.type)).map((([e,{width:t,label:n}])=>({field:e,width:t,label:n}))),i=t.columns;if(Array.isArray(i)){const e=new Map(o.map((e=>[e.field,e]))),t=i.map((t=>{if(!t)return null;if("number"==typeof t)return{placeholder:t};if("string"==typeof t)return e.get(t)||null;if("object"!=typeof t)return null;if(Array.isArray(t)){const e=new Set(n),r=t.filter((t=>e.delete(t)));return r?{actions:r}:null}const{action:r,actions:o,field:i,placeholder:s,pattern:l,width:a,label:c,editable:u}=t;if(i){const t=e.get(i);if(t)return{field:i,placeholder:s,width:a,label:c||t.label,editable:u}}const d=new Set(n),f=[r,o].flat().filter((e=>e&&d.delete(e)));return f.length?{actions:f,width:a,label:c,editable:u}:l?{pattern:l,placeholder:s,width:a,label:c,editable:u}:s||a?{placeholder:s,width:a,label:c,editable:u}:null})).filter(Boolean);if(t.length)return t}return r(o)}function Ze(e,t,n,r,o,i){const s=t.appendChild(document.createElement("tr"));for(const{action:t,actions:l,width:a,label:c}of n){const n=s.appendChild(document.createElement("th"));if(a&&n.setAttribute("width",`${a}`),![t,l].flat().includes("add")){n.innerText=c||"";continue}if(!i)continue;const u=n.appendChild(document.createElement("button"));u.addEventListener("click",r),u.classList.add("NeeloongForm-table-add"),be((()=>!o.get()),(e=>{u.disabled=e}),!0,e)}}function Je(e,t){const{colStart:n,colSpan:r,colEnd:o,rowStart:i,rowSpan:s,rowEnd:l}=t;e.classList.add("NeeloongForm-item-grid"),n&&o?e.style.gridColumn=`${n} / ${o}`:n&&r?e.style.gridColumn=`${n} / span ${r}`:r&&(e.style.gridColumn=`span ${r}`),i&&l?e.style.gridRow=`${i} / ${l}`:i&&s?e.style.gridRow=`${i} / span ${s}`:s&&(e.style.gridRow=`span ${s}`)}function et(e,t){const n=document.createElement("div"),r=n.appendChild(document.createElement("div"));r.classList.add("NeeloongForm-item-label"),me((()=>r.innerText=t?.label||""),e);const o=n.appendChild(document.createElement("div"));o.classList.add("NeeloongForm-item-content");const i=n.appendChild(document.createElement("div"));i.classList.add("NeeloongForm-item-description"),me((()=>i.innerText=t?.description||""),e);const s=n.appendChild(document.createElement("div"));return s.classList.add("NeeloongForm-item-error"),me((()=>s.innerText=t?.error||""),e),[n,o]}function tt(e,t,n,r,o){function i(r){if(!r)return null;if(!o)switch(r){case"inline":{const[r,o]=et(e,n);return Je(r,t),[r,o]}case"base":{const e=document.createElement("div");return Je(e,t),[e,e]}}switch(r){case"block":return et(e,n);case"fieldset":{const t=document.createElement("fieldset"),r=t.appendChild(document.createElement("legend"));return me((()=>r.innerText=n?.label||""),e),[t,t]}case"collapse":{const t=document.createElement("details");t.open=!0;const r=t.appendChild(document.createElement("summary"));return me((()=>r.innerText=n?.label||""),e),[t,t]}}return null}const[s,l]=i(t.cell)||i(r)||et(e,n);return s.classList.add("NeeloongForm-item"),me((()=>{n?.error?s.classList.add("NeeloongForm-item-errored"):s.classList.remove("NeeloongForm-item-errored")}),e),me((()=>{n?.required?s.classList.add("NeeloongForm-item-required"):s.classList.remove("NeeloongForm-item-required")}),e),[s,l]}function nt(e,t,n,r,o,{columns:i,addable:s,deletable:l,remove:a,dragenter:c,dragstart:u,dragend:d,addNode:f,drop:p,createDetails:h},g){const m=document.createElement("div");m.addEventListener("dragstart",(e=>{e.target===e.currentTarget&&u()})),m.addEventListener("dragend",d),m.classList.add("NeeloongForm-tree-item"),me((()=>{t.get()===e?m.classList.add("NeeloongForm-tree-current"):m.classList.remove("NeeloongForm-tree-current")}),g?.signal),me((()=>{const e=o.get().level;m.style.setProperty("--NeeloongForm-tree-level",`${e}`)}),g?.signal),me((()=>{m.hidden=o.get().hidden}),g?.signal);const b=[];function v({pointerId:e}){function t(n){n.pointerId===e&&m&&(m.draggable=!1,window.removeEventListener("pointerup",t,{capture:!0}),window.removeEventListener("pointercancel",t,{capture:!0}))}m.draggable=!0,window.addEventListener("pointerup",t,{capture:!0}),window.addEventListener("pointercancel",t,{capture:!0})}function y(){const e=o.get();e.collapsed=!e.collapsed}let w=()=>{};function E(){w=h(e)}function x(){t.get()!==e?w=h(e):w()}const S="move"===r.mainMethod?v:null,L=S?null:"collapse"===r.mainMethod?y:"trigger"===r.mainMethod?x:E,C=m.appendChild(document.createElement("div"));C.classList.add("NeeloongForm-tree-line");const O=m.appendChild(document.createElement("div"));O.classList.add("NeeloongForm-tree-drop");const N=m.appendChild(document.createElement("div"));N.classList.add("NeeloongForm-tree-drop-children"),O.addEventListener("dragover",(e=>e.preventDefault())),N.addEventListener("dragover",(e=>e.preventDefault())),O.addEventListener("drop",(()=>p())),N.addEventListener("drop",(()=>p(!0))),me((()=>{O.hidden=N.hidden=!o.get().droppable}),g?.signal);let A=()=>{};O.addEventListener("dragenter",(()=>A=c(O))),N.addEventListener("dragenter",(()=>A=c(N))),O.addEventListener("dragleave",(()=>A())),N.addEventListener("dragleave",(()=>A()));for(const t of i){const{actions:r,pattern:o,placeholder:i,width:c,field:u}=t;if(r?.length)for(const t of r)switch(t){case"trigger":{const e=C.appendChild(document.createElement("button"));e.classList.add("NeeloongForm-tree-trigger"),e.addEventListener("click",x);continue}case"open":{const e=C.appendChild(document.createElement("button"));e.classList.add("NeeloongForm-tree-open"),e.addEventListener("click",E);continue}case"collapse":{const e=C.appendChild(document.createElement("button"));e.classList.add("NeeloongForm-tree-collapse"),e.addEventListener("click",y),b.push(e);continue}case"move":{if(!g?.editable)continue;const t=C.appendChild(document.createElement("button"));t.classList.add("NeeloongForm-tree-move"),t.addEventListener("pointerdown",v),be((()=>e.readonly||e.disabled),(e=>{t.disabled=e}),!0,g.signal);continue}case"add":{if(!g?.editable)continue;const e=C.appendChild(document.createElement("button"));e.classList.add("NeeloongForm-tree-add"),e.addEventListener("click",f),be((()=>!s.get()),(t=>{e.disabled=t}),!0,g.signal);continue}case"remove":{if(!g?.editable)continue;const e=C.appendChild(document.createElement("button"));e.classList.add("NeeloongForm-tree-remove"),e.addEventListener("click",a),be((()=>!l.get()),(t=>{e.disabled=t}),!0,g.signal);continue}case"serial":C.appendChild(document.createElement("span")).classList.add("NeeloongForm-tree-serial");continue}else{const r=C.appendChild(document.createElement("div"));if(r.classList.add("NeeloongForm-tree-cell"),L&&r.addEventListener("click",L),S&&r.addEventListener("pointerdown",S),u){const o=e.child(u);if(!o)continue;const i=Ge(o,n,t,{...g,editable:!1});i&&r.appendChild(i);continue}"number"==typeof i&&(r.style.flex=`${i}`),"number"==typeof c&&(r.style.width=`${c}px`)}}return me((()=>{const e=o.get();if(e.hasChildren)if(e.collapsed)for(const e of b)e.classList.remove("NeeloongForm-tree-collapse-close"),e.classList.add("NeeloongForm-tree-collapse-open"),e.disabled=!1;else for(const e of b)e.classList.remove("NeeloongForm-tree-collapse-open"),e.classList.add("NeeloongForm-tree-collapse-close"),e.disabled=!1;else for(const e of b)e.classList.remove("NeeloongForm-tree-collapse-close"),e.classList.remove("NeeloongForm-tree-collapse-open"),e.disabled=!0}),g?.signal),m}const rt=new Set(["vertical-lr","vertical-rl","sideways-lr","sideways-rl"]);function ot(e){const t=getComputedStyle(e),n=t.writingMode?.toLowerCase();return[rt.has(n),"rtl"===t.direction.toLowerCase()!=("sideways-lr"===n)]}function it(t,n,r,o,i){const s=new e.Signal.Computed((()=>{const e=t.child(i);return e?Math.max(0,Math.floor(e.value?.[o])||0):0})),l=new e.Signal.Computed((()=>{if(!t.child(i))return-1;const e=s.get();if(!e)return-1;for(let t=i-1;t>=0;t--)if(e>n[t]?.levelValue)return t;return-1})),a=new e.Signal.Computed((()=>{const e=t.children,n=e[i+1];if(!n)return!1;if(!e[i])return!1;const r=s.get();return Math.floor(n.child(o)?.value)>r})),c=new e.Signal.Computed((()=>{if(r.get()===i)return!1;const e=l.get(),t=n[e];return!t||t.droppable})),u=new e.Signal.Computed((()=>{const e=l.get(),t=n[e];return t?t.level+1:0})),d=new e.Signal.State(!1),f=new e.Signal.Computed((()=>{const e=l.get(),t=n[e];return!!t&&(t.collapsed||t.hidden)})),p=new e.Signal.Computed((()=>{const e=l.get(),t=n[e];if(!t)return new Set;const r=new Set(t.parents);return r.add(e),r}));return{get level(){return u.get()},get levelValue(){return s.get()},get collapsed(){return d.get()},set collapsed(e){d.set(e)},get hidden(){return f.get()},get hasChildren(){return a.get()},get droppable(){return c.get()},get parents(){return p.get()}}}function st(t,n,r,o){if(o?.signal?.aborted)return null;const i=Xe(t,r,["add","move","trigger","remove","serial","open","collapse"],(e=>[{actions:["collapse","move"]},e[0],{actions:["add","remove"]}])),s=document.createElement("div");s.classList.add("NeeloongForm-tree");const l=s.appendChild(document.createElement("div"));l.classList.add("NeeloongForm-tree-main");const a=s.appendChild(document.createElement("div"));a.classList.add("NeeloongForm-tree-splitter");const c=s.appendChild(document.createElement("div"));c.classList.add("NeeloongForm-tree-details"),a.hidden=!0,c.hidden=!0;let u=null,d=0;function f(){const e=u;null!==e&&(u=null,a.releasePointerCapture(e))}a.addEventListener("pointerdown",(e=>{const{pointerId:t}=e;if([null,t].includes(u))switch(u=t,a.setPointerCapture(t),ot(a).map(((e,t)=>e?2**t:0)).reduce(((e,t)=>e+t))){case 0:d=-e.offsetX;break;case 1:d=-e.offsetY;break;case 2:d=e.offsetX-a.offsetWidth;break;case 3:d=e.offsetY-a.offsetHeight}}));const p=e=>{const[t,n]=ot(a);let r=0;switch([t,n].map(((e,t)=>e?2**t:0)).reduce(((e,t)=>e+t))){case 0:r=e.clientX-s.getBoundingClientRect().left;break;case 1:r=e.clientY-s.getBoundingClientRect().top;break;case 2:r=s.getBoundingClientRect().right-e.clientX;break;case 3:r=s.getBoundingClientRect().bottom-e.clientY}const o=1-Math.max(0,Math.min((r+d)/(e=>e?s.clientHeight-a.offsetHeight:s.clientWidth-a.offsetWidth)(t),1));c.style.inlineSize=100*o+"%"};a.addEventListener("pointermove",(e=>{const{pointerId:t}=e;a.hasPointerCapture(t)&&p(e)})),a.addEventListener("pointerup",(e=>{const{pointerId:t}=e;t===u&&(p(e),f())})),a.addEventListener("pointercancel",(e=>{const{pointerId:t}=e;t===u&&(p(e),f())}));let h=null;const g=new e.Signal.State(null);function m(e){if(o?.signal?.aborted)return()=>{};if(g.get()===e&&h){const e=h;return()=>{e.abort()}}h?.abort(),g.set(e);const t=new AbortController;h=t;const i=o?.signal?AbortSignal.any([o?.signal,t.signal]):t.signal,s=ut(e,n,r,{...o,signal:o?.signal?AbortSignal.any([o?.signal,i]):i});return i.addEventListener("abort",(()=>{g.set(null),f()}),{once:!0}),s&&(c.appendChild(s),c.hidden=!1,a.hidden=!1,i.addEventListener("abort",(()=>{s.remove(),a.hidden=!0,c.hidden=!0}),{once:!0})),()=>{t.abort()}}const b=r.levelKey||"level",v=new e.Signal.Computed((()=>!t.readonly&&!t.disabled&&t.addable));function y(e){const n={};if(-2===e)return n[b]=0,void t.add(n);n[b]=(j[e]?.levelValue??-1)+1,t.insert(e+1,n)}function w(e){t.remove(Number(e.index))}let E=-1,x=new e.Signal.State(E);function S(e,n){if(E<0)return;const r=Number(function(e,t){if(!e)return 0;const n=Number(j[Number(e.index)]?.levelValue)||0;return t?n+1:n}(e,n))||0;let o=function(e){let t=e+1;const n=j[E]?.level??0;for(;(j[t]?.level??-1)>n;t++);return t-E}(E),i=-1;if(e){if(i=Number(e.index),E===i||j[i]?.parents?.has(E))return;if(n||i!==E+o){if(n){for(const e=j[i]?.level||0;j[i+1]?.level>e;i++);i<E&&(i+=1)}else i>E&&(i-=1);if(i<0)return}else i=-1}else if(i=j.length-1,i<0)return;if(i>=0&&E!==i){if(o=t.move(E,i,o),!o)return;E=o>1&&i>E?i-o+1:i,x.set(E)}const s=Array(o).fill(j[E]?.level??0).map(((e,t)=>Math.max((j[t+E]?.level??0)-e,0)));for(let e=0;e<o;e++){const n=t.children[E+e]?.child(b);n&&(n.value=r+s[e])}}function L(e){E=Number(e.index),x.set(E),l.classList.add("NeeloongForm-tree-moving")}let C=null;function O(e){return-1===E?()=>{}:(C?.classList.remove("NeeloongForm-tree-drag-over"),C=e,C?.classList.add("NeeloongForm-tree-drag-over"),()=>{C===e&&(C?.classList.remove("NeeloongForm-tree-drag-over"),C=null)})}function N(){E=-1,x.set(E),l.classList.remove("NeeloongForm-tree-moving"),C?.classList.remove("NeeloongForm-tree-drag-over"),C=null}if(o?.editable){const e=l.appendChild(document.createElement("button"));e.addEventListener("click",(()=>y(-1))),e.classList.add("NeeloongForm-tree-head-add"),be((()=>!v.get()),(t=>{e.disabled=t}),!0,o.signal)}const A=l.appendChild(document.createComment(""));if(o?.editable){const e=l.appendChild(document.createElement("div"));e.classList.add("NeeloongForm-tree-foot");const t=e.appendChild(document.createElement("button"));t.addEventListener("click",(()=>y(-2))),t.classList.add("NeeloongForm-tree-foot-add");const n=e.appendChild(document.createElement("div"));n.classList.add("NeeloongForm-tree-drop");let r=()=>{};n.addEventListener("dragover",(e=>e.preventDefault())),n.addEventListener("dragenter",(()=>r=O(n))),n.addEventListener("dragleave",(()=>r())),n.addEventListener("drop",(()=>S())),be((()=>!v.get()),(e=>{t.disabled=e}),!0,o.signal)}let $=new Map;const j=[];return be((()=>t.children),(s=>{let a=A.nextSibling;const c=$;$=new Map;const u=s.length;for(let e=j.length;e<u;e++)j[e]=it(t,j,x,"level",e);let d=-1;for(let u of s){d++;const s=j[d],f=c.get(u);if(f)c.delete(u),$.set(u,f),f[2](s),a!==f[0]?l.insertBefore(f[0],a):a=a.nextSibling;else{const c=new e.Signal.State(s),d=new AbortController,f=nt(u,g,n,r,c,{columns:i,addable:v,deletable:new e.Signal.Computed((()=>!t.readonly&&!t.disabled&&u.removable)),remove:w.bind(null,u),dragenter:O,dragstart:L.bind(null,u),dragend:N,addNode:()=>y(Number(u.index)),createDetails:m,drop:S.bind(null,u)},{...o,signal:o?.signal?AbortSignal.any([o?.signal,d.signal]):d.signal});l.insertBefore(f,a),$.set(u,[f,d,e=>c.set(e)])}}j.splice(u);for(const[e,t]of c.values())e.remove(),t.abort()}),!0,o?.signal),s}function lt(t,n,r,o,i){return"tree"===t?st(n,r,o,i):function(t,n,r,o){if(o?.signal?.aborted)return null;const i=Xe(t,r,["add","move","trigger","remove","serial"],(e=>[{actions:["add","trigger","move","remove","serial"]},...e.slice(0,3)])),s=document.createElement("table");s.classList.add("NeeloongForm-table");const l=s.appendChild(document.createElement("thead")),a=new e.Signal.Computed((()=>!t.readonly&&!t.disabled&&t.addable));function c(){t.add({})}function u(e){t.remove(Number(e.index))}let d=-1;function f(e){if(d<0)return;const n=e?Number(e.index):t.children.length;n<0||d<0||d===n||t.move(d,n)&&(d=n)}function p(e){d=Number(e.index)}function h(){d=-1}switch(Ze(o?.signal,l,i,c,a,Boolean(o?.editable)),r.tableFoot){default:case"header":{const e=s.appendChild(document.createElement("tfoot"));e.addEventListener("dragenter",(()=>{f()})),Ze(o?.signal,e,i,c,a,Boolean(o?.editable));break}case"add":{const e=s.appendChild(document.createElement("tfoot"));e.addEventListener("dragenter",(()=>{f()}));const t=e.appendChild(document.createElement("tr")).appendChild(document.createElement("th"));t.colSpan=i.length;const n=t.appendChild(document.createElement("button"));n.addEventListener("click",c),n.classList.add("NeeloongForm-table-foot-add"),be((()=>!a.get()),(e=>{n.disabled=e}),!0,o?.signal);break}case"none":}let g=new Map;return be((()=>t.children),(a=>{let c=l.nextSibling;const d=g;g=new Map;for(let l of a){const a=d.get(l);if(a)d.delete(l),g.set(l,a),c!==a[0]?s.insertBefore(a[0],c):c=c.nextSibling;else{const a=new AbortController,d=Qe(l,n,r,{columns:i,deletable:new e.Signal.Computed((()=>!t.readonly&&!t.disabled&&l.removable)),remove:u.bind(null,l),dragenter:f.bind(null,l),dragstart:p.bind(null,l),dragend:h},{...o,signal:o?.signal?AbortSignal.any([o?.signal,a.signal]):a.signal});s.insertBefore(d,c),g.set(l,[d,a])}}for(const[e,t]of d.values())e.remove(),t.abort()}),!0,o?.signal),s}(n,r,o,i)}function at(e,t,n,r){const{type:o}=e,i=Boolean(o&&"object"==typeof o),s=n.html,l=i?e instanceof Q?"collapse":"fieldset":s?"base":"inline",[a,c]=tt(r?.signal,n,e,l,i);me((()=>a.hidden=e.hidden),r?.signal);const u=s&&function(e,t,n,r,o){const i=Ye(e);return ze(t,n,i,r,o),i}(s,e,t,r,n)||t(e,n.renderer,r)||e instanceof Q&&lt(n.arrayStyle,e,t,n,r)||i&&ut(e,t,n,r);return u&&c.appendChild(u),a}function ct(e,t,n,r){if("button"===n.type)return function(e,t,n){const[r,o]=tt(n?.signal,t,e),i=document.createElement("button");me((()=>{const r=t.text,o="function"==typeof r?r(e,n):r;i.innerText=o??""}),n?.signal),me((()=>{const r=t.disabled,o="function"==typeof r?r(e,n):r;i.disabled=Boolean(o)}),n?.signal),i.classList.add("NeeloongForm-item-button"),o.appendChild(i);const s=t.click;if("function"==typeof s)i.addEventListener("click",(t=>s(t,e,n)));else if(s&&"string"==typeof s){const t=n?.call;"function"==typeof t&&i.addEventListener("click",(r=>t(s,r,e,n)))}return r}(e,n,r);if("html"===n.type)return function(e,t,n,r){const o=n.html;if(!o)return null;const[i,s]=tt(r?.signal,n,e),l=Ye(o);return ze(e,t,l,r,n),s.appendChild(l),i}(e,t,n,r);const o=n.field;if(!o)return null;const i=e.child(o);return i?at(i,t,n,r):null}function ut(e,t,n,r,o){if(r?.signal?.aborted)return null;const i=o instanceof HTMLElement?o:document.createElement("div");i.classList.add("NeeloongForm");const s=n.fields||e.layout.fields;if(s?.length)for(const n of s){const o=ct(e,t,n,r);o&&i.appendChild(o)}else{const n=[...e].map((([,e])=>e));for(const e of n){const n=at(e,t,e.layout,r);n&&i.appendChild(n)}}return i}e.ArrayStore=Q,e.Layout=ge,e.ObjectStore=G,e.Store=Y,e.effect=me,e.render=function(e,t,n,{component:r,global:o,relate:i,enhancements:s}={}){return He(t,n,null,new Ce(e,o),Object.create(null),[],s||{},"function"==typeof i?i:null,r)},e.renderStore=function(e,t,n,r,o){if(o?.signal?.aborted)return;const i=r||e.layout,s=i.html;if(!s)return void ut(e,t,i,o||null,n);const l=Ye(s);ze(e,t,l,o||null,i),n.appendChild(l),o?.signal?.addEventListener("abort",(()=>{n.removeChild(l)}),{once:!0})},e.watch=be}));
60
+ function(e){const t=Object.create(j);t.value=e;const n=()=>(p(t),t.value);return n[u]=t,n}(r),a=l[u];if(this[M]=a,a.wrapper=this,i){const t=i.equals;t&&(a.equal=t),a.watched=i[e.subtle.watched],a.unwatched=i[e.subtle.unwatched]}}get(){if(!(0,e.isState)(this))throw new TypeError("Wrong receiver type for Signal.State.prototype.get");return A.call(this[M])}set(t){if(!(0,e.isState)(this))throw new TypeError("Wrong receiver type for Signal.State.prototype.set");if(a)throw new Error("Writes to signals not permitted during Watcher callback");$(this[M],t)}};c=M,h=new WeakSet,e.isComputed=e=>r(h,e),e.Computed=class{constructor(t,r){o(this,h),n(this,c);const i=function(e){const t=Object.create(O);t.computation=e;const n=()=>x(t);return n[u]=t,n}(t),s=i[u];if(s.consumerAllowSignalWrites=!0,this[M]=s,s.wrapper=this,r){const t=r.equals;t&&(s.equal=t),s.watched=r[e.subtle.watched],s.unwatched=r[e.subtle.unwatched]}}get(){if(!(0,e.isComputed)(this))throw new TypeError("Wrong receiver type for Signal.Computed.prototype.get");return x(this[M])}},(t=>{var s,a,c,u;t.untrack=function(e){let t,n=null;try{n=d(null),t=e()}finally{d(n)}return t},t.introspectSources=function(t){var n;if(!(0,e.isComputed)(t)&&!(0,e.isWatcher)(t))throw new TypeError("Called introspectSources without a Computed or Watcher argument");return(null==(n=t[M].producerNode)?void 0:n.map((e=>e.wrapper)))??[]},t.introspectSinks=function(t){var n;if(!(0,e.isComputed)(t)&&!(0,e.isState)(t))throw new TypeError("Called introspectSinks without a Signal argument");return(null==(n=t[M].liveConsumerNode)?void 0:n.map((e=>e.wrapper)))??[]},t.hasSinks=function(t){if(!(0,e.isComputed)(t)&&!(0,e.isState)(t))throw new TypeError("Called hasSinks without a Signal argument");const n=t[M].liveConsumerNode;return!!n&&n.length>0},t.hasSources=function(t){if(!(0,e.isComputed)(t)&&!(0,e.isWatcher)(t))throw new TypeError("Called hasSources without a Computed or Watcher argument");const n=t[M].producerNode;return!!n&&n.length>0};s=M,a=new WeakSet,c=new WeakSet,u=function(t){for(const n of t)if(!(0,e.isComputed)(n)&&!(0,e.isState)(n))throw new TypeError("Called watch/unwatch without a Computed or State argument")},e.isWatcher=e=>r(a,e),t.Watcher=class{constructor(e){o(this,a),o(this,c),n(this,s);let t=Object.create(f);t.wrapper=this,t.consumerMarkedDirty=e,t.consumerIsAlwaysLive=!0,t.consumerAllowSignalWrites=!1,t.producerNode=[],this[M]=t}watch(...t){if(!(0,e.isWatcher)(this))throw new TypeError("Called unwatch without Watcher receiver");i(this,c,u).call(this,t);const n=this[M];n.dirty=!1;const r=d(n);for(const e of t)p(e[M]);d(r)}unwatch(...t){if(!(0,e.isWatcher)(this))throw new TypeError("Called unwatch without Watcher receiver");i(this,c,u).call(this,t);const n=this[M];w(n);for(let e=n.producerNode.length-1;e>=0;e--)if(t.includes(n.producerNode[e].wrapper)){v(n.producerNode[e],n.producerIndexOfThis[e]);const t=n.producerNode.length-1;if(n.producerNode[e]=n.producerNode[t],n.producerIndexOfThis[e]=n.producerIndexOfThis[t],n.producerNode.length--,n.producerIndexOfThis.length--,n.nextProducerIndex--,e<n.producerNode.length){const t=n.producerIndexOfThis[e],r=n.producerNode[e];E(r),r.liveConsumerIndexOfThis[t]=e}}}getPending(){if(!(0,e.isWatcher)(this))throw new TypeError("Called getPending without Watcher receiver");return this[M].producerNode.filter((e=>e.dirty)).map((e=>e.wrapper))}},t.currentComputed=function(){var e;return null==(e=l)?void 0:e.wrapper},t.watched=Symbol("watched"),t.unwatched=Symbol("unwatched")})(e.subtle||(e.subtle={}))})(e.Signal||(e.Signal={}));const k=e=>"string"==typeof e&&e||null,I=e=>"number"==typeof e&&e||null,B=e=>e instanceof RegExp?e:null,F=Boolean;function P(e){if("number"==typeof e||"string"==typeof e)return{label:e,value:e};if(!e||"object"!=typeof e)return null;const{children:t,label:n,value:r}=e,o=Array.isArray(t)?t.map(P).filter(F):[];return o.length?{children:o,label:n,value:r}:"number"==typeof r||"string"==typeof r?{label:n,value:r}:null}const R=e=>{if(!e||!Array.isArray(e))return null;const t=e.map(P).filter(F);return t.length?t:null};function U(t,n,r,o){const i=new e.Signal.State(n(r));let s;if("function"==typeof o){const r=o;s=new e.Signal.Computed((()=>n(r(t))))}else{const t=n(o);s=new e.Signal.Computed((()=>t))}const l=new e.Signal.Computed((()=>{const e=i.get();return null===e?s.get():e}));return[i,l]}const q=Symbol();function D(e){const t={[q]:e};for(const[n,r]of e)Object.defineProperty(t,n,{get:()=>r.ref,configurable:!1,enumerable:!0});return Object.defineProperty(t,q,{get:()=>e,configurable:!1,enumerable:!0}),t}let V=null,_=null,W=Object.create(null);function H(e,t){const n=e.type;let r=Y;if(!e.array||_&&t?.parent instanceof _)if("string"==typeof n){const e=W[n];e&&(r=e)}else n&&"object"==typeof n&&V&&(r=V);else _&&(r=_);return new r(e,t)}function z(e){return e?e instanceof Error?e.message:"string"!=typeof e?"":e:""}function K(t,...n){const r=n.flat().filter((e=>"function"==typeof e));if(!r.length)return[()=>Promise.resolve([]),new e.Signal.Computed((()=>[])),()=>{}];const o=new e.Signal.State([]);let i=null;return[function(){i?.abort(),i=new AbortController;const e=i.signal;return o.set([]),Promise.all(r.map((n=>async function(e,n){let r=[];try{r.push(await e(t,n))}catch(e){r.push(e)}const i=r.flat().map(z).filter(Boolean);return!n.aborted&&i.length&&o.set([...o.get(),...i]),i}(n,e)))).then((e=>e.flat()))},new e.Signal.Computed((()=>o.get())),()=>{i?.abort(),o.set([])}]}class Y{#e=new Map;emit(e,t){const n="number"==typeof e?String(e):e,r=this.#e;let o=!1;for(const e of[...r.get(n)||[]])o=!1===e(t,this)||o;return!o}listen(e,t){const n=t.bind(this),r=this.#e,o="number"==typeof e?String(e):e;let i=r.get(o);return i||(i=new Set,r.set(o,i)),i.add(n),()=>{i?.delete(n)}}static create(e,t={}){return H({type:e},{...t,parent:null})}static setStore(e,t){return function(e,t){W[e]=t}(e,t)}#t=!1;get null(){return this.#t}get kind(){return""}#n=null;get ref(){return this.#n||D(this)}constructor(t,{null:n,ref:r,default:o,setValue:i,convert:s,onUpdate:l,states:a,validator:c,validators:u,index:d,size:f,new:p,parent:h,hidden:g,clearable:m,required:b,disabled:v,readonly:y,removable:w,label:E,description:x,placeholder:S,min:L,max:C,step:O,minLength:N,maxLength:A,pattern:$,values:j}={}){this.schema=t;const M=h instanceof Y?h:null;var F,P;M&&(this.#r=M,this.#o=M.#o,this.#i=M.#i),this.#s=(F=this,"function"!=typeof(P=o??t.default)?()=>structuredClone(P):e=>structuredClone(P(F,e)));const q=new e.Signal.State(!1);this.#l=q,this.#i=q,this.#a=t.type,this.#c=t.meta,this.#u=t.component,this.#d=t.layout||{};const V=new e.Signal.State(Boolean(p));this.#f=V;const _=M?new e.Signal.Computed((()=>M.#p.get()||V.get())):new e.Signal.Computed((()=>V.get()));this.#p=_;const W=Boolean(t.immutable),H=!1!==t.creatable;this.#h=W,this.#g=H;const G=t.readonly,Q=new e.Signal.State("boolean"==typeof y?y:null);let X;if("function"==typeof G)X=new e.Signal.Computed((()=>Boolean(G(this))));else{const t=Boolean(G);X=new e.Signal.Computed((()=>t))}const Z=()=>{if(_.get()?!H:W)return!0;const e=Q.get();return null===e?X.get():e},J=M?M.#m:null;this.#b=Q,this.#m=J?new e.Signal.Computed((()=>J.get()||Z())):new e.Signal.Computed(Z),[this.#v,this.#y]=T(this,g,t.hidden,M?M.#y:null),[this.#w,this.#E]=T(this,m,t.clearable,M?M.#E:null),[this.#x,this.#S]=T(this,b,t.required,M?M.#S:null),[this.#L,this.#C]=T(this,v,t.disabled,M?M.#C:null),[this.#O,this.#N]=U(this,k,E,t.label),[this.#A,this.#$]=U(this,k,x,t.description),[this.#j,this.#M]=U(this,k,S,t.placeholder),[this.#T,this.#k]=U(this,I,L,t.min),[this.#I,this.#B]=U(this,I,C,t.max),[this.#F,this.#P]=U(this,I,O,t.step),[this.#R,this.#U]=U(this,I,N,t.minLength),[this.#q,this.#D]=U(this,I,A,t.maxLength),[this.#V,this.#_]=U(this,B,$,t.pattern),[this.#W,this.#H]=U(this,R,j,t.values),[this.#z,this.#K]=T(this,w,t.removable??!0);const ee=function(t,...n){const r=n.flat().filter((e=>"function"==typeof e));return r.length?new e.Signal.Computed((()=>{const e=[];for(const n of r)try{e.push(n(t))}catch(t){e.push(t)}return e.flat().map(z).filter(Boolean)})):new e.Signal.Computed((()=>[]))}(this,t.validator,c),te=t.states;this.#Y=te?Object.defineProperties(Object.create(null),Object.fromEntries(Object.entries(te).map((([t,{get:n,set:r,toState:o}])=>{const i=new e.Signal.State(o?.(a?.[t])),s=new e.Signal.Computed((()=>n(this,i)));return[t,{configurable:!0,enumerable:!0,get:()=>s.get(),set(e){return r?.(this,i,e)}}]})))):null;const[ne,re,oe]=K(this,t.validators?.change,u?.change),[ie,se,le]=K(this,t.validators?.blur,u?.blur);if(this.listen("change",(()=>{ne()})),this.listen("blur",(()=>{ie()})),this.#G=function(...t){const n=t.filter(Boolean);return new e.Signal.Computed((()=>n.flatMap((e=>e.get()))))}(ee,re,se),this.#Q=ee,this.#X=ne,this.#Z=ie,this.#J=oe,this.#ee=le,f instanceof e.Signal.State||f instanceof e.Signal.Computed?this.#te=f:this.#te=new e.Signal.State(f||0),n)return this.#t=!0,void(this.#n=D(this));this.#n=r||null,this.#ne=l||null,this.#re="function"==typeof i?i:null,this.#oe="function"==typeof s?s:null,this.#ie.set(d??"");for(const[e,n]of Object.entries(t.events||{}))"function"==typeof n&&this.listen(e,n)}#Y;get states(){return this.#Y}#d;get layout(){return this.#d}#s;createDefault(e){return this.#s(e)}#re=null;#oe=null;#ne=null;#r=null;#o=this;#a;#c;#u;#l=null;#i;get loading(){return this.#i.get()}set loading(e){const t=this.#l;t&&t.set(Boolean(e))}get store(){return this}get parent(){return this.#r}get root(){return this.#o}get type(){return this.#a}get meta(){return this.#c}get component(){return this.#u}#te;get size(){return this.#te.get()}#ie=new e.Signal.State("");get index(){return this.#ie.get()}set index(e){this.#ie.set(e)}get no(){if(this.#t)return"";const e=this.index;return"number"==typeof e?e+1:e}#g=!0;get creatable(){return this.#g}#h=!1;get immutable(){return this.#h}#p;#f;get selfNew(){return this.#f.get()}set selfNew(e){this.#f.set(Boolean(e))}get new(){return this.#p.get()}set new(e){this.#f.set(Boolean(e))}#v;#y;get selfHidden(){return this.#v.get()}set selfHidden(e){this.#v.set("boolean"==typeof e?e:null)}get hidden(){return this.#y.get()}set hidden(e){this.#v.set("boolean"==typeof e?e:null)}#w;#E;get selfClearable(){return this.#w.get()}set selfClearable(e){this.#w.set("boolean"==typeof e?e:null)}get clearable(){return this.#E.get()}set clearable(e){this.#w.set("boolean"==typeof e?e:null)}#x;#S;get selfRequired(){return this.#x.get()}set selfRequired(e){this.#x.set("boolean"==typeof e?e:null)}get required(){return this.#S.get()}set required(e){this.#x.set("boolean"==typeof e?e:null)}#L;#C;get selfDisabled(){return this.#L.get()}set selfDisabled(e){this.#L.set("boolean"==typeof e?e:null)}get disabled(){return this.#C.get()}set disabled(e){this.#L.set("boolean"==typeof e?e:null)}#b;#m;get selfReadonly(){return this.#b.get()}set selfReadonly(e){this.#b.set("boolean"==typeof e?e:null)}get readonly(){return this.#m.get()}set readonly(e){this.#b.set("boolean"==typeof e?e:null)}#z;#K;get selfRemovable(){return this.#z.get()}set selfRemovable(e){this.#z.set("boolean"==typeof e?e:null)}get removable(){return this.#K.get()}set removable(e){this.#z.set("boolean"==typeof e?e:null)}#O;#N;get selfLabel(){return this.#O.get()}set selfLabel(e){this.#O.set(k(e))}get label(){return this.#N.get()}set label(e){this.#O.set(k(e))}#A;#$;get selfDescription(){return this.#A.get()}set selfDescription(e){this.#A.set(k(e))}get description(){return this.#$.get()}set description(e){this.#A.set(k(e))}#j;#M;get selfPlaceholder(){return this.#j.get()}set selfPlaceholder(e){this.#j.set(k(e))}get placeholder(){return this.#M.get()}set placeholder(e){this.#j.set(k(e))}#T;#k;get selfMin(){return this.#T.get()}set selfMin(e){this.#T.set(I(e))}get min(){return this.#k.get()}set min(e){this.#T.set(I(e))}#I;#B;get selfMax(){return this.#I.get()}set selfMax(e){this.#I.set(I(e))}get max(){return this.#B.get()}set max(e){this.#I.set(I(e))}#F;#P;get selfStep(){return this.#F.get()}set selfStep(e){this.#F.set(I(e))}get step(){return this.#P.get()}set step(e){this.#F.set(I(e))}#R;#U;get selfMinLength(){return this.#R.get()}set selfMinLength(e){this.#R.set(I(e))}get minLength(){return this.#U.get()}set minLength(e){this.#R.set(I(e))}#q;#D;get selfMaxLength(){return this.#q.get()}set selfMaxLength(e){this.#q.set(I(e))}get maxLength(){return this.#D.get()}set maxLength(e){this.#q.set(I(e))}#V;#_;get selfPattern(){return this.#V.get()}set selfPattern(e){this.#V.set(B(e))}get pattern(){return this.#_.get()}set pattern(e){this.#V.set(B(e))}#W;#H;get selfValues(){return this.#W.get()}set selfValues(e){this.#W.set(R(e))}get values(){return this.#H.get()}set values(e){this.#W.set(R(e))}#G;#Q;#X;#Z;#J;#ee;get errors(){return this.#G.get()}get error(){return this.#G.get()[0]}*[Symbol.iterator](){}child(e){return null}#se=!1;#le=new e.Signal.State(null);#ae=new e.Signal.State(this.#le.get());bindObject(e){const t=this.#ce,n=[];for(const[r,o]of Object.entries(e)){const e=H(o,{index:r,parent:this,onUpdate:(e,n,o)=>{if(r!==n)return;if(t.has(o))return;const i=this.#ae??null;"object"!=typeof i||Array.isArray(i)||(this.value={...i,[n]:e})}});n.push(e),t.set(e,r)}return this.#ue(),()=>{for(const e of n)t.delete(e)}}#ce=new Map;get changed(){return!Object.is(this.#ae.get(),this.#le.get())}get value(){return this.#ae.get()}set value(e){const t=this.#re?.(e),n=void 0===t?e:t;this.#ae.set(n),this.#se||this.#le.set(n),this.#ne?.(n,this.#ie.get(),this),this.#ue()}#ue(){this.#de||(this.#de=!0,queueMicrotask((()=>{const e=this.#ae.get();this.#fe(e)})))}reset(e=(this.#se?this.#le.get():this.#s()),t=this.#f.get()){this.#pe(e,Boolean(t))}#pe(e,t){this.#f.set(t);const n=this.#re?.(e),r=void 0===n?e:n;if(this.#J(),this.#ee(),this.#se=!0,!r||"object"!=typeof r){for(const[,e]of this)e.#pe(null,!1);for(const[e]of this.#ce)e.#pe(null,!1);return this.#ae.set(r),this.#le.set(r),this.#ne?.(r,this.#ie.get(),this),r}const o=Array.isArray(r)?[...r]:{...r};for(const[e,t]of this)o[e]=t.#pe(Object.hasOwn(o,e)?o[e]:void 0,!1);for(const[e,t]of this.#ce)o[t]=e.#pe(Object.hasOwn(o,t)?o[t]:void 0,!1);return this.#ae.set(o),this.#le.set(o),this.#ne?.(o,this.#ie.get(),this),o}#de=!1;#he(e){let t=this.#oe?.(e)??e;return void 0===t&&(t=e),Object.is(this.#ae.get(),t)?t:this.#fe(t)}#fe(e){this.#de=!1;let t=e;if(e&&"object"==typeof e){let n=Array.isArray(e)?[...e]:{...e},r=!1;for(const[t,o]of this){const i=Object.hasOwn(e,t)?e[t]:void 0,s=o.#he(i);Object.is(i,s)||(n[t]=s,r=!0)}for(const[t,o]of this.#ce){const i=Object.hasOwn(e,o)?e[o]:void 0,s=t.#he(i);Object.is(i,s)||(n[o]=s,r=!0)}r&&(t=e=n,this.#ae.set(e))}return this.#se||(this.#se=!0,this.#le.set(t)),this.#ae.set(e),e}validate(e){if(!0===e)return Promise.all([this.#Q.get(),this.#X(),this.#Z()]).then((e=>{const t=e.flat();return t.length?t:null}));const t=Array.isArray(e)?e:[];if(this.#y.get())return Promise.resolve([]);const n=[this.validate(!0).then((e=>e?.length?[{path:[...t],store:this,errors:e}]:[]))];for(const[e,r]of this)n.push(r.validate([...t,e]));for(const[e,r]of this.#ce)n.push(e.validate([...t,r]));return Promise.all(n).then((e=>e.flat()))}}class G extends Y{get kind(){return"object"}#ge;*[Symbol.iterator](){yield*Object.entries(this.#ge)}child(e){return this.#ge[e]||null}constructor(e,{parent:t,index:n,new:r,onUpdate:o}={}){const i=Object.entries(e.type),s=Object.create(null);super(e,{parent:t,index:n,new:r,onUpdate:o,size:i.length,setValue:e=>"object"==typeof e?e:null,convert:e=>"object"==typeof e?e:{},default:e.default??((t,n)=>{const r=Object.entries(s);let o=n;return o&&"object"==typeof o||(o=e.default),o&&"object"==typeof o||(o={}),Object.fromEntries(r.map((([e,t])=>[e,t.createDefault(Object.hasOwn(o,e)?o[e]:null)])))})});const l={parent:this,onUpdate:(e,t,n)=>{n===this.#ge[t]&&(this.value={...this.value,[t]:e})}};for(const[e,t]of i)s[e]=H(t,{...l,index:e});this.#ge=s}}V=G;class Q extends Y{#me=()=>{throw new Error};#ge;get children(){return[...this.#ge.get()]}*[Symbol.iterator](){return yield*[...this.#ge.get().entries()]}child(e){const t=this.#ge.get();return"number"==typeof e&&e<0?t[t.length+e]||null:t[Number(e)]||null}get kind(){return"array"}constructor(t,{parent:n,onUpdate:r,index:o,new:i,addable:s}={}){const l=new e.Signal.State([]),a=e=>{const t=Array.isArray(e)&&e.length||0,n=[...l.get()],r=n.length;for(let e=n.length;e<t;e++)n.push(this.#me(e));n.length=t,r!==t&&l.set(n)};super({...t,immutable:!1},{index:o,new:i,parent:n,size:new e.Signal.Computed((()=>l.get().length)),setValue(e){const t=Array.isArray(e)?e:null==e?null:[e];return a(t),t},convert(e){const t=Array.isArray(e)?e:null==e?null:[e];return a(t),t},onUpdate:(e,t,n)=>{a(e),r?.(e,t,n)},default:t.default??[]}),[this.#be,this.#ve]=T(this,s,t.addable??!0),this.#ge=l;const c={parent:this,onUpdate:(e,t,n)=>{if(l.get()[t]!==n)return;const r=[...this.value||[]];r.length<t&&(r.length=t),r[t]=e,this.value=r}};this.#me=(e,n)=>{const r=H({...t,creatable:!0},{...c,index:e,new:n});return r.index=e,r}}bindObject(){throw new Error("ArrayStore 不支持 bindObject()方法")}#be;#ve;get selfAddable(){return this.#be.get()}set selfAddable(e){this.#be.set("boolean"==typeof e?e:null)}get addable(){return this.#ve.get()}set addable(e){this.#be.set("boolean"==typeof e?e:null)}insert(e,t=null,n){if(!this.addable)return!1;const r=this.value||[];if(!Array.isArray(r))return!1;const o=[...this.#ge.get()],i=Math.max(0,Math.min(Math.floor(e),o.length)),s=this.#me(i,n);s.new=!0,o.splice(i,0,s);for(let t=e+1;t<o.length;t++)o[t].index=t;const l=[...r];return l.splice(i,0,s.createDefault(t)),this.#ge.set(o),this.value=l,!0}add(e=null){return this.insert(this.#ge.get().length,e)}remove(e){const t=this.value;if(!Array.isArray(t))return;const n=[...this.#ge.get()],r=Math.max(0,Math.min(Math.floor(e),n.length)),[o]=n.splice(r,1);if(!o)return;for(let t=e;t<n.length;t++)n[t].index=t;const i=[...t],[s]=i.splice(r,1);return this.#ge.set(n),this.value=i,s}move(e,t,n=1){const r=Math.floor(n);if(r<1)return 0;if(e<=t&&e+r>t)return 0;const o=this.value;if(!Array.isArray(o))return 0;const i=[...this.#ge.get()],s=i.splice(e,r),l=s.length;if(!l)return 0;const a=r>1&&t>e?t-r+1:t;i.splice(a,0,...s);let c=Math.min(e,a),u=Math.max(e+r-1,t);for(let e=c;e<=u;e++)i[e].index=e;const d=[...o],f=d.splice(e,l);for(let e=f.length;e<l;e++)f.push(null);for(;a>d.length;)d.push(null);return d.splice(a,0,...f),this.#ge.set(i),this.value=d,l}exchange(e,t){const n=this.value;if(!Array.isArray(n))return!1;const r=[...this.#ge.get()],o=r[e],i=r[t];if(!o||!i)return!1;r[t]=o,r[e]=i,o.index=t,i.index=e;const s=[...n],l=s[e],a=s[t];return s[t]=l,s[e]=a,this.#ge.set(r),this.value=s,!0}}function X(e){if(!e?.length)return[];const t=[];let n=[],r=Object.create(null),o=!1;for(const t of e){if("string"==typeof t)continue;const e=t.template;if(!e)continue;o=!0;const n=Z(t);r[e]={params:t.params,children:n?[n]:[]}}function i(e){e.length&&t.push({type:"divergent",children:e.map((([e,t])=>{const n=Z(t);return n?"string"!=typeof n&&"fragment"===n.type?[n,e]:[{children:[n]},e]:[{children:[]},e]}))})}for(const r of e){if("string"==typeof r){i(n),n=[],t.push(r);continue}if(r.template){i(n),n=[];continue}if(n.length&&r.else){const e=r.if||null;n.push([e,r]),e||(i(n),n=[]);continue}i(n),n=[];const e=r.if;if(e){n.push([e,r]);continue}const o=Z(r);o&&t.push(o)}return i(n),o?[{type:"fragment",templates:r,children:t}]:t}function Z(e){let t=function(e){const t=e.fragment;if(t&&"string"==typeof t)return{type:"template",template:t,attrs:e.attrs,children:[]};const n=function({text:e,html:t}){return null!=e?{type:"content",value:e}:null!=t?{type:"content",value:t,html:!0}:void 0}(e),r=n?[n]:X(e.children);return!e.name||t?n||{type:"fragment",children:r}:{name:e.name,is:e.is,attrs:e.attrs,events:e.events,classes:e.classes,styles:e.styles,enhancements:e.enhancements,bind:e.bind,comment:e.comment,children:r}}(e),n=e.vars;n.length&&t&&"string"!=typeof t&&(t.vars?t.vars=[...n,...t.vars]:t?t.vars=n:t={type:"fragment",vars:n,children:[]},n=null);const r=e.enum,o=e.value;return r&&(t={type:"enum",value:r,sort:e.sort,vars:n,children:t?[t]:[]},n=null),o&&(t={type:"value",name:o,vars:n,children:t?[t]:[]},n=null),n?.length&&(t={type:"fragment",vars:n,children:t?[t]:[]}),t}!function(e){_=e}(Q);const J=/^([+-]?(\d(_?\d)*(\.(\d(_?\d)*)?)?|\.\d(_?\d)*)(?:e[+-]?\d(_?\d)*)|0(b[01](?:_?[01])*|o[0-7](?:_?[0-7])*|x[\dA-F](?:_?[\dA-F])*))$/is;const ee={CALC:"no `createCalc` option, no expression parsing support",EVENT:"no `createEvent`, options, no event parsing support",CLOSE:(e,t)=>`end tag name: ${e} is not match the current start tagName: ${t}`,UNCLOSE:e=>`end tag name: ${e} maybe not complete`,QUOTE:e=>`attribute value no end '${e}' match`,CLOSE_SYMBOL:"elements closed character '/' and '>' must be connected to",UNCOMPLETED:(e,t)=>t?`end tag name: ${e} is not complete: ${t}`:`end tag name: ${e} maybe not complete`,ENTITY:e=>`entity not found: ${e}`,SYMBOL:e=>`unexpected symbol: ${e}`,TAG:e=>`invalid tagName: ${e}`,ATTR:e=>`invalid attribute: ${e}`,EQUAL:"attribute equal must after attrName",ATTR_VALUE:'attribute value must after "="',EOF:"unexpected end of file"};class te extends Error{constructor(e,...t){const n=ee[e];super("function"==typeof n?n(...t):n),this.code=e}}const ne=/^(?<decorator>[:@!+*\.?]|style:|样式:)?(?<name>-?[\w\p{Unified_Ideograph}_][-\w\p{Unified_Ideograph}_:\d\.]*)$/u,re=/^~(?<enhancement>[\w\p{Unified_Ideograph}_][-\w\p{Unified_Ideograph}_\d\.]*)(?:(?<decorator>[:@!])(?<name>-?[\w\p{Unified_Ideograph}_][-\w\p{Unified_Ideograph}_:\d\.]*))?$/u,oe=/^(?<name>[a-zA-Z$\p{Unified_Ideograph}_][\da-zA-Z$\p{Unified_Ideograph}_]*)?$/u;function ie(e,t){const n=e[t];if(n)return n;const r={attrs:Object.create(null),events:Object.create(null)};return e[t]=r,r}function se(e,t){const n=e.replace(/$\s+|\s+$/gs,"");if("null"===n)return{value:null};if("true"===n)return{value:!0};if("false"===n)return{value:!1};const r=function(e){return J.test(e)?Number(e.replaceAll("_","")):NaN}(n);return Number.isNaN(r)?oe.test(n)?{name:n}:{calc:t(e)}:{value:r}}function le(e,t,n,r,o){const{attrs:i,events:s,classes:l,styles:a,vars:c,params:u,enhancements:d}=e;return function(f,p){const h=f.replace(/./g,".").replace(/:/g,":").replace(/@/g,"@").replace(/+/g,"+").replace(/-/g,"-").replace(/[*×]/g,"*").replace(/!/g,"!"),g=(ne.exec(h)||re.exec(h))?.groups;if(!g)throw new te("ATTR",f);const{name:m,enhancement:b}=g,v=g.decorator?.toLowerCase();if(b){if(":"===v)ie(d,b).attrs[m]=p?se(p,t):{name:m};else if("@"===v)ie(d,b).events[m]=p?oe.test(p)?{name:p}:{event:r(p)}:{name:m};else if("!"===v){if("bind"===m)ie(d,b).bind=p||!0}else ie(d,b).value=se(p,t);return}if(!v)return void(i[m]={value:p});if(":"===v)return void(i[m]=p?se(p,t):{name:m});if("."===v)return void(l[m]=p?se(p,t):{name:m});if("style:"===v)return void(a[m]=se(p,t));if("@"===v)return void(s[m]=p?oe.test(p)?{name:p}:{event:r(p)}:{name:m});if("+"===v)return void c.push({...p?se(p,n):{value:void 0},variable:m,init:!0});if("*"===v)return void c.push({...se(p,t),variable:m,init:!1});if("?"===v)return void(u[m]=se(p,t));if("!"!==v)return;switch(m.toString()){case"fragment":e.fragment=p||!0;break;case"else":e.else=!0;break;case"enum":e.enum=p?se(p,t):{value:!0};break;case"sort":e.sort=p?se(p,t):{value:!0};break;case"if":e.if=se(p,t);break;case"text":e.text=se(p,t);break;case"html":o&&(e.html=se(p,t));break;case"template":e.template=p;break;case"bind":e.bind=p||!0;break;case"value":e.value=p;break;case"comment":e.comment=p}}}function ae(e,t){return{name:e,is:t,children:[],attrs:Object.create(null),events:Object.create(null),classes:Object.create(null),styles:Object.create(null),vars:[],params:Object.create(null),enhancements:Object.create(null)}}var ce={lt:"<",gt:">",amp:"&",quot:'"',apos:"'",Agrave:"À",Aacute:"Á",Acirc:"Â",Atilde:"Ã",Auml:"Ä",Aring:"Å",AElig:"Æ",Ccedil:"Ç",Egrave:"È",Eacute:"É",Ecirc:"Ê",Euml:"Ë",Igrave:"Ì",Iacute:"Í",Icirc:"Î",Iuml:"Ï",ETH:"Ð",Ntilde:"Ñ",Ograve:"Ò",Oacute:"Ó",Ocirc:"Ô",Otilde:"Õ",Ouml:"Ö",Oslash:"Ø",Ugrave:"Ù",Uacute:"Ú",Ucirc:"Û",Uuml:"Ü",Yacute:"Ý",THORN:"Þ",szlig:"ß",agrave:"à",aacute:"á",acirc:"â",atilde:"ã",auml:"ä",aring:"å",aelig:"æ",ccedil:"ç",egrave:"è",eacute:"é",ecirc:"ê",euml:"ë",igrave:"ì",iacute:"í",icirc:"î",iuml:"ï",eth:"ð",ntilde:"ñ",ograve:"ò",oacute:"ó",ocirc:"ô",otilde:"õ",ouml:"ö",oslash:"ø",ugrave:"ù",uacute:"ú",ucirc:"û",uuml:"ü",yacute:"ý",thorn:"þ",yuml:"ÿ",nbsp:" ",iexcl:"¡",cent:"¢",pound:"£",curren:"¤",yen:"¥",brvbar:"¦",sect:"§",uml:"¨",copy:"©",ordf:"ª",laquo:"«",not:"¬",shy:"­­",reg:"®",macr:"¯",deg:"°",plusmn:"±",sup2:"²",sup3:"³",acute:"´",micro:"µ",para:"¶",middot:"·",cedil:"¸",sup1:"¹",ordm:"º",raquo:"»",frac14:"¼",frac12:"½",frac34:"¾",iquest:"¿",times:"×",divide:"÷",forall:"∀",part:"∂",exist:"∃",empty:"∅",nabla:"∇",isin:"∈",notin:"∉",ni:"∋",prod:"∏",sum:"∑",minus:"−",lowast:"∗",radic:"√",prop:"∝",infin:"∞",ang:"∠",and:"∧",or:"∨",cap:"∩",cup:"∪",int:"∫",there4:"∴",sim:"∼",cong:"≅",asymp:"≈",ne:"≠",equiv:"≡",le:"≤",ge:"≥",sub:"⊂",sup:"⊃",nsub:"⊄",sube:"⊆",supe:"⊇",oplus:"⊕",otimes:"⊗",perp:"⊥",sdot:"⋅",Alpha:"Α",Beta:"Β",Gamma:"Γ",Delta:"Δ",Epsilon:"Ε",Zeta:"Ζ",Eta:"Η",Theta:"Θ",Iota:"Ι",Kappa:"Κ",Lambda:"Λ",Mu:"Μ",Nu:"Ν",Xi:"Ξ",Omicron:"Ο",Pi:"Π",Rho:"Ρ",Sigma:"Σ",Tau:"Τ",Upsilon:"Υ",Phi:"Φ",Chi:"Χ",Psi:"Ψ",Omega:"Ω",alpha:"α",beta:"β",gamma:"γ",delta:"δ",epsilon:"ε",zeta:"ζ",eta:"η",theta:"θ",iota:"ι",kappa:"κ",lambda:"λ",mu:"μ",nu:"ν",xi:"ξ",omicron:"ο",pi:"π",rho:"ρ",sigmaf:"ς",sigma:"σ",tau:"τ",upsilon:"υ",phi:"φ",chi:"χ",psi:"ψ",omega:"ω",thetasym:"ϑ",upsih:"ϒ",piv:"ϖ",OElig:"Œ",oelig:"œ",Scaron:"Š",scaron:"š",Yuml:"Ÿ",fnof:"ƒ",circ:"ˆ",tilde:"˜",ensp:" ",emsp:" ",thinsp:" ",zwnj:"‌",zwj:"‍",lrm:"‎",rlm:"‏",ndash:"–",mdash:"—",lsquo:"‘",rsquo:"’",sbquo:"‚",ldquo:"“",rdquo:"”",bdquo:"„",dagger:"†",Dagger:"‡",bull:"•",hellip:"…",permil:"‰",prime:"′",Prime:"″",lsaquo:"‹",rsaquo:"›",oline:"‾",euro:"€",trade:"™",larr:"←",uarr:"↑",rarr:"→",darr:"↓",harr:"↔",crarr:"↵",lceil:"⌈",rceil:"⌉",lfloor:"⌊",rfloor:"⌋",loz:"◊",spades:"♠",clubs:"♣",hearts:"♥",diams:"♦"};const ue=/^(?<name>[\w\p{Unified_Ideograph}_][-\.\|:|d\w\p{Unified_Ideograph}_:]*)(?:|(?<is>[\w\p{Unified_Ideograph}_][-\.\|:|d\w\p{Unified_Ideograph}_]*))?$/u;function de(e){return"="!==e&&"/"!==e&&">"!==e&&e&&"'"!==e&&'"'!==e&&!function(e){return"0x80"===e||e<=" "}(e)}function fe(e,t,n,r){let o=r[n];return null==o&&(o=e.lastIndexOf("</"+n+">"),o<t&&(o=e.lastIndexOf("</"+n)),r[n]=o),o<t}function pe(...e){console.error(new te(...e))}function he(e){const t=e.slice(1,-1);return"#"===t.charAt(0)?String.fromCodePoint(parseInt(t.substring(1).replace("x","0x"))):t in ce?ce[t]:(pe("ENTITY",e),e)}var ge=Object.freeze({__proto__:null,parse:function(e,{createCalc:t=()=>{throw new te("CALC")},createInit:n=t,createEvent:r=()=>{throw new te("EVENT")},simpleTag:o=new Set,enableHTML:i=!1}={}){const s=[],l={children:s},a=[];let c=null,u=l;function d(){c=a.pop()||null,u=c||l}function f(e){(e=e.replace(/^\n|(?<=\n)\t+|\n\t*$/g,""))&&u.children.push(e)}let p={},h=0;function g(t){if(t<=h)return;f(e.substring(h,t).replace(/&#?\w+;/g,he)),h=t}for(;;){const m=e.indexOf("<",h);if(m<0){const N=e.substring(h);N.match(/^\s*$/)||f(N);break}m>h&&g(m);const b=e.charAt(m+1);if("!"===b){let A=m+2,$=">";if("--"===e.slice(m+2,m+4)&&(A+=4,$="--\x3e"),h=e.indexOf($,A),h<0)break;h++;continue}if("/"===b){h=e.indexOf(">",m+3);let j=e.substring(m+2,h);if(h<0?(j=e.substring(m+2).replace(/[\s<].*/,""),pe("UNCOMPLETED",j,c?.name),h=m+1+j.length):j.match(/\s</)&&(j=j.replace(/[\s<].*/,""),pe("UNCOMPLETED",j),h=m+1+j.length),c){const M=c.name;if(M===j)d();else{if(M.toLowerCase()!=j.toLowerCase())throw new te("CLOSE",j,c.name);d()}}h++;continue}function v(t){let n=h+1;if(h=e.indexOf(t,n),h<0)throw new te("QUOTE",t);const r=e.slice(n,h).replace(/&#?\w+;/g,he);return h++,r}function y(){let t=e.charAt(h);for(;t<=" "||"€"===t;t=e.charAt(++h));return t}function w(){let t=h,n=e.charAt(h);for(;de(n);)h++,n=e.charAt(h);return e.slice(t,h)}h=m+1;let E=e.charAt(h);switch(E){case"=":throw new te("EQUAL");case'"':case"'":throw new te("ATTR_VALUE");case">":case"/":throw new te("SYMBOL",E);case"":throw new te("EOF")}const x=w(),S=ue.exec(x)?.groups;if(!S)throw new te("TAG",x);a.push(c),c=ae(S.name,S.is),u.children.push(c),u=c;const L=le(c,t,n,r,i);let C=!0,O=!1;e:for(;C;){let T=y();switch(T){case"":pe("EOF"),h++;break e;case">":h++;break e;case"/":O=!0;break e;case'"':case"'":throw new te("ATTR_VALUE");case"=":throw new te("SYMBOL",T)}const k=w();if(!k){pe("EOF"),h++;break e}switch(T=y(),T){case"":pe("EOF"),h++;break e;case">":L(k,""),h++;break e;case"/":L(k,""),O=!0;break e;case"=":h++;break;case"'":case'"':L(k,v(T));continue;default:L(k,"");continue}switch(T=y(),T){case"":L(k,""),pe("EOF"),h++;break e;case">":L(k,""),h++;break e;case"/":L(k,""),O=!0;break e;case"'":case'"':L(k,v(T));continue}L(k,w())}if(O){for(;;){h++;const I=e.charAt(h);if("/"!==I&&!(I<=" "||"€"===I))break}switch(e.charAt(h)){case"=":throw new te("EQUAL");case'"':case"'":throw new te("ATTR_VALUE");case"":pe("EOF");break;case">":h++;break;default:throw new te("CLOSE_SYMBOL")}d()}else(o.has(x)||fe(e,h,x,p))&&d()}return X(s)}});function me(t,n){if(n?.aborted)return;let r=!0;const o=new e.Signal.subtle.Watcher((()=>{r&&(r=!1,queueMicrotask((()=>{r=!0;for(const e of o.getPending())e.get();o.watch()})))})),i=new e.Signal.Computed(t);if(o.watch(i),i.get(),!n)return()=>{o.unwatch(i)};n.addEventListener("abort",(()=>{o.unwatch(i)}),{once:!0})}function be(e,t,n,r){let o,i=!1;return me((()=>{const r=e();if(!i)return i=!0,o=r,void(n&&t(r));Object.is(r,o)||(o=r,t(r))}),r)}const ve=new Set(Object.keys({type:!0,meta:!0,component:!0,kind:!0,value:!0,store:!0,parent:!0,root:!0,ref:!0,schema:!0,new:!0,readonly:!0,creatable:!0,immutable:!0,changed:!0,loading:!0,required:!0,clearable:!0,hidden:!0,disabled:!0,label:!0,description:!0,placeholder:!0,min:!0,max:!0,step:!0,minLength:!0,maxLength:!0,pattern:!0,values:!0,null:!0,index:!0,no:!0,size:!0,error:!0,errors:!0}));function*ye(e,t="",n="$"){yield[`${t}`,{get:()=>e.value,set:t=>e.value=t,store:e}];for(const r of ve)yield[`${t}${n}${r}`,{get:()=>e[r]}];yield[`${t}${n}value`,{get:()=>e.value,set:t=>e.value=t}],yield[`${t}${n}state`,{get:()=>null,set:e=>{}}],yield[`${t}${n}reset`,{exec:()=>e.reset()}],yield[`${t}${n}validate`,{exec:t=>e.validate(t?[]:null)}],e instanceof Q?(yield[`${t}${n}addable`,{get:()=>e.addable}],yield[`${t}${n}insert`,{exec:(t,n)=>e.insert(t,n)}],yield[`${t}${n}add`,{exec:t=>e.add(t)}],yield[`${t}${n}remove`,{exec:t=>e.remove(t)}],yield[`${t}${n}move`,{exec:(t,n)=>e.move(t,n)}],yield[`${t}${n}exchange`,{exec:(t,n)=>e.exchange(t,n)}]):yield[`${t}${n}addable`,{get:()=>!1}]}function we(e,t,n){for(const[n,r]of t){for(const[t,o]of ye(r,n))e[t]=o;for(const[t,o]of ye(r,n,"$$"))e[t]=o}}const Ee={value$:{calc:e=>e?.[q].value},state$:{calc:e=>e?.[q].state}};var xe=Object.getOwnPropertyDescriptors(Ee);function Se(e){if(!e)return!1;const t=e.indexOf("$");return t<0||(e.indexOf("$",t+2)>0||"$"===e[0]&&"_$".includes(e[1]))}function Le(e,t){Object.defineProperty(t,"$store",{value:e,writable:!1,configurable:!0,enumerable:!1}),Object.defineProperty(t,"$root",{value:e.root,writable:!1,configurable:!0,enumerable:!1})}class Ce{exec({name:e,calc:t,value:n}){if("string"==typeof e){const t=this.#ye[e];if("function"!=typeof t?.get)return;return t.get()}return"function"==typeof t?t(this.getters):n}get({name:t,calc:n,value:r}){if("string"==typeof t){const e=this.#ye[t];if("function"!=typeof e?.get)return;const{get:n,set:r}=e;return{get:n,set:r}}if("function"==typeof n){const t=new e.Signal.Computed((()=>n(this.getters)));return{get:()=>t.get()}}return{get:()=>r}}watch(e,t){return be((()=>this.exec(e)),t,!0)}enum(e){const{name:t,calc:n}=e;if("function"==typeof n)return()=>n(this.getters);if("string"==typeof t){const e=this.#ye[t];if("function"!=typeof e?.get)return null;const n=e.store;return n instanceof Y?n:e.get}return this.store}getStore(e){if(!e)return null;const t=this.#ye[!0===e?"":e];return t?.get&&t.store||null}bind(e,t,n){const r=this.#ye[!0===e?"":e];if(!r?.get)return;const{store:o}=r;return o?ve.has(t)?be((()=>o[t]),n,!0):void 0:"value"===t?be((()=>r.get()),n,!0):void 0}bindAll(e){const t=this.#ye[!0===e?"":e];if(!t?.get)return;const{store:n}=t;if(!n){const e=t.get;if("function"!=typeof e)return;return{$value:t=>be(e,t,!0)}}const r=Object.fromEntries([...ve].map((e=>[`$${e}`,t=>be((()=>n[e]),t,!0)])));return r.$$state=e=>be((()=>null),e,!0),r}getBindAll(e){const t=this.#ye[!0===e?"":e];if(!t?.get)return{};const{store:n}=t;if(!n){const{get:e,set:n}=t;return{$value:{get:e,set:n}}}const r=Object.fromEntries([...ve].map((e=>[`$${e}`,"value"===e?{get:()=>n[e],set:t=>{n[e]=t}}:{get:()=>n[e]}])));return r.$$state={get:()=>null,set:()=>{}},r}bindSet(e,t){const n=this.#ye[!0===e?"":e];if(!n?.get)return;const{store:r}=n;if(r)switch(t){case"value":return e=>{r.value=e};case"state":return e=>{}}}bindEvents(e){const t=this.#ye[!0===e?"":e];if(!t?.get)return;const{store:n}=t;if(!n){const e=t.set;if("function"!=typeof e)return;return{$value:e}}return{$value:e=>{n.value=e},$state:e=>{},$input:e=>{n.emit("input",e)},$change:e=>{n.emit("change",e)},$click:e=>{n.emit("click",e)},$focus:e=>{n.emit("focus",e)},$blur:e=>{n.emit("blur",e)},$reset:e=>{n.reset()},$validate:e=>{n.validate(e?[]:null)}}}getEvent({name:e,event:t}){if("function"==typeof t)return t;const n=this.#ye[e];if(!n)return null;const{exec:r,calc:o}=n;return"function"==typeof r?r:"function"==typeof o?o:null}constructor(e,t){if(this.store=e,t instanceof Ce){this.#we=t.#we;const e=this.#Ee;for(const[n,r]of Object.entries(t.#Ee))e[n]=r;const n=this.#xe;for(const[e,r]of Object.entries(t.#xe))n[e]=r}else we(this.#Ee,e),this.#we=function(e){const t=Object.create(null,xe);if(!e||"object"!=typeof e)return t;for(const[n,r]of Object.entries(e)){if(!Se(n))continue;if(!r||"object"!=typeof r)continue;if(r instanceof Y){for(const[e,o]of ye(r,n))t[e]=o;continue}const{get:e,set:o,exec:i,calc:s}=r;"function"!=typeof e?"function"==typeof s||s&&"object"==typeof s?t[n]={calc:s}:("function"==typeof i||s&&"object"==typeof s)&&(t[n]={exec:i}):t[n]="function"==typeof o?{get:e,set:o}:{get:e}}return t}(t)}#we;#Ee=Object.create(null);#xe=Object.create(null);store;#Se=null;#r=null;#Le=null;get#ye(){const e=this.#Le;if(e)return e;const t=Object.create(null,Object.getOwnPropertyDescriptors({...this.#Ee,...this.#we,...this.#xe})),n=this.store,r=this.#r,o=this.#Se;for(const[e,r]of ye(n))t[e]=r;for(const[e,o]of function*(e,t,n="",r="$"){if(!(e instanceof Q))return yield[`${n}${r}removable`,{get:()=>!1}],yield[`${n}${r}upMovable`,{get:()=>!1}],yield[`${n}${r}downMovable`,{get:()=>!1}],yield[`${n}${r}remove`,{exec:()=>{}}],yield[`${n}${r}upMove`,{exec:()=>{}}],void(yield[`${n}${r}downMove`,{exec:()=>{}}]);yield[`${n}${r}removable`,{get:()=>!e.readonly&&!e.disabled&&!!t.removable}],yield[`${n}${r}upMovable`,{get:()=>{if(e.readonly)return!1;if(e.disabled)return!1;const n=t.index;return"number"==typeof n&&!(n<=0)}}],yield[`${n}${r}downMovable`,{get:()=>{if(e.readonly)return!1;if(e.disabled)return!1;const n=t.index;return"number"==typeof n&&!(n>=e.size-1)}}],yield[`${n}${r}remove`,{exec:()=>{e.readonly||e.disabled||t.removable&&e.remove(Number(t.index))}}],yield[`${n}${r}upMove`,{exec:()=>{if(e.readonly)return;if(e.disabled)return;const n=t.index;"number"==typeof n&&(n<=0||e.move(n,n-1))}}],yield[`${n}${r}downMove`,{exec:()=>{if(e.readonly)return;if(e.disabled)return;const n=t.index;"number"==typeof n&&(n>=e.size-1||e.move(n,n+1))}}]}(r,n))t[e]=o;if(o)for(const e of Object.keys(o))t[`$${e}`]={get:()=>o[e]};return this.#Le=t,t}setStore(e,t,n){const r=new Ce(e,this);return t&&(r.#r=t),we(r.#Ee,e),n&&(r.#Se=n),r}child(e){if(!e)return this;const t=this.store.child(e);if(!t)return null;const n=new Ce(t,this);return we(n.#Ee,t),n}params(t,n,r,o){let i=this.store;if(!0===o)i=r.store;else if(o){const e=r.#ye[o],t=e?.get&&e.store;t&&(i=t)}if(0===Object.keys(t).length)return this;const s=new Ce(i,this);s.#r=this.#r,s.#Se=this.#Se;const l=s.#xe,a=s.#ye;for(const[o,i]of Object.entries(t)){const t=o in n?n[o]:null;if(t){const{name:n,calc:i,value:s}=t;if(n){const e=r.#ye[n];if(!e?.get)continue;if(!e.store){l[o]=a[o]=e;continue}for(const[t,n]of ye(e.store,o))l[t]=a[t]=n;continue}if("function"==typeof i){const t=new e.Signal.Computed((()=>i(r.getters)));l[o]=a[o]={get:()=>t.get()};continue}l[o]=a[o]={get:()=>s}}else{const{name:t,calc:n,value:r}=i;if("function"==typeof n){const t=s.getters;s.#Ce=null;const r=new e.Signal.Computed((()=>n(t)));l[o]=a[o]={get:()=>r.get()};continue}if(t){const e=a[t];if(!e?.get)continue;if(!e.store){l[o]=a[o]=e;continue}for(const[t,n]of ye(e.store,o))l[t]=a[t]=n;continue}l[o]=a[o]={get:()=>r}}}return s}setObject(e){const t=new Ce(this.store,this);return t.#Se=e,t}set(t){if(!t?.length)return this;const n=new Ce(this.store,this);n.#r=this.#r,n.#Se=this.#Se;const r=n.#xe,o=n.#ye;for(const{variable:i,name:s,calc:l,value:a,init:c}of t)if(c){const t=new e.Signal.State(a);if("function"==typeof l){const e=n.settable;n.#Oe=null,t.set(l(e))}else if(s){const e=o[s];if(!e?.get)continue;t.set(e.get())}r[i]=o[i]={get:()=>t.get(),set:e=>{t.set(e)}}}else if("function"!=typeof l)if(s){const e=o[s];if(!e)continue;if(!e.get||!e.store){r[i]=o[i]=e;continue}for(const[t,n]of ye(e.store,i))r[t]=o[t]=n}else r[i]=o[i]={get:()=>a};else{const t=n.getters;n.#Ce=null;const s=new e.Signal.Computed((()=>l(t)));r[i]=o[i]={get:()=>s.get()}}return n}#Ne=null;get all(){const e=this.#Ne;if(e)return e;const t={};for(const[e,n]of Object.entries(this.#ye))n.get?Object.defineProperty(t,e,{get:n.get,set:n.set,configurable:!0,enumerable:!0}):n.calc?Object.defineProperty(t,e,{value:n.calc,writable:!1,configurable:!0,enumerable:!1}):Object.defineProperty(t,e,{value:n.exec,writable:!1,configurable:!0,enumerable:!1});return Le(this.store,t),this.#Ne=t,t}#Oe=null;get settable(){const e=this.#Oe;if(e)return e;const t={};for(const[e,n]of Object.entries(this.#ye))n.get?Object.defineProperty(t,e,{get:n.get,set:n.set,configurable:!0,enumerable:!0}):n.calc&&Object.defineProperty(t,e,{value:n.calc,writable:!1,configurable:!0,enumerable:!1});return Le(this.store,t),this.#Oe=t,t}#Ce=null;get getters(){const e=this.#Ce;if(e)return e;const t={};for(const[e,n]of Object.entries(this.#ye))n.get?Object.defineProperty(t,e,{get:n.get,configurable:!0,enumerable:!0}):n.calc&&Object.defineProperty(t,e,{value:n.calc,writable:!1,configurable:!0,enumerable:!1});return Le(this.store,t),this.#Ce=t,t}}const Oe={width:"px",height:"px",top:"px",right:"px",bottom:"px",left:"px",border:"px","border-top":"px","border-right":"px","border-left":"px","border-bottom":"px","border-width":"px","border-top-width":"px","border-right-width":"px","border-left-width":"px","border-bottom-width":"px","border-radius":"px","border-top-left-radius":"px","border-top-right-radius":"px","border-bottom-left-radius":"px","border-bottom-right-radius":"px",padding:"px","padding-top":"px","padding-right":"px","padding-left":"px","padding-bottom":"px",margin:"px","margin-top":"px","margin-right":"px","margin-left":"px","margin-bottom":"px"};function Ne(e,t){let n=!!Array.isArray(t)&&Boolean(t[1]),r="";if("string"==typeof t)return r=t.replace(/!important\s*$/,""),r?(n=r!==t,[r,n?"important":void 0]):null;const o=Array.isArray(t)?t[0]:t;return"number"==typeof o||"bigint"==typeof o?r=o&&e in Oe?`${o}${Oe[e]}`:`${o}`:"string"==typeof o&&(r=o),r?[r,n?"important":void 0]:null}class Ae{#e=new Map;emit(e,...t){const n="number"==typeof e?String(e):e,r=this.#e;for(const e of[...r.get(n)||[]])e(...t)}listen(e,t){const n=t.bind(this),r=this.#e,o="number"==typeof e?String(e):e;let i=r.get(o);return i||(i=new Set,r.set(o,i)),i.add(n),()=>{i?.delete(n)}}}const $e={stop(e){e instanceof Event&&e.stopPropagation()},prevent(e){e instanceof Event&&e.preventDefault()},self(e){if(e instanceof Event)return e.target===e.currentTarget},enter(e){if(e instanceof KeyboardEvent)return"Enter"===e.key},tab(e){if(e instanceof KeyboardEvent)return"Tab"===e.key},esc(e){if(e instanceof KeyboardEvent)return"Escape"===e.key},space(e){if(e instanceof KeyboardEvent)return" "===e.key},backspace(e){if(e instanceof KeyboardEvent)return"Backspace"===e.key},delete(e){if(e instanceof KeyboardEvent)return"Delete"===e.key},delBack(e){if(e instanceof KeyboardEvent)return"Delete"===e.key||"Backspace"===e.key},"del-back"(e){if(e instanceof KeyboardEvent)return"Delete"===e.key||"Backspace"===e.key},insert(e){if(e instanceof KeyboardEvent)return"Insert"===e.key},repeat(e){if(e instanceof KeyboardEvent)return e.repeat},key(e,t){if(e instanceof KeyboardEvent){const n=e.code.toLowerCase().replace(/-/g,"");for(const e of t)if(n===e.toLowerCase().replace(/-/g,""))return!0;return!1}},main(e){if(e instanceof MouseEvent)return 0===e.button},auxiliary(e){if(e instanceof MouseEvent)return 1===e.button},secondary(e){if(e instanceof MouseEvent)return 2===e.button},left(e){if(e instanceof MouseEvent)return 0===e.button},middle(e){if(e instanceof MouseEvent)return 1===e.button},right(e){if(e instanceof MouseEvent)return 2===e.button},primary(e){if(e instanceof PointerEvent)return e.isPrimary},mouse(e){if(e instanceof PointerEvent)return"mouse"===e.pointerType},pen(e){if(e instanceof PointerEvent)return"pen"===e.pointerType},touch(e){if(e instanceof PointerEvent)return"touch"===e.pointerType},pointer(e,t){if(e instanceof PointerEvent){const n=e.pointerType.toLowerCase().replace(/-/g,"");for(const e of t)if(n===e.toLowerCase().replace(/-/g,""))return!0;return!1}},ctrl(e){if(e instanceof MouseEvent||e instanceof KeyboardEvent||e instanceof TouchEvent)return e.ctrlKey},alt(e){if(e instanceof MouseEvent||e instanceof KeyboardEvent||e instanceof TouchEvent)return e.altKey},shift(e){if(e instanceof MouseEvent||e instanceof KeyboardEvent||e instanceof TouchEvent)return e.shiftKey},meta(e){if(e instanceof MouseEvent||e instanceof KeyboardEvent||e instanceof TouchEvent)return e.metaKey},cmd(e){if(e instanceof MouseEvent||e instanceof KeyboardEvent||e instanceof TouchEvent)return e.ctrlKey||e.metaKey}};function je(e,t,n){const r=[];if(t)for(let o=e.shift();o;o=e.shift()){const e=o.indexOf(":"),i=e>=0?o.slice(0,e):o,s=e>=0?o.slice(e+1).split(":"):[],l=i.replace(/^-+/,""),a=(i.length-l.length)%2==1;let c=t[l]||l;if(n)switch(c){case"once":case"passive":case"capture":n[c]=!a;continue}"string"==typeof c&&(c=$e[c]),"function"==typeof c&&r.push([c,s,a])}return r}function Me(e,t,n){return r=>{const o=e.all;for(const[e,t,i]of n)if(e(r,t,o)===i)return;t(r,o)}}function Te(e){return"number"==typeof e||"bigint"==typeof e?String(e):"boolean"==typeof e?e?"":null:"string"==typeof e?e:null===(e??null)?null:String(e)}function ke(e){return null===(e??null)?"":String(e)}function Ie(e,t){if(e instanceof HTMLInputElement&&"checked"===t)switch(e.type.toLowerCase()){case"checkbox":case"radio":return Boolean}if((e instanceof HTMLSelectElement||e instanceof HTMLInputElement||e instanceof HTMLTextAreaElement)&&"value"===t)return ke;if(e instanceof HTMLDetailsElement&&"open"===t)return Boolean;if(e instanceof HTMLMediaElement){if("muted"===t)return Boolean;if("paused"===t)return Boolean;if("currentTime"===t)return!0;if("playbackRate"===t)return!0;if("volume"===t)return!0}return!1}const Be={input:{attrs:{$min:(e,t)=>{t.min=e},$max:(e,t)=>{t.max=e},$step:(e,t)=>{t.step=e},$placeholder:(e,t)=>{t.placeholder=e},$disabled:(e,t)=>{t.disabled=e},$readonly:(e,t)=>{t.readOnly=e},$required:(e,t)=>{t.required=e},$value:(e,t)=>{switch(t.type){case"checkbox":case"radio":t.checked=Boolean(e)}t.value=ke(e)}},events:{$value:["input",(e,t)=>{switch(t.type){case"checkbox":case"radio":return t.checked;case"number":return Number(t.value)}return t.value}]}},textarea:{attrs:{$placeholder:(e,t)=>{t.placeholder=e},$disabled:(e,t)=>{t.disabled=e},$readonly:(e,t)=>{t.readOnly=e},$required:(e,t)=>{t.required=e},$value:(e,t)=>{t.value=ke(e)}},events:{$value:["input",(e,t)=>t.value]}},select:{attrs:{$disabled:(e,t)=>{t.disabled=e},$required:(e,t)=>{t.required=e},$value:(e,t)=>{t.value=ke(e)}},events:{$value:["change",(e,t)=>t.value]}}};function Fe(e,t,n){const r=document.createElement(t,{is:n||void 0}),{watch:o,props:i}=e;return["input","textarea","select"].includes(t.toLowerCase())&&e.relate(r),e.listen("init",(({events:n})=>{const s=Be[t.toLowerCase()],l=s?.attrs||{},a=s?.events||{};for(const[e,t,o]of n)if("$"!==e[0])r.addEventListener(e,t,o);else{const n=a[e];if(n){const[e,i]=n;r.addEventListener(e,(e=>t(i(e,r))),o)}}if(i)for(const[t,n]of Object.entries(e.attrs))if(o(t,(e=>{if(i.has(t))r[t]=e;else{const n=Te(e);null==n?r.removeAttribute(t):r.setAttribute(t,n)}})),i.has(t))r[t]=n;else{const e=Te(n);null!==e&&r.setAttribute(t,e)}else for(const[t,n]of Object.entries(e.attrs)){if(r instanceof HTMLInputElement&&"type"===t.toLocaleLowerCase()){const e=Te(n);null!==e&&r.setAttribute(t,e);continue}if("$hidden"===t){n&&(r.hidden=n),o(t,(e=>{r.hidden=e}));continue}if("$"===t[0]){const e=l[t];e&&(e(n,r),o(t,(t=>e(t,r))));continue}const e=Ie(r,t);if("function"==typeof e){r[t]=e(n),o(t,(n=>{r[t]=e(n)}));continue}if(e){r[t]=n,o(t,(e=>{r[t]=e}));continue}let i=Te(n);null!==i&&r.setAttribute(t,i),o(t,(e=>{const n=Te(e);null===n?r.removeAttribute(t):r.setAttribute(t,n)}))}})),r}function Pe(e){return null===(e??null)?"":String(e)}function Re(e,t,n,r,o){if(!o){const o=e.insertBefore(document.createTextNode(""),t),i=n.watch(r,(e=>o.textContent=Pe(e)));return()=>{o.remove(),i()}}const i=e.insertBefore(document.createComment(""),t),s=e.insertBefore(document.createComment(""),t),l=document.createElement("div");function a(){for(let e=i.nextSibling;e&&e!==s;e=i.nextSibling)e.remove()}const c=n.watch(r,(t=>{a(),function(t){l.innerHTML=t;for(let t=l.firstChild;t;t=i.firstChild)e.insertBefore(t,s)}(Pe(t))}));return()=>{c(),a(),i.remove(),s.remove()}}function Ue(e,t){if("bigint"==typeof e&&"bigint"==typeof t)return Number(e-t);if(!("number"!=typeof e&&"bigint"!=typeof e||"number"!=typeof t&&"bigint"!=typeof t))return Number(e)-Number(t);const n=String(e),r=String(t);return n>r?1:n<r?-1:0}const qe=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);function De(e,t,n,r,o){const i=e.children;if(!i.length)return()=>{};const s=t.insertBefore(document.createComment(""),n);let l=null,a=()=>{};const c=be((()=>i.find((([,e])=>!e||r.exec(e)))||null),(e=>{if(e===l)return;l=e,a(),a=()=>{};const t=e?.[0];t&&(a=o(t.children,t.vars,t.templates))}),!0);let u=!1;return()=>{u||(u=!0,c(),a(),a=()=>{},s.remove())}}function Ve(t,n,r,o,i,s,l,a,c){const u=t.bind,d=[...s,t.name],f=c?.(d);if(c&&!f)return()=>{};const{context:p,handler:h}=function(t,n,r,o){const i="string"==typeof t?t:t.tag,{attrs:s,events:l}="string"!=typeof t&&t||{attrs:null,events:null};let a=!1;const c=new e.Signal.State(!1);let u=!1;const d=new e.Signal.State(!1),f=Object.create(null),p=Object.create(null),h=new Set,g=[],m=new Ae;return{context:{events:g,props:s?new Set(Object.entries(s).filter((([,e])=>e.isProp)).map((([e])=>e))):null,attrs:p,watch(e,t){if(a)return()=>{};const n=f[e];if(!n)return()=>{};let r=n.get();const o=be((()=>n.get()),(n=>{const o=r;r=n,t(n,o,e)}),!0);return h.add(o),()=>{h.delete(o),o()}},relate(e){if(!r||!o||a)return()=>{};try{const t=o(r,e);return"function"!=typeof t?()=>{}:(h.add(t),()=>{h.delete(t),t()})}catch{return()=>{}}},get destroyed(){return c.get()},get init(){return d.get()},listen:(e,t)=>m.listen(e,t)},handler:{tag:i,set(t,n){if(s&&!(t in s))return;let r=f[t];if(r)return void r.set(n);const o=new e.Signal.State(n);f[t]=o,Object.defineProperty(p,t,{configurable:!0,enumerable:!0,get:o.get.bind(o)})},addEvent(e,t){if("function"!=typeof t)return;const[r,...o]=e.split(".").filter(Boolean),i=l?l[r].filters:{};if(!i)return;const s={},a=je(o,i,s);g.push([r,Me(n,t,a),s])},destroy(){if(!a){a=!0,c.set(!0);for(const e of h)e();m.emit("destroy")}},mount(){u||(u=!0,d.set(!0),m.emit("init",{events:g}))}}}}(f||t.name,o,o.getStore(u),a),g=f?.attrs,m=g?function(e,t,n,r,o){let i=new Set;for(const[s,l]of Object.entries(r)){if("class"===s||"style"===s)continue;if(s in n){const r=n[s],{name:o,calc:a,value:c}=n[s];if(!o&&!a){e.set(s,c);continue}l.immutable&&e.set(s,t.exec(r)),i.add(t.watch(r,(t=>e.set(s,t))));continue}const r=l.bind;if(!o||!r){e.set(s,l.default);continue}if("string"==typeof r){const n=t.bind(o,r,(t=>e.set(s,t)));n?i.add(n):e.set(s,l.default);continue}if(!Array.isArray(r)){e.set(s,l.default);continue}const[a,c,u]=r;if(!a||"function"!=typeof c)continue;if(!u){const n=!0===o?"":o;i.add(t.watch({name:n},(t=>e.set(s,t)))),e.addEvent(a,((...e)=>{t.all[n]=c(...e)}));continue}const d=t.bind(o,"state",(t=>e.set(s,t)));if(!d)continue;i.add(d);const f=t.bindSet(o,"state");f&&e.addEvent(a,((...e)=>{f(c(...e))}))}return()=>{const e=i;i=new Set;for(const t of e)t()}}(h,o,t.attrs,g,u):function(e,t,n){const r=e.tag;let o=new Set;for(const[i,s]of Object.entries(n)){if("class"===i||"style"===i)continue;const{name:n,calc:l,value:a}=s;if(n||l)if("string"!=typeof r||"input"!==r.toLocaleLowerCase()||"type"!==i.toLocaleLowerCase())o.add(t.watch(s,(t=>e.set(i,t))));else{const n=t.exec(s);e.set(i,n)}else e.set(i,a)}return()=>{const e=o;o=new Set;for(const t of e)t()}}(h,o,t.attrs);for(const[e,n]of Object.entries(t.events)){const t=o.getEvent(n);t&&h.addEvent(e,t)}const b=function(e,t,n){if(!n)return()=>{};let r=new Set;for(const[o,i]of Object.entries(t.bindAll(n)||{}))"function"==typeof i&&r.add(i((t=>e.set(o,t))));for(const[r,o]of Object.entries(t.bindEvents(n)||{}))e.addEvent(r,(e=>o(e)));return()=>{const e=r;r=new Set;for(const t of e)t()}}(h,o,u),v=f?"function"==typeof f.tag?f.tag(p):Fe(p,f.tag,f.is):Fe(p,t.name,t.is),y=Array.isArray(v)?v[0]:v,w=Array.isArray(v)?v[1]:y;n.insertBefore(y,r);const E=w?He(t.children||[],w,null,o,i,s,l,a,c):()=>{},x=function(e,t,n,r){if(!(e instanceof Element))return()=>{};r&&(e.className+=" "+t.exec(r));let o=new Set;for(const[r,i]of Object.entries(n))i.value?e.classList.add(r):o.add(be((()=>Boolean(t.exec(i))),(t=>{t?e.classList.add(r):e.classList.remove(r)}),!0));return()=>{if(!o)return;const e=o;o=null;for(const t of e)t()}}(y,o,t.classes,t.attrs.class),S=function(e,t,n,r){if(!(e instanceof HTMLElement||e instanceof SVGElement))return()=>{};if(r){const n=[e.getAttribute("style")||"",t.exec(r)||""].filter(Boolean).join(";");n&&e.setAttribute("style",n)}let o=new Set;for(const[r,i]of Object.entries(n))o.add(be((()=>Ne(r,t.exec(i))),(t=>{t?e.style.setProperty(r,...t):e.style.removeProperty(r)}),!0));return()=>{if(!o)return;const e=o;o=null;for(const t of e)t()}}(y,o,t.styles,t.attrs.style);h.mount();const L=function(t,n,r,o,i,s){let l=new Set;for(const[a,{attrs:c,value:u,events:d,bind:f}]of Object.entries(n)){if(!qe(o,a))continue;const p=o[a];if("function"!=typeof p)continue;let h=!1;const g=new e.Signal.State(!1),m=p?.events,b=[],v=Object.create(null),y=new Set,w=new Ae;function E(e,t){if("function"!=typeof t)return;const[n,...o]=e.split(".").filter(Boolean),i=m?m[n].filters:{};if(!i)return;const s={},l=je(o,i,s);b.push([n,Me(r,t,l),s])}function x(){if(!h){h=!0,g.set(!0);for(const e of y)e();w.emit("destroy")}}l.add(x);for(const[L,C]of Object.entries(c)){const O=r.get(C);O&&Object.defineProperty(v,L,{...O,configurable:!0,enumerable:!0})}for(const[N,A]of Object.entries(d)){const $=r.getEvent(A);$&&E(N,$)}if(f){for(const[j,M]of Object.entries(r.getBindAll(f)||{}))Object.defineProperty(v,j,{...M,configurable:!0,enumerable:!0});for(const[T,k]of Object.entries(r.bindEvents(f)||{}))E(T,(e=>k(e)))}const S={get value(){return null},events:b,attrs:v,watch(e,t){if(h)return()=>{};let n=v[e];const r=be((()=>v[e]),(r=>{const o=n;n=r,t(r,o,e)}),!0);return y.add(r),()=>{y.delete(r),r()}},get destroyed(){return g.get()},listen:(e,t)=>w.listen(e,t),root:i,slot:s,tag:t};if(u){const I=r.get(u);I&&Object.defineProperty(S,"value",{...I,configurable:!0,enumerable:!0})}p(S)}return()=>{const e=l;l=new Set;for(const t of e)t()}}(h.tag,t.enhancements,o,l,y,w);return()=>{L(),h.destroy(),y.remove(),m(),E(),b(),x(),S()}}function _e(e,t,n){if(!n)return t;const r=Object.entries(n);if(!r.length)return t;const o=Object.create(t);for(const[t,n]of r)o[t]=[n,e];return o}function We(t,n,r,o,i,s,l,a,c){if("string"==typeof t){const e=document.createTextNode(t);return n.insertBefore(e,r),()=>e.remove()}const u=o.set(t.vars),d=_e(u,i,t.templates);if("divergent"===t.type)return De(t,n,r,u,((e,t,o)=>{const d=u.set(t),f=_e(d,i,o);return He(e,n,r,d,f,s,l,a,c)}));if("value"===t.type){const e=u.child(t.name);return e?He(t.children,n,r,e,d,s,l,a,c):()=>{}}if("enum"===t.type){const o=u.enum(t.value),i=(e,r)=>He(t.children,n,e,r,d,s,l,a,c);return o instanceof Q?function(t,n,r,o,i){const s=t.insertBefore(document.createComment(""),n);let l=new Map;function a(e){for(const[t,n,r]of e.values())r(),t.remove(),n.remove()}const c=new e.Signal.State(0),u=be((()=>r.children),(function(e){if(!s.parentNode)return;let n=s.nextSibling;const u=l;l=new Map,c.set(e.length);for(let s of e){const e=u.get(s);if(!e){const e=t.insertBefore(document.createComment(""),n),a=t.insertBefore(document.createComment(""),n),u=i(a,o.setStore(s,r,{get count(){return c.get()},get key(){return s.index},get index(){return s.index},get item(){return s.value}}));l.set(s,[e,a,u]);continue}if(u.delete(s),l.set(s,e),n===e[0]){n=e[1].nextSibling;continue}let a=e[0];for(;a&&a!==e[1];){const e=a;a=a.nextSibling,t.insertBefore(e,n)}t.insertBefore(e[1],n)}a(u)}),!0);return()=>{s.remove(),a(l),u()}}(n,r,o,u,i,t.sort):o instanceof G?function(e,t,n,r,o,i){const s=[],l=[...n],a=l.length,c=i?l.map((([e,t])=>[e,t,r.setStore(t,n).exec(i)])).sort((([,,e],[,,t])=>Ue(e,t))).map((([e,t],n)=>[e,t,n])):l.map((([e,t],n)=>[e,t,n]));for(const[e,i,l]of c)s.push(o(t,r.setStore(i,n,{get count(){return a},get key(){return e},get index(){return l},get item(){return i.value}})));return()=>{for(const e of s)e()}}(0,r,o,u,i,t.sort):"function"==typeof o?function(t,n,r,o,i,s){const l=new e.Signal.Computed((()=>{const e=r();if("number"==typeof e){const t=Math.floor(e);return t?Array(t).fill(0).map(((e,t)=>[t+1,t])):[]}return e&&"object"==typeof e?Array.isArray(e)?e.map(((e,t)=>[e,t])):Object.entries(e).map((([e,t])=>[t,e])):[]})),a=s?new e.Signal.Computed((()=>{const e=l.get();return e.map((([t,n],r)=>[n,t,o.setObject({get count(){return e.length},get key(){return t},get item(){return n},get index(){return r}}).exec(s)])).sort((([,,e],[,,t])=>Ue(e,t))).map((([e,t],n)=>[t,n,e]))})):new e.Signal.Computed((()=>l.get().map((([e,t],n)=>[t,n,e])))),c=t.insertBefore(document.createComment(""),n);let u=[];function d(e){for(const[t,n,r]of e)r(),t.remove(),n.remove()}const f=new e.Signal.State(0),p=be((()=>a.get()),(function(n){if(!c.parentNode)return;let r=c.nextSibling;const s=u;u=[],f.set(n.length);for(const[l,a,c]of n){const n=s.findIndex((e=>e[3]===c)),[d]=n>=0?s.splice(n,1):[];if(!d){const n=t.insertBefore(document.createComment(""),r),s=t.insertBefore(document.createComment(""),r),d=new e.Signal.State(l),p=new e.Signal.State(a),h=i(s,o.setObject({get count(){return f.get()},get key(){return c},get item(){return d.get()},get index(){return p.get()}}));u.push([n,s,h,c,d,p]);continue}if(u.push(d),d[4].set(l),d[5].set(a),r===d[0]){r=d[1].nextSibling;continue}let p=d[0];for(;p&&p!==d[1];){const e=p;p=p.nextSibling,t.insertBefore(e,r)}t.insertBefore(d[1],r)}d(s)}),!0);return()=>{c.remove(),d(u),p()}}(n,r,o,u,i,t.sort):()=>{}}if("content"===t.type)return Re(n,r,u,t.value,t.html);if("template"===t.type){const e=d[t.template];if(!e)return()=>{};const[o,f]=e,p=f.params(o.params,t.attrs,u,t.bind),h=_e(p,i,o.templates);return He(o.children,n,r,p,h,s,l,a,c)}return"fragment"===t.type?He(t.children,n,r,u,d,s,l,a,c):Ve(t,n,r,u,d,s,l,a,c)}function He(e,t,n,r,o,i,s,l,a){const c=e.map((e=>We(e,t,n,r,o,i,s,l,a)));let u=!1;return()=>{if(!u){u=!0;for(const e of c)e()}}}function ze(e){return t=>(!t.type||"field"===t.type)&&t.field===e}function Ke(e,t,n,r,o,i,s){if(!r?.signal?.aborted){if(n instanceof Element){const l=n.tagName.toLowerCase();if(!n.parentNode)return;if("nl-form-field"===l){const d=n.getAttribute("name")||"",f=n.getAttribute("mode")||"",p=n.getAttribute("renderer")||"",h=r?.editable&&!n.hasAttribute("non-editable"),g=d?e.child(d):e;if(!g)return;let m=null;switch(f){case"grid":{const y=d?o?.fields?.find(ze(d))||g.layout:{...o,html:""};m=ut(g,t,y,{...r,editable:h});break}default:m=t(g,p||o.renderer,{...r,editable:h})}if(!m){const w=n.getAttribute("placeholder")||"";return void n.replaceWith(document.createTextNode(w))}const b=n.getAttribute("class")||"";b&&m.setAttribute("class",[m.getAttribute("class")||"",b].filter(Boolean).join(" "));const v=n.getAttribute("style")||"";return v&&m.setAttribute("style",[m.getAttribute("style")||"",v].filter(Boolean).join(" ")),void n.replaceWith(m)}if("nl-form-button"===l){const E=document.createElement("button"),x=n.getAttribute("class")||"",S=n.getAttribute("style")||"";x&&E.setAttribute("class",x),S&&E.setAttribute("style",S),E.classList.add("NeeloongForm-item-button");const L=n.getAttribute("click")||"",C=r?.call;L&&"function"==typeof C&&E.addEventListener("click",(t=>C(L,t,e,r)));for(const O of[...n.childNodes])E.appendChild(O);return void n.replaceWith(E)}const a=n.getAttribute("nl-form-field");if(a){const N=a.endsWith("[]"),A=N?a.slice(0,a.length-2):a,$=A?e.child(A):e;if(!$)return;n.removeAttribute("nl-form-field");const j=A?o.fields?.find(ze(A))||$.layout:{...o,html:""};if(!N)return void Ke($,t,n,r,j,i);if(!($ instanceof Q))return void n.remove();const M=n.parentElement;if(!M)return void n.remove();const T=M.insertBefore(document.createComment(""),n)||null;n.remove();let k=new Map;function I(e){for(const[t,n]of e.values())t instanceof Element&&t.remove(),n.abort()}let B=-1;const F=e=>{if(B<0)return;const t=e?Number(e.index):$.children.length;t<0||B<0||B===t||$.move(B,t)&&(B=t)};return be((()=>$.children),(e=>{let o=T.nextSibling;const i=k;k=new Map;for(const s of e){const e=i.get(s);if(e)i.delete(s),k.set(s,e),o!==e[0]?M.insertBefore(e[0],o):o=o.nextSibling;else{const e=new AbortController,i=M.insertBefore(n.cloneNode(!0),o);Ke(s,t,i,{...r,signal:r?.signal?AbortSignal.any([r?.signal,e.signal]):e.signal},j,i),i.addEventListener("dragenter",(()=>{F(s)})),i.addEventListener("dragstart",(e=>{e.target===e.currentTarget&&(B=Number(s.index))})),i.addEventListener("dragend",(()=>{B=-1})),k.set(s,[i,e])}}I(i)}),!0,r?.signal),void r?.signal?.addEventListener("abort",(()=>{T.remove(),I(k)}),{once:!0})}if(null!==n.getAttribute("nl-form-remove")){const P=e.parent;P instanceof Q&&n.addEventListener("click",(()=>{P.remove(Number(e.index))}))}null!==n.getAttribute("nl-form-move")&&i instanceof HTMLElement&&n.addEventListener("pointerdown",(({pointerId:e})=>{i.draggable=!0;const t=n=>{n.pointerId===e&&(i.draggable=!1,window.removeEventListener("pointerup",t,{capture:!0}),window.removeEventListener("pointercancel",t,{capture:!0}))};window.addEventListener("pointerup",t,{capture:!0}),window.addEventListener("pointercancel",t,{capture:!0})}));const c=n.getAttribute("nl-form-add");if(c){const R=e.child(c);R instanceof Q&&n.addEventListener("click",(()=>{R.add({})}))}const u=r?.call;for(const U of[...n.getAttributeNames()]){const q=U.indexOf(":");if(q<0)continue;const D=U.slice(0,q).toLowerCase(),V=U.slice(q+1);if("nl-form-field"===D){const _=n.getAttribute(U),W=_?e.child(_):e;if(!W)continue;me((()=>{try{n.setAttribute(V,W.value)}catch{}}),r?.signal)}else if("nl-form-event"===D&&"function"==typeof u){const H=n.getAttribute(U);if(!H)continue;try{n.addEventListener(V,(t=>u(H,t,e,r)))}catch{}}}}if(n instanceof Element||n instanceof DocumentFragment)for(const z of[...n.children])Ke(e,t,z,r,o,i)}}function Ye(e,t){if(!e)return document.createElement("template").content;if("string"!=typeof e)return e.cloneNode(!0);const n=document.createElement("template");return n.innerHTML=t?t(e):e,n.content}function Ge(e,t,n,r){if(r?.signal?.aborted)return null;const o=n.html;if(o){const i=Ye(o,r?.sanitizeHtml);return Ke(e,t,i,r,n),i}return t(e,n.renderer,r)}function Qe(e,t,n,{columns:r,deletable:o,remove:i,dragenter:s,dragstart:l,dragend:a},c){const u=document.createElement("tbody");u.addEventListener("dragenter",(()=>{s()})),u.addEventListener("dragstart",(e=>{e.target===e.currentTarget&&l()})),u.addEventListener("dragend",a);const d=u.appendChild(document.createElement("tr"));let f=()=>{};const p=[];if(r.find((e=>e.actions?.includes("trigger")))){const o=ut(e,t,n,c);if(o){const e=u.appendChild(document.createElement("tr")),t=e.appendChild(document.createElement("td"));t.colSpan=r.length,t.appendChild(o),e.hidden=!0,f=()=>{if(e.hidden){e.hidden=!1;for(const e of p)e.classList.remove("NeeloongForm-table-line-open"),e.classList.add("NeeloongForm-table-line-close")}else{e.hidden=!0;for(const e of p)e.classList.remove("NeeloongForm-table-line-close"),e.classList.add("NeeloongForm-table-line-open")}}}}function h({pointerId:e}){function t(n){n.pointerId===e&&u&&(u.draggable=!1,window.removeEventListener("pointerup",t,{capture:!0}),window.removeEventListener("pointercancel",t,{capture:!0}))}u.draggable=!0,window.addEventListener("pointerup",t,{capture:!0}),window.addEventListener("pointercancel",t,{capture:!0})}for(const n of r){const{actions:r,field:s,pattern:l,editable:a}=n;if(!r?.length){const r=d.appendChild(document.createElement("td")),o=s&&e.child(s);if(o){const e=Ge(o,t,n,{...c,editable:c?.editable&&!1!==a});e&&r.appendChild(e)}continue}const u=d.appendChild(document.createElement("th"));u.classList.add("NeeloongForm-table-line-handle");for(const t of r)switch(t){case"trigger":{const e=u.appendChild(document.createElement("button"));e.classList.add("NeeloongForm-table-line-open"),p.push(e),e.addEventListener("click",f);continue}case"move":{if(!c?.editable)continue;const t=u.appendChild(document.createElement("button"));t.classList.add("NeeloongForm-table-move"),t.addEventListener("pointerdown",h),be((()=>e.readonly||e.disabled),(e=>{t.disabled=e}),!0,c.signal);continue}case"remove":{if(!c?.editable)continue;const e=u.appendChild(document.createElement("button"));e.classList.add("NeeloongForm-table-remove"),e.addEventListener("click",i),be((()=>!o.get()),(t=>{e.disabled=t}),!0,c.signal);continue}case"serial":u.appendChild(document.createElement("span")).classList.add("NeeloongForm-table-serial");continue}}return u}function Xe(e,t,n,r){const o=Object.entries(e.type||{}).filter((([e,t])=>"object"!=typeof t?.type)).map((([e,{width:t,label:n}])=>({field:e,width:t,label:n}))),i=t.columns;if(Array.isArray(i)){const e=new Map(o.map((e=>[e.field,e]))),t=i.map((t=>{if(!t)return null;if("number"==typeof t)return{placeholder:t};if("string"==typeof t)return e.get(t)||null;if("object"!=typeof t)return null;if(Array.isArray(t)){const e=new Set(n),r=t.filter((t=>e.delete(t)));return r?{actions:r}:null}const{action:r,actions:o,field:i,placeholder:s,pattern:l,width:a,label:c,editable:u}=t;if(i){const t=e.get(i);if(t)return{field:i,placeholder:s,width:a,label:c||t.label,editable:u}}const d=new Set(n),f=[r,o].flat().filter((e=>e&&d.delete(e)));return f.length?{actions:f,width:a,label:c,editable:u}:l?{pattern:l,placeholder:s,width:a,label:c,editable:u}:s||a?{placeholder:s,width:a,label:c,editable:u}:null})).filter(Boolean);if(t.length)return t}return r(o)}function Ze(e,t,n,r,o,i){const s=t.appendChild(document.createElement("tr"));for(const{action:t,actions:l,width:a,label:c}of n){const n=s.appendChild(document.createElement("th"));if(a&&n.setAttribute("width",`${a}`),![t,l].flat().includes("add")){n.innerText=c||"";continue}if(!i)continue;const u=n.appendChild(document.createElement("button"));u.addEventListener("click",r),u.classList.add("NeeloongForm-table-add"),be((()=>!o.get()),(e=>{u.disabled=e}),!0,e)}}function Je(e,t){const{colStart:n,colSpan:r,colEnd:o,rowStart:i,rowSpan:s,rowEnd:l}=t;e.classList.add("NeeloongForm-item-grid"),n&&o?e.style.gridColumn=`${n} / ${o}`:n&&r?e.style.gridColumn=`${n} / span ${r}`:r&&(e.style.gridColumn=`span ${r}`),i&&l?e.style.gridRow=`${i} / ${l}`:i&&s?e.style.gridRow=`${i} / span ${s}`:s&&(e.style.gridRow=`span ${s}`)}function et(e,t){const n=document.createElement("div"),r=n.appendChild(document.createElement("div"));r.classList.add("NeeloongForm-item-label"),me((()=>r.innerText=t?.label||""),e);const o=n.appendChild(document.createElement("div"));o.classList.add("NeeloongForm-item-content");const i=n.appendChild(document.createElement("div"));i.classList.add("NeeloongForm-item-description"),me((()=>i.innerText=t?.description||""),e);const s=n.appendChild(document.createElement("div"));return s.classList.add("NeeloongForm-item-error"),me((()=>s.innerText=t?.error||""),e),[n,o]}function tt(e,t,n,r,o){function i(r){if(!r)return null;if(!o)switch(r){case"inline":{const[r,o]=et(e,n);return Je(r,t),[r,o]}case"base":{const e=document.createElement("div");return Je(e,t),[e,e]}}switch(r){case"block":return et(e,n);case"fieldset":{const t=document.createElement("fieldset"),r=t.appendChild(document.createElement("legend"));return me((()=>r.innerText=n?.label||""),e),[t,t]}case"collapse":{const t=document.createElement("details");t.open=!0;const r=t.appendChild(document.createElement("summary"));return me((()=>r.innerText=n?.label||""),e),[t,t]}}return null}const[s,l]=i(t.cell)||i(r)||et(e,n);return s.classList.add("NeeloongForm-item"),me((()=>{n?.error?s.classList.add("NeeloongForm-item-errored"):s.classList.remove("NeeloongForm-item-errored")}),e),me((()=>{n?.required?s.classList.add("NeeloongForm-item-required"):s.classList.remove("NeeloongForm-item-required")}),e),[s,l]}function nt(e,t,n,r,o,{columns:i,addable:s,deletable:l,remove:a,dragenter:c,dragstart:u,dragend:d,addNode:f,drop:p,createDetails:h},g){const m=document.createElement("div");m.addEventListener("dragstart",(e=>{e.target===e.currentTarget&&u()})),m.addEventListener("dragend",d),m.classList.add("NeeloongForm-tree-item"),me((()=>{t.get()===e?m.classList.add("NeeloongForm-tree-current"):m.classList.remove("NeeloongForm-tree-current")}),g?.signal),me((()=>{const e=o.get().level;m.style.setProperty("--NeeloongForm-tree-level",`${e}`)}),g?.signal),me((()=>{m.hidden=o.get().hidden}),g?.signal);const b=[];function v({pointerId:e}){function t(n){n.pointerId===e&&m&&(m.draggable=!1,window.removeEventListener("pointerup",t,{capture:!0}),window.removeEventListener("pointercancel",t,{capture:!0}))}m.draggable=!0,window.addEventListener("pointerup",t,{capture:!0}),window.addEventListener("pointercancel",t,{capture:!0})}function y(){const e=o.get();e.collapsed=!e.collapsed}let w=()=>{};function E(){w=h(e)}function x(){t.get()!==e?w=h(e):w()}const S="move"===r.mainMethod?v:null,L=S?null:"collapse"===r.mainMethod?y:"trigger"===r.mainMethod?x:E,C=m.appendChild(document.createElement("div"));C.classList.add("NeeloongForm-tree-line");const O=m.appendChild(document.createElement("div"));O.classList.add("NeeloongForm-tree-drop");const N=m.appendChild(document.createElement("div"));N.classList.add("NeeloongForm-tree-drop-children"),O.addEventListener("dragover",(e=>e.preventDefault())),N.addEventListener("dragover",(e=>e.preventDefault())),O.addEventListener("drop",(()=>p())),N.addEventListener("drop",(()=>p(!0))),me((()=>{O.hidden=N.hidden=!o.get().droppable}),g?.signal);let A=()=>{};O.addEventListener("dragenter",(()=>A=c(O))),N.addEventListener("dragenter",(()=>A=c(N))),O.addEventListener("dragleave",(()=>A())),N.addEventListener("dragleave",(()=>A()));for(const t of i){const{actions:r,pattern:o,placeholder:i,width:c,field:u}=t;if(r?.length)for(const t of r)switch(t){case"trigger":{const e=C.appendChild(document.createElement("button"));e.classList.add("NeeloongForm-tree-trigger"),e.addEventListener("click",x);continue}case"open":{const e=C.appendChild(document.createElement("button"));e.classList.add("NeeloongForm-tree-open"),e.addEventListener("click",E);continue}case"collapse":{const e=C.appendChild(document.createElement("button"));e.classList.add("NeeloongForm-tree-collapse"),e.addEventListener("click",y),b.push(e);continue}case"move":{if(!g?.editable)continue;const t=C.appendChild(document.createElement("button"));t.classList.add("NeeloongForm-tree-move"),t.addEventListener("pointerdown",v),be((()=>e.readonly||e.disabled),(e=>{t.disabled=e}),!0,g.signal);continue}case"add":{if(!g?.editable)continue;const e=C.appendChild(document.createElement("button"));e.classList.add("NeeloongForm-tree-add"),e.addEventListener("click",f),be((()=>!s.get()),(t=>{e.disabled=t}),!0,g.signal);continue}case"remove":{if(!g?.editable)continue;const e=C.appendChild(document.createElement("button"));e.classList.add("NeeloongForm-tree-remove"),e.addEventListener("click",a),be((()=>!l.get()),(t=>{e.disabled=t}),!0,g.signal);continue}case"serial":C.appendChild(document.createElement("span")).classList.add("NeeloongForm-tree-serial");continue}else{const r=C.appendChild(document.createElement("div"));if(r.classList.add("NeeloongForm-tree-cell"),L&&r.addEventListener("click",L),S&&r.addEventListener("pointerdown",S),u){const o=e.child(u);if(!o)continue;const i=Ge(o,n,t,{...g,editable:!1});i&&r.appendChild(i);continue}"number"==typeof i&&(r.style.flex=`${i}`),"number"==typeof c&&(r.style.width=`${c}px`)}}return me((()=>{const e=o.get();if(e.hasChildren)if(e.collapsed)for(const e of b)e.classList.remove("NeeloongForm-tree-collapse-close"),e.classList.add("NeeloongForm-tree-collapse-open"),e.disabled=!1;else for(const e of b)e.classList.remove("NeeloongForm-tree-collapse-open"),e.classList.add("NeeloongForm-tree-collapse-close"),e.disabled=!1;else for(const e of b)e.classList.remove("NeeloongForm-tree-collapse-close"),e.classList.remove("NeeloongForm-tree-collapse-open"),e.disabled=!0}),g?.signal),m}const rt=new Set(["vertical-lr","vertical-rl","sideways-lr","sideways-rl"]);function ot(e){const t=getComputedStyle(e),n=t.writingMode?.toLowerCase();return[rt.has(n),"rtl"===t.direction.toLowerCase()!=("sideways-lr"===n)]}function it(t,n,r,o,i){const s=new e.Signal.Computed((()=>{const e=t.child(i);return e?Math.max(0,Math.floor(e.value?.[o])||0):0})),l=new e.Signal.Computed((()=>{if(!t.child(i))return-1;const e=s.get();if(!e)return-1;for(let t=i-1;t>=0;t--)if(e>n[t]?.levelValue)return t;return-1})),a=new e.Signal.Computed((()=>{const e=t.children,n=e[i+1];if(!n)return!1;if(!e[i])return!1;const r=s.get();return Math.floor(n.child(o)?.value)>r})),c=new e.Signal.Computed((()=>{if(r.get()===i)return!1;const e=l.get(),t=n[e];return!t||t.droppable})),u=new e.Signal.Computed((()=>{const e=l.get(),t=n[e];return t?t.level+1:0})),d=new e.Signal.State(!1),f=new e.Signal.Computed((()=>{const e=l.get(),t=n[e];return!!t&&(t.collapsed||t.hidden)})),p=new e.Signal.Computed((()=>{const e=l.get(),t=n[e];if(!t)return new Set;const r=new Set(t.parents);return r.add(e),r}));return{get level(){return u.get()},get levelValue(){return s.get()},get collapsed(){return d.get()},set collapsed(e){d.set(e)},get hidden(){return f.get()},get hasChildren(){return a.get()},get droppable(){return c.get()},get parents(){return p.get()}}}function st(t,n,r,o){if(o?.signal?.aborted)return null;const i=Xe(t,r,["add","move","trigger","remove","serial","open","collapse"],(e=>[{actions:["collapse","move"]},e[0],{actions:["add","remove"]}])),s=document.createElement("div");s.classList.add("NeeloongForm-tree");const l=s.appendChild(document.createElement("div"));l.classList.add("NeeloongForm-tree-main");const a=s.appendChild(document.createElement("div"));a.classList.add("NeeloongForm-tree-splitter");const c=s.appendChild(document.createElement("div"));c.classList.add("NeeloongForm-tree-details"),a.hidden=!0,c.hidden=!0;let u=null,d=0;function f(){const e=u;null!==e&&(u=null,a.releasePointerCapture(e))}a.addEventListener("pointerdown",(e=>{const{pointerId:t}=e;if([null,t].includes(u))switch(u=t,a.setPointerCapture(t),ot(a).map(((e,t)=>e?2**t:0)).reduce(((e,t)=>e+t))){case 0:d=-e.offsetX;break;case 1:d=-e.offsetY;break;case 2:d=e.offsetX-a.offsetWidth;break;case 3:d=e.offsetY-a.offsetHeight}}));const p=e=>{const[t,n]=ot(a);let r=0;switch([t,n].map(((e,t)=>e?2**t:0)).reduce(((e,t)=>e+t))){case 0:r=e.clientX-s.getBoundingClientRect().left;break;case 1:r=e.clientY-s.getBoundingClientRect().top;break;case 2:r=s.getBoundingClientRect().right-e.clientX;break;case 3:r=s.getBoundingClientRect().bottom-e.clientY}const o=1-Math.max(0,Math.min((r+d)/(e=>e?s.clientHeight-a.offsetHeight:s.clientWidth-a.offsetWidth)(t),1));c.style.inlineSize=100*o+"%"};a.addEventListener("pointermove",(e=>{const{pointerId:t}=e;a.hasPointerCapture(t)&&p(e)})),a.addEventListener("pointerup",(e=>{const{pointerId:t}=e;t===u&&(p(e),f())})),a.addEventListener("pointercancel",(e=>{const{pointerId:t}=e;t===u&&(p(e),f())}));let h=null;const g=new e.Signal.State(null);function m(e){if(o?.signal?.aborted)return()=>{};if(g.get()===e&&h){const e=h;return()=>{e.abort()}}h?.abort(),g.set(e);const t=new AbortController;h=t;const i=o?.signal?AbortSignal.any([o?.signal,t.signal]):t.signal,s=ut(e,n,r,{...o,signal:o?.signal?AbortSignal.any([o?.signal,i]):i});return i.addEventListener("abort",(()=>{g.set(null),f()}),{once:!0}),s&&(c.appendChild(s),c.hidden=!1,a.hidden=!1,i.addEventListener("abort",(()=>{s.remove(),a.hidden=!0,c.hidden=!0}),{once:!0})),()=>{t.abort()}}const b=r.levelKey||"level",v=new e.Signal.Computed((()=>!t.readonly&&!t.disabled&&t.addable));function y(e){const n={};if(-2===e)return n[b]=0,void t.add(n);n[b]=(j[e]?.levelValue??-1)+1,t.insert(e+1,n)}function w(e){t.remove(Number(e.index))}let E=-1,x=new e.Signal.State(E);function S(e,n){if(E<0)return;const r=Number(function(e,t){if(!e)return 0;const n=Number(j[Number(e.index)]?.levelValue)||0;return t?n+1:n}(e,n))||0;let o=function(e){let t=e+1;const n=j[E]?.level??0;for(;(j[t]?.level??-1)>n;t++);return t-E}(E),i=-1;if(e){if(i=Number(e.index),E===i||j[i]?.parents?.has(E))return;if(n||i!==E+o){if(n){for(const e=j[i]?.level||0;j[i+1]?.level>e;i++);i<E&&(i+=1)}else i>E&&(i-=1);if(i<0)return}else i=-1}else if(i=j.length-1,i<0)return;if(i>=0&&E!==i){if(o=t.move(E,i,o),!o)return;E=o>1&&i>E?i-o+1:i,x.set(E)}const s=Array(o).fill(j[E]?.level??0).map(((e,t)=>Math.max((j[t+E]?.level??0)-e,0)));for(let e=0;e<o;e++){const n=t.children[E+e]?.child(b);n&&(n.value=r+s[e])}}function L(e){E=Number(e.index),x.set(E),l.classList.add("NeeloongForm-tree-moving")}let C=null;function O(e){return-1===E?()=>{}:(C?.classList.remove("NeeloongForm-tree-drag-over"),C=e,C?.classList.add("NeeloongForm-tree-drag-over"),()=>{C===e&&(C?.classList.remove("NeeloongForm-tree-drag-over"),C=null)})}function N(){E=-1,x.set(E),l.classList.remove("NeeloongForm-tree-moving"),C?.classList.remove("NeeloongForm-tree-drag-over"),C=null}if(o?.editable){const e=l.appendChild(document.createElement("button"));e.addEventListener("click",(()=>y(-1))),e.classList.add("NeeloongForm-tree-head-add"),be((()=>!v.get()),(t=>{e.disabled=t}),!0,o.signal)}const A=l.appendChild(document.createComment(""));if(o?.editable){const e=l.appendChild(document.createElement("div"));e.classList.add("NeeloongForm-tree-foot");const t=e.appendChild(document.createElement("button"));t.addEventListener("click",(()=>y(-2))),t.classList.add("NeeloongForm-tree-foot-add");const n=e.appendChild(document.createElement("div"));n.classList.add("NeeloongForm-tree-drop");let r=()=>{};n.addEventListener("dragover",(e=>e.preventDefault())),n.addEventListener("dragenter",(()=>r=O(n))),n.addEventListener("dragleave",(()=>r())),n.addEventListener("drop",(()=>S())),be((()=>!v.get()),(e=>{t.disabled=e}),!0,o.signal)}let $=new Map;const j=[];return be((()=>t.children),(s=>{let a=A.nextSibling;const c=$;$=new Map;const u=s.length;for(let e=j.length;e<u;e++)j[e]=it(t,j,x,"level",e);let d=-1;for(let u of s){d++;const s=j[d],f=c.get(u);if(f)c.delete(u),$.set(u,f),f[2](s),a!==f[0]?l.insertBefore(f[0],a):a=a.nextSibling;else{const c=new e.Signal.State(s),d=new AbortController,f=nt(u,g,n,r,c,{columns:i,addable:v,deletable:new e.Signal.Computed((()=>!t.readonly&&!t.disabled&&u.removable)),remove:w.bind(null,u),dragenter:O,dragstart:L.bind(null,u),dragend:N,addNode:()=>y(Number(u.index)),createDetails:m,drop:S.bind(null,u)},{...o,signal:o?.signal?AbortSignal.any([o?.signal,d.signal]):d.signal});l.insertBefore(f,a),$.set(u,[f,d,e=>c.set(e)])}}j.splice(u);for(const[e,t]of c.values())e.remove(),t.abort()}),!0,o?.signal),s}function lt(t,n,r,o,i){return"tree"===t?st(n,r,o,i):function(t,n,r,o){if(o?.signal?.aborted)return null;const i=Xe(t,r,["add","move","trigger","remove","serial"],(e=>[{actions:["add","trigger","move","remove","serial"]},...e.slice(0,3)])),s=document.createElement("table");s.classList.add("NeeloongForm-table");const l=s.appendChild(document.createElement("thead")),a=new e.Signal.Computed((()=>!t.readonly&&!t.disabled&&t.addable));function c(){t.add({})}function u(e){t.remove(Number(e.index))}let d=-1;function f(e){if(d<0)return;const n=e?Number(e.index):t.children.length;n<0||d<0||d===n||t.move(d,n)&&(d=n)}function p(e){d=Number(e.index)}function h(){d=-1}switch(Ze(o?.signal,l,i,c,a,Boolean(o?.editable)),r.tableFoot){default:case"header":{const e=s.appendChild(document.createElement("tfoot"));e.addEventListener("dragenter",(()=>{f()})),Ze(o?.signal,e,i,c,a,Boolean(o?.editable));break}case"add":{const e=s.appendChild(document.createElement("tfoot"));e.addEventListener("dragenter",(()=>{f()}));const t=e.appendChild(document.createElement("tr")).appendChild(document.createElement("th"));t.colSpan=i.length;const n=t.appendChild(document.createElement("button"));n.addEventListener("click",c),n.classList.add("NeeloongForm-table-foot-add"),be((()=>!a.get()),(e=>{n.disabled=e}),!0,o?.signal);break}case"none":}let g=new Map;return be((()=>t.children),(a=>{let c=l.nextSibling;const d=g;g=new Map;for(let l of a){const a=d.get(l);if(a)d.delete(l),g.set(l,a),c!==a[0]?s.insertBefore(a[0],c):c=c.nextSibling;else{const a=new AbortController,d=Qe(l,n,r,{columns:i,deletable:new e.Signal.Computed((()=>!t.readonly&&!t.disabled&&l.removable)),remove:u.bind(null,l),dragenter:f.bind(null,l),dragstart:p.bind(null,l),dragend:h},{...o,signal:o?.signal?AbortSignal.any([o?.signal,a.signal]):a.signal});s.insertBefore(d,c),g.set(l,[d,a])}}for(const[e,t]of d.values())e.remove(),t.abort()}),!0,o?.signal),s}(n,r,o,i)}function at(e,t,n,r){const{type:o}=e,i=Boolean(o&&"object"==typeof o),s=n.html,l=i?e instanceof Q?"collapse":"fieldset":s?"base":"inline",[a,c]=tt(r?.signal,n,e,l,i);me((()=>a.hidden=e.hidden),r?.signal);const u=s&&function(e,t,n,r,o){const i=Ye(e,r?.sanitizeHtml);return Ke(t,n,i,r,o),i}(s,e,t,r,n)||t(e,n.renderer,r)||e instanceof Q&&lt(n.arrayStyle,e,t,n,r)||i&&ut(e,t,n,r);return u&&c.appendChild(u),a}function ct(e,t,n,r){if("button"===n.type)return function(e,t,n){const[r,o]=tt(n?.signal,t,e),i=document.createElement("button");me((()=>{const r=t.text,o="function"==typeof r?r(e,n):r;i.innerText=o??""}),n?.signal),me((()=>{const r=t.disabled,o="function"==typeof r?r(e,n):r;i.disabled=Boolean(o)}),n?.signal),i.classList.add("NeeloongForm-item-button"),o.appendChild(i);const s=t.click;if("function"==typeof s)i.addEventListener("click",(t=>s(t,e,n)));else if(s&&"string"==typeof s){const t=n?.call;"function"==typeof t&&i.addEventListener("click",(r=>t(s,r,e,n)))}return r}(e,n,r);if("html"===n.type)return function(e,t,n,r){const o=n.html;if(!o)return null;const[i,s]=tt(r?.signal,n,e),l=Ye(o,r?.sanitizeHtml);return Ke(e,t,l,r,n),s.appendChild(l),i}(e,t,n,r);const o=n.field;if(!o)return null;const i=e.child(o);return i?at(i,t,n,r):null}function ut(e,t,n,r,o){if(r?.signal?.aborted)return null;const i=o instanceof HTMLElement?o:document.createElement("div");i.classList.add("NeeloongForm");const s=n.fields||e.layout.fields;if(s?.length)for(const n of s){const o=ct(e,t,n,r);o&&i.appendChild(o)}else{const n=[...e].map((([,e])=>e));for(const e of n){const n=at(e,t,e.layout,r);n&&i.appendChild(n)}}return i}e.ArrayStore=Q,e.Layout=ge,e.ObjectStore=G,e.Store=Y,e.effect=me,e.render=function(e,t,n,{component:r,global:o,relate:i,enhancements:s}={}){return He(t,n,null,new Ce(e,o),Object.create(null),[],s||{},"function"==typeof i?i:null,r)},e.renderStore=function(e,t,n,r,o){if(o?.signal?.aborted)return;const i=r||e.layout,s=i.html;if(!s)return void ut(e,t,i,o||null,n);const l=Ye(s,o?.sanitizeHtml);Ke(e,t,l,o||null,i),n.appendChild(l),o?.signal?.addEventListener("abort",(()=>{n.removeChild(l)}),{once:!0})},e.watch=be}));