@fluixi/core 1.0.0-alpha.82 → 1.0.0-alpha.84

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 (179) 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-VNLCQBFQ.mjs +747 -0
  9. package/dist/src/cdn/core.cjs +1279 -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-WMN2AA7E.mjs +66 -0
  14. package/dist/src/index.cjs +1201 -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 +1313 -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-2C2KDDQV.mjs +133 -0
  24. package/dist/src/lib/client/index.cjs +870 -1
  25. package/dist/src/lib/client/index.d.ts +10 -14
  26. package/dist/src/lib/client/index.d.ts.map +1 -1
  27. package/dist/src/lib/client/index.js +36 -21
  28. package/dist/src/lib/client/index.mjs +222 -1
  29. package/dist/src/lib/client/router-X526HSWQ.mjs +548 -0
  30. package/dist/src/lib/context/context.cjs +118 -1
  31. package/dist/src/lib/context/context.d.ts +20 -38
  32. package/dist/src/lib/context/context.d.ts.map +1 -1
  33. package/dist/src/lib/context/context.js +10 -47
  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 +1200 -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 +1313 -1
  44. package/dist/src/lib/env/index.cjs +60 -1
  45. package/dist/src/lib/env/index.d.ts +7 -8
  46. package/dist/src/lib/env/index.d.ts.map +1 -1
  47. package/dist/src/lib/env/index.js +14 -9
  48. package/dist/src/lib/env/index.mjs +39 -1
  49. package/dist/src/lib/i18n/index.cjs +108 -1
  50. package/dist/src/lib/i18n/index.d.ts +31 -10
  51. package/dist/src/lib/i18n/index.d.ts.map +1 -1
  52. package/dist/src/lib/i18n/index.js +31 -10
  53. package/dist/src/lib/i18n/index.mjs +88 -1
  54. package/dist/src/lib/index.cjs +633 -1
  55. package/dist/src/lib/index.d.ts +0 -2
  56. package/dist/src/lib/index.d.ts.map +1 -1
  57. package/dist/src/lib/index.js +5 -11
  58. package/dist/src/lib/index.mjs +721 -1
  59. package/dist/src/lib/isomorphic.cjs +85 -1
  60. package/dist/src/lib/isomorphic.d.ts +41 -8
  61. package/dist/src/lib/isomorphic.d.ts.map +1 -1
  62. package/dist/src/lib/isomorphic.js +38 -5
  63. package/dist/src/lib/isomorphic.mjs +64 -1
  64. package/dist/src/lib/jsx-runtime/index.cjs +21 -1
  65. package/dist/src/lib/jsx-runtime/index.d.ts +1 -1
  66. package/dist/src/lib/jsx-runtime/index.js +1 -11
  67. package/dist/src/lib/jsx-runtime/index.mjs +4 -1
  68. package/dist/src/lib/jsx-runtime/jsx-dev-runtime.cjs +21 -1
  69. package/dist/src/lib/jsx-runtime/jsx-dev-runtime.mjs +4 -1
  70. package/dist/src/lib/plugins/fluixi-routes-plugin.cjs +302 -8
  71. package/dist/src/lib/plugins/fluixi-routes-plugin.d.ts +15 -1
  72. package/dist/src/lib/plugins/fluixi-routes-plugin.d.ts.map +1 -1
  73. package/dist/src/lib/plugins/fluixi-routes-plugin.js +19 -5
  74. package/dist/src/lib/plugins/fluixi-routes-plugin.mjs +271 -8
  75. package/dist/src/lib/plugins/index.cjs +311 -8
  76. package/dist/src/lib/plugins/index.mjs +279 -8
  77. package/dist/src/lib/plugins/route-codegen.cjs +73 -8
  78. package/dist/src/lib/plugins/route-codegen.d.ts +0 -1
  79. package/dist/src/lib/plugins/route-codegen.d.ts.map +1 -1
  80. package/dist/src/lib/plugins/route-codegen.js +4 -5
  81. package/dist/src/lib/plugins/route-codegen.mjs +52 -8
  82. package/dist/src/lib/plugins/route-scanner.cjs +189 -1
  83. package/dist/src/lib/plugins/route-scanner.d.ts +1 -2
  84. package/dist/src/lib/plugins/route-scanner.d.ts.map +1 -1
  85. package/dist/src/lib/plugins/route-scanner.js +7 -8
  86. package/dist/src/lib/plugins/route-scanner.mjs +158 -1
  87. package/dist/src/lib/plugins/vite.cjs +27 -1
  88. package/dist/src/lib/plugins/vite.mjs +6 -1
  89. package/dist/src/lib/render/await.cjs +38 -1
  90. package/dist/src/lib/render/await.d.ts +18 -0
  91. package/dist/src/lib/render/await.d.ts.map +1 -1
  92. package/dist/src/lib/render/await.js +20 -2
  93. package/dist/src/lib/render/await.mjs +17 -1
  94. package/dist/src/lib/render/component.cjs +221 -1
  95. package/dist/src/lib/render/component.d.ts +3 -44
  96. package/dist/src/lib/render/component.d.ts.map +1 -1
  97. package/dist/src/lib/render/component.js +32 -59
  98. package/dist/src/lib/render/component.mjs +214 -1
  99. package/dist/src/lib/render/deferred.cjs +175 -1
  100. package/dist/src/lib/render/deferred.d.ts.map +1 -1
  101. package/dist/src/lib/render/deferred.js +8 -8
  102. package/dist/src/lib/render/deferred.mjs +158 -1
  103. package/dist/src/lib/render/index.cjs +573 -1
  104. package/dist/src/lib/render/index.d.ts +3 -17
  105. package/dist/src/lib/render/index.d.ts.map +1 -1
  106. package/dist/src/lib/render/index.js +12 -26
  107. package/dist/src/lib/render/index.mjs +590 -1
  108. package/dist/src/lib/render/lazy.cjs +67 -1
  109. package/dist/src/lib/render/lazy.d.ts +22 -1
  110. package/dist/src/lib/render/lazy.d.ts.map +1 -1
  111. package/dist/src/lib/render/lazy.js +47 -8
  112. package/dist/src/lib/render/lazy.mjs +50 -1
  113. package/dist/src/lib/render/suspense.cjs +141 -1
  114. package/dist/src/lib/render/suspense.d.ts +40 -0
  115. package/dist/src/lib/render/suspense.d.ts.map +1 -1
  116. package/dist/src/lib/render/suspense.js +47 -7
  117. package/dist/src/lib/render/suspense.mjs +136 -1
  118. package/dist/src/lib/render/versions.cjs +35 -1
  119. package/dist/src/lib/render/versions.js +6 -6
  120. package/dist/src/lib/render/versions.mjs +14 -1
  121. package/dist/src/lib/router/data.cjs +230 -1
  122. package/dist/src/lib/router/data.d.ts +1 -13
  123. package/dist/src/lib/router/data.d.ts.map +1 -1
  124. package/dist/src/lib/router/data.js +1 -13
  125. package/dist/src/lib/router/data.mjs +214 -1
  126. package/dist/src/lib/router/index.cjs +627 -1
  127. package/dist/src/lib/router/index.d.ts +62 -10
  128. package/dist/src/lib/router/index.d.ts.map +1 -1
  129. package/dist/src/lib/router/index.js +90 -39
  130. package/dist/src/lib/router/index.mjs +639 -1
  131. package/dist/src/lib/server/hydration.cjs +169 -1
  132. package/dist/src/lib/server/hydration.d.ts +15 -55
  133. package/dist/src/lib/server/hydration.d.ts.map +1 -1
  134. package/dist/src/lib/server/hydration.js +23 -62
  135. package/dist/src/lib/server/hydration.mjs +148 -1
  136. package/dist/src/lib/server/index.cjs +401 -11
  137. package/dist/src/lib/server/index.d.ts +30 -6
  138. package/dist/src/lib/server/index.d.ts.map +1 -1
  139. package/dist/src/lib/server/index.js +34 -11
  140. package/dist/src/lib/server/index.mjs +379 -11
  141. package/dist/src/lib/server/reactive.cjs +197 -1
  142. package/dist/src/lib/server/reactive.d.ts +18 -77
  143. package/dist/src/lib/server/reactive.d.ts.map +1 -1
  144. package/dist/src/lib/server/reactive.js +19 -78
  145. package/dist/src/lib/server/reactive.mjs +176 -1
  146. package/dist/src/lib/theme/index.cjs +110 -1
  147. package/dist/src/lib/theme/index.d.ts +19 -4
  148. package/dist/src/lib/theme/index.d.ts.map +1 -1
  149. package/dist/src/lib/theme/index.js +17 -2
  150. package/dist/src/lib/theme/index.mjs +89 -1
  151. package/dist/src/lib/utils/index.cjs +209 -1
  152. package/dist/src/lib/utils/index.d.ts +0 -93
  153. package/dist/src/lib/utils/index.d.ts.map +1 -1
  154. package/dist/src/lib/utils/index.js +0 -93
  155. package/dist/src/lib/utils/index.mjs +188 -1
  156. package/dist/src/routes.cjs +37 -1
  157. package/dist/src/routes.d.ts +1 -1
  158. package/dist/src/routes.js +2 -2
  159. package/dist/src/routes.mjs +17 -1
  160. package/dist/src/server.cjs +400 -11
  161. package/dist/src/server.d.ts +0 -1
  162. package/dist/src/server.d.ts.map +1 -1
  163. package/dist/src/server.js +0 -1
  164. package/dist/src/server.mjs +377 -11
  165. package/dist/src/utils.cjs +21 -1
  166. package/dist/src/utils.d.ts +1 -1
  167. package/dist/src/utils.js +1 -1
  168. package/dist/src/utils.mjs +4 -1
  169. package/dist/src/version.generated.cjs +26 -1
  170. package/dist/src/version.generated.d.ts +1 -1
  171. package/dist/src/version.generated.js +2 -2
  172. package/dist/src/version.generated.mjs +5 -1
  173. package/dist/tsconfig.lib.tsbuildinfo +1 -1
  174. package/package.json +17 -16
  175. package/src/index.ts +2 -14
  176. package/dist/src/cdn/chunk-RN7C7HNS.mjs +0 -1
  177. package/dist/src/cdn/router-QB3W43UQ.mjs +0 -1
  178. package/dist/src/lib/client/chunk-FT22BLCQ.mjs +0 -1
  179. package/dist/src/lib/client/router-IH7JYMRU.mjs +0 -1
@@ -1 +1,590 @@
1
- import{createRoot as De}from"@fluixi/reactive/signal";import{registerCoreVersion as U}from"@fluixi/dom";var S="1.0.0-alpha.82";import{stampVersions as g,warnOnVersionSkew as k,versions as We}from"@fluixi/dom";U(S);import{isDOMNode as je,delegateEvents as _,insert as Fe}from"@fluixi/dom";import{createComponent as V,asComponent as W}from"@fluixi/dom";import{untrack as T,onCleanup as u,getOwner as b,createEffect as l,createMemo as L,createSignal as q,isSignal as H,batch as B,runWithOwner as E,isOwnerDisposed as K}from"@fluixi/reactive/signal";var J={context:null,owner:null};function X(){return J}var v=typeof process<"u"&&!1,y=Symbol.for("fluixi-lifecycle");function O(){let e=b();if(!e)return null;if(!e[y]){let t={mounts:[],effects:[],scheduled:!1};e[y]=t}return e[y]}var R=typeof window>"u";function P(e){if(e.scheduled)return;if(R){e.mounts=[],e.effects=[];return}e.scheduled=!0;let t=b();queueMicrotask(()=>{if(K(t)){e.mounts=[],e.effects=[];return}E(t,()=>{for(let o of e.mounts)try{let n=o();typeof n=="function"&&u(n)}catch(n){console.error("Error in onMount callback:",n)}for(let o of e.effects){let n;l(()=>{n&&n(),n=o()}),u(()=>{n&&n()})}e.mounts=[],e.effects=[]})})}function Q(e,t){return V(e,t)}function Y(e,t){let o=typeof e=="function"?T(()=>e(t)):e;if(o!=null&&(typeof o=="function"||typeof o=="object")&&!H(o)){try{o.$name=e.name}catch{}return W(o)}return o}function G(e,t=!0){if(R)return;let o=O();if(o){if(!t){o.scheduled||e();return}o.mounts.push(e),P(o)}else{if(!t){e();return}l(()=>{let n=T(e);typeof n=="function"&&u(n)})}}function Z(e){u(e)}function A(e){let t=O();if(t)t.effects.push(e),P(t);else{let o;l(()=>{o&&o(),o=e()}),u(()=>{o&&o()})}}function ee(e){return L(e)}function ne(e){let t={current:e};return u(()=>{t.current=null}),t}function te(e,t){let[o,n]=q(t);return[o,s=>{n(e(o(),s))}]}function oe(e,t,o,n){A(()=>{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 v}function se(e){v&&e()}import{createSignal as h,createMemo as ae,createEffect as ce,createRenderEffect as fe,isSignal as M,readChildren as ue,useContext as de,createContext as pe,createSuspenseBoundary as le,provideSuspense as D}from"@fluixi/reactive/signal";import{asSuspense as me,isComponent as ye,createComponent as j,runWithoutHydration as be}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 he(e){return!e||typeof e!="object"?!1:!!(typeof e._$litType$<"u"||typeof e._$litDirective$<"u"||Array.isArray(e.strings)&&Array.isArray(e.values))}function F(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 $=pe();function x(e){return j(we,e)}function we(e){let t=le(),o=de($),n=o?o.register(t.inFallback):void 0;function i(f){return f==null||typeof f=="boolean"?null:typeof f=="function"&&ye(f)&&!M(f)?f():f}let s=be(()=>i(e.fallback??null)),r=D(t,()=>ue(()=>e.children)),a=(f,m)=>{if(!(m>8))if(Array.isArray(f))for(let I of f)a(I,m+1);else typeof f=="function"&&M(f)&&a(f(),m+1)};D(t,()=>{fe(()=>a(r,0))});let[c,d]=h(void 0),p=F(r);return p&&(t.increment(),r.then(f=>{d(()=>f),t.decrement()},()=>t.decrement())),ae(()=>(n?n.showFallback():t.inFallback())?s:p?c():r)}function Ce(e){return j(Se,e)}function Se(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,p]=h(!1);return n.push({inFallback:r,setShowContent:c,setShowFallback:p}),ce(()=>{r(),i()}),{showContent:a,showFallback:d}}};return $.Provider({value:s,children:e.children})}me(x);Object.defineProperty(x,"__suspense",{value:!0,enumerable:!0});import{untrack as z,createMemo as ge,createResource as ke}from"@fluixi/reactive/signal";function w(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 z(()=>c(a))}if(!i){let[c]=ke(()=>s(),{transport:!1});if(i=c,c.error)throw c.error}return ge(()=>{let c=i();return c?z(()=>c(a)):void 0},void 0,{name:"lazy"})});return r.preload=()=>s().then(()=>{}),r.$lazy=!0,r.loader=e,r}import{createMemo as Te,createSignal as Le}from"@fluixi/reactive/signal";import{observeIntersection as Ee}from"@fluixi/dom/utils";var N=typeof window>"u";function Oe(e,t){let o=t.export??"default",n=w(()=>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 N?n(s):null;if(N||t.strategy.kind==="eager")return n(s);let[r,a]=Le(!1),c=()=>{n.preload().then(()=>a(!0))},d=t.strategy.kind==="visible"?Re():void 0;return Pe(t.strategy,c,d),Te(()=>r()?n(s):d??t.fallback??null,void 0,{name:"deferred"})}return i.preload=n.preload,i}function Re(){let e=document.createElement("span");return e.setAttribute("data-fx-load","visible"),e.style.display="block",e}function Pe(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 Me(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 C=typeof window>"u";function $e(e,t,o={}){if(_(["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 De(i=>{n=i;let s=typeof e=="function"?e():e;t.textContent="",g(t),k(),Fe(t,()=>s)}),()=>{n&&(n(),n=void 0)}}function ze(e){return e&&typeof e=="object"&&(e._$litType$!==void 0||e._$litDirective$!==void 0)}function xn(e,t,o={}){let n=document.createElement("div");n.setAttribute("data-portal","true"),t.appendChild(n);let i=$e(e,n,o);return()=>{i(),t.contains(n)&&t.removeChild(n)}}function wn(e){return!!(e==null||typeof e=="function"||je(e)||ze(e)||Array.isArray(e)||typeof e=="string"||typeof e=="number"||typeof e=="boolean")}function Cn(){C||_(["click","input","change","submit"])}function Sn(){}export{Y as $component,Me as Await,v as DEV,x as Suspense,Ce as SuspenseList,B as batch,Sn as cleanupDelegation,Q as createComponent,l as createEffect,L as createMemo,Oe as deferred,se as devOnly,b as getOwner,X as getSharedConfig,Cn as initDelegation,ie as isDev,xe as isJSXElement,he as isLitResult,ve as isNode,F as isPromise,wn as isRenderable,w as lazy,u as onCleanup,G as onMount,Z as onUnmount,xn as portal,$e as render,E as runWithOwner,re as useCallback,A as useEffect,oe as useEventListener,ee as useMemo,te as useReducer,ne as useRef};
1
+ // src/lib/render/index.ts
2
+ import { isServer as isServer3 } from "@fluixi/dom";
3
+ import { createRoot as createRoot2 } from "@fluixi/reactive/signal";
4
+
5
+ // src/lib/render/versions.ts
6
+ import { registerCoreVersion } from "@fluixi/dom";
7
+
8
+ // src/version.generated.ts
9
+ var VERSION = "1.0.0-alpha.84";
10
+
11
+ // src/lib/render/versions.ts
12
+ import { stampVersions, warnOnVersionSkew, versions } from "@fluixi/dom";
13
+ registerCoreVersion(VERSION);
14
+
15
+ // src/lib/render/index.ts
16
+ import {
17
+ isDOMNode,
18
+ delegateEvents,
19
+ insert
20
+ } from "@fluixi/dom";
21
+
22
+ // src/lib/render/component.ts
23
+ import { isServer } from "@fluixi/dom";
24
+ import {
25
+ createComponent as domCreateComponent,
26
+ asComponent
27
+ } from "@fluixi/dom";
28
+ import {
29
+ untrack,
30
+ onCleanup,
31
+ getOwner,
32
+ createEffect,
33
+ createMemo,
34
+ createSignal,
35
+ isSignal,
36
+ batch,
37
+ runWithOwner,
38
+ isOwnerDisposed
39
+ } from "@fluixi/reactive/signal";
40
+ var sharedConfig = {
41
+ context: null,
42
+ owner: null
43
+ };
44
+ function getSharedConfig() {
45
+ return sharedConfig;
46
+ }
47
+ var DEV = typeof process !== "undefined" && false;
48
+ var _LIFECYCLE = /* @__PURE__ */ Symbol.for("fluixi-lifecycle");
49
+ function getOwnerLifecycle() {
50
+ const owner = getOwner();
51
+ if (!owner) return null;
52
+ if (!owner[_LIFECYCLE]) {
53
+ const lc = { mounts: [], effects: [], scheduled: false };
54
+ owner[_LIFECYCLE] = lc;
55
+ }
56
+ return owner[_LIFECYCLE];
57
+ }
58
+ function scheduleLifecycleFlush(lc) {
59
+ if (lc.scheduled) return;
60
+ if (isServer()) {
61
+ lc.mounts = [];
62
+ lc.effects = [];
63
+ return;
64
+ }
65
+ lc.scheduled = true;
66
+ const owner = getOwner();
67
+ queueMicrotask(() => {
68
+ if (isOwnerDisposed(owner)) {
69
+ lc.mounts = [];
70
+ lc.effects = [];
71
+ return;
72
+ }
73
+ runWithOwner(owner, () => {
74
+ for (const cb of lc.mounts) {
75
+ try {
76
+ const cleanup = cb();
77
+ if (typeof cleanup === "function") {
78
+ onCleanup(cleanup);
79
+ }
80
+ } catch (e) {
81
+ console.error("Error in onMount callback:", e);
82
+ }
83
+ }
84
+ for (const cb of lc.effects) {
85
+ let cleanup;
86
+ createEffect(() => {
87
+ if (cleanup) cleanup();
88
+ cleanup = cb();
89
+ });
90
+ onCleanup(() => {
91
+ if (cleanup) cleanup();
92
+ });
93
+ }
94
+ lc.mounts = [];
95
+ lc.effects = [];
96
+ });
97
+ });
98
+ }
99
+ function createComponent(Comp, props) {
100
+ return domCreateComponent(Comp, props);
101
+ }
102
+ function $component(value, props) {
103
+ const component = typeof value === "function" ? untrack(() => value(props)) : value;
104
+ const nameable = component != null && (typeof component === "function" || typeof component === "object");
105
+ if (nameable) {
106
+ try {
107
+ component["$name"] = value.name;
108
+ } catch {
109
+ }
110
+ }
111
+ if (nameable && !isSignal(component)) {
112
+ return asComponent(component);
113
+ }
114
+ return component;
115
+ }
116
+ function onMount(fn, reactive = true) {
117
+ if (isServer()) return;
118
+ const lc = getOwnerLifecycle();
119
+ if (lc) {
120
+ if (!reactive) {
121
+ if (!lc.scheduled) {
122
+ fn();
123
+ }
124
+ return;
125
+ }
126
+ lc.mounts.push(fn);
127
+ scheduleLifecycleFlush(lc);
128
+ } else {
129
+ if (!reactive) {
130
+ fn();
131
+ return;
132
+ }
133
+ createEffect(() => {
134
+ const cleanup = untrack(fn);
135
+ if (typeof cleanup === "function") {
136
+ onCleanup(cleanup);
137
+ }
138
+ });
139
+ }
140
+ }
141
+ function onUnmount(fn) {
142
+ onCleanup(fn);
143
+ }
144
+ function useEffect(callback) {
145
+ const lc = getOwnerLifecycle();
146
+ if (lc) {
147
+ lc.effects.push(callback);
148
+ scheduleLifecycleFlush(lc);
149
+ } else {
150
+ let cleanup;
151
+ createEffect(() => {
152
+ if (cleanup) cleanup();
153
+ cleanup = callback();
154
+ });
155
+ onCleanup(() => {
156
+ if (cleanup) cleanup();
157
+ });
158
+ }
159
+ }
160
+ function useMemo(fn) {
161
+ return createMemo(fn);
162
+ }
163
+ function useRef(initialValue) {
164
+ const ref = { current: initialValue };
165
+ onCleanup(() => {
166
+ ref.current = null;
167
+ });
168
+ return ref;
169
+ }
170
+ function useReducer(reducer, initialState) {
171
+ const [state, setState] = createSignal(initialState);
172
+ const dispatch = (action) => {
173
+ setState(reducer(state(), action));
174
+ };
175
+ return [state, dispatch];
176
+ }
177
+ function useEventListener(target, event, handler, options) {
178
+ useEffect(() => {
179
+ const element = target && "current" in target ? target.current : target;
180
+ if (!element) return;
181
+ element.addEventListener(event, handler, options);
182
+ return () => {
183
+ element.removeEventListener(event, handler, options);
184
+ };
185
+ });
186
+ }
187
+ function useCallback(callback) {
188
+ return callback;
189
+ }
190
+ function isDev() {
191
+ return DEV;
192
+ }
193
+ function devOnly(fn) {
194
+ if (DEV) {
195
+ fn();
196
+ }
197
+ }
198
+
199
+ // src/lib/render/suspense.ts
200
+ import {
201
+ createSignal as createSignal2,
202
+ createMemo as createMemo2,
203
+ createEffect as createEffect2,
204
+ createRenderEffect as createRenderEffect2,
205
+ isSignal as isSignal2,
206
+ readChildren,
207
+ useContext as useContext2,
208
+ createContext as createContext2,
209
+ createSuspenseBoundary,
210
+ provideSuspense
211
+ } from "@fluixi/reactive/signal";
212
+ import {
213
+ asSuspense,
214
+ isComponent,
215
+ createComponent as createComponent2,
216
+ runWithoutHydration
217
+ } from "@fluixi/dom";
218
+ function isNode(value) {
219
+ if (typeof window === "undefined") return false;
220
+ if (typeof Node === "function" && value instanceof Node) return true;
221
+ return !!(value && typeof value === "object" && typeof value.nodeType === "number");
222
+ }
223
+ function isLitResult(value) {
224
+ if (!value || typeof value !== "object") return false;
225
+ return !!(typeof value["_$litType$"] !== "undefined" || typeof value["_$litDirective$"] !== "undefined" || Array.isArray(value.strings) && Array.isArray(value.values));
226
+ }
227
+ function isPromise(value) {
228
+ return !!(value && typeof value === "object" && typeof value.then === "function" || value instanceof Promise);
229
+ }
230
+ function isJSXElement(value) {
231
+ return !!(value && typeof value === "object" && "type" in value && "props" in value);
232
+ }
233
+ var SuspenseListContext = createContext2(void 0, "suspense-list");
234
+ function Suspense(props) {
235
+ return createComponent2(SuspenseImpl, props);
236
+ }
237
+ function SuspenseImpl(props) {
238
+ const boundary = createSuspenseBoundary();
239
+ const listCtx = useContext2(SuspenseListContext);
240
+ const listState = listCtx ? listCtx.register(boundary.inFallback) : void 0;
241
+ function instantiateOnce(val) {
242
+ if (val == null || typeof val === "boolean") return null;
243
+ if (typeof val === "function" && isComponent(val) && !isSignal2(val)) return val();
244
+ return val;
245
+ }
246
+ const fallback = runWithoutHydration(() => instantiateOnce(props.fallback ?? null));
247
+ const children = provideSuspense(boundary, () => readChildren(() => props.children));
248
+ const track = (value, depth) => {
249
+ if (depth > 8) return;
250
+ if (Array.isArray(value)) {
251
+ for (const x of value) track(x, depth + 1);
252
+ } else if (typeof value === "function" && isSignal2(value)) {
253
+ track(value(), depth + 1);
254
+ }
255
+ };
256
+ provideSuspense(boundary, () => {
257
+ createRenderEffect2(() => track(children, 0));
258
+ });
259
+ const [resolved, setResolved] = createSignal2(void 0);
260
+ const childIsPromise = isPromise(children);
261
+ if (childIsPromise) {
262
+ boundary.increment();
263
+ children.then(
264
+ (v) => {
265
+ setResolved(() => v);
266
+ boundary.decrement();
267
+ },
268
+ () => boundary.decrement()
269
+ );
270
+ }
271
+ return createMemo2(() => {
272
+ const showFallback = listState ? listState.showFallback() : boundary.inFallback();
273
+ if (showFallback) return fallback;
274
+ if (childIsPromise) return resolved();
275
+ return children;
276
+ });
277
+ }
278
+ function SuspenseList(props) {
279
+ return createComponent2(SuspenseListImpl, props);
280
+ }
281
+ function SuspenseListImpl(props) {
282
+ const { revealOrder = "together", tail } = props;
283
+ const registrations = [];
284
+ function coordinateReveal() {
285
+ if (revealOrder === "together") {
286
+ const allResolved = registrations.every((r) => !r.inFallback());
287
+ registrations.forEach((r) => {
288
+ r.setShowContent(allResolved);
289
+ r.setShowFallback(!allResolved);
290
+ });
291
+ } else {
292
+ const items = revealOrder === "backwards" ? [...registrations].reverse() : registrations;
293
+ let blocked = false;
294
+ for (const r of items) {
295
+ if (blocked || r.inFallback()) {
296
+ blocked = true;
297
+ r.setShowContent(false);
298
+ r.setShowFallback(tail !== "hidden");
299
+ } else {
300
+ r.setShowContent(true);
301
+ r.setShowFallback(false);
302
+ }
303
+ }
304
+ }
305
+ }
306
+ const coordinator = {
307
+ register: (inFallback) => {
308
+ const [showContent, setShowContent] = createSignal2(true);
309
+ const [showFallback, setShowFallback] = createSignal2(false);
310
+ registrations.push({ inFallback, setShowContent, setShowFallback });
311
+ createEffect2(() => {
312
+ inFallback();
313
+ coordinateReveal();
314
+ });
315
+ return { showContent, showFallback };
316
+ }
317
+ };
318
+ return SuspenseListContext.Provider({
319
+ value: coordinator,
320
+ children: props.children
321
+ });
322
+ }
323
+ asSuspense(Suspense);
324
+ Object.defineProperty(Suspense, "__suspense", { value: true, enumerable: true });
325
+
326
+ // src/lib/render/lazy.ts
327
+ import { createComponent as createComponent3 } from "@fluixi/dom";
328
+ import {
329
+ untrack as untrack2,
330
+ createMemo as createMemo3,
331
+ createResource as createResource2
332
+ } from "@fluixi/reactive/signal";
333
+ function fromChunk(value) {
334
+ if (value != null && (typeof value === "object" || typeof value === "function")) {
335
+ try {
336
+ value["$lazy"] = true;
337
+ } catch {
338
+ }
339
+ }
340
+ return value;
341
+ }
342
+ function lazy(loader, options) {
343
+ let resolved;
344
+ let promise;
345
+ let component;
346
+ function load() {
347
+ if (!promise) {
348
+ promise = loader().then((mod) => resolved = mod.default);
349
+ }
350
+ return promise;
351
+ }
352
+ if (options?.preload) load();
353
+ const LazyWrapper = ((props) => {
354
+ if (resolved) {
355
+ const C = resolved;
356
+ return fromChunk(untrack2(() => C(props)));
357
+ }
358
+ if (!component) {
359
+ const [resource] = createResource2(() => load(), { transport: false });
360
+ component = resource;
361
+ if (resource.error) throw resource.error;
362
+ }
363
+ return createMemo3(() => {
364
+ const C = component();
365
+ return C ? fromChunk(createComponent3(C, props)) : void 0;
366
+ });
367
+ });
368
+ LazyWrapper.preload = () => load().then(() => void 0);
369
+ LazyWrapper.$lazy = true;
370
+ LazyWrapper.loader = loader;
371
+ return LazyWrapper;
372
+ }
373
+
374
+ // src/lib/render/deferred.ts
375
+ import { isServer as isServer2 } from "@fluixi/dom";
376
+ import { createMemo as createMemo4, createSignal as createSignal3 } from "@fluixi/reactive/signal";
377
+ import { observeIntersection } from "@fluixi/dom/utils";
378
+ function deferred(loader, options) {
379
+ const exportName = options.export ?? "default";
380
+ const Lazy = lazy(
381
+ () => loader().then((mod) => {
382
+ const component = mod[exportName];
383
+ if (typeof component !== "function") {
384
+ throw new Error(
385
+ `deferred(): module has no '${exportName}' export (got ${typeof component}).`
386
+ );
387
+ }
388
+ return { default: component };
389
+ }),
390
+ { fallback: options.fallback }
391
+ );
392
+ function Deferred(props) {
393
+ if (options.strategy.kind === "never") return isServer2() ? Lazy(props) : null;
394
+ if (isServer2() || options.strategy.kind === "eager") return Lazy(props);
395
+ const [ready, setReady] = createSignal3(false);
396
+ const start = () => {
397
+ void Lazy.preload().then(() => setReady(true));
398
+ };
399
+ const anchor = options.strategy.kind === "visible" ? createAnchor() : void 0;
400
+ schedule(options.strategy, start, anchor);
401
+ return createMemo4(() => ready() ? Lazy(props) : anchor ?? options.fallback ?? null, void 0, {
402
+ name: "deferred"
403
+ });
404
+ }
405
+ Deferred.preload = Lazy.preload;
406
+ return Deferred;
407
+ }
408
+ function createAnchor() {
409
+ const el = document.createElement("span");
410
+ el.setAttribute("data-fx-load", "visible");
411
+ el.style.display = "block";
412
+ return el;
413
+ }
414
+ function schedule(strategy, start, anchor) {
415
+ let fired = false;
416
+ const once = () => {
417
+ if (fired) return;
418
+ fired = true;
419
+ start();
420
+ };
421
+ switch (strategy.kind) {
422
+ case "idle": {
423
+ const ric = globalThis.requestIdleCallback;
424
+ if (ric) ric(once);
425
+ else setTimeout(once, 1);
426
+ return;
427
+ }
428
+ case "visible": {
429
+ if (!anchor || typeof IntersectionObserver === "undefined") {
430
+ once();
431
+ return;
432
+ }
433
+ const stop = observeIntersection(
434
+ anchor,
435
+ (isIntersecting) => {
436
+ if (!isIntersecting) return;
437
+ stop();
438
+ once();
439
+ },
440
+ { rootMargin: strategy.rootMargin ?? "0px" }
441
+ );
442
+ return;
443
+ }
444
+ case "interaction": {
445
+ const handler = () => {
446
+ for (const event of strategy.events) {
447
+ document.removeEventListener(event, handler, true);
448
+ }
449
+ once();
450
+ };
451
+ for (const event of strategy.events) {
452
+ document.addEventListener(event, handler, { capture: true, passive: true });
453
+ }
454
+ return;
455
+ }
456
+ case "media": {
457
+ if (typeof matchMedia === "undefined") {
458
+ once();
459
+ return;
460
+ }
461
+ const query = matchMedia(strategy.query);
462
+ if (query.matches) {
463
+ once();
464
+ return;
465
+ }
466
+ const onChange = (e) => {
467
+ if (!e.matches) return;
468
+ query.removeEventListener("change", onChange);
469
+ once();
470
+ };
471
+ query.addEventListener("change", onChange);
472
+ return;
473
+ }
474
+ /* c8 ignore next 3 */
475
+ default:
476
+ once();
477
+ }
478
+ }
479
+
480
+ // src/lib/render/await.ts
481
+ import { createResource as createResource3 } from "@fluixi/reactive/signal";
482
+ function Await(props) {
483
+ const fetcher = () => {
484
+ const v = props.value;
485
+ return typeof v === "function" ? v() : v;
486
+ };
487
+ const [data] = createResource3(fetcher);
488
+ return () => {
489
+ if (data.loading) return props.fallback;
490
+ const child = props.children;
491
+ return typeof child === "function" ? child(data()) : child;
492
+ };
493
+ }
494
+
495
+ // src/lib/render/index.ts
496
+ function render(code, container, options = {}) {
497
+ delegateEvents(["click", "input", "change", "submit"]);
498
+ if (isServer3()) {
499
+ throw new Error(
500
+ "render() is for client-side only. Use renderToString() on server."
501
+ );
502
+ }
503
+ if (!container) {
504
+ throw new Error("Container element is required");
505
+ }
506
+ let disposer;
507
+ createRoot2((dispose) => {
508
+ disposer = dispose;
509
+ const result = typeof code === "function" ? code() : code;
510
+ container.textContent = "";
511
+ stampVersions(container);
512
+ warnOnVersionSkew();
513
+ insert(container, () => result);
514
+ });
515
+ return () => {
516
+ if (disposer) {
517
+ disposer();
518
+ disposer = void 0;
519
+ }
520
+ };
521
+ }
522
+ function isLitTemplateResult(value) {
523
+ return value && typeof value === "object" && (value["_$litType$"] !== void 0 || value["_$litDirective$"] !== void 0);
524
+ }
525
+ function portal(code, target, options = {}) {
526
+ const container = document.createElement("div");
527
+ container.setAttribute("data-portal", "true");
528
+ target.appendChild(container);
529
+ const dispose = render(code, container, options);
530
+ return () => {
531
+ dispose();
532
+ if (target.contains(container)) {
533
+ target.removeChild(container);
534
+ }
535
+ };
536
+ }
537
+ function isRenderable(value) {
538
+ if (value == null) return true;
539
+ if (typeof value === "function") return true;
540
+ if (isDOMNode(value)) return true;
541
+ if (isLitTemplateResult(value)) return true;
542
+ if (Array.isArray(value)) return true;
543
+ if (typeof value === "string" || typeof value === "number" || typeof value === "boolean") {
544
+ return true;
545
+ }
546
+ return false;
547
+ }
548
+ function initDelegation() {
549
+ if (isServer3()) return;
550
+ delegateEvents(["click", "input", "change", "submit"]);
551
+ }
552
+ function cleanupDelegation() {
553
+ if (isServer3()) return;
554
+ }
555
+ export {
556
+ $component,
557
+ Await,
558
+ DEV,
559
+ Suspense,
560
+ SuspenseList,
561
+ batch,
562
+ cleanupDelegation,
563
+ createComponent,
564
+ createEffect,
565
+ createMemo,
566
+ deferred,
567
+ devOnly,
568
+ getOwner,
569
+ getSharedConfig,
570
+ initDelegation,
571
+ isDev,
572
+ isJSXElement,
573
+ isLitResult,
574
+ isNode,
575
+ isPromise,
576
+ isRenderable,
577
+ lazy,
578
+ onCleanup,
579
+ onMount,
580
+ onUnmount,
581
+ portal,
582
+ render,
583
+ runWithOwner,
584
+ useCallback,
585
+ useEffect,
586
+ useEventListener,
587
+ useMemo,
588
+ useReducer,
589
+ useRef
590
+ };
@@ -1 +1,67 @@
1
- "use strict";var m=Object.defineProperty;var f=Object.getOwnPropertyDescriptor;var u=Object.getOwnPropertyNames;var l=Object.prototype.hasOwnProperty;var c=(n,e)=>{for(var r in e)m(n,r,{get:e[r],enumerable:!0})},y=(n,e,r,s)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of u(e))!l.call(n,o)&&o!==r&&m(n,o,{get:()=>e[o],enumerable:!(s=f(e,o))||s.enumerable});return n};var C=n=>y(m({},"__esModule",{value:!0}),n);var z={};c(z,{lazy:()=>P});module.exports=C(z);var a=require("@fluixi/reactive/signal");function P(n,e){let r,s,o;function p(){return s||(s=n().then(d=>r=d.default)),s}e?.preload&&p();let i=(d=>{if(r){let t=r;return(0,a.untrack)(()=>t(d))}if(!o){let[t]=(0,a.createResource)(()=>p(),{transport:!1});if(o=t,t.error)throw t.error}return(0,a.createMemo)(()=>{let t=o();return t?(0,a.untrack)(()=>t(d)):void 0},void 0,{name:"lazy"})});return i.preload=()=>p().then(()=>{}),i.$lazy=!0,i.loader=n,i}
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+
20
+ // src/lib/render/lazy.ts
21
+ var lazy_exports = {};
22
+ __export(lazy_exports, {
23
+ lazy: () => lazy
24
+ });
25
+ module.exports = __toCommonJS(lazy_exports);
26
+ var import_dom = require("@fluixi/dom");
27
+ var import_signal = require("@fluixi/reactive/signal");
28
+ function fromChunk(value) {
29
+ if (value != null && (typeof value === "object" || typeof value === "function")) {
30
+ try {
31
+ value["$lazy"] = true;
32
+ } catch {
33
+ }
34
+ }
35
+ return value;
36
+ }
37
+ function lazy(loader, options) {
38
+ let resolved;
39
+ let promise;
40
+ let component;
41
+ function load() {
42
+ if (!promise) {
43
+ promise = loader().then((mod) => resolved = mod.default);
44
+ }
45
+ return promise;
46
+ }
47
+ if (options?.preload) load();
48
+ const LazyWrapper = ((props) => {
49
+ if (resolved) {
50
+ const C = resolved;
51
+ return fromChunk((0, import_signal.untrack)(() => C(props)));
52
+ }
53
+ if (!component) {
54
+ const [resource] = (0, import_signal.createResource)(() => load(), { transport: false });
55
+ component = resource;
56
+ if (resource.error) throw resource.error;
57
+ }
58
+ return (0, import_signal.createMemo)(() => {
59
+ const C = component();
60
+ return C ? fromChunk((0, import_dom.createComponent)(C, props)) : void 0;
61
+ });
62
+ });
63
+ LazyWrapper.preload = () => load().then(() => void 0);
64
+ LazyWrapper.$lazy = true;
65
+ LazyWrapper.loader = loader;
66
+ return LazyWrapper;
67
+ }