@deijose/nix-js 1.7.7 → 1.7.8

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.
@@ -2,108 +2,96 @@ import { Signal } from "./reactivity";
2
2
  import { NixComponent } from "./lifecycle";
3
3
  import type { NixTemplate } from "./template";
4
4
  export interface SuspenseOptions {
5
- /** Template shown while the promise is pending. */
6
5
  fallback?: NixTemplate;
7
- /** Factory receiving the error, returns the error template. */
8
6
  errorFallback?: (err: unknown) => NixTemplate;
9
- /** If `true`, shows fallback during re-fetches instead of stale content. */
10
7
  resetOnRefresh?: boolean;
11
- /** Signal that triggers a re-fetch when its value changes. DOM is reused. */
12
8
  invalidate?: Signal<unknown>;
13
- /**
14
- * Optional cache key. When provided, resolved data is cached globally
15
- * so that subsequent mounts with the same key render cached data instantly,
16
- * similar to `createQuery` caching behaviour.
17
- */
18
9
  cacheKey?: string;
10
+ staleTime?: number;
11
+ }
12
+ export type QueryStatus = "pending" | "success" | "error";
13
+ export interface QueryResult<T> {
14
+ /** Reactive signal with the current fetch status. */
15
+ readonly status: Signal<QueryStatus>;
16
+ /** Reactive signal with the resolved data. `undefined` while pending. */
17
+ readonly data: Signal<T | undefined>;
18
+ /** Reactive signal with the captured error. `undefined` if no error. */
19
+ readonly error: Signal<unknown>;
20
+ /** Clears the cache for this key and re-fetches immediately. */
21
+ refetch(): void;
22
+ }
23
+ export interface QueryOptions {
19
24
  /**
20
- * Time in milliseconds that cached data is considered fresh.
21
- * While fresh, no background refetch happens on mount.
22
- * Only used when `cacheKey` is set.
23
- * @default 0 (always stale — refetch in background on every mount)
25
+ * Time in ms that cached data is considered fresh.
26
+ * While fresh, mounting will not trigger a background refetch.
27
+ * @default 0
24
28
  */
25
29
  staleTime?: number;
30
+ /**
31
+ * - `"always"` — background refetch on every mount (default).
32
+ * - `"stale"` — refetch only when data has exceeded `staleTime`.
33
+ * - `false` — never refetch on mount; only via `refetch()` or `invalidateQueries()`.
34
+ * @default "always"
35
+ */
36
+ refetchOnMount?: "always" | "stale" | false;
26
37
  }
27
38
  /**
28
- * Clear the query cache.
29
- * - Call with no arguments to clear **all** cached data.
30
- * - Pass a specific `key` to clear only that entry.
39
+ * Clears one or all entries from the global query cache.
40
+ * Passing no argument clears everything.
31
41
  */
32
42
  export declare function clearQueryCache(key?: string): void;
33
43
  /**
34
- * Set the global cache time (how long unused entries persist).
35
- * @param ms Time in milliseconds. Pass `Infinity` to keep entries forever.
44
+ * Sets how long cache entries with zero subscribers are kept alive.
45
+ * @param ms Milliseconds. Pass `Infinity` to keep entries forever.
36
46
  */
37
47
  export declare function setQueryCacheTime(ms: number): void;
38
48
  /**
39
49
  * Runs an async function and renders based on its state (pending/resolved/error).
40
- * Equivalent to the Suspense pattern in other frameworks.
41
50
  *
42
- * Pass `invalidate` to re-fetch without destroying the DOM:
43
51
  * ```ts
44
52
  * const refresh = signal(0);
45
53
  * suspend(() => fetchData(), render, { invalidate: refresh });
46
- * // later: refresh.update(n => n + 1);
47
- * ```
48
- *
49
- * Pass `cacheKey` to enable caching — subsequent mounts render cached data
50
- * instantly without a loading spinner:
51
- * ```ts
52
- * suspend(() => fetchProfile(), render, { cacheKey: "profile" });
54
+ * refresh.update(n => n + 1);
53
55
  * ```
54
56
  */
55
57
  export declare function suspend<T>(asyncFn: () => Promise<T>, renderFn: (data: T) => NixTemplate | NixComponent, options?: SuspenseOptions): NixComponent;
56
58
  /**
57
- * Force all active `createQuery()` instances with the given key to re-fetch.
58
- * Also clears the cached data for this key so subsequent mounts will refetch.
59
+ * Forces all active `createQuery()` instances with the given key to re-fetch.
60
+ * Clears the cached data so subsequent mounts also fetch fresh data.
61
+ * Instances that have been garbage-collected are pruned automatically.
59
62
  */
60
63
  export declare function invalidateQueries(key: string): void;
61
- export interface QueryOptions {
62
- /** Template shown while the promise is pending. */
63
- fallback?: NixTemplate;
64
- /** Factory receiving the error, returns the error template. */
65
- errorFallback?: (err: unknown) => NixTemplate;
66
- /** If `true`, shows fallback during re-fetches instead of stale content. */
67
- resetOnRefresh?: boolean;
68
- /**
69
- * Time in ms that cached data is considered fresh.
70
- * While fresh, mounting the query will **not** refetch — it renders cached
71
- * data instantly. Set to `Infinity` to never auto-refetch.
72
- * @default 0 (always stale — background refetch on every mount)
73
- */
74
- staleTime?: number;
75
- /**
76
- * Controls whether a background refetch happens when the component mounts.
77
- * - `"always"` — always refetch on mount (default; stale data shown instantly
78
- * while the refetch runs in the background).
79
- * - `"stale"` — refetch only if cached data has exceeded `staleTime`.
80
- * - `false` — never refetch on mount; only manual `invalidateQueries()` refetches.
81
- * @default "always"
82
- */
83
- refetchOnMount?: "always" | "stale" | false;
84
- }
85
64
  /**
86
- * Key-based async data fetching with **built-in caching** and global
87
- * cache invalidation, similar to React Query / TanStack Query.
65
+ * Key-based async data fetching with global cache and invalidation.
66
+ * Returns reactive signals render them directly in your component.
88
67
  *
89
- * Cached data is stored globally by `key`. When a component using
90
- * `createQuery` mounts:
91
- * 1. If cached data exists, it is rendered **immediately** (no loading spinner).
92
- * 2. A background refetch runs (unless the data is still "fresh" per `staleTime`).
93
- * 3. When the refetch resolves, the UI updates seamlessly.
68
+ * Cache persists across route changes. Navigating back renders cached
69
+ * data instantly, then background-refetches if stale.
94
70
  *
95
71
  * ```ts
96
- * createQuery("reservations", () => api.getAll(), (data) => html`...`);
72
+ * class PostsPage extends NixComponent {
73
+ * private q = createQuery("posts", () => api.getPosts());
74
+ *
75
+ * render() {
76
+ * return html`
77
+ * ${() => this.q.status.value === "pending" && html`<p>Loading…</p>`}
78
+ * ${() => this.q.status.value === "error" && html`<p>Error</p>`}
79
+ * ${() => this.q.status.value === "success" && html`
80
+ * <ul>${() => repeat(this.q.data.value!, r => r.id,
81
+ * r => html`<li>${() => r.name}</li>`)}</ul>
82
+ * `}
83
+ * `;
84
+ * }
85
+ * }
97
86
  *
98
- * // After a mutation — clears cache & all active instances re-fetch:
99
- * invalidateQueries("reservations");
87
+ * // After a mutation:
88
+ * invalidateQueries("posts");
100
89
  * ```
101
90
  */
102
- export declare function createQuery<T>(key: string, asyncFn: () => Promise<T>, renderFn: (data: T) => NixTemplate | NixComponent, options?: QueryOptions): NixComponent;
91
+ export declare function createQuery<T>(key: string, asyncFn: () => Promise<T>, options?: QueryOptions): QueryResult<T>;
103
92
  /**
104
93
  * Wraps a dynamic import for lazy-loading route components.
105
- * The module is loaded once (cached). Compatible with `RouteRecord.component`.
106
- * The imported module must use a default export.
94
+ * The module is loaded once and cached. The imported module must use a default export.
107
95
  */
108
96
  export declare function lazy(importFn: () => Promise<{
109
97
  default: new () => NixComponent;
@@ -1,4 +1,4 @@
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 _(l){let o,u=!1,a=new Set,s=new Set,c=i,p=()=>{if(u)return;"function"==typeof o&&o();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 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 a)s.has(e)||e._removeSub(p)}};return p(),()=>{u=!0,"function"==typeof o&&o();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,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,u=!0,a=!1,s=_(()=>{let e=i();if(u){if(u=!1,l&&!a){let n=e;b(()=>t(n,void 0)),o&&(a=!0,Promise.resolve().then(s))}r=e}else if(!a){let n=e,l=r;r=e,b(()=>t(n,l)),o&&(a=!0,Promise.resolve().then(s))}});return()=>{a=!0,s()}}function S(e){return e?Promise.resolve().then(e):Promise.resolve()}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 w(e){return"object"==typeof e&&!!e&&!0===e.__isNixComponent}function T(e){return Symbol(e)}var E=[];function ee(){return[...E]}function D(){E.push(new Map)}function O(){E.pop()}function te(e,t){let n=E.splice(0);e.forEach(e=>E.push(e)),E.push(new Map);try{return t()}finally{E.splice(0),n.forEach(e=>E.push(e))}}function k(e,t){let n=E[E.length-1];if(!n)throw Error("[Nix] provide() must be called inside onInit() of a NixComponent.");n.set(e,t)}function A(e){for(let t=E.length-1;t>=0;t--)if(E[t].has(e))return E[t].get(e)}var j={SCOPE:"nix-scope",ERROR_BOUNDARY:"nix-eb",TRANSITION:"nix-t",KEYED_START:"nix-ks",KEYED_END:"nix-ke",KEYED_ZONE:"nix-kz"};function ne(){return{el:null}}function re(e,t){t?"none"===e.style.display&&(e.style.display=""):"none"!==e.style.display&&(e.style.display="none")}function ie(e,t,n){return{__isKeyedList:!0,items:e,keyFn:t,renderFn:n}}function ae(e,t,n){let r,l;D();try{try{e.onInit?.()}catch(t){if(!e.onError)throw t;e.onError(t)}r=e.render()._render(t,n)}finally{O()}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 oe(e,t,n){let r,l;D();try{try{e.onInit?.()}catch{}r=e.render()._render(t,n)}finally{O()}try{let t=e.onMount?.();"function"==typeof t&&(l=t)}catch{}return()=>{try{e.onUnmount?.()}catch{}try{l?.()}catch{}r()}}function M(e,t,n,r){let l,o;te(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 se(e,t,n,r,l){let o,i;D();try{try{e.onInit?.()}catch(t){if(!e.onError)throw t;e.onError(t)}o=e.render()._render(t,n)}finally{O()}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 ce(){return{__isPortalOutlet:!0,_container:null}}function le(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 ue(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,w(e)?ae(e,l,null):e._render(l,null)}}}var de=T("nix:portal-outlet");function fe(e){k(de,e)}function pe(){return A(de)}function me(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(j.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||w(t)?t:t(e);u=w(o)?oe(o,n,r):o._render(n,r)};o(e=>{a||(a=!0,c?(u?.(),u=null,d(e)):(i=e,f=!0))});try{if(w(e)){D();try{try{e.onInit?.()}catch(t){if(!e.onError)throw t;e.onError(t)}u=e.render()._render(n,r)}finally{O()}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()}}}}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 N(e){return Math.max(0,...e.split(",").map(e=>parseFloat(e.trim())||0))}function P(e,t=0){return new Promise(n=>{let r=getComputedStyle(e),l=1e3*Math.max(N(r.transitionDuration||"0"),N(r.animationDuration||"0")),o=l>0?l+100:t;if(o<=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()},o)})}function ge(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(j.TRANSITION);r.insertBefore(o,l);let i=null,u=null,a=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 w(e)?oe(e,r,l):e._render(r,l)}let d=(e,r=!1)=>{a++,u&&=(u(),null),i=f(e);let l=c();if(l&&(!s||t.appear)&&!r){let e=a;(async()=>{t.onBeforeEnter?.(l),l.classList.add(n.enterFrom,n.enterActive),l.getBoundingClientRect(),await new Promise(e=>requestAnimationFrame(()=>e())),a===e&&(l.classList.remove(n.enterFrom),l.classList.add(n.enterTo),await P(l,t.duration),a===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=++a;u=e??null,(async()=>{t.onBeforeLeave?.(r),r.classList.add(n.leaveFrom,n.leaveActive),r.getBoundingClientRect(),await new Promise(e=>requestAnimationFrame(()=>e())),a===l&&(r.classList.remove(n.leaveFrom),r.classList.add(n.leaveTo),await P(r,t.duration),a===l&&(r.classList.remove(n.leaveActive,n.leaveTo),t.onAfterLeave?.(r),u?.(),u=null))})().catch(()=>{})},h=null;if("function"!=typeof e||w(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&&(a++,u?.(),u=null,i?.(),i=null,d(e,!0)),n=e}),s=!1}return()=>{a++,h?.(),i?.(),u?.(),i=null,u=null,o.remove()}}}}function _e(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 u=r.slice(i,l);if("@"===u[0]){let e=u.slice(1).split(".");return{type:"event",eventName:e[0],modifiers:e.slice(1),hadOpenQuote:o}}return{type:"attr",attrName:u,hadOpenQuote:o}}function ve(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?1:0);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?1:0);r+=o.slice(0,-t)+` data-nix-a-${l}="${e.attrName}"`,e.hadOpenQuote&&(n[l+1]=1)}}else r+=o}return r}function F(e){return"object"==typeof e&&!!e&&!0===e.__isNixTemplate}function ye(e){return"object"==typeof e&&!!e&&!0===e.__isKeyedList}var be={enter:"Enter",escape:"Escape",space:" ",tab:"Tab",delete:"Delete",backspace:"Backspace",up:"ArrowUp",down:"ArrowDown",left:"ArrowLeft",right:"ArrowRight"},xe=new Set(["click","dblclick","mousedown","mouseup","keydown","keyup","input","change","submit"]),I=new Set;function Se(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=be[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 Ce=new Map,L=new Set,R=!1;function z(e){L.add(e),R||(R=!0,queueMicrotask(()=>{for(let e of L)e();L.clear(),R=!1}))}function we(e,t,n,r){let l=[],o=[],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(!xe.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(!I.has(e)){let t=`__nix_${e}`,n=`__nix_${e}_mods`,r=e=>Se(e,t,n);Ce.set(e,r),document.addEventListener(e,r),I.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=s.name,t=c;if("ref"===e){a.el=t,l.push(()=>{a.el=null});continue}if("show"===e||"hide"===e){let n=t,r=null;if("function"==typeof a){let t=!1,o=!1,i=!0,u=_(()=>{o=!!a();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,z(l))});l.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,o=!1,i=!0,u=_(()=>{r=a();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,z(l))});l.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("");if(f.parentNode.replaceChild(d,f),"function"!=typeof a){if(w(a))se(a,d.parentNode,d,o,l);else if(F(a)){let e=a._render(d.parentNode,d);l.push(e)}else if(Array.isArray(a))for(let e of a)w(e)?se(e,d.parentNode,d,o,l):F(e)?e._render(d.parentNode,d):null!=e&&!1!==e&&d.parentNode.insertBefore(document.createTextNode(String(e)),d);else null!=a&&!1!==a&&d.parentNode.insertBefore(document.createTextNode(String(a)),d);continue}let p=null,h=null,v=null,m=[],g=null,x=ee(),b=!1,E="",N=!0,S=_(()=>{let e=a();if("string"==typeof e||"number"==typeof e){E=String(e);let t=()=>{b=!1,h&&=(h(),null),p?p.nodeValue=E:(p=document.createTextNode(E),d.parentNode.insertBefore(p,d))};return void(N?(N=!1,t()):b||(b=!0,z(t)))}if(b=!1,N=!1,p&&=(p.parentNode?.removeChild(p),null),h&&=(h(),null),null!=e&&!1!==e)if(F(e))h=e._render(d.parentNode,d);else if(w(e))h=M(e,d.parentNode,d,x);else if(ye(e)){v||(v=new Map,g=document.createTextNode(""),d.parentNode.insertBefore(g,d));let t=d.parentNode,n=e.items.map((t,n)=>e.keyFn(t,n)),r=new Set(n),l=!1;if(v.size>0)for(let e of v.keys())if(r.has(e)){l=!0;break}if(!l){if(v.size>0){let e=document.createRange();e.setStartAfter(g),e.setEndBefore(d),e.deleteContents();for(let e of v.values())e.cleanup();v.clear()}if(n.length>0){let r=document.createDocumentFragment();y(()=>{for(let t=0;t<n.length;t++){let l=n[t],o=e.items[t],i=document.createTextNode(""),u=document.createTextNode("");r.appendChild(i),r.appendChild(u);let a=e.renderFn(o,t),s=w(a)?M(a,r,u,x):a._render(r,u);v?.set(l,{start:i,end:u,cleanup:s})}}),t.insertBefore(r,d)}return void(m=n)}let o=new Map;for(let e=0;e<n.length;e++)o.set(n[e],e);let i=new Int32Array(n.length),u=!1,a=0;for(let e=0;e<m.length;e++){let t=m[e],n=o.get(t);if(void 0===n){let e=v.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}v.delete(t)}else i[n]=e+1,n>=a?a=n:u=!0}let s=u?Te(i):[],c=s.length-1,f=d;for(let r=n.length-1;r>=0;r--){let l=n[r];if(0===i[r]){let n=e.items[r],o=document.createTextNode(""),i=document.createTextNode(""),u=document.createDocumentFragment();u.appendChild(o),u.appendChild(i);let a=e.renderFn(n,r),s=w(a)?M(a,u,i,x):a._render(u,i);v.set(l,{start:o,end:i,cleanup:s}),t.insertBefore(u,f),f=o}else{let e=v.get(l);if(u)if(c<0||r!==s[c]){let n=e.start;for(;n;){let r=n===e.end?null:n.nextSibling;if(t.insertBefore(n,f),!r)break;n=r}}else c--;f=e.start}}m=n}else if(Array.isArray(e)){let t=[];for(let n of e)if(w(n))t.push(ae(n,d.parentNode,d));else if(F(n))t.push(n._render(d.parentNode,d));else if(null!=n&&!1!==n){let e=document.createTextNode(String(n));d.parentNode.insertBefore(e,d),t.push(()=>e.parentNode?.removeChild(e))}h=()=>t.forEach(e=>e())}else p=document.createTextNode(String(e)),d.parentNode.insertBefore(p,d)});l.push(()=>{if(S(),h&&=(h(),null),p&&=(p.parentNode?.removeChild(p),null),v){for(let e of v.values())e.cleanup();v=null,g=null}})}return{disposes:l,postMountHooks:o}}function Te(e){let t,n,r,l,o,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,l=u.length-1;r<l;)o=r+l>>1,e[u[o]]<a?r=o+1:l=o;a<e[u[r]]&&(r>0&&(i[t]=u[r-1]),u[r]=t)}}for(r=u.length,l=u[r-1];r-- >0;)u[r]=l,l=i[l];return u}var Ee=new WeakMap;function B(e,...t){let n=Ee.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 l=document.createElement("template");l.innerHTML=ve(e,t);let o,i=Array(t.length).fill(null),u=l.content,a=document.createTreeWalker(u,NodeFilter.SHOW_ELEMENT|NodeFilter.SHOW_COMMENT),s=0;for(;o=a.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},Ee.set(e,n)}let{contexts:r,tpl:l,pathMap:o}=n;function i(e,n){let i=l.content.cloneNode(!0),{disposes:u,postMountHooks:a}=we(i,r,t,o),s=document.createTextNode("");return e.insertBefore(s,n),e.insertBefore(i,n),a.forEach(e=>e()),()=>{for(let e=u.length-1;e>=0;e--)u[e]();let e=s.nextSibling;for(;e&&e!==n;){let t=e.nextSibling;e.parentNode?.removeChild(e),e=t}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 De(e,t){if(w(e)){let n,r,l="string"==typeof t?document.querySelector(t):t;if(!l)throw Error(`[Nix] mount: container not found: ${t}`);D();try{try{e.onInit?.()}catch(t){if(!e.onError)throw t;e.onError(t)}n=e.render()._render(l,null)}finally{O()}try{let t=e.onMount?.();"function"==typeof t&&(r=t)}catch(t){if(!e.onError)throw t;e.onError(t)}return{unmount(){try{e.onUnmount?.()}catch{}try{r?.()}catch{}n()}}}return e.mount(t)}function Oe(e,t){let n={},r=new Set(["$reset","$patch","$state"]);for(let t of Object.keys(e)){if(r.has(t))throw Error(`[Nix] Store key "${t}" is reserved.`);n[t]=g(e[t])}let l=n;let o=Object.assign(Object.create(null),l,{$reset:function(){for(let t of Object.keys(e))n[t].value=e[t]},$patch:function(e){for(let t of Object.keys(e))t in n&&(n[t].value=e[t])}});if(Object.defineProperty(o,"$state",{get(){let e={};for(let t in n)e[t]=n[t].value;return e},enumerable:!0,configurable:!1}),t){let e=t(l);for(let t of Object.keys(e))r.has(t)?console.warn(`[Nix] Store action name "${t}" is reserved and will be ignored.`):o[t]=e[t]}return o}var V=null,H=null;function U(){if(!V)throw Error("[Nix] No active router. Call createRouter() first.");return V}function W(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,beforeEnter:l.beforeEnter}),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 G(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 K(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 K(new URL(t,window.location.origin).pathname)}catch{return K(t)}}function Ie(e,t){let n=null==t?.base?Fe():K(t.base);function r(){let e=window.location.pathname||"/";if(n&&e.startsWith(n)){let t=e.slice(n.length);return""===t?"/":t}return e}function l(e){return n?n+(e.startsWith("/")?e:"/"+e):e}let o=r(),i=Me(e),u=G(o,i),a=g(o),s=g(u?.params??{}),c=g(W(window.location.search)),f=[],d=[],p=0;function h(e,t,n,r,l){let o=[...f];n&&o.push(n);let i=++p;if(0===o.length)return void r();let u=0;!function n(a){if(i!==p)return;if(!1===a)return void l?.();if("string"==typeof a)return void(a===e?r():_(a));if(u>=o.length)return void r();let s=o[u++](e,t);s instanceof Promise?s.then(n):n(s)}(void 0)}let v=!1;function m(e,t){let n=e.indexOf("?"),r=-1===n?e:e.slice(0,n),l=-1===n?{}:W(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}}H&&=(H(),null);let y=()=>{let e=r(),t=a.value,n=c.value,o=G(e,i),u=W(window.location.search);h(e,t,o?.route.beforeEnter,()=>{s.value=o?.params??{},c.value=u,a.value=e;for(let n of d)try{n(e,t)}catch{}},()=>{history.pushState(null,"",l(t)+ke(n))})};function x(e,t,n,r,o){s.value=r?.params??{},c.value=t,a.value=e;let i=l(e)+ke(t);o?history.replaceState(null,"",i):history.pushState(null,"",i);for(let t of d)try{t(e,n)}catch{}}function _(e,t){v=!0;let{pathname:n,stringQuery:r}=m(e,t),l=a.value,o=G(n,i);h(n,l,o?.route.beforeEnter,()=>x(n,r,l,o,!1))}window.addEventListener("popstate",y),H=()=>window.removeEventListener("popstate",y);let b={current:a,params:s,query:c,base:n||"/",navigate:_,replace:function(e,t){v=!0;let{pathname:n,stringQuery:r}=m(e,t),l=a.value,o=G(n,i);h(n,l,o?.route.beforeEnter,()=>x(n,r,l,o,!0))},back:function(){history.back()},forward:function(){history.forward()},go:function(e){history.go(e)},isActive:function(e,t=!0){let n=a.value;return t?n===e:n===e||n.startsWith(e.endsWith("/")?e:e+"/")},resolve:function(t){let n=G(t,i);if(!n)return{matched:!1,params:{},route:void 0};let r=n.route.chain[n.route.chain.length-1];return{matched:!0,params:n.params,route:function e(t){for(let n of t){if(n.component===r)return n;if(n.children){let t=e(n.children);if(t)return t}}}(e)}},beforeEach:function(e){return f.push(e),()=>{let t=f.indexOf(e);-1!==t&&f.splice(t,1)}},afterEach:function(e){return d.push(e),()=>{let t=d.indexOf(e);-1!==t&&d.splice(t,1)}},routes:e,_flat:i,_guards:f,_base:n};return V&&console.warn("[Nix] A router already exists. The previous router is being replaced. Only one router instance should be active at a time."),V=b,queueMicrotask(()=>{v||h(o,"",G(o,i)?.route.beforeEnter,()=>{},()=>{history.replaceState(null,"",l("/"));let e=G("/",i);a.value="/",s.value=e?.params??{},c.value={}})}),b}function Le(){return U()}var Re=class extends C{_depth;constructor(e=0){super(),this._depth=e}render(){let e=this._depth;return B`<div class="router-view">${()=>{let t=U(),n=G(t.current.value,t._flat);return n?e>=n.route.chain.length?B`<span></span>`:n.route.chain[e]():B`<div style="color:#f87171;padding:16px 0">
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 _(l){let o,u=!1,a=new Set,s=new Set,c=i,p=()=>{if(u)return;"function"==typeof o&&o();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 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 a)s.has(e)||e._removeSub(p)}};return p(),()=>{u=!0,"function"==typeof o&&o();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,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,u=!0,a=!1,s=_(()=>{let e=i();if(u){if(u=!1,l&&!a){let n=e;b(()=>t(n,void 0)),o&&(a=!0,Promise.resolve().then(s))}r=e}else if(!a){let n=e,l=r;r=e,b(()=>t(n,l)),o&&(a=!0,Promise.resolve().then(s))}});return()=>{a=!0,s()}}function S(e){return e?Promise.resolve().then(e):Promise.resolve()}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 w(e){return"object"==typeof e&&!!e&&!0===e.__isNixComponent}function T(e){return Symbol(e)}var E=[];function ee(){return[...E]}function D(){E.push(new Map)}function O(){E.pop()}function te(e,t){let n=E.splice(0);e.forEach(e=>E.push(e)),E.push(new Map);try{return t()}finally{E.splice(0),n.forEach(e=>E.push(e))}}function k(e,t){let n=E[E.length-1];if(!n)throw Error("[Nix] provide() must be called inside onInit() of a NixComponent.");n.set(e,t)}function A(e){for(let t=E.length-1;t>=0;t--)if(E[t].has(e))return E[t].get(e)}var j={SCOPE:"nix-scope",ERROR_BOUNDARY:"nix-eb",TRANSITION:"nix-t",KEYED_START:"nix-ks",KEYED_END:"nix-ke",KEYED_ZONE:"nix-kz"};function ne(){return{el:null}}function re(e,t){t?"none"===e.style.display&&(e.style.display=""):"none"!==e.style.display&&(e.style.display="none")}function ie(e,t,n){return{__isKeyedList:!0,items:e,keyFn:t,renderFn:n}}function ae(e,t,n){let r,l;D();try{try{e.onInit?.()}catch(t){if(!e.onError)throw t;e.onError(t)}r=e.render()._render(t,n)}finally{O()}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 oe(e,t,n){let r,l;D();try{try{e.onInit?.()}catch{}r=e.render()._render(t,n)}finally{O()}try{let t=e.onMount?.();"function"==typeof t&&(l=t)}catch{}return()=>{try{e.onUnmount?.()}catch{}try{l?.()}catch{}r()}}function M(e,t,n,r){let l,o;te(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 se(e,t,n,r,l){let o,i;D();try{try{e.onInit?.()}catch(t){if(!e.onError)throw t;e.onError(t)}o=e.render()._render(t,n)}finally{O()}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 ce(){return{__isPortalOutlet:!0,_container:null}}function le(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 ue(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,w(e)?ae(e,l,null):e._render(l,null)}}}var de=T("nix:portal-outlet");function fe(e){k(de,e)}function pe(){return A(de)}function me(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(j.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||w(t)?t:t(e);u=w(o)?oe(o,n,r):o._render(n,r)};o(e=>{a||(a=!0,c?(u?.(),u=null,d(e)):(i=e,f=!0))});try{if(w(e)){D();try{try{e.onInit?.()}catch(t){if(!e.onError)throw t;e.onError(t)}u=e.render()._render(n,r)}finally{O()}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()}}}}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 N(e){return Math.max(0,...e.split(",").map(e=>parseFloat(e.trim())||0))}function P(e,t=0){return new Promise(n=>{let r=getComputedStyle(e),l=1e3*Math.max(N(r.transitionDuration||"0"),N(r.animationDuration||"0")),o=l>0?l+100:t;if(o<=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()},o)})}function ge(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(j.TRANSITION);r.insertBefore(o,l);let i=null,u=null,a=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 w(e)?oe(e,r,l):e._render(r,l)}let d=(e,r=!1)=>{a++,u&&=(u(),null),i=f(e);let l=c();if(l&&(!s||t.appear)&&!r){let e=a;(async()=>{t.onBeforeEnter?.(l),l.classList.add(n.enterFrom,n.enterActive),l.getBoundingClientRect(),await new Promise(e=>requestAnimationFrame(()=>e())),a===e&&(l.classList.remove(n.enterFrom),l.classList.add(n.enterTo),await P(l,t.duration),a===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=++a;u=e??null,(async()=>{t.onBeforeLeave?.(r),r.classList.add(n.leaveFrom,n.leaveActive),r.getBoundingClientRect(),await new Promise(e=>requestAnimationFrame(()=>e())),a===l&&(r.classList.remove(n.leaveFrom),r.classList.add(n.leaveTo),await P(r,t.duration),a===l&&(r.classList.remove(n.leaveActive,n.leaveTo),t.onAfterLeave?.(r),u?.(),u=null))})().catch(()=>{})},h=null;if("function"!=typeof e||w(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&&(a++,u?.(),u=null,i?.(),i=null,d(e,!0)),n=e}),s=!1}return()=>{a++,h?.(),i?.(),u?.(),i=null,u=null,o.remove()}}}}function _e(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 u=r.slice(i,l);if("@"===u[0]){let e=u.slice(1).split(".");return{type:"event",eventName:e[0],modifiers:e.slice(1),hadOpenQuote:o}}return{type:"attr",attrName:u,hadOpenQuote:o}}function ve(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?1:0);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?1:0);r+=o.slice(0,-t)+` data-nix-a-${l}="${e.attrName}"`,e.hadOpenQuote&&(n[l+1]=1)}}else r+=o}return r}function F(e){return"object"==typeof e&&!!e&&!0===e.__isNixTemplate}function ye(e){return"object"==typeof e&&!!e&&!0===e.__isKeyedList}var be={enter:"Enter",escape:"Escape",space:" ",tab:"Tab",delete:"Delete",backspace:"Backspace",up:"ArrowUp",down:"ArrowDown",left:"ArrowLeft",right:"ArrowRight"},xe=new Set(["click","dblclick","mousedown","mouseup","keydown","keyup","input","change","submit"]),I=new Set;function Se(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=be[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 Ce=new Map,L=new Set,R=!1;function z(e){L.add(e),R||(R=!0,queueMicrotask(()=>{for(let e of L)e();L.clear(),R=!1}))}function we(e,t,n,r){let l=[],o=[],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(!xe.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(!I.has(e)){let t=`__nix_${e}`,n=`__nix_${e}_mods`,r=e=>Se(e,t,n);Ce.set(e,r),document.addEventListener(e,r),I.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=s.name,t=c;if("ref"===e){a.el=t,l.push(()=>{a.el=null});continue}if("show"===e||"hide"===e){let n=t,r=null;if("function"==typeof a){let t=!1,o=!1,i=!0,u=_(()=>{o=!!a();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,z(l))});l.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,o=!1,i=!0,u=_(()=>{r=a();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,z(l))});l.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("");if(f.parentNode.replaceChild(d,f),"function"!=typeof a){if(w(a))se(a,d.parentNode,d,o,l);else if(F(a)){let e=a._render(d.parentNode,d);l.push(e)}else if(Array.isArray(a))for(let e of a)w(e)?se(e,d.parentNode,d,o,l):F(e)?e._render(d.parentNode,d):null!=e&&!1!==e&&d.parentNode.insertBefore(document.createTextNode(String(e)),d);else null!=a&&!1!==a&&d.parentNode.insertBefore(document.createTextNode(String(a)),d);continue}let p=null,h=null,v=null,m=[],g=null,x=ee(),b=!1,E="",N=!0,k=_(()=>{let e=a();if("string"==typeof e||"number"==typeof e){E=String(e);let t=()=>{b=!1,h&&=(h(),null),p?p.nodeValue=E:(p=document.createTextNode(E),d.parentNode.insertBefore(p,d))};return void(N?(N=!1,t()):b||(b=!0,z(t)))}if(b=!1,N=!1,p&&=(p.parentNode?.removeChild(p),null),h&&=(h(),null),null!=e&&!1!==e)if(F(e))h=e._render(d.parentNode,d);else if(w(e))h=M(e,d.parentNode,d,x);else if(ye(e)){v||(v=new Map,g=document.createTextNode(""),d.parentNode.insertBefore(g,d));let t=d.parentNode,n=e.items.map((t,n)=>e.keyFn(t,n)),r=new Set(n),l=!1;if(v.size>0)for(let e of v.keys())if(r.has(e)){l=!0;break}if(!l){if(v.size>0){let e=document.createRange();e.setStartAfter(g),e.setEndBefore(d),e.deleteContents();for(let e of v.values())e.cleanup();v.clear()}if(n.length>0){let r=document.createDocumentFragment();y(()=>{for(let t=0;t<n.length;t++){let l=n[t],o=e.items[t],i=document.createTextNode(""),u=document.createTextNode("");r.appendChild(i),r.appendChild(u);let a=e.renderFn(o,t),s=w(a)?M(a,r,u,x):a._render(r,u);v?.set(l,{start:i,end:u,cleanup:s})}}),t.insertBefore(r,d)}return void(m=n)}let o=new Map;for(let e=0;e<n.length;e++)o.set(n[e],e);let i=new Int32Array(n.length),u=!1,a=0;for(let e=0;e<m.length;e++){let t=m[e],n=o.get(t);if(void 0===n){let e=v.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}v.delete(t)}else i[n]=e+1,n>=a?a=n:u=!0}let s=u?Te(i):[],c=s.length-1,f=d;for(let r=n.length-1;r>=0;r--){let l=n[r];if(0===i[r]){let n=e.items[r],o=document.createTextNode(""),i=document.createTextNode(""),u=document.createDocumentFragment();u.appendChild(o),u.appendChild(i);let a=e.renderFn(n,r),s=w(a)?M(a,u,i,x):a._render(u,i);v.set(l,{start:o,end:i,cleanup:s}),t.insertBefore(u,f),f=o}else{let e=v.get(l);if(u)if(c<0||r!==s[c]){let n=e.start;for(;n;){let r=n===e.end?null:n.nextSibling;if(t.insertBefore(n,f),!r)break;n=r}}else c--;f=e.start}}m=n}else if(Array.isArray(e)){let t=[];for(let n of e)if(w(n))t.push(ae(n,d.parentNode,d));else if(F(n))t.push(n._render(d.parentNode,d));else if(null!=n&&!1!==n){let e=document.createTextNode(String(n));d.parentNode.insertBefore(e,d),t.push(()=>e.parentNode?.removeChild(e))}h=()=>t.forEach(e=>e())}else p=document.createTextNode(String(e)),d.parentNode.insertBefore(p,d)});l.push(()=>{if(k(),h&&=(h(),null),p&&=(p.parentNode?.removeChild(p),null),v){for(let e of v.values())e.cleanup();v=null,g=null}})}return{disposes:l,postMountHooks:o}}function Te(e){let t,n,r,l,o,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,l=u.length-1;r<l;)o=r+l>>1,e[u[o]]<a?r=o+1:l=o;a<e[u[r]]&&(r>0&&(i[t]=u[r-1]),u[r]=t)}}for(r=u.length,l=u[r-1];r-- >0;)u[r]=l,l=i[l];return u}var Ee=new WeakMap;function B(e,...t){let n=Ee.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 l=document.createElement("template");l.innerHTML=ve(e,t);let o,i=Array(t.length).fill(null),u=l.content,a=document.createTreeWalker(u,NodeFilter.SHOW_ELEMENT|NodeFilter.SHOW_COMMENT),s=0;for(;o=a.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},Ee.set(e,n)}let{contexts:r,tpl:l,pathMap:o}=n;function i(e,n){let i=l.content.cloneNode(!0),{disposes:u,postMountHooks:a}=we(i,r,t,o),s=document.createTextNode("");return e.insertBefore(s,n),e.insertBefore(i,n),a.forEach(e=>e()),()=>{for(let e=u.length-1;e>=0;e--)u[e]();let e=s.nextSibling;for(;e&&e!==n;){let t=e.nextSibling;e.parentNode?.removeChild(e),e=t}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 De(e,t){if(w(e)){let n,r,l="string"==typeof t?document.querySelector(t):t;if(!l)throw Error(`[Nix] mount: container not found: ${t}`);D();try{try{e.onInit?.()}catch(t){if(!e.onError)throw t;e.onError(t)}n=e.render()._render(l,null)}finally{O()}try{let t=e.onMount?.();"function"==typeof t&&(r=t)}catch(t){if(!e.onError)throw t;e.onError(t)}return{unmount(){try{e.onUnmount?.()}catch{}try{r?.()}catch{}n()}}}return e.mount(t)}function Oe(e,t){let n={},r=new Set(["$reset","$patch","$state"]);for(let t of Object.keys(e)){if(r.has(t))throw Error(`[Nix] Store key "${t}" is reserved.`);n[t]=g(e[t])}let l=n;let o=Object.assign(Object.create(null),l,{$reset:function(){for(let t of Object.keys(e))n[t].value=e[t]},$patch:function(e){for(let t of Object.keys(e))t in n&&(n[t].value=e[t])}});if(Object.defineProperty(o,"$state",{get(){let e={};for(let t in n)e[t]=n[t].value;return e},enumerable:!0,configurable:!1}),t){let e=t(l);for(let t of Object.keys(e))r.has(t)?console.warn(`[Nix] Store action name "${t}" is reserved and will be ignored.`):o[t]=e[t]}return o}var V=null,H=null;function U(){if(!V)throw Error("[Nix] No active router. Call createRouter() first.");return V}function W(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,beforeEnter:l.beforeEnter}),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 G(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 K(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 K(new URL(t,window.location.origin).pathname)}catch{return K(t)}}function Ie(e,t){let n=null==t?.base?Fe():K(t.base);function r(){let e=window.location.pathname||"/";if(n&&e.startsWith(n)){let t=e.slice(n.length);return""===t?"/":t}return e}function l(e){return n?n+(e.startsWith("/")?e:"/"+e):e}let o=r(),i=Me(e),u=G(o,i),a=g(o),s=g(u?.params??{}),c=g(W(window.location.search)),f=[],d=[],p=0;function h(e,t,n,r,l){let o=[...f];n&&o.push(n);let i=++p;if(0===o.length)return void r();let u=0;!function n(a){if(i!==p)return;if(!1===a)return void l?.();if("string"==typeof a)return void(a===e?r():_(a));if(u>=o.length)return void r();let s=o[u++](e,t);s instanceof Promise?s.then(n):n(s)}(void 0)}let v=!1;function m(e,t){let n=e.indexOf("?"),r=-1===n?e:e.slice(0,n),l=-1===n?{}:W(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}}H&&=(H(),null);let y=()=>{let e=r(),t=a.value,n=c.value,o=G(e,i),u=W(window.location.search);h(e,t,o?.route.beforeEnter,()=>{s.value=o?.params??{},c.value=u,a.value=e;for(let n of d)try{n(e,t)}catch{}},()=>{history.pushState(null,"",l(t)+ke(n))})};function x(e,t,n,r,o){s.value=r?.params??{},c.value=t,a.value=e;let i=l(e)+ke(t);o?history.replaceState(null,"",i):history.pushState(null,"",i);for(let t of d)try{t(e,n)}catch{}}function _(e,t){v=!0;let{pathname:n,stringQuery:r}=m(e,t),l=a.value,o=G(n,i);h(n,l,o?.route.beforeEnter,()=>x(n,r,l,o,!1))}window.addEventListener("popstate",y),H=()=>window.removeEventListener("popstate",y);let b={current:a,params:s,query:c,base:n||"/",navigate:_,replace:function(e,t){v=!0;let{pathname:n,stringQuery:r}=m(e,t),l=a.value,o=G(n,i);h(n,l,o?.route.beforeEnter,()=>x(n,r,l,o,!0))},back:function(){history.back()},forward:function(){history.forward()},go:function(e){history.go(e)},isActive:function(e,t=!0){let n=a.value;return t?n===e:n===e||n.startsWith(e.endsWith("/")?e:e+"/")},resolve:function(t){let n=G(t,i);if(!n)return{matched:!1,params:{},route:void 0};let r=n.route.chain[n.route.chain.length-1];return{matched:!0,params:n.params,route:function e(t){for(let n of t){if(n.component===r)return n;if(n.children){let t=e(n.children);if(t)return t}}}(e)}},beforeEach:function(e){return f.push(e),()=>{let t=f.indexOf(e);-1!==t&&f.splice(t,1)}},afterEach:function(e){return d.push(e),()=>{let t=d.indexOf(e);-1!==t&&d.splice(t,1)}},routes:e,_flat:i,_guards:f,_base:n};return V&&console.warn("[Nix] A router already exists. The previous router is being replaced. Only one router instance should be active at a time."),V=b,queueMicrotask(()=>{v||h(o,"",G(o,i)?.route.beforeEnter,()=>{},()=>{history.replaceState(null,"",l("/"));let e=G("/",i);a.value="/",s.value=e?.params??{},c.value={}})}),b}function Le(){return U()}var Re=class extends C{_depth;constructor(e=0){super(),this._depth=e}render(){let e=this._depth;return B`<div class="router-view">${()=>{let t=U(),n=G(t.current.value,t._flat);return n?e>=n.route.chain.length?B`<span></span>`:n.route.chain[e]():B`<div style="color:#f87171;padding:16px 0">
2
2
  404 — Route not found: <strong>${t.current.value}</strong>
3
3
  </div>`}}</div>`}},ze=class extends C{_to;_label;constructor(e,t){super(),this._to=e,this._label=t}render(){let e=this._to,t=this._label;return B`<a
4
4
  href=${(U()._base||"")+(e.startsWith("/")?e:"/"+e)}
@@ -18,4 +18,4 @@ Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});var e=[],t=[]
18
18
  <span style="color:#f87171;font-size:13px">
19
19
  ⚠ ${e instanceof Error?e.message:String(e)}
20
20
  </span>
21
- `}var q=new Map,He=3e5,J=null,Ue=He;function We(){null===J&&(J=setInterval(()=>{let e=Date.now();for(let[t,n]of q)n.subscribers<=0&&e-n.fetchedAt>Ue&&q.delete(t);0===q.size&&null!==J&&(clearInterval(J),J=null)},6e4))}function Y(e){return q.get(e)}function Ge(e,t){let n=q.get(e);q.set(e,{data:t,fetchedAt:Date.now(),subscribers:n?.subscribers??0}),We()}function Ke(e){let t=q.get(e);t&&t.subscribers++}function qe(e){let t=q.get(e);t&&(t.subscribers=Math.max(0,t.subscribers-1))}function X(e,t){let n=q.get(e);return!!n&&Date.now()-n.fetchedAt<t}function Je(e){void 0===e?q.clear():q.delete(e)}function Ye(e){Ue=e}function Xe(e,t,n={}){let{fallback:r,errorFallback:l,resetOnRefresh:o=!1,invalidate:i,cacheKey:u,staleTime:a=0}=n,s=r??Be(),c=l??Ve;return new class extends C{_state;_disposeWatcher;constructor(){super();let e=u?Y(u):void 0;this._state=g(e?{status:"resolved",data:e.data}:{status:"pending"})}onMount(){u&&Ke(u);let e=u?Y(u):void 0;if(e&&X(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&&qe(u)}}_run(){(o||"pending"===this._state.peek().status)&&(this._state.value={status:"pending"}),this._fetch()}_fetch(){e().then(e=>{u&&Ge(u,e),this._state.value={status:"resolved",data:e}},e=>{this._state.value={status:"error",error:e}})}render(){return B`<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>`}}}var Z=new Map;function Ze(e){q.delete(e);let t=Z.get(e);if(t)for(let e of t)e()}function Qe(e,t,n,r={}){let{fallback:l,errorFallback:o,resetOnRefresh:i=!1,staleTime:u=0,refetchOnMount:a="always"}=r,s=l??Be(),c=o??Ve;return new class extends C{_state;constructor(){super();let t=Y(e);this._state=g(t?{status:"resolved",data:t.data}:{status:"pending"})}onMount(){Z.has(e)||Z.set(e,new Set);let t=Z.get(e),n=()=>this._run();t.add(n),Ke(e);let r=Y(e),l=X(e,u);return r?!1===a||"stale"===a&&l||"always"===a&&l&&u>0||this._fetch():this._run(),()=>{t.delete(n),0===t.size&&Z.delete(e),qe(e)}}_run(){(i||"pending"===this._state.peek().status)&&(this._state.value={status:"pending"}),this._fetch()}_fetch(){t().then(t=>{Ge(e,t),this._state.value={status:"resolved",data:t}},e=>{this._state.value={status:"error",error:e}})}render(){return B`<div class="nix-query" style="display:contents">${()=>{let e=this._state.value;return"pending"===e.status?s:"error"===e.status?c(e.error):n(e.data)}}</div>`}}}function $e(e,t){let n=null;return()=>n?new n:Xe(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 Q(e,t="Invalid format"){return n=>"string"!=typeof n||e.test(n)?null:t}function rt(e="Invalid email"){return Q(/^[^\s@]+@[^\s@]+\.[^\s@]+$/,e)}function it(e,t){return n=>"number"==typeof n&&n<e?t??`Minimum value is ${e}`:null}function at(e,t){return n=>"number"==typeof n&&n>e?t??`Maximum value is ${e}`:null}function ot(e){return e}const st={required:et,minLength:tt,maxLength:nt,email:rt,pattern:Q,min:it,max:at};function ct(e,t){return{...e,...t}}function $(e,t=[],n="blur"){let r=g(e),l=g(!1),o=g(!1),i=g(null),u=g(!1),a=v(()=>{if(i.value)return i.value;if(!("input"===n?o.value||l.value:"submit"===n?u.value:l.value))return null;for(let e of t){let t=e(r.value);if(t)return t}return null});function s(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:r,error:a,touched:l,dirty:o,onInput:e=>{r.value=s(e.target),o.value=!0,i.value=null},onBlur:()=>{l.value=!0},reset:function(){r.value=e,l.value=!1,o.value=!1,i.value=null,u.value=!1},_setExternalError:function(e){i.value=e,e&&(l.value=!0)},_forceVisible:function(){l.value=!0,u.value=!0},_dispose:function(){a.dispose()}}}function lt(e,t={},n="blur"){function r(e){let r={};for(let l in e){let o=t[l]??[];r[l]=$(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 ut(e,t={}){let n=t.validateOn??"blur",r={};for(let l in e){let o=t.validators?.[l]??[];r[l]=$(e[l],o,n)}let l=g(!1),o=g(0),i=v(()=>{let e={};for(let t in r)e[t]=r[t].value.value;return e}),u=v(()=>{let e={};for(let t in r){let n=r[t].error.value;n&&(e[t]=n)}return e}),a=v(()=>{for(let e in r)if(r[e].error.value)return!1;return!0}),s=v(()=>{for(let e in r)if(r[e].dirty.value)return!0;return!1}),c=v(()=>{for(let e in r)if(r[e].touched.value)return!0;return!1});function f(e){for(let t in e)r[t]?._setExternalError(e[t]??null)}return{fields:r,values:i,errors:u,valid:a,dirty:s,touched:c,isSubmitting:l,submitCount:o,handleSubmit:function(e){return n=>{n.preventDefault(),o.value++;for(let e in r)r[e]._forceVisible();let u=i.value;if(t.validate){let e=t.validate(u);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 f(t)}}for(let e in r)if(r[e].error.value)return;let a=e(u);a instanceof Promise&&(l.value=!0,a.finally(()=>{l.value=!1}).catch(()=>{}))}},reset:function(){for(let e in r)r[e].reset();l.value=!1,o.value=0},setErrors:f,dispose:function(){i.dispose(),u.dispose(),a.dispose(),s.dispose(),c.dispose();for(let e in r)r[e]._dispose()}}}exports.Link=ze,exports.NixComponent=C,exports.RouterView=Re,exports.Signal=h,exports.batch=y,exports.clearQueryCache=Je,exports.computed=v,exports.createErrorBoundary=me,exports.createForm=ut,exports.createInjectionKey=T,exports.createPortalOutlet=ce,exports.createQuery=Qe,exports.createRouter=Ie,exports.createStore=Oe,exports.createValidator=ot,exports.effect=_,exports.email=rt,exports.extendValidators=ct,exports.html=B,exports.inject=A,exports.injectOutlet=pe,exports.invalidateQueries=Ze,exports.lazy=$e,exports.max=at,exports.maxLength=nt,exports.min=it,exports.minLength=tt,exports.mount=De,exports.nextTick=S,exports.pattern=Q,exports.portal=ue,exports.portalOutlet=le,exports.provide=k,exports.provideOutlet=fe,exports.ref=ne,exports.repeat=ie,exports.required=et,exports.setQueryCacheTime=Ye,exports.showWhen=re,exports.signal=g,exports.suspend=Xe,exports.transition=ge,exports.untrack=b,exports.useField=$,exports.useFieldArray=lt,exports.useRouter=Le,exports.validators=st,exports.watch=x;
21
+ `}var q=new Map,He=3e5,J=null,Ue=He;function We(){null===J&&(J=setInterval(()=>{let e=Date.now();for(let[t,n]of q)n.subscribers<=0&&e-n.fetchedAt>Ue&&q.delete(t);0===q.size&&null!==J&&(clearInterval(J),J=null)},6e4))}function Y(e){return q.get(e)}function Ge(e,t){let n=q.get(e);q.set(e,{data:t,fetchedAt:Date.now(),subscribers:n?.subscribers??0}),We()}function Ke(e){let t=q.get(e);t&&t.subscribers++}function qe(e){let t=q.get(e);t&&(t.subscribers=Math.max(0,t.subscribers-1))}function Je(e,t){let n=q.get(e);return!!n&&Date.now()-n.fetchedAt<t}function Ye(e){void 0===e?q.clear():q.delete(e)}function Xe(e){Ue=e}function Ze(e,t,n={}){let{fallback:r,errorFallback:l,resetOnRefresh:o=!1,invalidate:i,cacheKey:u,staleTime:a=0}=n,s=r??Be(),c=l??Ve;return new class extends C{_state;_disposeWatcher;constructor(){super();let e=u?Y(u):void 0;this._state=g(e?{status:"resolved",data:e.data}:{status:"pending"})}onMount(){u&&Ke(u);let e=u?Y(u):void 0;if(e&&Je(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&&qe(u)}}_run(){(o||"pending"===this._state.peek().status)&&(this._state.value={status:"pending"}),this._fetch()}_fetch(){e().then(e=>{u&&Ge(u,e),this._state.value={status:"resolved",data:e}},e=>{this._state.value={status:"error",error:e}})}render(){return B`<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>`}}}var X=new Map,Qe=new FinalizationRegistry(({key:e,ref:t})=>{let n=X.get(e);n&&(n.delete(t),0===n.size&&X.delete(e))});function $e(e){q.delete(e);let t=X.get(e);if(t){for(let e of t){let n=e.deref();n?n():t.delete(e)}0===t.size&&X.delete(e)}}function et(e,t,n={}){let{staleTime:r=0,refetchOnMount:l="always"}=n,o=Y(e),i=g(o?"success":"pending"),u=g(o?.data),a=g(void 0),s=()=>{t().then(t=>{Ge(e,t),u.value=t,a.value=void 0,i.value="success"},e=>{a.value=e,i.value="error"})},c=()=>{"pending"===i.peek()&&(u.value=void 0,a.value=void 0),s()};X.has(e)||X.set(e,new Set);let f=X.get(e),d=new WeakRef(c);f.add(d),Qe.register(c,{key:e,ref:d});let p=Je(e,r);return o?!1===l||"stale"===l&&p||"always"===l&&p&&r>0||s():c(),{status:i,data:u,error:a,refetch:()=>{q.delete(e),c()}}}function tt(e,t){let n=null;return()=>n?new n:Ze(async()=>(n=(await e()).default,n),e=>new e,{fallback:t})}function nt(e="Required"){return t=>null==t||""===t||Array.isArray(t)&&0===t.length?e:null}function rt(e,t){return n=>"string"==typeof n&&n.length<e?t??`Minimum ${e} characters`:null}function Z(e,t){return n=>"string"==typeof n&&n.length>e?t??`Maximum ${e} characters`:null}function Q(e,t="Invalid format"){return n=>"string"!=typeof n||e.test(n)?null:t}function it(e="Invalid email"){return Q(/^[^\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}const ct={required:nt,minLength:rt,maxLength:Z,email:it,pattern:Q,min:at,max:ot};function lt(e,t){return{...e,...t}}function $(e,t=[],n="blur"){let r=g(e),l=g(!1),o=g(!1),i=g(null),u=g(!1),a=v(()=>{if(i.value)return i.value;if(!("input"===n?o.value||l.value:"submit"===n?u.value:l.value))return null;for(let e of t){let t=e(r.value);if(t)return t}return null});function s(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:r,error:a,touched:l,dirty:o,onInput:e=>{r.value=s(e.target),o.value=!0,i.value=null},onBlur:()=>{l.value=!0},reset:function(){r.value=e,l.value=!1,o.value=!1,i.value=null,u.value=!1},_setExternalError:function(e){i.value=e,e&&(l.value=!0)},_forceVisible:function(){l.value=!0,u.value=!0},_dispose:function(){a.dispose()}}}function ut(e,t={},n="blur"){function r(e){let r={};for(let l in e){let o=t[l]??[];r[l]=$(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 dt(e,t={}){let n=t.validateOn??"blur",r={};for(let l in e){let o=t.validators?.[l]??[];r[l]=$(e[l],o,n)}let l=g(!1),o=g(0),i=v(()=>{let e={};for(let t in r)e[t]=r[t].value.value;return e}),u=v(()=>{let e={};for(let t in r){let n=r[t].error.value;n&&(e[t]=n)}return e}),a=v(()=>{for(let e in r)if(r[e].error.value)return!1;return!0}),s=v(()=>{for(let e in r)if(r[e].dirty.value)return!0;return!1}),c=v(()=>{for(let e in r)if(r[e].touched.value)return!0;return!1});function f(e){for(let t in e)r[t]?._setExternalError(e[t]??null)}return{fields:r,values:i,errors:u,valid:a,dirty:s,touched:c,isSubmitting:l,submitCount:o,handleSubmit:function(e){return n=>{n.preventDefault(),o.value++;for(let e in r)r[e]._forceVisible();let u=i.value;if(t.validate){let e=t.validate(u);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 f(t)}}for(let e in r)if(r[e].error.value)return;let a=e(u);a instanceof Promise&&(l.value=!0,a.finally(()=>{l.value=!1}).catch(()=>{}))}},reset:function(){for(let e in r)r[e].reset();l.value=!1,o.value=0},setErrors:f,dispose:function(){i.dispose(),u.dispose(),a.dispose(),s.dispose(),c.dispose();for(let e in r)r[e]._dispose()}}}exports.Link=ze,exports.NixComponent=C,exports.RouterView=Re,exports.Signal=h,exports.batch=y,exports.clearQueryCache=Ye,exports.computed=v,exports.createErrorBoundary=me,exports.createForm=dt,exports.createInjectionKey=T,exports.createPortalOutlet=ce,exports.createQuery=et,exports.createRouter=Ie,exports.createStore=Oe,exports.createValidator=st,exports.effect=_,exports.email=it,exports.extendValidators=lt,exports.html=B,exports.inject=A,exports.injectOutlet=pe,exports.invalidateQueries=$e,exports.lazy=tt,exports.max=ot,exports.maxLength=Z,exports.min=at,exports.minLength=rt,exports.mount=De,exports.nextTick=S,exports.pattern=Q,exports.portal=ue,exports.portalOutlet=le,exports.provide=k,exports.provideOutlet=fe,exports.ref=ne,exports.repeat=ie,exports.required=nt,exports.setQueryCacheTime=Xe,exports.showWhen=re,exports.signal=g,exports.suspend=Ze,exports.transition=ge,exports.untrack=b,exports.useField=$,exports.useFieldArray=ut,exports.useRouter=Le,exports.validators=ct,exports.watch=x;
@@ -18,4 +18,4 @@ var e=[],t=[],n=null,r=null,i=null,a=[];function o(e){a.push(i),i=e}function s()
18
18
  <span style="color:#f87171;font-size:13px">
19
19
  ⚠ ${e instanceof Error?e.message:String(e)}
20
20
  </span>
21
- `}var q=new Map,He=3e5,J=null,Ue=He;function We(){null===J&&(J=setInterval(()=>{let e=Date.now();for(let[t,n]of q)n.subscribers<=0&&e-n.fetchedAt>Ue&&q.delete(t);0===q.size&&null!==J&&(clearInterval(J),J=null)},6e4))}function Y(e){return q.get(e)}function Ge(e,t){let n=q.get(e);q.set(e,{data:t,fetchedAt:Date.now(),subscribers:n?.subscribers??0}),We()}function Ke(e){let t=q.get(e);t&&t.subscribers++}function qe(e){let t=q.get(e);t&&(t.subscribers=Math.max(0,t.subscribers-1))}function X(e,t){let n=q.get(e);return!!n&&Date.now()-n.fetchedAt<t}function Je(e){void 0===e?q.clear():q.delete(e)}function Ye(e){Ue=e}function Xe(e,t,n={}){let{fallback:r,errorFallback:l,resetOnRefresh:o=!1,invalidate:i,cacheKey:a,staleTime:u=0}=n,s=r??Be(),c=l??Ve;return new class extends C{_state;_disposeWatcher;constructor(){super();let e=a?Y(a):void 0;this._state=g(e?{status:"resolved",data:e.data}:{status:"pending"})}onMount(){a&&Ke(a);let e=a?Y(a):void 0;if(e&&X(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&&qe(a)}}_run(){(o||"pending"===this._state.peek().status)&&(this._state.value={status:"pending"}),this._fetch()}_fetch(){e().then(e=>{a&&Ge(a,e),this._state.value={status:"resolved",data:e}},e=>{this._state.value={status:"error",error:e}})}render(){return B`<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>`}}}var Z=new Map;function Ze(e){q.delete(e);let t=Z.get(e);if(t)for(let e of t)e()}function Qe(e,t,n,r={}){let{fallback:l,errorFallback:o,resetOnRefresh:i=!1,staleTime:a=0,refetchOnMount:u="always"}=r,s=l??Be(),c=o??Ve;return new class extends C{_state;constructor(){super();let t=Y(e);this._state=g(t?{status:"resolved",data:t.data}:{status:"pending"})}onMount(){Z.has(e)||Z.set(e,new Set);let t=Z.get(e),n=()=>this._run();t.add(n),Ke(e);let r=Y(e),l=X(e,a);return r?!1===u||"stale"===u&&l||"always"===u&&l&&a>0||this._fetch():this._run(),()=>{t.delete(n),0===t.size&&Z.delete(e),qe(e)}}_run(){(i||"pending"===this._state.peek().status)&&(this._state.value={status:"pending"}),this._fetch()}_fetch(){t().then(t=>{Ge(e,t),this._state.value={status:"resolved",data:t}},e=>{this._state.value={status:"error",error:e}})}render(){return B`<div class="nix-query" style="display:contents">${()=>{let e=this._state.value;return"pending"===e.status?s:"error"===e.status?c(e.error):n(e.data)}}</div>`}}}function $e(e,t){let n=null;return()=>n?new n:Xe(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 Q(e,t="Invalid format"){return n=>"string"!=typeof n||e.test(n)?null:t}function rt(e="Invalid email"){return Q(/^[^\s@]+@[^\s@]+\.[^\s@]+$/,e)}function it(e,t){return n=>"number"==typeof n&&n<e?t??`Minimum value is ${e}`:null}function at(e,t){return n=>"number"==typeof n&&n>e?t??`Maximum value is ${e}`:null}function ot(e){return e}const st={required:et,minLength:tt,maxLength:nt,email:rt,pattern:Q,min:it,max:at};function ct(e,t){return{...e,...t}}function $(e,t=[],n="blur"){let r=g(e),l=g(!1),o=g(!1),i=g(null),a=g(!1),u=v(()=>{if(i.value)return i.value;if(!("input"===n?o.value||l.value:"submit"===n?a.value:l.value))return null;for(let e of t){let t=e(r.value);if(t)return t}return null});function s(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:r,error:u,touched:l,dirty:o,onInput:e=>{r.value=s(e.target),o.value=!0,i.value=null},onBlur:()=>{l.value=!0},reset:function(){r.value=e,l.value=!1,o.value=!1,i.value=null,a.value=!1},_setExternalError:function(e){i.value=e,e&&(l.value=!0)},_forceVisible:function(){l.value=!0,a.value=!0},_dispose:function(){u.dispose()}}}function lt(e,t={},n="blur"){function r(e){let r={};for(let l in e){let o=t[l]??[];r[l]=$(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 ut(e,t={}){let n=t.validateOn??"blur",r={};for(let l in e){let o=t.validators?.[l]??[];r[l]=$(e[l],o,n)}let l=g(!1),o=g(0),i=v(()=>{let e={};for(let t in r)e[t]=r[t].value.value;return e}),a=v(()=>{let e={};for(let t in r){let n=r[t].error.value;n&&(e[t]=n)}return e}),u=v(()=>{for(let e in r)if(r[e].error.value)return!1;return!0}),s=v(()=>{for(let e in r)if(r[e].dirty.value)return!0;return!1}),c=v(()=>{for(let e in r)if(r[e].touched.value)return!0;return!1});function f(e){for(let t in e)r[t]?._setExternalError(e[t]??null)}return{fields:r,values:i,errors:a,valid:u,dirty:s,touched:c,isSubmitting:l,submitCount:o,handleSubmit:function(e){return n=>{n.preventDefault(),o.value++;for(let e in r)r[e]._forceVisible();let a=i.value;if(t.validate){let e=t.validate(a);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 f(t)}}for(let e in r)if(r[e].error.value)return;let u=e(a);u instanceof Promise&&(l.value=!0,u.finally(()=>{l.value=!1}).catch(()=>{}))}},reset:function(){for(let e in r)r[e].reset();l.value=!1,o.value=0},setErrors:f,dispose:function(){i.dispose(),a.dispose(),u.dispose(),s.dispose(),c.dispose();for(let e in r)r[e]._dispose()}}}export{ze as Link,C as NixComponent,Re as RouterView,h as Signal,y as batch,Je as clearQueryCache,v as computed,me as createErrorBoundary,ut as createForm,T as createInjectionKey,ce as createPortalOutlet,Qe as createQuery,Ie as createRouter,Oe as createStore,ot as createValidator,_ as effect,rt as email,ct as extendValidators,B as html,A as inject,pe as injectOutlet,Ze as invalidateQueries,$e as lazy,at as max,nt as maxLength,it as min,tt as minLength,De as mount,S as nextTick,Q as pattern,ue as portal,le as portalOutlet,k as provide,fe as provideOutlet,ne as ref,ie as repeat,et as required,Ye as setQueryCacheTime,re as showWhen,g as signal,Xe as suspend,ge as transition,b as untrack,$ as useField,lt as useFieldArray,Le as useRouter,st as validators,x as watch};
21
+ `}var q=new Map,He=3e5,J=null,Ue=He;function We(){null===J&&(J=setInterval(()=>{let e=Date.now();for(let[t,n]of q)n.subscribers<=0&&e-n.fetchedAt>Ue&&q.delete(t);0===q.size&&null!==J&&(clearInterval(J),J=null)},6e4))}function Y(e){return q.get(e)}function Ge(e,t){let n=q.get(e);q.set(e,{data:t,fetchedAt:Date.now(),subscribers:n?.subscribers??0}),We()}function Ke(e){let t=q.get(e);t&&t.subscribers++}function qe(e){let t=q.get(e);t&&(t.subscribers=Math.max(0,t.subscribers-1))}function Je(e,t){let n=q.get(e);return!!n&&Date.now()-n.fetchedAt<t}function Ye(e){void 0===e?q.clear():q.delete(e)}function Xe(e){Ue=e}function Ze(e,t,n={}){let{fallback:r,errorFallback:l,resetOnRefresh:o=!1,invalidate:i,cacheKey:a,staleTime:u=0}=n,s=r??Be(),c=l??Ve;return new class extends C{_state;_disposeWatcher;constructor(){super();let e=a?Y(a):void 0;this._state=g(e?{status:"resolved",data:e.data}:{status:"pending"})}onMount(){a&&Ke(a);let e=a?Y(a):void 0;if(e&&Je(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&&qe(a)}}_run(){(o||"pending"===this._state.peek().status)&&(this._state.value={status:"pending"}),this._fetch()}_fetch(){e().then(e=>{a&&Ge(a,e),this._state.value={status:"resolved",data:e}},e=>{this._state.value={status:"error",error:e}})}render(){return B`<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>`}}}var X=new Map,Qe=new FinalizationRegistry(({key:e,ref:t})=>{let n=X.get(e);n&&(n.delete(t),0===n.size&&X.delete(e))});function $e(e){q.delete(e);let t=X.get(e);if(t){for(let e of t){let n=e.deref();n?n():t.delete(e)}0===t.size&&X.delete(e)}}function et(e,t,n={}){let{staleTime:r=0,refetchOnMount:l="always"}=n,o=Y(e),i=g(o?"success":"pending"),a=g(o?.data),u=g(void 0),s=()=>{t().then(t=>{Ge(e,t),a.value=t,u.value=void 0,i.value="success"},e=>{u.value=e,i.value="error"})},c=()=>{"pending"===i.peek()&&(a.value=void 0,u.value=void 0),s()};X.has(e)||X.set(e,new Set);let f=X.get(e),d=new WeakRef(c);f.add(d),Qe.register(c,{key:e,ref:d});let p=Je(e,r);return o?!1===l||"stale"===l&&p||"always"===l&&p&&r>0||s():c(),{status:i,data:a,error:u,refetch:()=>{q.delete(e),c()}}}function tt(e,t){let n=null;return()=>n?new n:Ze(async()=>(n=(await e()).default,n),e=>new e,{fallback:t})}function nt(e="Required"){return t=>null==t||""===t||Array.isArray(t)&&0===t.length?e:null}function rt(e,t){return n=>"string"==typeof n&&n.length<e?t??`Minimum ${e} characters`:null}function Z(e,t){return n=>"string"==typeof n&&n.length>e?t??`Maximum ${e} characters`:null}function Q(e,t="Invalid format"){return n=>"string"!=typeof n||e.test(n)?null:t}function it(e="Invalid email"){return Q(/^[^\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}const ct={required:nt,minLength:rt,maxLength:Z,email:it,pattern:Q,min:at,max:ot};function lt(e,t){return{...e,...t}}function $(e,t=[],n="blur"){let r=g(e),l=g(!1),o=g(!1),i=g(null),a=g(!1),u=v(()=>{if(i.value)return i.value;if(!("input"===n?o.value||l.value:"submit"===n?a.value:l.value))return null;for(let e of t){let t=e(r.value);if(t)return t}return null});function s(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:r,error:u,touched:l,dirty:o,onInput:e=>{r.value=s(e.target),o.value=!0,i.value=null},onBlur:()=>{l.value=!0},reset:function(){r.value=e,l.value=!1,o.value=!1,i.value=null,a.value=!1},_setExternalError:function(e){i.value=e,e&&(l.value=!0)},_forceVisible:function(){l.value=!0,a.value=!0},_dispose:function(){u.dispose()}}}function ut(e,t={},n="blur"){function r(e){let r={};for(let l in e){let o=t[l]??[];r[l]=$(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 dt(e,t={}){let n=t.validateOn??"blur",r={};for(let l in e){let o=t.validators?.[l]??[];r[l]=$(e[l],o,n)}let l=g(!1),o=g(0),i=v(()=>{let e={};for(let t in r)e[t]=r[t].value.value;return e}),a=v(()=>{let e={};for(let t in r){let n=r[t].error.value;n&&(e[t]=n)}return e}),u=v(()=>{for(let e in r)if(r[e].error.value)return!1;return!0}),s=v(()=>{for(let e in r)if(r[e].dirty.value)return!0;return!1}),c=v(()=>{for(let e in r)if(r[e].touched.value)return!0;return!1});function f(e){for(let t in e)r[t]?._setExternalError(e[t]??null)}return{fields:r,values:i,errors:a,valid:u,dirty:s,touched:c,isSubmitting:l,submitCount:o,handleSubmit:function(e){return n=>{n.preventDefault(),o.value++;for(let e in r)r[e]._forceVisible();let a=i.value;if(t.validate){let e=t.validate(a);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 f(t)}}for(let e in r)if(r[e].error.value)return;let u=e(a);u instanceof Promise&&(l.value=!0,u.finally(()=>{l.value=!1}).catch(()=>{}))}},reset:function(){for(let e in r)r[e].reset();l.value=!1,o.value=0},setErrors:f,dispose:function(){i.dispose(),a.dispose(),u.dispose(),s.dispose(),c.dispose();for(let e in r)r[e]._dispose()}}}export{ze as Link,C as NixComponent,Re as RouterView,h as Signal,y as batch,Ye as clearQueryCache,v as computed,me as createErrorBoundary,dt as createForm,T as createInjectionKey,ce as createPortalOutlet,et as createQuery,Ie as createRouter,Oe as createStore,st as createValidator,_ as effect,it as email,lt as extendValidators,B as html,A as inject,pe as injectOutlet,$e as invalidateQueries,tt as lazy,ot as max,Z as maxLength,at as min,rt as minLength,De as mount,S as nextTick,Q as pattern,ue as portal,le as portalOutlet,k as provide,fe as provideOutlet,ne as ref,ie as repeat,nt as required,Xe as setQueryCacheTime,re as showWhen,g as signal,Ze as suspend,ge as transition,b as untrack,$ as useField,ut as useFieldArray,Le as useRouter,ct as validators,x as watch};
package/package.json CHANGED
@@ -1,8 +1,9 @@
1
1
  {
2
2
  "name": "@deijose/nix-js",
3
- "version": "1.7.7",
3
+ "version": "1.7.8",
4
4
  "description": "A lightweight, fully reactive micro-framework — no virtual DOM, no compiler, just signals and tagged templates.",
5
5
  "license": "MIT",
6
+ "author": "Deiver Vasquez",
6
7
  "homepage": "https://nix-js-landing.vercel.app/",
7
8
  "repository": {
8
9
  "type": "git",
@@ -57,10 +58,10 @@
57
58
  "happy-dom": "^20.8.3",
58
59
  "terser": "^5.46.0",
59
60
  "typescript": "~5.9.3",
60
- "vite": "^8.0.0-beta.13",
61
+ "vite": "^8.0.0",
61
62
  "vitest": "^4.0.18"
62
63
  },
63
64
  "overrides": {
64
- "vite": "^8.0.0-beta.13"
65
+ "vite": "^8.0.0"
65
66
  }
66
- }
67
+ }