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

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 (45) 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.mjs +1 -1
  11. package/dist/src/lib/core.cjs +1 -1
  12. package/dist/src/lib/core.d.ts +1 -2
  13. package/dist/src/lib/core.d.ts.map +1 -1
  14. package/dist/src/lib/core.js +5 -2
  15. package/dist/src/lib/core.mjs +1 -1
  16. package/dist/src/lib/index.cjs +1 -1
  17. package/dist/src/lib/index.mjs +1 -1
  18. package/dist/src/lib/render/deferred.cjs +1 -0
  19. package/dist/src/lib/render/deferred.d.ts +36 -0
  20. package/dist/src/lib/render/deferred.d.ts.map +1 -0
  21. package/dist/src/lib/render/deferred.js +141 -0
  22. package/dist/src/lib/render/deferred.mjs +1 -0
  23. package/dist/src/lib/render/index.cjs +1 -1
  24. package/dist/src/lib/render/index.d.ts +2 -0
  25. package/dist/src/lib/render/index.d.ts.map +1 -1
  26. package/dist/src/lib/render/index.js +6 -1
  27. package/dist/src/lib/render/index.mjs +1 -1
  28. package/dist/src/lib/render/versions.cjs +1 -0
  29. package/dist/src/lib/render/versions.d.ts +27 -0
  30. package/dist/src/lib/render/versions.d.ts.map +1 -0
  31. package/dist/src/lib/render/versions.js +51 -0
  32. package/dist/src/lib/render/versions.mjs +1 -0
  33. package/dist/src/utils.cjs +1 -0
  34. package/dist/src/utils.d.ts +10 -0
  35. package/dist/src/utils.d.ts.map +1 -0
  36. package/dist/src/utils.js +9 -0
  37. package/dist/src/utils.mjs +1 -0
  38. package/dist/src/version.generated.cjs +1 -0
  39. package/dist/src/version.generated.d.ts +3 -0
  40. package/dist/src/version.generated.d.ts.map +1 -0
  41. package/dist/src/version.generated.js +3 -0
  42. package/dist/src/version.generated.mjs +1 -0
  43. package/dist/tsconfig.lib.tsbuildinfo +1 -1
  44. package/package.json +10 -10
  45. package/src/index.ts +1 -0
@@ -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 Zt,createMemo as en,createSignal as tn,createResource as wo,createRoot as nn,createComputed as rn,createRenderEffect as on,onCleanup as sn,getOwner as an,runWithOwner as cn,batch as un,untrack as dn,createDeferred as ln,setOwner as fn}from"@fluixi/reactive/signal";import{createDebounce as Ro,createDebouncedResource as Ao,createDebouncedSignal as ko,createSelector as pn}from"@fluixi/reactive/signal";import{readSignal as mn,reduceSignal as yn}from"@fluixi/reactive/operators";import{createRoot as at}from"@fluixi/reactive/signal";var X="1.0.0-alpha.70";import{VERSION as De}from"@fluixi/dom";import{VERSION as Fe}from"@fluixi/reactive";var y={core:X,dom:De,reactive:Fe};function Y(e){e.setAttribute("fluixi",y.core),e.setAttribute("fx-dom",y.dom),e.setAttribute("fx-reactive",y.reactive),typeof globalThis<"u"&&(globalThis.Fluixi=y)}function G(){new Set(Object.values(y)).size<=1||console.warn(`[fluixi] package versions disagree — core ${y.core}, dom ${y.dom}, reactive ${y.reactive}. These ship as one release, so a mismatch usually means a stale lockfile or two copies resolved side by side. Reinstall, or check for duplicates with \`pnpm why @fluixi/dom\`.`)}import{isDOMNode as ct,delegateEvents as Te,insert as ut}from"@fluixi/dom";import{registerCreateComponent as Ne,asComponent as _e}from"@fluixi/dom";import{untrack as Q,onCleanup as g,getOwner as D,createEffect as P,createMemo as Z,createSignal as Ve,isSignal as je,batch as Ke,runWithOwner as ee,isOwnerDisposed as He}from"@fluixi/reactive/signal";var I=Symbol.for("fluixi-lifecycle");function te(){let e=D();if(!e)return null;if(!e[I]){let t={mounts:[],effects:[],scheduled:!1};e[I]=t}return e[I]}function ne(e){if(e.scheduled)return;e.scheduled=!0;let t=D();queueMicrotask(()=>{if(He(t)){e.mounts=[],e.effects=[];return}ee(t,()=>{for(let n of e.mounts)try{let r=n();typeof r=="function"&&g(r)}catch(r){console.error("Error in onMount callback:",r)}for(let n of e.effects){let r;P(()=>{r&&r(),r=n()}),g(()=>{r&&r()})}e.mounts=[],e.effects=[]})})}function h(e){Ne(b)}function b(e,t){return F(e,t)}function F(e,t){let n=typeof e=="function"?Q(()=>e(t)):e;if(n!=null&&(typeof n=="function"||typeof n=="object")&&!je(n)){try{n.$name=e.name}catch{}return _e(n)}return n}function R(e,t=!0){let n=te();if(n){if(!t){n.scheduled||e();return}n.mounts.push(e),ne(n)}else{if(!t){e();return}P(()=>{let r=Q(e);typeof r=="function"&&g(r)})}}function A(e){g(e)}function N(e){let t=te();if(t)t.effects.push(e),ne(t);else{let n;P(()=>{n&&n(),n=e()}),g(()=>{n&&n()})}}function re(e){return Z(e)}function oe(e){let t={current:e};return g(()=>{t.current=null}),t}function ie(e,t){let[n,r]=Ve(t);return[n,s=>{r(e(n(),s))}]}function se(e,t,n,r){N(()=>{let o=e&&"current"in e?e.current:e;if(o)return o.addEventListener(t,n,r),()=>{o.removeEventListener(t,n,r)}})}function ae(e){return e}import{createSignal as V,createMemo as $e,createEffect as ze,createRenderEffect as Ue,isSignal as _,useContext as We,createContext as qe,createSuspenseBoundary as Je,provideSuspense as ce}from"@fluixi/reactive/signal";import{asSuspense as Be,isComponent as Xe,createComponent as ue,runWithoutHydration as Ye}from"@fluixi/dom";function de(e){return typeof window>"u"?!1:typeof Node=="function"&&e instanceof Node?!0:!!(e&&typeof e=="object"&&typeof e.nodeType=="number")}function le(e){return!e||typeof e!="object"?!1:!!(typeof e._$litType$<"u"||typeof e._$litDirective$<"u"||Array.isArray(e.strings)&&Array.isArray(e.values))}function fe(e){return!!(e&&typeof e=="object"&&typeof e.then=="function"||e instanceof Promise)}function pe(e){return!!(e&&typeof e=="object"&&"type"in e&&"props"in e)}var me=qe();function k(e){return ue(Ge,e)}function Ge(e){let t=Je(),n=We(me),r=n?n.register(t.inFallback):void 0;function o(u){return u==null||typeof u=="boolean"?null:typeof u=="function"&&Xe(u)&&!_(u)?u():u}let s=Ye(()=>o(e.fallback??null)),i=ce(t,()=>e.children);ce(t,()=>{Ue(()=>{let u=i;if(Array.isArray(u))for(let l of u)typeof l=="function"&&_(l)&&l();else typeof u=="function"&&_(u)&&u()})});let[a,c]=V(void 0),d=fe(i);return d&&(t.increment(),i.then(u=>{c(()=>u),t.decrement()},()=>t.decrement())),$e(()=>(r?r.showFallback():t.inFallback())?s:d?a():i)}function ye(e){return ue(Qe,e)}function Qe(e){let{revealOrder:t="together",tail:n}=e,r=[];function o(){if(t==="together"){let i=r.every(a=>!a.inFallback());r.forEach(a=>{a.setShowContent(i),a.setShowFallback(!i)})}else{let i=t==="backwards"?[...r].reverse():r,a=!1;for(let c of i)a||c.inFallback()?(a=!0,c.setShowContent(!1),c.setShowFallback(n!=="hidden")):(c.setShowContent(!0),c.setShowFallback(!1))}}let s={register:i=>{let[a,c]=V(!0),[d,u]=V(!1);return r.push({inFallback:i,setShowContent:c,setShowFallback:u}),ze(()=>{i(),o()}),{showContent:a,showFallback:d}}};return me.Provider({value:s,children:e.children})}Be(k);Object.defineProperty(k,"__suspense",{value:!0,enumerable:!0});import{untrack as ge,createMemo as Ze,createResource as et}from"@fluixi/reactive/signal";function S(e,t){let n,r,o;function s(){return r||(r=e().then(a=>n=a.default)),r}t?.preload&&s();let i=(a=>{if(n){let c=n;return ge(()=>c(a))}if(!o){let[c]=et(()=>s());if(o=c,c.error)throw c.error}return Ze(()=>{let c=o();return c?ge(()=>c(a)):void 0},void 0,{name:"lazy"})});return i.preload=()=>s().then(()=>{}),i.$lazy=!0,i.loader=e,i}import{createMemo as tt,createSignal as nt}from"@fluixi/reactive/signal";import{observeIntersection as rt}from"@fluixi/dom/utils";var he=typeof window>"u";function xe(e,t){let n=t.export??"default",r=S(()=>e().then(s=>{let i=s[n];if(typeof i!="function")throw new Error(`deferred(): module has no '${n}' export (got ${typeof i}).`);return{default:i}}),{fallback:t.fallback});function o(s){if(t.strategy.kind==="never")return he?r(s):null;if(he||t.strategy.kind==="eager")return r(s);let[i,a]=nt(!1),c=()=>{r.preload().then(()=>a(!0))},d=t.strategy.kind==="visible"?ot():void 0;return it(t.strategy,c,d),tt(()=>i()?r(s):d??t.fallback??null,void 0,{name:"deferred"})}return o.preload=r.preload,o}function ot(){let e=document.createElement("span");return e.setAttribute("data-fx-load","visible"),e.style.display="block",e}function it(e,t,n){let r=!1,o=()=>{r||(r=!0,t())};switch(e.kind){case"idle":{let s=globalThis.requestIdleCallback;s?s(o):setTimeout(o,1);return}case"visible":{if(!n||typeof IntersectionObserver>"u"){o();return}let s=rt(n,i=>{i&&(s(),o())},{rootMargin:e.rootMargin??"0px"});return}case"interaction":{let s=()=>{for(let i of e.events)document.removeEventListener(i,s,!0);o()};for(let i of e.events)document.addEventListener(i,s,{capture:!0,passive:!0});return}case"media":{if(typeof matchMedia>"u"){o();return}let s=matchMedia(e.query);if(s.matches){o();return}let i=a=>{a.matches&&(s.removeEventListener("change",i),o())};s.addEventListener("change",i);return}default:o()}}import{createResource as st}from"@fluixi/reactive/signal";function ve(e){let t=()=>{let r=e.value;return typeof r=="function"?r():r},[n]=st(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 Ce(e,t,n={}){if(h("render"),Te(["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 at(o=>{r=o;let s=typeof e=="function"?e():e;t.textContent="",Y(t),G(),ut(t,()=>s)}),()=>{r&&(r(),r=void 0)}}function dt(e){return e&&typeof e=="object"&&(e._$litType$!==void 0||e._$litDirective$!==void 0)}function lt(e,t,n={}){let r=document.createElement("div");r.setAttribute("data-portal","true"),t.appendChild(r);let o=Ce(e,r,n);return()=>{o(),t.contains(r)&&t.removeChild(r)}}function ft(e){return!!(e==null||typeof e=="function"||ct(e)||dt(e)||Array.isArray(e)||typeof e=="string"||typeof e=="number"||typeof e=="boolean")}function pt(){j||Te(["click","input","change","submit"])}function mt(){}import{asProvider as yt}from"@fluixi/dom";import{createContext as gt,useContext as ht}from"@fluixi/reactive/signal";import{readChildren as xt}from"@fluixi/reactive/signal";h("index");var be=!1;function vt(){be||(be=!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,s=r?t:e.value,i=r?!1:e.debug??!1;r||vt();let a=typeof s=="function"?s():s,c=r?n:e;return o.Provider({value:a,get children(){return c?.children},debug:i})}function Tt(e){let t=x(e);return[t,r=>K(t,r.value,r)]}function Se(e,t){if(e.length===0)return xt(()=>t);let[n,r]=e[0],o=e.slice(1);return K(n,r,{get children(){return Se(o,t)}})}function Ct(e){return t=>{let n=v(e);return t.children(n)}}function bt(e,t){let n=v(e);return n===e.defaultValue?t():n}function x(e){let t=gt(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:yt(n),defaultValue:e}}function v(e){let t=ht(e);return t!==void 0?t:e.defaultValue}import{createSignal as St,createMemo as wt}from"@fluixi/reactive/signal";import{getServerData as Pt}from"@fluixi/dom";var Rt="__fluixi_iso_states__",At="__iso:";function kt(){return globalThis[Rt]??=new Map}function we(e){if(typeof window>"u")return;let t=Pt();return t?t[At+e]:void 0}function Pe(e,t){let n=we(e),r=n!==void 0?n:typeof window<"u"&&t.client?t.client():t.fallback,[o,s]=St(r);return kt().set(e,{server:t.server,set:s}),{value:o,set:s,key:e}}function Ot(e,t){let n=we(e)!==void 0,r=Pe(e,{server:t.server,fallback:t.fallback}),o=()=>r.value()??t.fallback,s=l=>{if(!(!t.persist||typeof localStorage>"u"))try{localStorage.setItem(t.persist,JSON.stringify(l))}catch{}},i=l=>{r.set(l),s(l)},a=(l,w)=>{i({...o(),[l]:w})},c={};for(let l of Object.keys(t.fallback))c[l]=wt(()=>o()[l]);let d=null;return{value:o,fields:c,set:i,setField:a,ensureInit:()=>n||!t.client?Promise.resolve():(d||(d=Promise.resolve(t.client()).then(l=>{i(l)}).catch(l=>{throw d=null,l})),d),key:e}}var Re=typeof document>"u",Ae=!Re;function ke(){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 O=typeof localStorage<"u"?localStorage:ke(),E={get window(){return typeof window<"u"?window:void 0},get document(){return typeof document<"u"?document:void 0}};function Et(e,t){return Ae?e():t}import{createSignal as Oe}from"@fluixi/reactive/signal";function Lt(e){return e?e===!0?{dark:"dark",light:"light"}:e:null}function Mt(e){let t=e.storageKey??"theme",n=e.attribute??"data-theme",r=Lt(e.system),o=()=>{let f=O.getItem(t);return f&&e.themes.includes(f)?f:r&&E.window?.matchMedia?.("(prefers-color-scheme: dark)")?.matches?r.dark:r?r.light:e.default},[s,i]=Oe(o()),[a,c]=Oe(!1),d=f=>{E.document?.documentElement.setAttribute(n,f);try{O.setItem(t,f)}catch{}},u=f=>{if(!e.themes.includes(f))return;let Ie=s();i(()=>f),d(f),e.onChange?.(f,Ie),e.load&&(c(!0),e.onLoading?.(f),Promise.resolve(e.load(f)).finally(()=>{c(!1),e.onLoaded?.(f)}))};return{value:s,isLoading:a,set:u,toggle:()=>{let f=e.themes.indexOf(s());u(e.themes[(f+1)%e.themes.length])},init:()=>d(s()),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 z,createMemo as T,createResource as Vt,createEffect as U,getOwner as jt,onCleanup as Ee,untrack as H}from"@fluixi/reactive/signal";import{insert as $,createComponent as Le,createNativeElement as L,setAttribute as m}from"@fluixi/dom";import{createContext as M,useContext as Me}from"@fluixi/reactive/signal";import{get as Br}from"@fluixi/utils/object";import{deepEqual as Yr}from"@fluixi/utils/compare";import{createRouter as Kt,createBrowserHistory as Ht,matchRoutes as Qr,matchPath as Zr}from"@fluixi/router";import{createMemoryHistory as no,createBrowserHistory as ro,matchRoutes as oo,matchPath as io}from"@fluixi/router";import{createResource as Er,createSignal as Nt}from"@fluixi/reactive/signal";var It=new Map;function Dt(){It.clear()}function Ft(){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,s=o.nodeValue||"";(s.startsWith("#")||s.startsWith("/"))&&n.push(o)}n.forEach(o=>o.remove()),Dt()}typeof window<"u"&&window.addEventListener("load",()=>{setTimeout(Ft,100)});var[Dr,Fr]=Nt(0);var _t=x(),Nr=_t.Provider;import{runWithOwner as uo}from"@fluixi/reactive/signal";var W=M(),$t=M(),zt=M(),Ut=M();function Wt(e,t,n){let r,o=e.route.data;if(typeof o=="function"){let u=!1;Ee(()=>{u=!0});let l=jt(),[w]=Vt(()=>o({params:n.params,location:n.location},l,()=>u));r=w}let s=()=>Ut.Provider({value:r,get children(){return zt.Provider({value:e.params,get children(){return $t.Provider({value:{depth:t,...n},get children(){return Le(e.component,{})}})}})}});if(!r)return s();let i=r,a=()=>i.loading,[c,d]=z(H(()=>!a()));return U(()=>d(!a())),T(()=>c()?s():null)}function qt(e){let t=e.depth+1,[n,r]=z(H(()=>e.matched()[t]?.component));return U(()=>{let o=e.matched()[t]?.component;r(()=>o)}),T(()=>{if(!n())return e.notFound?e.notFound():null;let s=H(()=>e.matched())[t];return Wt(s,t,{matched:e.matched,params:e.params,location:e.location})})}function Jt(e){return e==null?Bt():typeof e=="function"?Le(e,{}):e}function Bt(){let e=L("div");m(e,"class","fx-not-found"),m(e,"role","main"),m(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=L("h1");m(t,"style","margin:0;font-size:2.5rem;font-weight:700"),$(t,"404");let n=L("p");return m(n,"style","margin:0;opacity:.7"),$(n,"This page could not be found."),e.appendChild(t),e.appendChild(n),e}function q(e){let t=e.history??Ht(),n=Kt({routes:e.routes,base:e.base,history:t}),[r,o]=z(n.state()),s=n.subscribe(o);Ee(()=>{s(),n.destroy()});let i=T(()=>(r().match?.matched??[]).filter(u=>u.component)),a={router:n,location:T(()=>r().location),params:T(()=>r().match?.params??{})},c={depth:-1,matched:i,params:a.params,location:a.location,notFound:()=>Jt(e.notFound)},d;return W.Provider({value:a,get children(){return d??=qt(c)}})}var Xt={router:{navigate:()=>{}},location:()=>({pathname:"",search:"",hash:"",query:{}}),params:()=>({})};function C(){let e=Me(W);if(e)return e;if(typeof window>"u")return Xt;throw new Error("[router-next] useRouter must be used within <Router>")}function Yt(){let e=C().params;return T(()=>e(),{},{equals:(t,n)=>JSON.stringify(t)===JSON.stringify(n)})}function Gt(){let{location:e}=C();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}=C();return(t,n)=>e.navigate(t,n)}var p=e=>typeof e=="function"?e():e,Qt=new Set(["href","slot","class","className","active","activeClass","replace","children"]);function B(e){let t=Me(W),n=typeof document>"u",r=()=>t?.router.navigate(p(e.href)??"",{replace:p(e.replace)}),o=L("a");m(o,"href",p(e.href)??""),e.slot&&m(o,"slot",p(e.slot));for(let[i,a]of Object.entries(e))Qt.has(i)||a!=null&&typeof a!="function"&&m(o,i,String(a));if(typeof o.addEventListener=="function")o.addEventListener("click",i=>{i.metaKey||i.ctrlKey||i.shiftKey||i.altKey||(i.preventDefault(),r())});else{let i=p(e.className??e.class)??"";i&&m(o,"class",i)}typeof o.addEventListener=="function"&&U(()=>{let i=p(e.href)??"";o.setAttribute("href",i);let a=p(e.className??e.class)??"",c=p(e.activeClass)??"",d=p(e.active)??t?.location().pathname===i;o.className=[a,d?c:""].filter(Boolean).join(" ")});let s=e.children;return s!=null&&$(o,s),o}import{html as Ho,svg as $o}from"@fluixi/dom";import{query as Uo,queryAll as Wo,closest as qo,addClass as Jo,removeClass as Bo,toggleClass as Xo,hasClass as Yo,setAttribute as Go,getAttribute as Qo,removeAttribute as Zo,setStyles as ei,getStyle as ti,createElement as ni,removeChildren as ri,appendChildren as oi,isVisible as ii,scrollIntoView as si,getOffset as ai,delegate as ci,waitForElement as ui,observeIntersection as di,observeResize as li}from"@fluixi/dom";import{classMap as pi,styleMap as mi,Island as yi,hydrateIslands as gi,mergeProps as hi,splitProps as xi}from"@fluixi/dom";import{Show as po,For as mo,Index as yo,Switch as go,Match as ho,Dynamic as xo,ErrorBoundary as vo,Portal as To,ClientOnly as Co,NoSsr as bo}from"@fluixi/dom";import{createStore as Ci,untrackStore as bi,unwrap as Si,Store as wi}from"@fluixi/reactive/store";var gn="0.0.1",hn="Fluixi";var Do={createComponent:b,onMount:R,onUnmount:A,createEffect:Zt,createMemo:en,createSignal:tn,createContext:x,createRoot:nn,createDeferred:ln,createComputed:rn,createRenderEffect:on,createSelector:pn,onCleanup:sn,getOwner:an,runWithOwner:cn,batch:un,untrack:dn,useContext:v,setOwner:fn,Router:q,Link:B,useRouter:C,useNavigate:J,read:mn,reduce:yn,VERSION:gn,FRAMEWORK_NAME:hn};h("fluixi element main");export{F as $component,ve as Await,Co as ClientOnly,xo as Dynamic,vo as ErrorBoundary,hn as FRAMEWORK_NAME,mo as For,yo as Index,yi as Island,B as Link,ho as Match,bo as NoSsr,To as Portal,q as Router,po as Show,wi as Store,k as Suspense,ye as SuspenseList,go as Switch,gn as VERSION,Jo as addClass,oi as appendChildren,un as batch,pi as classMap,mt as cleanupDelegation,Et as clientOnly,qo as closest,Se as composeProviders,b as createComponent,rn as createComputed,Ct as createConsumer,x as createContext,Tt as createContextWithProvider,Ro as createDebounce,Ao as createDebouncedResource,ko as createDebouncedSignal,ln as createDeferred,Zt as createEffect,Pe as createIsomorphicState,Ot as createIsomorphicStore,en as createMemo,ke as createMemoryStorage,K as createProvider,on as createRenderEffect,wo as createResource,nn as createRoot,pn as createSelector,tn as createSignal,Ci as createStore,Mt as createTheme,Do as default,xe as deferred,ci as delegate,ni as domCreateElement,E as env,Qo as getAttribute,ai as getOffset,an as getOwner,ti as getStyle,Yo as hasClass,Ho as html,gi as hydrateIslands,pt as initDelegation,Ae as isClient,pe as isJSXElement,le as isLitResult,de as isNode,ft as isRenderable,Re as isServer,ii as isVisible,S as lazy,hi as mergeProps,di as observeIntersection,li as observeResize,sn as onCleanup,R as onMount,A as onUnmount,lt as portal,Uo as query,Wo as queryAll,mn as read,yn as reduce,Zo as removeAttribute,ri as removeChildren,Bo as removeClass,Ce as render,cn as runWithOwner,si as scrollIntoView,Go as setAttribute,fn as setOwner,ei as setStyles,xi as splitProps,O as storage,mi as styleMap,$o as svg,Xo as toggleClass,dn as untrack,bi as untrackStore,Si as unwrap,ae as useCallback,v as useContext,N as useEffect,se as useEventListener,Gt as useLocation,re as useMemo,J as useNavigate,Yt as useParams,bt as useProvide,ie as useReducer,oe as useRef,C as useRouter,ui 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 Re=Object.getOwnPropertyDescriptor;var Oe=Object.getOwnPropertyNames;var Le=Object.prototype.hasOwnProperty;var Ae=(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 s of Oe(t))!Le.call(e,s)&&s!==n&&q(e,s,{get:()=>t[s],enumerable:!(r=Re(t,s))||r.enumerable});return e},oe=(e,t,n)=>(X(e,t,"default"),n&&X(n,t,"default"));var Me=e=>X(q({},"__esModule",{value:!0}),e);var Je={};Ae(Je,{$component:()=>V,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:()=>i.batch,classMap:()=>W.classMap,cleanupDelegation:()=>he,composeProviders:()=>Z,createComponent:()=>b,createComputed:()=>i.createComputed,createConsumer:()=>ge,createContext:()=>D,createContextWithProvider:()=>be,createDebounce:()=>z.createDebounce,createDeferred:()=>i.createDeferred,createEffect:()=>i.createEffect,createIsomorphicState:()=>ke,createMemo:()=>i.createMemo,createProvider:()=>U,createRenderEffect:()=>i.createRenderEffect,createResource:()=>i.createResource,createRoot:()=>i.createRoot,createSelector:()=>z.createSelector,createSignal:()=>i.createSignal,createStore:()=>w.createStore,default:()=>We,delegateEvents:()=>a.delegateEvents,devOnly:()=>G,getFrameworkInfo:()=>Ee,getOwner:()=>i.getOwner,getSharedConfig:()=>H,hydrate:()=>a.hydrate,initDelegation:()=>ve,insert:()=>a.insert,isDOMNode:()=>a.isDOMNode,isDev:()=>Y,isLitTemplateResult:()=>a.isLitTemplateResult,isRenderable:()=>xe,jsx:()=>y.jsx,jsxs:()=>y.jsxs,lazy:()=>N,onCleanup:()=>i.onCleanup,onMount:()=>E,onUnmount:()=>R,portal:()=>ye,read:()=>K.readSignal,reduce:()=>K.reduceSignal,removeClass:()=>a.removeClass,render:()=>F,runWithOwner:()=>i.runWithOwner,setAttribute:()=>a.setAttribute,setOwner:()=>i.setOwner,setProperty:()=>a.setProperty,spread:()=>a.spread,styleMap:()=>W.styleMap,toggleClass:()=>a.toggleClass,untrack:()=>i.untrack,untrackStore:()=>w.untrackStore,useCallback:()=>_,useContext:()=>P,useEffect:()=>g,useEventListener:()=>M,useMemo:()=>O,useProvide:()=>Pe,useReducer:()=>A,useRef:()=>L});module.exports=Me(Je);var i=require("@fluixi/reactive/signal"),z=require("@fluixi/reactive/signal"),K=require("@fluixi/reactive/operators"),w=require("@fluixi/reactive/store");var me=require("@fluixi/reactive/signal");var ie="1.0.0-alpha.70";var se=require("@fluixi/dom"),ae=require("@fluixi/reactive"),v={core:ie,dom:se.VERSION,reactive:ae.VERSION};function ce(e){e.setAttribute("fluixi",v.core),e.setAttribute("fx-dom",v.dom),e.setAttribute("fx-reactive",v.reactive),typeof globalThis<"u"&&(globalThis.Fluixi=v)}function ue(){new Set(Object.values(v)).size<=1||console.warn(`[fluixi] package versions disagree — core ${v.core}, dom ${v.dom}, reactive ${v.reactive}. These ship as one release, so a mismatch usually means a stale lockfile or two copies resolved side by side. Reinstall, or check for duplicates with \`pnpm why @fluixi/dom\`.`)}var T=require("@fluixi/dom");var j=require("@fluixi/dom"),o=require("@fluixi/reactive/signal"),_e={context:null,owner:null};function H(){return _e}var k=typeof process<"u"&&!1,B=Symbol.for("fluixi-lifecycle");function de(){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 fe(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 V(e,t)}function V(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=de();if(n){if(!t){n.scheduled||e();return}n.mounts.push(e),fe(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=de();if(t)t.effects.push(e),fe(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 s=e&&"current"in e?e.current:e;if(s)return s.addEventListener(t,n,r),()=>{s.removeEventListener(t,n,r)}})}function _(e){return e}function Y(){return k}function G(e){k&&e()}var c=require("@fluixi/reactive/signal"),h=require("@fluixi/dom");function le(e){return!!(e&&typeof e=="object"&&typeof e.then=="function"||e instanceof Promise)}var Ie=(0,c.createContext)();function I(e){return(0,h.createComponent)(Fe,e)}function Fe(e){let t=(0,c.createSuspenseBoundary)(),n=(0,c.useContext)(Ie),r=n?n.register(t.inFallback):void 0;function s(f){return f==null||typeof f=="boolean"?null:typeof f=="function"&&(0,h.isComponent)(f)&&!(0,c.isSignal)(f)?f():f}let d=(0,h.runWithoutHydration)(()=>s(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=le(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,h.asSuspense)(I);Object.defineProperty(I,"__suspense",{value:!0,enumerable:!0});var C=require("@fluixi/reactive/signal");function N(e,t){let n,r,s;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,C.untrack)(()=>p(x))}if(!s){let[p]=(0,C.createResource)(()=>d());if(s=p,p.error)throw p.error}return(0,C.createMemo)(()=>{let p=s();return p?(0,C.untrack)(()=>p(x)):void 0},void 0,{name:"lazy"})});return m.preload=()=>d().then(()=>{}),m.$lazy=!0,m.loader=e,m}var pe=require("@fluixi/reactive/signal"),De=require("@fluixi/dom/utils");var je=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,me.createRoot)(s=>{r=s;let d=typeof e=="function"?e():e;t.textContent="",ce(t),ue(),(0,T.insert)(t,()=>d)}),()=>{r&&(r(),r=void 0)}}function Ve(e){return e&&typeof e=="object"&&(e._$litType$!==void 0||e._$litDirective$!==void 0)}function ye(e,t,n={}){let r=document.createElement("div");r.setAttribute("data-portal","true"),t.appendChild(r);let s=F(e,r,n);return()=>{s(),t.contains(r)&&t.removeChild(r)}}function xe(e){return!!(e==null||typeof e=="function"||(0,T.isDOMNode)(e)||Ve(e)||Array.isArray(e)||typeof e=="string"||typeof e=="number"||typeof e=="boolean")}function ve(){Q||(0,T.delegateEvents)(["click","input","change","submit"])}function he(){}var Te=require("@fluixi/dom"),$=require("@fluixi/reactive/signal"),Se=require("@fluixi/reactive/signal");S("index");var Ce=!1;function Ne(){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 U(e,t,n){let r=!!e?.Provider,s=r?e:e.context,d=r?t:e.value,m=r?!1:e.debug??!1;r||Ne();let x=typeof d=="function"?d():d,p=r?n:e;return s.Provider({value:x,get children(){return p?.children},debug:m})}function be(e){let t=D(e);return[t,r=>U(t,r.value,r)]}function Z(e,t){if(e.length===0)return(0,Se.readChildren)(()=>t);let[n,r]=e[0],s=e.slice(1);return U(n,r,{get children(){return Z(s,t)}})}function ge(e){return t=>{let n=P(e);return t.children(n)}}function Pe(e,t){let n=P(e);return n===e.defaultValue?t():n}function D(e){let t=(0,$.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,Te.asProvider)(n),defaultValue:e}}function P(e){let t=(0,$.useContext)(e);return t!==void 0?t:e.defaultValue}var ee=require("@fluixi/reactive/signal"),we=require("@fluixi/dom"),$e="__fluixi_iso_states__",Ue="__iso:";function ze(){return globalThis[$e]??=new Map}function Ke(e){if(typeof window>"u")return;let t=(0,we.getServerData)();return t?t[Ue+e]:void 0}function ke(e,t){let n=Ke(e),r=n!==void 0?n:typeof window<"u"&&t.client?t.client():t.fallback,[s,d]=(0,ee.createSignal)(r);return ze().set(e,{server:t.server,set:d}),{value:s,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 Ee(){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 We={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:Ee};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 ie=Object.defineProperty;var se=Object.getOwnPropertyDescriptor;var ae=Object.getOwnPropertyNames;var ce=Object.prototype.hasOwnProperty;var V=(e,t,n,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of ae(t))!ce.call(e,o)&&o!==n&&ie(e,o,{get:()=>t[o],enumerable:!(r=se(t,o))||r.enumerable});return e},N=(e,t,n)=>(V(e,t,"default"),n&&V(n,t,"default"));import{createEffect as $n,createMemo as Un,createSignal as zn,createResource as Kn,createRoot as Wn,createComputed as Jn,createRenderEffect as Xn,onCleanup as qn,getOwner as Bn,runWithOwner as Hn,batch as Yn,untrack as Gn,createDeferred as Qn,setOwner as Zn}from"@fluixi/reactive/signal";import{createDebounce as tr,createSelector as nr}from"@fluixi/reactive/signal";import{readSignal as or,reduceSignal as ir}from"@fluixi/reactive/operators";import{createStore as ar,untrackStore as cr,Store as ur}from"@fluixi/reactive/store";import{createRoot as Me}from"@fluixi/reactive/signal";var $="1.0.0-alpha.70";import{VERSION as ue}from"@fluixi/dom";import{VERSION as de}from"@fluixi/reactive";var d={core:$,dom:ue,reactive:de};function U(e){e.setAttribute("fluixi",d.core),e.setAttribute("fx-dom",d.dom),e.setAttribute("fx-reactive",d.reactive),typeof globalThis<"u"&&(globalThis.Fluixi=d)}function z(){new Set(Object.values(d)).size<=1||console.warn(`[fluixi] package versions disagree — core ${d.core}, dom ${d.dom}, reactive ${d.reactive}. These ship as one release, so a mismatch usually means a stale lockfile or two copies resolved side by side. Reinstall, or check for duplicates with \`pnpm why @fluixi/dom\`.`)}import{isDOMNode as _e,delegateEvents as ee,insert as Ie}from"@fluixi/dom";import{registerCreateComponent as fe,asComponent as le}from"@fluixi/dom";import{untrack as K,onCleanup as f,getOwner as A,createEffect as v,createMemo as W,createSignal as pe,isSignal as me,batch as ye,runWithOwner as J,isOwnerDisposed as xe}from"@fluixi/reactive/signal";var ve={context:null,owner:null};function X(){return ve}var h=typeof process<"u"&&!1,L=Symbol.for("fluixi-lifecycle");function q(){let e=A();if(!e)return null;if(!e[L]){let t={mounts:[],effects:[],scheduled:!1};e[L]=t}return e[L]}function B(e){if(e.scheduled)return;e.scheduled=!0;let t=A();queueMicrotask(()=>{if(xe(t)){e.mounts=[],e.effects=[];return}J(t,()=>{for(let n of e.mounts)try{let r=n();typeof r=="function"&&f(r)}catch(r){console.error("Error in onMount callback:",r)}for(let n of e.effects){let r;v(()=>{r&&r(),r=n()}),f(()=>{r&&r()})}e.mounts=[],e.effects=[]})})}function p(e){fe(m)}function m(e,t){return M(e,t)}function M(e,t){let n=typeof e=="function"?K(()=>e(t)):e;if(n!=null&&(typeof n=="function"||typeof n=="object")&&!me(n)){try{n.$name=e.name}catch{}return le(n)}return n}function C(e,t=!0){let n=q();if(n){if(!t){n.scheduled||e();return}n.mounts.push(e),B(n)}else{if(!t){e();return}v(()=>{let r=K(e);typeof r=="function"&&f(r)})}}function T(e){f(e)}function y(e){let t=q();if(t)t.effects.push(e),B(t);else{let n;v(()=>{n&&n(),n=e()}),f(()=>{n&&n()})}}function S(e){return W(e)}function b(e){let t={current:e};return f(()=>{t.current=null}),t}function g(e,t){let[n,r]=pe(t);return[n,i=>{r(e(n(),i))}]}function P(e,t,n,r){y(()=>{let o=e&&"current"in e?e.current:e;if(o)return o.addEventListener(t,n,r),()=>{o.removeEventListener(t,n,r)}})}function w(e){return e}function H(){return h}function Y(e){h&&e()}import{createSignal as he,createMemo as Ce,createEffect as Rt,createRenderEffect as Te,isSignal as _,useContext as Se,createContext as be,createSuspenseBoundary as ge,provideSuspense as G}from"@fluixi/reactive/signal";import{asSuspense as Pe,isComponent as we,createComponent as ke,runWithoutHydration as Ee}from"@fluixi/dom";function Q(e){return!!(e&&typeof e=="object"&&typeof e.then=="function"||e instanceof Promise)}var Re=be();function k(e){return ke(Oe,e)}function Oe(e){let t=ge(),n=Se(Re),r=n?n.register(t.inFallback):void 0;function o(s){return s==null||typeof s=="boolean"?null:typeof s=="function"&&we(s)&&!_(s)?s():s}let i=Ee(()=>o(e.fallback??null)),c=G(t,()=>e.children);G(t,()=>{Te(()=>{let s=c;if(Array.isArray(s))for(let O of s)typeof O=="function"&&_(O)&&O();else typeof s=="function"&&_(s)&&s()})});let[u,a]=he(void 0),j=Q(c);return j&&(t.increment(),c.then(s=>{a(()=>s),t.decrement()},()=>t.decrement())),Ce(()=>(r?r.showFallback():t.inFallback())?i:j?u():c)}Pe(k);Object.defineProperty(k,"__suspense",{value:!0,enumerable:!0});import{untrack as Z,createMemo as Le,createResource as Ae}from"@fluixi/reactive/signal";function I(e,t){let n,r,o;function i(){return r||(r=e().then(u=>n=u.default)),r}t?.preload&&i();let c=(u=>{if(n){let a=n;return Z(()=>a(u))}if(!o){let[a]=Ae(()=>i());if(o=a,a.error)throw a.error}return Le(()=>{let a=o();return a?Z(()=>a(u)):void 0},void 0,{name:"lazy"})});return c.preload=()=>i().then(()=>{}),c.$lazy=!0,c.loader=e,c}import{createMemo as Ft,createSignal as Dt}from"@fluixi/reactive/signal";import{observeIntersection as Vt}from"@fluixi/dom/utils";import{createResource as zt}from"@fluixi/reactive/signal";var F=typeof window>"u";function E(e,t,n={}){if(p("render"),ee(["click","input","change","submit"]),F)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 Me(o=>{r=o;let i=typeof e=="function"?e():e;t.textContent="",U(t),z(),Ie(t,()=>i)}),()=>{r&&(r(),r=void 0)}}function Fe(e){return e&&typeof e=="object"&&(e._$litType$!==void 0||e._$litDirective$!==void 0)}function De(e,t,n={}){let r=document.createElement("div");r.setAttribute("data-portal","true"),t.appendChild(r);let o=E(e,r,n);return()=>{o(),t.contains(r)&&t.removeChild(r)}}function je(e){return!!(e==null||typeof e=="function"||_e(e)||Fe(e)||Array.isArray(e)||typeof e=="string"||typeof e=="number"||typeof e=="boolean")}function Ve(){F||ee(["click","input","change","submit"])}function Ne(){}import{asProvider as $e}from"@fluixi/dom";import{createContext as Ue,useContext as ze}from"@fluixi/reactive/signal";import{readChildren as Ke}from"@fluixi/reactive/signal";p("index");var te=!1;function We(){te||(te=!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 D(e,t,n){let r=!!e?.Provider,o=r?e:e.context,i=r?t:e.value,c=r?!1:e.debug??!1;r||We();let u=typeof i=="function"?i():i,a=r?n:e;return o.Provider({value:u,get children(){return a?.children},debug:c})}function Je(e){let t=R(e);return[t,r=>D(t,r.value,r)]}function ne(e,t){if(e.length===0)return Ke(()=>t);let[n,r]=e[0],o=e.slice(1);return D(n,r,{get children(){return ne(o,t)}})}function Xe(e){return t=>{let n=x(e);return t.children(n)}}function qe(e,t){let n=x(e);return n===e.defaultValue?t():n}function R(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:$e(n),defaultValue:e}}function x(e){let t=ze(e);return t!==void 0?t:e.defaultValue}import{createSignal as Be,createMemo as vn}from"@fluixi/reactive/signal";import{getServerData as He}from"@fluixi/dom";var Ye="__fluixi_iso_states__",Ge="__iso:";function Qe(){return globalThis[Ye]??=new Map}function Ze(e){if(typeof window>"u")return;let t=He();return t?t[Ge+e]:void 0}function et(e,t){let n=Ze(e),r=n!==void 0?n:typeof window<"u"&&t.client?t.client():t.fallback,[o,i]=Be(r);return Qe().set(e,{server:t.server,set:i}),{value:o,set:i,key:e}}import{classMap as mr,styleMap as yr}from"@fluixi/dom";import{Show as bn,For as gn,Index as Pn,Switch as wn,Match as kn,Dynamic as En,ErrorBoundary as Rn,Portal as On,ClientOnly as Ln,NoSsr as An}from"@fluixi/dom";import{insert as hr,spread as Cr,setAttribute as Tr,setProperty as Sr,addClass as br,removeClass as gr,toggleClass as Pr,delegateEvents as wr,isDOMNode as kr,isLitTemplateResult as Er,hydrate as Rr}from"@fluixi/dom";var l={};N(l,Mn);import*as Mn from"@fluixi/jsx/jsx-runtime";import{createSignal as nt,createEffect as rt,createMemo as ot,createRoot as it,batch as st,untrack as at,onCleanup as ct}from"@fluixi/reactive/signal";var re="0.0.1",oe="Fluixi";function tt(){return{name:oe,version:re,features:{ssr:!0,hydration:!0,jsx:!0,litHtml:!0,signals:!0,fineGrained:!0,lazy:!0,hooks:!0,devMode:!0}}}var jn={createSignal:nt,createEffect:rt,createMemo:ot,createRoot:it,batch:st,untrack:at,onCleanup:ct,createContext:R,useContext:x,createComponent:m,onMount:C,onUnmount:T,useEffect:y,useMemo:S,useRef:b,useReducer:g,useEventListener:P,useCallback:w,render:E,VERSION:re,FRAMEWORK_NAME:oe,getFrameworkInfo:tt};p("index");var export_Fragment=l.Fragment;var export_jsx=l.jsx;var export_jsxs=l.jsxs;export{M as $component,Ln as ClientOnly,h as DEV,En as Dynamic,Rn as ErrorBoundary,oe as FRAMEWORK_NAME,gn as For,export_Fragment as Fragment,Pn as Index,kn as Match,An as NoSsr,On as Portal,bn as Show,ur as Store,k as Suspense,wn as Switch,re as VERSION,br as addClass,Yn as batch,mr as classMap,Ne as cleanupDelegation,ne as composeProviders,m as createComponent,Jn as createComputed,Xe as createConsumer,R as createContext,Je as createContextWithProvider,tr as createDebounce,Qn as createDeferred,$n as createEffect,et as createIsomorphicState,Un as createMemo,D as createProvider,Xn as createRenderEffect,Kn as createResource,Wn as createRoot,nr as createSelector,zn as createSignal,ar as createStore,jn as default,wr as delegateEvents,Y as devOnly,tt as getFrameworkInfo,Bn as getOwner,X as getSharedConfig,Rr as hydrate,Ve as initDelegation,hr as insert,kr as isDOMNode,H as isDev,Er as isLitTemplateResult,je as isRenderable,export_jsx as jsx,export_jsxs as jsxs,I as lazy,qn as onCleanup,C as onMount,T as onUnmount,De as portal,or as read,ir as reduce,gr as removeClass,E as render,Hn as runWithOwner,Tr as setAttribute,Zn as setOwner,Sr as setProperty,Cr as spread,yr as styleMap,Pr as toggleClass,Gn as untrack,cr as untrackStore,w as useCallback,x as useContext,y as useEffect,P as useEventListener,S as useMemo,qe as useProvide,g as useReducer,b 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 S=Object.defineProperty;var se=Object.getOwnPropertyDescriptor;var ae=Object.getOwnPropertyNames;var ce=Object.prototype.hasOwnProperty;var ue=(e,n)=>{for(var o in n)S(e,o,{get:n[o],enumerable:!0})},fe=(e,n,o,t)=>{if(n&&typeof n=="object"||typeof n=="function")for(let i of ae(n))!ce.call(e,i)&&i!==o&&S(e,i,{get:()=>n[i],enumerable:!(t=se(n,i))||t.enumerable});return e};var de=e=>fe(S({},"__esModule",{value:!0}),e);var ge={};ue(ge,{$component:()=>E,Await:()=>oe,DEV:()=>x,Suspense:()=>h,SuspenseList:()=>G,batch:()=>r.batch,cleanupDelegation:()=>Ce,createComponent:()=>T,createEffect:()=>r.createEffect,createMemo:()=>r.createMemo,deferred:()=>ne,devOnly:()=>K,getOwner:()=>r.getOwner,getSharedConfig:()=>j,initDelegation:()=>we,isDev:()=>B,isJSXElement:()=>Q,isLitResult:()=>X,isNode:()=>J,isPromise:()=>O,isRenderable:()=>he,lazy:()=>w,onCleanup:()=>r.onCleanup,onMount:()=>N,onUnmount:()=>z,portal:()=>xe,render:()=>ie,runWithOwner:()=>r.runWithOwner,useCallback:()=>H,useEffect:()=>L,useEventListener:()=>q,useMemo:()=>_,useReducer:()=>W,useRef:()=>U});module.exports=de(ge);var re=require("@fluixi/reactive/signal");var A="1.0.0-alpha.70";var P=require("@fluixi/dom"),M=require("@fluixi/reactive"),p={core:A,dom:P.VERSION,reactive:M.VERSION};function F(e){e.setAttribute("fluixi",p.core),e.setAttribute("fx-dom",p.dom),e.setAttribute("fx-reactive",p.reactive),typeof globalThis<"u"&&(globalThis.Fluixi=p)}function D(){new Set(Object.values(p)).size<=1||console.warn(`[fluixi] package versions disagree — core ${p.core}, dom ${p.dom}, reactive ${p.reactive}. These ship as one release, so a mismatch usually means a stale lockfile or two copies resolved side by side. Reinstall, or check for duplicates with \`pnpm why @fluixi/dom\`.`)}var v=require("@fluixi/dom");var b=require("@fluixi/dom"),r=require("@fluixi/reactive/signal"),le={context:null,owner:null};function j(){return le}var x=typeof process<"u"&&!1,k=Symbol.for("fluixi-lifecycle");function $(){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 V(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 I(e){(0,b.registerCreateComponent)(T)}function T(e,n){return E(e,n)}function E(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 N(e,n=!0){let o=$();if(o){if(!n){o.scheduled||e();return}o.mounts.push(e),V(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 L(e){let n=$();if(n)n.effects.push(e),V(n);else{let o;(0,r.createEffect)(()=>{o&&o(),o=e()}),(0,r.onCleanup)(()=>{o&&o()})}}function _(e){return(0,r.createMemo)(e)}function U(e){let n={current:e};return(0,r.onCleanup)(()=>{n.current=null}),n}function W(e,n){let[o,t]=(0,r.createSignal)(n);return[o,a=>{t(e(o(),a))}]}function q(e,n,o,t){L(()=>{let i=e&&"current"in e?e.current:e;if(i)return i.addEventListener(n,o,t),()=>{i.removeEventListener(n,o,t)}})}function H(e){return e}function B(){return x}function K(e){x&&e()}var c=require("@fluixi/reactive/signal"),l=require("@fluixi/dom");function J(e){return typeof window>"u"?!1:typeof Node=="function"&&e instanceof Node?!0:!!(e&&typeof e=="object"&&typeof e.nodeType=="number")}function X(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 Q(e){return!!(e&&typeof e=="object"&&"type"in e&&"props"in e)}var Y=(0,c.createContext)();function h(e){return(0,l.createComponent)(pe,e)}function pe(e){let n=(0,c.createSuspenseBoundary)(),o=(0,c.useContext)(Y),t=o?o.register(n.inFallback):void 0;function i(d){return d==null||typeof d=="boolean"?null:typeof d=="function"&&(0,l.isComponent)(d)&&!(0,c.isSignal)(d)?d():d}let a=(0,l.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 g of d)typeof g=="function"&&(0,c.isSignal)(g)&&g();else typeof d=="function"&&(0,c.isSignal)(d)&&d()})});let[u,f]=(0,c.createSignal)(void 0),m=O(s);return m&&(n.increment(),s.then(d=>{f(()=>d),n.decrement()},()=>n.decrement())),(0,c.createMemo)(()=>(t?t.showFallback():n.inFallback())?a:m?u():s)}function G(e){return(0,l.createComponent)(me,e)}function me(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),[m,d]=(0,c.createSignal)(!1);return t.push({inFallback:s,setShowContent:f,setShowFallback:d}),(0,c.createEffect)(()=>{s(),i()}),{showContent:u,showFallback:m}}};return Y.Provider({value:a,children:e.children})}(0,l.asSuspense)(h);Object.defineProperty(h,"__suspense",{value:!0,enumerable:!0});var y=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,y.untrack)(()=>f(u))}if(!i){let[f]=(0,y.createResource)(()=>a());if(i=f,f.error)throw f.error}return(0,y.createMemo)(()=>{let f=i();return f?(0,y.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"),ee=require("@fluixi/dom/utils");var Z=typeof window>"u";function ne(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 Z?t(a):null;if(Z||n.strategy.kind==="eager")return t(a);let[s,u]=(0,C.createSignal)(!1),f=()=>{t.preload().then(()=>u(!0))},m=n.strategy.kind==="visible"?ye():void 0;return ve(n.strategy,f,m),(0,C.createMemo)(()=>s()?t(a):m??n.fallback??null,void 0,{name:"deferred"})}return i.preload=t.preload,i}function ye(){let e=document.createElement("span");return e.setAttribute("data-fx-load","visible"),e.style.display="block",e}function ve(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,ee.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 te=require("@fluixi/reactive/signal");function oe(e){let n=()=>{let t=e.value;return typeof t=="function"?t():t},[o]=(0,te.createResource)(n);return()=>{if(o.loading)return e.fallback;let t=e.children;return typeof t=="function"?t(o()):t}}var R=typeof window>"u";function ie(e,n,o={}){if(I("render"),(0,v.delegateEvents)(["click","input","change","submit"]),R)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,re.createRoot)(i=>{t=i;let a=typeof e=="function"?e():e;n.textContent="",F(n),D(),(0,v.insert)(n,()=>a)}),()=>{t&&(t(),t=void 0)}}function be(e){return e&&typeof e=="object"&&(e._$litType$!==void 0||e._$litDirective$!==void 0)}function xe(e,n,o={}){let t=document.createElement("div");t.setAttribute("data-portal","true"),n.appendChild(t);let i=ie(e,t,o);return()=>{i(),n.contains(t)&&n.removeChild(t)}}function he(e){return!!(e==null||typeof e=="function"||(0,v.isDOMNode)(e)||be(e)||Array.isArray(e)||typeof e=="string"||typeof e=="number"||typeof e=="boolean")}function we(){R||(0,v.delegateEvents)(["click","input","change","submit"])}function Ce(){}
@@ -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';
@@ -1 +1 @@
1
- import{createRoot as we}from"@fluixi/reactive/signal";import{isDOMNode as Ce,delegateEvents as D,insert as Se}from"@fluixi/dom";import{registerCreateComponent as $,asComponent as _}from"@fluixi/dom";import{untrack as S,onCleanup as f,getOwner as m,createEffect as l,createMemo as v,createSignal as z,isSignal as U,batch as N,runWithOwner as T,isOwnerDisposed as W}from"@fluixi/reactive/signal";var I={context:null,owner:null};function V(){return I}var b=typeof process<"u"&&!1,y=Symbol.for("fluixi-lifecycle");function L(){let e=m();if(!e)return null;if(!e[y]){let t={mounts:[],effects:[],scheduled:!1};e[y]=t}return e[y]}function g(e){if(e.scheduled)return;e.scheduled=!0;let t=m();queueMicrotask(()=>{if(W(t)){e.mounts=[],e.effects=[];return}T(t,()=>{for(let o of e.mounts)try{let n=o();typeof n=="function"&&f(n)}catch(n){console.error("Error in onMount callback:",n)}for(let o of e.effects){let n;l(()=>{n&&n(),n=o()}),f(()=>{n&&n()})}e.mounts=[],e.effects=[]})})}function E(e){$(k)}function k(e,t){return O(e,t)}function O(e,t){let o=typeof e=="function"?S(()=>e(t)):e;if(o!=null&&(typeof o=="function"||typeof o=="object")&&!U(o)){try{o.$name=e.name}catch{}return _(o)}return o}function B(e,t=!0){let o=L();if(o){if(!t){o.scheduled||e();return}o.mounts.push(e),g(o)}else{if(!t){e();return}l(()=>{let n=S(e);typeof n=="function"&&f(n)})}}function H(e){f(e)}function P(e){let t=L();if(t)t.effects.push(e),g(t);else{let o;l(()=>{o&&o(),o=e()}),f(()=>{o&&o()})}}function K(e){return v(e)}function q(e){let t={current:e};return f(()=>{t.current=null}),t}function J(e,t){let[o,n]=z(t);return[o,u=>{n(e(o(),u))}]}function X(e,t,o,n){P(()=>{let c=e&&"current"in e?e.current:e;if(c)return c.addEventListener(t,o,n),()=>{c.removeEventListener(t,o,n)}})}function Y(e){return e}function G(){return b}function Q(e){b&&e()}import{createSignal as h,createMemo as Z,createEffect as ee,createRenderEffect as ne,isSignal as x,useContext as te,createContext as oe,createSuspenseBoundary as re,provideSuspense as R}from"@fluixi/reactive/signal";import{asSuspense as ie,isComponent as se,createComponent as A,runWithoutHydration as ce}from"@fluixi/dom";function ae(e){return typeof window>"u"?!1:typeof Node=="function"&&e instanceof Node?!0:!!(e&&typeof e=="object"&&typeof e.nodeType=="number")}function ue(e){return!e||typeof e!="object"?!1:!!(typeof e._$litType$<"u"||typeof e._$litDirective$<"u"||Array.isArray(e.strings)&&Array.isArray(e.values))}function j(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 F=oe();function w(e){return A(pe,e)}function pe(e){let t=re(),o=te(F),n=o?o.register(t.inFallback):void 0;function c(i){return i==null||typeof i=="boolean"?null:typeof i=="function"&&se(i)&&!x(i)?i():i}let u=ce(()=>c(e.fallback??null)),s=R(t,()=>e.children);R(t,()=>{ne(()=>{let i=s;if(Array.isArray(i))for(let d of i)typeof d=="function"&&x(d)&&d();else typeof i=="function"&&x(i)&&i()})});let[a,r]=h(void 0),p=j(s);return p&&(t.increment(),s.then(i=>{r(()=>i),t.decrement()},()=>t.decrement())),Z(()=>(n?n.showFallback():t.inFallback())?u:p?a():s)}function le(e){return A(de,e)}function de(e){let{revealOrder:t="together",tail:o}=e,n=[];function c(){if(t==="together"){let s=n.every(a=>!a.inFallback());n.forEach(a=>{a.setShowContent(s),a.setShowFallback(!s)})}else{let s=t==="backwards"?[...n].reverse():n,a=!1;for(let r of s)a||r.inFallback()?(a=!0,r.setShowContent(!1),r.setShowFallback(o!=="hidden")):(r.setShowContent(!0),r.setShowFallback(!1))}}let u={register:s=>{let[a,r]=h(!0),[p,i]=h(!1);return n.push({inFallback:s,setShowContent:r,setShowFallback:i}),ee(()=>{s(),c()}),{showContent:a,showFallback:p}}};return F.Provider({value:u,children:e.children})}ie(w);Object.defineProperty(w,"__suspense",{value:!0,enumerable:!0});import{untrack as M,createMemo as ye,createResource as me}from"@fluixi/reactive/signal";function be(e,t){let o,n,c;function u(){return n||(n=e().then(a=>o=a.default)),n}t?.preload&&u();let s=(a=>{if(o){let r=o;return M(()=>r(a))}if(!c){let[r]=me(()=>u());if(c=r,r.error)throw r.error}return ye(()=>{let r=c();return r?M(()=>r(a)):void 0},void 0,{name:"lazy"})});return s.preload=()=>u().then(()=>{}),s.$lazy=!0,s.loader=e,s}import{createResource as xe}from"@fluixi/reactive/signal";function he(e){let t=()=>{let n=e.value;return typeof n=="function"?n():n},[o]=xe(t);return()=>{if(o.loading)return e.fallback;let n=e.children;return typeof n=="function"?n(o()):n}}var C=typeof window>"u";function ve(e,t,o={}){if(E("render"),D(["click","input","change","submit"]),C)throw new Error("render() is for client-side only. Use renderToString() on server.");if(!t)throw new Error("Container element is required");let n;return we(c=>{n=c;let u=typeof e=="function"?e():e;t.textContent="",t.setAttribute("fluixi-js","v1"),Se(t,()=>u)}),()=>{n&&(n(),n=void 0)}}function Te(e){return e&&typeof e=="object"&&(e._$litType$!==void 0||e._$litDirective$!==void 0)}function qe(e,t,o={}){let n=document.createElement("div");n.setAttribute("data-portal","true"),t.appendChild(n);let c=ve(e,n,o);return()=>{c(),t.contains(n)&&t.removeChild(n)}}function Je(e){return!!(e==null||typeof e=="function"||Ce(e)||Te(e)||Array.isArray(e)||typeof e=="string"||typeof e=="number"||typeof e=="boolean")}function Xe(){C||D(["click","input","change","submit"])}function Ye(){}export{O as $component,he as Await,b as DEV,w as Suspense,le as SuspenseList,N as batch,Ye as cleanupDelegation,k as createComponent,l as createEffect,v as createMemo,Q as devOnly,m as getOwner,V as getSharedConfig,Xe as initDelegation,G as isDev,fe as isJSXElement,ue as isLitResult,ae as isNode,j as isPromise,Je as isRenderable,be as lazy,f as onCleanup,B as onMount,H as onUnmount,qe as portal,ve as render,T as runWithOwner,Y as useCallback,P as useEffect,X as useEventListener,K as useMemo,J as useReducer,q as useRef};
1
+ import{createRoot as Me}from"@fluixi/reactive/signal";var S="1.0.0-alpha.70";import{VERSION as U}from"@fluixi/dom";import{VERSION as W}from"@fluixi/reactive";var f={core:S,dom:U,reactive:W};function k(e){e.setAttribute("fluixi",f.core),e.setAttribute("fx-dom",f.dom),e.setAttribute("fx-reactive",f.reactive),typeof globalThis<"u"&&(globalThis.Fluixi=f)}function T(){new Set(Object.values(f)).size<=1||console.warn(`[fluixi] package versions disagree — core ${f.core}, dom ${f.dom}, reactive ${f.reactive}. These ship as one release, so a mismatch usually means a stale lockfile or two copies resolved side by side. Reinstall, or check for duplicates with \`pnpm why @fluixi/dom\`.`)}import{isDOMNode as Fe,delegateEvents as _,insert as De}from"@fluixi/dom";import{registerCreateComponent as q,asComponent as H}from"@fluixi/dom";import{untrack as E,onCleanup as l,getOwner as v,createEffect as p,createMemo as L,createSignal as B,isSignal as K,batch as J,runWithOwner as O,isOwnerDisposed as X}from"@fluixi/reactive/signal";var Q={context:null,owner:null};function Y(){return Q}var b=typeof process<"u"&&!1,y=Symbol.for("fluixi-lifecycle");function R(){let e=v();if(!e)return null;if(!e[y]){let t={mounts:[],effects:[],scheduled:!1};e[y]=t}return e[y]}function A(e){if(e.scheduled)return;e.scheduled=!0;let t=v();queueMicrotask(()=>{if(X(t)){e.mounts=[],e.effects=[];return}O(t,()=>{for(let o of e.mounts)try{let n=o();typeof n=="function"&&l(n)}catch(n){console.error("Error in onMount callback:",n)}for(let o of e.effects){let n;p(()=>{n&&n(),n=o()}),l(()=>{n&&n()})}e.mounts=[],e.effects=[]})})}function P(e){q(M)}function M(e,t){return F(e,t)}function F(e,t){let o=typeof e=="function"?E(()=>e(t)):e;if(o!=null&&(typeof o=="function"||typeof o=="object")&&!K(o)){try{o.$name=e.name}catch{}return H(o)}return o}function G(e,t=!0){let o=R();if(o){if(!t){o.scheduled||e();return}o.mounts.push(e),A(o)}else{if(!t){e();return}p(()=>{let n=E(e);typeof n=="function"&&l(n)})}}function Z(e){l(e)}function D(e){let t=R();if(t)t.effects.push(e),A(t);else{let o;p(()=>{o&&o(),o=e()}),l(()=>{o&&o()})}}function ee(e){return L(e)}function ne(e){let t={current:e};return l(()=>{t.current=null}),t}function te(e,t){let[o,n]=B(t);return[o,s=>{n(e(o(),s))}]}function oe(e,t,o,n){D(()=>{let i=e&&"current"in e?e.current:e;if(i)return i.addEventListener(t,o,n),()=>{i.removeEventListener(t,o,n)}})}function re(e){return e}function ie(){return b}function se(e){b&&e()}import{createSignal as h,createMemo as ae,createEffect as ce,createRenderEffect as ue,isSignal as x,useContext as fe,createContext as de,createSuspenseBoundary as le,provideSuspense as j}from"@fluixi/reactive/signal";import{asSuspense as pe,isComponent as me,createComponent as $,runWithoutHydration as ye}from"@fluixi/dom";function ve(e){return typeof window>"u"?!1:typeof Node=="function"&&e instanceof Node?!0:!!(e&&typeof e=="object"&&typeof e.nodeType=="number")}function be(e){return!e||typeof e!="object"?!1:!!(typeof e._$litType$<"u"||typeof e._$litDirective$<"u"||Array.isArray(e.strings)&&Array.isArray(e.values))}function V(e){return!!(e&&typeof e=="object"&&typeof e.then=="function"||e instanceof Promise)}function xe(e){return!!(e&&typeof e=="object"&&"type"in e&&"props"in e)}var I=de();function w(e){return $(he,e)}function he(e){let t=le(),o=fe(I),n=o?o.register(t.inFallback):void 0;function i(u){return u==null||typeof u=="boolean"?null:typeof u=="function"&&me(u)&&!x(u)?u():u}let s=ye(()=>i(e.fallback??null)),r=j(t,()=>e.children);j(t,()=>{ue(()=>{let u=r;if(Array.isArray(u))for(let m of u)typeof m=="function"&&x(m)&&m();else typeof u=="function"&&x(u)&&u()})});let[a,c]=h(void 0),d=V(r);return d&&(t.increment(),r.then(u=>{c(()=>u),t.decrement()},()=>t.decrement())),ae(()=>(n?n.showFallback():t.inFallback())?s:d?a():r)}function we(e){return $(Ce,e)}function Ce(e){let{revealOrder:t="together",tail:o}=e,n=[];function i(){if(t==="together"){let r=n.every(a=>!a.inFallback());n.forEach(a=>{a.setShowContent(r),a.setShowFallback(!r)})}else{let r=t==="backwards"?[...n].reverse():n,a=!1;for(let c of r)a||c.inFallback()?(a=!0,c.setShowContent(!1),c.setShowFallback(o!=="hidden")):(c.setShowContent(!0),c.setShowFallback(!1))}}let s={register:r=>{let[a,c]=h(!0),[d,u]=h(!1);return n.push({inFallback:r,setShowContent:c,setShowFallback:u}),ce(()=>{r(),i()}),{showContent:a,showFallback:d}}};return I.Provider({value:s,children:e.children})}pe(w);Object.defineProperty(w,"__suspense",{value:!0,enumerable:!0});import{untrack as N,createMemo as ge,createResource as Se}from"@fluixi/reactive/signal";function C(e,t){let o,n,i;function s(){return n||(n=e().then(a=>o=a.default)),n}t?.preload&&s();let r=(a=>{if(o){let c=o;return N(()=>c(a))}if(!i){let[c]=Se(()=>s());if(i=c,c.error)throw c.error}return ge(()=>{let c=i();return c?N(()=>c(a)):void 0},void 0,{name:"lazy"})});return r.preload=()=>s().then(()=>{}),r.$lazy=!0,r.loader=e,r}import{createMemo as ke,createSignal as Te}from"@fluixi/reactive/signal";import{observeIntersection as Ee}from"@fluixi/dom/utils";var z=typeof window>"u";function Le(e,t){let o=t.export??"default",n=C(()=>e().then(s=>{let r=s[o];if(typeof r!="function")throw new Error(`deferred(): module has no '${o}' export (got ${typeof r}).`);return{default:r}}),{fallback:t.fallback});function i(s){if(t.strategy.kind==="never")return z?n(s):null;if(z||t.strategy.kind==="eager")return n(s);let[r,a]=Te(!1),c=()=>{n.preload().then(()=>a(!0))},d=t.strategy.kind==="visible"?Oe():void 0;return Re(t.strategy,c,d),ke(()=>r()?n(s):d??t.fallback??null,void 0,{name:"deferred"})}return i.preload=n.preload,i}function Oe(){let e=document.createElement("span");return e.setAttribute("data-fx-load","visible"),e.style.display="block",e}function Re(e,t,o){let n=!1,i=()=>{n||(n=!0,t())};switch(e.kind){case"idle":{let s=globalThis.requestIdleCallback;s?s(i):setTimeout(i,1);return}case"visible":{if(!o||typeof IntersectionObserver>"u"){i();return}let s=Ee(o,r=>{r&&(s(),i())},{rootMargin:e.rootMargin??"0px"});return}case"interaction":{let s=()=>{for(let r of e.events)document.removeEventListener(r,s,!0);i()};for(let r of e.events)document.addEventListener(r,s,{capture:!0,passive:!0});return}case"media":{if(typeof matchMedia>"u"){i();return}let s=matchMedia(e.query);if(s.matches){i();return}let r=a=>{a.matches&&(s.removeEventListener("change",r),i())};s.addEventListener("change",r);return}default:i()}}import{createResource as Ae}from"@fluixi/reactive/signal";function Pe(e){let t=()=>{let n=e.value;return typeof n=="function"?n():n},[o]=Ae(t);return()=>{if(o.loading)return e.fallback;let n=e.children;return typeof n=="function"?n(o()):n}}var g=typeof window>"u";function je(e,t,o={}){if(P("render"),_(["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 n;return Me(i=>{n=i;let s=typeof e=="function"?e():e;t.textContent="",k(t),T(),De(t,()=>s)}),()=>{n&&(n(),n=void 0)}}function $e(e){return e&&typeof e=="object"&&(e._$litType$!==void 0||e._$litDirective$!==void 0)}function bn(e,t,o={}){let n=document.createElement("div");n.setAttribute("data-portal","true"),t.appendChild(n);let i=je(e,n,o);return()=>{i(),t.contains(n)&&t.removeChild(n)}}function xn(e){return!!(e==null||typeof e=="function"||Fe(e)||$e(e)||Array.isArray(e)||typeof e=="string"||typeof e=="number"||typeof e=="boolean")}function hn(){g||_(["click","input","change","submit"])}function wn(){}export{F as $component,Pe as Await,b as DEV,w as Suspense,we as SuspenseList,J as batch,wn as cleanupDelegation,M as createComponent,p as createEffect,L as createMemo,Le as deferred,se as devOnly,v as getOwner,Y as getSharedConfig,hn as initDelegation,ie as isDev,xe as isJSXElement,be as isLitResult,ve as isNode,V as isPromise,xn as isRenderable,C as lazy,l as onCleanup,G as onMount,Z as onUnmount,bn as portal,je as render,O as runWithOwner,re as useCallback,D as useEffect,oe as useEventListener,ee as useMemo,te as useReducer,ne as useRef};
@@ -0,0 +1 @@
1
+ "use strict";var r=Object.defineProperty;var d=Object.getOwnPropertyDescriptor;var u=Object.getOwnPropertyNames;var m=Object.prototype.hasOwnProperty;var f=(e,i)=>{for(var t in i)r(e,t,{get:i[t],enumerable:!0})},p=(e,i,t,a)=>{if(i&&typeof i=="object"||typeof i=="function")for(let s of u(i))!m.call(e,s)&&s!==t&&r(e,s,{get:()=>i[s],enumerable:!(a=d(i,s))||a.enumerable});return e};var x=e=>p(r({},"__esModule",{value:!0}),e);var h={};f(h,{stampVersions:()=>v,versions:()=>o,warnOnVersionSkew:()=>V});module.exports=x(h);var n="1.0.0-alpha.70";var l=require("@fluixi/dom"),c=require("@fluixi/reactive"),o={core:n,dom:l.VERSION,reactive:c.VERSION};function v(e){e.setAttribute("fluixi",o.core),e.setAttribute("fx-dom",o.dom),e.setAttribute("fx-reactive",o.reactive),typeof globalThis<"u"&&(globalThis.Fluixi=o)}function V(){new Set(Object.values(o)).size<=1||console.warn(`[fluixi] package versions disagree — core ${o.core}, dom ${o.dom}, reactive ${o.reactive}. These ship as one release, so a mismatch usually means a stale lockfile or two copies resolved side by side. Reinstall, or check for duplicates with \`pnpm why @fluixi/dom\`.`)}
@@ -0,0 +1,27 @@
1
+ /** The versions of the packages this app is running. */
2
+ export interface FluixiVersions {
3
+ core: string;
4
+ dom: string;
5
+ reactive: string;
6
+ }
7
+ export declare const versions: FluixiVersions;
8
+ declare global {
9
+ var Fluixi: FluixiVersions | undefined;
10
+ }
11
+ /**
12
+ * Stamp the versions onto the mount element and expose them as `window.Fluixi`.
13
+ *
14
+ * The attributes make it visible in the page source and in a screenshot of devtools —
15
+ * which is usually all a bug report contains — while the global is what you reach for in
16
+ * a console.
17
+ */
18
+ export declare function stampVersions(container: Element): void;
19
+ /**
20
+ * Warn when the three packages are not from the same release.
21
+ *
22
+ * They are versioned as one unit, so a mismatch means the install is wrong, not that a
23
+ * combination needs supporting. Worth saying once, loudly, rather than letting it surface
24
+ * later as a reactivity bug nobody can reproduce.
25
+ */
26
+ export declare function warnOnVersionSkew(): void;
27
+ //# sourceMappingURL=versions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"versions.d.ts","sourceRoot":"","sources":["../../../../src/lib/render/versions.ts"],"names":[],"mappings":"AAqBA,wDAAwD;AACxD,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,eAAO,MAAM,QAAQ,EAAE,cAA6D,CAAC;AAErF,OAAO,CAAC,MAAM,CAAC;IAEb,IAAI,MAAM,EAAE,cAAc,GAAG,SAAS,CAAC;CACxC;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,SAAS,EAAE,OAAO,GAAG,IAAI,CAMtD;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,IAAI,IAAI,CASxC"}