@tempots/dom 24.0.0-next.13 → 24.0.0-next.15
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/index.cjs +1 -1
- package/index.js +71 -52
- package/package.json +1 -1
- package/renderable/map-signal.d.ts +3 -3
- package/renderable/on-dispose.d.ts +3 -2
- package/renderable/style.d.ts +0 -1
- package/std/signal.d.ts +7 -2
- package/std/value.d.ts +15 -1
- package/types/css-styles.d.ts +1 -1
package/index.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var ut=Object.defineProperty;var Te=s=>{throw TypeError(s)};var ht=(s,e,t)=>e in s?ut(s,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):s[e]=t;var o=(s,e,t)=>ht(s,typeof e!="symbol"?e+"":e,t),Se=(s,e,t)=>e.has(s)||Te("Cannot "+t);var D=(s,e,t)=>(Se(s,e,"read from private field"),t?t.call(s):e.get(s)),be=(s,e,t)=>e.has(s)?Te("Cannot add the same private member more than once"):e instanceof WeakSet?e.add(s):e.set(s,t),Z=(s,e,t,r)=>(Se(s,e,"write to private field"),r?r.call(s,t):e.set(s,t),t);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const Pe=(s,e,t)=>s+(e-s)*t,Ae=97,_e=(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},ve=(s,e,t)=>new Date(s.getTime()+(e.getTime()-s.getTime())*t),we=(s,e)=>e,Ce=s=>typeof s=="number"?Pe:typeof s=="string"?_e:s instanceof Date?ve:we;var S;class L{constructor(e,t){o(this,"counter");o(this,"isFirst");o(this,"isEven");o(this,"isOdd");be(this,S);o(this,"dispose",()=>{D(this,S)!=null&&(D(this,S).dispose(),Z(this,S,void 0))});this.index=e,this.total=t,this.counter=e+1,this.isFirst=e===0,this.isEven=e%2===1,this.isOdd=e%2===0}get isLast(){return D(this,S)==null&&Z(this,S,this.total.map(e=>this.counter===e)),D(this,S)}}S=new WeakMap;const M=class M{constructor(e,t){o(this,"$__signal__",!0);o(this,"_value");o(this,"_derivatives",[]);o(this,"_onValueListeners",[]);o(this,"_onDisposeListeners",[]);o(this,"get",()=>this._value);o(this,"hasListeners",()=>this._onValueListeners.length>0);o(this,"on",(e,t={})=>{t.skipInitial||e(this.get(),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)=>{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=H(t,n);let l=0,a=new AbortController;return i.onDispose(this.on(async c=>{const u=++l;a.abort(),a=new AbortController;try{const h=await e(c,{abortSignal:a.signal});u===l&&i.set(h)}catch(h){if(u===l)if(r!=null)i.set(r(h));else throw h}})),i});o(this,"mapMaybe",(e,t)=>this.map(r=>e(r)??t));o(this,"feedProp",(e,t=!1)=>{const r=this.on(e.set);return e.onDispose(r),t?this.onDispose(e.dispose):this.onDispose(r),e});o(this,"deriveProp",(e=!0)=>this.feedProp(H(this.get()),e));o(this,"count",()=>{let e=0;return this.map(()=>++e)});o(this,"setDerivative",e=>{this._derivatives.push(e),e.onDispose(()=>{this._derivatives.splice(this._derivatives.indexOf(e),1)}),e.onDispose(this.on(e.setDirty)),this.onDispose(e.dispose)});this.equals=t,this._value=e}get value(){return this._value}get $(){return this._$!==void 0?this._$:this._$=new Proxy(this,{get:(e,t)=>this.at(t)})}};o(M,"ofPromise",(e,t,r,n=(i,l)=>i===l)=>{const i=new M(t,n);return e.then(l=>i._setAndNotify(l,!1)).catch(l=>{r!=null?i._setAndNotify(r(l),!1):console.error("Unhandled promise rejection in Signal.ofPromise:",l)}),i}),o(M,"is",e=>e!=null&&e.$__signal__===!0);let f=M;const dt=typeof queueMicrotask=="function"?queueMicrotask:s=>Promise.resolve().then(s);class 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;dt(()=>{this._scheduleCount!==t||this._disposed!==!1||this._isDirty&&(this._isDirty=!1,this._setAndNotify(this._fn(),!1))})});o(this,"get",()=>(this._isDirty&&(this._isDirty=!1,this._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 k=z;const X=(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?()=>{i(),s()}:s;if(t.skipInitial){let l=!1;const a=r;r=()=>{l?a():l=!0}}const n=X(r,e),i=()=>{n.dispose(),t.abortSignal!=null&&t.abortSignal.removeEventListener("abort",i)};return t.abortSignal!=null&&t.abortSignal.addEventListener("abort",i),i},H=(s,e=(t,r)=>t===r)=>new k(s,e),R=(s,e=(t,r)=>t===r)=>new f(s,e),K=()=>typeof window<"u"?window:void 0,p={map:(s,e)=>f.is(s)?s.map(e):e(s),toSignal:(s,e)=>f.is(s)?s:R(s,e),maybeToSignal:(s,e)=>{if(s!=null)return p.toSignal(s,e)},get:s=>f.is(s)?s.get():s,on:(s,e)=>f.is(s)?s.on(e):(e(s),()=>{}),dispose:s=>{f.is(s)&&s.dispose()}},ft=(...s)=>(e,t)=>{const r=s.filter(n=>f.is(n));return X(()=>e(...s.map(n=>p.get(n))),r,t)},pt=(...s)=>(e,t={})=>{const r=s.filter(n=>f.is(n));return Oe(()=>e(...s.map(p.get)),r,t)};class ee{constructor(){o(this,"_store",new Map);o(this,"getItem",e=>this._store.get(e)??null);o(this,"setItem",(e,t)=>{this._store.set(e,t)})}}const te=({key:s,defaultValue:e,store:t,serialize:r=JSON.stringify,deserialize:n=JSON.parse,equals:i=(a,c)=>a===c,onLoad:l=a=>a})=>{const a=t.getItem(s),c=new k(a!=null?l(n(a)):typeof e=="function"?e():e,i);return c.on(u=>{t.setItem(s,r(u))}),c},gt=s=>{var e;return te({...s,store:((e=K())==null?void 0:e.localStorage)??new ee})},mt=s=>{var e;return te({...s,store:((e=K())==null?void 0:e.sessionStorage)??new ee})};function Ee(s){return typeof requestAnimationFrame=="function"?requestAnimationFrame(s):setTimeout(s,0)}const xe=(s,e,t,r)=>{const n=(r==null?void 0:r.duration)??300,i=(r==null?void 0:r.easing)??(T=>T),l=(r==null?void 0:r.equals)??((T,F)=>T===F);let a=r==null?void 0:r.interpolate,c=s,u=e(),h=performance.now(),m=null,E=!0;const Q=new P(e,l),C=H(s,l);C.onDispose(()=>{m!==null&&cancelAnimationFrame(m)}),C.onDispose(Q.dispose),t.forEach(T=>{T.setDerivative(Q),T.onDispose(C.dispose)});const at=T=>{u=T,h=performance.now(),c=C.value,E&&(E=!1,m=Ee(me))},me=()=>{const F=(performance.now()-h)/p.get(n),ct=i(F);a==null&&(a=Ce(c));let ye=a(c,u,ct);F>=1?(E=!0,ye=u):m=Ee(me),C.set(ye)};return Q.on(at),C},yt=(s,e)=>{const{initialValue:t,...r}=e??{};return xe(t??s.get(),s.get,[s],r)},Tt=(s,e)=>{const{signals:t,literals:r}=Object.entries(s).reduce(({signals:i,literals:l},[a,c])=>(f.is(c)?i.push([a,c]):l[a]=c,{signals:i,literals:l}),{signals:[],literals:{}}),n=t.map(([,i])=>i);return X(()=>(t.forEach(([i,l])=>r[i]=l.value),e(r)),n)},Le=new Set(["checked","disabled","hidden","selected"]),De=new Set(["rowSpan","colSpan","tabIndex","valueAsNumber"]),Me=new Set(["valueAsDate"]),ke=new Set(["value","textContent","innerText","innerHTML","outerHTML","className","classList"]),He=(s,e)=>Le.has(s)?t=>{t==null?e[s]=null:e[s]=!!t}:De.has(s)?t=>{t==null?e[s]=null:e[s]=Number(t)}:Me.has(s)?t=>{t==null?e[s]=null:e[s]=t}:ke.has(s)?t=>{t==null?e[s]=null:e[s]=String(t)}:t=>{t==null?e.removeAttribute(s):e.setAttribute(s,t)},Ie=(s,e)=>Le.has(s)?()=>!!e[s]:De.has(s)?()=>Number(e[s]):Me.has(s)?()=>e[s]:ke.has(s)?()=>String(e[s]):()=>e.getAttribute(s),I=s=>{const e=s;e&&e.onblur&&(e.onblur=null),!(!s||s.ownerDocument===void 0)&&s.parentElement&&s.parentElement.removeChild(s)},Ne=s=>se(s)?s:s.parentElement,se=s=>s.nodeType===1;class re extends Error{constructor(e){super(`Provider not found: ${e.description}`)}}class _{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 _(this.document,e,void 0,this.providers));o(this,"makePortal",e=>{const t=this.document.querySelector(e);if(t==null)throw new Error(`Cannot find element by selector for portal: ${e}`);return this.withElement(t)});o(this,"withReference",e=>new _(this.document,this.element,e,this.providers));o(this,"withProviders",e=>new _(this.document,this.element,this.reference,{...this.providers,...e}));o(this,"getProvider",e=>{if(this.providers[e]===void 0)throw new re(e);return this.providers[e]});o(this,"clear",e=>{e&&(this.reference!==void 0?I(this.reference):I(this.element))});o(this,"addClasses",e=>{this.element.classList.add(...e)});o(this,"removeClasses",e=>{this.element.classList.remove(...e)});o(this,"getClasses",()=>Array.from(this.element.classList));o(this,"on",(e,t,r)=>(this.element.addEventListener(e,t,r),n=>{n&&this.element.removeEventListener(e,t,r)}));o(this,"isBrowserDOM",()=>!0);o(this,"isHeadlessDOM",()=>!1);o(this,"setStyle",(e,t)=>{this.element.style.setProperty(e,t)});o(this,"getStyle",e=>this.element.style.getPropertyValue(e));o(this,"makeAccessors",e=>({get:Ie(e,this.element),set:He(e,this.element)}));this.document=e,this.element=t,this.reference=r,this.providers=n}static of(e,t){return new _(e.ownerDocument,e,t,{})}}const Y=(s,e)=>{const t=s(e);return()=>t(!0)},St=(s,e,{doc:t,clear:r}={})=>{const n=typeof e=="string"?(t??document).querySelector(e):e;if(n===null)throw new $e(`Cannot find element by selector for render: ${e}`);r!==!1&&(t??n.ownerDocument)!=null&&n.nodeType===1&&(n.innerHTML="");const i=Ne(n),l=se(n)?void 0:n,a=_.of(i,l);return Y(s,a)},bt=(s,{startUrl:e="https://example.com",selector:t=":root"}={})=>{const r=p.toSignal(e).deriveProp(),n=new ie(t,void 0),i=new v(n,void 0,{currentURL:r},{});return{clear:Y(s(),i),root:n,currentURL:r}};class $e extends Error{constructor(e){super(e)}}const ne="data-tts-node",N="data-tts-class",U="data-tts-style",W="data-tts-html",G="data-tts-text",J="data-tts-attrs";class At{constructor({select:e,getAttribute:t,setAttribute:r,getClass:n,setClass:i,getStyles:l,setStyles:a,appendHTML:c,getInnerHTML:u,setInnerHTML:h,getInnerText:m,setInnerText:E}){o(this,"select");o(this,"getAttribute");o(this,"setAttribute");o(this,"getClass");o(this,"setClass");o(this,"getStyles");o(this,"setStyles");o(this,"appendHTML");o(this,"getInnerHTML");o(this,"setInnerHTML");o(this,"getInnerText");o(this,"setInnerText");o(this,"setFromRoot",(e,t)=>{e.getPortals().forEach(n=>{for(const i of this.select(n.selector)){if(i==null)throw new Error(`Cannot find element by selector for render: ${n.selector}`);if(n.hasChildren()&&this.appendHTML(i,n.contentToHTML(t)),n.hasInnerHTML()){if(t){const l=this.getInnerHTML(i);l!=null&&this.setAttribute(i,W,l)}this.setInnerHTML(i,n.getInnerHTML())}if(n.hasInnerText()){if(t){const l=this.getInnerText(i);l!=null&&this.setAttribute(i,G,l)}this.setInnerText(i,n.getInnerText())}if(n.hasClasses()){if(t){const l=this.getClass(i);l!=null&&this.setAttribute(i,N,l)}this.setClass(i,n.getClasses().join(" "))}if(n.hasStyles()){if(t){const l=this.getStyles(i);Object.keys(l).length>0&&this.setAttribute(i,U,JSON.stringify(l))}this.setStyles(i,n.getStyles())}if(n.hasAttributes()){const l=n.getAttributes();if(t){const a=[];l.forEach(([c])=>{const u=this.getAttribute(i,c);u!=null&&a.push([c,u])}),a.length>0&&this.setAttribute(i,J,JSON.stringify(Object.fromEntries(a)))}l.forEach(([a,c])=>{this.setAttribute(i,a,c)})}}})});this.select=e,this.getAttribute=t,this.setAttribute=r,this.getClass=n,this.setClass=i,this.getStyles=l,this.setStyles=a,this.appendHTML=c,this.getInnerHTML=u,this.setInnerHTML=h,this.getInnerText=m,this.setInnerText=E}}const Et=()=>{document.querySelectorAll(`[${ne}]`).forEach(I)},Pt=s=>{const e=s.getAttribute(N);s.removeAttribute(N),e!=null&&s.setAttribute("class",e)},_t=()=>{document.querySelectorAll(`[${N}]`).forEach(e=>Pt(e))},vt=s=>{const e=s.getAttribute(W);s.removeAttribute(W),e!=null&&(s.innerHTML=e)},wt=()=>{document.querySelectorAll(`[${W}]`).forEach(e=>vt(e))},Ct=s=>{const e=s.getAttribute(G);s.removeAttribute(G),e!=null&&(s.innerText=e)},Ot=()=>{document.querySelectorAll(`[${G}]`).forEach(e=>Ct(e))},Re=s=>JSON.parse(s.replace(/"/g,'"')),xt=s=>{const e=s.getAttribute(U);if(s.removeAttribute(U),e!=null){const t=Re(e);Object.entries(t).forEach(([r,n])=>{s.style.setProperty(r,n)})}},Lt=()=>{document.querySelectorAll(`[${U}]`).forEach(e=>xt(e))},Dt=s=>{const e=s.getAttribute(J);if(s.removeAttribute(J),e!=null){const t=Re(e);Object.entries(t).forEach(([r,n])=>{n==null?s.removeAttribute(r):s.setAttribute(r,n)})}},Mt=()=>{document.querySelectorAll(`[${J}]`).forEach(e=>Dt(e))},kt=()=>{Et(),_t(),Ot(),wt(),Lt(),Mt()},y=Symbol("class"),A=Symbol("style"),O=Symbol("handler"),Ve=()=>Math.random().toString(36).substring(2,15),Ht=s=>s.replace(/<[^>]*>?/g,"");class je{constructor(e){o(this,"id",Ve());o(this,"properties",{});o(this,"children",[]);o(this,"isElement",()=>!0);o(this,"isText",()=>!1);o(this,"getText",()=>this.properties.innerText!=null?this.properties.innerText:this.properties.innerHTML!=null?Ht(this.properties.innerHTML):this.children.map(e=>e.getText()).join(""));o(this,"removeChild",e=>{const t=this.children.indexOf(e);t!==-1&&this.children.splice(t,1)});o(this,"remove",()=>{if(this.parent!=null)this.parent.removeChild(this);else throw new Error("Parent is undefined")});o(this,"getPortals",()=>{const e=this.elements().flatMap(t=>t.isPortal()?[t,...t.getPortals()]:t.getPortals());return this.isPortal()&&e.unshift(this),e});o(this,"elements",()=>this.children.filter(e=>e.isElement()));o(this,"hasInnerHTML",()=>this.properties.innerHTML!=null);o(this,"getInnerHTML",()=>this.properties.innerHTML??"");o(this,"getInnerText",()=>this.properties.innerText??"");o(this,"hasInnerText",()=>this.properties.innerText!=null);o(this,"hasChildren",()=>this.children.length>0);o(this,"hasClasses",()=>this.properties[y]!=null);o(this,"hasStyles",()=>this.properties[A]!=null);o(this,"hasAttributes",()=>Object.keys(this.properties).length>0);o(this,"hasHandlers",()=>this.properties[O]!=null);o(this,"hasRenderableProperties",()=>this.hasClasses()||this.hasAttributes()||this.hasStyles());o(this,"getById",e=>{if(this.properties.id===e)return this;for(const t of this.elements()){const r=t.getById(e);if(r!=null)return r}});o(this,"trigger",(e,t)=>{((this.properties[O]??{})[e]??[]).forEach(n=>n(t))});o(this,"click",()=>{this.trigger("click",{})});o(this,"on",(e,t,r)=>{var a;const n=(a=this.properties)[O]??(a[O]={}),i=r!=null&&r.once?c=>{l(),t(c)}:c=>t(c);n[e]=[...n[e]??[],i];const l=()=>{const c=n[e]??[],u=c.indexOf(i);u!==-1&&(c.splice(u,1),c.length===0?(delete n[e],Object.keys(n).length===0&&delete this.properties[O]):n[e]=c,(r==null?void 0:r.signal)!=null&&r.signal.removeEventListener("abort",l))};return(r==null?void 0:r.signal)!=null&&r.signal.addEventListener("abort",l),l});o(this,"addClasses",e=>{var r;if(e.length===0)return;const t=(r=this.properties)[y]??(r[y]=[]);e.forEach(n=>{t.includes(n)||t.push(n)})});o(this,"removeClasses",e=>{var r;if(e.length===0)return;const t=(r=this.properties)[y]??(r[y]=[]);e.forEach(n=>{const i=t.indexOf(n);i!==-1&&t.splice(i,1)}),t.length===0&&delete this.properties[y]});o(this,"getClasses",()=>this.properties[y]??[]);o(this,"getAttributes",()=>Object.entries(this.properties).filter(([e])=>!["innerText","innerHTML"].includes(e)));o(this,"getVisibleAttributes",()=>Reflect.ownKeys(this.properties).flatMap(e=>e===y?[["class",this.getClasses()]]:e===A?[["style",this.getStyles()]]:typeof e=="string"?[[e,String(this.properties[e])]]:[]));o(this,"setStyle",(e,t)=>{var n;const r=(n=this.properties)[A]??(n[A]={});r[e]=t,t===""&&(delete r[e],Object.keys(r).length===0&&delete this.properties[A])});o(this,"getStyle",e=>{var t;return((t=this.properties[A])==null?void 0:t[e])??""});o(this,"getStyles",()=>this.properties[A]??{});o(this,"makeAccessors",e=>{const t=this.properties;return{get:()=>t[e],set:r=>t[e]=r}});this.parent=e}}const It=s=>s.replace(/"/g,"""),Nt=s=>s.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">");class qe extends je{constructor(t,r,n){super(n);o(this,"isPortal",()=>!1);o(this,"toHTML",(t=!1)=>{const r=this.children.map(c=>c.toHTML()).join(""),n=this.namespace?` xmlns="${this.namespace}"`:"";let i=null;const l=this.getVisibleAttributes().map(([c,u])=>c==="class"?` class="${u.join(" ")}"`:c==="style"?typeof u=="string"?` style="${u}"`:` style="${Object.entries(u).map(([h,m])=>`${h}: ${m};`).join(" ")}"`:$t.has(c)?` ${c}`:c==="innerHTML"?(i=u,""):c==="innerText"?(i=Nt(u),""):` ${c}="${It(u)}"`).join(""),a=t?` ${ne}`:"";return Rt.has(this.tagName)&&r===""?`<${this.tagName}${n}${l}${a} />`:`<${this.tagName}${n}${l}${a}>${i??r}</${this.tagName}>`});this.tagName=t,this.namespace=r}}class ie extends je{constructor(t,r){super(r);o(this,"isPortal",()=>!0);o(this,"toHTML",()=>"");o(this,"contentToHTML",(t=!1)=>this.children.map(r=>r.toHTML(t)).join(""));this.selector=t}}class Be{constructor(e){o(this,"id",Ve());o(this,"isElement",()=>!1);o(this,"isText",()=>!0);o(this,"getText",()=>this.text);o(this,"toHTML",()=>this.text);this.text=e}}class v{constructor(e,t,r,n){o(this,"appendOrInsert",e=>{if(this.reference!=null){const t=this.element.children.indexOf(this.reference);this.element.children.splice(t,0,e)}else this.element.children.push(e)});o(this,"makeChildElement",(e,t)=>{const r=new qe(e,t,this.element);return this.appendOrInsert(r),new v(r,void 0,this.container,this.providers)});o(this,"makeChildText",e=>{const t=new Be(e);return this.appendOrInsert(t),new v(this.element,t,this.container,this.providers)});o(this,"setText",e=>{this.reference&&this.reference.isText()&&(this.reference.text=e)});o(this,"getText",()=>{var e;return((e=this.reference)==null?void 0:e.getText())??this.element.getText()});o(this,"makeRef",()=>this.makeChildText(""));o(this,"makePortal",e=>{const t=new ie(e,this.element);return this.appendOrInsert(t),new v(t,void 0,this.container,this.providers)});o(this,"withProviders",e=>new v(this.element,this.reference,this.container,{...this.providers,...e}));o(this,"getProvider",e=>{if(this.providers[e]===void 0)throw new re(e);return this.providers[e]});o(this,"clear",e=>{e&&(this.reference!==void 0?this.element.removeChild(this.reference):this.element.remove())});o(this,"on",(e,t)=>this.element.on(e,t));o(this,"addClasses",e=>this.element.addClasses(e));o(this,"removeClasses",e=>this.element.removeClasses(e));o(this,"getClasses",()=>this.element.getClasses());o(this,"isBrowserDOM",()=>!1);o(this,"isHeadlessDOM",()=>!0);o(this,"setStyle",(e,t)=>this.element.setStyle(e,t));o(this,"getStyle",e=>this.element.getStyle(e));o(this,"makeAccessors",e=>this.element.makeAccessors(e));this.element=e,this.reference=t,this.container=r,this.providers=n}}const $t=new Set(["checked","disabled","multiple","readonly","required","selected"]),Rt=new Set(["img","br","hr","input","link","meta"]),oe=s=>e=>{const t=e.makeChildText(s);return r=>t.clear(r)},le=s=>e=>{const t=e.makeChildText(s.value),r=s.on(n=>t.setText(n));return n=>{r(),t.clear(n)}},Vt=s=>f.is(s)?le(s):oe(s),g=(...s)=>e=>{const t=s.map(r=>d(r)(e));return r=>{t.forEach(n=>n(r))}},b=()=>()=>{},jt=s=>e=>(e.addClasses(s),t=>{t&&e.removeClasses(s)}),qt=s=>e=>{let t=[];const r=s.on(n=>{e.removeClasses(t),t=(n??"").split(" ").filter(i=>i.length>0),e.addClasses(t)});return n=>{r(),n&&e.removeClasses(t),t.length=0}},V=(s,e)=>t=>{const{get:r,set:n}=t.makeAccessors(s),i=r();return n(e),l=>{l&&n(i)}},j=(s,e)=>t=>{const{get:r,set:n}=t.makeAccessors(s),i=r(),l=e.on(n);return a=>{l(),a&&n(i)}},w=new Proxy({},{get:(s,e)=>e==="class"?t=>f.is(t)?qt(t):jt((t??"").split(" ").filter(r=>r.length>0)):t=>f.is(t)?j(e,t):V(e,t)}),Bt=new Proxy({},{get:(s,e)=>t=>f.is(t)?j(`data-${e}`,t):V(`data-${e}`,t)}),Ft=new Proxy({},{get:(s,e)=>t=>f.is(t)?j(`aria-${e}`,t):V(`aria-${e}`,t)}),Ut=new Proxy({},{get:(s,e)=>t=>f.is(t)?j(e,t):V(e,t)}),Wt=new Proxy({},{get:(s,e)=>t=>f.is(t)?j(e,t):V(e,t)}),d=s=>{if(s==null)return b;if(Array.isArray(s))return g(...s.map(d));if(typeof s=="string")return oe(s);if(f.is(s))return le(s);if(typeof s=="function")return s;throw new Error(`Unknown type: '${typeof s}' for child: ${s}`)},ae=(s,...e)=>t=>{const r=t.makeChildElement(s,void 0),n=e.map(i=>d(i)(r));return i=>{n.forEach(l=>l(!1)),r.clear(i)}},ce=(s,e,...t)=>r=>{const n=r.makeChildElement(s,e),i=t.map(l=>d(l)(n));return l=>{i.forEach(a=>a(!1)),n.clear(l)}},Gt=new Proxy({},{get:(s,e)=>(...t)=>ae(e,t.flatMap(d))}),Jt=new Proxy({},{get:(s,e)=>(...t)=>ae("input",w.type(e),...t)}),zt="http://www.w3.org/2000/svg",Xt=new Proxy({},{get:(s,e)=>(...t)=>ce(e,zt,t.flatMap(d))}),Yt="http://www.w3.org/1998/Math/MathML",Qt=new Proxy({},{get:(s,e)=>(...t)=>ce(e,Yt,t.flatMap(d))}),ue=(s,e)=>{if(typeof e=="function")return ue(s,{then:e});const t=e.pending!=null?d(e.pending):b,r=e.then,n=e.error!=null?i=>d(e.error(i)):()=>b;return i=>{let l=!0;const a=s(),c=i.makeRef();let u=d(t)(c);return a.then(h=>{l&&(u(!0),u=d(r(h))(c))},h=>{l&&(u(!0),u=d(n(h))(c))}),h=>{l=!1,u(h),c.clear(h)}}},Zt=(s,e)=>ue(()=>s,e),Fe=(s,e,t)=>r=>r.on(s,e,t),Ue=s=>Fe("click",e=>{e.preventDefault();const t=e.target;setTimeout(()=>{const r=t.ownerDocument!=null?t==null?void 0:t.checked:void 0;r!=null&&s(!r)},0)}),q=new Proxy({},{get:(s,e)=>t=>Fe(e,t)}),We=s=>e=>{const t=e.target;s(t.value)},Ge=s=>e=>{const t=e.target;s(t.valueAsNumber)},Je=s=>e=>{const t=e.target;if(t.value==="")return;const r=t.value.split("-"),n=new Date(Number(r[0]),Number(r[1])-1,Number(r[2].substring(0,2)));s(n)},ze=s=>e=>{const t=e.target;if(t.value==="")return;const r=t.value.split("T"),n=r[0].split("-"),i=new Date(Number(n[0]),Number(n[1])-1,Number(n[2])),l=r[1].split(":");i.setHours(Number(l[0])),i.setMinutes(Number(l[1])),i.setSeconds(Number(l[2])),s(i)},Kt=s=>e=>{const t=e.target;s(t.checked)},es=s=>e=>{e.preventDefault(),s()},ts=s=>e=>{e.stopPropagation(),s()},ss=s=>e=>{e.stopImmediatePropagation(),s()},rs=(s,e="input")=>g(w.valueAsDate(s),q[e](Je(s.set))),ns=(s,e="input")=>g(w.valueAsDate(s),q[e](ze(s.set))),is=(s,e="input")=>g(w.valueAsNumber(s),q[e](Ge(s.set))),os=(s,e="input")=>g(w.value(s),q[e](We(s.set))),ls=s=>g(w.checked(s),Ue(s.set)),B=(s,e)=>{if(f.is(s))return r=>{const n=r.makeRef();let i,l;const a=s.map(h=>Object.keys(h)[0]);let c;const u=a.on(h=>{if(h!==c){l==null||l.dispose(),i==null||i(!0),l=s.map(E=>E[h]);const m=e[h](l);i=d(m)(n),c=h}});return h=>{u(),n.clear(h),i==null||i(h)}};const t=Object.keys(s)[0];return d(e[t](R(s[t])))},he=(s,e,t)=>B(p.map(s,r=>({[r[e]]:r})),t),as=(s,e)=>he(s,"kind",e),cs=(s,e)=>{const t=p.map(s,([r,n])=>({[r]:n}));return B(t,e)},us=(s,e)=>he(s,"type",e),Xe=(s,e)=>B(p.map(s,t=>({[t]:!0})),e),hs=(s,e={})=>t=>{const r=(e==null?void 0:e.firstSeparator)??s,n=(e==null?void 0:e.lastSeparator)??s;return Xe(t.map(i=>i.isFirst?"first":i.isLast?"last":"other"),{first:()=>r,last:()=>n,other:()=>s})},Ye=(s,e)=>t=>{const r=Object.values(s).reduce((n,i)=>{const l=t.getProvider(i);return n[i]=l,n},{});return d(e(r))(t)},ds=(s,e)=>t=>{const r=[],n=Object.entries(s).reduce((i,[l,a])=>(r.push(a(c=>(Reflect.set(i,l,c),null))(t)),i),{});return r.push(e(n)(t)),i=>{r.forEach(l=>l(i))}},Qe=(s,e)=>Ye([s],t=>d(e(t[s]))),fs=(s,e)=>Ye(s,t=>d(e(t))),ps=s=>e=>s(e)??(()=>{}),gs=s=>e=>(e.appendOrInsert(s),t=>{t&&I(s)}),Ze=(s,e,t)=>{if(f.is(s)){const r=s;return n=>{const i=n.makeRef();let l=null,a=!1;const c=H(null),u=r.on(h=>{h==null?(l==null||l(!0),l=d((t==null?void 0:t())??b)(i),a=!1):(c.value=h,a||(l==null||l(!0),l=d(e(c))(i),a=!0))});return h=>{u(),l==null||l(h),i.clear(h)}}}else{const r=s;if(r==null){const n=t==null?void 0:t();return n!=null?d(n):b}return d(e(R(r)))}},$=s=>e=>t=>s(t,e),de=(s,e,t)=>fe(s,()=>e,()=>t),fe=(s,e,t)=>Ze(p.map(s,r=>r?!0:null),e,t??void 0),ms=(s,e,t)=>Ke(s,()=>e,()=>t),Ke=(s,e,t)=>fe(p.map(s,r=>!r),e,t),pe=(s,e,t)=>t!=null?pe(s,r=>{const n=new L(r.index,r.total.map(i=>i-1));return g($(n.dispose),d(e(r)),de(r.isLast,b,t(n)))}):f.is(s)?r=>{const n=r.makeRef(),i=Array.from({length:s.value},(c,u)=>u).map(c=>new L(c,s)),l=i.map(c=>d(e(c))(n)),a=s.on(c=>{for(;c<l.length;)i.pop().dispose(),l.pop()(!0);for(let u=0;u<c;u++)if(i[u]==null){i[u]=new L(u,s);const h=d(e(i[u]));l[u]=h(n)}});return c=>{a(),n.clear(c)}}:g(...Array.from({length:s},(r,n)=>n).map(r=>d(e(new L(r,R(s)))))),et=(s,e,t)=>{if(t!=null)return et(s,(r,n)=>{const i=new L(n.index,n.total.map(l=>l-1));return g([$(i.dispose),d(e(r,n)),de(n.isLast,b,t(i))])});{const r=p.map(s,i=>i.length),n=p.toSignal(s);return pe(r,i=>{const l=n.map(a=>a[i.index]);return g($(l.dispose),d(e(l,i)))})}},tt=s=>e=>e.isBrowserDOM()?s(e)??(()=>{}):()=>{},ys=s=>e=>e.isHeadlessDOM()?s(e)??(()=>{}):()=>{},Ts=s=>tt(e=>s(e.element)??(()=>{})),Ss=(s,e)=>{if(f.is(s)){const t=s;return r=>{r=r.makeRef();const n=t.map(a=>d(e(a)));let i=()=>{};const l=n.on(a=>{i(!0),i=a(r)});return a=>{l(),i(a)}}}return d(e(s))},bs=(s,e,t=()=>b)=>B(p.map(s,r=>r.length>0?{notEmpty:r}:{whenEmpty:null}),{notEmpty:r=>e(r),whenEmpty:()=>t()}),As=(s,e)=>t=>{const r=t.makePortal(s);return Y(d(e),r)},st=s=>Symbol(s),rt=(s,e)=>t=>d(e)(t.withProviders(s)),Es=(...s)=>s.length>0?s.reduceRight((e,t)=>r=>e(t(r))):d,nt=(s,e,t)=>rt({[s]:e},d(t)),Ps=(s,e)=>rt(s,d(e)),ge=st("Probe"),x=new Map,it=({identifier:s,callback:e=()=>{},child:t,timeout:r=10})=>{if(x.has(s))throw new Error(`Probe already exists: ${s.description}`);const n=setTimeout(()=>e("timeout"),r);x.set(s,{counter:0,timeoutId:n});const i=l=>{clearTimeout(n);const a=x.get(l);if(a==null)throw new Error(`Probe not found: ${l.description}`);--a.counter===0?(e("resolved"),x.delete(l)):x.set(l,a)};return g($(()=>clearTimeout(n)),nt(ge,i,t))},ot=(s,e)=>Qe(ge,t=>{const r=x.get(s);return r==null?e(()=>{}):(clearTimeout(r.timeoutId),r.counter++,e(()=>t(s)))}),lt=Symbol("globalProbe"),_s=({callback:s,timeout:e},t)=>it({identifier:lt,callback:s,child:t,timeout:e}),vs=s=>ot(lt,s),ws=(s,e)=>t=>{const r=t.getStyle(s);return t.setStyle(s,e),n=>{n&&t.setStyle(s,r)}},Cs=(s,e)=>t=>{const r=t.getStyle(s);return e.on(n=>t.setStyle(s,n)),n=>{n&&t.setStyle(s,r)}},Os=new Proxy({},{get:(s,e)=>t=>f.is(t)?Cs(e,t):ws(e,t)});exports.Async=Zt;exports.BindChecked=ls;exports.BindDate=rs;exports.BindDateTime=ns;exports.BindNumber=is;exports.BindText=os;exports.BrowserContext=_;exports.CLASS_PLACEHOLDER_ATTR=N;exports.Computed=P;exports.Conjunction=hs;exports.DOMNode=gs;exports.El=ae;exports.ElNS=ce;exports.ElementPosition=L;exports.Empty=b;exports.Ensure=Ze;exports.ForEach=et;exports.Fragment=g;exports.HeadlessAdapter=At;exports.HeadlessContext=v;exports.HeadlessElement=qe;exports.HeadlessPortal=ie;exports.HeadlessText=Be;exports.LazyUnless=Ke;exports.LazyWhen=fe;exports.MapSignal=Ss;exports.MemoryStore=ee;exports.NotEmpty=bs;exports.OnBrowserCtx=tt;exports.OnChecked=Ue;exports.OnCtx=ps;exports.OnDispose=$;exports.OnElement=Ts;exports.OnHeadlessCtx=ys;exports.OneOf=B;exports.OneOfField=he;exports.OneOfKind=as;exports.OneOfTuple=cs;exports.OneOfType=us;exports.OneOfValue=Xe;exports.Portal=As;exports.Prop=k;exports.Provide=Es;exports.ProvideGlobalProbe=_s;exports.ProvideProbe=it;exports.ProviderNotFoundError=re;exports.RenderingError=$e;exports.Repeat=pe;exports.Signal=f;exports.Task=ue;exports.TextNode=Vt;exports.Unless=ms;exports.Use=ds;exports.UseGlobalProbe=vs;exports.UseProbe=ot;exports.UseProvider=Qe;exports.UseProviders=fs;exports.Value=p;exports.When=de;exports.WithProvider=nt;exports.WithProviders=Ps;exports._NODE_PLACEHOLDER_ATTR=ne;exports._getSelfOrParentElement=Ne;exports._isElement=se;exports._makeGetter=Ie;exports._makeSetter=He;exports._removeDOMNode=I;exports._signalText=le;exports._staticText=oe;exports.animateSignal=yt;exports.animateSignals=xe;exports.aria=Ft;exports.attr=w;exports.dataAttr=Bt;exports.emitChecked=Kt;exports.emitPreventDefault=es;exports.emitStopImmediatePropagation=ss;exports.emitStopPropagation=ts;exports.emitValue=We;exports.emitValueAsDate=Je;exports.emitValueAsDateTime=ze;exports.emitValueAsNumber=Ge;exports.endInterpolate=we;exports.getWindow=K;exports.guessInterpolate=Ce;exports.html=Gt;exports.input=Jt;exports.interpolateDate=ve;exports.interpolateNumber=Pe;exports.interpolateString=_e;exports.localStorageProp=gt;exports.makeComputed=X;exports.makeComputedOf=ft;exports.makeComputedRecord=Tt;exports.makeEffect=Oe;exports.makeEffectOf=pt;exports.makeProp=H;exports.makeProviderMark=st;exports.makeSignal=R;exports.math=Qt;exports.mathAttr=Wt;exports.on=q;exports.probeMarker=ge;exports.render=St;exports.renderWithContext=Y;exports.renderableOfTNode=d;exports.restoreTempoPlaceholders=kt;exports.runHeadless=bt;exports.sessionStorageProp=mt;exports.storedProp=te;exports.style=Os;exports.svg=Xt;exports.svgAttr=Ut;
|
|
1
|
+
"use strict";var ut=Object.defineProperty;var Te=s=>{throw TypeError(s)};var ht=(s,e,t)=>e in s?ut(s,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):s[e]=t;var o=(s,e,t)=>ht(s,typeof e!="symbol"?e+"":e,t),Se=(s,e,t)=>e.has(s)||Te("Cannot "+t);var M=(s,e,t)=>(Se(s,e,"read from private field"),t?t.call(s):e.get(s)),be=(s,e,t)=>e.has(s)?Te("Cannot add the same private member more than once"):e instanceof WeakSet?e.add(s):e.set(s,t),Z=(s,e,t,r)=>(Se(s,e,"write to private field"),r?r.call(s,t):e.set(s,t),t);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const Ee=(s,e,t)=>s+(e-s)*t,Pe=97,_e=(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=Pe);let a=e.charCodeAt(i);isNaN(a)&&(a=Pe),n+=String.fromCharCode(l+(a-l)*t)}return n},ve=(s,e,t)=>new Date(s.getTime()+(e.getTime()-s.getTime())*t),we=(s,e)=>e,Ce=s=>typeof s=="number"?Ee:typeof s=="string"?_e:s instanceof Date?ve:we;var S;class L{constructor(e,t){o(this,"counter");o(this,"isFirst");o(this,"isEven");o(this,"isOdd");be(this,S);o(this,"dispose",()=>{M(this,S)!=null&&(M(this,S).dispose(),Z(this,S,void 0))});this.index=e,this.total=t,this.counter=e+1,this.isFirst=e===0,this.isEven=e%2===1,this.isOdd=e%2===0}get isLast(){return M(this,S)==null&&Z(this,S,this.total.map(e=>this.counter===e)),M(this,S)}}S=new WeakMap;const k=class k{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)=>{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 E(()=>{try{return e(this.get())}catch(n){throw console.error("Error in Signal.map:",n),n}},t);return this.setDerivative(r),r});o(this,"flatMap",(e,t=(r,n)=>r===n)=>{const r=new E(()=>{try{return e(this.get()).get()}catch(n){throw console.error("Error in Signal.flatMap:",n),n}},t);return this.setDerivative(r),r});o(this,"tap",e=>this.map(t=>(e(t),t)));o(this,"at",e=>this.map(t=>t[e]));o(this,"_$");o(this,"filter",(e,t)=>{let r=t??this.get();const n=new E(()=>{try{const i=this.get();return r=e(i)?i:r}catch(i){throw console.error("Error in Signal.filter:",i),i}},this.equals);return this.setDerivative(n),n});o(this,"filterMap",(e,t,r=(n,i)=>n===i)=>{let n=t;const i=new E(()=>{try{const l=this.get(),a=e(l);return n=a??n}catch(l){throw console.error("Error in Signal.filterMap:",l),l}},r);return this.setDerivative(i),i});o(this,"mapAsync",(e,t,r,n=(i,l)=>i===l)=>{const i=D(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(D(this.get(),t),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(k,"ofPromise",(e,t,r,n=(i,l)=>i===l)=>{const i=new k(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(k,"is",e=>e!=null&&e.$__signal__===!0);let f=k;const dt=typeof queueMicrotask=="function"?queueMicrotask:s=>Promise.resolve().then(s);class E extends f{constructor(t,r){super(void 0,r);o(this,"$__computed__",!0);o(this,"_isDirty",!1);o(this,"setDirty",()=>{this._isDirty||this._disposed||(this._isDirty=!0,this._derivatives.forEach(t=>t.setDirty()),this._scheduleNotify())});o(this,"_scheduleCount",0);o(this,"_scheduleNotify",()=>{const t=++this._scheduleCount;dt(()=>{this._scheduleCount!==t||this._disposed!==!1||this._isDirty&&(this._isDirty=!1,this._setAndNotify(this._fn(),!1))})});o(this,"get",()=>(this._isDirty&&(this._isDirty=!1,this._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 H=z;const X=(s,e,t=(r,n)=>r===n)=>{const r=new E(s,t);return e.forEach(n=>n.setDerivative(r)),r},Oe=(s,e,t={})=>{let r=t.once?()=>{i(),s()}:s;if(t.skipInitial){let l=!1;const a=r;r=()=>{l?a():l=!0}}const n=X(r,e),i=()=>{n.dispose(),t.abortSignal!=null&&t.abortSignal.removeEventListener("abort",i)};return t.abortSignal!=null&&t.abortSignal.addEventListener("abort",i),i},D=(s,e=(t,r)=>t===r)=>new H(s,e),R=(s,e=(t,r)=>t===r)=>new f(s,e),K=()=>typeof window<"u"?window:void 0,p={map:(s,e)=>f.is(s)?s.map(e):e(s),toSignal:(s,e)=>f.is(s)?s:R(s,e),maybeToSignal:(s,e)=>{if(s!=null)return p.toSignal(s,e)},get:s=>f.is(s)?s.get():s,on:(s,e)=>f.is(s)?s.on(e):(e(s),()=>{}),dispose:s=>{f.is(s)&&s.dispose()},deriveProp:(s,{autoDisposeProp:e=!0,equals:t}={})=>f.is(s)?s.deriveProp({autoDisposeProp:e,equals:t}):D(s,t)},ft=(...s)=>(e,t)=>{const r=s.filter(n=>f.is(n));return X(()=>e(...s.map(n=>p.get(n))),r,t)},pt=(...s)=>(e,t={})=>{const r=s.filter(n=>f.is(n));return Oe(()=>e(...s.map(p.get)),r,t)};class ee{constructor(){o(this,"_store",new Map);o(this,"getItem",e=>this._store.get(e)??null);o(this,"setItem",(e,t)=>{this._store.set(e,t)})}}const te=({key:s,defaultValue:e,store:t,serialize:r=JSON.stringify,deserialize:n=JSON.parse,equals:i=(a,c)=>a===c,onLoad:l=a=>a})=>{const a=t.getItem(s),c=new H(a!=null?l(n(a)):typeof e=="function"?e():e,i);return c.on(u=>{t.setItem(s,r(u))}),c},gt=s=>{var e;return te({...s,store:((e=K())==null?void 0:e.localStorage)??new ee})},mt=s=>{var e;return te({...s,store:((e=K())==null?void 0:e.sessionStorage)??new ee})};function Ae(s){return typeof requestAnimationFrame=="function"?requestAnimationFrame(s):setTimeout(s,0)}const xe=(s,e,t,r)=>{const n=(r==null?void 0:r.duration)??300,i=(r==null?void 0:r.easing)??(T=>T),l=(r==null?void 0:r.equals)??((T,F)=>T===F);let a=r==null?void 0:r.interpolate,c=s,u=e(),h=performance.now(),m=null,A=!0;const Q=new E(e,l),C=D(s,l);C.onDispose(()=>{m!==null&&cancelAnimationFrame(m)}),C.onDispose(Q.dispose),t.forEach(T=>{T.setDerivative(Q),T.onDispose(C.dispose)});const at=T=>{u=T,h=performance.now(),c=C.value,A&&(A=!1,m=Ae(me))},me=()=>{const F=(performance.now()-h)/p.get(n),ct=i(F);a==null&&(a=Ce(c));let ye=a(c,u,ct);F>=1?(A=!0,ye=u):m=Ae(me),C.set(ye)};return Q.on(at),C},yt=(s,e)=>{const{initialValue:t,...r}=e??{};return xe(t??s.get(),s.get,[s],r)},Tt=(s,e)=>{const{signals:t,literals:r}=Object.entries(s).reduce(({signals:i,literals:l},[a,c])=>(f.is(c)?i.push([a,c]):l[a]=c,{signals:i,literals:l}),{signals:[],literals:{}}),n=t.map(([,i])=>i);return X(()=>(t.forEach(([i,l])=>r[i]=l.value),e(r)),n)},Le=new Set(["checked","disabled","hidden","selected"]),De=new Set(["rowSpan","colSpan","tabIndex","valueAsNumber"]),Me=new Set(["valueAsDate"]),ke=new Set(["value","textContent","innerText","innerHTML","outerHTML","className","classList"]),He=(s,e)=>Le.has(s)?t=>{t==null?e[s]=null:e[s]=!!t}:De.has(s)?t=>{t==null?e[s]=null:e[s]=Number(t)}:Me.has(s)?t=>{t==null?e[s]=null:e[s]=t}:ke.has(s)?t=>{t==null?e[s]=null:e[s]=String(t)}:t=>{t==null?e.removeAttribute(s):e.setAttribute(s,t)},Ie=(s,e)=>Le.has(s)?()=>!!e[s]:De.has(s)?()=>Number(e[s]):Me.has(s)?()=>e[s]:ke.has(s)?()=>String(e[s]):()=>e.getAttribute(s),I=s=>{const e=s;e&&e.onblur&&(e.onblur=null),!(!s||s.ownerDocument===void 0)&&s.parentElement&&s.parentElement.removeChild(s)},Ne=s=>se(s)?s:s.parentElement,se=s=>s.nodeType===1;class re extends Error{constructor(e){super(`Provider not found: ${e.description}`)}}class _{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 _(this.document,e,void 0,this.providers));o(this,"makePortal",e=>{const t=this.document.querySelector(e);if(t==null)throw new Error(`Cannot find element by selector for portal: ${e}`);return this.withElement(t)});o(this,"withReference",e=>new _(this.document,this.element,e,this.providers));o(this,"withProviders",e=>new _(this.document,this.element,this.reference,{...this.providers,...e}));o(this,"getProvider",e=>{if(this.providers[e]===void 0)throw new re(e);return this.providers[e]});o(this,"clear",e=>{e&&(this.reference!==void 0?I(this.reference):I(this.element))});o(this,"addClasses",e=>{this.element.classList.add(...e)});o(this,"removeClasses",e=>{this.element.classList.remove(...e)});o(this,"getClasses",()=>Array.from(this.element.classList));o(this,"on",(e,t,r)=>(this.element.addEventListener(e,t,r),n=>{n&&this.element.removeEventListener(e,t,r)}));o(this,"isBrowserDOM",()=>!0);o(this,"isHeadlessDOM",()=>!1);o(this,"setStyle",(e,t)=>{this.element.style.setProperty(e,t)});o(this,"getStyle",e=>this.element.style.getPropertyValue(e));o(this,"makeAccessors",e=>({get:Ie(e,this.element),set:He(e,this.element)}));this.document=e,this.element=t,this.reference=r,this.providers=n}static of(e,t){return new _(e.ownerDocument,e,t,{})}}const Y=(s,e)=>{const t=s(e);return()=>t(!0)},St=(s,e,{doc:t,clear:r}={})=>{const n=typeof e=="string"?(t??document).querySelector(e):e;if(n===null)throw new $e(`Cannot find element by selector for render: ${e}`);r!==!1&&(t??n.ownerDocument)!=null&&n.nodeType===1&&(n.innerHTML="");const i=Ne(n),l=se(n)?void 0:n,a=_.of(i,l);return Y(s,a)},bt=(s,{startUrl:e="https://example.com",selector:t=":root"}={})=>{const r=p.toSignal(e).deriveProp(),n=new ie(t,void 0),i=new v(n,void 0,{currentURL:r},{});return{clear:Y(s(),i),root:n,currentURL:r}};class $e extends Error{constructor(e){super(e)}}const ne="data-tts-node",N="data-tts-class",U="data-tts-style",W="data-tts-html",G="data-tts-text",J="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:A}){o(this,"select");o(this,"getAttribute");o(this,"setAttribute");o(this,"getClass");o(this,"setClass");o(this,"getStyles");o(this,"setStyles");o(this,"appendHTML");o(this,"getInnerHTML");o(this,"setInnerHTML");o(this,"getInnerText");o(this,"setInnerText");o(this,"setFromRoot",(e,t)=>{e.getPortals().forEach(n=>{for(const i of this.select(n.selector)){if(i==null)throw new Error(`Cannot find element by selector for render: ${n.selector}`);if(n.hasChildren()&&this.appendHTML(i,n.contentToHTML(t)),n.hasInnerHTML()){if(t){const l=this.getInnerHTML(i);l!=null&&this.setAttribute(i,W,l)}this.setInnerHTML(i,n.getInnerHTML())}if(n.hasInnerText()){if(t){const l=this.getInnerText(i);l!=null&&this.setAttribute(i,G,l)}this.setInnerText(i,n.getInnerText())}if(n.hasClasses()){if(t){const l=this.getClass(i);l!=null&&this.setAttribute(i,N,l)}this.setClass(i,n.getClasses().join(" "))}if(n.hasStyles()){if(t){const l=this.getStyles(i);Object.keys(l).length>0&&this.setAttribute(i,U,JSON.stringify(l))}this.setStyles(i,n.getStyles())}if(n.hasAttributes()){const l=n.getAttributes();if(t){const a=[];l.forEach(([c])=>{const u=this.getAttribute(i,c);u!=null&&a.push([c,u])}),a.length>0&&this.setAttribute(i,J,JSON.stringify(Object.fromEntries(a)))}l.forEach(([a,c])=>{this.setAttribute(i,a,c)})}}})});this.select=e,this.getAttribute=t,this.setAttribute=r,this.getClass=n,this.setClass=i,this.getStyles=l,this.setStyles=a,this.appendHTML=c,this.getInnerHTML=u,this.setInnerHTML=h,this.getInnerText=m,this.setInnerText=A}}const At=()=>{document.querySelectorAll(`[${ne}]`).forEach(I)},Et=s=>{const e=s.getAttribute(N);s.removeAttribute(N),e!=null&&s.setAttribute("class",e)},_t=()=>{document.querySelectorAll(`[${N}]`).forEach(e=>Et(e))},vt=s=>{const e=s.getAttribute(W);s.removeAttribute(W),e!=null&&(s.innerHTML=e)},wt=()=>{document.querySelectorAll(`[${W}]`).forEach(e=>vt(e))},Ct=s=>{const e=s.getAttribute(G);s.removeAttribute(G),e!=null&&(s.innerText=e)},Ot=()=>{document.querySelectorAll(`[${G}]`).forEach(e=>Ct(e))},Re=s=>JSON.parse(s.replace(/"/g,'"')),xt=s=>{const e=s.getAttribute(U);if(s.removeAttribute(U),e!=null){const t=Re(e);Object.entries(t).forEach(([r,n])=>{s.style.setProperty(r,n)})}},Lt=()=>{document.querySelectorAll(`[${U}]`).forEach(e=>xt(e))},Dt=s=>{const e=s.getAttribute(J);if(s.removeAttribute(J),e!=null){const t=Re(e);Object.entries(t).forEach(([r,n])=>{n==null?s.removeAttribute(r):s.setAttribute(r,n)})}},Mt=()=>{document.querySelectorAll(`[${J}]`).forEach(e=>Dt(e))},kt=()=>{At(),_t(),Ot(),wt(),Lt(),Mt()},y=Symbol("class"),P=Symbol("style"),O=Symbol("handler"),Ve=()=>Math.random().toString(36).substring(2,15),Ht=s=>s.replace(/<[^>]*>?/g,"");class je{constructor(e){o(this,"id",Ve());o(this,"properties",{});o(this,"children",[]);o(this,"isElement",()=>!0);o(this,"isText",()=>!1);o(this,"getText",()=>this.properties.innerText!=null?this.properties.innerText:this.properties.innerHTML!=null?Ht(this.properties.innerHTML):this.children.map(e=>e.getText()).join(""));o(this,"removeChild",e=>{const t=this.children.indexOf(e);t!==-1&&this.children.splice(t,1)});o(this,"remove",()=>{if(this.parent!=null)this.parent.removeChild(this);else throw new Error("Parent is undefined")});o(this,"getPortals",()=>{const e=this.elements().flatMap(t=>t.isPortal()?[t,...t.getPortals()]:t.getPortals());return this.isPortal()&&e.unshift(this),e});o(this,"elements",()=>this.children.filter(e=>e.isElement()));o(this,"hasInnerHTML",()=>this.properties.innerHTML!=null);o(this,"getInnerHTML",()=>this.properties.innerHTML??"");o(this,"getInnerText",()=>this.properties.innerText??"");o(this,"hasInnerText",()=>this.properties.innerText!=null);o(this,"hasChildren",()=>this.children.length>0);o(this,"hasClasses",()=>this.properties[y]!=null);o(this,"hasStyles",()=>this.properties[P]!=null);o(this,"hasAttributes",()=>Object.keys(this.properties).length>0);o(this,"hasHandlers",()=>this.properties[O]!=null);o(this,"hasRenderableProperties",()=>this.hasClasses()||this.hasAttributes()||this.hasStyles());o(this,"getById",e=>{if(this.properties.id===e)return this;for(const t of this.elements()){const r=t.getById(e);if(r!=null)return r}});o(this,"trigger",(e,t)=>{((this.properties[O]??{})[e]??[]).forEach(n=>n(t))});o(this,"click",()=>{this.trigger("click",{})});o(this,"on",(e,t,r)=>{var a;const n=(a=this.properties)[O]??(a[O]={}),i=r!=null&&r.once?c=>{l(),t(c)}:c=>t(c);n[e]=[...n[e]??[],i];const l=()=>{const c=n[e]??[],u=c.indexOf(i);u!==-1&&(c.splice(u,1),c.length===0?(delete n[e],Object.keys(n).length===0&&delete this.properties[O]):n[e]=c,(r==null?void 0:r.signal)!=null&&r.signal.removeEventListener("abort",l))};return(r==null?void 0:r.signal)!=null&&r.signal.addEventListener("abort",l),l});o(this,"addClasses",e=>{var r;if(e.length===0)return;const t=(r=this.properties)[y]??(r[y]=[]);e.forEach(n=>{t.includes(n)||t.push(n)})});o(this,"removeClasses",e=>{var r;if(e.length===0)return;const t=(r=this.properties)[y]??(r[y]=[]);e.forEach(n=>{const i=t.indexOf(n);i!==-1&&t.splice(i,1)}),t.length===0&&delete this.properties[y]});o(this,"getClasses",()=>this.properties[y]??[]);o(this,"getAttributes",()=>Object.entries(this.properties).filter(([e])=>!["innerText","innerHTML"].includes(e)));o(this,"getVisibleAttributes",()=>Reflect.ownKeys(this.properties).flatMap(e=>e===y?[["class",this.getClasses()]]:e===P?[["style",this.getStyles()]]:typeof e=="string"?[[e,String(this.properties[e])]]:[]));o(this,"setStyle",(e,t)=>{var n;const r=(n=this.properties)[P]??(n[P]={});r[e]=t,t===""&&(delete r[e],Object.keys(r).length===0&&delete this.properties[P])});o(this,"getStyle",e=>{var t;return((t=this.properties[P])==null?void 0:t[e])??""});o(this,"getStyles",()=>this.properties[P]??{});o(this,"makeAccessors",e=>{const t=this.properties;return{get:()=>t[e],set:r=>t[e]=r}});this.parent=e}}const It=s=>s.replace(/"/g,"""),Nt=s=>s.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">");class qe extends je{constructor(t,r,n){super(n);o(this,"isPortal",()=>!1);o(this,"toHTML",(t=!1)=>{const r=this.children.map(c=>c.toHTML()).join(""),n=this.namespace?` xmlns="${this.namespace}"`:"";let i=null;const l=this.getVisibleAttributes().map(([c,u])=>c==="class"?` class="${u.join(" ")}"`:c==="style"?typeof u=="string"?` style="${u}"`:` style="${Object.entries(u).map(([h,m])=>`${h}: ${m};`).join(" ")}"`:$t.has(c)?` ${c}`:c==="innerHTML"?(i=u,""):c==="innerText"?(i=Nt(u),""):` ${c}="${It(u)}"`).join(""),a=t?` ${ne}`:"";return Rt.has(this.tagName)&&r===""?`<${this.tagName}${n}${l}${a} />`:`<${this.tagName}${n}${l}${a}>${i??r}</${this.tagName}>`});this.tagName=t,this.namespace=r}}class ie extends je{constructor(t,r){super(r);o(this,"isPortal",()=>!0);o(this,"toHTML",()=>"");o(this,"contentToHTML",(t=!1)=>this.children.map(r=>r.toHTML(t)).join(""));this.selector=t}}class Be{constructor(e){o(this,"id",Ve());o(this,"isElement",()=>!1);o(this,"isText",()=>!0);o(this,"getText",()=>this.text);o(this,"toHTML",()=>this.text);this.text=e}}class v{constructor(e,t,r,n){o(this,"appendOrInsert",e=>{if(this.reference!=null){const t=this.element.children.indexOf(this.reference);this.element.children.splice(t,0,e)}else this.element.children.push(e)});o(this,"makeChildElement",(e,t)=>{const r=new qe(e,t,this.element);return this.appendOrInsert(r),new v(r,void 0,this.container,this.providers)});o(this,"makeChildText",e=>{const t=new Be(e);return this.appendOrInsert(t),new v(this.element,t,this.container,this.providers)});o(this,"setText",e=>{this.reference&&this.reference.isText()&&(this.reference.text=e)});o(this,"getText",()=>{var e;return((e=this.reference)==null?void 0:e.getText())??this.element.getText()});o(this,"makeRef",()=>this.makeChildText(""));o(this,"makePortal",e=>{const t=new ie(e,this.element);return this.appendOrInsert(t),new v(t,void 0,this.container,this.providers)});o(this,"withProviders",e=>new v(this.element,this.reference,this.container,{...this.providers,...e}));o(this,"getProvider",e=>{if(this.providers[e]===void 0)throw new re(e);return this.providers[e]});o(this,"clear",e=>{e&&(this.reference!==void 0?this.element.removeChild(this.reference):this.element.remove())});o(this,"on",(e,t)=>this.element.on(e,t));o(this,"addClasses",e=>this.element.addClasses(e));o(this,"removeClasses",e=>this.element.removeClasses(e));o(this,"getClasses",()=>this.element.getClasses());o(this,"isBrowserDOM",()=>!1);o(this,"isHeadlessDOM",()=>!0);o(this,"setStyle",(e,t)=>this.element.setStyle(e,t));o(this,"getStyle",e=>this.element.getStyle(e));o(this,"makeAccessors",e=>this.element.makeAccessors(e));this.element=e,this.reference=t,this.container=r,this.providers=n}}const $t=new Set(["checked","disabled","multiple","readonly","required","selected"]),Rt=new Set(["img","br","hr","input","link","meta"]),oe=s=>e=>{const t=e.makeChildText(s);return r=>t.clear(r)},le=s=>e=>{const t=e.makeChildText(s.value),r=s.on(n=>t.setText(n));return n=>{r(),t.clear(n)}},Vt=s=>f.is(s)?le(s):oe(s),g=(...s)=>e=>{const t=s.map(r=>d(r)(e));return r=>{t.forEach(n=>n(r))}},b=()=>()=>{},jt=s=>e=>(e.addClasses(s),t=>{t&&e.removeClasses(s)}),qt=s=>e=>{let t=[];const r=s.on(n=>{e.removeClasses(t),t=(n??"").split(" ").filter(i=>i.length>0),e.addClasses(t)});return n=>{r(),n&&e.removeClasses(t),t.length=0}},V=(s,e)=>t=>{const{get:r,set:n}=t.makeAccessors(s),i=r();return n(e),l=>{l&&n(i)}},j=(s,e)=>t=>{const{get:r,set:n}=t.makeAccessors(s),i=r(),l=e.on(n);return a=>{l(),a&&n(i)}},w=new Proxy({},{get:(s,e)=>e==="class"?t=>f.is(t)?qt(t):jt((t??"").split(" ").filter(r=>r.length>0)):t=>f.is(t)?j(e,t):V(e,t)}),Bt=new Proxy({},{get:(s,e)=>t=>f.is(t)?j(`data-${e}`,t):V(`data-${e}`,t)}),Ft=new Proxy({},{get:(s,e)=>t=>f.is(t)?j(`aria-${e}`,t):V(`aria-${e}`,t)}),Ut=new Proxy({},{get:(s,e)=>t=>f.is(t)?j(e,t):V(e,t)}),Wt=new Proxy({},{get:(s,e)=>t=>f.is(t)?j(e,t):V(e,t)}),d=s=>{if(s==null)return b;if(Array.isArray(s))return g(...s.map(d));if(typeof s=="string")return oe(s);if(f.is(s))return le(s);if(typeof s=="function")return s;throw new Error(`Unknown type: '${typeof s}' for child: ${s}`)},ae=(s,...e)=>t=>{const r=t.makeChildElement(s,void 0),n=e.map(i=>d(i)(r));return i=>{n.forEach(l=>l(!1)),r.clear(i)}},ce=(s,e,...t)=>r=>{const n=r.makeChildElement(s,e),i=t.map(l=>d(l)(n));return l=>{i.forEach(a=>a(!1)),n.clear(l)}},Gt=new Proxy({},{get:(s,e)=>(...t)=>ae(e,t.flatMap(d))}),Jt=new Proxy({},{get:(s,e)=>(...t)=>ae("input",w.type(e),...t)}),zt="http://www.w3.org/2000/svg",Xt=new Proxy({},{get:(s,e)=>(...t)=>ce(e,zt,t.flatMap(d))}),Yt="http://www.w3.org/1998/Math/MathML",Qt=new Proxy({},{get:(s,e)=>(...t)=>ce(e,Yt,t.flatMap(d))}),ue=(s,e)=>{if(typeof e=="function")return ue(s,{then:e});const t=e.pending!=null?d(e.pending):b,r=e.then,n=e.error!=null?i=>d(e.error(i)):()=>b;return i=>{let l=!0;const a=s(),c=i.makeRef();let u=d(t)(c);return a.then(h=>{l&&(u(!0),u=d(r(h))(c))},h=>{l&&(u(!0),u=d(n(h))(c))}),h=>{l=!1,u(h),c.clear(h)}}},Zt=(s,e)=>ue(()=>s,e),Fe=(s,e,t)=>r=>r.on(s,e,t),Ue=s=>Fe("click",e=>{e.preventDefault();const t=e.target;setTimeout(()=>{const r=t.ownerDocument!=null?t==null?void 0:t.checked:void 0;r!=null&&s(!r)},0)}),q=new Proxy({},{get:(s,e)=>t=>Fe(e,t)}),We=s=>e=>{const t=e.target;s(t.value)},Ge=s=>e=>{const t=e.target;s(t.valueAsNumber)},Je=s=>e=>{const t=e.target;if(t.value==="")return;const r=t.value.split("-"),n=new Date(Number(r[0]),Number(r[1])-1,Number(r[2].substring(0,2)));s(n)},ze=s=>e=>{const t=e.target;if(t.value==="")return;const r=t.value.split("T"),n=r[0].split("-"),i=new Date(Number(n[0]),Number(n[1])-1,Number(n[2])),l=r[1].split(":");i.setHours(Number(l[0])),i.setMinutes(Number(l[1])),i.setSeconds(Number(l[2])),s(i)},Kt=s=>e=>{const t=e.target;s(t.checked)},es=s=>e=>{e.preventDefault(),s()},ts=s=>e=>{e.stopPropagation(),s()},ss=s=>e=>{e.stopImmediatePropagation(),s()},rs=(s,e="input")=>g(w.valueAsDate(s),q[e](Je(s.set))),ns=(s,e="input")=>g(w.valueAsDate(s),q[e](ze(s.set))),is=(s,e="input")=>g(w.valueAsNumber(s),q[e](Ge(s.set))),os=(s,e="input")=>g(w.value(s),q[e](We(s.set))),ls=s=>g(w.checked(s),Ue(s.set)),B=(s,e)=>{if(f.is(s))return r=>{const n=r.makeRef();let i,l;const a=s.map(h=>Object.keys(h)[0]);let c;const u=a.on(h=>{if(h!==c){l==null||l.dispose(),i==null||i(!0),l=s.map(A=>A[h]);const m=e[h](l);i=d(m)(n),c=h}});return h=>{u(),n.clear(h),i==null||i(h)}};const t=Object.keys(s)[0];return d(e[t](R(s[t])))},he=(s,e,t)=>B(p.map(s,r=>({[r[e]]:r})),t),as=(s,e)=>he(s,"kind",e),cs=(s,e)=>{const t=p.map(s,([r,n])=>({[r]:n}));return B(t,e)},us=(s,e)=>he(s,"type",e),Xe=(s,e)=>B(p.map(s,t=>({[t]:!0})),e),hs=(s,e={})=>t=>{const r=(e==null?void 0:e.firstSeparator)??s,n=(e==null?void 0:e.lastSeparator)??s;return Xe(t.map(i=>i.isFirst?"first":i.isLast?"last":"other"),{first:()=>r,last:()=>n,other:()=>s})},Ye=(s,e)=>t=>{const r=Object.values(s).reduce((n,i)=>{const l=t.getProvider(i);return n[i]=l,n},{});return d(e(r))(t)},ds=(s,e)=>t=>{const r=[],n=Object.entries(s).reduce((i,[l,a])=>(r.push(a(c=>(Reflect.set(i,l,c),null))(t)),i),{});return r.push(e(n)(t)),i=>{r.forEach(l=>l(i))}},Qe=(s,e)=>Ye([s],t=>d(e(t[s]))),fs=(s,e)=>Ye(s,t=>d(e(t))),ps=s=>e=>s(e)??(()=>{}),gs=s=>e=>(e.appendOrInsert(s),t=>{t&&I(s)}),Ze=(s,e,t)=>{if(f.is(s)){const r=s;return n=>{const i=n.makeRef();let l=null,a=!1;const c=D(null),u=r.on(h=>{h==null?(l==null||l(!0),l=d((t==null?void 0:t())??b)(i),a=!1):(c.value=h,a||(l==null||l(!0),l=d(e(c))(i),a=!0))});return h=>{u(),l==null||l(h),i.clear(h)}}}else{const r=s;if(r==null){const n=t==null?void 0:t();return n!=null?d(n):b}return d(e(R(r)))}},$=(...s)=>e=>t=>s.forEach(r=>r(t,e)),de=(s,e,t)=>fe(s,()=>e,()=>t),fe=(s,e,t)=>Ze(p.map(s,r=>r?!0:null),e,t??void 0),ms=(s,e,t)=>Ke(s,()=>e,()=>t),Ke=(s,e,t)=>fe(p.map(s,r=>!r),e,t),pe=(s,e,t)=>t!=null?pe(s,r=>{const n=new L(r.index,r.total.map(i=>i-1));return g($(n.dispose),d(e(r)),de(r.isLast,b,t(n)))}):f.is(s)?r=>{const n=r.makeRef(),i=Array.from({length:s.value},(c,u)=>u).map(c=>new L(c,s)),l=i.map(c=>d(e(c))(n)),a=s.on(c=>{for(;c<l.length;)i.pop().dispose(),l.pop()(!0);for(let u=0;u<c;u++)if(i[u]==null){i[u]=new L(u,s);const h=d(e(i[u]));l[u]=h(n)}});return c=>{a(),n.clear(c)}}:g(...Array.from({length:s},(r,n)=>n).map(r=>d(e(new L(r,R(s)))))),et=(s,e,t)=>{if(t!=null)return et(s,(r,n)=>{const i=new L(n.index,n.total.map(l=>l-1));return g([$(i.dispose),d(e(r,n)),de(n.isLast,b,t(i))])});{const r=p.map(s,i=>i.length),n=p.toSignal(s);return pe(r,i=>{const l=n.map(a=>a[i.index]);return g($(l.dispose),d(e(l,i)))})}},tt=s=>e=>e.isBrowserDOM()?s(e)??(()=>{}):()=>{},ys=s=>e=>e.isHeadlessDOM()?s(e)??(()=>{}):()=>{},Ts=s=>tt(e=>s(e.element)??(()=>{})),Ss=(s,e)=>{if(f.is(s)){const t=s;return r=>{r=r.makeRef();const n=t.map(a=>d(e(a)));let i=()=>{};const l=n.on(a=>{i(!0),i=a(r)});return a=>{l(),i(a)}}}return d(e(s))},bs=(s,e,t=()=>b)=>B(p.map(s,r=>r.length>0?{notEmpty:r}:{whenEmpty:null}),{notEmpty:r=>e(r),whenEmpty:()=>t()}),Ps=(s,e)=>t=>{const r=t.makePortal(s);return Y(d(e),r)},st=s=>Symbol(s),rt=(s,e)=>t=>d(e)(t.withProviders(s)),As=(...s)=>s.length>0?s.reduceRight((e,t)=>r=>e(t(r))):d,nt=(s,e,t)=>rt({[s]:e},d(t)),Es=(s,e)=>rt(s,d(e)),ge=st("Probe"),x=new Map,it=({identifier:s,callback:e=()=>{},child:t,timeout:r=10})=>{if(x.has(s))throw new Error(`Probe already exists: ${s.description}`);const n=setTimeout(()=>e("timeout"),r);x.set(s,{counter:0,timeoutId:n});const i=l=>{clearTimeout(n);const a=x.get(l);if(a==null)throw new Error(`Probe not found: ${l.description}`);--a.counter===0?(e("resolved"),x.delete(l)):x.set(l,a)};return g($(()=>clearTimeout(n)),nt(ge,i,t))},ot=(s,e)=>Qe(ge,t=>{const r=x.get(s);return r==null?e(()=>{}):(clearTimeout(r.timeoutId),r.counter++,e(()=>t(s)))}),lt=Symbol("globalProbe"),_s=({callback:s,timeout:e},t)=>it({identifier:lt,callback:s,child:t,timeout:e}),vs=s=>ot(lt,s),ws=(s,e)=>t=>{const r=t.getStyle(s);return t.setStyle(s,e),n=>{n&&t.setStyle(s,r)}},Cs=(s,e)=>t=>{const r=t.getStyle(s);return e.on(n=>t.setStyle(s,n)),n=>{n&&t.setStyle(s,r)}},Os=new Proxy({},{get:(s,e)=>t=>f.is(t)?Cs(e,t):ws(e,t)});exports.Async=Zt;exports.BindChecked=ls;exports.BindDate=rs;exports.BindDateTime=ns;exports.BindNumber=is;exports.BindText=os;exports.BrowserContext=_;exports.CLASS_PLACEHOLDER_ATTR=N;exports.Computed=E;exports.Conjunction=hs;exports.DOMNode=gs;exports.El=ae;exports.ElNS=ce;exports.ElementPosition=L;exports.Empty=b;exports.Ensure=Ze;exports.ForEach=et;exports.Fragment=g;exports.HeadlessAdapter=Pt;exports.HeadlessContext=v;exports.HeadlessElement=qe;exports.HeadlessPortal=ie;exports.HeadlessText=Be;exports.LazyUnless=Ke;exports.LazyWhen=fe;exports.MapSignal=Ss;exports.MemoryStore=ee;exports.NotEmpty=bs;exports.OnBrowserCtx=tt;exports.OnChecked=Ue;exports.OnCtx=ps;exports.OnDispose=$;exports.OnElement=Ts;exports.OnHeadlessCtx=ys;exports.OneOf=B;exports.OneOfField=he;exports.OneOfKind=as;exports.OneOfTuple=cs;exports.OneOfType=us;exports.OneOfValue=Xe;exports.Portal=Ps;exports.Prop=H;exports.Provide=As;exports.ProvideGlobalProbe=_s;exports.ProvideProbe=it;exports.ProviderNotFoundError=re;exports.RenderingError=$e;exports.Repeat=pe;exports.Signal=f;exports.Task=ue;exports.TextNode=Vt;exports.Unless=ms;exports.Use=ds;exports.UseGlobalProbe=vs;exports.UseProbe=ot;exports.UseProvider=Qe;exports.UseProviders=fs;exports.Value=p;exports.When=de;exports.WithProvider=nt;exports.WithProviders=Es;exports._NODE_PLACEHOLDER_ATTR=ne;exports._getSelfOrParentElement=Ne;exports._isElement=se;exports._makeGetter=Ie;exports._makeSetter=He;exports._removeDOMNode=I;exports._signalText=le;exports._staticText=oe;exports.animateSignal=yt;exports.animateSignals=xe;exports.aria=Ft;exports.attr=w;exports.dataAttr=Bt;exports.emitChecked=Kt;exports.emitPreventDefault=es;exports.emitStopImmediatePropagation=ss;exports.emitStopPropagation=ts;exports.emitValue=We;exports.emitValueAsDate=Je;exports.emitValueAsDateTime=ze;exports.emitValueAsNumber=Ge;exports.endInterpolate=we;exports.getWindow=K;exports.guessInterpolate=Ce;exports.html=Gt;exports.input=Jt;exports.interpolateDate=ve;exports.interpolateNumber=Ee;exports.interpolateString=_e;exports.localStorageProp=gt;exports.makeComputed=X;exports.makeComputedOf=ft;exports.makeComputedRecord=Tt;exports.makeEffect=Oe;exports.makeEffectOf=pt;exports.makeProp=D;exports.makeProviderMark=st;exports.makeSignal=R;exports.math=Qt;exports.mathAttr=Wt;exports.on=q;exports.probeMarker=ge;exports.render=St;exports.renderWithContext=Y;exports.renderableOfTNode=d;exports.restoreTempoPlaceholders=kt;exports.runHeadless=bt;exports.sessionStorageProp=mt;exports.storedProp=te;exports.style=Os;exports.svg=Xt;exports.svgAttr=Ut;
|
package/index.js
CHANGED
|
@@ -255,7 +255,7 @@ const M = class M {
|
|
|
255
255
|
* @returns A property that holds the mapped value and can be observed for changes.
|
|
256
256
|
*/
|
|
257
257
|
o(this, "mapAsync", (e, t, r, n = (i, l) => i === l) => {
|
|
258
|
-
const i =
|
|
258
|
+
const i = H(t, n);
|
|
259
259
|
let l = 0, c = new AbortController();
|
|
260
260
|
return i.onDispose(
|
|
261
261
|
this.on(async (a) => {
|
|
@@ -297,10 +297,15 @@ const M = class M {
|
|
|
297
297
|
});
|
|
298
298
|
/**
|
|
299
299
|
* Derives a new property from the current signal.
|
|
300
|
-
* @param
|
|
300
|
+
* @param options - The options for the derived property.
|
|
301
|
+
* @param options.autoDisposeProp - Determines whether the derived property should be automatically disposed.
|
|
302
|
+
* @param options.equals - A function that determines if two values are equal.
|
|
301
303
|
* @returns The derived property.
|
|
302
304
|
*/
|
|
303
|
-
o(this, "deriveProp", (
|
|
305
|
+
o(this, "deriveProp", ({
|
|
306
|
+
autoDisposeProp: e = !0,
|
|
307
|
+
equals: t
|
|
308
|
+
} = {}) => this.feedProp(H(this.get(), t), e));
|
|
304
309
|
/**
|
|
305
310
|
* Returns a signal that emits the count of values received so far.
|
|
306
311
|
* @returns A signal that emits the count of values received so far.
|
|
@@ -516,7 +521,7 @@ o(W, "is", (t) => (
|
|
|
516
521
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
517
522
|
t != null && t.$__prop__ === !0
|
|
518
523
|
));
|
|
519
|
-
let
|
|
524
|
+
let N = W;
|
|
520
525
|
const Q = (s, e, t = (r, n) => r === n) => {
|
|
521
526
|
const r = new C(s, t);
|
|
522
527
|
return e.forEach((n) => n.setDerivative(r)), r;
|
|
@@ -535,7 +540,7 @@ const Q = (s, e, t = (r, n) => r === n) => {
|
|
|
535
540
|
n.dispose(), t.abortSignal != null && t.abortSignal.removeEventListener("abort", i);
|
|
536
541
|
};
|
|
537
542
|
return t.abortSignal != null && t.abortSignal.addEventListener("abort", i), i;
|
|
538
|
-
},
|
|
543
|
+
}, H = (s, e = (t, r) => t === r) => new N(s, e), J = (s, e = (t, r) => t === r) => new d(s, e), ie = () => typeof window < "u" ? window : void 0, p = {
|
|
539
544
|
/**
|
|
540
545
|
* Maps a value or a Signal to a new value.
|
|
541
546
|
* If the value is a Signal, it returns a new Signal with the mapped value.
|
|
@@ -591,7 +596,21 @@ const Q = (s, e, t = (r, n) => r === n) => {
|
|
|
591
596
|
*/
|
|
592
597
|
dispose: (s) => {
|
|
593
598
|
d.is(s) && s.dispose();
|
|
594
|
-
}
|
|
599
|
+
},
|
|
600
|
+
/**
|
|
601
|
+
* Derives a Prop from a Signal.
|
|
602
|
+
* If the value is a Signal, it returns a new Prop with the derived value.
|
|
603
|
+
* If the value is not a Signal, it returns a new Prop with the value.
|
|
604
|
+
* @param value - The value or Signal instance to derive the Prop from.
|
|
605
|
+
* @param options - The options for the derived Prop.
|
|
606
|
+
* @param options.autoDisposeProp - Determines whether the derived Prop should be automatically disposed.
|
|
607
|
+
* @param options.equals - A function that determines if two values are equal.
|
|
608
|
+
* @returns A Prop instance.
|
|
609
|
+
*/
|
|
610
|
+
deriveProp: (s, {
|
|
611
|
+
autoDisposeProp: e = !0,
|
|
612
|
+
equals: t
|
|
613
|
+
} = {}) => d.is(s) ? s.deriveProp({ autoDisposeProp: e, equals: t }) : H(s, t)
|
|
595
614
|
}, It = (...s) => (e, t) => {
|
|
596
615
|
const r = s.filter((n) => d.is(n));
|
|
597
616
|
return Q(
|
|
@@ -635,7 +654,7 @@ const le = ({
|
|
|
635
654
|
equals: i = (c, a) => c === a,
|
|
636
655
|
onLoad: l = (c) => c
|
|
637
656
|
}) => {
|
|
638
|
-
const c = t.getItem(s), a = new
|
|
657
|
+
const c = t.getItem(s), a = new N(
|
|
639
658
|
c != null ? l(n(c)) : typeof e == "function" ? e() : e,
|
|
640
659
|
i
|
|
641
660
|
);
|
|
@@ -659,9 +678,9 @@ function ne(s) {
|
|
|
659
678
|
return typeof requestAnimationFrame == "function" ? requestAnimationFrame(s) : setTimeout(s, 0);
|
|
660
679
|
}
|
|
661
680
|
const Ue = (s, e, t, r) => {
|
|
662
|
-
const n = (r == null ? void 0 : r.duration) ?? 300, i = (r == null ? void 0 : r.easing) ?? ((T) => T), l = (r == null ? void 0 : r.equals) ?? ((T,
|
|
681
|
+
const n = (r == null ? void 0 : r.duration) ?? 300, i = (r == null ? void 0 : r.easing) ?? ((T) => T), l = (r == null ? void 0 : r.equals) ?? ((T, k) => T === k);
|
|
663
682
|
let c = r == null ? void 0 : r.interpolate, a = s, u = e(), h = performance.now(), m = null, A = !0;
|
|
664
|
-
const X = new C(e, l), _ =
|
|
683
|
+
const X = new C(e, l), _ = H(s, l);
|
|
665
684
|
_.onDispose(() => {
|
|
666
685
|
m !== null && cancelAnimationFrame(m);
|
|
667
686
|
}), _.onDispose(X.dispose), t.forEach((T) => {
|
|
@@ -670,10 +689,10 @@ const Ue = (s, e, t, r) => {
|
|
|
670
689
|
const He = (T) => {
|
|
671
690
|
u = T, h = performance.now(), a = _.value, A && (A = !1, m = ne(K));
|
|
672
691
|
}, K = () => {
|
|
673
|
-
const
|
|
692
|
+
const k = (performance.now() - h) / p.get(n), $e = i(k);
|
|
674
693
|
c == null && (c = qe(a));
|
|
675
694
|
let ee = c(a, u, $e);
|
|
676
|
-
|
|
695
|
+
k >= 1 ? (A = !0, ee = u) : m = ne(K), _.set(ee);
|
|
677
696
|
};
|
|
678
697
|
return X.on(He), _;
|
|
679
698
|
}, Vt = (s, e) => {
|
|
@@ -1149,7 +1168,7 @@ const Xe = () => {
|
|
|
1149
1168
|
document.querySelectorAll(`[${B}]`).forEach((e) => nt(e));
|
|
1150
1169
|
}, Ut = () => {
|
|
1151
1170
|
Xe(), Qe(), tt(), Ke(), rt(), it();
|
|
1152
|
-
}, y = Symbol("class"), S = Symbol("style"),
|
|
1171
|
+
}, y = Symbol("class"), S = Symbol("style"), E = Symbol("handler"), me = () => Math.random().toString(36).substring(2, 15), ot = (s) => s.replace(/<[^>]*>?/g, "");
|
|
1153
1172
|
class ye {
|
|
1154
1173
|
constructor(e) {
|
|
1155
1174
|
o(this, "id", me());
|
|
@@ -1181,7 +1200,7 @@ class ye {
|
|
|
1181
1200
|
o(this, "hasClasses", () => this.properties[y] != null);
|
|
1182
1201
|
o(this, "hasStyles", () => this.properties[S] != null);
|
|
1183
1202
|
o(this, "hasAttributes", () => Object.keys(this.properties).length > 0);
|
|
1184
|
-
o(this, "hasHandlers", () => this.properties[
|
|
1203
|
+
o(this, "hasHandlers", () => this.properties[E] != null);
|
|
1185
1204
|
o(this, "hasRenderableProperties", () => this.hasClasses() || this.hasAttributes() || this.hasStyles());
|
|
1186
1205
|
o(this, "getById", (e) => {
|
|
1187
1206
|
if (this.properties.id === e)
|
|
@@ -1193,20 +1212,20 @@ class ye {
|
|
|
1193
1212
|
}
|
|
1194
1213
|
});
|
|
1195
1214
|
o(this, "trigger", (e, t) => {
|
|
1196
|
-
((this.properties[
|
|
1215
|
+
((this.properties[E] ?? {})[e] ?? []).forEach((n) => n(t));
|
|
1197
1216
|
});
|
|
1198
1217
|
o(this, "click", () => {
|
|
1199
1218
|
this.trigger("click", {});
|
|
1200
1219
|
});
|
|
1201
1220
|
o(this, "on", (e, t, r) => {
|
|
1202
1221
|
var c;
|
|
1203
|
-
const n = (c = this.properties)[
|
|
1222
|
+
const n = (c = this.properties)[E] ?? (c[E] = {}), i = r != null && r.once ? (a) => {
|
|
1204
1223
|
l(), t(a);
|
|
1205
1224
|
} : (a) => t(a);
|
|
1206
1225
|
n[e] = [...n[e] ?? [], i];
|
|
1207
1226
|
const l = () => {
|
|
1208
1227
|
const a = n[e] ?? [], u = a.indexOf(i);
|
|
1209
|
-
u !== -1 && (a.splice(u, 1), a.length === 0 ? (delete n[e], Object.keys(n).length === 0 && delete this.properties[
|
|
1228
|
+
u !== -1 && (a.splice(u, 1), a.length === 0 ? (delete n[e], Object.keys(n).length === 0 && delete this.properties[E]) : n[e] = a, (r == null ? void 0 : r.signal) != null && r.signal.removeEventListener("abort", l));
|
|
1210
1229
|
};
|
|
1211
1230
|
return (r == null ? void 0 : r.signal) != null && r.signal.addEventListener("abort", l), l;
|
|
1212
1231
|
});
|
|
@@ -1388,12 +1407,12 @@ const ht = /* @__PURE__ */ new Set([
|
|
|
1388
1407
|
return (n) => {
|
|
1389
1408
|
r(), n && e.removeClasses(t), t.length = 0;
|
|
1390
1409
|
};
|
|
1391
|
-
},
|
|
1410
|
+
}, $ = (s, e) => (t) => {
|
|
1392
1411
|
const { get: r, set: n } = t.makeAccessors(s), i = r();
|
|
1393
1412
|
return n(e), (l) => {
|
|
1394
1413
|
l && n(i);
|
|
1395
1414
|
};
|
|
1396
|
-
},
|
|
1415
|
+
}, I = (s, e) => (t) => {
|
|
1397
1416
|
const { get: r, set: n } = t.makeAccessors(s), i = r(), l = e.on(n);
|
|
1398
1417
|
return (c) => {
|
|
1399
1418
|
l(), c && n(i);
|
|
@@ -1414,10 +1433,10 @@ const ht = /* @__PURE__ */ new Set([
|
|
|
1414
1433
|
*/
|
|
1415
1434
|
get: (s, e) => e === "class" ? (t) => d.is(t) ? pt(t) : dt(
|
|
1416
1435
|
(t ?? "").split(" ").filter((r) => r.length > 0)
|
|
1417
|
-
) : (t) => d.is(t) ?
|
|
1436
|
+
) : (t) => d.is(t) ? I(
|
|
1418
1437
|
e,
|
|
1419
1438
|
t
|
|
1420
|
-
) :
|
|
1439
|
+
) : $(
|
|
1421
1440
|
e,
|
|
1422
1441
|
t
|
|
1423
1442
|
)
|
|
@@ -1433,10 +1452,10 @@ const ht = /* @__PURE__ */ new Set([
|
|
|
1433
1452
|
* @returns The renderable component for the specified attribute.
|
|
1434
1453
|
*
|
|
1435
1454
|
*/
|
|
1436
|
-
get: (s, e) => (t) => d.is(t) ?
|
|
1455
|
+
get: (s, e) => (t) => d.is(t) ? I(
|
|
1437
1456
|
`data-${e}`,
|
|
1438
1457
|
t
|
|
1439
|
-
) :
|
|
1458
|
+
) : $(`data-${e}`, t)
|
|
1440
1459
|
}
|
|
1441
1460
|
), Gt = new Proxy(
|
|
1442
1461
|
{},
|
|
@@ -1449,10 +1468,10 @@ const ht = /* @__PURE__ */ new Set([
|
|
|
1449
1468
|
* @returns The renderable component for the specified attribute.
|
|
1450
1469
|
*
|
|
1451
1470
|
*/
|
|
1452
|
-
get: (s, e) => (t) => d.is(t) ?
|
|
1471
|
+
get: (s, e) => (t) => d.is(t) ? I(
|
|
1453
1472
|
`aria-${e}`,
|
|
1454
1473
|
t
|
|
1455
|
-
) :
|
|
1474
|
+
) : $(
|
|
1456
1475
|
`aria-${e}`,
|
|
1457
1476
|
t
|
|
1458
1477
|
)
|
|
@@ -1468,10 +1487,10 @@ const ht = /* @__PURE__ */ new Set([
|
|
|
1468
1487
|
* @returns The renderable component for the specified attribute.
|
|
1469
1488
|
*
|
|
1470
1489
|
*/
|
|
1471
|
-
get: (s, e) => (t) => d.is(t) ?
|
|
1490
|
+
get: (s, e) => (t) => d.is(t) ? I(
|
|
1472
1491
|
e,
|
|
1473
1492
|
t
|
|
1474
|
-
) :
|
|
1493
|
+
) : $(
|
|
1475
1494
|
e,
|
|
1476
1495
|
t
|
|
1477
1496
|
)
|
|
@@ -1486,10 +1505,10 @@ const ht = /* @__PURE__ */ new Set([
|
|
|
1486
1505
|
* @returns The renderable component for the specified attribute.
|
|
1487
1506
|
*
|
|
1488
1507
|
*/
|
|
1489
|
-
get: (s, e) => (t) => d.is(t) ?
|
|
1508
|
+
get: (s, e) => (t) => d.is(t) ? I(
|
|
1490
1509
|
e,
|
|
1491
1510
|
t
|
|
1492
|
-
) :
|
|
1511
|
+
) : $(
|
|
1493
1512
|
e,
|
|
1494
1513
|
t
|
|
1495
1514
|
)
|
|
@@ -1575,7 +1594,7 @@ const ht = /* @__PURE__ */ new Set([
|
|
|
1575
1594
|
l = !1, u(h), a.clear(h);
|
|
1576
1595
|
};
|
|
1577
1596
|
};
|
|
1578
|
-
}, es = (s, e) => _e(() => s, e),
|
|
1597
|
+
}, es = (s, e) => _e(() => s, e), Ee = (s, e, t) => (r) => r.on(s, e, t), yt = (s) => Ee("click", (e) => {
|
|
1579
1598
|
e.preventDefault();
|
|
1580
1599
|
const t = e.target;
|
|
1581
1600
|
setTimeout(() => {
|
|
@@ -1590,7 +1609,7 @@ const ht = /* @__PURE__ */ new Set([
|
|
|
1590
1609
|
* @param fn - The function to call when the event is triggered.
|
|
1591
1610
|
* @returns A `Renderable` function that adds the event listener to the element.
|
|
1592
1611
|
*/
|
|
1593
|
-
get: (s, e) => (t) =>
|
|
1612
|
+
get: (s, e) => (t) => Ee(e, t)
|
|
1594
1613
|
}
|
|
1595
1614
|
), Tt = (s) => (e) => {
|
|
1596
1615
|
const t = e.target;
|
|
@@ -1656,14 +1675,14 @@ const ht = /* @__PURE__ */ new Set([
|
|
|
1656
1675
|
};
|
|
1657
1676
|
const t = Object.keys(s)[0];
|
|
1658
1677
|
return f(e[t](J(s[t])));
|
|
1659
|
-
},
|
|
1678
|
+
}, ve = (s, e, t) => z(
|
|
1660
1679
|
p.map(s, (r) => ({ [r[e]]: r })),
|
|
1661
1680
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
1662
1681
|
t
|
|
1663
|
-
), us = (s, e) =>
|
|
1682
|
+
), us = (s, e) => ve(s, "kind", e), hs = (s, e) => {
|
|
1664
1683
|
const t = p.map(s, ([r, n]) => ({ [r]: n }));
|
|
1665
1684
|
return z(t, e);
|
|
1666
|
-
}, fs = (s, e) =>
|
|
1685
|
+
}, fs = (s, e) => ve(s, "type", e), At = (s, e) => z(
|
|
1667
1686
|
p.map(s, (t) => ({ [t]: !0 })),
|
|
1668
1687
|
e
|
|
1669
1688
|
), ds = (s, e = {}) => (t) => {
|
|
@@ -1695,13 +1714,13 @@ const ht = /* @__PURE__ */ new Set([
|
|
|
1695
1714
|
}, _t = (s, e) => Ce([s], (t) => f(e(t[s]))), gs = (s, e) => Ce(s, (t) => f(e(t))), ms = (s) => (e) => s(e) ?? (() => {
|
|
1696
1715
|
}), ys = (s) => (e) => (e.appendOrInsert(s), (t) => {
|
|
1697
1716
|
t && R(s);
|
|
1698
|
-
}),
|
|
1717
|
+
}), Et = (s, e, t) => {
|
|
1699
1718
|
if (d.is(s)) {
|
|
1700
1719
|
const r = s;
|
|
1701
1720
|
return (n) => {
|
|
1702
1721
|
const i = n.makeRef();
|
|
1703
1722
|
let l = null, c = !1;
|
|
1704
|
-
const a =
|
|
1723
|
+
const a = H(null), u = r.on((h) => {
|
|
1705
1724
|
h == null ? (l == null || l(!0), l = f((t == null ? void 0 : t()) ?? w)(i), c = !1) : (a.value = h, c || (l == null || l(!0), l = f(e(a))(
|
|
1706
1725
|
i
|
|
1707
1726
|
), c = !0));
|
|
@@ -1718,19 +1737,19 @@ const ht = /* @__PURE__ */ new Set([
|
|
|
1718
1737
|
}
|
|
1719
1738
|
return f(e(J(r)));
|
|
1720
1739
|
}
|
|
1721
|
-
}, U = (s) => (e) => (t) => s(t, e), Pe = (s, e, t) => xe(
|
|
1740
|
+
}, U = (...s) => (e) => (t) => s.forEach((r) => r(t, e)), Pe = (s, e, t) => xe(
|
|
1722
1741
|
s,
|
|
1723
1742
|
() => e,
|
|
1724
1743
|
() => t
|
|
1725
|
-
), xe = (s, e, t) =>
|
|
1744
|
+
), xe = (s, e, t) => Et(
|
|
1726
1745
|
p.map(s, (r) => r ? !0 : null),
|
|
1727
1746
|
e,
|
|
1728
1747
|
t ?? void 0
|
|
1729
|
-
), Ts = (s, e, t) =>
|
|
1748
|
+
), Ts = (s, e, t) => vt(
|
|
1730
1749
|
s,
|
|
1731
1750
|
() => e,
|
|
1732
1751
|
() => t
|
|
1733
|
-
),
|
|
1752
|
+
), vt = (s, e, t) => xe(
|
|
1734
1753
|
p.map(s, (r) => !r),
|
|
1735
1754
|
e,
|
|
1736
1755
|
t
|
|
@@ -1824,33 +1843,33 @@ const ht = /* @__PURE__ */ new Set([
|
|
|
1824
1843
|
), _s = (s, e) => (t) => {
|
|
1825
1844
|
const r = t.makePortal(s);
|
|
1826
1845
|
return Z(f(e), r);
|
|
1827
|
-
}, xt = (s) => Symbol(s), Oe = (s, e) => (t) => f(e)(t.withProviders(s)),
|
|
1846
|
+
}, xt = (s) => Symbol(s), Oe = (s, e) => (t) => f(e)(t.withProviders(s)), Es = (...s) => s.length > 0 ? s.reduceRight((e, t) => (r) => e(t(r))) : f, Lt = (s, e, t) => Oe({ [s]: e }, f(t)), vs = (s, e) => Oe(s, f(e)), De = xt("Probe"), v = /* @__PURE__ */ new Map(), Ot = ({
|
|
1828
1847
|
identifier: s,
|
|
1829
1848
|
callback: e = () => {
|
|
1830
1849
|
},
|
|
1831
1850
|
child: t,
|
|
1832
1851
|
timeout: r = 10
|
|
1833
1852
|
}) => {
|
|
1834
|
-
if (
|
|
1853
|
+
if (v.has(s))
|
|
1835
1854
|
throw new Error(`Probe already exists: ${s.description}`);
|
|
1836
1855
|
const n = setTimeout(() => e("timeout"), r);
|
|
1837
|
-
|
|
1856
|
+
v.set(s, {
|
|
1838
1857
|
counter: 0,
|
|
1839
1858
|
timeoutId: n
|
|
1840
1859
|
});
|
|
1841
1860
|
const i = (l) => {
|
|
1842
1861
|
clearTimeout(n);
|
|
1843
|
-
const c =
|
|
1862
|
+
const c = v.get(l);
|
|
1844
1863
|
if (c == null)
|
|
1845
1864
|
throw new Error(`Probe not found: ${l.description}`);
|
|
1846
|
-
--c.counter === 0 ? (e("resolved"),
|
|
1865
|
+
--c.counter === 0 ? (e("resolved"), v.delete(l)) : v.set(l, c);
|
|
1847
1866
|
};
|
|
1848
1867
|
return g(
|
|
1849
1868
|
U(() => clearTimeout(n)),
|
|
1850
1869
|
Lt(De, i, t)
|
|
1851
1870
|
);
|
|
1852
1871
|
}, Dt = (s, e) => _t(De, (t) => {
|
|
1853
|
-
const r =
|
|
1872
|
+
const r = v.get(s);
|
|
1854
1873
|
return r == null ? e(() => {
|
|
1855
1874
|
}) : (clearTimeout(r.timeoutId), r.counter++, e(() => t(s)));
|
|
1856
1875
|
}), Me = Symbol("globalProbe"), Cs = ({
|
|
@@ -1896,7 +1915,7 @@ export {
|
|
|
1896
1915
|
Ae as ElNS,
|
|
1897
1916
|
D as ElementPosition,
|
|
1898
1917
|
w as Empty,
|
|
1899
|
-
|
|
1918
|
+
Et as Ensure,
|
|
1900
1919
|
Ct as ForEach,
|
|
1901
1920
|
g as Fragment,
|
|
1902
1921
|
Bt as HeadlessAdapter,
|
|
@@ -1904,7 +1923,7 @@ export {
|
|
|
1904
1923
|
at as HeadlessElement,
|
|
1905
1924
|
Te as HeadlessPortal,
|
|
1906
1925
|
ut as HeadlessText,
|
|
1907
|
-
|
|
1926
|
+
vt as LazyUnless,
|
|
1908
1927
|
xe as LazyWhen,
|
|
1909
1928
|
ws as MapSignal,
|
|
1910
1929
|
oe as MemoryStore,
|
|
@@ -1916,14 +1935,14 @@ export {
|
|
|
1916
1935
|
Ss as OnElement,
|
|
1917
1936
|
bs as OnHeadlessCtx,
|
|
1918
1937
|
z as OneOf,
|
|
1919
|
-
|
|
1938
|
+
ve as OneOfField,
|
|
1920
1939
|
us as OneOfKind,
|
|
1921
1940
|
hs as OneOfTuple,
|
|
1922
1941
|
fs as OneOfType,
|
|
1923
1942
|
At as OneOfValue,
|
|
1924
1943
|
_s as Portal,
|
|
1925
|
-
|
|
1926
|
-
|
|
1944
|
+
N as Prop,
|
|
1945
|
+
Es as Provide,
|
|
1927
1946
|
Cs as ProvideGlobalProbe,
|
|
1928
1947
|
Ot as ProvideProbe,
|
|
1929
1948
|
de as ProviderNotFoundError,
|
|
@@ -1941,7 +1960,7 @@ export {
|
|
|
1941
1960
|
p as Value,
|
|
1942
1961
|
Pe as When,
|
|
1943
1962
|
Lt as WithProvider,
|
|
1944
|
-
|
|
1963
|
+
vs as WithProviders,
|
|
1945
1964
|
pe as _NODE_PLACEHOLDER_ATTR,
|
|
1946
1965
|
Ge as _getSelfOrParentElement,
|
|
1947
1966
|
fe as _isElement,
|
|
@@ -1977,7 +1996,7 @@ export {
|
|
|
1977
1996
|
jt as makeComputedRecord,
|
|
1978
1997
|
Be as makeEffect,
|
|
1979
1998
|
kt as makeEffectOf,
|
|
1980
|
-
|
|
1999
|
+
H as makeProp,
|
|
1981
2000
|
xt as makeProviderMark,
|
|
1982
2001
|
J as makeSignal,
|
|
1983
2002
|
Kt as math,
|
package/package.json
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Renderable } from '../types/domain';
|
|
1
|
+
import { Renderable, TNode } from '../types/domain';
|
|
2
2
|
import { Value } from '../std/value';
|
|
3
3
|
/**
|
|
4
4
|
* Maps the values emitted by a signal to a renderable function and returns a new renderable function.
|
|
@@ -11,8 +11,8 @@ import { Value } from '../std/value';
|
|
|
11
11
|
*
|
|
12
12
|
* @typeParam T - The type of values emitted by the signal.
|
|
13
13
|
* @param vlaue - The signal or value to map.
|
|
14
|
-
* @param fn - The function to map the signal values to renderable
|
|
14
|
+
* @param fn - The function to map the signal values to a renderable/TNode.
|
|
15
15
|
* @returns - A new renderable function that represents the mapped signal.
|
|
16
16
|
* @public
|
|
17
17
|
*/
|
|
18
|
-
export declare const MapSignal: <T>(value: Value<T>, fn: (value: T) =>
|
|
18
|
+
export declare const MapSignal: <T>(value: Value<T>, fn: (value: T) => TNode) => Renderable;
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import { Renderable } from '../types/domain';
|
|
2
2
|
import { DOMContext } from '../dom/dom-context';
|
|
3
|
+
export type DisposeCallback = (removeTree: boolean, ctx: DOMContext) => void;
|
|
3
4
|
/**
|
|
4
5
|
* Creates a renderable function that will be called when the component is unmounted.
|
|
5
|
-
* @param
|
|
6
|
+
* @param fns - The function(s) to be called when the component is unmounted.
|
|
6
7
|
* @returns A renderable function that takes a DOMContext and returns a function that takes a boolean indicating whether to remove the tree.
|
|
7
8
|
* @public
|
|
8
9
|
*/
|
|
9
|
-
export declare const OnDispose: (
|
|
10
|
+
export declare const OnDispose: (...fns: DisposeCallback[]) => Renderable;
|
package/renderable/style.d.ts
CHANGED
|
@@ -5,7 +5,6 @@ import { NValue, Renderable } from '../types/domain';
|
|
|
5
5
|
*/
|
|
6
6
|
export declare const style: {
|
|
7
7
|
all: (value: NValue<string>) => Renderable;
|
|
8
|
-
[Symbol.iterator]: (value: NValue<string>) => Renderable;
|
|
9
8
|
accentColor: (value: NValue<string>) => Renderable;
|
|
10
9
|
alignContent: (value: NValue<string>) => Renderable;
|
|
11
10
|
alignItems: (value: NValue<string>) => Renderable;
|
package/std/signal.d.ts
CHANGED
|
@@ -211,10 +211,15 @@ export declare class Signal<T> {
|
|
|
211
211
|
readonly feedProp: (prop: Prop<T>, autoDisposeProp?: boolean) => Prop<T>;
|
|
212
212
|
/**
|
|
213
213
|
* Derives a new property from the current signal.
|
|
214
|
-
* @param
|
|
214
|
+
* @param options - The options for the derived property.
|
|
215
|
+
* @param options.autoDisposeProp - Determines whether the derived property should be automatically disposed.
|
|
216
|
+
* @param options.equals - A function that determines if two values are equal.
|
|
215
217
|
* @returns The derived property.
|
|
216
218
|
*/
|
|
217
|
-
readonly deriveProp: (autoDisposeProp
|
|
219
|
+
readonly deriveProp: ({ autoDisposeProp, equals, }?: {
|
|
220
|
+
autoDisposeProp?: boolean;
|
|
221
|
+
equals?: (a: T, b: T) => boolean;
|
|
222
|
+
}) => Prop<T>;
|
|
218
223
|
/**
|
|
219
224
|
* Returns a signal that emits the count of values received so far.
|
|
220
225
|
* @returns A signal that emits the count of values received so far.
|
package/std/value.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { GetValueTypes } from '../types/domain';
|
|
2
|
-
import { ListenerOptions, Signal } from './signal';
|
|
2
|
+
import { ListenerOptions, Prop, Signal } from './signal';
|
|
3
3
|
/**
|
|
4
4
|
* Represents a value that can either be a `Signal<T>` or a generic type `T`.
|
|
5
5
|
*
|
|
@@ -57,6 +57,20 @@ export declare const Value: {
|
|
|
57
57
|
* @param value - The value or Signal instance to dispose of.
|
|
58
58
|
*/
|
|
59
59
|
dispose: <T>(value: Value<T>) => void;
|
|
60
|
+
/**
|
|
61
|
+
* Derives a Prop from a Signal.
|
|
62
|
+
* If the value is a Signal, it returns a new Prop with the derived value.
|
|
63
|
+
* If the value is not a Signal, it returns a new Prop with the value.
|
|
64
|
+
* @param value - The value or Signal instance to derive the Prop from.
|
|
65
|
+
* @param options - The options for the derived Prop.
|
|
66
|
+
* @param options.autoDisposeProp - Determines whether the derived Prop should be automatically disposed.
|
|
67
|
+
* @param options.equals - A function that determines if two values are equal.
|
|
68
|
+
* @returns A Prop instance.
|
|
69
|
+
*/
|
|
70
|
+
deriveProp: <T>(value: Value<T>, { autoDisposeProp, equals, }?: {
|
|
71
|
+
autoDisposeProp?: boolean;
|
|
72
|
+
equals?: (a: T, b: T) => boolean;
|
|
73
|
+
}) => Prop<T>;
|
|
60
74
|
};
|
|
61
75
|
/**
|
|
62
76
|
* Creates a computed signal that depends on other signals or literal values and updates when any of the dependencies change.
|
package/types/css-styles.d.ts
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
*
|
|
4
4
|
* @public
|
|
5
5
|
*/
|
|
6
|
-
export type ExcludeFromStyle = 'getPropertyPriority' | 'getPropertyValue' | 'item' | 'removeProperty' | 'setProperty' | 'parentRule' | 'length' | 'name' | number;
|
|
6
|
+
export type ExcludeFromStyle = 'getPropertyPriority' | 'getPropertyValue' | 'item' | 'removeProperty' | 'setProperty' | 'parentRule' | 'length' | 'name' | number | typeof Symbol.iterator;
|
|
7
7
|
/**
|
|
8
8
|
* Represents a subset of CSS styles.
|
|
9
9
|
* It is a type that excludes certain properties from the `CSSStyleDeclaration` type.
|