let t,e=[],i=[],s=0,n=-1,r=[],l=[],a=[],d=new FinalizationRegistry((t=>i[t]=null)),o=t=>{let e=a[t],i=l[t]();u(e,i)},u=(t,s)=>{i[t]=s;for(let i of r[t]||e){let t=typeof i;"function"===t?i():"number"===t&&o(i)}return s};class c{#t;constructor(){this.#t=++s,d.register(this,s)}get value(){let e=this.#t,s=t;return s?.indexOf(e)<0&&(s.push(e),s.sort()),i[e]}set value(t){return u(this.#t,t)}valueOf=()=>this.value;toString=()=>String(this.value);effect=(t,e)=>((t,e,i)=>{i&&e();let s=r[t]=r[t]||[],n=s.length;return s[n]=e,[t,n]})(this.#t,t,e)}let h=i=>{let s=new c,l=t||e;for(let t;t=l.shift();)r[t]||(r[t]=[]),r[t].push(n);return s.value=i,s},g=e=>{t=[];let i=++n;l[i]=e,a[i]=s+1;let r=h(e());return t=null,r};class f extends WeakMap{use=(t,e={})=>this.get(t)||this.set(t,e).get(t)}let p=new f,y=new Proxy({},{get:async(t,e)=>(await import("./plugins/"+e+".js")).default}),m=(t,e,i,s,n,r)=>{let{getById:l,ctx:a}=t,d=r.getAttribute(i),o=p.get(a.scope),u=o&&o[d];return queueMicrotask((()=>r.removeAttribute(i))),t=>i=>t({getById:l,ctx:a,name:n,signal:u,signals:o,id:e,kind:s,e:i,plugins:y})};class A extends HTMLElement{#e=t=>this.getAttribute(t);static signal=h;static computed=g;static plugin=t=>e=>e.plugins[e.name].then((i=>i(e)(t(e))));static hydrate=t=>e=>{for(let i in t){let s=t[i];for(let t in s){let[n,r,l,a={}]=[s[t],t.slice(1),t[0]];Array.isArray(n)&&([n,a]=[n[0],n[1]]);let d="@.?!:".indexOf(l);if(d<0)continue;let{getById:o,root:u}=e,c=i?o(i):u,h=m(e,i,t,d,r,c)(n);d?h():c.addEventListener(r,h,a)}}};static index=(t,e=t.map((t=>t.slice(1))))=>({getById:i,ctx:{name:s},signal:n})=>(r=n.value)=>{for(let n,l,a,d,o=0,u=0|r?.length;o(r=t.value,l=e(i))=>{r="function"==typeof r?r():r,/^dataset\.\S+/.test(s)?l.dataset[s.slice(8)]=r:null!==r&&(4===n?l[s](r):l[s]=r)};static renderWith=(t,e=!0)=>i=>i.signal.effect(t(i),e);static rerender=A.renderWith(A.render);constructor(){super();let t=this.root=this[this.#e("for")||"parentNode"],e=this.#e("scope");e=e?this.closest(e):this.getRootNode();let i=e instanceof ShadowRoot,s=this.#e("new"),n=s||this.#e("ref")||crypto.randomUUID(),r=this.#e("type"),[l,a]=(this.#e("default")||"").split("#"),{id:d,textContent:o}=this;if(this.getById=i?e=>t.querySelector("#"+e):t=>document.getElementById(t),this.ctx={root:t,scope:e,name:n,type:r,id:d,description:o},s){let t=l?this.getById(a)[l.slice(1)]:this.#e("value");p.use(e)[n]=h(((t,e)=>"number"===e?0|t:t)(t,r))}if(null!==this.#e("index")){let e=document.createTreeWalker(t,1),i=0;for(;e.nextNode();){let t=e.currentNode;t!==this&&t.id===n&&(t.id=n+i++)}}null!==this.#e("hydrate")&&(new Function(`let{hydrate,render,rerender,renderWith,index,plugin,computed}=customElements.get('sig-nal');return hydrate(${o})`)()(this),o="",t.dispatchEvent(new Event("init"))),this.className||this.replaceWith(o)}}customElements.define("sig-nal",A);