@tempots/dom 24.0.0-next.1 → 24.0.0-next.10

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.
@@ -1,5 +1,5 @@
1
1
  import { Clear, ProviderMark, Providers } from '../types/domain';
2
- import { DOMContext } from './dom-context';
2
+ import { DOMContext, HandlerOptions } from './dom-context';
3
3
  import { HeadlessContext } from './headless-context';
4
4
  /**
5
5
  * `DOMContext` is an immutable class that represents the context of a DOM element.
@@ -166,9 +166,10 @@ export declare class BrowserContext implements DOMContext {
166
166
  * Adds an event listener to the element.
167
167
  * @param event - The event to listen for.
168
168
  * @param listener - The listener to call when the event occurs.
169
+ * @param options - The options for the event listener.
169
170
  * @returns A function to remove the event listener.
170
171
  */
171
- readonly on: <E>(event: string, listener: (event: E) => void) => Clear;
172
+ readonly on: <E>(event: string, listener: (event: E) => void, options?: HandlerOptions) => Clear;
172
173
  /**
173
174
  * Returns `true` if the context is a browser DOM context.
174
175
  * @returns `true` if the context is a browser DOM context.
@@ -1,6 +1,17 @@
1
1
  import { Clear, ProviderMark } from '../types/domain';
2
2
  import { BrowserContext } from './browser-context';
3
3
  import { HeadlessContext } from './headless-context';
4
+ /**
5
+ * Options for event listeners.
6
+ *
7
+ * @public
8
+ */
9
+ export type HandlerOptions = {
10
+ once?: boolean;
11
+ signal?: AbortSignal;
12
+ passive?: boolean;
13
+ capture?: boolean;
14
+ };
4
15
  /**
5
16
  * `DOMContext` is an immutable class that represents the context of a DOM element.
6
17
  * It provides methods and properties to manipulate and interact with the DOM element.
@@ -70,9 +81,10 @@ export interface DOMContext {
70
81
  * Adds an event listener to the element.
71
82
  * @param event - The event to listen for.
72
83
  * @param listener - The listener to call when the event occurs.
84
+ * @param options - The options for the event listener.
73
85
  * @returns A function to remove the event listener.
74
86
  */
75
- on<E>(event: string, listener: (event: E) => void): Clear;
87
+ on<E>(event: string, listener: (event: E) => void, options?: HandlerOptions): Clear;
76
88
  /**
77
89
  * Adds classes to the element.
78
90
  * @param tokens - The class names to add.
@@ -1,7 +1,7 @@
1
1
  import { Prop } from '../std/signal';
2
2
  import { ProviderMark, Clear, Providers } from '../types/domain';
3
3
  import { BrowserContext } from './browser-context';
4
- import { DOMContext } from './dom-context';
4
+ import { DOMContext, HandlerOptions } from './dom-context';
5
5
  declare abstract class HeadlessBase {
6
6
  readonly parent: HeadlessBase | undefined;
7
7
  readonly id: string;
@@ -30,7 +30,7 @@ declare abstract class HeadlessBase {
30
30
  readonly getById: (id: string) => HeadlessBase | undefined;
31
31
  readonly trigger: <E>(event: string, detail: E) => void;
32
32
  readonly click: () => void;
33
- readonly on: <E>(event: string, listener: (event: E) => void) => Clear;
33
+ readonly on: <E>(event: string, listener: (event: E) => void, options?: HandlerOptions) => Clear;
34
34
  readonly addClasses: (tokens: string[]) => void;
35
35
  readonly removeClasses: (tokens: string[]) => void;
36
36
  readonly getClasses: () => string[];
@@ -49,14 +49,14 @@ export declare class HeadlessElement extends HeadlessBase {
49
49
  readonly namespace: string | undefined;
50
50
  constructor(tagName: string, namespace: string | undefined, parent: HeadlessBase | undefined);
51
51
  readonly isPortal: () => this is HeadlessPortal;
52
- readonly toHTML: () => string;
52
+ readonly toHTML: (generatePlaceholders?: boolean) => string;
53
53
  }
54
54
  export declare class HeadlessPortal extends HeadlessBase {
55
55
  readonly selector: string;
56
56
  constructor(selector: string, parent: HeadlessBase | undefined);
57
57
  readonly isPortal: () => this is HeadlessPortal;
58
58
  readonly toHTML: () => string;
59
- readonly contentToHTML: () => string;
59
+ readonly contentToHTML: (generatePlaceholders?: boolean) => string;
60
60
  }
61
61
  export declare class HeadlessText {
62
62
  text: string;
package/index.cjs CHANGED
@@ -1 +1 @@
1
- "use strict";var Qe=Object.defineProperty;var ue=s=>{throw TypeError(s)};var Xe=(s,e,t)=>e in s?Qe(s,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):s[e]=t;var i=(s,e,t)=>Xe(s,typeof e!="symbol"?e+"":e,t),he=(s,e,t)=>e.has(s)||ue("Cannot "+t);var k=(s,e,t)=>(he(s,e,"read from private field"),t?t.call(s):e.get(s)),de=(s,e,t)=>e.has(s)?ue("Cannot add the same private member more than once"):e instanceof WeakSet?e.add(s):e.set(s,t),z=(s,e,t,r)=>(he(s,e,"write to private field"),r?r.call(s,t):e.set(s,t),t);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const me=(s,e,t)=>s+(e-s)*t,fe=97,ge=(s,e,t)=>{const r=Math.max(s.length,e.length);let n="";for(let o=0;o<r;o++){let l=s.charCodeAt(o);isNaN(l)&&(l=fe);let a=e.charCodeAt(o);isNaN(a)&&(a=fe),n+=String.fromCharCode(l+(a-l)*t)}return n},ye=(s,e,t)=>new Date(s.getTime()+(e.getTime()-s.getTime())*t),we=(s,e)=>e,_e=s=>typeof s=="number"?me:typeof s=="string"?ge:s instanceof Date?ye:we;var w;class D{constructor(e,t){i(this,"counter");i(this,"isFirst");i(this,"isEven");i(this,"isOdd");de(this,w);i(this,"dispose",()=>{k(this,w)!=null&&(k(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 k(this,w)==null&&z(this,w,this.total.map(e=>this.counter===e)),k(this,w)}}w=new WeakMap;const M=class M{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 r=this.equals(this._value,e);r||(this._value=e),(t||!r)&&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=(r,n)=>r===n)=>{const r=new S(()=>{try{return e(this.get())}catch(n){throw console.error("Error in Signal.map:",n),n}},t);return this.setDerivative(r),r});i(this,"flatMap",(e,t=(r,n)=>r===n)=>{const r=new S(()=>{try{return e(this.get()).get()}catch(n){throw console.error("Error in Signal.flatMap:",n),n}},t);return this.setDerivative(r),r});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 r=t??this.get();const n=new S(()=>{try{const o=this.get();return r=e(o)?o:r}catch(o){throw console.error("Error in Signal.filter:",o),o}},this.equals);return this.setDerivative(n),n});i(this,"filterMap",(e,t,r=(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}},r);return this.setDerivative(o),o});i(this,"mapAsync",(e,t,r,n=(o,l)=>o===l)=>{const o=L(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(r!=null)o.set(r(h));else throw h}})),o});i(this,"mapMaybe",(e,t)=>this.map(r=>e(r)??t));i(this,"feedProp",(e,t=!1)=>{const r=this.on(e.set);return e.onDispose(r),t?this.onDispose(e.dispose):this.onDispose(r),e});i(this,"deriveProp",(e=!0)=>this.feedProp(L(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(M,"ofPromise",(e,t,r,n=(o,l)=>o===l)=>{const o=new M(t,n);return e.then(l=>o._setAndNotify(l,!1)).catch(l=>{r!=null?o._setAndNotify(r(l),!1):console.error("Unhandled promise rejection in Signal.ofPromise:",l)}),o}),i(M,"is",e=>e!=null&&e.$__signal__===!0);let f=M;const Ye=typeof queueMicrotask=="function"?queueMicrotask:s=>Promise.resolve().then(s);class S extends f{constructor(t,r){super(void 0,r);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;Ye(()=>{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,...r)=>{const n=this;return function o(l){const a=n.value;n.update(c=>t(c,l)),!n.equals(a,n.value)&&r.forEach(c=>c({previousState:a,state:n.value,action:l,dispatch:o}))}});i(this,"iso",(t,r,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(r(l),!1)),o});i(this,"atProp",t=>this.iso(r=>r[t],r=>({...this.value,[t]:r})))}get value(){return this.get()}set value(t){this._setAndNotify(t,!1)}};i(q,"is",t=>t!=null&&t.$__prop__===!0);let b=q;const F=(s,e,t=(r,n)=>r===n)=>{const r=new S(s,t);return e.forEach(n=>n.setDerivative(r)),r},ve=(s,e)=>F(s,e).dispose,L=(s,e=(t,r)=>t===r)=>new b(s,e),N=(s,e=(t,r)=>t===r)=>new f(s,e),G=()=>typeof window<"u"?window:void 0,p={map:(s,e)=>f.is(s)?s.map(e):e(s),toSignal:(s,e)=>f.is(s)?s:N(s,e),maybeToSignal:(s,e)=>{if(s!=null)return p.toSignal(s,e)},get:s=>f.is(s)?s.get():s,on:(s,e)=>f.is(s)?s.on(e):(e(s),()=>{}),dispose:s=>{f.is(s)&&s.dispose()}},Ze=(...s)=>(e,t)=>{const r=s.filter(n=>f.is(n));return F(()=>e(...s.map(n=>p.get(n))),r,t)},Ke=(...s)=>e=>{const t=s.filter(r=>f.is(r));ve(()=>e(...s.map(p.get)),t)};class J{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 Q=({key:s,defaultValue:e,store:t,serialize:r=JSON.stringify,deserialize:n=JSON.parse,equals:o=(a,c)=>a===c,onLoad:l=a=>a})=>{const a=t.getItem(s),c=new b(a!=null?l(n(a)):typeof e=="function"?e():e,o);return c.on(d=>{t.setItem(s,r(d))}),c},et=s=>{var e;return Q({...s,store:((e=G())==null?void 0:e.localStorage)??new J})},tt=s=>{var e;return Q({...s,store:((e=G())==null?void 0:e.sessionStorage)??new J})};function pe(s){return typeof requestAnimationFrame=="function"?requestAnimationFrame(s):setTimeout(s,0)}const Se=(s,e,t,r)=>{const n=(r==null?void 0:r.duration)??300,o=(r==null?void 0:r.easing)??(y=>y),l=(r==null?void 0:r.equals)??((y,R)=>y===R);let a=r==null?void 0:r.interpolate,c=s,d=e(),h=performance.now(),x=null,A=!0;const W=new S(e,l),O=L(s,l);O.onDispose(()=>{x!==null&&cancelAnimationFrame(x)}),O.onDispose(W.dispose),t.forEach(y=>{y.setDerivative(W),y.onDispose(O.dispose)});const Ge=y=>{d=y,h=performance.now(),c=O.value,A&&(A=!1,x=pe(ae))},ae=()=>{const R=(performance.now()-h)/p.get(n),Je=o(R);a==null&&(a=_e(c));let ce=a(c,d,Je);R>=1?(A=!0,ce=d):x=pe(ae),O.set(ce)};return W.on(Ge),O},st=(s,e)=>{const{initialValue:t,...r}=e??{};return Se(t??s.get(),s.get,[s],r)},rt=(s,e)=>{const{signals:t,literals:r}=Object.entries(s).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])=>r[o]=l.value),e(r)),n)},Pe=new Set(["checked","disabled","hidden","selected"]),Ce=new Set(["rowSpan","colSpan","tabIndex","valueAsNumber"]),Te=new Set(["valueAsDate"]),xe=new Set(["value","textContent","innerText","innerHTML","outerHTML","className","classList"]),Oe=(s,e)=>Pe.has(s)?t=>{t==null?e[s]=null:e[s]=!!t}:Ce.has(s)?t=>{t==null?e[s]=null:e[s]=Number(t)}:Te.has(s)?t=>{t==null?e[s]=null:e[s]=t}:xe.has(s)?t=>{t==null?e[s]=null:e[s]=String(t)}:t=>{t==null?e.removeAttribute(s):e.setAttribute(s,t)},Ee=(s,e)=>Pe.has(s)?()=>!!e[s]:Ce.has(s)?()=>Number(e[s]):Te.has(s)?()=>e[s]:xe.has(s)?()=>String(e[s]):()=>e.getAttribute(s),j=s=>{const e=s;e&&e.onblur&&(e.onblur=null),!(!s||s.ownerDocument===void 0)&&s.parentElement&&s.parentElement.removeChild(s)},De=s=>X(s)?s:s.parentElement,X=s=>s.nodeType===1;class Y extends Error{constructor(e){super(`Provider not found: ${e.description}`)}}class P{constructor(e,t,r,n){i(this,"createElement",(e,t)=>t!==void 0?this.document.createElementNS(t,e):this.document.createElement(e));i(this,"makeChildElement",(e,t)=>{const r=this.createElement(e,t);return this.appendOrInsert(r),this.withElement(r)});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 P(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 P(this.document,this.element,e,this.providers));i(this,"withProviders",e=>new P(this.document,this.element,this.reference,{...this.providers,...e}));i(this,"getProvider",e=>{if(this.providers[e]===void 0)throw new Y(e);return this.providers[e]});i(this,"clear",e=>{e&&(this.reference!==void 0?j(this.reference):j(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),r=>{r&&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:Ee(e,this.element),set:Oe(e,this.element)}));this.document=e,this.element=t,this.reference=r,this.providers=n}static of(e,t){return new P(e.ownerDocument,e,t,{})}}const g=Symbol("class"),v=Symbol("style"),E=Symbol("handler"),Ae=()=>Math.random().toString(36).substring(2,15),nt=s=>s.replace(/<[^>]*>?/g,"");class ke{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?nt(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[v]!=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 r=t.getById(e);if(r!=null)return r}});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 r=(o=this.properties)[E]??(o[E]={}),n=t;return r[e]=[...r[e]??[],n],()=>{const l=r[e]??[],a=l.indexOf(n);a!==-1&&(l.splice(a,1),l.length===0?(delete r[e],Object.keys(r).length===0&&delete this.properties[E]):r[e]=l)}});i(this,"addClasses",e=>{var r;if(e.length===0)return;const t=(r=this.properties)[g]??(r[g]=[]);e.forEach(n=>{t.includes(n)||t.push(n)})});i(this,"removeClasses",e=>{var r;if(e.length===0)return;const t=(r=this.properties)[g]??(r[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===v?[["style",this.getStyles()]]:typeof e=="string"?[[e,String(this.properties[e])]]:[]));i(this,"setStyle",(e,t)=>{var n;const r=(n=this.properties)[v]??(n[v]={});r[e]=t,t===""&&(delete r[e],Object.keys(r).length===0&&delete this.properties[v])});i(this,"getStyle",e=>{var t;return((t=this.properties[v])==null?void 0:t[e])??""});i(this,"getStyles",()=>this.properties[v]??{});i(this,"makeAccessors",e=>{const t=this.properties;return{get:()=>t[e],set:r=>t[e]=r}});this.parent=e}}const it=s=>s.replace(/"/g,"&quot;"),ot=s=>s.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;");class Me extends ke{constructor(t,r,n){super(n);i(this,"isPortal",()=>!1);i(this,"toHTML",()=>{const t=this.children.map(l=>l.toHTML()).join(""),r=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(" ")}"`:lt.has(l)?` ${l}`:l==="innerHTML"?(n=a,""):l==="innerText"?(n=ot(a),""):` ${l}="${it(a)}"`).join("");return at.has(this.tagName)&&t===""?`<${this.tagName}${r}${o} />`:`<${this.tagName}${r}${o}>${n??t}</${this.tagName}>`});this.tagName=t,this.namespace=r}}class Z extends ke{constructor(t,r){super(r);i(this,"isPortal",()=>!0);i(this,"toHTML",()=>"");i(this,"contentToHTML",()=>this.children.map(t=>t.toHTML()).join(""));this.selector=t}}class be{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 C{constructor(e,t,r,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 r=new Me(e,t,this.element);return this.appendOrInsert(r),new C(r,void 0,this.container,this.providers)});i(this,"makeChildText",e=>{const t=new be(e);return this.appendOrInsert(t),new C(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 Z(e,this.element);return this.appendOrInsert(t),new C(t,void 0,this.container,this.providers)});i(this,"withProviders",e=>new C(this.element,this.reference,this.container,{...this.providers,...e}));i(this,"getProvider",e=>{if(this.providers[e]===void 0)throw new Y(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=r,this.providers=n}}const lt=new Set(["checked","disabled","multiple","readonly","required","selected"]),at=new Set(["img","br","hr","input","link","meta"]),K=s=>e=>{const t=e.makeChildText(s);return r=>t.clear(r)},ee=s=>e=>{const t=e.makeChildText(s.value),r=s.on(n=>t.setText(n));return n=>{r(),t.clear(n)}},ct=s=>f.is(s)?ee(s):K(s),m=(...s)=>e=>{const t=s.map(r=>u(r)(e));return r=>{t.forEach(n=>n(r))}},_=()=>()=>{},ut=s=>e=>(e.addClasses(s),t=>{t&&e.removeClasses(s)}),ht=s=>e=>{let t=[];const r=s.on(n=>{e.removeClasses(t),t=(n??"").split(" ").filter(o=>o.length>0),e.addClasses(t)});return n=>{r(),n&&e.removeClasses(t),t.length=0}},$=(s,e)=>t=>{const{get:r,set:n}=t.makeAccessors(s),o=r();return n(e),l=>{l&&n(o)}},H=(s,e)=>t=>{const{get:r,set:n}=t.makeAccessors(s),o=r(),l=e.on(n);return a=>{l(),a&&n(o)}},T=new Proxy({},{get:(s,e)=>e==="class"?t=>f.is(t)?ht(t):ut((t??"").split(" ").filter(r=>r.length>0)):t=>f.is(t)?H(e,t):$(e,t)}),dt=new Proxy({},{get:(s,e)=>t=>f.is(t)?H(`data-${e}`,t):$(`data-${e}`,t)}),ft=new Proxy({},{get:(s,e)=>t=>f.is(t)?H(`aria-${e}`,t):$(`aria-${e}`,t)}),pt=new Proxy({},{get:(s,e)=>t=>f.is(t)?H(e,t):$(e,t)}),mt=new Proxy({},{get:(s,e)=>t=>f.is(t)?H(e,t):$(e,t)}),u=s=>{if(s==null)return _;if(Array.isArray(s))return m(...s.map(u));if(typeof s=="string")return K(s);if(f.is(s))return ee(s);if(typeof s=="function")return s;throw new Error(`Unknown type: '${typeof s}' for child: ${s}`)},te=(s,...e)=>t=>{const r=t.makeChildElement(s,void 0),n=e.map(o=>u(o)(r));return o=>{n.forEach(l=>l(!1)),r.clear(o)}},se=(s,e,...t)=>r=>{const n=r.makeChildElement(s,e),o=t.map(l=>u(l)(n));return l=>{o.forEach(a=>a(!1)),n.clear(l)}},gt=new Proxy({},{get:(s,e)=>(...t)=>te(e,t.flatMap(u))}),yt=new Proxy({},{get:(s,e)=>(...t)=>te("input",T.type(e),...t)}),wt="http://www.w3.org/2000/svg",_t=new Proxy({},{get:(s,e)=>(...t)=>se(e,wt,t.flatMap(u))}),vt="http://www.w3.org/1998/Math/MathML",St=new Proxy({},{get:(s,e)=>(...t)=>se(e,vt,t.flatMap(u))}),re=(s,e)=>{if(typeof e=="function")return re(s,{then:e});const t=e.pending!=null?u(e.pending):_,r=e.then,n=e.error!=null?o=>u(e.error(o)):()=>_;return o=>{let l=!0;const a=s(),c=o.makeRef();let d=u(t)(c);return a.then(h=>{l&&(d(!0),d=u(r(h))(c))},h=>{l&&(d(!0),d=u(n(h))(c))}),h=>{l=!1,d(h),c.clear(h)}}},Pt=(s,e)=>re(()=>s,e),Le=(s,e)=>t=>t.on(s,e),Ne=s=>Le("click",e=>{e.preventDefault();const t=e.target;setTimeout(()=>{const r=t.ownerDocument!=null?t==null?void 0:t.checked:void 0;r!=null&&s(!r)},0)}),V=new Proxy({},{get:(s,e)=>t=>Le(e,t)}),$e=s=>e=>{const t=e.target;s(t.value)},He=s=>e=>{const t=e.target;s(t.valueAsNumber)},Ve=s=>e=>{const t=e.target;if(t.value==="")return;const r=t.value.split("-"),n=new Date(Number(r[0]),Number(r[1])-1,Number(r[2].substring(0,2)));s(n)},Ie=s=>e=>{const t=e.target;if(t.value==="")return;const r=t.value.split("T"),n=r[0].split("-"),o=new Date(Number(n[0]),Number(n[1])-1,Number(n[2])),l=r[1].split(":");o.setHours(Number(l[0])),o.setMinutes(Number(l[1])),o.setSeconds(Number(l[2])),s(o)},Ct=s=>e=>{const t=e.target;s(t.checked)},Tt=s=>e=>{e.preventDefault(),s()},xt=s=>e=>{e.stopPropagation(),s()},Ot=s=>e=>{e.stopImmediatePropagation(),s()},Et=(s,e="input")=>m(T.valueAsDate(s),V[e](Ve(s.set))),Dt=(s,e="input")=>m(T.valueAsDate(s),V[e](Ie(s.set))),At=(s,e="input")=>m(T.valueAsNumber(s),V[e](He(s.set))),kt=(s,e="input")=>m(T.value(s),V[e]($e(s.set))),Mt=s=>m(T.checked(s),Ne(s.set)),I=(s,e)=>{if(f.is(s))return r=>{const n=r.makeRef();let o,l;const a=s.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=s.map(A=>A[h]);const x=e[h](l);o=u(x)(n),c=h}});return h=>{d(),n.clear(h),o==null||o(h)}};const t=Object.keys(s)[0];return u(e[t](N(s[t])))},ne=(s,e,t)=>I(p.map(s,r=>({[r[e]]:r})),t),bt=(s,e)=>ne(s,"kind",e),Lt=(s,e)=>{const t=p.map(s,([r,n])=>({[r]:n}));return I(t,e)},Nt=(s,e)=>ne(s,"type",e),Re=(s,e)=>I(p.map(s,t=>({[t]:!0})),e),$t=(s,e={})=>t=>{const r=(e==null?void 0:e.firstSeparator)??s,n=(e==null?void 0:e.lastSeparator)??s;return Re(t.map(o=>o.isFirst?"first":o.isLast?"last":"other"),{first:()=>r,last:()=>n,other:()=>s})},je=(s,e)=>t=>{const r=Object.values(s).reduce((n,o)=>{const l=t.getProvider(o);return n[o]=l,n},{});return u(e(r))(t)},Ht=(s,e)=>t=>{const r=[],n=Object.entries(s).reduce((o,[l,a])=>(r.push(a(c=>(Reflect.set(o,l,c),null))(t)),o),{});return r.push(e(n)(t)),o=>{r.forEach(l=>l(o))}},Vt=(s,e)=>je([s],t=>u(e(t[s]))),It=(s,e)=>je(s,t=>u(e(t))),Rt=s=>e=>s(e)??(()=>{}),jt=s=>e=>(e.appendOrInsert(s),t=>{t&&j(s)}),Be=(s,e,t)=>{if(f.is(s)){const r=s;return n=>{const o=n.makeRef();let l=null,a=!1;const c=L(null),d=r.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 r=s;if(r==null){const n=t==null?void 0:t();return n!=null?u(n):_}return u(e(N(r)))}},B=s=>e=>t=>s(t,e),ie=(s,e,t)=>oe(s,()=>e,()=>t),oe=(s,e,t)=>Be(p.map(s,r=>r?!0:null),e,t??void 0),Bt=(s,e,t)=>qe(s,()=>e,()=>t),qe=(s,e,t)=>oe(p.map(s,r=>!r),e,t),le=(s,e,t)=>t!=null?le(s,r=>{const n=new D(r.index,r.total.map(o=>o-1));return m(B(n.dispose),u(e(r)),ie(r.isLast,_,t(n)))}):f.is(s)?r=>{const n=r.makeRef(),o=Array.from({length:s.value},(c,d)=>d).map(c=>new D(c,s)),l=o.map(c=>u(e(c))(n)),a=s.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,s);const h=u(e(o[d]));l[d]=h(n)}});return c=>{a(),n.clear(c)}}:m(...Array.from({length:s},(r,n)=>n).map(r=>u(e(new D(r,N(s)))))),Fe=(s,e,t)=>{if(t!=null)return Fe(s,(r,n)=>{const o=new D(n.index,n.total.map(l=>l-1));return m([B(o.dispose),u(e(r,n)),ie(n.isLast,_,t(o))])});{const r=p.map(s,o=>o.length),n=p.toSignal(s);return le(r,o=>{const l=n.map(a=>a[o.index]);return m(B(l.dispose),u(e(l,o)))})}},Ue=s=>e=>e.isBrowserDOM()?s(e)??(()=>{}):()=>{},qt=s=>e=>e.isHeadlessDOM()?s(e)??(()=>{}):()=>{},Ft=s=>Ue(e=>s(e.element)??(()=>{})),Ut=(s,e)=>{if(f.is(s)){const t=s;return r=>{r=r.makeRef();const n=t.map(a=>u(e(a)));let o=()=>{};const l=n.on(a=>{o(!0),o=a(r)});return a=>{l(),o(a)}}}return u(e(s))},Wt=(s,e,t=()=>_)=>I(p.map(s,r=>r.length>0?{notEmpty:r}:{whenEmpty:null}),{notEmpty:r=>e(r),whenEmpty:()=>t()}),U=(s,e)=>{const t=s(e);return()=>t(!0)},zt=(s,e,{doc:t,clear:r}={})=>{const n=typeof e=="string"?(t??document).querySelector(e):e;if(n===null)throw new We(`Cannot find element by selector for render: ${e}`);r!==!1&&(t??n.ownerDocument)!=null&&n.nodeType===1&&(n.innerHTML="");const o=De(n),l=X(n)?void 0:n,a=P.of(o,l);return U(s,a)},Gt=(s,{startUrl:e="https://example.com",selector:t=":root"}={})=>{const r=p.toSignal(e).deriveProp(),n=new Z(t,void 0),o=new C(n,void 0,{currentURL:r},{});return{clear:U(s(),o),root:n,currentURL:r}};class We extends Error{constructor(e){super(e)}}const Jt=(s,e)=>t=>{const r=t.makePortal(s);return U(u(e),r)},Qt=s=>Symbol(s),ze=(s,e)=>t=>u(e)(t.withProviders(s)),Xt=(...s)=>s.length>0?s.reduceRight((e,t)=>r=>e(t(r))):u,Yt=(s,e,t)=>ze({[s]:e},u(t)),Zt=(s,e)=>ze(s,u(e)),Kt=(s,e)=>t=>{const r=t.getStyle(s);return t.setStyle(s,e),n=>{n&&t.setStyle(s,r)}},es=(s,e)=>t=>{const r=t.getStyle(s);return e.on(n=>t.setStyle(s,n)),n=>{n&&t.setStyle(s,r)}},ts=new Proxy({},{get:(s,e)=>t=>f.is(t)?es(e,t):Kt(e,t)});exports.Async=Pt;exports.BindChecked=Mt;exports.BindDate=Et;exports.BindDateTime=Dt;exports.BindNumber=At;exports.BindText=kt;exports.BrowserContext=P;exports.Computed=S;exports.Conjunction=$t;exports.DOMNode=jt;exports.El=te;exports.ElNS=se;exports.ElementPosition=D;exports.Empty=_;exports.Ensure=Be;exports.ForEach=Fe;exports.Fragment=m;exports.HeadlessContext=C;exports.HeadlessElement=Me;exports.HeadlessPortal=Z;exports.HeadlessText=be;exports.LazyUnless=qe;exports.LazyWhen=oe;exports.MapSignal=Ut;exports.MemoryStore=J;exports.NotEmpty=Wt;exports.OnBrowserCtx=Ue;exports.OnChecked=Ne;exports.OnCtx=Rt;exports.OnDispose=B;exports.OnElement=Ft;exports.OnHeadlessCtx=qt;exports.OneOf=I;exports.OneOfField=ne;exports.OneOfKind=bt;exports.OneOfTuple=Lt;exports.OneOfType=Nt;exports.OneOfValue=Re;exports.Portal=Jt;exports.Prop=b;exports.Provide=Xt;exports.ProviderNotFoundError=Y;exports.RenderingError=We;exports.Repeat=le;exports.Signal=f;exports.Task=re;exports.TextNode=ct;exports.Unless=Bt;exports.Use=Ht;exports.UseProvider=Vt;exports.UseProviders=It;exports.Value=p;exports.When=ie;exports.WithProvider=Yt;exports.WithProviders=Zt;exports._getSelfOrParentElement=De;exports._isElement=X;exports._makeGetter=Ee;exports._makeSetter=Oe;exports._removeDOMNode=j;exports._signalText=ee;exports._staticText=K;exports.animateSignal=st;exports.animateSignals=Se;exports.aria=ft;exports.attr=T;exports.dataAttr=dt;exports.emitChecked=Ct;exports.emitPreventDefault=Tt;exports.emitStopImmediatePropagation=Ot;exports.emitStopPropagation=xt;exports.emitValue=$e;exports.emitValueAsDate=Ve;exports.emitValueAsDateTime=Ie;exports.emitValueAsNumber=He;exports.endInterpolate=we;exports.getWindow=G;exports.guessInterpolate=_e;exports.html=gt;exports.input=yt;exports.interpolateDate=ye;exports.interpolateNumber=me;exports.interpolateString=ge;exports.localStorageProp=et;exports.makeComputed=F;exports.makeComputedOf=Ze;exports.makeComputedRecord=rt;exports.makeEffect=ve;exports.makeEffectOf=Ke;exports.makeProp=L;exports.makeProviderMark=Qt;exports.makeSignal=N;exports.math=St;exports.mathAttr=mt;exports.on=V;exports.render=zt;exports.renderWithContext=U;exports.renderableOfTNode=u;exports.runHeadless=Gt;exports.sessionStorageProp=tt;exports.storedProp=Q;exports.style=ts;exports.svg=_t;exports.svgAttr=pt;
1
+ "use strict";var ut=Object.defineProperty;var Te=s=>{throw TypeError(s)};var ht=(s,e,t)=>e in s?ut(s,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):s[e]=t;var o=(s,e,t)=>ht(s,typeof e!="symbol"?e+"":e,t),Se=(s,e,t)=>e.has(s)||Te("Cannot "+t);var D=(s,e,t)=>(Se(s,e,"read from private field"),t?t.call(s):e.get(s)),be=(s,e,t)=>e.has(s)?Te("Cannot add the same private member more than once"):e instanceof WeakSet?e.add(s):e.set(s,t),Z=(s,e,t,r)=>(Se(s,e,"write to private field"),r?r.call(s,t):e.set(s,t),t);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const Ee=(s,e,t)=>s+(e-s)*t,_e=97,Pe=(s,e,t)=>{const r=Math.max(s.length,e.length);let n="";for(let i=0;i<r;i++){let l=s.charCodeAt(i);isNaN(l)&&(l=_e);let a=e.charCodeAt(i);isNaN(a)&&(a=_e),n+=String.fromCharCode(l+(a-l)*t)}return n},ve=(s,e,t)=>new Date(s.getTime()+(e.getTime()-s.getTime())*t),we=(s,e)=>e,Ce=s=>typeof s=="number"?Ee:typeof s=="string"?Pe:s instanceof Date?ve:we;var S;class L{constructor(e,t){o(this,"counter");o(this,"isFirst");o(this,"isEven");o(this,"isOdd");be(this,S);o(this,"dispose",()=>{D(this,S)!=null&&(D(this,S).dispose(),Z(this,S,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 D(this,S)==null&&Z(this,S,this.total.map(e=>this.counter===e)),D(this,S)}}S=new WeakMap;const M=class M{constructor(e,t){o(this,"$__signal__",!0);o(this,"_value");o(this,"_derivatives",[]);o(this,"_onValueListeners",[]);o(this,"_onDisposeListeners",[]);o(this,"get",()=>this._value);o(this,"hasListeners",()=>this._onValueListeners.length>0);o(this,"on",(e,t={})=>{t.skipInitial||e(this.get());const r=t.once?i=>{n(),e(i)}:e;this._onValueListeners.push(r);const n=()=>{this._onValueListeners.splice(this._onValueListeners.indexOf(r),1),t.abortSignal!=null&&t.abortSignal.removeEventListener("abort",n)};return t.abortSignal!=null&&t.abortSignal.addEventListener("abort",n),n});o(this,"_setAndNotify",(e,t)=>{const r=this.equals(this._value,e);r||(this._value=e),(t||!r)&&this._onValueListeners.forEach(n=>n(e))});o(this,"_disposed",!1);o(this,"isDisposed",()=>this._disposed);o(this,"onDispose",e=>{this._onDisposeListeners.push(e)});o(this,"dispose",()=>{this._disposed||(this._disposed=!0,this._onDisposeListeners.forEach(e=>e()),this._onDisposeListeners.length=0,this._derivatives.length=0)});o(this,"map",(e,t=(r,n)=>r===n)=>{const r=new E(()=>{try{return e(this.get())}catch(n){throw console.error("Error in Signal.map:",n),n}},t);return this.setDerivative(r),r});o(this,"flatMap",(e,t=(r,n)=>r===n)=>{const r=new E(()=>{try{return e(this.get()).get()}catch(n){throw console.error("Error in Signal.flatMap:",n),n}},t);return this.setDerivative(r),r});o(this,"tap",e=>this.map(t=>(e(t),t)));o(this,"at",e=>this.map(t=>t[e]));o(this,"_$");o(this,"filter",(e,t)=>{let r=t??this.get();const n=new E(()=>{try{const i=this.get();return r=e(i)?i:r}catch(i){throw console.error("Error in Signal.filter:",i),i}},this.equals);return this.setDerivative(n),n});o(this,"filterMap",(e,t,r=(n,i)=>n===i)=>{let n=t;const i=new E(()=>{try{const l=this.get(),a=e(l);return n=a??n}catch(l){throw console.error("Error in Signal.filterMap:",l),l}},r);return this.setDerivative(i),i});o(this,"mapAsync",(e,t,r,n=(i,l)=>i===l)=>{const i=H(t,n);let l=0,a=new AbortController;return i.onDispose(this.on(async c=>{const u=++l;a.abort(),a=new AbortController;try{const h=await e(c,{abortSignal:a.signal});u===l&&i.set(h)}catch(h){if(u===l)if(r!=null)i.set(r(h));else throw h}})),i});o(this,"mapMaybe",(e,t)=>this.map(r=>e(r)??t));o(this,"feedProp",(e,t=!1)=>{const r=this.on(e.set);return e.onDispose(r),t?this.onDispose(e.dispose):this.onDispose(r),e});o(this,"deriveProp",(e=!0)=>this.feedProp(H(this.get()),e));o(this,"count",()=>{let e=0;return this.map(()=>++e)});o(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)})}};o(M,"ofPromise",(e,t,r,n=(i,l)=>i===l)=>{const i=new M(t,n);return e.then(l=>i._setAndNotify(l,!1)).catch(l=>{r!=null?i._setAndNotify(r(l),!1):console.error("Unhandled promise rejection in Signal.ofPromise:",l)}),i}),o(M,"is",e=>e!=null&&e.$__signal__===!0);let f=M;const dt=typeof queueMicrotask=="function"?queueMicrotask:s=>Promise.resolve().then(s);class E extends f{constructor(t,r){super(void 0,r);o(this,"$__computed__",!0);o(this,"_isDirty",!1);o(this,"setDirty",()=>{this._isDirty||this._disposed||(this._isDirty=!0,this._derivatives.forEach(t=>t.setDirty()),this._scheduleNotify())});o(this,"_scheduleCount",0);o(this,"_scheduleNotify",()=>{const t=++this._scheduleCount;dt(()=>{this._scheduleCount!==t||this._disposed!==!1||this._isDirty&&(this._isDirty=!1,this._setAndNotify(this._fn(),!1))})});o(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 z=class z extends f{constructor(){super(...arguments);o(this,"$__prop__",!0);o(this,"set",t=>{this._setAndNotify(t,!1)});o(this,"update",t=>{this._setAndNotify(t(this.get()),!1)});o(this,"reducer",(t,...r)=>{const n=this;return function i(l){const a=n.value;n.update(c=>t(c,l)),!n.equals(a,n.value)&&r.forEach(c=>c({previousState:a,state:n.value,action:l,dispatch:i}))}});o(this,"iso",(t,r,n=(i,l)=>i===l)=>{const i=new z(t(this.get()),n);return i.onDispose(this.on(l=>i.set(t(l)))),i.on(l=>this._setAndNotify(r(l),!1)),i});o(this,"atProp",t=>this.iso(r=>r[t],r=>({...this.value,[t]:r})))}get value(){return this.get()}set value(t){this._setAndNotify(t,!1)}};o(z,"is",t=>t!=null&&t.$__prop__===!0);let k=z;const X=(s,e,t=(r,n)=>r===n)=>{const r=new E(s,t);return e.forEach(n=>n.setDerivative(r)),r},Oe=(s,e,t={})=>{let r=t.once?()=>{i(),s()}:s;if(t.skipInitial){let l=!1;r=()=>{l||(l=!0,r())}}const n=X(r,e),i=()=>{n.dispose(),t.abortSignal!=null&&t.abortSignal.removeEventListener("abort",i)};return t.abortSignal!=null&&t.abortSignal.addEventListener("abort",i),i},H=(s,e=(t,r)=>t===r)=>new k(s,e),R=(s,e=(t,r)=>t===r)=>new f(s,e),K=()=>typeof window<"u"?window:void 0,p={map:(s,e)=>f.is(s)?s.map(e):e(s),toSignal:(s,e)=>f.is(s)?s:R(s,e),maybeToSignal:(s,e)=>{if(s!=null)return p.toSignal(s,e)},get:s=>f.is(s)?s.get():s,on:(s,e)=>f.is(s)?s.on(e):(e(s),()=>{}),dispose:s=>{f.is(s)&&s.dispose()}},ft=(...s)=>(e,t)=>{const r=s.filter(n=>f.is(n));return X(()=>e(...s.map(n=>p.get(n))),r,t)},pt=(...s)=>(e,t={})=>{const r=s.filter(n=>f.is(n));return Oe(()=>e(...s.map(p.get)),r,t)};class ee{constructor(){o(this,"_store",new Map);o(this,"getItem",e=>this._store.get(e)??null);o(this,"setItem",(e,t)=>{this._store.set(e,t)})}}const te=({key:s,defaultValue:e,store:t,serialize:r=JSON.stringify,deserialize:n=JSON.parse,equals:i=(a,c)=>a===c,onLoad:l=a=>a})=>{const a=t.getItem(s),c=new k(a!=null?l(n(a)):typeof e=="function"?e():e,i);return c.on(u=>{t.setItem(s,r(u))}),c},gt=s=>{var e;return te({...s,store:((e=K())==null?void 0:e.localStorage)??new ee})},mt=s=>{var e;return te({...s,store:((e=K())==null?void 0:e.sessionStorage)??new ee})};function Ae(s){return typeof requestAnimationFrame=="function"?requestAnimationFrame(s):setTimeout(s,0)}const xe=(s,e,t,r)=>{const n=(r==null?void 0:r.duration)??300,i=(r==null?void 0:r.easing)??(T=>T),l=(r==null?void 0:r.equals)??((T,U)=>T===U);let a=r==null?void 0:r.interpolate,c=s,u=e(),h=performance.now(),m=null,A=!0;const Q=new E(e,l),C=H(s,l);C.onDispose(()=>{m!==null&&cancelAnimationFrame(m)}),C.onDispose(Q.dispose),t.forEach(T=>{T.setDerivative(Q),T.onDispose(C.dispose)});const at=T=>{u=T,h=performance.now(),c=C.value,A&&(A=!1,m=Ae(me))},me=()=>{const U=(performance.now()-h)/p.get(n),ct=i(U);a==null&&(a=Ce(c));let ye=a(c,u,ct);U>=1?(A=!0,ye=u):m=Ae(me),C.set(ye)};return Q.on(at),C},yt=(s,e)=>{const{initialValue:t,...r}=e??{};return xe(t??s.get(),s.get,[s],r)},Tt=(s,e)=>{const{signals:t,literals:r}=Object.entries(s).reduce(({signals:i,literals:l},[a,c])=>(f.is(c)?i.push([a,c]):l[a]=c,{signals:i,literals:l}),{signals:[],literals:{}}),n=t.map(([,i])=>i);return X(()=>(t.forEach(([i,l])=>r[i]=l.value),e(r)),n)},Le=new Set(["checked","disabled","hidden","selected"]),De=new Set(["rowSpan","colSpan","tabIndex","valueAsNumber"]),Me=new Set(["valueAsDate"]),ke=new Set(["value","textContent","innerText","innerHTML","outerHTML","className","classList"]),He=(s,e)=>Le.has(s)?t=>{t==null?e[s]=null:e[s]=!!t}:De.has(s)?t=>{t==null?e[s]=null:e[s]=Number(t)}:Me.has(s)?t=>{t==null?e[s]=null:e[s]=t}:ke.has(s)?t=>{t==null?e[s]=null:e[s]=String(t)}:t=>{t==null?e.removeAttribute(s):e.setAttribute(s,t)},Ie=(s,e)=>Le.has(s)?()=>!!e[s]:De.has(s)?()=>Number(e[s]):Me.has(s)?()=>e[s]:ke.has(s)?()=>String(e[s]):()=>e.getAttribute(s),I=s=>{const e=s;e&&e.onblur&&(e.onblur=null),!(!s||s.ownerDocument===void 0)&&s.parentElement&&s.parentElement.removeChild(s)},Ne=s=>se(s)?s:s.parentElement,se=s=>s.nodeType===1;class re extends Error{constructor(e){super(`Provider not found: ${e.description}`)}}class P{constructor(e,t,r,n){o(this,"createElement",(e,t)=>t!==void 0?this.document.createElementNS(t,e):this.document.createElement(e));o(this,"makeChildElement",(e,t)=>{const r=this.createElement(e,t);return this.appendOrInsert(r),this.withElement(r)});o(this,"createText",e=>this.document.createTextNode(e));o(this,"makeChildText",e=>{const t=this.createText(e);return this.appendOrInsert(t),this.withReference(t)});o(this,"setText",e=>{this.reference.nodeValue=e});o(this,"getText",()=>{var e;return((e=this.reference)==null?void 0:e.nodeValue)??this.element.textContent??""});o(this,"makeRef",()=>{const e=this.createText("");return this.appendOrInsert(e),this.withReference(e)});o(this,"appendOrInsert",e=>{this.reference===void 0?this.element.appendChild(e):this.element.insertBefore(e,this.reference)});o(this,"withElement",e=>new P(this.document,e,void 0,this.providers));o(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)});o(this,"withReference",e=>new P(this.document,this.element,e,this.providers));o(this,"withProviders",e=>new P(this.document,this.element,this.reference,{...this.providers,...e}));o(this,"getProvider",e=>{if(this.providers[e]===void 0)throw new re(e);return this.providers[e]});o(this,"clear",e=>{e&&(this.reference!==void 0?I(this.reference):I(this.element))});o(this,"addClasses",e=>{this.element.classList.add(...e)});o(this,"removeClasses",e=>{this.element.classList.remove(...e)});o(this,"getClasses",()=>Array.from(this.element.classList));o(this,"on",(e,t,r)=>(this.element.addEventListener(e,t,r),n=>{n&&this.element.removeEventListener(e,t,r)}));o(this,"isBrowserDOM",()=>!0);o(this,"isHeadlessDOM",()=>!1);o(this,"setStyle",(e,t)=>{this.element.style.setProperty(e,t)});o(this,"getStyle",e=>this.element.style.getPropertyValue(e));o(this,"makeAccessors",e=>({get:Ie(e,this.element),set:He(e,this.element)}));this.document=e,this.element=t,this.reference=r,this.providers=n}static of(e,t){return new P(e.ownerDocument,e,t,{})}}const Y=(s,e)=>{const t=s(e);return()=>t(!0)},St=(s,e,{doc:t,clear:r}={})=>{const n=typeof e=="string"?(t??document).querySelector(e):e;if(n===null)throw new $e(`Cannot find element by selector for render: ${e}`);r!==!1&&(t??n.ownerDocument)!=null&&n.nodeType===1&&(n.innerHTML="");const i=Ne(n),l=se(n)?void 0:n,a=P.of(i,l);return Y(s,a)},bt=(s,{startUrl:e="https://example.com",selector:t=":root"}={})=>{const r=p.toSignal(e).deriveProp(),n=new ie(t,void 0),i=new v(n,void 0,{currentURL:r},{});return{clear:Y(s(),i),root:n,currentURL:r}};class $e extends Error{constructor(e){super(e)}}const ne="data-tts-node",N="data-tts-class",F="data-tts-style",W="data-tts-html",G="data-tts-text",J="data-tts-attrs";class _t{constructor({select:e,getAttribute:t,setAttribute:r,getClass:n,setClass:i,getStyles:l,setStyles:a,appendHTML:c,getInnerHTML:u,setInnerHTML:h,getInnerText:m,setInnerText:A}){o(this,"select");o(this,"getAttribute");o(this,"setAttribute");o(this,"getClass");o(this,"setClass");o(this,"getStyles");o(this,"setStyles");o(this,"appendHTML");o(this,"getInnerHTML");o(this,"setInnerHTML");o(this,"getInnerText");o(this,"setInnerText");o(this,"setFromRoot",(e,t)=>{e.getPortals().forEach(n=>{for(const i of this.select(n.selector)){if(i==null)throw new Error(`Cannot find element by selector for render: ${n.selector}`);if(n.hasChildren()&&this.appendHTML(i,n.contentToHTML(t)),n.hasInnerHTML()){if(t){const l=this.getInnerHTML(i);l!=null&&this.setAttribute(i,W,l)}this.setInnerHTML(i,n.getInnerHTML())}if(n.hasInnerText()){if(t){const l=this.getInnerText(i);l!=null&&this.setAttribute(i,G,l)}this.setInnerText(i,n.getInnerText())}if(n.hasClasses()){if(t){const l=this.getClass(i);l!=null&&this.setAttribute(i,N,l)}this.setClass(i,n.getClasses().join(" "))}if(n.hasStyles()){if(t){const l=this.getStyles(i);Object.keys(l).length>0&&this.setAttribute(i,F,JSON.stringify(l))}this.setStyles(i,n.getStyles())}if(n.hasAttributes()){const l=n.getAttributes();if(t){const a=[];l.forEach(([c])=>{const u=this.getAttribute(i,c);u!=null&&a.push([c,u])}),a.length>0&&this.setAttribute(i,J,JSON.stringify(Object.fromEntries(a)))}l.forEach(([a,c])=>{this.setAttribute(i,a,c)})}}})});this.select=e,this.getAttribute=t,this.setAttribute=r,this.getClass=n,this.setClass=i,this.getStyles=l,this.setStyles=a,this.appendHTML=c,this.getInnerHTML=u,this.setInnerHTML=h,this.getInnerText=m,this.setInnerText=A}}const At=()=>{document.querySelectorAll(`[${ne}]`).forEach(I)},Et=s=>{const e=s.getAttribute(N);s.removeAttribute(N),e!=null&&s.setAttribute("class",e)},Pt=()=>{document.querySelectorAll(`[${N}]`).forEach(e=>Et(e))},vt=s=>{const e=s.getAttribute(W);s.removeAttribute(W),e!=null&&(s.innerHTML=e)},wt=()=>{document.querySelectorAll(`[${W}]`).forEach(e=>vt(e))},Ct=s=>{const e=s.getAttribute(G);s.removeAttribute(G),e!=null&&(s.innerText=e)},Ot=()=>{document.querySelectorAll(`[${G}]`).forEach(e=>Ct(e))},Re=s=>JSON.parse(s.replace(/&quot;/g,'"')),xt=s=>{const e=s.getAttribute(F);if(s.removeAttribute(F),e!=null){const t=Re(e);Object.entries(t).forEach(([r,n])=>{s.style.setProperty(r,n)})}},Lt=()=>{document.querySelectorAll(`[${F}]`).forEach(e=>xt(e))},Dt=s=>{const e=s.getAttribute(J);if(s.removeAttribute(J),e!=null){const t=Re(e);Object.entries(t).forEach(([r,n])=>{n==null?s.removeAttribute(r):s.setAttribute(r,n)})}},Mt=()=>{document.querySelectorAll(`[${J}]`).forEach(e=>Dt(e))},kt=()=>{At(),Pt(),Ot(),wt(),Lt(),Mt()},y=Symbol("class"),_=Symbol("style"),O=Symbol("handler"),Ve=()=>Math.random().toString(36).substring(2,15),Ht=s=>s.replace(/<[^>]*>?/g,"");class je{constructor(e){o(this,"id",Ve());o(this,"properties",{});o(this,"children",[]);o(this,"isElement",()=>!0);o(this,"isText",()=>!1);o(this,"getText",()=>this.properties.innerText!=null?this.properties.innerText:this.properties.innerHTML!=null?Ht(this.properties.innerHTML):this.children.map(e=>e.getText()).join(""));o(this,"removeChild",e=>{const t=this.children.indexOf(e);t!==-1&&this.children.splice(t,1)});o(this,"remove",()=>{if(this.parent!=null)this.parent.removeChild(this);else throw new Error("Parent is undefined")});o(this,"getPortals",()=>{const e=this.elements().flatMap(t=>t.isPortal()?[t,...t.getPortals()]:t.getPortals());return this.isPortal()&&e.unshift(this),e});o(this,"elements",()=>this.children.filter(e=>e.isElement()));o(this,"hasInnerHTML",()=>this.properties.innerHTML!=null);o(this,"getInnerHTML",()=>this.properties.innerHTML??"");o(this,"getInnerText",()=>this.properties.innerText??"");o(this,"hasInnerText",()=>this.properties.innerText!=null);o(this,"hasChildren",()=>this.children.length>0);o(this,"hasClasses",()=>this.properties[y]!=null);o(this,"hasStyles",()=>this.properties[_]!=null);o(this,"hasAttributes",()=>Object.keys(this.properties).length>0);o(this,"hasHandlers",()=>this.properties[O]!=null);o(this,"hasRenderableProperties",()=>this.hasClasses()||this.hasAttributes()||this.hasStyles());o(this,"getById",e=>{if(this.properties.id===e)return this;for(const t of this.elements()){const r=t.getById(e);if(r!=null)return r}});o(this,"trigger",(e,t)=>{((this.properties[O]??{})[e]??[]).forEach(n=>n(t))});o(this,"click",()=>{this.trigger("click",{})});o(this,"on",(e,t,r)=>{var a;const n=(a=this.properties)[O]??(a[O]={}),i=r!=null&&r.once?c=>{l(),t(c)}:c=>t(c);n[e]=[...n[e]??[],i];const l=()=>{const c=n[e]??[],u=c.indexOf(i);u!==-1&&(c.splice(u,1),c.length===0?(delete n[e],Object.keys(n).length===0&&delete this.properties[O]):n[e]=c,(r==null?void 0:r.signal)!=null&&r.signal.removeEventListener("abort",l))};return(r==null?void 0:r.signal)!=null&&r.signal.addEventListener("abort",l),l});o(this,"addClasses",e=>{var r;if(e.length===0)return;const t=(r=this.properties)[y]??(r[y]=[]);e.forEach(n=>{t.includes(n)||t.push(n)})});o(this,"removeClasses",e=>{var r;if(e.length===0)return;const t=(r=this.properties)[y]??(r[y]=[]);e.forEach(n=>{const i=t.indexOf(n);i!==-1&&t.splice(i,1)}),t.length===0&&delete this.properties[y]});o(this,"getClasses",()=>this.properties[y]??[]);o(this,"getAttributes",()=>Object.entries(this.properties).filter(([e])=>!["innerText","innerHTML"].includes(e)));o(this,"getVisibleAttributes",()=>Reflect.ownKeys(this.properties).flatMap(e=>e===y?[["class",this.getClasses()]]:e===_?[["style",this.getStyles()]]:typeof e=="string"?[[e,String(this.properties[e])]]:[]));o(this,"setStyle",(e,t)=>{var n;const r=(n=this.properties)[_]??(n[_]={});r[e]=t,t===""&&(delete r[e],Object.keys(r).length===0&&delete this.properties[_])});o(this,"getStyle",e=>{var t;return((t=this.properties[_])==null?void 0:t[e])??""});o(this,"getStyles",()=>this.properties[_]??{});o(this,"makeAccessors",e=>{const t=this.properties;return{get:()=>t[e],set:r=>t[e]=r}});this.parent=e}}const It=s=>s.replace(/"/g,"&quot;"),Nt=s=>s.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;");class qe extends je{constructor(t,r,n){super(n);o(this,"isPortal",()=>!1);o(this,"toHTML",(t=!1)=>{const r=this.children.map(c=>c.toHTML()).join(""),n=this.namespace?` xmlns="${this.namespace}"`:"";let i=null;const l=this.getVisibleAttributes().map(([c,u])=>c==="class"?` class="${u.join(" ")}"`:c==="style"?typeof u=="string"?` style="${u}"`:` style="${Object.entries(u).map(([h,m])=>`${h}: ${m};`).join(" ")}"`:$t.has(c)?` ${c}`:c==="innerHTML"?(i=u,""):c==="innerText"?(i=Nt(u),""):` ${c}="${It(u)}"`).join(""),a=t?` ${ne}`:"";return Rt.has(this.tagName)&&r===""?`<${this.tagName}${n}${l}${a} />`:`<${this.tagName}${n}${l}${a}>${i??r}</${this.tagName}>`});this.tagName=t,this.namespace=r}}class ie extends je{constructor(t,r){super(r);o(this,"isPortal",()=>!0);o(this,"toHTML",()=>"");o(this,"contentToHTML",(t=!1)=>this.children.map(r=>r.toHTML(t)).join(""));this.selector=t}}class Be{constructor(e){o(this,"id",Ve());o(this,"isElement",()=>!1);o(this,"isText",()=>!0);o(this,"getText",()=>this.text);o(this,"toHTML",()=>this.text);this.text=e}}class v{constructor(e,t,r,n){o(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)});o(this,"makeChildElement",(e,t)=>{const r=new qe(e,t,this.element);return this.appendOrInsert(r),new v(r,void 0,this.container,this.providers)});o(this,"makeChildText",e=>{const t=new Be(e);return this.appendOrInsert(t),new v(this.element,t,this.container,this.providers)});o(this,"setText",e=>{this.reference&&this.reference.isText()&&(this.reference.text=e)});o(this,"getText",()=>{var e;return((e=this.reference)==null?void 0:e.getText())??this.element.getText()});o(this,"makeRef",()=>this.makeChildText(""));o(this,"makePortal",e=>{const t=new ie(e,this.element);return this.appendOrInsert(t),new v(t,void 0,this.container,this.providers)});o(this,"withProviders",e=>new v(this.element,this.reference,this.container,{...this.providers,...e}));o(this,"getProvider",e=>{if(this.providers[e]===void 0)throw new re(e);return this.providers[e]});o(this,"clear",e=>{e&&(this.reference!==void 0?this.element.removeChild(this.reference):this.element.remove())});o(this,"on",(e,t)=>this.element.on(e,t));o(this,"addClasses",e=>this.element.addClasses(e));o(this,"removeClasses",e=>this.element.removeClasses(e));o(this,"getClasses",()=>this.element.getClasses());o(this,"isBrowserDOM",()=>!1);o(this,"isHeadlessDOM",()=>!0);o(this,"setStyle",(e,t)=>this.element.setStyle(e,t));o(this,"getStyle",e=>this.element.getStyle(e));o(this,"makeAccessors",e=>this.element.makeAccessors(e));this.element=e,this.reference=t,this.container=r,this.providers=n}}const $t=new Set(["checked","disabled","multiple","readonly","required","selected"]),Rt=new Set(["img","br","hr","input","link","meta"]),oe=s=>e=>{const t=e.makeChildText(s);return r=>t.clear(r)},le=s=>e=>{const t=e.makeChildText(s.value),r=s.on(n=>t.setText(n));return n=>{r(),t.clear(n)}},Vt=s=>f.is(s)?le(s):oe(s),g=(...s)=>e=>{const t=s.map(r=>d(r)(e));return r=>{t.forEach(n=>n(r))}},b=()=>()=>{},jt=s=>e=>(e.addClasses(s),t=>{t&&e.removeClasses(s)}),qt=s=>e=>{let t=[];const r=s.on(n=>{e.removeClasses(t),t=(n??"").split(" ").filter(i=>i.length>0),e.addClasses(t)});return n=>{r(),n&&e.removeClasses(t),t.length=0}},V=(s,e)=>t=>{const{get:r,set:n}=t.makeAccessors(s),i=r();return n(e),l=>{l&&n(i)}},j=(s,e)=>t=>{const{get:r,set:n}=t.makeAccessors(s),i=r(),l=e.on(n);return a=>{l(),a&&n(i)}},w=new Proxy({},{get:(s,e)=>e==="class"?t=>f.is(t)?qt(t):jt((t??"").split(" ").filter(r=>r.length>0)):t=>f.is(t)?j(e,t):V(e,t)}),Bt=new Proxy({},{get:(s,e)=>t=>f.is(t)?j(`data-${e}`,t):V(`data-${e}`,t)}),Ut=new Proxy({},{get:(s,e)=>t=>f.is(t)?j(`aria-${e}`,t):V(`aria-${e}`,t)}),Ft=new Proxy({},{get:(s,e)=>t=>f.is(t)?j(e,t):V(e,t)}),Wt=new Proxy({},{get:(s,e)=>t=>f.is(t)?j(e,t):V(e,t)}),d=s=>{if(s==null)return b;if(Array.isArray(s))return g(...s.map(d));if(typeof s=="string")return oe(s);if(f.is(s))return le(s);if(typeof s=="function")return s;throw new Error(`Unknown type: '${typeof s}' for child: ${s}`)},ae=(s,...e)=>t=>{const r=t.makeChildElement(s,void 0),n=e.map(i=>d(i)(r));return i=>{n.forEach(l=>l(!1)),r.clear(i)}},ce=(s,e,...t)=>r=>{const n=r.makeChildElement(s,e),i=t.map(l=>d(l)(n));return l=>{i.forEach(a=>a(!1)),n.clear(l)}},Gt=new Proxy({},{get:(s,e)=>(...t)=>ae(e,t.flatMap(d))}),Jt=new Proxy({},{get:(s,e)=>(...t)=>ae("input",w.type(e),...t)}),zt="http://www.w3.org/2000/svg",Xt=new Proxy({},{get:(s,e)=>(...t)=>ce(e,zt,t.flatMap(d))}),Yt="http://www.w3.org/1998/Math/MathML",Qt=new Proxy({},{get:(s,e)=>(...t)=>ce(e,Yt,t.flatMap(d))}),ue=(s,e)=>{if(typeof e=="function")return ue(s,{then:e});const t=e.pending!=null?d(e.pending):b,r=e.then,n=e.error!=null?i=>d(e.error(i)):()=>b;return i=>{let l=!0;const a=s(),c=i.makeRef();let u=d(t)(c);return a.then(h=>{l&&(u(!0),u=d(r(h))(c))},h=>{l&&(u(!0),u=d(n(h))(c))}),h=>{l=!1,u(h),c.clear(h)}}},Zt=(s,e)=>ue(()=>s,e),Ue=(s,e,t)=>r=>r.on(s,e,t),Fe=s=>Ue("click",e=>{e.preventDefault();const t=e.target;setTimeout(()=>{const r=t.ownerDocument!=null?t==null?void 0:t.checked:void 0;r!=null&&s(!r)},0)}),q=new Proxy({},{get:(s,e)=>t=>Ue(e,t)}),We=s=>e=>{const t=e.target;s(t.value)},Ge=s=>e=>{const t=e.target;s(t.valueAsNumber)},Je=s=>e=>{const t=e.target;if(t.value==="")return;const r=t.value.split("-"),n=new Date(Number(r[0]),Number(r[1])-1,Number(r[2].substring(0,2)));s(n)},ze=s=>e=>{const t=e.target;if(t.value==="")return;const r=t.value.split("T"),n=r[0].split("-"),i=new Date(Number(n[0]),Number(n[1])-1,Number(n[2])),l=r[1].split(":");i.setHours(Number(l[0])),i.setMinutes(Number(l[1])),i.setSeconds(Number(l[2])),s(i)},Kt=s=>e=>{const t=e.target;s(t.checked)},es=s=>e=>{e.preventDefault(),s()},ts=s=>e=>{e.stopPropagation(),s()},ss=s=>e=>{e.stopImmediatePropagation(),s()},rs=(s,e="input")=>g(w.valueAsDate(s),q[e](Je(s.set))),ns=(s,e="input")=>g(w.valueAsDate(s),q[e](ze(s.set))),is=(s,e="input")=>g(w.valueAsNumber(s),q[e](Ge(s.set))),os=(s,e="input")=>g(w.value(s),q[e](We(s.set))),ls=s=>g(w.checked(s),Fe(s.set)),B=(s,e)=>{if(f.is(s))return r=>{const n=r.makeRef();let i,l;const a=s.map(h=>Object.keys(h)[0]);let c;const u=a.on(h=>{if(h!==c){l==null||l.dispose(),i==null||i(!0),l=s.map(A=>A[h]);const m=e[h](l);i=d(m)(n),c=h}});return h=>{u(),n.clear(h),i==null||i(h)}};const t=Object.keys(s)[0];return d(e[t](R(s[t])))},he=(s,e,t)=>B(p.map(s,r=>({[r[e]]:r})),t),as=(s,e)=>he(s,"kind",e),cs=(s,e)=>{const t=p.map(s,([r,n])=>({[r]:n}));return B(t,e)},us=(s,e)=>he(s,"type",e),Xe=(s,e)=>B(p.map(s,t=>({[t]:!0})),e),hs=(s,e={})=>t=>{const r=(e==null?void 0:e.firstSeparator)??s,n=(e==null?void 0:e.lastSeparator)??s;return Xe(t.map(i=>i.isFirst?"first":i.isLast?"last":"other"),{first:()=>r,last:()=>n,other:()=>s})},Ye=(s,e)=>t=>{const r=Object.values(s).reduce((n,i)=>{const l=t.getProvider(i);return n[i]=l,n},{});return d(e(r))(t)},ds=(s,e)=>t=>{const r=[],n=Object.entries(s).reduce((i,[l,a])=>(r.push(a(c=>(Reflect.set(i,l,c),null))(t)),i),{});return r.push(e(n)(t)),i=>{r.forEach(l=>l(i))}},Qe=(s,e)=>Ye([s],t=>d(e(t[s]))),fs=(s,e)=>Ye(s,t=>d(e(t))),ps=s=>e=>s(e)??(()=>{}),gs=s=>e=>(e.appendOrInsert(s),t=>{t&&I(s)}),Ze=(s,e,t)=>{if(f.is(s)){const r=s;return n=>{const i=n.makeRef();let l=null,a=!1;const c=H(null),u=r.on(h=>{h==null?(l==null||l(!0),l=d((t==null?void 0:t())??b)(i),a=!1):(c.value=h,a||(l==null||l(!0),l=d(e(c))(i),a=!0))});return h=>{u(),l==null||l(h),i.clear(h)}}}else{const r=s;if(r==null){const n=t==null?void 0:t();return n!=null?d(n):b}return d(e(R(r)))}},$=s=>e=>t=>s(t,e),de=(s,e,t)=>fe(s,()=>e,()=>t),fe=(s,e,t)=>Ze(p.map(s,r=>r?!0:null),e,t??void 0),ms=(s,e,t)=>Ke(s,()=>e,()=>t),Ke=(s,e,t)=>fe(p.map(s,r=>!r),e,t),pe=(s,e,t)=>t!=null?pe(s,r=>{const n=new L(r.index,r.total.map(i=>i-1));return g($(n.dispose),d(e(r)),de(r.isLast,b,t(n)))}):f.is(s)?r=>{const n=r.makeRef(),i=Array.from({length:s.value},(c,u)=>u).map(c=>new L(c,s)),l=i.map(c=>d(e(c))(n)),a=s.on(c=>{for(;c<l.length;)i.pop().dispose(),l.pop()(!0);for(let u=0;u<c;u++)if(i[u]==null){i[u]=new L(u,s);const h=d(e(i[u]));l[u]=h(n)}});return c=>{a(),n.clear(c)}}:g(...Array.from({length:s},(r,n)=>n).map(r=>d(e(new L(r,R(s)))))),et=(s,e,t)=>{if(t!=null)return et(s,(r,n)=>{const i=new L(n.index,n.total.map(l=>l-1));return g([$(i.dispose),d(e(r,n)),de(n.isLast,b,t(i))])});{const r=p.map(s,i=>i.length),n=p.toSignal(s);return pe(r,i=>{const l=n.map(a=>a[i.index]);return g($(l.dispose),d(e(l,i)))})}},tt=s=>e=>e.isBrowserDOM()?s(e)??(()=>{}):()=>{},ys=s=>e=>e.isHeadlessDOM()?s(e)??(()=>{}):()=>{},Ts=s=>tt(e=>s(e.element)??(()=>{})),Ss=(s,e)=>{if(f.is(s)){const t=s;return r=>{r=r.makeRef();const n=t.map(a=>d(e(a)));let i=()=>{};const l=n.on(a=>{i(!0),i=a(r)});return a=>{l(),i(a)}}}return d(e(s))},bs=(s,e,t=()=>b)=>B(p.map(s,r=>r.length>0?{notEmpty:r}:{whenEmpty:null}),{notEmpty:r=>e(r),whenEmpty:()=>t()}),_s=(s,e)=>t=>{const r=t.makePortal(s);return Y(d(e),r)},st=s=>Symbol(s),rt=(s,e)=>t=>d(e)(t.withProviders(s)),As=(...s)=>s.length>0?s.reduceRight((e,t)=>r=>e(t(r))):d,nt=(s,e,t)=>rt({[s]:e},d(t)),Es=(s,e)=>rt(s,d(e)),ge=st("Probe"),x=new Map,it=({identifier:s,callback:e=()=>{},child:t,timeout:r=10})=>{if(x.has(s))throw new Error(`Probe already exists: ${s.description}`);const n=setTimeout(()=>e("timeout"),r);x.set(s,{counter:0,timeoutId:n});const i=l=>{clearTimeout(n);const a=x.get(l);if(a==null)throw new Error(`Probe not found: ${l.description}`);--a.counter===0?(e("resolved"),x.delete(l)):x.set(l,a)};return g($(()=>clearTimeout(n)),nt(ge,i,t))},ot=(s,e)=>Qe(ge,t=>{const r=x.get(s);return r==null?e(()=>{}):(clearTimeout(r.timeoutId),r.counter++,e(()=>t(s)))}),lt=Symbol("globalProbe"),Ps=({callback:s,timeout:e},t)=>it({identifier:lt,callback:s,child:t,timeout:e}),vs=s=>ot(lt,s),ws=(s,e)=>t=>{const r=t.getStyle(s);return t.setStyle(s,e),n=>{n&&t.setStyle(s,r)}},Cs=(s,e)=>t=>{const r=t.getStyle(s);return e.on(n=>t.setStyle(s,n)),n=>{n&&t.setStyle(s,r)}},Os=new Proxy({},{get:(s,e)=>t=>f.is(t)?Cs(e,t):ws(e,t)});exports.Async=Zt;exports.BindChecked=ls;exports.BindDate=rs;exports.BindDateTime=ns;exports.BindNumber=is;exports.BindText=os;exports.BrowserContext=P;exports.CLASS_PLACEHOLDER_ATTR=N;exports.Computed=E;exports.Conjunction=hs;exports.DOMNode=gs;exports.El=ae;exports.ElNS=ce;exports.ElementPosition=L;exports.Empty=b;exports.Ensure=Ze;exports.ForEach=et;exports.Fragment=g;exports.HeadlessAdapter=_t;exports.HeadlessContext=v;exports.HeadlessElement=qe;exports.HeadlessPortal=ie;exports.HeadlessText=Be;exports.LazyUnless=Ke;exports.LazyWhen=fe;exports.MapSignal=Ss;exports.MemoryStore=ee;exports.NotEmpty=bs;exports.OnBrowserCtx=tt;exports.OnChecked=Fe;exports.OnCtx=ps;exports.OnDispose=$;exports.OnElement=Ts;exports.OnHeadlessCtx=ys;exports.OneOf=B;exports.OneOfField=he;exports.OneOfKind=as;exports.OneOfTuple=cs;exports.OneOfType=us;exports.OneOfValue=Xe;exports.Portal=_s;exports.Prop=k;exports.Provide=As;exports.ProvideGlobalProbe=Ps;exports.ProvideProbe=it;exports.ProviderNotFoundError=re;exports.RenderingError=$e;exports.Repeat=pe;exports.Signal=f;exports.Task=ue;exports.TextNode=Vt;exports.Unless=ms;exports.Use=ds;exports.UseGlobalProbe=vs;exports.UseProbe=ot;exports.UseProvider=Qe;exports.UseProviders=fs;exports.Value=p;exports.When=de;exports.WithProvider=nt;exports.WithProviders=Es;exports._NODE_PLACEHOLDER_ATTR=ne;exports._getSelfOrParentElement=Ne;exports._isElement=se;exports._makeGetter=Ie;exports._makeSetter=He;exports._removeDOMNode=I;exports._signalText=le;exports._staticText=oe;exports.animateSignal=yt;exports.animateSignals=xe;exports.aria=Ut;exports.attr=w;exports.dataAttr=Bt;exports.emitChecked=Kt;exports.emitPreventDefault=es;exports.emitStopImmediatePropagation=ss;exports.emitStopPropagation=ts;exports.emitValue=We;exports.emitValueAsDate=Je;exports.emitValueAsDateTime=ze;exports.emitValueAsNumber=Ge;exports.endInterpolate=we;exports.getWindow=K;exports.guessInterpolate=Ce;exports.html=Gt;exports.input=Jt;exports.interpolateDate=ve;exports.interpolateNumber=Ee;exports.interpolateString=Pe;exports.localStorageProp=gt;exports.makeComputed=X;exports.makeComputedOf=ft;exports.makeComputedRecord=Tt;exports.makeEffect=Oe;exports.makeEffectOf=pt;exports.makeProp=H;exports.makeProviderMark=st;exports.makeSignal=R;exports.math=Qt;exports.mathAttr=Wt;exports.on=q;exports.probeMarker=ge;exports.render=St;exports.renderWithContext=Y;exports.renderableOfTNode=d;exports.restoreTempoPlaceholders=kt;exports.runHeadless=bt;exports.sessionStorageProp=mt;exports.storedProp=te;exports.style=Os;exports.svg=Xt;exports.svgAttr=Ft;
package/index.d.ts CHANGED
@@ -42,6 +42,7 @@ export * from './renderable/oneof';
42
42
  export * from './renderable/map-signal';
43
43
  export * from './renderable/not-empty';
44
44
  export * from './renderable/portal';
45
+ export * from './renderable/probe';
45
46
  export * from './renderable/providers';
46
47
  export * from './renderable/render';
47
48
  export * from './renderable/repeat';