@tempots/dom 23.0.2 → 24.0.0-next.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/dom/ssr.d.ts CHANGED
@@ -1,50 +0,0 @@
1
- import { TNode, Renderable } from '../types/domain';
2
- import { DOMContext } from './dom-context';
3
- /**
4
- * @internal
5
- */
6
- export declare const _maybeAddAttributeTracker: (ctx: DOMContext, name: string) => void;
7
- /**
8
- * @internal
9
- */
10
- export declare const _maybeAddClassTracker: (ctx: DOMContext) => void;
11
- /**
12
- * @internal
13
- */
14
- export declare const _addNodeTracker: (element: Element) => void;
15
- /**
16
- * @internal
17
- */
18
- export declare const _maybeAddTextTracker: (ctx: DOMContext) => void;
19
- export declare const removeTextTrackers: (doc: Document) => void;
20
- /**
21
- * @internal
22
- */
23
- export declare const _clearSSR: (doc: Document) => void;
24
- /**
25
- * Prepares for server-side rendering (SSR) by setting a timeout. The returned
26
- * promise resolves when all the `useSSRDone` calls have been completed.
27
- *
28
- * @param timeoutSeconds - The timeout duration in seconds (default: 30 seconds).
29
- * @returns A promise that resolves when all useSSRDone calls have been completed.
30
- * @public
31
- */
32
- export declare const prepareSSR: (timeoutSeconds?: number) => Promise<void>;
33
- /**
34
- * Provides a way to signal that a renderable has been rendered on the server.
35
- * Multiple ussSSRDone calls can be made in parallel, and the promise returned
36
- * by `prepareSSR` will resolve when all the `useSSRDone` calls have been completed.
37
- *
38
- * @param child - A function that takes a `done` callback and returns a `TNode`.
39
- * @returns A renderable value.
40
- * @public
41
- */
42
- export declare const UseSSRDone: (child: (done: () => void) => TNode) => Renderable;
43
- /**
44
- * Checks if the code is running on the server-side (SSR - Server-Side Rendering).
45
- * The flag is set by running the `prepareSSR` function.
46
- *
47
- * @returns Returns true if the code is running on the server-side, false otherwise.
48
- * @public
49
- */
50
- export declare const isSSR: () => boolean;
@@ -0,0 +1 @@
1
+ export declare const getWindow: () => Window | undefined;
package/index.cjs CHANGED
@@ -1 +1 @@
1
- "use strict";var lt=Object.defineProperty;var ye=t=>{throw TypeError(t)};var at=(t,e,r)=>e in t?lt(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r;var a=(t,e,r)=>at(t,typeof e!="symbol"?e+"":e,r),ve=(t,e,r)=>e.has(t)||ye("Cannot "+r);var O=(t,e,r)=>(ve(t,e,"read from private field"),r?r.call(t):e.get(t)),Se=(t,e,r)=>e.has(t)?ye("Cannot add the same private member more than once"):e instanceof WeakSet?e.add(t):e.set(t,r),z=(t,e,r,s)=>(ve(t,e,"write to private field"),s?s.call(t,r):e.set(t,r),r);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const Pe=(t,e,r)=>t+(e-t)*r,we=97,Ee=(t,e,r)=>{const s=Math.max(t.length,e.length);let n="";for(let o=0;o<s;o++){let i=t.charCodeAt(o);isNaN(i)&&(i=we);let l=e.charCodeAt(o);isNaN(l)&&(l=we),n+=String.fromCharCode(i+(l-i)*r)}return n},De=(t,e,r)=>new Date(t.getTime()+(e.getTime()-t.getTime())*r),Te=(t,e)=>e,Oe=t=>typeof t=="number"?Pe:typeof t=="string"?Ee:t instanceof Date?De:Te;var v;class D{constructor(e,r){a(this,"counter");a(this,"isFirst");a(this,"isEven");a(this,"isOdd");Se(this,v);a(this,"dispose",()=>{O(this,v)!=null&&(O(this,v).dispose(),z(this,v,void 0))});this.index=e,this.total=r,this.counter=e+1,this.isFirst=e===0,this.isEven=e%2===1,this.isOdd=e%2===0}get isLast(){return O(this,v)==null&&z(this,v,this.total.map(e=>this.counter===e)),O(this,v)}}v=new WeakMap;const N=class N{constructor(e,r){a(this,"$__signal__",!0);a(this,"_value");a(this,"_derivatives",[]);a(this,"_onValueListeners",[]);a(this,"_onDisposeListeners",[]);a(this,"get",()=>this._value);a(this,"hasListeners",()=>this._onValueListeners.length>0);a(this,"on",e=>(e(this.get()),this._onValueListeners.push(e),()=>{this._onValueListeners.splice(this._onValueListeners.indexOf(e),1)}));a(this,"_setAndNotify",(e,r)=>{const s=this.equals(this._value,e);s||(this._value=e),(r||!s)&&this._onValueListeners.forEach(n=>n(e))});a(this,"_disposed",!1);a(this,"isDisposed",()=>this._disposed);a(this,"onDispose",e=>{this._onDisposeListeners.push(e)});a(this,"dispose",()=>{this._disposed||(this._disposed=!0,this._onDisposeListeners.forEach(e=>e()),this._onDisposeListeners.length=0,this._derivatives.length=0)});a(this,"map",(e,r=(s,n)=>s===n)=>{const s=new w(()=>{try{return e(this.get())}catch(n){throw console.error("Error in Signal.map:",n),n}},r);return this.setDerivative(s),s});a(this,"flatMap",(e,r=(s,n)=>s===n)=>{const s=new w(()=>{try{return e(this.get()).get()}catch(n){throw console.error("Error in Signal.flatMap:",n),n}},r);return this.setDerivative(s),s});a(this,"tap",e=>this.map(r=>(e(r),r)));a(this,"at",e=>this.map(r=>r[e]));a(this,"_$");a(this,"filter",(e,r)=>{let s=r??this.get();const n=new w(()=>{try{const o=this.get();return s=e(o)?o:s}catch(o){throw console.error("Error in Signal.filter:",o),o}},this.equals);return this.setDerivative(n),n});a(this,"filterMap",(e,r,s=(n,o)=>n===o)=>{let n=r;const o=new w(()=>{try{const i=this.get(),l=e(i);return n=l??n}catch(i){throw console.error("Error in Signal.filterMap:",i),i}},s);return this.setDerivative(o),o});a(this,"mapAsync",(e,r,s,n=(o,i)=>o===i)=>{const o=L(r,n);let i=0,l=new AbortController;return o.onDispose(this.on(async u=>{const f=++i;l.abort(),l=new AbortController;try{const _=await e(u,{abortSignal:l.signal});f===i&&o.set(_)}catch(_){if(f===i)if(s!=null)o.set(s(_));else throw _}})),o});a(this,"mapMaybe",(e,r)=>this.map(s=>e(s)??r));a(this,"feedProp",(e,r=!1)=>{const s=this.on(e.set);return e.onDispose(s),r?this.onDispose(e.dispose):this.onDispose(s),e});a(this,"deriveProp",(e=!0)=>this.feedProp(L(this.get()),e));a(this,"count",()=>{let e=0;return this.map(()=>++e)});a(this,"setDerivative",e=>{this._derivatives.push(e),e.onDispose(()=>{this._derivatives.splice(this._derivatives.indexOf(e),1)}),e.onDispose(this.on(e.setDirty)),this.onDispose(e.dispose)});this.equals=r,this._value=e}get value(){return this._value}get $(){return this._$!==void 0?this._$:this._$=new Proxy(this,{get:(e,r)=>this.at(r)})}};a(N,"ofPromise",(e,r,s,n=(o,i)=>o===i)=>{const o=new N(r,n);return e.then(i=>o._setAndNotify(i,!1)).catch(i=>{s!=null?o._setAndNotify(s(i),!1):console.error("Unhandled promise rejection in Signal.ofPromise:",i)}),o}),a(N,"is",e=>e!=null&&e.$__signal__===!0);let d=N;const ut=typeof queueMicrotask=="function"?queueMicrotask:t=>Promise.resolve().then(t);class w extends d{constructor(r,s){super(void 0,s);a(this,"$__computed__",!0);a(this,"_isDirty",!1);a(this,"setDirty",()=>{this._isDirty||this._disposed||(this._isDirty=!0,this._derivatives.forEach(r=>r.setDirty()),this._scheduleNotify())});a(this,"_scheduleCount",0);a(this,"_scheduleNotify",()=>{const r=++this._scheduleCount;ut(()=>{this._scheduleCount!==r||this._disposed!==!1||this._isDirty&&(this._isDirty=!1,this._setAndNotify(this._fn(),!1))})});a(this,"get",()=>(this._isDirty&&(this._isDirty=!1,this._value=this._fn(),this._setAndNotify(this._value,!0)),this._value));this._fn=r,this.setDirty()}static is(r){return r!=null&&r.$__computed__===!0}get value(){return this.get()}}const j=class j extends d{constructor(){super(...arguments);a(this,"$__prop__",!0);a(this,"set",r=>{this._setAndNotify(r,!1)});a(this,"update",r=>{this._setAndNotify(r(this.get()),!1)});a(this,"reducer",(r,...s)=>{const n=this;return function o(i){const l=n.value;n.update(u=>r(u,i)),!n.equals(l,n.value)&&s.forEach(u=>u({previousState:l,state:n.value,action:i,dispatch:o}))}});a(this,"iso",(r,s,n=(o,i)=>o===i)=>{const o=new j(r(this.get()),n);return o.onDispose(this.on(i=>o.set(r(i)))),o.on(i=>this._setAndNotify(s(i),!1)),o});a(this,"atProp",r=>this.iso(s=>s[r],s=>({...this.value,[r]:s})))}get value(){return this.get()}set value(r){this._setAndNotify(r,!1)}};a(j,"is",r=>r!=null&&r.$__prop__===!0);let C=j;const W=(t,e,r=(s,n)=>s===n)=>{const s=new w(t,r);return e.forEach(n=>n.setDerivative(s)),s},be=(t,e)=>W(t,e).dispose,L=(t,e=(r,s)=>r===s)=>new C(t,e),R=(t,e=(r,s)=>r===s)=>new d(t,e),h={map:(t,e)=>d.is(t)?t.map(e):e(t),toSignal:(t,e)=>d.is(t)?t:R(t,e),maybeToSignal:(t,e)=>{if(t!=null)return h.toSignal(t,e)},get:t=>d.is(t)?t.get():t,on:(t,e)=>d.is(t)?t.on(e):(e(t),()=>{}),dispose:t=>{d.is(t)&&t.dispose()}},ct=(...t)=>(e,r)=>{const s=t.filter(n=>d.is(n));return W(()=>e(...t.map(n=>h.get(n))),s,r)},ft=(...t)=>e=>{const r=t.filter(s=>d.is(s));be(()=>e(...t.map(h.get)),r)};class K{constructor(){a(this,"_store",new Map);a(this,"getItem",e=>this._store.get(e)??null);a(this,"setItem",(e,r)=>{this._store.set(e,r)})}}const Q=({key:t,defaultValue:e,store:r,serialize:s=JSON.stringify,deserialize:n=JSON.parse,equals:o=(l,u)=>l===u,onLoad:i=l=>l})=>{const l=r.getItem(t),u=new C(l!=null?i(n(l)):typeof e=="function"?e():e,o);return u.on(f=>{r.setItem(t,s(f))}),u},dt=t=>Q({...t,store:(window==null?void 0:window.localStorage)??new K}),ht=t=>Q({...t,store:(window==null?void 0:window.sessionStorage)??new K});function Ae(t){return typeof requestAnimationFrame=="function"?requestAnimationFrame(t):setTimeout(t,0)}const ke=(t,e,r,s)=>{const n=(s==null?void 0:s.duration)??300,o=(s==null?void 0:s.easing)??(y=>y),i=(s==null?void 0:s.equals)??((y,I)=>y===I);let l=s==null?void 0:s.interpolate,u=t,f=e(),_=performance.now(),P=null,G=!0;const J=new w(e,i),E=L(t,i);E.onDispose(()=>{P!==null&&cancelAnimationFrame(P)}),E.onDispose(J.dispose),r.forEach(y=>{y.setDerivative(J),y.onDispose(E.dispose)});const ot=y=>{f=y,_=performance.now(),u=E.value,G&&(G=!1,P=Ae(ge))},ge=()=>{const I=(performance.now()-_)/h.get(n),it=o(I);l==null&&(l=Oe(u));let _e=l(u,f,it);I>=1?(G=!0,_e=f):P=Ae(ge),E.set(_e)};return J.on(ot),E},pt=(t,e)=>{const{initialValue:r,...s}=e??{};return ke(r??t.get(),t.get,[t],s)},mt=(t,e)=>{const{signals:r,literals:s}=Object.entries(t).reduce(({signals:o,literals:i},[l,u])=>(d.is(u)?o.push([l,u]):i[l]=u,{signals:o,literals:i}),{signals:[],literals:{}}),n=r.map(([,o])=>o);return W(()=>(r.forEach(([o,i])=>s[o]=i.value),e(s)),n)},Ne=new Set(["checked","disabled","hidden","selected"]),Ce=new Set(["rowSpan","colSpan","tabIndex","valueAsNumber"]),Le=new Set(["valueAsDate"]),Re=new Set(["value","textContent","innerText","innerHTML","outerHTML","className","classList"]),H=new Map,b=(t,e)=>{if(H.has(t))return H.get(t);{const r=e(t);return H.set(t,r),r}},Me=t=>(e,r)=>{r==null?e[t]=null:e[t]=!!r},Ve=t=>(e,r)=>{r==null?e[t]=null:e[t]=Number(r)},Fe=t=>(e,r)=>{r==null?e[t]=null:e[t]=r},$e=t=>(e,r)=>{r==null?e[t]=null:e[t]=String(r)},Ie=t=>(e,r)=>{r==null?e.removeAttribute(t):e.setAttribute(t,r)},Y=t=>Ne.has(t)?b(t,Me):Ce.has(t)?b(t,Ve):Le.has(t)?b(t,Fe):Re.has(t)?b(t,$e):b(t,Ie),Z=t=>e=>Ne.has(t)?!!e[t]:Ce.has(t)?Number(e[t]):Le.has(t)?e[t]:Re.has(t)?String(e[t]):e.getAttribute(t);class g{constructor(e,r,s,n,o){a(this,"createElement",(e,r)=>r!==void 0?this.document.createElementNS(r,e):this.document.createElement(e));a(this,"createText",e=>this.document.createTextNode(e));a(this,"makeRef",()=>{const e=this.createText("");return this.appendOrInsert(e),this.withReference(e)});a(this,"appendOrInsert",e=>{this.reference===void 0?this.element.appendChild(e):this.element.insertBefore(e,this.reference)});a(this,"withDocument",e=>new g(e,this.element,this.reference,this.providers,!0));a(this,"withElement",e=>new g(this.document,e,void 0,this.providers,!1));a(this,"withFirstLevel",()=>new g(this.document,this.element,this.reference,this.providers,!0));a(this,"withReference",e=>new g(this.document,this.element,e,this.providers,this.isFirstLevel));a(this,"withProvider",(e,r)=>new g(this.document,this.element,this.reference,{...this.providers,[e]:r},this.isFirstLevel));a(this,"withProviders",e=>new g(this.document,this.element,this.reference,{...this.providers,...e},this.isFirstLevel));a(this,"getProvider",e=>{if(this.providers[e]===void 0)throw new qe(e);return this.providers[e]});this.document=e,this.element=r,this.reference=s,this.providers=n,this.isFirstLevel=o}static of(e,r){return new g(e.ownerDocument,e,r,{},!0)}}class qe extends Error{constructor(e){super(`Provider not found: ${e.description}`)}}const m=t=>{const e=t;e&&e.onblur&&(e.onblur=null),!(!t||t.ownerDocument===void 0)&&t.parentElement&&t.parentElement.removeChild(t)},Be=t=>x(t)?t:t.parentElement,x=t=>t.nodeType===1,ee=t=>e=>{le(e);const r=e.createText(t);return e.appendOrInsert(r),s=>{s&&m(r)}},te=t=>e=>{le(e);const r=e.createText(t.value);e.appendOrInsert(r);const s=t.on(n=>r.data=n);return n=>{s(),n&&m(r)}},gt=t=>d.is(t)?te(t):ee(t),p=(...t)=>e=>{const r=t.map(s=>c(s)(e));return s=>{r.forEach(n=>n(s))}},S=()=>()=>{},_t=t=>e=>(oe(e),e.element.classList.add(...t),r=>{r&&e.element.classList.remove(...t)}),yt=t=>e=>{oe(e);const r=e.element;let s=[];const n=t.on(o=>{s.forEach(i=>r.classList.remove(i)),s=(o??"").split(" ").filter(i=>i.length>0),r.classList.add(...s)});return o=>{n(),o&&s.forEach(i=>r.classList.remove(i)),s.length=0}},M=(t,e)=>{const r=Y(t),s=Z(t);return n=>{ne(n,t);const o=s(n.element);return r(n.element,e),i=>{i&&r(n.element,o)}}},V=(t,e)=>{const r=Y(t),s=Z(t);return n=>{ne(n,t);const o=s(n.element),i=e.on(l=>r(n.element,l));return l=>{i(),l&&r(n.element,o)}}},A=new Proxy({},{get:(t,e)=>e==="class"?r=>d.is(r)?yt(r):_t((r??"").split(" ").filter(s=>s.length>0)):r=>d.is(r)?V(e,r):M(e,r)}),vt=new Proxy({},{get:(t,e)=>r=>d.is(r)?V(`data-${e}`,r):M(`data-${e}`,r)}),St=new Proxy({},{get:(t,e)=>r=>d.is(r)?V(`aria-${e}`,r):M(`aria-${e}`,r)}),wt=new Proxy({},{get:(t,e)=>r=>d.is(r)?V(e,r):M(e,r)}),At=new Proxy({},{get:(t,e)=>r=>d.is(r)?V(e,r):M(e,r)}),c=t=>t==null?S:Array.isArray(t)?p(...t.map(c)):typeof t=="string"?ee(t):d.is(t)?te(t):t,re=(t,...e)=>r=>{const s=r.createElement(t,void 0);r.isFirstLevel&&T()&&ie(s),r.appendOrInsert(s),r=r.withElement(s);const n=e.map(o=>c(o)(r));return o=>{n.forEach(i=>i(!1)),o&&m(s)}},se=(t,e,...r)=>s=>{const n=s.createElement(t,e);s.isFirstLevel&&T()&&ie(n),s.appendOrInsert(n),s=s.withElement(n);const o=r.map(i=>c(i)(s));return i=>{o.forEach(l=>l(!1)),i&&m(n)}},Pt=new Proxy({},{get:(t,e)=>(...r)=>re(e,r.flatMap(c))}),Et=new Proxy({},{get:(t,e)=>(...r)=>re("input",A.type(e),...r)}),Dt="http://www.w3.org/2000/svg",Tt=new Proxy({},{get:(t,e)=>(...r)=>se(e,Dt,r.flatMap(c))}),Ot="http://www.w3.org/1998/Math/MathML",bt=new Proxy({},{get:(t,e)=>(...r)=>se(e,Ot,r.flatMap(c))}),k="data-tempo-attr",q="data-tempo-class",Ue="data-tempo-node",B="data-tempo-text",kt=(t,e)=>{const r=t.getAttribute(e);if(r!=null){const s=t.getAttribute(k)??"{}",n={...JSON.parse(s),name:r};t.setAttribute(k,JSON.stringify(n).replace(/"/g,"&quot;"))}},ne=(t,e)=>{T()&&t.isFirstLevel&&kt(t.element,e)},Nt=t=>{t.querySelectorAll(`[${k}]`).forEach(e=>{const r=JSON.parse((e.getAttribute(k)??"{}").replace(/&quot;/g,'"'));for(const[s,n]of Object.entries(r))e.setAttribute(s,n);e.removeAttribute(k)})};function Ct(t){t.setAttribute(q,t.className)}const oe=t=>{T()&&t.isFirstLevel&&Ct(t.element)},Lt=t=>{t.querySelectorAll(`[${q}]`).forEach(e=>{const r=e.getAttribute(q);r!==null&&(e.className=r,e.removeAttribute(q))})},ie=t=>{t.setAttribute(Ue,"")},Rt=t=>{t.querySelectorAll(`[${Ue}]`).forEach(e=>{m(e)})},Mt=t=>{t.setAttribute(B,t.textContent??"")},le=t=>{T()&&t.isFirstLevel&&Mt(t.element)},je=t=>{t.querySelectorAll(`[${B}]`).forEach(e=>{e.textContent=e.getAttribute(B),e.removeAttribute(B)})},We=t=>{Rt(t),Lt(t),Nt(t),je(t)},Ge=()=>{const t=globalThis;return t.__tempoSSR__==null&&(t.__tempoSSR__={isSSR:!1,counter:0}),t.__tempoSSR__},ae=(t,e)=>{const r=Ge();r[t]=e},Je=t=>Ge()[t],X=t=>{ae("isSSR",t)},ue=()=>Je("counter"),Vt=()=>{ae("counter",(ue()??0)+1)},Ft=()=>{ae("counter",(ue()??0)-1)},$t=(t=30)=>(X(!0),new Promise((e,r)=>{let s;const n=setInterval(()=>{ue()<=0&&(clearInterval(n),clearTimeout(s),X(!1),e())},30);s=setTimeout(()=>{clearInterval(n),X(!1),r(new Error("SSR Timeout"))},t*1e3)})),It=t=>(Vt(),c(t(Ft))),T=()=>Je("isSSR"),ce=(t,e)=>{if(typeof e=="function")return ce(t,{then:e});const r=e.pending!=null?c(e.pending):S,s=e.then,n=e.error!=null?o=>c(e.error(o)):()=>S;return o=>{let i=!0;const l=t();o=o.makeRef();let u=c(r)(o);return l.then(f=>{i&&(u(!0),u=c(s(f))(o))},f=>{i&&(u(!0),u=c(n(f))(o))}),f=>{i=!1,u(f),f&&o.reference&&m(o.reference)}}},qt=(t,e)=>ce(()=>t,e),ze=(t,e)=>r=>(r.element.addEventListener(t,e),s=>{s&&r.element.removeEventListener(t,e)}),He=t=>ze("click",e=>{e.preventDefault();const r=e.target;setTimeout(()=>{const s=r.ownerDocument!=null?r==null?void 0:r.checked:void 0;s!=null&&t(!s)},0)}),F=new Proxy({},{get:(t,e)=>r=>ze(e,r)}),Xe=t=>e=>{const r=e.target;t(r.value)},Ke=t=>e=>{const r=e.target;t(r.valueAsNumber)},Qe=t=>e=>{const r=e.target;if(r.value==="")return;const s=r.value.split("-"),n=new Date(Number(s[0]),Number(s[1])-1,Number(s[2].substring(0,2)));t(n)},Ye=t=>e=>{const r=e.target;if(r.value==="")return;const s=r.value.split("T"),n=s[0].split("-"),o=new Date(Number(n[0]),Number(n[1])-1,Number(n[2])),i=s[1].split(":");o.setHours(Number(i[0])),o.setMinutes(Number(i[1])),o.setSeconds(Number(i[2])),t(o)},Bt=t=>e=>{const r=e.target;t(r.checked)},Ut=t=>e=>{e.preventDefault(),t()},jt=t=>e=>{e.stopPropagation(),t()},Wt=t=>e=>{e.stopImmediatePropagation(),t()},Gt=(t,e="input")=>p(A.valueAsDate(t),F[e](Qe(t.set))),Jt=(t,e="input")=>p(A.valueAsDate(t),F[e](Ye(t.set))),zt=(t,e="input")=>p(A.valueAsNumber(t),F[e](Ke(t.set))),Ht=(t,e="input")=>p(A.value(t),F[e](Xe(t.set))),Xt=t=>p(A.checked(t),He(t.set)),$=(t,e)=>{if(d.is(t))return s=>{s=s.makeRef();let n,o;const i=t.map(f=>Object.keys(f)[0]);let l;const u=i.on(f=>{if(f!==l){o==null||o.dispose(),n==null||n(!0),o=t.map(P=>P[f]);const _=e[f](o);n=c(_)(s),l=f}});return f=>{u(),f&&s.reference!=null&&m(s.reference),n==null||n(!0)}};const r=Object.keys(t)[0];return c(e[r](R(t[r])))},fe=(t,e,r)=>$(h.map(t,s=>({[s[e]]:s})),r),Kt=(t,e)=>fe(t,"kind",e),Qt=(t,e)=>{const r=h.map(t,([s,n])=>({[s]:n}));return $(r,e)},Yt=(t,e)=>fe(t,"type",e),Ze=(t,e)=>$(h.map(t,r=>({[r]:!0})),e),Zt=(t,e={})=>r=>{const s=(e==null?void 0:e.firstSeparator)??t,n=(e==null?void 0:e.lastSeparator)??t;return Ze(r.map(o=>o.isFirst?"first":o.isLast?"last":"other"),{first:()=>s,last:()=>n,other:()=>t})},xe=(t,e)=>r=>{const s=Object.values(t).reduce((n,o)=>{const i=r.getProvider(o);if(i==null)throw new Error(`No provider found for mark: ${o.description}`);return n[o]=i,n},{});return c(e(s))(r)},xt=(t,e)=>r=>{const s=[],n=Object.entries(t).reduce((o,[i,l])=>(s.push(l(u=>(Reflect.set(o,i,u),null))(r)),o),{});return s.push(e(n)(r)),o=>{s.forEach(i=>i(o))}},er=(t,e)=>xe([t],r=>c(e(r[t]))),tr=(t,e)=>xe(t,r=>c(e(r))),rr=t=>e=>t(e),sr=t=>e=>(e.appendOrInsert(t),r=>{r&&m(t)}),et=(t,e,r)=>{if(d.is(t)){const s=t;return n=>{n=n.makeRef();let o=null,i=!1;const l=L(null),u=s.on(f=>{f==null?(o==null||o(!0),o=c((r==null?void 0:r())??S)(n),i=!1):(l.value=f,i||(o==null||o(!0),o=c(e(l))(n),i=!0))});return f=>{u(),o==null||o(f),f&&n.reference&&m(n.reference)}}}else{const s=t;if(s==null){const n=r==null?void 0:r();return n!=null?c(n):S}return c(e(R(s)))}},U=t=>e=>r=>t(r,e),de=(t,e,r)=>he(t,()=>e,()=>r),he=(t,e,r)=>et(h.map(t,s=>s?!0:null),e,r??void 0),nr=(t,e,r)=>tt(t,()=>e,()=>r),tt=(t,e,r)=>he(h.map(t,s=>!s),e,r),pe=(t,e,r)=>r!=null?pe(t,s=>{const n=new D(s.index,s.total.map(o=>o-1));return p(U(n.dispose),c(e(s)),de(s.isLast,S,r(n)))}):d.is(t)?s=>{s=s.makeRef();const n=Array.from({length:t.value},(l,u)=>u).map(l=>new D(l,t)),o=n.map(l=>c(e(l))(s)),i=t.on(l=>{for(;l<o.length;)n.pop().dispose(),o.pop()(!0);for(let u=0;u<l;u++)if(n[u]==null){n[u]=new D(u,t);const f=c(e(n[u]));o[u]=f(s)}});return l=>{i(),l&&s.reference&&m(s.reference)}}:p(...Array.from({length:t},(s,n)=>n).map(s=>c(e(new D(s,R(t)))))),rt=(t,e,r)=>{if(r!=null)return rt(t,(s,n)=>{const o=new D(n.index,n.total.map(i=>i-1));return p([U(o.dispose),c(e(s,n)),de(n.isLast,S,r(o))])});{const s=h.map(t,o=>o.length),n=h.toSignal(t);return pe(s,o=>{const i=n.map(l=>l[o.index]);return p(U(i.dispose),c(e(i,o)))})}},or=(t,e)=>{if(d.is(t)){const r=t;return s=>{s=s.makeRef();const n=r.map(l=>c(e(l)));let o=()=>{};const i=n.on(l=>{o(!0),o=l(s)});return l=>{i(),o(l)}}}return c(e(t))},ir=(t,e,r=()=>S)=>$(h.map(t,s=>s.length>0?{notEmpty:s}:{whenEmpty:null}),{notEmpty:s=>e(s),whenEmpty:()=>r()}),lr=t=>e=>t(e.element)??(()=>{}),me=(t,e)=>{const r=t(e);return()=>r(!0)},ar=(t,e,{doc:r,clear:s}={})=>{const n=typeof e=="string"?(r??document).querySelector(e):e;if(n===null)throw new st(`Cannot find element by selector for render: ${e}`);s!==!1&&(r??n.ownerDocument)!=null&&We(r??n.ownerDocument);const o=Be(n),i=x(n)?void 0:n,l=g.of(o,i);return me(t,l)};class st extends Error{constructor(e){super(e)}}const ur=(t,e)=>r=>{const s=r.document.querySelector(t);if(s===null)throw new Error(`Cannot find element by selector for portal: ${t}`);return me(c(e),r.withElement(s).withFirstLevel())},cr=t=>Symbol(t),nt=(t,e)=>r=>c(e)(r.withProviders(t)),fr=(...t)=>t.length>0?t.reduceRight((e,r)=>s=>e(r(s))):c,dr=(t,e,r)=>nt({[t]:e},c(r)),hr=(t,e)=>nt(t,c(e)),pr=(t,e)=>r=>{const s=r.element,n=s.style.getPropertyValue(t);return s.style.setProperty(t,e),o=>{o&&s.style.setProperty(t,n)}},mr=(t,e)=>r=>{const s=r.element,n=s.style.getPropertyValue(t);return e.on(o=>s.style.setProperty(t,o)),o=>{o&&s.style.setProperty(t,n)}},gr=new Proxy({},{get:(t,e)=>r=>d.is(r)?mr(e,r):pr(e,r)});exports.Async=qt;exports.BindChecked=Xt;exports.BindDate=Gt;exports.BindDateTime=Jt;exports.BindNumber=zt;exports.BindText=Ht;exports.Computed=w;exports.Conjunction=Zt;exports.DOMContext=g;exports.DOMNode=sr;exports.El=re;exports.ElNS=se;exports.ElementPosition=D;exports.Empty=S;exports.Ensure=et;exports.ForEach=rt;exports.Fragment=p;exports.LazyUnless=tt;exports.LazyWhen=he;exports.MapSignal=or;exports.MemoryStore=K;exports.NotEmpty=ir;exports.OnChecked=He;exports.OnCtx=rr;exports.OnMount=lr;exports.OnUnmount=U;exports.OneOf=$;exports.OneOfField=fe;exports.OneOfKind=Kt;exports.OneOfTuple=Qt;exports.OneOfType=Yt;exports.OneOfValue=Ze;exports.Portal=ur;exports.Prop=C;exports.Provide=fr;exports.ProviderNotFoundError=qe;exports.RenderingError=st;exports.Repeat=pe;exports.Signal=d;exports.Task=ce;exports.TextNode=gt;exports.Unless=nr;exports.Use=xt;exports.UseProvider=er;exports.UseProviders=tr;exports.UseSSRDone=It;exports.Value=h;exports.When=de;exports.WithProvider=dr;exports.WithProviders=hr;exports._addNodeTracker=ie;exports._clearSSR=We;exports._getSelfOrParentElement=Be;exports._isElement=x;exports._makeGetter=Z;exports._makeSetter=Y;exports._maybeAddAttributeTracker=ne;exports._maybeAddClassTracker=oe;exports._maybeAddTextTracker=le;exports._removeDOMNode=m;exports._setAttribute=Ie;exports._setBooleanProperty=Me;exports._setDateProperty=Fe;exports._setNumberProperty=Ve;exports._setStringProperty=$e;exports._signalText=te;exports._staticText=ee;exports.animateSignal=pt;exports.animateSignals=ke;exports.aria=St;exports.attr=A;exports.dataAttr=vt;exports.emitChecked=Bt;exports.emitPreventDefault=Ut;exports.emitStopImmediatePropagation=Wt;exports.emitStopPropagation=jt;exports.emitValue=Xe;exports.emitValueAsDate=Qe;exports.emitValueAsDateTime=Ye;exports.emitValueAsNumber=Ke;exports.endInterpolate=Te;exports.guessInterpolate=Oe;exports.html=Pt;exports.input=Et;exports.interpolateDate=De;exports.interpolateNumber=Pe;exports.interpolateString=Ee;exports.isSSR=T;exports.localStorageProp=dt;exports.makeComputed=W;exports.makeComputedOf=ct;exports.makeComputedRecord=mt;exports.makeEffect=be;exports.makeEffectOf=ft;exports.makeProp=L;exports.makeProviderMark=cr;exports.makeSignal=R;exports.math=bt;exports.mathAttr=At;exports.on=F;exports.prepareSSR=$t;exports.removeTextTrackers=je;exports.render=ar;exports.renderWithContext=me;exports.renderableOfTNode=c;exports.sessionStorageProp=ht;exports.storedProp=Q;exports.style=gr;exports.svg=Tt;exports.svgAttr=wt;
1
+ "use strict";var st=Object.defineProperty;var de=r=>{throw TypeError(r)};var nt=(r,e,t)=>e in r?st(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t;var i=(r,e,t)=>nt(r,typeof e!="symbol"?e+"":e,t),fe=(r,e,t)=>e.has(r)||de("Cannot "+t);var M=(r,e,t)=>(fe(r,e,"read from private field"),t?t.call(r):e.get(r)),pe=(r,e,t)=>e.has(r)?de("Cannot add the same private member more than once"):e instanceof WeakSet?e.add(r):e.set(r,t),z=(r,e,t,s)=>(fe(r,e,"write to private field"),s?s.call(r,t):e.set(r,t),t);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const ye=(r,e,t)=>r+(e-r)*t,me=97,we=(r,e,t)=>{const s=Math.max(r.length,e.length);let n="";for(let o=0;o<s;o++){let l=r.charCodeAt(o);isNaN(l)&&(l=me);let a=e.charCodeAt(o);isNaN(a)&&(a=me),n+=String.fromCharCode(l+(a-l)*t)}return n},_e=(r,e,t)=>new Date(r.getTime()+(e.getTime()-r.getTime())*t),Pe=(r,e)=>e,ve=r=>typeof r=="number"?ye:typeof r=="string"?we:r instanceof Date?_e:Pe;var w;class D{constructor(e,t){i(this,"counter");i(this,"isFirst");i(this,"isEven");i(this,"isOdd");pe(this,w);i(this,"dispose",()=>{M(this,w)!=null&&(M(this,w).dispose(),z(this,w,void 0))});this.index=e,this.total=t,this.counter=e+1,this.isFirst=e===0,this.isEven=e%2===1,this.isOdd=e%2===0}get isLast(){return M(this,w)==null&&z(this,w,this.total.map(e=>this.counter===e)),M(this,w)}}w=new WeakMap;const L=class L{constructor(e,t){i(this,"$__signal__",!0);i(this,"_value");i(this,"_derivatives",[]);i(this,"_onValueListeners",[]);i(this,"_onDisposeListeners",[]);i(this,"get",()=>this._value);i(this,"hasListeners",()=>this._onValueListeners.length>0);i(this,"on",e=>(e(this.get()),this._onValueListeners.push(e),()=>{this._onValueListeners.splice(this._onValueListeners.indexOf(e),1)}));i(this,"_setAndNotify",(e,t)=>{const s=this.equals(this._value,e);s||(this._value=e),(t||!s)&&this._onValueListeners.forEach(n=>n(e))});i(this,"_disposed",!1);i(this,"isDisposed",()=>this._disposed);i(this,"onDispose",e=>{this._onDisposeListeners.push(e)});i(this,"dispose",()=>{this._disposed||(this._disposed=!0,this._onDisposeListeners.forEach(e=>e()),this._onDisposeListeners.length=0,this._derivatives.length=0)});i(this,"map",(e,t=(s,n)=>s===n)=>{const s=new S(()=>{try{return e(this.get())}catch(n){throw console.error("Error in Signal.map:",n),n}},t);return this.setDerivative(s),s});i(this,"flatMap",(e,t=(s,n)=>s===n)=>{const s=new S(()=>{try{return e(this.get()).get()}catch(n){throw console.error("Error in Signal.flatMap:",n),n}},t);return this.setDerivative(s),s});i(this,"tap",e=>this.map(t=>(e(t),t)));i(this,"at",e=>this.map(t=>t[e]));i(this,"_$");i(this,"filter",(e,t)=>{let s=t??this.get();const n=new S(()=>{try{const o=this.get();return s=e(o)?o:s}catch(o){throw console.error("Error in Signal.filter:",o),o}},this.equals);return this.setDerivative(n),n});i(this,"filterMap",(e,t,s=(n,o)=>n===o)=>{let n=t;const o=new S(()=>{try{const l=this.get(),a=e(l);return n=a??n}catch(l){throw console.error("Error in Signal.filterMap:",l),l}},s);return this.setDerivative(o),o});i(this,"mapAsync",(e,t,s,n=(o,l)=>o===l)=>{const o=k(t,n);let l=0,a=new AbortController;return o.onDispose(this.on(async c=>{const d=++l;a.abort(),a=new AbortController;try{const h=await e(c,{abortSignal:a.signal});d===l&&o.set(h)}catch(h){if(d===l)if(s!=null)o.set(s(h));else throw h}})),o});i(this,"mapMaybe",(e,t)=>this.map(s=>e(s)??t));i(this,"feedProp",(e,t=!1)=>{const s=this.on(e.set);return e.onDispose(s),t?this.onDispose(e.dispose):this.onDispose(s),e});i(this,"deriveProp",(e=!0)=>this.feedProp(k(this.get()),e));i(this,"count",()=>{let e=0;return this.map(()=>++e)});i(this,"setDerivative",e=>{this._derivatives.push(e),e.onDispose(()=>{this._derivatives.splice(this._derivatives.indexOf(e),1)}),e.onDispose(this.on(e.setDirty)),this.onDispose(e.dispose)});this.equals=t,this._value=e}get value(){return this._value}get $(){return this._$!==void 0?this._$:this._$=new Proxy(this,{get:(e,t)=>this.at(t)})}};i(L,"ofPromise",(e,t,s,n=(o,l)=>o===l)=>{const o=new L(t,n);return e.then(l=>o._setAndNotify(l,!1)).catch(l=>{s!=null?o._setAndNotify(s(l),!1):console.error("Unhandled promise rejection in Signal.ofPromise:",l)}),o}),i(L,"is",e=>e!=null&&e.$__signal__===!0);let f=L;const it=typeof queueMicrotask=="function"?queueMicrotask:r=>Promise.resolve().then(r);class S extends f{constructor(t,s){super(void 0,s);i(this,"$__computed__",!0);i(this,"_isDirty",!1);i(this,"setDirty",()=>{this._isDirty||this._disposed||(this._isDirty=!0,this._derivatives.forEach(t=>t.setDirty()),this._scheduleNotify())});i(this,"_scheduleCount",0);i(this,"_scheduleNotify",()=>{const t=++this._scheduleCount;it(()=>{this._scheduleCount!==t||this._disposed!==!1||this._isDirty&&(this._isDirty=!1,this._setAndNotify(this._fn(),!1))})});i(this,"get",()=>(this._isDirty&&(this._isDirty=!1,this._value=this._fn(),this._setAndNotify(this._value,!0)),this._value));this._fn=t,this.setDirty()}static is(t){return t!=null&&t.$__computed__===!0}get value(){return this.get()}}const q=class q extends f{constructor(){super(...arguments);i(this,"$__prop__",!0);i(this,"set",t=>{this._setAndNotify(t,!1)});i(this,"update",t=>{this._setAndNotify(t(this.get()),!1)});i(this,"reducer",(t,...s)=>{const n=this;return function o(l){const a=n.value;n.update(c=>t(c,l)),!n.equals(a,n.value)&&s.forEach(c=>c({previousState:a,state:n.value,action:l,dispatch:o}))}});i(this,"iso",(t,s,n=(o,l)=>o===l)=>{const o=new q(t(this.get()),n);return o.onDispose(this.on(l=>o.set(t(l)))),o.on(l=>this._setAndNotify(s(l),!1)),o});i(this,"atProp",t=>this.iso(s=>s[t],s=>({...this.value,[t]:s})))}get value(){return this.get()}set value(t){this._setAndNotify(t,!1)}};i(q,"is",t=>t!=null&&t.$__prop__===!0);let N=q;const F=(r,e,t=(s,n)=>s===n)=>{const s=new S(r,t);return e.forEach(n=>n.setDerivative(s)),s},Se=(r,e)=>F(r,e).dispose,k=(r,e=(t,s)=>t===s)=>new N(r,e),$=(r,e=(t,s)=>t===s)=>new f(r,e),J=()=>typeof window<"u"?window:void 0,p={map:(r,e)=>f.is(r)?r.map(e):e(r),toSignal:(r,e)=>f.is(r)?r:$(r,e),maybeToSignal:(r,e)=>{if(r!=null)return p.toSignal(r,e)},get:r=>f.is(r)?r.get():r,on:(r,e)=>f.is(r)?r.on(e):(e(r),()=>{}),dispose:r=>{f.is(r)&&r.dispose()}},ot=(...r)=>(e,t)=>{const s=r.filter(n=>f.is(n));return F(()=>e(...r.map(n=>p.get(n))),s,t)},lt=(...r)=>e=>{const t=r.filter(s=>f.is(s));Se(()=>e(...r.map(p.get)),t)};class Q{constructor(){i(this,"_store",new Map);i(this,"getItem",e=>this._store.get(e)??null);i(this,"setItem",(e,t)=>{this._store.set(e,t)})}}const X=({key:r,defaultValue:e,store:t,serialize:s=JSON.stringify,deserialize:n=JSON.parse,equals:o=(a,c)=>a===c,onLoad:l=a=>a})=>{const a=t.getItem(r),c=new N(a!=null?l(n(a)):typeof e=="function"?e():e,o);return c.on(d=>{t.setItem(r,s(d))}),c},at=r=>{var e;return X({...r,store:((e=J())==null?void 0:e.localStorage)??new Q})},ct=r=>{var e;return X({...r,store:((e=J())==null?void 0:e.sessionStorage)??new Q})};function ge(r){return typeof requestAnimationFrame=="function"?requestAnimationFrame(r):setTimeout(r,0)}const Ce=(r,e,t,s)=>{const n=(s==null?void 0:s.duration)??300,o=(s==null?void 0:s.easing)??(y=>y),l=(s==null?void 0:s.equals)??((y,j)=>y===j);let a=s==null?void 0:s.interpolate,c=r,d=e(),h=performance.now(),O=null,A=!0;const G=new S(e,l),b=k(r,l);b.onDispose(()=>{O!==null&&cancelAnimationFrame(O)}),b.onDispose(G.dispose),t.forEach(y=>{y.setDerivative(G),y.onDispose(b.dispose)});const tt=y=>{d=y,h=performance.now(),c=b.value,A&&(A=!1,O=ge(ue))},ue=()=>{const j=(performance.now()-h)/p.get(n),rt=o(j);a==null&&(a=ve(c));let he=a(c,d,rt);j>=1?(A=!0,he=d):O=ge(ue),b.set(he)};return G.on(tt),b},ut=(r,e)=>{const{initialValue:t,...s}=e??{};return Ce(t??r.get(),r.get,[r],s)},ht=(r,e)=>{const{signals:t,literals:s}=Object.entries(r).reduce(({signals:o,literals:l},[a,c])=>(f.is(c)?o.push([a,c]):l[a]=c,{signals:o,literals:l}),{signals:[],literals:{}}),n=t.map(([,o])=>o);return F(()=>(t.forEach(([o,l])=>s[o]=l.value),e(s)),n)},Te=new Set(["checked","disabled","hidden","selected"]),xe=new Set(["rowSpan","colSpan","tabIndex","valueAsNumber"]),Oe=new Set(["valueAsDate"]),be=new Set(["value","textContent","innerText","innerHTML","outerHTML","className","classList"]),Ee=(r,e)=>Te.has(r)?t=>{t==null?e[r]=null:e[r]=!!t}:xe.has(r)?t=>{t==null?e[r]=null:e[r]=Number(t)}:Oe.has(r)?t=>{t==null?e[r]=null:e[r]=t}:be.has(r)?t=>{t==null?e[r]=null:e[r]=String(t)}:t=>{t==null?e.removeAttribute(r):e.setAttribute(r,t)},De=(r,e)=>Te.has(r)?()=>!!e[r]:xe.has(r)?()=>Number(e[r]):Oe.has(r)?()=>e[r]:be.has(r)?()=>String(e[r]):()=>e.getAttribute(r),B=r=>{const e=r;e&&e.onblur&&(e.onblur=null),!(!r||r.ownerDocument===void 0)&&r.parentElement&&r.parentElement.removeChild(r)},ke=r=>Y(r)?r:r.parentElement,Y=r=>r.nodeType===1;class Z extends Error{constructor(e){super(`Provider not found: ${e.description}`)}}class C{constructor(e,t,s,n){i(this,"createElement",(e,t)=>t!==void 0?this.document.createElementNS(t,e):this.document.createElement(e));i(this,"makeChildElement",(e,t)=>{const s=this.createElement(e,t);return this.appendOrInsert(s),this.withElement(s)});i(this,"createText",e=>this.document.createTextNode(e));i(this,"makeChildText",e=>{const t=this.createText(e);return this.appendOrInsert(t),this.withReference(t)});i(this,"setText",e=>{this.reference.nodeValue=e});i(this,"getText",()=>{var e;return((e=this.reference)==null?void 0:e.nodeValue)??this.element.textContent??""});i(this,"makeRef",()=>{const e=this.createText("");return this.appendOrInsert(e),this.withReference(e)});i(this,"appendOrInsert",e=>{this.reference===void 0?this.element.appendChild(e):this.element.insertBefore(e,this.reference)});i(this,"withElement",e=>new C(this.document,e,void 0,this.providers));i(this,"makePortal",e=>{const t=this.document.querySelector(e);if(t==null)throw new Error(`Cannot find element by selector for portal: ${e}`);return this.withElement(t)});i(this,"withReference",e=>new C(this.document,this.element,e,this.providers));i(this,"withProviders",e=>new C(this.document,this.element,this.reference,{...this.providers,...e}));i(this,"getProvider",e=>{if(this.providers[e]===void 0)throw new Z(e);return this.providers[e]});i(this,"clear",e=>{e&&(this.reference!==void 0?B(this.reference):B(this.element))});i(this,"addClasses",e=>{this.element.classList.add(...e)});i(this,"removeClasses",e=>{this.element.classList.remove(...e)});i(this,"getClasses",()=>Array.from(this.element.classList));i(this,"on",(e,t)=>(this.element.addEventListener(e,t),s=>{s&&this.element.removeEventListener(e,t)}));i(this,"isBrowserDOM",()=>!0);i(this,"isHeadlessDOM",()=>!1);i(this,"setStyle",(e,t)=>{this.element.style.setProperty(e,t)});i(this,"getStyle",e=>this.element.style.getPropertyValue(e));i(this,"makeAccessors",e=>({get:De(e,this.element),set:Ee(e,this.element)}));this.document=e,this.element=t,this.reference=s,this.providers=n}static of(e,t){return new C(e.ownerDocument,e,t,{})}}const g=Symbol("class"),P=Symbol("style"),E=Symbol("handler"),Ae=()=>Math.random().toString(36).substring(2,15),dt=r=>r.replace(/<[^>]*>?/g,"");class Me{constructor(e){i(this,"id",Ae());i(this,"properties",{});i(this,"children",[]);i(this,"isElement",()=>!0);i(this,"isText",()=>!1);i(this,"getText",()=>this.properties.innerText!=null?this.properties.innerText:this.properties.innerHTML!=null?dt(this.properties.innerHTML):this.children.map(e=>e.getText()).join(""));i(this,"removeChild",e=>{const t=this.children.indexOf(e);t!==-1&&this.children.splice(t,1)});i(this,"remove",()=>{if(this.parent!=null)this.parent.removeChild(this);else throw new Error("Parent is undefined")});i(this,"getPortals",()=>{const e=this.elements().flatMap(t=>t.isPortal()?[t,...t.getPortals()]:t.getPortals());return this.isPortal()&&e.unshift(this),e});i(this,"elements",()=>this.children.filter(e=>e.isElement()));i(this,"hasInnerHTML",()=>this.properties.innerHTML!=null);i(this,"getInnerHTML",()=>this.properties.innerHTML??"");i(this,"getInnerText",()=>this.properties.innerText??"");i(this,"hasInnerText",()=>this.properties.innerText!=null);i(this,"hasChildren",()=>this.children.length>0);i(this,"hasClasses",()=>this.properties[g]!=null);i(this,"hasStyles",()=>this.properties[P]!=null);i(this,"hasAttributes",()=>Object.keys(this.properties).length>0);i(this,"hasHandlers",()=>this.properties[E]!=null);i(this,"hasRenderableProperties",()=>this.hasClasses()||this.hasAttributes()||this.hasStyles());i(this,"getById",e=>{if(this.properties.id===e)return this;for(const t of this.elements()){const s=t.getById(e);if(s!=null)return s}});i(this,"trigger",(e,t)=>{((this.properties[E]??{})[e]??[]).forEach(n=>n(t))});i(this,"click",()=>{this.trigger("click",{})});i(this,"on",(e,t)=>{var o;const s=(o=this.properties)[E]??(o[E]={}),n=t;return s[e]=[...s[e]??[],n],()=>{const l=s[e]??[],a=l.indexOf(n);a!==-1&&(l.splice(a,1),l.length===0?(delete s[e],Object.keys(s).length===0&&delete this.properties[E]):s[e]=l)}});i(this,"addClasses",e=>{var s;if(e.length===0)return;const t=(s=this.properties)[g]??(s[g]=[]);e.forEach(n=>{t.includes(n)||t.push(n)})});i(this,"removeClasses",e=>{var s;if(e.length===0)return;const t=(s=this.properties)[g]??(s[g]=[]);e.forEach(n=>{const o=t.indexOf(n);o!==-1&&t.splice(o,1)}),t.length===0&&delete this.properties[g]});i(this,"getClasses",()=>this.properties[g]??[]);i(this,"getAttributes",()=>Object.entries(this.properties).filter(([e])=>!["innerText","innerHTML"].includes(e)));i(this,"getVisibleAttributes",()=>Reflect.ownKeys(this.properties).flatMap(e=>e===g?[["class",this.getClasses()]]:e===P?[["style",this.getStyles()]]:typeof e=="string"?[[e,String(this.properties[e])]]:[]));i(this,"setStyle",(e,t)=>{var n;const s=(n=this.properties)[P]??(n[P]={});s[e]=t,t===""&&(delete s[e],Object.keys(s).length===0&&delete this.properties[P])});i(this,"getStyle",e=>{var t;return((t=this.properties[P])==null?void 0:t[e])??""});i(this,"getStyles",()=>this.properties[P]??{});i(this,"makeAccessors",e=>{const t=this.properties;return{get:()=>t[e],set:s=>t[e]=s}});this.parent=e}}const ft=r=>r.replace(/"/g,"&quot;"),pt=r=>r.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;");class Le extends Me{constructor(t,s,n){super(n);i(this,"isPortal",()=>!1);i(this,"toHTML",()=>{const t=this.children.map(l=>l.toHTML()).join(""),s=this.namespace?` xmlns="${this.namespace}"`:"";let n=null;const o=this.getVisibleAttributes().map(([l,a])=>l==="class"?` class="${a.join(" ")}"`:l==="style"?typeof a=="string"?` style="${a}"`:` style="${Object.entries(a).map(([c,d])=>`${c}: ${d};`).join(" ")}"`:mt.has(l)?` ${l}`:l==="innerHTML"?(n=a,""):l==="innerText"?(n=pt(a),""):` ${l}="${ft(a)}"`).join("");return gt.has(this.tagName)&&t===""?`<${this.tagName}${s}${o} />`:`<${this.tagName}${s}${o}>${n??t}</${this.tagName}>`});this.tagName=t,this.namespace=s}}class K extends Me{constructor(t,s){super(s);i(this,"isPortal",()=>!0);i(this,"toHTML",()=>"");i(this,"contentToHTML",()=>this.children.map(t=>t.toHTML()).join(""));this.selector=t}}class Ne{constructor(e){i(this,"id",Ae());i(this,"isElement",()=>!1);i(this,"isText",()=>!0);i(this,"getText",()=>this.text);i(this,"toHTML",()=>this.text);this.text=e}}class T{constructor(e,t,s,n){i(this,"appendOrInsert",e=>{if(this.reference!=null){const t=this.element.children.indexOf(this.reference);this.element.children.splice(t,0,e)}else this.element.children.push(e)});i(this,"makeChildElement",(e,t)=>{const s=new Le(e,t,this.element);return this.appendOrInsert(s),new T(s,void 0,this.container,this.providers)});i(this,"makeChildText",e=>{const t=new Ne(e);return this.appendOrInsert(t),new T(this.element,t,this.container,this.providers)});i(this,"setText",e=>{this.reference&&this.reference.isText()&&(this.reference.text=e)});i(this,"getText",()=>{var e;return((e=this.reference)==null?void 0:e.getText())??this.element.getText()});i(this,"makeRef",()=>this.makeChildText(""));i(this,"makePortal",e=>{const t=new K(e,this.element);return this.appendOrInsert(t),new T(t,void 0,this.container,this.providers)});i(this,"withProviders",e=>new T(this.element,this.reference,this.container,{...this.providers,...e}));i(this,"getProvider",e=>{if(this.providers[e]===void 0)throw new Z(e);return this.providers[e]});i(this,"clear",e=>{e&&(this.reference!==void 0?this.element.removeChild(this.reference):this.element.remove())});i(this,"on",(e,t)=>this.element.on(e,t));i(this,"addClasses",e=>this.element.addClasses(e));i(this,"removeClasses",e=>this.element.removeClasses(e));i(this,"getClasses",()=>this.element.getClasses());i(this,"isBrowserDOM",()=>!1);i(this,"isHeadlessDOM",()=>!0);i(this,"setStyle",(e,t)=>this.element.setStyle(e,t));i(this,"getStyle",e=>this.element.getStyle(e));i(this,"makeAccessors",e=>this.element.makeAccessors(e));this.element=e,this.reference=t,this.container=s,this.providers=n}}const mt=new Set(["checked","disabled","multiple","readonly","required","selected"]),gt=new Set(["img","br","hr","input","link","meta"]),ee=r=>e=>{const t=e.makeChildText(r);return s=>t.clear(s)},te=r=>e=>{const t=e.makeChildText(r.value),s=r.on(n=>t.setText(n));return n=>{s(),t.clear(n)}},yt=r=>f.is(r)?te(r):ee(r),m=(...r)=>e=>{const t=r.map(s=>u(s)(e));return s=>{t.forEach(n=>n(s))}},_=()=>()=>{},wt=r=>e=>(e.addClasses(r),t=>{t&&e.removeClasses(r)}),_t=r=>e=>{let t=[];const s=r.on(n=>{e.removeClasses(t),t=(n??"").split(" ").filter(o=>o.length>0),e.addClasses(t)});return n=>{s(),n&&e.removeClasses(t),t.length=0}},H=(r,e)=>t=>{const{get:s,set:n}=t.makeAccessors(r),o=s();return n(e),l=>{l&&n(o)}},V=(r,e)=>t=>{const{get:s,set:n}=t.makeAccessors(r),o=s(),l=e.on(n);return a=>{l(),a&&n(o)}},x=new Proxy({},{get:(r,e)=>e==="class"?t=>f.is(t)?_t(t):wt((t??"").split(" ").filter(s=>s.length>0)):t=>f.is(t)?V(e,t):H(e,t)}),Pt=new Proxy({},{get:(r,e)=>t=>f.is(t)?V(`data-${e}`,t):H(`data-${e}`,t)}),vt=new Proxy({},{get:(r,e)=>t=>f.is(t)?V(`aria-${e}`,t):H(`aria-${e}`,t)}),St=new Proxy({},{get:(r,e)=>t=>f.is(t)?V(e,t):H(e,t)}),Ct=new Proxy({},{get:(r,e)=>t=>f.is(t)?V(e,t):H(e,t)}),u=r=>{if(r==null)return _;if(Array.isArray(r))return m(...r.map(u));if(typeof r=="string")return ee(r);if(f.is(r))return te(r);if(typeof r=="function")return r;throw new Error(`Unknown type: '${typeof r}' for child: ${r}`)},re=(r,...e)=>t=>{const s=t.makeChildElement(r,void 0),n=e.map(o=>u(o)(s));return o=>{n.forEach(l=>l(!1)),s.clear(o)}},se=(r,e,...t)=>s=>{const n=s.makeChildElement(r,e),o=t.map(l=>u(l)(n));return l=>{o.forEach(a=>a(!1)),n.clear(l)}},Tt=new Proxy({},{get:(r,e)=>(...t)=>re(e,t.flatMap(u))}),xt=new Proxy({},{get:(r,e)=>(...t)=>re("input",x.type(e),...t)}),Ot="http://www.w3.org/2000/svg",bt=new Proxy({},{get:(r,e)=>(...t)=>se(e,Ot,t.flatMap(u))}),Et="http://www.w3.org/1998/Math/MathML",Dt=new Proxy({},{get:(r,e)=>(...t)=>se(e,Et,t.flatMap(u))}),ne=(r,e)=>{if(typeof e=="function")return ne(r,{then:e});const t=e.pending!=null?u(e.pending):_,s=e.then,n=e.error!=null?o=>u(e.error(o)):()=>_;return o=>{let l=!0;const a=r(),c=o.makeRef();let d=u(t)(c);return a.then(h=>{l&&(d(!0),d=u(s(h))(c))},h=>{l&&(d(!0),d=u(n(h))(c))}),h=>{l=!1,d(h),c.clear(h)}}},kt=(r,e)=>ne(()=>r,e),$e=(r,e)=>t=>t.on(r,e),He=r=>$e("click",e=>{e.preventDefault();const t=e.target;setTimeout(()=>{const s=t.ownerDocument!=null?t==null?void 0:t.checked:void 0;s!=null&&r(!s)},0)}),I=new Proxy({},{get:(r,e)=>t=>$e(e,t)}),Ve=r=>e=>{const t=e.target;r(t.value)},Ie=r=>e=>{const t=e.target;r(t.valueAsNumber)},Re=r=>e=>{const t=e.target;if(t.value==="")return;const s=t.value.split("-"),n=new Date(Number(s[0]),Number(s[1])-1,Number(s[2].substring(0,2)));r(n)},je=r=>e=>{const t=e.target;if(t.value==="")return;const s=t.value.split("T"),n=s[0].split("-"),o=new Date(Number(n[0]),Number(n[1])-1,Number(n[2])),l=s[1].split(":");o.setHours(Number(l[0])),o.setMinutes(Number(l[1])),o.setSeconds(Number(l[2])),r(o)},At=r=>e=>{const t=e.target;r(t.checked)},Mt=r=>e=>{e.preventDefault(),r()},Lt=r=>e=>{e.stopPropagation(),r()},Nt=r=>e=>{e.stopImmediatePropagation(),r()},$t=(r,e="input")=>m(x.valueAsDate(r),I[e](Re(r.set))),Ht=(r,e="input")=>m(x.valueAsDate(r),I[e](je(r.set))),Vt=(r,e="input")=>m(x.valueAsNumber(r),I[e](Ie(r.set))),It=(r,e="input")=>m(x.value(r),I[e](Ve(r.set))),Rt=r=>m(x.checked(r),He(r.set)),R=(r,e)=>{if(f.is(r))return s=>{const n=s.makeRef();let o,l;const a=r.map(h=>Object.keys(h)[0]);let c;const d=a.on(h=>{if(h!==c){l==null||l.dispose(),o==null||o(!0),l=r.map(A=>A[h]);const O=e[h](l);o=u(O)(n),c=h}});return h=>{d(),n.clear(h),o==null||o(h)}};const t=Object.keys(r)[0];return u(e[t]($(r[t])))},ie=(r,e,t)=>R(p.map(r,s=>({[s[e]]:s})),t),jt=(r,e)=>ie(r,"kind",e),Bt=(r,e)=>{const t=p.map(r,([s,n])=>({[s]:n}));return R(t,e)},Ut=(r,e)=>ie(r,"type",e),Be=(r,e)=>R(p.map(r,t=>({[t]:!0})),e),qt=(r,e={})=>t=>{const s=(e==null?void 0:e.firstSeparator)??r,n=(e==null?void 0:e.lastSeparator)??r;return Be(t.map(o=>o.isFirst?"first":o.isLast?"last":"other"),{first:()=>s,last:()=>n,other:()=>r})},Ue=(r,e)=>t=>{const s=Object.values(r).reduce((n,o)=>{const l=t.getProvider(o);return n[o]=l,n},{});return u(e(s))(t)},Ft=(r,e)=>t=>{const s=[],n=Object.entries(r).reduce((o,[l,a])=>(s.push(a(c=>(Reflect.set(o,l,c),null))(t)),o),{});return s.push(e(n)(t)),o=>{s.forEach(l=>l(o))}},qe=(r,e)=>Ue([r],t=>u(e(t[r]))),Wt=(r,e)=>Ue(r,t=>u(e(t))),Gt=r=>e=>r(e)??(()=>{}),zt=r=>e=>(e.appendOrInsert(r),t=>{t&&B(r)}),Fe=(r,e,t)=>{if(f.is(r)){const s=r;return n=>{const o=n.makeRef();let l=null,a=!1;const c=k(null),d=s.on(h=>{h==null?(l==null||l(!0),l=u((t==null?void 0:t())??_)(o),a=!1):(c.value=h,a||(l==null||l(!0),l=u(e(c))(o),a=!0))});return h=>{d(),l==null||l(h),o.clear(h)}}}else{const s=r;if(s==null){const n=t==null?void 0:t();return n!=null?u(n):_}return u(e($(s)))}},U=r=>e=>t=>r(t,e),oe=(r,e,t)=>le(r,()=>e,()=>t),le=(r,e,t)=>Fe(p.map(r,s=>s?!0:null),e,t??void 0),Jt=(r,e,t)=>We(r,()=>e,()=>t),We=(r,e,t)=>le(p.map(r,s=>!s),e,t),ae=(r,e,t)=>t!=null?ae(r,s=>{const n=new D(s.index,s.total.map(o=>o-1));return m(U(n.dispose),u(e(s)),oe(s.isLast,_,t(n)))}):f.is(r)?s=>{const n=s.makeRef(),o=Array.from({length:r.value},(c,d)=>d).map(c=>new D(c,r)),l=o.map(c=>u(e(c))(n)),a=r.on(c=>{for(;c<l.length;)o.pop().dispose(),l.pop()(!0);for(let d=0;d<c;d++)if(o[d]==null){o[d]=new D(d,r);const h=u(e(o[d]));l[d]=h(n)}});return c=>{a(),n.clear(c)}}:m(...Array.from({length:r},(s,n)=>n).map(s=>u(e(new D(s,$(r)))))),Ge=(r,e,t)=>{if(t!=null)return Ge(r,(s,n)=>{const o=new D(n.index,n.total.map(l=>l-1));return m([U(o.dispose),u(e(s,n)),oe(n.isLast,_,t(o))])});{const s=p.map(r,o=>o.length),n=p.toSignal(r);return ae(s,o=>{const l=n.map(a=>a[o.index]);return m(U(l.dispose),u(e(l,o)))})}},ze=r=>e=>e.isBrowserDOM()?r(e)??(()=>{}):()=>{},Qt=r=>e=>e.isHeadlessDOM()?r(e)??(()=>{}):()=>{},Xt=r=>ze(e=>r(e.element)??(()=>{})),Yt=(r,e)=>{if(f.is(r)){const t=r;return s=>{s=s.makeRef();const n=t.map(a=>u(e(a)));let o=()=>{};const l=n.on(a=>{o(!0),o=a(s)});return a=>{l(),o(a)}}}return u(e(r))},Zt=(r,e,t=()=>_)=>R(p.map(r,s=>s.length>0?{notEmpty:s}:{whenEmpty:null}),{notEmpty:s=>e(s),whenEmpty:()=>t()}),W=(r,e)=>{const t=r(e);return()=>t(!0)},Kt=(r,e,{doc:t,clear:s}={})=>{const n=typeof e=="string"?(t??document).querySelector(e):e;if(n===null)throw new Je(`Cannot find element by selector for render: ${e}`);s!==!1&&(t??n.ownerDocument)!=null&&n.nodeType===1&&(n.innerHTML="");const o=ke(n),l=Y(n)?void 0:n,a=C.of(o,l);return W(r,a)},er=(r,e)=>{const t=k(e),s=new K(":root",void 0),n=new T(s,void 0,{currentURL:t},{});return{clear:W(r,n),root:s,currentURL:t}};class Je extends Error{constructor(e){super(e)}}const tr=(r,e)=>t=>{const s=t.makePortal(r);return W(u(e),s)},Qe=r=>Symbol(r),Xe=(r,e)=>t=>u(e)(t.withProviders(r)),rr=(...r)=>r.length>0?r.reduceRight((e,t)=>s=>e(t(s))):u,Ye=(r,e,t)=>Xe({[r]:e},u(t)),sr=(r,e)=>Xe(r,u(e)),ce=Qe("Probe"),v=new Map,Ze=(r,e,t)=>{if(v.has(r))throw new Error(`Probe already exists: ${r.description}`);return v.set(r,0),Ye(ce,n=>{let o=v.get(n);if(o==null)throw new Error(`Probe not found: ${n.description}`);--o===0?(e(),v.delete(n)):v.set(n,o)},t)},Ke=(r,e)=>qe(ce,t=>{const s=v.get(r);if(s==null)throw new Error(`Probe not found: ${r.description}`);return v.set(r,s+1),e(()=>t(r))}),et=Symbol("globalProbe"),nr=(r,e)=>Ze(et,r,e),ir=r=>Ke(et,r),or=(r,e)=>t=>{const s=t.getStyle(r);return t.setStyle(r,e),n=>{n&&t.setStyle(r,s)}},lr=(r,e)=>t=>{const s=t.getStyle(r);return e.on(n=>t.setStyle(r,n)),n=>{n&&t.setStyle(r,s)}},ar=new Proxy({},{get:(r,e)=>t=>f.is(t)?lr(e,t):or(e,t)});exports.Async=kt;exports.BindChecked=Rt;exports.BindDate=$t;exports.BindDateTime=Ht;exports.BindNumber=Vt;exports.BindText=It;exports.BrowserContext=C;exports.Computed=S;exports.Conjunction=qt;exports.DOMNode=zt;exports.El=re;exports.ElNS=se;exports.ElementPosition=D;exports.Empty=_;exports.Ensure=Fe;exports.ForEach=Ge;exports.Fragment=m;exports.HeadlessContext=T;exports.HeadlessElement=Le;exports.HeadlessPortal=K;exports.HeadlessText=Ne;exports.LazyUnless=We;exports.LazyWhen=le;exports.MapSignal=Yt;exports.MemoryStore=Q;exports.NotEmpty=Zt;exports.OnBrowserCtx=ze;exports.OnChecked=He;exports.OnCtx=Gt;exports.OnDispose=U;exports.OnElement=Xt;exports.OnHeadlessCtx=Qt;exports.OneOf=R;exports.OneOfField=ie;exports.OneOfKind=jt;exports.OneOfTuple=Bt;exports.OneOfType=Ut;exports.OneOfValue=Be;exports.Portal=tr;exports.Prop=N;exports.Provide=rr;exports.ProvideGlobalProbe=nr;exports.ProvideProbe=Ze;exports.ProviderNotFoundError=Z;exports.RenderingError=Je;exports.Repeat=ae;exports.Signal=f;exports.Task=ne;exports.TextNode=yt;exports.Unless=Jt;exports.Use=Ft;exports.UseGlobalProbe=ir;exports.UseProbe=Ke;exports.UseProvider=qe;exports.UseProviders=Wt;exports.Value=p;exports.When=oe;exports.WithProvider=Ye;exports.WithProviders=sr;exports._getSelfOrParentElement=ke;exports._isElement=Y;exports._makeGetter=De;exports._makeSetter=Ee;exports._removeDOMNode=B;exports._signalText=te;exports._staticText=ee;exports.animateSignal=ut;exports.animateSignals=Ce;exports.aria=vt;exports.attr=x;exports.dataAttr=Pt;exports.emitChecked=At;exports.emitPreventDefault=Mt;exports.emitStopImmediatePropagation=Nt;exports.emitStopPropagation=Lt;exports.emitValue=Ve;exports.emitValueAsDate=Re;exports.emitValueAsDateTime=je;exports.emitValueAsNumber=Ie;exports.endInterpolate=Pe;exports.getWindow=J;exports.guessInterpolate=ve;exports.html=Tt;exports.input=xt;exports.interpolateDate=_e;exports.interpolateNumber=ye;exports.interpolateString=we;exports.localStorageProp=at;exports.makeComputed=F;exports.makeComputedOf=ot;exports.makeComputedRecord=ht;exports.makeEffect=Se;exports.makeEffectOf=lt;exports.makeProp=k;exports.makeProviderMark=Qe;exports.makeSignal=$;exports.math=Dt;exports.mathAttr=Ct;exports.on=I;exports.probeMarker=ce;exports.render=Kt;exports.renderWithContext=W;exports.renderableOfTNode=u;exports.runHeadless=er;exports.sessionStorageProp=ct;exports.storedProp=X;exports.style=ar;exports.svg=bt;exports.svgAttr=St;
package/index.d.ts CHANGED
@@ -14,15 +14,18 @@ export * from './std/signal';
14
14
  export * from './std/signal-utils';
15
15
  export * from './std/value';
16
16
  export * from './dom/attr';
17
+ export * from './dom/browser-context';
17
18
  export * from './dom/dom-context';
18
19
  export * from './dom/dom-utils';
19
- export * from './dom/ssr';
20
+ export * from './dom/errors';
21
+ export * from './dom/headless-context';
22
+ export * from './dom/window';
20
23
  export * from './renderable/async';
21
24
  export * from './renderable/attribute';
22
25
  export * from './renderable/bind';
23
26
  export * from './renderable/conjunction';
24
27
  export * from './renderable/consumers';
25
- export * from './renderable/onctx';
28
+ export * from './renderable/on-ctx';
26
29
  export * from './renderable/domnode';
27
30
  export * from './renderable/element';
28
31
  export * from './renderable/empty';
@@ -30,12 +33,16 @@ export * from './renderable/ensure';
30
33
  export * from './renderable/foreach';
31
34
  export * from './renderable/fragment';
32
35
  export * from './renderable/on';
36
+ export * from './renderable/on-browser-ctx';
37
+ export * from './renderable/on-headless-ctx';
38
+ export * from './renderable/on-ctx';
39
+ export * from './renderable/on-dispose';
40
+ export * from './renderable/on-element';
41
+ export * from './renderable/oneof';
33
42
  export * from './renderable/map-signal';
34
43
  export * from './renderable/not-empty';
35
- export * from './renderable/onunmount';
36
- export * from './renderable/oneof';
37
- export * from './renderable/onmount';
38
44
  export * from './renderable/portal';
45
+ export * from './renderable/probe';
39
46
  export * from './renderable/providers';
40
47
  export * from './renderable/render';
41
48
  export * from './renderable/repeat';