@deijose/nix-js 1.9.2 → 1.9.4

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
@@ -22,6 +22,21 @@ A lightweight, fully reactive micro-framework for building modern web UIs — no
22
22
  npm install @deijose/nix-js
23
23
  ```
24
24
 
25
+ ## Subpath Imports (Tree-Shaking)
26
+
27
+ When you only need one module, import from subpaths:
28
+
29
+ ```typescript
30
+ import { signal, effect } from "@deijose/nix-js/signals";
31
+ import { createRouter } from "@deijose/nix-js/router";
32
+ import { createStore } from "@deijose/nix-js/store";
33
+ import { createForm } from "@deijose/nix-js/form";
34
+ import { suspend, lazy } from "@deijose/nix-js/async";
35
+ import { html, repeat, transition } from "@deijose/nix-js/template";
36
+ ```
37
+
38
+ This is optional: `import { ... } from "@deijose/nix-js"` remains fully supported.
39
+
25
40
  ## Quick Start
26
41
 
27
42
  ```typescript
@@ -84,25 +99,6 @@ function App(): NixTemplate {
84
99
  mount(App(), "#app", { router });
85
100
  ```
86
101
 
87
- ## Router DI at Mount Root
88
-
89
- You can provide a router instance per mounted app tree:
90
-
91
- ```typescript
92
- const routerA = createRouter(routesA);
93
- const routerB = createRouter(routesB);
94
-
95
- mount(AppA(), "#app-a", { router: routerA });
96
- mount(AppB(), "#app-b", { router: routerB });
97
- ```
98
-
99
- `useRouter()` now resolves in this order:
100
-
101
- 1. injected router from context (`mount(..., { router })`)
102
- 2. singleton fallback (legacy `createRouter(...)` behavior)
103
-
104
- This enables isolated router instances for testing and micro-frontend scenarios while keeping backward compatibility.
105
-
106
102
  ## What's Included
107
103
 
108
104
  Everything ships in a single zero-dependency import:
@@ -112,7 +108,7 @@ Everything ships in a single zero-dependency import:
112
108
  | **Reactivity** | `signal`, `computed`, `effect`, `batch`, `watch`, `untrack`, `nextTick` |
113
109
  | **Templates** | `` html` ` ``, `repeat`, `ref`, `portal`, `transition`, `showWhen` |
114
110
  | **Components** | `NixTemplate` (function components), `NixComponent` (lifecycle class), `mount`, children & named slots |
115
- | **Router** | `createRouter`, `RouterView`, `Link`, `useRouter`, `RouterKey`, guards, nested routes, `mount(..., { router })` |
111
+ | **Router** | `createRouter`, `RouterView`, `Link`, `useRouter`, `RouterKey`, guards, nested routes, named routes (`name` + `navigate({ name })`), `mount(..., { router })` |
116
112
  | **Forms** | `useField`, `createForm`, built-in validators, Zod/Valibot interop |
117
113
  | **State** | `createStore`, `provide`, `inject`, `createInjectionKey` |
118
114
  | **Async** | `suspend` (with `invalidate` for re-fetching), `lazy` |
@@ -0,0 +1,15 @@
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./signals.cjs"),t=require("./template2.cjs");function n(){return t.l`
2
+ <span style="color:#52525b;font-size:13px;display:inline-flex;align-items:center;gap:6px">
3
+ <span class="nix-spinner" style="
4
+ display:inline-block;width:14px;height:14px;border-radius:50%;
5
+ border:2px solid #38bdf840;border-top-color:#38bdf8;
6
+ animation:nix-spin .7s linear infinite
7
+ "></span>
8
+ Loading…
9
+ </span>
10
+ <style>@keyframes nix-spin{to{transform:rotate(360deg)}}</style>
11
+ `}function r(e){return t.l`
12
+ <span style="color:#f87171;font-size:13px">
13
+ ⚠ ${e instanceof Error?e.message:String(e)}
14
+ </span>
15
+ `}var i=new Map,a=3e5,o=null,s=a;function c(){null===o&&(o=setInterval(()=>{let e=Date.now();for(let[t,n]of i)n.subscribers<=0&&e-n.fetchedAt>s&&i.delete(t);0===i.size&&null!==o&&(clearInterval(o),o=null)},6e4))}function l(e){let t=i.get(e);if(t&&t.fetchedAt>0)return t}function u(e,t){let s=i.get(e);i.set(e,{data:t,fetchedAt:Date.now(),subscribers:s?.subscribers??0}),c()}function d(e){let t=i.get(e);t?t.subscribers++:i.set(e,{fetchedAt:0,subscribers:1})}function f(e){let t=i.get(e);t&&(t.subscribers=Math.max(0,t.subscribers-1))}function p(e,t){let s=i.get(e);return!!s&&Date.now()-s.fetchedAt<t}function m(s,a,o={}){let{fallback:c,errorFallback:h,resetOnRefresh:b=!1,invalidate:g,cacheKey:v,staleTime:_=0}=o,x=c??n(),y=h??r;class m extends t._{_state;_disposeWatcher;constructor(){super();let t=v?l(v):void 0;this._state=e.signal(t&&void 0!==t.data?{status:"resolved",data:t.data}:{status:"pending"})}onMount(){v&&d(v);let t=v?l(v):void 0;if(t&&p(v,_)||(t?this._fetch():this._run()),g){let t=!0;this._disposeWatcher=e.effect(()=>{g.value,t?t=!1:(v&&i.delete(v),this._run())})}return()=>{this._disposeWatcher?.(),v&&f(v)}}_run(){(b||"pending"===this._state.peek().status)&&(this._state.value={status:"pending"}),this._fetch()}_fetch(){s().then(e=>{v&&u(v,e),this._state.value={status:"resolved",data:e}},e=>{this._state.value={status:"error",error:e}})}render(){return t.l`<div class="nix-suspense" style="display:contents">${()=>{let e=this._state.value;return"pending"===e.status?x:"error"===e.status?y(e.error):a(e.data)}}</div>`}}return new m}function h(e,t){let s=null;return()=>s?new s:m(async()=>(s=(await e()).default,s),e=>new e,{fallback:t})}exports.lazy=h,exports.suspend=m;
@@ -0,0 +1,15 @@
1
+ import{effect as e,signal as t}from"./signals.js";import{_ as n,l as r}from"./template2.js";function i(){return r`
2
+ <span style="color:#52525b;font-size:13px;display:inline-flex;align-items:center;gap:6px">
3
+ <span class="nix-spinner" style="
4
+ display:inline-block;width:14px;height:14px;border-radius:50%;
5
+ border:2px solid #38bdf840;border-top-color:#38bdf8;
6
+ animation:nix-spin .7s linear infinite
7
+ "></span>
8
+ Loading…
9
+ </span>
10
+ <style>@keyframes nix-spin{to{transform:rotate(360deg)}}</style>
11
+ `}function a(e){return r`
12
+ <span style="color:#f87171;font-size:13px">
13
+ ⚠ ${e instanceof Error?e.message:String(e)}
14
+ </span>
15
+ `}var o=new Map,s=3e5,c=null,l=s;function u(){null===c&&(c=setInterval(()=>{let e=Date.now();for(let[t,s]of o)s.subscribers<=0&&e-s.fetchedAt>l&&o.delete(t);0===o.size&&null!==c&&(clearInterval(c),c=null)},6e4))}function d(e){let t=o.get(e);if(t&&t.fetchedAt>0)return t}function f(e,t){let s=o.get(e);o.set(e,{data:t,fetchedAt:Date.now(),subscribers:s?.subscribers??0}),u()}function p(e){let t=o.get(e);t?t.subscribers++:o.set(e,{fetchedAt:0,subscribers:1})}function m(e){let t=o.get(e);t&&(t.subscribers=Math.max(0,t.subscribers-1))}function h(e,t){let s=o.get(e);return!!s&&Date.now()-s.fetchedAt<t}function g(s,l,u={}){let{fallback:c,errorFallback:b,resetOnRefresh:g=!1,invalidate:_,cacheKey:v,staleTime:x=0}=u,y=c??i(),w=b??a;return new class extends n{_state;_disposeWatcher;constructor(){super();let e=v?d(v):void 0;this._state=t(e&&void 0!==e.data?{status:"resolved",data:e.data}:{status:"pending"})}onMount(){v&&p(v);let t=v?d(v):void 0;if(t&&h(v,x)||(t?this._fetch():this._run()),_){let t=!0;this._disposeWatcher=e(()=>{_.value,t?t=!1:(v&&o.delete(v),this._run())})}return()=>{this._disposeWatcher?.(),v&&m(v)}}_run(){(g||"pending"===this._state.peek().status)&&(this._state.value={status:"pending"}),this._fetch()}_fetch(){s().then(e=>{v&&f(v,e),this._state.value={status:"resolved",data:e}},e=>{this._state.value={status:"error",error:e}})}render(){return r`<div class="nix-suspense" style="display:contents">${()=>{let e=this._state.value;return"pending"===e.status?y:"error"===e.status?w(e.error):l(e.data)}}</div>`}}}function _(e,t){let s=null;return()=>s?new s:g(async()=>(s=(await e()).default,s),e=>new e,{fallback:t})}export{_ as lazy,g as suspend};
@@ -0,0 +1 @@
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./signals.cjs");function t(e="Required"){return t=>null==t||""===t||Array.isArray(t)&&0===t.length?e:null}function n(e,t){return r=>"string"==typeof r&&r.length<e?t??`Minimum ${e} characters`:null}function r(e,t){return r=>"string"==typeof r&&r.length>e?t??`Maximum ${e} characters`:null}function i(e,t="Invalid format"){return r=>"string"!=typeof r||e.test(r)?null:t}function a(e="Invalid email"){return i(/^[^\s@]+@[^\s@]+\.[^\s@]+$/,e)}function o(e,t){return r=>"number"==typeof r&&r<e?t??`Minimum value is ${e}`:null}function s(e,t){return r=>"number"==typeof r&&r>e?t??`Maximum value is ${e}`:null}function c(e){return e}var l={required:t,minLength:n,maxLength:r,email:a,pattern:i,min:o,max:s};function u(e,t){return{...e,...t}}function d(t,r=[],n="blur",l){let u=e.signal(t),i=e.signal(!1),o=e.signal(!1),a=e.signal(null),s=e.signal(!1),f=e.computed(()=>{if(a.value)return a.value;if(!("input"===n?o.value||i.value:"submit"===n?s.value:i.value))return null;let e=l?.();for(let t of r){let r=t(u.value,e);if(r)return r}return null});return{value:u,error:f,touched:i,dirty:o,onInput:e=>{u.value=function(e){if(!e||!("value"in e))return t;let r=e;return"boolean"==typeof t?r.checked:"number"==typeof t?Number(r.value):r.value}(e.target),o.value=!0,a.value=null},onBlur:()=>{i.value=!0},reset:function(){u.value=t,i.value=!1,o.value=!1,a.value=null,s.value=!1},_setExternalError:function(e){a.value=e,e&&(i.value=!0)},_forceVisible:function(){i.value=!0,s.value=!0},_dispose:function(){f.dispose()}}}function f(t,r={},n="blur"){function l(e){let t={};for(let l in e){let u=r[l]??[];t[l]=d(e[l],u,n)}return t}let u=e.signal(t.map(l)),i=e.computed(()=>u.value.length);return{fields:u,append:function(e){u.value=[...u.value,l(e)]},remove:function(e){let t=u.value;if(!(e<0||e>=t.length)){for(let r in t[e])t[e][r]._dispose();u.value=t.filter((t,r)=>r!==e)}},move:function(e,t){let r=[...u.value];if(e<0||e>=r.length||t<0||t>=r.length||e===t)return;let[n]=r.splice(e,1);r.splice(t,0,n),u.value=r},replace:function(e,t){let r=[...u.value];if(!(e<0||e>=r.length)){for(let t in r[e])r[e][t]._dispose();r[e]=l(t),u.value=r}},length:i,reset:function(){for(let e of u.value)for(let t in e)e[t]._dispose();u.value=t.map(l)},_dispose:function(){for(let e of u.value)for(let t in e)e[t]._dispose();i.dispose()}}}function p(e){return"object"==typeof e&&!!e&&!Array.isArray(e)}function m(e,t="",r=[]){for(let[n,l]of Object.entries(e)){let e=t?`${t}.${n}`:n;p(l)&&Object.keys(l).length>0?m(l,e,r):r.push([e,l])}return r}function h(e,t,r){let n=t.split("."),l=e;for(let e=0;e<n.length-1;e++){let t=n[e];p(l[t])||(l[t]={}),l=l[t]}l[n[n.length-1]]=r}function g(t,r={}){let n=r.validateOn??"blur",l={},u=r.validators;function i(){let e={};for(let t in l)h(e,t,l[t].value.value);return e}for(let[e,r]of m(t))l[e]=d(r,u?.[e]??[],n,i);let o=e.signal(!1),a=e.signal(0),s=e.computed(()=>i()),f=e.computed(()=>{let e={};for(let t in l){let r=l[t].error.value;r&&(e[t]=r)}return e}),c=e.computed(()=>{for(let e in l)if(l[e].error.value)return!1;return!0}),v=e.computed(()=>{for(let e in l)if(l[e].dirty.value)return!0;return!1}),p=e.computed(()=>{for(let e in l)if(l[e].touched.value)return!0;return!1});function g(e){for(let t in e)l[t]?._setExternalError(e[t]??null)}return{fields:l,values:s,errors:f,valid:c,dirty:v,touched:p,isSubmitting:o,submitCount:a,handleSubmit:function(e){return t=>{t.preventDefault(),a.value++;for(let e in l)l[e]._forceVisible();let n=s.value;if(r.validate){let e=r.validate(n);if(e){let t={},r=!1;for(let n in e){let l=e[n],u=Array.isArray(l)?l[0]??null:l??null;u&&(t[n]=u,r=!0)}if(r)return void g(t)}}for(let e in l)if(l[e].error.value)return;let u=e(n);u instanceof Promise&&(o.value=!0,u.finally(()=>{o.value=!1}).catch(()=>{}))}},reset:function(){for(let e in l)l[e].reset();o.value=!1,a.value=0},setErrors:g,dispose:function(){s.dispose(),f.dispose(),c.dispose(),v.dispose(),p.dispose();for(let e in l)l[e]._dispose()}}}exports.createForm=g,exports.createValidator=c,exports.email=a,exports.extendValidators=u,exports.max=s,exports.maxLength=r,exports.min=o,exports.minLength=n,exports.pattern=i,exports.required=t,exports.useField=d,exports.useFieldArray=f,exports.validators=l;
@@ -0,0 +1 @@
1
+ import{computed as e,signal as t}from"./signals.js";function n(e="Required"){return t=>null==t||""===t||Array.isArray(t)&&0===t.length?e:null}function r(e,t){return n=>"string"==typeof n&&n.length<e?t??`Minimum ${e} characters`:null}function i(e,t){return n=>"string"==typeof n&&n.length>e?t??`Maximum ${e} characters`:null}function a(e,t="Invalid format"){return n=>"string"!=typeof n||e.test(n)?null:t}function o(e="Invalid email"){return a(/^[^\s@]+@[^\s@]+\.[^\s@]+$/,e)}function s(e,t){return n=>"number"==typeof n&&n<e?t??`Minimum value is ${e}`:null}function c(e,t){return n=>"number"==typeof n&&n>e?t??`Maximum value is ${e}`:null}function l(e){return e}var u={required:n,minLength:r,maxLength:i,email:o,pattern:a,min:s,max:c};function d(e,t){return{...e,...t}}function f(n,r=[],l="blur",u){let i=t(n),a=t(!1),o=t(!1),s=t(null),f=t(!1),v=e(()=>{if(s.value)return s.value;if(!("input"===l?o.value||a.value:"submit"===l?f.value:a.value))return null;let e=u?.();for(let t of r){let n=t(i.value,e);if(n)return n}return null});return{value:i,error:v,touched:a,dirty:o,onInput:e=>{i.value=function(e){if(!e||!("value"in e))return n;let t=e;return"boolean"==typeof n?t.checked:"number"==typeof n?Number(t.value):t.value}(e.target),o.value=!0,s.value=null},onBlur:()=>{a.value=!0},reset:function(){i.value=n,a.value=!1,o.value=!1,s.value=null,f.value=!1},_setExternalError:function(e){s.value=e,e&&(a.value=!0)},_forceVisible:function(){a.value=!0,f.value=!0},_dispose:function(){v.dispose()}}}function p(n,r={},l="blur"){function u(e){let t={};for(let n in e){let u=r[n]??[];t[n]=f(e[n],u,l)}return t}let i=t(n.map(u)),a=e(()=>i.value.length);return{fields:i,append:function(e){i.value=[...i.value,u(e)]},remove:function(e){let t=i.value;if(!(e<0||e>=t.length)){for(let n in t[e])t[e][n]._dispose();i.value=t.filter((t,n)=>n!==e)}},move:function(e,t){let n=[...i.value];if(e<0||e>=n.length||t<0||t>=n.length||e===t)return;let[r]=n.splice(e,1);n.splice(t,0,r),i.value=n},replace:function(e,t){let n=[...i.value];if(!(e<0||e>=n.length)){for(let t in n[e])n[e][t]._dispose();n[e]=u(t),i.value=n}},length:a,reset:function(){for(let e of i.value)for(let t in e)e[t]._dispose();i.value=n.map(u)},_dispose:function(){for(let e of i.value)for(let t in e)e[t]._dispose();a.dispose()}}}function m(e){return"object"==typeof e&&!!e&&!Array.isArray(e)}function h(e,t="",n=[]){for(let[r,l]of Object.entries(e)){let e=t?`${t}.${r}`:r;m(l)&&Object.keys(l).length>0?h(l,e,n):n.push([e,l])}return n}function g(e,t,n){let r=t.split("."),l=e;for(let e=0;e<r.length-1;e++){let t=r[e];m(l[t])||(l[t]={}),l=l[t]}l[r[r.length-1]]=n}function _(n,r={}){let l=r.validateOn??"blur",u={},i=r.validators;function a(){let e={};for(let t in u)g(e,t,u[t].value.value);return e}for(let[e,t]of h(n))u[e]=f(t,i?.[e]??[],l,a);let o=t(!1),s=t(0),v=e(()=>a()),c=e(()=>{let e={};for(let t in u){let n=u[t].error.value;n&&(e[t]=n)}return e}),d=e(()=>{for(let e in u)if(u[e].error.value)return!1;return!0}),p=e(()=>{for(let e in u)if(u[e].dirty.value)return!0;return!1}),m=e(()=>{for(let e in u)if(u[e].touched.value)return!0;return!1});function y(e){for(let t in e)u[t]?._setExternalError(e[t]??null)}return{fields:u,values:v,errors:c,valid:d,dirty:p,touched:m,isSubmitting:o,submitCount:s,handleSubmit:function(e){return t=>{t.preventDefault(),s.value++;for(let e in u)u[e]._forceVisible();let n=v.value;if(r.validate){let e=r.validate(n);if(e){let t={},n=!1;for(let r in e){let l=e[r],u=Array.isArray(l)?l[0]??null:l??null;u&&(t[r]=u,n=!0)}if(n)return void y(t)}}for(let e in u)if(u[e].error.value)return;let l=e(n);l instanceof Promise&&(o.value=!0,l.finally(()=>{o.value=!1}).catch(()=>{}))}},reset:function(){for(let e in u)u[e].reset();o.value=!1,s.value=0},setErrors:y,dispose:function(){v.dispose(),c.dispose(),d.dispose(),p.dispose(),m.dispose();for(let e in u)u[e]._dispose()}}}export{_ as createForm,l as createValidator,o as email,d as extendValidators,c as max,i as maxLength,s as min,r as minLength,a as pattern,n as required,f as useField,p as useFieldArray,u as validators};
@@ -1,2 +1,2 @@
1
1
  export { Signal, signal, effect, computed, batch, watch, untrack, nextTick, html, repeat, ref, showWhen, portal, createPortalOutlet, portalOutlet, provideOutlet, injectOutlet, createErrorBoundary, transition, mount, NixComponent, createStore, createRouter, RouterView, Link, useRouter, RouterKey, suspend, lazy, provide, inject, createInjectionKey, useField, useFieldArray, createForm, required, minLength, maxLength, email, pattern, min, max, createValidator, validators, extendValidators, } from "./nix";
2
- export type { WatchOptions, NixTemplate, NixMountHandle, MountOptions, KeyedList, NixRef, PortalOutlet, ErrorFallback, TransitionOptions, TransitionContent, Store, StoreSignals, Router, RouteRecord, RouterOptions, NavigationGuard, NavigationGuardResult, AfterEachHook, ResolvedRoute, ScrollPosition, ScrollBehavior, RouterMode, SuspenseOptions, InjectionKey, Validator, ValidateOn, FieldState, FieldArrayState, FieldErrors, FormState, FormOptions, ValidatorsBase, NixChildren, } from "./nix";
2
+ export type { WatchOptions, NixTemplate, NixMountHandle, MountOptions, KeyedList, NixRef, PortalOutlet, ErrorFallback, TransitionOptions, TransitionContent, Store, StoreSignals, Router, NamedRouteLocation, RouteLocation, RouteRecord, RouterOptions, NavigationGuard, NavigationGuardResult, AfterEachHook, ResolvedRoute, ScrollPosition, ScrollBehavior, RouterMode, SuspenseOptions, InjectionKey, Validator, ValidateOn, FieldState, FieldArrayState, FieldErrors, FormState, FormOptions, ValidatorsBase, NixChildren, } from "./nix";
@@ -9,7 +9,7 @@ export type { NixChildren } from "./lifecycle";
9
9
  export { createStore } from "./store";
10
10
  export type { Store, StoreSignals } from "./store";
11
11
  export { createRouter, RouterView, Link, useRouter, RouterKey } from "./router";
12
- export type { Router, RouteRecord, RouterOptions, NavigationGuard, NavigationGuardResult, AfterEachHook, ResolvedRoute, ScrollPosition, ScrollBehavior, RouterMode, } from "./router";
12
+ export type { Router, NamedRouteLocation, RouteLocation, RouteRecord, RouterOptions, NavigationGuard, NavigationGuardResult, AfterEachHook, ResolvedRoute, ScrollPosition, ScrollBehavior, RouterMode, } from "./router";
13
13
  export { suspend, lazy } from "./async";
14
14
  export type { SuspenseOptions } from "./async";
15
15
  export { provide, inject, createInjectionKey } from "./context";
@@ -11,6 +11,8 @@ export type NavigationGuardResult = void | undefined | false | string;
11
11
  /** Guard function invoked before navigation commits. */
12
12
  export type NavigationGuard = (to: string, from: string) => NavigationGuardResult | Promise<NavigationGuardResult>;
13
13
  export interface RouteRecord {
14
+ /** Optional unique name to enable named navigation. */
15
+ name?: string;
14
16
  /** Route path segment. Supports literals, params (`:id`), and wildcards (`*`). */
15
17
  path: string;
16
18
  /** Factory returning the view for this route level. */
@@ -26,6 +28,14 @@ export interface RouteRecord {
26
28
  * Callback for `afterEach` hooks — receives the committed `to` and `from` paths.
27
29
  */
28
30
  export type AfterEachHook = (to: string, from: string) => void;
31
+ /** Named route target for programmatic navigation. */
32
+ export interface NamedRouteLocation {
33
+ name: string;
34
+ params?: Record<string, string | number>;
35
+ query?: Record<string, string | number | boolean | null | undefined>;
36
+ }
37
+ /** Navigation input accepted by `navigate` / `replace`. */
38
+ export type RouteLocation = string | NamedRouteLocation;
29
39
  /** Serializable scroll position used by the router for history restoration. */
30
40
  export interface ScrollPosition {
31
41
  left: number;
@@ -90,9 +100,9 @@ export interface Router {
90
100
  /** The resolved base path used by the router. */
91
101
  readonly base: string;
92
102
  /** Navigate to a new path via `pushState`. Guards run before committing. */
93
- navigate(path: string, query?: Record<string, string | number | boolean | null | undefined>): void;
103
+ navigate(location: RouteLocation, query?: Record<string, string | number | boolean | null | undefined>): void;
94
104
  /** Navigate via `replaceState` (no new history entry). Guards still run. */
95
- replace(path: string, query?: Record<string, string | number | boolean | null | undefined>): void;
105
+ replace(location: RouteLocation, query?: Record<string, string | number | boolean | null | undefined>): void;
96
106
  /** Go back one entry in the browser history. */
97
107
  back(): void;
98
108
  /** Go forward one entry in the browser history. */
@@ -1,21 +1 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});var e=[],t=[],n=null,r=null,i=null,a=[];function o(e){a.push(i),i=e}function s(){i=a.pop()??null}var c=0,l=new Set,u=[],d=100,f=0,p=[],m=0,h=class{_value;_subs=new Set;constructor(e){this._value=e}get value(){return n&&(this._subs.add(n),r?.add(this)),this._value}set value(e){Object.is(this._value,e)||(this._value=e,this._notify())}update(e){this.value=e(this._value)}peek(){return this._value}_removeSub(e){this._subs.delete(e)}_notify(){if(c>0){for(let e of this._subs)l.has(e)||(l.add(e),u.push(e));return}let e=m,t=0;for(let n of this._subs)p[e+t++]=n;m=e+t;try{for(let n=0;n<t;n++){let t=p[e+n];p[e+n]=null,t?.()}}finally{m=e}}dispose(){this._subs.clear()}};function g(e){return new h(e)}function _(o){let l,u=!1,a=new Set,s=new Set,c=i,p=()=>{if(u)return;"function"==typeof l&&l();let i=a;a=s,s=i,s.clear();let h=e.length>0?e.pop():{effect:null,deps:null};if(h.effect=n,h.deps=r,t.push(h),n=p,r=s,++f>d){f=0;let o=t.pop();throw n=o.effect,r=o.deps,o.effect=null,o.deps=null,e.push(o),Error("[Nix] Maximum effect re-execution depth exceeded (possible infinite loop).")}try{l=o()}catch(e){if(!c)throw e;c(e)}finally{f--;let o=t.pop();n=o.effect,r=o.deps,o.effect=null,o.deps=null,e.push(o);for(let e of a)s.has(e)||e._removeSub(p)}};return p(),()=>{u=!0,"function"==typeof l&&l();for(let e of s)e._removeSub(p);s.clear(),a.clear()}}function v(e){let t=new h(void 0),n=_(()=>{t.value=e()}),r=t.dispose;return t.dispose=()=>{n(),r.call(t)},t}function y(e){c++;try{e()}finally{if(0===--c&&u.length>0){let e=u.length;for(let t=0;t<e;t++)u[t]();u.length=0,l.clear()}}}function b(e){let t=n,o=r;n=null,r=null;try{return e()}finally{n=t,r=o}}function x(e,t,n={}){let r,{immediate:o=!1,once:l=!1}=n,i=e instanceof h?()=>e.value:e,u=!0,a=!1,s=_(()=>{let e=i();if(u){if(u=!1,o&&!a){let n=e;b(()=>t(n,void 0)),l&&(a=!0,Promise.resolve().then(s))}r=e}else if(!a){let n=e,o=r;r=e,b(()=>t(n,o)),l&&(a=!0,Promise.resolve().then(s))}});return()=>{a=!0,s()}}function S(e){return e?Promise.resolve().then(e):Promise.resolve()}function C(){return{el:null}}var w={SCOPE:"nix-scope",ERROR_BOUNDARY:"nix-eb",TRANSITION:"nix-t",KEYED_START:"nix-ks",KEYED_END:"nix-ke",KEYED_ZONE:"nix-kz"};function T(e){return"object"==typeof e&&!!e&&!0===e.__isNixTemplate}function ee(e){return"object"==typeof e&&!!e&&!0===e.__isKeyedList}var E=class{__isNixComponent=!0;children;_slots=new Map;setChildren(e){return this.children=e,this}setSlot(e,t){return this._slots.set(e,t),this}slot(e){return this._slots.get(e)}};function D(e){return"object"==typeof e&&!!e&&!0===e.__isNixComponent}function O(e){return Symbol(e)}var k=[];function A(){return[...k]}function j(){k.push(new Map)}function M(){k.pop()}function N(e,t){let n=k.splice(0);e.forEach(e=>k.push(e)),k.push(new Map);try{return t()}finally{k.splice(0),n.forEach(e=>k.push(e))}}function P(e,t){let n=k[k.length-1];if(!n)throw Error("[Nix] provide() must be called inside onInit() of a NixComponent.");n.set(e,t)}function F(e,t){for(let t=k.length-1;t>=0;t--)if(k[t].has(e))return k[t].get(e);return t}function I(e,t,n){let r,o;j();try{try{e.onInit?.()}catch(t){if(!e.onError)throw t;e.onError(t)}r=e.render()._render(t,n)}finally{M()}try{let t=e.onMount?.();"function"==typeof t&&(o=t)}catch(t){if(!e.onError)throw t;e.onError(t)}return()=>{try{e.onUnmount?.()}catch{}try{o?.()}catch{}r()}}function L(e,t,n){let r,o;j();try{try{e.onInit?.()}catch{}r=e.render()._render(t,n)}finally{M()}try{let t=e.onMount?.();"function"==typeof t&&(o=t)}catch{}return()=>{try{e.onUnmount?.()}catch{}try{o?.()}catch{}r()}}function R(e,t,n,r){let o,l;N(r,()=>{try{e.onInit?.()}catch(t){if(!e.onError)throw t;e.onError(t)}o=e.render()._render(t,n)});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{}o()}}function te(e,t,n,r,o){let l,i;j();try{try{e.onInit?.()}catch(t){if(!e.onError)throw t;e.onError(t)}l=e.render()._render(t,n)}finally{M()}r.push(()=>{try{let t=e.onMount?.();"function"==typeof t&&(i=t)}catch(t){if(!e.onError)throw t;e.onError(t)}}),o.push(()=>{try{e.onUnmount?.()}catch{}try{i?.()}catch{}l()})}function ne(e,t,n){return{__isKeyedList:!0,items:e,keyFn:t,renderFn:n}}function re(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 z=new Set,B=!1;function V(e){z.add(e),B||(B=!0,queueMicrotask(()=>{for(let e of z)try{e()}catch(e){console.error("[Nix.js] Error in DOM write task:",e)}z.clear(),B=!1}))}function ie(e,t,n,r){if("function"!=typeof t){if(D(t))te(t,e.parentNode,e,r,n);else if(T(t))n.push(t._render(e.parentNode,e));else if(Array.isArray(t))for(let o of t)D(o)?te(o,e.parentNode,e,r,n):T(o)?o._render(e.parentNode,e):null!=o&&!1!==o&&e.parentNode.insertBefore(document.createTextNode(String(o)),e);else null!=t&&!1!==t&&e.parentNode.insertBefore(document.createTextNode(String(t)),e);return}let o=null,l=null,i=null,u=[],a=null,s=A(),c=!1,f="",d=!0,p=_(()=>{let n=t();if("string"==typeof n||"number"==typeof n){f=String(n);let t=()=>{c=!1,l&&=(l(),null),o?o.nodeValue=f:(o=document.createTextNode(f),e.parentNode.insertBefore(o,e))};return void(d?(d=!1,t()):c||(c=!0,V(t)))}if(c=!1,d=!1,o&&=(o.parentNode?.removeChild(o),null),l&&=(l(),null),null!=n&&!1!==n)if(T(n))l=n._render(e.parentNode,e);else if(D(n))l=R(n,e.parentNode,e,s);else if(ee(n)){i||(i=new Map,a=document.createTextNode(""),e.parentNode.insertBefore(a,e));let t=e.parentNode,r=n.items.map((e,t)=>n.keyFn(e,t)),o=new Set(r),l=!1;if(i.size>0)for(let e of i.keys())if(o.has(e)){l=!0;break}if(!l){if(i.size>0){let t=document.createRange();t.setStartAfter(a),t.setEndBefore(e),t.deleteContents();for(let e of i.values())e.cleanup();i.clear()}if(r.length>0){let o=document.createDocumentFragment();y(()=>{for(let e=0;e<r.length;e++){let t=r[e],l=n.items[e],u=document.createTextNode(""),a=document.createTextNode("");o.appendChild(u),o.appendChild(a);let c=n.renderFn(l,e),f=D(c)?R(c,o,a,s):c._render(o,a);i?.set(t,{start:u,end:a,cleanup:f})}}),t.insertBefore(o,e)}return void(u=r)}let c=new Map;for(let e=0;e<r.length;e++)c.set(r[e],e);let f=new Int32Array(r.length),d=!1,p=0;for(let e=0;e<u.length;e++){let t=u[e],n=c.get(t);if(void 0===n){let e=i.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}i.delete(t)}else f[n]=e+1,n>=p?p=n:d=!0}let h=d?re(f):[],m=h.length-1,v=e;for(let e=r.length-1;e>=0;e--){let o=r[e];if(0===f[e]){let r=n.items[e],l=document.createTextNode(""),u=document.createTextNode(""),a=document.createDocumentFragment();a.appendChild(l),a.appendChild(u);let c=n.renderFn(r,e),f=D(c)?R(c,a,u,s):c._render(a,u);i.set(o,{start:l,end:u,cleanup:f}),t.insertBefore(a,v),v=l}else{let n=i.get(o);if(d)if(m<0||e!==h[m]){let e=n.start;for(;e;){let r=e===n.end?null:e.nextSibling;if(t.insertBefore(e,v),!r)break;e=r}}else m--;v=n.start}}u=r}else if(Array.isArray(n)){let t=[];for(let r of n)if(D(r))t.push(I(r,e.parentNode,e));else if(T(r))t.push(r._render(e.parentNode,e));else if(null!=r&&!1!==r){let n=document.createTextNode(String(r));e.parentNode.insertBefore(n,e),t.push(()=>n.parentNode?.removeChild(n))}l=()=>t.forEach(e=>e())}else o=document.createTextNode(String(n)),e.parentNode.insertBefore(o,e)});n.push(()=>{if(p(),l&&=(l(),null),o&&=(o.parentNode?.removeChild(o),null),i){for(let e of i.values())e.cleanup();i=null,a=null}})}function ae(e,t){t?"none"===e.style.display&&(e.style.display=""):"none"!==e.style.display&&(e.style.display="none")}function oe(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 se={enter:"Enter",escape:"Escape",space:" ",tab:"Tab",delete:"Delete",backspace:"Backspace",up:"ArrowUp",down:"ArrowDown",left:"ArrowLeft",right:"ArrowRight"},ce=new Set(["click","dblclick","mousedown","mouseup","keydown","keyup","input","change","submit"]),le=new Set;function ue(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=se[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 de=new Map;function fe(e,t,n,r){let o=[],l=[],i=Array(t.length),u=-1;for(let e=0;e<t.length;e++)r[e]&&r[e].nodeIndex>u&&(u=r[e].nodeIndex);let a=Array(u+1);if(a[0]=e,u>0){let t,n=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT|NodeFilter.SHOW_COMMENT),r=1;for(;r<=u&&(t=n.nextNode());)a[r++]=t}for(let e=0;e<t.length;e++){let t=r[e];i[e]=t?a[t.nodeIndex]:null}for(let e=0;e<t.length;e++){let u=t[e],a=n[e],s=r[e];if(!s)continue;let c=i[e];if("event"===u.type){let e=s.name,t=a,n=u.modifiers;if(!ce.has(e)||n.includes("capture")||n.includes("once")){let r={once:n.includes("once"),capture:n.includes("capture"),passive:n.includes("passive")},l=e=>{n.includes("prevent")&&e.preventDefault(),n.includes("stop")&&e.stopPropagation(),(!n.includes("self")||e.target===e.currentTarget)&&t(e)};c.addEventListener(e,l,r),o.push(()=>c.removeEventListener(e,l,r))}else{if(!le.has(e)){let t=`__nix_${e}`,n=`__nix_${e}_mods`,r=e=>ue(e,t,n);de.set(e,r),document.addEventListener(e,r),le.add(e)}let r=`__nix_${e}`,l=`__nix_${e}_mods`;c[r]=t,n.length>0&&(c[l]=n),o.push(()=>{c[r]=null,c[l]=null})}continue}if("attr"===u.type){let e=s.name,t=c;if("ref"===e){a.el=t,o.push(()=>{a.el=null});continue}if("show"===e||"hide"===e){let n=t,r=null;if("function"==typeof a){let t=!1,l=!1,i=!0,u=_(()=>{l=!!a();let o=()=>{t=!1;let o="show"===e?l:!l;null===r&&(r=n.style.display||""),n.style.display=o?r:"none"};i?(i=!1,o()):t||(t=!0,V(o))});o.push(u)}else("show"===e?a:!a)||(n.style.display="none");continue}let n=("value"===e||"checked"===e||"selected"===e)&&e in t;if("function"==typeof a){let r,l=!1,i=!0,u=_(()=>{r=a();let o=()=>{l=!1;let o=r;n?t[e]=o??"":null==o||!1===o?t.removeAttribute(e):t.setAttribute(e,String(o))};i?(i=!1,o()):l||(l=!0,V(o))});o.push(u)}else n?t[e]=a??"":null!=a&&!1!==a&&t.setAttribute(e,String(a));continue}let f=c;if(!f)continue;let d=document.createTextNode("");f.parentNode.replaceChild(d,f),ie(d,a,o,l)}return{disposes:o,postMountHooks:l}}function pe(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 me=new WeakMap;function H(e,...t){let n=me.get(e);if(!n){let t=[],r="";for(let n=0;n<e.length-1;n++)r+=e[n],t.push(oe(r)),r+="__nix__";let o=document.createElement("template");o.innerHTML=pe(e,t);let l,i=Array(t.length).fill(null),u=o.content,a=document.createTreeWalker(u,NodeFilter.SHOW_ELEMENT|NodeFilter.SHOW_COMMENT),s=0;for(;l=a.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},me.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}=fe(i,r,t,l),s=document.createTextNode(""),c=document.createTextNode("");return e.insertBefore(s,n),e.insertBefore(i,n),e.insertBefore(c,n),a.forEach(e=>e()),()=>{for(let e=u.length-1;e>=0;e--)u[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 he(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 ge(e){return Math.max(0,...e.split(",").map(e=>parseFloat(e.trim())||0))}function _e(e,t=0){return new Promise(n=>{let r=getComputedStyle(e),o=1e3*Math.max(ge(r.transitionDuration||"0"),ge(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 ve(e,t={}){let n=he(t);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=document.createComment(w.TRANSITION);r.insertBefore(l,o);let i=null,u=null,a=0,s=!0,c=()=>{let e=l.nextSibling;for(;e&&e!==o;){if(e.nodeType===Node.ELEMENT_NODE)return e;e=e.nextSibling}return null};function f(e){return D(e)?L(e,r,o):e._render(r,o)}let d=(e,r=!1)=>{a++,u&&=(u(),null),i=f(e);let o=c();if(o&&(!s||t.appear)&&!r){let e=a;(async()=>{t.onBeforeEnter?.(o),o.classList.add(n.enterFrom,n.enterActive),o.getBoundingClientRect(),await new Promise(e=>requestAnimationFrame(()=>e())),a===e&&(o.classList.remove(n.enterFrom),o.classList.add(n.enterTo),await _e(o,t.duration),a===e&&(o.classList.remove(n.enterActive,n.enterTo),t.onAfterEnter?.(o)))})().catch(()=>{})}s=!1},p=()=>{let e=i;i=null;let r=c();if(!r)return void e?.();let o=++a;u=e??null,(async()=>{t.onBeforeLeave?.(r),r.classList.add(n.leaveFrom,n.leaveActive),r.getBoundingClientRect(),await new Promise(e=>requestAnimationFrame(()=>e())),a===o&&(r.classList.remove(n.leaveFrom),r.classList.add(n.leaveTo),await _e(r,t.duration),a===o&&(r.classList.remove(n.leaveActive,n.leaveTo),t.onAfterLeave?.(r),u?.(),u=null))})().catch(()=>{})},h=null;if("function"!=typeof e||D(e))d(e);else{let t=e,n=null;h=_(()=>{let e=t(),r=null===n,o=null===e;r&&!o?d(e):!r&&o?p():!r&&!o&&(a++,u?.(),u=null,i?.(),i=null,d(e,!0)),n=e}),s=!1}return()=>{a++,h?.(),i?.(),u?.(),i=null,u=null,l.remove()}}}}function ye(){return{__isPortalOutlet:!0,_container:null}}function be(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 xe(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,D(e)?I(e,o,null):e._render(o,null)}}}var Se=O("nix:portal-outlet");function Ce(e){P(Se,e)}function we(){return F(Se)}function Te(e,t){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 l=document.createComment(w.ERROR_BOUNDARY);n.insertBefore(l,r);let i,u=null,a=!1,c=!1,f=!1,d=e=>{let n=l.parentNode,o="function"!=typeof t||D(t)?t:t(e);u=D(o)?L(o,n,r):o._render(n,r)};o(e=>{a||(a=!0,c?(u?.(),u=null,d(e)):(i=e,f=!0))});try{if(D(e)){j();try{try{e.onInit?.()}catch(t){if(!e.onError)throw t;e.onError(t)}u=e.render()._render(n,r)}finally{M()}if(!a)try{let t=e.onMount?.(),n=u;u=()=>{try{e.onUnmount?.()}catch{}if("function"==typeof t)try{t()}catch{}n?.()}}catch(t){if(!e.onError)throw t;e.onError(t)}}else u=e._render(n,r)}catch(e){a=!0,u?.(),u=null,i=e,f=!0}finally{s(),c=!0}return f&&(u?.(),u=null,d(i)),()=>{u?.(),l.remove()}}}}var U=O("nix:router"),W=null,G=null,Ee="__nix_scroll";function De(){if(!W)throw Error("[Nix] No active router. Call createRouter() first.");return W}function K(){return{left:window.scrollX??window.pageXOffset??0,top:window.scrollY??window.pageYOffset??0}}function Oe(e){if(!e||"object"!=typeof e)return null;let t=e[Ee];if(!t||"object"!=typeof t)return null;let n=t.left,r=t.top;return"number"!=typeof n||"number"!=typeof r?null:{left:n,top:r}}function q(e,t){let n=e&&"object"==typeof e?{...e}:{};return n[Ee]={left:t.left,top:t.top},n}function J(e){let t={};return new URLSearchParams(e).forEach((e,n)=>{t[n]=e}),t}function ke(e){let t=new URLSearchParams;for(let[n,r]of Object.entries(e))null!=r&&!1!==r&&t.set(n,String(r));let n=t.toString();return n?"?"+n:""}function Ae(e){return"*"===e?[{kind:"wildcard"}]:e.split("/").filter(Boolean).map(e=>"*"===e?{kind:"wildcard"}:e.startsWith(":")?{kind:"param",name:e.slice(1)}:{kind:"literal",value:e})}function je(e,t){return"*"===t?""===e?"*":e+"/*":(e+(t.startsWith("/")?t:"/"+t)).replace(/\/+/g,"/")||"/"}function Me(e,t="",n=[]){let r=[];for(let o of e){let e=je(t,o.path),l=[...n,o.component],i=Ae(e);r.push({fullPath:e,segments:i,chain:l,meta:o.meta,beforeEnter:o.beforeEnter,record:o}),o.children?.length&&r.push(...Me(o.children,e,l))}return r}function Ne(e,t){let n=e.split("/").filter(Boolean),r=t.segments;if(1===r.length&&"wildcard"===r[0].kind)return{};let o=r.length>0&&"wildcard"===r[r.length-1].kind,l=o?r.slice(0,-1):r;if(o){if(n.length<l.length)return null}else if(n.length!==l.length)return null;let i={};for(let e=0;e<l.length;e++){let t=l[e];if("literal"===t.kind){if(n[e]!==t.value)return null}else if("param"===t.kind)try{i[t.name]=decodeURIComponent(n[e]??"")}catch{i[t.name]=n[e]??""}}return i}function Pe(e){return e.segments.reduce((e,t)=>"literal"===t.kind?e+2:"param"===t.kind?e+1:e,0)}function Y(e,t){let n,r={},o=-1;for(let l of t){let t=Ne(e,l);if(null===t)continue;let i=Pe(l);i>o&&(n=l,r=t,o=i)}return n?{route:n,params:r}:void 0}function X(e){let t=e.trim();return t&&"/"!==t?(t.startsWith("/")||(t="/"+t),t.endsWith("/")&&(t=t.slice(0,-1)),t):""}function Fe(){if(typeof document>"u")return"";let e=document.querySelector("base");if(!e)return"";let t=e.getAttribute("href")||"";try{return X(new URL(t,window.location.origin).pathname)}catch{return X(t)}}function Ie(e,t){let n=null==t?.base?Fe():X(t.base),r=t?.mode??"history",o="hash"===r,l=t?.scrollBehavior,i=new Map,u=!1;function a(e){return e?e.startsWith("/")?e:"/"+e:"/"}function s(e){let t=a(e||"/");if(n&&t.startsWith(n)){let e=t.slice(n.length);return""===e?"/":a(e)}return t}function c(e){let t=a(e);return n?(n+t).replace(/\/+/g,"/")||"/":t}function f(){return o?function(){let e=window.location.hash||"";if(e.startsWith("#")&&(e=e.slice(1)),!e)return{pathname:"/",search:""};e.startsWith("/")||(e="/"+e);let t=e.indexOf("?"),n=-1===t?e:e.slice(0,t),r=-1===t?"":e.slice(t);return{pathname:s(n),search:r}}():{pathname:s(window.location.pathname||"/"),search:window.location.search||""}}function d(e,t){let n=c(e)+ke(t);return o?"#"+n:n}function p(e,t){return a(e)+ke(t)}let h=f(),m=h.pathname,v=J(h.search),y=Me(e),x=Y(m,y),_=g(m),b=g(x?.params??{}),w=g(v);function N(e){window.scrollTo(e.left,e.top)}function E(e,t,n){if(l){let r=l(e,t,n);if(!1===r||null==r)return;return void N(r)}N(n??{left:0,top:0})}o?i.set(p(m,v),K()):history.replaceState(q(history.state,K()),"");let k=[],S=[],O=0;function T(e,t,n,r,o){let l=[...k];n&&l.push(n);let i=++O;if(0===l.length)return void r();let u=0;!function n(a){if(i!==O)return;if(!1===a)return void o?.();if("string"==typeof a)return void(a===e?r():D(a));if(u>=l.length)return void r();let s=l[u++](e,t);s instanceof Promise?s.then(n):n(s)}(void 0)}let A=!1;function $(e,t){let n=e.indexOf("?"),r=a((-1===n?e:e.slice(0,n))||"/"),o=-1===n?{}:J(e.slice(n)),l=t?{...o,...t}:o,i={};for(let[e,t]of Object.entries(l))null!=t&&!1!==t&&(i[e]=String(t));return{pathname:r,stringQuery:i}}G&&=(G(),null);let M=(e,t,n,r)=>{let o=_.value,l={...w.value},i=Y(e,y);T(e,o,i?.route.beforeEnter,()=>{b.value=i?.params??{},w.value=t,_.value=e,E(e,o,n);for(let t of S)try{t(e,o)}catch{}},()=>r(o,l))};if(o){let e=()=>{if(u)return void(u=!1);let e=f(),t=J(e.search),n=i.get(p(e.pathname,t))??null;M(e.pathname,t,n,(e,t)=>{u=!0,window.location.hash=d(e,t).slice(1),queueMicrotask(()=>{u=!1})})};window.addEventListener("hashchange",e),G=()=>window.removeEventListener("hashchange",e)}else{let e=e=>{let t=f(),n=J(t.search),r=Oe(e.state??history.state);M(t.pathname,n,r,(e,t)=>{history.pushState(q({},K()),"",d(e,t))})};window.addEventListener("popstate",e),G=()=>window.removeEventListener("popstate",e)}function L(e,t,n,r,l,a){a||function(e,t){let n=K();o?i.set(p(e,t),n):history.replaceState(q(history.state,n),"")}(n,r),b.value=l?.params??{},w.value=t,_.value=e;let s=d(e,t);if(o)i.set(p(e,t),{left:0,top:0}),a?history.replaceState(history.state,"",s):(u=!0,window.location.hash=s.slice(1),queueMicrotask(()=>{u=!1}));else{let e=q({},{left:0,top:0});a?history.replaceState(e,"",s):history.pushState(e,"",s)}E(e,n,null);for(let t of S)try{t(e,n)}catch{}}function D(e,t){A=!0;let{pathname:n,stringQuery:r}=$(e,t),o=_.value,l={...w.value},i=Y(n,y);T(n,o,i?.route.beforeEnter,()=>L(n,r,o,l,i,!1))}let j={current:_,params:b,query:w,base:n||"/",navigate:D,replace:function(e,t){A=!0;let{pathname:n,stringQuery:r}=$(e,t),o=_.value,l={...w.value},i=Y(n,y);T(n,o,i?.route.beforeEnter,()=>L(n,r,o,l,i,!0))},back:function(){history.back()},forward:function(){history.forward()},go:function(e){history.go(e)},isActive:function(e,t=!0){let n=_.value;return t?n===e:n===e||n.startsWith(e.endsWith("/")?e:e+"/")},resolve:function(e){let t=Y(e,y);return t?{matched:!0,params:t.params,route:t.route.record}:{matched:!1,params:{},route:void 0}},beforeEach:function(e){return k.push(e),()=>{let t=k.indexOf(e);-1!==t&&k.splice(t,1)}},afterEach:function(e){return S.push(e),()=>{let t=S.indexOf(e);-1!==t&&S.splice(t,1)}},routes:e,_flat:y,_guards:k,_base:n,_mode:r};return W&&console.warn("[Nix] A router already exists. The previous router is being replaced. Only one router instance should be active at a time."),W=j,queueMicrotask(()=>{A||T(m,"",Y(m,y)?.route.beforeEnter,()=>{},()=>{let e=d("/",{});o?(i.set(p("/",{}),{left:0,top:0}),history.replaceState(history.state,"",e)):history.replaceState(q({},{left:0,top:0}),"",e);let t=Y("/",y);_.value="/",b.value=t?.params??{},w.value={},E("/",m,null)})}),j}function Z(){return F(U)||De()}var Le=class extends E{_depth;constructor(e=0){super(),this._depth=e}render(){let e=this._depth;return H`<div class="router-view">${()=>{let t=Z(),n=Y(t.current.value,t._flat);return n?e>=n.route.chain.length?H`<span></span>`:n.route.chain[e]():H`<div style="color:#f87171;padding:16px 0">
2
- 404 — Route not found: <strong>${t.current.value}</strong>
3
- </div>`}}</div>`}},Re=class extends E{_to;_label;constructor(e,t){super(),this._to=e,this._label=t}render(){let e=this._to,t=this._label,n=Z(),r=e.startsWith("/")?e:"/"+e,o=(n._base?n._base+r:r).replace(/\/+/g,"/");return H`<a
4
- href=${"hash"===n._mode?"#"+o:o}
5
- style=${()=>n.current.value===e?"color:#38bdf8;font-weight:700;text-decoration:none;cursor:pointer;padding:4px 10px;border-radius:4px;background:#0c2a3a":"color:#a3a3a3;text-decoration:none;cursor:pointer;padding:4px 10px;border-radius:4px"}
6
- @click=${t=>{t.preventDefault(),n.navigate(e)}}
7
- >${t}</a>`}};function ze(e){let t="string"==typeof e?document.querySelector(e):e;if(!t)throw Error(`[Nix] mount: container not found: ${e}`);return t}function Be(e,t,n){if(D(e)){let r,o,l=ze(t);j();try{n?.router&&P(U,n.router);try{e.onInit?.()}catch(t){if(!e.onError)throw t;e.onError(t)}r=e.render()._render(l,null)}finally{M()}try{let t=e.onMount?.();"function"==typeof t&&(o=t)}catch(t){if(!e.onError)throw t;e.onError(t)}return{unmount(){try{e.onUnmount?.()}catch{}try{o?.()}catch{}r()}}}if(!n?.router)return e.mount(t);let r,o=ze(t);j();try{P(U,n.router),r=e._render(o,null)}finally{M()}return{unmount(){r()}}}function Ve(e,t,n){let r={},o=new Set(["$reset","$patch","$state","$subscribe"]);for(let t of Object.keys(e)){if(o.has(t))throw Error(`[Nix] Store key "${t}" is reserved.`);r[t]=g(e[t])}let l=r;let i=Object.assign(Object.create(null),l,{$reset:function(){for(let t of Object.keys(e))r[t].value=e[t]},$patch:function(e){for(let t of Object.keys(e))t in r&&(r[t].value=e[t])},$subscribe:function(t){let n=[];for(let r of Object.keys(e)){let e=x(l[r],(e,n)=>{t(r,e,n)});n.push(e)}return()=>{for(let e of n)e()}}});if(Object.defineProperty(i,"$state",{get(){let e={};for(let t in r)e[t]=r[t].value;return e},enumerable:!0,configurable:!1}),t){let e=t(l);for(let t of Object.keys(e))o.has(t)?console.warn(`[Nix] Store action name "${t}" is reserved and will be ignored.`):i[t]=e[t]}if(n){let e=n(l);for(let t of Object.keys(e))o.has(t)?console.warn(`[Nix] Store getter name "${t}" is reserved and will be ignored.`):i[t]=e[t]}return i}function He(){return H`
8
- <span style="color:#52525b;font-size:13px;display:inline-flex;align-items:center;gap:6px">
9
- <span class="nix-spinner" style="
10
- display:inline-block;width:14px;height:14px;border-radius:50%;
11
- border:2px solid #38bdf840;border-top-color:#38bdf8;
12
- animation:nix-spin .7s linear infinite
13
- "></span>
14
- Loading…
15
- </span>
16
- <style>@keyframes nix-spin{to{transform:rotate(360deg)}}</style>
17
- `}function Ue(e){return H`
18
- <span style="color:#f87171;font-size:13px">
19
- ⚠ ${e instanceof Error?e.message:String(e)}
20
- </span>
21
- `}var Q=new Map,We=3e5,$=null,Ge=We;function Ke(){null===$&&($=setInterval(()=>{let e=Date.now();for(let[t,n]of Q)n.subscribers<=0&&e-n.fetchedAt>Ge&&Q.delete(t);0===Q.size&&null!==$&&(clearInterval($),$=null)},6e4))}function qe(e){let t=Q.get(e);if(t&&t.fetchedAt>0)return t}function Je(e,t){let n=Q.get(e);Q.set(e,{data:t,fetchedAt:Date.now(),subscribers:n?.subscribers??0}),Ke()}function Ye(e){let t=Q.get(e);t?t.subscribers++:Q.set(e,{fetchedAt:0,subscribers:1})}function Xe(e){let t=Q.get(e);t&&(t.subscribers=Math.max(0,t.subscribers-1))}function Ze(e,t){let n=Q.get(e);return!!n&&Date.now()-n.fetchedAt<t}function Qe(e,t,n={}){let{fallback:r,errorFallback:o,resetOnRefresh:l=!1,invalidate:i,cacheKey:u,staleTime:a=0}=n,s=r??He(),c=o??Ue;return new class extends E{_state;_disposeWatcher;constructor(){super();let e=u?qe(u):void 0;this._state=g(e&&void 0!==e.data?{status:"resolved",data:e.data}:{status:"pending"})}onMount(){u&&Ye(u);let e=u?qe(u):void 0;if(e&&Ze(u,a)||(e?this._fetch():this._run()),i){let e=!0;this._disposeWatcher=_(()=>{i.value,e?e=!1:(u&&Q.delete(u),this._run())})}return()=>{this._disposeWatcher?.(),u&&Xe(u)}}_run(){(l||"pending"===this._state.peek().status)&&(this._state.value={status:"pending"}),this._fetch()}_fetch(){e().then(e=>{u&&Je(u,e),this._state.value={status:"resolved",data:e}},e=>{this._state.value={status:"error",error:e}})}render(){return H`<div class="nix-suspense" style="display:contents">${()=>{let e=this._state.value;return"pending"===e.status?s:"error"===e.status?c(e.error):t(e.data)}}</div>`}}}function $e(e,t){let n=null;return()=>n?new n:Qe(async()=>(n=(await e()).default,n),e=>new e,{fallback:t})}function et(e="Required"){return t=>null==t||""===t||Array.isArray(t)&&0===t.length?e:null}function tt(e,t){return n=>"string"==typeof n&&n.length<e?t??`Minimum ${e} characters`:null}function nt(e,t){return n=>"string"==typeof n&&n.length>e?t??`Maximum ${e} characters`:null}function rt(e,t="Invalid format"){return n=>"string"!=typeof n||e.test(n)?null:t}function it(e="Invalid email"){return rt(/^[^\s@]+@[^\s@]+\.[^\s@]+$/,e)}function at(e,t){return n=>"number"==typeof n&&n<e?t??`Minimum value is ${e}`:null}function ot(e,t){return n=>"number"==typeof n&&n>e?t??`Maximum value is ${e}`:null}function st(e){return e}var ct={required:et,minLength:tt,maxLength:nt,email:it,pattern:rt,min:at,max:ot};function lt(e,t){return{...e,...t}}function ut(e,t=[],n="blur",r){let o=g(e),l=g(!1),i=g(!1),u=g(null),a=g(!1),s=v(()=>{if(u.value)return u.value;if(!("input"===n?i.value||l.value:"submit"===n?a.value:l.value))return null;let e=r?.();for(let n of t){let t=n(o.value,e);if(t)return t}return null});function c(t){if(!t||!("value"in t))return e;let n=t;return"boolean"==typeof e?n.checked:"number"==typeof e?Number(n.value):n.value}return{value:o,error:s,touched:l,dirty:i,onInput:e=>{o.value=c(e.target),i.value=!0,u.value=null},onBlur:()=>{l.value=!0},reset:function(){o.value=e,l.value=!1,i.value=!1,u.value=null,a.value=!1},_setExternalError:function(e){u.value=e,e&&(l.value=!0)},_forceVisible:function(){l.value=!0,a.value=!0},_dispose:function(){s.dispose()}}}function dt(e,t={},n="blur"){function r(e){let r={};for(let o in e){let l=t[o]??[];r[o]=ut(e[o],l,n)}return r}let o=g(e.map(r)),l=v(()=>o.value.length);return{fields:o,append:function(e){o.value=[...o.value,r(e)]},remove:function(e){let t=o.value;if(!(e<0||e>=t.length)){for(let n in t[e])t[e][n]._dispose();o.value=t.filter((t,n)=>n!==e)}},move:function(e,t){let n=[...o.value];if(e<0||e>=n.length||t<0||t>=n.length||e===t)return;let[r]=n.splice(e,1);n.splice(t,0,r),o.value=n},replace:function(e,t){let n=[...o.value];if(!(e<0||e>=n.length)){for(let t in n[e])n[e][t]._dispose();n[e]=r(t),o.value=n}},length:l,reset:function(){for(let e of o.value)for(let t in e)e[t]._dispose();o.value=e.map(r)},_dispose:function(){for(let e of o.value)for(let t in e)e[t]._dispose();l.dispose()}}}function ft(e){return"object"==typeof e&&!!e&&!Array.isArray(e)}function pt(e,t="",n=[]){for(let[r,o]of Object.entries(e)){let e=t?`${t}.${r}`:r;ft(o)&&Object.keys(o).length>0?pt(o,e,n):n.push([e,o])}return n}function mt(e,t,n){let r=t.split("."),o=e;for(let e=0;e<r.length-1;e++){let t=r[e];ft(o[t])||(o[t]={}),o=o[t]}o[r[r.length-1]]=n}function ht(e,t={}){let n=t.validateOn??"blur",r={},o=t.validators;function l(){let e={};for(let t in r)mt(e,t,r[t].value.value);return e}for(let[t,i]of pt(e))r[t]=ut(i,o?.[t]??[],n,l);let i=g(!1),u=g(0),a=v(()=>l()),s=v(()=>{let e={};for(let t in r){let n=r[t].error.value;n&&(e[t]=n)}return e}),c=v(()=>{for(let e in r)if(r[e].error.value)return!1;return!0}),f=v(()=>{for(let e in r)if(r[e].dirty.value)return!0;return!1}),d=v(()=>{for(let e in r)if(r[e].touched.value)return!0;return!1});function p(e){for(let t in e)r[t]?._setExternalError(e[t]??null)}return{fields:r,values:a,errors:s,valid:c,dirty:f,touched:d,isSubmitting:i,submitCount:u,handleSubmit:function(e){return n=>{n.preventDefault(),u.value++;for(let e in r)r[e]._forceVisible();let o=a.value;if(t.validate){let e=t.validate(o);if(e){let t={},n=!1;for(let r in e){let o=e[r],l=Array.isArray(o)?o[0]??null:o??null;l&&(t[r]=l,n=!0)}if(n)return void p(t)}}for(let e in r)if(r[e].error.value)return;let l=e(o);l instanceof Promise&&(i.value=!0,l.finally(()=>{i.value=!1}).catch(()=>{}))}},reset:function(){for(let e in r)r[e].reset();i.value=!1,u.value=0},setErrors:p,dispose:function(){a.dispose(),s.dispose(),c.dispose(),f.dispose(),d.dispose();for(let e in r)r[e]._dispose()}}}exports.Link=Re,exports.NixComponent=E,exports.RouterKey=U,exports.RouterView=Le,exports.Signal=h,exports.batch=y,exports.computed=v,exports.createErrorBoundary=Te,exports.createForm=ht,exports.createInjectionKey=O,exports.createPortalOutlet=ye,exports.createRouter=Ie,exports.createStore=Ve,exports.createValidator=st,exports.effect=_,exports.email=it,exports.extendValidators=lt,exports.html=H,exports.inject=F,exports.injectOutlet=we,exports.lazy=$e,exports.max=ot,exports.maxLength=nt,exports.min=at,exports.minLength=tt,exports.mount=Be,exports.nextTick=S,exports.pattern=rt,exports.portal=xe,exports.portalOutlet=be,exports.provide=P,exports.provideOutlet=Ce,exports.ref=C,exports.repeat=ne,exports.required=et,exports.showWhen=ae,exports.signal=g,exports.suspend=Qe,exports.transition=ve,exports.untrack=b,exports.useField=ut,exports.useFieldArray=dt,exports.useRouter=Z,exports.validators=ct,exports.watch=x;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./signals.cjs"),t=require("./template2.cjs"),n=require("./router.cjs"),r=require("./store.cjs"),i=require("./async.cjs"),a=require("./form.cjs");function o(e){let t="string"==typeof e?document.querySelector(e):e;if(!t)throw Error(`[Nix] mount: container not found: ${e}`);return t}function s(e,r,s){if(t.v(e)){let a,p,u=o(r);t.p();try{s?.router&&t.g(n.RouterKey,s.router);try{e.onInit?.()}catch(t){if(!e.onError)throw t;e.onError(t)}a=e.render()._render(u,null)}finally{t.f()}try{let t=e.onMount?.();"function"==typeof t&&(p=t)}catch(t){if(!e.onError)throw t;e.onError(t)}return{unmount(){try{e.onUnmount?.()}catch{}try{p?.()}catch{}a()}}}if(!s?.router)return e.mount(r);let a,p=o(r);t.p();try{t.g(n.RouterKey,s.router),a=e._render(p,null)}finally{t.f()}return{unmount(){a()}}}exports.Link=n.Link,exports.NixComponent=t._,exports.RouterKey=n.RouterKey,exports.RouterView=n.RouterView,exports.Signal=e.Signal,exports.batch=e.batch,exports.computed=e.computed,exports.createErrorBoundary=t.t,exports.createForm=a.createForm,exports.createInjectionKey=t.m,exports.createPortalOutlet=t.n,exports.createRouter=n.createRouter,exports.createStore=r.createStore,exports.createValidator=a.createValidator,exports.effect=e.effect,exports.email=a.email,exports.extendValidators=a.extendValidators,exports.html=t.l,exports.inject=t.h,exports.injectOutlet=t.r,exports.lazy=i.lazy,exports.max=a.max,exports.maxLength=a.maxLength,exports.min=a.min,exports.minLength=a.minLength,exports.mount=s,exports.nextTick=e.nextTick,exports.pattern=a.pattern,exports.portal=t.i,exports.portalOutlet=t.a,exports.provide=t.g,exports.provideOutlet=t.o,exports.ref=t.S,exports.repeat=t.d,exports.required=a.required,exports.showWhen=t.u,exports.signal=e.signal,exports.suspend=i.suspend,exports.transition=t.s,exports.untrack=e.untrack,exports.useField=a.useField,exports.useFieldArray=a.useFieldArray,exports.useRouter=n.useRouter,exports.validators=a.validators,exports.watch=e.watch;
@@ -1,21 +1 @@
1
- var e=[],t=[],n=null,r=null,i=null,a=[];function o(e){a.push(i),i=e}function s(){i=a.pop()??null}var c=0,l=new Set,u=[],d=100,f=0,p=[],m=0,h=class{_value;_subs=new Set;constructor(e){this._value=e}get value(){return n&&(this._subs.add(n),r?.add(this)),this._value}set value(e){Object.is(this._value,e)||(this._value=e,this._notify())}update(e){this.value=e(this._value)}peek(){return this._value}_removeSub(e){this._subs.delete(e)}_notify(){if(c>0){for(let e of this._subs)l.has(e)||(l.add(e),u.push(e));return}let e=m,t=0;for(let n of this._subs)p[e+t++]=n;m=e+t;try{for(let n=0;n<t;n++){let t=p[e+n];p[e+n]=null,t?.()}}finally{m=e}}dispose(){this._subs.clear()}};function g(e){return new h(e)}function _(l){let o,a=!1,u=new Set,s=new Set,c=i,p=()=>{if(a)return;"function"==typeof o&&o();let i=u;u=s,s=i,s.clear();let h=e.length>0?e.pop():{effect:null,deps:null};if(h.effect=n,h.deps=r,t.push(h),n=p,r=s,++f>d){f=0;let l=t.pop();throw n=l.effect,r=l.deps,l.effect=null,l.deps=null,e.push(l),Error("[Nix] Maximum effect re-execution depth exceeded (possible infinite loop).")}try{o=l()}catch(e){if(!c)throw e;c(e)}finally{f--;let l=t.pop();n=l.effect,r=l.deps,l.effect=null,l.deps=null,e.push(l);for(let e of u)s.has(e)||e._removeSub(p)}};return p(),()=>{a=!0,"function"==typeof o&&o();for(let e of s)e._removeSub(p);s.clear(),u.clear()}}function v(e){let t=new h(void 0),n=_(()=>{t.value=e()}),r=t.dispose;return t.dispose=()=>{n(),r.call(t)},t}function y(e){c++;try{e()}finally{if(0===--c&&u.length>0){let e=u.length;for(let t=0;t<e;t++)u[t]();u.length=0,l.clear()}}}function b(e){let t=n,l=r;n=null,r=null;try{return e()}finally{n=t,r=l}}function x(e,t,n={}){let r,{immediate:l=!1,once:o=!1}=n,i=e instanceof h?()=>e.value:e,a=!0,u=!1,s=_(()=>{let e=i();if(a){if(a=!1,l&&!u){let n=e;b(()=>t(n,void 0)),o&&(u=!0,Promise.resolve().then(s))}r=e}else if(!u){let n=e,l=r;r=e,b(()=>t(n,l)),o&&(u=!0,Promise.resolve().then(s))}});return()=>{u=!0,s()}}function S(e){return e?Promise.resolve().then(e):Promise.resolve()}function C(){return{el:null}}var w={SCOPE:"nix-scope",ERROR_BOUNDARY:"nix-eb",TRANSITION:"nix-t",KEYED_START:"nix-ks",KEYED_END:"nix-ke",KEYED_ZONE:"nix-kz"};function T(e){return"object"==typeof e&&!!e&&!0===e.__isNixTemplate}function ee(e){return"object"==typeof e&&!!e&&!0===e.__isKeyedList}var E=class{__isNixComponent=!0;children;_slots=new Map;setChildren(e){return this.children=e,this}setSlot(e,t){return this._slots.set(e,t),this}slot(e){return this._slots.get(e)}};function D(e){return"object"==typeof e&&!!e&&!0===e.__isNixComponent}function O(e){return Symbol(e)}var k=[];function A(){return[...k]}function j(){k.push(new Map)}function M(){k.pop()}function N(e,t){let n=k.splice(0);e.forEach(e=>k.push(e)),k.push(new Map);try{return t()}finally{k.splice(0),n.forEach(e=>k.push(e))}}function P(e,t){let n=k[k.length-1];if(!n)throw Error("[Nix] provide() must be called inside onInit() of a NixComponent.");n.set(e,t)}function F(e,t){for(let t=k.length-1;t>=0;t--)if(k[t].has(e))return k[t].get(e);return t}function I(e,t,n){let r,l;j();try{try{e.onInit?.()}catch(t){if(!e.onError)throw t;e.onError(t)}r=e.render()._render(t,n)}finally{M()}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{}r()}}function L(e,t,n){let r,l;j();try{try{e.onInit?.()}catch{}r=e.render()._render(t,n)}finally{M()}try{let t=e.onMount?.();"function"==typeof t&&(l=t)}catch{}return()=>{try{e.onUnmount?.()}catch{}try{l?.()}catch{}r()}}function R(e,t,n,r){let l,o;N(r,()=>{try{e.onInit?.()}catch(t){if(!e.onError)throw t;e.onError(t)}l=e.render()._render(t,n)});try{let t=e.onMount?.();"function"==typeof t&&(o=t)}catch(t){if(!e.onError)throw t;e.onError(t)}return()=>{try{e.onUnmount?.()}catch{}try{o?.()}catch{}l()}}function te(e,t,n,r,l){let o,i;j();try{try{e.onInit?.()}catch(t){if(!e.onError)throw t;e.onError(t)}o=e.render()._render(t,n)}finally{M()}r.push(()=>{try{let t=e.onMount?.();"function"==typeof t&&(i=t)}catch(t){if(!e.onError)throw t;e.onError(t)}}),l.push(()=>{try{e.onUnmount?.()}catch{}try{i?.()}catch{}o()})}function ne(e,t,n){return{__isKeyedList:!0,items:e,keyFn:t,renderFn:n}}function re(e){let t,n,r,l,o,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,l=a.length-1;r<l;)o=r+l>>1,e[a[o]]<u?r=o+1:l=o;u<e[a[r]]&&(r>0&&(i[t]=a[r-1]),a[r]=t)}}for(r=a.length,l=a[r-1];r-- >0;)a[r]=l,l=i[l];return a}var z=new Set,B=!1;function V(e){z.add(e),B||(B=!0,queueMicrotask(()=>{for(let e of z)try{e()}catch(e){console.error("[Nix.js] Error in DOM write task:",e)}z.clear(),B=!1}))}function ie(e,t,n,r){if("function"!=typeof t){if(D(t))te(t,e.parentNode,e,r,n);else if(T(t))n.push(t._render(e.parentNode,e));else if(Array.isArray(t))for(let l of t)D(l)?te(l,e.parentNode,e,r,n):T(l)?l._render(e.parentNode,e):null!=l&&!1!==l&&e.parentNode.insertBefore(document.createTextNode(String(l)),e);else null!=t&&!1!==t&&e.parentNode.insertBefore(document.createTextNode(String(t)),e);return}let l=null,o=null,i=null,a=[],u=null,s=A(),c=!1,f="",d=!0,p=_(()=>{let n=t();if("string"==typeof n||"number"==typeof n){f=String(n);let t=()=>{c=!1,o&&=(o(),null),l?l.nodeValue=f:(l=document.createTextNode(f),e.parentNode.insertBefore(l,e))};return void(d?(d=!1,t()):c||(c=!0,V(t)))}if(c=!1,d=!1,l&&=(l.parentNode?.removeChild(l),null),o&&=(o(),null),null!=n&&!1!==n)if(T(n))o=n._render(e.parentNode,e);else if(D(n))o=R(n,e.parentNode,e,s);else if(ee(n)){i||(i=new Map,u=document.createTextNode(""),e.parentNode.insertBefore(u,e));let t=e.parentNode,r=n.items.map((e,t)=>n.keyFn(e,t)),l=new Set(r),o=!1;if(i.size>0)for(let e of i.keys())if(l.has(e)){o=!0;break}if(!o){if(i.size>0){let t=document.createRange();t.setStartAfter(u),t.setEndBefore(e),t.deleteContents();for(let e of i.values())e.cleanup();i.clear()}if(r.length>0){let l=document.createDocumentFragment();y(()=>{for(let e=0;e<r.length;e++){let t=r[e],o=n.items[e],a=document.createTextNode(""),u=document.createTextNode("");l.appendChild(a),l.appendChild(u);let c=n.renderFn(o,e),f=D(c)?R(c,l,u,s):c._render(l,u);i?.set(t,{start:a,end:u,cleanup:f})}}),t.insertBefore(l,e)}return void(a=r)}let c=new Map;for(let e=0;e<r.length;e++)c.set(r[e],e);let f=new Int32Array(r.length),d=!1,p=0;for(let e=0;e<a.length;e++){let t=a[e],n=c.get(t);if(void 0===n){let e=i.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}i.delete(t)}else f[n]=e+1,n>=p?p=n:d=!0}let h=d?re(f):[],m=h.length-1,v=e;for(let e=r.length-1;e>=0;e--){let l=r[e];if(0===f[e]){let r=n.items[e],o=document.createTextNode(""),a=document.createTextNode(""),u=document.createDocumentFragment();u.appendChild(o),u.appendChild(a);let c=n.renderFn(r,e),f=D(c)?R(c,u,a,s):c._render(u,a);i.set(l,{start:o,end:a,cleanup:f}),t.insertBefore(u,v),v=o}else{let n=i.get(l);if(d)if(m<0||e!==h[m]){let e=n.start;for(;e;){let r=e===n.end?null:e.nextSibling;if(t.insertBefore(e,v),!r)break;e=r}}else m--;v=n.start}}a=r}else if(Array.isArray(n)){let t=[];for(let r of n)if(D(r))t.push(I(r,e.parentNode,e));else if(T(r))t.push(r._render(e.parentNode,e));else if(null!=r&&!1!==r){let n=document.createTextNode(String(r));e.parentNode.insertBefore(n,e),t.push(()=>n.parentNode?.removeChild(n))}o=()=>t.forEach(e=>e())}else l=document.createTextNode(String(n)),e.parentNode.insertBefore(l,e)});n.push(()=>{if(p(),o&&=(o(),null),l&&=(l.parentNode?.removeChild(l),null),i){for(let e of i.values())e.cleanup();i=null,u=null}})}function ae(e,t){t?"none"===e.style.display&&(e.style.display=""):"none"!==e.style.display&&(e.style.display="none")}function oe(e){let t=e.lastIndexOf(">"),n=e.lastIndexOf("<");if(n<=t)return{type:"node"};let r=e.slice(n+1),l=r.lastIndexOf("=");if(-1===l)return{type:"node"};let o=r.endsWith('"')||r.endsWith("'")||'"'===r[r.length-1]||"'"===r[r.length-1],i=l-1;for(;i>=0&&/\S/.test(r[i]);)i--;i++;let a=r.slice(i,l);if("@"===a[0]){let e=a.slice(1).split(".");return{type:"event",eventName:e[0],modifiers:e.slice(1),hadOpenQuote:o}}return{type:"attr",attrName:a,hadOpenQuote:o}}var se={enter:"Enter",escape:"Escape",space:" ",tab:"Tab",delete:"Delete",backspace:"Backspace",up:"ArrowUp",down:"ArrowDown",left:"ArrowLeft",right:"ArrowRight"},ce=new Set(["click","dblclick","mousedown","mouseup","keydown","keyup","input","change","submit"]),le=new Set;function ue(e,t,n){let r=e.target,l=e.stopPropagation,o=!1;for(e.stopPropagation=()=>{o=!0,l.call(e)};r&&r!==document;){let l=r[t];if(l){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,l=!0;for(let e of t){let t=se[e];if(void 0!==t&&n.key!==t){l=!1;break}if(!t&&1===e.length&&n.key.toLowerCase()!==e){l=!1;break}}if(!l){r=r.parentNode;continue}}}if(l(e),o)break}r=r.parentNode}e.stopPropagation=l}var de=new Map;function fe(e,t,n,r){let l=[],o=[],i=Array(t.length),a=-1;for(let e=0;e<t.length;e++)r[e]&&r[e].nodeIndex>a&&(a=r[e].nodeIndex);let u=Array(a+1);if(u[0]=e,a>0){let t,n=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT|NodeFilter.SHOW_COMMENT),r=1;for(;r<=a&&(t=n.nextNode());)u[r++]=t}for(let e=0;e<t.length;e++){let t=r[e];i[e]=t?u[t.nodeIndex]:null}for(let e=0;e<t.length;e++){let a=t[e],u=n[e],s=r[e];if(!s)continue;let c=i[e];if("event"===a.type){let e=s.name,t=u,n=a.modifiers;if(!ce.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)};c.addEventListener(e,o,r),l.push(()=>c.removeEventListener(e,o,r))}else{if(!le.has(e)){let t=`__nix_${e}`,n=`__nix_${e}_mods`,r=e=>ue(e,t,n);de.set(e,r),document.addEventListener(e,r),le.add(e)}let r=`__nix_${e}`,o=`__nix_${e}_mods`;c[r]=t,n.length>0&&(c[o]=n),l.push(()=>{c[r]=null,c[o]=null})}continue}if("attr"===a.type){let e=s.name,t=c;if("ref"===e){u.el=t,l.push(()=>{u.el=null});continue}if("show"===e||"hide"===e){let n=t,r=null;if("function"==typeof u){let t=!1,o=!1,i=!0,a=_(()=>{o=!!u();let l=()=>{t=!1;let l="show"===e?o:!o;null===r&&(r=n.style.display||""),n.style.display=l?r:"none"};i?(i=!1,l()):t||(t=!0,V(l))});l.push(a)}else("show"===e?u:!u)||(n.style.display="none");continue}let n=("value"===e||"checked"===e||"selected"===e)&&e in t;if("function"==typeof u){let r,o=!1,i=!0,a=_(()=>{r=u();let l=()=>{o=!1;let l=r;n?t[e]=l??"":null==l||!1===l?t.removeAttribute(e):t.setAttribute(e,String(l))};i?(i=!1,l()):o||(o=!0,V(l))});l.push(a)}else n?t[e]=u??"":null!=u&&!1!==u&&t.setAttribute(e,String(u));continue}let f=c;if(!f)continue;let d=document.createTextNode("");f.parentNode.replaceChild(d,f),ie(d,u,l,o)}return{disposes:l,postMountHooks:o}}function pe(e,t){let n=new Uint8Array(e.length),r="";for(let l=0;l<e.length;l++){let o=e[l];if(1===n[l]&&('"'===o[0]||"'"===o[0])&&(o=o.slice(1)),l<t.length){let e=t[l];if("node"===e.type)r+=o+`\x3c!--nix-${l}--\x3e`;else if("event"===e.type){let t=`@${e.modifiers.length?`${e.eventName}.${e.modifiers.join(".")}`:e.eventName}=`.length+ +!!e.hadOpenQuote;r+=o.slice(0,-t)+` data-nix-e-${l}="${e.eventName}"`,e.hadOpenQuote&&(n[l+1]=1)}else{let t=`${e.attrName}=`.length+ +!!e.hadOpenQuote;r+=o.slice(0,-t)+` data-nix-a-${l}="${e.attrName}"`,e.hadOpenQuote&&(n[l+1]=1)}}else r+=o}return r}var me=new WeakMap;function H(e,...t){let n=me.get(e);if(!n){let t=[],r="";for(let n=0;n<e.length-1;n++)r+=e[n],t.push(oe(r)),r+="__nix__";let l=document.createElement("template");l.innerHTML=pe(e,t);let o,i=Array(t.length).fill(null),a=l.content,u=document.createTreeWalker(a,NodeFilter.SHOW_ELEMENT|NodeFilter.SHOW_COMMENT),s=0;for(;o=u.nextNode();)if(s++,8===o.nodeType){let e=o.nodeValue;if(e&&e.startsWith("nix-")){let t=parseInt(e.slice(4),10);isNaN(t)||(i[t]={nodeIndex:s})}}else if(1===o.nodeType){let e=o,t=Array.from(e.attributes);for(let n=0;n<t.length;n++){let r=t[n],l=r.name;if(l.startsWith("data-nix-e-")){let t=parseInt(l.slice(11),10);isNaN(t)||(i[t]={nodeIndex:s,name:r.value},e.removeAttribute(l));continue}if(l.startsWith("data-nix-a-")){let t=parseInt(l.slice(11),10);isNaN(t)||(i[t]={nodeIndex:s,name:r.value},e.removeAttribute(l))}}}n={contexts:t,tpl:l,pathMap:i},me.set(e,n)}let{contexts:r,tpl:l,pathMap:o}=n;function i(e,n){let i=l.content.cloneNode(!0),{disposes:a,postMountHooks:u}=fe(i,r,t,o),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 he(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 ge(e){return Math.max(0,...e.split(",").map(e=>parseFloat(e.trim())||0))}function _e(e,t=0){return new Promise(n=>{let r=getComputedStyle(e),l=1e3*Math.max(ge(r.transitionDuration||"0"),ge(r.animationDuration||"0")),o=l>0?l+100:t;if(o<=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()},o)})}function ve(e,t={}){let n=he(t);return{__isNixTemplate:!0,mount(e){let t="string"==typeof e?document.querySelector(e)??document.body:e;return{unmount:this._render(t,null)}},_render(r,l){let o=document.createComment(w.TRANSITION);r.insertBefore(o,l);let i=null,a=null,u=0,s=!0,c=()=>{let e=o.nextSibling;for(;e&&e!==l;){if(e.nodeType===Node.ELEMENT_NODE)return e;e=e.nextSibling}return null};function f(e){return D(e)?L(e,r,l):e._render(r,l)}let d=(e,r=!1)=>{u++,a&&=(a(),null),i=f(e);let l=c();if(l&&(!s||t.appear)&&!r){let e=u;(async()=>{t.onBeforeEnter?.(l),l.classList.add(n.enterFrom,n.enterActive),l.getBoundingClientRect(),await new Promise(e=>requestAnimationFrame(()=>e())),u===e&&(l.classList.remove(n.enterFrom),l.classList.add(n.enterTo),await _e(l,t.duration),u===e&&(l.classList.remove(n.enterActive,n.enterTo),t.onAfterEnter?.(l)))})().catch(()=>{})}s=!1},p=()=>{let e=i;i=null;let r=c();if(!r)return void e?.();let l=++u;a=e??null,(async()=>{t.onBeforeLeave?.(r),r.classList.add(n.leaveFrom,n.leaveActive),r.getBoundingClientRect(),await new Promise(e=>requestAnimationFrame(()=>e())),u===l&&(r.classList.remove(n.leaveFrom),r.classList.add(n.leaveTo),await _e(r,t.duration),u===l&&(r.classList.remove(n.leaveActive,n.leaveTo),t.onAfterLeave?.(r),a?.(),a=null))})().catch(()=>{})},h=null;if("function"!=typeof e||D(e))d(e);else{let t=e,n=null;h=_(()=>{let e=t(),r=null===n,l=null===e;r&&!l?d(e):!r&&l?p():!r&&!l&&(u++,a?.(),a=null,i?.(),i=null,d(e,!0)),n=e}),s=!1}return()=>{u++,h?.(),i?.(),a?.(),i=null,a=null,o.remove()}}}}function ye(){return{__isPortalOutlet:!0,_container:null}}function be(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 xe(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 l;return l="string"==typeof t?document.querySelector(t)??document.body:t instanceof Element?t:"__isPortalOutlet"in t?t._container??document.body:t.el??document.body,D(e)?I(e,l,null):e._render(l,null)}}}var Se=O("nix:portal-outlet");function Ce(e){P(Se,e)}function we(){return F(Se)}function Te(e,t){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 l=document.createComment(w.ERROR_BOUNDARY);n.insertBefore(l,r);let i,a=null,u=!1,c=!1,f=!1,d=e=>{let n=l.parentNode,o="function"!=typeof t||D(t)?t:t(e);a=D(o)?L(o,n,r):o._render(n,r)};o(e=>{u||(u=!0,c?(a?.(),a=null,d(e)):(i=e,f=!0))});try{if(D(e)){j();try{try{e.onInit?.()}catch(t){if(!e.onError)throw t;e.onError(t)}a=e.render()._render(n,r)}finally{M()}if(!u)try{let t=e.onMount?.(),n=a;a=()=>{try{e.onUnmount?.()}catch{}if("function"==typeof t)try{t()}catch{}n?.()}}catch(t){if(!e.onError)throw t;e.onError(t)}}else a=e._render(n,r)}catch(e){u=!0,a?.(),a=null,i=e,f=!0}finally{s(),c=!0}return f&&(a?.(),a=null,d(i)),()=>{a?.(),l.remove()}}}}var U=O("nix:router"),W=null,G=null,Ee="__nix_scroll";function De(){if(!W)throw Error("[Nix] No active router. Call createRouter() first.");return W}function K(){return{left:window.scrollX??window.pageXOffset??0,top:window.scrollY??window.pageYOffset??0}}function Oe(e){if(!e||"object"!=typeof e)return null;let t=e[Ee];if(!t||"object"!=typeof t)return null;let n=t.left,r=t.top;return"number"!=typeof n||"number"!=typeof r?null:{left:n,top:r}}function q(e,t){let n=e&&"object"==typeof e?{...e}:{};return n[Ee]={left:t.left,top:t.top},n}function J(e){let t={};return new URLSearchParams(e).forEach((e,n)=>{t[n]=e}),t}function ke(e){let t=new URLSearchParams;for(let[n,r]of Object.entries(e))null!=r&&!1!==r&&t.set(n,String(r));let n=t.toString();return n?"?"+n:""}function Ae(e){return"*"===e?[{kind:"wildcard"}]:e.split("/").filter(Boolean).map(e=>"*"===e?{kind:"wildcard"}:e.startsWith(":")?{kind:"param",name:e.slice(1)}:{kind:"literal",value:e})}function je(e,t){return"*"===t?""===e?"*":e+"/*":(e+(t.startsWith("/")?t:"/"+t)).replace(/\/+/g,"/")||"/"}function Me(e,t="",n=[]){let r=[];for(let l of e){let e=je(t,l.path),o=[...n,l.component],i=Ae(e);r.push({fullPath:e,segments:i,chain:o,meta:l.meta,beforeEnter:l.beforeEnter,record:l}),l.children?.length&&r.push(...Me(l.children,e,o))}return r}function Ne(e,t){let n=e.split("/").filter(Boolean),r=t.segments;if(1===r.length&&"wildcard"===r[0].kind)return{};let l=r.length>0&&"wildcard"===r[r.length-1].kind,o=l?r.slice(0,-1):r;if(l){if(n.length<o.length)return null}else if(n.length!==o.length)return null;let i={};for(let e=0;e<o.length;e++){let t=o[e];if("literal"===t.kind){if(n[e]!==t.value)return null}else if("param"===t.kind)try{i[t.name]=decodeURIComponent(n[e]??"")}catch{i[t.name]=n[e]??""}}return i}function Pe(e){return e.segments.reduce((e,t)=>"literal"===t.kind?e+2:"param"===t.kind?e+1:e,0)}function Y(e,t){let n,r={},l=-1;for(let o of t){let t=Ne(e,o);if(null===t)continue;let i=Pe(o);i>l&&(n=o,r=t,l=i)}return n?{route:n,params:r}:void 0}function X(e){let t=e.trim();return t&&"/"!==t?(t.startsWith("/")||(t="/"+t),t.endsWith("/")&&(t=t.slice(0,-1)),t):""}function Fe(){if(typeof document>"u")return"";let e=document.querySelector("base");if(!e)return"";let t=e.getAttribute("href")||"";try{return X(new URL(t,window.location.origin).pathname)}catch{return X(t)}}function Ie(e,t){let n=null==t?.base?Fe():X(t.base),r=t?.mode??"history",l="hash"===r,o=t?.scrollBehavior,i=new Map,a=!1;function u(e){return e?e.startsWith("/")?e:"/"+e:"/"}function s(e){let t=u(e||"/");if(n&&t.startsWith(n)){let e=t.slice(n.length);return""===e?"/":u(e)}return t}function c(e){let t=u(e);return n?(n+t).replace(/\/+/g,"/")||"/":t}function f(){return l?function(){let e=window.location.hash||"";if(e.startsWith("#")&&(e=e.slice(1)),!e)return{pathname:"/",search:""};e.startsWith("/")||(e="/"+e);let t=e.indexOf("?"),n=-1===t?e:e.slice(0,t),r=-1===t?"":e.slice(t);return{pathname:s(n),search:r}}():{pathname:s(window.location.pathname||"/"),search:window.location.search||""}}function d(e,t){let n=c(e)+ke(t);return l?"#"+n:n}function p(e,t){return u(e)+ke(t)}let h=f(),m=h.pathname,v=J(h.search),y=Me(e),_=Y(m,y),b=g(m),x=g(_?.params??{}),w=g(v);function N(e){window.scrollTo(e.left,e.top)}function E(e,t,n){if(o){let r=o(e,t,n);if(!1===r||null==r)return;return void N(r)}N(n??{left:0,top:0})}l?i.set(p(m,v),K()):history.replaceState(q(history.state,K()),"");let k=[],S=[],O=0;function T(e,t,n,r,l){let o=[...k];n&&o.push(n);let i=++O;if(0===o.length)return void r();let a=0;!function n(u){if(i!==O)return;if(!1===u)return void l?.();if("string"==typeof u)return void(u===e?r():D(u));if(a>=o.length)return void r();let s=o[a++](e,t);s instanceof Promise?s.then(n):n(s)}(void 0)}let A=!1;function $(e,t){let n=e.indexOf("?"),r=u((-1===n?e:e.slice(0,n))||"/"),l=-1===n?{}:J(e.slice(n)),o=t?{...l,...t}:l,i={};for(let[e,t]of Object.entries(o))null!=t&&!1!==t&&(i[e]=String(t));return{pathname:r,stringQuery:i}}G&&=(G(),null);let M=(e,t,n,r)=>{let l=b.value,o={...w.value},i=Y(e,y);T(e,l,i?.route.beforeEnter,()=>{x.value=i?.params??{},w.value=t,b.value=e,E(e,l,n);for(let t of S)try{t(e,l)}catch{}},()=>r(l,o))};if(l){let e=()=>{if(a)return void(a=!1);let e=f(),t=J(e.search),n=i.get(p(e.pathname,t))??null;M(e.pathname,t,n,(e,t)=>{a=!0,window.location.hash=d(e,t).slice(1),queueMicrotask(()=>{a=!1})})};window.addEventListener("hashchange",e),G=()=>window.removeEventListener("hashchange",e)}else{let e=e=>{let t=f(),n=J(t.search),r=Oe(e.state??history.state);M(t.pathname,n,r,(e,t)=>{history.pushState(q({},K()),"",d(e,t))})};window.addEventListener("popstate",e),G=()=>window.removeEventListener("popstate",e)}function L(e,t,n,r,o,u){u||function(e,t){let n=K();l?i.set(p(e,t),n):history.replaceState(q(history.state,n),"")}(n,r),x.value=o?.params??{},w.value=t,b.value=e;let s=d(e,t);if(l)i.set(p(e,t),{left:0,top:0}),u?history.replaceState(history.state,"",s):(a=!0,window.location.hash=s.slice(1),queueMicrotask(()=>{a=!1}));else{let e=q({},{left:0,top:0});u?history.replaceState(e,"",s):history.pushState(e,"",s)}E(e,n,null);for(let t of S)try{t(e,n)}catch{}}function D(e,t){A=!0;let{pathname:n,stringQuery:r}=$(e,t),l=b.value,o={...w.value},i=Y(n,y);T(n,l,i?.route.beforeEnter,()=>L(n,r,l,o,i,!1))}let I={current:b,params:x,query:w,base:n||"/",navigate:D,replace:function(e,t){A=!0;let{pathname:n,stringQuery:r}=$(e,t),l=b.value,o={...w.value},i=Y(n,y);T(n,l,i?.route.beforeEnter,()=>L(n,r,l,o,i,!0))},back:function(){history.back()},forward:function(){history.forward()},go:function(e){history.go(e)},isActive:function(e,t=!0){let n=b.value;return t?n===e:n===e||n.startsWith(e.endsWith("/")?e:e+"/")},resolve:function(e){let t=Y(e,y);return t?{matched:!0,params:t.params,route:t.route.record}:{matched:!1,params:{},route:void 0}},beforeEach:function(e){return k.push(e),()=>{let t=k.indexOf(e);-1!==t&&k.splice(t,1)}},afterEach:function(e){return S.push(e),()=>{let t=S.indexOf(e);-1!==t&&S.splice(t,1)}},routes:e,_flat:y,_guards:k,_base:n,_mode:r};return W&&console.warn("[Nix] A router already exists. The previous router is being replaced. Only one router instance should be active at a time."),W=I,queueMicrotask(()=>{A||T(m,"",Y(m,y)?.route.beforeEnter,()=>{},()=>{let e=d("/",{});l?(i.set(p("/",{}),{left:0,top:0}),history.replaceState(history.state,"",e)):history.replaceState(q({},{left:0,top:0}),"",e);let t=Y("/",y);b.value="/",x.value=t?.params??{},w.value={},E("/",m,null)})}),I}function Z(){return F(U)||De()}var Le=class extends E{_depth;constructor(e=0){super(),this._depth=e}render(){let e=this._depth;return H`<div class="router-view">${()=>{let t=Z(),n=Y(t.current.value,t._flat);return n?e>=n.route.chain.length?H`<span></span>`:n.route.chain[e]():H`<div style="color:#f87171;padding:16px 0">
2
- 404 — Route not found: <strong>${t.current.value}</strong>
3
- </div>`}}</div>`}},Re=class extends E{_to;_label;constructor(e,t){super(),this._to=e,this._label=t}render(){let e=this._to,t=this._label,n=Z(),r=e.startsWith("/")?e:"/"+e,l=(n._base?n._base+r:r).replace(/\/+/g,"/");return H`<a
4
- href=${"hash"===n._mode?"#"+l:l}
5
- style=${()=>n.current.value===e?"color:#38bdf8;font-weight:700;text-decoration:none;cursor:pointer;padding:4px 10px;border-radius:4px;background:#0c2a3a":"color:#a3a3a3;text-decoration:none;cursor:pointer;padding:4px 10px;border-radius:4px"}
6
- @click=${t=>{t.preventDefault(),n.navigate(e)}}
7
- >${t}</a>`}};function ze(e){let t="string"==typeof e?document.querySelector(e):e;if(!t)throw Error(`[Nix] mount: container not found: ${e}`);return t}function Be(e,t,n){if(D(e)){let r,l,o=ze(t);j();try{n?.router&&P(U,n.router);try{e.onInit?.()}catch(t){if(!e.onError)throw t;e.onError(t)}r=e.render()._render(o,null)}finally{M()}try{let t=e.onMount?.();"function"==typeof t&&(l=t)}catch(t){if(!e.onError)throw t;e.onError(t)}return{unmount(){try{e.onUnmount?.()}catch{}try{l?.()}catch{}r()}}}if(!n?.router)return e.mount(t);let r,l=ze(t);j();try{P(U,n.router),r=e._render(l,null)}finally{M()}return{unmount(){r()}}}function Ve(e,t,n){let r={},l=new Set(["$reset","$patch","$state","$subscribe"]);for(let t of Object.keys(e)){if(l.has(t))throw Error(`[Nix] Store key "${t}" is reserved.`);r[t]=g(e[t])}let o=r;let i=Object.assign(Object.create(null),o,{$reset:function(){for(let t of Object.keys(e))r[t].value=e[t]},$patch:function(e){for(let t of Object.keys(e))t in r&&(r[t].value=e[t])},$subscribe:function(t){let n=[];for(let r of Object.keys(e)){let e=x(o[r],(e,n)=>{t(r,e,n)});n.push(e)}return()=>{for(let e of n)e()}}});if(Object.defineProperty(i,"$state",{get(){let e={};for(let t in r)e[t]=r[t].value;return e},enumerable:!0,configurable:!1}),t){let e=t(o);for(let t of Object.keys(e))l.has(t)?console.warn(`[Nix] Store action name "${t}" is reserved and will be ignored.`):i[t]=e[t]}if(n){let e=n(o);for(let t of Object.keys(e))l.has(t)?console.warn(`[Nix] Store getter name "${t}" is reserved and will be ignored.`):i[t]=e[t]}return i}function He(){return H`
8
- <span style="color:#52525b;font-size:13px;display:inline-flex;align-items:center;gap:6px">
9
- <span class="nix-spinner" style="
10
- display:inline-block;width:14px;height:14px;border-radius:50%;
11
- border:2px solid #38bdf840;border-top-color:#38bdf8;
12
- animation:nix-spin .7s linear infinite
13
- "></span>
14
- Loading…
15
- </span>
16
- <style>@keyframes nix-spin{to{transform:rotate(360deg)}}</style>
17
- `}function Ue(e){return H`
18
- <span style="color:#f87171;font-size:13px">
19
- ⚠ ${e instanceof Error?e.message:String(e)}
20
- </span>
21
- `}var Q=new Map,We=3e5,$=null,Ge=We;function Ke(){null===$&&($=setInterval(()=>{let e=Date.now();for(let[t,n]of Q)n.subscribers<=0&&e-n.fetchedAt>Ge&&Q.delete(t);0===Q.size&&null!==$&&(clearInterval($),$=null)},6e4))}function qe(e){let t=Q.get(e);if(t&&t.fetchedAt>0)return t}function Je(e,t){let n=Q.get(e);Q.set(e,{data:t,fetchedAt:Date.now(),subscribers:n?.subscribers??0}),Ke()}function Ye(e){let t=Q.get(e);t?t.subscribers++:Q.set(e,{fetchedAt:0,subscribers:1})}function Xe(e){let t=Q.get(e);t&&(t.subscribers=Math.max(0,t.subscribers-1))}function Ze(e,t){let n=Q.get(e);return!!n&&Date.now()-n.fetchedAt<t}function Qe(e,t,n={}){let{fallback:r,errorFallback:l,resetOnRefresh:o=!1,invalidate:i,cacheKey:a,staleTime:u=0}=n,s=r??He(),c=l??Ue;return new class extends E{_state;_disposeWatcher;constructor(){super();let e=a?qe(a):void 0;this._state=g(e&&void 0!==e.data?{status:"resolved",data:e.data}:{status:"pending"})}onMount(){a&&Ye(a);let e=a?qe(a):void 0;if(e&&Ze(a,u)||(e?this._fetch():this._run()),i){let e=!0;this._disposeWatcher=_(()=>{i.value,e?e=!1:(a&&Q.delete(a),this._run())})}return()=>{this._disposeWatcher?.(),a&&Xe(a)}}_run(){(o||"pending"===this._state.peek().status)&&(this._state.value={status:"pending"}),this._fetch()}_fetch(){e().then(e=>{a&&Je(a,e),this._state.value={status:"resolved",data:e}},e=>{this._state.value={status:"error",error:e}})}render(){return H`<div class="nix-suspense" style="display:contents">${()=>{let e=this._state.value;return"pending"===e.status?s:"error"===e.status?c(e.error):t(e.data)}}</div>`}}}function $e(e,t){let n=null;return()=>n?new n:Qe(async()=>(n=(await e()).default,n),e=>new e,{fallback:t})}function et(e="Required"){return t=>null==t||""===t||Array.isArray(t)&&0===t.length?e:null}function tt(e,t){return n=>"string"==typeof n&&n.length<e?t??`Minimum ${e} characters`:null}function nt(e,t){return n=>"string"==typeof n&&n.length>e?t??`Maximum ${e} characters`:null}function rt(e,t="Invalid format"){return n=>"string"!=typeof n||e.test(n)?null:t}function it(e="Invalid email"){return rt(/^[^\s@]+@[^\s@]+\.[^\s@]+$/,e)}function at(e,t){return n=>"number"==typeof n&&n<e?t??`Minimum value is ${e}`:null}function ot(e,t){return n=>"number"==typeof n&&n>e?t??`Maximum value is ${e}`:null}function st(e){return e}var ct={required:et,minLength:tt,maxLength:nt,email:it,pattern:rt,min:at,max:ot};function lt(e,t){return{...e,...t}}function ut(e,t=[],n="blur",r){let l=g(e),o=g(!1),i=g(!1),a=g(null),u=g(!1),s=v(()=>{if(a.value)return a.value;if(!("input"===n?i.value||o.value:"submit"===n?u.value:o.value))return null;let e=r?.();for(let n of t){let t=n(l.value,e);if(t)return t}return null});function c(t){if(!t||!("value"in t))return e;let n=t;return"boolean"==typeof e?n.checked:"number"==typeof e?Number(n.value):n.value}return{value:l,error:s,touched:o,dirty:i,onInput:e=>{l.value=c(e.target),i.value=!0,a.value=null},onBlur:()=>{o.value=!0},reset:function(){l.value=e,o.value=!1,i.value=!1,a.value=null,u.value=!1},_setExternalError:function(e){a.value=e,e&&(o.value=!0)},_forceVisible:function(){o.value=!0,u.value=!0},_dispose:function(){s.dispose()}}}function dt(e,t={},n="blur"){function r(e){let r={};for(let l in e){let o=t[l]??[];r[l]=ut(e[l],o,n)}return r}let l=g(e.map(r)),o=v(()=>l.value.length);return{fields:l,append:function(e){l.value=[...l.value,r(e)]},remove:function(e){let t=l.value;if(!(e<0||e>=t.length)){for(let n in t[e])t[e][n]._dispose();l.value=t.filter((t,n)=>n!==e)}},move:function(e,t){let n=[...l.value];if(e<0||e>=n.length||t<0||t>=n.length||e===t)return;let[r]=n.splice(e,1);n.splice(t,0,r),l.value=n},replace:function(e,t){let n=[...l.value];if(!(e<0||e>=n.length)){for(let t in n[e])n[e][t]._dispose();n[e]=r(t),l.value=n}},length:o,reset:function(){for(let e of l.value)for(let t in e)e[t]._dispose();l.value=e.map(r)},_dispose:function(){for(let e of l.value)for(let t in e)e[t]._dispose();o.dispose()}}}function ft(e){return"object"==typeof e&&!!e&&!Array.isArray(e)}function pt(e,t="",n=[]){for(let[r,l]of Object.entries(e)){let e=t?`${t}.${r}`:r;ft(l)&&Object.keys(l).length>0?pt(l,e,n):n.push([e,l])}return n}function mt(e,t,n){let r=t.split("."),l=e;for(let e=0;e<r.length-1;e++){let t=r[e];ft(l[t])||(l[t]={}),l=l[t]}l[r[r.length-1]]=n}function ht(e,t={}){let n=t.validateOn??"blur",r={},l=t.validators;function o(){let e={};for(let t in r)mt(e,t,r[t].value.value);return e}for(let[t,i]of pt(e))r[t]=ut(i,l?.[t]??[],n,o);let i=g(!1),a=g(0),u=v(()=>o()),s=v(()=>{let e={};for(let t in r){let n=r[t].error.value;n&&(e[t]=n)}return e}),c=v(()=>{for(let e in r)if(r[e].error.value)return!1;return!0}),f=v(()=>{for(let e in r)if(r[e].dirty.value)return!0;return!1}),d=v(()=>{for(let e in r)if(r[e].touched.value)return!0;return!1});function p(e){for(let t in e)r[t]?._setExternalError(e[t]??null)}return{fields:r,values:u,errors:s,valid:c,dirty:f,touched:d,isSubmitting:i,submitCount:a,handleSubmit:function(e){return n=>{n.preventDefault(),a.value++;for(let e in r)r[e]._forceVisible();let l=u.value;if(t.validate){let e=t.validate(l);if(e){let t={},n=!1;for(let r in e){let l=e[r],o=Array.isArray(l)?l[0]??null:l??null;o&&(t[r]=o,n=!0)}if(n)return void p(t)}}for(let e in r)if(r[e].error.value)return;let o=e(l);o instanceof Promise&&(i.value=!0,o.finally(()=>{i.value=!1}).catch(()=>{}))}},reset:function(){for(let e in r)r[e].reset();i.value=!1,a.value=0},setErrors:p,dispose:function(){u.dispose(),s.dispose(),c.dispose(),f.dispose(),d.dispose();for(let e in r)r[e]._dispose()}}}export{Re as Link,E as NixComponent,U as RouterKey,Le as RouterView,h as Signal,y as batch,v as computed,Te as createErrorBoundary,ht as createForm,O as createInjectionKey,ye as createPortalOutlet,Ie as createRouter,Ve as createStore,st as createValidator,_ as effect,it as email,lt as extendValidators,H as html,F as inject,we as injectOutlet,$e as lazy,ot as max,nt as maxLength,at as min,tt as minLength,Be as mount,S as nextTick,rt as pattern,xe as portal,be as portalOutlet,P as provide,Ce as provideOutlet,C as ref,ne as repeat,et as required,ae as showWhen,g as signal,Qe as suspend,ve as transition,b as untrack,ut as useField,dt as useFieldArray,Z as useRouter,ct as validators,x 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{S as c,_ as l,a as u,d,f,g as p,h as m,i as h,l as g,m as _,n as v,o as y,p as b,r as x,s as S,t as C,u as w,v as T}from"./template2.js";import{Link as E,RouterKey as D,RouterView as O,createRouter as k,useRouter as A}from"./router.js";import{createStore as j}from"./store.js";import{lazy as M,suspend as N}from"./async.js";import{createForm as P,createValidator as F,email as I,extendValidators as L,max as R,maxLength as z,min as B,minLength as V,pattern as H,required as U,useField as W,useFieldArray as G,validators as K}from"./form.js";function q(a){let t="string"==typeof a?document.querySelector(a):a;if(!t)throw Error(`[Nix] mount: container not found: ${a}`);return t}function J(a,t,r){if(T(a)){let s,e,o=q(t);b();try{r?.router&&p(D,r.router);try{a.onInit?.()}catch(t){if(!a.onError)throw t;a.onError(t)}s=a.render()._render(o,null)}finally{f()}try{let t=a.onMount?.();"function"==typeof t&&(e=t)}catch(t){if(!a.onError)throw t;a.onError(t)}return{unmount(){try{a.onUnmount?.()}catch{}try{e?.()}catch{}s()}}}if(!r?.router)return a.mount(t);let s,e=q(t);b();try{p(D,r.router),s=a._render(e,null)}finally{f()}return{unmount(){s()}}}export{E as Link,l as NixComponent,D as RouterKey,O as RouterView,e as Signal,t as batch,n as computed,C as createErrorBoundary,P as createForm,_ as createInjectionKey,v as createPortalOutlet,k as createRouter,j as createStore,F as createValidator,r as effect,I as email,L as extendValidators,g as html,m as inject,x as injectOutlet,M as lazy,R as max,z as maxLength,B as min,V as minLength,J as mount,i as nextTick,H as pattern,h as portal,u as portalOutlet,p as provide,y as provideOutlet,c as ref,d as repeat,U as required,w as showWhen,a as signal,N as suspend,S as transition,o as untrack,W as useField,G as useFieldArray,A as useRouter,K as validators,s as watch};
@@ -0,0 +1,7 @@
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./signals.cjs"),t=require("./template2.cjs");var n=t.m("nix:router"),r=null,i=null,a="__nix_scroll";function o(){if(!r)throw Error("[Nix] No active router. Call createRouter() first.");return r}function s(){return{left:window.scrollX??window.pageXOffset??0,top:window.scrollY??window.pageYOffset??0}}function c(e){if(!e||"object"!=typeof e)return null;let t=e[a];if(!t||"object"!=typeof t)return null;let r=t.left,n=t.top;return"number"!=typeof r||"number"!=typeof n?null:{left:r,top:n}}function l(e,t){let r=e&&"object"==typeof e?{...e}:{};return r[a]={left:t.left,top:t.top},r}function u(e){let t={};return new URLSearchParams(e).forEach((e,r)=>{t[r]=e}),t}function d(e){let t=new URLSearchParams;for(let[r,n]of Object.entries(e))null!=n&&!1!==n&&t.set(r,String(n));let r=t.toString();return r?"?"+r:""}function f(e){return"*"===e?[{kind:"wildcard"}]:e.split("/").filter(Boolean).map(e=>"*"===e?{kind:"wildcard"}:e.startsWith(":")?{kind:"param",name:e.slice(1)}:{kind:"literal",value:e})}function p(e,t){return"*"===t?""===e?"*":e+"/*":(e+(t.startsWith("/")?t:"/"+t)).replace(/\/+/g,"/")||"/"}function m(e,t="",r=[]){let n=[];for(let o of e){let e=p(t,o.path),i=[...r,o.component],l=f(e);n.push({fullPath:e,segments:l,chain:i,name:o.name,meta:o.meta,beforeEnter:o.beforeEnter,record:o}),o.children?.length&&n.push(...m(o.children,e,i))}return n}function h(e,t){let r=e.split("/").filter(Boolean),n=t.segments;if(1===n.length&&"wildcard"===n[0].kind)return{};let o=n.length>0&&"wildcard"===n[n.length-1].kind,i=o?n.slice(0,-1):n;if(o){if(r.length<i.length)return null}else if(r.length!==i.length)return null;let l={};for(let e=0;e<i.length;e++){let t=i[e];if("literal"===t.kind){if(r[e]!==t.value)return null}else if("param"===t.kind)try{l[t.name]=decodeURIComponent(r[e]??"")}catch{l[t.name]=r[e]??""}}return l}function g(e){return e.segments.reduce((e,t)=>"literal"===t.kind?e+2:"param"===t.kind?e+1:e,0)}function _(e,t){let r,n={},o=-1;for(let i of t){let t=h(e,i);if(null===t)continue;let l=g(i);l>o&&(r=i,n=t,o=l)}return r?{route:r,params:n}:void 0}function v(e){let t=e.trim();return t&&"/"!==t?(t.startsWith("/")||(t="/"+t),t.endsWith("/")&&(t=t.slice(0,-1)),t):""}function y(){if(typeof document>"u")return"";let e=document.querySelector("base");if(!e)return"";let t=e.getAttribute("href")||"";try{return v(new URL(t,window.location.origin).pathname)}catch{return v(t)}}function b(t,n){let o=null==n?.base?y():v(n.base),a=n?.mode??"history",f="hash"===a,h=n?.scrollBehavior,p=new Map,g=!1;function w(e){return e?e.startsWith("/")?e:"/"+e:"/"}function b(e){let t=w(e||"/");if(o&&t.startsWith(o)){let e=t.slice(o.length);return""===e?"/":w(e)}return t}function x(){return f?function(){let e=window.location.hash||"";if(e.startsWith("#")&&(e=e.slice(1)),!e)return{pathname:"/",search:""};e.startsWith("/")||(e="/"+e);let t=e.indexOf("?"),r=-1===t?e:e.slice(0,t),n=-1===t?"":e.slice(t);return{pathname:b(r),search:n}}():{pathname:b(window.location.pathname||"/"),search:window.location.search||""}}function k(e,t){let r=function(e){let t=w(e);return o?(o+t).replace(/\/+/g,"/")||"/":t}(e)+d(t);return f?"#"+r:r}function S(e,t){return w(e)+d(t)}let E=x(),R=E.pathname,W=u(E.search),O=m(t),$=new Map;for(let e of O)e.name&&($.has(e.name)&&console.warn(`[Nix Router] Duplicate route name: "${e.name}"`),$.set(e.name,e));let j=_(R,O),q=e.signal(R),L=e.signal(j?.params??{}),M=e.signal(W);function N(e){window.scrollTo(e.left,e.top)}function C(e,t,r){if(h){let n=h(e,t,r);if(!1===n||null==n)return;return void N(n)}N(r??{left:0,top:0})}f?p.set(S(R,W),s()):history.replaceState(l(history.state,s()),"");let P=[],U=[],B=0;function A(e,t,r,n,o){let i=[...P];r&&i.push(r);let l=++B;if(0===i.length)return void n();let a=0;!function r(u){if(l!==B)return;if(!1===u)return void o?.();if("string"==typeof u)return void(u===e?n():Y(u));if(a>=i.length)return void n();let s=i[a++](e,t);s instanceof Promise?s.then(r):r(s)}(void 0)}let Q=!1;function T(e,t){let r=e.indexOf("?"),n=w((-1===r?e:e.slice(0,r))||"/"),o=-1===r?{}:u(e.slice(r)),i=t?{...o,...t}:o,l={};for(let[e,t]of Object.entries(i))null!=t&&!1!==t&&(l[e]=String(t));return{pathname:n,stringQuery:l}}function D(e,t){return"string"==typeof e?T(e,t):T(function(e){let t=$.get(e.name);if(!t)throw Error(`[Nix Router] No route with name "${e.name}"`);return"/"+t.segments.map(t=>{if("literal"===t.kind)return t.value;if("wildcard"===t.kind)return"";let r=e.params?.[t.name];if(null==r)throw Error(`[Nix Router] Missing param "${t.name}" for route "${e.name}"`);return encodeURIComponent(String(r))}).filter(Boolean).join("/")}(e),{...e.query??{},...t??{}})}i&&=(i(),null);let I=(e,t,r,n)=>{let o=q.value,i={...M.value},l=_(e,O);A(e,o,l?.route.beforeEnter,()=>{L.value=l?.params??{},M.value=t,q.value=e,C(e,o,r);for(let t of U)try{t(e,o)}catch{}},()=>n(o,i))};if(f){let e=()=>{if(g)return void(g=!1);let e=x(),t=u(e.search),r=p.get(S(e.pathname,t))??null;I(e.pathname,t,r,(e,t)=>{g=!0,window.location.hash=k(e,t).slice(1),queueMicrotask(()=>{g=!1})})};window.addEventListener("hashchange",e),i=()=>window.removeEventListener("hashchange",e)}else{let e=e=>{let t=x(),r=u(t.search),n=c(e.state??history.state);I(t.pathname,r,n,(e,t)=>{history.pushState(l({},s()),"",k(e,t))})};window.addEventListener("popstate",e),i=()=>window.removeEventListener("popstate",e)}function X(e,t,r,n,o,i){i||function(e,t){let r=s();f?p.set(S(e,t),r):history.replaceState(l(history.state,r),"")}(r,n),L.value=o?.params??{},M.value=t,q.value=e;let a=k(e,t);if(f)p.set(S(e,t),{left:0,top:0}),i?history.replaceState(history.state,"",a):(g=!0,window.location.hash=a.slice(1),queueMicrotask(()=>{g=!1}));else{let e=l({},{left:0,top:0});i?history.replaceState(e,"",a):history.pushState(e,"",a)}C(e,r,null);for(let t of U)try{t(e,r)}catch{}}function Y(e,t){Q=!0;let{pathname:r,stringQuery:n}=D(e,t),o=q.value,i={...M.value},l=_(r,O);A(r,o,l?.route.beforeEnter,()=>X(r,n,o,i,l,!1))}let K={current:q,params:L,query:M,base:o||"/",navigate:Y,replace:function(e,t){Q=!0;let{pathname:r,stringQuery:n}=D(e,t),o=q.value,i={...M.value},l=_(r,O);A(r,o,l?.route.beforeEnter,()=>X(r,n,o,i,l,!0))},back:function(){history.back()},forward:function(){history.forward()},go:function(e){history.go(e)},isActive:function(e,t=!0){let r=q.value;return t?r===e:r===e||r.startsWith(e.endsWith("/")?e:e+"/")},resolve:function(e){let t=_(e,O);return t?{matched:!0,params:t.params,route:t.route.record}:{matched:!1,params:{},route:void 0}},beforeEach:function(e){return P.push(e),()=>{let t=P.indexOf(e);-1!==t&&P.splice(t,1)}},afterEach:function(e){return U.push(e),()=>{let t=U.indexOf(e);-1!==t&&U.splice(t,1)}},routes:t,_flat:O,_guards:P,_base:o,_mode:a};return r&&console.warn("[Nix] A router already exists. The previous router is being replaced. Only one router instance should be active at a time."),r=K,queueMicrotask(()=>{Q||A(R,"",_(R,O)?.route.beforeEnter,()=>{},()=>{let e=k("/",{});f?(p.set(S("/",{}),{left:0,top:0}),history.replaceState(history.state,"",e)):history.replaceState(l({},{left:0,top:0}),"",e);let t=_("/",O);q.value="/",L.value=t?.params??{},M.value={},C("/",R,null)})}),K}function x(){return t.h(n)||o()}function S(){i&&=(i(),null),r=null}var C=class extends t._{_depth;constructor(e=0){super(),this._depth=e}render(){let e=this._depth;return t.l`<div class="router-view">${()=>{let r=x(),n=_(r.current.value,r._flat);return n?e>=n.route.chain.length?t.l`<span></span>`:n.route.chain[e]():t.l`<div style="color:#f87171;padding:16px 0">
2
+ 404 — Route not found: <strong>${r.current.value}</strong>
3
+ </div>`}}</div>`}},w=class extends t._{_to;_label;constructor(e,t){super(),this._to=e,this._label=t}render(){let e=this._to,r=this._label,n=x(),o=e.startsWith("/")?e:"/"+e,i=(n._base?n._base+o:o).replace(/\/+/g,"/");return t.l`<a
4
+ href=${"hash"===n._mode?"#"+i:i}
5
+ style=${()=>n.current.value===e?"color:#38bdf8;font-weight:700;text-decoration:none;cursor:pointer;padding:4px 10px;border-radius:4px;background:#0c2a3a":"color:#a3a3a3;text-decoration:none;cursor:pointer;padding:4px 10px;border-radius:4px"}
6
+ @click=${t=>{t.preventDefault(),n.navigate(e)}}
7
+ >${r}</a>`}};exports.Link=w,exports.RouterKey=n,exports.RouterView=C,exports._resetRouter=S,exports.createRouter=b,exports.useRouter=x;
@@ -0,0 +1,7 @@
1
+ import{signal as e}from"./signals.js";import{_ as t,h as n,l as r,m as i}from"./template2.js";var a=i("nix:router"),o=null,s=null,c="__nix_scroll";function l(){if(!o)throw Error("[Nix] No active router. Call createRouter() first.");return o}function u(){return{left:window.scrollX??window.pageXOffset??0,top:window.scrollY??window.pageYOffset??0}}function d(e){if(!e||"object"!=typeof e)return null;let t=e[c];if(!t||"object"!=typeof t)return null;let r=t.left,n=t.top;return"number"!=typeof r||"number"!=typeof n?null:{left:r,top:n}}function f(e,t){let r=e&&"object"==typeof e?{...e}:{};return r[c]={left:t.left,top:t.top},r}function p(e){let t={};return new URLSearchParams(e).forEach((e,r)=>{t[r]=e}),t}function m(e){let t=new URLSearchParams;for(let[r,n]of Object.entries(e))null!=n&&!1!==n&&t.set(r,String(n));let r=t.toString();return r?"?"+r:""}function h(e){return"*"===e?[{kind:"wildcard"}]:e.split("/").filter(Boolean).map(e=>"*"===e?{kind:"wildcard"}:e.startsWith(":")?{kind:"param",name:e.slice(1)}:{kind:"literal",value:e})}function g(e,t){return"*"===t?""===e?"*":e+"/*":(e+(t.startsWith("/")?t:"/"+t)).replace(/\/+/g,"/")||"/"}function _(e,t="",r=[]){let n=[];for(let o of e){let e=g(t,o.path),a=[...r,o.component],i=h(e);n.push({fullPath:e,segments:i,chain:a,name:o.name,meta:o.meta,beforeEnter:o.beforeEnter,record:o}),o.children?.length&&n.push(..._(o.children,e,a))}return n}function v(e,t){let r=e.split("/").filter(Boolean),n=t.segments;if(1===n.length&&"wildcard"===n[0].kind)return{};let o=n.length>0&&"wildcard"===n[n.length-1].kind,a=o?n.slice(0,-1):n;if(o){if(r.length<a.length)return null}else if(r.length!==a.length)return null;let i={};for(let e=0;e<a.length;e++){let t=a[e];if("literal"===t.kind){if(r[e]!==t.value)return null}else if("param"===t.kind)try{i[t.name]=decodeURIComponent(r[e]??"")}catch{i[t.name]=r[e]??""}}return i}function y(e){return e.segments.reduce((e,t)=>"literal"===t.kind?e+2:"param"===t.kind?e+1:e,0)}function b(e,t){let r,n={},o=-1;for(let a of t){let t=v(e,a);if(null===t)continue;let i=y(a);i>o&&(r=a,n=t,o=i)}return r?{route:r,params:n}:void 0}function x(e){let t=e.trim();return t&&"/"!==t?(t.startsWith("/")||(t="/"+t),t.endsWith("/")&&(t=t.slice(0,-1)),t):""}function S(){if(typeof document>"u")return"";let e=document.querySelector("base");if(!e)return"";let t=e.getAttribute("href")||"";try{return x(new URL(t,window.location.origin).pathname)}catch{return x(t)}}function C(t,r){let n=null==r?.base?S():x(r.base),a=r?.mode??"history",i="hash"===a,l=r?.scrollBehavior,c=new Map,h=!1;function g(e){return e?e.startsWith("/")?e:"/"+e:"/"}function v(e){let t=g(e||"/");if(n&&t.startsWith(n)){let e=t.slice(n.length);return""===e?"/":g(e)}return t}function w(){return i?function(){let e=window.location.hash||"";if(e.startsWith("#")&&(e=e.slice(1)),!e)return{pathname:"/",search:""};e.startsWith("/")||(e="/"+e);let t=e.indexOf("?"),r=-1===t?e:e.slice(0,t),n=-1===t?"":e.slice(t);return{pathname:v(r),search:n}}():{pathname:v(window.location.pathname||"/"),search:window.location.search||""}}function y(e,t){let r=function(e){let t=g(e);return n?(n+t).replace(/\/+/g,"/")||"/":t}(e)+m(t);return i?"#"+r:r}function k(e,t){return g(e)+m(t)}let E=w(),R=E.pathname,W=p(E.search),$=_(t),O=new Map;for(let e of $)e.name&&(O.has(e.name)&&console.warn(`[Nix Router] Duplicate route name: "${e.name}"`),O.set(e.name,e));let j=b(R,$),L=e(R),N=e(j?.params??{}),q=e(W);function M(e){window.scrollTo(e.left,e.top)}function C(e,t,r){if(l){let n=l(e,t,r);if(!1===n||null==n)return;return void M(n)}M(r??{left:0,top:0})}i?c.set(k(R,W),u()):history.replaceState(f(history.state,u()),"");let U=[],B=[],D=0;function P(e,t,r,n,o){let a=[...U];r&&a.push(r);let i=++D;if(0===a.length)return void n();let l=0;!function r(u){if(i!==D)return;if(!1===u)return void o?.();if("string"==typeof u)return void(u===e?n():Y(u));if(l>=a.length)return void n();let s=a[l++](e,t);s instanceof Promise?s.then(r):r(s)}(void 0)}let T=!1;function A(e,t){let r=e.indexOf("?"),n=g((-1===r?e:e.slice(0,r))||"/"),o=-1===r?{}:p(e.slice(r)),a=t?{...o,...t}:o,i={};for(let[e,t]of Object.entries(a))null!=t&&!1!==t&&(i[e]=String(t));return{pathname:n,stringQuery:i}}function Q(e,t){return"string"==typeof e?A(e,t):A(function(e){let t=O.get(e.name);if(!t)throw Error(`[Nix Router] No route with name "${e.name}"`);return"/"+t.segments.map(t=>{if("literal"===t.kind)return t.value;if("wildcard"===t.kind)return"";let r=e.params?.[t.name];if(null==r)throw Error(`[Nix Router] Missing param "${t.name}" for route "${e.name}"`);return encodeURIComponent(String(r))}).filter(Boolean).join("/")}(e),{...e.query??{},...t??{}})}s&&=(s(),null);let I=(e,t,r,n)=>{let o=L.value,a={...q.value},i=b(e,$);P(e,o,i?.route.beforeEnter,()=>{N.value=i?.params??{},q.value=t,L.value=e,C(e,o,r);for(let t of B)try{t(e,o)}catch{}},()=>n(o,a))};if(i){let e=()=>{if(h)return void(h=!1);let e=w(),t=p(e.search),r=c.get(k(e.pathname,t))??null;I(e.pathname,t,r,(e,t)=>{h=!0,window.location.hash=y(e,t).slice(1),queueMicrotask(()=>{h=!1})})};window.addEventListener("hashchange",e),s=()=>window.removeEventListener("hashchange",e)}else{let e=e=>{let t=w(),r=p(t.search),n=d(e.state??history.state);I(t.pathname,r,n,(e,t)=>{history.pushState(f({},u()),"",y(e,t))})};window.addEventListener("popstate",e),s=()=>window.removeEventListener("popstate",e)}function X(e,t,r,n,o,a){a||function(e,t){let r=u();i?c.set(k(e,t),r):history.replaceState(f(history.state,r),"")}(r,n),N.value=o?.params??{},q.value=t,L.value=e;let l=y(e,t);if(i)c.set(k(e,t),{left:0,top:0}),a?history.replaceState(history.state,"",l):(h=!0,window.location.hash=l.slice(1),queueMicrotask(()=>{h=!1}));else{let e=f({},{left:0,top:0});a?history.replaceState(e,"",l):history.pushState(e,"",l)}C(e,r,null);for(let t of B)try{t(e,r)}catch{}}function Y(e,t){T=!0;let{pathname:r,stringQuery:n}=Q(e,t),o=L.value,a={...q.value},i=b(r,$);P(r,o,i?.route.beforeEnter,()=>X(r,n,o,a,i,!1))}let K={current:L,params:N,query:q,base:n||"/",navigate:Y,replace:function(e,t){T=!0;let{pathname:r,stringQuery:n}=Q(e,t),o=L.value,a={...q.value},i=b(r,$);P(r,o,i?.route.beforeEnter,()=>X(r,n,o,a,i,!0))},back:function(){history.back()},forward:function(){history.forward()},go:function(e){history.go(e)},isActive:function(e,t=!0){let r=L.value;return t?r===e:r===e||r.startsWith(e.endsWith("/")?e:e+"/")},resolve:function(e){let t=b(e,$);return t?{matched:!0,params:t.params,route:t.route.record}:{matched:!1,params:{},route:void 0}},beforeEach:function(e){return U.push(e),()=>{let t=U.indexOf(e);-1!==t&&U.splice(t,1)}},afterEach:function(e){return B.push(e),()=>{let t=B.indexOf(e);-1!==t&&B.splice(t,1)}},routes:t,_flat:$,_guards:U,_base:n,_mode:a};return o&&console.warn("[Nix] A router already exists. The previous router is being replaced. Only one router instance should be active at a time."),o=K,queueMicrotask(()=>{T||P(R,"",b(R,$)?.route.beforeEnter,()=>{},()=>{let e=y("/",{});i?(c.set(k("/",{}),{left:0,top:0}),history.replaceState(history.state,"",e)):history.replaceState(f({},{left:0,top:0}),"",e);let t=b("/",$);L.value="/",N.value=t?.params??{},q.value={},C("/",R,null)})}),K}function w(){return n(a)||l()}function T(){s&&=(s(),null),o=null}var E=class extends t{_depth;constructor(e=0){super(),this._depth=e}render(){let e=this._depth;return r`<div class="router-view">${()=>{let t=w(),n=b(t.current.value,t._flat);return n?e>=n.route.chain.length?r`<span></span>`:n.route.chain[e]():r`<div style="color:#f87171;padding:16px 0">
2
+ 404 — Route not found: <strong>${t.current.value}</strong>
3
+ </div>`}}</div>`}},D=class extends t{_to;_label;constructor(e,t){super(),this._to=e,this._label=t}render(){let e=this._to,t=this._label,n=w(),o=e.startsWith("/")?e:"/"+e,a=(n._base?n._base+o:o).replace(/\/+/g,"/");return r`<a
4
+ href=${"hash"===n._mode?"#"+a:a}
5
+ style=${()=>n.current.value===e?"color:#38bdf8;font-weight:700;text-decoration:none;cursor:pointer;padding:4px 10px;border-radius:4px;background:#0c2a3a":"color:#a3a3a3;text-decoration:none;cursor:pointer;padding:4px 10px;border-radius:4px"}
6
+ @click=${t=>{t.preventDefault(),n.navigate(e)}}
7
+ >${t}</a>`}};export{D as Link,a as RouterKey,E as RouterView,T as _resetRouter,C as createRouter,w as useRouter};
@@ -0,0 +1 @@
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});var e=[],t=[],n=null,r=null,i=null,a=[];function o(e){a.push(i),i=e}function s(){i=a.pop()??null}var c=0,l=new Set,u=[],d=100,f=0,p=[],m=0,h=class{_value;_subs=new Set;constructor(e){this._value=e}get value(){return n&&(this._subs.add(n),r?.add(this)),this._value}set value(e){Object.is(this._value,e)||(this._value=e,this._notify())}update(e){this.value=e(this._value)}peek(){return this._value}_removeSub(e){this._subs.delete(e)}_notify(){if(c>0){for(let e of this._subs)l.has(e)||(l.add(e),u.push(e));return}let e=m,t=0;for(let l of this._subs)p[e+t++]=l;m=e+t;try{for(let l=0;l<t;l++){let t=p[e+l];p[e+l]=null,t?.()}}finally{m=e}}dispose(){this._subs.clear()}};function g(e){return new h(e)}function _(l){let o,s=!1,u=new Set,p=new Set,a=i,c=()=>{if(s)return;"function"==typeof o&&o();let i=u;u=p,p=i,p.clear();let h=e.length>0?e.pop():{effect:null,deps:null};if(h.effect=n,h.deps=r,t.push(h),n=c,r=p,++f>d){f=0;let l=t.pop();throw n=l.effect,r=l.deps,l.effect=null,l.deps=null,e.push(l),Error("[Nix] Maximum effect re-execution depth exceeded (possible infinite loop).")}try{o=l()}catch(e){if(!a)throw e;a(e)}finally{f--;let l=t.pop();n=l.effect,r=l.deps,l.effect=null,l.deps=null,e.push(l);for(let e of u)p.has(e)||e._removeSub(c)}};return c(),()=>{s=!0,"function"==typeof o&&o();for(let e of p)e._removeSub(c);p.clear(),u.clear()}}function v(e){let t=new h(void 0),l=_(()=>{t.value=e()}),n=t.dispose;return t.dispose=()=>{l(),n.call(t)},t}function y(e){c++;try{e()}finally{if(0===--c&&u.length>0){let e=u.length;for(let t=0;t<e;t++)u[t]();u.length=0,l.clear()}}}function b(e){let t=n,l=r;n=null,r=null;try{return e()}finally{n=t,r=l}}function x(e,t,l={}){let n,{immediate:r=!1,once:o=!1}=l,s=e instanceof h?()=>e.value:e,u=!0,i=!1,f=_(()=>{let e=s();if(u){if(u=!1,r&&!i){let l=e;b(()=>t(l,void 0)),o&&(i=!0,Promise.resolve().then(f))}n=e}else if(!i){let l=e,r=n;n=e,b(()=>t(l,r)),o&&(i=!0,Promise.resolve().then(f))}});return()=>{i=!0,f()}}function S(e){return e?Promise.resolve().then(e):Promise.resolve()}exports.Signal=h,exports._popErrorHandler=s,exports._pushErrorHandler=o,exports.batch=y,exports.computed=v,exports.effect=_,exports.nextTick=S,exports.signal=g,exports.untrack=b,exports.watch=x;
@@ -0,0 +1 @@
1
+ var e=[],t=[],n=null,r=null,i=null,a=[];function o(e){a.push(i),i=e}function s(){i=a.pop()??null}var c=0,l=new Set,u=[],d=100,f=0,p=[],m=0,h=class{_value;_subs=new Set;constructor(e){this._value=e}get value(){return n&&(this._subs.add(n),r?.add(this)),this._value}set value(e){Object.is(this._value,e)||(this._value=e,this._notify())}update(e){this.value=e(this._value)}peek(){return this._value}_removeSub(e){this._subs.delete(e)}_notify(){if(c>0){for(let e of this._subs)l.has(e)||(l.add(e),u.push(e));return}let e=m,t=0;for(let l of this._subs)p[e+t++]=l;m=e+t;try{for(let l=0;l<t;l++){let t=p[e+l];p[e+l]=null,t?.()}}finally{m=e}}dispose(){this._subs.clear()}};function g(e){return new h(e)}function _(l){let s,u=!1,o=new Set,a=new Set,c=i,h=()=>{if(u)return;"function"==typeof s&&s();let i=o;o=a,a=i,a.clear();let p=e.length>0?e.pop():{effect:null,deps:null};if(p.effect=n,p.deps=r,t.push(p),n=h,r=a,++f>d){f=0;let l=t.pop();throw n=l.effect,r=l.deps,l.effect=null,l.deps=null,e.push(l),Error("[Nix] Maximum effect re-execution depth exceeded (possible infinite loop).")}try{s=l()}catch(e){if(!c)throw e;c(e)}finally{f--;let l=t.pop();n=l.effect,r=l.deps,l.effect=null,l.deps=null,e.push(l);for(let e of o)a.has(e)||e._removeSub(h)}};return h(),()=>{u=!0,"function"==typeof s&&s();for(let e of a)e._removeSub(h);a.clear(),o.clear()}}function v(e){let t=new h(void 0),l=_(()=>{t.value=e()}),n=t.dispose;return t.dispose=()=>{l(),n.call(t)},t}function y(e){c++;try{e()}finally{if(0===--c&&u.length>0){let e=u.length;for(let t=0;t<e;t++)u[t]();u.length=0,l.clear()}}}function b(e){let t=n,l=r;n=null,r=null;try{return e()}finally{n=t,r=l}}function x(e,t,l={}){let n,{immediate:s=!1,once:r=!1}=l,u=e instanceof h?()=>e.value:e,i=!0,o=!1,f=_(()=>{let e=u();if(i){if(i=!1,s&&!o){let l=e;b(()=>t(l,void 0)),r&&(o=!0,Promise.resolve().then(f))}n=e}else if(!o){let l=e,s=n;n=e,b(()=>t(l,s)),r&&(o=!0,Promise.resolve().then(f))}});return()=>{o=!0,f()}}function S(e){return e?Promise.resolve().then(e):Promise.resolve()}export{h as Signal,s as _popErrorHandler,o as _pushErrorHandler,y as batch,v as computed,_ as effect,S as nextTick,g as signal,b as untrack,x as watch};
@@ -0,0 +1 @@
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./signals.cjs");function t(t,r,o){let n={},s=new Set(["$reset","$patch","$state","$subscribe"]);for(let r of Object.keys(t)){if(s.has(r))throw Error(`[Nix] Store key "${r}" is reserved.`);n[r]=e.signal(t[r])}let l=n;let i=Object.assign(Object.create(null),l,{$reset:function(){for(let e of Object.keys(t))n[e].value=t[e]},$patch:function(e){for(let t of Object.keys(e))t in n&&(n[t].value=e[t])},$subscribe:function(r){let o=[];for(let n of Object.keys(t)){let t=l[n],s=e.watch(t,(e,t)=>{r(n,e,t)});o.push(s)}return()=>{for(let e of o)e()}}});if(Object.defineProperty(i,"$state",{get(){let e={};for(let t in n)e[t]=n[t].value;return e},enumerable:!0,configurable:!1}),r){let e=r(l);for(let t of Object.keys(e))s.has(t)?console.warn(`[Nix] Store action name "${t}" is reserved and will be ignored.`):i[t]=e[t]}if(o){let e=o(l);for(let t of Object.keys(e))s.has(t)?console.warn(`[Nix] Store getter name "${t}" is reserved and will be ignored.`):i[t]=e[t]}return i}exports.createStore=t;
@@ -0,0 +1 @@
1
+ import{signal as e,watch as t}from"./signals.js";function n(r,o,s){let n={},l=new Set(["$reset","$patch","$state","$subscribe"]);for(let t of Object.keys(r)){if(l.has(t))throw Error(`[Nix] Store key "${t}" is reserved.`);n[t]=e(r[t])}let a=n;let i=Object.assign(Object.create(null),a,{$reset:function(){for(let e of Object.keys(r))n[e].value=r[e]},$patch:function(e){for(let t of Object.keys(e))t in n&&(n[t].value=e[t])},$subscribe:function(e){let o=[];for(let s of Object.keys(r)){let r=a[s],n=t(r,(t,r)=>{e(s,t,r)});o.push(n)}return()=>{for(let e of o)e()}}});if(Object.defineProperty(i,"$state",{get(){let e={};for(let t in n)e[t]=n[t].value;return e},enumerable:!0,configurable:!1}),o){let e=o(a);for(let t of Object.keys(e))l.has(t)?console.warn(`[Nix] Store action name "${t}" is reserved and will be ignored.`):i[t]=e[t]}if(s){let e=s(a);for(let t of Object.keys(e))l.has(t)?console.warn(`[Nix] Store getter name "${t}" is reserved and will be ignored.`):i[t]=e[t]}return i}export{n as createStore};
@@ -0,0 +1 @@
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./template2.cjs");exports.COMMENT=e.y,exports.buildHTML=e.c,exports.createErrorBoundary=e.t,exports.createPortalOutlet=e.n,exports.html=e.l,exports.injectOutlet=e.r,exports.isKeyedList=e.b,exports.isNixTemplate=e.x,exports.portal=e.i,exports.portalOutlet=e.a,exports.provideOutlet=e.o,exports.ref=e.S,exports.repeat=e.d,exports.showWhen=e.u,exports.transition=e.s;
@@ -0,0 +1 @@
1
+ import{S as e,a as t,b as n,c as r,d as i,i as a,l as o,n as s,o as c,r as l,s as u,t as d,u as f,x as p,y as m}from"./template2.js";export{m as COMMENT,r as buildHTML,d as createErrorBoundary,s as createPortalOutlet,o as html,l as injectOutlet,n as isKeyedList,p as isNixTemplate,a as portal,t as portalOutlet,c as provideOutlet,e as ref,i as repeat,f as showWhen,u as transition};
@@ -0,0 +1 @@
1
+ const e=require("./signals.cjs");function t(){return{el:null}}var n={SCOPE:"nix-scope",ERROR_BOUNDARY:"nix-eb",TRANSITION:"nix-t",KEYED_START:"nix-ks",KEYED_END:"nix-ke",KEYED_ZONE:"nix-kz"};function r(e){return"object"==typeof e&&!!e&&!0===e.__isNixTemplate}function i(e){return"object"==typeof e&&!!e&&!0===e.__isKeyedList}var a=class{__isNixComponent=!0;children;_slots=new Map;setChildren(e){return this.children=e,this}setSlot(e,t){return this._slots.set(e,t),this}slot(e){return this._slots.get(e)}};function o(e){return"object"==typeof e&&!!e&&!0===e.__isNixComponent}function s(e){return Symbol(e)}var c=[];function l(){return[...c]}function u(){c.push(new Map)}function d(){c.pop()}function f(e,t){let n=c.splice(0);e.forEach(e=>c.push(e)),c.push(new Map);try{return t()}finally{c.splice(0),n.forEach(e=>c.push(e))}}function p(e,t){let n=c[c.length-1];if(!n)throw Error("[Nix] provide() must be called inside onInit() of a NixComponent.");n.set(e,t)}function m(e,t){for(let t=c.length-1;t>=0;t--)if(c[t].has(e))return c[t].get(e);return t}function h(e,t,n){let r,o;u();try{try{e.onInit?.()}catch(t){if(!e.onError)throw t;e.onError(t)}r=e.render()._render(t,n)}finally{d()}try{let t=e.onMount?.();"function"==typeof t&&(o=t)}catch(t){if(!e.onError)throw t;e.onError(t)}return()=>{try{e.onUnmount?.()}catch{}try{o?.()}catch{}r()}}function g(e,t,n){let r,o;u();try{try{e.onInit?.()}catch{}r=e.render()._render(t,n)}finally{d()}try{let t=e.onMount?.();"function"==typeof t&&(o=t)}catch{}return()=>{try{e.onUnmount?.()}catch{}try{o?.()}catch{}r()}}function _(e,t,n,r){let o,l;f(r,()=>{try{e.onInit?.()}catch(t){if(!e.onError)throw t;e.onError(t)}o=e.render()._render(t,n)});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{}o()}}function v(e,t,n,r,o){let l,i;u();try{try{e.onInit?.()}catch(t){if(!e.onError)throw t;e.onError(t)}l=e.render()._render(t,n)}finally{d()}r.push(()=>{try{let t=e.onMount?.();"function"==typeof t&&(i=t)}catch(t){if(!e.onError)throw t;e.onError(t)}}),o.push(()=>{try{e.onUnmount?.()}catch{}try{i?.()}catch{}l()})}function y(e,t,n){return{__isKeyedList:!0,items:e,keyFn:t,renderFn:n}}function b(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 x=new Set,S=!1;function C(e){x.add(e),S||(S=!0,queueMicrotask(()=>{for(let e of x)try{e()}catch(e){console.error("[Nix.js] Error in DOM write task:",e)}x.clear(),S=!1}))}function w(t,n,u,a){if("function"!=typeof n){if(o(n))v(n,t.parentNode,t,a,u);else if(r(n))u.push(n._render(t.parentNode,t));else if(Array.isArray(n))for(let e of n)o(e)?v(e,t.parentNode,t,a,u):r(e)?e._render(t.parentNode,t):null!=e&&!1!==e&&t.parentNode.insertBefore(document.createTextNode(String(e)),t);else null!=n&&!1!==n&&t.parentNode.insertBefore(document.createTextNode(String(n)),t);return}let c=null,s=null,d=null,f=[],p=null,m=l(),y=!1,g="",x=!0,N=e.effect(()=>{let l=n();if("string"==typeof l||"number"==typeof l){g=String(l);let e=()=>{y=!1,s&&=(s(),null),c?c.nodeValue=g:(c=document.createTextNode(g),t.parentNode.insertBefore(c,t))};return void(x?(x=!1,e()):y||(y=!0,C(e)))}if(y=!1,x=!1,c&&=(c.parentNode?.removeChild(c),null),s&&=(s(),null),null!=l&&!1!==l)if(r(l))s=l._render(t.parentNode,t);else if(o(l))s=_(l,t.parentNode,t,m);else if(i(l)){d||(d=new Map,p=document.createTextNode(""),t.parentNode.insertBefore(p,t));let n=t.parentNode,r=l.items.map((e,t)=>l.keyFn(e,t)),i=new Set(r),u=!1;if(d.size>0)for(let e of d.keys())if(i.has(e)){u=!0;break}if(!u){if(d.size>0){let e=document.createRange();e.setStartAfter(p),e.setEndBefore(t),e.deleteContents();for(let e of d.values())e.cleanup();d.clear()}if(r.length>0){let i=document.createDocumentFragment();e.batch(()=>{for(let e=0;e<r.length;e++){let t=r[e],n=l.items[e],u=document.createTextNode(""),a=document.createTextNode("");i.appendChild(u),i.appendChild(a);let c=l.renderFn(n,e),s=o(c)?_(c,i,a,m):c._render(i,a);d?.set(t,{start:u,end:a,cleanup:s})}}),n.insertBefore(i,t)}return void(f=r)}let a=new Map;for(let e=0;e<r.length;e++)a.set(r[e],e);let c=new Int32Array(r.length),s=!1,h=0;for(let e=0;e<f.length;e++){let t=f[e],n=a.get(t);if(void 0===n){let e=d.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}d.delete(t)}else c[n]=e+1,n>=h?h=n:s=!0}let y=s?b(c):[],g=y.length-1,v=t;for(let e=r.length-1;e>=0;e--){let t=r[e];if(0===c[e]){let r=l.items[e],i=document.createTextNode(""),u=document.createTextNode(""),a=document.createDocumentFragment();a.appendChild(i),a.appendChild(u);let c=l.renderFn(r,e),s=o(c)?_(c,a,u,m):c._render(a,u);d.set(t,{start:i,end:u,cleanup:s}),n.insertBefore(a,v),v=i}else{let r=d.get(t);if(s)if(g<0||e!==y[g]){let e=r.start;for(;e;){let t=e===r.end?null:e.nextSibling;if(n.insertBefore(e,v),!t)break;e=t}}else g--;v=r.start}}f=r}else if(Array.isArray(l)){let e=[];for(let n of l)if(o(n))e.push(h(n,t.parentNode,t));else if(r(n))e.push(n._render(t.parentNode,t));else if(null!=n&&!1!==n){let r=document.createTextNode(String(n));t.parentNode.insertBefore(r,t),e.push(()=>r.parentNode?.removeChild(r))}s=()=>e.forEach(e=>e())}else c=document.createTextNode(String(l)),t.parentNode.insertBefore(c,t)});u.push(()=>{if(N(),s&&=(s(),null),c&&=(c.parentNode?.removeChild(c),null),d){for(let e of d.values())e.cleanup();d=null,p=null}})}function T(e,t){t?"none"===e.style.display&&(e.style.display=""):"none"!==e.style.display&&(e.style.display="none")}function E(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 D={enter:"Enter",escape:"Escape",space:" ",tab:"Tab",delete:"Delete",backspace:"Backspace",up:"ArrowUp",down:"ArrowDown",left:"ArrowLeft",right:"ArrowRight"},O=new Set(["click","dblclick","mousedown","mouseup","keydown","keyup","input","change","submit"]),k=new Set;function A(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=D[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 j=new Map;function M(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(!O.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(!k.has(e)){let t=`__nix_${e}`,n=`__nix_${e}_mods`,r=e=>A(e,t,n);j.set(e,r),document.addEventListener(e,r),k.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,C(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,C(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),w(p,c,l,i)}return{disposes:l,postMountHooks:i}}function N(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 P=new WeakMap;function F(e,...t){let n=P.get(e);if(!n){let t=[],r="";for(let n=0;n<e.length-1;n++)r+=e[n],t.push(E(r)),r+="__nix__";let o=document.createElement("template");o.innerHTML=N(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},P.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}=M(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 I(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 L(e){return Math.max(0,...e.split(",").map(e=>parseFloat(e.trim())||0))}function R(e,t=0){return new Promise(n=>{let r=getComputedStyle(e),o=1e3*Math.max(L(r.transitionDuration||"0"),L(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 z(t,r={}){let l=I(r);return{__isNixTemplate:!0,mount(e){let t="string"==typeof e?document.querySelector(e)??document.body:e;return{unmount:this._render(t,null)}},_render(i,u){let a=document.createComment(n.TRANSITION);i.insertBefore(a,u);let c=null,s=null,d=0,f=!0,p=()=>{let e=a.nextSibling;for(;e&&e!==u;){if(e.nodeType===Node.ELEMENT_NODE)return e;e=e.nextSibling}return null};let m=(e,t=!1)=>{d++,s&&=(s(),null),c=function(e){return o(e)?g(e,i,u):e._render(i,u)}(e);let n=p();if(n&&(!f||r.appear)&&!t){let e=d;(async()=>{r.onBeforeEnter?.(n),n.classList.add(l.enterFrom,l.enterActive),n.getBoundingClientRect(),await new Promise(e=>requestAnimationFrame(()=>e())),d===e&&(n.classList.remove(l.enterFrom),n.classList.add(l.enterTo),await R(n,r.duration),d===e&&(n.classList.remove(l.enterActive,l.enterTo),r.onAfterEnter?.(n)))})().catch(()=>{})}f=!1},h=()=>{let e=c;c=null;let t=p();if(!t)return void e?.();let n=++d;s=e??null,(async()=>{r.onBeforeLeave?.(t),t.classList.add(l.leaveFrom,l.leaveActive),t.getBoundingClientRect(),await new Promise(e=>requestAnimationFrame(()=>e())),d===n&&(t.classList.remove(l.leaveFrom),t.classList.add(l.leaveTo),await R(t,r.duration),d===n&&(t.classList.remove(l.leaveActive,l.leaveTo),r.onAfterLeave?.(t),s?.(),s=null))})().catch(()=>{})},y=null;if("function"!=typeof t||o(t))m(t);else{let n=t,r=null;y=e.effect(()=>{let e=n(),t=null===r,o=null===e;t&&!o?m(e):!t&&o?h():!t&&!o&&(d++,s?.(),s=null,c?.(),c=null,m(e,!0)),r=e}),f=!1}return()=>{d++,y?.(),c?.(),s?.(),c=null,s=null,a.remove()}}}}function B(){return{__isPortalOutlet:!0,_container:null}}function V(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 H(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 l;return l="string"==typeof t?document.querySelector(t)??document.body:t instanceof Element?t:"__isPortalOutlet"in t?t._container??document.body:t.el??document.body,o(e)?h(e,l,null):e._render(l,null)}}}var U=s("nix:portal-outlet");function W(e){p(U,e)}function G(){return m(U)}function K(t,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,i){let a=document.createComment(n.ERROR_BOUNDARY);l.insertBefore(a,i);let c,s=null,f=!1,p=!1,m=!1,h=e=>{let t=a.parentNode,n="function"!=typeof r||o(r)?r:r(e);s=o(n)?g(n,t,i):n._render(t,i)};e._pushErrorHandler(e=>{f||(f=!0,p?(s?.(),s=null,h(e)):(c=e,m=!0))});try{if(o(t)){u();try{try{t.onInit?.()}catch(e){if(!t.onError)throw e;t.onError(e)}s=t.render()._render(l,i)}finally{d()}if(!f)try{let e=t.onMount?.(),n=s;s=()=>{try{t.onUnmount?.()}catch{}if("function"==typeof e)try{e()}catch{}n?.()}}catch(e){if(!t.onError)throw e;t.onError(e)}}else s=t._render(l,i)}catch(e){f=!0,s?.(),s=null,c=e,m=!0}finally{e._popErrorHandler(),p=!0}return m&&(s?.(),s=null,h(c)),()=>{s?.(),a.remove()}}}}Object.defineProperty(exports,"S",{enumerable:!0,get:function(){return t}}),Object.defineProperty(exports,"_",{enumerable:!0,get:function(){return a}}),Object.defineProperty(exports,"a",{enumerable:!0,get:function(){return V}}),Object.defineProperty(exports,"b",{enumerable:!0,get:function(){return i}}),Object.defineProperty(exports,"c",{enumerable:!0,get:function(){return N}}),Object.defineProperty(exports,"d",{enumerable:!0,get:function(){return y}}),Object.defineProperty(exports,"f",{enumerable:!0,get:function(){return d}}),Object.defineProperty(exports,"g",{enumerable:!0,get:function(){return p}}),Object.defineProperty(exports,"h",{enumerable:!0,get:function(){return m}}),Object.defineProperty(exports,"i",{enumerable:!0,get:function(){return H}}),Object.defineProperty(exports,"l",{enumerable:!0,get:function(){return F}}),Object.defineProperty(exports,"m",{enumerable:!0,get:function(){return s}}),Object.defineProperty(exports,"n",{enumerable:!0,get:function(){return B}}),Object.defineProperty(exports,"o",{enumerable:!0,get:function(){return W}}),Object.defineProperty(exports,"p",{enumerable:!0,get:function(){return u}}),Object.defineProperty(exports,"r",{enumerable:!0,get:function(){return G}}),Object.defineProperty(exports,"s",{enumerable:!0,get:function(){return z}}),Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return K}}),Object.defineProperty(exports,"u",{enumerable:!0,get:function(){return T}}),Object.defineProperty(exports,"v",{enumerable:!0,get:function(){return o}}),Object.defineProperty(exports,"x",{enumerable:!0,get:function(){return r}}),Object.defineProperty(exports,"y",{enumerable:!0,get:function(){return n}});
@@ -0,0 +1 @@
1
+ import{_popErrorHandler as e,_pushErrorHandler as t,batch as n,effect as r}from"./signals.js";function i(){return{el:null}}var a={SCOPE:"nix-scope",ERROR_BOUNDARY:"nix-eb",TRANSITION:"nix-t",KEYED_START:"nix-ks",KEYED_END:"nix-ke",KEYED_ZONE:"nix-kz"};function o(e){return"object"==typeof e&&!!e&&!0===e.__isNixTemplate}function s(e){return"object"==typeof e&&!!e&&!0===e.__isKeyedList}var c=class{__isNixComponent=!0;children;_slots=new Map;setChildren(e){return this.children=e,this}setSlot(e,t){return this._slots.set(e,t),this}slot(e){return this._slots.get(e)}};function l(e){return"object"==typeof e&&!!e&&!0===e.__isNixComponent}function u(e){return Symbol(e)}var d=[];function f(){return[...d]}function p(){d.push(new Map)}function m(){d.pop()}function h(e,t){let n=d.splice(0);e.forEach(e=>d.push(e)),d.push(new Map);try{return t()}finally{d.splice(0),n.forEach(e=>d.push(e))}}function g(e,t){let n=d[d.length-1];if(!n)throw Error("[Nix] provide() must be called inside onInit() of a NixComponent.");n.set(e,t)}function _(e,t){for(let t=d.length-1;t>=0;t--)if(d[t].has(e))return d[t].get(e);return t}function v(e,t,n){let r,o;p();try{try{e.onInit?.()}catch(t){if(!e.onError)throw t;e.onError(t)}r=e.render()._render(t,n)}finally{m()}try{let t=e.onMount?.();"function"==typeof t&&(o=t)}catch(t){if(!e.onError)throw t;e.onError(t)}return()=>{try{e.onUnmount?.()}catch{}try{o?.()}catch{}r()}}function y(e,t,n){let r,o;p();try{try{e.onInit?.()}catch{}r=e.render()._render(t,n)}finally{m()}try{let t=e.onMount?.();"function"==typeof t&&(o=t)}catch{}return()=>{try{e.onUnmount?.()}catch{}try{o?.()}catch{}r()}}function b(e,t,n,r){let o,l;h(r,()=>{try{e.onInit?.()}catch(t){if(!e.onError)throw t;e.onError(t)}o=e.render()._render(t,n)});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{}o()}}function x(e,t,n,r,o){let l,i;p();try{try{e.onInit?.()}catch(t){if(!e.onError)throw t;e.onError(t)}l=e.render()._render(t,n)}finally{m()}r.push(()=>{try{let t=e.onMount?.();"function"==typeof t&&(i=t)}catch(t){if(!e.onError)throw t;e.onError(t)}}),o.push(()=>{try{e.onUnmount?.()}catch{}try{i?.()}catch{}l()})}function S(e,t,n){return{__isKeyedList:!0,items:e,keyFn:t,renderFn:n}}function C(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 w=new Set,T=!1;function E(e){w.add(e),T||(T=!0,queueMicrotask(()=>{for(let e of w)try{e()}catch(e){console.error("[Nix.js] Error in DOM write task:",e)}w.clear(),T=!1}))}function D(e,t,i,a){if("function"!=typeof t){if(l(t))x(t,e.parentNode,e,a,i);else if(o(t))i.push(t._render(e.parentNode,e));else if(Array.isArray(t))for(let n of t)l(n)?x(n,e.parentNode,e,a,i):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 u=null,d=null,c=null,p=[],m=null,h=f(),y=!1,N="",_=!0,g=r(()=>{let r=t();if("string"==typeof r||"number"==typeof r){N=String(r);let t=()=>{y=!1,d&&=(d(),null),u?u.nodeValue=N:(u=document.createTextNode(N),e.parentNode.insertBefore(u,e))};return void(_?(_=!1,t()):y||(y=!0,E(t)))}if(y=!1,_=!1,u&&=(u.parentNode?.removeChild(u),null),d&&=(d(),null),null!=r&&!1!==r)if(o(r))d=r._render(e.parentNode,e);else if(l(r))d=b(r,e.parentNode,e,h);else if(s(r)){c||(c=new Map,m=document.createTextNode(""),e.parentNode.insertBefore(m,e));let t=e.parentNode,o=r.items.map((e,t)=>r.keyFn(e,t)),i=new Set(o),a=!1;if(c.size>0)for(let e of c.keys())if(i.has(e)){a=!0;break}if(!a){if(c.size>0){let t=document.createRange();t.setStartAfter(m),t.setEndBefore(e),t.deleteContents();for(let e of c.values())e.cleanup();c.clear()}if(o.length>0){let i=document.createDocumentFragment();n(()=>{for(let e=0;e<o.length;e++){let t=o[e],n=r.items[e],a=document.createTextNode(""),u=document.createTextNode("");i.appendChild(a),i.appendChild(u);let s=r.renderFn(n,e),d=l(s)?b(s,i,u,h):s._render(i,u);c?.set(t,{start:a,end:u,cleanup:d})}}),t.insertBefore(i,e)}return void(p=o)}let u=new Map;for(let e=0;e<o.length;e++)u.set(o[e],e);let s=new Int32Array(o.length),d=!1,f=0;for(let e=0;e<p.length;e++){let t=p[e],n=u.get(t);if(void 0===n){let e=c.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}c.delete(t)}else s[n]=e+1,n>=f?f=n:d=!0}let y=d?C(s):[],v=y.length-1,N=e;for(let e=o.length-1;e>=0;e--){let n=o[e];if(0===s[e]){let o=r.items[e],i=document.createTextNode(""),a=document.createTextNode(""),u=document.createDocumentFragment();u.appendChild(i),u.appendChild(a);let s=r.renderFn(o,e),d=l(s)?b(s,u,a,h):s._render(u,a);c.set(n,{start:i,end:a,cleanup:d}),t.insertBefore(u,N),N=i}else{let r=c.get(n);if(d)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),!n)break;e=n}}else v--;N=r.start}}p=o}else if(Array.isArray(r)){let t=[];for(let n of r)if(l(n))t.push(v(n,e.parentNode,e));else if(o(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))}d=()=>t.forEach(e=>e())}else u=document.createTextNode(String(r)),e.parentNode.insertBefore(u,e)});i.push(()=>{if(g(),d&&=(d(),null),u&&=(u.parentNode?.removeChild(u),null),c){for(let e of c.values())e.cleanup();c=null,m=null}})}function O(e,t){t?"none"===e.style.display&&(e.style.display=""):"none"!==e.style.display&&(e.style.display="none")}function k(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 A={enter:"Enter",escape:"Escape",space:" ",tab:"Tab",delete:"Delete",backspace:"Backspace",up:"ArrowUp",down:"ArrowDown",left:"ArrowLeft",right:"ArrowRight"},j=new Set(["click","dblclick","mousedown","mouseup","keydown","keyup","input","change","submit"]),M=new Set;function N(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=A[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 P=new Map;function F(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],d=o[e];if(!d)continue;let c=a[e];if("event"===u.type){let e=d.name,t=s,n=u.modifiers;if(!j.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)};c.addEventListener(e,o,r),l.push(()=>c.removeEventListener(e,o,r))}else{if(!M.has(e)){let t=`__nix_${e}`,n=`__nix_${e}_mods`,r=e=>N(e,t,n);P.set(e,r),document.addEventListener(e,r),M.add(e)}let r=`__nix_${e}`,o=`__nix_${e}_mods`;c[r]=t,n.length>0&&(c[o]=n),l.push(()=>{c[r]=null,c[o]=null})}continue}if("attr"===u.type){let e=d.name,t=c;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,E(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,E(r))});l.push(u)}else n?t[e]=s??"":null!=s&&!1!==s&&t.setAttribute(e,String(s));continue}let f=c;if(!f)continue;let p=document.createTextNode("");f.parentNode.replaceChild(p,f),D(p,s,l,i)}return{disposes:l,postMountHooks:i}}function I(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 L=new WeakMap;function R(e,...t){let n=L.get(e);if(!n){let t=[],r="";for(let n=0;n<e.length-1;n++)r+=e[n],t.push(k(r)),r+="__nix__";let o=document.createElement("template");o.innerHTML=I(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},L.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}=F(i,r,t,l),s=document.createTextNode(""),d=document.createTextNode("");return e.insertBefore(s,n),e.insertBefore(i,n),e.insertBefore(d,n),u.forEach(e=>e()),()=>{for(let e=a.length-1;e>=0;e--)a[e]();let e=s.nextSibling;for(;e&&e!==d;){let t=e.nextSibling;e.parentNode?.removeChild(e),e=t}s.parentNode?.removeChild(s),d.parentNode?.removeChild(d)}}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 z(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 B(e){return Math.max(0,...e.split(",").map(e=>parseFloat(e.trim())||0))}function V(e,t=0){return new Promise(n=>{let r=getComputedStyle(e),o=1e3*Math.max(B(r.transitionDuration||"0"),B(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 H(e,t={}){let n=z(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,i){let u=document.createComment(a.TRANSITION);o.insertBefore(u,i);let s=null,d=null,c=0,f=!0,p=()=>{let e=u.nextSibling;for(;e&&e!==i;){if(e.nodeType===Node.ELEMENT_NODE)return e;e=e.nextSibling}return null};function m(e){return l(e)?y(e,o,i):e._render(o,i)}let h=(e,r=!1)=>{c++,d&&=(d(),null),s=m(e);let o=p();if(o&&(!f||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 V(o,t.duration),c===e&&(o.classList.remove(n.enterActive,n.enterTo),t.onAfterEnter?.(o)))})().catch(()=>{})}f=!1},v=()=>{let e=s;s=null;let r=p();if(!r)return void e?.();let o=++c;d=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 V(r,t.duration),c===o&&(r.classList.remove(n.leaveActive,n.leaveTo),t.onAfterLeave?.(r),d?.(),d=null))})().catch(()=>{})},N=null;if("function"!=typeof e||l(e))h(e);else{let t=e,n=null;N=r(()=>{let e=t(),r=null===n,o=null===e;r&&!o?h(e):!r&&o?v():!r&&!o&&(c++,d?.(),d=null,s?.(),s=null,h(e,!0)),n=e}),f=!1}return()=>{c++,N?.(),s?.(),d?.(),s=null,d=null,u.remove()}}}}function U(){return{__isPortalOutlet:!0,_container:null}}function W(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 G(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,l(e)?v(e,o,null):e._render(o,null)}}}var K=u("nix:portal-outlet");function q(e){g(K,e)}function J(){return _(K)}function Y(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 u=document.createComment(a.ERROR_BOUNDARY);o.insertBefore(u,i);let s,d=null,c=!1,f=!1,h=!1,v=e=>{let t=u.parentNode,n="function"!=typeof r||l(r)?r:r(e);d=l(n)?y(n,t,i):n._render(t,i)};t(e=>{c||(c=!0,f?(d?.(),d=null,v(e)):(s=e,h=!0))});try{if(l(n)){p();try{try{n.onInit?.()}catch(e){if(!n.onError)throw e;n.onError(e)}d=n.render()._render(o,i)}finally{m()}if(!c)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){c=!0,d?.(),d=null,s=e,h=!0}finally{e(),f=!0}return h&&(d?.(),d=null,v(s)),()=>{d?.(),u.remove()}}}}export{i as S,c as _,W as a,s as b,I as c,S as d,m as f,g,_ as h,G as i,R as l,u as m,U as n,q as o,p,J as r,H as s,Y as t,O as u,l as v,o as x,a as y};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@deijose/nix-js",
3
- "version": "1.9.2",
3
+ "version": "1.9.4",
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",
@@ -22,14 +22,39 @@
22
22
  ],
23
23
  "exports": {
24
24
  ".": {
25
- "import": {
26
- "types": "./dist/lib/index.d.ts",
27
- "default": "./dist/lib/nix-js.js"
28
- },
29
- "require": {
30
- "types": "./dist/lib/index.d.ts",
31
- "default": "./dist/lib/nix-js.cjs"
32
- }
25
+ "types": "./dist/lib/index.d.ts",
26
+ "import": "./dist/lib/nix-js.js",
27
+ "require": "./dist/lib/nix-js.cjs"
28
+ },
29
+ "./signals": {
30
+ "types": "./dist/lib/nix/reactivity.d.ts",
31
+ "import": "./dist/lib/signals.js",
32
+ "require": "./dist/lib/signals.cjs"
33
+ },
34
+ "./router": {
35
+ "types": "./dist/lib/nix/router.d.ts",
36
+ "import": "./dist/lib/router.js",
37
+ "require": "./dist/lib/router.cjs"
38
+ },
39
+ "./form": {
40
+ "types": "./dist/lib/nix/form.d.ts",
41
+ "import": "./dist/lib/form.js",
42
+ "require": "./dist/lib/form.cjs"
43
+ },
44
+ "./store": {
45
+ "types": "./dist/lib/nix/store.d.ts",
46
+ "import": "./dist/lib/store.js",
47
+ "require": "./dist/lib/store.cjs"
48
+ },
49
+ "./async": {
50
+ "types": "./dist/lib/nix/async.d.ts",
51
+ "import": "./dist/lib/async.js",
52
+ "require": "./dist/lib/async.cjs"
53
+ },
54
+ "./template": {
55
+ "types": "./dist/lib/nix/template/index.d.ts",
56
+ "import": "./dist/lib/template.js",
57
+ "require": "./dist/lib/template.cjs"
33
58
  }
34
59
  },
35
60
  "main": "./dist/lib/nix-js.cjs",
@@ -48,7 +73,7 @@
48
73
  "dev": "vite",
49
74
  "build": "tsc && vite build",
50
75
  "preview": "vite preview",
51
- "build:lib": "vite build --config vite.lib.config.ts && tsc --project tsconfig.lib.json && terser dist/lib/nix-js.js -c -m -o dist/lib/nix-js.js && terser dist/lib/nix-js.cjs -c -m -o dist/lib/nix-js.cjs",
76
+ "build:lib": "vite build --config vite.lib.config.ts && tsc --project tsconfig.lib.json && find dist/lib -type f \\( -name \"*.js\" -o -name \"*.cjs\" \\) -exec terser \"{}\" -c -m -o \"{}\" \\;",
52
77
  "typecheck": "tsc --noEmit",
53
78
  "test": "vitest run",
54
79
  "coverage": "vitest run --coverage",