@tempots/dom 35.0.3 → 35.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dom/headless-context.d.ts +58 -0
- package/index.cjs +1 -1
- package/index.d.ts +1 -1
- package/index.js +634 -494
- package/package.json +5 -1
|
@@ -2,6 +2,22 @@ import { Prop } from '@tempots/core';
|
|
|
2
2
|
import { ProviderMark, Clear, Providers } from '../types/domain';
|
|
3
3
|
import { BrowserContext } from './browser-context';
|
|
4
4
|
import { DOMContext, HandlerOptions } from './dom-context';
|
|
5
|
+
/**
|
|
6
|
+
* Attribute name for hydration IDs.
|
|
7
|
+
* Used to match server-rendered elements with client-side renderables during hydration.
|
|
8
|
+
* @public
|
|
9
|
+
*/
|
|
10
|
+
export declare const HYDRATION_ID_ATTR = "data-tempo-id";
|
|
11
|
+
/**
|
|
12
|
+
* Options for streaming HTML output.
|
|
13
|
+
* @public
|
|
14
|
+
*/
|
|
15
|
+
export interface StreamOptions {
|
|
16
|
+
/**
|
|
17
|
+
* Whether to generate placeholder attributes for hydration.
|
|
18
|
+
*/
|
|
19
|
+
generatePlaceholders?: boolean;
|
|
20
|
+
}
|
|
5
21
|
declare abstract class HeadlessBase {
|
|
6
22
|
readonly parent: HeadlessBase | undefined;
|
|
7
23
|
readonly id: string;
|
|
@@ -14,6 +30,15 @@ declare abstract class HeadlessBase {
|
|
|
14
30
|
readonly removeChild: (child: HeadlessNode) => void;
|
|
15
31
|
readonly remove: () => void;
|
|
16
32
|
abstract isPortal(): this is HeadlessPortal;
|
|
33
|
+
/**
|
|
34
|
+
* Generates HTML output as an async stream of string chunks.
|
|
35
|
+
* This allows for progressive rendering and better memory efficiency
|
|
36
|
+
* for large DOM trees.
|
|
37
|
+
*
|
|
38
|
+
* @param options - Options for streaming output.
|
|
39
|
+
* @yields String chunks of HTML content.
|
|
40
|
+
*/
|
|
41
|
+
abstract toHTMLStream(options?: StreamOptions): AsyncGenerator<string>;
|
|
17
42
|
readonly getPortals: () => HeadlessPortal[];
|
|
18
43
|
readonly elements: () => HeadlessBase[];
|
|
19
44
|
abstract toHTML(): string;
|
|
@@ -49,14 +74,40 @@ export declare class HeadlessElement extends HeadlessBase {
|
|
|
49
74
|
readonly namespace: string | undefined;
|
|
50
75
|
constructor(tagName: string, namespace: string | undefined, parent: HeadlessBase | undefined);
|
|
51
76
|
readonly isPortal: () => this is HeadlessPortal;
|
|
77
|
+
/**
|
|
78
|
+
* Builds the attributes string for this element.
|
|
79
|
+
* Returns an object containing the attributes string and any innerHTML value.
|
|
80
|
+
*/
|
|
81
|
+
private readonly buildAttributesString;
|
|
52
82
|
readonly toHTML: (generatePlaceholders?: boolean) => string;
|
|
83
|
+
/**
|
|
84
|
+
* Generates HTML output as an async stream of string chunks.
|
|
85
|
+
* Yields the opening tag, then each child's content, then the closing tag.
|
|
86
|
+
*
|
|
87
|
+
* @param options - Options for streaming output.
|
|
88
|
+
* @yields String chunks of HTML content.
|
|
89
|
+
*/
|
|
90
|
+
toHTMLStream(options?: StreamOptions): AsyncGenerator<string>;
|
|
53
91
|
}
|
|
54
92
|
export declare class HeadlessPortal extends HeadlessBase {
|
|
55
93
|
readonly selector: string | HTMLElement;
|
|
56
94
|
constructor(selector: string | HTMLElement, parent: HeadlessBase | undefined);
|
|
57
95
|
readonly isPortal: () => this is HeadlessPortal;
|
|
58
96
|
readonly toHTML: () => string;
|
|
97
|
+
/**
|
|
98
|
+
* Portals don't render inline - they render at their target selector.
|
|
99
|
+
* This method yields nothing for the inline position.
|
|
100
|
+
*/
|
|
101
|
+
toHTMLStream(options?: StreamOptions): AsyncGenerator<string>;
|
|
59
102
|
readonly contentToHTML: (generatePlaceholders?: boolean) => string;
|
|
103
|
+
/**
|
|
104
|
+
* Streams the portal's content HTML.
|
|
105
|
+
* Unlike toHTMLStream, this yields the actual content for rendering at the target location.
|
|
106
|
+
*
|
|
107
|
+
* @param options - Options for streaming output.
|
|
108
|
+
* @yields String chunks of the portal's content.
|
|
109
|
+
*/
|
|
110
|
+
contentToHTMLStream(options?: StreamOptions): AsyncGenerator<string>;
|
|
60
111
|
}
|
|
61
112
|
export declare class HeadlessText {
|
|
62
113
|
text: string;
|
|
@@ -66,6 +117,13 @@ export declare class HeadlessText {
|
|
|
66
117
|
readonly isText: () => this is HeadlessText;
|
|
67
118
|
readonly getText: () => string;
|
|
68
119
|
readonly toHTML: () => string;
|
|
120
|
+
/**
|
|
121
|
+
* Streams the text content as a single chunk.
|
|
122
|
+
*
|
|
123
|
+
* @param options - Options (unused for text nodes, kept for API consistency).
|
|
124
|
+
* @yields The text content.
|
|
125
|
+
*/
|
|
126
|
+
toHTMLStream(options?: StreamOptions): AsyncGenerator<string>;
|
|
69
127
|
}
|
|
70
128
|
export type HeadlessNode = HeadlessElement | HeadlessPortal | HeadlessText;
|
|
71
129
|
export interface HeadlessContainer {
|
package/index.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const He=t=>Symbol(t);function Re(t,e){return{type:t,render:e}}function $e(t){return t!=null&&t!==!1&&t!==0&&t!==""}function Ct(t){return!$e(t)}function Dt(t){return t==null}function Ot(t){return t!=null}const w={map:(t,e)=>y.is(t)?t.map(e):e(t),toSignal:(t,e)=>y.is(t)?t.derive():Z(t,e),maybeToSignal:(t,e)=>{if(t!=null)return w.toSignal(t,e)},get:t=>y.is(t)?t.get():t,on:(t,e)=>y.is(t)?t.on(e):(e(t),()=>{}),dispose:t=>{y.is(t)&&t.dispose()},disposeFn:t=>()=>w.dispose(t),deriveProp:(t,{autoDisposeProp:e=!0,equals:s}={})=>y.is(t)?t.deriveProp({autoDisposeProp:e,equals:s}):D(t,s),truthy:t=>w.map(t,$e),falsy:t=>w.map(t,Ct),nil:t=>w.map(t,Dt),defined:t=>w.map(t,Ot)},F=(...t)=>(e,s)=>{if(t.length===1)return w.toSignal(t[0]).map(e);const n=t.filter(r=>y.is(r));return Q(()=>e(...t.map(r=>w.get(r))),n,s)},xt=(...t)=>(e,s,n,r=(o,i)=>o===i)=>F(...t)((...o)=>o).mapAsync(([...o])=>e(...o),s,n,r),Pt=t=>{const e=Object.keys(t);return F(...Object.values(t))((...s)=>Object.fromEntries(e.map((n,r)=>[n,s[r]])))},Ve=(...t)=>(e,s={})=>{const n=t.filter(r=>y.is(r));return we(()=>e(...t.map(w.get)),n,s)};class q{_signals=new Set;_callbacks=[];_disposed=!1;track(e){if(this._disposed)throw new Error("Cannot track signal in disposed scope");if(e.isDisposed())throw new Error("Cannot track already disposed signal");this._signals.add(e)}onDispose(e){if(this._disposed)throw new Error("Cannot register callback in disposed scope");this._callbacks.push(e)}dispose(){if(!this._disposed){this._disposed=!0;for(const e of this._callbacks)try{e()}catch(s){const n=s instanceof Error?s.message:String(s);console.error("Error in disposal callback:",n)}this._callbacks.length=0;for(const e of this._signals)e.dispose();this._signals.clear()}}get disposed(){return this._disposed}prop(e,s){const n=le(()=>D(e,s));return this.track(n),n}computed(e,s,n){const r=le(()=>Q(e,s,n));return this.track(r),r}effect(e,s,n){return L(this,()=>we(e,s,n))}computedOf(...e){return(s,n)=>{const r=le(()=>F(...e)(s,n));return this.track(r),r}}effectOf(...e){return(s,n)=>L(this,()=>Ve(...e)(s,n))}}const E=[],je=t=>{E.push(t)},Be=()=>{if(E.length===0)throw new Error("Cannot pop from empty scope stack");E.pop()},ue=()=>E[E.length-1]??null,Lt=()=>E,kt=()=>E[E.length-2]??null,L=(t,e)=>{je(t);try{return e()}finally{Be()}},Mt=t=>{const e=new q;try{return L(e,()=>t(e))}finally{e.dispose()}},le=t=>{const e=E.slice();E.length=0;try{return t()}finally{E.length=0,E.push(...e)}};class y{constructor(e,s){this.equals=s,this._value=e}static ofPromise=(e,s,n,r=(o,i)=>o===i)=>{const o=new y(s,r);return e.then(i=>o._setAndNotify(i)).catch(i=>{n!=null?o._setAndNotify(n(i)):console.error("Unhandled promise rejection in Signal.ofPromise:",i)}),o};static is=e=>e!=null&&e.$__signal__===!0;$__signal__=!0;_value;_derivatives=[];_onValueListeners=[];_onDisposeListeners=[];get=()=>this._value;get value(){return this._value}hasListeners=()=>this._onValueListeners.length>0;on=(e,s={})=>{s.skipInitial||e(this.get(),void 0);const n=s.once?(o,i)=>{r(),e(o,i)}:e;this._onValueListeners.push(n);const r=()=>{const o=this._onValueListeners.indexOf(n);o!==-1&&this._onValueListeners.splice(o,1),s.abortSignal!=null&&s.abortSignal.removeEventListener("abort",r)};return s.abortSignal!=null&&s.abortSignal.addEventListener("abort",r),!s.noAutoDispose&&ue()?.onDispose(r),r};onChange=(e,s={})=>{let n=0;const r=(o,i)=>{n++>0&&e(o,i)};return this.on(r,s)};_setAndNotify=e=>{if(this._disposed)return;const s=this._value;this.equals(s,e)||(this._value=e,this._onValueListeners.forEach(n=>n(e,s)))};_disposed=!1;isDisposed=()=>this._disposed;onDispose=e=>{this._onDisposeListeners.push(e)};dispose=()=>{this._disposed||(this._disposed=!0,this._onDisposeListeners.forEach(e=>e()),this._onDisposeListeners.length=0,this._derivatives.length=0,this._onValueListeners.length=0)};map=(e,s=(n,r)=>n===r)=>{const n=new N(()=>{try{return e(this.get())}catch(r){throw console.error("Error in Signal.map:",r),r}},s);return this.setDerivative(n),n};flatMap=(e,s=(n,r)=>n===r)=>{const n=new N(()=>{try{return e(this.get()).get()}catch(r){throw console.error("Error in Signal.flatMap:",r),r}},s);return this.setDerivative(n),n};tap=e=>this.map(s=>(e(s),s));at=e=>this.map(s=>s[e]);_$;get $(){return this._$!==void 0?this._$:this._$=new Proxy(this,{get:(e,s)=>this.at(s)})}filter=(e,s)=>{let n=s??this.get();const r=new N(()=>{try{const o=this.get();return n=e(o)?o:n}catch(o){throw console.error("Error in Signal.filter:",o),o}},this.equals);return this.setDerivative(r),r};filterMap=(e,s,n=(r,o)=>r===o)=>{let r=s;const o=new N(()=>{try{const i=this.get();return r=e(i)??r}catch(i){throw console.error("Error in Signal.filterMap:",i),i}},n);return this.setDerivative(o),o};mapAsync=(e,s,n,r=(o,i)=>o===i)=>{const o=D(s,r);let i=0,l=new AbortController;return o.onDispose(this.on(async a=>{const c=++i;l.abort(),l=new AbortController;try{const u=await e(a,{abortSignal:l.signal});c===i&&o.set(u)}catch(u){if(c===i)if(n!=null)o.set(n(u));else throw u}})),o};mapMaybe=(e,s)=>this.map(n=>e(n)??s);feedProp=(e,s=!1)=>{const n=this.on(e.set,{noAutoDispose:!s});return e.onDispose(n),s?this.onDispose(e.dispose):this.onDispose(n),e};deriveProp=({autoDisposeProp:e=!0,equals:s}={})=>this.feedProp(D(this.get(),s),e);derive=()=>this.map(e=>e);count=()=>{let e=0;return this.map(()=>++e)};setDerivative=e=>{this._derivatives.push(e),e.onDispose(()=>{this._derivatives.splice(this._derivatives.indexOf(e),1)}),e.onDispose(this.on(e.setDirty,{noAutoDispose:!0})),this.onDispose(e.dispose)}}const Nt=typeof queueMicrotask=="function"?queueMicrotask:t=>Promise.resolve().then(t);class N extends y{constructor(e,s){super(void 0,s),this._fn=e,this.setDirty(),ue()?.track(this)}static is(e){return e!=null&&e.$__computed__===!0}$__computed__=!0;_isDirty=!1;setDirty=()=>{this._isDirty||this._disposed||(this._isDirty=!0,this._derivatives.forEach(e=>e.setDirty()),this._scheduleNotify())};_scheduleCount=0;_scheduleNotify=()=>{const e=++this._scheduleCount;Nt(()=>{this._scheduleCount!==e||this._disposed||this._isDirty&&(this._isDirty=!1,this._setAndNotify(this._fn()))})};get=()=>(this._isDirty&&(this._isDirty=!1,this._setAndNotify(this._fn())),this._value);get value(){return this.get()}dispose=()=>{this._disposed||(this._scheduleCount++,this._disposed=!0,this._onDisposeListeners.forEach(e=>e()),this._onDisposeListeners.length=0,this._derivatives.length=0)}}class X extends y{static is=e=>e!=null&&e.$__prop__===!0;$__prop__=!0;set=e=>{this._setAndNotify(e)};update=e=>{this._setAndNotify(e(this.get()))};reducer=(e,...s)=>{const n=this;return function r(o){const i=n.value;n.update(l=>e(l,o)),!n.equals(i,n.value)&&s.forEach(l=>l({previousState:i,state:n.value,action:o,dispatch:r}))}};iso=(e,s,n=(r,o)=>r===o)=>{const r=new X(e(this.get()),n);return r.onDispose(this.on(o=>r.set(e(o)))),r.on(o=>this._setAndNotify(s(o))),r};atProp=e=>this.iso(s=>s[e],s=>({...this.value,[e]:s}));get value(){return this.get()}set value(e){this._setAndNotify(e)}}const Q=(t,e,s=(n,r)=>n===r)=>{const n=new N(t,s);return e.forEach(r=>r.setDerivative(n)),n},we=(t,e,s={})=>{let n=s.once?()=>{o(),t()}:t;if(s.skipInitial){let i=!1;const l=n;n=()=>{i?l():i=!0}}const r=Q(n,e),o=()=>{r.dispose(),s.abortSignal!=null&&s.abortSignal.removeEventListener("abort",o)};return s.abortSignal!=null&&s.abortSignal.addEventListener("abort",o),o},D=(t,e=(s,n)=>s===n)=>{const s=new X(t,e);return ue()?.track(s),s},Z=(t,e=(s,n)=>s===n)=>new y(t,e),he=()=>typeof window<"u"?window:void 0,Fe=(t,e,s)=>t+(e-t)*s,Me=97,qe=(t,e,s)=>{const n=Math.max(t.length,e.length);let r="";for(let o=0;o<n;o++){let i=t.charCodeAt(o);isNaN(i)&&(i=Me);let l=e.charCodeAt(o);isNaN(l)&&(l=Me),r+=String.fromCharCode(i+(l-i)*s)}return r},We=(t,e,s)=>new Date(t.getTime()+(e.getTime()-t.getTime())*s),Ue=(t,e)=>e,Ge=t=>typeof t=="number"?Fe:typeof t=="string"?qe:t instanceof Date?We:Ue;class ve{_store=new Map;getItem=e=>this._store.get(e)??null;setItem=(e,s)=>{this._store.set(e,s)}}let ge=null,ye=null;const It=()=>(ge||(ge=new ve),ge),Ht=()=>(ye||(ye=new ve),ye),be=({key:t,defaultValue:e,store:s,serialize:n=JSON.stringify,deserialize:r=JSON.parse,equals:o=(c,u)=>c===u,onLoad:i=c=>c,syncTabs:l=!0,onKeyChange:a="load"})=>{let c=w.get(t);const u=s.getItem(c),d=new X(u!=null?i(r(u)):typeof e=="function"?e():e,o),p=he(),h=l&&typeof p?.BroadcastChannel=="function";let f=!1,v=null,A=null;const b=_=>{if(!h)return null;const R=`tempo:storedProp:${_}`,P=new p.BroadcastChannel(R),$=`${Date.now().toString(36)}-${Math.random().toString(36).slice(2)}`,M=re=>{const C=re.data;if(!(C==null||typeof C!="object"||C.key!==_||typeof C.value!="string"||C.sourceId!=null&&C.sourceId===$))try{f=!0;const me=i(r(C.value));d.set(me)}catch(me){console.warn(`Failed to sync storedProp for key "${_}" via BroadcastChannel`,me)}finally{f=!1}};return P.addEventListener("message",M),d.onDispose(()=>{P?.removeEventListener("message",M),P?.close()}),{channel:P,instanceId:$,handleMessage:M}},x=b(c);x&&(v=x.channel,A=x.instanceId);const ne=_=>{const R=c;if(R===_)return;const P=d.get(),$=n(P);if(s.setItem(R,$),v!=null&&(v.close(),v=null,A=null),c=_,a==="load"){const re=s.getItem(_);if(re!=null)try{const C=i(r(re));d.set(C)}catch(C){console.warn(`Failed to load storedProp from new key "${_}"`,C)}else s.setItem(_,$)}else a==="migrate"&&s.setItem(_,$);const M=b(_);M&&(v=M.channel,A=M.instanceId)};return y.is(t)&&d.onDispose(t.on(ne)),d.on((_,R)=>{const P=n(_);s.setItem(c,P),v!=null&&!f&&R!==void 0&&A!=null&&v.postMessage({key:c,value:P,sourceId:A})}),d},Rt=t=>{const e=he()?.localStorage,s=e&&typeof e.getItem=="function"?e:It();return be({...t,store:s})},$t=t=>{const e=he()?.sessionStorage,s=e&&typeof e.getItem=="function"?e:Ht();return be({...t,store:s})};function Ne(t){return typeof requestAnimationFrame=="function"?requestAnimationFrame(t):setTimeout(t,0)}const Je=(t,e,s,n)=>{const r=n?.duration??300,o=n?.easing??(b=>b),i=n?.equals??((b,x)=>b===x);let l=n?.interpolate,a=t,c=e(),u=performance.now(),d=null,p=!0;const h=new N(e,i),f=D(t,i);f.onDispose(()=>{d!==null&&cancelAnimationFrame(d)}),f.onDispose(h.dispose),s.forEach(b=>{b.setDerivative(h),b.onDispose(f.dispose)});const v=b=>{c=b,u=performance.now(),a=f.value,p&&(p=!1,d=Ne(A))},A=()=>{const b=(performance.now()-u)/w.get(r),x=o(b);l==null&&(l=Ge(a));let ne=l(a,c,x);b>=1?(p=!0,ne=c):d=Ne(A),f.set(ne)};return h.on(v),f},Vt=(t,e)=>{const{initialValue:s,...n}=e??{};return Je(s??t.get(),t.get,[t],n)},ze=(t,e)=>{const s=Object.values(t).filter(y.is),n=Object.keys(t);return Q(()=>{const r={};for(const o of n)r[o]=w.get(t[o]);return e(r)},s)},jt=t=>ze(t,e=>e),Bt=(t,e)=>{const s=D(t.get());let n=null;const r=t.on(o=>{n!=null&&clearTimeout(n),n=setTimeout(()=>{n=null,s.set(o)},typeof e=="function"?e(o):e)},{noAutoDispose:!0});return s.onDispose(()=>{r(),n!=null&&clearTimeout(n)}),s},Ft=t=>{let e;return t.map(s=>{const n=e;return e=s,n})},qt=({size:t=void 0,signal:e})=>{const s=[];return e.map(n=>(s.push(n),t!=null&&s.length>t&&s.shift(),s.slice()))},Wt=t=>(...e)=>F(t,...e)((s,...n)=>s(...n));function Ut(...t){return F(...t)((...e)=>{for(const s of e)if(s!=null)return s})}const Gt=(t,{channel:e,serialize:s=JSON.stringify,deserialize:n=JSON.parse,equals:r=(o,i)=>o===i})=>{const o=he();if(typeof o?.BroadcastChannel!="function")return()=>{};const i=new o.BroadcastChannel(`tempo:syncProp:${e}`),l=`${Date.now().toString(36)}-${Math.random().toString(36).slice(2)}`;let a=!1;const c=p=>{const h=p.data;if(!(h==null||typeof h!="object"||typeof h.value!="string"||h.sourceId!=null&&h.sourceId===l))try{a=!0;const f=n(h.value);r(t.get(),f)||t.set(f)}catch(f){console.warn(`Failed to sync prop for channel "${e}" via BroadcastChannel`,f)}finally{a=!1}};i.addEventListener("message",c);const u=t.on((p,h)=>{if(!a&&h!==void 0&&!r(p,h))try{const f=s(p);i.postMessage({value:f,sourceId:l})}catch(f){console.warn(`Failed to serialize prop for channel "${e}" via BroadcastChannel`,f)}}),d=()=>{u(),i.removeEventListener("message",c),i.close()};return t.onDispose(d),d};class ae{constructor(e,s){this.index=e,this.total=s,this.counter=e+1,this.isFirst=e===0,this.isEven=e%2===1,this.isOdd=e%2===0}counter;isFirst;isEven;isOdd;#e;get isLast(){return this.#e==null&&(this.#e=this.total.map(e=>this.counter===e)),this.#e}dispose=()=>{this.#e?.dispose(),this.#e=void 0}}const Ke=new Set(["checked","disabled","hidden"]),Ye=new Set(["selected"]),Xe=new Set(["rowSpan","colSpan","tabIndex","valueAsNumber"]),Qe=new Set(["valueAsDate"]),Ze=new Set(["value","textContent","innerText","innerHTML","outerHTML","className","classList"]),et=(t,e)=>Ye.has(t)?s=>{s==null||s!==!0?e.removeAttribute(t):e.setAttribute(t,"")}:Ke.has(t)?s=>{s==null?e[t]=null:e[t]=!!s}:Xe.has(t)?s=>{s==null?e[t]=null:e[t]=Number(s)}:Qe.has(t)?s=>{s==null?e[t]=null:e[t]=s}:Ze.has(t)?s=>{s==null?e[t]=null:e[t]=String(s)}:s=>{s==null?e.removeAttribute(t):e.setAttribute(t,s)},tt=(t,e)=>Ye.has(t)?()=>e.hasAttribute(t):Ke.has(t)?()=>!!e[t]:Xe.has(t)?()=>Number(e[t]):Qe.has(t)?()=>e[t]:Ze.has(t)?()=>String(e[t]):()=>e.getAttribute(t),G=t=>{const e=t;e&&e.onblur&&(e.onblur=null),!(!t||t.ownerDocument===void 0)&&t.parentNode&&t.parentNode.removeChild(t)},st=t=>Se(t)||Ae(t)?t:t.parentElement,Se=t=>t.nodeType===1,Ae=t=>t.nodeType===11;class _e extends Error{constructor(e){super(`Provider not found: ${e.description}`)}}class I{constructor(e,s,n,r){this.document=e,this.element=s,this.reference=n,this.providers=r}static of(e,s,n){return new I(e.ownerDocument,e,s,n)}createElement=(e,s)=>s!==void 0?this.document.createElementNS(s,e):this.document.createElement(e);makeChildElement=(e,s)=>{const n=this.createElement(e,s);return this.appendOrInsert(n),this.withElement(n)};createText=e=>this.document.createTextNode(e);makeChildText=e=>{const s=this.createText(e);return this.appendOrInsert(s),this.withReference(s)};setText=e=>{this.reference.nodeValue=e};getText=()=>this.reference?.nodeValue??this.element.textContent??"";makeRef=()=>{const e=this.createText("");return this.appendOrInsert(e),this.withReference(e)};appendOrInsert=e=>{this.reference===void 0?this.element.appendChild(e):this.element.insertBefore(e,this.reference)};withElement=e=>new I(e.ownerDocument??this.document,e,void 0,this.providers);makePortal=e=>{const s=typeof e=="string"?this.document.querySelector(e):e;if(s==null)throw new Error(`Cannot find element by selector for portal: ${e}`);return this.withElement(s)};withReference=e=>new I(this.document,this.element,e,this.providers);setProvider=(e,s,n)=>new I(this.document,this.element,this.reference,{...this.providers,[e]:[s,n]});getProvider=e=>{if(this.providers[e]===void 0)throw new _e(e);const[s,n]=this.providers[e];return{value:s,onUse:n}};clear=e=>{e&&(this.reference!==void 0?G(this.reference):G(this.element))};addClasses=e=>{this.element.classList.add(...e)};removeClasses=e=>{this.element.classList.remove(...e)};getClasses=()=>Array.from(this.element.classList);on=(e,s,n)=>{const r=o=>s(o,this);return this.element.addEventListener(e,r,n),o=>{o&&this.element.removeEventListener(e,r,n)}};isBrowserDOM=()=>!0;isBrowser=()=>!0;isHeadlessDOM=()=>!1;isHeadless=()=>!1;setStyle=(e,s)=>{this.element.style[e]=s};getStyle=e=>this.element.style[e];makeAccessors=e=>({get:tt(e,this.element),set:et(e,this.element)});getWindow=()=>this.document.defaultView}const W=(t,e)=>{const s=new q,n=L(s,()=>t.render(e));return(r=!0)=>{s.dispose(),n(r)}},Jt=(t,e,{doc:s,clear:n,disposeWithParent:r=!0,providers:o={}}={})=>{const i=typeof e=="string"?(s??document).querySelector(e):e;if(i===null)throw new nt(`Cannot find element by selector for render: ${e}`);n!==!1&&(s??i.ownerDocument)!=null&&(i.nodeType===1||i.nodeType===11)&&(i.innerHTML="");const l=st(i),a=Se(i)||Ae(i)?void 0:i,c=I.of(l,a,o),u=W(t,c);let d;return r&&i.parentElement!=null&&(d=new MutationObserver(p=>{p[0]?.removedNodes.forEach(h=>{h===i&&(d?.disconnect(),u(i.nodeType!==1))})}),d.observe(i.parentElement,{childList:!0,subtree:!1,attributes:!1})),()=>{d?.disconnect(),u(!0)}},zt=(t,{startUrl:e="https://example.com",selector:s,providers:n={}}={selector:"body"})=>{const r=w.toSignal(e).deriveProp(),o=new Te(s,void 0),i=new H(o,void 0,{currentURL:r},n);return{clear:W(t(),i),root:o,currentURL:r}};class nt extends Error{constructor(e){super(e)}}const ce="data-tts-node",B="data-tts-class",J="data-tts-style",z="data-tts-html",K="data-tts-text",Y="data-tts-attrs";class Kt{select;getAttribute;setAttribute;getClass;setClass;getStyles;setStyles;appendHTML;getInnerHTML;setInnerHTML;getInnerText;setInnerText;constructor({select:e,getAttribute:s,setAttribute:n,getClass:r,setClass:o,getStyles:i,setStyles:l,appendHTML:a,getInnerHTML:c,setInnerHTML:u,getInnerText:d,setInnerText:p}){this.select=e,this.getAttribute=s,this.setAttribute=n,this.getClass=r,this.setClass=o,this.getStyles=i,this.setStyles=l,this.appendHTML=a,this.getInnerHTML=c,this.setInnerHTML=u,this.getInnerText=d,this.setInnerText=p}setFromRoot=(e,s)=>{e.getPortals().forEach(r=>{const o=typeof r.selector=="string"?this.select(r.selector):[r.selector];for(const i of o){if(i==null)throw new Error(`Cannot find element by selector for render: ${r.selector}`);if(r.hasChildren()&&this.appendHTML(i,r.contentToHTML(s)),r.hasInnerHTML()){if(s){const l=this.getInnerHTML(i);l!=null&&this.setAttribute(i,z,l)}this.setInnerHTML(i,r.getInnerHTML())}if(r.hasInnerText()){if(s){const l=this.getInnerText(i);l!=null&&this.setAttribute(i,K,l)}this.setInnerText(i,r.getInnerText())}if(r.hasClasses()){if(s){const l=this.getClass(i);l!=null&&this.setAttribute(i,B,l)}this.setClass(i,r.getClasses().join(" "))}if(r.hasStyles()){if(s){const l=this.getStyles(i);Object.keys(l).length>0&&this.setAttribute(i,J,JSON.stringify(l))}this.setStyles(i,r.getStyles())}if(r.hasAttributes()){const l=r.getAttributes();if(s){const a=[];l.forEach(([c])=>{const u=this.getAttribute(i,c);u!=null&&a.push([c,u])}),a.length>0&&this.setAttribute(i,Y,JSON.stringify(Object.fromEntries(a)))}l.forEach(([a,c])=>{this.setAttribute(i,a,c)})}}})}}const rt=t=>JSON.parse(t.replace(/"/g,'"')),Yt=t=>{const e=t.getAttribute(B);t.removeAttribute(B),e!=null&&t.setAttribute("class",e)},Xt=t=>{const e=t.getAttribute(z);t.removeAttribute(z),e!=null&&(t.innerHTML=e)},Qt=t=>{const e=t.getAttribute(K);t.removeAttribute(K),e!=null&&(t.innerText=e)},Zt=t=>{const e=t.getAttribute(J);if(t.removeAttribute(J),e!=null){const s=rt(e),n=Object.entries(s);n.length>0&&(t.style.cssText=n.map(([r,o])=>`${r}: ${o}`).join("; "))}},es=t=>{const e=t.getAttribute(Y);if(t.removeAttribute(Y),e!=null){const s=rt(e);Object.entries(s).forEach(([n,r])=>{r==null?t.removeAttribute(n):t.setAttribute(n,r)})}},ts=()=>{const e=[ce,B,z,K,J,Y].map(n=>`[${n}]`).join(",");document.querySelectorAll(e).forEach(n=>{const r=n;if(r.hasAttribute(ce)){G(r);return}r.hasAttribute(B)&&Yt(r),r.hasAttribute(K)&&Qt(r),r.hasAttribute(z)&&Xt(r),r.hasAttribute(J)&&Zt(r),r.hasAttribute(Y)&&es(r)})},V=Symbol("class"),j=Symbol("style"),oe=Symbol("handler"),ot=()=>Math.random().toString(36).substring(2,15),ss=t=>t.replace(/<[^>]*>?/g,"");class it{constructor(e){this.parent=e}id=ot();properties={};children=[];isElement=()=>!0;isText=()=>!1;getText=()=>this.properties.innerText!=null?this.properties.innerText:this.properties.innerHTML!=null?ss(this.properties.innerHTML):this.children.map(e=>e.getText()).join("");removeChild=e=>{const s=this.children.indexOf(e);s!==-1&&this.children.splice(s,1)};remove=()=>{if(this.parent!=null)this.parent.removeChild(this);else throw new Error("Parent is undefined")};getPortals=()=>{const e=this.elements().flatMap(s=>s.isPortal()?[s,...s.getPortals()]:s.getPortals());return this.isPortal()&&e.unshift(this),e};elements=()=>this.children.filter(e=>e.isElement());hasInnerHTML=()=>this.properties.innerHTML!=null;getInnerHTML=()=>this.properties.innerHTML??"";getInnerText=()=>this.properties.innerText??"";hasInnerText=()=>this.properties.innerText!=null;hasChildren=()=>this.children.length>0;hasClasses=()=>this.properties[V]!=null;hasStyles=()=>this.properties[j]!=null;hasAttributes=()=>Object.keys(this.properties).length>0;hasHandlers=()=>this.properties[oe]!=null;hasRenderableProperties=()=>this.hasClasses()||this.hasAttributes()||this.hasStyles();getById=e=>{if(this.properties.id===e)return this;for(const s of this.elements()){const n=s.getById(e);if(n!=null)return n}};trigger=(e,s)=>{((this.properties[oe]??{})[e]??[]).forEach(r=>r(s))};click=()=>{this.trigger("click",{})};on=(e,s,n,r)=>{const o=this.properties[oe]??={},i=r?.once?a=>{l(),s(a,n)}:a=>s(a,n);o[e]=[...o[e]??[],i];const l=()=>{const a=o[e]??[],c=a.indexOf(i);c!==-1&&(a.splice(c,1),a.length===0?(delete o[e],Object.keys(o).length===0&&delete this.properties[oe]):o[e]=a,r?.signal!=null&&r.signal.removeEventListener("abort",l))};return r?.signal!=null&&r.signal.addEventListener("abort",l),l};addClasses=e=>{if(e.length===0)return;const s=this.properties[V]??=[],n=new Set(s);for(const r of e)n.has(r)||(s.push(r),n.add(r))};removeClasses=e=>{if(e.length===0)return;const s=this.properties[V]??=[],n=new Set(e);let r=0;for(let o=0;o<s.length;o++)n.has(s[o])||(s[r]=s[o],r++);s.length=r,s.length===0&&delete this.properties[V]};getClasses=()=>this.properties[V]??[];getAttributes=()=>Object.entries(this.properties).filter(([e])=>!["innerText","innerHTML"].includes(e));getVisibleAttributes=()=>Reflect.ownKeys(this.properties).flatMap(e=>e===V?[["class",this.getClasses()]]:e===j?[["style",this.getStyles()]]:typeof e=="string"?[[e,String(this.properties[e])]]:[]);setStyle=(e,s)=>{const n=this.properties[j]??={};n[e]=s,s===""&&(delete n[e],Object.keys(n).length===0&&delete this.properties[j])};getStyle=e=>this.properties[j]?.[e]??"";getStyles=()=>this.properties[j]??{};makeAccessors=e=>{const s=this.properties;return{get:()=>s[e],set:n=>s[e]=n}}}const ns=t=>t.replace(/"/g,"""),rs=t=>t.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">");class lt extends it{constructor(e,s,n){super(n),this.tagName=e,this.namespace=s}isPortal=()=>!1;toHTML=(e=!1)=>{const s=this.children.map(l=>l.toHTML()).join(""),n=this.namespace?` xmlns="${this.namespace}"`:"";let r=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,u])=>`${c}: ${u};`).join(" ")}"`:os.has(l)?` ${l}`:l==="innerHTML"?(r=a,""):l==="innerText"?(r=rs(a),""):` ${l}="${ns(a)}"`).join(""),i=e?` ${ce}`:"";return is.has(this.tagName)&&s===""?`<${this.tagName}${n}${o}${i} />`:`<${this.tagName}${n}${o}${i}>${r??s}</${this.tagName}>`}}class Te extends it{constructor(e,s){super(s),this.selector=e}isPortal=()=>!0;toHTML=()=>"";contentToHTML=(e=!1)=>this.children.map(s=>s.toHTML(e)).join("")}class at{constructor(e){this.text=e}id=ot();isElement=()=>!1;isText=()=>!0;getText=()=>this.text;toHTML=()=>this.text}class H{constructor(e,s,n,r){this.element=e,this.reference=s,this.container=n,this.providers=r}appendOrInsert=e=>{if(this.reference!=null){const s=this.element.children.indexOf(this.reference);s>=0&&this.element.children.splice(s,0,e)}else this.element.children.push(e)};makeChildElement=(e,s)=>{const n=new lt(e,s,this.element);return this.appendOrInsert(n),new H(n,void 0,this.container,this.providers)};makeChildText=e=>{const s=new at(e);return this.appendOrInsert(s),new H(this.element,s,this.container,this.providers)};setText=e=>{this.reference&&this.reference.isText()&&(this.reference.text=e)};getText=()=>this.reference?.getText()??this.element.getText();makeRef=()=>this.makeChildText("");makePortal=e=>{const s=new Te(e,this.element);return this.appendOrInsert(s),new H(s,void 0,this.container,this.providers)};setProvider=(e,s,n)=>new H(this.element,this.reference,this.container,{...this.providers,[e]:[s,n]});getProvider=e=>{if(this.providers[e]===void 0)throw new _e(e);const[s,n]=this.providers[e];return{value:s,onUse:n}};clear=e=>{e&&(this.reference!==void 0?this.element.removeChild(this.reference):this.element.remove())};on=(e,s)=>this.element.on(e,s,this);addClasses=e=>this.element.addClasses(e);removeClasses=e=>this.element.removeClasses(e);getClasses=()=>this.element.getClasses();isBrowserDOM=()=>!1;isBrowser=()=>!1;isHeadlessDOM=()=>!0;isHeadless=()=>!0;setStyle=(e,s)=>this.element.setStyle(e,s);getStyle=e=>this.element.getStyle(e);makeAccessors=e=>this.element.makeAccessors(e)}const os=new Set(["checked","disabled","multiple","readonly","required","selected"]),is=new Set(["img","br","hr","input","link","meta"]),ls=()=>typeof window<"u"?window:void 0,as=Symbol("DOM_RENDERABLE"),g=t=>Re(as,t),Ee=t=>g(e=>e.makeChildText(t).clear),Ce=t=>g(e=>{const s=e.makeChildText(t.value),n=t.on(s.setText);return r=>{n(),s.clear(r)}}),cs=t=>y.is(t)?Ce(t):Ee(t),T=(...t)=>g(e=>{const s=t.map(n=>m(n).render(e));return n=>{s.forEach(r=>r(n))}}),O=g(()=>()=>{}),us=t=>g(e=>(e.addClasses(t),s=>{s&&e.removeClasses(t)})),hs=t=>g(e=>{let s=new Set;const n=t.on(r=>{const o=(r??"").split(" ").filter(c=>c.length>0),i=new Set(o),l=[];for(const c of s)i.has(c)||l.push(c);const a=[];for(const c of i)s.has(c)||a.push(c);l.length>0&&e.removeClasses(l),a.length>0&&e.addClasses(a),s=i},{noAutoDispose:!0});return r=>{n(),r&&e.removeClasses(Array.from(s)),s.clear()}}),ds=(t,e)=>g(s=>{const{get:n,set:r}=s.makeAccessors(t),o=n();return r(e),i=>{i&&r(o)}}),ps=(t,e)=>g(s=>{const{get:n,set:r}=s.makeAccessors(t),o=n(),i=e.on(r,{noAutoDispose:!0});return l=>{i(),l&&r(o)}}),ee=(t,e)=>y.is(e)?ps(t,e):ds(t,e),ct=(t,e)=>t==="class"?y.is(e)?hs(e):us((e??"").split(" ").filter(s=>s.length>0)):ee(t,e),S=new Proxy({},{get:(t,e)=>s=>ct(e,s)}),ut=(t,e)=>ee(`data-${t}`,e),fs=new Proxy({},{get:(t,e)=>s=>ut(e,s)}),ht=(t,e)=>ee(`aria-${t}`,e),ms=new Proxy({},{get:(t,e)=>s=>ht(e,s)}),dt=(t,e)=>ee(t,e),gs=new Proxy({},{get:(t,e)=>s=>dt(e,s)}),pt=(t,e)=>ee(t,e),ys=new Proxy({},{get:(t,e)=>s=>pt(e,s)}),m=t=>{if(t==null)return O;if(Array.isArray(t))return T(...t.map(m));if(typeof t=="string")return Ee(t);if(y.is(t))return Ce(t);if(typeof t=="object"&&"render"in t&&"type"in t)return t;throw new Error(`Unknown type: '${typeof t}' for child: ${t}`)},De=(t,...e)=>g(s=>{const n=s.makeChildElement(t,void 0),r=e.map(o=>m(o).render(n));return o=>{r.forEach(i=>i(!1)),n.clear(o)}}),te=(t,e,...s)=>g(n=>{const r=n.makeChildElement(t,e),o=s.map(i=>m(i).render(r));return i=>{o.forEach(l=>l(!1)),r.clear(i)}}),ft=new Proxy({},{get:(t,e)=>(...s)=>De(e,s.flatMap(m))}),ws=new Proxy({},{get:(t,e)=>(...s)=>De("input",S.type(e),...s)}),mt="http://www.w3.org/2000/svg",vs=(t,...e)=>te(t,mt,...e),bs=new Proxy({},{get:(t,e)=>(...s)=>te(e,mt,s.flatMap(m))}),gt="http://www.w3.org/1998/Math/MathML",Ss=(t,...e)=>te(t,gt,...e),As=new Proxy({},{get:(t,e)=>(...s)=>te(e,gt,s.flatMap(m))}),Oe=(t,e)=>{if(typeof e=="function")return Oe(t,{then:e});const s=e.pending!=null?m(e.pending()):O,n=e.then,r=e.error!=null?o=>m(e.error(o)):()=>O;return g(o=>{let i=!0;const l=t(),a=o.makeRef();let c=m(s).render(a);return l.then(u=>{i&&(c(!0),c=m(n(u)).render(a))},u=>{i&&(c(!0),c=m(r(u)).render(a))}),u=>{i=!1,c(u),a.clear(u)}})},_s=(t,e)=>Oe(()=>t,e),yt=(t,e,s)=>g(n=>n.on(t,e,s)),wt=t=>yt("click",(e,s)=>{e.preventDefault();const n=e.target;setTimeout(()=>{const r=n.ownerDocument!=null?n?.checked:void 0;r!=null&&t(!r,s)},0)}),U=new Proxy({},{get:(t,e)=>s=>yt(e,s)}),vt=(t,e)=>s=>{e?.preventDefault===!0&&s.preventDefault(),e?.stopPropagation===!0&&s.stopPropagation(),e?.stopImmediatePropagation===!0&&s.stopImmediatePropagation(),t(s)},k=(t,e)=>vt(s=>{const n=s.target;t(n,s)},e),bt=(t,e)=>k((s,n)=>t(s.value,n),e),St=(t,e)=>k((s,n)=>t(s.valueAsNumber,n),e),At=(t,e)=>k((s,n)=>{if(s.value==="")return;const r=s.value.split("-"),o=new Date(Number(r[0]),Number(r[1])-1,Number(r[2].substring(0,2)));t(o,n)},e),Ts=(t,e)=>k((s,n)=>{if(s.value===""){t(null,n);return}const r=s.value.split("-"),o=new Date(Number(r[0]),Number(r[1])-1,Number(r[2].substring(0,2)));t(o,n)},e),_t=(t,e)=>k((s,n)=>{if(s.value==="")return;const r=s.value.split("T"),o=r[0].split("-"),i=new Date(Number(o[0]),Number(o[1])-1,Number(o[2])),l=r[1].split(":");i.setHours(Number(l[0])),i.setMinutes(Number(l[1])),i.setSeconds(Number(l[2])),t(i,n)},e),Es=(t,e)=>k((s,n)=>{if(s.value===""){t(null,n);return}const r=s.value.split("T");if(r.length!==2){t(null,n);return}const o=r[0].split("-"),i=new Date(Number(o[0]),Number(o[1])-1,Number(o[2])),l=r[1].split(":");i.setHours(Number(l[0]??0)),i.setMinutes(Number(l[1]??0)),i.setSeconds(Number(l[2]??0)),t(i,n)},e),Cs=(t,e)=>k((s,n)=>{t(s.checked,n)},e),Ds=(t,e="input")=>T(S.valueAsDate(t),U[e](At(t.set))),Os=(t,e="input")=>T(S.valueAsDate(t),U[e](_t(t.set))),xs=(t,e="input")=>T(S.valueAsNumber(t),U[e](St(t.set))),Ps=(t,e="input")=>T(S.value(t),U[e](bt(t.set))),Ls=t=>T(S.checked(t),wt(t.set)),xe=(t,e,s)=>y.is(t)?e(t):s(t),ks=(t,e,s)=>{const n=t.makeRef();let r=()=>{},o=null;const i=e.on(l=>{o?.dispose(),r(!0),o=new q,r=L(o,()=>m(s(l)).render(n))},{noAutoDispose:!0});return l=>{o?.dispose(),r(l),i(),n.clear(l)}},se=(t,e)=>{function s(r){return g(o=>{const i=o.makeRef();let l,a;const c=r.map(p=>Object.keys(p)[0]);let u;const d=c.on(p=>{if(p!==u){u=p,a?.dispose(),l?.(!0),a=r.map(f=>f[p]);const h=e[p](a);l=m(h).render(i)}});return p=>{a?.dispose(),d(),i.clear(p),l?.(p)}})}function n(r){const o=Object.keys(r)[0];return m(e[o](Z(r[o])))}return xe(t,s,n)},Pe=(t,e,s)=>se(w.map(t,n=>({[n[e]]:n})),s),Ms=(t,e)=>Pe(t,"kind",e),Ns=(t,e)=>{const s=w.map(t,([n,r])=>({[n]:r}));return se(s,e)},Is=(t,e)=>Pe(t,"type",e),Tt=(t,e)=>se(w.map(t,s=>({[s]:!0})),e),Hs=(t,e={})=>s=>{const n=e?.firstSeparator??t,r=e?.lastSeparator??t;return Tt(s.map(o=>o.isFirst?"first":o.isLast?"last":"other"),{first:n,last:r,other:t})},Rs=t=>g(e=>(e.appendOrInsert(t),s=>{s&&G(t)})),$s=(t,e,s)=>{function n(o){return g(i=>{const l=i.makeRef();let a=()=>{},c=!1,u=null;const d=o.on(p=>{p==null?(a(!0),a=m(s?.()).render(l),c=!1,u?.dispose(),u=null):c?u.set(p):(u=D(p),a(!0),a=m(e(u)).render(l),c=!0)});return p=>{u?.dispose(),d(),a?.(p),l.clear(p)}})}function r(o){if(o==null){const i=s?.();return i!=null?m(i):O}return m(e(Z(o)))}return xe(t,n,r)},Vs=(...t)=>(e,s)=>g(n=>{const r=n.makeRef();if(t.some(h=>!y.is(h)&&h==null))return(s!=null?m(s?.()):O).render(r);const i=t.map(()=>null),l=t.map(h=>y.is(h)?h.value!=null:h!=null);let a=null;const c=D(l.every(h=>h)),u=(h,f)=>{if(h.value!=null){if(i[f]==null){const v=D(h.value);i[f]=v}else i[f].value=h.value;l[f]=!0}else l[f]=!1};let d=t.length-1;const p=t.map((h,f)=>{if(!y.is(h)){const v=D(h);return i[f]=v,()=>{}}return h.on(()=>{u(h,f),d===0?c.value=l.every(v=>v):d--})});return c.on(h=>{a?.(!0),a=null,h?a=m(e(...i)).render(r):a=m(s?.()??O).render(r)}),h=>{i.forEach(f=>f?.dispose()),c.dispose(),p.forEach(f=>f()),a?.(h),r.clear(h)}}),Le=(t,e,s)=>xe(t,n=>g(r=>ks(r,n,o=>o?e():s?.())),n=>{if(n){const r=e();return r!=null?m(r):O}return m(s?.())}),js=(t,e,s)=>Le(w.map(t,n=>!n),e,s),ke=(t,e,s)=>{if(s!=null)return ke(t,n=>{const r=new ae(n.index,n.total.map(o=>o-1));return T(m(e(n)),Le(n.isLast,()=>O,()=>s(r)))});if(y.is(t))return g(n=>{const r=t.derive(),o=n.makeRef(),i=[],l=[];return r.on(a=>{const c=i.splice(a),u=l.splice(a);for(const d of u)d.dispose();for(const d of c)d(!0);for(let d=i.length;d<a;d++){const p=new ae(d,r),h=new q;l.push(h),i.push(L(h,()=>m(e(p)).render(o)))}}),a=>{for(const c of l)c.dispose();l.length=0,r.dispose();for(const c of i)c(a);i.length=0,o.clear(a)}});{const n=Z(t);return T(...Array.from({length:t},(r,o)=>o).map(r=>{const o=new ae(r,n);return m(e(o))}))}},Bs=(t,e,s)=>{const n=w.map(t,o=>o.length),r=w.toSignal(t);return ke(n,o=>{const i=r.map(l=>l[o.index]);return m(e(i,o))},s)},de=(...t)=>g(e=>s=>t.forEach(n=>{typeof n=="function"?n(s,e):n.dispose(s,e)})),Fs=(t,e)=>{if(y.is(t)){const s=t;return g(n=>{n=n.makeRef();const r=s.map(l=>m(e(l)));let o=()=>{};const i=r.on(l=>{o(!0),o=l.render(n)});return l=>{i(),o(l)}})}return m(e(t))},pe=t=>g(e=>{if(e.isBrowser()){const s=t(e);if(s!=null)return m(s).render(e)}return()=>{}});function qs({src:t,name:e,width:s,height:n,sandbox:r,allow:o,referrerpolicy:i,loading:l,iframeChild:a,onLoad:c}={},...u){return ft.iframe(S.src(t),S.name(e),S.width(s!=null?w.map(s,String):void 0),S.height(n!=null?w.map(n,String):void 0),S.sandbox(r),S.allow(o),S.referrerpolicy(i),a,pe(d=>{const p=d.element;let h,f=!1;const v=()=>{if(f)return;f=!0;const A=p.contentDocument;if(A&&(c&&c(p),u.length>0)){const b=A.body;if(b){const x=d.withElement(b);h=W(T(...u),x)}}};return l!=null&&w.on(l,A=>{p.loading=A}),(u.length>0||c)&&(t||setTimeout(v,0)),T(u.length>0||c?U.load(v):O,de(()=>{h&&h(!1)}))}))}const Ws=(t,e,s=()=>O)=>se(w.map(t,n=>n.length>0?{notEmpty:n}:{whenEmpty:null}),{notEmpty:n=>e(n),whenEmpty:()=>s()}),Us=(t,e)=>g(s=>{const n=s.makePortal(t),r=W(m(e),n);return()=>r(!0)}),ie=new Map,Et=t=>({mark:He(`Probe(${t.description})`),create:({callback:e=()=>{},timeout:s=10}={})=>{const n=l=>{clearTimeout(r),ie.delete(t),e(l)};if(ie.has(t))throw new Error(`Probe already exists: ${t.description}`);const r=setTimeout(()=>n("timeout"),s),o={counter:0,timeoutId:r};return ie.set(t,o),{value:()=>{clearTimeout(r);const l=ie.get(t);l!=null&&--l.counter===0&&n("resolved")},dispose:()=>n("disposed"),onUse:()=>o.counter++}}}),Gs=Et(Symbol("GlobalProbe"));function Js({mode:t,delegatesFocus:e,slotAssignment:s,clonable:n,serializable:r},...o){return pe(i=>{const l={mode:t};e!==void 0&&(l.delegatesFocus=e),s!==void 0&&(l.slotAssignment=s),n!==void 0&&(l.clonable=n),r!==void 0&&(l.serializable=r);const a=i.element.attachShadow(l),c=i.withElement(a),u=W(T(...o),c);return de(()=>u(!0))})}const zs=(t,e)=>g(s=>{const n=s.getStyle(t);return s.setStyle(t,e),r=>{r&&s.setStyle(t,n)}}),Ks=(t,e)=>g(s=>{const n=s.getStyle(t),r=e.on(o=>s.setStyle(t,o));return o=>{r(),o&&s.setStyle(t,n)}}),Ie=(t,e)=>y.is(e)?Ks(t,e):zs(t,e),Ys=new Proxy({},{get:(t,e)=>e==="variable"?(s,n)=>Ie(s,n):s=>Ie(e,s)}),Xs=t=>g(e=>{const s=t(e);return s==null?()=>{}:m(s).render(e)}),Qs=t=>pe(e=>t(e.element)),Zs=t=>g(e=>{if(e.isHeadlessDOM()){const s=t(e);if(s)return m(s).render(e)}return()=>{}}),en=t=>g(e=>{const s=new q,n=L(s,()=>m(t(s)).render(e));return r=>{s.dispose(),n(r)}}),fe=t=>g(e=>{let s=e;function n(){return s}function r(l){s=l}const o=[],i=t({use:({mark:l})=>{const{value:a,onUse:c}=n().getProvider(l);return c?.(),a},set:({mark:l,create:a},c)=>{const{value:u,dispose:d,onUse:p}=a(c,n());o.push(d),r(n().setProvider(l,u,p))}});return i==null?()=>{}:T(m(i),de(()=>o.forEach(l=>l()))).render(n())}),tn=(t,e,s)=>fe(({set:n})=>(n(t,e),s())),sn=(t,e)=>fe(({use:s})=>e(s(t))),nn=(...t)=>e=>fe(({use:s})=>{const n=t.map(s);return e(...n)});exports.Aria=ht;exports.Async=_s;exports.Attr=ct;exports.BindChecked=Ls;exports.BindDate=Ds;exports.BindDateTime=Os;exports.BindNumber=xs;exports.BindText=Ps;exports.BrowserContext=I;exports.CLASS_PLACEHOLDER_ATTR=B;exports.Computed=N;exports.Conjunction=Hs;exports.DOMNode=Rs;exports.DataAttr=ut;exports.DisposalScope=q;exports.El=De;exports.ElNS=te;exports.ElementPosition=ae;exports.Empty=O;exports.Ensure=$s;exports.EnsureAll=Vs;exports.ForEach=Bs;exports.Fragment=T;exports.GlobalProbe=Gs;exports.HeadlessAdapter=Kt;exports.HeadlessContext=H;exports.HeadlessElement=lt;exports.HeadlessPortal=Te;exports.HeadlessText=at;exports.IFrame=qs;exports.MapSignal=Fs;exports.MathAttr=pt;exports.MathEl=Ss;exports.MemoryStore=ve;exports.NotEmpty=Ws;exports.OnChecked=wt;exports.OnDispose=de;exports.OneOf=se;exports.OneOfField=Pe;exports.OneOfKind=Ms;exports.OneOfTuple=Ns;exports.OneOfType=Is;exports.OneOfValue=Tt;exports.Portal=Us;exports.Prop=X;exports.Provide=tn;exports.ProviderNotFoundError=_e;exports.RenderingError=nt;exports.Repeat=ke;exports.SVGAttr=dt;exports.SVGEl=vs;exports.ShadowRoot=Js;exports.Signal=y;exports.Task=Oe;exports.TextNode=cs;exports.Unless=js;exports.Use=sn;exports.UseMany=nn;exports.Value=w;exports.When=Le;exports.WithBrowserCtx=pe;exports.WithCtx=Xs;exports.WithElement=Qs;exports.WithHeadlessCtx=Zs;exports.WithProvider=fe;exports.WithScope=en;exports._NODE_PLACEHOLDER_ATTR=ce;exports._getSelfOrParentElement=st;exports._isElement=Se;exports._isFragment=Ae;exports._makeGetter=tt;exports._makeSetter=et;exports._removeDOMNode=G;exports._signalText=Ce;exports._staticText=Ee;exports.animateSignal=Vt;exports.animateSignals=Je;exports.aria=ms;exports.attr=S;exports.bind=Wt;exports.coalesce=Ut;exports.computed=Q;exports.computedOf=F;exports.computedOfAsync=xt;exports.computedRecord=ze;exports.createRenderable=Re;exports.dataAttr=fs;exports.delaySignal=Bt;exports.effect=we;exports.effectOf=Ve;exports.emit=vt;exports.emitChecked=Cs;exports.emitTarget=k;exports.emitValue=bt;exports.emitValueAsDate=At;exports.emitValueAsDateTime=_t;exports.emitValueAsNullableDate=Ts;exports.emitValueAsNullableDateTime=Es;exports.emitValueAsNumber=St;exports.endInterpolate=Ue;exports.getCurrentScope=ue;exports.getParentScope=kt;exports.getScopeStack=Lt;exports.getWindow=ls;exports.guessInterpolate=Ge;exports.html=ft;exports.input=ws;exports.interpolateDate=We;exports.interpolateNumber=Fe;exports.interpolateString=qe;exports.joinSignals=Pt;exports.localStorageProp=Rt;exports.makeProbe=Et;exports.makeProviderMark=He;exports.math=As;exports.mathAttr=ys;exports.merge=jt;exports.on=U;exports.popScope=Be;exports.previousSignal=Ft;exports.prop=D;exports.pushScope=je;exports.render=Jt;exports.renderWithContext=W;exports.renderableOfTNode=m;exports.restoreTempoPlaceholders=ts;exports.runHeadless=zt;exports.scoped=Mt;exports.sessionStorageProp=$t;exports.signal=Z;exports.slidingWindowSignal=qt;exports.storedProp=be;exports.style=Ys;exports.svg=bs;exports.svgAttr=gs;exports.syncProp=Gt;exports.untracked=le;exports.withScope=L;
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const Re=t=>Symbol(t);function $e(t,e){return{type:t,render:e}}function Ve(t){return t!=null&&t!==!1&&t!==0&&t!==""}function Pt(t){return!Ve(t)}function xt(t){return t==null}function Lt(t){return t!=null}const w={map:(t,e)=>y.is(t)?t.map(e):e(t),toSignal:(t,e)=>y.is(t)?t.derive():Z(t,e),maybeToSignal:(t,e)=>{if(t!=null)return w.toSignal(t,e)},get:t=>y.is(t)?t.get():t,on:(t,e)=>y.is(t)?t.on(e):(e(t),()=>{}),dispose:t=>{y.is(t)&&t.dispose()},disposeFn:t=>()=>w.dispose(t),deriveProp:(t,{autoDisposeProp:e=!0,equals:s}={})=>y.is(t)?t.deriveProp({autoDisposeProp:e,equals:s}):D(t,s),truthy:t=>w.map(t,Ve),falsy:t=>w.map(t,Pt),nil:t=>w.map(t,xt),defined:t=>w.map(t,Lt)},R=(...t)=>(e,s)=>{if(t.length===1)return w.toSignal(t[0]).map(e);const n=t.filter(r=>y.is(r));return Q(()=>e(...t.map(r=>w.get(r))),n,s)},Mt=(...t)=>(e,s,n,r=(o,i)=>o===i)=>R(...t)((...o)=>o).mapAsync(([...o],i)=>e(...o,i),s,n,r),kt=(...t)=>(e,s,n,r=(o,i)=>o===i)=>R(...t)((...o)=>o).mapAsyncGenerator(([...o],i)=>e(...o,i),s,n,r),Ht=t=>{const e=Object.keys(t);return R(...Object.values(t))((...s)=>Object.fromEntries(e.map((n,r)=>[n,s[r]])))},je=(...t)=>(e,s={})=>{const n=t.filter(r=>y.is(r));return we(()=>e(...t.map(w.get)),n,s)};class q{_signals=new Set;_callbacks=[];_disposed=!1;track(e){if(this._disposed)throw new Error("Cannot track signal in disposed scope");if(e.isDisposed())throw new Error("Cannot track already disposed signal");this._signals.add(e)}onDispose(e){if(this._disposed)throw new Error("Cannot register callback in disposed scope");this._callbacks.push(e)}dispose(){if(!this._disposed){this._disposed=!0;for(const e of this._callbacks)try{e()}catch(s){const n=s instanceof Error?s.message:String(s);console.error("Error in disposal callback:",n)}this._callbacks.length=0;for(const e of this._signals)e.dispose();this._signals.clear()}}get disposed(){return this._disposed}prop(e,s){const n=le(()=>D(e,s));return this.track(n),n}computed(e,s,n){const r=le(()=>Q(e,s,n));return this.track(r),r}effect(e,s,n){return L(this,()=>we(e,s,n))}computedOf(...e){return(s,n)=>{const r=le(()=>R(...e)(s,n));return this.track(r),r}}effectOf(...e){return(s,n)=>L(this,()=>je(...e)(s,n))}}const E=[],Be=t=>{E.push(t)},Fe=()=>{if(E.length===0)throw new Error("Cannot pop from empty scope stack");E.pop()},ue=()=>E[E.length-1]??null,Nt=()=>E,It=()=>E[E.length-2]??null,L=(t,e)=>{Be(t);try{return e()}finally{Fe()}},Rt=t=>{const e=new q;try{return L(e,()=>t(e))}finally{e.dispose()}},le=t=>{const e=E.slice();E.length=0;try{return t()}finally{E.length=0,E.push(...e)}};class y{constructor(e,s){this.equals=s,this._value=e}static ofPromise=(e,s,n,r=(o,i)=>o===i)=>{const o=new y(s,r);return e.then(i=>o._setAndNotify(i)).catch(i=>{n!=null?o._setAndNotify(n(i)):console.error("Unhandled promise rejection in Signal.ofPromise:",i)}),o};static is=e=>e!=null&&e.$__signal__===!0;$__signal__=!0;_value;_derivatives=[];_onValueListeners=[];_onDisposeListeners=[];get=()=>this._value;get value(){return this._value}hasListeners=()=>this._onValueListeners.length>0;on=(e,s={})=>{s.skipInitial||e(this.get(),void 0);const n=s.once?(o,i)=>{r(),e(o,i)}:e;this._onValueListeners.push(n);const r=()=>{const o=this._onValueListeners.indexOf(n);o!==-1&&this._onValueListeners.splice(o,1),s.abortSignal!=null&&s.abortSignal.removeEventListener("abort",r)};return s.abortSignal!=null&&s.abortSignal.addEventListener("abort",r),!s.noAutoDispose&&ue()?.onDispose(r),r};onChange=(e,s={})=>{let n=0;const r=(o,i)=>{n++>0&&e(o,i)};return this.on(r,s)};_setAndNotify=e=>{if(this._disposed)return;const s=this._value;this.equals(s,e)||(this._value=e,this._onValueListeners.forEach(n=>n(e,s)))};_disposed=!1;isDisposed=()=>this._disposed;onDispose=e=>{this._onDisposeListeners.push(e)};dispose=()=>{this._disposed||(this._disposed=!0,this._onDisposeListeners.forEach(e=>e()),this._onDisposeListeners.length=0,this._derivatives.length=0,this._onValueListeners.length=0)};map=(e,s=(n,r)=>n===r)=>{const n=new H(()=>{try{return e(this.get())}catch(r){throw console.error("Error in Signal.map:",r),r}},s);return this.setDerivative(n),n};flatMap=(e,s=(n,r)=>n===r)=>{const n=new H(()=>{try{return e(this.get()).get()}catch(r){throw console.error("Error in Signal.flatMap:",r),r}},s);return this.setDerivative(n),n};tap=e=>this.map(s=>(e(s),s));at=e=>this.map(s=>s[e]);_$;get $(){return this._$!==void 0?this._$:this._$=new Proxy(this,{get:(e,s)=>this.at(s)})}filter=(e,s)=>{let n=s??this.get();const r=new H(()=>{try{const o=this.get();return n=e(o)?o:n}catch(o){throw console.error("Error in Signal.filter:",o),o}},this.equals);return this.setDerivative(r),r};filterMap=(e,s,n=(r,o)=>r===o)=>{let r=s;const o=new H(()=>{try{const i=this.get();return r=e(i)??r}catch(i){throw console.error("Error in Signal.filterMap:",i),i}},n);return this.setDerivative(o),o};mapAsync=(e,s,n,r=(o,i)=>o===i)=>{const o=D(s,r);let i=0,l=new AbortController;return o.onDispose(this.on(async c=>{const a=++i;l.abort(),l=new AbortController;try{const u=await e(c,{abortSignal:l.signal});a===i&&o.set(u)}catch(u){if(a===i)if(n!=null)o.set(n(u));else throw u}})),o};mapAsyncGenerator=(e,s,n,r=(o,i)=>o===i)=>{const o=D(s,r);let i=0,l=new AbortController;return o.onDispose(this.on(async c=>{const a=++i;l.abort(),l=new AbortController;try{const u=e(c,{abortSignal:l.signal});for await(const d of u){if(a!==i)return;o.set(d)}}catch(u){if(a===i)if(n!=null)o.set(n(u));else throw u}})),o};mapMaybe=(e,s)=>this.map(n=>e(n)??s);feedProp=(e,s=!1)=>{const n=this.on(e.set,{noAutoDispose:!s});return e.onDispose(n),s?this.onDispose(e.dispose):this.onDispose(n),e};deriveProp=({autoDisposeProp:e=!0,equals:s}={})=>this.feedProp(D(this.get(),s),e);derive=()=>this.map(e=>e);count=()=>{let e=0;return this.map(()=>++e)};setDerivative=e=>{this._derivatives.push(e),e.onDispose(()=>{this._derivatives.splice(this._derivatives.indexOf(e),1)}),e.onDispose(this.on(e.setDirty,{noAutoDispose:!0})),this.onDispose(e.dispose)}}const $t=typeof queueMicrotask=="function"?queueMicrotask:t=>Promise.resolve().then(t);class H extends y{constructor(e,s){super(void 0,s),this._fn=e,this.setDirty(),ue()?.track(this)}static is(e){return e!=null&&e.$__computed__===!0}$__computed__=!0;_isDirty=!1;setDirty=()=>{this._isDirty||this._disposed||(this._isDirty=!0,this._derivatives.forEach(e=>e.setDirty()),this._scheduleNotify())};_scheduleCount=0;_scheduleNotify=()=>{const e=++this._scheduleCount;$t(()=>{this._scheduleCount!==e||this._disposed||this._isDirty&&(this._isDirty=!1,this._setAndNotify(this._fn()))})};get=()=>(this._isDirty&&(this._isDirty=!1,this._setAndNotify(this._fn())),this._value);get value(){return this.get()}dispose=()=>{this._disposed||(this._scheduleCount++,this._disposed=!0,this._onDisposeListeners.forEach(e=>e()),this._onDisposeListeners.length=0,this._derivatives.length=0)}}class X extends y{static is=e=>e!=null&&e.$__prop__===!0;$__prop__=!0;set=e=>{this._setAndNotify(e)};update=e=>{this._setAndNotify(e(this.get()))};reducer=(e,...s)=>{const n=this;return function r(o){const i=n.value;n.update(l=>e(l,o)),!n.equals(i,n.value)&&s.forEach(l=>l({previousState:i,state:n.value,action:o,dispatch:r}))}};iso=(e,s,n=(r,o)=>r===o)=>{const r=new X(e(this.get()),n);return r.onDispose(this.on(o=>r.set(e(o)))),r.on(o=>this._setAndNotify(s(o))),r};atProp=e=>this.iso(s=>s[e],s=>({...this.value,[e]:s}));get value(){return this.get()}set value(e){this._setAndNotify(e)}}const Q=(t,e,s=(n,r)=>n===r)=>{const n=new H(t,s);return e.forEach(r=>r.setDerivative(n)),n},we=(t,e,s={})=>{let n=s.once?()=>{o(),t()}:t;if(s.skipInitial){let i=!1;const l=n;n=()=>{i?l():i=!0}}const r=Q(n,e),o=()=>{r.dispose(),s.abortSignal!=null&&s.abortSignal.removeEventListener("abort",o)};return s.abortSignal!=null&&s.abortSignal.addEventListener("abort",o),o},D=(t,e=(s,n)=>s===n)=>{const s=new X(t,e);return ue()?.track(s),s},Z=(t,e=(s,n)=>s===n)=>new y(t,e),he=()=>typeof window<"u"?window:void 0,qe=(t,e,s)=>t+(e-t)*s,ke=97,We=(t,e,s)=>{const n=Math.max(t.length,e.length);let r="";for(let o=0;o<n;o++){let i=t.charCodeAt(o);isNaN(i)&&(i=ke);let l=e.charCodeAt(o);isNaN(l)&&(l=ke),r+=String.fromCharCode(i+(l-i)*s)}return r},Ue=(t,e,s)=>new Date(t.getTime()+(e.getTime()-t.getTime())*s),Ge=(t,e)=>e,Je=t=>typeof t=="number"?qe:typeof t=="string"?We:t instanceof Date?Ue:Ge;class be{_store=new Map;getItem=e=>this._store.get(e)??null;setItem=(e,s)=>{this._store.set(e,s)}}let ge=null,ye=null;const Vt=()=>(ge||(ge=new be),ge),jt=()=>(ye||(ye=new be),ye),Se=({key:t,defaultValue:e,store:s,serialize:n=JSON.stringify,deserialize:r=JSON.parse,equals:o=(a,u)=>a===u,onLoad:i=a=>a,syncTabs:l=!0,onKeyChange:c="load"})=>{let a=w.get(t);const u=s.getItem(a),d=new X(u!=null?i(r(u)):typeof e=="function"?e():e,o),f=he(),h=l&&typeof f?.BroadcastChannel=="function";let p=!1,b=null,A=null;const S=T=>{if(!h)return null;const $=`tempo:storedProp:${T}`,x=new f.BroadcastChannel($),V=`${Date.now().toString(36)}-${Math.random().toString(36).slice(2)}`,k=re=>{const C=re.data;if(!(C==null||typeof C!="object"||C.key!==T||typeof C.value!="string"||C.sourceId!=null&&C.sourceId===V))try{p=!0;const me=i(r(C.value));d.set(me)}catch(me){console.warn(`Failed to sync storedProp for key "${T}" via BroadcastChannel`,me)}finally{p=!1}};return x.addEventListener("message",k),d.onDispose(()=>{x?.removeEventListener("message",k),x?.close()}),{channel:x,instanceId:V,handleMessage:k}},P=S(a);P&&(b=P.channel,A=P.instanceId);const ne=T=>{const $=a;if($===T)return;const x=d.get(),V=n(x);if(s.setItem($,V),b!=null&&(b.close(),b=null,A=null),a=T,c==="load"){const re=s.getItem(T);if(re!=null)try{const C=i(r(re));d.set(C)}catch(C){console.warn(`Failed to load storedProp from new key "${T}"`,C)}else s.setItem(T,V)}else c==="migrate"&&s.setItem(T,V);const k=S(T);k&&(b=k.channel,A=k.instanceId)};return y.is(t)&&d.onDispose(t.on(ne)),d.on((T,$)=>{const x=n(T);s.setItem(a,x),b!=null&&!p&&$!==void 0&&A!=null&&b.postMessage({key:a,value:x,sourceId:A})}),d},Bt=t=>{const e=he()?.localStorage,s=e&&typeof e.getItem=="function"?e:Vt();return Se({...t,store:s})},Ft=t=>{const e=he()?.sessionStorage,s=e&&typeof e.getItem=="function"?e:jt();return Se({...t,store:s})};function He(t){return typeof requestAnimationFrame=="function"?requestAnimationFrame(t):setTimeout(t,0)}const ze=(t,e,s,n)=>{const r=n?.duration??300,o=n?.easing??(S=>S),i=n?.equals??((S,P)=>S===P);let l=n?.interpolate,c=t,a=e(),u=performance.now(),d=null,f=!0;const h=new H(e,i),p=D(t,i);p.onDispose(()=>{d!==null&&cancelAnimationFrame(d)}),p.onDispose(h.dispose),s.forEach(S=>{S.setDerivative(h),S.onDispose(p.dispose)});const b=S=>{a=S,u=performance.now(),c=p.value,f&&(f=!1,d=He(A))},A=()=>{const S=(performance.now()-u)/w.get(r),P=o(S);l==null&&(l=Je(c));let ne=l(c,a,P);S>=1?(f=!0,ne=a):d=He(A),p.set(ne)};return h.on(b),p},qt=(t,e)=>{const{initialValue:s,...n}=e??{};return ze(s??t.get(),t.get,[t],n)},Ke=(t,e)=>{const s=Object.values(t).filter(y.is),n=Object.keys(t);return Q(()=>{const r={};for(const o of n)r[o]=w.get(t[o]);return e(r)},s)},Wt=t=>Ke(t,e=>e),Ut=(t,e)=>{const s=D(t.get());let n=null;const r=t.on(o=>{n!=null&&clearTimeout(n),n=setTimeout(()=>{n=null,s.set(o)},typeof e=="function"?e(o):e)},{noAutoDispose:!0});return s.onDispose(()=>{r(),n!=null&&clearTimeout(n)}),s},Gt=t=>{let e;return t.map(s=>{const n=e;return e=s,n})},Jt=({size:t=void 0,signal:e})=>{const s=[];return e.map(n=>(s.push(n),t!=null&&s.length>t&&s.shift(),s.slice()))},zt=t=>(...e)=>R(t,...e)((s,...n)=>s(...n));function Kt(...t){return R(...t)((...e)=>{for(const s of e)if(s!=null)return s})}const Yt=(t,{channel:e,serialize:s=JSON.stringify,deserialize:n=JSON.parse,equals:r=(o,i)=>o===i})=>{const o=he();if(typeof o?.BroadcastChannel!="function")return()=>{};const i=new o.BroadcastChannel(`tempo:syncProp:${e}`),l=`${Date.now().toString(36)}-${Math.random().toString(36).slice(2)}`;let c=!1;const a=f=>{const h=f.data;if(!(h==null||typeof h!="object"||typeof h.value!="string"||h.sourceId!=null&&h.sourceId===l))try{c=!0;const p=n(h.value);r(t.get(),p)||t.set(p)}catch(p){console.warn(`Failed to sync prop for channel "${e}" via BroadcastChannel`,p)}finally{c=!1}};i.addEventListener("message",a);const u=t.on((f,h)=>{if(!c&&h!==void 0&&!r(f,h))try{const p=s(f);i.postMessage({value:p,sourceId:l})}catch(p){console.warn(`Failed to serialize prop for channel "${e}" via BroadcastChannel`,p)}}),d=()=>{u(),i.removeEventListener("message",a),i.close()};return t.onDispose(d),d};class ae{constructor(e,s){this.index=e,this.total=s,this.counter=e+1,this.isFirst=e===0,this.isEven=e%2===1,this.isOdd=e%2===0}counter;isFirst;isEven;isOdd;#e;get isLast(){return this.#e==null&&(this.#e=this.total.map(e=>this.counter===e)),this.#e}dispose=()=>{this.#e?.dispose(),this.#e=void 0}}const Ye=new Set(["checked","disabled","hidden","multiple","readonly","required","autofocus"]),Xe=new Set(["selected"]),Qe=new Set(["rowSpan","colSpan","tabIndex","valueAsNumber"]),Ze=new Set(["valueAsDate"]),et={readonly:"readOnly"},tt=new Set(["value","textContent","innerText","innerHTML","outerHTML","className","classList"]),st=(t,e)=>{if(Xe.has(t))return s=>{s==null||s!==!0?e.removeAttribute(t):e.setAttribute(t,"")};if(Ye.has(t)){const s=et[t]||t;return n=>{n==null?e[s]=null:e[s]=!!n}}else return Qe.has(t)?s=>{s==null?e[t]=null:e[t]=Number(s)}:Ze.has(t)?s=>{s==null?e[t]=null:e[t]=s}:tt.has(t)?s=>{s==null?e[t]=null:e[t]=String(s)}:s=>{s==null?e.removeAttribute(t):e.setAttribute(t,s)}},nt=(t,e)=>Xe.has(t)?()=>e.hasAttribute(t):Ye.has(t)?()=>!!e[et[t]||t]:Qe.has(t)?()=>Number(e[t]):Ze.has(t)?()=>e[t]:tt.has(t)?()=>String(e[t]):()=>e.getAttribute(t),G=t=>{const e=t;e&&e.onblur&&(e.onblur=null),!(!t||t.ownerDocument===void 0)&&t.parentNode&&t.parentNode.removeChild(t)},rt=t=>ve(t)||Ae(t)?t:t.parentElement,ve=t=>t.nodeType===1,Ae=t=>t.nodeType===11;class Te extends Error{constructor(e){super(`Provider not found: ${e.description}`)}}class N{constructor(e,s,n,r){this.document=e,this.element=s,this.reference=n,this.providers=r}static of(e,s,n){return new N(e.ownerDocument,e,s,n)}createElement=(e,s)=>s!==void 0?this.document.createElementNS(s,e):this.document.createElement(e);makeChildElement=(e,s)=>{const n=this.createElement(e,s);return this.appendOrInsert(n),this.withElement(n)};createText=e=>this.document.createTextNode(e);makeChildText=e=>{const s=this.createText(e);return this.appendOrInsert(s),this.withReference(s)};setText=e=>{this.reference.nodeValue=e};getText=()=>this.reference?.nodeValue??this.element.textContent??"";makeRef=()=>{const e=this.createText("");return this.appendOrInsert(e),this.withReference(e)};appendOrInsert=e=>{this.reference===void 0?this.element.appendChild(e):this.element.insertBefore(e,this.reference)};withElement=e=>new N(e.ownerDocument??this.document,e,void 0,this.providers);makePortal=e=>{const s=typeof e=="string"?this.document.querySelector(e):e;if(s==null)throw new Error(`Cannot find element by selector for portal: ${e}`);return this.withElement(s)};withReference=e=>new N(this.document,this.element,e,this.providers);setProvider=(e,s,n)=>new N(this.document,this.element,this.reference,{...this.providers,[e]:[s,n]});getProvider=e=>{if(this.providers[e]===void 0)throw new Te(e);const[s,n]=this.providers[e];return{value:s,onUse:n}};clear=e=>{e&&(this.reference!==void 0?G(this.reference):G(this.element))};addClasses=e=>{this.element.classList.add(...e)};removeClasses=e=>{this.element.classList.remove(...e)};getClasses=()=>Array.from(this.element.classList);on=(e,s,n)=>{const r=o=>s(o,this);return this.element.addEventListener(e,r,n),o=>{o&&this.element.removeEventListener(e,r,n)}};isBrowserDOM=()=>!0;isBrowser=()=>!0;isHeadlessDOM=()=>!1;isHeadless=()=>!1;setStyle=(e,s)=>{this.element.style[e]=s};getStyle=e=>this.element.style[e];makeAccessors=e=>({get:nt(e,this.element),set:st(e,this.element)});getWindow=()=>this.document.defaultView}const W=(t,e)=>{const s=new q,n=L(s,()=>t.render(e));return(r=!0)=>{s.dispose(),n(r)}},Xt=(t,e,{doc:s,clear:n,disposeWithParent:r=!0,providers:o={}}={})=>{const i=typeof e=="string"?(s??document).querySelector(e):e;if(i===null)throw new ot(`Cannot find element by selector for render: ${e}`);n!==!1&&(s??i.ownerDocument)!=null&&(i.nodeType===1||i.nodeType===11)&&(i.innerHTML="");const l=rt(i),c=ve(i)||Ae(i)?void 0:i,a=N.of(l,c,o),u=W(t,a);let d;return r&&i.parentElement!=null&&(d=new MutationObserver(f=>{f[0]?.removedNodes.forEach(h=>{h===i&&(d?.disconnect(),u(i.nodeType!==1))})}),d.observe(i.parentElement,{childList:!0,subtree:!1,attributes:!1})),()=>{d?.disconnect(),u(!0)}},Qt=(t,{startUrl:e="https://example.com",selector:s,providers:n={}}={selector:"body"})=>{const r=w.toSignal(e).deriveProp(),o=new _e(s,void 0),i=new I(o,void 0,{currentURL:r},n);return{clear:W(t(),i),root:o,currentURL:r}};class ot extends Error{constructor(e){super(e)}}const ce="data-tts-node",F="data-tts-class",J="data-tts-style",z="data-tts-html",K="data-tts-text",Y="data-tts-attrs";class Zt{select;getAttribute;setAttribute;getClass;setClass;getStyles;setStyles;appendHTML;getInnerHTML;setInnerHTML;getInnerText;setInnerText;constructor({select:e,getAttribute:s,setAttribute:n,getClass:r,setClass:o,getStyles:i,setStyles:l,appendHTML:c,getInnerHTML:a,setInnerHTML:u,getInnerText:d,setInnerText:f}){this.select=e,this.getAttribute=s,this.setAttribute=n,this.getClass=r,this.setClass=o,this.getStyles=i,this.setStyles=l,this.appendHTML=c,this.getInnerHTML=a,this.setInnerHTML=u,this.getInnerText=d,this.setInnerText=f}setFromRoot=(e,s)=>{e.getPortals().forEach(r=>{const o=typeof r.selector=="string"?this.select(r.selector):[r.selector];for(const i of o){if(i==null)throw new Error(`Cannot find element by selector for render: ${r.selector}`);if(r.hasChildren()&&this.appendHTML(i,r.contentToHTML(s)),r.hasInnerHTML()){if(s){const l=this.getInnerHTML(i);l!=null&&this.setAttribute(i,z,l)}this.setInnerHTML(i,r.getInnerHTML())}if(r.hasInnerText()){if(s){const l=this.getInnerText(i);l!=null&&this.setAttribute(i,K,l)}this.setInnerText(i,r.getInnerText())}if(r.hasClasses()){if(s){const l=this.getClass(i);l!=null&&this.setAttribute(i,F,l)}this.setClass(i,r.getClasses().join(" "))}if(r.hasStyles()){if(s){const l=this.getStyles(i);Object.keys(l).length>0&&this.setAttribute(i,J,JSON.stringify(l))}this.setStyles(i,r.getStyles())}if(r.hasAttributes()){const l=r.getAttributes();if(s){const c=[];l.forEach(([a])=>{const u=this.getAttribute(i,a);u!=null&&c.push([a,u])}),c.length>0&&this.setAttribute(i,Y,JSON.stringify(Object.fromEntries(c)))}l.forEach(([c,a])=>{this.setAttribute(i,c,a)})}}})}}const it=t=>JSON.parse(t.replace(/"/g,'"')),es=t=>{const e=t.getAttribute(F);t.removeAttribute(F),e!=null&&t.setAttribute("class",e)},ts=t=>{const e=t.getAttribute(z);t.removeAttribute(z),e!=null&&(t.innerHTML=e)},ss=t=>{const e=t.getAttribute(K);t.removeAttribute(K),e!=null&&(t.innerText=e)},ns=t=>{const e=t.getAttribute(J);if(t.removeAttribute(J),e!=null){const s=it(e),n=Object.entries(s);n.length>0&&(t.style.cssText=n.map(([r,o])=>`${r}: ${o}`).join("; "))}},rs=t=>{const e=t.getAttribute(Y);if(t.removeAttribute(Y),e!=null){const s=it(e);Object.entries(s).forEach(([n,r])=>{r==null?t.removeAttribute(n):t.setAttribute(n,r)})}},os=()=>{const e=[ce,F,z,K,J,Y].map(n=>`[${n}]`).join(",");document.querySelectorAll(e).forEach(n=>{const r=n;if(r.hasAttribute(ce)){G(r);return}r.hasAttribute(F)&&es(r),r.hasAttribute(K)&&ss(r),r.hasAttribute(z)&&ts(r),r.hasAttribute(J)&&ns(r),r.hasAttribute(Y)&&rs(r)})},lt="data-tempo-id",j=Symbol("class"),B=Symbol("style"),oe=Symbol("handler"),at=()=>Math.random().toString(36).substring(2,15),is=t=>t.replace(/<[^>]*>?/g,"");class ct{constructor(e){this.parent=e}id=at();properties={};children=[];isElement=()=>!0;isText=()=>!1;getText=()=>this.properties.innerText!=null?this.properties.innerText:this.properties.innerHTML!=null?is(this.properties.innerHTML):this.children.map(e=>e.getText()).join("");removeChild=e=>{const s=this.children.indexOf(e);s!==-1&&this.children.splice(s,1)};remove=()=>{if(this.parent!=null)this.parent.removeChild(this);else throw new Error("Parent is undefined")};getPortals=()=>{const e=this.elements().flatMap(s=>s.isPortal()?[s,...s.getPortals()]:s.getPortals());return this.isPortal()&&e.unshift(this),e};elements=()=>this.children.filter(e=>e.isElement());hasInnerHTML=()=>this.properties.innerHTML!=null;getInnerHTML=()=>this.properties.innerHTML??"";getInnerText=()=>this.properties.innerText??"";hasInnerText=()=>this.properties.innerText!=null;hasChildren=()=>this.children.length>0;hasClasses=()=>this.properties[j]!=null;hasStyles=()=>this.properties[B]!=null;hasAttributes=()=>Object.keys(this.properties).length>0;hasHandlers=()=>this.properties[oe]!=null;hasRenderableProperties=()=>this.hasClasses()||this.hasAttributes()||this.hasStyles();getById=e=>{if(this.properties.id===e)return this;for(const s of this.elements()){const n=s.getById(e);if(n!=null)return n}};trigger=(e,s)=>{((this.properties[oe]??{})[e]??[]).forEach(r=>r(s))};click=()=>{this.trigger("click",{})};on=(e,s,n,r)=>{const o=this.properties[oe]??={},i=r?.once?c=>{l(),s(c,n)}:c=>s(c,n);o[e]=[...o[e]??[],i];const l=()=>{const c=o[e]??[],a=c.indexOf(i);a!==-1&&(c.splice(a,1),c.length===0?(delete o[e],Object.keys(o).length===0&&delete this.properties[oe]):o[e]=c,r?.signal!=null&&r.signal.removeEventListener("abort",l))};return r?.signal!=null&&r.signal.addEventListener("abort",l),l};addClasses=e=>{if(e.length===0)return;const s=this.properties[j]??=[],n=new Set(s);for(const r of e)n.has(r)||(s.push(r),n.add(r))};removeClasses=e=>{if(e.length===0)return;const s=this.properties[j]??=[],n=new Set(e);let r=0;for(let o=0;o<s.length;o++)n.has(s[o])||(s[r]=s[o],r++);s.length=r,s.length===0&&delete this.properties[j]};getClasses=()=>this.properties[j]??[];getAttributes=()=>Object.entries(this.properties).filter(([e])=>!["innerText","innerHTML"].includes(e));getVisibleAttributes=()=>Reflect.ownKeys(this.properties).flatMap(e=>e===j?[["class",this.getClasses()]]:e===B?[["style",this.getStyles()]]:typeof e=="string"?[[e,String(this.properties[e])]]:[]);setStyle=(e,s)=>{const n=this.properties[B]??={};n[e]=s,s===""&&(delete n[e],Object.keys(n).length===0&&delete this.properties[B])};getStyle=e=>this.properties[B]?.[e]??"";getStyles=()=>this.properties[B]??{};makeAccessors=e=>{const s=this.properties;return{get:()=>s[e],set:n=>s[e]=n}}}const ls=t=>t.replace(/"/g,"""),as=t=>t.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">");class ut extends ct{constructor(e,s,n){super(n),this.tagName=e,this.namespace=s}isPortal=()=>!1;buildAttributesString=e=>{let s=null;const n=this.namespace?` xmlns="${this.namespace}"`:"",r=this.getVisibleAttributes().map(([i,l])=>i==="class"?` class="${l.join(" ")}"`:i==="style"?typeof l=="string"?` style="${l}"`:` style="${Object.entries(l).map(([c,a])=>`${c}: ${a};`).join(" ")}"`:cs.has(i)?` ${i}`:i==="innerHTML"?(s=l,""):i==="innerText"?(s=as(l),""):` ${i}="${ls(l)}"`).join(""),o=e?` ${ce} ${lt}="${this.id}"`:"";return{attrs:`${n}${r}${o}`,innerHTML:s}};toHTML=(e=!1)=>{const s=this.children.map(o=>o.toHTML()).join(""),{attrs:n,innerHTML:r}=this.buildAttributesString(e);return Ne.has(this.tagName)&&s===""?`<${this.tagName}${n} />`:`<${this.tagName}${n}>${r??s}</${this.tagName}>`};async*toHTMLStream(e){const s=e?.generatePlaceholders??!1,{attrs:n,innerHTML:r}=this.buildAttributesString(s);if(Ne.has(this.tagName)&&this.children.length===0){yield`<${this.tagName}${n} />`;return}if(yield`<${this.tagName}${n}>`,r!==null)yield r;else for(const o of this.children)yield*o.toHTMLStream(e);yield`</${this.tagName}>`}}class _e extends ct{constructor(e,s){super(s),this.selector=e}isPortal=()=>!0;toHTML=()=>"";async*toHTMLStream(e){}contentToHTML=(e=!1)=>this.children.map(s=>s.toHTML(e)).join("");async*contentToHTMLStream(e){for(const s of this.children)yield*s.toHTMLStream(e)}}class ht{constructor(e){this.text=e}id=at();isElement=()=>!1;isText=()=>!0;getText=()=>this.text;toHTML=()=>this.text;async*toHTMLStream(e){yield this.text}}class I{constructor(e,s,n,r){this.element=e,this.reference=s,this.container=n,this.providers=r}appendOrInsert=e=>{if(this.reference!=null){const s=this.element.children.indexOf(this.reference);s>=0&&this.element.children.splice(s,0,e)}else this.element.children.push(e)};makeChildElement=(e,s)=>{const n=new ut(e,s,this.element);return this.appendOrInsert(n),new I(n,void 0,this.container,this.providers)};makeChildText=e=>{const s=new ht(e);return this.appendOrInsert(s),new I(this.element,s,this.container,this.providers)};setText=e=>{this.reference&&this.reference.isText()&&(this.reference.text=e)};getText=()=>this.reference?.getText()??this.element.getText();makeRef=()=>this.makeChildText("");makePortal=e=>{const s=new _e(e,this.element);return this.appendOrInsert(s),new I(s,void 0,this.container,this.providers)};setProvider=(e,s,n)=>new I(this.element,this.reference,this.container,{...this.providers,[e]:[s,n]});getProvider=e=>{if(this.providers[e]===void 0)throw new Te(e);const[s,n]=this.providers[e];return{value:s,onUse:n}};clear=e=>{e&&(this.reference!==void 0?this.element.removeChild(this.reference):this.element.remove())};on=(e,s)=>this.element.on(e,s,this);addClasses=e=>this.element.addClasses(e);removeClasses=e=>this.element.removeClasses(e);getClasses=()=>this.element.getClasses();isBrowserDOM=()=>!1;isBrowser=()=>!1;isHeadlessDOM=()=>!0;isHeadless=()=>!0;setStyle=(e,s)=>this.element.setStyle(e,s);getStyle=e=>this.element.getStyle(e);makeAccessors=e=>this.element.makeAccessors(e)}const cs=new Set(["checked","disabled","multiple","readonly","required","selected"]),Ne=new Set(["img","br","hr","input","link","meta"]),us=()=>typeof window<"u"?window:void 0,hs=Symbol("DOM_RENDERABLE"),g=t=>$e(hs,t),Ee=t=>g(e=>e.makeChildText(t).clear),De=t=>g(e=>{const s=e.makeChildText(t.value),n=t.on(s.setText);return r=>{n(),s.clear(r)}}),ds=t=>y.is(t)?De(t):Ee(t),_=(...t)=>g(e=>{const s=t.map(n=>m(n).render(e));return n=>{s.forEach(r=>r(n))}}),O=g(()=>()=>{}),fs=t=>g(e=>(e.addClasses(t),s=>{s&&e.removeClasses(t)})),ps=t=>g(e=>{let s=new Set;const n=t.on(r=>{const o=(r??"").split(" ").filter(a=>a.length>0),i=new Set(o),l=[];for(const a of s)i.has(a)||l.push(a);const c=[];for(const a of i)s.has(a)||c.push(a);l.length>0&&e.removeClasses(l),c.length>0&&e.addClasses(c),s=i},{noAutoDispose:!0});return r=>{n(),r&&e.removeClasses(Array.from(s)),s.clear()}}),ms=(t,e)=>g(s=>{const{get:n,set:r}=s.makeAccessors(t),o=n();return r(e),i=>{i&&r(o)}}),gs=(t,e)=>g(s=>{const{get:n,set:r}=s.makeAccessors(t),o=n(),i=e.on(r,{noAutoDispose:!0});return l=>{i(),l&&r(o)}}),ee=(t,e)=>y.is(e)?gs(t,e):ms(t,e),dt=(t,e)=>t==="class"?y.is(e)?ps(e):fs((e??"").split(" ").filter(s=>s.length>0)):ee(t,e),v=new Proxy({},{get:(t,e)=>s=>dt(e,s)}),ft=(t,e)=>ee(`data-${t}`,e),ys=new Proxy({},{get:(t,e)=>s=>ft(e,s)}),pt=(t,e)=>ee(`aria-${t}`,e),ws=new Proxy({},{get:(t,e)=>s=>pt(e,s)}),mt=(t,e)=>ee(t,e),bs=new Proxy({},{get:(t,e)=>s=>mt(e,s)}),gt=(t,e)=>ee(t,e),Ss=new Proxy({},{get:(t,e)=>s=>gt(e,s)}),m=t=>{if(t==null)return O;if(Array.isArray(t))return _(...t.map(m));if(typeof t=="string")return Ee(t);if(y.is(t))return De(t);if(typeof t=="object"&&"render"in t&&"type"in t)return t;throw new Error(`Unknown type: '${typeof t}' for child: ${t}`)},Ce=(t,...e)=>g(s=>{const n=s.makeChildElement(t,void 0),r=e.map(o=>m(o).render(n));return o=>{r.forEach(i=>i(!1)),n.clear(o)}}),te=(t,e,...s)=>g(n=>{const r=n.makeChildElement(t,e),o=s.map(i=>m(i).render(r));return i=>{o.forEach(l=>l(!1)),r.clear(i)}}),yt=new Proxy({},{get:(t,e)=>(...s)=>Ce(e,s.flatMap(m))}),vs=new Proxy({},{get:(t,e)=>(...s)=>Ce("input",v.type(e),...s)}),wt="http://www.w3.org/2000/svg",As=(t,...e)=>te(t,wt,...e),Ts=new Proxy({},{get:(t,e)=>(...s)=>te(e,wt,s.flatMap(m))}),bt="http://www.w3.org/1998/Math/MathML",_s=(t,...e)=>te(t,bt,...e),Es=new Proxy({},{get:(t,e)=>(...s)=>te(e,bt,s.flatMap(m))}),Oe=(t,e)=>{if(typeof e=="function")return Oe(t,{then:e});const s=e.pending!=null?m(e.pending()):O,n=e.then,r=e.error!=null?o=>m(e.error(o)):()=>O;return g(o=>{let i=!0;const l=t(),c=o.makeRef();let a=m(s).render(c);return l.then(u=>{i&&(a(!0),a=m(n(u)).render(c))},u=>{i&&(a(!0),a=m(r(u)).render(c))}),u=>{i=!1,a(u),c.clear(u)}})},Ds=(t,e)=>Oe(()=>t,e),St=(t,e,s)=>g(n=>n.on(t,e,s)),vt=t=>St("click",(e,s)=>{e.preventDefault();const n=e.target;setTimeout(()=>{const r=n.ownerDocument!=null?n?.checked:void 0;r!=null&&t(!r,s)},0)}),U=new Proxy({},{get:(t,e)=>s=>St(e,s)}),At=(t,e)=>s=>{e?.preventDefault===!0&&s.preventDefault(),e?.stopPropagation===!0&&s.stopPropagation(),e?.stopImmediatePropagation===!0&&s.stopImmediatePropagation(),t(s)},M=(t,e)=>At(s=>{const n=s.target;t(n,s)},e),Tt=(t,e)=>M((s,n)=>t(s.value,n),e),_t=(t,e)=>M((s,n)=>t(s.valueAsNumber,n),e),Et=(t,e)=>M((s,n)=>{if(s.value==="")return;const r=s.value.split("-"),o=new Date(Number(r[0]),Number(r[1])-1,Number(r[2].substring(0,2)));t(o,n)},e),Cs=(t,e)=>M((s,n)=>{if(s.value===""){t(null,n);return}const r=s.value.split("-"),o=new Date(Number(r[0]),Number(r[1])-1,Number(r[2].substring(0,2)));t(o,n)},e),Dt=(t,e)=>M((s,n)=>{if(s.value==="")return;const r=s.value.split("T"),o=r[0].split("-"),i=new Date(Number(o[0]),Number(o[1])-1,Number(o[2])),l=r[1].split(":");i.setHours(Number(l[0])),i.setMinutes(Number(l[1])),i.setSeconds(Number(l[2])),t(i,n)},e),Os=(t,e)=>M((s,n)=>{if(s.value===""){t(null,n);return}const r=s.value.split("T");if(r.length!==2){t(null,n);return}const o=r[0].split("-"),i=new Date(Number(o[0]),Number(o[1])-1,Number(o[2])),l=r[1].split(":");i.setHours(Number(l[0]??0)),i.setMinutes(Number(l[1]??0)),i.setSeconds(Number(l[2]??0)),t(i,n)},e),Ps=(t,e)=>M((s,n)=>{t(s.checked,n)},e),xs=(t,e="input")=>_(v.valueAsDate(t),U[e](Et(t.set))),Ls=(t,e="input")=>_(v.valueAsDate(t),U[e](Dt(t.set))),Ms=(t,e="input")=>_(v.valueAsNumber(t),U[e](_t(t.set))),ks=(t,e="input")=>_(v.value(t),U[e](Tt(t.set))),Hs=t=>_(v.checked(t),vt(t.set)),Pe=(t,e,s)=>y.is(t)?e(t):s(t),Ns=(t,e,s)=>{const n=t.makeRef();let r=()=>{},o=null;const i=e.on(l=>{o?.dispose(),r(!0),o=new q,r=L(o,()=>m(s(l)).render(n))},{noAutoDispose:!0});return l=>{o?.dispose(),r(l),i(),n.clear(l)}},se=(t,e)=>{function s(r){return g(o=>{const i=o.makeRef();let l,c;const a=r.map(f=>Object.keys(f)[0]);let u;const d=a.on(f=>{if(f!==u){u=f,c?.dispose(),l?.(!0),c=r.map(p=>p[f]);const h=e[f](c);l=m(h).render(i)}});return f=>{c?.dispose(),d(),i.clear(f),l?.(f)}})}function n(r){const o=Object.keys(r)[0];return m(e[o](Z(r[o])))}return Pe(t,s,n)},xe=(t,e,s)=>se(w.map(t,n=>({[n[e]]:n})),s),Is=(t,e)=>xe(t,"kind",e),Rs=(t,e)=>{const s=w.map(t,([n,r])=>({[n]:r}));return se(s,e)},$s=(t,e)=>xe(t,"type",e),Ct=(t,e)=>se(w.map(t,s=>({[s]:!0})),e),Vs=(t,e={})=>s=>{const n=e?.firstSeparator??t,r=e?.lastSeparator??t;return Ct(s.map(o=>o.isFirst?"first":o.isLast?"last":"other"),{first:n,last:r,other:t})},js=t=>g(e=>(e.appendOrInsert(t),s=>{s&&G(t)})),Bs=(t,e,s)=>{function n(o){return g(i=>{const l=i.makeRef();let c=()=>{},a=!1,u=null;const d=o.on(f=>{f==null?(c(!0),c=m(s?.()).render(l),a=!1,u?.dispose(),u=null):a?u.set(f):(u=D(f),c(!0),c=m(e(u)).render(l),a=!0)});return f=>{u?.dispose(),d(),c?.(f),l.clear(f)}})}function r(o){if(o==null){const i=s?.();return i!=null?m(i):O}return m(e(Z(o)))}return Pe(t,n,r)},Fs=(...t)=>(e,s)=>g(n=>{const r=n.makeRef();if(t.some(h=>!y.is(h)&&h==null))return(s!=null?m(s?.()):O).render(r);const i=t.map(()=>null),l=t.map(h=>y.is(h)?h.value!=null:h!=null);let c=null;const a=D(l.every(h=>h)),u=(h,p)=>{if(h.value!=null){if(i[p]==null){const b=D(h.value);i[p]=b}else i[p].value=h.value;l[p]=!0}else l[p]=!1};let d=t.length-1;const f=t.map((h,p)=>{if(!y.is(h)){const b=D(h);return i[p]=b,()=>{}}return h.on(()=>{u(h,p),d===0?a.value=l.every(b=>b):d--})});return a.on(h=>{c?.(!0),c=null,h?c=m(e(...i)).render(r):c=m(s?.()??O).render(r)}),h=>{i.forEach(p=>p?.dispose()),a.dispose(),f.forEach(p=>p()),c?.(h),r.clear(h)}}),Le=(t,e,s)=>Pe(t,n=>g(r=>Ns(r,n,o=>o?e():s?.())),n=>{if(n){const r=e();return r!=null?m(r):O}return m(s?.())}),qs=(t,e,s)=>Le(w.map(t,n=>!n),e,s),Me=(t,e,s)=>{if(s!=null)return Me(t,n=>{const r=new ae(n.index,n.total.map(o=>o-1));return _(m(e(n)),Le(n.isLast,()=>O,()=>s(r)))});if(y.is(t))return g(n=>{const r=t.derive(),o=n.makeRef(),i=[],l=[];return r.on(c=>{const a=i.splice(c),u=l.splice(c);for(const d of u)d.dispose();for(const d of a)d(!0);for(let d=i.length;d<c;d++){const f=new ae(d,r),h=new q;l.push(h),i.push(L(h,()=>m(e(f)).render(o)))}}),c=>{for(const a of l)a.dispose();l.length=0,r.dispose();for(const a of i)a(c);i.length=0,o.clear(c)}});{const n=Z(t);return _(...Array.from({length:t},(r,o)=>o).map(r=>{const o=new ae(r,n);return m(e(o))}))}},Ws=(t,e,s)=>{const n=w.map(t,o=>o.length),r=w.toSignal(t);return Me(n,o=>{const i=r.map(l=>l[o.index]);return m(e(i,o))},s)},de=(...t)=>g(e=>s=>t.forEach(n=>{typeof n=="function"?n(s,e):n.dispose(s,e)})),Us=(t,e)=>{if(y.is(t)){const s=t;return g(n=>{n=n.makeRef();const r=s.map(l=>m(e(l)));let o=()=>{};const i=r.on(l=>{o(!0),o=l.render(n)});return l=>{i(),o(l)}})}return m(e(t))},fe=t=>g(e=>{if(e.isBrowser()){const s=t(e);if(s!=null)return m(s).render(e)}return()=>{}});function Gs({src:t,name:e,width:s,height:n,sandbox:r,allow:o,referrerpolicy:i,loading:l,iframeChild:c,onLoad:a}={},...u){return yt.iframe(v.src(t),v.name(e),v.width(s!=null?w.map(s,String):void 0),v.height(n!=null?w.map(n,String):void 0),v.sandbox(r),v.allow(o),v.referrerpolicy(i),c,fe(d=>{const f=d.element;let h,p=!1;const b=()=>{if(p)return;p=!0;const A=f.contentDocument;if(A&&(a&&a(f),u.length>0)){const S=A.body;if(S){const P=d.withElement(S);h=W(_(...u),P)}}};return l!=null&&w.on(l,A=>{f.loading=A}),(u.length>0||a)&&(t||setTimeout(b,0)),_(u.length>0||a?U.load(b):O,de(()=>{h&&h(!1)}))}))}const Js=(t,e,s=()=>O)=>se(w.map(t,n=>n.length>0?{notEmpty:n}:{whenEmpty:null}),{notEmpty:n=>e(n),whenEmpty:()=>s()}),zs=(t,e)=>g(s=>{const n=s.makePortal(t),r=W(m(e),n);return()=>r(!0)}),ie=new Map,Ot=t=>({mark:Re(`Probe(${t.description})`),create:({callback:e=()=>{},timeout:s=10}={})=>{const n=l=>{clearTimeout(r),ie.delete(t),e(l)};if(ie.has(t))throw new Error(`Probe already exists: ${t.description}`);const r=setTimeout(()=>n("timeout"),s),o={counter:0,timeoutId:r};return ie.set(t,o),{value:()=>{clearTimeout(r);const l=ie.get(t);l!=null&&--l.counter===0&&n("resolved")},dispose:()=>n("disposed"),onUse:()=>o.counter++}}}),Ks=Ot(Symbol("GlobalProbe"));function Ys({mode:t,delegatesFocus:e,slotAssignment:s,clonable:n,serializable:r},...o){return fe(i=>{const l={mode:t};e!==void 0&&(l.delegatesFocus=e),s!==void 0&&(l.slotAssignment=s),n!==void 0&&(l.clonable=n),r!==void 0&&(l.serializable=r);const c=i.element.attachShadow(l),a=i.withElement(c),u=W(_(...o),a);return de(()=>u(!0))})}const Xs=(t,e)=>g(s=>{const n=s.getStyle(t);return s.setStyle(t,e),r=>{r&&s.setStyle(t,n)}}),Qs=(t,e)=>g(s=>{const n=s.getStyle(t),r=e.on(o=>s.setStyle(t,o));return o=>{r(),o&&s.setStyle(t,n)}}),Ie=(t,e)=>y.is(e)?Qs(t,e):Xs(t,e),Zs=new Proxy({},{get:(t,e)=>e==="variable"?(s,n)=>Ie(s,n):s=>Ie(e,s)}),en=t=>g(e=>{const s=t(e);return s==null?()=>{}:m(s).render(e)}),tn=t=>fe(e=>t(e.element)),sn=t=>g(e=>{if(e.isHeadlessDOM()){const s=t(e);if(s)return m(s).render(e)}return()=>{}}),nn=t=>g(e=>{const s=new q,n=L(s,()=>m(t(s)).render(e));return r=>{s.dispose(),n(r)}}),pe=t=>g(e=>{let s=e;function n(){return s}function r(l){s=l}const o=[],i=t({use:({mark:l})=>{const{value:c,onUse:a}=n().getProvider(l);return a?.(),c},set:({mark:l,create:c},a)=>{const{value:u,dispose:d,onUse:f}=c(a,n());o.push(d),r(n().setProvider(l,u,f))}});return i==null?()=>{}:_(m(i),de(()=>o.forEach(l=>l()))).render(n())}),rn=(t,e,s)=>pe(({set:n})=>(n(t,e),s())),on=(t,e)=>pe(({use:s})=>e(s(t))),ln=(...t)=>e=>pe(({use:s})=>{const n=t.map(s);return e(...n)});exports.Aria=pt;exports.Async=Ds;exports.Attr=dt;exports.BindChecked=Hs;exports.BindDate=xs;exports.BindDateTime=Ls;exports.BindNumber=Ms;exports.BindText=ks;exports.BrowserContext=N;exports.CLASS_PLACEHOLDER_ATTR=F;exports.Computed=H;exports.Conjunction=Vs;exports.DOMNode=js;exports.DataAttr=ft;exports.DisposalScope=q;exports.El=Ce;exports.ElNS=te;exports.ElementPosition=ae;exports.Empty=O;exports.Ensure=Bs;exports.EnsureAll=Fs;exports.ForEach=Ws;exports.Fragment=_;exports.GlobalProbe=Ks;exports.HYDRATION_ID_ATTR=lt;exports.HeadlessAdapter=Zt;exports.HeadlessContext=I;exports.HeadlessElement=ut;exports.HeadlessPortal=_e;exports.HeadlessText=ht;exports.IFrame=Gs;exports.MapSignal=Us;exports.MathAttr=gt;exports.MathEl=_s;exports.MemoryStore=be;exports.NotEmpty=Js;exports.OnChecked=vt;exports.OnDispose=de;exports.OneOf=se;exports.OneOfField=xe;exports.OneOfKind=Is;exports.OneOfTuple=Rs;exports.OneOfType=$s;exports.OneOfValue=Ct;exports.Portal=zs;exports.Prop=X;exports.Provide=rn;exports.ProviderNotFoundError=Te;exports.RenderingError=ot;exports.Repeat=Me;exports.SVGAttr=mt;exports.SVGEl=As;exports.ShadowRoot=Ys;exports.Signal=y;exports.Task=Oe;exports.TextNode=ds;exports.Unless=qs;exports.Use=on;exports.UseMany=ln;exports.Value=w;exports.When=Le;exports.WithBrowserCtx=fe;exports.WithCtx=en;exports.WithElement=tn;exports.WithHeadlessCtx=sn;exports.WithProvider=pe;exports.WithScope=nn;exports._NODE_PLACEHOLDER_ATTR=ce;exports._getSelfOrParentElement=rt;exports._isElement=ve;exports._isFragment=Ae;exports._makeGetter=nt;exports._makeSetter=st;exports._removeDOMNode=G;exports._signalText=De;exports._staticText=Ee;exports.animateSignal=qt;exports.animateSignals=ze;exports.aria=ws;exports.attr=v;exports.bind=zt;exports.coalesce=Kt;exports.computed=Q;exports.computedOf=R;exports.computedOfAsync=Mt;exports.computedOfAsyncGenerator=kt;exports.computedRecord=Ke;exports.createRenderable=$e;exports.dataAttr=ys;exports.delaySignal=Ut;exports.effect=we;exports.effectOf=je;exports.emit=At;exports.emitChecked=Ps;exports.emitTarget=M;exports.emitValue=Tt;exports.emitValueAsDate=Et;exports.emitValueAsDateTime=Dt;exports.emitValueAsNullableDate=Cs;exports.emitValueAsNullableDateTime=Os;exports.emitValueAsNumber=_t;exports.endInterpolate=Ge;exports.getCurrentScope=ue;exports.getParentScope=It;exports.getScopeStack=Nt;exports.getWindow=us;exports.guessInterpolate=Je;exports.html=yt;exports.input=vs;exports.interpolateDate=Ue;exports.interpolateNumber=qe;exports.interpolateString=We;exports.joinSignals=Ht;exports.localStorageProp=Bt;exports.makeProbe=Ot;exports.makeProviderMark=Re;exports.math=Es;exports.mathAttr=Ss;exports.merge=Wt;exports.on=U;exports.popScope=Fe;exports.previousSignal=Gt;exports.prop=D;exports.pushScope=Be;exports.render=Xt;exports.renderWithContext=W;exports.renderableOfTNode=m;exports.restoreTempoPlaceholders=os;exports.runHeadless=Qt;exports.scoped=Rt;exports.sessionStorageProp=Ft;exports.signal=Z;exports.slidingWindowSignal=Jt;exports.storedProp=Se;exports.style=Zs;exports.svg=Ts;exports.svgAttr=bs;exports.syncProp=Yt;exports.untracked=le;exports.withScope=L;
|
package/index.d.ts
CHANGED
|
@@ -7,7 +7,7 @@ export type * from './types/mathml-attributes';
|
|
|
7
7
|
export type * from './types/mathml-tags';
|
|
8
8
|
export type * from './types/svg-attributes';
|
|
9
9
|
export type * from './types/svg-tags';
|
|
10
|
-
export { Signal, Prop, Computed, signal, prop, computed, effect, computedOf, computedOfAsync, effectOf, joinSignals, Value, DisposalScope, getCurrentScope, getScopeStack, getParentScope, withScope, scoped, untracked, pushScope, popScope, MemoryStore, storedProp, localStorageProp, sessionStorageProp, animateSignal, animateSignals, computedRecord, merge, delaySignal, previousSignal, slidingWindowSignal, bind, coalesce, syncProp, interpolateNumber, interpolateString, interpolateDate, endInterpolate, guessInterpolate, createRenderable, ElementPosition, } from '@tempots/core';
|
|
10
|
+
export { Signal, Prop, Computed, signal, prop, computed, effect, computedOf, computedOfAsync, computedOfAsyncGenerator, effectOf, joinSignals, Value, DisposalScope, getCurrentScope, getScopeStack, getParentScope, withScope, scoped, untracked, pushScope, popScope, MemoryStore, storedProp, localStorageProp, sessionStorageProp, animateSignal, animateSignals, computedRecord, merge, delaySignal, previousSignal, slidingWindowSignal, bind, coalesce, syncProp, interpolateNumber, interpolateString, interpolateDate, endInterpolate, guessInterpolate, createRenderable, ElementPosition, } from '@tempots/core';
|
|
11
11
|
export type { AnySignal, AtGetter, ListenerOptions, StoredPropOptions, SyncPropOptions, RenderContext, HierarchicalContext, } from '@tempots/core';
|
|
12
12
|
export type * from './types/domain';
|
|
13
13
|
export * from './dom/attr';
|