@tempots/dom 26.11.0 → 28.0.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.
@@ -2,11 +2,47 @@ import { Clear, ProviderMark, Providers } from '../types/domain';
2
2
  import { DOMContext, HandlerOptions } from './dom-context';
3
3
  import { HeadlessContext } from './headless-context';
4
4
  /**
5
- * `DOMContext` is an immutable class that represents the context of a DOM element.
6
- * It provides methods and properties to manipulate and interact with the DOM element.
5
+ * Browser implementation of DOMContext for real DOM manipulation in web browsers.
7
6
  *
8
- * A reference in a DOMContext is to mark a position within a set of sibblings.
9
- * It is used to insert new elements before the reference.
7
+ * BrowserContext provides a comprehensive API for creating, manipulating, and managing
8
+ * DOM elements in a browser environment. It handles element creation, text nodes,
9
+ * event listeners, styling, and provider management while maintaining immutability
10
+ * through context chaining.
11
+ *
12
+ * The context uses a reference system to track insertion points within sibling elements,
13
+ * allowing precise control over where new elements are inserted in the DOM tree.
14
+ *
15
+ * @example
16
+ * ```typescript
17
+ * // Create a context for the document body
18
+ * const ctx = BrowserContext.of(document.body, undefined, {})
19
+ *
20
+ * // Create child elements
21
+ * const divCtx = ctx.makeChildElement('div', undefined)
22
+ * const textCtx = divCtx.makeChildText('Hello, World!')
23
+ *
24
+ * // Add event listeners
25
+ * divCtx.on('click', (event, ctx) => {
26
+ * console.log('Div clicked!', event.target)
27
+ * })
28
+ * ```
29
+ *
30
+ * @example
31
+ * ```typescript
32
+ * // Working with providers
33
+ * const themeProvider = makeProviderMark<string>('theme')
34
+ * const ctxWithProvider = ctx.setProvider(themeProvider, 'dark', undefined)
35
+ *
36
+ * // Later retrieve the provider
37
+ * const { value: theme } = ctxWithProvider.getProvider(themeProvider)
38
+ * ```
39
+ *
40
+ * @example
41
+ * ```typescript
42
+ * // Portal to different DOM location
43
+ * const modalCtx = ctx.makePortal('#modal-root')
44
+ * const modalContent = modalCtx.makeChildElement('div', undefined)
45
+ * ```
10
46
  *
11
47
  * @public
12
48
  */
@@ -71,11 +107,26 @@ export declare class BrowserContext implements DOMContext {
71
107
  */
72
108
  readonly createElement: (tagName: string, namespace: string | undefined) => HTMLElement;
73
109
  /**
74
- * Creates a new DOM element (eg: HTML or SVG) with the specified tag name and namespace and appends it to the current element.
110
+ * Creates a new child element and appends it to the current element, returning a new context.
75
111
  *
76
- * @param tagName - The tag name of the element to create.
77
- * @param namespace - The namespace URI to create the element in, or `undefined` to create a standard HTML element.
78
- * @returns The newly created element.
112
+ * This method creates a new DOM element with the specified tag name and namespace,
113
+ * appends it to the current element, and returns a new DOMContext focused on the
114
+ * newly created child element. This is the primary method for building DOM trees.
115
+ *
116
+ * @example
117
+ * ```typescript
118
+ * // Create HTML elements
119
+ * const divCtx = ctx.makeChildElement('div', undefined)
120
+ * const spanCtx = divCtx.makeChildElement('span', undefined)
121
+ *
122
+ * // Create SVG elements
123
+ * const svgCtx = ctx.makeChildElement('svg', 'http://www.w3.org/2000/svg')
124
+ * const circleCtx = svgCtx.makeChildElement('circle', 'http://www.w3.org/2000/svg')
125
+ * ```
126
+ *
127
+ * @param tagName - The tag name of the element to create (e.g., 'div', 'span', 'svg')
128
+ * @param namespace - The namespace URI for the element, or undefined for HTML elements
129
+ * @returns A new DOMContext focused on the newly created child element
79
130
  */
80
131
  readonly makeChildElement: (tagName: string, namespace: string | undefined) => DOMContext;
81
132
  /**
@@ -119,9 +170,48 @@ export declare class BrowserContext implements DOMContext {
119
170
  */
120
171
  readonly withElement: (element: HTMLElement) => BrowserContext;
121
172
  /**
122
- * Creates a new `DOMContext` instance with a reference to a DOM element selected by the provided `selector`.
123
- * @param selector - The CSS selector for the target DOM element.
124
- * @returns A new `DOMContext` instance with a reference to the selected DOM element.
173
+ * Creates a portal to render content in a different part of the DOM tree.
174
+ *
175
+ * Portals allow you to render child components into a DOM node that exists outside
176
+ * the parent component's DOM hierarchy. This is useful for modals, tooltips,
177
+ * dropdowns, and other UI elements that need to break out of their container's
178
+ * styling or z-index context.
179
+ *
180
+ * @example
181
+ * ```typescript
182
+ * // Portal to a modal container
183
+ * const modalCtx = ctx.makePortal('#modal-root')
184
+ * const modal = modalCtx.makeChildElement('div', undefined)
185
+ *
186
+ * // Add modal content
187
+ * modal.makeChildText('This renders in #modal-root')
188
+ * ```
189
+ *
190
+ * @example
191
+ * ```typescript
192
+ * // Portal to an existing element reference
193
+ * const tooltipContainer = document.getElementById('tooltip-container')!
194
+ * const tooltipCtx = ctx.makePortal(tooltipContainer)
195
+ *
196
+ * // Render tooltip content
197
+ * const tooltip = tooltipCtx.makeChildElement('div', undefined)
198
+ * tooltip.addClasses(['tooltip', 'tooltip-top'])
199
+ * ```
200
+ *
201
+ * @example
202
+ * ```typescript
203
+ * // Portal for dropdown menu
204
+ * const dropdownCtx = ctx.makePortal('body') // Render at body level
205
+ * const dropdown = dropdownCtx.makeChildElement('div', undefined)
206
+ * dropdown.addClasses(['dropdown-menu'])
207
+ * dropdown.setStyle('position', 'absolute')
208
+ * dropdown.setStyle('top', '100px')
209
+ * dropdown.setStyle('left', '50px')
210
+ * ```
211
+ *
212
+ * @param selector - CSS selector string or HTMLElement reference for the portal target
213
+ * @returns A new DOMContext focused on the portal target element
214
+ * @throws {Error} When the selector doesn't match any element in the document
125
215
  */
126
216
  readonly makePortal: (selector: string | HTMLElement) => DOMContext;
127
217
  /**
@@ -25,7 +25,7 @@ export declare const makeProviderMark: <T>(identifier: string) => ProviderMark<T
25
25
  * `DOMContext` is an immutable class that represents the context of a DOM element.
26
26
  * It provides methods and properties to manipulate and interact with the DOM element.
27
27
  *
28
- * A reference in a DOMContext is to mark a position within a set of sibblings.
28
+ * A reference in a DOMContext is to mark a position within a set of siblings.
29
29
  * It is used to insert new elements before the reference.
30
30
  *
31
31
  * @public
package/index.cjs CHANGED
@@ -1 +1 @@
1
- "use strict";var rt=Object.defineProperty;var ye=s=>{throw TypeError(s)};var nt=(s,e,t)=>e in s?rt(s,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):s[e]=t;var i=(s,e,t)=>nt(s,typeof e!="symbol"?e+"":e,t),Te=(s,e,t)=>e.has(s)||ye("Cannot "+t);var K=(s,e,t)=>(Te(s,e,"read from private field"),t?t.call(s):e.get(s)),be=(s,e,t)=>e.has(s)?ye("Cannot add the same private member more than once"):e instanceof WeakSet?e.add(s):e.set(s,t),Se=(s,e,t,r)=>(Te(s,e,"write to private field"),r?r.call(s,t):e.set(s,t),t);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const _e=(s,e,t)=>s+(e-s)*t,Ae=97,we=(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=Ae);let a=e.charCodeAt(o);isNaN(a)&&(a=Ae),n+=String.fromCharCode(l+(a-l)*t)}return n},Ce=(s,e,t)=>new Date(s.getTime()+(e.getTime()-s.getTime())*t),Pe=(s,e)=>e,ve=s=>typeof s=="number"?_e:typeof s=="string"?we:s instanceof Date?Ce:Pe;var L;class F{constructor(e,t){i(this,"counter");i(this,"isFirst");i(this,"isEven");i(this,"isOdd");be(this,L);i(this,"dispose",()=>{this.total.dispose()});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,L)==null&&Se(this,L,this.total.map(e=>this.counter===e)),K(this,L)}}L=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,t={})=>{t.skipInitial||e(this.get(),void 0);const r=t.once?(o,l)=>{n(),e(o,l)}: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});i(this,"_setAndNotify",(e,t)=>{if(this._disposed)return;const r=this._value,n=this.equals(r,e);n||(this._value=e),(t||!n)&&this._onValueListeners.forEach(o=>o(e,r))});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 P(()=>{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 P(()=>{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 P(()=>{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 P(()=>{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=_(t,n);let l=0,a=new AbortController;return o.onDispose(this.on(async c=>{const u=++l;a.abort(),a=new AbortController;try{const h=await e(c,{abortSignal:a.signal});u===l&&o.set(h)}catch(h){if(u===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",({autoDisposeProp:e=!0,equals:t}={})=>this.feedProp(_(this.get(),t),e));i(this,"derive",()=>this.map(e=>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 d=M;const it=typeof queueMicrotask=="function"?queueMicrotask:s=>Promise.resolve().then(s);class P extends d{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;it(()=>{this._scheduleCount!==t||this._disposed||this._isDirty&&(this._isDirty=!1,this._setAndNotify(this._fn(),!1))})});i(this,"get",()=>(this._isDirty&&(this._isDirty=!1,this._setAndNotify(this._fn(),!0)),this._value));this._fn=t,this.setDirty()}static is(t){return t!=null&&t.$__computed__===!0}get value(){return this.get()}}const X=class X extends d{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 X(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(X,"is",t=>t!=null&&t.$__prop__===!0);let H=X;const Y=(s,e,t=(r,n)=>r===n)=>{const r=new P(s,t);return e.forEach(n=>n.setDerivative(r)),r},Oe=(s,e,t={})=>{let r=t.once?()=>{o(),s()}:s;if(t.skipInitial){let l=!1;const a=r;r=()=>{l?a():l=!0}}const n=Y(r,e),o=()=>{n.dispose(),t.abortSignal!=null&&t.abortSignal.removeEventListener("abort",o)};return t.abortSignal!=null&&t.abortSignal.addEventListener("abort",o),o},_=(s,e=(t,r)=>t===r)=>new H(s,e),I=(s,e=(t,r)=>t===r)=>new d(s,e),ee=()=>typeof window<"u"?window:void 0,y={map:(s,e)=>d.is(s)?s.map(e):e(s),toSignal:(s,e)=>d.is(s)?s:I(s,e),maybeToSignal:(s,e)=>{if(s!=null)return y.toSignal(s,e)},get:s=>d.is(s)?s.get():s,on:(s,e)=>d.is(s)?s.on(e):(e(s),()=>{}),dispose:s=>{d.is(s)&&s.dispose()},deriveProp:(s,{autoDisposeProp:e=!0,equals:t}={})=>d.is(s)?s.deriveProp({autoDisposeProp:e,equals:t}):_(s,t)},xe=(...s)=>(e,t)=>{const r=s.filter(n=>d.is(n));return Y(()=>e(...s.map(n=>y.get(n))),r,t)},ot=s=>{const e=Object.keys(s);return xe(...Object.values(s))((...t)=>Object.fromEntries(e.map((r,n)=>[r,t[n]])))},lt=(...s)=>(e,t={})=>{const r=s.filter(n=>d.is(n));return Oe(()=>e(...s.map(y.get)),r,t)};class te{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 se=({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 H(a!=null?l(n(a)):typeof e=="function"?e():e,o);return c.on(u=>{t.setItem(s,r(u))}),c},at=s=>{var e;return se({...s,store:((e=ee())==null?void 0:e.localStorage)??new te})},ct=s=>{var e;return se({...s,store:((e=ee())==null?void 0:e.sessionStorage)??new te})};function Ee(s){return typeof requestAnimationFrame=="function"?requestAnimationFrame(s):setTimeout(s,0)}const De=(s,e,t,r)=>{const n=(r==null?void 0:r.duration)??300,o=(r==null?void 0:r.easing)??(E=>E),l=(r==null?void 0:r.equals)??((E,q)=>E===q);let a=r==null?void 0:r.interpolate,c=s,u=e(),h=performance.now(),m=null,T=!0;const p=new P(e,l),g=_(s,l);g.onDispose(()=>{m!==null&&cancelAnimationFrame(m)}),g.onDispose(p.dispose),t.forEach(E=>{E.setDerivative(p),E.onDispose(g.dispose)});const C=E=>{u=E,h=performance.now(),c=g.value,T&&(T=!1,m=Ee(me))},me=()=>{const q=(performance.now()-h)/y.get(n),st=o(q);a==null&&(a=ve(c));let ge=a(c,u,st);q>=1?(T=!0,ge=u):m=Ee(me),g.set(ge)};return p.on(C),g},ut=(s,e)=>{const{initialValue:t,...r}=e??{};return De(t??s.get(),s.get,[s],r)},ht=(s,e)=>{const{signals:t,literals:r}=Object.entries(s).reduce(({signals:o,literals:l},[a,c])=>(d.is(c)?o.push([a,c]):l[a]=c,{signals:o,literals:l}),{signals:[],literals:{}}),n=t.map(([,o])=>o);return Y(()=>(t.forEach(([o,l])=>r[o]=l.value),e(r)),n)},Le=new Set(["checked","disabled","hidden"]),Me=new Set(["selected"]),He=new Set(["rowSpan","colSpan","tabIndex","valueAsNumber"]),Ne=new Set(["valueAsDate"]),ke=new Set(["value","textContent","innerText","innerHTML","outerHTML","className","classList"]),Ie=(s,e)=>Me.has(s)?t=>{t==null||t!==!0?e.removeAttribute(s):e.setAttribute(s,"")}:Le.has(s)?t=>{t==null?e[s]=null:e[s]=!!t}:He.has(s)?t=>{t==null?e[s]=null:e[s]=Number(t)}:Ne.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)},$e=(s,e)=>Me.has(s)?()=>e.hasAttribute(s):Le.has(s)?()=>!!e[s]:He.has(s)?()=>Number(e[s]):Ne.has(s)?()=>e[s]:ke.has(s)?()=>String(e[s]):()=>e.getAttribute(s),N=s=>{const e=s;e&&e.onblur&&(e.onblur=null),!(!s||s.ownerDocument===void 0)&&s.parentElement&&s.parentElement.removeChild(s)},Re=s=>re(s)?s:s.parentElement,re=s=>s.nodeType===1;class ne extends Error{constructor(e){super(`Provider not found: ${e.description}`)}}class v{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 v(this.document,e,void 0,this.providers));i(this,"makePortal",e=>{const t=typeof e=="string"?this.document.querySelector(e):e;if(t==null)throw new Error(`Cannot find element by selector for portal: ${e}`);return this.withElement(t)});i(this,"withReference",e=>new v(this.document,this.element,e,this.providers));i(this,"setProvider",(e,t,r)=>new v(this.document,this.element,this.reference,{...this.providers,[e]:[t,r]}));i(this,"getProvider",e=>{if(this.providers[e]===void 0)throw new ne(e);const[t,r]=this.providers[e];return{value:t,onUse:r}});i(this,"clear",e=>{e&&(this.reference!==void 0?N(this.reference):N(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,r)=>{const n=o=>t(o,this);return this.element.addEventListener(e,n,r),o=>{o&&this.element.removeEventListener(e,n,r)}});i(this,"isBrowserDOM",()=>!0);i(this,"isBrowser",()=>!0);i(this,"isHeadlessDOM",()=>!1);i(this,"isHeadless",()=>!1);i(this,"setStyle",(e,t)=>{this.element.style[e]=t});i(this,"getStyle",e=>this.element.style[e]);i(this,"makeAccessors",e=>({get:$e(e,this.element),set:Ie(e,this.element)}));i(this,"getWindow",()=>this.document.defaultView);this.document=e,this.element=t,this.reference=r,this.providers=n}static of(e,t,r){return new v(e.ownerDocument,e,t,r)}}const Ve=s=>Symbol(s),z=(s,e)=>{const t=s(e);return(r=!0)=>t(r)},ft=(s,e,{doc:t,clear:r,disposeWithParent:n=!0,providers:o={}}={})=>{const l=typeof e=="string"?(t??document).querySelector(e):e;if(l===null)throw new je(`Cannot find element by selector for render: ${e}`);r!==!1&&(t??l.ownerDocument)!=null&&l.nodeType===1&&(l.innerHTML="");const a=Re(l),c=re(l)?void 0:l,u=v.of(a,c,o),h=z(s,u);let m;return n&&(m=new MutationObserver(T=>{var p;(p=T[0])==null||p.removedNodes.forEach(g=>{g===l&&(m==null||m.disconnect(),h(l.nodeType!==Node.ELEMENT_NODE))})}),m.observe(l.parentElement,{childList:!0,subtree:!1,attributes:!1})),()=>{m==null||m.disconnect(),h(!0)}},dt=(s,{startUrl:e="https://example.com",selector:t,providers:r={}}={selector:"body"})=>{const n=y.toSignal(e).deriveProp(),o=new oe(t,void 0),l=new O(o,void 0,{currentURL:n},r);return{clear:z(s(),l),root:o,currentURL:n}};class je extends Error{constructor(e){super(e)}}const ie="data-tts-node",k="data-tts-class",W="data-tts-style",U="data-tts-html",G="data-tts-text",J="data-tts-attrs";class pt{constructor({select:e,getAttribute:t,setAttribute:r,getClass:n,setClass:o,getStyles:l,setStyles:a,appendHTML:c,getInnerHTML:u,setInnerHTML:h,getInnerText:m,setInnerText:T}){i(this,"select");i(this,"getAttribute");i(this,"setAttribute");i(this,"getClass");i(this,"setClass");i(this,"getStyles");i(this,"setStyles");i(this,"appendHTML");i(this,"getInnerHTML");i(this,"setInnerHTML");i(this,"getInnerText");i(this,"setInnerText");i(this,"setFromRoot",(e,t)=>{e.getPortals().forEach(n=>{const o=typeof n.selector=="string"?this.select(n.selector):[n.selector];for(const l of o){if(l==null)throw new Error(`Cannot find element by selector for render: ${n.selector}`);if(n.hasChildren()&&this.appendHTML(l,n.contentToHTML(t)),n.hasInnerHTML()){if(t){const a=this.getInnerHTML(l);a!=null&&this.setAttribute(l,U,a)}this.setInnerHTML(l,n.getInnerHTML())}if(n.hasInnerText()){if(t){const a=this.getInnerText(l);a!=null&&this.setAttribute(l,G,a)}this.setInnerText(l,n.getInnerText())}if(n.hasClasses()){if(t){const a=this.getClass(l);a!=null&&this.setAttribute(l,k,a)}this.setClass(l,n.getClasses().join(" "))}if(n.hasStyles()){if(t){const a=this.getStyles(l);Object.keys(a).length>0&&this.setAttribute(l,W,JSON.stringify(a))}this.setStyles(l,n.getStyles())}if(n.hasAttributes()){const a=n.getAttributes();if(t){const c=[];a.forEach(([u])=>{const h=this.getAttribute(l,u);h!=null&&c.push([u,h])}),c.length>0&&this.setAttribute(l,J,JSON.stringify(Object.fromEntries(c)))}a.forEach(([c,u])=>{this.setAttribute(l,c,u)})}}})});this.select=e,this.getAttribute=t,this.setAttribute=r,this.getClass=n,this.setClass=o,this.getStyles=l,this.setStyles=a,this.appendHTML=c,this.getInnerHTML=u,this.setInnerHTML=h,this.getInnerText=m,this.setInnerText=T}}const mt=()=>{document.querySelectorAll(`[${ie}]`).forEach(N)},gt=s=>{const e=s.getAttribute(k);s.removeAttribute(k),e!=null&&s.setAttribute("class",e)},yt=()=>{document.querySelectorAll(`[${k}]`).forEach(e=>gt(e))},Tt=s=>{const e=s.getAttribute(U);s.removeAttribute(U),e!=null&&(s.innerHTML=e)},bt=()=>{document.querySelectorAll(`[${U}]`).forEach(e=>Tt(e))},St=s=>{const e=s.getAttribute(G);s.removeAttribute(G),e!=null&&(s.innerText=e)},At=()=>{document.querySelectorAll(`[${G}]`).forEach(e=>St(e))},qe=s=>JSON.parse(s.replace(/&quot;/g,'"')),Et=s=>{const e=s.getAttribute(W);if(s.removeAttribute(W),e!=null){const t=qe(e);Object.entries(t).forEach(([r,n])=>{s.style.setProperty(r,n)})}},_t=()=>{document.querySelectorAll(`[${W}]`).forEach(e=>Et(e))},wt=s=>{const e=s.getAttribute(J);if(s.removeAttribute(J),e!=null){const t=qe(e);Object.entries(t).forEach(([r,n])=>{n==null?s.removeAttribute(r):s.setAttribute(r,n)})}},Ct=()=>{document.querySelectorAll(`[${J}]`).forEach(e=>wt(e))},Pt=()=>{mt(),yt(),At(),bt(),_t(),Ct()},S=Symbol("class"),w=Symbol("style"),D=Symbol("handler"),Be=()=>Math.random().toString(36).substring(2,15),vt=s=>s.replace(/<[^>]*>?/g,"");class Fe{constructor(e){i(this,"id",Be());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?vt(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[S]!=null);i(this,"hasStyles",()=>this.properties[w]!=null);i(this,"hasAttributes",()=>Object.keys(this.properties).length>0);i(this,"hasHandlers",()=>this.properties[D]!=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[D]??{})[e]??[]).forEach(n=>n(t))});i(this,"click",()=>{this.trigger("click",{})});i(this,"on",(e,t,r,n)=>{var c;const o=(c=this.properties)[D]??(c[D]={}),l=n!=null&&n.once?u=>{a(),t(u,r)}:u=>t(u,r);o[e]=[...o[e]??[],l];const a=()=>{const u=o[e]??[],h=u.indexOf(l);h!==-1&&(u.splice(h,1),u.length===0?(delete o[e],Object.keys(o).length===0&&delete this.properties[D]):o[e]=u,(n==null?void 0:n.signal)!=null&&n.signal.removeEventListener("abort",a))};return(n==null?void 0:n.signal)!=null&&n.signal.addEventListener("abort",a),a});i(this,"addClasses",e=>{var r;if(e.length===0)return;const t=(r=this.properties)[S]??(r[S]=[]);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)[S]??(r[S]=[]);e.forEach(n=>{const o=t.indexOf(n);o!==-1&&t.splice(o,1)}),t.length===0&&delete this.properties[S]});i(this,"getClasses",()=>this.properties[S]??[]);i(this,"getAttributes",()=>Object.entries(this.properties).filter(([e])=>!["innerText","innerHTML"].includes(e)));i(this,"getVisibleAttributes",()=>Reflect.ownKeys(this.properties).flatMap(e=>e===S?[["class",this.getClasses()]]:e===w?[["style",this.getStyles()]]:typeof e=="string"?[[e,String(this.properties[e])]]:[]));i(this,"setStyle",(e,t)=>{var n;const r=(n=this.properties)[w]??(n[w]={});r[e]=t,t===""&&(delete r[e],Object.keys(r).length===0&&delete this.properties[w])});i(this,"getStyle",e=>{var t;return((t=this.properties[w])==null?void 0:t[e])??""});i(this,"getStyles",()=>this.properties[w]??{});i(this,"makeAccessors",e=>{const t=this.properties;return{get:()=>t[e],set:r=>t[e]=r}});this.parent=e}}const Ot=s=>s.replace(/"/g,"&quot;"),xt=s=>s.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;");class We extends Fe{constructor(t,r,n){super(n);i(this,"isPortal",()=>!1);i(this,"toHTML",(t=!1)=>{const r=this.children.map(c=>c.toHTML()).join(""),n=this.namespace?` xmlns="${this.namespace}"`:"";let o=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(" ")}"`:Dt.has(c)?` ${c}`:c==="innerHTML"?(o=u,""):c==="innerText"?(o=xt(u),""):` ${c}="${Ot(u)}"`).join(""),a=t?` ${ie}`:"";return Lt.has(this.tagName)&&r===""?`<${this.tagName}${n}${l}${a} />`:`<${this.tagName}${n}${l}${a}>${o??r}</${this.tagName}>`});this.tagName=t,this.namespace=r}}class oe extends Fe{constructor(t,r){super(r);i(this,"isPortal",()=>!0);i(this,"toHTML",()=>"");i(this,"contentToHTML",(t=!1)=>this.children.map(r=>r.toHTML(t)).join(""));this.selector=t}}class Ue{constructor(e){i(this,"id",Be());i(this,"isElement",()=>!1);i(this,"isText",()=>!0);i(this,"getText",()=>this.text);i(this,"toHTML",()=>this.text);this.text=e}}class O{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 We(e,t,this.element);return this.appendOrInsert(r),new O(r,void 0,this.container,this.providers)});i(this,"makeChildText",e=>{const t=new Ue(e);return this.appendOrInsert(t),new O(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 oe(e,this.element);return this.appendOrInsert(t),new O(t,void 0,this.container,this.providers)});i(this,"setProvider",(e,t,r)=>new O(this.element,this.reference,this.container,{...this.providers,[e]:[t,r]}));i(this,"getProvider",e=>{if(this.providers[e]===void 0)throw new ne(e);const[t,r]=this.providers[e];return{value:t,onUse:r}});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,this));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,"isBrowser",()=>!1);i(this,"isHeadlessDOM",()=>!0);i(this,"isHeadless",()=>!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 Dt=new Set(["checked","disabled","multiple","readonly","required","selected"]),Lt=new Set(["img","br","hr","input","link","meta"]),le=s=>e=>e.makeChildText(s).clear,ae=s=>e=>{const t=e.makeChildText(s.value),r=s.on(t.setText);return n=>{r(),t.clear(n)}},Mt=s=>d.is(s)?ae(s):le(s),b=(...s)=>e=>{const t=s.map(r=>f(r)(e));return r=>{t.forEach(n=>n(r))}},A=()=>()=>{},Ht=s=>e=>(e.addClasses(s),t=>{t&&e.removeClasses(s)}),Nt=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)}},R=(s,e)=>t=>{const{get:r,set:n}=t.makeAccessors(s),o=r(),l=e.on(n);return a=>{l(),a&&n(o)}},x=new Proxy({},{get:(s,e)=>e==="class"?t=>d.is(t)?Nt(t):Ht((t??"").split(" ").filter(r=>r.length>0)):t=>d.is(t)?R(e,t):$(e,t)}),kt=new Proxy({},{get:(s,e)=>t=>d.is(t)?R(`data-${e}`,t):$(`data-${e}`,t)}),It=new Proxy({},{get:(s,e)=>t=>d.is(t)?R(`aria-${e}`,t):$(`aria-${e}`,t)}),$t=new Proxy({},{get:(s,e)=>t=>d.is(t)?R(e,t):$(e,t)}),Rt=new Proxy({},{get:(s,e)=>t=>d.is(t)?R(e,t):$(e,t)}),f=s=>{if(s==null)return A;if(Array.isArray(s))return b(...s.map(f));if(typeof s=="string")return le(s);if(d.is(s))return ae(s);if(typeof s=="function")return s;throw new Error(`Unknown type: '${typeof s}' for child: ${s}`)},ce=(s,...e)=>t=>{const r=t.makeChildElement(s,void 0),n=e.map(o=>f(o)(r));return o=>{n.forEach(l=>l(!1)),r.clear(o)}},ue=(s,e,...t)=>r=>{const n=r.makeChildElement(s,e),o=t.map(l=>f(l)(n));return l=>{o.forEach(a=>a(!1)),n.clear(l)}},Vt=new Proxy({},{get:(s,e)=>(...t)=>ce(e,t.flatMap(f))}),jt=new Proxy({},{get:(s,e)=>(...t)=>ce("input",x.type(e),...t)}),qt="http://www.w3.org/2000/svg",Bt=new Proxy({},{get:(s,e)=>(...t)=>ue(e,qt,t.flatMap(f))}),Ft="http://www.w3.org/1998/Math/MathML",Wt=new Proxy({},{get:(s,e)=>(...t)=>ue(e,Ft,t.flatMap(f))}),he=(s,e)=>{if(typeof e=="function")return he(s,{then:e});const t=e.pending!=null?f(e.pending()):A,r=e.then,n=e.error!=null?o=>f(e.error(o)):()=>A;return o=>{let l=!0;const a=s(),c=o.makeRef();let u=f(t)(c);return a.then(h=>{l&&(u(!0),u=f(r(h))(c))},h=>{l&&(u(!0),u=f(n(h))(c))}),h=>{l=!1,u(h),c.clear(h)}}},Ut=(s,e)=>he(()=>s,e),Ge=(s,e,t)=>r=>r.on(s,e,t),Je=s=>Ge("click",(e,t)=>{e.preventDefault();const r=e.target;setTimeout(()=>{const n=r.ownerDocument!=null?r==null?void 0:r.checked:void 0;n!=null&&s(!n,t)},0)}),V=new Proxy({},{get:(s,e)=>t=>Ge(e,t)}),Xe=s=>e=>{const t=e.target;s(t.value)},Ye=s=>e=>{const t=e.target;s(t.valueAsNumber)},ze=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)},Gt=s=>e=>{const t=e.target;if(t.value===""){s(null);return}const r=t.value.split("-"),n=new Date(Number(r[0]),Number(r[1])-1,Number(r[2].substring(0,2)));s(n)},Qe=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)},Jt=s=>e=>{const t=e.target;if(t.value===""){s(null);return}const r=t.value.split("T");if(r.length!==2){s(null);return}const 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]??0)),o.setMinutes(Number(l[1]??0)),o.setSeconds(Number(l[2]??0)),s(o)},Xt=s=>e=>{const t=e.target;s(t.checked)},Yt=s=>e=>{e.preventDefault(),s()},zt=s=>e=>{e.stopPropagation(),s()},Qt=s=>e=>{e.stopImmediatePropagation(),s()},Zt=(s,e="input")=>b(x.valueAsDate(s),V[e](ze(s.set))),Kt=(s,e="input")=>b(x.valueAsDate(s),V[e](Qe(s.set))),es=(s,e="input")=>b(x.valueAsNumber(s),V[e](Ye(s.set))),ts=(s,e="input")=>b(x.value(s),V[e](Xe(s.set))),ss=s=>b(x.checked(s),Je(s.set)),j=(s,e)=>{if(d.is(s))return r=>{const n=r.makeRef();let o,l;const a=s.map(h=>Object.keys(h)[0]);let c;const u=a.on(h=>{if(h!==c){c=h,l==null||l.dispose(),o==null||o(!0),l=s.map(T=>T[h]);const m=e[h](l);o=f(m)(n)}});return h=>{l==null||l.dispose(),u(),n.clear(h),o==null||o(h)}};const t=Object.keys(s)[0];return f(e[t](I(s[t])))},fe=(s,e,t)=>j(y.map(s,r=>({[r[e]]:r})),t),rs=(s,e)=>fe(s,"kind",e),ns=(s,e)=>{const t=y.map(s,([r,n])=>({[r]:n}));return j(t,e)},is=(s,e)=>fe(s,"type",e),Ze=(s,e)=>j(y.map(s,t=>({[t]:!0})),e),os=(s,e={})=>t=>{const r=(e==null?void 0:e.firstSeparator)??s,n=(e==null?void 0:e.lastSeparator)??s;return Ze(t.map(o=>o.isFirst?"first":o.isLast?"last":"other"),{first:r,last:n,other:s})},ls=s=>e=>(e.appendOrInsert(s),t=>{t&&N(s)}),Ke=(s,e,t)=>{if(d.is(s)){const r=s;return n=>{const o=n.makeRef();let l=()=>{},a=!1,c=null;const u=r.on(h=>{h==null?(l(!0),l=f((t==null?void 0:t())??A)(o),a=!1,c==null||c.dispose(),c=null):(c==null?c=_(h):c.value=h,a||(l(!0),l=f(e(c))(o),a=!0))});return h=>{c==null||c.dispose(),u(),l==null||l(h),o.clear(h)}}}else{const r=s;if(r==null){const n=t==null?void 0:t();return n!=null?f(n):A}return f(e(I(r)))}},as=(...s)=>(e,t)=>r=>{const n=r.makeRef();if(s.some(p=>!d.is(p)&&p==null))return(t!=null?f(t==null?void 0:t()):A)(n);const l=s.map(()=>null),a=s.map(p=>d.is(p)?p.value!=null:p!=null);let c=null;const u=_(a.every(p=>p)),h=(p,g)=>{if(p.value!=null){if(l[g]==null){const C=_(p.value);l[g]=C}else l[g].value=p.value;a[g]=!0}else a[g]=!1};let m=s.length-1;const T=s.map((p,g)=>{if(!d.is(p)){const C=_(p);return l[g]=C,()=>{}}return p.on(()=>{h(p,g),m===0?u.value=a.every(C=>C):m--})});return u.on(p=>{c==null||c(!0),c=null,p?c=f(e(...l))(n):c=f((t==null?void 0:t())??A)(n)}),p=>{l.forEach(g=>g==null?void 0:g.dispose()),u.dispose(),T.forEach(g=>g()),c==null||c(p),n.clear(p)}},Q=(...s)=>e=>t=>s.forEach(r=>r(t,e)),de=(s,e,t)=>Ke(y.map(s,r=>r?!0:null),e,t??void 0),cs=(s,e,t)=>de(y.map(s,r=>!r),e,t),pe=(s,e,t)=>t!=null?pe(s,r=>{const n=new F(r.index,r.total.map(o=>o-1));return b(Q(n.dispose),f(e(r)),de(r.isLast,()=>A,()=>t(n)))}):d.is(s)?r=>{const n=r.makeRef(),o=[],l=s.on(a=>{const c=o.splice(a);for(const u of c)u(!0);for(let u=o.length;u<a;u++){const h=new F(u,s);o.push(f(e(h))(n))}});return a=>{l();for(const c of o)c(a);o.length=0,n.clear(a)}}:b(...Array.from({length:s},(r,n)=>n).map(r=>f(e(new F(r,I(s)))))),us=(s,e,t)=>{const r=y.map(s,o=>o.length),n=y.toSignal(s);return pe(r,o=>{const l=n.map(a=>a[o.index]);return b(Q(l.dispose),f(e(l,o)))},t)},hs=(s,e)=>{if(d.is(s)){const t=s;return r=>{r=r.makeRef();const n=t.map(a=>f(e(a)));let o=()=>{};const l=n.on(a=>{o(!0),o=a(r)});return a=>{l(),o(a)}}}return f(e(s))},fs=(s,e,t=()=>A)=>j(y.map(s,r=>r.length>0?{notEmpty:r}:{whenEmpty:null}),{notEmpty:r=>e(r),whenEmpty:()=>t()}),ds=(s,e)=>t=>{const r=t.makePortal(s);return z(f(e),r)},B=new Map,et=s=>({mark:Ve(`Probe(${s.description})`),create:({callback:e=()=>{},timeout:t=10}={})=>{const r=a=>{clearTimeout(n),B.delete(s),e(a)};if(B.has(s))throw new Error(`Probe already exists: ${s.description}`);const n=setTimeout(()=>r("timeout"),t),o={counter:0,timeoutId:n};return B.set(s,o),{value:()=>{clearTimeout(n);const a=B.get(s);a!=null&&--a.counter===0&&r("resolved")},dispose:()=>r("disposed"),onUse:()=>o.counter++}}}),ps=et(Symbol("GlobalProbe")),ms=(s,e)=>t=>{const r=t.getStyle(s);return t.setStyle(s,e),n=>{n&&t.setStyle(s,r)}},gs=(s,e)=>t=>{const r=t.getStyle(s);return e.on(n=>t.setStyle(s,n)),n=>{n&&t.setStyle(s,r)}},ys=new Proxy({},{get:(s,e)=>t=>d.is(t)?gs(e,t):ms(e,t)}),tt=s=>e=>{if(e.isBrowser()){const t=s(e);if(t!=null)return f(t)(e)}return()=>{}},Ts=s=>e=>{const t=s(e);return t==null?()=>{}:f(t)(e)},bs=s=>tt(e=>s(e.element)),Ss=s=>e=>{if(e.isHeadlessDOM()){const t=s(e);if(t)return f(t)(e)}return()=>{}},Z=s=>e=>{let t=e;function r(){return t}function n(a){t=a}const o=[],l=s({use:({mark:a})=>{const{value:c,onUse:u}=r().getProvider(a);return u==null||u(),c},set:({mark:a,create:c},u)=>{const{value:h,dispose:m,onUse:T}=c(u,r());o.push(m),n(r().setProvider(a,h,T))}});return l==null?()=>{}:b(f(l),Q(()=>o.forEach(a=>a())))(r())},As=(s,e,t)=>Z(({set:r})=>(r(s,e),t())),Es=(s,e)=>Z(({use:t})=>e(t(s))),_s=(...s)=>e=>Z(({use:t})=>{const r=s.map(t);return e(...r)});exports.Async=Ut;exports.BindChecked=ss;exports.BindDate=Zt;exports.BindDateTime=Kt;exports.BindNumber=es;exports.BindText=ts;exports.BrowserContext=v;exports.CLASS_PLACEHOLDER_ATTR=k;exports.Computed=P;exports.Conjunction=os;exports.DOMNode=ls;exports.El=ce;exports.ElNS=ue;exports.ElementPosition=F;exports.Empty=A;exports.Ensure=Ke;exports.EnsureAll=as;exports.ForEach=us;exports.Fragment=b;exports.GlobalProbe=ps;exports.HeadlessAdapter=pt;exports.HeadlessContext=O;exports.HeadlessElement=We;exports.HeadlessPortal=oe;exports.HeadlessText=Ue;exports.MapSignal=hs;exports.MemoryStore=te;exports.NotEmpty=fs;exports.OnChecked=Je;exports.OnDispose=Q;exports.OneOf=j;exports.OneOfField=fe;exports.OneOfKind=rs;exports.OneOfTuple=ns;exports.OneOfType=is;exports.OneOfValue=Ze;exports.Portal=ds;exports.Prop=H;exports.Provide=As;exports.ProviderNotFoundError=ne;exports.RenderingError=je;exports.Repeat=pe;exports.Signal=d;exports.Task=he;exports.TextNode=Mt;exports.Unless=cs;exports.Use=Es;exports.UseMany=_s;exports.Value=y;exports.When=de;exports.WithBrowserCtx=tt;exports.WithCtx=Ts;exports.WithElement=bs;exports.WithHeadlessCtx=Ss;exports.WithProvider=Z;exports._NODE_PLACEHOLDER_ATTR=ie;exports._getSelfOrParentElement=Re;exports._isElement=re;exports._makeGetter=$e;exports._makeSetter=Ie;exports._removeDOMNode=N;exports._signalText=ae;exports._staticText=le;exports.animateSignal=ut;exports.animateSignals=De;exports.aria=It;exports.attr=x;exports.computed=Y;exports.computedOf=xe;exports.computedRecord=ht;exports.dataAttr=kt;exports.effect=Oe;exports.effectOf=lt;exports.emitChecked=Xt;exports.emitPreventDefault=Yt;exports.emitStopImmediatePropagation=Qt;exports.emitStopPropagation=zt;exports.emitValue=Xe;exports.emitValueAsDate=ze;exports.emitValueAsDateTime=Qe;exports.emitValueAsNullableDate=Gt;exports.emitValueAsNullableDateTime=Jt;exports.emitValueAsNumber=Ye;exports.endInterpolate=Pe;exports.getWindow=ee;exports.guessInterpolate=ve;exports.html=Vt;exports.input=jt;exports.interpolateDate=Ce;exports.interpolateNumber=_e;exports.interpolateString=we;exports.joinSignals=ot;exports.localStorageProp=at;exports.makeProbe=et;exports.makeProviderMark=Ve;exports.math=Wt;exports.mathAttr=Rt;exports.on=V;exports.prop=_;exports.render=ft;exports.renderWithContext=z;exports.renderableOfTNode=f;exports.restoreTempoPlaceholders=Pt;exports.runHeadless=dt;exports.sessionStorageProp=ct;exports.signal=I;exports.storedProp=se;exports.style=ys;exports.svg=Bt;exports.svgAttr=$t;
1
+ "use strict";var rt=Object.defineProperty;var Te=s=>{throw TypeError(s)};var nt=(s,e,t)=>e in s?rt(s,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):s[e]=t;var o=(s,e,t)=>nt(s,typeof e!="symbol"?e+"":e,t),be=(s,e,t)=>e.has(s)||Te("Cannot "+t);var F=(s,e,t)=>(be(s,e,"read from private field"),t?t.call(s):e.get(s)),Se=(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),ee=(s,e,t,r)=>(be(s,e,"write to private field"),r?r.call(s,t):e.set(s,t),t);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const _e=(s,e,t)=>s+(e-s)*t,Ae=97,ve=(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=Ae);let a=e.charCodeAt(i);isNaN(a)&&(a=Ae),n+=String.fromCharCode(l+(a-l)*t)}return n},we=(s,e,t)=>new Date(s.getTime()+(e.getTime()-s.getTime())*t),Ce=(s,e)=>e,Pe=s=>typeof s=="number"?_e:typeof s=="string"?ve:s instanceof Date?we:Ce;var w;class U{constructor(e,t){o(this,"counter");o(this,"isFirst");o(this,"isEven");o(this,"isOdd");Se(this,w);o(this,"dispose",()=>{var e;(e=F(this,w))==null||e.dispose(),ee(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 F(this,w)==null&&ee(this,w,this.total.map(e=>this.counter===e)),F(this,w)}}w=new WeakMap;const H=class H{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(),void 0);const r=t.once?(i,l)=>{n(),e(i,l)}: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)=>{if(this._disposed)return;const r=this._value,n=this.equals(r,e);n||(this._value=e),(t||!n)&&this._onValueListeners.forEach(i=>i(e,r))});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 P(()=>{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 P(()=>{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 P(()=>{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 P(()=>{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=_(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",({autoDisposeProp:e=!0,equals:t}={})=>this.feedProp(_(this.get(),t),e));o(this,"derive",()=>this.map(e=>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(H,"ofPromise",(e,t,r,n=(i,l)=>i===l)=>{const i=new H(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(H,"is",e=>e!=null&&e.$__signal__===!0);let f=H;const it=typeof queueMicrotask=="function"?queueMicrotask:s=>Promise.resolve().then(s);class P 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;it(()=>{this._scheduleCount!==t||this._disposed||this._isDirty&&(this._isDirty=!1,this._setAndNotify(this._fn(),!1))})});o(this,"get",()=>(this._isDirty&&(this._isDirty=!1,this._setAndNotify(this._fn(),!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 N=z;const Q=(s,e,t=(r,n)=>r===n)=>{const r=new P(s,t);return e.forEach(n=>n.setDerivative(r)),r},xe=(s,e,t={})=>{let r=t.once?()=>{i(),s()}:s;if(t.skipInitial){let l=!1;const a=r;r=()=>{l?a():l=!0}}const n=Q(r,e),i=()=>{n.dispose(),t.abortSignal!=null&&t.abortSignal.removeEventListener("abort",i)};return t.abortSignal!=null&&t.abortSignal.addEventListener("abort",i),i},_=(s,e=(t,r)=>t===r)=>new N(s,e),$=(s,e=(t,r)=>t===r)=>new f(s,e),te=()=>typeof window<"u"?window:void 0,y={map:(s,e)=>f.is(s)?s.map(e):e(s),toSignal:(s,e)=>f.is(s)?s:$(s,e),maybeToSignal:(s,e)=>{if(s!=null)return y.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()},deriveProp:(s,{autoDisposeProp:e=!0,equals:t}={})=>f.is(s)?s.deriveProp({autoDisposeProp:e,equals:t}):_(s,t)},Oe=(...s)=>(e,t)=>{const r=s.filter(n=>f.is(n));return Q(()=>e(...s.map(n=>y.get(n))),r,t)},ot=s=>{const e=Object.keys(s);return Oe(...Object.values(s))((...t)=>Object.fromEntries(e.map((r,n)=>[r,t[n]])))},lt=(...s)=>(e,t={})=>{const r=s.filter(n=>f.is(n));return xe(()=>e(...s.map(y.get)),r,t)};class se{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 re=({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 N(a!=null?l(n(a)):typeof e=="function"?e():e,i);return c.on(u=>{t.setItem(s,r(u))}),c},at=s=>{var e;return re({...s,store:((e=te())==null?void 0:e.localStorage)??new se})},ct=s=>{var e;return re({...s,store:((e=te())==null?void 0:e.sessionStorage)??new se})};function Ee(s){return typeof requestAnimationFrame=="function"?requestAnimationFrame(s):setTimeout(s,0)}const De=(s,e,t,r)=>{const n=(r==null?void 0:r.duration)??300,i=(r==null?void 0:r.easing)??(E=>E),l=(r==null?void 0:r.equals)??((E,B)=>E===B);let a=r==null?void 0:r.interpolate,c=s,u=e(),h=performance.now(),m=null,T=!0;const p=new P(e,l),g=_(s,l);g.onDispose(()=>{m!==null&&cancelAnimationFrame(m)}),g.onDispose(p.dispose),t.forEach(E=>{E.setDerivative(p),E.onDispose(g.dispose)});const C=E=>{u=E,h=performance.now(),c=g.value,T&&(T=!1,m=Ee(ge))},ge=()=>{const B=(performance.now()-h)/y.get(n),st=i(B);a==null&&(a=Pe(c));let ye=a(c,u,st);B>=1?(T=!0,ye=u):m=Ee(ge),g.set(ye)};return p.on(C),g},ut=(s,e)=>{const{initialValue:t,...r}=e??{};return De(t??s.get(),s.get,[s],r)},ht=(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 Q(()=>(t.forEach(([i,l])=>r[i]=l.value),e(r)),n)},Le=new Set(["checked","disabled","hidden"]),Me=new Set(["selected"]),He=new Set(["rowSpan","colSpan","tabIndex","valueAsNumber"]),Ne=new Set(["valueAsDate"]),ke=new Set(["value","textContent","innerText","innerHTML","outerHTML","className","classList"]),Ie=(s,e)=>Me.has(s)?t=>{t==null||t!==!0?e.removeAttribute(s):e.setAttribute(s,"")}:Le.has(s)?t=>{t==null?e[s]=null:e[s]=!!t}:He.has(s)?t=>{t==null?e[s]=null:e[s]=Number(t)}:Ne.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)},$e=(s,e)=>Me.has(s)?()=>e.hasAttribute(s):Le.has(s)?()=>!!e[s]:He.has(s)?()=>Number(e[s]):Ne.has(s)?()=>e[s]:ke.has(s)?()=>String(e[s]):()=>e.getAttribute(s),k=s=>{const e=s;e&&e.onblur&&(e.onblur=null),!(!s||s.ownerDocument===void 0)&&s.parentElement&&s.parentElement.removeChild(s)},Re=s=>ne(s)?s:s.parentElement,ne=s=>s.nodeType===1;class ie extends Error{constructor(e){super(`Provider not found: ${e.description}`)}}class x{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 x(this.document,e,void 0,this.providers));o(this,"makePortal",e=>{const t=typeof e=="string"?this.document.querySelector(e):e;if(t==null)throw new Error(`Cannot find element by selector for portal: ${e}`);return this.withElement(t)});o(this,"withReference",e=>new x(this.document,this.element,e,this.providers));o(this,"setProvider",(e,t,r)=>new x(this.document,this.element,this.reference,{...this.providers,[e]:[t,r]}));o(this,"getProvider",e=>{if(this.providers[e]===void 0)throw new ie(e);const[t,r]=this.providers[e];return{value:t,onUse:r}});o(this,"clear",e=>{e&&(this.reference!==void 0?k(this.reference):k(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)=>{const n=i=>t(i,this);return this.element.addEventListener(e,n,r),i=>{i&&this.element.removeEventListener(e,n,r)}});o(this,"isBrowserDOM",()=>!0);o(this,"isBrowser",()=>!0);o(this,"isHeadlessDOM",()=>!1);o(this,"isHeadless",()=>!1);o(this,"setStyle",(e,t)=>{this.element.style[e]=t});o(this,"getStyle",e=>this.element.style[e]);o(this,"makeAccessors",e=>({get:$e(e,this.element),set:Ie(e,this.element)}));o(this,"getWindow",()=>this.document.defaultView);this.document=e,this.element=t,this.reference=r,this.providers=n}static of(e,t,r){return new x(e.ownerDocument,e,t,r)}}const Ve=s=>Symbol(s),Z=(s,e)=>{const t=s(e);return(r=!0)=>t(r)},dt=(s,e,{doc:t,clear:r,disposeWithParent:n=!0,providers:i={}}={})=>{const l=typeof e=="string"?(t??document).querySelector(e):e;if(l===null)throw new je(`Cannot find element by selector for render: ${e}`);r!==!1&&(t??l.ownerDocument)!=null&&l.nodeType===1&&(l.innerHTML="");const a=Re(l),c=ne(l)?void 0:l,u=x.of(a,c,i),h=Z(s,u);let m;return n&&(m=new MutationObserver(T=>{var p;(p=T[0])==null||p.removedNodes.forEach(g=>{g===l&&(m==null||m.disconnect(),h(l.nodeType!==1))})}),m.observe(l.parentElement,{childList:!0,subtree:!1,attributes:!1})),()=>{m==null||m.disconnect(),h(!0)}},ft=(s,{startUrl:e="https://example.com",selector:t,providers:r={}}={selector:"body"})=>{const n=y.toSignal(e).deriveProp(),i=new le(t,void 0),l=new O(i,void 0,{currentURL:n},r);return{clear:Z(s(),l),root:i,currentURL:n}};class je extends Error{constructor(e){super(e)}}const oe="data-tts-node",I="data-tts-class",G="data-tts-style",J="data-tts-html",X="data-tts-text",Y="data-tts-attrs";class pt{constructor({select:e,getAttribute:t,setAttribute:r,getClass:n,setClass:i,getStyles:l,setStyles:a,appendHTML:c,getInnerHTML:u,setInnerHTML:h,getInnerText:m,setInnerText:T}){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=>{const i=typeof n.selector=="string"?this.select(n.selector):[n.selector];for(const l of i){if(l==null)throw new Error(`Cannot find element by selector for render: ${n.selector}`);if(n.hasChildren()&&this.appendHTML(l,n.contentToHTML(t)),n.hasInnerHTML()){if(t){const a=this.getInnerHTML(l);a!=null&&this.setAttribute(l,J,a)}this.setInnerHTML(l,n.getInnerHTML())}if(n.hasInnerText()){if(t){const a=this.getInnerText(l);a!=null&&this.setAttribute(l,X,a)}this.setInnerText(l,n.getInnerText())}if(n.hasClasses()){if(t){const a=this.getClass(l);a!=null&&this.setAttribute(l,I,a)}this.setClass(l,n.getClasses().join(" "))}if(n.hasStyles()){if(t){const a=this.getStyles(l);Object.keys(a).length>0&&this.setAttribute(l,G,JSON.stringify(a))}this.setStyles(l,n.getStyles())}if(n.hasAttributes()){const a=n.getAttributes();if(t){const c=[];a.forEach(([u])=>{const h=this.getAttribute(l,u);h!=null&&c.push([u,h])}),c.length>0&&this.setAttribute(l,Y,JSON.stringify(Object.fromEntries(c)))}a.forEach(([c,u])=>{this.setAttribute(l,c,u)})}}})});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=T}}const mt=()=>{document.querySelectorAll(`[${oe}]`).forEach(k)},gt=s=>{const e=s.getAttribute(I);s.removeAttribute(I),e!=null&&s.setAttribute("class",e)},yt=()=>{document.querySelectorAll(`[${I}]`).forEach(e=>gt(e))},Tt=s=>{const e=s.getAttribute(J);s.removeAttribute(J),e!=null&&(s.innerHTML=e)},bt=()=>{document.querySelectorAll(`[${J}]`).forEach(e=>Tt(e))},St=s=>{const e=s.getAttribute(X);s.removeAttribute(X),e!=null&&(s.innerText=e)},At=()=>{document.querySelectorAll(`[${X}]`).forEach(e=>St(e))},qe=s=>JSON.parse(s.replace(/&quot;/g,'"')),Et=s=>{const e=s.getAttribute(G);if(s.removeAttribute(G),e!=null){const t=qe(e);Object.entries(t).forEach(([r,n])=>{s.style.setProperty(r,n)})}},_t=()=>{document.querySelectorAll(`[${G}]`).forEach(e=>Et(e))},vt=s=>{const e=s.getAttribute(Y);if(s.removeAttribute(Y),e!=null){const t=qe(e);Object.entries(t).forEach(([r,n])=>{n==null?s.removeAttribute(r):s.setAttribute(r,n)})}},wt=()=>{document.querySelectorAll(`[${Y}]`).forEach(e=>vt(e))},Ct=()=>{mt(),yt(),At(),bt(),_t(),wt()},S=Symbol("class"),v=Symbol("style"),L=Symbol("handler"),Be=()=>Math.random().toString(36).substring(2,15),Pt=s=>s.replace(/<[^>]*>?/g,"");class Fe{constructor(e){o(this,"id",Be());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?Pt(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[S]!=null);o(this,"hasStyles",()=>this.properties[v]!=null);o(this,"hasAttributes",()=>Object.keys(this.properties).length>0);o(this,"hasHandlers",()=>this.properties[L]!=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[L]??{})[e]??[]).forEach(n=>n(t))});o(this,"click",()=>{this.trigger("click",{})});o(this,"on",(e,t,r,n)=>{var c;const i=(c=this.properties)[L]??(c[L]={}),l=n!=null&&n.once?u=>{a(),t(u,r)}:u=>t(u,r);i[e]=[...i[e]??[],l];const a=()=>{const u=i[e]??[],h=u.indexOf(l);h!==-1&&(u.splice(h,1),u.length===0?(delete i[e],Object.keys(i).length===0&&delete this.properties[L]):i[e]=u,(n==null?void 0:n.signal)!=null&&n.signal.removeEventListener("abort",a))};return(n==null?void 0:n.signal)!=null&&n.signal.addEventListener("abort",a),a});o(this,"addClasses",e=>{var r;if(e.length===0)return;const t=(r=this.properties)[S]??(r[S]=[]);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)[S]??(r[S]=[]);e.forEach(n=>{const i=t.indexOf(n);i!==-1&&t.splice(i,1)}),t.length===0&&delete this.properties[S]});o(this,"getClasses",()=>this.properties[S]??[]);o(this,"getAttributes",()=>Object.entries(this.properties).filter(([e])=>!["innerText","innerHTML"].includes(e)));o(this,"getVisibleAttributes",()=>Reflect.ownKeys(this.properties).flatMap(e=>e===S?[["class",this.getClasses()]]:e===v?[["style",this.getStyles()]]:typeof e=="string"?[[e,String(this.properties[e])]]:[]));o(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])});o(this,"getStyle",e=>{var t;return((t=this.properties[v])==null?void 0:t[e])??""});o(this,"getStyles",()=>this.properties[v]??{});o(this,"makeAccessors",e=>{const t=this.properties;return{get:()=>t[e],set:r=>t[e]=r}});this.parent=e}}const xt=s=>s.replace(/"/g,"&quot;"),Ot=s=>s.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;");class We extends Fe{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(" ")}"`:Dt.has(c)?` ${c}`:c==="innerHTML"?(i=u,""):c==="innerText"?(i=Ot(u),""):` ${c}="${xt(u)}"`).join(""),a=t?` ${oe}`:"";return Lt.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 le extends Fe{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 Ue{constructor(e){o(this,"id",Be());o(this,"isElement",()=>!1);o(this,"isText",()=>!0);o(this,"getText",()=>this.text);o(this,"toHTML",()=>this.text);this.text=e}}class O{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 We(e,t,this.element);return this.appendOrInsert(r),new O(r,void 0,this.container,this.providers)});o(this,"makeChildText",e=>{const t=new Ue(e);return this.appendOrInsert(t),new O(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 le(e,this.element);return this.appendOrInsert(t),new O(t,void 0,this.container,this.providers)});o(this,"setProvider",(e,t,r)=>new O(this.element,this.reference,this.container,{...this.providers,[e]:[t,r]}));o(this,"getProvider",e=>{if(this.providers[e]===void 0)throw new ie(e);const[t,r]=this.providers[e];return{value:t,onUse:r}});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,this));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,"isBrowser",()=>!1);o(this,"isHeadlessDOM",()=>!0);o(this,"isHeadless",()=>!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 Dt=new Set(["checked","disabled","multiple","readonly","required","selected"]),Lt=new Set(["img","br","hr","input","link","meta"]),ae=s=>e=>e.makeChildText(s).clear,ce=s=>e=>{const t=e.makeChildText(s.value),r=s.on(t.setText);return n=>{r(),t.clear(n)}},Mt=s=>f.is(s)?ce(s):ae(s),b=(...s)=>e=>{const t=s.map(r=>d(r)(e));return r=>{t.forEach(n=>n(r))}},A=()=>()=>{},Ht=s=>e=>(e.addClasses(s),t=>{t&&e.removeClasses(s)}),Nt=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}},R=(s,e)=>t=>{const{get:r,set:n}=t.makeAccessors(s),i=r();return n(e),l=>{l&&n(i)}},V=(s,e)=>t=>{const{get:r,set:n}=t.makeAccessors(s),i=r(),l=e.on(n);return a=>{l(),a&&n(i)}},D=new Proxy({},{get:(s,e)=>e==="class"?t=>f.is(t)?Nt(t):Ht((t??"").split(" ").filter(r=>r.length>0)):t=>f.is(t)?V(e,t):R(e,t)}),kt=new Proxy({},{get:(s,e)=>t=>f.is(t)?V(`data-${e}`,t):R(`data-${e}`,t)}),It=new Proxy({},{get:(s,e)=>t=>f.is(t)?V(`aria-${e}`,t):R(`aria-${e}`,t)}),$t=new Proxy({},{get:(s,e)=>t=>f.is(t)?V(e,t):R(e,t)}),Rt=new Proxy({},{get:(s,e)=>t=>f.is(t)?V(e,t):R(e,t)}),d=s=>{if(s==null)return A;if(Array.isArray(s))return b(...s.map(d));if(typeof s=="string")return ae(s);if(f.is(s))return ce(s);if(typeof s=="function")return s;throw new Error(`Unknown type: '${typeof s}' for child: ${s}`)},ue=(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)}},he=(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)}},Vt=new Proxy({},{get:(s,e)=>(...t)=>ue(e,t.flatMap(d))}),jt=new Proxy({},{get:(s,e)=>(...t)=>ue("input",D.type(e),...t)}),qt="http://www.w3.org/2000/svg",Bt=new Proxy({},{get:(s,e)=>(...t)=>he(e,qt,t.flatMap(d))}),Ft="http://www.w3.org/1998/Math/MathML",Wt=new Proxy({},{get:(s,e)=>(...t)=>he(e,Ft,t.flatMap(d))}),de=(s,e)=>{if(typeof e=="function")return de(s,{then:e});const t=e.pending!=null?d(e.pending()):A,r=e.then,n=e.error!=null?i=>d(e.error(i)):()=>A;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)}}},Ut=(s,e)=>de(()=>s,e),Ge=(s,e,t)=>r=>r.on(s,e,t),Je=s=>Ge("click",(e,t)=>{e.preventDefault();const r=e.target;setTimeout(()=>{const n=r.ownerDocument!=null?r==null?void 0:r.checked:void 0;n!=null&&s(!n,t)},0)}),j=new Proxy({},{get:(s,e)=>t=>Ge(e,t)}),Xe=s=>e=>{const t=e.target;s(t.value)},Ye=s=>e=>{const t=e.target;s(t.valueAsNumber)},ze=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)},Gt=s=>e=>{const t=e.target;if(t.value===""){s(null);return}const r=t.value.split("-"),n=new Date(Number(r[0]),Number(r[1])-1,Number(r[2].substring(0,2)));s(n)},Qe=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)},Jt=s=>e=>{const t=e.target;if(t.value===""){s(null);return}const r=t.value.split("T");if(r.length!==2){s(null);return}const 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]??0)),i.setMinutes(Number(l[1]??0)),i.setSeconds(Number(l[2]??0)),s(i)},Xt=s=>e=>{const t=e.target;s(t.checked)},Yt=s=>e=>{e.preventDefault(),s()},zt=s=>e=>{e.stopPropagation(),s()},Qt=s=>e=>{e.stopImmediatePropagation(),s()},Zt=(s,e="input")=>b(D.valueAsDate(s),j[e](ze(s.set))),Kt=(s,e="input")=>b(D.valueAsDate(s),j[e](Qe(s.set))),es=(s,e="input")=>b(D.valueAsNumber(s),j[e](Ye(s.set))),ts=(s,e="input")=>b(D.value(s),j[e](Xe(s.set))),ss=s=>b(D.checked(s),Je(s.set)),q=(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){c=h,l==null||l.dispose(),i==null||i(!0),l=s.map(T=>T[h]);const m=e[h](l);i=d(m)(n)}});return h=>{l==null||l.dispose(),u(),n.clear(h),i==null||i(h)}};const t=Object.keys(s)[0];return d(e[t]($(s[t])))},fe=(s,e,t)=>q(y.map(s,r=>({[r[e]]:r})),t),rs=(s,e)=>fe(s,"kind",e),ns=(s,e)=>{const t=y.map(s,([r,n])=>({[r]:n}));return q(t,e)},is=(s,e)=>fe(s,"type",e),Ze=(s,e)=>q(y.map(s,t=>({[t]:!0})),e),os=(s,e={})=>t=>{const r=(e==null?void 0:e.firstSeparator)??s,n=(e==null?void 0:e.lastSeparator)??s;return Ze(t.map(i=>i.isFirst?"first":i.isLast?"last":"other"),{first:r,last:n,other:s})},ls=s=>e=>(e.appendOrInsert(s),t=>{t&&k(s)}),Ke=(s,e,t)=>{if(f.is(s)){const r=s;return n=>{const i=n.makeRef();let l=()=>{},a=!1,c=null;const u=r.on(h=>{h==null?(l(!0),l=d((t==null?void 0:t())??A)(i),a=!1,c==null||c.dispose(),c=null):(c==null?c=_(h):c.value=h,a||(l(!0),l=d(e(c))(i),a=!0))});return h=>{c==null||c.dispose(),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):A}return d(e($(r)))}},as=(...s)=>(e,t)=>r=>{const n=r.makeRef();if(s.some(p=>!f.is(p)&&p==null))return(t!=null?d(t==null?void 0:t()):A)(n);const l=s.map(()=>null),a=s.map(p=>f.is(p)?p.value!=null:p!=null);let c=null;const u=_(a.every(p=>p)),h=(p,g)=>{if(p.value!=null){if(l[g]==null){const C=_(p.value);l[g]=C}else l[g].value=p.value;a[g]=!0}else a[g]=!1};let m=s.length-1;const T=s.map((p,g)=>{if(!f.is(p)){const C=_(p);return l[g]=C,()=>{}}return p.on(()=>{h(p,g),m===0?u.value=a.every(C=>C):m--})});return u.on(p=>{c==null||c(!0),c=null,p?c=d(e(...l))(n):c=d((t==null?void 0:t())??A)(n)}),p=>{l.forEach(g=>g==null?void 0:g.dispose()),u.dispose(),T.forEach(g=>g()),c==null||c(p),n.clear(p)}},M=(...s)=>e=>t=>s.forEach(r=>r(t,e)),pe=(s,e,t)=>Ke(y.map(s,r=>r?!0:null),e,t??void 0),cs=(s,e,t)=>pe(y.map(s,r=>!r),e,t),me=(s,e,t)=>{if(t!=null)return me(s,r=>{const n=new U(r.index,r.total.map(i=>i-1));return b(M(n.dispose,r.dispose),d(e(r)),pe(r.isLast,()=>A,()=>t(n)))});if(f.is(s))return r=>{const n=r.makeRef(),i=[],l=s.on(a=>{const c=i.splice(a);for(const u of c)u(!0);for(let u=i.length;u<a;u++){const h=new U(u,s);i.push(b(M(h.dispose),d(e(h)))(n))}});return a=>{l();for(const c of i)c(a);i.length=0,n.clear(a)}};{const r=$(s);return b(...Array.from({length:s},(n,i)=>i).map(n=>{const i=new U(n,r);return b(M(i.dispose),d(e(i)))}))}},us=(s,e,t)=>{const r=y.map(s,i=>i.length),n=y.toSignal(s);return me(r,i=>{const l=n.map(a=>a[i.index]);return b(M(l.dispose),d(e(l,i)))},t)},hs=(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))},ds=(s,e,t=()=>A)=>q(y.map(s,r=>r.length>0?{notEmpty:r}:{whenEmpty:null}),{notEmpty:r=>e(r),whenEmpty:()=>t()}),fs=(s,e)=>t=>{const r=t.makePortal(s);return Z(d(e),r)},W=new Map,et=s=>({mark:Ve(`Probe(${s.description})`),create:({callback:e=()=>{},timeout:t=10}={})=>{const r=a=>{clearTimeout(n),W.delete(s),e(a)};if(W.has(s))throw new Error(`Probe already exists: ${s.description}`);const n=setTimeout(()=>r("timeout"),t),i={counter:0,timeoutId:n};return W.set(s,i),{value:()=>{clearTimeout(n);const a=W.get(s);a!=null&&--a.counter===0&&r("resolved")},dispose:()=>r("disposed"),onUse:()=>i.counter++}}}),ps=et(Symbol("GlobalProbe")),ms=(s,e)=>t=>{const r=t.getStyle(s);return t.setStyle(s,e),n=>{n&&t.setStyle(s,r)}},gs=(s,e)=>t=>{const r=t.getStyle(s);return e.on(n=>t.setStyle(s,n)),n=>{n&&t.setStyle(s,r)}},ys=new Proxy({},{get:(s,e)=>t=>f.is(t)?gs(e,t):ms(e,t)}),tt=s=>e=>{if(e.isBrowser()){const t=s(e);if(t!=null)return d(t)(e)}return()=>{}},Ts=s=>e=>{const t=s(e);return t==null?()=>{}:d(t)(e)},bs=s=>tt(e=>s(e.element)),Ss=s=>e=>{if(e.isHeadlessDOM()){const t=s(e);if(t)return d(t)(e)}return()=>{}},K=s=>e=>{let t=e;function r(){return t}function n(a){t=a}const i=[],l=s({use:({mark:a})=>{const{value:c,onUse:u}=r().getProvider(a);return u==null||u(),c},set:({mark:a,create:c},u)=>{const{value:h,dispose:m,onUse:T}=c(u,r());i.push(m),n(r().setProvider(a,h,T))}});return l==null?()=>{}:b(d(l),M(()=>i.forEach(a=>a())))(r())},As=(s,e,t)=>K(({set:r})=>(r(s,e),t())),Es=(s,e)=>K(({use:t})=>e(t(s))),_s=(...s)=>e=>K(({use:t})=>{const r=s.map(t);return e(...r)});exports.Async=Ut;exports.BindChecked=ss;exports.BindDate=Zt;exports.BindDateTime=Kt;exports.BindNumber=es;exports.BindText=ts;exports.BrowserContext=x;exports.CLASS_PLACEHOLDER_ATTR=I;exports.Computed=P;exports.Conjunction=os;exports.DOMNode=ls;exports.El=ue;exports.ElNS=he;exports.ElementPosition=U;exports.Empty=A;exports.Ensure=Ke;exports.EnsureAll=as;exports.ForEach=us;exports.Fragment=b;exports.GlobalProbe=ps;exports.HeadlessAdapter=pt;exports.HeadlessContext=O;exports.HeadlessElement=We;exports.HeadlessPortal=le;exports.HeadlessText=Ue;exports.MapSignal=hs;exports.MemoryStore=se;exports.NotEmpty=ds;exports.OnChecked=Je;exports.OnDispose=M;exports.OneOf=q;exports.OneOfField=fe;exports.OneOfKind=rs;exports.OneOfTuple=ns;exports.OneOfType=is;exports.OneOfValue=Ze;exports.Portal=fs;exports.Prop=N;exports.Provide=As;exports.ProviderNotFoundError=ie;exports.RenderingError=je;exports.Repeat=me;exports.Signal=f;exports.Task=de;exports.TextNode=Mt;exports.Unless=cs;exports.Use=Es;exports.UseMany=_s;exports.Value=y;exports.When=pe;exports.WithBrowserCtx=tt;exports.WithCtx=Ts;exports.WithElement=bs;exports.WithHeadlessCtx=Ss;exports.WithProvider=K;exports._NODE_PLACEHOLDER_ATTR=oe;exports._getSelfOrParentElement=Re;exports._isElement=ne;exports._makeGetter=$e;exports._makeSetter=Ie;exports._removeDOMNode=k;exports._signalText=ce;exports._staticText=ae;exports.animateSignal=ut;exports.animateSignals=De;exports.aria=It;exports.attr=D;exports.computed=Q;exports.computedOf=Oe;exports.computedRecord=ht;exports.dataAttr=kt;exports.effect=xe;exports.effectOf=lt;exports.emitChecked=Xt;exports.emitPreventDefault=Yt;exports.emitStopImmediatePropagation=Qt;exports.emitStopPropagation=zt;exports.emitValue=Xe;exports.emitValueAsDate=ze;exports.emitValueAsDateTime=Qe;exports.emitValueAsNullableDate=Gt;exports.emitValueAsNullableDateTime=Jt;exports.emitValueAsNumber=Ye;exports.endInterpolate=Ce;exports.getWindow=te;exports.guessInterpolate=Pe;exports.html=Vt;exports.input=jt;exports.interpolateDate=we;exports.interpolateNumber=_e;exports.interpolateString=ve;exports.joinSignals=ot;exports.localStorageProp=at;exports.makeProbe=et;exports.makeProviderMark=Ve;exports.math=Wt;exports.mathAttr=Rt;exports.on=j;exports.prop=_;exports.render=dt;exports.renderWithContext=Z;exports.renderableOfTNode=d;exports.restoreTempoPlaceholders=Ct;exports.runHeadless=ft;exports.sessionStorageProp=ct;exports.signal=$;exports.storedProp=re;exports.style=ys;exports.svg=Bt;exports.svgAttr=$t;