@tempots/dom
Version:
Fully-typed frontend framework alternative to React and Angular
2 lines (1 loc) • 33.2 kB
JavaScript
var it=Object.defineProperty;var Se=s=>{throw TypeError(s)};var ot=(s,e,t)=>e in s?it(s,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):s[e]=t;var o=(s,e,t)=>ot(s,typeof e!="symbol"?e+"":e,t),Ae=(s,e,t)=>e.has(s)||Se("Cannot "+t);var W=(s,e,t)=>(Ae(s,e,"read from private field"),t?t.call(s):e.get(s)),Ee=(s,e,t)=>e.has(s)?Se("Cannot add the same private member more than once"):e instanceof WeakSet?e.add(s):e.set(s,t),se=(s,e,t,r)=>(Ae(s,e,"write to private field"),r?r.call(s,t):e.set(s,t),t);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const Ce=(s,e,t)=>s+(e-s)*t,_e=97,we=(s,e,t)=>{const r=Math.max(s.length,e.length);let n="";for(let i=0;i<r;i++){let l=s.charCodeAt(i);isNaN(l)&&(l=_e);let c=e.charCodeAt(i);isNaN(c)&&(c=_e),n+=String.fromCharCode(l+(c-l)*t)}return n},Pe=(s,e,t)=>new Date(s.getTime()+(e.getTime()-s.getTime())*t),xe=(s,e)=>e,Oe=s=>typeof s=="number"?Ce:typeof s=="string"?we:s instanceof Date?Pe:xe;var C;class G{constructor(e,t){o(this,"counter");o(this,"isFirst");o(this,"isEven");o(this,"isOdd");Ee(this,C);o(this,"dispose",()=>{var e;(e=W(this,C))==null||e.dispose(),se(this,C,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 W(this,C)==null&&se(this,C,this.total.map(e=>this.counter===e)),W(this,C)}}C=new WeakMap;const N=class N{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=>{if(this._disposed)return;const t=this._value;this.equals(t,e)||(this._value=e,this._onValueListeners.forEach(n=>n(e,t)))});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 x(()=>{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 x(()=>{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 x(()=>{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 x(()=>{try{const l=this.get(),c=e(l);return n=c??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=A(t,n);let l=0,c=new AbortController;return i.onDispose(this.on(async a=>{const u=++l;c.abort(),c=new AbortController;try{const h=await e(a,{abortSignal:c.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(A(this.get(),t),e));o(this,"derive",()=>this.map(e=>e));o(this,"count",()=>{let e=0;return this.map(()=>++e)});o(this,"setDerivative",e=>{this._derivatives.push(e),e.onDispose(()=>{this._derivatives.splice(this._derivatives.indexOf(e),1)}),e.onDispose(this.on(e.setDirty)),this.onDispose(e.dispose)});this.equals=t,this._value=e}get value(){return this._value}get $(){return this._$!==void 0?this._$:this._$=new Proxy(this,{get:(e,t)=>this.at(t)})}};o(N,"ofPromise",(e,t,r,n=(i,l)=>i===l)=>{const i=new N(t,n);return e.then(l=>i._setAndNotify(l)).catch(l=>{r!=null?i._setAndNotify(r(l)):console.error("Unhandled promise rejection in Signal.ofPromise:",l)}),i}),o(N,"is",e=>e!=null&&e.$__signal__===!0);let d=N;const lt=typeof queueMicrotask=="function"?queueMicrotask:s=>Promise.resolve().then(s);class x extends d{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;lt(()=>{this._scheduleCount!==t||this._disposed||this._isDirty&&(this._isDirty=!1,this._setAndNotify(this._fn()))})});o(this,"get",()=>(this._isDirty&&(this._isDirty=!1,this._setAndNotify(this._fn())),this._value));this._fn=t,this.setDirty()}static is(t){return t!=null&&t.$__computed__===!0}get value(){return this.get()}}const Q=class Q extends d{constructor(){super(...arguments);o(this,"$__prop__",!0);o(this,"set",t=>{this._setAndNotify(t)});o(this,"update",t=>{this._setAndNotify(t(this.get()))});o(this,"reducer",(t,...r)=>{const n=this;return function i(l){const c=n.value;n.update(a=>t(a,l)),!n.equals(c,n.value)&&r.forEach(a=>a({previousState:c,state:n.value,action:l,dispatch:i}))}});o(this,"iso",(t,r,n=(i,l)=>i===l)=>{const i=new Q(t(this.get()),n);return i.onDispose(this.on(l=>i.set(t(l)))),i.on(l=>this._setAndNotify(r(l))),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)}};o(Q,"is",t=>t!=null&&t.$__prop__===!0);let k=Q;const Z=(s,e,t=(r,n)=>r===n)=>{const r=new x(s,t);return e.forEach(n=>n.setDerivative(r)),r},De=(s,e,t={})=>{let r=t.once?()=>{i(),s()}:s;if(t.skipInitial){let l=!1;const c=r;r=()=>{l?c():l=!0}}const n=Z(r,e),i=()=>{n.dispose(),t.abortSignal!=null&&t.abortSignal.removeEventListener("abort",i)};return t.abortSignal!=null&&t.abortSignal.addEventListener("abort",i),i},A=(s,e=(t,r)=>t===r)=>new k(s,e),R=(s,e=(t,r)=>t===r)=>new d(s,e),re=()=>typeof window<"u"?window:void 0,y={map:(s,e)=>d.is(s)?s.map(e):e(s),toSignal:(s,e)=>d.is(s)?s:R(s,e),maybeToSignal:(s,e)=>{if(s!=null)return y.toSignal(s,e)},get:s=>d.is(s)?s.get():s,on:(s,e)=>d.is(s)?s.on(e):(e(s),()=>{}),dispose:s=>{d.is(s)&&s.dispose()},deriveProp:(s,{autoDisposeProp:e=!0,equals:t}={})=>d.is(s)?s.deriveProp({autoDisposeProp:e,equals:t}):A(s,t)},K=(...s)=>(e,t)=>{if(s.length===1)return y.toSignal(s[0]).map(e);const r=s.filter(n=>d.is(n));return Z(()=>e(...s.map(n=>y.get(n))),r,t)},ct=s=>{const e=Object.keys(s);return K(...Object.values(s))((...t)=>Object.fromEntries(e.map((r,n)=>[r,t[n]])))},at=(...s)=>(e,t={})=>{const r=s.filter(n=>d.is(n));return De(()=>e(...s.map(y.get)),r,t)};class ne{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 ie=({key:s,defaultValue:e,store:t,serialize:r=JSON.stringify,deserialize:n=JSON.parse,equals:i=(c,a)=>c===a,onLoad:l=c=>c})=>{const c=t.getItem(s),a=new k(c!=null?l(n(c)):typeof e=="function"?e():e,i);return a.on(u=>t.setItem(s,r(u))),a},ut=s=>{var e;return ie({...s,store:((e=re())==null?void 0:e.localStorage)??new ne})},ht=s=>{var e;return ie({...s,store:((e=re())==null?void 0:e.sessionStorage)??new ne})};function ve(s){return typeof requestAnimationFrame=="function"?requestAnimationFrame(s):setTimeout(s,0)}const Le=(s,e,t,r)=>{const n=(r==null?void 0:r.duration)??300,i=(r==null?void 0:r.easing)??(_=>_),l=(r==null?void 0:r.equals)??((_,F)=>_===F);let c=r==null?void 0:r.interpolate,a=s,u=e(),h=performance.now(),m=null,T=!0;const p=new x(e,l),g=A(s,l);g.onDispose(()=>{m!==null&&cancelAnimationFrame(m)}),g.onDispose(p.dispose),t.forEach(_=>{_.setDerivative(p),_.onDispose(g.dispose)});const P=_=>{u=_,h=performance.now(),a=g.value,T&&(T=!1,m=ve(Te))},Te=()=>{const F=(performance.now()-h)/y.get(n),nt=i(F);c==null&&(c=Oe(a));let be=c(a,u,nt);F>=1?(T=!0,be=u):m=ve(Te),g.set(be)};return p.on(P),g},ft=(s,e)=>{const{initialValue:t,...r}=e??{};return Le(t??s.get(),s.get,[s],r)},Me=(s,e)=>{const t=Object.values(s).filter(d.is),r=Object.keys(s);return Z(()=>{const n={};for(const i of r)n[i]=y.get(s[i]);return e(n)},t)},dt=s=>Me(s,e=>e),pt=(s,e)=>{const t=A(s.get());let r=null;const n=s.on(i=>{r!=null&&clearTimeout(r),r=setTimeout(()=>{r=null,t.set(i)},typeof e=="function"?e(i):e)});return t.onDispose(()=>{n(),r!=null&&clearTimeout(r)}),t},mt=s=>(...e)=>K(s,...e)((t,...r)=>t(...r));function gt(...s){return K(...s)((...e)=>{for(const t of e)if(t!=null)return t})}const He=new Set(["checked","disabled","hidden"]),Ne=new Set(["selected"]),ke=new Set(["rowSpan","colSpan","tabIndex","valueAsNumber"]),Ie=new Set(["valueAsDate"]),$e=new Set(["value","textContent","innerText","innerHTML","outerHTML","className","classList"]),Re=(s,e)=>Ne.has(s)?t=>{t==null||t!==!0?e.removeAttribute(s):e.setAttribute(s,"")}:He.has(s)?t=>{t==null?e[s]=null:e[s]=!!t}:ke.has(s)?t=>{t==null?e[s]=null:e[s]=Number(t)}:Ie.has(s)?t=>{t==null?e[s]=null:e[s]=t}:$e.has(s)?t=>{t==null?e[s]=null:e[s]=String(t)}:t=>{t==null?e.removeAttribute(s):e.setAttribute(s,t)},Ve=(s,e)=>Ne.has(s)?()=>e.hasAttribute(s):He.has(s)?()=>!!e[s]:ke.has(s)?()=>Number(e[s]):Ie.has(s)?()=>e[s]:$e.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)},je=s=>oe(s)?s:s.parentElement,oe=s=>s.nodeType===1;class le extends Error{constructor(e){super(`Provider not found: ${e.description}`)}}class O{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 O(this.document,e,void 0,this.providers));o(this,"makePortal",e=>{const t=typeof e=="string"?this.document.querySelector(e):e;if(t==null)throw new Error(`Cannot find element by selector for portal: ${e}`);return this.withElement(t)});o(this,"withReference",e=>new O(this.document,this.element,e,this.providers));o(this,"setProvider",(e,t,r)=>new O(this.document,this.element,this.reference,{...this.providers,[e]:[t,r]}));o(this,"getProvider",e=>{if(this.providers[e]===void 0)throw new le(e);const[t,r]=this.providers[e];return{value:t,onUse:r}});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)=>{const n=i=>t(i,this);return this.element.addEventListener(e,n,r),i=>{i&&this.element.removeEventListener(e,n,r)}});o(this,"isBrowserDOM",()=>!0);o(this,"isBrowser",()=>!0);o(this,"isHeadlessDOM",()=>!1);o(this,"isHeadless",()=>!1);o(this,"setStyle",(e,t)=>{this.element.style[e]=t});o(this,"getStyle",e=>this.element.style[e]);o(this,"makeAccessors",e=>({get:Ve(e,this.element),set:Re(e,this.element)}));o(this,"getWindow",()=>this.document.defaultView);this.document=e,this.element=t,this.reference=r,this.providers=n}static of(e,t,r){return new O(e.ownerDocument,e,t,r)}}const qe=s=>Symbol(s),ee=(s,e)=>{const t=s(e);return(r=!0)=>t(r)},yt=(s,e,{doc:t,clear:r,disposeWithParent:n=!0,providers:i={}}={})=>{const l=typeof e=="string"?(t??document).querySelector(e):e;if(l===null)throw new Be(`Cannot find element by selector for render: ${e}`);r!==!1&&(t??l.ownerDocument)!=null&&l.nodeType===1&&(l.innerHTML="");const c=je(l),a=oe(l)?void 0:l,u=O.of(c,a,i),h=ee(s,u);let m;return n&&(m=new MutationObserver(T=>{var p;(p=T[0])==null||p.removedNodes.forEach(g=>{g===l&&(m==null||m.disconnect(),h(l.nodeType!==1))})}),m.observe(l.parentElement,{childList:!0,subtree:!1,attributes:!1})),()=>{m==null||m.disconnect(),h(!0)}},Tt=(s,{startUrl:e="https://example.com",selector:t,providers:r={}}={selector:"body"})=>{const n=y.toSignal(e).deriveProp(),i=new ae(t,void 0),l=new D(i,void 0,{currentURL:n},r);return{clear:ee(s(),l),root:i,currentURL:n}};class Be extends Error{constructor(e){super(e)}}const ce="data-tts-node",$="data-tts-class",J="data-tts-style",X="data-tts-html",Y="data-tts-text",z="data-tts-attrs";class bt{constructor({select:e,getAttribute:t,setAttribute:r,getClass:n,setClass:i,getStyles:l,setStyles:c,appendHTML:a,getInnerHTML:u,setInnerHTML:h,getInnerText:m,setInnerText:T}){o(this,"select");o(this,"getAttribute");o(this,"setAttribute");o(this,"getClass");o(this,"setClass");o(this,"getStyles");o(this,"setStyles");o(this,"appendHTML");o(this,"getInnerHTML");o(this,"setInnerHTML");o(this,"getInnerText");o(this,"setInnerText");o(this,"setFromRoot",(e,t)=>{e.getPortals().forEach(n=>{const i=typeof n.selector=="string"?this.select(n.selector):[n.selector];for(const l of i){if(l==null)throw new Error(`Cannot find element by selector for render: ${n.selector}`);if(n.hasChildren()&&this.appendHTML(l,n.contentToHTML(t)),n.hasInnerHTML()){if(t){const c=this.getInnerHTML(l);c!=null&&this.setAttribute(l,X,c)}this.setInnerHTML(l,n.getInnerHTML())}if(n.hasInnerText()){if(t){const c=this.getInnerText(l);c!=null&&this.setAttribute(l,Y,c)}this.setInnerText(l,n.getInnerText())}if(n.hasClasses()){if(t){const c=this.getClass(l);c!=null&&this.setAttribute(l,$,c)}this.setClass(l,n.getClasses().join(" "))}if(n.hasStyles()){if(t){const c=this.getStyles(l);Object.keys(c).length>0&&this.setAttribute(l,J,JSON.stringify(c))}this.setStyles(l,n.getStyles())}if(n.hasAttributes()){const c=n.getAttributes();if(t){const a=[];c.forEach(([u])=>{const h=this.getAttribute(l,u);h!=null&&a.push([u,h])}),a.length>0&&this.setAttribute(l,z,JSON.stringify(Object.fromEntries(a)))}c.forEach(([a,u])=>{this.setAttribute(l,a,u)})}}})});this.select=e,this.getAttribute=t,this.setAttribute=r,this.getClass=n,this.setClass=i,this.getStyles=l,this.setStyles=c,this.appendHTML=a,this.getInnerHTML=u,this.setInnerHTML=h,this.getInnerText=m,this.setInnerText=T}}const St=()=>{document.querySelectorAll(`[${ce}]`).forEach(I)},At=s=>{const e=s.getAttribute($);s.removeAttribute($),e!=null&&s.setAttribute("class",e)},Et=()=>{document.querySelectorAll(`[${$}]`).forEach(e=>At(e))},_t=s=>{const e=s.getAttribute(X);s.removeAttribute(X),e!=null&&(s.innerHTML=e)},vt=()=>{document.querySelectorAll(`[${X}]`).forEach(e=>_t(e))},Ct=s=>{const e=s.getAttribute(Y);s.removeAttribute(Y),e!=null&&(s.innerText=e)},wt=()=>{document.querySelectorAll(`[${Y}]`).forEach(e=>Ct(e))},Fe=s=>JSON.parse(s.replace(/"/g,'"')),Pt=s=>{const e=s.getAttribute(J);if(s.removeAttribute(J),e!=null){const t=Fe(e);Object.entries(t).forEach(([r,n])=>{s.style.setProperty(r,n)})}},xt=()=>{document.querySelectorAll(`[${J}]`).forEach(e=>Pt(e))},Ot=s=>{const e=s.getAttribute(z);if(s.removeAttribute(z),e!=null){const t=Fe(e);Object.entries(t).forEach(([r,n])=>{n==null?s.removeAttribute(r):s.setAttribute(r,n)})}},Dt=()=>{document.querySelectorAll(`[${z}]`).forEach(e=>Ot(e))},Lt=()=>{St(),Et(),wt(),vt(),xt(),Dt()},S=Symbol("class"),v=Symbol("style"),M=Symbol("handler"),We=()=>Math.random().toString(36).substring(2,15),Mt=s=>s.replace(/<[^>]*>?/g,"");class Ue{constructor(e){o(this,"id",We());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?Mt(this.properties.innerHTML):this.children.map(e=>e.getText()).join(""));o(this,"removeChild",e=>{const t=this.children.indexOf(e);t!==-1&&this.children.splice(t,1)});o(this,"remove",()=>{if(this.parent!=null)this.parent.removeChild(this);else throw new Error("Parent is undefined")});o(this,"getPortals",()=>{const e=this.elements().flatMap(t=>t.isPortal()?[t,...t.getPortals()]:t.getPortals());return this.isPortal()&&e.unshift(this),e});o(this,"elements",()=>this.children.filter(e=>e.isElement()));o(this,"hasInnerHTML",()=>this.properties.innerHTML!=null);o(this,"getInnerHTML",()=>this.properties.innerHTML??"");o(this,"getInnerText",()=>this.properties.innerText??"");o(this,"hasInnerText",()=>this.properties.innerText!=null);o(this,"hasChildren",()=>this.children.length>0);o(this,"hasClasses",()=>this.properties[S]!=null);o(this,"hasStyles",()=>this.properties[v]!=null);o(this,"hasAttributes",()=>Object.keys(this.properties).length>0);o(this,"hasHandlers",()=>this.properties[M]!=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[M]??{})[e]??[]).forEach(n=>n(t))});o(this,"click",()=>{this.trigger("click",{})});o(this,"on",(e,t,r,n)=>{var a;const i=(a=this.properties)[M]??(a[M]={}),l=n!=null&&n.once?u=>{c(),t(u,r)}:u=>t(u,r);i[e]=[...i[e]??[],l];const c=()=>{const u=i[e]??[],h=u.indexOf(l);h!==-1&&(u.splice(h,1),u.length===0?(delete i[e],Object.keys(i).length===0&&delete this.properties[M]):i[e]=u,(n==null?void 0:n.signal)!=null&&n.signal.removeEventListener("abort",c))};return(n==null?void 0:n.signal)!=null&&n.signal.addEventListener("abort",c),c});o(this,"addClasses",e=>{var r;if(e.length===0)return;const t=(r=this.properties)[S]??(r[S]=[]);e.forEach(n=>{t.includes(n)||t.push(n)})});o(this,"removeClasses",e=>{var r;if(e.length===0)return;const t=(r=this.properties)[S]??(r[S]=[]);e.forEach(n=>{const i=t.indexOf(n);i!==-1&&t.splice(i,1)}),t.length===0&&delete this.properties[S]});o(this,"getClasses",()=>this.properties[S]??[]);o(this,"getAttributes",()=>Object.entries(this.properties).filter(([e])=>!["innerText","innerHTML"].includes(e)));o(this,"getVisibleAttributes",()=>Reflect.ownKeys(this.properties).flatMap(e=>e===S?[["class",this.getClasses()]]:e===v?[["style",this.getStyles()]]:typeof e=="string"?[[e,String(this.properties[e])]]:[]));o(this,"setStyle",(e,t)=>{var n;const r=(n=this.properties)[v]??(n[v]={});r[e]=t,t===""&&(delete r[e],Object.keys(r).length===0&&delete this.properties[v])});o(this,"getStyle",e=>{var t;return((t=this.properties[v])==null?void 0:t[e])??""});o(this,"getStyles",()=>this.properties[v]??{});o(this,"makeAccessors",e=>{const t=this.properties;return{get:()=>t[e],set:r=>t[e]=r}});this.parent=e}}const Ht=s=>s.replace(/"/g,"""),Nt=s=>s.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">");class Ge extends Ue{constructor(t,r,n){super(n);o(this,"isPortal",()=>!1);o(this,"toHTML",(t=!1)=>{const r=this.children.map(a=>a.toHTML()).join(""),n=this.namespace?` xmlns="${this.namespace}"`:"";let i=null;const l=this.getVisibleAttributes().map(([a,u])=>a==="class"?` class="${u.join(" ")}"`:a==="style"?typeof u=="string"?` style="${u}"`:` style="${Object.entries(u).map(([h,m])=>`${h}: ${m};`).join(" ")}"`:kt.has(a)?` ${a}`:a==="innerHTML"?(i=u,""):a==="innerText"?(i=Nt(u),""):` ${a}="${Ht(u)}"`).join(""),c=t?` ${ce}`:"";return It.has(this.tagName)&&r===""?`<${this.tagName}${n}${l}${c} />`:`<${this.tagName}${n}${l}${c}>${i??r}</${this.tagName}>`});this.tagName=t,this.namespace=r}}class ae extends Ue{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 Je{constructor(e){o(this,"id",We());o(this,"isElement",()=>!1);o(this,"isText",()=>!0);o(this,"getText",()=>this.text);o(this,"toHTML",()=>this.text);this.text=e}}class D{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 Ge(e,t,this.element);return this.appendOrInsert(r),new D(r,void 0,this.container,this.providers)});o(this,"makeChildText",e=>{const t=new Je(e);return this.appendOrInsert(t),new D(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 ae(e,this.element);return this.appendOrInsert(t),new D(t,void 0,this.container,this.providers)});o(this,"setProvider",(e,t,r)=>new D(this.element,this.reference,this.container,{...this.providers,[e]:[t,r]}));o(this,"getProvider",e=>{if(this.providers[e]===void 0)throw new le(e);const[t,r]=this.providers[e];return{value:t,onUse:r}});o(this,"clear",e=>{e&&(this.reference!==void 0?this.element.removeChild(this.reference):this.element.remove())});o(this,"on",(e,t)=>this.element.on(e,t,this));o(this,"addClasses",e=>this.element.addClasses(e));o(this,"removeClasses",e=>this.element.removeClasses(e));o(this,"getClasses",()=>this.element.getClasses());o(this,"isBrowserDOM",()=>!1);o(this,"isBrowser",()=>!1);o(this,"isHeadlessDOM",()=>!0);o(this,"isHeadless",()=>!0);o(this,"setStyle",(e,t)=>this.element.setStyle(e,t));o(this,"getStyle",e=>this.element.getStyle(e));o(this,"makeAccessors",e=>this.element.makeAccessors(e));this.element=e,this.reference=t,this.container=r,this.providers=n}}const kt=new Set(["checked","disabled","multiple","readonly","required","selected"]),It=new Set(["img","br","hr","input","link","meta"]),ue=s=>e=>e.makeChildText(s).clear,he=s=>e=>{const t=e.makeChildText(s.value),r=s.on(t.setText);return n=>{r(),t.clear(n)}},$t=s=>d.is(s)?he(s):ue(s),b=(...s)=>e=>{const t=s.map(r=>f(r)(e));return r=>{t.forEach(n=>n(r))}},E=()=>()=>{},Rt=s=>e=>(e.addClasses(s),t=>{t&&e.removeClasses(s)}),Vt=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 c=>{l(),c&&n(i)}},L=new Proxy({},{get:(s,e)=>e==="class"?t=>d.is(t)?Vt(t):Rt((t??"").split(" ").filter(r=>r.length>0)):t=>d.is(t)?j(e,t):V(e,t)}),jt=new Proxy({},{get:(s,e)=>t=>d.is(t)?j(`data-${e}`,t):V(`data-${e}`,t)}),qt=new Proxy({},{get:(s,e)=>t=>d.is(t)?j(`aria-${e}`,t):V(`aria-${e}`,t)}),Bt=new Proxy({},{get:(s,e)=>t=>d.is(t)?j(e,t):V(e,t)}),Ft=new Proxy({},{get:(s,e)=>t=>d.is(t)?j(e,t):V(e,t)}),f=s=>{if(s==null)return E;if(Array.isArray(s))return b(...s.map(f));if(typeof s=="string")return ue(s);if(d.is(s))return he(s);if(typeof s=="function")return s;throw new Error(`Unknown type: '${typeof s}' for child: ${s}`)},fe=(s,...e)=>t=>{const r=t.makeChildElement(s,void 0),n=e.map(i=>f(i)(r));return i=>{n.forEach(l=>l(!1)),r.clear(i)}},de=(s,e,...t)=>r=>{const n=r.makeChildElement(s,e),i=t.map(l=>f(l)(n));return l=>{i.forEach(c=>c(!1)),n.clear(l)}},Wt=new Proxy({},{get:(s,e)=>(...t)=>fe(e,t.flatMap(f))}),Ut=new Proxy({},{get:(s,e)=>(...t)=>fe("input",L.type(e),...t)}),Gt="http://www.w3.org/2000/svg",Jt=new Proxy({},{get:(s,e)=>(...t)=>de(e,Gt,t.flatMap(f))}),Xt="http://www.w3.org/1998/Math/MathML",Yt=new Proxy({},{get:(s,e)=>(...t)=>de(e,Xt,t.flatMap(f))}),pe=(s,e)=>{if(typeof e=="function")return pe(s,{then:e});const t=e.pending!=null?f(e.pending()):E,r=e.then,n=e.error!=null?i=>f(e.error(i)):()=>E;return i=>{let l=!0;const c=s(),a=i.makeRef();let u=f(t)(a);return c.then(h=>{l&&(u(!0),u=f(r(h))(a))},h=>{l&&(u(!0),u=f(n(h))(a))}),h=>{l=!1,u(h),a.clear(h)}}},zt=(s,e)=>pe(()=>s,e),Xe=(s,e,t)=>r=>r.on(s,e,t),Ye=s=>Xe("click",(e,t)=>{e.preventDefault();const r=e.target;setTimeout(()=>{const n=r.ownerDocument!=null?r==null?void 0:r.checked:void 0;n!=null&&s(!n,t)},0)}),q=new Proxy({},{get:(s,e)=>t=>Xe(e,t)}),ze=(s,e)=>t=>{(e==null?void 0:e.preventDefault)===!0&&t.preventDefault(),(e==null?void 0:e.stopPropagation)===!0&&t.stopPropagation(),(e==null?void 0:e.stopImmediatePropagation)===!0&&t.stopImmediatePropagation(),s(t)},w=(s,e)=>ze(t=>{const r=t.target;s(r,t)},e),Qe=(s,e)=>w((t,r)=>s(t.value,r),e),Ze=(s,e)=>w((t,r)=>s(t.valueAsNumber,r),e),Ke=(s,e)=>w((t,r)=>{if(t.value==="")return;const n=t.value.split("-"),i=new Date(Number(n[0]),Number(n[1])-1,Number(n[2].substring(0,2)));s(i,r)},e),Qt=(s,e)=>w((t,r)=>{if(t.value===""){s(null,r);return}const n=t.value.split("-"),i=new Date(Number(n[0]),Number(n[1])-1,Number(n[2].substring(0,2)));s(i,r)},e),et=(s,e)=>w((t,r)=>{if(t.value==="")return;const n=t.value.split("T"),i=n[0].split("-"),l=new Date(Number(i[0]),Number(i[1])-1,Number(i[2])),c=n[1].split(":");l.setHours(Number(c[0])),l.setMinutes(Number(c[1])),l.setSeconds(Number(c[2])),s(l,r)},e),Zt=(s,e)=>w((t,r)=>{if(t.value===""){s(null,r);return}const n=t.value.split("T");if(n.length!==2){s(null,r);return}const i=n[0].split("-"),l=new Date(Number(i[0]),Number(i[1])-1,Number(i[2])),c=n[1].split(":");l.setHours(Number(c[0]??0)),l.setMinutes(Number(c[1]??0)),l.setSeconds(Number(c[2]??0)),s(l,r)},e),Kt=(s,e)=>w((t,r)=>{s(t.checked,r)},e),es=(s,e="input")=>b(L.valueAsDate(s),q[e](Ke(s.set))),ts=(s,e="input")=>b(L.valueAsDate(s),q[e](et(s.set))),ss=(s,e="input")=>b(L.valueAsNumber(s),q[e](Ze(s.set))),rs=(s,e="input")=>b(L.value(s),q[e](Qe(s.set))),ns=s=>b(L.checked(s),Ye(s.set)),B=(s,e)=>{if(d.is(s))return r=>{const n=r.makeRef();let i,l;const c=s.map(h=>Object.keys(h)[0]);let a;const u=c.on(h=>{if(h!==a){a=h,l==null||l.dispose(),i==null||i(!0),l=s.map(T=>T[h]);const m=e[h](l);i=f(m)(n)}});return h=>{l==null||l.dispose(),u(),n.clear(h),i==null||i(h)}};const t=Object.keys(s)[0];return f(e[t](R(s[t])))},me=(s,e,t)=>B(y.map(s,r=>({[r[e]]:r})),t),is=(s,e)=>me(s,"kind",e),os=(s,e)=>{const t=y.map(s,([r,n])=>({[r]:n}));return B(t,e)},ls=(s,e)=>me(s,"type",e),tt=(s,e)=>B(y.map(s,t=>({[t]:!0})),e),cs=(s,e={})=>t=>{const r=(e==null?void 0:e.firstSeparator)??s,n=(e==null?void 0:e.lastSeparator)??s;return tt(t.map(i=>i.isFirst?"first":i.isLast?"last":"other"),{first:r,last:n,other:s})},as=s=>e=>(e.appendOrInsert(s),t=>{t&&I(s)}),us=(s,e,t)=>{if(d.is(s)){const r=s;return n=>{const i=n.makeRef();let l=()=>{},c=!1,a=null;const u=r.on(h=>{h==null?(l(!0),l=f(t==null?void 0:t())(i),c=!1,a==null||a.dispose(),a=null):c?a.set(h):(a=A(h),l(!0),l=f(e(a))(i),c=!0)});return h=>{a==null||a.dispose(),u(),l==null||l(h),i.clear(h)}}}else{const r=s;if(r==null){const n=t==null?void 0:t();return n!=null?f(n):E}return f(e(R(r)))}},hs=(...s)=>(e,t)=>r=>{const n=r.makeRef();if(s.some(p=>!d.is(p)&&p==null))return(t!=null?f(t==null?void 0:t()):E)(n);const l=s.map(()=>null),c=s.map(p=>d.is(p)?p.value!=null:p!=null);let a=null;const u=A(c.every(p=>p)),h=(p,g)=>{if(p.value!=null){if(l[g]==null){const P=A(p.value);l[g]=P}else l[g].value=p.value;c[g]=!0}else c[g]=!1};let m=s.length-1;const T=s.map((p,g)=>{if(!d.is(p)){const P=A(p);return l[g]=P,()=>{}}return p.on(()=>{h(p,g),m===0?u.value=c.every(P=>P):m--})});return u.on(p=>{a==null||a(!0),a=null,p?a=f(e(...l))(n):a=f((t==null?void 0:t())??E)(n)}),p=>{l.forEach(g=>g==null?void 0:g.dispose()),u.dispose(),T.forEach(g=>g()),a==null||a(p),n.clear(p)}},H=(...s)=>e=>t=>s.forEach(r=>r(t,e)),ge=(s,e,t)=>{if(d.is(s)){const r=s;return n=>{const i=n.makeRef();let l=()=>{};const c=r.on(a=>{l(!0),a?l=f(e())(i):l=f(t==null?void 0:t())(i)});return a=>{l(a),c(),i.clear(a)}}}else{if(s){const n=e();return n!=null?f(n):E}return f(t==null?void 0:t())}},fs=(s,e,t)=>ge(y.map(s,r=>!r),e,t),ye=(s,e,t)=>{if(t!=null)return ye(s,r=>{const n=new G(r.index,r.total.map(i=>i-1));return b(H(n.dispose),f(e(r)),ge(r.isLast,()=>E,()=>t(n)))});if(d.is(s))return r=>{const n=s.derive(),i=r.makeRef(),l=[];return n.on(c=>{const a=l.splice(c);for(const u of a)u(!0);for(let u=l.length;u<c;u++){const h=new G(u,n);l.push(b(H(h.dispose),f(e(h)))(i))}}),c=>{n.dispose();for(const a of l)a(c);l.length=0,i.clear(c)}};{const r=R(s);return b(...Array.from({length:s},(n,i)=>i).map(n=>{const i=new G(n,r);return b(H(i.dispose),f(e(i)))}))}},ds=(s,e,t)=>{const r=y.map(s,i=>i.length),n=y.toSignal(s);return ye(r,i=>{const l=n.map(c=>c[i.index]);return b(H(l.dispose),f(e(l,i)))},t)},ps=(s,e)=>{if(d.is(s)){const t=s;return r=>{r=r.makeRef();const n=t.map(c=>f(e(c)));let i=()=>{};const l=n.on(c=>{i(!0),i=c(r)});return c=>{l(),i(c)}}}return f(e(s))},ms=(s,e,t=()=>E)=>B(y.map(s,r=>r.length>0?{notEmpty:r}:{whenEmpty:null}),{notEmpty:r=>e(r),whenEmpty:()=>t()}),gs=(s,e)=>t=>{const r=t.makePortal(s),n=ee(f(e),r);return()=>n(!0)},U=new Map,st=s=>({mark:qe(`Probe(${s.description})`),create:({callback:e=()=>{},timeout:t=10}={})=>{const r=c=>{clearTimeout(n),U.delete(s),e(c)};if(U.has(s))throw new Error(`Probe already exists: ${s.description}`);const n=setTimeout(()=>r("timeout"),t),i={counter:0,timeoutId:n};return U.set(s,i),{value:()=>{clearTimeout(n);const c=U.get(s);c!=null&&--c.counter===0&&r("resolved")},dispose:()=>r("disposed"),onUse:()=>i.counter++}}}),ys=st(Symbol("GlobalProbe")),Ts=(s,e)=>t=>{const r=t.getStyle(s);return t.setStyle(s,e),n=>{n&&t.setStyle(s,r)}},bs=(s,e)=>t=>{const r=t.getStyle(s),n=e.on(i=>t.setStyle(s,i));return i=>{n(),i&&t.setStyle(s,r)}},Ss=new Proxy({},{get:(s,e)=>t=>d.is(t)?bs(e,t):Ts(e,t)}),rt=s=>e=>{if(e.isBrowser()){const t=s(e);if(t!=null)return f(t)(e)}return()=>{}},As=s=>e=>{const t=s(e);return t==null?()=>{}:f(t)(e)},Es=s=>rt(e=>s(e.element)),_s=s=>e=>{if(e.isHeadlessDOM()){const t=s(e);if(t)return f(t)(e)}return()=>{}},te=s=>e=>{let t=e;function r(){return t}function n(c){t=c}const i=[],l=s({use:({mark:c})=>{const{value:a,onUse:u}=r().getProvider(c);return u==null||u(),a},set:({mark:c,create:a},u)=>{const{value:h,dispose:m,onUse:T}=a(u,r());i.push(m),n(r().setProvider(c,h,T))}});return l==null?()=>{}:b(f(l),H(()=>i.forEach(c=>c())))(r())},vs=(s,e,t)=>te(({set:r})=>(r(s,e),t())),Cs=(s,e)=>te(({use:t})=>e(t(s))),ws=(...s)=>e=>te(({use:t})=>{const r=s.map(t);return e(...r)});exports.Async=zt;exports.BindChecked=ns;exports.BindDate=es;exports.BindDateTime=ts;exports.BindNumber=ss;exports.BindText=rs;exports.BrowserContext=O;exports.CLASS_PLACEHOLDER_ATTR=$;exports.Computed=x;exports.Conjunction=cs;exports.DOMNode=as;exports.El=fe;exports.ElNS=de;exports.ElementPosition=G;exports.Empty=E;exports.Ensure=us;exports.EnsureAll=hs;exports.ForEach=ds;exports.Fragment=b;exports.GlobalProbe=ys;exports.HeadlessAdapter=bt;exports.HeadlessContext=D;exports.HeadlessElement=Ge;exports.HeadlessPortal=ae;exports.HeadlessText=Je;exports.MapSignal=ps;exports.MemoryStore=ne;exports.NotEmpty=ms;exports.OnChecked=Ye;exports.OnDispose=H;exports.OneOf=B;exports.OneOfField=me;exports.OneOfKind=is;exports.OneOfTuple=os;exports.OneOfType=ls;exports.OneOfValue=tt;exports.Portal=gs;exports.Prop=k;exports.Provide=vs;exports.ProviderNotFoundError=le;exports.RenderingError=Be;exports.Repeat=ye;exports.Signal=d;exports.Task=pe;exports.TextNode=$t;exports.Unless=fs;exports.Use=Cs;exports.UseMany=ws;exports.Value=y;exports.When=ge;exports.WithBrowserCtx=rt;exports.WithCtx=As;exports.WithElement=Es;exports.WithHeadlessCtx=_s;exports.WithProvider=te;exports._NODE_PLACEHOLDER_ATTR=ce;exports._getSelfOrParentElement=je;exports._isElement=oe;exports._makeGetter=Ve;exports._makeSetter=Re;exports._removeDOMNode=I;exports._signalText=he;exports._staticText=ue;exports.animateSignal=ft;exports.animateSignals=Le;exports.aria=qt;exports.attr=L;exports.bind=mt;exports.coalesce=gt;exports.computed=Z;exports.computedOf=K;exports.computedRecord=Me;exports.dataAttr=jt;exports.delaySignal=pt;exports.effect=De;exports.effectOf=at;exports.emit=ze;exports.emitChecked=Kt;exports.emitTarget=w;exports.emitValue=Qe;exports.emitValueAsDate=Ke;exports.emitValueAsDateTime=et;exports.emitValueAsNullableDate=Qt;exports.emitValueAsNullableDateTime=Zt;exports.emitValueAsNumber=Ze;exports.endInterpolate=xe;exports.getWindow=re;exports.guessInterpolate=Oe;exports.html=Wt;exports.input=Ut;exports.interpolateDate=Pe;exports.interpolateNumber=Ce;exports.interpolateString=we;exports.joinSignals=ct;exports.localStorageProp=ut;exports.makeProbe=st;exports.makeProviderMark=qe;exports.math=Yt;exports.mathAttr=Ft;exports.merge=dt;exports.on=q;exports.prop=A;exports.render=yt;exports.renderWithContext=ee;exports.renderableOfTNode=f;exports.restoreTempoPlaceholders=Lt;exports.runHeadless=Tt;exports.sessionStorageProp=ht;exports.signal=R;exports.storedProp=ie;exports.style=Ss;exports.svg=Jt;exports.svgAttr=Bt;
;