@fluixi/core 1.0.0-alpha.69 → 1.0.0-alpha.71

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.
Files changed (48) hide show
  1. package/dist/cdn/core.global.js +1 -1
  2. package/dist/src/cdn/core.cjs +1 -1
  3. package/dist/src/cdn/core.mjs +1 -1
  4. package/dist/src/index.cjs +1 -1
  5. package/dist/src/index.d.ts +1 -4
  6. package/dist/src/index.d.ts.map +1 -1
  7. package/dist/src/index.js +1 -0
  8. package/dist/src/index.mjs +1 -1
  9. package/dist/src/lib/client/index.cjs +1 -1
  10. package/dist/src/lib/client/index.d.ts +1 -0
  11. package/dist/src/lib/client/index.d.ts.map +1 -1
  12. package/dist/src/lib/client/index.js +4 -0
  13. package/dist/src/lib/client/index.mjs +1 -1
  14. package/dist/src/lib/core.cjs +1 -1
  15. package/dist/src/lib/core.d.ts +1 -2
  16. package/dist/src/lib/core.d.ts.map +1 -1
  17. package/dist/src/lib/core.js +5 -2
  18. package/dist/src/lib/core.mjs +1 -1
  19. package/dist/src/lib/index.cjs +1 -1
  20. package/dist/src/lib/index.mjs +1 -1
  21. package/dist/src/lib/render/deferred.cjs +1 -0
  22. package/dist/src/lib/render/deferred.d.ts +36 -0
  23. package/dist/src/lib/render/deferred.d.ts.map +1 -0
  24. package/dist/src/lib/render/deferred.js +141 -0
  25. package/dist/src/lib/render/deferred.mjs +1 -0
  26. package/dist/src/lib/render/index.cjs +1 -1
  27. package/dist/src/lib/render/index.d.ts +2 -0
  28. package/dist/src/lib/render/index.d.ts.map +1 -1
  29. package/dist/src/lib/render/index.js +6 -1
  30. package/dist/src/lib/render/index.mjs +1 -1
  31. package/dist/src/lib/render/versions.cjs +1 -0
  32. package/dist/src/lib/render/versions.d.ts +2 -0
  33. package/dist/src/lib/render/versions.d.ts.map +1 -0
  34. package/dist/src/lib/render/versions.js +21 -0
  35. package/dist/src/lib/render/versions.mjs +1 -0
  36. package/dist/src/utils.cjs +1 -0
  37. package/dist/src/utils.d.ts +10 -0
  38. package/dist/src/utils.d.ts.map +1 -0
  39. package/dist/src/utils.js +9 -0
  40. package/dist/src/utils.mjs +1 -0
  41. package/dist/src/version.generated.cjs +1 -0
  42. package/dist/src/version.generated.d.ts +3 -0
  43. package/dist/src/version.generated.d.ts.map +1 -0
  44. package/dist/src/version.generated.js +3 -0
  45. package/dist/src/version.generated.mjs +1 -0
  46. package/dist/tsconfig.lib.tsbuildinfo +1 -1
  47. package/package.json +10 -10
  48. package/src/index.ts +1 -0
@@ -46,7 +46,10 @@ export { createIsomorphicState, createIsomorphicStore, } from './isomorphic.js';
46
46
  export { isServer, isClient, storage, createMemoryStorage, env, clientOnly, } from './env/index.js';
47
47
  // Theme store — detect → persist → apply → toggle + no-flash head script.
48
48
  export { createTheme } from './theme/index.js';
49
- export * from '@fluixi/utils';
49
+ // NOT re-exported from the main entry. `export * from '@fluixi/utils'` here put the
50
+ // whole utility library in every app's graph — 56% of a counter's bundle, 74% of its
51
+ // bytes — because a barrel re-export of a barrel cannot be shaken in practice. Import
52
+ // from `@fluixi/utils` directly, or from `@fluixi/core/utils` for the same surface.
50
53
  // import { createContext, Provider, useContext } from './context/index.js';
51
54
  // import { createContext, useContext } from './render/component.js';
52
55
  // import { createResource } from './resources/index.js';
@@ -85,7 +88,7 @@ mergeProps, splitProps, } from '@fluixi/dom';
85
88
  export * from "./control-flow.js";
86
89
  // Re-export reactive primitives from @fluixi/reactive
87
90
  export { createStore, untrackStore, unwrap, Store } from '@fluixi/reactive/store';
88
- export { render, portal, isRenderable, initDelegation, cleanupDelegation, createComponent, onMount, onUnmount, useEffect, useRef, useReducer, useMemo, useEventListener, useCallback, lazy, Suspense, SuspenseList, Await,
91
+ export { render, portal, isRenderable, initDelegation, cleanupDelegation, createComponent, onMount, onUnmount, useEffect, useRef, useReducer, useMemo, useEventListener, useCallback, lazy, deferred, Suspense, SuspenseList, Await,
89
92
  // Show,
90
93
  isNode, isLitResult, isJSXElement, $component, } from './render/index.js';
91
94
  // export type {
@@ -1 +1 @@
1
- import{createEffect as Vt,createMemo as Ht,createSignal as Ut,createResource as Zr,createRoot as $t,createComputed as zt,createRenderEffect as Wt,onCleanup as Jt,getOwner as Bt,runWithOwner as qt,batch as Xt,untrack as Yt,createDeferred as Gt,setOwner as Qt}from"@fluixi/reactive/signal";import{createDebounce as to,createDebouncedResource as no,createDebouncedSignal as ro,createSelector as Zt}from"@fluixi/reactive/signal";import{readSignal as en,reduceSignal as tn}from"@fluixi/reactive/operators";import{createRoot as qe}from"@fluixi/reactive/signal";import{isDOMNode as Xe,delegateEvents as ye,insert as Ye}from"@fluixi/dom";import{registerCreateComponent as Oe,asComponent as ke}from"@fluixi/dom";import{untrack as q,onCleanup as m,getOwner as D,createEffect as S,createMemo as X,createSignal as Ee,isSignal as Le,batch as De,runWithOwner as Y,isOwnerDisposed as Me}from"@fluixi/reactive/signal";var L=Symbol.for("fluixi-lifecycle");function G(){let e=D();if(!e)return null;if(!e[L]){let t={mounts:[],effects:[],scheduled:!1};e[L]=t}return e[L]}function Q(e){if(e.scheduled)return;e.scheduled=!0;let t=D();queueMicrotask(()=>{if(Me(t)){e.mounts=[],e.effects=[];return}Y(t,()=>{for(let n of e.mounts)try{let r=n();typeof r=="function"&&m(r)}catch(r){console.error("Error in onMount callback:",r)}for(let n of e.effects){let r;S(()=>{r&&r(),r=n()}),m(()=>{r&&r()})}e.mounts=[],e.effects=[]})})}function g(e){Oe(C)}function C(e,t){return M(e,t)}function M(e,t){let n=typeof e=="function"?q(()=>e(t)):e;if(n!=null&&(typeof n=="function"||typeof n=="object")&&!Le(n)){try{n.$name=e.name}catch{}return ke(n)}return n}function P(e,t=!0){let n=G();if(n){if(!t){n.scheduled||e();return}n.mounts.push(e),Q(n)}else{if(!t){e();return}S(()=>{let r=q(e);typeof r=="function"&&m(r)})}}function w(e){m(e)}function I(e){let t=G();if(t)t.effects.push(e),Q(t);else{let n;S(()=>{n&&n(),n=e()}),m(()=>{n&&n()})}}function Z(e){return X(e)}function ee(e){let t={current:e};return m(()=>{t.current=null}),t}function te(e,t){let[n,r]=Ee(t);return[n,i=>{r(e(n(),i))}]}function ne(e,t,n,r){I(()=>{let o=e&&"current"in e?e.current:e;if(o)return o.addEventListener(t,n,r),()=>{o.removeEventListener(t,n,r)}})}function re(e){return e}import{createSignal as N,createMemo as Ie,createEffect as Fe,createRenderEffect as Ne,isSignal as F,useContext as _e,createContext as je,createSuspenseBoundary as Ke,provideSuspense as oe}from"@fluixi/reactive/signal";import{asSuspense as Ve,isComponent as He,createComponent as se,runWithoutHydration as Ue}from"@fluixi/dom";function ie(e){return typeof window>"u"?!1:typeof Node=="function"&&e instanceof Node?!0:!!(e&&typeof e=="object"&&typeof e.nodeType=="number")}function ae(e){return!e||typeof e!="object"?!1:!!(typeof e._$litType$<"u"||typeof e._$litDirective$<"u"||Array.isArray(e.strings)&&Array.isArray(e.values))}function ce(e){return!!(e&&typeof e=="object"&&typeof e.then=="function"||e instanceof Promise)}function ue(e){return!!(e&&typeof e=="object"&&"type"in e&&"props"in e)}var de=je();function R(e){return se($e,e)}function $e(e){let t=Ke(),n=_e(de),r=n?n.register(t.inFallback):void 0;function o(u){return u==null||typeof u=="boolean"?null:typeof u=="function"&&He(u)&&!F(u)?u():u}let i=Ue(()=>o(e.fallback??null)),s=oe(t,()=>e.children);oe(t,()=>{Ne(()=>{let u=s;if(Array.isArray(u))for(let d of u)typeof d=="function"&&F(d)&&d();else typeof u=="function"&&F(u)&&u()})});let[a,c]=N(void 0),l=ce(s);return l&&(t.increment(),s.then(u=>{c(()=>u),t.decrement()},()=>t.decrement())),Ie(()=>(r?r.showFallback():t.inFallback())?i:l?a():s)}function le(e){return se(ze,e)}function ze(e){let{revealOrder:t="together",tail:n}=e,r=[];function o(){if(t==="together"){let s=r.every(a=>!a.inFallback());r.forEach(a=>{a.setShowContent(s),a.setShowFallback(!s)})}else{let s=t==="backwards"?[...r].reverse():r,a=!1;for(let c of s)a||c.inFallback()?(a=!0,c.setShowContent(!1),c.setShowFallback(n!=="hidden")):(c.setShowContent(!0),c.setShowFallback(!1))}}let i={register:s=>{let[a,c]=N(!0),[l,u]=N(!1);return r.push({inFallback:s,setShowContent:c,setShowFallback:u}),Fe(()=>{s(),o()}),{showContent:a,showFallback:l}}};return de.Provider({value:i,children:e.children})}Ve(R);Object.defineProperty(R,"__suspense",{value:!0,enumerable:!0});import{untrack as fe,createMemo as We,createResource as Je}from"@fluixi/reactive/signal";function _(e,t){let n,r,o;function i(){return r||(r=e().then(a=>n=a.default)),r}t?.preload&&i();let s=(a=>{if(n){let c=n;return fe(()=>c(a))}if(!o){let[c]=Je(()=>i());if(o=c,c.error)throw c.error}return We(()=>{let c=o();return c?fe(()=>c(a)):void 0},void 0,{name:"lazy"})});return s.preload=()=>i().then(()=>{}),s.$lazy=!0,s.loader=e,s}import{createResource as Be}from"@fluixi/reactive/signal";function pe(e){let t=()=>{let r=e.value;return typeof r=="function"?r():r},[n]=Be(t);return()=>{if(n.loading)return e.fallback;let r=e.children;return typeof r=="function"?r(n()):r}}var j=typeof window>"u";function me(e,t,n={}){if(g("render"),ye(["click","input","change","submit"]),j)throw new Error("render() is for client-side only. Use renderToString() on server.");if(!t)throw new Error("Container element is required");let r;return qe(o=>{r=o;let i=typeof e=="function"?e():e;t.textContent="",t.setAttribute("fluixi-js","v1"),Ye(t,()=>i)}),()=>{r&&(r(),r=void 0)}}function Ge(e){return e&&typeof e=="object"&&(e._$litType$!==void 0||e._$litDirective$!==void 0)}function Qe(e,t,n={}){let r=document.createElement("div");r.setAttribute("data-portal","true"),t.appendChild(r);let o=me(e,r,n);return()=>{o(),t.contains(r)&&t.removeChild(r)}}function Ze(e){return!!(e==null||typeof e=="function"||Xe(e)||Ge(e)||Array.isArray(e)||typeof e=="string"||typeof e=="number"||typeof e=="boolean")}function et(){j||ye(["click","input","change","submit"])}function tt(){}import{asProvider as nt}from"@fluixi/dom";import{createContext as rt,useContext as ot}from"@fluixi/reactive/signal";import{readChildren as st}from"@fluixi/reactive/signal";g("index");var ge=!1;function it(){ge||(ge=!0,!(typeof process<"u")&&console.warn("[fluixi] createProvider({ context, value, children }) reads `children` eagerly: the object literal materialises `children` BEFORE the context is stamped, so a routed <Outlet/> that has siblings inside the provider renders detached and its descendants see no context under SSR. Use the lazy form instead:\n createProvider(Context, value, props) // children stays a getter\n // or JSX: <Context.Provider value={…}>{props.children}</Context.Provider>"))}function K(e,t,n){let r=!!e?.Provider,o=r?e:e.context,i=r?t:e.value,s=r?!1:e.debug??!1;r||it();let a=typeof i=="function"?i():i,c=r?n:e;return o.Provider({value:a,get children(){return c?.children},debug:s})}function at(e){let t=h(e);return[t,r=>K(t,r.value,r)]}function he(e,t){if(e.length===0)return st(()=>t);let[n,r]=e[0],o=e.slice(1);return K(n,r,{get children(){return he(o,t)}})}function ct(e){return t=>{let n=x(e);return t.children(n)}}function ut(e,t){let n=x(e);return n===e.defaultValue?t():n}function h(e){let t=rt(e),n=r=>(r.debug,t.Provider({value:r.value,get children(){return r.children},debug:r.debug}));return typeof Symbol<"u"&&Symbol.for&&(n.$$typeof=Symbol.for("react.provider")),n.$$typeof=Symbol.for("react.provider"),{id:t.id,Provider:nt(n),defaultValue:e}}function x(e){let t=ot(e);return t!==void 0?t:e.defaultValue}import{createSignal as dt,createMemo as lt}from"@fluixi/reactive/signal";import{getServerData as ft}from"@fluixi/dom";var pt="__fluixi_iso_states__",yt="__iso:";function mt(){return globalThis[pt]??=new Map}function xe(e){if(typeof window>"u")return;let t=ft();return t?t[yt+e]:void 0}function Te(e,t){let n=xe(e),r=n!==void 0?n:typeof window<"u"&&t.client?t.client():t.fallback,[o,i]=dt(r);return mt().set(e,{server:t.server,set:i}),{value:o,set:i,key:e}}function gt(e,t){let n=xe(e)!==void 0,r=Te(e,{server:t.server,fallback:t.fallback}),o=()=>r.value()??t.fallback,i=d=>{if(!(!t.persist||typeof localStorage>"u"))try{localStorage.setItem(t.persist,JSON.stringify(d))}catch{}},s=d=>{r.set(d),i(d)},a=(d,b)=>{s({...o(),[d]:b})},c={};for(let d of Object.keys(t.fallback))c[d]=lt(()=>o()[d]);let l=null;return{value:o,fields:c,set:s,setField:a,ensureInit:()=>n||!t.client?Promise.resolve():(l||(l=Promise.resolve(t.client()).then(d=>{s(d)}).catch(d=>{throw l=null,d})),l),key:e}}var ve=typeof document>"u",Ce=!ve;function be(){let e=new Map;return{getItem:t=>e.has(t)?e.get(t):null,setItem:(t,n)=>{e.set(t,String(n))},removeItem:t=>{e.delete(t)},clear:()=>e.clear(),key:t=>Array.from(e.keys())[t]??null,get length(){return e.size}}}var A=typeof localStorage<"u"?localStorage:be(),O={get window(){return typeof window<"u"?window:void 0},get document(){return typeof document<"u"?document:void 0}};function ht(e,t){return Ce?e():t}import{createSignal as Se}from"@fluixi/reactive/signal";function xt(e){return e?e===!0?{dark:"dark",light:"light"}:e:null}function Tt(e){let t=e.storageKey??"theme",n=e.attribute??"data-theme",r=xt(e.system),o=()=>{let f=A.getItem(t);return f&&e.themes.includes(f)?f:r&&O.window?.matchMedia?.("(prefers-color-scheme: dark)")?.matches?r.dark:r?r.light:e.default},[i,s]=Se(o()),[a,c]=Se(!1),l=f=>{O.document?.documentElement.setAttribute(n,f);try{A.setItem(t,f)}catch{}},u=f=>{if(!e.themes.includes(f))return;let Ae=i();s(()=>f),l(f),e.onChange?.(f,Ae),e.load&&(c(!0),e.onLoading?.(f),Promise.resolve(e.load(f)).finally(()=>{c(!1),e.onLoaded?.(f)}))};return{value:i,isLoading:a,set:u,toggle:()=>{let f=e.themes.indexOf(i());u(e.themes[(f+1)%e.themes.length])},init:()=>l(i()),headScript:()=>`<script>(function(){try{var c=${JSON.stringify({k:t,a:n,d:e.default,sys:r})},t=localStorage.getItem(c.k);if(!t&&c.sys)t=matchMedia('(prefers-color-scheme: dark)').matches?c.sys.dark:c.sys.light;if(!t)t=c.d;document.documentElement.setAttribute(c.a,t);}catch(e){}})();<\/script>`}}export*from"@fluixi/utils";import{createSignal as U,createMemo as T,createResource as wt,createEffect as $,getOwner as Rt,onCleanup as Pe,untrack as V}from"@fluixi/reactive/signal";import{insert as H,createComponent as we,createNativeElement as k,setAttribute as y}from"@fluixi/dom";import{createContext as E,useContext as Re}from"@fluixi/reactive/signal";import{get as Pr}from"@fluixi/utils/object";import{deepEqual as Rr}from"@fluixi/utils/compare";import{createRouter as At,createBrowserHistory as Ot,matchRoutes as Or,matchPath as kr}from"@fluixi/router";import{createMemoryHistory as Dr,createBrowserHistory as Mr,matchRoutes as Ir,matchPath as Fr}from"@fluixi/router";import{createResource as ir,createSignal as St}from"@fluixi/reactive/signal";var vt=new Map;function Ct(){vt.clear()}function bt(){if(typeof window>"u")return;let e=document.getElementById("__FLUIXI_HYDRATION__");e&&e.remove();let t=document.createTreeWalker(document.body,NodeFilter.SHOW_COMMENT,null),n=[],r;for(;r=t.nextNode();){let o=r,i=o.nodeValue||"";(i.startsWith("#")||i.startsWith("/"))&&n.push(o)}n.forEach(o=>o.remove()),Ct()}typeof window<"u"&&window.addEventListener("load",()=>{setTimeout(bt,100)});var[dr,lr]=St(0);var Pt=h(),fr=Pt.Provider;import{runWithOwner as Kr}from"@fluixi/reactive/signal";var z=E(),kt=E(),Et=E(),Lt=E();function Dt(e,t,n){let r,o=e.route.data;if(typeof o=="function"){let u=!1;Pe(()=>{u=!0});let d=Rt(),[b]=wt(()=>o({params:n.params,location:n.location},d,()=>u));r=b}let i=()=>Lt.Provider({value:r,get children(){return Et.Provider({value:e.params,get children(){return kt.Provider({value:{depth:t,...n},get children(){return we(e.component,{})}})}})}});if(!r)return i();let s=r,a=()=>s.loading,[c,l]=U(V(()=>!a()));return $(()=>l(!a())),T(()=>c()?i():null)}function Mt(e){let t=e.depth+1,[n,r]=U(V(()=>e.matched()[t]?.component));return $(()=>{let o=e.matched()[t]?.component;r(()=>o)}),T(()=>{if(!n())return e.notFound?e.notFound():null;let i=V(()=>e.matched())[t];return Dt(i,t,{matched:e.matched,params:e.params,location:e.location})})}function It(e){return e==null?Ft():typeof e=="function"?we(e,{}):e}function Ft(){let e=k("div");y(e,"class","fx-not-found"),y(e,"role","main"),y(e,"style","min-height:60vh;display:grid;place-content:center;gap:.25rem;text-align:center;font-family:system-ui,-apple-system,sans-serif");let t=k("h1");y(t,"style","margin:0;font-size:2.5rem;font-weight:700"),H(t,"404");let n=k("p");return y(n,"style","margin:0;opacity:.7"),H(n,"This page could not be found."),e.appendChild(t),e.appendChild(n),e}function W(e){let t=e.history??Ot(),n=At({routes:e.routes,base:e.base,history:t}),[r,o]=U(n.state()),i=n.subscribe(o);Pe(()=>{i(),n.destroy()});let s=T(()=>(r().match?.matched??[]).filter(u=>u.component)),a={router:n,location:T(()=>r().location),params:T(()=>r().match?.params??{})},c={depth:-1,matched:s,params:a.params,location:a.location,notFound:()=>It(e.notFound)},l;return z.Provider({value:a,get children(){return l??=Mt(c)}})}var Nt={router:{navigate:()=>{}},location:()=>({pathname:"",search:"",hash:"",query:{}}),params:()=>({})};function v(){let e=Re(z);if(e)return e;if(typeof window>"u")return Nt;throw new Error("[router-next] useRouter must be used within <Router>")}function _t(){let e=v().params;return T(()=>e(),{},{equals:(t,n)=>JSON.stringify(t)===JSON.stringify(n)})}function jt(){let{location:e}=v();return new Proxy({},{get:(t,n)=>e()[n],has:(t,n)=>n in e(),ownKeys:()=>Reflect.ownKeys(e()),getOwnPropertyDescriptor:(t,n)=>Object.getOwnPropertyDescriptor(e(),n)})}function J(){let{router:e}=v();return(t,n)=>e.navigate(t,n)}var p=e=>typeof e=="function"?e():e,Kt=new Set(["href","slot","class","className","active","activeClass","replace","children"]);function B(e){let t=Re(z),n=typeof document>"u",r=()=>t?.router.navigate(p(e.href)??"",{replace:p(e.replace)}),o=k("a");y(o,"href",p(e.href)??""),e.slot&&y(o,"slot",p(e.slot));for(let[s,a]of Object.entries(e))Kt.has(s)||a!=null&&typeof a!="function"&&y(o,s,String(a));if(typeof o.addEventListener=="function")o.addEventListener("click",s=>{s.metaKey||s.ctrlKey||s.shiftKey||s.altKey||(s.preventDefault(),r())});else{let s=p(e.className??e.class)??"";s&&y(o,"class",s)}typeof o.addEventListener=="function"&&$(()=>{let s=p(e.href)??"";o.setAttribute("href",s);let a=p(e.className??e.class)??"",c=p(e.activeClass)??"",l=p(e.active)??t?.location().pathname===s;o.className=[a,l?c:""].filter(Boolean).join(" ")});let i=e.children;return i!=null&&H(o,i),o}import{html as xo,svg as To}from"@fluixi/dom";import{query as Co,queryAll as bo,closest as So,addClass as Po,removeClass as wo,toggleClass as Ro,hasClass as Ao,setAttribute as Oo,getAttribute as ko,removeAttribute as Eo,setStyles as Lo,getStyle as Do,createElement as Mo,removeChildren as Io,appendChildren as Fo,isVisible as No,scrollIntoView as _o,getOffset as jo,delegate as Ko,waitForElement as Vo,observeIntersection as Ho,observeResize as Uo}from"@fluixi/dom";import{classMap as zo,styleMap as Wo,Island as Jo,hydrateIslands as Bo,mergeProps as qo,splitProps as Xo}from"@fluixi/dom";import{Show as Ur,For as $r,Index as zr,Switch as Wr,Match as Jr,Dynamic as Br,ErrorBoundary as qr,Portal as Xr,ClientOnly as Yr,NoSsr as Gr}from"@fluixi/dom";import{createStore as Qo,untrackStore as Zo,unwrap as es,Store as ts}from"@fluixi/reactive/store";var nn="0.0.1",rn="Fluixi";var uo={createComponent:C,onMount:P,onUnmount:w,createEffect:Vt,createMemo:Ht,createSignal:Ut,createContext:h,createRoot:$t,createDeferred:Gt,createComputed:zt,createRenderEffect:Wt,createSelector:Zt,onCleanup:Jt,getOwner:Bt,runWithOwner:qt,batch:Xt,untrack:Yt,useContext:x,setOwner:Qt,Router:W,Link:B,useRouter:v,useNavigate:J,read:en,reduce:tn,VERSION:nn,FRAMEWORK_NAME:rn};g("fluixi element main");export{M as $component,pe as Await,Yr as ClientOnly,Br as Dynamic,qr as ErrorBoundary,rn as FRAMEWORK_NAME,$r as For,zr as Index,Jo as Island,B as Link,Jr as Match,Gr as NoSsr,Xr as Portal,W as Router,Ur as Show,ts as Store,R as Suspense,le as SuspenseList,Wr as Switch,nn as VERSION,Po as addClass,Fo as appendChildren,Xt as batch,zo as classMap,tt as cleanupDelegation,ht as clientOnly,So as closest,he as composeProviders,C as createComponent,zt as createComputed,ct as createConsumer,h as createContext,at as createContextWithProvider,to as createDebounce,no as createDebouncedResource,ro as createDebouncedSignal,Gt as createDeferred,Vt as createEffect,Te as createIsomorphicState,gt as createIsomorphicStore,Ht as createMemo,be as createMemoryStorage,K as createProvider,Wt as createRenderEffect,Zr as createResource,$t as createRoot,Zt as createSelector,Ut as createSignal,Qo as createStore,Tt as createTheme,uo as default,Ko as delegate,Mo as domCreateElement,O as env,ko as getAttribute,jo as getOffset,Bt as getOwner,Do as getStyle,Ao as hasClass,xo as html,Bo as hydrateIslands,et as initDelegation,Ce as isClient,ue as isJSXElement,ae as isLitResult,ie as isNode,Ze as isRenderable,ve as isServer,No as isVisible,_ as lazy,qo as mergeProps,Ho as observeIntersection,Uo as observeResize,Jt as onCleanup,P as onMount,w as onUnmount,Qe as portal,Co as query,bo as queryAll,en as read,tn as reduce,Eo as removeAttribute,Io as removeChildren,wo as removeClass,me as render,qt as runWithOwner,_o as scrollIntoView,Oo as setAttribute,Qt as setOwner,Lo as setStyles,Xo as splitProps,A as storage,Wo as styleMap,To as svg,Ro as toggleClass,Yt as untrack,Zo as untrackStore,es as unwrap,re as useCallback,x as useContext,I as useEffect,ne as useEventListener,jt as useLocation,Z as useMemo,J as useNavigate,_t as useParams,ut as useProvide,te as useReducer,ee as useRef,v as useRouter,Vo as waitForElement};
1
+ import{createEffect as Gt,createMemo as Qt,createSignal as Zt,createResource as So,createRoot as en,createComputed as tn,createRenderEffect as nn,onCleanup as rn,getOwner as on,runWithOwner as sn,batch as an,untrack as cn,createDeferred as un,setOwner as dn}from"@fluixi/reactive/signal";import{createDebounce as Po,createDebouncedResource as Ro,createDebouncedSignal as Ao,createSelector as ln}from"@fluixi/reactive/signal";import{readSignal as fn,reduceSignal as pn}from"@fluixi/reactive/operators";import{createRoot as st}from"@fluixi/reactive/signal";import{registerCoreVersion as De}from"@fluixi/dom";var B="1.0.0-alpha.71";import{stampVersions as X,warnOnVersionSkew as Y,versions as bn}from"@fluixi/dom";De(B);import{isDOMNode as it,delegateEvents as ve,insert as at}from"@fluixi/dom";import{registerCreateComponent as Ie,asComponent as Fe}from"@fluixi/dom";import{untrack as G,onCleanup as m,getOwner as D,createEffect as w,createMemo as Q,createSignal as Ne,isSignal as _e,batch as Ve,runWithOwner as Z,isOwnerDisposed as je}from"@fluixi/reactive/signal";var M=Symbol.for("fluixi-lifecycle");function ee(){let e=D();if(!e)return null;if(!e[M]){let t={mounts:[],effects:[],scheduled:!1};e[M]=t}return e[M]}function te(e){if(e.scheduled)return;e.scheduled=!0;let t=D();queueMicrotask(()=>{if(je(t)){e.mounts=[],e.effects=[];return}Z(t,()=>{for(let n of e.mounts)try{let r=n();typeof r=="function"&&m(r)}catch(r){console.error("Error in onMount callback:",r)}for(let n of e.effects){let r;w(()=>{r&&r(),r=n()}),m(()=>{r&&r()})}e.mounts=[],e.effects=[]})})}function g(e){Ie(C)}function C(e,t){return I(e,t)}function I(e,t){let n=typeof e=="function"?G(()=>e(t)):e;if(n!=null&&(typeof n=="function"||typeof n=="object")&&!_e(n)){try{n.$name=e.name}catch{}return Fe(n)}return n}function P(e,t=!0){let n=ee();if(n){if(!t){n.scheduled||e();return}n.mounts.push(e),te(n)}else{if(!t){e();return}w(()=>{let r=G(e);typeof r=="function"&&m(r)})}}function R(e){m(e)}function F(e){let t=ee();if(t)t.effects.push(e),te(t);else{let n;w(()=>{n&&n(),n=e()}),m(()=>{n&&n()})}}function ne(e){return Q(e)}function re(e){let t={current:e};return m(()=>{t.current=null}),t}function oe(e,t){let[n,r]=Ne(t);return[n,i=>{r(e(n(),i))}]}function se(e,t,n,r){F(()=>{let o=e&&"current"in e?e.current:e;if(o)return o.addEventListener(t,n,r),()=>{o.removeEventListener(t,n,r)}})}function ie(e){return e}import{createSignal as _,createMemo as Ke,createEffect as He,createRenderEffect as Ue,isSignal as N,useContext as $e,createContext as ze,createSuspenseBoundary as We,provideSuspense as ae}from"@fluixi/reactive/signal";import{asSuspense as qe,isComponent as Je,createComponent as ce,runWithoutHydration as Be}from"@fluixi/dom";function ue(e){return typeof window>"u"?!1:typeof Node=="function"&&e instanceof Node?!0:!!(e&&typeof e=="object"&&typeof e.nodeType=="number")}function de(e){return!e||typeof e!="object"?!1:!!(typeof e._$litType$<"u"||typeof e._$litDirective$<"u"||Array.isArray(e.strings)&&Array.isArray(e.values))}function le(e){return!!(e&&typeof e=="object"&&typeof e.then=="function"||e instanceof Promise)}function fe(e){return!!(e&&typeof e=="object"&&"type"in e&&"props"in e)}var pe=ze();function A(e){return ce(Xe,e)}function Xe(e){let t=We(),n=$e(pe),r=n?n.register(t.inFallback):void 0;function o(u){return u==null||typeof u=="boolean"?null:typeof u=="function"&&Je(u)&&!N(u)?u():u}let i=Be(()=>o(e.fallback??null)),s=ae(t,()=>e.children);ae(t,()=>{Ue(()=>{let u=s;if(Array.isArray(u))for(let l of u)typeof l=="function"&&N(l)&&l();else typeof u=="function"&&N(u)&&u()})});let[a,c]=_(void 0),d=le(s);return d&&(t.increment(),s.then(u=>{c(()=>u),t.decrement()},()=>t.decrement())),Ke(()=>(r?r.showFallback():t.inFallback())?i:d?a():s)}function ye(e){return ce(Ye,e)}function Ye(e){let{revealOrder:t="together",tail:n}=e,r=[];function o(){if(t==="together"){let s=r.every(a=>!a.inFallback());r.forEach(a=>{a.setShowContent(s),a.setShowFallback(!s)})}else{let s=t==="backwards"?[...r].reverse():r,a=!1;for(let c of s)a||c.inFallback()?(a=!0,c.setShowContent(!1),c.setShowFallback(n!=="hidden")):(c.setShowContent(!0),c.setShowFallback(!1))}}let i={register:s=>{let[a,c]=_(!0),[d,u]=_(!1);return r.push({inFallback:s,setShowContent:c,setShowFallback:u}),He(()=>{s(),o()}),{showContent:a,showFallback:d}}};return pe.Provider({value:i,children:e.children})}qe(A);Object.defineProperty(A,"__suspense",{value:!0,enumerable:!0});import{untrack as me,createMemo as Ge,createResource as Qe}from"@fluixi/reactive/signal";function b(e,t){let n,r,o;function i(){return r||(r=e().then(a=>n=a.default)),r}t?.preload&&i();let s=(a=>{if(n){let c=n;return me(()=>c(a))}if(!o){let[c]=Qe(()=>i());if(o=c,c.error)throw c.error}return Ge(()=>{let c=o();return c?me(()=>c(a)):void 0},void 0,{name:"lazy"})});return s.preload=()=>i().then(()=>{}),s.$lazy=!0,s.loader=e,s}import{createMemo as Ze,createSignal as et}from"@fluixi/reactive/signal";import{observeIntersection as tt}from"@fluixi/dom/utils";var ge=typeof window>"u";function he(e,t){let n=t.export??"default",r=b(()=>e().then(i=>{let s=i[n];if(typeof s!="function")throw new Error(`deferred(): module has no '${n}' export (got ${typeof s}).`);return{default:s}}),{fallback:t.fallback});function o(i){if(t.strategy.kind==="never")return ge?r(i):null;if(ge||t.strategy.kind==="eager")return r(i);let[s,a]=et(!1),c=()=>{r.preload().then(()=>a(!0))},d=t.strategy.kind==="visible"?nt():void 0;return rt(t.strategy,c,d),Ze(()=>s()?r(i):d??t.fallback??null,void 0,{name:"deferred"})}return o.preload=r.preload,o}function nt(){let e=document.createElement("span");return e.setAttribute("data-fx-load","visible"),e.style.display="block",e}function rt(e,t,n){let r=!1,o=()=>{r||(r=!0,t())};switch(e.kind){case"idle":{let i=globalThis.requestIdleCallback;i?i(o):setTimeout(o,1);return}case"visible":{if(!n||typeof IntersectionObserver>"u"){o();return}let i=tt(n,s=>{s&&(i(),o())},{rootMargin:e.rootMargin??"0px"});return}case"interaction":{let i=()=>{for(let s of e.events)document.removeEventListener(s,i,!0);o()};for(let s of e.events)document.addEventListener(s,i,{capture:!0,passive:!0});return}case"media":{if(typeof matchMedia>"u"){o();return}let i=matchMedia(e.query);if(i.matches){o();return}let s=a=>{a.matches&&(i.removeEventListener("change",s),o())};i.addEventListener("change",s);return}default:o()}}import{createResource as ot}from"@fluixi/reactive/signal";function xe(e){let t=()=>{let r=e.value;return typeof r=="function"?r():r},[n]=ot(t);return()=>{if(n.loading)return e.fallback;let r=e.children;return typeof r=="function"?r(n()):r}}var V=typeof window>"u";function Te(e,t,n={}){if(g("render"),ve(["click","input","change","submit"]),V)throw new Error("render() is for client-side only. Use renderToString() on server.");if(!t)throw new Error("Container element is required");let r;return st(o=>{r=o;let i=typeof e=="function"?e():e;t.textContent="",X(t),Y(),at(t,()=>i)}),()=>{r&&(r(),r=void 0)}}function ct(e){return e&&typeof e=="object"&&(e._$litType$!==void 0||e._$litDirective$!==void 0)}function ut(e,t,n={}){let r=document.createElement("div");r.setAttribute("data-portal","true"),t.appendChild(r);let o=Te(e,r,n);return()=>{o(),t.contains(r)&&t.removeChild(r)}}function dt(e){return!!(e==null||typeof e=="function"||it(e)||ct(e)||Array.isArray(e)||typeof e=="string"||typeof e=="number"||typeof e=="boolean")}function lt(){V||ve(["click","input","change","submit"])}function ft(){}import{asProvider as pt}from"@fluixi/dom";import{createContext as yt,useContext as mt}from"@fluixi/reactive/signal";import{readChildren as gt}from"@fluixi/reactive/signal";g("index");var Ce=!1;function ht(){Ce||(Ce=!0,!(typeof process<"u")&&console.warn("[fluixi] createProvider({ context, value, children }) reads `children` eagerly: the object literal materialises `children` BEFORE the context is stamped, so a routed <Outlet/> that has siblings inside the provider renders detached and its descendants see no context under SSR. Use the lazy form instead:\n createProvider(Context, value, props) // children stays a getter\n // or JSX: <Context.Provider value={…}>{props.children}</Context.Provider>"))}function j(e,t,n){let r=!!e?.Provider,o=r?e:e.context,i=r?t:e.value,s=r?!1:e.debug??!1;r||ht();let a=typeof i=="function"?i():i,c=r?n:e;return o.Provider({value:a,get children(){return c?.children},debug:s})}function xt(e){let t=h(e);return[t,r=>j(t,r.value,r)]}function be(e,t){if(e.length===0)return gt(()=>t);let[n,r]=e[0],o=e.slice(1);return j(n,r,{get children(){return be(o,t)}})}function vt(e){return t=>{let n=x(e);return t.children(n)}}function Tt(e,t){let n=x(e);return n===e.defaultValue?t():n}function h(e){let t=yt(e),n=r=>(r.debug,t.Provider({value:r.value,get children(){return r.children},debug:r.debug}));return typeof Symbol<"u"&&Symbol.for&&(n.$$typeof=Symbol.for("react.provider")),n.$$typeof=Symbol.for("react.provider"),{id:t.id,Provider:pt(n),defaultValue:e}}function x(e){let t=mt(e);return t!==void 0?t:e.defaultValue}import{createSignal as Ct,createMemo as bt}from"@fluixi/reactive/signal";import{getServerData as St}from"@fluixi/dom";var wt="__fluixi_iso_states__",Pt="__iso:";function Rt(){return globalThis[wt]??=new Map}function Se(e){if(typeof window>"u")return;let t=St();return t?t[Pt+e]:void 0}function we(e,t){let n=Se(e),r=n!==void 0?n:typeof window<"u"&&t.client?t.client():t.fallback,[o,i]=Ct(r);return Rt().set(e,{server:t.server,set:i}),{value:o,set:i,key:e}}function At(e,t){let n=Se(e)!==void 0,r=we(e,{server:t.server,fallback:t.fallback}),o=()=>r.value()??t.fallback,i=l=>{if(!(!t.persist||typeof localStorage>"u"))try{localStorage.setItem(t.persist,JSON.stringify(l))}catch{}},s=l=>{r.set(l),i(l)},a=(l,S)=>{s({...o(),[l]:S})},c={};for(let l of Object.keys(t.fallback))c[l]=bt(()=>o()[l]);let d=null;return{value:o,fields:c,set:s,setField:a,ensureInit:()=>n||!t.client?Promise.resolve():(d||(d=Promise.resolve(t.client()).then(l=>{s(l)}).catch(l=>{throw d=null,l})),d),key:e}}var Pe=typeof document>"u",Re=!Pe;function Ae(){let e=new Map;return{getItem:t=>e.has(t)?e.get(t):null,setItem:(t,n)=>{e.set(t,String(n))},removeItem:t=>{e.delete(t)},clear:()=>e.clear(),key:t=>Array.from(e.keys())[t]??null,get length(){return e.size}}}var k=typeof localStorage<"u"?localStorage:Ae(),O={get window(){return typeof window<"u"?window:void 0},get document(){return typeof document<"u"?document:void 0}};function kt(e,t){return Re?e():t}import{createSignal as ke}from"@fluixi/reactive/signal";function Ot(e){return e?e===!0?{dark:"dark",light:"light"}:e:null}function Et(e){let t=e.storageKey??"theme",n=e.attribute??"data-theme",r=Ot(e.system),o=()=>{let f=k.getItem(t);return f&&e.themes.includes(f)?f:r&&O.window?.matchMedia?.("(prefers-color-scheme: dark)")?.matches?r.dark:r?r.light:e.default},[i,s]=ke(o()),[a,c]=ke(!1),d=f=>{O.document?.documentElement.setAttribute(n,f);try{k.setItem(t,f)}catch{}},u=f=>{if(!e.themes.includes(f))return;let Me=i();s(()=>f),d(f),e.onChange?.(f,Me),e.load&&(c(!0),e.onLoading?.(f),Promise.resolve(e.load(f)).finally(()=>{c(!1),e.onLoaded?.(f)}))};return{value:i,isLoading:a,set:u,toggle:()=>{let f=e.themes.indexOf(i());u(e.themes[(f+1)%e.themes.length])},init:()=>d(i()),headScript:()=>`<script>(function(){try{var c=${JSON.stringify({k:t,a:n,d:e.default,sys:r})},t=localStorage.getItem(c.k);if(!t&&c.sys)t=matchMedia('(prefers-color-scheme: dark)').matches?c.sys.dark:c.sys.light;if(!t)t=c.d;document.documentElement.setAttribute(c.a,t);}catch(e){}})();<\/script>`}}import{createSignal as U,createMemo as v,createResource as Nt,createEffect as $,getOwner as _t,onCleanup as Oe,untrack as K}from"@fluixi/reactive/signal";import{insert as H,createComponent as Ee,createNativeElement as E,setAttribute as y}from"@fluixi/dom";import{createContext as L,useContext as Le}from"@fluixi/reactive/signal";import{get as Jr}from"@fluixi/utils/object";import{deepEqual as Xr}from"@fluixi/utils/compare";import{createRouter as Vt,createBrowserHistory as jt,matchRoutes as Gr,matchPath as Qr}from"@fluixi/router";import{createMemoryHistory as to,createBrowserHistory as no,matchRoutes as ro,matchPath as oo}from"@fluixi/router";import{createResource as Or,createSignal as It}from"@fluixi/reactive/signal";var Lt=new Map;function Mt(){Lt.clear()}function Dt(){if(typeof window>"u")return;let e=document.getElementById("__FLUIXI_HYDRATION__");e&&e.remove();let t=document.createTreeWalker(document.body,NodeFilter.SHOW_COMMENT,null),n=[],r;for(;r=t.nextNode();){let o=r,i=o.nodeValue||"";(i.startsWith("#")||i.startsWith("/"))&&n.push(o)}n.forEach(o=>o.remove()),Mt()}typeof window<"u"&&window.addEventListener("load",()=>{setTimeout(Dt,100)});var[Dr,Ir]=It(0);var Ft=h(),Fr=Ft.Provider;import{runWithOwner as co}from"@fluixi/reactive/signal";var z=L(),Kt=L(),Ht=L(),Ut=L();function $t(e,t,n){let r,o=e.route.data;if(typeof o=="function"){let u=!1;Oe(()=>{u=!0});let l=_t(),[S]=Nt(()=>o({params:n.params,location:n.location},l,()=>u));r=S}let i=()=>Ut.Provider({value:r,get children(){return Ht.Provider({value:e.params,get children(){return Kt.Provider({value:{depth:t,...n},get children(){return Ee(e.component,{})}})}})}});if(!r)return i();let s=r,a=()=>s.loading,[c,d]=U(K(()=>!a()));return $(()=>d(!a())),v(()=>c()?i():null)}function zt(e){let t=e.depth+1,[n,r]=U(K(()=>e.matched()[t]?.component));return $(()=>{let o=e.matched()[t]?.component;r(()=>o)}),v(()=>{if(!n())return e.notFound?e.notFound():null;let i=K(()=>e.matched())[t];return $t(i,t,{matched:e.matched,params:e.params,location:e.location})})}function Wt(e){return e==null?qt():typeof e=="function"?Ee(e,{}):e}function qt(){let e=E("div");y(e,"class","fx-not-found"),y(e,"role","main"),y(e,"style","min-height:60vh;display:grid;place-content:center;gap:.25rem;text-align:center;font-family:system-ui,-apple-system,sans-serif");let t=E("h1");y(t,"style","margin:0;font-size:2.5rem;font-weight:700"),H(t,"404");let n=E("p");return y(n,"style","margin:0;opacity:.7"),H(n,"This page could not be found."),e.appendChild(t),e.appendChild(n),e}function W(e){let t=e.history??jt(),n=Vt({routes:e.routes,base:e.base,history:t}),[r,o]=U(n.state()),i=n.subscribe(o);Oe(()=>{i(),n.destroy()});let s=v(()=>(r().match?.matched??[]).filter(u=>u.component)),a={router:n,location:v(()=>r().location),params:v(()=>r().match?.params??{})},c={depth:-1,matched:s,params:a.params,location:a.location,notFound:()=>Wt(e.notFound)},d;return z.Provider({value:a,get children(){return d??=zt(c)}})}var Jt={router:{navigate:()=>{}},location:()=>({pathname:"",search:"",hash:"",query:{}}),params:()=>({})};function T(){let e=Le(z);if(e)return e;if(typeof window>"u")return Jt;throw new Error("[router-next] useRouter must be used within <Router>")}function Bt(){let e=T().params;return v(()=>e(),{},{equals:(t,n)=>JSON.stringify(t)===JSON.stringify(n)})}function Xt(){let{location:e}=T();return new Proxy({},{get:(t,n)=>e()[n],has:(t,n)=>n in e(),ownKeys:()=>Reflect.ownKeys(e()),getOwnPropertyDescriptor:(t,n)=>Object.getOwnPropertyDescriptor(e(),n)})}function q(){let{router:e}=T();return(t,n)=>e.navigate(t,n)}var p=e=>typeof e=="function"?e():e,Yt=new Set(["href","slot","class","className","active","activeClass","replace","children"]);function J(e){let t=Le(z),n=typeof document>"u",r=()=>t?.router.navigate(p(e.href)??"",{replace:p(e.replace)}),o=E("a");y(o,"href",p(e.href)??""),e.slot&&y(o,"slot",p(e.slot));for(let[s,a]of Object.entries(e))Yt.has(s)||a!=null&&typeof a!="function"&&y(o,s,String(a));if(typeof o.addEventListener=="function")o.addEventListener("click",s=>{s.metaKey||s.ctrlKey||s.shiftKey||s.altKey||(s.preventDefault(),r())});else{let s=p(e.className??e.class)??"";s&&y(o,"class",s)}typeof o.addEventListener=="function"&&$(()=>{let s=p(e.href)??"";o.setAttribute("href",s);let a=p(e.className??e.class)??"",c=p(e.activeClass)??"",d=p(e.active)??t?.location().pathname===s;o.className=[a,d?c:""].filter(Boolean).join(" ")});let i=e.children;return i!=null&&H(o,i),o}import{html as Ko,svg as Ho}from"@fluixi/dom";import{query as $o,queryAll as zo,closest as Wo,addClass as qo,removeClass as Jo,toggleClass as Bo,hasClass as Xo,setAttribute as Yo,getAttribute as Go,removeAttribute as Qo,setStyles as Zo,getStyle as es,createElement as ts,removeChildren as ns,appendChildren as rs,isVisible as os,scrollIntoView as ss,getOffset as is,delegate as as,waitForElement as cs,observeIntersection as us,observeResize as ds}from"@fluixi/dom";import{classMap as fs,styleMap as ps,Island as ys,hydrateIslands as ms,mergeProps as gs,splitProps as hs}from"@fluixi/dom";import{Show as fo,For as po,Index as yo,Switch as mo,Match as go,Dynamic as ho,ErrorBoundary as xo,Portal as vo,ClientOnly as To,NoSsr as Co}from"@fluixi/dom";import{createStore as Ts,untrackStore as Cs,unwrap as bs,Store as Ss}from"@fluixi/reactive/store";var yn="0.0.1",mn="Fluixi";var Do={createComponent:C,onMount:P,onUnmount:R,createEffect:Gt,createMemo:Qt,createSignal:Zt,createContext:h,createRoot:en,createDeferred:un,createComputed:tn,createRenderEffect:nn,createSelector:ln,onCleanup:rn,getOwner:on,runWithOwner:sn,batch:an,untrack:cn,useContext:x,setOwner:dn,Router:W,Link:J,useRouter:T,useNavigate:q,read:fn,reduce:pn,VERSION:yn,FRAMEWORK_NAME:mn};g("fluixi element main");export{I as $component,xe as Await,To as ClientOnly,ho as Dynamic,xo as ErrorBoundary,mn as FRAMEWORK_NAME,po as For,yo as Index,ys as Island,J as Link,go as Match,Co as NoSsr,vo as Portal,W as Router,fo as Show,Ss as Store,A as Suspense,ye as SuspenseList,mo as Switch,yn as VERSION,qo as addClass,rs as appendChildren,an as batch,fs as classMap,ft as cleanupDelegation,kt as clientOnly,Wo as closest,be as composeProviders,C as createComponent,tn as createComputed,vt as createConsumer,h as createContext,xt as createContextWithProvider,Po as createDebounce,Ro as createDebouncedResource,Ao as createDebouncedSignal,un as createDeferred,Gt as createEffect,we as createIsomorphicState,At as createIsomorphicStore,Qt as createMemo,Ae as createMemoryStorage,j as createProvider,nn as createRenderEffect,So as createResource,en as createRoot,ln as createSelector,Zt as createSignal,Ts as createStore,Et as createTheme,Do as default,he as deferred,as as delegate,ts as domCreateElement,O as env,Go as getAttribute,is as getOffset,on as getOwner,es as getStyle,Xo as hasClass,Ko as html,ms as hydrateIslands,lt as initDelegation,Re as isClient,fe as isJSXElement,de as isLitResult,ue as isNode,dt as isRenderable,Pe as isServer,os as isVisible,b as lazy,gs as mergeProps,us as observeIntersection,ds as observeResize,rn as onCleanup,P as onMount,R as onUnmount,ut as portal,$o as query,zo as queryAll,fn as read,pn as reduce,Qo as removeAttribute,ns as removeChildren,Jo as removeClass,Te as render,sn as runWithOwner,ss as scrollIntoView,Yo as setAttribute,dn as setOwner,Zo as setStyles,hs as splitProps,k as storage,ps as styleMap,Ho as svg,Bo as toggleClass,cn as untrack,Cs as untrackStore,bs as unwrap,ie as useCallback,x as useContext,F as useEffect,se as useEventListener,Xt as useLocation,ne as useMemo,q as useNavigate,Bt as useParams,Tt as useProvide,oe as useReducer,re as useRef,T as useRouter,cs as waitForElement};
@@ -1 +1 @@
1
- "use strict";var J=Object.defineProperty;var Se=Object.getOwnPropertyDescriptor;var be=Object.getOwnPropertyNames;var Pe=Object.prototype.hasOwnProperty;var ge=(e,t)=>{for(var n in t)J(e,n,{get:t[n],enumerable:!0})},W=(e,t,n,o)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of be(t))!Pe.call(e,i)&&i!==n&&J(e,i,{get:()=>t[i],enumerable:!(o=Se(t,i))||o.enumerable});return e},oe=(e,t,n)=>(W(e,t,"default"),n&&W(n,t,"default"));var we=e=>W(J({},"__esModule",{value:!0}),e);var De={};ge(De,{$component:()=>D,ClientOnly:()=>u.ClientOnly,DEV:()=>w,Dynamic:()=>u.Dynamic,ErrorBoundary:()=>u.ErrorBoundary,FRAMEWORK_NAME:()=>te,For:()=>u.For,Fragment:()=>m.Fragment,Index:()=>u.Index,Match:()=>u.Match,NoSsr:()=>u.NoSsr,Portal:()=>u.Portal,Show:()=>u.Show,Store:()=>g.Store,Suspense:()=>M,Switch:()=>u.Switch,VERSION:()=>ee,addClass:()=>a.addClass,batch:()=>s.batch,classMap:()=>K.classMap,cleanupDelegation:()=>fe,composeProviders:()=>Q,createComponent:()=>S,createComputed:()=>s.createComputed,createConsumer:()=>xe,createContext:()=>F,createContextWithProvider:()=>me,createDebounce:()=>$.createDebounce,createDeferred:()=>s.createDeferred,createEffect:()=>s.createEffect,createIsomorphicState:()=>he,createMemo:()=>s.createMemo,createProvider:()=>N,createRenderEffect:()=>s.createRenderEffect,createResource:()=>s.createResource,createRoot:()=>s.createRoot,createSelector:()=>$.createSelector,createSignal:()=>s.createSignal,createStore:()=>g.createStore,default:()=>je,delegateEvents:()=>a.delegateEvents,devOnly:()=>Y,getFrameworkInfo:()=>Te,getOwner:()=>s.getOwner,getSharedConfig:()=>B,hydrate:()=>a.hydrate,initDelegation:()=>pe,insert:()=>a.insert,isDOMNode:()=>a.isDOMNode,isDev:()=>H,isLitTemplateResult:()=>a.isLitTemplateResult,isRenderable:()=>ue,jsx:()=>m.jsx,jsxs:()=>m.jsxs,lazy:()=>q,onCleanup:()=>s.onCleanup,onMount:()=>E,onUnmount:()=>k,portal:()=>ce,read:()=>z.readSignal,reduce:()=>z.reduceSignal,removeClass:()=>a.removeClass,render:()=>I,runWithOwner:()=>s.runWithOwner,setAttribute:()=>a.setAttribute,setOwner:()=>s.setOwner,setProperty:()=>a.setProperty,spread:()=>a.spread,styleMap:()=>K.styleMap,toggleClass:()=>a.toggleClass,untrack:()=>s.untrack,untrackStore:()=>g.untrackStore,useCallback:()=>_,useContext:()=>P,useEffect:()=>b,useEventListener:()=>A,useMemo:()=>R,useProvide:()=>Ce,useReducer:()=>L,useRef:()=>O});module.exports=we(De);var s=require("@fluixi/reactive/signal"),$=require("@fluixi/reactive/signal"),z=require("@fluixi/reactive/operators"),g=require("@fluixi/reactive/store");var ae=require("@fluixi/reactive/signal"),h=require("@fluixi/dom");var j=require("@fluixi/dom"),r=require("@fluixi/reactive/signal"),Ee={context:null,owner:null};function B(){return Ee}var w=typeof process<"u"&&!1,X=Symbol.for("fluixi-lifecycle");function re(){let e=(0,r.getOwner)();if(!e)return null;if(!e[X]){let t={mounts:[],effects:[],scheduled:!1};e[X]=t}return e[X]}function se(e){if(e.scheduled)return;e.scheduled=!0;let t=(0,r.getOwner)();queueMicrotask(()=>{if((0,r.isOwnerDisposed)(t)){e.mounts=[],e.effects=[];return}(0,r.runWithOwner)(t,()=>{for(let n of e.mounts)try{let o=n();typeof o=="function"&&(0,r.onCleanup)(o)}catch(o){console.error("Error in onMount callback:",o)}for(let n of e.effects){let o;(0,r.createEffect)(()=>{o&&o(),o=n()}),(0,r.onCleanup)(()=>{o&&o()})}e.mounts=[],e.effects=[]})})}function T(e){(0,j.registerCreateComponent)(S)}function S(e,t){return D(e,t)}function D(e,t){let n=typeof e=="function"?(0,r.untrack)(()=>e(t)):e;if(n!=null&&(typeof n=="function"||typeof n=="object")&&!(0,r.isSignal)(n)){try{n.$name=e.name}catch{}return(0,j.asComponent)(n)}return n}function E(e,t=!0){let n=re();if(n){if(!t){n.scheduled||e();return}n.mounts.push(e),se(n)}else{if(!t){e();return}(0,r.createEffect)(()=>{let o=(0,r.untrack)(e);typeof o=="function"&&(0,r.onCleanup)(o)})}}function k(e){(0,r.onCleanup)(e)}function b(e){let t=re();if(t)t.effects.push(e),se(t);else{let n;(0,r.createEffect)(()=>{n&&n(),n=e()}),(0,r.onCleanup)(()=>{n&&n()})}}function R(e){return(0,r.createMemo)(e)}function O(e){let t={current:e};return(0,r.onCleanup)(()=>{t.current=null}),t}function L(e,t){let[n,o]=(0,r.createSignal)(t);return[n,p=>{o(e(n(),p))}]}function A(e,t,n,o){b(()=>{let i=e&&"current"in e?e.current:e;if(i)return i.addEventListener(t,n,o),()=>{i.removeEventListener(t,n,o)}})}function _(e){return e}function H(){return w}function Y(e){w&&e()}var c=require("@fluixi/reactive/signal"),C=require("@fluixi/dom");function ie(e){return!!(e&&typeof e=="object"&&typeof e.then=="function"||e instanceof Promise)}var ke=(0,c.createContext)();function M(e){return(0,C.createComponent)(Re,e)}function Re(e){let t=(0,c.createSuspenseBoundary)(),n=(0,c.useContext)(ke),o=n?n.register(t.inFallback):void 0;function i(f){return f==null||typeof f=="boolean"?null:typeof f=="function"&&(0,C.isComponent)(f)&&!(0,c.isSignal)(f)?f():f}let p=(0,C.runWithoutHydration)(()=>i(e.fallback??null)),y=(0,c.provideSuspense)(t,()=>e.children);(0,c.provideSuspense)(t,()=>{(0,c.createRenderEffect)(()=>{let f=y;if(Array.isArray(f))for(let V of f)typeof V=="function"&&(0,c.isSignal)(V)&&V();else typeof f=="function"&&(0,c.isSignal)(f)&&f()})});let[x,l]=(0,c.createSignal)(void 0),ne=ie(y);return ne&&(t.increment(),y.then(f=>{l(()=>f),t.decrement()},()=>t.decrement())),(0,c.createMemo)(()=>(o?o.showFallback():t.inFallback())?p:ne?x():y)}(0,C.asSuspense)(M);Object.defineProperty(M,"__suspense",{value:!0,enumerable:!0});var v=require("@fluixi/reactive/signal");function q(e,t){let n,o,i;function p(){return o||(o=e().then(x=>n=x.default)),o}t?.preload&&p();let y=(x=>{if(n){let l=n;return(0,v.untrack)(()=>l(x))}if(!i){let[l]=(0,v.createResource)(()=>p());if(i=l,l.error)throw l.error}return(0,v.createMemo)(()=>{let l=i();return l?(0,v.untrack)(()=>l(x)):void 0},void 0,{name:"lazy"})});return y.preload=()=>p().then(()=>{}),y.$lazy=!0,y.loader=e,y}var Oe=require("@fluixi/reactive/signal");var G=typeof window>"u";function I(e,t,n={}){if(T("render"),(0,h.delegateEvents)(["click","input","change","submit"]),G)throw new Error("render() is for client-side only. Use renderToString() on server.");if(!t)throw new Error("Container element is required");let o;return(0,ae.createRoot)(i=>{o=i;let p=typeof e=="function"?e():e;t.textContent="",t.setAttribute("fluixi-js","v1"),(0,h.insert)(t,()=>p)}),()=>{o&&(o(),o=void 0)}}function Le(e){return e&&typeof e=="object"&&(e._$litType$!==void 0||e._$litDirective$!==void 0)}function ce(e,t,n={}){let o=document.createElement("div");o.setAttribute("data-portal","true"),t.appendChild(o);let i=I(e,o,n);return()=>{i(),t.contains(o)&&t.removeChild(o)}}function ue(e){return!!(e==null||typeof e=="function"||(0,h.isDOMNode)(e)||Le(e)||Array.isArray(e)||typeof e=="string"||typeof e=="number"||typeof e=="boolean")}function pe(){G||(0,h.delegateEvents)(["click","input","change","submit"])}function fe(){}var le=require("@fluixi/dom"),U=require("@fluixi/reactive/signal"),ye=require("@fluixi/reactive/signal");T("index");var de=!1;function Ae(){de||(de=!0,!(typeof process<"u")&&console.warn("[fluixi] createProvider({ context, value, children }) reads `children` eagerly: the object literal materialises `children` BEFORE the context is stamped, so a routed <Outlet/> that has siblings inside the provider renders detached and its descendants see no context under SSR. Use the lazy form instead:\n createProvider(Context, value, props) // children stays a getter\n // or JSX: <Context.Provider value={…}>{props.children}</Context.Provider>"))}function N(e,t,n){let o=!!e?.Provider,i=o?e:e.context,p=o?t:e.value,y=o?!1:e.debug??!1;o||Ae();let x=typeof p=="function"?p():p,l=o?n:e;return i.Provider({value:x,get children(){return l?.children},debug:y})}function me(e){let t=F(e);return[t,o=>N(t,o.value,o)]}function Q(e,t){if(e.length===0)return(0,ye.readChildren)(()=>t);let[n,o]=e[0],i=e.slice(1);return N(n,o,{get children(){return Q(i,t)}})}function xe(e){return t=>{let n=P(e);return t.children(n)}}function Ce(e,t){let n=P(e);return n===e.defaultValue?t():n}function F(e){let t=(0,U.createContext)(e),n=o=>(o.debug,t.Provider({value:o.value,get children(){return o.children},debug:o.debug}));return typeof Symbol<"u"&&Symbol.for&&(n.$$typeof=Symbol.for("react.provider")),n.$$typeof=Symbol.for("react.provider"),{id:t.id,Provider:(0,le.asProvider)(n),defaultValue:e}}function P(e){let t=(0,U.useContext)(e);return t!==void 0?t:e.defaultValue}var Z=require("@fluixi/reactive/signal"),ve=require("@fluixi/dom"),_e="__fluixi_iso_states__",Me="__iso:";function Ie(){return globalThis[_e]??=new Map}function Fe(e){if(typeof window>"u")return;let t=(0,ve.getServerData)();return t?t[Me+e]:void 0}function he(e,t){let n=Fe(e),o=n!==void 0?n:typeof window<"u"&&t.client?t.client():t.fallback,[i,p]=(0,Z.createSignal)(o);return Ie().set(e,{server:t.server,set:p}),{value:i,set:p,key:e}}var K=require("@fluixi/dom");var u=require("@fluixi/dom");var a=require("@fluixi/dom");var m={};oe(m,require("@fluixi/jsx/jsx-runtime"));var d=require("@fluixi/reactive/signal");var ee="0.0.1",te="Fluixi";function Te(){return{name:te,version:ee,features:{ssr:!0,hydration:!0,jsx:!0,litHtml:!0,signals:!0,fineGrained:!0,lazy:!0,hooks:!0,devMode:!0}}}var je={createSignal:d.createSignal,createEffect:d.createEffect,createMemo:d.createMemo,createRoot:d.createRoot,batch:d.batch,untrack:d.untrack,onCleanup:d.onCleanup,createContext:F,useContext:P,createComponent:S,onMount:E,onUnmount:k,useEffect:b,useMemo:R,useRef:O,useReducer:L,useEventListener:A,useCallback:_,render:I,VERSION:ee,FRAMEWORK_NAME:te,getFrameworkInfo:Te};T("index");
1
+ "use strict";var q=Object.defineProperty;var we=Object.getOwnPropertyDescriptor;var ke=Object.getOwnPropertyNames;var Ee=Object.prototype.hasOwnProperty;var Re=(e,t)=>{for(var n in t)q(e,n,{get:t[n],enumerable:!0})},X=(e,t,n,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of ke(t))!Ee.call(e,i)&&i!==n&&q(e,i,{get:()=>t[i],enumerable:!(r=we(t,i))||r.enumerable});return e},oe=(e,t,n)=>(X(e,t,"default"),n&&X(n,t,"default"));var Oe=e=>X(q({},"__esModule",{value:!0}),e);var ze={};Re(ze,{$component:()=>N,ClientOnly:()=>u.ClientOnly,DEV:()=>k,Dynamic:()=>u.Dynamic,ErrorBoundary:()=>u.ErrorBoundary,FRAMEWORK_NAME:()=>ne,For:()=>u.For,Fragment:()=>y.Fragment,Index:()=>u.Index,Match:()=>u.Match,NoSsr:()=>u.NoSsr,Portal:()=>u.Portal,Show:()=>u.Show,Store:()=>w.Store,Suspense:()=>I,Switch:()=>u.Switch,VERSION:()=>te,addClass:()=>a.addClass,batch:()=>s.batch,classMap:()=>W.classMap,cleanupDelegation:()=>ye,composeProviders:()=>Z,createComponent:()=>b,createComputed:()=>s.createComputed,createConsumer:()=>Te,createContext:()=>D,createContextWithProvider:()=>he,createDebounce:()=>z.createDebounce,createDeferred:()=>s.createDeferred,createEffect:()=>s.createEffect,createIsomorphicState:()=>ge,createMemo:()=>s.createMemo,createProvider:()=>$,createRenderEffect:()=>s.createRenderEffect,createResource:()=>s.createResource,createRoot:()=>s.createRoot,createSelector:()=>z.createSelector,createSignal:()=>s.createSignal,createStore:()=>w.createStore,default:()=>$e,delegateEvents:()=>a.delegateEvents,devOnly:()=>G,getFrameworkInfo:()=>Pe,getOwner:()=>s.getOwner,getSharedConfig:()=>H,hydrate:()=>a.hydrate,initDelegation:()=>me,insert:()=>a.insert,isDOMNode:()=>a.isDOMNode,isDev:()=>Y,isLitTemplateResult:()=>a.isLitTemplateResult,isRenderable:()=>pe,jsx:()=>y.jsx,jsxs:()=>y.jsxs,lazy:()=>U,onCleanup:()=>s.onCleanup,onMount:()=>E,onUnmount:()=>R,portal:()=>le,read:()=>K.readSignal,reduce:()=>K.reduceSignal,removeClass:()=>a.removeClass,render:()=>F,runWithOwner:()=>s.runWithOwner,setAttribute:()=>a.setAttribute,setOwner:()=>s.setOwner,setProperty:()=>a.setProperty,spread:()=>a.spread,styleMap:()=>W.styleMap,toggleClass:()=>a.toggleClass,untrack:()=>s.untrack,untrackStore:()=>w.untrackStore,useCallback:()=>_,useContext:()=>P,useEffect:()=>g,useEventListener:()=>M,useMemo:()=>O,useProvide:()=>Se,useReducer:()=>A,useRef:()=>L});module.exports=Oe(ze);var s=require("@fluixi/reactive/signal"),z=require("@fluixi/reactive/signal"),K=require("@fluixi/reactive/operators"),w=require("@fluixi/reactive/store");var fe=require("@fluixi/reactive/signal");var ie=require("@fluixi/dom");var se="1.0.0-alpha.71";var C=require("@fluixi/dom");(0,ie.registerCoreVersion)(se);var T=require("@fluixi/dom");var j=require("@fluixi/dom"),o=require("@fluixi/reactive/signal"),Le={context:null,owner:null};function H(){return Le}var k=typeof process<"u"&&!1,B=Symbol.for("fluixi-lifecycle");function ae(){let e=(0,o.getOwner)();if(!e)return null;if(!e[B]){let t={mounts:[],effects:[],scheduled:!1};e[B]=t}return e[B]}function ce(e){if(e.scheduled)return;e.scheduled=!0;let t=(0,o.getOwner)();queueMicrotask(()=>{if((0,o.isOwnerDisposed)(t)){e.mounts=[],e.effects=[];return}(0,o.runWithOwner)(t,()=>{for(let n of e.mounts)try{let r=n();typeof r=="function"&&(0,o.onCleanup)(r)}catch(r){console.error("Error in onMount callback:",r)}for(let n of e.effects){let r;(0,o.createEffect)(()=>{r&&r(),r=n()}),(0,o.onCleanup)(()=>{r&&r()})}e.mounts=[],e.effects=[]})})}function S(e){(0,j.registerCreateComponent)(b)}function b(e,t){return N(e,t)}function N(e,t){let n=typeof e=="function"?(0,o.untrack)(()=>e(t)):e;if(n!=null&&(typeof n=="function"||typeof n=="object")&&!(0,o.isSignal)(n)){try{n.$name=e.name}catch{}return(0,j.asComponent)(n)}return n}function E(e,t=!0){let n=ae();if(n){if(!t){n.scheduled||e();return}n.mounts.push(e),ce(n)}else{if(!t){e();return}(0,o.createEffect)(()=>{let r=(0,o.untrack)(e);typeof r=="function"&&(0,o.onCleanup)(r)})}}function R(e){(0,o.onCleanup)(e)}function g(e){let t=ae();if(t)t.effects.push(e),ce(t);else{let n;(0,o.createEffect)(()=>{n&&n(),n=e()}),(0,o.onCleanup)(()=>{n&&n()})}}function O(e){return(0,o.createMemo)(e)}function L(e){let t={current:e};return(0,o.onCleanup)(()=>{t.current=null}),t}function A(e,t){let[n,r]=(0,o.createSignal)(t);return[n,d=>{r(e(n(),d))}]}function M(e,t,n,r){g(()=>{let i=e&&"current"in e?e.current:e;if(i)return i.addEventListener(t,n,r),()=>{i.removeEventListener(t,n,r)}})}function _(e){return e}function Y(){return k}function G(e){k&&e()}var c=require("@fluixi/reactive/signal"),v=require("@fluixi/dom");function ue(e){return!!(e&&typeof e=="object"&&typeof e.then=="function"||e instanceof Promise)}var Ae=(0,c.createContext)();function I(e){return(0,v.createComponent)(Me,e)}function Me(e){let t=(0,c.createSuspenseBoundary)(),n=(0,c.useContext)(Ae),r=n?n.register(t.inFallback):void 0;function i(f){return f==null||typeof f=="boolean"?null:typeof f=="function"&&(0,v.isComponent)(f)&&!(0,c.isSignal)(f)?f():f}let d=(0,v.runWithoutHydration)(()=>i(e.fallback??null)),m=(0,c.provideSuspense)(t,()=>e.children);(0,c.provideSuspense)(t,()=>{(0,c.createRenderEffect)(()=>{let f=m;if(Array.isArray(f))for(let J of f)typeof J=="function"&&(0,c.isSignal)(J)&&J();else typeof f=="function"&&(0,c.isSignal)(f)&&f()})});let[x,p]=(0,c.createSignal)(void 0),re=ue(m);return re&&(t.increment(),m.then(f=>{p(()=>f),t.decrement()},()=>t.decrement())),(0,c.createMemo)(()=>(r?r.showFallback():t.inFallback())?d:re?x():m)}(0,v.asSuspense)(I);Object.defineProperty(I,"__suspense",{value:!0,enumerable:!0});var h=require("@fluixi/reactive/signal");function U(e,t){let n,r,i;function d(){return r||(r=e().then(x=>n=x.default)),r}t?.preload&&d();let m=(x=>{if(n){let p=n;return(0,h.untrack)(()=>p(x))}if(!i){let[p]=(0,h.createResource)(()=>d());if(i=p,p.error)throw p.error}return(0,h.createMemo)(()=>{let p=i();return p?(0,h.untrack)(()=>p(x)):void 0},void 0,{name:"lazy"})});return m.preload=()=>d().then(()=>{}),m.$lazy=!0,m.loader=e,m}var de=require("@fluixi/reactive/signal"),_e=require("@fluixi/dom/utils");var Ie=require("@fluixi/reactive/signal");var Q=typeof window>"u";function F(e,t,n={}){if(S("render"),(0,T.delegateEvents)(["click","input","change","submit"]),Q)throw new Error("render() is for client-side only. Use renderToString() on server.");if(!t)throw new Error("Container element is required");let r;return(0,fe.createRoot)(i=>{r=i;let d=typeof e=="function"?e():e;t.textContent="",(0,C.stampVersions)(t),(0,C.warnOnVersionSkew)(),(0,T.insert)(t,()=>d)}),()=>{r&&(r(),r=void 0)}}function Fe(e){return e&&typeof e=="object"&&(e._$litType$!==void 0||e._$litDirective$!==void 0)}function le(e,t,n={}){let r=document.createElement("div");r.setAttribute("data-portal","true"),t.appendChild(r);let i=F(e,r,n);return()=>{i(),t.contains(r)&&t.removeChild(r)}}function pe(e){return!!(e==null||typeof e=="function"||(0,T.isDOMNode)(e)||Fe(e)||Array.isArray(e)||typeof e=="string"||typeof e=="number"||typeof e=="boolean")}function me(){Q||(0,T.delegateEvents)(["click","input","change","submit"])}function ye(){}var ve=require("@fluixi/dom"),V=require("@fluixi/reactive/signal"),Ce=require("@fluixi/reactive/signal");S("index");var xe=!1;function De(){xe||(xe=!0,!(typeof process<"u")&&console.warn("[fluixi] createProvider({ context, value, children }) reads `children` eagerly: the object literal materialises `children` BEFORE the context is stamped, so a routed <Outlet/> that has siblings inside the provider renders detached and its descendants see no context under SSR. Use the lazy form instead:\n createProvider(Context, value, props) // children stays a getter\n // or JSX: <Context.Provider value={…}>{props.children}</Context.Provider>"))}function $(e,t,n){let r=!!e?.Provider,i=r?e:e.context,d=r?t:e.value,m=r?!1:e.debug??!1;r||De();let x=typeof d=="function"?d():d,p=r?n:e;return i.Provider({value:x,get children(){return p?.children},debug:m})}function he(e){let t=D(e);return[t,r=>$(t,r.value,r)]}function Z(e,t){if(e.length===0)return(0,Ce.readChildren)(()=>t);let[n,r]=e[0],i=e.slice(1);return $(n,r,{get children(){return Z(i,t)}})}function Te(e){return t=>{let n=P(e);return t.children(n)}}function Se(e,t){let n=P(e);return n===e.defaultValue?t():n}function D(e){let t=(0,V.createContext)(e),n=r=>(r.debug,t.Provider({value:r.value,get children(){return r.children},debug:r.debug}));return typeof Symbol<"u"&&Symbol.for&&(n.$$typeof=Symbol.for("react.provider")),n.$$typeof=Symbol.for("react.provider"),{id:t.id,Provider:(0,ve.asProvider)(n),defaultValue:e}}function P(e){let t=(0,V.useContext)(e);return t!==void 0?t:e.defaultValue}var ee=require("@fluixi/reactive/signal"),be=require("@fluixi/dom"),je="__fluixi_iso_states__",Ne="__iso:";function Ue(){return globalThis[je]??=new Map}function Ve(e){if(typeof window>"u")return;let t=(0,be.getServerData)();return t?t[Ne+e]:void 0}function ge(e,t){let n=Ve(e),r=n!==void 0?n:typeof window<"u"&&t.client?t.client():t.fallback,[i,d]=(0,ee.createSignal)(r);return Ue().set(e,{server:t.server,set:d}),{value:i,set:d,key:e}}var W=require("@fluixi/dom");var u=require("@fluixi/dom");var a=require("@fluixi/dom");var y={};oe(y,require("@fluixi/jsx/jsx-runtime"));var l=require("@fluixi/reactive/signal");var te="0.0.1",ne="Fluixi";function Pe(){return{name:ne,version:te,features:{ssr:!0,hydration:!0,jsx:!0,litHtml:!0,signals:!0,fineGrained:!0,lazy:!0,hooks:!0,devMode:!0}}}var $e={createSignal:l.createSignal,createEffect:l.createEffect,createMemo:l.createMemo,createRoot:l.createRoot,batch:l.batch,untrack:l.untrack,onCleanup:l.onCleanup,createContext:D,useContext:P,createComponent:b,onMount:E,onUnmount:R,useEffect:g,useMemo:O,useRef:L,useReducer:A,useEventListener:M,useCallback:_,render:F,VERSION:te,FRAMEWORK_NAME:ne,getFrameworkInfo:Pe};S("index");
@@ -1 +1 @@
1
- var te=Object.defineProperty;var ne=Object.getOwnPropertyDescriptor;var oe=Object.getOwnPropertyNames;var re=Object.prototype.hasOwnProperty;var j=(e,t,n,o)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of oe(t))!re.call(e,r)&&r!==n&&te(e,r,{get:()=>t[r],enumerable:!(o=ne(t,r))||o.enumerable});return e},D=(e,t,n)=>(j(e,t,"default"),n&&j(n,t,"default"));import{createEffect as hn,createMemo as Tn,createSignal as Sn,createResource as bn,createRoot as Pn,createComputed as gn,createRenderEffect as wn,onCleanup as En,getOwner as kn,runWithOwner as Rn,batch as On,untrack as Ln,createDeferred as An,setOwner as _n}from"@fluixi/reactive/signal";import{createDebounce as In,createSelector as Fn}from"@fluixi/reactive/signal";import{readSignal as Dn,reduceSignal as Un}from"@fluixi/reactive/operators";import{createStore as $n,untrackStore as zn,Store as Kn}from"@fluixi/reactive/store";import{createRoot as Ee}from"@fluixi/reactive/signal";import{isDOMNode as ke,delegateEvents as q,insert as Re}from"@fluixi/dom";import{registerCreateComponent as se,asComponent as ie}from"@fluixi/dom";import{untrack as U,onCleanup as p,getOwner as L,createEffect as x,createMemo as N,createSignal as ae,isSignal as ce,batch as ue,runWithOwner as $,isOwnerDisposed as pe}from"@fluixi/reactive/signal";var fe={context:null,owner:null};function z(){return fe}var C=typeof process<"u"&&!1,O=Symbol.for("fluixi-lifecycle");function K(){let e=L();if(!e)return null;if(!e[O]){let t={mounts:[],effects:[],scheduled:!1};e[O]=t}return e[O]}function V(e){if(e.scheduled)return;e.scheduled=!0;let t=L();queueMicrotask(()=>{if(pe(t)){e.mounts=[],e.effects=[];return}$(t,()=>{for(let n of e.mounts)try{let o=n();typeof o=="function"&&p(o)}catch(o){console.error("Error in onMount callback:",o)}for(let n of e.effects){let o;x(()=>{o&&o(),o=n()}),p(()=>{o&&o()})}e.mounts=[],e.effects=[]})})}function d(e){se(l)}function l(e,t){return A(e,t)}function A(e,t){let n=typeof e=="function"?U(()=>e(t)):e;if(n!=null&&(typeof n=="function"||typeof n=="object")&&!ce(n)){try{n.$name=e.name}catch{}return ie(n)}return n}function v(e,t=!0){let n=K();if(n){if(!t){n.scheduled||e();return}n.mounts.push(e),V(n)}else{if(!t){e();return}x(()=>{let o=U(e);typeof o=="function"&&p(o)})}}function h(e){p(e)}function y(e){let t=K();if(t)t.effects.push(e),V(t);else{let n;x(()=>{n&&n(),n=e()}),p(()=>{n&&n()})}}function T(e){return N(e)}function S(e){let t={current:e};return p(()=>{t.current=null}),t}function b(e,t){let[n,o]=ae(t);return[n,s=>{o(e(n(),s))}]}function P(e,t,n,o){y(()=>{let r=e&&"current"in e?e.current:e;if(r)return r.addEventListener(t,n,o),()=>{r.removeEventListener(t,n,o)}})}function g(e){return e}function W(){return C}function J(e){C&&e()}import{createSignal as de,createMemo as le,createEffect as Ct,createRenderEffect as ye,isSignal as _,useContext as me,createContext as xe,createSuspenseBoundary as Ce,provideSuspense as X}from"@fluixi/reactive/signal";import{asSuspense as ve,isComponent as he,createComponent as Te,runWithoutHydration as Se}from"@fluixi/dom";function B(e){return!!(e&&typeof e=="object"&&typeof e.then=="function"||e instanceof Promise)}var be=xe();function w(e){return Te(Pe,e)}function Pe(e){let t=Ce(),n=me(be),o=n?n.register(t.inFallback):void 0;function r(i){return i==null||typeof i=="boolean"?null:typeof i=="function"&&he(i)&&!_(i)?i():i}let s=Se(()=>r(e.fallback??null)),c=X(t,()=>e.children);X(t,()=>{ye(()=>{let i=c;if(Array.isArray(i))for(let R of i)typeof R=="function"&&_(R)&&R();else typeof i=="function"&&_(i)&&i()})});let[u,a]=de(void 0),F=B(c);return F&&(t.increment(),c.then(i=>{a(()=>i),t.decrement()},()=>t.decrement())),le(()=>(o?o.showFallback():t.inFallback())?s:F?u():c)}ve(w);Object.defineProperty(w,"__suspense",{value:!0,enumerable:!0});import{untrack as H,createMemo as ge,createResource as we}from"@fluixi/reactive/signal";function Y(e,t){let n,o,r;function s(){return o||(o=e().then(u=>n=u.default)),o}t?.preload&&s();let c=(u=>{if(n){let a=n;return H(()=>a(u))}if(!r){let[a]=we(()=>s());if(r=a,a.error)throw a.error}return ge(()=>{let a=r();return a?H(()=>a(u)):void 0},void 0,{name:"lazy"})});return c.preload=()=>s().then(()=>{}),c.$lazy=!0,c.loader=e,c}import{createResource as gt}from"@fluixi/reactive/signal";var M=typeof window>"u";function E(e,t,n={}){if(d("render"),q(["click","input","change","submit"]),M)throw new Error("render() is for client-side only. Use renderToString() on server.");if(!t)throw new Error("Container element is required");let o;return Ee(r=>{o=r;let s=typeof e=="function"?e():e;t.textContent="",t.setAttribute("fluixi-js","v1"),Re(t,()=>s)}),()=>{o&&(o(),o=void 0)}}function Oe(e){return e&&typeof e=="object"&&(e._$litType$!==void 0||e._$litDirective$!==void 0)}function Le(e,t,n={}){let o=document.createElement("div");o.setAttribute("data-portal","true"),t.appendChild(o);let r=E(e,o,n);return()=>{r(),t.contains(o)&&t.removeChild(o)}}function Ae(e){return!!(e==null||typeof e=="function"||ke(e)||Oe(e)||Array.isArray(e)||typeof e=="string"||typeof e=="number"||typeof e=="boolean")}function _e(){M||q(["click","input","change","submit"])}function Me(){}import{asProvider as Ie}from"@fluixi/dom";import{createContext as Fe,useContext as je}from"@fluixi/reactive/signal";import{readChildren as De}from"@fluixi/reactive/signal";d("index");var G=!1;function Ue(){G||(G=!0,!(typeof process<"u")&&console.warn("[fluixi] createProvider({ context, value, children }) reads `children` eagerly: the object literal materialises `children` BEFORE the context is stamped, so a routed <Outlet/> that has siblings inside the provider renders detached and its descendants see no context under SSR. Use the lazy form instead:\n createProvider(Context, value, props) // children stays a getter\n // or JSX: <Context.Provider value={…}>{props.children}</Context.Provider>"))}function I(e,t,n){let o=!!e?.Provider,r=o?e:e.context,s=o?t:e.value,c=o?!1:e.debug??!1;o||Ue();let u=typeof s=="function"?s():s,a=o?n:e;return r.Provider({value:u,get children(){return a?.children},debug:c})}function Ne(e){let t=k(e);return[t,o=>I(t,o.value,o)]}function Q(e,t){if(e.length===0)return De(()=>t);let[n,o]=e[0],r=e.slice(1);return I(n,o,{get children(){return Q(r,t)}})}function $e(e){return t=>{let n=m(e);return t.children(n)}}function ze(e,t){let n=m(e);return n===e.defaultValue?t():n}function k(e){let t=Fe(e),n=o=>(o.debug,t.Provider({value:o.value,get children(){return o.children},debug:o.debug}));return typeof Symbol<"u"&&Symbol.for&&(n.$$typeof=Symbol.for("react.provider")),n.$$typeof=Symbol.for("react.provider"),{id:t.id,Provider:Ie(n),defaultValue:e}}function m(e){let t=je(e);return t!==void 0?t:e.defaultValue}import{createSignal as Ke,createMemo as Yt}from"@fluixi/reactive/signal";import{getServerData as Ve}from"@fluixi/dom";var We="__fluixi_iso_states__",Je="__iso:";function Xe(){return globalThis[We]??=new Map}function Be(e){if(typeof window>"u")return;let t=Ve();return t?t[Je+e]:void 0}function He(e,t){let n=Be(e),o=n!==void 0?n:typeof window<"u"&&t.client?t.client():t.fallback,[r,s]=Ke(o);return Xe().set(e,{server:t.server,set:s}),{value:r,set:s,key:e}}import{classMap as Bn,styleMap as Hn}from"@fluixi/dom";import{Show as en,For as tn,Index as nn,Switch as on,Match as rn,Dynamic as sn,ErrorBoundary as an,Portal as cn,ClientOnly as un,NoSsr as pn}from"@fluixi/dom";import{insert as Gn,spread as Qn,setAttribute as Zn,setProperty as eo,addClass as to,removeClass as no,toggleClass as oo,delegateEvents as ro,isDOMNode as so,isLitTemplateResult as io,hydrate as ao}from"@fluixi/dom";var f={};D(f,fn);import*as fn from"@fluixi/jsx/jsx-runtime";import{createSignal as qe,createEffect as Ge,createMemo as Qe,createRoot as Ze,batch as et,untrack as tt,onCleanup as nt}from"@fluixi/reactive/signal";var Z="0.0.1",ee="Fluixi";function Ye(){return{name:ee,version:Z,features:{ssr:!0,hydration:!0,jsx:!0,litHtml:!0,signals:!0,fineGrained:!0,lazy:!0,hooks:!0,devMode:!0}}}var xn={createSignal:qe,createEffect:Ge,createMemo:Qe,createRoot:Ze,batch:et,untrack:tt,onCleanup:nt,createContext:k,useContext:m,createComponent:l,onMount:v,onUnmount:h,useEffect:y,useMemo:T,useRef:S,useReducer:b,useEventListener:P,useCallback:g,render:E,VERSION:Z,FRAMEWORK_NAME:ee,getFrameworkInfo:Ye};d("index");var export_Fragment=f.Fragment;var export_jsx=f.jsx;var export_jsxs=f.jsxs;export{A as $component,un as ClientOnly,C as DEV,sn as Dynamic,an as ErrorBoundary,ee as FRAMEWORK_NAME,tn as For,export_Fragment as Fragment,nn as Index,rn as Match,pn as NoSsr,cn as Portal,en as Show,Kn as Store,w as Suspense,on as Switch,Z as VERSION,to as addClass,On as batch,Bn as classMap,Me as cleanupDelegation,Q as composeProviders,l as createComponent,gn as createComputed,$e as createConsumer,k as createContext,Ne as createContextWithProvider,In as createDebounce,An as createDeferred,hn as createEffect,He as createIsomorphicState,Tn as createMemo,I as createProvider,wn as createRenderEffect,bn as createResource,Pn as createRoot,Fn as createSelector,Sn as createSignal,$n as createStore,xn as default,ro as delegateEvents,J as devOnly,Ye as getFrameworkInfo,kn as getOwner,z as getSharedConfig,ao as hydrate,_e as initDelegation,Gn as insert,so as isDOMNode,W as isDev,io as isLitTemplateResult,Ae as isRenderable,export_jsx as jsx,export_jsxs as jsxs,Y as lazy,En as onCleanup,v as onMount,h as onUnmount,Le as portal,Dn as read,Un as reduce,no as removeClass,E as render,Rn as runWithOwner,Zn as setAttribute,_n as setOwner,eo as setProperty,Qn as spread,Hn as styleMap,oo as toggleClass,Ln as untrack,zn as untrackStore,g as useCallback,m as useContext,y as useEffect,P as useEventListener,T as useMemo,ze as useProvide,b as useReducer,S as useRef};
1
+ var oe=Object.defineProperty;var se=Object.getOwnPropertyDescriptor;var ie=Object.getOwnPropertyNames;var ae=Object.prototype.hasOwnProperty;var j=(e,t,n,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of ie(t))!ae.call(e,o)&&o!==n&&oe(e,o,{get:()=>t[o],enumerable:!(r=se(t,o))||r.enumerable});return e},N=(e,t,n)=>(j(e,t,"default"),n&&j(n,t,"default"));import{createEffect as Un,createMemo as Vn,createSignal as $n,createResource as zn,createRoot as Kn,createComputed as Wn,createRenderEffect as Jn,onCleanup as Xn,getOwner as qn,runWithOwner as Bn,batch as Hn,untrack as Yn,createDeferred as Gn,setOwner as Qn}from"@fluixi/reactive/signal";import{createDebounce as er,createSelector as tr}from"@fluixi/reactive/signal";import{readSignal as rr,reduceSignal as or}from"@fluixi/reactive/operators";import{createStore as ir,untrackStore as ar,Store as cr}from"@fluixi/reactive/store";import{createRoot as Le}from"@fluixi/reactive/signal";import{registerCoreVersion as ce}from"@fluixi/dom";var U="1.0.0-alpha.71";import{stampVersions as V,warnOnVersionSkew as $,versions as pt}from"@fluixi/dom";ce(U);import{isDOMNode as Ae,delegateEvents as Z,insert as Me}from"@fluixi/dom";import{registerCreateComponent as ue,asComponent as de}from"@fluixi/dom";import{untrack as z,onCleanup as d,getOwner as L,createEffect as x,createMemo as K,createSignal as fe,isSignal as le,batch as pe,runWithOwner as W,isOwnerDisposed as me}from"@fluixi/reactive/signal";var ye={context:null,owner:null};function J(){return ye}var v=typeof process<"u"&&!1,O=Symbol.for("fluixi-lifecycle");function X(){let e=L();if(!e)return null;if(!e[O]){let t={mounts:[],effects:[],scheduled:!1};e[O]=t}return e[O]}function q(e){if(e.scheduled)return;e.scheduled=!0;let t=L();queueMicrotask(()=>{if(me(t)){e.mounts=[],e.effects=[];return}W(t,()=>{for(let n of e.mounts)try{let r=n();typeof r=="function"&&d(r)}catch(r){console.error("Error in onMount callback:",r)}for(let n of e.effects){let r;x(()=>{r&&r(),r=n()}),d(()=>{r&&r()})}e.mounts=[],e.effects=[]})})}function l(e){ue(p)}function p(e,t){return A(e,t)}function A(e,t){let n=typeof e=="function"?z(()=>e(t)):e;if(n!=null&&(typeof n=="function"||typeof n=="object")&&!le(n)){try{n.$name=e.name}catch{}return de(n)}return n}function C(e,t=!0){let n=X();if(n){if(!t){n.scheduled||e();return}n.mounts.push(e),q(n)}else{if(!t){e();return}x(()=>{let r=z(e);typeof r=="function"&&d(r)})}}function h(e){d(e)}function m(e){let t=X();if(t)t.effects.push(e),q(t);else{let n;x(()=>{n&&n(),n=e()}),d(()=>{n&&n()})}}function T(e){return K(e)}function S(e){let t={current:e};return d(()=>{t.current=null}),t}function b(e,t){let[n,r]=fe(t);return[n,s=>{r(e(n(),s))}]}function g(e,t,n,r){m(()=>{let o=e&&"current"in e?e.current:e;if(o)return o.addEventListener(t,n,r),()=>{o.removeEventListener(t,n,r)}})}function P(e){return e}function B(){return v}function H(e){v&&e()}import{createSignal as xe,createMemo as ve,createEffect as Et,createRenderEffect as Ce,isSignal as M,useContext as he,createContext as Te,createSuspenseBoundary as Se,provideSuspense as Y}from"@fluixi/reactive/signal";import{asSuspense as be,isComponent as ge,createComponent as Pe,runWithoutHydration as we}from"@fluixi/dom";function G(e){return!!(e&&typeof e=="object"&&typeof e.then=="function"||e instanceof Promise)}var ke=Te();function w(e){return Pe(Ee,e)}function Ee(e){let t=Se(),n=he(ke),r=n?n.register(t.inFallback):void 0;function o(i){return i==null||typeof i=="boolean"?null:typeof i=="function"&&ge(i)&&!M(i)?i():i}let s=we(()=>o(e.fallback??null)),c=Y(t,()=>e.children);Y(t,()=>{Ce(()=>{let i=c;if(Array.isArray(i))for(let R of i)typeof R=="function"&&M(R)&&R();else typeof i=="function"&&M(i)&&i()})});let[u,a]=xe(void 0),D=G(c);return D&&(t.increment(),c.then(i=>{a(()=>i),t.decrement()},()=>t.decrement())),ve(()=>(r?r.showFallback():t.inFallback())?s:D?u():c)}be(w);Object.defineProperty(w,"__suspense",{value:!0,enumerable:!0});import{untrack as Q,createMemo as Re,createResource as Oe}from"@fluixi/reactive/signal";function _(e,t){let n,r,o;function s(){return r||(r=e().then(u=>n=u.default)),r}t?.preload&&s();let c=(u=>{if(n){let a=n;return Q(()=>a(u))}if(!o){let[a]=Oe(()=>s());if(o=a,a.error)throw a.error}return Re(()=>{let a=o();return a?Q(()=>a(u)):void 0},void 0,{name:"lazy"})});return c.preload=()=>s().then(()=>{}),c.$lazy=!0,c.loader=e,c}import{createMemo as It,createSignal as Ft}from"@fluixi/reactive/signal";import{observeIntersection as jt}from"@fluixi/dom/utils";import{createResource as $t}from"@fluixi/reactive/signal";var I=typeof window>"u";function k(e,t,n={}){if(l("render"),Z(["click","input","change","submit"]),I)throw new Error("render() is for client-side only. Use renderToString() on server.");if(!t)throw new Error("Container element is required");let r;return Le(o=>{r=o;let s=typeof e=="function"?e():e;t.textContent="",V(t),$(),Me(t,()=>s)}),()=>{r&&(r(),r=void 0)}}function _e(e){return e&&typeof e=="object"&&(e._$litType$!==void 0||e._$litDirective$!==void 0)}function Ie(e,t,n={}){let r=document.createElement("div");r.setAttribute("data-portal","true"),t.appendChild(r);let o=k(e,r,n);return()=>{o(),t.contains(r)&&t.removeChild(r)}}function Fe(e){return!!(e==null||typeof e=="function"||Ae(e)||_e(e)||Array.isArray(e)||typeof e=="string"||typeof e=="number"||typeof e=="boolean")}function De(){I||Z(["click","input","change","submit"])}function je(){}import{asProvider as Ne}from"@fluixi/dom";import{createContext as Ue,useContext as Ve}from"@fluixi/reactive/signal";import{readChildren as $e}from"@fluixi/reactive/signal";l("index");var ee=!1;function ze(){ee||(ee=!0,!(typeof process<"u")&&console.warn("[fluixi] createProvider({ context, value, children }) reads `children` eagerly: the object literal materialises `children` BEFORE the context is stamped, so a routed <Outlet/> that has siblings inside the provider renders detached and its descendants see no context under SSR. Use the lazy form instead:\n createProvider(Context, value, props) // children stays a getter\n // or JSX: <Context.Provider value={…}>{props.children}</Context.Provider>"))}function F(e,t,n){let r=!!e?.Provider,o=r?e:e.context,s=r?t:e.value,c=r?!1:e.debug??!1;r||ze();let u=typeof s=="function"?s():s,a=r?n:e;return o.Provider({value:u,get children(){return a?.children},debug:c})}function Ke(e){let t=E(e);return[t,r=>F(t,r.value,r)]}function te(e,t){if(e.length===0)return $e(()=>t);let[n,r]=e[0],o=e.slice(1);return F(n,r,{get children(){return te(o,t)}})}function We(e){return t=>{let n=y(e);return t.children(n)}}function Je(e,t){let n=y(e);return n===e.defaultValue?t():n}function E(e){let t=Ue(e),n=r=>(r.debug,t.Provider({value:r.value,get children(){return r.children},debug:r.debug}));return typeof Symbol<"u"&&Symbol.for&&(n.$$typeof=Symbol.for("react.provider")),n.$$typeof=Symbol.for("react.provider"),{id:t.id,Provider:Ne(n),defaultValue:e}}function y(e){let t=Ve(e);return t!==void 0?t:e.defaultValue}import{createSignal as Xe,createMemo as xn}from"@fluixi/reactive/signal";import{getServerData as qe}from"@fluixi/dom";var Be="__fluixi_iso_states__",He="__iso:";function Ye(){return globalThis[Be]??=new Map}function Ge(e){if(typeof window>"u")return;let t=qe();return t?t[He+e]:void 0}function Qe(e,t){let n=Ge(e),r=n!==void 0?n:typeof window<"u"&&t.client?t.client():t.fallback,[o,s]=Xe(r);return Ye().set(e,{server:t.server,set:s}),{value:o,set:s,key:e}}import{classMap as pr,styleMap as mr}from"@fluixi/dom";import{Show as Sn,For as bn,Index as gn,Switch as Pn,Match as wn,Dynamic as kn,ErrorBoundary as En,Portal as Rn,ClientOnly as On,NoSsr as Ln}from"@fluixi/dom";import{insert as vr,spread as Cr,setAttribute as hr,setProperty as Tr,addClass as Sr,removeClass as br,toggleClass as gr,delegateEvents as Pr,isDOMNode as wr,isLitTemplateResult as kr,hydrate as Er}from"@fluixi/dom";var f={};N(f,An);import*as An from"@fluixi/jsx/jsx-runtime";import{createSignal as et,createEffect as tt,createMemo as nt,createRoot as rt,batch as ot,untrack as st,onCleanup as it}from"@fluixi/reactive/signal";var ne="0.0.1",re="Fluixi";function Ze(){return{name:re,version:ne,features:{ssr:!0,hydration:!0,jsx:!0,litHtml:!0,signals:!0,fineGrained:!0,lazy:!0,hooks:!0,devMode:!0}}}var Dn={createSignal:et,createEffect:tt,createMemo:nt,createRoot:rt,batch:ot,untrack:st,onCleanup:it,createContext:E,useContext:y,createComponent:p,onMount:C,onUnmount:h,useEffect:m,useMemo:T,useRef:S,useReducer:b,useEventListener:g,useCallback:P,render:k,VERSION:ne,FRAMEWORK_NAME:re,getFrameworkInfo:Ze};l("index");var export_Fragment=f.Fragment;var export_jsx=f.jsx;var export_jsxs=f.jsxs;export{A as $component,On as ClientOnly,v as DEV,kn as Dynamic,En as ErrorBoundary,re as FRAMEWORK_NAME,bn as For,export_Fragment as Fragment,gn as Index,wn as Match,Ln as NoSsr,Rn as Portal,Sn as Show,cr as Store,w as Suspense,Pn as Switch,ne as VERSION,Sr as addClass,Hn as batch,pr as classMap,je as cleanupDelegation,te as composeProviders,p as createComponent,Wn as createComputed,We as createConsumer,E as createContext,Ke as createContextWithProvider,er as createDebounce,Gn as createDeferred,Un as createEffect,Qe as createIsomorphicState,Vn as createMemo,F as createProvider,Jn as createRenderEffect,zn as createResource,Kn as createRoot,tr as createSelector,$n as createSignal,ir as createStore,Dn as default,Pr as delegateEvents,H as devOnly,Ze as getFrameworkInfo,qn as getOwner,J as getSharedConfig,Er as hydrate,De as initDelegation,vr as insert,wr as isDOMNode,B as isDev,kr as isLitTemplateResult,Fe as isRenderable,export_jsx as jsx,export_jsxs as jsxs,_ as lazy,Xn as onCleanup,C as onMount,h as onUnmount,Ie as portal,rr as read,or as reduce,br as removeClass,k as render,Bn as runWithOwner,hr as setAttribute,Qn as setOwner,Tr as setProperty,Cr as spread,mr as styleMap,gr as toggleClass,Yn as untrack,ar as untrackStore,P as useCallback,y as useContext,m as useEffect,g as useEventListener,T as useMemo,Je as useProvide,b as useReducer,S as useRef};
@@ -0,0 +1 @@
1
+ "use strict";var f=Object.defineProperty;var v=Object.getOwnPropertyDescriptor;var k=Object.getOwnPropertyNames;var g=Object.prototype.hasOwnProperty;var h=(e,t)=>{for(var i in t)f(e,i,{get:t[i],enumerable:!0})},b=(e,t,i,a)=>{if(t&&typeof t=="object"||typeof t=="function")for(let n of k(t))!g.call(e,n)&&n!==i&&f(e,n,{get:()=>t[n],enumerable:!(a=v(t,n))||a.enumerable});return e};var C=e=>b(f({},"__esModule",{value:!0}),e);var w={};h(w,{deferred:()=>L});module.exports=C(w);var u=require("@fluixi/reactive/signal"),y=require("@fluixi/dom/utils");var c=require("@fluixi/reactive/signal");function m(e,t){let i,a,n;function r(){return a||(a=e().then(s=>i=s.default)),a}t?.preload&&r();let o=(s=>{if(i){let d=i;return(0,c.untrack)(()=>d(s))}if(!n){let[d]=(0,c.createResource)(()=>r());if(n=d,d.error)throw d.error}return(0,c.createMemo)(()=>{let d=n();return d?(0,c.untrack)(()=>d(s)):void 0},void 0,{name:"lazy"})});return o.preload=()=>r().then(()=>{}),o.$lazy=!0,o.loader=e,o}var p=typeof window>"u";function L(e,t){let i=t.export??"default",a=m(()=>e().then(r=>{let o=r[i];if(typeof o!="function")throw new Error(`deferred(): module has no '${i}' export (got ${typeof o}).`);return{default:o}}),{fallback:t.fallback});function n(r){if(t.strategy.kind==="never")return p?a(r):null;if(p||t.strategy.kind==="eager")return a(r);let[o,s]=(0,u.createSignal)(!1),d=()=>{a.preload().then(()=>s(!0))},l=t.strategy.kind==="visible"?x():void 0;return P(t.strategy,d,l),(0,u.createMemo)(()=>o()?a(r):l??t.fallback??null,void 0,{name:"deferred"})}return n.preload=a.preload,n}function x(){let e=document.createElement("span");return e.setAttribute("data-fx-load","visible"),e.style.display="block",e}function P(e,t,i){let a=!1,n=()=>{a||(a=!0,t())};switch(e.kind){case"idle":{let r=globalThis.requestIdleCallback;r?r(n):setTimeout(n,1);return}case"visible":{if(!i||typeof IntersectionObserver>"u"){n();return}let r=(0,y.observeIntersection)(i,o=>{o&&(r(),n())},{rootMargin:e.rootMargin??"0px"});return}case"interaction":{let r=()=>{for(let o of e.events)document.removeEventListener(o,r,!0);n()};for(let o of e.events)document.addEventListener(o,r,{capture:!0,passive:!0});return}case"media":{if(typeof matchMedia>"u"){n();return}let r=matchMedia(e.query);if(r.matches){n();return}let o=s=>{s.matches&&(r.removeEventListener("change",o),n())};r.addEventListener("change",o);return}default:n()}}
@@ -0,0 +1,36 @@
1
+ /** When to fetch. Mirrors the compiler's `IRLoadStrategy`. */
2
+ export type LoadStrategy = {
3
+ kind: 'eager';
4
+ } | {
5
+ kind: 'idle';
6
+ } | {
7
+ kind: 'visible';
8
+ rootMargin?: string;
9
+ } | {
10
+ kind: 'interaction';
11
+ events: string[];
12
+ } | {
13
+ kind: 'media';
14
+ query: string;
15
+ } | {
16
+ kind: 'never';
17
+ };
18
+ export interface DeferredOptions {
19
+ strategy: LoadStrategy;
20
+ /** Named export to take from the module. Defaults to `default`. */
21
+ export?: string;
22
+ /** Rendered until the module arrives. */
23
+ fallback?: unknown;
24
+ }
25
+ type AnyComponent = (props: any) => any;
26
+ /**
27
+ * Wrap a dynamic import so the component loads when its strategy says to.
28
+ *
29
+ * The returned component still exposes `preload()`, so a route or a hover handler can
30
+ * pull the module forward regardless of the strategy.
31
+ */
32
+ export declare function deferred(loader: () => Promise<Record<string, unknown>>, options: DeferredOptions): AnyComponent & {
33
+ preload: () => Promise<void>;
34
+ };
35
+ export {};
36
+ //# sourceMappingURL=deferred.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deferred.d.ts","sourceRoot":"","sources":["../../../../src/lib/render/deferred.ts"],"names":[],"mappings":"AAkBA,8DAA8D;AAC9D,MAAM,MAAM,YAAY,GACpB;IAAE,IAAI,EAAE,OAAO,CAAA;CAAE,GACjB;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GAChB;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAA;CAAE,GACxC;IAAE,IAAI,EAAE,aAAa,CAAC;IAAC,MAAM,EAAE,MAAM,EAAE,CAAA;CAAE,GACzC;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAChC;IAAE,IAAI,EAAE,OAAO,CAAA;CAAE,CAAC;AAEtB,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,YAAY,CAAC;IACvB,mEAAmE;IACnE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,yCAAyC;IACzC,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,KAAK,YAAY,GAAG,CAAC,KAAK,EAAE,GAAG,KAAK,GAAG,CAAC;AAExC;;;;;GAKG;AACH,wBAAgB,QAAQ,CACtB,MAAM,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,EAC9C,OAAO,EAAE,eAAe,GACvB,YAAY,GAAG;IAAE,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;CAAE,CA4CjD"}
@@ -0,0 +1,141 @@
1
+ /**
2
+ * `deferred(loader, options)` — a component whose module is fetched on a schedule.
3
+ *
4
+ * This is the runtime half of the `load:` directive. It adds only the *when*: which
5
+ * browser signal starts the download. Resolution, Suspense integration and the
6
+ * synchronous-when-preloaded hydration path all come from {@link lazy}, reused unchanged
7
+ * — so a deferred component behaves exactly like a lazy one once its trigger fires.
8
+ *
9
+ * There is no registry and no runtime name lookup. The compiler emits a call with a
10
+ * literal `import()`, which is what lets the bundler do chunking, hashing and
11
+ * tree-shaking as ordinary behaviour rather than as an integration.
12
+ */
13
+ import { createMemo, createSignal } from '@fluixi/reactive/signal';
14
+ import { observeIntersection } from '@fluixi/dom/utils';
15
+ import { lazy } from './lazy.js';
16
+ const isServer = typeof window === 'undefined';
17
+ /**
18
+ * Wrap a dynamic import so the component loads when its strategy says to.
19
+ *
20
+ * The returned component still exposes `preload()`, so a route or a hover handler can
21
+ * pull the module forward regardless of the strategy.
22
+ */
23
+ export function deferred(loader, options) {
24
+ const exportName = options.export ?? 'default';
25
+ // `lazy` wants `{ default }`; the resolver imports named exports, so adapt here rather
26
+ // than making every call site emit an adapter.
27
+ const Lazy = lazy(() => loader().then((mod) => {
28
+ const component = mod[exportName];
29
+ if (typeof component !== 'function') {
30
+ throw new Error(`deferred(): module has no '${exportName}' export (got ${typeof component}).`);
31
+ }
32
+ return { default: component };
33
+ }), { fallback: options.fallback });
34
+ function Deferred(props) {
35
+ // `never` is server-only: the component renders during SSR and its code is meant to
36
+ // stay out of the client bundle entirely. The compiler is what actually drops it —
37
+ // this guard only stops the client from fetching it if one slips through.
38
+ if (options.strategy.kind === 'never')
39
+ return isServer ? Lazy(props) : null;
40
+ if (isServer || options.strategy.kind === 'eager')
41
+ return Lazy(props);
42
+ const [ready, setReady] = createSignal(false);
43
+ const start = () => {
44
+ void Lazy.preload().then(() => setReady(true));
45
+ };
46
+ // `visible` is the one strategy that needs something in the DOM to watch, so it
47
+ // renders an anchor and observes that; the others key off global signals and can
48
+ // render the plain fallback.
49
+ const anchor = options.strategy.kind === 'visible' ? createAnchor() : undefined;
50
+ schedule(options.strategy, start, anchor);
51
+ return createMemo(() => (ready() ? Lazy(props) : (anchor ?? options.fallback ?? null)), undefined, {
52
+ name: 'deferred',
53
+ });
54
+ }
55
+ Deferred.preload = Lazy.preload;
56
+ return Deferred;
57
+ }
58
+ /**
59
+ * A zero-height marker to observe. It occupies the component's slot until the module
60
+ * arrives, so `IntersectionObserver` has something with a position to report.
61
+ */
62
+ function createAnchor() {
63
+ const el = document.createElement('span');
64
+ el.setAttribute('data-fx-load', 'visible');
65
+ el.style.display = 'block';
66
+ return el;
67
+ }
68
+ /** Run `start` when the strategy's trigger fires. Idempotent — it fires at most once. */
69
+ function schedule(strategy, start, anchor) {
70
+ let fired = false;
71
+ const once = () => {
72
+ if (fired)
73
+ return;
74
+ fired = true;
75
+ start();
76
+ };
77
+ switch (strategy.kind) {
78
+ case 'idle': {
79
+ const ric = globalThis
80
+ .requestIdleCallback;
81
+ // Safari has no requestIdleCallback; a timeout keeps the behaviour rather than
82
+ // silently loading eagerly.
83
+ if (ric)
84
+ ric(once);
85
+ else
86
+ setTimeout(once, 1);
87
+ return;
88
+ }
89
+ case 'visible': {
90
+ // Without an observer there is no signal to wait for, so load rather than never
91
+ // rendering — a missing capability should degrade to eager, not to broken.
92
+ if (!anchor || typeof IntersectionObserver === 'undefined') {
93
+ once();
94
+ return;
95
+ }
96
+ const stop = observeIntersection(anchor, (isIntersecting) => {
97
+ if (!isIntersecting)
98
+ return;
99
+ stop();
100
+ once();
101
+ }, { rootMargin: strategy.rootMargin ?? '0px' });
102
+ return;
103
+ }
104
+ case 'interaction': {
105
+ // Listened for on the document rather than the element: the point is the user's
106
+ // first interaction anywhere, and the component often has no DOM yet.
107
+ const handler = () => {
108
+ for (const event of strategy.events) {
109
+ document.removeEventListener(event, handler, true);
110
+ }
111
+ once();
112
+ };
113
+ for (const event of strategy.events) {
114
+ document.addEventListener(event, handler, { capture: true, passive: true });
115
+ }
116
+ return;
117
+ }
118
+ case 'media': {
119
+ if (typeof matchMedia === 'undefined') {
120
+ once();
121
+ return;
122
+ }
123
+ const query = matchMedia(strategy.query);
124
+ if (query.matches) {
125
+ once();
126
+ return;
127
+ }
128
+ const onChange = (e) => {
129
+ if (!e.matches)
130
+ return;
131
+ query.removeEventListener('change', onChange);
132
+ once();
133
+ };
134
+ query.addEventListener('change', onChange);
135
+ return;
136
+ }
137
+ /* c8 ignore next 3 */
138
+ default:
139
+ once();
140
+ }
141
+ }
@@ -0,0 +1 @@
1
+ import{createMemo as y,createSignal as v}from"@fluixi/reactive/signal";import{observeIntersection as k}from"@fluixi/dom/utils";import{untrack as u,createMemo as m,createResource as p}from"@fluixi/reactive/signal";function f(r,a){let d,o,t;function e(){return o||(o=r().then(s=>d=s.default)),o}a?.preload&&e();let n=(s=>{if(d){let i=d;return u(()=>i(s))}if(!t){let[i]=p(()=>e());if(t=i,i.error)throw i.error}return m(()=>{let i=t();return i?u(()=>i(s)):void 0},void 0,{name:"lazy"})});return n.preload=()=>e().then(()=>{}),n.$lazy=!0,n.loader=r,n}var l=typeof window>"u";function M(r,a){let d=a.export??"default",o=f(()=>r().then(e=>{let n=e[d];if(typeof n!="function")throw new Error(`deferred(): module has no '${d}' export (got ${typeof n}).`);return{default:n}}),{fallback:a.fallback});function t(e){if(a.strategy.kind==="never")return l?o(e):null;if(l||a.strategy.kind==="eager")return o(e);let[n,s]=v(!1),i=()=>{o.preload().then(()=>s(!0))},c=a.strategy.kind==="visible"?g():void 0;return h(a.strategy,i,c),y(()=>n()?o(e):c??a.fallback??null,void 0,{name:"deferred"})}return t.preload=o.preload,t}function g(){let r=document.createElement("span");return r.setAttribute("data-fx-load","visible"),r.style.display="block",r}function h(r,a,d){let o=!1,t=()=>{o||(o=!0,a())};switch(r.kind){case"idle":{let e=globalThis.requestIdleCallback;e?e(t):setTimeout(t,1);return}case"visible":{if(!d||typeof IntersectionObserver>"u"){t();return}let e=k(d,n=>{n&&(e(),t())},{rootMargin:r.rootMargin??"0px"});return}case"interaction":{let e=()=>{for(let n of r.events)document.removeEventListener(n,e,!0);t()};for(let n of r.events)document.addEventListener(n,e,{capture:!0,passive:!0});return}case"media":{if(typeof matchMedia>"u"){t();return}let e=matchMedia(r.query);if(e.matches){t();return}let n=s=>{s.matches&&(e.removeEventListener("change",n),t())};e.addEventListener("change",n);return}default:t()}}export{M as deferred};
@@ -1 +1 @@
1
- "use strict";var C=Object.defineProperty;var Y=Object.getOwnPropertyDescriptor;var G=Object.getOwnPropertyNames;var Q=Object.prototype.hasOwnProperty;var Z=(e,n)=>{for(var o in n)C(e,o,{get:n[o],enumerable:!0})},ee=(e,n,o,t)=>{if(n&&typeof n=="object"||typeof n=="function")for(let s of G(n))!Q.call(e,s)&&s!==o&&C(e,s,{get:()=>n[s],enumerable:!(t=Y(n,s))||t.enumerable});return e};var ne=e=>ee(C({},"__esModule",{value:!0}),e);var fe={};Z(fe,{$component:()=>T,Await:()=>q,DEV:()=>x,Suspense:()=>h,SuspenseList:()=>B,batch:()=>r.batch,cleanupDelegation:()=>ue,createComponent:()=>v,createEffect:()=>r.createEffect,createMemo:()=>r.createMemo,devOnly:()=>U,getOwner:()=>r.getOwner,getSharedConfig:()=>k,initDelegation:()=>ae,isDev:()=>z,isJSXElement:()=>I,isLitResult:()=>W,isNode:()=>N,isPromise:()=>g,isRenderable:()=>ce,lazy:()=>H,onCleanup:()=>r.onCleanup,onMount:()=>A,onUnmount:()=>j,portal:()=>se,render:()=>X,runWithOwner:()=>r.runWithOwner,useCallback:()=>_,useEffect:()=>L,useEventListener:()=>$,useMemo:()=>F,useReducer:()=>D,useRef:()=>M});module.exports=ne(fe);var J=require("@fluixi/reactive/signal"),y=require("@fluixi/dom");var b=require("@fluixi/dom"),r=require("@fluixi/reactive/signal"),te={context:null,owner:null};function k(){return te}var x=typeof process<"u"&&!1,S=Symbol.for("fluixi-lifecycle");function O(){let e=(0,r.getOwner)();if(!e)return null;if(!e[S]){let n={mounts:[],effects:[],scheduled:!1};e[S]=n}return e[S]}function P(e){if(e.scheduled)return;e.scheduled=!0;let n=(0,r.getOwner)();queueMicrotask(()=>{if((0,r.isOwnerDisposed)(n)){e.mounts=[],e.effects=[];return}(0,r.runWithOwner)(n,()=>{for(let o of e.mounts)try{let t=o();typeof t=="function"&&(0,r.onCleanup)(t)}catch(t){console.error("Error in onMount callback:",t)}for(let o of e.effects){let t;(0,r.createEffect)(()=>{t&&t(),t=o()}),(0,r.onCleanup)(()=>{t&&t()})}e.mounts=[],e.effects=[]})})}function R(e){(0,b.registerCreateComponent)(v)}function v(e,n){return T(e,n)}function T(e,n){let o=typeof e=="function"?(0,r.untrack)(()=>e(n)):e;if(o!=null&&(typeof o=="function"||typeof o=="object")&&!(0,r.isSignal)(o)){try{o.$name=e.name}catch{}return(0,b.asComponent)(o)}return o}function A(e,n=!0){let o=O();if(o){if(!n){o.scheduled||e();return}o.mounts.push(e),P(o)}else{if(!n){e();return}(0,r.createEffect)(()=>{let t=(0,r.untrack)(e);typeof t=="function"&&(0,r.onCleanup)(t)})}}function j(e){(0,r.onCleanup)(e)}function L(e){let n=O();if(n)n.effects.push(e),P(n);else{let o;(0,r.createEffect)(()=>{o&&o(),o=e()}),(0,r.onCleanup)(()=>{o&&o()})}}function F(e){return(0,r.createMemo)(e)}function M(e){let n={current:e};return(0,r.onCleanup)(()=>{n.current=null}),n}function D(e,n){let[o,t]=(0,r.createSignal)(n);return[o,p=>{t(e(o(),p))}]}function $(e,n,o,t){L(()=>{let s=e&&"current"in e?e.current:e;if(s)return s.addEventListener(n,o,t),()=>{s.removeEventListener(n,o,t)}})}function _(e){return e}function z(){return x}function U(e){x&&e()}var i=require("@fluixi/reactive/signal"),l=require("@fluixi/dom");function N(e){return typeof window>"u"?!1:typeof Node=="function"&&e instanceof Node?!0:!!(e&&typeof e=="object"&&typeof e.nodeType=="number")}function W(e){return!e||typeof e!="object"?!1:!!(typeof e._$litType$<"u"||typeof e._$litDirective$<"u"||Array.isArray(e.strings)&&Array.isArray(e.values))}function g(e){return!!(e&&typeof e=="object"&&typeof e.then=="function"||e instanceof Promise)}function I(e){return!!(e&&typeof e=="object"&&"type"in e&&"props"in e)}var V=(0,i.createContext)();function h(e){return(0,l.createComponent)(oe,e)}function oe(e){let n=(0,i.createSuspenseBoundary)(),o=(0,i.useContext)(V),t=o?o.register(n.inFallback):void 0;function s(a){return a==null||typeof a=="boolean"?null:typeof a=="function"&&(0,l.isComponent)(a)&&!(0,i.isSignal)(a)?a():a}let p=(0,l.runWithoutHydration)(()=>s(e.fallback??null)),u=(0,i.provideSuspense)(n,()=>e.children);(0,i.provideSuspense)(n,()=>{(0,i.createRenderEffect)(()=>{let a=u;if(Array.isArray(a))for(let w of a)typeof w=="function"&&(0,i.isSignal)(w)&&w();else typeof a=="function"&&(0,i.isSignal)(a)&&a()})});let[f,c]=(0,i.createSignal)(void 0),m=g(u);return m&&(n.increment(),u.then(a=>{c(()=>a),n.decrement()},()=>n.decrement())),(0,i.createMemo)(()=>(t?t.showFallback():n.inFallback())?p:m?f():u)}function B(e){return(0,l.createComponent)(re,e)}function re(e){let{revealOrder:n="together",tail:o}=e,t=[];function s(){if(n==="together"){let u=t.every(f=>!f.inFallback());t.forEach(f=>{f.setShowContent(u),f.setShowFallback(!u)})}else{let u=n==="backwards"?[...t].reverse():t,f=!1;for(let c of u)f||c.inFallback()?(f=!0,c.setShowContent(!1),c.setShowFallback(o!=="hidden")):(c.setShowContent(!0),c.setShowFallback(!1))}}let p={register:u=>{let[f,c]=(0,i.createSignal)(!0),[m,a]=(0,i.createSignal)(!1);return t.push({inFallback:u,setShowContent:c,setShowFallback:a}),(0,i.createEffect)(()=>{u(),s()}),{showContent:f,showFallback:m}}};return V.Provider({value:p,children:e.children})}(0,l.asSuspense)(h);Object.defineProperty(h,"__suspense",{value:!0,enumerable:!0});var d=require("@fluixi/reactive/signal");function H(e,n){let o,t,s;function p(){return t||(t=e().then(f=>o=f.default)),t}n?.preload&&p();let u=(f=>{if(o){let c=o;return(0,d.untrack)(()=>c(f))}if(!s){let[c]=(0,d.createResource)(()=>p());if(s=c,c.error)throw c.error}return(0,d.createMemo)(()=>{let c=s();return c?(0,d.untrack)(()=>c(f)):void 0},void 0,{name:"lazy"})});return u.preload=()=>p().then(()=>{}),u.$lazy=!0,u.loader=e,u}var K=require("@fluixi/reactive/signal");function q(e){let n=()=>{let t=e.value;return typeof t=="function"?t():t},[o]=(0,K.createResource)(n);return()=>{if(o.loading)return e.fallback;let t=e.children;return typeof t=="function"?t(o()):t}}var E=typeof window>"u";function X(e,n,o={}){if(R("render"),(0,y.delegateEvents)(["click","input","change","submit"]),E)throw new Error("render() is for client-side only. Use renderToString() on server.");if(!n)throw new Error("Container element is required");let t;return(0,J.createRoot)(s=>{t=s;let p=typeof e=="function"?e():e;n.textContent="",n.setAttribute("fluixi-js","v1"),(0,y.insert)(n,()=>p)}),()=>{t&&(t(),t=void 0)}}function ie(e){return e&&typeof e=="object"&&(e._$litType$!==void 0||e._$litDirective$!==void 0)}function se(e,n,o={}){let t=document.createElement("div");t.setAttribute("data-portal","true"),n.appendChild(t);let s=X(e,t,o);return()=>{s(),n.contains(t)&&n.removeChild(t)}}function ce(e){return!!(e==null||typeof e=="function"||(0,y.isDOMNode)(e)||ie(e)||Array.isArray(e)||typeof e=="string"||typeof e=="number"||typeof e=="boolean")}function ae(){E||(0,y.delegateEvents)(["click","input","change","submit"])}function ue(){}
1
+ "use strict";var g=Object.defineProperty;var oe=Object.getOwnPropertyDescriptor;var re=Object.getOwnPropertyNames;var ie=Object.prototype.hasOwnProperty;var se=(e,n)=>{for(var o in n)g(e,o,{get:n[o],enumerable:!0})},ae=(e,n,o,t)=>{if(n&&typeof n=="object"||typeof n=="function")for(let i of re(n))!ie.call(e,i)&&i!==o&&g(e,i,{get:()=>n[i],enumerable:!(t=oe(n,i))||t.enumerable});return e};var ce=e=>ae(g({},"__esModule",{value:!0}),e);var xe={};se(xe,{$component:()=>L,Await:()=>ee,DEV:()=>h,Suspense:()=>x,SuspenseList:()=>X,batch:()=>r.batch,cleanupDelegation:()=>he,createComponent:()=>T,createEffect:()=>r.createEffect,createMemo:()=>r.createMemo,deferred:()=>G,devOnly:()=>q,getOwner:()=>r.getOwner,getSharedConfig:()=>M,initDelegation:()=>ve,isDev:()=>W,isJSXElement:()=>K,isLitResult:()=>B,isNode:()=>H,isPromise:()=>O,isRenderable:()=>be,lazy:()=>w,onCleanup:()=>r.onCleanup,onMount:()=>$,onUnmount:()=>z,portal:()=>me,render:()=>te,runWithOwner:()=>r.runWithOwner,useCallback:()=>U,useEffect:()=>E,useEventListener:()=>_,useMemo:()=>N,useReducer:()=>V,useRef:()=>I});module.exports=ce(xe);var ne=require("@fluixi/reactive/signal");var A=require("@fluixi/dom");var R="1.0.0-alpha.71";var y=require("@fluixi/dom");(0,A.registerCoreVersion)(R);var b=require("@fluixi/dom");var v=require("@fluixi/dom"),r=require("@fluixi/reactive/signal"),ue={context:null,owner:null};function M(){return ue}var h=typeof process<"u"&&!1,k=Symbol.for("fluixi-lifecycle");function D(){let e=(0,r.getOwner)();if(!e)return null;if(!e[k]){let n={mounts:[],effects:[],scheduled:!1};e[k]=n}return e[k]}function j(e){if(e.scheduled)return;e.scheduled=!0;let n=(0,r.getOwner)();queueMicrotask(()=>{if((0,r.isOwnerDisposed)(n)){e.mounts=[],e.effects=[];return}(0,r.runWithOwner)(n,()=>{for(let o of e.mounts)try{let t=o();typeof t=="function"&&(0,r.onCleanup)(t)}catch(t){console.error("Error in onMount callback:",t)}for(let o of e.effects){let t;(0,r.createEffect)(()=>{t&&t(),t=o()}),(0,r.onCleanup)(()=>{t&&t()})}e.mounts=[],e.effects=[]})})}function F(e){(0,v.registerCreateComponent)(T)}function T(e,n){return L(e,n)}function L(e,n){let o=typeof e=="function"?(0,r.untrack)(()=>e(n)):e;if(o!=null&&(typeof o=="function"||typeof o=="object")&&!(0,r.isSignal)(o)){try{o.$name=e.name}catch{}return(0,v.asComponent)(o)}return o}function $(e,n=!0){let o=D();if(o){if(!n){o.scheduled||e();return}o.mounts.push(e),j(o)}else{if(!n){e();return}(0,r.createEffect)(()=>{let t=(0,r.untrack)(e);typeof t=="function"&&(0,r.onCleanup)(t)})}}function z(e){(0,r.onCleanup)(e)}function E(e){let n=D();if(n)n.effects.push(e),j(n);else{let o;(0,r.createEffect)(()=>{o&&o(),o=e()}),(0,r.onCleanup)(()=>{o&&o()})}}function N(e){return(0,r.createMemo)(e)}function I(e){let n={current:e};return(0,r.onCleanup)(()=>{n.current=null}),n}function V(e,n){let[o,t]=(0,r.createSignal)(n);return[o,a=>{t(e(o(),a))}]}function _(e,n,o,t){E(()=>{let i=e&&"current"in e?e.current:e;if(i)return i.addEventListener(n,o,t),()=>{i.removeEventListener(n,o,t)}})}function U(e){return e}function W(){return h}function q(e){h&&e()}var c=require("@fluixi/reactive/signal"),p=require("@fluixi/dom");function H(e){return typeof window>"u"?!1:typeof Node=="function"&&e instanceof Node?!0:!!(e&&typeof e=="object"&&typeof e.nodeType=="number")}function B(e){return!e||typeof e!="object"?!1:!!(typeof e._$litType$<"u"||typeof e._$litDirective$<"u"||Array.isArray(e.strings)&&Array.isArray(e.values))}function O(e){return!!(e&&typeof e=="object"&&typeof e.then=="function"||e instanceof Promise)}function K(e){return!!(e&&typeof e=="object"&&"type"in e&&"props"in e)}var J=(0,c.createContext)();function x(e){return(0,p.createComponent)(fe,e)}function fe(e){let n=(0,c.createSuspenseBoundary)(),o=(0,c.useContext)(J),t=o?o.register(n.inFallback):void 0;function i(d){return d==null||typeof d=="boolean"?null:typeof d=="function"&&(0,p.isComponent)(d)&&!(0,c.isSignal)(d)?d():d}let a=(0,p.runWithoutHydration)(()=>i(e.fallback??null)),s=(0,c.provideSuspense)(n,()=>e.children);(0,c.provideSuspense)(n,()=>{(0,c.createRenderEffect)(()=>{let d=s;if(Array.isArray(d))for(let S of d)typeof S=="function"&&(0,c.isSignal)(S)&&S();else typeof d=="function"&&(0,c.isSignal)(d)&&d()})});let[u,f]=(0,c.createSignal)(void 0),l=O(s);return l&&(n.increment(),s.then(d=>{f(()=>d),n.decrement()},()=>n.decrement())),(0,c.createMemo)(()=>(t?t.showFallback():n.inFallback())?a:l?u():s)}function X(e){return(0,p.createComponent)(de,e)}function de(e){let{revealOrder:n="together",tail:o}=e,t=[];function i(){if(n==="together"){let s=t.every(u=>!u.inFallback());t.forEach(u=>{u.setShowContent(s),u.setShowFallback(!s)})}else{let s=n==="backwards"?[...t].reverse():t,u=!1;for(let f of s)u||f.inFallback()?(u=!0,f.setShowContent(!1),f.setShowFallback(o!=="hidden")):(f.setShowContent(!0),f.setShowFallback(!1))}}let a={register:s=>{let[u,f]=(0,c.createSignal)(!0),[l,d]=(0,c.createSignal)(!1);return t.push({inFallback:s,setShowContent:f,setShowFallback:d}),(0,c.createEffect)(()=>{s(),i()}),{showContent:u,showFallback:l}}};return J.Provider({value:a,children:e.children})}(0,p.asSuspense)(x);Object.defineProperty(x,"__suspense",{value:!0,enumerable:!0});var m=require("@fluixi/reactive/signal");function w(e,n){let o,t,i;function a(){return t||(t=e().then(u=>o=u.default)),t}n?.preload&&a();let s=(u=>{if(o){let f=o;return(0,m.untrack)(()=>f(u))}if(!i){let[f]=(0,m.createResource)(()=>a());if(i=f,f.error)throw f.error}return(0,m.createMemo)(()=>{let f=i();return f?(0,m.untrack)(()=>f(u)):void 0},void 0,{name:"lazy"})});return s.preload=()=>a().then(()=>{}),s.$lazy=!0,s.loader=e,s}var C=require("@fluixi/reactive/signal"),Y=require("@fluixi/dom/utils");var Q=typeof window>"u";function G(e,n){let o=n.export??"default",t=w(()=>e().then(a=>{let s=a[o];if(typeof s!="function")throw new Error(`deferred(): module has no '${o}' export (got ${typeof s}).`);return{default:s}}),{fallback:n.fallback});function i(a){if(n.strategy.kind==="never")return Q?t(a):null;if(Q||n.strategy.kind==="eager")return t(a);let[s,u]=(0,C.createSignal)(!1),f=()=>{t.preload().then(()=>u(!0))},l=n.strategy.kind==="visible"?pe():void 0;return le(n.strategy,f,l),(0,C.createMemo)(()=>s()?t(a):l??n.fallback??null,void 0,{name:"deferred"})}return i.preload=t.preload,i}function pe(){let e=document.createElement("span");return e.setAttribute("data-fx-load","visible"),e.style.display="block",e}function le(e,n,o){let t=!1,i=()=>{t||(t=!0,n())};switch(e.kind){case"idle":{let a=globalThis.requestIdleCallback;a?a(i):setTimeout(i,1);return}case"visible":{if(!o||typeof IntersectionObserver>"u"){i();return}let a=(0,Y.observeIntersection)(o,s=>{s&&(a(),i())},{rootMargin:e.rootMargin??"0px"});return}case"interaction":{let a=()=>{for(let s of e.events)document.removeEventListener(s,a,!0);i()};for(let s of e.events)document.addEventListener(s,a,{capture:!0,passive:!0});return}case"media":{if(typeof matchMedia>"u"){i();return}let a=matchMedia(e.query);if(a.matches){i();return}let s=u=>{u.matches&&(a.removeEventListener("change",s),i())};a.addEventListener("change",s);return}default:i()}}var Z=require("@fluixi/reactive/signal");function ee(e){let n=()=>{let t=e.value;return typeof t=="function"?t():t},[o]=(0,Z.createResource)(n);return()=>{if(o.loading)return e.fallback;let t=e.children;return typeof t=="function"?t(o()):t}}var P=typeof window>"u";function te(e,n,o={}){if(F("render"),(0,b.delegateEvents)(["click","input","change","submit"]),P)throw new Error("render() is for client-side only. Use renderToString() on server.");if(!n)throw new Error("Container element is required");let t;return(0,ne.createRoot)(i=>{t=i;let a=typeof e=="function"?e():e;n.textContent="",(0,y.stampVersions)(n),(0,y.warnOnVersionSkew)(),(0,b.insert)(n,()=>a)}),()=>{t&&(t(),t=void 0)}}function ye(e){return e&&typeof e=="object"&&(e._$litType$!==void 0||e._$litDirective$!==void 0)}function me(e,n,o={}){let t=document.createElement("div");t.setAttribute("data-portal","true"),n.appendChild(t);let i=te(e,t,o);return()=>{i(),n.contains(t)&&n.removeChild(t)}}function be(e){return!!(e==null||typeof e=="function"||(0,b.isDOMNode)(e)||ye(e)||Array.isArray(e)||typeof e=="string"||typeof e=="number"||typeof e=="boolean")}function ve(){P||(0,b.delegateEvents)(["click","input","change","submit"])}function he(){}
@@ -104,6 +104,8 @@ export { createComponent, onMount, onUnmount, useEffect, useRef, useReducer, use
104
104
  export { Suspense, SuspenseList, type SuspenseProps, type SuspenseListProps, isNode, isLitResult, isPromise, isJSXElement, } from './suspense.js';
105
105
  export { lazy } from "./lazy.js";
106
106
  export type { LazyOptions, LazyComponent } from "./lazy.js";
107
+ export { deferred } from "./deferred.js";
108
+ export type { DeferredOptions, LoadStrategy } from "./deferred.js";
107
109
  export { Await } from './await.js';
108
110
  export type { AwaitProps } from './await.js';
109
111
  export type { Component, ComponentProps, LifecycleCallback, RefObject, } from './component.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/lib/render/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAkBH;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B;;OAEG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB;;OAEG;IACH,MAAM,CAAC,EAAE,IAAI,CAAC;IAEd;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;CACxB;AAMD;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,wBAAgB,MAAM,CACpB,IAAI,EAAE,MAAM,GAAG,EACf,SAAS,EAAE,WAAW,EACtB,OAAO,GAAE,aAAkB,GAC1B,MAAM,IAAI,CA4CZ;AAmBD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,MAAM,CACpB,IAAI,EAAE,MAAM,GAAG,EACf,MAAM,EAAE,WAAW,EACnB,OAAO,GAAE,aAAkB,GAC1B,MAAM,IAAI,CAaZ;AAMD;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,GAAG,GAAG,OAAO,CAchD;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,cAAc,IAAI,IAAI,CAGrC;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,IAAI,IAAI,CAGxC;AAOD,OAAO,EACL,eAAe,EACf,OAAO,EACP,SAAS,EACT,SAAS,EACT,MAAM,EACN,UAAU,EACV,OAAO,EACP,gBAAgB,EAChB,WAAW,EACX,SAAS,EACT,KAAK,EACL,UAAU,EACV,YAAY,EACZ,QAAQ,EACR,YAAY,EACZ,KAAK,EACL,OAAO,EACP,GAAG,EACH,eAAe,EACf,UAAU,GACX,MAAM,gBAAgB,CAAC;AAExB,OAAO,EACL,QAAQ,EACR,YAAY,EAEZ,KAAK,aAAa,EAClB,KAAK,iBAAiB,EAEtB,MAAM,EACN,WAAW,EACX,SAAS,EACT,YAAY,GACb,MAAM,eAAe,CAAC;AAEvB,OAAO,EAAC,IAAI,EAAC,MAAM,WAAW,CAAA;AAC9B,YAAY,EAAC,WAAW,EAAE,aAAa,EAAC,MAAM,WAAW,CAAA;AAEzD,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,YAAY,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAE7C,YAAY,EACV,SAAS,EACT,cAAc,EACd,iBAAiB,EACjB,SAAS,GACV,MAAM,gBAAgB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/lib/render/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAmBH;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B;;OAEG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB;;OAEG;IACH,MAAM,CAAC,EAAE,IAAI,CAAC;IAEd;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;CACxB;AAMD;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,wBAAgB,MAAM,CACpB,IAAI,EAAE,MAAM,GAAG,EACf,SAAS,EAAE,WAAW,EACtB,OAAO,GAAE,aAAkB,GAC1B,MAAM,IAAI,CA+CZ;AAmBD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,MAAM,CACpB,IAAI,EAAE,MAAM,GAAG,EACf,MAAM,EAAE,WAAW,EACnB,OAAO,GAAE,aAAkB,GAC1B,MAAM,IAAI,CAaZ;AAMD;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,GAAG,GAAG,OAAO,CAchD;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,cAAc,IAAI,IAAI,CAGrC;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,IAAI,IAAI,CAGxC;AAOD,OAAO,EACL,eAAe,EACf,OAAO,EACP,SAAS,EACT,SAAS,EACT,MAAM,EACN,UAAU,EACV,OAAO,EACP,gBAAgB,EAChB,WAAW,EACX,SAAS,EACT,KAAK,EACL,UAAU,EACV,YAAY,EACZ,QAAQ,EACR,YAAY,EACZ,KAAK,EACL,OAAO,EACP,GAAG,EACH,eAAe,EACf,UAAU,GACX,MAAM,gBAAgB,CAAC;AAExB,OAAO,EACL,QAAQ,EACR,YAAY,EAEZ,KAAK,aAAa,EAClB,KAAK,iBAAiB,EAEtB,MAAM,EACN,WAAW,EACX,SAAS,EACT,YAAY,GACb,MAAM,eAAe,CAAC;AAEvB,OAAO,EAAC,IAAI,EAAC,MAAM,WAAW,CAAA;AAC9B,YAAY,EAAC,WAAW,EAAE,aAAa,EAAC,MAAM,WAAW,CAAA;AACzD,OAAO,EAAC,QAAQ,EAAC,MAAM,eAAe,CAAA;AACtC,YAAY,EAAC,eAAe,EAAE,YAAY,EAAC,MAAM,eAAe,CAAA;AAEhE,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,YAAY,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAE7C,YAAY,EACV,SAAS,EACT,cAAc,EACd,iBAAiB,EACjB,SAAS,GACV,MAAM,gBAAgB,CAAC"}
@@ -9,6 +9,7 @@
9
9
  * Following SolidJS structure: render logic separated from component creation
10
10
  */
11
11
  import { createRoot } from '@fluixi/reactive/signal';
12
+ import { stampVersions, warnOnVersionSkew } from './versions.js';
12
13
  import { isDOMNode, delegateEvents, insert, } from '@fluixi/dom';
13
14
  import { ensureIntegration, } from './component.js';
14
15
  const isServer = typeof window === 'undefined';
@@ -64,7 +65,10 @@ export function render(code, container, options = {}) {
64
65
  // render effects share the Owner chain with Provider context nodes.
65
66
  // Using domRender() would create a second createRoot, severing the chain.
66
67
  container.textContent = '';
67
- container.setAttribute('fluixi-js', 'v1');
68
+ // Which build is running, on the element and as `window.Fluixi`. `fluixi-js="v1"`
69
+ // said only that Fluixi was involved; a bug report needs the actual versions.
70
+ stampVersions(container);
71
+ warnOnVersionSkew();
68
72
  // Wrap the (already-computed) result in a STABLE thunk so insert() creates a
69
73
  // top-level render effect. Without this, a static array result — e.g. the
70
74
  // imperative backend's `[createMemo(() => createComponent(App)), " "]` — is
@@ -188,4 +192,5 @@ export { Suspense, SuspenseList,
188
192
  // type ShowProps,
189
193
  isNode, isLitResult, isPromise, isJSXElement, } from './suspense.js';
190
194
  export { lazy } from "./lazy.js";
195
+ export { deferred } from "./deferred.js";
191
196
  export { Await } from './await.js';