var w=null,m=null,b=new Set,C=!1,R=new WeakMap,O=document,S=Array.isArray,M=Object.assign,j=(t)=>O.createElement(t),v=(t)=>O.createTextNode(String(t??"")),h=(t)=>typeof t==="function",P=(t)=>typeof t==="object"&&t!==null,T=(t,s)=>{let c=w;w=t;try{return s()}finally{w=c}},A=(t)=>{if(t._cleanups)t._cleanups.forEach((s)=>s()),t._cleanups.clear();t.childNodes?.forEach(A)},U=()=>{if(C)return;C=!0;while(b.size>0){let t=Array.from(b).sort((s,c)=>(s.depth||0)-(c.depth||0));b.clear();for(let s of t)if(!s._deleted)s()}C=!1},B=(t)=>{if(w&&!w._deleted)t.add(w),w._deps.add(t)},k=(t)=>{if(t.forEach((s)=>{if(s===w||s._deleted)return;if(s._isComputed){if(s.markDirty(),s._subs)k(s._subs)}else b.add(s)}),!C)queueMicrotask(U)},N=(t)=>{let s=new Set,c=m,i=j("div");i.style.display="contents",m={cleanups:s};let n=(e)=>{if(!e)return;if(e._isRuntime)s.add(e.destroy),i.appendChild(e.container);else if(S(e))e.forEach(n);else i.appendChild(e instanceof Node?e:v(e))};try{n(t({onCleanup:(e)=>s.add(e)}))}finally{m=c}return{_isRuntime:!0,container:i,destroy:()=>{s.forEach((e)=>e()),A(i),i.remove()}}},W=(t,s=null)=>{let c=new Set;if(h(t)){let n,e=!0,r=()=>{if(r._deleted)return;r._deps.forEach((a)=>a.delete(r)),r._deps.clear(),T(r,()=>{let a=t();if(!Object.is(n,a)||e)n=a,e=!1,k(c)})};if(M(r,{_deps:new Set,_isComputed:!0,_subs:c,_deleted:!1,markDirty:()=>e=!0,stop:()=>{r._deleted=!0,r._deps.forEach((a)=>a.delete(r)),c.clear()}}),m)m.cleanups.add(r.stop);return()=>{if(e)r();return B(c),n}}let i=t;if(s)try{let n=localStorage.getItem(s);if(n!==null)i=JSON.parse(n)}catch(n){console.warn("SigPro Storage Lock",n)}return(...n)=>{if(n.length){let e=h(n[0])?n[0](i):n[0];if(!Object.is(i,e)){if(i=e,s)localStorage.setItem(s,JSON.stringify(i));k(c)}}return B(c),i}},D=(t,s=new WeakMap)=>{if(!P(t))return t;if(s.has(t))return s.get(t);let c={},i=new Proxy(t,{get(n,e){if(w)B(c[e]??=new Set);let r=Reflect.get(n,e);return P(r)?D(r,s):r},set(n,e,r){if(Object.is(n[e],r))return!0;let a=Reflect.set(n,e,r);if(c[e])k(c[e]);return a}});return s.set(t,i),i},E=(t,s)=>{let c=S(t),i=c?s:t;if(!h(i))return()=>{};let n=m,e=()=>{if(e._deleted)return;e._deps.forEach((a)=>a.delete(e)),e._deps.clear(),e._cleanups.forEach((a)=>a()),e._cleanups.clear();let r=m;e.depth=w?w.depth+1:0,T(e,()=>{if(m={cleanups:e._cleanups},c)T(null,i),t.forEach((a)=>h(a)&&a());else i();m=r})};if(M(e,{_deps:new Set,_cleanups:new Set,_deleted:!1,stop:()=>{if(e._deleted)return;if(e._deleted=!0,b.delete(e),e._deps.forEach((r)=>r.delete(e)),e._cleanups.forEach((r)=>r()),n)n.cleanups.delete(e.stop)}}),n)n.cleanups.add(e.stop);return e(),e.stop},y=(t,s={},c=[])=>{if(s instanceof Node||S(s)||!P(s))c=s,s={};let n=/^(svg|path|circle|rect|line|polyline|polygon|g|defs|text|tspan|use)$/.test(t)?O.createElementNS("http://www.w3.org/2000/svg",t):j(t);n._cleanups=new Set,n.onUnmount=(o)=>n._cleanups.add(o);let e=["disabled","checked","required","readonly","selected","multiple","autofocus"],r=(o,l)=>{let d=(o==="src"||o==="href")&&String(l).toLowerCase().includes("javascript:")?"#":l;if(e.includes(o))n[o]=!!d,d?n.setAttribute(o,""):n.removeAttribute(o);else d==null?n.removeAttribute(o):n.setAttribute(o,d)};for(let[o,l]of Object.entries(s)){if(o==="ref"){h(l)?l(n):l.current=n;continue}let d=h(l);if(o.startsWith("on")){let p=o.slice(2).toLowerCase().split(".")[0];n.addEventListener(p,l),n._cleanups.add(()=>n.removeEventListener(p,l))}else if(d){if(n._cleanups.add(E(()=>{let p=l();o==="class"?n.className=p||"":r(o,p)})),["INPUT","TEXTAREA","SELECT"].includes(n.tagName)&&(o==="value"||o==="checked")){let p=o==="checked"?"change":"input",f=(u)=>l(u.target[o]);n.addEventListener(p,f),n._cleanups.add(()=>n.removeEventListener(p,f))}}else r(o,l)}let a=(o)=>{if(S(o))return o.forEach(a);if(h(o)){let l=v("");n.appendChild(l);let d=[];n._cleanups.add(E(()=>{let p=o(),f=(S(p)?p:[p]).map((u)=>u?._isRuntime?u.container:u instanceof Node?u:v(u));d.forEach((u)=>{A(u),u.remove()}),f.forEach((u)=>l.parentNode?.insertBefore(u,l)),d=f}))}else n.appendChild(o instanceof Node?o:v(o))};return a(c),n},q=(t,s,c=null,i=null)=>{let n=v(""),e=y("div",{style:"display:contents"},[n]),r=null,a=null;return E(()=>{let o=!!(h(t)?t():t);if(o===a)return;a=o;let l=()=>{if(r)r.destroy();r=null};if(r&&!o&&i?.out)i.out(r.container,l);else l();let d=o?s:c;if(d){if(r=N(()=>h(d)?d():d),e.insertBefore(r.container,n),o&&i?.in)i.in(r.container)}}),e},I=(t,s,c,i="div",n={style:"display:contents"})=>{let e=v(""),r=y(i,n,[e]),a=new Map;return E(()=>{let o=(h(t)?t():t)||[],l=new Map,d=[];for(let f=0;f{A(g),g.remove()}}:N(()=>g)}a.delete(x),l.set(x,L),d.push(x)}a.forEach((f)=>f.destroy());let p=e;for(let f=d.length-1;f>=0;f--){let u=l.get(d[f]);if(u.container.nextSibling!==p)r.insertBefore(u.container,p);p=u.container}a=l}),r},_=(t)=>{let s=W(window.location.hash.replace(/^#/,"")||"/");window.addEventListener("hashchange",()=>s(window.location.hash.replace(/^#/,"")||"/"));let c=y("div",{class:"router-outlet"}),i=null;return E([s],async()=>{let n=s(),e=t.find((r)=>{let a=r.path.split("/").filter(Boolean),o=n.split("/").filter(Boolean);return a.length===o.length&&a.every((l,d)=>l.startsWith(":")||l===o[d])})||t.find((r)=>r.path==="*");if(e){let r=e.component;if(h(r)&&r.toString().includes("import"))r=(await r()).default||await r();let a={};if(e.path.split("/").filter(Boolean).forEach((o,l)=>{if(o.startsWith(":"))a[o.slice(1)]=n.split("/").filter(Boolean)[l]}),i)i.destroy();if(_.params)_.params(a);i=N(()=>{try{return h(r)?r(a):r}catch(o){return y("div",{class:"p-4 text-error"},"Error loading view")}}),c.appendChild(i.container)}}),c};_.params=W({});_.to=(t)=>window.location.hash=t.replace(/^#?\/?/,"#/");_.back=()=>window.history.back();_.path=()=>window.location.hash.replace(/^#/,"")||"/";var $=(t,s)=>{let c=typeof s==="string"?O.querySelector(s):s;if(!c)return;if(R.has(c))R.get(c).destroy();let i=N(h(t)?t:()=>t);return c.replaceChildren(i.container),R.set(c,i),i},V={$:W,$$:D,Render:N,Watch:E,Tag:y,If:q,For:I,Router:_,Mount:$};if(typeof window<"u")M(window,V),"div span p h1 h2 h3 h4 h5 h6 br hr section article aside nav main header footer address ul ol li dl dt dd a em strong small i b u mark time sub sup pre code blockquote details summary dialog form label input textarea select button option fieldset legend table thead tbody tfoot tr th td caption img video audio canvas svg iframe picture source progress meter".split(" ").forEach((s)=>{let c=s[0].toUpperCase()+s.slice(1);if(!(c in window))window[c]=(i,n)=>y(s,i,n)}),window.SigPro=Object.freeze(V);export{E as Watch,y as Tag,_ as Router,N as Render,$ as Mount,q as If,I as For,D as $$,W as $};