@fluixi/core 1.0.0-alpha.83 → 1.0.0-alpha.85

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 (182) hide show
  1. package/dist/cdn/core.global.js +2 -1
  2. package/dist/cli/generate.cjs +4117 -292
  3. package/dist/cli/generate.mjs +4122 -292
  4. package/dist/cli/index.cjs +4117 -292
  5. package/dist/cli/index.mjs +4122 -292
  6. package/dist/cli/run.cjs +63 -1
  7. package/dist/cli/run.mjs +39 -1
  8. package/dist/src/cdn/chunk-MDJLC3PE.mjs +830 -0
  9. package/dist/src/cdn/core.cjs +1365 -1
  10. package/dist/src/cdn/core.d.ts +3 -3
  11. package/dist/src/cdn/core.js +3 -3
  12. package/dist/src/cdn/core.mjs +642 -1
  13. package/dist/src/cdn/router-JYFZP3EZ.mjs +70 -0
  14. package/dist/src/index.cjs +1280 -1
  15. package/dist/src/index.d.ts.map +1 -1
  16. package/dist/src/index.js +1 -11
  17. package/dist/src/index.mjs +1393 -1
  18. package/dist/src/jsx-dev-runtime.cjs +26 -1
  19. package/dist/src/jsx-dev-runtime.mjs +24 -1
  20. package/dist/src/jsx-runtime.cjs +26 -1
  21. package/dist/src/jsx-runtime.js +0 -9
  22. package/dist/src/jsx-runtime.mjs +24 -1
  23. package/dist/src/lib/client/chunk-7IUN2FLI.mjs +133 -0
  24. package/dist/src/lib/client/index.cjs +956 -1
  25. package/dist/src/lib/client/index.d.ts +17 -6
  26. package/dist/src/lib/client/index.d.ts.map +1 -1
  27. package/dist/src/lib/client/index.js +26 -19
  28. package/dist/src/lib/client/index.mjs +222 -1
  29. package/dist/src/lib/client/router-NOFEMOEH.mjs +631 -0
  30. package/dist/src/lib/context/context.cjs +118 -1
  31. package/dist/src/lib/context/context.d.ts +19 -37
  32. package/dist/src/lib/context/context.d.ts.map +1 -1
  33. package/dist/src/lib/context/context.js +8 -45
  34. package/dist/src/lib/context/context.mjs +99 -1
  35. package/dist/src/lib/context/index.cjs +120 -1
  36. package/dist/src/lib/context/index.mjs +99 -1
  37. package/dist/src/lib/control-flow.cjs +35 -1
  38. package/dist/src/lib/control-flow.mjs +25 -1
  39. package/dist/src/lib/core.cjs +1279 -1
  40. package/dist/src/lib/core.d.ts +0 -2
  41. package/dist/src/lib/core.d.ts.map +1 -1
  42. package/dist/src/lib/core.js +14 -48
  43. package/dist/src/lib/core.mjs +1393 -1
  44. package/dist/src/lib/env/index.cjs +60 -1
  45. package/dist/src/lib/env/index.d.ts +5 -5
  46. package/dist/src/lib/env/index.js +5 -5
  47. package/dist/src/lib/env/index.mjs +39 -1
  48. package/dist/src/lib/i18n/index.cjs +108 -1
  49. package/dist/src/lib/i18n/index.d.ts +31 -10
  50. package/dist/src/lib/i18n/index.d.ts.map +1 -1
  51. package/dist/src/lib/i18n/index.js +31 -10
  52. package/dist/src/lib/i18n/index.mjs +88 -1
  53. package/dist/src/lib/index.cjs +633 -1
  54. package/dist/src/lib/index.d.ts +0 -2
  55. package/dist/src/lib/index.d.ts.map +1 -1
  56. package/dist/src/lib/index.js +5 -11
  57. package/dist/src/lib/index.mjs +721 -1
  58. package/dist/src/lib/isomorphic.cjs +85 -1
  59. package/dist/src/lib/isomorphic.d.ts +41 -8
  60. package/dist/src/lib/isomorphic.d.ts.map +1 -1
  61. package/dist/src/lib/isomorphic.js +38 -5
  62. package/dist/src/lib/isomorphic.mjs +64 -1
  63. package/dist/src/lib/jsx-runtime/index.cjs +21 -1
  64. package/dist/src/lib/jsx-runtime/index.d.ts +1 -1
  65. package/dist/src/lib/jsx-runtime/index.js +1 -11
  66. package/dist/src/lib/jsx-runtime/index.mjs +4 -1
  67. package/dist/src/lib/jsx-runtime/jsx-dev-runtime.cjs +21 -1
  68. package/dist/src/lib/jsx-runtime/jsx-dev-runtime.mjs +4 -1
  69. package/dist/src/lib/plugins/fluixi-routes-plugin.cjs +302 -8
  70. package/dist/src/lib/plugins/fluixi-routes-plugin.d.ts +15 -1
  71. package/dist/src/lib/plugins/fluixi-routes-plugin.d.ts.map +1 -1
  72. package/dist/src/lib/plugins/fluixi-routes-plugin.js +19 -5
  73. package/dist/src/lib/plugins/fluixi-routes-plugin.mjs +271 -8
  74. package/dist/src/lib/plugins/index.cjs +311 -8
  75. package/dist/src/lib/plugins/index.mjs +279 -8
  76. package/dist/src/lib/plugins/route-codegen.cjs +73 -8
  77. package/dist/src/lib/plugins/route-codegen.d.ts +0 -1
  78. package/dist/src/lib/plugins/route-codegen.d.ts.map +1 -1
  79. package/dist/src/lib/plugins/route-codegen.js +4 -5
  80. package/dist/src/lib/plugins/route-codegen.mjs +52 -8
  81. package/dist/src/lib/plugins/route-scanner.cjs +189 -1
  82. package/dist/src/lib/plugins/route-scanner.d.ts +1 -2
  83. package/dist/src/lib/plugins/route-scanner.d.ts.map +1 -1
  84. package/dist/src/lib/plugins/route-scanner.js +7 -8
  85. package/dist/src/lib/plugins/route-scanner.mjs +158 -1
  86. package/dist/src/lib/plugins/vite.cjs +27 -1
  87. package/dist/src/lib/plugins/vite.mjs +6 -1
  88. package/dist/src/lib/render/await.cjs +38 -1
  89. package/dist/src/lib/render/await.d.ts +18 -0
  90. package/dist/src/lib/render/await.d.ts.map +1 -1
  91. package/dist/src/lib/render/await.js +20 -2
  92. package/dist/src/lib/render/await.mjs +17 -1
  93. package/dist/src/lib/render/component.cjs +221 -1
  94. package/dist/src/lib/render/component.d.ts +3 -44
  95. package/dist/src/lib/render/component.d.ts.map +1 -1
  96. package/dist/src/lib/render/component.js +23 -55
  97. package/dist/src/lib/render/component.mjs +214 -1
  98. package/dist/src/lib/render/deferred.cjs +175 -1
  99. package/dist/src/lib/render/deferred.js +5 -5
  100. package/dist/src/lib/render/deferred.mjs +158 -1
  101. package/dist/src/lib/render/index.cjs +573 -1
  102. package/dist/src/lib/render/index.d.ts +3 -17
  103. package/dist/src/lib/render/index.d.ts.map +1 -1
  104. package/dist/src/lib/render/index.js +8 -22
  105. package/dist/src/lib/render/index.mjs +590 -1
  106. package/dist/src/lib/render/lazy.cjs +67 -1
  107. package/dist/src/lib/render/lazy.d.ts +22 -1
  108. package/dist/src/lib/render/lazy.d.ts.map +1 -1
  109. package/dist/src/lib/render/lazy.js +26 -5
  110. package/dist/src/lib/render/lazy.mjs +50 -1
  111. package/dist/src/lib/render/suspense.cjs +141 -1
  112. package/dist/src/lib/render/suspense.d.ts +40 -0
  113. package/dist/src/lib/render/suspense.d.ts.map +1 -1
  114. package/dist/src/lib/render/suspense.js +46 -6
  115. package/dist/src/lib/render/suspense.mjs +136 -1
  116. package/dist/src/lib/render/versions.cjs +35 -1
  117. package/dist/src/lib/render/versions.js +6 -6
  118. package/dist/src/lib/render/versions.mjs +14 -1
  119. package/dist/src/lib/router/data.cjs +230 -1
  120. package/dist/src/lib/router/data.d.ts +1 -13
  121. package/dist/src/lib/router/data.d.ts.map +1 -1
  122. package/dist/src/lib/router/data.js +0 -12
  123. package/dist/src/lib/router/data.mjs +214 -1
  124. package/dist/src/lib/router/index.cjs +709 -1
  125. package/dist/src/lib/router/index.d.ts +78 -23
  126. package/dist/src/lib/router/index.d.ts.map +1 -1
  127. package/dist/src/lib/router/index.js +161 -37
  128. package/dist/src/lib/router/index.mjs +722 -1
  129. package/dist/src/lib/router/transition.cjs +75 -0
  130. package/dist/src/lib/router/transition.d.ts +81 -0
  131. package/dist/src/lib/router/transition.d.ts.map +1 -0
  132. package/dist/src/lib/router/transition.js +136 -0
  133. package/dist/src/lib/router/transition.mjs +54 -0
  134. package/dist/src/lib/server/hydration.cjs +169 -1
  135. package/dist/src/lib/server/hydration.d.ts +15 -55
  136. package/dist/src/lib/server/hydration.d.ts.map +1 -1
  137. package/dist/src/lib/server/hydration.js +23 -62
  138. package/dist/src/lib/server/hydration.mjs +148 -1
  139. package/dist/src/lib/server/index.cjs +401 -11
  140. package/dist/src/lib/server/index.d.ts +30 -6
  141. package/dist/src/lib/server/index.d.ts.map +1 -1
  142. package/dist/src/lib/server/index.js +34 -11
  143. package/dist/src/lib/server/index.mjs +379 -11
  144. package/dist/src/lib/server/reactive.cjs +197 -1
  145. package/dist/src/lib/server/reactive.d.ts +18 -77
  146. package/dist/src/lib/server/reactive.d.ts.map +1 -1
  147. package/dist/src/lib/server/reactive.js +19 -78
  148. package/dist/src/lib/server/reactive.mjs +176 -1
  149. package/dist/src/lib/theme/index.cjs +110 -1
  150. package/dist/src/lib/theme/index.d.ts +19 -4
  151. package/dist/src/lib/theme/index.d.ts.map +1 -1
  152. package/dist/src/lib/theme/index.js +17 -2
  153. package/dist/src/lib/theme/index.mjs +89 -1
  154. package/dist/src/lib/utils/index.cjs +209 -1
  155. package/dist/src/lib/utils/index.d.ts +0 -93
  156. package/dist/src/lib/utils/index.d.ts.map +1 -1
  157. package/dist/src/lib/utils/index.js +0 -93
  158. package/dist/src/lib/utils/index.mjs +188 -1
  159. package/dist/src/routes.cjs +37 -1
  160. package/dist/src/routes.d.ts +1 -1
  161. package/dist/src/routes.js +2 -2
  162. package/dist/src/routes.mjs +17 -1
  163. package/dist/src/server.cjs +400 -11
  164. package/dist/src/server.d.ts +0 -1
  165. package/dist/src/server.d.ts.map +1 -1
  166. package/dist/src/server.js +0 -1
  167. package/dist/src/server.mjs +377 -11
  168. package/dist/src/utils.cjs +21 -1
  169. package/dist/src/utils.d.ts +1 -1
  170. package/dist/src/utils.js +1 -1
  171. package/dist/src/utils.mjs +4 -1
  172. package/dist/src/version.generated.cjs +26 -1
  173. package/dist/src/version.generated.d.ts +1 -1
  174. package/dist/src/version.generated.js +2 -2
  175. package/dist/src/version.generated.mjs +5 -1
  176. package/dist/tsconfig.lib.tsbuildinfo +1 -1
  177. package/package.json +17 -16
  178. package/src/index.ts +2 -14
  179. package/dist/src/cdn/chunk-55BT3H6E.mjs +0 -1
  180. package/dist/src/cdn/router-5JJZBK4E.mjs +0 -1
  181. package/dist/src/lib/client/chunk-SM4WHBOP.mjs +0 -1
  182. package/dist/src/lib/client/router-IBD4WPQT.mjs +0 -1
@@ -5,10 +5,10 @@
5
5
  * const [count, setCount] = Fluixi.createSignal(0);
6
6
  * Fluixi.startClient(App); // or Fluixi.mount(App, root)
7
7
  *
8
- * Self-contained: the whole client runtime reactive (createSignal/createMemo/…),
8
+ * Self-contained: the whole client runtime: reactive (createSignal/createMemo/...),
9
9
  * components + lifecycle, control flow (Show/For/Switch/Suspense), the router, and
10
- * the client bootstrap (startClient/mount/hydrate) bundled into one <script>.
11
- * Server/compiler/vite tooling is NOT included (it isn't part of the browser runtime).
10
+ * the client bootstrap (startClient/mount/hydrate): bundled into one <script>.
11
+ * Server/compiler/vite tooling is not included (it isn't part of the browser runtime).
12
12
  */
13
13
  export * from '../lib/index.js';
14
14
  export { startClient, mount } from '../lib/client/index.js';
@@ -5,10 +5,10 @@
5
5
  * const [count, setCount] = Fluixi.createSignal(0);
6
6
  * Fluixi.startClient(App); // or Fluixi.mount(App, root)
7
7
  *
8
- * Self-contained: the whole client runtime reactive (createSignal/createMemo/…),
8
+ * Self-contained: the whole client runtime: reactive (createSignal/createMemo/...),
9
9
  * components + lifecycle, control flow (Show/For/Switch/Suspense), the router, and
10
- * the client bootstrap (startClient/mount/hydrate) bundled into one <script>.
11
- * Server/compiler/vite tooling is NOT included (it isn't part of the browser runtime).
10
+ * the client bootstrap (startClient/mount/hydrate): bundled into one <script>.
11
+ * Server/compiler/vite tooling is not included (it isn't part of the browser runtime).
12
12
  */
13
13
  export * from '../lib/index.js';
14
14
  export { startClient, mount } from '../lib/client/index.js';
@@ -1 +1,642 @@
1
- import{A as me,B as ye,D as xe,F as ve,H as he,I as Se,L as be,M as Ce,a as L,b as h,c as re,d as oe,e as se,f as ie,g as ae,h as M,i as A,j as S,k as I,l as F,s as ce,t as ue,u as fe,v as pe,w as de,y as le}from"./chunk-55BT3H6E.mjs";import{createEffect as Jn,createMemo as Bn,createSignal as Gn,createResource as Qn,createRoot as Zn,createComputed as er,createRenderEffect as tr,onCleanup as nr,getOwner as rr,runWithOwner as or,batch as sr,untrack as ir,createDeferred as ar,setOwner as cr}from"@fluixi/reactive/signal";import{createDebounce as fr,createSelector as pr}from"@fluixi/reactive/signal";import{readSignal as lr,reduceSignal as mr}from"@fluixi/reactive/operators";import{createStore as xr,untrackStore as vr,Store as hr}from"@fluixi/reactive/store";import{isServer as _}from"@fluixi/dom";import{createRoot as Ve}from"@fluixi/reactive/signal";import{registerCoreVersion as ge}from"@fluixi/dom";var D="1.0.0-alpha.83";import{stampVersions as j,warnOnVersionSkew as H,versions as Ct}from"@fluixi/dom";ge(D);import{isDOMNode as Xe,delegateEvents as Q,insert as ze}from"@fluixi/dom";import{isServer as N}from"@fluixi/dom";import{createComponent as Te,asComponent as we}from"@fluixi/dom";import{untrack as U,onCleanup as a,getOwner as C,createEffect as d,createMemo as K,createSignal as Ee,isSignal as ke,batch as Re,runWithOwner as $,isOwnerDisposed as Pe}from"@fluixi/reactive/signal";var _e={context:null,owner:null};function V(){return _e}var l=typeof process<"u"&&!1,b=Symbol.for("fluixi-lifecycle");function X(){let e=C();if(!e)return null;if(!e[b]){let t={mounts:[],effects:[],scheduled:!1};e[b]=t}return e[b]}function z(e){if(e.scheduled)return;if(N()){e.mounts=[],e.effects=[];return}e.scheduled=!0;let t=C();queueMicrotask(()=>{if(Pe(t)){e.mounts=[],e.effects=[];return}$(t,()=>{for(let n of e.mounts)try{let r=n();typeof r=="function"&&a(r)}catch(r){console.error("Error in onMount callback:",r)}for(let n of e.effects){let r;d(()=>{r&&r(),r=n()}),a(()=>{r&&r()})}e.mounts=[],e.effects=[]})})}function f(e,t){return Te(e,t)}function W(e,t){let n=typeof e=="function"?U(()=>e(t)):e,r=n!=null&&(typeof n=="function"||typeof n=="object");if(r)try{n.$name=e.name}catch{}return r&&!ke(n)?we(n):n}function g(e,t=!0){if(N())return;let n=X();if(n){if(!t){n.scheduled||e();return}n.mounts.push(e),z(n)}else{if(!t){e();return}d(()=>{let r=U(e);typeof r=="function"&&a(r)})}}function T(e){a(e)}function m(e){let t=X();if(t)t.effects.push(e),z(t);else{let n;d(()=>{n&&n(),n=e()}),a(()=>{n&&n()})}}function w(e){return K(e)}function E(e){let t={current:e};return a(()=>{t.current=null}),t}function k(e,t){let[n,r]=Ee(t);return[n,i=>{r(e(n(),i))}]}function R(e,t,n,r){m(()=>{let o=e&&"current"in e?e.current:e;if(o)return o.addEventListener(t,n,r),()=>{o.removeEventListener(t,n,r)}})}function P(e){return e}function q(){return l}function Y(e){l&&e()}import{createSignal as Oe,createMemo as Le,createEffect as jt,createRenderEffect as Me,isSignal as J,readChildren as Ae,useContext as Ie,createContext as Fe,createSuspenseBoundary as De,provideSuspense as B}from"@fluixi/reactive/signal";import{asSuspense as je,isComponent as He,createComponent as Ne,runWithoutHydration as Ue}from"@fluixi/dom";function G(e){return!!(e&&typeof e=="object"&&typeof e.then=="function"||e instanceof Promise)}var Ke=Fe(void 0,"suspense-list");function y(e){return Ne($e,e)}function $e(e){let t=De(),n=Ie(Ke),r=n?n.register(t.inFallback):void 0;function o(s){return s==null||typeof s=="boolean"?null:typeof s=="function"&&He(s)&&!J(s)?s():s}let i=Ue(()=>o(e.fallback??null)),u=B(t,()=>Ae(()=>e.children)),x=(s,v)=>{if(!(v>8))if(Array.isArray(s))for(let ne of s)x(ne,v+1);else typeof s=="function"&&J(s)&&x(s(),v+1)};B(t,()=>{Me(()=>x(u,0))});let[ee,te]=Oe(void 0),O=G(u);return O&&(t.increment(),u.then(s=>{te(()=>s),t.decrement()},()=>t.decrement())),Le(()=>(r?r.showFallback():t.inFallback())?i:O?ee():u)}je(y);Object.defineProperty(y,"__suspense",{value:!0,enumerable:!0});import{isServer as Kt}from"@fluixi/dom";import{createMemo as Vt,createSignal as Xt}from"@fluixi/reactive/signal";import{observeIntersection as Wt}from"@fluixi/dom/utils";import{createResource as Bt}from"@fluixi/reactive/signal";function p(e,t,n={}){if(Q(["click","input","change","submit"]),_())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 Ve(o=>{r=o;let i=typeof e=="function"?e():e;t.textContent="",j(t),H(),ze(t,()=>i)}),()=>{r&&(r(),r=void 0)}}function We(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=p(e,r,n);return()=>{o(),t.contains(r)&&t.removeChild(r)}}function Ye(e){return!!(e==null||typeof e=="function"||Xe(e)||We(e)||Array.isArray(e)||typeof e=="string"||typeof e=="number"||typeof e=="boolean")}function Je(){_()||Q(["click","input","change","submit"])}function Be(){_()}import{createSignal as Ge,createMemo as hn}from"@fluixi/reactive/signal";import{getServerData as Qe}from"@fluixi/dom";var Ze="__fluixi_iso_states__",et="__iso:";function tt(){return globalThis[Ze]??=new Map}function nt(e){if(typeof window>"u")return;let t=Qe();return t?t[et+e]:void 0}function rt(e,t){let n=nt(e),r=n!==void 0?n:typeof window<"u"&&t.client?t.client():t.fallback,[o,i]=Ge(r);return tt().set(e,{server:t.server,set:i}),{value:o,set:i,key:e}}import{classMap as Tr,styleMap as wr}from"@fluixi/dom";import{Show as Tn,For as wn,Index as En,Switch as kn,Match as Rn,Dynamic as Pn,ErrorBoundary as _n,Portal as On,ClientOnly as Ln,NoSsr as Mn}from"@fluixi/dom";import{insert as Rr,spread as Pr,setAttribute as _r,setProperty as Or,addClass as Lr,removeClass as Mr,toggleClass as Ar,delegateEvents as Ir,isDOMNode as Fr,isLitTemplateResult as Dr,hydrate as jr}from"@fluixi/dom";var c={};L(c,An);import*as An from"@fluixi/jsx/jsx-runtime";import{createSignal as Dn,createEffect as jn,createMemo as Hn,createRoot as Nn,batch as Un,untrack as Kn,onCleanup as $n}from"@fluixi/reactive/signal";var ot="0.0.1",st="Fluixi";function In(){return{name:st,version:ot,features:{ssr:!0,hydration:!0,jsx:!0,litHtml:!0,signals:!0,fineGrained:!0,lazy:!0,hooks:!0,devMode:!0}}}import{render as it,hydrate as at}from"@fluixi/dom";import{createMemo as ct}from"@fluixi/reactive/signal";import{createHead as ut,setActiveHead as ft,mountHead as pt,stripHeadMarker as dt}from"@fluixi/head";import{hydrate as Jr}from"@fluixi/dom";function lt(e,t){if(!t)throw new Error("Container element not found for mount()");it(()=>e(),t)}var Z=e=>ct(()=>f(e));async function mt(e,t={}){let n=typeof t.root=="string"?document.querySelector(t.root):t.root??document.querySelector("#app");if(!n)throw new Error(`[Fluixi] Mount container not found: ${t.root??"#app"}`);let r=!!document.getElementById("__FLUIXI_HYDRATION__")||!!t.routes&&n.firstElementChild!=null,o=t.hydrate??r,i=ut();if(ft(i),dt(n),o){if(t.routes&&t.routes.length){let{preloadRoutes:u}=await import("./router-5JJZBK4E.mjs");await u(t.routes,window.location.pathname)}I(),S(!0),at(Z(e),n),yt(),setTimeout(()=>{S(!1),F()},100)}else p(Z(e),n);pt(i)}function yt(){if(typeof window>"u")return;let e=window;typeof e.__FX_REPLAY_STOP__=="function"&&e.__FX_REPLAY_STOP__();let t=e.__FX_REPLAY__;if(e.__FX_REPLAY__=void 0,e.__FX_REPLAY_STOP__=void 0,!(!Array.isArray(t)||t.length===0))for(let n of t){let r=n&&n.target;if(!r||r.isConnected===!1||typeof r.dispatchEvent!="function")continue;let o=n.type,i=o==="click"?new MouseEvent(o,{bubbles:!0,cancelable:!0}):new Event(o,{bubbles:!0,cancelable:!0});r.dispatchEvent(i)}}var export_Fragment=c.Fragment;var export_jsx=c.jsx;var export_jsxs=c.jsxs;export{W as $component,Se as A,Ln as ClientOnly,l as DEV,Pn as Dynamic,_n as ErrorBoundary,st as FRAMEWORK_NAME,wn as For,export_Fragment as Fragment,En as Index,he as Link,Rn as Match,Mn as NoSsr,ue as Outlet,On as Portal,fe as Redirect,ce as Router,Tn as Show,hr as Store,y as Suspense,kn as Switch,ot as VERSION,Lr as addClass,sr as batch,Tr as classMap,Be as cleanupDelegation,se as composeProviders,Ce as createBrowserHistory,f as createComponent,er as createComputed,ie as createConsumer,M as createContext,oe as createContextWithProvider,fr as createDebounce,ar as createDeferred,Jn as createEffect,rt as createIsomorphicState,Bn as createMemo,be as createMemoryHistory,re as createProvider,tr as createRenderEffect,Qn as createResource,Zn as createRoot,pr as createSelector,Gn as createSignal,xr as createStore,Ir as delegateEvents,Y as devOnly,In as getFrameworkInfo,rr as getOwner,V as getSharedConfig,jr as hydrate,Je as initDelegation,Rr as insert,Fr as isDOMNode,q as isDev,Dr as isLitTemplateResult,Ye as isRenderable,export_jsx as jsx,export_jsxs as jsxs,h as lazy,lt as mount,nr as onCleanup,g as onMount,T as onUnmount,qe as portal,lr as read,mr as reduce,Mr as removeClass,p as render,or as runWithOwner,_r as setAttribute,cr as setOwner,Or as setProperty,Pr as spread,mt as startClient,wr as styleMap,Ar as toggleClass,ir as untrack,vr as untrackStore,P as useCallback,A as useContext,m as useEffect,R as useEventListener,xe as useLocation,me as useMatch,w as useMemo,ve as useNavigate,le as useParam,de as useParams,ae as useProvide,k as useReducer,E as useRef,pe as useRouter,ye as useSearchParams};
1
+ import {
2
+ A,
3
+ Link,
4
+ Outlet,
5
+ Redirect,
6
+ Router,
7
+ __reExport,
8
+ cleanupHydration,
9
+ composeProviders,
10
+ createBrowserHistory,
11
+ createConsumer,
12
+ createContext,
13
+ createContextWithProvider,
14
+ createMemoryHistory,
15
+ createProvider,
16
+ deserializeHydrationData,
17
+ lazy,
18
+ setHydrating,
19
+ useContext,
20
+ useLocation,
21
+ useMatch,
22
+ useNavigate,
23
+ useParam,
24
+ useParams,
25
+ useProvide,
26
+ useRouter,
27
+ useSearchParams
28
+ } from "./chunk-MDJLC3PE.mjs";
29
+
30
+ // src/lib/index.ts
31
+ import {
32
+ createEffect as createEffect3,
33
+ createMemo as createMemo5,
34
+ createSignal as createSignal5,
35
+ createResource as createResource3,
36
+ createRoot as createRoot3,
37
+ createComputed as createComputed2,
38
+ createRenderEffect as createRenderEffect3,
39
+ onCleanup as onCleanup2,
40
+ getOwner as getOwner2,
41
+ runWithOwner as runWithOwner2,
42
+ batch as batch2,
43
+ untrack as untrack2,
44
+ createDeferred as createDeferred2,
45
+ setOwner
46
+ } from "@fluixi/reactive/signal";
47
+ import { createDebounce, createSelector } from "@fluixi/reactive/signal";
48
+ import {
49
+ readSignal,
50
+ reduceSignal
51
+ } from "@fluixi/reactive/operators";
52
+ import { createStore, untrackStore, Store } from "@fluixi/reactive/store";
53
+
54
+ // src/lib/render/index.ts
55
+ import { isServer as isServer3 } from "@fluixi/dom";
56
+ import { createRoot as createRoot2 } from "@fluixi/reactive/signal";
57
+
58
+ // src/lib/render/versions.ts
59
+ import { registerCoreVersion } from "@fluixi/dom";
60
+
61
+ // src/version.generated.ts
62
+ var VERSION = "1.0.0-alpha.85";
63
+
64
+ // src/lib/render/versions.ts
65
+ import { stampVersions, warnOnVersionSkew, versions } from "@fluixi/dom";
66
+ registerCoreVersion(VERSION);
67
+
68
+ // src/lib/render/index.ts
69
+ import {
70
+ isDOMNode,
71
+ delegateEvents,
72
+ insert
73
+ } from "@fluixi/dom";
74
+
75
+ // src/lib/render/component.ts
76
+ import { isServer } from "@fluixi/dom";
77
+ import {
78
+ createComponent as domCreateComponent,
79
+ asComponent
80
+ } from "@fluixi/dom";
81
+ import {
82
+ untrack,
83
+ onCleanup,
84
+ getOwner,
85
+ createEffect,
86
+ createMemo,
87
+ createSignal,
88
+ isSignal,
89
+ batch,
90
+ runWithOwner,
91
+ isOwnerDisposed
92
+ } from "@fluixi/reactive/signal";
93
+ var sharedConfig = {
94
+ context: null,
95
+ owner: null
96
+ };
97
+ function getSharedConfig() {
98
+ return sharedConfig;
99
+ }
100
+ var DEV = typeof process !== "undefined" && false;
101
+ var _LIFECYCLE = /* @__PURE__ */ Symbol.for("fluixi-lifecycle");
102
+ function getOwnerLifecycle() {
103
+ const owner = getOwner();
104
+ if (!owner) return null;
105
+ if (!owner[_LIFECYCLE]) {
106
+ const lc = { mounts: [], effects: [], scheduled: false };
107
+ owner[_LIFECYCLE] = lc;
108
+ }
109
+ return owner[_LIFECYCLE];
110
+ }
111
+ function scheduleLifecycleFlush(lc) {
112
+ if (lc.scheduled) return;
113
+ if (isServer()) {
114
+ lc.mounts = [];
115
+ lc.effects = [];
116
+ return;
117
+ }
118
+ lc.scheduled = true;
119
+ const owner = getOwner();
120
+ queueMicrotask(() => {
121
+ if (isOwnerDisposed(owner)) {
122
+ lc.mounts = [];
123
+ lc.effects = [];
124
+ return;
125
+ }
126
+ runWithOwner(owner, () => {
127
+ for (const cb of lc.mounts) {
128
+ try {
129
+ const cleanup = cb();
130
+ if (typeof cleanup === "function") {
131
+ onCleanup(cleanup);
132
+ }
133
+ } catch (e) {
134
+ console.error("Error in onMount callback:", e);
135
+ }
136
+ }
137
+ for (const cb of lc.effects) {
138
+ let cleanup;
139
+ createEffect(() => {
140
+ if (cleanup) cleanup();
141
+ cleanup = cb();
142
+ });
143
+ onCleanup(() => {
144
+ if (cleanup) cleanup();
145
+ });
146
+ }
147
+ lc.mounts = [];
148
+ lc.effects = [];
149
+ });
150
+ });
151
+ }
152
+ function createComponent(Comp, props) {
153
+ return domCreateComponent(Comp, props);
154
+ }
155
+ function $component(value, props) {
156
+ const component = typeof value === "function" ? untrack(() => value(props)) : value;
157
+ const nameable = component != null && (typeof component === "function" || typeof component === "object");
158
+ if (nameable) {
159
+ try {
160
+ component["$name"] = value.name;
161
+ } catch {
162
+ }
163
+ }
164
+ if (nameable && !isSignal(component)) {
165
+ return asComponent(component);
166
+ }
167
+ return component;
168
+ }
169
+ function onMount(fn, reactive = true) {
170
+ if (isServer()) return;
171
+ const lc = getOwnerLifecycle();
172
+ if (lc) {
173
+ if (!reactive) {
174
+ if (!lc.scheduled) {
175
+ fn();
176
+ }
177
+ return;
178
+ }
179
+ lc.mounts.push(fn);
180
+ scheduleLifecycleFlush(lc);
181
+ } else {
182
+ if (!reactive) {
183
+ fn();
184
+ return;
185
+ }
186
+ createEffect(() => {
187
+ const cleanup = untrack(fn);
188
+ if (typeof cleanup === "function") {
189
+ onCleanup(cleanup);
190
+ }
191
+ });
192
+ }
193
+ }
194
+ function onUnmount(fn) {
195
+ onCleanup(fn);
196
+ }
197
+ function useEffect(callback) {
198
+ const lc = getOwnerLifecycle();
199
+ if (lc) {
200
+ lc.effects.push(callback);
201
+ scheduleLifecycleFlush(lc);
202
+ } else {
203
+ let cleanup;
204
+ createEffect(() => {
205
+ if (cleanup) cleanup();
206
+ cleanup = callback();
207
+ });
208
+ onCleanup(() => {
209
+ if (cleanup) cleanup();
210
+ });
211
+ }
212
+ }
213
+ function useMemo(fn) {
214
+ return createMemo(fn);
215
+ }
216
+ function useRef(initialValue) {
217
+ const ref = { current: initialValue };
218
+ onCleanup(() => {
219
+ ref.current = null;
220
+ });
221
+ return ref;
222
+ }
223
+ function useReducer(reducer, initialState) {
224
+ const [state, setState] = createSignal(initialState);
225
+ const dispatch = (action) => {
226
+ setState(reducer(state(), action));
227
+ };
228
+ return [state, dispatch];
229
+ }
230
+ function useEventListener(target, event, handler, options) {
231
+ useEffect(() => {
232
+ const element = target && "current" in target ? target.current : target;
233
+ if (!element) return;
234
+ element.addEventListener(event, handler, options);
235
+ return () => {
236
+ element.removeEventListener(event, handler, options);
237
+ };
238
+ });
239
+ }
240
+ function useCallback(callback) {
241
+ return callback;
242
+ }
243
+ function isDev() {
244
+ return DEV;
245
+ }
246
+ function devOnly(fn) {
247
+ if (DEV) {
248
+ fn();
249
+ }
250
+ }
251
+
252
+ // src/lib/render/suspense.ts
253
+ import {
254
+ createSignal as createSignal2,
255
+ createMemo as createMemo2,
256
+ createEffect as createEffect2,
257
+ createRenderEffect as createRenderEffect2,
258
+ isSignal as isSignal2,
259
+ readChildren,
260
+ useContext as useContext3,
261
+ createContext as createContext3,
262
+ createSuspenseBoundary,
263
+ provideSuspense
264
+ } from "@fluixi/reactive/signal";
265
+ import {
266
+ asSuspense,
267
+ isComponent,
268
+ createComponent as createComponent2,
269
+ runWithoutHydration
270
+ } from "@fluixi/dom";
271
+ function isPromise(value) {
272
+ return !!(value && typeof value === "object" && typeof value.then === "function" || value instanceof Promise);
273
+ }
274
+ var SuspenseListContext = createContext3(void 0, "suspense-list");
275
+ function Suspense(props) {
276
+ return createComponent2(SuspenseImpl, props);
277
+ }
278
+ function SuspenseImpl(props) {
279
+ const boundary = createSuspenseBoundary();
280
+ const listCtx = useContext3(SuspenseListContext);
281
+ const listState = listCtx ? listCtx.register(boundary.inFallback) : void 0;
282
+ function instantiateOnce(val) {
283
+ if (val == null || typeof val === "boolean") return null;
284
+ if (typeof val === "function" && isComponent(val) && !isSignal2(val)) return val();
285
+ return val;
286
+ }
287
+ const fallback = runWithoutHydration(() => instantiateOnce(props.fallback ?? null));
288
+ const children = provideSuspense(boundary, () => readChildren(() => props.children));
289
+ const track = (value, depth) => {
290
+ if (depth > 8) return;
291
+ if (Array.isArray(value)) {
292
+ for (const x of value) track(x, depth + 1);
293
+ } else if (typeof value === "function" && isSignal2(value)) {
294
+ track(value(), depth + 1);
295
+ }
296
+ };
297
+ provideSuspense(boundary, () => {
298
+ createRenderEffect2(() => track(children, 0));
299
+ });
300
+ const [resolved, setResolved] = createSignal2(void 0);
301
+ const childIsPromise = isPromise(children);
302
+ if (childIsPromise) {
303
+ boundary.increment();
304
+ children.then(
305
+ (v) => {
306
+ setResolved(() => v);
307
+ boundary.decrement();
308
+ },
309
+ () => boundary.decrement()
310
+ );
311
+ }
312
+ return createMemo2(() => {
313
+ const showFallback = listState ? listState.showFallback() : boundary.inFallback();
314
+ if (showFallback) return fallback;
315
+ if (childIsPromise) return resolved();
316
+ return children;
317
+ });
318
+ }
319
+ asSuspense(Suspense);
320
+ Object.defineProperty(Suspense, "__suspense", { value: true, enumerable: true });
321
+
322
+ // src/lib/render/deferred.ts
323
+ import { isServer as isServer2 } from "@fluixi/dom";
324
+ import { createMemo as createMemo3, createSignal as createSignal3 } from "@fluixi/reactive/signal";
325
+ import { observeIntersection } from "@fluixi/dom/utils";
326
+
327
+ // src/lib/render/await.ts
328
+ import { createResource as createResource2 } from "@fluixi/reactive/signal";
329
+
330
+ // src/lib/render/index.ts
331
+ function render(code, container, options = {}) {
332
+ delegateEvents(["click", "input", "change", "submit"]);
333
+ if (isServer3()) {
334
+ throw new Error(
335
+ "render() is for client-side only. Use renderToString() on server."
336
+ );
337
+ }
338
+ if (!container) {
339
+ throw new Error("Container element is required");
340
+ }
341
+ let disposer;
342
+ createRoot2((dispose) => {
343
+ disposer = dispose;
344
+ const result = typeof code === "function" ? code() : code;
345
+ container.textContent = "";
346
+ stampVersions(container);
347
+ warnOnVersionSkew();
348
+ insert(container, () => result);
349
+ });
350
+ return () => {
351
+ if (disposer) {
352
+ disposer();
353
+ disposer = void 0;
354
+ }
355
+ };
356
+ }
357
+ function isLitTemplateResult(value) {
358
+ return value && typeof value === "object" && (value["_$litType$"] !== void 0 || value["_$litDirective$"] !== void 0);
359
+ }
360
+ function portal(code, target, options = {}) {
361
+ const container = document.createElement("div");
362
+ container.setAttribute("data-portal", "true");
363
+ target.appendChild(container);
364
+ const dispose = render(code, container, options);
365
+ return () => {
366
+ dispose();
367
+ if (target.contains(container)) {
368
+ target.removeChild(container);
369
+ }
370
+ };
371
+ }
372
+ function isRenderable(value) {
373
+ if (value == null) return true;
374
+ if (typeof value === "function") return true;
375
+ if (isDOMNode(value)) return true;
376
+ if (isLitTemplateResult(value)) return true;
377
+ if (Array.isArray(value)) return true;
378
+ if (typeof value === "string" || typeof value === "number" || typeof value === "boolean") {
379
+ return true;
380
+ }
381
+ return false;
382
+ }
383
+ function initDelegation() {
384
+ if (isServer3()) return;
385
+ delegateEvents(["click", "input", "change", "submit"]);
386
+ }
387
+ function cleanupDelegation() {
388
+ if (isServer3()) return;
389
+ }
390
+
391
+ // src/lib/isomorphic.ts
392
+ import { createSignal as createSignal4, createMemo as createMemo4 } from "@fluixi/reactive/signal";
393
+ import { getServerData } from "@fluixi/dom";
394
+ var REGISTRY_KEY = "__fluixi_iso_states__";
395
+ var SEED_PREFIX = "__iso:";
396
+ function registry() {
397
+ return globalThis[REGISTRY_KEY] ??= /* @__PURE__ */ new Map();
398
+ }
399
+ function readSeed(key) {
400
+ if (typeof window === "undefined") return void 0;
401
+ const data = getServerData();
402
+ return data ? data[SEED_PREFIX + key] : void 0;
403
+ }
404
+ function createIsomorphicState(key, options) {
405
+ const seed = readSeed(key);
406
+ const initial = seed !== void 0 ? seed : typeof window !== "undefined" && options.client ? options.client() : options.fallback;
407
+ const [value, set] = createSignal4(initial);
408
+ registry().set(key, { server: options.server, set });
409
+ return { value, set, key };
410
+ }
411
+
412
+ // src/lib/index.ts
413
+ import {
414
+ classMap,
415
+ styleMap
416
+ } from "@fluixi/dom";
417
+
418
+ // src/lib/control-flow.ts
419
+ import {
420
+ Show,
421
+ For,
422
+ Index,
423
+ Switch,
424
+ Match,
425
+ Dynamic,
426
+ ErrorBoundary,
427
+ Portal,
428
+ ClientOnly,
429
+ NoSsr
430
+ } from "@fluixi/dom";
431
+
432
+ // src/lib/index.ts
433
+ import {
434
+ insert as insert2,
435
+ spread,
436
+ setAttribute,
437
+ setProperty,
438
+ addClass,
439
+ removeClass,
440
+ toggleClass,
441
+ delegateEvents as delegateEvents2,
442
+ isDOMNode as isDOMNode2,
443
+ isLitTemplateResult as isLitTemplateResult2,
444
+ hydrate
445
+ } from "@fluixi/dom";
446
+
447
+ // src/lib/jsx-runtime/index.ts
448
+ var jsx_runtime_exports = {};
449
+ __reExport(jsx_runtime_exports, jsx_runtime_star);
450
+ import * as jsx_runtime_star from "@fluixi/jsx/jsx-runtime";
451
+
452
+ // src/lib/index.ts
453
+ import {
454
+ createSignal as _createSignal,
455
+ createEffect as _createEffect,
456
+ createMemo as _createMemo,
457
+ createRoot as _createRoot,
458
+ batch as _batch,
459
+ untrack as _untrack,
460
+ onCleanup as _onCleanup
461
+ } from "@fluixi/reactive/signal";
462
+ var VERSION2 = "0.0.1";
463
+ var FRAMEWORK_NAME = "Fluixi";
464
+ function getFrameworkInfo() {
465
+ return {
466
+ name: FRAMEWORK_NAME,
467
+ version: VERSION2,
468
+ features: {
469
+ ssr: true,
470
+ hydration: true,
471
+ jsx: true,
472
+ litHtml: true,
473
+ signals: true,
474
+ fineGrained: true,
475
+ lazy: true,
476
+ hooks: true,
477
+ devMode: true
478
+ }
479
+ };
480
+ }
481
+
482
+ // src/lib/client/index.ts
483
+ import {
484
+ render as domRender,
485
+ hydrate as domHydrate
486
+ } from "@fluixi/dom";
487
+ import { createMemo as createMemo6 } from "@fluixi/reactive/signal";
488
+ import { createHead, setActiveHead, mountHead, stripHeadMarker } from "@fluixi/head";
489
+ import { hydrate as hydrate2 } from "@fluixi/dom";
490
+ function mount(App, container) {
491
+ if (!container) {
492
+ throw new Error("Container element not found for mount()");
493
+ }
494
+ domRender(() => App(), container);
495
+ }
496
+ var rootOf = (App) => createMemo6(() => createComponent(App));
497
+ async function startClient(App, options = {}) {
498
+ const container = typeof options.root === "string" ? document.querySelector(options.root) : options.root ?? document.querySelector("#app");
499
+ if (!container) {
500
+ throw new Error(
501
+ `[Fluixi] Mount container not found: ${options.root ?? "#app"}`
502
+ );
503
+ }
504
+ const hasServerDom = !!document.getElementById("__FLUIXI_HYDRATION__") || !!options.routes && container.firstElementChild != null;
505
+ const shouldHydrate = options.hydrate ?? hasServerDom;
506
+ const head = createHead();
507
+ setActiveHead(head);
508
+ stripHeadMarker(container);
509
+ if (shouldHydrate) {
510
+ if (options.routes && options.routes.length) {
511
+ const { preloadRoutes } = await import("./router-JYFZP3EZ.mjs");
512
+ await preloadRoutes(options.routes, window.location.pathname);
513
+ }
514
+ deserializeHydrationData();
515
+ setHydrating(true);
516
+ domHydrate(rootOf(App), container);
517
+ replayEvents();
518
+ setTimeout(() => {
519
+ setHydrating(false);
520
+ cleanupHydration();
521
+ }, 100);
522
+ } else {
523
+ render(rootOf(App), container);
524
+ }
525
+ mountHead(head);
526
+ }
527
+ function replayEvents() {
528
+ if (typeof window === "undefined") return;
529
+ const w = window;
530
+ if (typeof w.__FX_REPLAY_STOP__ === "function") w.__FX_REPLAY_STOP__();
531
+ const queue = w.__FX_REPLAY__;
532
+ w.__FX_REPLAY__ = void 0;
533
+ w.__FX_REPLAY_STOP__ = void 0;
534
+ if (!Array.isArray(queue) || queue.length === 0) return;
535
+ for (const rec of queue) {
536
+ const target = rec && rec.target;
537
+ if (!target || target.isConnected === false || typeof target.dispatchEvent !== "function") continue;
538
+ const type = rec.type;
539
+ const ev = type === "click" ? new MouseEvent(type, { bubbles: true, cancelable: true }) : new Event(type, { bubbles: true, cancelable: true });
540
+ target.dispatchEvent(ev);
541
+ }
542
+ }
543
+ var export_Fragment = jsx_runtime_exports.Fragment;
544
+ var export_jsx = jsx_runtime_exports.jsx;
545
+ var export_jsxs = jsx_runtime_exports.jsxs;
546
+ export {
547
+ $component,
548
+ A,
549
+ ClientOnly,
550
+ DEV,
551
+ Dynamic,
552
+ ErrorBoundary,
553
+ FRAMEWORK_NAME,
554
+ For,
555
+ export_Fragment as Fragment,
556
+ Index,
557
+ Link,
558
+ Match,
559
+ NoSsr,
560
+ Outlet,
561
+ Portal,
562
+ Redirect,
563
+ Router,
564
+ Show,
565
+ Store,
566
+ Suspense,
567
+ Switch,
568
+ VERSION2 as VERSION,
569
+ addClass,
570
+ batch2 as batch,
571
+ classMap,
572
+ cleanupDelegation,
573
+ composeProviders,
574
+ createBrowserHistory,
575
+ createComponent,
576
+ createComputed2 as createComputed,
577
+ createConsumer,
578
+ createContext,
579
+ createContextWithProvider,
580
+ createDebounce,
581
+ createDeferred2 as createDeferred,
582
+ createEffect3 as createEffect,
583
+ createIsomorphicState,
584
+ createMemo5 as createMemo,
585
+ createMemoryHistory,
586
+ createProvider,
587
+ createRenderEffect3 as createRenderEffect,
588
+ createResource3 as createResource,
589
+ createRoot3 as createRoot,
590
+ createSelector,
591
+ createSignal5 as createSignal,
592
+ createStore,
593
+ delegateEvents2 as delegateEvents,
594
+ devOnly,
595
+ getFrameworkInfo,
596
+ getOwner2 as getOwner,
597
+ getSharedConfig,
598
+ hydrate,
599
+ initDelegation,
600
+ insert2 as insert,
601
+ isDOMNode2 as isDOMNode,
602
+ isDev,
603
+ isLitTemplateResult2 as isLitTemplateResult,
604
+ isRenderable,
605
+ export_jsx as jsx,
606
+ export_jsxs as jsxs,
607
+ lazy,
608
+ mount,
609
+ onCleanup2 as onCleanup,
610
+ onMount,
611
+ onUnmount,
612
+ portal,
613
+ readSignal as read,
614
+ reduceSignal as reduce,
615
+ removeClass,
616
+ render,
617
+ runWithOwner2 as runWithOwner,
618
+ setAttribute,
619
+ setOwner,
620
+ setProperty,
621
+ spread,
622
+ startClient,
623
+ styleMap,
624
+ toggleClass,
625
+ untrack2 as untrack,
626
+ untrackStore,
627
+ useCallback,
628
+ useContext,
629
+ useEffect,
630
+ useEventListener,
631
+ useLocation,
632
+ useMatch,
633
+ useMemo,
634
+ useNavigate,
635
+ useParam,
636
+ useParams,
637
+ useProvide,
638
+ useReducer,
639
+ useRef,
640
+ useRouter,
641
+ useSearchParams
642
+ };