@memoized-dom/runtime 0.0.3 → 0.0.5

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.
@@ -0,0 +1 @@
1
+ var C=new Map;function Se(e,t,n){if(n===void 0||Array.isArray(n)&&n.length===0){C.size!==0&&C.delete(e);return}if(!t){typeof n=="number"?C.set(e,n):n.length===1?C.set(e,n[0]):C.set(e,new Set(n));return}let r=C.get(e);if(r===void 0)return;let o=typeof n=="number"?[n]:n;if(typeof r=="number"){o.some(i=>i!==r)&&C.set(e,new Set([r,...o]));return}for(let i of o)r.add(i)}function De(e){if(C.size===0)return null;let t=C.get(e)??null;return C.delete(e),t}function F(e){C.size!==0&&C.delete(e)}var x=new Map,T=new Set,Ae=typeof queueMicrotask=="function"?queueMicrotask:e=>Promise.resolve().then(e),fe=Ae;function st(e){fe=e}function dt(){fe=Ae}function lt(e){let t=0;for(let n=0;n<e.length;n++)e.charCodeAt(n)===47&&t++;return t}var Z=null,Ne=0;var Le=[],le=[];function Me(e){le.includes(e)||le.push(e)}function J(e){Le.push(e)}function Pe(e,t){for(let n of Le)n(e,t)}function X(e){let t=e.parent!==null?x.get(e.parent):void 0;e.depth=e.depth??(t&&t.depth!==void 0?t.depth+1:lt(e.id)),x.set(e.id,e),t&&(t.children??=new Set).add(e.id),Z=null,Ne++,Pe(e.id,"add")}function S(e){let t=x.get(e);if(!t)return;t.parent!==null&&x.get(t.parent)?.children?.delete(e);let n=[e],r=[],o=[];for(;n.length>0;){let i=n.pop(),s=x.get(i);if(s&&(r.push(i),s.children))for(let d of s.children)n.push(d)}r.reverse();for(let i of r)x.delete(i),T.delete(i),F(i),Pe(i,"remove");for(let i of r)for(let s of le){let d=s(i);d!==void 0&&o.push(...d)}if(Z=null,Ne++,o.length===1)throw o[0];if(o.length>1)throw new AggregateError(o,`[memo-dom] ${o.length} cleanup disposers failed while unregistering '${e}'`)}function ct(e){S(e)}function H(e){return x.has(e)}function ae(e){return x.get(e)}function ft(e){let t=o=>{if(o.children!==void 0)for(let i of o.children){let s=x.get(i);s!==void 0&&(s.phase!=="effect"&&(s.render(),W(i)),t(s))}},n=o=>{if(o.children!==void 0)for(let i of o.children){let s=x.get(i);s!==void 0&&(s.phase==="effect"&&(s.render(),W(i)),n(s))}},r=x.get(e);r!==void 0&&(t(r),n(r))}function ue(){return Z??=[...x.keys()],Z}function L(e,t){if(!x.has(e))return;let n=T.has(e);(t!==void 0||n)&&Se(e,n,t),T.add(e),Oe()}function W(e){T.size!==0&&T.delete(e)&&F(e)}function M(e){let t=e+"/",n=!1;for(let r of x.keys())(r===e||r.startsWith(t))&&(T.add(r),F(r),n=!0);n&&Oe()}var ce=!1,G=!1;function Oe(){ce||G||(ce=!0,fe(We))}function We(){if(ce=!1,!G){G=!0;try{for(let e=0;e<100&&T.size>0;e++){let t=[];for(let o of T){let i=x.get(o);i?t.push(i):(T.delete(o),F(o))}let r=t.some(o=>o.phase!=="effect")?t.filter(o=>o.phase!=="effect"):t;r.sort((o,i)=>(o.depth??0)-(i.depth??0));for(let o of r)T.delete(o.id)&&o.render(De(o.id))}if(T.size>0)throw new Error("[memo-dom] commit cascade exceeded 100 passes \u2014 an update is dirtying its own readers (cycle)")}finally{G=!1}}}function dn(){return{registry:x,dirtySet:T}}var Q=new Map,pe=new Set,$e=!1;function at(){$e||($e=!0,Me(ut))}function Y(e,t){if(typeof t!="function")throw new TypeError("[memo-dom] cleanup(disposer) requires a function");if(pe.has(e))throw new Error(`[memo-dom] cannot register cleanup while '${e}' is being unregistered`);at();let n=Q.get(e);return n===void 0&&(n=[],Q.set(e,n)),n.push(t),t}function ut(e){let t=Q.get(e);if(t===void 0)return[];Q.delete(e),pe.add(e);let n=[];try{for(let r=t.length-1;r>=0;r--)try{t[r]()}catch(o){n.push(o)}}finally{pe.delete(e)}return n}function pt(e,t){let n=[],r=!0;try{ze(e,t,n)}catch(o){let i=Ve(n);throw i.length>0?new AggregateError([o,...i],"[memo-dom] ref setup and rollback failed"):o}return()=>{if(!r)return;r=!1;let o=Ve(n);if(o.length===1)throw o[0];if(o.length>1)throw new AggregateError(o,"[memo-dom] multiple ref cleanups failed")}}function ze(e,t,n){if(t==null||t===!1)return;if(Array.isArray(t)){for(let o of t)ze(e,o,n);return}if(typeof t!="function")throw new TypeError("[memo-dom] ref value must be a callback, an assignable JSX target, or an array of refs");let r=t(e);if(r!=null){if(typeof r!="function")throw new TypeError("[memo-dom] ref callback must return a cleanup function or nothing");n.push(r)}}function Ve(e){let t=[];for(let n=e.length-1;n>=0;n--)try{e[n]()}catch(r){t.push(r)}return e.length=0,t}function Be(e,t,n){let r;H(e)&&S(e),X({id:e,parent:t,phase:"effect",render(){let o=r;r=void 0,o?.();let i=n();if(i!==void 0&&typeof i!="function")throw new TypeError(`[memo-dom] effect '${e}' must return a cleanup function or undefined`);r=typeof i=="function"?i:void 0}}),Y(e,()=>{let o=r;r=void 0,o?.()}),L(e)}function yt(e,t,n,r){let o=`${e}/$active`,i=!1;H(e)&&S(e),X({id:e,parent:t,phase:"effect",render(){let s=!!n();s!==i&&(i=s,i?Be(o,e,r):S(o))}}),Y(e,()=>{i=!1,H(o)&&S(o)}),L(e)}function gt(e,t,n,r){e[t]!==r&&(e[t]=r,n.data=r==null||typeof r=="boolean"?"":String(r))}function ht(e,t,n,r){e[t]!==r&&(e[t]=r,n.className=r)}function mt(e,t,n,r,o){e[t]!==o&&(e[t]=o,n.classList.toggle(r,o))}function Et(e,t,n,r,o){e[t]!==o&&(e[t]=o,o==null||o===!1?n.removeAttribute(r):o===!0?n.setAttribute(r,""):n.setAttribute(r,String(o)))}function wt(e,t,n,r,o){e[t]!==o&&(e[t]=o,n[r]=o)}function bt(e,t,n,r,o){e[t]!==o&&(e[t]=o,o==null?n.style.removeProperty(r):n.style.setProperty(r,o))}function xt(e,t){if(Array.isArray(e)&&Array.isArray(t)){if(e===t||e.length!==t.length)return!0;for(let n=0;n<e.length;n++)if(!Object.is(e[n],t[n])||ye(e[n]))return!0;return!1}return ye(e)||ye(t)?!0:!Object.is(e,t)}function ye(e){return typeof e=="object"&&e!==null||typeof e=="function"}var ge="",$=new Map,P=new Map,ee=new Map,he=new Set,me=[],V=new Map,K=0,te=new Map,ne=new Map;function kt(){V=new Map;let e=ue();for(let[t,n]of P){let r=new Set;for(let o of n)for(let i of e)o.test(i)&&r.add(i);V.set(t,r)}}J((e,t)=>{if(P.size===0)return;let n=!1;if(t==="add")for(let[r,o]of P){let i=V.get(r);if(i){for(let s of o)if(s.test(e)){i.add(e),n=!0;break}}}else for(let r of V.values())r.delete(e)&&(n=!0);n&&K++});function vt(e){if(!e.includes("*"))return null;let t=e.split("*").map(n=>n.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")).join("[^/]*");return new RegExp(`^${t}$`)}function Rt(e,t){ge=t;let n=new Set;for(let[r,o]of Object.entries(e.readers))for(let i of o){let s=`${r}${i}`;if(n.has(s))continue;n.add(s);let d=vt(i);if(d===null){let l=$.get(r)??[];l.includes(i)||l.push(i),$.set(r,l)}else{let l=P.get(r)??[];l.some(a=>a.source===d.source)||l.push(d),P.set(r,l)}}for(let[r,o]of Object.entries(e.params??{})){let i=ee.get(r)??[];for(let s of o)i.includes(s.pattern)||i.push(s.pattern);ee.set(r,i)}for(let r of e.opaque??[])he.add(r);me=[...new Set([...$.keys(),...P.keys()])],te.clear(),ne.clear(),kt(),K++}function It(){ge="",$=new Map,P=new Map,ee=new Map,he=new Set,me=[],V=new Map,te.clear(),ne.clear(),K++}function Ee(e){return he.has(e)}function re(){return ge}function we(e){return e.some(Ee)?"root-subtree":je(e)}function be(e,t,n){if(e.some(Ee))return"root-subtree";if(n){let r=new Set,o=!0;for(let i of e){let s=ee.get(i);if(s===void 0||s.length===0){o=!1;break}for(let d of s){let l=!1,a=d.replace(/\{([^}]+)\}/g,(m,p)=>{let D=p.trim();if(!D.startsWith("payload."))return l=!0,"";let b=n;for(let k of D.slice(8).split(".")){if(b===null||typeof b!="object")return l=!0,"";b=b[k]}return b==null?(l=!0,""):String(b)});if(l){o=!1;break}r.add(a)}if(!o)break;for(let d of $.get(i)??[])r.add(d)}if(o&&r.size>0)return[...r]}return je(e)}function je(e){let t=e.length===1?e[0]:e.join(" "),n=ne.get(t);if(n!==void 0&&n.v===K)return n.result;let r=new Set,o=new Set;for(let s of e){let d=te.get(s);if(d===void 0){d=[];for(let l of me)(l===s||l.startsWith(`${s}.`)||s.startsWith(`${l}.`))&&d.push(l);te.set(s,d)}for(let l of d)o.add(l)}for(let s of o){for(let d of $.get(s)??[])r.add(d);for(let d of V.get(s)??[])r.add(d)}let i=[...r];return ne.set(t,{v:K,result:i}),i}var Ct=1e3,_=[];function Tt(){return _}function St(){_.length=0}function Fe(e){let t=we(e);if(t==="root-subtree"){M(re());return}for(let n of t)L(n)}function Dt(e,t){let n=be(e,[],t);if(n==="root-subtree"){M(re());return}for(let r of n)L(r)}function At(e,t,n){return r=>{n(r),_.push({origin:e,writes:t,at:Date.now()}),_.length>Ct&&_.shift(),Fe(t)}}var Nt=e=>e,Lt=[],Mt=[],Pt=[];function Ot(e){let t=e.length,n=Lt,r=Mt,o=Pt;n.length=t,o.length=t,r.length=0;for(let s=0;s<t;s++)n[s]=!1,o[s]=-1;for(let s=0;s<t;s++){let d=e[s];if(d<0)continue;let l=0,a=r.length;for(;l<a;){let m=l+a>>1;e[r[m]]<d?l=m+1:a=m}r[l]=s,l>0&&(o[s]=r[l-1])}let i=r.length>0?r[r.length-1]:-1;for(;i>=0;)n[i]=!0,i=o[i];return n}function Wt(e,t,n,r=Nt,o=!0){let i=document.createComment(`list:${t}`);e.appendChild(i);let s=new Map,d=new Map,l=0,a=[],m=[],p=[],D=new Map,b=[],k=[],z=[];function de(y,E,u,v){if(y.updateProps?.(E,v),y.update!==void 0)y.update(),u!==null&&W(u);else if(u!==null){let N=ae(u);N&&(N.render(),W(u))}}function Ye(y){let E=typeof y;if(E==="string"||E==="number"||E==="boolean"||E==="bigint")return`${t}/Row[${String(y)}]`;let u=d.get(y);return u===void 0&&(u=`#${++l}`,d.set(y,u)),`${t}/Row[${u}]`}function et(y,E=!0){if(y.length===a.length){let f=!0;for(let c=0;c<y.length;c++)if(y[c]!==a[c]){f=!1;break}if(f){if(!E)return;for(let c=0;c<y.length;c++)de(m[c],y[c],o?p[c]??null:null,c);return}}let u=s,v=u.size===0;D.clear();let N=D,O=k,R=b,B=y.length;O.length=o?B:0,R.length=B,z.length=v?0:B;let q=!1,ve=0,Re=!0,Ie=-1;for(let f=0;f<y.length;f++){let c=y[f],w=r(c,f);if(N.has(w))throw new Error(`[memo-dom] duplicate list key: ${String(w)}`);let h=v?void 0:u.get(w);if(h!==void 0){ve++,u.delete(w);let g=h.pos;z[f]=g,g<=Ie?Re=!1:Ie=g,h.pos=f,(E||c!==a[g])&&de(h.e,c,h.id,f)}else{let g=o?Ye(w):t;h={e:n(c,g,f),id:o?g:null,pos:f},v||(z[f]=-1),q=!0}N.set(w,h),R[f]=h.e,o&&(O[f]=h.id)}if(!v&&ve===0&&(B===0||q)){for(let[,g]of u)g.e.dispose?.();let f=!1,c;for(let g of m){let I=g.nodes;if(c=Array.isArray(I)?I[0]:I,c!==void 0)break}if(c!==void 0&&c.parentNode===e&&i.parentNode===e&&typeof document.createRange=="function"){let g=document.createRange();g.setStartBefore(c),g.setEndBefore(i),g.deleteContents(),f=!0}for(let[g,I]of u){if(!f){let A=I.e.nodes;if(Array.isArray(A))for(let U of A)U.parentNode?.removeChild(U);else A.parentNode?.removeChild(A)}for(let A of I.e.entities)S(A);d.delete(g)}if(u.clear(),B!==0){let g=document.createDocumentFragment();for(let I=0;I<R.length;I++){let A=R[I].nodes;if(Array.isArray(A))for(let U of A)g.appendChild(U);else g.appendChild(A)}e.insertBefore(g,i)}s=N,D=u;let w=m;m=R,b=w;let h=p;p=O,k=h,b.length=0,k.length=0,a=y.slice();return}if(v&&q){let f=document.createDocumentFragment();for(let h=0;h<R.length;h++){let g=R[h].nodes;if(Array.isArray(g))for(let I of g)f.appendChild(I);else f.appendChild(g)}e.insertBefore(f,i),s=N,D=u;let c=m;m=R,b=c;let w=p;p=O,k=w,b.length=0,k.length=0,a=y.slice();return}if(!q&&u.size===0&&Re){s=N,D=u;let f=m;m=R,b=f;let c=p;p=O,k=c,b.length=0,k.length=0,a=y.slice();return}for(let[f,c]of u){c.e.dispose?.();let w=c.e.nodes;if(Array.isArray(w))for(let h of w)h.parentNode?.removeChild(h);else w.parentNode?.removeChild(w);for(let h of c.e.entities)S(h);d.delete(f)}u.clear();let rt=Ot(z),Ce=i,j=null,Te=()=>{if(j===null)return;let f=document.createDocumentFragment();for(let c=j.length-1;c>=0;c--){let w=j[c].nodes;if(Array.isArray(w))for(let h of w)f.appendChild(h);else f.appendChild(w)}e.insertBefore(f,Ce),j=null};for(let f=R.length-1;f>=0;f--){let c=R[f];z[f]===-1||!rt[f]?(j??=[]).push(c):(Te(),Ce=Array.isArray(c.nodes)?c.nodes[0]:c.nodes)}Te(),s=N,D=u;let ot=m;m=R,b=ot;let it=p;p=O,k=it,b.length=0,k.length=0,a=y.slice()}function tt(y){let E=s.get(y);E!==void 0&&de(E.e,a[E.pos],E.id,E.pos)}function nt(){for(let[y,E]of s){E.e.dispose?.();let u=E.e.nodes;if(Array.isArray(u))for(let v of u)v.parentNode?.removeChild(v);else u.parentNode?.removeChild(u);for(let v of E.e.entities)S(v);d.delete(y)}s.clear(),D.clear(),a=[],m.length=0,p.length=0,b.length=0,k.length=0,i.parentNode?.removeChild(i)}return{reconcile:et,refreshKey:tt,size:()=>s.size,dispose:nt}}function $t(e){return e.nodeType===Node.DOCUMENT_FRAGMENT_NODE?Array.from(e.childNodes):[e]}var He=new Map,Ke=new Map;function Vt(e,t,n){let r=t;r[e.handler]=n,r[e.rootKey]=e.root}function zt(e,t){let n=Bt(t);return jt(e,n),{root:e,handler:n.handler,rootKey:n.root}}function Bt(e){let t=Ke.get(e);if(t!==void 0)return t;let n=Ht(e);return t=He.get(n),t===void 0&&(t={handler:Symbol(`memo-dom:${n}:handler`),root:Symbol(`memo-dom:${n}:root`),roots:new WeakSet,type:n},He.set(n,t)),Ke.set(e,t),t}function jt(e,t){t.roots.has(e)||(t.roots.add(e),e.addEventListener(t.type,n=>{n.bubbles&&_e(e,t,n)}),e.addEventListener(t.type,n=>{n.bubbles||_e(e,t,n)},!0))}function _e(e,t,n){let r=typeof n.composedPath=="function"?n.composedPath():Ft(n.target,e);for(let o of r){let i=o;if(i[t.root]===e){let s=i[t.handler];s!==void 0&&s.call(o,n)===!1&&n.preventDefault()}if(o===e||n.cancelBubble)break}}function Ft(e,t){let n=[],r=e;for(;r!==null&&(n.push(r),r!==t);)r="parentNode"in r?r.parentNode:null;return n}function Ht(e){let t=e.startsWith("on")?e.slice(2).toLowerCase():e.toLowerCase();return t==="doubleclick"?"dblclick":t}var oe=new WeakMap,Kt=new Set(["animation-iteration-count","border-image-outset","border-image-slice","border-image-width","column-count","flex","flex-grow","flex-shrink","font-weight","grid-column","grid-row","line-height","opacity","order","orphans","scale","tab-size","widows","z-index","zoom"]);function ie(e){let t=[];return qe(e,t),t.join(" ")}function xe(e,t){let n=ie(t);e.namespaceURI==="http://www.w3.org/2000/svg"?n===""?e.removeAttribute("class"):e.setAttribute("class",n):e.className=n}function ke(e,t){let n=e.style;if(n===void 0)return;if(typeof t=="string"){let i=oe.get(e);if(i?.size===1&&i.get("$cssText")===t)return;n.cssText=t,oe.set(e,new Map([["$cssText",t]]));return}let r=new Map;if(t!==null&&typeof t=="object")for(let[i,s]of Object.entries(t)){if(s==null)continue;let d=_t(i);r.set(d,qt(d,s))}let o=oe.get(e)??new Map;o.has("$cssText")&&(n.cssText="");for(let i of o.keys())i!=="$cssText"&&!r.has(i)&&n.removeProperty(i);for(let[i,s]of r)o.get(i)!==s&&n.setProperty(i,s);oe.set(e,r)}function qe(e,t){if(e==null||e===!1||e===!0)return;if(Array.isArray(e)){for(let r of e)qe(r,t);return}if(typeof e=="object"){for(let[r,o]of Object.entries(e))o&&t.push(r);return}let n=String(e).trim();n!==""&&t.push(n)}function _t(e){return e.startsWith("--")||e.includes("-")?e:e.replace(/^ms([A-Z])/,"ms-$1").replace(/[A-Z]/g,t=>`-${t.toLowerCase()}`)}function qt(e,t){return typeof t=="number"&&t!==0&&!e.startsWith("--")&&!Kt.has(e)?`${t}px`:String(t)}var Ue=new WeakMap,Ge=new WeakMap,Ut=new Set(["innerHTML","checked","value","selected","disabled","hidden","multiple","required","readOnly","muted","open","controls","loop","autoFocus","autoPlay","tabIndex"]),Ze={className:"class",htmlFor:"for",readOnly:"readonly",autoFocus:"autofocus",autoPlay:"autoplay",tabIndex:"tabindex",crossOrigin:"crossorigin"},Gt={className:"class",clipPath:"clip-path",clipRule:"clip-rule",colorInterpolation:"color-interpolation",colorInterpolationFilters:"color-interpolation-filters",dominantBaseline:"dominant-baseline",fillOpacity:"fill-opacity",fillRule:"fill-rule",floodColor:"flood-color",floodOpacity:"flood-opacity",fontFamily:"font-family",fontSize:"font-size",markerEnd:"marker-end",markerMid:"marker-mid",markerStart:"marker-start",stopColor:"stop-color",stopOpacity:"stop-opacity",strokeDasharray:"stroke-dasharray",strokeDashoffset:"stroke-dashoffset",strokeLinecap:"stroke-linecap",strokeLinejoin:"stroke-linejoin",strokeMiterlimit:"stroke-miterlimit",strokeOpacity:"stroke-opacity",strokeWidth:"stroke-width",textAnchor:"text-anchor",vectorEffect:"vector-effect",xlinkHref:"xlink:href"},Zt={doubleclick:"dblclick"};function Jt(e,t,n,r=[]){let o=t!==null&&typeof t=="object"?t:{},i=Ue.get(e)??new Map,s=new Set(r);for(let l of i.keys())Object.prototype.hasOwnProperty.call(o,l)||Je(e,l,null,i,n,s);for(let[l,a]of Object.entries(o))Je(e,l,a,i,n,s);let d=new Map;for(let[l,a]of Object.entries(o))d.set(l,Qe(l,a));Ue.set(e,d)}function Xe(e,t,n){if(t==="class"||t==="className"){xe(e,n);return}if(t==="style"){ke(e,n);return}Yt(e,t,n)}function Je(e,t,n,r,o,i){if(t==="key"||t==="children"||t==="ref")return;if(/^on[A-Z]/.test(t)){Xt(e,t,typeof n=="function"?n:null,o,i.has(t));return}let s=Qe(t,n);Object.is(r.get(t),s)||Xe(e,t,n)}function Qe(e,t){return e==="class"||e==="className"?ie(t):e==="style"?Symbol("style-snapshot"):t==null||typeof t=="string"||typeof t=="number"||typeof t=="boolean"?t:String(t)}function Xt(e,t,n,r,o){let i=Ge.get(e);i===void 0&&(i=new Map,Ge.set(e,i));let s=i.get(t);if(s?.source===n||(s!==void 0&&(e.removeEventListener(s.type,s.listener),i.delete(t)),n===null))return;let d=Qt(t),l=o?n:function(m){let p=n.call(this,m);return M(r),p!==null&&typeof p=="object"&&"then"in p&&typeof p.then=="function"&&p.then(()=>{M(r)}),p};e.addEventListener(d,l),i.set(t,{source:n,listener:l,type:d})}function Qt(e){let t=e.slice(2).toLowerCase();return Zt[t]??t}function Yt(e,t,n){let r=e.namespaceURI!=="http://www.w3.org/2000/svg";if(r&&Ut.has(t)){if(t==="tabIndex"&&n==null){e.removeAttribute("tabindex");return}e[t]=n??en(t);return}let o=r?Ze[t]??t:Gt[t]??Ze[t]??t;n==null||n===!1?e.removeAttribute(o):n===!0?e.setAttribute(o,""):!r&&t==="xlinkHref"?e.setAttributeNS("http://www.w3.org/1999/xlink","xlink:href",String(n)):e.setAttribute(o,String(n))}function en(e){return e==="value"||e==="innerHTML"?"":!1}function tn(e,t,n,r){let o=document.createComment(`when:${t}`);e.appendChild(o);let i=-1,s=null;function d(){let a=n();if(a===i){s?.update();return}if(s!==null){s.dispose?.();for(let p of s.nodes)p.parentNode?.removeChild(p);s=null}let m=r[a]??null;if(m!==null){s=m();for(let p=s.nodes.length-1;p>=0;p--)o.parentNode.insertBefore(s.nodes[p],o)}i=a}function l(){if(s!==null){s.dispose?.();for(let a of s.nodes)a.parentNode?.removeChild(a);s=null}o.parentNode?.removeChild(o),i=-1}return d(),{update:d,index:()=>i,dispose:l}}var se=new Map;function nn(e,t){se.set(e,t)}function rn(e,t){let n=se.get(e);if(n===void 0)return;let r=n.length!==t.length;if(!r){for(let o=0;o<t.length;o++)if(!Object.is(n[o],t[o])){r=!0;break}}if(r){n.length=t.length;for(let o=0;o<t.length;o++)n[o]=t[o];L(e)}}function Nn(e){return se.get(e)}J((e,t)=>{t==="remove"&&se.delete(e)});export{st as a,dt as b,X as c,S as d,ct as e,H as f,ae as g,ft as h,ue as i,L as j,W as k,M as l,We as m,dn as n,Y as o,pt as p,Be as q,yt as r,gt as s,ht as t,mt as u,Et as v,wt as w,bt as x,xt as y,Rt as z,It as A,Ee as B,re as C,we as D,be as E,Tt as F,St as G,Fe as H,Dt as I,At as J,Wt as K,$t as L,Vt as M,zt as N,ie as O,xe as P,ke as Q,Jt as R,Xe as S,tn as T,nn as U,rn as V,Nn as W};
@@ -5,5 +5,12 @@
5
5
  * root that owns it. This avoids a listener and a handler-record allocation
6
6
  * per row while allowing nested delegated roots to dispatch independently.
7
7
  */
8
- export declare function setDelegatedEvent(root: EventTarget, element: EventTarget, jsxName: string, handler: EventListener): void;
8
+ export interface DelegatedEventBinding {
9
+ root: EventTarget;
10
+ handler: symbol;
11
+ rootKey: symbol;
12
+ }
13
+ export declare function setDelegatedEvent(binding: DelegatedEventBinding, element: EventTarget, handler: EventListener): void;
14
+ /** Resolve one event type and install its root listeners once per list. */
15
+ export declare function createDelegatedEventBinding(root: EventTarget, jsxName: string): DelegatedEventBinding;
9
16
  //# sourceMappingURL=delegated-events.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"delegated-events.d.ts","sourceRoot":"","sources":["../src/delegated-events.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAaH,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,WAAW,EACjB,OAAO,EAAE,WAAW,EACpB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,aAAa,GACrB,IAAI,CAiCN"}
1
+ {"version":3,"file":"delegated-events.d.ts","sourceRoot":"","sources":["../src/delegated-events.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAWH,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,WAAW,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;CACjB;AAKD,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,qBAAqB,EAC9B,OAAO,EAAE,WAAW,EACpB,OAAO,EAAE,aAAa,GACrB,IAAI,CAIN;AAED,2EAA2E;AAC3E,wBAAgB,2BAA2B,CACzC,IAAI,EAAE,WAAW,EACjB,OAAO,EAAE,MAAM,GACd,qBAAqB,CAIvB"}
package/dist/index.d.ts CHANGED
@@ -23,7 +23,7 @@ export type { EventRecord } from './events';
23
23
  export { createListRegion } from './list';
24
24
  export type { ListRegion, ListEntry, KeyFn } from './list';
25
25
  export { rootNodes } from './jsx-dom';
26
- export { setDelegatedEvent } from './delegated-events';
26
+ export { createDelegatedEventBinding, setDelegatedEvent, type DelegatedEventBinding, } from './delegated-events';
27
27
  export { patchDomProps, setDomValue } from './dom-props';
28
28
  export { classValue, setClassValue, setStyleValue } from './dom-values';
29
29
  export { createCondRegion } from './cond';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EACL,QAAQ,EACR,UAAU,EACV,iBAAiB,EACjB,aAAa,EACb,GAAG,EACH,SAAS,EACT,OAAO,EACP,gBAAgB,EAChB,MAAM,EACN,YAAY,EACZ,cAAc,EACd,SAAS,EACT,iBAAiB,GAClB,MAAM,UAAU,CAAC;AAClB,YAAY,EACV,gBAAgB,EAChB,YAAY,EACZ,MAAM,EACN,QAAQ,GACT,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,YAAY,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AACjD,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAClC,YAAY,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AACpD,OAAO,EAAE,yBAAyB,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AACrE,YAAY,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAEhE,OAAO,EACL,OAAO,EACP,YAAY,EACZ,QAAQ,EACR,OAAO,EACP,OAAO,EACP,QAAQ,EACR,eAAe,GAChB,MAAM,WAAW,CAAC;AACnB,YAAY,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAE3C,OAAO,EACL,kBAAkB,EAClB,gBAAgB,EAChB,aAAa,EACb,mBAAmB,EACnB,QAAQ,EACR,SAAS,GACV,MAAM,UAAU,CAAC;AAClB,YAAY,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAE5C,OAAO,EACL,YAAY,EACZ,uBAAuB,EACvB,MAAM,EACN,WAAW,EACX,aAAa,GACd,MAAM,UAAU,CAAC;AAClB,YAAY,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAE5C,OAAO,EAAE,gBAAgB,EAAE,MAAM,QAAQ,CAAC;AAC1C,YAAY,EAAE,UAAU,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAC;AAC3D,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AACzD,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAExE,OAAO,EAAE,gBAAgB,EAAE,MAAM,QAAQ,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAClD,YAAY,EAAE,UAAU,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,QAAQ,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EACL,QAAQ,EACR,UAAU,EACV,iBAAiB,EACjB,aAAa,EACb,GAAG,EACH,SAAS,EACT,OAAO,EACP,gBAAgB,EAChB,MAAM,EACN,YAAY,EACZ,cAAc,EACd,SAAS,EACT,iBAAiB,GAClB,MAAM,UAAU,CAAC;AAClB,YAAY,EACV,gBAAgB,EAChB,YAAY,EACZ,MAAM,EACN,QAAQ,GACT,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,YAAY,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AACjD,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAClC,YAAY,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AACpD,OAAO,EAAE,yBAAyB,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AACrE,YAAY,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAEhE,OAAO,EACL,OAAO,EACP,YAAY,EACZ,QAAQ,EACR,OAAO,EACP,OAAO,EACP,QAAQ,EACR,eAAe,GAChB,MAAM,WAAW,CAAC;AACnB,YAAY,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAE3C,OAAO,EACL,kBAAkB,EAClB,gBAAgB,EAChB,aAAa,EACb,mBAAmB,EACnB,QAAQ,EACR,SAAS,GACV,MAAM,UAAU,CAAC;AAClB,YAAY,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAE5C,OAAO,EACL,YAAY,EACZ,uBAAuB,EACvB,MAAM,EACN,WAAW,EACX,aAAa,GACd,MAAM,UAAU,CAAC;AAClB,YAAY,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAE5C,OAAO,EAAE,gBAAgB,EAAE,MAAM,QAAQ,CAAC;AAC1C,YAAY,EAAE,UAAU,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAC;AAC3D,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EACL,2BAA2B,EAC3B,iBAAiB,EACjB,KAAK,qBAAqB,GAC3B,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AACzD,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAExE,OAAO,EAAE,gBAAgB,EAAE,MAAM,QAAQ,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAClD,YAAY,EAAE,UAAU,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,QAAQ,CAAC"}
package/dist/index.js CHANGED
@@ -1 +1 @@
1
- import{A as z,B as A,C as B,D as C,E as D,F as E,G as F,H as G,I as H,J as I,K as J,L as K,M as L,N as M,O as N,P as O,Q as P,R as Q,S as R,T as S,U as T,a,b,c,d,e,f,g,h,i,j,k,l,m,o as n,p as o,q as p,r as q,s as r,t as s,u as t,v as u,w as v,x as w,y as x,z as y}from"./chunks/chunk-URM32S7R.js";export{M as classValue,n as cleanup,F as clearEventLog,m as commit,G as commitWrites,H as commitWritesWithPayload,x as computedChanged,R as createCondRegion,J as createListRegion,g as getEntity,E as getEventLog,B as getRootId,I as handle,f as has,y as installAccessTable,A as isOpaque,j as markDirty,l as markDirtySubtree,o as mountRef,P as patchDomProps,c as register,q as registerConditionalEffect,p as registerEffect,S as registerProps,i as registeredIds,h as renderDescendants,z as resetAccessTable,b as resetScheduler,C as resolveStaticWrites,D as resolveWrites,K as rootNodes,u as setAttr,t as setClass,s as setClassName,N as setClassValue,L as setDelegatedEvent,Q as setDomValue,v as setProp,T as setProps,a as setScheduler,w as setStyle,O as setStyleValue,r as setText,k as undirty,e as unregister,d as unregisterSubtree};
1
+ import{A as z,B as A,C as B,D as C,E as D,F as E,G as F,H as G,I as H,J as I,K as J,L as K,M as L,N as M,O as N,P as O,Q as P,R as Q,S as R,T as S,U as T,V as U,a,b,c,d,e,f,g,h,i,j,k,l,m,o as n,p as o,q as p,r as q,s as r,t as s,u as t,v as u,w as v,x as w,y as x,z as y}from"./chunks/chunk-BRFV3POR.js";export{N as classValue,n as cleanup,F as clearEventLog,m as commit,G as commitWrites,H as commitWritesWithPayload,x as computedChanged,S as createCondRegion,M as createDelegatedEventBinding,J as createListRegion,g as getEntity,E as getEventLog,B as getRootId,I as handle,f as has,y as installAccessTable,A as isOpaque,j as markDirty,l as markDirtySubtree,o as mountRef,Q as patchDomProps,c as register,q as registerConditionalEffect,p as registerEffect,T as registerProps,i as registeredIds,h as renderDescendants,z as resetAccessTable,b as resetScheduler,C as resolveStaticWrites,D as resolveWrites,K as rootNodes,u as setAttr,t as setClass,s as setClassName,O as setClassValue,L as setDelegatedEvent,R as setDomValue,v as setProp,U as setProps,a as setScheduler,w as setStyle,P as setStyleValue,r as setText,k as undirty,e as unregister,d as unregisterSubtree};
package/dist/kernel.d.ts CHANGED
@@ -44,7 +44,7 @@ export interface Entity {
44
44
  type Scheduler = (fn: () => void) => void;
45
45
  /** Swap the scheduling policy (tests, SSR, custom frame loops). */
46
46
  export declare function setScheduler(fn: Scheduler): void;
47
- /** Restore the environment default (rAF / setTimeout). */
47
+ /** Restore the environment default (microtask). */
48
48
  export declare function resetScheduler(): void;
49
49
  /** Current registry generation (see above). Introspection/resolver only. */
50
50
  export declare function registryGeneration(): number;
@@ -116,7 +116,7 @@ export declare function markDirtySubtree(id: EntityId): void;
116
116
  *
117
117
  * PUBLIC API (M5.6): this is the "flush now" entry point — the memo-dom
118
118
  * equivalent of React's flushSync / Svelte 5's flushSync. With the default
119
- * frame scheduler, `markDirty`/`commitWrites` only SCHEDULE a commit; call
119
+ * microtask scheduler, `markDirty`/`commitWrites` only SCHEDULE a commit; call
120
120
  * `commit()` to run it synchronously (tests, boundary integrations where a
121
121
  * host requires synchronous DOM, e.g. the dom-reconciler-bench contract).
122
122
  * Prefer `setScheduler(fn => fn())` when the WHOLE app should be sync.
@@ -1 +1 @@
1
- {"version":3,"file":"kernel.d.ts","sourceRoot":"","sources":["../src/kernel.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,OAAO,EAIL,KAAK,gBAAgB,EACrB,KAAK,YAAY,EAClB,MAAM,iBAAiB,CAAC;AAEzB,MAAM,MAAM,QAAQ,GAAG,MAAM,CAAC;AAC9B,YAAY,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAEtE;;;;;;GAMG;AACH,MAAM,WAAW,MAAM;IACrB,EAAE,EAAE,QAAQ,CAAC;IACb,MAAM,EAAE,QAAQ,GAAG,IAAI,CAAC;IACxB,MAAM,EAAE,CAAC,OAAO,CAAC,EAAE,YAAY,KAAK,IAAI,CAAC;IACzC,qEAAqE;IACrE,KAAK,CAAC,EAAE,QAAQ,GAAG,QAAQ,CAAC;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC;CAC1B;AAWD,KAAK,SAAS,GAAG,CAAC,EAAE,EAAE,MAAM,IAAI,KAAK,IAAI,CAAC;AAS1C,mEAAmE;AACnE,wBAAgB,YAAY,CAAC,EAAE,EAAE,SAAS,GAAG,IAAI,CAEhD;AAED,0DAA0D;AAC1D,wBAAgB,cAAc,IAAI,IAAI,CAErC;AAwBD,4EAA4E;AAC5E,wBAAgB,kBAAkB,IAAI,MAAM,CAE3C;AAED;;;;;GAKG;AACH,KAAK,gBAAgB,GAAG,CAAC,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,GAAG,QAAQ,KAAK,IAAI,CAAC;AAGvE;;;;GAIG;AACH,MAAM,MAAM,iBAAiB,GAAG,CAAC,EAAE,EAAE,QAAQ,KAAK,SAAS,OAAO,EAAE,GAAG,IAAI,CAAC;AAG5E,wBAAgB,eAAe,CAAC,EAAE,EAAE,iBAAiB,GAAG,IAAI,CAE3D;AAED,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,gBAAgB,GAAG,IAAI,CAE3D;AAMD,wBAAgB,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAgB7C;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,EAAE,EAAE,QAAQ,GAAG,IAAI,CAgDpD;AAED,mEAAmE;AACnE,wBAAgB,UAAU,CAAC,EAAE,EAAE,QAAQ,GAAG,IAAI,CAE7C;AAED,wBAAgB,GAAG,CAAC,EAAE,EAAE,QAAQ,GAAG,OAAO,CAEzC;AAED,wBAAgB,SAAS,CAAC,EAAE,EAAE,QAAQ,GAAG,MAAM,GAAG,SAAS,CAE1D;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,EAAE,EAAE,QAAQ,GAAG,IAAI,CA8BpD;AAED;;;;GAIG;AACH,wBAAgB,aAAa,IAAI,SAAS,QAAQ,EAAE,CAGnD;AAKD;;;;;GAKG;AACH,wBAAgB,SAAS,CACvB,EAAE,EAAE,QAAQ,EACZ,MAAM,CAAC,EAAE,gBAAgB,GACxB,IAAI,CAQN;AAED;;;;;GAKG;AACH,wBAAgB,OAAO,CAAC,EAAE,EAAE,QAAQ,GAAG,IAAI,CAM1C;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,QAAQ,GAAG,IAAI,CAWnD;AAcD;;;;;;;;;;;;GAYG;AACH,wBAAgB,MAAM,IAAI,IAAI,CA8C7B;AAKD,wBAAgB,UAAU,IAAI;IAC5B,QAAQ,EAAE,WAAW,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IACxC,QAAQ,EAAE,WAAW,CAAC,QAAQ,CAAC,CAAC;CACjC,CAEA"}
1
+ {"version":3,"file":"kernel.d.ts","sourceRoot":"","sources":["../src/kernel.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,OAAO,EAIL,KAAK,gBAAgB,EACrB,KAAK,YAAY,EAClB,MAAM,iBAAiB,CAAC;AAEzB,MAAM,MAAM,QAAQ,GAAG,MAAM,CAAC;AAC9B,YAAY,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAEtE;;;;;;GAMG;AACH,MAAM,WAAW,MAAM;IACrB,EAAE,EAAE,QAAQ,CAAC;IACb,MAAM,EAAE,QAAQ,GAAG,IAAI,CAAC;IACxB,MAAM,EAAE,CAAC,OAAO,CAAC,EAAE,YAAY,KAAK,IAAI,CAAC;IACzC,qEAAqE;IACrE,KAAK,CAAC,EAAE,QAAQ,GAAG,QAAQ,CAAC;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC;CAC1B;AAWD,KAAK,SAAS,GAAG,CAAC,EAAE,EAAE,MAAM,IAAI,KAAK,IAAI,CAAC;AAS1C,mEAAmE;AACnE,wBAAgB,YAAY,CAAC,EAAE,EAAE,SAAS,GAAG,IAAI,CAEhD;AAED,mDAAmD;AACnD,wBAAgB,cAAc,IAAI,IAAI,CAErC;AAwBD,4EAA4E;AAC5E,wBAAgB,kBAAkB,IAAI,MAAM,CAE3C;AAED;;;;;GAKG;AACH,KAAK,gBAAgB,GAAG,CAAC,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,GAAG,QAAQ,KAAK,IAAI,CAAC;AAGvE;;;;GAIG;AACH,MAAM,MAAM,iBAAiB,GAAG,CAAC,EAAE,EAAE,QAAQ,KAAK,SAAS,OAAO,EAAE,GAAG,IAAI,CAAC;AAG5E,wBAAgB,eAAe,CAAC,EAAE,EAAE,iBAAiB,GAAG,IAAI,CAE3D;AAED,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,gBAAgB,GAAG,IAAI,CAE3D;AAMD,wBAAgB,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAgB7C;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,EAAE,EAAE,QAAQ,GAAG,IAAI,CAgDpD;AAED,mEAAmE;AACnE,wBAAgB,UAAU,CAAC,EAAE,EAAE,QAAQ,GAAG,IAAI,CAE7C;AAED,wBAAgB,GAAG,CAAC,EAAE,EAAE,QAAQ,GAAG,OAAO,CAEzC;AAED,wBAAgB,SAAS,CAAC,EAAE,EAAE,QAAQ,GAAG,MAAM,GAAG,SAAS,CAE1D;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,EAAE,EAAE,QAAQ,GAAG,IAAI,CA8BpD;AAED;;;;GAIG;AACH,wBAAgB,aAAa,IAAI,SAAS,QAAQ,EAAE,CAGnD;AAKD;;;;;GAKG;AACH,wBAAgB,SAAS,CACvB,EAAE,EAAE,QAAQ,EACZ,MAAM,CAAC,EAAE,gBAAgB,GACxB,IAAI,CAQN;AAED;;;;;GAKG;AACH,wBAAgB,OAAO,CAAC,EAAE,EAAE,QAAQ,GAAG,IAAI,CAM1C;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,QAAQ,GAAG,IAAI,CAWnD;AAcD;;;;;;;;;;;;GAYG;AACH,wBAAgB,MAAM,IAAI,IAAI,CA8C7B;AAKD,wBAAgB,UAAU,IAAI;IAC5B,QAAQ,EAAE,WAAW,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IACxC,QAAQ,EAAE,WAAW,CAAC,QAAQ,CAAC,CAAC;CACjC,CAEA"}
package/dist/list.d.ts CHANGED
@@ -31,7 +31,7 @@
31
31
  import { type EntityId } from './kernel';
32
32
  export interface ListEntry {
33
33
  /** Detached or attached DOM nodes owned by this item (usually one root). */
34
- nodes: Node[];
34
+ nodes: Node | readonly Node[];
35
35
  /** Entity ids created for this item — unregistered on removal. */
36
36
  entities: EntityId[];
37
37
  /**
@@ -55,12 +55,17 @@ export interface ListEntry {
55
55
  }
56
56
  export type KeyFn<T> = (item: T, index: number) => unknown;
57
57
  export interface ListRegion<T> {
58
- reconcile(items: readonly T[]): void;
58
+ /**
59
+ * Reconcile collection identity and order. Compiler-proven topology-only
60
+ * writes may pass `false`: retained rows whose item reference is unchanged
61
+ * then skip content replay while inserted/replaced items still synchronize.
62
+ */
63
+ reconcile(items: readonly T[], syncRetained?: boolean): void;
59
64
  /** Re-sync one retained row through the region's O(1) key cache. */
60
65
  refreshKey(key: unknown): void;
61
66
  size(): number;
62
67
  /** Remove retained nodes and unregister every entity owned by the region. */
63
68
  dispose(): void;
64
69
  }
65
- export declare function createListRegion<T>(parent: Node, idPrefix: EntityId, create: (item: T, rowId: EntityId, index: number) => ListEntry, key?: KeyFn<T>): ListRegion<T>;
70
+ export declare function createListRegion<T>(parent: Node, idPrefix: EntityId, create: (item: T, rowId: EntityId, index: number) => ListEntry, key?: KeyFn<T>, trackRowIds?: boolean): ListRegion<T>;
66
71
  //# sourceMappingURL=list.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../src/list.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAEH,OAAO,EAAyC,KAAK,QAAQ,EAAE,MAAM,UAAU,CAAC;AAEhF,MAAM,WAAW,SAAS;IACxB,4EAA4E;IAC5E,KAAK,EAAE,IAAI,EAAE,CAAC;IACd,kEAAkE;IAClE,QAAQ,EAAE,QAAQ,EAAE,CAAC;IACrB;;;;;;;OAOG;IACH,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB;;;;;OAKG;IACH,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACrD,6EAA6E;IAC7E,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;CACtB;AAED,MAAM,MAAM,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC;AAK3D,MAAM,WAAW,UAAU,CAAC,CAAC;IAC3B,SAAS,CAAC,KAAK,EAAE,SAAS,CAAC,EAAE,GAAG,IAAI,CAAC;IACrC,oEAAoE;IACpE,UAAU,CAAC,GAAG,EAAE,OAAO,GAAG,IAAI,CAAC;IAC/B,IAAI,IAAI,MAAM,CAAC;IACf,6EAA6E;IAC7E,OAAO,IAAI,IAAI,CAAC;CACjB;AAiDD,wBAAgB,gBAAgB,CAAC,CAAC,EAChC,MAAM,EAAE,IAAI,EACZ,QAAQ,EAAE,QAAQ,EAClB,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,KAAK,SAAS,EAC9D,GAAG,GAAE,KAAK,CAAC,CAAC,CAAe,GAC1B,UAAU,CAAC,CAAC,CAAC,CA0Of"}
1
+ {"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../src/list.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAEH,OAAO,EAAyC,KAAK,QAAQ,EAAE,MAAM,UAAU,CAAC;AAEhF,MAAM,WAAW,SAAS;IACxB,4EAA4E;IAC5E,KAAK,EAAE,IAAI,GAAG,SAAS,IAAI,EAAE,CAAC;IAC9B,kEAAkE;IAClE,QAAQ,EAAE,QAAQ,EAAE,CAAC;IACrB;;;;;;;OAOG;IACH,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB;;;;;OAKG;IACH,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACrD,6EAA6E;IAC7E,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;CACtB;AAED,MAAM,MAAM,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC;AAK3D,MAAM,WAAW,UAAU,CAAC,CAAC;IAC3B;;;;OAIG;IACH,SAAS,CAAC,KAAK,EAAE,SAAS,CAAC,EAAE,EAAE,YAAY,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;IAC7D,oEAAoE;IACpE,UAAU,CAAC,GAAG,EAAE,OAAO,GAAG,IAAI,CAAC;IAC/B,IAAI,IAAI,MAAM,CAAC;IACf,6EAA6E;IAC7E,OAAO,IAAI,IAAI,CAAC;CACjB;AAiDD,wBAAgB,gBAAgB,CAAC,CAAC,EAChC,MAAM,EAAE,IAAI,EACZ,QAAQ,EAAE,QAAQ,EAClB,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,KAAK,SAAS,EAC9D,GAAG,GAAE,KAAK,CAAC,CAAC,CAAe,EAC3B,WAAW,UAAO,GACjB,UAAU,CAAC,CAAC,CAAC,CAiWf"}
package/dist/testing.js CHANGED
@@ -1 +1 @@
1
- import{A as z,B as A,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V as r,a as p,b as e,c as t,d as x,e as f,f as m,g as n,h as s,i as _,j as a,k as i,l,m as B,n as o,o as b,p as c,q as d,r as g,s as h,t as j,u as k,v as q,w as u,x as v,y as w,z as y}from"./chunks/chunk-URM32S7R.js";export{o as _internals,r as _propsBox,N as classValue,b as cleanup,G as clearEventLog,B as commit,H as commitWrites,I as commitWritesWithPayload,w as computedChanged,S as createCondRegion,K as createListRegion,n as getEntity,F as getEventLog,C as getRootId,J as handle,m as has,y as installAccessTable,A as isOpaque,a as markDirty,l as markDirtySubtree,c as mountRef,Q as patchDomProps,t as register,g as registerConditionalEffect,d as registerEffect,T as registerProps,_ as registeredIds,s as renderDescendants,z as resetAccessTable,e as resetScheduler,D as resolveStaticWrites,E as resolveWrites,L as rootNodes,q as setAttr,k as setClass,j as setClassName,O as setClassValue,M as setDelegatedEvent,R as setDomValue,u as setProp,U as setProps,p as setScheduler,v as setStyle,P as setStyleValue,h as setText,i as undirty,f as unregister,x as unregisterSubtree};
1
+ import{A as z,B as A,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W as r,a as p,b as e,c as t,d as x,e as f,f as m,g as n,h as s,i as _,j as a,k as i,l,m as B,n as o,o as b,p as c,q as d,r as g,s as h,t as j,u as k,v as q,w as u,x as v,y as w,z as y}from"./chunks/chunk-BRFV3POR.js";export{o as _internals,r as _propsBox,O as classValue,b as cleanup,G as clearEventLog,B as commit,H as commitWrites,I as commitWritesWithPayload,w as computedChanged,T as createCondRegion,N as createDelegatedEventBinding,K as createListRegion,n as getEntity,F as getEventLog,C as getRootId,J as handle,m as has,y as installAccessTable,A as isOpaque,a as markDirty,l as markDirtySubtree,c as mountRef,R as patchDomProps,t as register,g as registerConditionalEffect,d as registerEffect,U as registerProps,_ as registeredIds,s as renderDescendants,z as resetAccessTable,e as resetScheduler,D as resolveStaticWrites,E as resolveWrites,L as rootNodes,q as setAttr,k as setClass,j as setClassName,P as setClassValue,M as setDelegatedEvent,S as setDomValue,u as setProp,V as setProps,p as setScheduler,v as setStyle,Q as setStyleValue,h as setText,i as undirty,f as unregister,x as unregisterSubtree};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@memoized-dom/runtime",
3
- "version": "0.0.3",
3
+ "version": "0.0.5",
4
4
  "description": "Dependency-free runtime for compiler-analyzed memoized DOM updates",
5
5
  "type": "module",
6
6
  "sideEffects": false,
@@ -1 +0,0 @@
1
- var b=new Map;function ke(e,t,n){if(n===void 0||Array.isArray(n)&&n.length===0){b.size!==0&&b.delete(e);return}if(!t){typeof n=="number"?b.set(e,n):n.length===1?b.set(e,n[0]):b.set(e,new Set(n));return}let r=b.get(e);if(r===void 0)return;let o=typeof n=="number"?[n]:n;if(typeof r=="number"){o.some(i=>i!==r)&&b.set(e,new Set([r,...o]));return}for(let i of o)r.add(i)}function xe(e){if(b.size===0)return null;let t=b.get(e)??null;return b.delete(e),t}function O(e){b.size!==0&&b.delete(e)}var m=new Map,k=new Set,ve=typeof requestAnimationFrame=="function"?e=>requestAnimationFrame(e):e=>setTimeout(e,0),ne=ve;function Qe(e){ne=e}function Ye(){ne=ve}function et(e){let t=0;for(let n=0;n<e.length;n++)e.charCodeAt(n)===47&&t++;return t}var z=null,Re=0;var Ie=[],ee=[];function Se(e){ee.includes(e)||ee.push(e)}function F(e){Ie.push(e)}function Te(e,t){for(let n of Ie)n(e,t)}function H(e){let t=e.parent!==null?m.get(e.parent):void 0;e.depth=e.depth??(t&&t.depth!==void 0?t.depth+1:et(e.id)),m.set(e.id,e),t&&(t.children??=new Set).add(e.id),z=null,Re++,Te(e.id,"add")}function v(e){let t=m.get(e);if(!t)return;t.parent!==null&&m.get(t.parent)?.children?.delete(e);let n=[e],r=[],o=[];for(;n.length>0;){let i=n.pop(),s=m.get(i);if(s&&(r.push(i),s.children))for(let d of s.children)n.push(d)}r.reverse();for(let i of r)m.delete(i),k.delete(i),O(i),Te(i,"remove");for(let i of r)for(let s of ee){let d=s(i);d!==void 0&&o.push(...d)}if(z=null,Re++,o.length===1)throw o[0];if(o.length>1)throw new AggregateError(o,`[memo-dom] ${o.length} cleanup disposers failed while unregistering '${e}'`)}function tt(e){v(e)}function W(e){return m.has(e)}function re(e){return m.get(e)}function nt(e){let t=o=>{if(o.children!==void 0)for(let i of o.children){let s=m.get(i);s!==void 0&&(s.phase!=="effect"&&(s.render(),M(i)),t(s))}},n=o=>{if(o.children!==void 0)for(let i of o.children){let s=m.get(i);s!==void 0&&(s.phase==="effect"&&(s.render(),M(i)),n(s))}},r=m.get(e);r!==void 0&&(t(r),n(r))}function oe(){return z??=[...m.keys()],z}function S(e,t){if(!m.has(e))return;let n=k.has(e);(t!==void 0||n)&&ke(e,n,t),k.add(e),Ce()}function M(e){k.size!==0&&k.delete(e)&&O(e)}function C(e){let t=e+"/",n=!1;for(let r of m.keys())(r===e||r.startsWith(t))&&(k.add(r),O(r),n=!0);n&&Ce()}var te=!1,j=!1;function Ce(){te||j||(te=!0,ne(De))}function De(){if(te=!1,!j){j=!0;try{for(let e=0;e<100&&k.size>0;e++){let t=[];for(let o of k){let i=m.get(o);i?t.push(i):(k.delete(o),O(o))}let r=t.some(o=>o.phase!=="effect")?t.filter(o=>o.phase!=="effect"):t;r.sort((o,i)=>(o.depth??0)-(i.depth??0));for(let o of r)k.delete(o.id)&&o.render(xe(o.id))}if(k.size>0)throw new Error("[memo-dom] commit cascade exceeded 100 passes \u2014 an update is dirtying its own readers (cycle)")}finally{j=!1}}}function Zt(){return{registry:m,dirtySet:k}}var K=new Map,ie=new Set,Le=!1;function rt(){Le||(Le=!0,Se(ot))}function _(e,t){if(typeof t!="function")throw new TypeError("[memo-dom] cleanup(disposer) requires a function");if(ie.has(e))throw new Error(`[memo-dom] cannot register cleanup while '${e}' is being unregistered`);rt();let n=K.get(e);return n===void 0&&(n=[],K.set(e,n)),n.push(t),t}function ot(e){let t=K.get(e);if(t===void 0)return[];K.delete(e),ie.add(e);let n=[];try{for(let r=t.length-1;r>=0;r--)try{t[r]()}catch(o){n.push(o)}}finally{ie.delete(e)}return n}function it(e,t){let n=[],r=!0;try{Ae(e,t,n)}catch(o){let i=Me(n);throw i.length>0?new AggregateError([o,...i],"[memo-dom] ref setup and rollback failed"):o}return()=>{if(!r)return;r=!1;let o=Me(n);if(o.length===1)throw o[0];if(o.length>1)throw new AggregateError(o,"[memo-dom] multiple ref cleanups failed")}}function Ae(e,t,n){if(t==null||t===!1)return;if(Array.isArray(t)){for(let o of t)Ae(e,o,n);return}if(typeof t!="function")throw new TypeError("[memo-dom] ref value must be a callback, an assignable JSX target, or an array of refs");let r=t(e);if(r!=null){if(typeof r!="function")throw new TypeError("[memo-dom] ref callback must return a cleanup function or nothing");n.push(r)}}function Me(e){let t=[];for(let n=e.length-1;n>=0;n--)try{e[n]()}catch(r){t.push(r)}return e.length=0,t}function Ne(e,t,n){let r;W(e)&&v(e),H({id:e,parent:t,phase:"effect",render(){let o=r;r=void 0,o?.();let i=n();if(i!==void 0&&typeof i!="function")throw new TypeError(`[memo-dom] effect '${e}' must return a cleanup function or undefined`);r=typeof i=="function"?i:void 0}}),_(e,()=>{let o=r;r=void 0,o?.()}),S(e)}function st(e,t,n,r){let o=`${e}/$active`,i=!1;W(e)&&v(e),H({id:e,parent:t,phase:"effect",render(){let s=!!n();s!==i&&(i=s,i?Ne(o,e,r):v(o))}}),_(e,()=>{i=!1,W(o)&&v(o)}),S(e)}function dt(e,t,n,r){e[t]!==r&&(e[t]=r,n.data=r==null||typeof r=="boolean"?"":String(r))}function lt(e,t,n,r){e[t]!==r&&(e[t]=r,n.className=r)}function ct(e,t,n,r,o){e[t]!==o&&(e[t]=o,n.classList.toggle(r,o))}function ft(e,t,n,r,o){e[t]!==o&&(e[t]=o,o==null||o===!1?n.removeAttribute(r):o===!0?n.setAttribute(r,""):n.setAttribute(r,String(o)))}function at(e,t,n,r,o){e[t]!==o&&(e[t]=o,n[r]=o)}function ut(e,t,n,r,o){e[t]!==o&&(e[t]=o,o==null?n.style.removeProperty(r):n.style.setProperty(r,o))}function pt(e,t){if(Array.isArray(e)&&Array.isArray(t)){if(e===t||e.length!==t.length)return!0;for(let n=0;n<e.length;n++)if(!Object.is(e[n],t[n])||se(e[n]))return!0;return!1}return se(e)||se(t)?!0:!Object.is(e,t)}function se(e){return typeof e=="object"&&e!==null||typeof e=="function"}var de="",A=new Map,D=new Map,B=new Map,le=new Set,ce=[],N=new Map,$=0,q=new Map,U=new Map;function yt(){N=new Map;let e=oe();for(let[t,n]of D){let r=new Set;for(let o of n)for(let i of e)o.test(i)&&r.add(i);N.set(t,r)}}F((e,t)=>{if(D.size===0)return;let n=!1;if(t==="add")for(let[r,o]of D){let i=N.get(r);if(i){for(let s of o)if(s.test(e)){i.add(e),n=!0;break}}}else for(let r of N.values())r.delete(e)&&(n=!0);n&&$++});function gt(e){if(!e.includes("*"))return null;let t=e.split("*").map(n=>n.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")).join("[^/]*");return new RegExp(`^${t}$`)}function ht(e,t){de=t;let n=new Set;for(let[r,o]of Object.entries(e.readers))for(let i of o){let s=`${r}${i}`;if(n.has(s))continue;n.add(s);let d=gt(i);if(d===null){let l=A.get(r)??[];l.includes(i)||l.push(i),A.set(r,l)}else{let l=D.get(r)??[];l.some(a=>a.source===d.source)||l.push(d),D.set(r,l)}}for(let[r,o]of Object.entries(e.params??{})){let i=B.get(r)??[];for(let s of o)i.includes(s.pattern)||i.push(s.pattern);B.set(r,i)}for(let r of e.opaque??[])le.add(r);ce=[...new Set([...A.keys(),...D.keys()])],q.clear(),U.clear(),yt(),$++}function mt(){de="",A=new Map,D=new Map,B=new Map,le=new Set,ce=[],N=new Map,q.clear(),U.clear(),$++}function fe(e){return le.has(e)}function G(){return de}function ae(e){return e.some(fe)?"root-subtree":Pe(e)}function ue(e,t,n){if(e.some(fe))return"root-subtree";if(n){let r=new Set,o=!0;for(let i of e){let s=B.get(i);if(s===void 0||s.length===0){o=!1;break}for(let d of s){let l=!1,a=d.replace(/\{([^}]+)\}/g,(h,y)=>{let R=y.trim();if(!R.startsWith("payload."))return l=!0,"";let E=n;for(let T of R.slice(8).split(".")){if(E===null||typeof E!="object")return l=!0,"";E=E[T]}return E==null?(l=!0,""):String(E)});if(l){o=!1;break}r.add(a)}if(!o)break;for(let d of A.get(i)??[])r.add(d)}if(o&&r.size>0)return[...r]}return Pe(e)}function Pe(e){let t=e.length===1?e[0]:e.join(" "),n=U.get(t);if(n!==void 0&&n.v===$)return n.result;let r=new Set,o=new Set;for(let s of e){let d=q.get(s);if(d===void 0){d=[];for(let l of ce)(l===s||l.startsWith(`${s}.`)||s.startsWith(`${l}.`))&&d.push(l);q.set(s,d)}for(let l of d)o.add(l)}for(let s of o){for(let d of A.get(s)??[])r.add(d);for(let d of N.get(s)??[])r.add(d)}let i=[...r];return U.set(t,{v:$,result:i}),i}var Et=1e3,V=[];function wt(){return V}function bt(){V.length=0}function Oe(e){let t=ae(e);if(t==="root-subtree"){C(G());return}for(let n of t)S(n)}function kt(e,t){let n=ue(e,[],t);if(n==="root-subtree"){C(G());return}for(let r of n)S(r)}function xt(e,t,n){return r=>{n(r),V.push({origin:e,writes:t,at:Date.now()}),V.length>Et&&V.shift(),Oe(t)}}var vt=e=>e,Rt=[],It=[],St=[];function Tt(e){let t=e.length,n=Rt,r=It,o=St;n.length=t,o.length=t,r.length=0;for(let s=0;s<t;s++)n[s]=!1,o[s]=-1;for(let s=0;s<t;s++){let d=e[s];if(d<0)continue;let l=0,a=r.length;for(;l<a;){let h=l+a>>1;e[r[h]]<d?l=h+1:a=h}r[l]=s,l>0&&(o[s]=r[l-1])}let i=r.length>0?r[r.length-1]:-1;for(;i>=0;)n[i]=!0,i=o[i];return n}function Ct(e,t,n,r=vt){let o=document.createComment(`list:${t}`);e.appendChild(o);let i=new Map,s=new Map,d=0,l=[],a=[],h=[],y=new Map,R=[],E=[],T=[];function Q(p,u,g,L){if(p.updateProps?.(u,L),p.update!==void 0)p.update(),M(g);else{let I=re(g);I&&(I.render(),M(g))}}function Be(p){let u=typeof p;if(u==="string"||u==="number"||u==="boolean"||u==="bigint")return`${t}/Row[${String(p)}]`;let g=s.get(p);return g===void 0&&(g=`#${++d}`,s.set(p,g)),`${t}/Row[${g}]`}function qe(p){if(p.length===l.length){let c=!0;for(let f=0;f<p.length;f++)if(p[f]!==l[f]){c=!1;break}if(c){for(let f=0;f<p.length;f++)Q(a[f],p[f],h[f],f);return}}let u=i;y.clear();let g=y,L=E,I=R,Y=p.length;L.length=Y,I.length=Y,T.length=Y;let ge=!1,he=!0,me=-1;for(let c=0;c<p.length;c++){let f=p[c],w=r(f,c);if(g.has(w))throw new Error(`[memo-dom] duplicate list key: ${String(w)}`);let x=u.get(w);if(x!==void 0)u.delete(w),T[c]=x.pos,x.pos<=me?he=!1:me=x.pos,x.pos=c,Q(x.e,f,x.id,c);else{let be=Be(w);x={e:n(f,be,c),id:be,pos:c},T[c]=-1,ge=!0}g.set(w,x),I[c]=x.e,L[c]=x.id}if(!ge&&u.size===0&&he){i=g,y=u;let c=a;a=I,R=c;let f=h;h=L,E=f,R.length=0,E.length=0,l=p.slice();return}for(let[c,f]of u){f.e.dispose?.();for(let w of f.e.nodes)w.parentNode?.removeChild(w);for(let w of f.e.entities)v(w);s.delete(c)}u.clear();let Ze=Tt(T),Ee=o,P=null,we=()=>{if(P===null)return;let c=document.createDocumentFragment();for(let f=P.length-1;f>=0;f--)for(let w of P[f].nodes)c.appendChild(w);e.insertBefore(c,Ee),P=null};for(let c=I.length-1;c>=0;c--){let f=I[c];T[c]===-1||!Ze[c]?(P??=[]).push(f):(we(),Ee=f.nodes[0])}we(),i=g,y=u;let Je=a;a=I,R=Je;let Xe=h;h=L,E=Xe,R.length=0,E.length=0,l=p.slice()}function Ue(p){let u=i.get(p);u!==void 0&&Q(u.e,l[u.pos],u.id,u.pos)}function Ge(){for(let[p,u]of i){u.e.dispose?.();for(let g of u.e.nodes)g.parentNode?.removeChild(g);for(let g of u.e.entities)v(g);s.delete(p)}i.clear(),y.clear(),l=[],a.length=0,h.length=0,R.length=0,E.length=0,o.parentNode?.removeChild(o)}return{reconcile:qe,refreshKey:Ue,size:()=>i.size,dispose:Ge}}function Dt(e){return e.nodeType===Node.DOCUMENT_FRAGMENT_NODE?Array.from(e.childNodes):[e]}var We=new Map;function Lt(e,t,n,r){let o=At(n),i=We.get(o);i===void 0&&(i={captureRoots:new WeakSet,handler:Symbol(`memo-dom:${o}:handler`),root:Symbol(`memo-dom:${o}:root`),bubbleRoots:new WeakSet},We.set(o,i));let s=t;s[i.handler]=r,s[i.root]=e,i.bubbleRoots.has(e)||(i.bubbleRoots.add(e),e.addEventListener(o,d=>{d.bubbles&&$e(e,i,d)})),i.captureRoots.has(e)||(i.captureRoots.add(e),e.addEventListener(o,d=>{d.bubbles||$e(e,i,d)},!0))}function $e(e,t,n){let r=typeof n.composedPath=="function"?n.composedPath():Mt(n.target,e);for(let o of r){let i=o;if(i[t.root]===e){let s=i[t.handler];s!==void 0&&s.call(o,n)===!1&&n.preventDefault()}if(o===e||n.cancelBubble)break}}function Mt(e,t){let n=[],r=e;for(;r!==null&&(n.push(r),r!==t);)r="parentNode"in r?r.parentNode:null;return n}function At(e){let t=e.startsWith("on")?e.slice(2).toLowerCase():e.toLowerCase();return t==="doubleclick"?"dblclick":t}var Z=new WeakMap,Nt=new Set(["animation-iteration-count","border-image-outset","border-image-slice","border-image-width","column-count","flex","flex-grow","flex-shrink","font-weight","grid-column","grid-row","line-height","opacity","order","orphans","scale","tab-size","widows","z-index","zoom"]);function J(e){let t=[];return Ve(e,t),t.join(" ")}function pe(e,t){let n=J(t);e.namespaceURI==="http://www.w3.org/2000/svg"?n===""?e.removeAttribute("class"):e.setAttribute("class",n):e.className=n}function ye(e,t){let n=e.style;if(n===void 0)return;if(typeof t=="string"){let i=Z.get(e);if(i?.size===1&&i.get("$cssText")===t)return;n.cssText=t,Z.set(e,new Map([["$cssText",t]]));return}let r=new Map;if(t!==null&&typeof t=="object")for(let[i,s]of Object.entries(t)){if(s==null)continue;let d=Pt(i);r.set(d,Ot(d,s))}let o=Z.get(e)??new Map;o.has("$cssText")&&(n.cssText="");for(let i of o.keys())i!=="$cssText"&&!r.has(i)&&n.removeProperty(i);for(let[i,s]of r)o.get(i)!==s&&n.setProperty(i,s);Z.set(e,r)}function Ve(e,t){if(e==null||e===!1||e===!0)return;if(Array.isArray(e)){for(let r of e)Ve(r,t);return}if(typeof e=="object"){for(let[r,o]of Object.entries(e))o&&t.push(r);return}let n=String(e).trim();n!==""&&t.push(n)}function Pt(e){return e.startsWith("--")||e.includes("-")?e:e.replace(/^ms([A-Z])/,"ms-$1").replace(/[A-Z]/g,t=>`-${t.toLowerCase()}`)}function Ot(e,t){return typeof t=="number"&&t!==0&&!e.startsWith("--")&&!Nt.has(e)?`${t}px`:String(t)}var je=new WeakMap,ze=new WeakMap,Wt=new Set(["innerHTML","checked","value","selected","disabled","hidden","multiple","required","readOnly","muted","open","controls","loop","autoFocus","autoPlay","tabIndex"]),Fe={className:"class",htmlFor:"for",readOnly:"readonly",autoFocus:"autofocus",autoPlay:"autoplay",tabIndex:"tabindex",crossOrigin:"crossorigin"},$t={className:"class",clipPath:"clip-path",clipRule:"clip-rule",colorInterpolation:"color-interpolation",colorInterpolationFilters:"color-interpolation-filters",dominantBaseline:"dominant-baseline",fillOpacity:"fill-opacity",fillRule:"fill-rule",floodColor:"flood-color",floodOpacity:"flood-opacity",fontFamily:"font-family",fontSize:"font-size",markerEnd:"marker-end",markerMid:"marker-mid",markerStart:"marker-start",stopColor:"stop-color",stopOpacity:"stop-opacity",strokeDasharray:"stroke-dasharray",strokeDashoffset:"stroke-dashoffset",strokeLinecap:"stroke-linecap",strokeLinejoin:"stroke-linejoin",strokeMiterlimit:"stroke-miterlimit",strokeOpacity:"stroke-opacity",strokeWidth:"stroke-width",textAnchor:"text-anchor",vectorEffect:"vector-effect",xlinkHref:"xlink:href"},Vt={doubleclick:"dblclick"};function jt(e,t,n,r=[]){let o=t!==null&&typeof t=="object"?t:{},i=je.get(e)??new Map,s=new Set(r);for(let l of i.keys())Object.prototype.hasOwnProperty.call(o,l)||He(e,l,null,i,n,s);for(let[l,a]of Object.entries(o))He(e,l,a,i,n,s);let d=new Map;for(let[l,a]of Object.entries(o))d.set(l,_e(l,a));je.set(e,d)}function Ke(e,t,n){if(t==="class"||t==="className"){pe(e,n);return}if(t==="style"){ye(e,n);return}Ht(e,t,n)}function He(e,t,n,r,o,i){if(t==="key"||t==="children"||t==="ref")return;if(/^on[A-Z]/.test(t)){zt(e,t,typeof n=="function"?n:null,o,i.has(t));return}let s=_e(t,n);Object.is(r.get(t),s)||Ke(e,t,n)}function _e(e,t){return e==="class"||e==="className"?J(t):e==="style"?Symbol("style-snapshot"):t==null||typeof t=="string"||typeof t=="number"||typeof t=="boolean"?t:String(t)}function zt(e,t,n,r,o){let i=ze.get(e);i===void 0&&(i=new Map,ze.set(e,i));let s=i.get(t);if(s?.source===n||(s!==void 0&&(e.removeEventListener(s.type,s.listener),i.delete(t)),n===null))return;let d=Ft(t),l=o?n:function(h){let y=n.call(this,h);return C(r),y!==null&&typeof y=="object"&&"then"in y&&typeof y.then=="function"&&y.then(()=>{C(r)}),y};e.addEventListener(d,l),i.set(t,{source:n,listener:l,type:d})}function Ft(e){let t=e.slice(2).toLowerCase();return Vt[t]??t}function Ht(e,t,n){let r=e.namespaceURI!=="http://www.w3.org/2000/svg";if(r&&Wt.has(t)){if(t==="tabIndex"&&n==null){e.removeAttribute("tabindex");return}e[t]=n??Kt(t);return}let o=r?Fe[t]??t:$t[t]??Fe[t]??t;n==null||n===!1?e.removeAttribute(o):n===!0?e.setAttribute(o,""):!r&&t==="xlinkHref"?e.setAttributeNS("http://www.w3.org/1999/xlink","xlink:href",String(n)):e.setAttribute(o,String(n))}function Kt(e){return e==="value"||e==="innerHTML"?"":!1}function _t(e,t,n,r){let o=document.createComment(`when:${t}`);e.appendChild(o);let i=-1,s=null;function d(){let a=n();if(a===i){s?.update();return}if(s!==null){s.dispose?.();for(let y of s.nodes)y.parentNode?.removeChild(y);s=null}let h=r[a]??null;if(h!==null){s=h();for(let y=s.nodes.length-1;y>=0;y--)o.parentNode.insertBefore(s.nodes[y],o)}i=a}function l(){if(s!==null){s.dispose?.();for(let a of s.nodes)a.parentNode?.removeChild(a);s=null}o.parentNode?.removeChild(o),i=-1}return d(),{update:d,index:()=>i,dispose:l}}var X=new Map;function Bt(e,t){X.set(e,t)}function qt(e,t){let n=X.get(e);if(n===void 0)return;let r=n.length!==t.length;if(!r){for(let o=0;o<t.length;o++)if(!Object.is(n[o],t[o])){r=!0;break}}if(r){n.length=t.length;for(let o=0;o<t.length;o++)n[o]=t[o];S(e)}}function bn(e){return X.get(e)}F((e,t)=>{t==="remove"&&X.delete(e)});export{Qe as a,Ye as b,H as c,v as d,tt as e,W as f,re as g,nt as h,oe as i,S as j,M as k,C as l,De as m,Zt as n,_ as o,it as p,Ne as q,st as r,dt as s,lt as t,ct as u,ft as v,at as w,ut as x,pt as y,ht as z,mt as A,fe as B,G as C,ae as D,ue as E,wt as F,bt as G,Oe as H,kt as I,xt as J,Ct as K,Dt as L,Lt as M,J as N,pe as O,ye as P,jt as Q,Ke as R,_t as S,Bt as T,qt as U,bn as V};