@deijose/nix-js 2.4.6 → 2.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  [![npm version](https://img.shields.io/npm/v/@deijose/nix-js.svg)](https://www.npmjs.com/package/@deijose/nix-js)
4
4
  [![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](https://opensource.org/licenses/MIT)
5
- [![Tests](https://img.shields.io/badge/tests-484%20passing-brightgreen.svg)]()
5
+ [![Tests](https://img.shields.io/badge/tests-524%20passing-brightgreen.svg)]()
6
6
  [![Coverage](https://img.shields.io/badge/coverage-95.86%25-brightgreen.svg)]()
7
7
  [![Bundle size](https://img.shields.io/badge/min%2Bgzip-~10%20KB-orange.svg)]()
8
8
  [![Zero Dependencies](https://img.shields.io/badge/dependencies-0-success.svg)]()
@@ -11,6 +11,8 @@ type BindingContext = {
11
11
  type: "attr";
12
12
  attrName: string;
13
13
  hadOpenQuote: boolean;
14
+ url?: boolean;
15
+ executable?: boolean;
14
16
  };
15
17
  export type { BindingContext };
16
18
  /**
@@ -2,6 +2,7 @@ export type { NixTemplate, NixMountHandle, NixRef, KeyedList, PortalOutlet, Erro
2
2
  export { ref, isNixTemplate, isKeyedList, COMMENT } from "./types";
3
3
  export { html, buildHTML } from "./html";
4
4
  export { showWhen } from "./bindings";
5
+ export { sanitizeUrl, isUrlAttrName, isExecutableAttrName } from "./sanitize";
5
6
  export { repeat } from "./keyed";
6
7
  export { transition } from "./transitions";
7
8
  export type { TransitionOptions } from "./transitions";
@@ -0,0 +1,16 @@
1
+ /** True if `name` is a URL-bearing attribute that must be scheme-checked. */
2
+ export declare function isUrlAttrName(name: string): boolean;
3
+ /**
4
+ * True if `name` is an attribute that turns its value into executable code or
5
+ * arbitrary markup (inline event handlers, `srcdoc`). In idiomatic Nix events
6
+ * use `@click` (handled as an event binding, never as an attribute), so an
7
+ * `on*`/`srcdoc` attribute binding is almost always a developer mistake. Used
8
+ * only to emit a warning — never to block.
9
+ */
10
+ export declare function isExecutableAttrName(name: string): boolean;
11
+ /**
12
+ * Returns the URL unchanged if its scheme is safe; otherwise returns "" and
13
+ * warns. Normalizes control characters and surrounding whitespace before the
14
+ * scheme check so that obfuscated payloads cannot slip through.
15
+ */
16
+ export declare function sanitizeUrl(raw: string): string;
@@ -1 +1 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./signals.cjs"),t=require("./template2.cjs"),n=require("./lifecycle.cjs"),r=require("./context.cjs"),i=require("./router.cjs"),a=require("./component.cjs"),o=require("./store.cjs"),s=require("./plugins.cjs"),c=require("./async.cjs"),l=require("./form.cjs");exports.Link=i.Link,exports.NixComponent=n.NixComponent,exports.RouterKey=i.RouterKey,exports.RouterView=i.RouterView,exports.Signal=e.Signal,exports._hasActiveRouter=i._hasActiveRouter,exports.batch=e.batch,exports.bridgePlugin=s.bridgePlugin,exports.computed=e.computed,exports.createErrorBoundary=t.t,exports.createForm=l.createForm,exports.createInjectionKey=r.createInjectionKey,exports.createPortalOutlet=t.n,exports.createRouter=i.createRouter,exports.createStore=o.createStore,exports.createValidator=l.createValidator,exports.effect=e.effect,exports.email=l.email,exports.extendValidators=l.extendValidators,exports.guardPlugin=s.guardPlugin,exports.html=t.l,exports.inject=r.inject,exports.injectOutlet=t.r,exports.lazy=c.lazy,exports.loggerPlugin=s.loggerPlugin,exports.max=l.max,exports.maxLength=l.maxLength,exports.min=l.min,exports.minLength=l.minLength,exports.mount=a.mount,exports.nextTick=e.nextTick,exports.nixField=l.nixField,exports.nixFieldArray=l.nixFieldArray,exports.nixRouter=i.nixRouter,exports.pattern=l.pattern,exports.persistPlugin=s.persistPlugin,exports.portal=t.i,exports.portalOutlet=t.a,exports.provide=r.provide,exports.provideOutlet=t.o,exports.ref=t.h,exports.repeat=t.d,exports.required=l.required,exports.showWhen=t.u,exports.signal=e.signal,exports.suspend=c.suspend,exports.transition=t.s,exports.untrack=e.untrack,exports.validators=l.validators,exports.watch=e.watch;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./signals.cjs"),t=require("./template2.cjs"),n=require("./lifecycle.cjs"),r=require("./context.cjs"),i=require("./router.cjs"),a=require("./component.cjs"),o=require("./store.cjs"),s=require("./plugins.cjs"),c=require("./async.cjs"),l=require("./form.cjs");exports.Link=i.Link,exports.NixComponent=n.NixComponent,exports.RouterKey=i.RouterKey,exports.RouterView=i.RouterView,exports.Signal=e.Signal,exports._hasActiveRouter=i._hasActiveRouter,exports.batch=e.batch,exports.bridgePlugin=s.bridgePlugin,exports.computed=e.computed,exports.createErrorBoundary=t.t,exports.createForm=l.createForm,exports.createInjectionKey=r.createInjectionKey,exports.createPortalOutlet=t.n,exports.createRouter=i.createRouter,exports.createStore=o.createStore,exports.createValidator=l.createValidator,exports.effect=e.effect,exports.email=l.email,exports.extendValidators=l.extendValidators,exports.guardPlugin=s.guardPlugin,exports.html=t.l,exports.inject=r.inject,exports.injectOutlet=t.r,exports.lazy=c.lazy,exports.loggerPlugin=s.loggerPlugin,exports.max=l.max,exports.maxLength=l.maxLength,exports.min=l.min,exports.minLength=l.minLength,exports.mount=a.mount,exports.nextTick=e.nextTick,exports.nixField=l.nixField,exports.nixFieldArray=l.nixFieldArray,exports.nixRouter=i.nixRouter,exports.pattern=l.pattern,exports.persistPlugin=s.persistPlugin,exports.portal=t.i,exports.portalOutlet=t.a,exports.provide=r.provide,exports.provideOutlet=t.o,exports.ref=t.v,exports.repeat=t.m,exports.required=l.required,exports.showWhen=t.u,exports.signal=e.signal,exports.suspend=c.suspend,exports.transition=t.s,exports.untrack=e.untrack,exports.validators=l.validators,exports.watch=e.watch;
@@ -1 +1 @@
1
- import{Signal as e,batch as t,computed as n,effect as r,nextTick as i,signal as a,untrack as o,watch as s}from"./signals.js";import{a as c,d as l,h as u,i as d,l as f,n as p,o as m,r as h,s as g,t as _,u as v}from"./template2.js";import{NixComponent as y}from"./lifecycle.js";import{createInjectionKey as b,inject as x,provide as S}from"./context.js";import{Link as C,RouterKey as w,RouterView as T,_hasActiveRouter as E,createRouter as D,nixRouter as O}from"./router.js";import{mount as k}from"./component.js";import{createStore as A}from"./store.js";import{bridgePlugin as j,guardPlugin as M,loggerPlugin as N,persistPlugin as P}from"./plugins.js";import{lazy as F,suspend as I}from"./async.js";import{createForm as L,createValidator as R,email as z,extendValidators as B,max as V,maxLength as H,min as U,minLength as W,nixField as G,nixFieldArray as K,pattern as q,required as J,validators as Y}from"./form.js";export{C as Link,y as NixComponent,w as RouterKey,T as RouterView,e as Signal,E as _hasActiveRouter,t as batch,j as bridgePlugin,n as computed,_ as createErrorBoundary,L as createForm,b as createInjectionKey,p as createPortalOutlet,D as createRouter,A as createStore,R as createValidator,r as effect,z as email,B as extendValidators,M as guardPlugin,f as html,x as inject,h as injectOutlet,F as lazy,N as loggerPlugin,V as max,H as maxLength,U as min,W as minLength,k as mount,i as nextTick,G as nixField,K as nixFieldArray,O as nixRouter,q as pattern,P as persistPlugin,d as portal,c as portalOutlet,S as provide,m as provideOutlet,u as ref,l as repeat,J as required,v as showWhen,a as signal,I as suspend,g as transition,o as untrack,Y as validators,s as watch};
1
+ import{Signal as e,batch as t,computed as n,effect as r,nextTick as i,signal as a,untrack as o,watch as s}from"./signals.js";import{a as c,i as l,l as u,m as d,n as f,o as p,r as m,s as h,t as g,u as _,v}from"./template2.js";import{NixComponent as y}from"./lifecycle.js";import{createInjectionKey as b,inject as x,provide as S}from"./context.js";import{Link as C,RouterKey as w,RouterView as T,_hasActiveRouter as E,createRouter as D,nixRouter as O}from"./router.js";import{mount as k}from"./component.js";import{createStore as A}from"./store.js";import{bridgePlugin as j,guardPlugin as M,loggerPlugin as N,persistPlugin as P}from"./plugins.js";import{lazy as F,suspend as I}from"./async.js";import{createForm as L,createValidator as R,email as z,extendValidators as B,max as V,maxLength as H,min as U,minLength as W,nixField as G,nixFieldArray as K,pattern as q,required as J,validators as Y}from"./form.js";export{C as Link,y as NixComponent,w as RouterKey,T as RouterView,e as Signal,E as _hasActiveRouter,t as batch,j as bridgePlugin,n as computed,g as createErrorBoundary,L as createForm,b as createInjectionKey,f as createPortalOutlet,D as createRouter,A as createStore,R as createValidator,r as effect,z as email,B as extendValidators,M as guardPlugin,u as html,x as inject,m as injectOutlet,F as lazy,N as loggerPlugin,V as max,H as maxLength,U as min,W as minLength,k as mount,i as nextTick,G as nixField,K as nixFieldArray,O as nixRouter,q as pattern,P as persistPlugin,l as portal,c as portalOutlet,S as provide,p as provideOutlet,v as ref,d as repeat,J as required,_ as showWhen,a as signal,I as suspend,h as transition,o as untrack,Y as validators,s as watch};
@@ -1 +1 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./template2.cjs");exports.COMMENT=e.f,exports.buildHTML=e.c,exports.createErrorBoundary=e.t,exports.createPortalOutlet=e.n,exports.html=e.l,exports.injectOutlet=e.r,exports.isKeyedList=e.p,exports.isNixTemplate=e.m,exports.portal=e.i,exports.portalOutlet=e.a,exports.provideOutlet=e.o,exports.ref=e.h,exports.repeat=e.d,exports.showWhen=e.u,exports.transition=e.s;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./template2.cjs");exports.COMMENT=e.h,exports.buildHTML=e.c,exports.createErrorBoundary=e.t,exports.createPortalOutlet=e.n,exports.html=e.l,exports.injectOutlet=e.r,exports.isExecutableAttrName=e.d,exports.isKeyedList=e.g,exports.isNixTemplate=e._,exports.isUrlAttrName=e.f,exports.portal=e.i,exports.portalOutlet=e.a,exports.provideOutlet=e.o,exports.ref=e.v,exports.repeat=e.m,exports.sanitizeUrl=e.p,exports.showWhen=e.u,exports.transition=e.s;
@@ -1 +1 @@
1
- import{a as e,c as t,d as n,f as r,h as i,i as a,l as o,m as s,n as c,o as l,p as u,r as d,s as f,t as p,u as m}from"./template2.js";export{r as COMMENT,t as buildHTML,p as createErrorBoundary,c as createPortalOutlet,o as html,d as injectOutlet,u as isKeyedList,s as isNixTemplate,a as portal,e as portalOutlet,l as provideOutlet,i as ref,n as repeat,m as showWhen,f as transition};
1
+ import{_ as e,a as t,c as n,d as r,f as i,g as a,h as o,i as s,l as c,m as l,n as u,o as d,p as f,r as p,s as m,t as h,u as g,v as _}from"./template2.js";export{o as COMMENT,n as buildHTML,h as createErrorBoundary,u as createPortalOutlet,c as html,p as injectOutlet,r as isExecutableAttrName,a as isKeyedList,e as isNixTemplate,i as isUrlAttrName,s as portal,t as portalOutlet,d as provideOutlet,_ as ref,l as repeat,f as sanitizeUrl,g as showWhen,m as transition};
@@ -1 +1 @@
1
- const e=require("./signals.cjs"),t=require("./lifecycle.cjs"),n=require("./context.cjs");function r(){return{el:null}}var i={SCOPE:"nix-scope",ERROR_BOUNDARY:"nix-eb",TRANSITION:"nix-t",KEYED_START:"nix-ks",KEYED_END:"nix-ke",KEYED_ZONE:"nix-kz"};function a(e){return"object"==typeof e&&!!e&&!0===e.__isNixTemplate}function o(e){return"object"==typeof e&&!!e&&!0===e.__isKeyedList}function s(e,r,o){let l,i;t._debugComponentMountStart(e),n._pushComponentContext();try{try{e.onInit?.()}catch(t){if(!e.onError)throw t;e.onError(t)}l=e.render()._render(r,o)}finally{t._debugComponentMountEnd(e),n._popComponentContext()}try{let t=e.onMount?.();"function"==typeof t&&(i=t)}catch(t){if(!e.onError)throw t;e.onError(t)}return()=>{try{e.onUnmount?.()}catch{}try{i?.()}catch{}l(),t._debugComponentUnmount(e)}}function c(e,r,o){let l,i;t._debugComponentMountStart(e),n._pushComponentContext();try{try{e.onInit?.()}catch{}l=e.render()._render(r,o)}finally{t._debugComponentMountEnd(e),n._popComponentContext()}try{let t=e.onMount?.();"function"==typeof t&&(i=t)}catch{}return()=>{try{e.onUnmount?.()}catch{}try{i?.()}catch{}l(),t._debugComponentUnmount(e)}}function l(e,r,o,l){let i,u;t._debugComponentMountStart(e);try{n._withComponentContext(l,()=>{try{e.onInit?.()}catch(t){if(!e.onError)throw t;e.onError(t)}i=e.render()._render(r,o)})}finally{t._debugComponentMountEnd(e)}try{let t=e.onMount?.();"function"==typeof t&&(u=t)}catch(t){if(!e.onError)throw t;e.onError(t)}return()=>{try{e.onUnmount?.()}catch{}try{u?.()}catch{}i(),t._debugComponentUnmount(e)}}function u(e,r,o,l,i){let u,a;t._debugComponentMountStart(e),n._pushComponentContext();try{try{e.onInit?.()}catch(t){if(!e.onError)throw t;e.onError(t)}u=e.render()._render(r,o)}finally{t._debugComponentMountEnd(e),n._popComponentContext()}l.push(()=>{try{let t=e.onMount?.();"function"==typeof t&&(a=t)}catch(t){if(!e.onError)throw t;e.onError(t)}}),i.push(()=>{try{e.onUnmount?.()}catch{}try{a?.()}catch{}u(),t._debugComponentUnmount(e)})}function d(e,t,n){return{__isKeyedList:!0,items:e,keyFn:t,renderFn:n}}function f(e){let t,n,r,o,l,i=e.slice(),u=[0],a=e.length;for(t=0;t<a;t++){let a=e[t];if(0!==a){if(n=u[u.length-1],e[n]<a){i[t]=n,u.push(t);continue}for(r=0,o=u.length-1;r<o;)l=r+o>>1,e[u[l]]<a?r=l+1:o=l;a<e[u[r]]&&(r>0&&(i[t]=u[r-1]),u[r]=t)}}for(r=u.length,o=u[r-1];r-- >0;)u[r]=o,o=i[o];return u}var p=new Set,m=!1;function h(e){p.add(e),m||(m=!0,queueMicrotask(()=>{for(let e of p)try{e()}catch(e){console.error("[Nix.js] Error in DOM write task:",e)}p.clear(),m=!1}))}function g(r,i,c,d){if("function"!=typeof i){if(t.isNixComponent(i))u(i,r.parentNode,r,d,c);else if(a(i))c.push(i._render(r.parentNode,r));else if(Array.isArray(i))for(let e of i)t.isNixComponent(e)?u(e,r.parentNode,r,d,c):a(e)?e._render(r.parentNode,r):null!=e&&!1!==e&&r.parentNode.insertBefore(document.createTextNode(String(e)),r);else null!=i&&!1!==i&&r.parentNode.insertBefore(document.createTextNode(String(i)),r);return}let p=null,m=null,y=null,x=[],g=null,_=n._captureContextSnapshot(),N=!1,v="",b=!0,E=e.effect(()=>{let n=i();if("string"==typeof n||"number"==typeof n){v=String(n);let e=()=>{N=!1,m&&=(m(),null),p?p.nodeValue=v:(p=document.createTextNode(v),r.parentNode.insertBefore(p,r))};return void(b?(b=!1,e()):N||(N=!0,h(e)))}if(N=!1,b=!1,p&&=(p.parentNode?.removeChild(p),null),m&&=(m(),null),null!=n&&!1!==n)if(a(n))m=n._render(r.parentNode,r);else if(t.isNixComponent(n))m=l(n,r.parentNode,r,_);else if(o(n)){y||(y=new Map,g=document.createTextNode(""),r.parentNode.insertBefore(g,r));let o=r.parentNode,i=n.items.map((e,t)=>n.keyFn(e,t)),u=new Set(i),a=!1;if(y.size>0)for(let e of y.keys())if(u.has(e)){a=!0;break}if(!a){if(y.size>0){let e=document.createRange();e.setStartAfter(g),e.setEndBefore(r),e.deleteContents();for(let e of y.values())e.cleanup();y.clear()}if(i.length>0){let u=document.createDocumentFragment();e.batch(()=>{for(let e=0;e<i.length;e++){let r=i[e],o=n.items[e],a=document.createTextNode(""),c=document.createTextNode("");u.appendChild(a),u.appendChild(c);let s=n.renderFn(o,e),d=t.isNixComponent(s)?l(s,u,c,_):s._render(u,c);y?.set(r,{start:a,end:c,cleanup:d})}}),o.insertBefore(u,r)}return void(x=i)}let c=new Map;for(let e=0;e<i.length;e++)c.set(i[e],e);let s=new Int32Array(i.length),d=!1,p=0;for(let e=0;e<x.length;e++){let t=x[e],n=c.get(t);if(void 0===n){let e=y.get(t);e.cleanup();let n=e.start;for(;n;){let t=n===e.end?null:n.nextSibling;if(n.parentNode?.removeChild(n),!t)break;n=t}y.delete(t)}else s[n]=e+1,n>=p?p=n:d=!0}let m=d?f(s):[],h=m.length-1,N=r;for(let e=i.length-1;e>=0;e--){let r=i[e];if(0===s[e]){let i=n.items[e],u=document.createTextNode(""),a=document.createTextNode(""),c=document.createDocumentFragment();c.appendChild(u),c.appendChild(a);let s=n.renderFn(i,e),d=t.isNixComponent(s)?l(s,c,a,_):s._render(c,a);y.set(r,{start:u,end:a,cleanup:d}),o.insertBefore(c,N),N=u}else{let t=y.get(r);if(d)if(h<0||e!==m[h]){let e=t.start;for(;e;){let n=e===t.end?null:e.nextSibling;if(o.insertBefore(e,N),!n)break;e=n}}else h--;N=t.start}}x=i}else if(Array.isArray(n)){let e=[];for(let o of n)if(t.isNixComponent(o))e.push(s(o,r.parentNode,r));else if(a(o))e.push(o._render(r.parentNode,r));else if(null!=o&&!1!==o){let t=document.createTextNode(String(o));r.parentNode.insertBefore(t,r),e.push(()=>t.parentNode?.removeChild(t))}m=()=>e.forEach(e=>e())}else p=document.createTextNode(String(n)),r.parentNode.insertBefore(p,r)});c.push(()=>{if(E(),m&&=(m(),null),p&&=(p.parentNode?.removeChild(p),null),y){for(let e of y.values())e.cleanup();y=null,g=null}})}function _(e,t){t?"none"===e.style.display&&(e.style.display=""):"none"!==e.style.display&&(e.style.display="none")}function v(e){let t=e.lastIndexOf(">"),n=e.lastIndexOf("<");if(n<=t)return{type:"node"};let r=e.slice(n+1),o=r.lastIndexOf("=");if(-1===o)return{type:"node"};let l=r.endsWith('"')||r.endsWith("'")||'"'===r[r.length-1]||"'"===r[r.length-1],i=o-1;for(;i>=0&&/\S/.test(r[i]);)i--;i++;let u=r.slice(i,o);if("@"===u[0]){let e=u.slice(1).split(".");return{type:"event",eventName:e[0],modifiers:e.slice(1),hadOpenQuote:l}}return{type:"attr",attrName:u,hadOpenQuote:l}}var y={enter:"Enter",escape:"Escape",space:" ",tab:"Tab",delete:"Delete",backspace:"Backspace",up:"ArrowUp",down:"ArrowDown",left:"ArrowLeft",right:"ArrowRight"},b=new Set(["click","dblclick","mousedown","mouseup","keydown","keyup","input","change","submit"]),x=new Set;function S(e,t,n){let r=e.target,o=e.stopPropagation,l=!1;for(e.stopPropagation=()=>{l=!0,o.call(e)};r&&r!==document;){let o=r[t];if(o){let t=r[n];if(t){if(t.includes("prevent")&&e.preventDefault(),t.includes("stop")&&e.stopPropagation(),t.includes("self")&&e.target!==r){r=r.parentNode;continue}if("key"in e){let n=e,o=!0;for(let e of t){let t=y[e];if(void 0!==t&&n.key!==t){o=!1;break}if(!t&&1===e.length&&n.key.toLowerCase()!==e){o=!1;break}}if(!o){r=r.parentNode;continue}}}if(o(e),l)break}r=r.parentNode}e.stopPropagation=o}var C=new Map;function w(t,n,r,o){let l=[],i=[],u=Array(n.length),a=-1;for(let e=0;e<n.length;e++)o[e]&&o[e].nodeIndex>a&&(a=o[e].nodeIndex);let c=Array(a+1);if(c[0]=t,a>0){let e,n=document.createTreeWalker(t,NodeFilter.SHOW_ELEMENT|NodeFilter.SHOW_COMMENT),r=1;for(;r<=a&&(e=n.nextNode());)c[r++]=e}for(let e=0;e<n.length;e++){let t=o[e];u[e]=t?c[t.nodeIndex]:null}for(let t=0;t<n.length;t++){let a=n[t],c=r[t],s=o[t];if(!s)continue;let d=u[t];if("event"===a.type){let e=s.name,t=c,n=a.modifiers;if(!b.has(e)||n.includes("capture")||n.includes("once")){let r={once:n.includes("once"),capture:n.includes("capture"),passive:n.includes("passive")},o=e=>{n.includes("prevent")&&e.preventDefault(),n.includes("stop")&&e.stopPropagation(),(!n.includes("self")||e.target===e.currentTarget)&&t(e)};d.addEventListener(e,o,r),l.push(()=>d.removeEventListener(e,o,r))}else{if(!x.has(e)){let t=`__nix_${e}`,n=`__nix_${e}_mods`,r=e=>S(e,t,n);C.set(e,r),document.addEventListener(e,r),x.add(e)}let r=`__nix_${e}`,o=`__nix_${e}_mods`;d[r]=t,n.length>0&&(d[o]=n),l.push(()=>{d[r]=null,d[o]=null})}continue}if("attr"===a.type){let t=s.name,n=d;if("ref"===t){c.el=n,l.push(()=>{c.el=null});continue}if("show"===t||"hide"===t){let r=n,o=null;if("function"==typeof c){let n=!1,i=!1,u=!0,a=e.effect(()=>{i=!!c();let e=()=>{n=!1;let e="show"===t?i:!i;null===o&&(o=r.style.display||""),r.style.display=e?o:"none"};u?(u=!1,e()):n||(n=!0,h(e))});l.push(a)}else("show"===t?c:!c)||(r.style.display="none");continue}let r=("value"===t||"checked"===t||"selected"===t)&&t in n;if("function"==typeof c){let o,i=!1,u=!0,a=e.effect(()=>{o=c();let e=()=>{i=!1;let e=o;r?n[t]=e??"":null==e||!1===e?n.removeAttribute(t):n.setAttribute(t,String(e))};u?(u=!1,e()):i||(i=!0,h(e))});l.push(a)}else r?n[t]=c??"":null!=c&&!1!==c&&n.setAttribute(t,String(c));continue}let f=d;if(!f)continue;let p=document.createTextNode("");f.parentNode.replaceChild(p,f),g(p,c,l,i)}return{disposes:l,postMountHooks:i}}function T(e,t){let n=new Uint8Array(e.length),r="";for(let o=0;o<e.length;o++){let l=e[o];if(1===n[o]&&('"'===l[0]||"'"===l[0])&&(l=l.slice(1)),o<t.length){let e=t[o];if("node"===e.type)r+=l+`\x3c!--nix-${o}--\x3e`;else if("event"===e.type){let t=`@${e.modifiers.length?`${e.eventName}.${e.modifiers.join(".")}`:e.eventName}=`.length+ +!!e.hadOpenQuote;r+=l.slice(0,-t)+` data-nix-e-${o}="${e.eventName}"`,e.hadOpenQuote&&(n[o+1]=1)}else{let t=`${e.attrName}=`.length+ +!!e.hadOpenQuote;r+=l.slice(0,-t)+` data-nix-a-${o}="${e.attrName}"`,e.hadOpenQuote&&(n[o+1]=1)}}else r+=l}return r}var E=new WeakMap;function D(e,...t){let n=E.get(e);if(!n){let t=[],r="";for(let n=0;n<e.length-1;n++)r+=e[n],t.push(v(r)),r+="__nix__";let o=document.createElement("template");o.innerHTML=T(e,t);let l,i=Array(t.length).fill(null),u=o.content,a=document.createTreeWalker(u,NodeFilter.SHOW_ELEMENT|NodeFilter.SHOW_COMMENT),c=0;for(;l=a.nextNode();)if(c++,8===l.nodeType){let e=l.nodeValue;if(e&&e.startsWith("nix-")){let t=parseInt(e.slice(4),10);isNaN(t)||(i[t]={nodeIndex:c})}}else if(1===l.nodeType){let e=l,t=Array.from(e.attributes);for(let n=0;n<t.length;n++){let r=t[n],o=r.name;if(o.startsWith("data-nix-e-")){let t=parseInt(o.slice(11),10);isNaN(t)||(i[t]={nodeIndex:c,name:r.value},e.removeAttribute(o));continue}if(o.startsWith("data-nix-a-")){let t=parseInt(o.slice(11),10);isNaN(t)||(i[t]={nodeIndex:c,name:r.value},e.removeAttribute(o))}}}n={contexts:t,tpl:o,pathMap:i},E.set(e,n)}let{contexts:r,tpl:o,pathMap:l}=n;function i(e,n){let i=o.content.cloneNode(!0),{disposes:u,postMountHooks:a}=w(i,r,t,l),c=document.createTextNode(""),s=document.createTextNode("");return e.insertBefore(c,n),e.insertBefore(i,n),e.insertBefore(s,n),a.forEach(e=>e()),()=>{for(let e=u.length-1;e>=0;e--)u[e]();let e=c.nextSibling;for(;e&&e!==s;){let t=e.nextSibling;e.parentNode?.removeChild(e),e=t}c.parentNode?.removeChild(c),s.parentNode?.removeChild(s)}}return{__isNixTemplate:!0,_render:i,mount(e){let t="string"==typeof e?document.querySelector(e):e;if(!t)throw Error(`[Nix] mount: contenedor no encontrado: ${e}`);let n=i(t,null);return{unmount(){n()}}}}}function O(e){let t=e.name??"nix";return{enterFrom:e.enterFrom??`${t}-enter-from`,enterActive:e.enterActive??`${t}-enter-active`,enterTo:e.enterTo??`${t}-enter-to`,leaveFrom:e.leaveFrom??`${t}-leave-from`,leaveActive:e.leaveActive??`${t}-leave-active`,leaveTo:e.leaveTo??`${t}-leave-to`}}function k(e){return Math.max(0,...e.split(",").map(e=>parseFloat(e.trim())||0))}function A(e,t=0){return new Promise(n=>{let r=getComputedStyle(e),o=1e3*Math.max(k(r.transitionDuration||"0"),k(r.animationDuration||"0")),l=o>0?o+100:t;if(l<=0)return void n();let i,u=t=>{t.target===e&&(clearTimeout(i),e.removeEventListener("transitionend",u),e.removeEventListener("animationend",u),n())};e.addEventListener("transitionend",u),e.addEventListener("animationend",u),i=setTimeout(()=>{e.removeEventListener("transitionend",u),e.removeEventListener("animationend",u),n()},l)})}function j(n,r={}){let o=O(r);return{__isNixTemplate:!0,mount(e){let t="string"==typeof e?document.querySelector(e)??document.body:e;return{unmount:this._render(t,null)}},_render(l,u){let a=document.createComment(i.TRANSITION);l.insertBefore(a,u);let s=null,d=null,f=0,p=!0,m=()=>{let e=a.nextSibling;for(;e&&e!==u;){if(e.nodeType===Node.ELEMENT_NODE)return e;e=e.nextSibling}return null};function y(e){return t.isNixComponent(e)?c(e,l,u):e._render(l,u)}let h=(e,t=!1)=>{f++,d&&=(d(),null),s=y(e);let n=m();if(n&&(!p||r.appear)&&!t){let e=f;(async()=>{r.onBeforeEnter?.(n),n.classList.add(o.enterFrom,o.enterActive),n.getBoundingClientRect(),await new Promise(e=>requestAnimationFrame(()=>e())),f===e&&(n.classList.remove(o.enterFrom),n.classList.add(o.enterTo),await A(n,r.duration),f===e&&(n.classList.remove(o.enterActive,o.enterTo),r.onAfterEnter?.(n)))})().catch(()=>{})}p=!1},x=()=>{let e=s;s=null;let t=m();if(!t)return void e?.();let n=++f;d=e??null,(async()=>{r.onBeforeLeave?.(t),t.classList.add(o.leaveFrom,o.leaveActive),t.getBoundingClientRect(),await new Promise(e=>requestAnimationFrame(()=>e())),f===n&&(t.classList.remove(o.leaveFrom),t.classList.add(o.leaveTo),await A(t,r.duration),f===n&&(t.classList.remove(o.leaveActive,o.leaveTo),r.onAfterLeave?.(t),d?.(),d=null))})().catch(()=>{})},g=null;if("function"!=typeof n||t.isNixComponent(n))h(n);else{let t=n,r=null;g=e.effect(()=>{let e=t(),n=null===r,o=null===e;n&&!o?h(e):!n&&o?x():!n&&!o&&(f++,d?.(),d=null,s?.(),s=null,h(e,!0)),r=e}),p=!1}return()=>{f++,g?.(),s?.(),d?.(),s=null,d=null,a.remove()}}}}function M(){return{__isPortalOutlet:!0,_container:null}}function N(e){return{__isNixTemplate:!0,mount(e){let t="string"==typeof e?document.querySelector(e)??document.body:e;return{unmount:this._render(t,null)}},_render(t,n){let r=document.createElement("div");return r.setAttribute("data-nix-outlet",""),e._container=r,t.insertBefore(r,n),()=>{e._container=null,r.remove()}}}}function P(e,n=document.body){return{__isNixTemplate:!0,mount(e){let t="string"==typeof e?document.querySelector(e)??document.body:e;return{unmount:this._render(t,null)}},_render(r,o){let l;return l="string"==typeof n?document.querySelector(n)??document.body:n instanceof Element?n:"__isPortalOutlet"in n?n._container??document.body:n.el??document.body,t.isNixComponent(e)?s(e,l,null):e._render(l,null)}}}var F=n.createInjectionKey("nix:portal-outlet");function I(e){n.provide(F,e)}function L(){return n.inject(F)}function R(r,o){return{__isNixTemplate:!0,mount(e){let t="string"==typeof e?document.querySelector(e)??document.body:e;return{unmount:this._render(t,null)}},_render(l,u){let a=document.createComment(i.ERROR_BOUNDARY);l.insertBefore(a,u);let s,d=null,f=!1,p=!1,m=!1,y=e=>{let n=a.parentNode,r="function"!=typeof o||t.isNixComponent(o)?o:o(e);d=t.isNixComponent(r)?c(r,n,u):r._render(n,u)};e._pushErrorHandler(e=>{f||(f=!0,p?(d?.(),d=null,y(e)):(s=e,m=!0))});try{if(t.isNixComponent(r)){n._pushComponentContext();try{try{r.onInit?.()}catch(e){if(!r.onError)throw e;r.onError(e)}d=r.render()._render(l,u)}finally{n._popComponentContext()}if(!f)try{let e=r.onMount?.(),t=d;d=()=>{try{r.onUnmount?.()}catch{}if("function"==typeof e)try{e()}catch{}t?.()}}catch(e){if(!r.onError)throw e;r.onError(e)}}else d=r._render(l,u)}catch(e){f=!0,d?.(),d=null,s=e,m=!0}finally{e._popErrorHandler(),p=!0}return m&&(d?.(),d=null,y(s)),()=>{d?.(),a.remove()}}}}Object.defineProperty(exports,"a",{enumerable:!0,get:function(){return N}}),Object.defineProperty(exports,"c",{enumerable:!0,get:function(){return T}}),Object.defineProperty(exports,"d",{enumerable:!0,get:function(){return d}}),Object.defineProperty(exports,"f",{enumerable:!0,get:function(){return i}}),Object.defineProperty(exports,"h",{enumerable:!0,get:function(){return r}}),Object.defineProperty(exports,"i",{enumerable:!0,get:function(){return P}}),Object.defineProperty(exports,"l",{enumerable:!0,get:function(){return D}}),Object.defineProperty(exports,"m",{enumerable:!0,get:function(){return a}}),Object.defineProperty(exports,"n",{enumerable:!0,get:function(){return M}}),Object.defineProperty(exports,"o",{enumerable:!0,get:function(){return I}}),Object.defineProperty(exports,"p",{enumerable:!0,get:function(){return o}}),Object.defineProperty(exports,"r",{enumerable:!0,get:function(){return L}}),Object.defineProperty(exports,"s",{enumerable:!0,get:function(){return j}}),Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return R}}),Object.defineProperty(exports,"u",{enumerable:!0,get:function(){return _}});
1
+ const e=require("./signals.cjs"),t=require("./lifecycle.cjs"),n=require("./context.cjs");function r(){return{el:null}}var i={SCOPE:"nix-scope",ERROR_BOUNDARY:"nix-eb",TRANSITION:"nix-t",KEYED_START:"nix-ks",KEYED_END:"nix-ke",KEYED_ZONE:"nix-kz"};function a(e){return"object"==typeof e&&!!e&&!0===e.__isNixTemplate}function o(e){return"object"==typeof e&&!!e&&!0===e.__isKeyedList}function s(e,r,o){let i,l;t._debugComponentMountStart(e),n._pushComponentContext();try{try{e.onInit?.()}catch(t){if(!e.onError)throw t;e.onError(t)}i=e.render()._render(r,o)}finally{t._debugComponentMountEnd(e),n._popComponentContext()}try{let t=e.onMount?.();"function"==typeof t&&(l=t)}catch(t){if(!e.onError)throw t;e.onError(t)}return()=>{try{e.onUnmount?.()}catch{}try{l?.()}catch{}i(),t._debugComponentUnmount(e)}}function c(e,r,o){let i,l;t._debugComponentMountStart(e),n._pushComponentContext();try{try{e.onInit?.()}catch{}i=e.render()._render(r,o)}finally{t._debugComponentMountEnd(e),n._popComponentContext()}try{let t=e.onMount?.();"function"==typeof t&&(l=t)}catch{}return()=>{try{e.onUnmount?.()}catch{}try{l?.()}catch{}i(),t._debugComponentUnmount(e)}}function l(e,r,o,i){let l,u;t._debugComponentMountStart(e);try{n._withComponentContext(i,()=>{try{e.onInit?.()}catch(t){if(!e.onError)throw t;e.onError(t)}l=e.render()._render(r,o)})}finally{t._debugComponentMountEnd(e)}try{let t=e.onMount?.();"function"==typeof t&&(u=t)}catch(t){if(!e.onError)throw t;e.onError(t)}return()=>{try{e.onUnmount?.()}catch{}try{u?.()}catch{}l(),t._debugComponentUnmount(e)}}function u(e,r,o,i,l){let u,a;t._debugComponentMountStart(e),n._pushComponentContext();try{try{e.onInit?.()}catch(t){if(!e.onError)throw t;e.onError(t)}u=e.render()._render(r,o)}finally{t._debugComponentMountEnd(e),n._popComponentContext()}i.push(()=>{try{let t=e.onMount?.();"function"==typeof t&&(a=t)}catch(t){if(!e.onError)throw t;e.onError(t)}}),l.push(()=>{try{e.onUnmount?.()}catch{}try{a?.()}catch{}u(),t._debugComponentUnmount(e)})}function d(e,t,n){return{__isKeyedList:!0,items:e,keyFn:t,renderFn:n}}function f(e){let t,n,r,o,i,l=e.slice(),u=[0],a=e.length;for(t=0;t<a;t++){let a=e[t];if(0!==a){if(n=u[u.length-1],e[n]<a){l[t]=n,u.push(t);continue}for(r=0,o=u.length-1;r<o;)i=r+o>>1,e[u[i]]<a?r=i+1:o=i;a<e[u[r]]&&(r>0&&(l[t]=u[r-1]),u[r]=t)}}for(r=u.length,o=u[r-1];r-- >0;)u[r]=o,o=l[o];return u}var p=new Set,m=!1;function h(e){p.add(e),m||(m=!0,queueMicrotask(()=>{for(let e of p)try{e()}catch(e){console.error("[Nix.js] Error in DOM write task:",e)}p.clear(),m=!1}))}function g(r,i,c,d){if("function"!=typeof i){if(t.isNixComponent(i))u(i,r.parentNode,r,d,c);else if(a(i))c.push(i._render(r.parentNode,r));else if(Array.isArray(i))for(let e of i)t.isNixComponent(e)?u(e,r.parentNode,r,d,c):a(e)?e._render(r.parentNode,r):null!=e&&!1!==e&&r.parentNode.insertBefore(document.createTextNode(String(e)),r);else null!=i&&!1!==i&&r.parentNode.insertBefore(document.createTextNode(String(i)),r);return}let p=null,m=null,y=null,g=[],x=null,v=n._captureContextSnapshot(),_=!1,N="",b=!0,C=e.effect(()=>{let n=i();if("string"==typeof n||"number"==typeof n){N=String(n);let e=()=>{_=!1,m&&=(m(),null),p?p.nodeValue=N:(p=document.createTextNode(N),r.parentNode.insertBefore(p,r))};return void(b?(b=!1,e()):_||(_=!0,h(e)))}if(_=!1,b=!1,p&&=(p.parentNode?.removeChild(p),null),m&&=(m(),null),null!=n&&!1!==n)if(a(n))m=n._render(r.parentNode,r);else if(t.isNixComponent(n))m=l(n,r.parentNode,r,v);else if(o(n)){y||(y=new Map,x=document.createTextNode(""),r.parentNode.insertBefore(x,r));let o=r.parentNode,i=n.items.map((e,t)=>n.keyFn(e,t)),u=new Set(i),a=!1;if(y.size>0)for(let e of y.keys())if(u.has(e)){a=!0;break}if(!a){if(y.size>0){let e=document.createRange();e.setStartAfter(x),e.setEndBefore(r),e.deleteContents();for(let e of y.values())e.cleanup();y.clear()}if(i.length>0){let u=document.createDocumentFragment();e.batch(()=>{for(let e=0;e<i.length;e++){let r=i[e],o=n.items[e],a=document.createTextNode(""),c=document.createTextNode("");u.appendChild(a),u.appendChild(c);let s=n.renderFn(o,e),d=t.isNixComponent(s)?l(s,u,c,v):s._render(u,c);y.has(r)&&console.warn(`[Nix] repeat(): duplicate key "${r}". Keys must be unique; the previous entry leaks (orphaned nodes + live effects).`),y?.set(r,{start:a,end:c,cleanup:d})}}),o.insertBefore(u,r)}return void(g=i)}let c=new Map;for(let e=0;e<i.length;e++)c.set(i[e],e);let s=new Int32Array(i.length),d=!1,p=0;for(let e=0;e<g.length;e++){let t=g[e],n=c.get(t);if(void 0===n){let e=y.get(t);e.cleanup();let n=e.start;for(;n;){let t=n===e.end?null:n.nextSibling;if(n.parentNode?.removeChild(n),!t)break;n=t}y.delete(t)}else s[n]=e+1,n>=p?p=n:d=!0}let m=d?f(s):[],h=m.length-1,_=r;for(let e=i.length-1;e>=0;e--){let r=i[e];if(0===s[e]){let i=n.items[e],u=document.createTextNode(""),a=document.createTextNode(""),c=document.createDocumentFragment();c.appendChild(u),c.appendChild(a);let s=n.renderFn(i,e),d=t.isNixComponent(s)?l(s,c,a,v):s._render(c,a);y.has(r)&&console.warn(`[Nix] repeat(): duplicate key "${r}". Keys must be unique; the previous entry leaks (orphaned nodes + live effects).`),y.set(r,{start:u,end:a,cleanup:d}),o.insertBefore(c,_),_=u}else{let t=y.get(r);if(d)if(h<0||e!==m[h]){let e=t.start;for(;e;){let n=e===t.end?null:e.nextSibling;if(o.insertBefore(e,_),!n)break;e=n}}else h--;_=t.start}}g=i}else if(Array.isArray(n)){let e=[];for(let o of n)if(t.isNixComponent(o))e.push(s(o,r.parentNode,r));else if(a(o))e.push(o._render(r.parentNode,r));else if(null!=o&&!1!==o){let t=document.createTextNode(String(o));r.parentNode.insertBefore(t,r),e.push(()=>t.parentNode?.removeChild(t))}m=()=>e.forEach(e=>e())}else p=document.createTextNode(String(n)),r.parentNode.insertBefore(p,r)});c.push(()=>{if(C(),m&&=(m(),null),p&&=(p.parentNode?.removeChild(p),null),y){for(let e of y.values())e.cleanup();y=null,x=null}})}var _=new Set(["href","src","action","formaction","xlink:href","poster","background","cite","ping","data"]);function v(e){return _.has(e.toLowerCase())}function y(e){let t=e.toLowerCase();return t.startsWith("on")||"srcdoc"===t}var b=/[\u0000-\u001F\u007F-\u009F\u2028\u2029\uFEFF]/g,x=/^(?:javascript|vbscript|livescript|mocha|data):/i,S=/^data:image\/(?:png|jpe?g|gif|webp|avif|bmp|x-icon|vnd\.microsoft\.icon)[;,]/i;function C(e){let t=e.replace(b,"").trim();return x.test(t)?/^data:/i.test(t)&&S.test(t)?e:(console.warn(`[Nix] Blocked attribute URL with unsafe scheme: "${t.slice(0,48)}${t.length>48?"…":""}"`),""):e}function w(e,t){t?"none"===e.style.display&&(e.style.display=""):"none"!==e.style.display&&(e.style.display="none")}function T(e){let t=e.lastIndexOf(">"),n=e.lastIndexOf("<");if(n<=t)return{type:"node"};let r=e.slice(n+1),o=r.lastIndexOf("=");if(-1===o)return{type:"node"};let i=r.endsWith('"')||r.endsWith("'")||'"'===r[r.length-1]||"'"===r[r.length-1],l=o-1;for(;l>=0&&/\S/.test(r[l]);)l--;l++;let u=r.slice(l,o);if("@"===u[0]){let e=u.slice(1).split(".");return{type:"event",eventName:e[0],modifiers:e.slice(1),hadOpenQuote:i}}return{type:"attr",attrName:u,hadOpenQuote:i,url:v(u),executable:y(u)}}var E={enter:"Enter",escape:"Escape",space:" ",tab:"Tab",delete:"Delete",backspace:"Backspace",up:"ArrowUp",down:"ArrowDown",left:"ArrowLeft",right:"ArrowRight"},D=new Set(["click","dblclick","mousedown","mouseup","keydown","keyup","input","change","submit"]),O=new Set;function k(e,t,n){let r=e.target,o=e.stopPropagation,i=!1;for(e.stopPropagation=()=>{i=!0,o.call(e)};r&&r!==document;){let o=r[t];if(o){let t=r[n];if(t){if(t.includes("prevent")&&e.preventDefault(),t.includes("stop")&&e.stopPropagation(),t.includes("self")&&e.target!==r){r=r.parentNode;continue}if("key"in e){let n=e,o=!0;for(let e of t){let t=E[e];if(void 0!==t&&n.key!==t){o=!1;break}if(!t&&1===e.length&&n.key.toLowerCase()!==e){o=!1;break}}if(!o){r=r.parentNode;continue}}}if(o(e),i)break}r=r.parentNode}e.stopPropagation=o}var A=new Map;function j(t,n,r,o){let i=[],l=[],u=Array(n.length),a=-1;for(let e=0;e<n.length;e++)o[e]&&o[e].nodeIndex>a&&(a=o[e].nodeIndex);let c=Array(a+1);if(c[0]=t,a>0){let e,n=document.createTreeWalker(t,NodeFilter.SHOW_ELEMENT|NodeFilter.SHOW_COMMENT),r=1;for(;r<=a&&(e=n.nextNode());)c[r++]=e}for(let e=0;e<n.length;e++){let t=o[e];u[e]=t?c[t.nodeIndex]:null}for(let t=0;t<n.length;t++){let a=n[t],c=r[t],s=o[t];if(!s)continue;let d=u[t];if("event"===a.type){let e=s.name,t=c,n=a.modifiers;if(!D.has(e)||n.includes("capture")||n.includes("once")){let r={once:n.includes("once"),capture:n.includes("capture"),passive:n.includes("passive")},o=e=>{n.includes("prevent")&&e.preventDefault(),n.includes("stop")&&e.stopPropagation(),(!n.includes("self")||e.target===e.currentTarget)&&t(e)};d.addEventListener(e,o,r),i.push(()=>d.removeEventListener(e,o,r))}else{if(!O.has(e)){let t=`__nix_${e}`,n=`__nix_${e}_mods`,r=e=>k(e,t,n);A.set(e,r),document.addEventListener(e,r),O.add(e)}let r=`__nix_${e}`,o=`__nix_${e}_mods`;d[r]=t,n.length>0&&(d[o]=n),i.push(()=>{d[r]=null,d[o]=null})}continue}if("attr"===a.type){let t=s.name,n=d;if("ref"===t){c.el=n,i.push(()=>{c.el=null});continue}if("show"===t||"hide"===t){let r=n,o=null;if("function"==typeof c){let n=!1,l=!1,u=!0,a=e.effect(()=>{l=!!c();let e=()=>{n=!1;let e="show"===t?l:!l;null===o&&(o=r.style.display||""),r.style.display=e?o:"none"};u?(u=!1,e()):n||(n=!0,h(e))});i.push(a)}else("show"===t?c:!c)||(r.style.display="none");continue}(a.executable??y(t))&&console.warn(`[Nix] Dynamic binding on executable attribute "${t}". Use @event for handlers; avoid binding untrusted values here.`);let r=a.url??v(t),o=("value"===t||"checked"===t||"selected"===t)&&t in n;if("function"==typeof c){let l,u=!1,a=!0,s=e.effect(()=>{l=c();let e=()=>{u=!1;let e=l;if(o)n[t]=e??"";else if(null==e||!1===e)n.removeAttribute(t);else{let o=String(e);n.setAttribute(t,r?C(o):o)}};a?(a=!1,e()):u||(u=!0,h(e))});i.push(s)}else if(o)n[t]=c??"";else if(null!=c&&!1!==c){let e=String(c);n.setAttribute(t,r?C(e):e)}continue}let f=d;if(!f)continue;let p=document.createTextNode("");f.parentNode.replaceChild(p,f),g(p,c,i,l)}return{disposes:i,postMountHooks:l}}function M(e,t){let n=new Uint8Array(e.length),r="";for(let o=0;o<e.length;o++){let i=e[o];if(1===n[o]&&('"'===i[0]||"'"===i[0])&&(i=i.slice(1)),o<t.length){let e=t[o];if("node"===e.type)r+=i+`\x3c!--nix-${o}--\x3e`;else if("event"===e.type){let t=`@${e.modifiers.length?`${e.eventName}.${e.modifiers.join(".")}`:e.eventName}=`.length+ +!!e.hadOpenQuote;r+=i.slice(0,-t)+` data-nix-e-${o}="${e.eventName}"`,e.hadOpenQuote&&(n[o+1]=1)}else{let t=`${e.attrName}=`.length+ +!!e.hadOpenQuote;r+=i.slice(0,-t)+` data-nix-a-${o}="${e.attrName}"`,e.hadOpenQuote&&(n[o+1]=1)}}else r+=i}return r}var N=new WeakMap;function P(e,...t){let n=N.get(e);if(!n){let t=[],r="";for(let n=0;n<e.length-1;n++)r+=e[n],t.push(T(r)),r+="__nix__";let o=document.createElement("template");o.innerHTML=M(e,t);let i,l=Array(t.length).fill(null),u=o.content,a=document.createTreeWalker(u,NodeFilter.SHOW_ELEMENT|NodeFilter.SHOW_COMMENT),c=0;for(;i=a.nextNode();)if(c++,8===i.nodeType){let e=i.nodeValue;if(e&&e.startsWith("nix-")){let t=parseInt(e.slice(4),10);isNaN(t)||(l[t]={nodeIndex:c})}}else if(1===i.nodeType){let e=i,t=Array.from(e.attributes);for(let n=0;n<t.length;n++){let r=t[n],o=r.name;if(o.startsWith("data-nix-e-")){let t=parseInt(o.slice(11),10);isNaN(t)||(l[t]={nodeIndex:c,name:r.value},e.removeAttribute(o));continue}if(o.startsWith("data-nix-a-")){let t=parseInt(o.slice(11),10);isNaN(t)||(l[t]={nodeIndex:c,name:r.value},e.removeAttribute(o))}}}n={contexts:t,tpl:o,pathMap:l},N.set(e,n)}let{contexts:r,tpl:o,pathMap:i}=n;function l(e,n){let l=o.content.cloneNode(!0),{disposes:u,postMountHooks:a}=j(l,r,t,i),c=document.createTextNode(""),s=document.createTextNode("");return e.insertBefore(c,n),e.insertBefore(l,n),e.insertBefore(s,n),a.forEach(e=>e()),()=>{for(let e=u.length-1;e>=0;e--)u[e]();let e=c.nextSibling;for(;e&&e!==s;){let t=e.nextSibling;e.parentNode?.removeChild(e),e=t}c.parentNode?.removeChild(c),s.parentNode?.removeChild(s)}}return{__isNixTemplate:!0,_render:l,mount(e){let t="string"==typeof e?document.querySelector(e):e;if(!t)throw Error(`[Nix] mount: contenedor no encontrado: ${e}`);let n=l(t,null);return{unmount(){n()}}}}}function F(e){let t=e.name??"nix";return{enterFrom:e.enterFrom??`${t}-enter-from`,enterActive:e.enterActive??`${t}-enter-active`,enterTo:e.enterTo??`${t}-enter-to`,leaveFrom:e.leaveFrom??`${t}-leave-from`,leaveActive:e.leaveActive??`${t}-leave-active`,leaveTo:e.leaveTo??`${t}-leave-to`}}function I(e){return Math.max(0,...e.split(",").map(e=>parseFloat(e.trim())||0))}function L(e,t=0){return new Promise(n=>{let r=getComputedStyle(e),o=1e3*Math.max(I(r.transitionDuration||"0"),I(r.animationDuration||"0")),i=o>0?o+100:t;if(i<=0)return void n();let l,u=t=>{t.target===e&&(clearTimeout(l),e.removeEventListener("transitionend",u),e.removeEventListener("animationend",u),n())};e.addEventListener("transitionend",u),e.addEventListener("animationend",u),l=setTimeout(()=>{e.removeEventListener("transitionend",u),e.removeEventListener("animationend",u),n()},i)})}function R(n,r={}){let o=F(r);return{__isNixTemplate:!0,mount(e){let t="string"==typeof e?document.querySelector(e)??document.body:e;return{unmount:this._render(t,null)}},_render(l,u){let a=document.createComment(i.TRANSITION);l.insertBefore(a,u);let s=null,d=null,f=0,p=!0,m=()=>{let e=a.nextSibling;for(;e&&e!==u;){if(e.nodeType===Node.ELEMENT_NODE)return e;e=e.nextSibling}return null};function h(e){return t.isNixComponent(e)?c(e,l,u):e._render(l,u)}let y=(e,t=!1)=>{f++,d&&=(d(),null),s=h(e);let n=m();if(n&&(!p||r.appear)&&!t){let e=f;(async()=>{r.onBeforeEnter?.(n),n.classList.add(o.enterFrom,o.enterActive),n.getBoundingClientRect(),await new Promise(e=>requestAnimationFrame(()=>e())),f===e&&(n.classList.remove(o.enterFrom),n.classList.add(o.enterTo),await L(n,r.duration),f===e&&(n.classList.remove(o.enterActive,o.enterTo),r.onAfterEnter?.(n)))})().catch(()=>{})}p=!1},g=()=>{let e=s;s=null;let t=m();if(!t)return void e?.();let n=++f;d=e??null,(async()=>{r.onBeforeLeave?.(t),t.classList.add(o.leaveFrom,o.leaveActive),t.getBoundingClientRect(),await new Promise(e=>requestAnimationFrame(()=>e())),f===n&&(t.classList.remove(o.leaveFrom),t.classList.add(o.leaveTo),await L(t,r.duration),f===n&&(t.classList.remove(o.leaveActive,o.leaveTo),r.onAfterLeave?.(t),d?.(),d=null))})().catch(()=>{})},x=null;if("function"!=typeof n||t.isNixComponent(n))y(n);else{let t=n,r=null;x=e.effect(()=>{let e=t(),n=null===r,o=null===e;n&&!o?y(e):!n&&o?g():!n&&!o&&(f++,d?.(),d=null,s?.(),s=null,y(e,!0)),r=e}),p=!1}return()=>{f++,x?.(),s?.(),d?.(),s=null,d=null,a.remove()}}}}function z(){return{__isPortalOutlet:!0,_container:null}}function B(e){return{__isNixTemplate:!0,mount(e){let t="string"==typeof e?document.querySelector(e)??document.body:e;return{unmount:this._render(t,null)}},_render(t,n){let r=document.createElement("div");return r.setAttribute("data-nix-outlet",""),e._container=r,t.insertBefore(r,n),()=>{e._container=null,r.remove()}}}}function V(e,n=document.body){return{__isNixTemplate:!0,mount(e){let t="string"==typeof e?document.querySelector(e)??document.body:e;return{unmount:this._render(t,null)}},_render(r,o){let i;return i="string"==typeof n?document.querySelector(n)??document.body:n instanceof Element?n:"__isPortalOutlet"in n?n._container??document.body:n.el??document.body,t.isNixComponent(e)?s(e,i,null):e._render(i,null)}}}var H=n.createInjectionKey("nix:portal-outlet");function U(e){n.provide(H,e)}function W(){return n.inject(H)}function G(r,o){return{__isNixTemplate:!0,mount(e){let t="string"==typeof e?document.querySelector(e)??document.body:e;return{unmount:this._render(t,null)}},_render(l,u){let a=document.createComment(i.ERROR_BOUNDARY);l.insertBefore(a,u);let s,d=null,f=!1,p=!1,m=!1,h=e=>{let n=a.parentNode,r="function"!=typeof o||t.isNixComponent(o)?o:o(e);d=t.isNixComponent(r)?c(r,n,u):r._render(n,u)};e._pushErrorHandler(e=>{f||(f=!0,p?(d?.(),d=null,h(e)):(s=e,m=!0))});try{if(t.isNixComponent(r)){n._pushComponentContext();try{try{r.onInit?.()}catch(e){if(!r.onError)throw e;r.onError(e)}d=r.render()._render(l,u)}finally{n._popComponentContext()}if(!f)try{let e=r.onMount?.(),t=d;d=()=>{try{r.onUnmount?.()}catch{}if("function"==typeof e)try{e()}catch{}t?.()}}catch(e){if(!r.onError)throw e;r.onError(e)}}else d=r._render(l,u)}catch(e){f=!0,d?.(),d=null,s=e,m=!0}finally{e._popErrorHandler(),p=!0}return m&&(d?.(),d=null,h(s)),()=>{d?.(),a.remove()}}}}Object.defineProperty(exports,"_",{enumerable:!0,get:function(){return a}}),Object.defineProperty(exports,"a",{enumerable:!0,get:function(){return B}}),Object.defineProperty(exports,"c",{enumerable:!0,get:function(){return M}}),Object.defineProperty(exports,"d",{enumerable:!0,get:function(){return y}}),Object.defineProperty(exports,"f",{enumerable:!0,get:function(){return v}}),Object.defineProperty(exports,"g",{enumerable:!0,get:function(){return o}}),Object.defineProperty(exports,"h",{enumerable:!0,get:function(){return i}}),Object.defineProperty(exports,"i",{enumerable:!0,get:function(){return V}}),Object.defineProperty(exports,"l",{enumerable:!0,get:function(){return P}}),Object.defineProperty(exports,"m",{enumerable:!0,get:function(){return d}}),Object.defineProperty(exports,"n",{enumerable:!0,get:function(){return z}}),Object.defineProperty(exports,"o",{enumerable:!0,get:function(){return U}}),Object.defineProperty(exports,"p",{enumerable:!0,get:function(){return C}}),Object.defineProperty(exports,"r",{enumerable:!0,get:function(){return W}}),Object.defineProperty(exports,"s",{enumerable:!0,get:function(){return R}}),Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return G}}),Object.defineProperty(exports,"u",{enumerable:!0,get:function(){return w}}),Object.defineProperty(exports,"v",{enumerable:!0,get:function(){return r}});
@@ -1 +1 @@
1
- import{_popErrorHandler as e,_pushErrorHandler as t,batch as n,effect as r}from"./signals.js";import{_debugComponentMountEnd as i,_debugComponentMountStart as a,_debugComponentUnmount as o,isNixComponent as s}from"./lifecycle.js";import{_captureContextSnapshot as c,_popComponentContext as l,_pushComponentContext as u,_withComponentContext as d,createInjectionKey as f,inject as p,provide as m}from"./context.js";function h(){return{el:null}}var g={SCOPE:"nix-scope",ERROR_BOUNDARY:"nix-eb",TRANSITION:"nix-t",KEYED_START:"nix-ks",KEYED_END:"nix-ke",KEYED_ZONE:"nix-kz"};function _(e){return"object"==typeof e&&!!e&&!0===e.__isNixTemplate}function v(e){return"object"==typeof e&&!!e&&!0===e.__isKeyedList}function y(e,t,n){let r,s;a(e),u();try{try{e.onInit?.()}catch(t){if(!e.onError)throw t;e.onError(t)}r=e.render()._render(t,n)}finally{i(e),l()}try{let t=e.onMount?.();"function"==typeof t&&(s=t)}catch(t){if(!e.onError)throw t;e.onError(t)}return()=>{try{e.onUnmount?.()}catch{}try{s?.()}catch{}r(),o(e)}}function b(e,t,n){let r,s;a(e),u();try{try{e.onInit?.()}catch{}r=e.render()._render(t,n)}finally{i(e),l()}try{let t=e.onMount?.();"function"==typeof t&&(s=t)}catch{}return()=>{try{e.onUnmount?.()}catch{}try{s?.()}catch{}r(),o(e)}}function x(e,t,n,r){let l,u;a(e);try{d(r,()=>{try{e.onInit?.()}catch(t){if(!e.onError)throw t;e.onError(t)}l=e.render()._render(t,n)})}finally{i(e)}try{let t=e.onMount?.();"function"==typeof t&&(u=t)}catch(t){if(!e.onError)throw t;e.onError(t)}return()=>{try{e.onUnmount?.()}catch{}try{u?.()}catch{}l(),o(e)}}function S(e,t,n,r,s){let c,d;a(e),u();try{try{e.onInit?.()}catch(t){if(!e.onError)throw t;e.onError(t)}c=e.render()._render(t,n)}finally{i(e),l()}r.push(()=>{try{let t=e.onMount?.();"function"==typeof t&&(d=t)}catch(t){if(!e.onError)throw t;e.onError(t)}}),s.push(()=>{try{e.onUnmount?.()}catch{}try{d?.()}catch{}c(),o(e)})}function C(e,t,n){return{__isKeyedList:!0,items:e,keyFn:t,renderFn:n}}function w(e){let t,n,r,o,l,i=e.slice(),a=[0],u=e.length;for(t=0;t<u;t++){let u=e[t];if(0!==u){if(n=a[a.length-1],e[n]<u){i[t]=n,a.push(t);continue}for(r=0,o=a.length-1;r<o;)l=r+o>>1,e[a[l]]<u?r=l+1:o=l;u<e[a[r]]&&(r>0&&(i[t]=a[r-1]),a[r]=t)}}for(r=a.length,o=a[r-1];r-- >0;)a[r]=o,o=i[o];return a}var T=new Set,E=!1;function D(e){T.add(e),E||(E=!0,queueMicrotask(()=>{for(let e of T)try{e()}catch(e){console.error("[Nix.js] Error in DOM write task:",e)}T.clear(),E=!1}))}function O(e,t,o,l){if("function"!=typeof t){if(s(t))S(t,e.parentNode,e,l,o);else if(_(t))o.push(t._render(e.parentNode,e));else if(Array.isArray(t))for(let n of t)s(n)?S(n,e.parentNode,e,l,o):_(n)?n._render(e.parentNode,e):null!=n&&!1!==n&&e.parentNode.insertBefore(document.createTextNode(String(n)),e);else null!=t&&!1!==t&&e.parentNode.insertBefore(document.createTextNode(String(t)),e);return}let i=null,a=null,u=null,d=[],f=null,p=c(),m=!1,h="",N=!0,g=r(()=>{let r=t();if("string"==typeof r||"number"==typeof r){h=String(r);let t=()=>{m=!1,a&&=(a(),null),i?i.nodeValue=h:(i=document.createTextNode(h),e.parentNode.insertBefore(i,e))};return void(N?(N=!1,t()):m||(m=!0,D(t)))}if(m=!1,N=!1,i&&=(i.parentNode?.removeChild(i),null),a&&=(a(),null),null!=r&&!1!==r)if(_(r))a=r._render(e.parentNode,e);else if(s(r))a=x(r,e.parentNode,e,p);else if(v(r)){u||(u=new Map,f=document.createTextNode(""),e.parentNode.insertBefore(f,e));let t=e.parentNode,o=r.items.map((e,t)=>r.keyFn(e,t)),l=new Set(o),i=!1;if(u.size>0)for(let e of u.keys())if(l.has(e)){i=!0;break}if(!i){if(u.size>0){let t=document.createRange();t.setStartAfter(f),t.setEndBefore(e),t.deleteContents();for(let e of u.values())e.cleanup();u.clear()}if(o.length>0){let l=document.createDocumentFragment();n(()=>{for(let e=0;e<o.length;e++){let t=o[e],n=r.items[e],i=document.createTextNode(""),a=document.createTextNode("");l.appendChild(i),l.appendChild(a);let c=r.renderFn(n,e),d=s(c)?x(c,l,a,p):c._render(l,a);u?.set(t,{start:i,end:a,cleanup:d})}}),t.insertBefore(l,e)}return void(d=o)}let a=new Map;for(let e=0;e<o.length;e++)a.set(o[e],e);let c=new Int32Array(o.length),m=!1,h=0;for(let e=0;e<d.length;e++){let t=d[e],n=a.get(t);if(void 0===n){let e=u.get(t);e.cleanup();let n=e.start;for(;n;){let t=n===e.end?null:n.nextSibling;if(n.parentNode?.removeChild(n),!t)break;n=t}u.delete(t)}else c[n]=e+1,n>=h?h=n:m=!0}let y=m?w(c):[],v=y.length-1,_=e;for(let e=o.length-1;e>=0;e--){let n=o[e];if(0===c[e]){let o=r.items[e],l=document.createTextNode(""),i=document.createTextNode(""),a=document.createDocumentFragment();a.appendChild(l),a.appendChild(i);let c=r.renderFn(o,e),d=s(c)?x(c,a,i,p):c._render(a,i);u.set(n,{start:l,end:i,cleanup:d}),t.insertBefore(a,_),_=l}else{let r=u.get(n);if(m)if(v<0||e!==y[v]){let e=r.start;for(;e;){let n=e===r.end?null:e.nextSibling;if(t.insertBefore(e,_),!n)break;e=n}}else v--;_=r.start}}d=o}else if(Array.isArray(r)){let t=[];for(let n of r)if(s(n))t.push(y(n,e.parentNode,e));else if(_(n))t.push(n._render(e.parentNode,e));else if(null!=n&&!1!==n){let r=document.createTextNode(String(n));e.parentNode.insertBefore(r,e),t.push(()=>r.parentNode?.removeChild(r))}a=()=>t.forEach(e=>e())}else i=document.createTextNode(String(r)),e.parentNode.insertBefore(i,e)});o.push(()=>{if(g(),a&&=(a(),null),i&&=(i.parentNode?.removeChild(i),null),u){for(let e of u.values())e.cleanup();u=null,f=null}})}function k(e,t){t?"none"===e.style.display&&(e.style.display=""):"none"!==e.style.display&&(e.style.display="none")}function A(e){let t=e.lastIndexOf(">"),n=e.lastIndexOf("<");if(n<=t)return{type:"node"};let r=e.slice(n+1),o=r.lastIndexOf("=");if(-1===o)return{type:"node"};let l=r.endsWith('"')||r.endsWith("'")||'"'===r[r.length-1]||"'"===r[r.length-1],i=o-1;for(;i>=0&&/\S/.test(r[i]);)i--;i++;let a=r.slice(i,o);if("@"===a[0]){let e=a.slice(1).split(".");return{type:"event",eventName:e[0],modifiers:e.slice(1),hadOpenQuote:l}}return{type:"attr",attrName:a,hadOpenQuote:l}}var j={enter:"Enter",escape:"Escape",space:" ",tab:"Tab",delete:"Delete",backspace:"Backspace",up:"ArrowUp",down:"ArrowDown",left:"ArrowLeft",right:"ArrowRight"},M=new Set(["click","dblclick","mousedown","mouseup","keydown","keyup","input","change","submit"]),N=new Set;function P(e,t,n){let r=e.target,o=e.stopPropagation,l=!1;for(e.stopPropagation=()=>{l=!0,o.call(e)};r&&r!==document;){let o=r[t];if(o){let t=r[n];if(t){if(t.includes("prevent")&&e.preventDefault(),t.includes("stop")&&e.stopPropagation(),t.includes("self")&&e.target!==r){r=r.parentNode;continue}if("key"in e){let n=e,o=!0;for(let e of t){let t=j[e];if(void 0!==t&&n.key!==t){o=!1;break}if(!t&&1===e.length&&n.key.toLowerCase()!==e){o=!1;break}}if(!o){r=r.parentNode;continue}}}if(o(e),l)break}r=r.parentNode}e.stopPropagation=o}var F=new Map;function I(e,t,n,o){let l=[],i=[],a=Array(t.length),u=-1;for(let e=0;e<t.length;e++)o[e]&&o[e].nodeIndex>u&&(u=o[e].nodeIndex);let s=Array(u+1);if(s[0]=e,u>0){let t,n=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT|NodeFilter.SHOW_COMMENT),r=1;for(;r<=u&&(t=n.nextNode());)s[r++]=t}for(let e=0;e<t.length;e++){let t=o[e];a[e]=t?s[t.nodeIndex]:null}for(let e=0;e<t.length;e++){let u=t[e],s=n[e],c=o[e];if(!c)continue;let d=a[e];if("event"===u.type){let e=c.name,t=s,n=u.modifiers;if(!M.has(e)||n.includes("capture")||n.includes("once")){let r={once:n.includes("once"),capture:n.includes("capture"),passive:n.includes("passive")},o=e=>{n.includes("prevent")&&e.preventDefault(),n.includes("stop")&&e.stopPropagation(),(!n.includes("self")||e.target===e.currentTarget)&&t(e)};d.addEventListener(e,o,r),l.push(()=>d.removeEventListener(e,o,r))}else{if(!N.has(e)){let t=`__nix_${e}`,n=`__nix_${e}_mods`,r=e=>P(e,t,n);F.set(e,r),document.addEventListener(e,r),N.add(e)}let r=`__nix_${e}`,o=`__nix_${e}_mods`;d[r]=t,n.length>0&&(d[o]=n),l.push(()=>{d[r]=null,d[o]=null})}continue}if("attr"===u.type){let e=c.name,t=d;if("ref"===e){s.el=t,l.push(()=>{s.el=null});continue}if("show"===e||"hide"===e){let n=t,o=null;if("function"==typeof s){let t=!1,i=!1,a=!0,u=r(()=>{i=!!s();let r=()=>{t=!1;let r="show"===e?i:!i;null===o&&(o=n.style.display||""),n.style.display=r?o:"none"};a?(a=!1,r()):t||(t=!0,D(r))});l.push(u)}else("show"===e?s:!s)||(n.style.display="none");continue}let n=("value"===e||"checked"===e||"selected"===e)&&e in t;if("function"==typeof s){let o,i=!1,a=!0,u=r(()=>{o=s();let r=()=>{i=!1;let r=o;n?t[e]=r??"":null==r||!1===r?t.removeAttribute(e):t.setAttribute(e,String(r))};a?(a=!1,r()):i||(i=!0,D(r))});l.push(u)}else n?t[e]=s??"":null!=s&&!1!==s&&t.setAttribute(e,String(s));continue}let f=d;if(!f)continue;let p=document.createTextNode("");f.parentNode.replaceChild(p,f),O(p,s,l,i)}return{disposes:l,postMountHooks:i}}function L(e,t){let n=new Uint8Array(e.length),r="";for(let o=0;o<e.length;o++){let l=e[o];if(1===n[o]&&('"'===l[0]||"'"===l[0])&&(l=l.slice(1)),o<t.length){let e=t[o];if("node"===e.type)r+=l+`\x3c!--nix-${o}--\x3e`;else if("event"===e.type){let t=`@${e.modifiers.length?`${e.eventName}.${e.modifiers.join(".")}`:e.eventName}=`.length+ +!!e.hadOpenQuote;r+=l.slice(0,-t)+` data-nix-e-${o}="${e.eventName}"`,e.hadOpenQuote&&(n[o+1]=1)}else{let t=`${e.attrName}=`.length+ +!!e.hadOpenQuote;r+=l.slice(0,-t)+` data-nix-a-${o}="${e.attrName}"`,e.hadOpenQuote&&(n[o+1]=1)}}else r+=l}return r}var R=new WeakMap;function z(e,...t){let n=R.get(e);if(!n){let t=[],r="";for(let n=0;n<e.length-1;n++)r+=e[n],t.push(A(r)),r+="__nix__";let o=document.createElement("template");o.innerHTML=L(e,t);let l,i=Array(t.length).fill(null),a=o.content,u=document.createTreeWalker(a,NodeFilter.SHOW_ELEMENT|NodeFilter.SHOW_COMMENT),s=0;for(;l=u.nextNode();)if(s++,8===l.nodeType){let e=l.nodeValue;if(e&&e.startsWith("nix-")){let t=parseInt(e.slice(4),10);isNaN(t)||(i[t]={nodeIndex:s})}}else if(1===l.nodeType){let e=l,t=Array.from(e.attributes);for(let n=0;n<t.length;n++){let r=t[n],o=r.name;if(o.startsWith("data-nix-e-")){let t=parseInt(o.slice(11),10);isNaN(t)||(i[t]={nodeIndex:s,name:r.value},e.removeAttribute(o));continue}if(o.startsWith("data-nix-a-")){let t=parseInt(o.slice(11),10);isNaN(t)||(i[t]={nodeIndex:s,name:r.value},e.removeAttribute(o))}}}n={contexts:t,tpl:o,pathMap:i},R.set(e,n)}let{contexts:r,tpl:o,pathMap:l}=n;function i(e,n){let i=o.content.cloneNode(!0),{disposes:a,postMountHooks:u}=I(i,r,t,l),s=document.createTextNode(""),c=document.createTextNode("");return e.insertBefore(s,n),e.insertBefore(i,n),e.insertBefore(c,n),u.forEach(e=>e()),()=>{for(let e=a.length-1;e>=0;e--)a[e]();let e=s.nextSibling;for(;e&&e!==c;){let t=e.nextSibling;e.parentNode?.removeChild(e),e=t}s.parentNode?.removeChild(s),c.parentNode?.removeChild(c)}}return{__isNixTemplate:!0,_render:i,mount(e){let t="string"==typeof e?document.querySelector(e):e;if(!t)throw Error(`[Nix] mount: contenedor no encontrado: ${e}`);let n=i(t,null);return{unmount(){n()}}}}}function B(e){let t=e.name??"nix";return{enterFrom:e.enterFrom??`${t}-enter-from`,enterActive:e.enterActive??`${t}-enter-active`,enterTo:e.enterTo??`${t}-enter-to`,leaveFrom:e.leaveFrom??`${t}-leave-from`,leaveActive:e.leaveActive??`${t}-leave-active`,leaveTo:e.leaveTo??`${t}-leave-to`}}function V(e){return Math.max(0,...e.split(",").map(e=>parseFloat(e.trim())||0))}function H(e,t=0){return new Promise(n=>{let r=getComputedStyle(e),o=1e3*Math.max(V(r.transitionDuration||"0"),V(r.animationDuration||"0")),l=o>0?o+100:t;if(l<=0)return void n();let i,a=t=>{t.target===e&&(clearTimeout(i),e.removeEventListener("transitionend",a),e.removeEventListener("animationend",a),n())};e.addEventListener("transitionend",a),e.addEventListener("animationend",a),i=setTimeout(()=>{e.removeEventListener("transitionend",a),e.removeEventListener("animationend",a),n()},l)})}function U(e,t={}){let n=B(t);return{__isNixTemplate:!0,mount(e){let t="string"==typeof e?document.querySelector(e)??document.body:e;return{unmount:this._render(t,null)}},_render(o,l){let i=document.createComment(g.TRANSITION);o.insertBefore(i,l);let a=null,u=null,c=0,d=!0,f=()=>{let e=i.nextSibling;for(;e&&e!==l;){if(e.nodeType===Node.ELEMENT_NODE)return e;e=e.nextSibling}return null};function p(e){return s(e)?b(e,o,l):e._render(o,l)}let m=(e,r=!1)=>{c++,u&&=(u(),null),a=p(e);let o=f();if(o&&(!d||t.appear)&&!r){let e=c;(async()=>{t.onBeforeEnter?.(o),o.classList.add(n.enterFrom,n.enterActive),o.getBoundingClientRect(),await new Promise(e=>requestAnimationFrame(()=>e())),c===e&&(o.classList.remove(n.enterFrom),o.classList.add(n.enterTo),await H(o,t.duration),c===e&&(o.classList.remove(n.enterActive,n.enterTo),t.onAfterEnter?.(o)))})().catch(()=>{})}d=!1},h=()=>{let e=a;a=null;let r=f();if(!r)return void e?.();let o=++c;u=e??null,(async()=>{t.onBeforeLeave?.(r),r.classList.add(n.leaveFrom,n.leaveActive),r.getBoundingClientRect(),await new Promise(e=>requestAnimationFrame(()=>e())),c===o&&(r.classList.remove(n.leaveFrom),r.classList.add(n.leaveTo),await H(r,t.duration),c===o&&(r.classList.remove(n.leaveActive,n.leaveTo),t.onAfterLeave?.(r),u?.(),u=null))})().catch(()=>{})},y=null;if("function"!=typeof e||s(e))m(e);else{let t=e,n=null;y=r(()=>{let e=t(),r=null===n,o=null===e;r&&!o?m(e):!r&&o?h():!r&&!o&&(c++,u?.(),u=null,a?.(),a=null,m(e,!0)),n=e}),d=!1}return()=>{c++,y?.(),a?.(),u?.(),a=null,u=null,i.remove()}}}}function W(){return{__isPortalOutlet:!0,_container:null}}function G(e){return{__isNixTemplate:!0,mount(e){let t="string"==typeof e?document.querySelector(e)??document.body:e;return{unmount:this._render(t,null)}},_render(t,n){let r=document.createElement("div");return r.setAttribute("data-nix-outlet",""),e._container=r,t.insertBefore(r,n),()=>{e._container=null,r.remove()}}}}function K(e,t=document.body){return{__isNixTemplate:!0,mount(e){let t="string"==typeof e?document.querySelector(e)??document.body:e;return{unmount:this._render(t,null)}},_render(n,r){let o;return o="string"==typeof t?document.querySelector(t)??document.body:t instanceof Element?t:"__isPortalOutlet"in t?t._container??document.body:t.el??document.body,s(e)?y(e,o,null):e._render(o,null)}}}var q=f("nix:portal-outlet");function J(e){m(q,e)}function Y(){return p(q)}function X(n,r){return{__isNixTemplate:!0,mount(e){let t="string"==typeof e?document.querySelector(e)??document.body:e;return{unmount:this._render(t,null)}},_render(o,i){let a=document.createComment(g.ERROR_BOUNDARY);o.insertBefore(a,i);let c,d=null,f=!1,p=!1,m=!1,h=e=>{let t=a.parentNode,n="function"!=typeof r||s(r)?r:r(e);d=s(n)?b(n,t,i):n._render(t,i)};t(e=>{f||(f=!0,p?(d?.(),d=null,h(e)):(c=e,m=!0))});try{if(s(n)){u();try{try{n.onInit?.()}catch(e){if(!n.onError)throw e;n.onError(e)}d=n.render()._render(o,i)}finally{l()}if(!f)try{let e=n.onMount?.(),t=d;d=()=>{try{n.onUnmount?.()}catch{}if("function"==typeof e)try{e()}catch{}t?.()}}catch(e){if(!n.onError)throw e;n.onError(e)}}else d=n._render(o,i)}catch(e){f=!0,d?.(),d=null,c=e,m=!0}finally{e(),p=!0}return m&&(d?.(),d=null,h(c)),()=>{d?.(),a.remove()}}}}export{G as a,L as c,C as d,g as f,h,K as i,z as l,_ as m,W as n,J as o,v as p,Y as r,U as s,X as t,k as u};
1
+ import{_popErrorHandler as e,_pushErrorHandler as t,batch as n,effect as r}from"./signals.js";import{_debugComponentMountEnd as i,_debugComponentMountStart as a,_debugComponentUnmount as o,isNixComponent as s}from"./lifecycle.js";import{_captureContextSnapshot as c,_popComponentContext as l,_pushComponentContext as u,_withComponentContext as d,createInjectionKey as f,inject as p,provide as m}from"./context.js";function h(){return{el:null}}var g={SCOPE:"nix-scope",ERROR_BOUNDARY:"nix-eb",TRANSITION:"nix-t",KEYED_START:"nix-ks",KEYED_END:"nix-ke",KEYED_ZONE:"nix-kz"};function _(e){return"object"==typeof e&&!!e&&!0===e.__isNixTemplate}function v(e){return"object"==typeof e&&!!e&&!0===e.__isKeyedList}function y(e,t,n){let r,s;a(e),u();try{try{e.onInit?.()}catch(t){if(!e.onError)throw t;e.onError(t)}r=e.render()._render(t,n)}finally{i(e),l()}try{let t=e.onMount?.();"function"==typeof t&&(s=t)}catch(t){if(!e.onError)throw t;e.onError(t)}return()=>{try{e.onUnmount?.()}catch{}try{s?.()}catch{}r(),o(e)}}function b(e,t,n){let r,s;a(e),u();try{try{e.onInit?.()}catch{}r=e.render()._render(t,n)}finally{i(e),l()}try{let t=e.onMount?.();"function"==typeof t&&(s=t)}catch{}return()=>{try{e.onUnmount?.()}catch{}try{s?.()}catch{}r(),o(e)}}function x(e,t,n,r){let l,s;a(e);try{d(r,()=>{try{e.onInit?.()}catch(t){if(!e.onError)throw t;e.onError(t)}l=e.render()._render(t,n)})}finally{i(e)}try{let t=e.onMount?.();"function"==typeof t&&(s=t)}catch(t){if(!e.onError)throw t;e.onError(t)}return()=>{try{e.onUnmount?.()}catch{}try{s?.()}catch{}l(),o(e)}}function S(e,t,n,r,s){let c,d;a(e),u();try{try{e.onInit?.()}catch(t){if(!e.onError)throw t;e.onError(t)}c=e.render()._render(t,n)}finally{i(e),l()}r.push(()=>{try{let t=e.onMount?.();"function"==typeof t&&(d=t)}catch(t){if(!e.onError)throw t;e.onError(t)}}),s.push(()=>{try{e.onUnmount?.()}catch{}try{d?.()}catch{}c(),o(e)})}function C(e,t,n){return{__isKeyedList:!0,items:e,keyFn:t,renderFn:n}}function w(e){let t,n,r,o,l,i=e.slice(),a=[0],s=e.length;for(t=0;t<s;t++){let s=e[t];if(0!==s){if(n=a[a.length-1],e[n]<s){i[t]=n,a.push(t);continue}for(r=0,o=a.length-1;r<o;)l=r+o>>1,e[a[l]]<s?r=l+1:o=l;s<e[a[r]]&&(r>0&&(i[t]=a[r-1]),a[r]=t)}}for(r=a.length,o=a[r-1];r-- >0;)a[r]=o,o=i[o];return a}var T=new Set,E=!1;function D(e){T.add(e),E||(E=!0,queueMicrotask(()=>{for(let e of T)try{e()}catch(e){console.error("[Nix.js] Error in DOM write task:",e)}T.clear(),E=!1}))}function O(e,t,o,l){if("function"!=typeof t){if(s(t))S(t,e.parentNode,e,l,o);else if(_(t))o.push(t._render(e.parentNode,e));else if(Array.isArray(t))for(let n of t)s(n)?S(n,e.parentNode,e,l,o):_(n)?n._render(e.parentNode,e):null!=n&&!1!==n&&e.parentNode.insertBefore(document.createTextNode(String(n)),e);else null!=t&&!1!==t&&e.parentNode.insertBefore(document.createTextNode(String(t)),e);return}let i=null,a=null,u=null,d=[],f=null,p=c(),m=!1,h="",g=!0,N=r(()=>{let r=t();if("string"==typeof r||"number"==typeof r){h=String(r);let t=()=>{m=!1,a&&=(a(),null),i?i.nodeValue=h:(i=document.createTextNode(h),e.parentNode.insertBefore(i,e))};return void(g?(g=!1,t()):m||(m=!0,D(t)))}if(m=!1,g=!1,i&&=(i.parentNode?.removeChild(i),null),a&&=(a(),null),null!=r&&!1!==r)if(_(r))a=r._render(e.parentNode,e);else if(s(r))a=x(r,e.parentNode,e,p);else if(v(r)){u||(u=new Map,f=document.createTextNode(""),e.parentNode.insertBefore(f,e));let t=e.parentNode,o=r.items.map((e,t)=>r.keyFn(e,t)),l=new Set(o),i=!1;if(u.size>0)for(let e of u.keys())if(l.has(e)){i=!0;break}if(!i){if(u.size>0){let t=document.createRange();t.setStartAfter(f),t.setEndBefore(e),t.deleteContents();for(let e of u.values())e.cleanup();u.clear()}if(o.length>0){let l=document.createDocumentFragment();n(()=>{for(let e=0;e<o.length;e++){let t=o[e],n=r.items[e],i=document.createTextNode(""),a=document.createTextNode("");l.appendChild(i),l.appendChild(a);let c=r.renderFn(n,e),d=s(c)?x(c,l,a,p):c._render(l,a);u.has(t)&&console.warn(`[Nix] repeat(): duplicate key "${t}". Keys must be unique; the previous entry leaks (orphaned nodes + live effects).`),u?.set(t,{start:i,end:a,cleanup:d})}}),t.insertBefore(l,e)}return void(d=o)}let a=new Map;for(let e=0;e<o.length;e++)a.set(o[e],e);let c=new Int32Array(o.length),m=!1,h=0;for(let e=0;e<d.length;e++){let t=d[e],n=a.get(t);if(void 0===n){let e=u.get(t);e.cleanup();let n=e.start;for(;n;){let t=n===e.end?null:n.nextSibling;if(n.parentNode?.removeChild(n),!t)break;n=t}u.delete(t)}else c[n]=e+1,n>=h?h=n:m=!0}let y=m?w(c):[],v=y.length-1,g=e;for(let e=o.length-1;e>=0;e--){let n=o[e];if(0===c[e]){let o=r.items[e],l=document.createTextNode(""),i=document.createTextNode(""),a=document.createDocumentFragment();a.appendChild(l),a.appendChild(i);let c=r.renderFn(o,e),d=s(c)?x(c,a,i,p):c._render(a,i);u.has(n)&&console.warn(`[Nix] repeat(): duplicate key "${n}". Keys must be unique; the previous entry leaks (orphaned nodes + live effects).`),u.set(n,{start:l,end:i,cleanup:d}),t.insertBefore(a,g),g=l}else{let r=u.get(n);if(m)if(v<0||e!==y[v]){let e=r.start;for(;e;){let n=e===r.end?null:e.nextSibling;if(t.insertBefore(e,g),!n)break;e=n}}else v--;g=r.start}}d=o}else if(Array.isArray(r)){let t=[];for(let n of r)if(s(n))t.push(y(n,e.parentNode,e));else if(_(n))t.push(n._render(e.parentNode,e));else if(null!=n&&!1!==n){let r=document.createTextNode(String(n));e.parentNode.insertBefore(r,e),t.push(()=>r.parentNode?.removeChild(r))}a=()=>t.forEach(e=>e())}else i=document.createTextNode(String(r)),e.parentNode.insertBefore(i,e)});o.push(()=>{if(N(),a&&=(a(),null),i&&=(i.parentNode?.removeChild(i),null),u){for(let e of u.values())e.cleanup();u=null,f=null}})}var k=new Set(["href","src","action","formaction","xlink:href","poster","background","cite","ping","data"]);function A(e){return k.has(e.toLowerCase())}function j(e){let t=e.toLowerCase();return t.startsWith("on")||"srcdoc"===t}var M=/[\u0000-\u001F\u007F-\u009F\u2028\u2029\uFEFF]/g,N=/^(?:javascript|vbscript|livescript|mocha|data):/i,P=/^data:image\/(?:png|jpe?g|gif|webp|avif|bmp|x-icon|vnd\.microsoft\.icon)[;,]/i;function F(e){let t=e.replace(M,"").trim();return N.test(t)?/^data:/i.test(t)&&P.test(t)?e:(console.warn(`[Nix] Blocked attribute URL with unsafe scheme: "${t.slice(0,48)}${t.length>48?"…":""}"`),""):e}function I(e,t){t?"none"===e.style.display&&(e.style.display=""):"none"!==e.style.display&&(e.style.display="none")}function L(e){let t=e.lastIndexOf(">"),n=e.lastIndexOf("<");if(n<=t)return{type:"node"};let r=e.slice(n+1),o=r.lastIndexOf("=");if(-1===o)return{type:"node"};let l=r.endsWith('"')||r.endsWith("'")||'"'===r[r.length-1]||"'"===r[r.length-1],i=o-1;for(;i>=0&&/\S/.test(r[i]);)i--;i++;let a=r.slice(i,o);if("@"===a[0]){let e=a.slice(1).split(".");return{type:"event",eventName:e[0],modifiers:e.slice(1),hadOpenQuote:l}}return{type:"attr",attrName:a,hadOpenQuote:l,url:A(a),executable:j(a)}}var R={enter:"Enter",escape:"Escape",space:" ",tab:"Tab",delete:"Delete",backspace:"Backspace",up:"ArrowUp",down:"ArrowDown",left:"ArrowLeft",right:"ArrowRight"},z=new Set(["click","dblclick","mousedown","mouseup","keydown","keyup","input","change","submit"]),B=new Set;function V(e,t,n){let r=e.target,o=e.stopPropagation,l=!1;for(e.stopPropagation=()=>{l=!0,o.call(e)};r&&r!==document;){let o=r[t];if(o){let t=r[n];if(t){if(t.includes("prevent")&&e.preventDefault(),t.includes("stop")&&e.stopPropagation(),t.includes("self")&&e.target!==r){r=r.parentNode;continue}if("key"in e){let n=e,o=!0;for(let e of t){let t=R[e];if(void 0!==t&&n.key!==t){o=!1;break}if(!t&&1===e.length&&n.key.toLowerCase()!==e){o=!1;break}}if(!o){r=r.parentNode;continue}}}if(o(e),l)break}r=r.parentNode}e.stopPropagation=o}var H=new Map;function U(e,t,n,o){let l=[],i=[],a=Array(t.length),s=-1;for(let e=0;e<t.length;e++)o[e]&&o[e].nodeIndex>s&&(s=o[e].nodeIndex);let u=Array(s+1);if(u[0]=e,s>0){let t,n=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT|NodeFilter.SHOW_COMMENT),r=1;for(;r<=s&&(t=n.nextNode());)u[r++]=t}for(let e=0;e<t.length;e++){let t=o[e];a[e]=t?u[t.nodeIndex]:null}for(let e=0;e<t.length;e++){let s=t[e],u=n[e],c=o[e];if(!c)continue;let d=a[e];if("event"===s.type){let e=c.name,t=u,n=s.modifiers;if(!z.has(e)||n.includes("capture")||n.includes("once")){let r={once:n.includes("once"),capture:n.includes("capture"),passive:n.includes("passive")},o=e=>{n.includes("prevent")&&e.preventDefault(),n.includes("stop")&&e.stopPropagation(),(!n.includes("self")||e.target===e.currentTarget)&&t(e)};d.addEventListener(e,o,r),l.push(()=>d.removeEventListener(e,o,r))}else{if(!B.has(e)){let t=`__nix_${e}`,n=`__nix_${e}_mods`,r=e=>V(e,t,n);H.set(e,r),document.addEventListener(e,r),B.add(e)}let r=`__nix_${e}`,o=`__nix_${e}_mods`;d[r]=t,n.length>0&&(d[o]=n),l.push(()=>{d[r]=null,d[o]=null})}continue}if("attr"===s.type){let e=c.name,t=d;if("ref"===e){u.el=t,l.push(()=>{u.el=null});continue}if("show"===e||"hide"===e){let n=t,o=null;if("function"==typeof u){let t=!1,i=!1,a=!0,s=r(()=>{i=!!u();let r=()=>{t=!1;let r="show"===e?i:!i;null===o&&(o=n.style.display||""),n.style.display=r?o:"none"};a?(a=!1,r()):t||(t=!0,D(r))});l.push(s)}else("show"===e?u:!u)||(n.style.display="none");continue}(s.executable??j(e))&&console.warn(`[Nix] Dynamic binding on executable attribute "${e}". Use @event for handlers; avoid binding untrusted values here.`);let n=s.url??A(e),o=("value"===e||"checked"===e||"selected"===e)&&e in t;if("function"==typeof u){let i,a=!1,s=!0,c=r(()=>{i=u();let r=()=>{a=!1;let r=i;if(o)t[e]=r??"";else if(null==r||!1===r)t.removeAttribute(e);else{let o=String(r);t.setAttribute(e,n?F(o):o)}};s?(s=!1,r()):a||(a=!0,D(r))});l.push(c)}else if(o)t[e]=u??"";else if(null!=u&&!1!==u){let r=String(u);t.setAttribute(e,n?F(r):r)}continue}let f=d;if(!f)continue;let p=document.createTextNode("");f.parentNode.replaceChild(p,f),O(p,u,l,i)}return{disposes:l,postMountHooks:i}}function W(e,t){let n=new Uint8Array(e.length),r="";for(let o=0;o<e.length;o++){let l=e[o];if(1===n[o]&&('"'===l[0]||"'"===l[0])&&(l=l.slice(1)),o<t.length){let e=t[o];if("node"===e.type)r+=l+`\x3c!--nix-${o}--\x3e`;else if("event"===e.type){let t=`@${e.modifiers.length?`${e.eventName}.${e.modifiers.join(".")}`:e.eventName}=`.length+ +!!e.hadOpenQuote;r+=l.slice(0,-t)+` data-nix-e-${o}="${e.eventName}"`,e.hadOpenQuote&&(n[o+1]=1)}else{let t=`${e.attrName}=`.length+ +!!e.hadOpenQuote;r+=l.slice(0,-t)+` data-nix-a-${o}="${e.attrName}"`,e.hadOpenQuote&&(n[o+1]=1)}}else r+=l}return r}var G=new WeakMap;function K(e,...t){let n=G.get(e);if(!n){let t=[],r="";for(let n=0;n<e.length-1;n++)r+=e[n],t.push(L(r)),r+="__nix__";let o=document.createElement("template");o.innerHTML=W(e,t);let l,i=Array(t.length).fill(null),a=o.content,s=document.createTreeWalker(a,NodeFilter.SHOW_ELEMENT|NodeFilter.SHOW_COMMENT),u=0;for(;l=s.nextNode();)if(u++,8===l.nodeType){let e=l.nodeValue;if(e&&e.startsWith("nix-")){let t=parseInt(e.slice(4),10);isNaN(t)||(i[t]={nodeIndex:u})}}else if(1===l.nodeType){let e=l,t=Array.from(e.attributes);for(let n=0;n<t.length;n++){let r=t[n],o=r.name;if(o.startsWith("data-nix-e-")){let t=parseInt(o.slice(11),10);isNaN(t)||(i[t]={nodeIndex:u,name:r.value},e.removeAttribute(o));continue}if(o.startsWith("data-nix-a-")){let t=parseInt(o.slice(11),10);isNaN(t)||(i[t]={nodeIndex:u,name:r.value},e.removeAttribute(o))}}}n={contexts:t,tpl:o,pathMap:i},G.set(e,n)}let{contexts:r,tpl:o,pathMap:l}=n;function i(e,n){let i=o.content.cloneNode(!0),{disposes:a,postMountHooks:s}=U(i,r,t,l),u=document.createTextNode(""),c=document.createTextNode("");return e.insertBefore(u,n),e.insertBefore(i,n),e.insertBefore(c,n),s.forEach(e=>e()),()=>{for(let e=a.length-1;e>=0;e--)a[e]();let e=u.nextSibling;for(;e&&e!==c;){let t=e.nextSibling;e.parentNode?.removeChild(e),e=t}u.parentNode?.removeChild(u),c.parentNode?.removeChild(c)}}return{__isNixTemplate:!0,_render:i,mount(e){let t="string"==typeof e?document.querySelector(e):e;if(!t)throw Error(`[Nix] mount: contenedor no encontrado: ${e}`);let n=i(t,null);return{unmount(){n()}}}}}function q(e){let t=e.name??"nix";return{enterFrom:e.enterFrom??`${t}-enter-from`,enterActive:e.enterActive??`${t}-enter-active`,enterTo:e.enterTo??`${t}-enter-to`,leaveFrom:e.leaveFrom??`${t}-leave-from`,leaveActive:e.leaveActive??`${t}-leave-active`,leaveTo:e.leaveTo??`${t}-leave-to`}}function J(e){return Math.max(0,...e.split(",").map(e=>parseFloat(e.trim())||0))}function Y(e,t=0){return new Promise(n=>{let r=getComputedStyle(e),o=1e3*Math.max(J(r.transitionDuration||"0"),J(r.animationDuration||"0")),l=o>0?o+100:t;if(l<=0)return void n();let i,a=t=>{t.target===e&&(clearTimeout(i),e.removeEventListener("transitionend",a),e.removeEventListener("animationend",a),n())};e.addEventListener("transitionend",a),e.addEventListener("animationend",a),i=setTimeout(()=>{e.removeEventListener("transitionend",a),e.removeEventListener("animationend",a),n()},l)})}function X(e,t={}){let n=q(t);return{__isNixTemplate:!0,mount(e){let t="string"==typeof e?document.querySelector(e)??document.body:e;return{unmount:this._render(t,null)}},_render(o,l){let i=document.createComment(g.TRANSITION);o.insertBefore(i,l);let a=null,u=null,c=0,d=!0,f=()=>{let e=i.nextSibling;for(;e&&e!==l;){if(e.nodeType===Node.ELEMENT_NODE)return e;e=e.nextSibling}return null};function p(e){return s(e)?b(e,o,l):e._render(o,l)}let m=(e,r=!1)=>{c++,u&&=(u(),null),a=p(e);let o=f();if(o&&(!d||t.appear)&&!r){let e=c;(async()=>{t.onBeforeEnter?.(o),o.classList.add(n.enterFrom,n.enterActive),o.getBoundingClientRect(),await new Promise(e=>requestAnimationFrame(()=>e())),c===e&&(o.classList.remove(n.enterFrom),o.classList.add(n.enterTo),await Y(o,t.duration),c===e&&(o.classList.remove(n.enterActive,n.enterTo),t.onAfterEnter?.(o)))})().catch(()=>{})}d=!1},h=()=>{let e=a;a=null;let r=f();if(!r)return void e?.();let o=++c;u=e??null,(async()=>{t.onBeforeLeave?.(r),r.classList.add(n.leaveFrom,n.leaveActive),r.getBoundingClientRect(),await new Promise(e=>requestAnimationFrame(()=>e())),c===o&&(r.classList.remove(n.leaveFrom),r.classList.add(n.leaveTo),await Y(r,t.duration),c===o&&(r.classList.remove(n.leaveActive,n.leaveTo),t.onAfterLeave?.(r),u?.(),u=null))})().catch(()=>{})},y=null;if("function"!=typeof e||s(e))m(e);else{let t=e,n=null;y=r(()=>{let e=t(),r=null===n,o=null===e;r&&!o?m(e):!r&&o?h():!r&&!o&&(c++,u?.(),u=null,a?.(),a=null,m(e,!0)),n=e}),d=!1}return()=>{c++,y?.(),a?.(),u?.(),a=null,u=null,i.remove()}}}}function Z(){return{__isPortalOutlet:!0,_container:null}}function Q(e){return{__isNixTemplate:!0,mount(e){let t="string"==typeof e?document.querySelector(e)??document.body:e;return{unmount:this._render(t,null)}},_render(t,n){let r=document.createElement("div");return r.setAttribute("data-nix-outlet",""),e._container=r,t.insertBefore(r,n),()=>{e._container=null,r.remove()}}}}function ee(e,t=document.body){return{__isNixTemplate:!0,mount(e){let t="string"==typeof e?document.querySelector(e)??document.body:e;return{unmount:this._render(t,null)}},_render(n,r){let o;return o="string"==typeof t?document.querySelector(t)??document.body:t instanceof Element?t:"__isPortalOutlet"in t?t._container??document.body:t.el??document.body,s(e)?y(e,o,null):e._render(o,null)}}}var $=f("nix:portal-outlet");function te(e){m($,e)}function ne(){return p($)}function re(n,r){return{__isNixTemplate:!0,mount(e){let t="string"==typeof e?document.querySelector(e)??document.body:e;return{unmount:this._render(t,null)}},_render(o,i){let a=document.createComment(g.ERROR_BOUNDARY);o.insertBefore(a,i);let c,d=null,f=!1,p=!1,m=!1,h=e=>{let t=a.parentNode,n="function"!=typeof r||s(r)?r:r(e);d=s(n)?b(n,t,i):n._render(t,i)};t(e=>{f||(f=!0,p?(d?.(),d=null,h(e)):(c=e,m=!0))});try{if(s(n)){u();try{try{n.onInit?.()}catch(e){if(!n.onError)throw e;n.onError(e)}d=n.render()._render(o,i)}finally{l()}if(!f)try{let e=n.onMount?.(),t=d;d=()=>{try{n.onUnmount?.()}catch{}if("function"==typeof e)try{e()}catch{}t?.()}}catch(e){if(!n.onError)throw e;n.onError(e)}}else d=n._render(o,i)}catch(e){f=!0,d?.(),d=null,c=e,m=!0}finally{e(),p=!0}return m&&(d?.(),d=null,h(c)),()=>{d?.(),a.remove()}}}}export{_,Q as a,W as c,j as d,A as f,v as g,g as h,ee as i,K as l,C as m,Z as n,te as o,F as p,ne as r,X as s,re as t,I as u,h as v};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@deijose/nix-js",
3
- "version": "2.4.6",
3
+ "version": "2.5.0",
4
4
  "description": "A lightweight, fully reactive micro-framework — no virtual DOM, no compiler, just signals and tagged templates.",
5
5
  "license": "MIT",
6
6
  "author": "Deiver Vasquez",