flexium 0.12.13 → 0.12.16
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.
- package/dist/canvas.d.cts +14 -13
- package/dist/canvas.d.ts +14 -13
- package/dist/canvas.js +1 -1
- package/dist/canvas.js.map +1 -1
- package/dist/canvas.mjs +1 -1
- package/dist/canvas.mjs.map +1 -1
- package/dist/chunk-3DKZ2J4D.mjs +2 -0
- package/dist/chunk-3DKZ2J4D.mjs.map +1 -0
- package/dist/chunk-5PNH2ARD.mjs +2 -0
- package/dist/chunk-5PNH2ARD.mjs.map +1 -0
- package/dist/{chunk-7BXR4ZFD.js → chunk-6VIRXD2Y.js} +2 -2
- package/dist/chunk-6VIRXD2Y.js.map +1 -0
- package/dist/chunk-6Z33DLMI.js +2 -0
- package/dist/chunk-6Z33DLMI.js.map +1 -0
- package/dist/chunk-E75BJDOQ.mjs +2 -0
- package/dist/chunk-E75BJDOQ.mjs.map +1 -0
- package/dist/chunk-IWFEXW4F.mjs +2 -0
- package/dist/chunk-IWFEXW4F.mjs.map +1 -0
- package/dist/chunk-JY6CE6RN.mjs +2 -0
- package/dist/chunk-JY6CE6RN.mjs.map +1 -0
- package/dist/chunk-LTT43APF.js +2 -0
- package/dist/chunk-LTT43APF.js.map +1 -0
- package/dist/chunk-PSKDIB7J.js +2 -0
- package/dist/chunk-PSKDIB7J.js.map +1 -0
- package/dist/chunk-UWFVCKRU.js +2 -0
- package/dist/chunk-UWFVCKRU.js.map +1 -0
- package/dist/chunk-WGKD63GN.mjs +2 -0
- package/dist/chunk-WGKD63GN.mjs.map +1 -0
- package/dist/chunk-YWTD32NA.js +2 -0
- package/dist/chunk-YWTD32NA.js.map +1 -0
- package/dist/core.d.cts +91 -15
- package/dist/core.d.ts +91 -15
- package/dist/core.js +1 -1
- package/dist/core.js.map +1 -1
- package/dist/core.mjs +1 -1
- package/dist/core.mjs.map +1 -1
- package/dist/dom.d.cts +154 -9
- package/dist/dom.d.ts +154 -9
- package/dist/dom.js +1 -1
- package/dist/dom.js.map +1 -1
- package/dist/dom.mjs +1 -1
- package/dist/dom.mjs.map +1 -1
- package/dist/index.d.cts +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +1 -1
- package/dist/index.mjs.map +1 -1
- package/dist/interactive.d.cts +17 -16
- package/dist/interactive.d.ts +17 -16
- package/dist/interactive.js +1 -1
- package/dist/interactive.js.map +1 -1
- package/dist/interactive.mjs +1 -1
- package/dist/interactive.mjs.map +1 -1
- package/dist/jsx-dev-runtime.d.cts +1 -1
- package/dist/jsx-dev-runtime.d.ts +1 -1
- package/dist/jsx-runtime.d.cts +1 -1
- package/dist/jsx-runtime.d.ts +1 -1
- package/dist/metafile-cjs.json +1 -1
- package/dist/metafile-esm.json +1 -1
- package/dist/render-QZAFAGIM.js +2 -0
- package/dist/render-QZAFAGIM.js.map +1 -0
- package/dist/render-UIWHIMS2.mjs +2 -0
- package/dist/render-UIWHIMS2.mjs.map +1 -0
- package/dist/router.d.cts +1 -1
- package/dist/router.d.ts +1 -1
- package/dist/router.js +1 -1
- package/dist/router.js.map +1 -1
- package/dist/router.mjs +1 -1
- package/dist/router.mjs.map +1 -1
- package/dist/server.d.cts +17 -0
- package/dist/server.d.ts +17 -0
- package/dist/server.js +2 -0
- package/dist/server.js.map +1 -0
- package/dist/server.mjs +2 -0
- package/dist/server.mjs.map +1 -0
- package/dist/types-CxlS2F2j.d.cts +19 -0
- package/dist/types-CxlS2F2j.d.ts +19 -0
- package/dist/types-y2GGaXXk.d.cts +9 -0
- package/dist/types-y2GGaXXk.d.ts +9 -0
- package/package.json +6 -1
- package/dist/chunk-44RZHCII.mjs +0 -2
- package/dist/chunk-44RZHCII.mjs.map +0 -1
- package/dist/chunk-7BXR4ZFD.js.map +0 -1
- package/dist/chunk-APAMPY43.js +0 -2
- package/dist/chunk-APAMPY43.js.map +0 -1
- package/dist/chunk-CPJRQL2C.mjs +0 -2
- package/dist/chunk-CPJRQL2C.mjs.map +0 -1
- package/dist/chunk-ECB5HZOQ.mjs +0 -2
- package/dist/chunk-ECB5HZOQ.mjs.map +0 -1
- package/dist/chunk-ENWGYQNU.js +0 -2
- package/dist/chunk-ENWGYQNU.js.map +0 -1
- package/dist/chunk-IA4FEBFE.js +0 -2
- package/dist/chunk-IA4FEBFE.js.map +0 -1
- package/dist/chunk-LUREDEUB.mjs +0 -2
- package/dist/chunk-LUREDEUB.mjs.map +0 -1
- package/dist/chunk-LUW7DIEW.js +0 -2
- package/dist/chunk-LUW7DIEW.js.map +0 -1
- package/dist/chunk-S6WF3XNF.mjs +0 -2
- package/dist/chunk-S6WF3XNF.mjs.map +0 -1
package/dist/metafile-cjs.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"inputs":{"src/index.ts":{"bytes":68,"imports":[],"format":"esm"},"src/core/effect.ts":{"bytes":2302,"imports":[],"format":"esm"},"src/core/reactive.ts":{"bytes":2077,"imports":[{"path":"src/core/effect.ts","kind":"import-statement","original":"./effect"}],"format":"esm"},"src/core/hook.ts":{"bytes":986,"imports":[],"format":"esm"},"src/core/state.ts":{"bytes":5773,"imports":[{"path":"src/core/reactive.ts","kind":"import-statement","original":"./reactive"},{"path":"src/core/effect.ts","kind":"import-statement","original":"./effect"},{"path":"src/core/hook.ts","kind":"import-statement","original":"./hook"}],"format":"esm"},"src/core/lifecycle.ts":{"bytes":1649,"imports":[{"path":"src/core/hook.ts","kind":"import-statement","original":"./hook"},{"path":"src/core/effect.ts","kind":"import-statement","original":"./effect"}],"format":"esm"},"src/core/context.ts":{"bytes":1461,"imports":[],"format":"esm"},"src/core/index.ts":{"bytes":166,"imports":[{"path":"src/core/state.ts","kind":"import-statement","original":"./state"},{"path":"src/core/lifecycle.ts","kind":"import-statement","original":"./lifecycle"},{"path":"src/core/context.ts","kind":"import-statement","original":"./context"}],"format":"esm"},"src/dom/index.ts":{"bytes":21288,"imports":[{"path":"src/core/context.ts","kind":"import-statement","original":"../core/context"},{"path":"src/core/hook.ts","kind":"import-statement","original":"../core/hook"},{"path":"src/core/effect.ts","kind":"import-statement","original":"../core/effect"}],"format":"esm"},"src/router/types.ts":{"bytes":807,"imports":[],"format":"esm"},"src/router/utils.ts":{"bytes":3745,"imports":[{"path":"./types","kind":"import-statement","external":true}],"format":"esm"},"src/router/router.ts":{"bytes":2599,"imports":[{"path":"src/core/reactive.ts","kind":"import-statement","original":"../core/reactive"},{"path":"src/core/context.ts","kind":"import-statement","original":"../core/context"},{"path":"src/router/utils.ts","kind":"import-statement","original":"./utils"}],"format":"esm"},"src/jsx-runtime.ts":{"bytes":727,"imports":[],"format":"esm"},"src/router/dom/Route.tsx":{"bytes":106,"imports":[],"format":"esm"},"src/router/dom/Routes.tsx":{"bytes":2578,"imports":[{"path":"src/jsx-runtime.ts","kind":"import-statement","original":"../../jsx-runtime"},{"path":"src/router/router.ts","kind":"import-statement","original":"../router"},{"path":"src/router/utils.ts","kind":"import-statement","original":"../utils"},{"path":"src/router/dom/Route.tsx","kind":"import-statement","original":"./Route"}],"format":"esm"},"src/router/dom/Outlet.tsx":{"bytes":769,"imports":[{"path":"src/core/state.ts","kind":"import-statement","original":"../../core/state"},{"path":"src/core/context.ts","kind":"import-statement","original":"../../core/context"},{"path":"src/jsx-runtime.ts","kind":"import-statement","original":"../../jsx-runtime"},{"path":"src/router/router.ts","kind":"import-statement","original":"../router"}],"format":"esm"},"src/router/dom/Link.tsx":{"bytes":441,"imports":[{"path":"src/jsx-runtime.ts","kind":"import-statement","original":"../../jsx-runtime"},{"path":"src/router/router.ts","kind":"import-statement","original":"../router"}],"format":"esm"},"src/router/index.ts":{"bytes":259,"imports":[{"path":"src/router/types.ts","kind":"import-statement","original":"./types"},{"path":"src/router/router.ts","kind":"import-statement","original":"./router"},{"path":"src/router/dom/Routes.tsx","kind":"import-statement","original":"./dom/Routes"},{"path":"src/router/dom/Route.tsx","kind":"import-statement","original":"./dom/Route"},{"path":"src/router/dom/Outlet.tsx","kind":"import-statement","original":"./dom/Outlet"},{"path":"src/router/dom/Link.tsx","kind":"import-statement","original":"./dom/Link"}],"format":"esm"},"src/canvas/Canvas.tsx":{"bytes":5692,"imports":[{"path":"src/core/lifecycle.ts","kind":"import-statement","original":"../core/lifecycle"},{"path":"src/core/reactive.ts","kind":"import-statement","original":"../core/reactive"},{"path":"src/jsx-runtime.ts","kind":"import-statement","original":"flexium/jsx-runtime"}],"format":"esm"},"src/canvas/dom/DrawRect.tsx":{"bytes":533,"imports":[{"path":"src/core/lifecycle.ts","kind":"import-statement","original":"../../core/lifecycle"},{"path":"src/canvas/Canvas.tsx","kind":"import-statement","original":"../Canvas"}],"format":"esm"},"src/canvas/dom/DrawCircle.tsx":{"bytes":508,"imports":[{"path":"src/core/lifecycle.ts","kind":"import-statement","original":"../../core/lifecycle"},{"path":"src/canvas/Canvas.tsx","kind":"import-statement","original":"../Canvas"}],"format":"esm"},"src/canvas/dom/DrawArc.tsx":{"bytes":599,"imports":[{"path":"src/core/lifecycle.ts","kind":"import-statement","original":"../../core/lifecycle"},{"path":"src/canvas/Canvas.tsx","kind":"import-statement","original":"../Canvas"}],"format":"esm"},"src/canvas/dom/DrawLine.tsx":{"bytes":495,"imports":[{"path":"src/core/lifecycle.ts","kind":"import-statement","original":"../../core/lifecycle"},{"path":"src/canvas/Canvas.tsx","kind":"import-statement","original":"../Canvas"}],"format":"esm"},"src/canvas/dom/DrawText.tsx":{"bytes":580,"imports":[{"path":"src/core/lifecycle.ts","kind":"import-statement","original":"../../core/lifecycle"},{"path":"src/canvas/Canvas.tsx","kind":"import-statement","original":"../Canvas"}],"format":"esm"},"src/canvas/dom/DrawPath.tsx":{"bytes":437,"imports":[{"path":"src/core/lifecycle.ts","kind":"import-statement","original":"../../core/lifecycle"},{"path":"src/canvas/Canvas.tsx","kind":"import-statement","original":"../Canvas"}],"format":"esm"},"src/canvas/index.ts":{"bytes":427,"imports":[{"path":"src/canvas/Canvas.tsx","kind":"import-statement","original":"./Canvas"},{"path":"src/canvas/dom/DrawRect.tsx","kind":"import-statement","original":"./dom/DrawRect"},{"path":"src/canvas/dom/DrawCircle.tsx","kind":"import-statement","original":"./dom/DrawCircle"},{"path":"src/canvas/dom/DrawArc.tsx","kind":"import-statement","original":"./dom/DrawArc"},{"path":"src/canvas/dom/DrawLine.tsx","kind":"import-statement","original":"./dom/DrawLine"},{"path":"src/canvas/dom/DrawText.tsx","kind":"import-statement","original":"./dom/DrawText"},{"path":"src/canvas/dom/DrawPath.tsx","kind":"import-statement","original":"./dom/DrawPath"}],"format":"esm"},"src/interactive/loop.ts":{"bytes":1888,"imports":[],"format":"esm"},"src/interactive/keyboard.ts":{"bytes":3391,"imports":[{"path":"src/core/state.ts","kind":"import-statement","original":"../core/state"}],"format":"esm"},"src/interactive/mouse.ts":{"bytes":3563,"imports":[{"path":"src/core/state.ts","kind":"import-statement","original":"../core/state"}],"format":"esm"},"src/interactive/index.ts":{"bytes":206,"imports":[{"path":"src/interactive/loop.ts","kind":"import-statement","original":"./loop"},{"path":"src/interactive/keyboard.ts","kind":"import-statement","original":"./keyboard"},{"path":"src/interactive/mouse.ts","kind":"import-statement","original":"./mouse"}],"format":"esm"},"src/jsx-dev-runtime.ts":{"bytes":211,"imports":[{"path":"src/jsx-runtime.ts","kind":"import-statement","original":"./jsx-runtime"}],"format":"esm"}},"outputs":{"dist/index.js.map":{"imports":[],"exports":[],"inputs":{},"bytes":205},"dist/index.js":{"imports":[],"exports":["VERSION"],"entryPoint":"src/index.ts","inputs":{"src/index.ts":{"bytesInOutput":16}},"bytes":38},"dist/core.js.map":{"imports":[],"exports":[],"inputs":{},"bytes":93},"dist/core.js":{"imports":[{"path":"dist/chunk-LUW7DIEW.js","kind":"import-statement"},{"path":"dist/chunk-IA4FEBFE.js","kind":"import-statement"},{"path":"dist/chunk-APAMPY43.js","kind":"import-statement"},{"path":"dist/chunk-7BXR4ZFD.js","kind":"import-statement"},{"path":"dist/chunk-ENWGYQNU.js","kind":"import-statement"}],"exports":["batch","context","createContext","effect","popContext","pushContext","runWithContext","snapshotContext","state","sync"],"entryPoint":"src/core/index.ts","inputs":{"src/core/index.ts":{"bytesInOutput":0}},"bytes":384},"dist/dom.js.map":{"imports":[],"exports":[],"inputs":{},"bytes":30353},"dist/dom.js":{"imports":[{"path":"dist/chunk-LUW7DIEW.js","kind":"import-statement"},{"path":"dist/chunk-ENWGYQNU.js","kind":"import-statement"}],"exports":["f","reconcile","render"],"entryPoint":"src/dom/index.ts","inputs":{"src/dom/index.ts":{"bytesInOutput":4899}},"bytes":5029},"dist/router.js.map":{"imports":[],"exports":[],"inputs":{},"bytes":16422},"dist/router.js":{"imports":[{"path":"dist/chunk-LUW7DIEW.js","kind":"import-statement"},{"path":"dist/chunk-APAMPY43.js","kind":"import-statement"},{"path":"dist/chunk-7BXR4ZFD.js","kind":"import-statement"},{"path":"dist/chunk-ENWGYQNU.js","kind":"import-statement"},{"path":"dist/chunk-EXLNKYSH.js","kind":"import-statement"}],"exports":["Link","Outlet","Route","Routes","router"],"entryPoint":"src/router/index.ts","inputs":{"src/router/index.ts":{"bytesInOutput":0},"src/router/utils.ts":{"bytesInOutput":1073},"src/router/router.ts":{"bytesInOutput":743},"src/router/dom/Route.tsx":{"bytesInOutput":26},"src/router/dom/Routes.tsx":{"bytesInOutput":638},"src/router/dom/Outlet.tsx":{"bytesInOutput":238},"src/router/dom/Link.tsx":{"bytesInOutput":133}},"bytes":3107},"dist/chunk-LUW7DIEW.js.map":{"imports":[],"exports":[],"inputs":{},"bytes":2664},"dist/chunk-LUW7DIEW.js":{"imports":[],"exports":["a","b","c","d","e","f"],"inputs":{"src/core/context.ts":{"bytesInOutput":450}},"bytes":501},"dist/canvas.js.map":{"imports":[],"exports":[],"inputs":{},"bytes":14321},"dist/canvas.js":{"imports":[{"path":"dist/chunk-IA4FEBFE.js","kind":"import-statement"},{"path":"dist/chunk-7BXR4ZFD.js","kind":"import-statement"},{"path":"dist/chunk-ENWGYQNU.js","kind":"import-statement"},{"path":"dist/chunk-EXLNKYSH.js","kind":"import-statement"}],"exports":["Canvas","DrawArc","DrawCircle","DrawLine","DrawPath","DrawRect","DrawText"],"entryPoint":"src/canvas/index.ts","inputs":{"src/canvas/Canvas.tsx":{"bytesInOutput":1875},"src/canvas/index.ts":{"bytesInOutput":0},"src/canvas/dom/DrawRect.tsx":{"bytesInOutput":60},"src/canvas/dom/DrawCircle.tsx":{"bytesInOutput":62},"src/canvas/dom/DrawArc.tsx":{"bytesInOutput":59},"src/canvas/dom/DrawLine.tsx":{"bytesInOutput":60},"src/canvas/dom/DrawText.tsx":{"bytesInOutput":60},"src/canvas/dom/DrawPath.tsx":{"bytesInOutput":60}},"bytes":2490},"dist/chunk-IA4FEBFE.js.map":{"imports":[],"exports":[],"inputs":{},"bytes":2516},"dist/chunk-IA4FEBFE.js":{"imports":[{"path":"dist/chunk-ENWGYQNU.js","kind":"import-statement"}],"exports":["a","b","c"],"inputs":{"src/core/lifecycle.ts":{"bytesInOutput":340}},"bytes":424},"dist/interactive.js.map":{"imports":[],"exports":[],"inputs":{},"bytes":14770},"dist/interactive.js":{"imports":[{"path":"dist/chunk-APAMPY43.js","kind":"import-statement"},{"path":"dist/chunk-7BXR4ZFD.js","kind":"import-statement"},{"path":"dist/chunk-ENWGYQNU.js","kind":"import-statement"}],"exports":["Keys","MouseButton","keyboard","loop","mouse"],"entryPoint":"src/interactive/index.ts","inputs":{"src/interactive/loop.ts":{"bytesInOutput":459},"src/interactive/index.ts":{"bytesInOutput":0},"src/interactive/keyboard.ts":{"bytesInOutput":1309},"src/interactive/mouse.ts":{"bytesInOutput":1235}},"bytes":3170},"dist/chunk-APAMPY43.js.map":{"imports":[],"exports":[],"inputs":{},"bytes":8537},"dist/chunk-APAMPY43.js":{"imports":[{"path":"dist/chunk-7BXR4ZFD.js","kind":"import-statement"},{"path":"dist/chunk-ENWGYQNU.js","kind":"import-statement"}],"exports":["a"],"inputs":{"src/core/state.ts":{"bytesInOutput":1555}},"bytes":1658},"dist/chunk-7BXR4ZFD.js.map":{"imports":[],"exports":[],"inputs":{},"bytes":3712},"dist/chunk-7BXR4ZFD.js":{"imports":[{"path":"dist/chunk-ENWGYQNU.js","kind":"import-statement"}],"exports":["a","b"],"inputs":{"src/core/reactive.ts":{"bytesInOutput":590}},"bytes":667},"dist/chunk-ENWGYQNU.js.map":{"imports":[],"exports":[],"inputs":{},"bytes":5647},"dist/chunk-ENWGYQNU.js":{"imports":[],"exports":["a","b","c","d","e","f","g","h"],"inputs":{"src/core/effect.ts":{"bytesInOutput":751},"src/core/hook.ts":{"bytesInOutput":227}},"bytes":1038},"dist/jsx-runtime.js.map":{"imports":[],"exports":[],"inputs":{},"bytes":93},"dist/jsx-runtime.js":{"imports":[{"path":"dist/chunk-EXLNKYSH.js","kind":"import-statement"}],"exports":["Fragment","jsx","jsxs"],"entryPoint":"src/jsx-runtime.ts","inputs":{},"bytes":81},"dist/jsx-dev-runtime.js.map":{"imports":[],"exports":[],"inputs":{},"bytes":510},"dist/jsx-dev-runtime.js":{"imports":[{"path":"dist/chunk-EXLNKYSH.js","kind":"import-statement"}],"exports":["Fragment","jsxDEV"],"entryPoint":"src/jsx-dev-runtime.ts","inputs":{"src/jsx-dev-runtime.ts":{"bytesInOutput":40}},"bytes":122},"dist/chunk-EXLNKYSH.js.map":{"imports":[],"exports":[],"inputs":{},"bytes":1278},"dist/chunk-EXLNKYSH.js":{"imports":[],"exports":["a","b","c"],"inputs":{"src/jsx-runtime.ts":{"bytesInOutput":177}},"bytes":207}}}
|
|
1
|
+
{"inputs":{"src/index.ts":{"bytes":68,"imports":[],"format":"esm"},"src/core/hook.ts":{"bytes":986,"imports":[],"format":"esm"},"src/core/lifecycle.ts":{"bytes":3525,"imports":[{"path":"src/core/hook.ts","kind":"import-statement","original":"./hook"}],"format":"esm"},"src/core/reactive.ts":{"bytes":2080,"imports":[{"path":"src/core/lifecycle.ts","kind":"import-statement","original":"./lifecycle"}],"format":"esm"},"src/core/devtools.ts":{"bytes":1841,"imports":[],"format":"esm"},"src/core/state.ts":{"bytes":5816,"imports":[{"path":"src/core/reactive.ts","kind":"import-statement","original":"./reactive"},{"path":"src/core/lifecycle.ts","kind":"import-statement","original":"./lifecycle"},{"path":"src/core/hook.ts","kind":"import-statement","original":"./hook"},{"path":"src/core/devtools.ts","kind":"import-statement","original":"./devtools"}],"format":"esm"},"src/core/context.ts":{"bytes":1400,"imports":[],"format":"esm"},"src/ref/ref.ts":{"bytes":803,"imports":[{"path":"src/core/hook.ts","kind":"import-statement","original":"../core/hook"}],"format":"esm"},"src/ref/forwardRef.ts":{"bytes":1604,"imports":[],"format":"esm"},"src/ref/index.ts":{"bytes":268,"imports":[{"path":"src/ref/ref.ts","kind":"import-statement","original":"./ref"},{"path":"src/ref/forwardRef.ts","kind":"import-statement","original":"./forwardRef"}],"format":"esm"},"src/core/index.ts":{"bytes":406,"imports":[{"path":"src/core/state.ts","kind":"import-statement","original":"./state"},{"path":"src/core/lifecycle.ts","kind":"import-statement","original":"./lifecycle"},{"path":"src/core/context.ts","kind":"import-statement","original":"./context"},{"path":"src/ref/index.ts","kind":"import-statement","original":"../ref"}],"format":"esm"},"src/dom/f.ts":{"bytes":285,"imports":[],"format":"esm"},"src/dom/render.ts":{"bytes":15127,"imports":[{"path":"src/core/context.ts","kind":"import-statement","original":"../core/context"},{"path":"src/core/hook.ts","kind":"import-statement","original":"../core/hook"},{"path":"src/core/lifecycle.ts","kind":"import-statement","original":"../core/lifecycle"}],"format":"esm"},"src/dom/hydrate.ts":{"bytes":9375,"imports":[{"path":"src/core/hook.ts","kind":"import-statement","original":"../core/hook"},{"path":"src/core/context.ts","kind":"import-statement","original":"../core/context"},{"path":"src/core/lifecycle.ts","kind":"import-statement","original":"../core/lifecycle"},{"path":"src/dom/render.ts","kind":"dynamic-import","original":"./render"}],"format":"esm"},"src/dom/components/Portal.tsx":{"bytes":1932,"imports":[{"path":"src/core/lifecycle.ts","kind":"import-statement","original":"../../core/lifecycle"},{"path":"src/core/hook.ts","kind":"import-statement","original":"../../core/hook"},{"path":"src/dom/render.ts","kind":"import-statement","original":"../render"}],"format":"esm"},"src/dom/components/suspenseContext.ts":{"bytes":372,"imports":[{"path":"src/core/context.ts","kind":"import-statement","original":"../../core/context"}],"format":"esm"},"src/dom/components/Suspense.tsx":{"bytes":1790,"imports":[{"path":"src/core/state.ts","kind":"import-statement","original":"../../core/state"},{"path":"src/core/hook.ts","kind":"import-statement","original":"../../core/hook"},{"path":"src/dom/components/suspenseContext.ts","kind":"import-statement","original":"./suspenseContext"}],"format":"esm"},"src/dom/components/ErrorBoundary.tsx":{"bytes":2860,"imports":[{"path":"src/core/state.ts","kind":"import-statement","original":"../../core/state"},{"path":"src/core/hook.ts","kind":"import-statement","original":"../../core/hook"}],"format":"esm"},"src/dom/components/lazy.ts":{"bytes":1767,"imports":[{"path":"src/dom/components/suspenseContext.ts","kind":"import-statement","original":"./suspenseContext"}],"format":"esm"},"src/dom/components/index.ts":{"bytes":598,"imports":[{"path":"src/dom/components/Portal.tsx","kind":"import-statement","original":"./Portal"},{"path":"src/dom/components/Suspense.tsx","kind":"import-statement","original":"./Suspense"},{"path":"src/dom/components/ErrorBoundary.tsx","kind":"import-statement","original":"./ErrorBoundary"},{"path":"src/dom/components/lazy.ts","kind":"import-statement","original":"./lazy"},{"path":"src/dom/components/suspenseContext.ts","kind":"import-statement","original":"./suspenseContext"},{"path":"src/dom/components/ErrorBoundary.tsx","kind":"import-statement","original":"./ErrorBoundary"}],"format":"esm"},"src/dom/index.ts":{"bytes":457,"imports":[{"path":"src/dom/f.ts","kind":"import-statement","original":"./f"},{"path":"src/dom/render.ts","kind":"import-statement","original":"./render"},{"path":"src/dom/hydrate.ts","kind":"import-statement","original":"./hydrate"},{"path":"src/dom/components/index.ts","kind":"import-statement","original":"./components"}],"format":"esm"},"src/server/escape.ts":{"bytes":364,"imports":[],"format":"esm"},"src/server/serverState.ts":{"bytes":896,"imports":[],"format":"esm"},"src/server/renderToString.ts":{"bytes":6572,"imports":[{"path":"src/server/escape.ts","kind":"import-statement","original":"./escape"},{"path":"src/server/serverState.ts","kind":"import-statement","original":"./serverState"},{"path":"src/core/hook.ts","kind":"import-statement","original":"../core/hook"},{"path":"src/core/context.ts","kind":"import-statement","original":"../core/context"}],"format":"esm"},"src/server/index.ts":{"bytes":243,"imports":[{"path":"src/server/renderToString.ts","kind":"import-statement","original":"./renderToString"},{"path":"src/server/serverState.ts","kind":"import-statement","original":"./serverState"}],"format":"esm"},"src/router/types.ts":{"bytes":807,"imports":[],"format":"esm"},"src/router/utils.ts":{"bytes":3745,"imports":[{"path":"./types","kind":"import-statement","external":true}],"format":"esm"},"src/router/router.ts":{"bytes":2599,"imports":[{"path":"src/core/reactive.ts","kind":"import-statement","original":"../core/reactive"},{"path":"src/core/context.ts","kind":"import-statement","original":"../core/context"},{"path":"src/router/utils.ts","kind":"import-statement","original":"./utils"}],"format":"esm"},"src/jsx-runtime.ts":{"bytes":727,"imports":[],"format":"esm"},"src/router/dom/Route.tsx":{"bytes":106,"imports":[],"format":"esm"},"src/router/dom/Routes.tsx":{"bytes":2578,"imports":[{"path":"src/jsx-runtime.ts","kind":"import-statement","original":"../../jsx-runtime"},{"path":"src/router/router.ts","kind":"import-statement","original":"../router"},{"path":"src/router/utils.ts","kind":"import-statement","original":"../utils"},{"path":"src/router/dom/Route.tsx","kind":"import-statement","original":"./Route"}],"format":"esm"},"src/router/dom/Outlet.tsx":{"bytes":769,"imports":[{"path":"src/core/state.ts","kind":"import-statement","original":"../../core/state"},{"path":"src/core/context.ts","kind":"import-statement","original":"../../core/context"},{"path":"src/jsx-runtime.ts","kind":"import-statement","original":"../../jsx-runtime"},{"path":"src/router/router.ts","kind":"import-statement","original":"../router"}],"format":"esm"},"src/router/dom/Link.tsx":{"bytes":441,"imports":[{"path":"src/jsx-runtime.ts","kind":"import-statement","original":"../../jsx-runtime"},{"path":"src/router/router.ts","kind":"import-statement","original":"../router"}],"format":"esm"},"src/router/index.ts":{"bytes":259,"imports":[{"path":"src/router/types.ts","kind":"import-statement","original":"./types"},{"path":"src/router/router.ts","kind":"import-statement","original":"./router"},{"path":"src/router/dom/Routes.tsx","kind":"import-statement","original":"./dom/Routes"},{"path":"src/router/dom/Route.tsx","kind":"import-statement","original":"./dom/Route"},{"path":"src/router/dom/Outlet.tsx","kind":"import-statement","original":"./dom/Outlet"},{"path":"src/router/dom/Link.tsx","kind":"import-statement","original":"./dom/Link"}],"format":"esm"},"src/canvas/Canvas.tsx":{"bytes":5538,"imports":[{"path":"src/core/lifecycle.ts","kind":"import-statement","original":"../core/lifecycle"},{"path":"src/core/reactive.ts","kind":"import-statement","original":"../core/reactive"},{"path":"src/jsx-runtime.ts","kind":"import-statement","original":"flexium/jsx-runtime"}],"format":"esm"},"src/canvas/dom/DrawRect.tsx":{"bytes":305,"imports":[{"path":"src/core/lifecycle.ts","kind":"import-statement","original":"../../core/lifecycle"},{"path":"src/canvas/Canvas.tsx","kind":"import-statement","original":"../Canvas"}],"format":"esm"},"src/canvas/dom/DrawCircle.tsx":{"bytes":315,"imports":[{"path":"src/core/lifecycle.ts","kind":"import-statement","original":"../../core/lifecycle"},{"path":"src/canvas/Canvas.tsx","kind":"import-statement","original":"../Canvas"}],"format":"esm"},"src/canvas/dom/DrawArc.tsx":{"bytes":300,"imports":[{"path":"src/core/lifecycle.ts","kind":"import-statement","original":"../../core/lifecycle"},{"path":"src/canvas/Canvas.tsx","kind":"import-statement","original":"../Canvas"}],"format":"esm"},"src/canvas/dom/DrawLine.tsx":{"bytes":305,"imports":[{"path":"src/core/lifecycle.ts","kind":"import-statement","original":"../../core/lifecycle"},{"path":"src/canvas/Canvas.tsx","kind":"import-statement","original":"../Canvas"}],"format":"esm"},"src/canvas/dom/DrawText.tsx":{"bytes":305,"imports":[{"path":"src/core/lifecycle.ts","kind":"import-statement","original":"../../core/lifecycle"},{"path":"src/canvas/Canvas.tsx","kind":"import-statement","original":"../Canvas"}],"format":"esm"},"src/canvas/dom/DrawPath.tsx":{"bytes":305,"imports":[{"path":"src/core/lifecycle.ts","kind":"import-statement","original":"../../core/lifecycle"},{"path":"src/canvas/Canvas.tsx","kind":"import-statement","original":"../Canvas"}],"format":"esm"},"src/canvas/index.ts":{"bytes":427,"imports":[{"path":"src/canvas/Canvas.tsx","kind":"import-statement","original":"./Canvas"},{"path":"src/canvas/dom/DrawRect.tsx","kind":"import-statement","original":"./dom/DrawRect"},{"path":"src/canvas/dom/DrawCircle.tsx","kind":"import-statement","original":"./dom/DrawCircle"},{"path":"src/canvas/dom/DrawArc.tsx","kind":"import-statement","original":"./dom/DrawArc"},{"path":"src/canvas/dom/DrawLine.tsx","kind":"import-statement","original":"./dom/DrawLine"},{"path":"src/canvas/dom/DrawText.tsx","kind":"import-statement","original":"./dom/DrawText"},{"path":"src/canvas/dom/DrawPath.tsx","kind":"import-statement","original":"./dom/DrawPath"}],"format":"esm"},"src/interactive/loop.ts":{"bytes":1684,"imports":[],"format":"esm"},"src/interactive/types.ts":{"bytes":1937,"imports":[],"format":"esm"},"src/interactive/keyboard.ts":{"bytes":2405,"imports":[{"path":"src/core/state.ts","kind":"import-statement","original":"../core/state"},{"path":"src/interactive/types.ts","kind":"import-statement","original":"./types"}],"format":"esm"},"src/interactive/mouse.ts":{"bytes":3183,"imports":[{"path":"src/core/state.ts","kind":"import-statement","original":"../core/state"},{"path":"src/interactive/types.ts","kind":"import-statement","original":"./types"}],"format":"esm"},"src/interactive/index.ts":{"bytes":206,"imports":[{"path":"src/interactive/loop.ts","kind":"import-statement","original":"./loop"},{"path":"src/interactive/keyboard.ts","kind":"import-statement","original":"./keyboard"},{"path":"src/interactive/mouse.ts","kind":"import-statement","original":"./mouse"}],"format":"esm"},"src/jsx-dev-runtime.ts":{"bytes":211,"imports":[{"path":"src/jsx-runtime.ts","kind":"import-statement","original":"./jsx-runtime"}],"format":"esm"}},"outputs":{"dist/jsx-dev-runtime.js.map":{"imports":[],"exports":[],"inputs":{},"bytes":510},"dist/jsx-dev-runtime.js":{"imports":[{"path":"dist/chunk-EXLNKYSH.js","kind":"import-statement"}],"exports":["Fragment","jsxDEV"],"entryPoint":"src/jsx-dev-runtime.ts","inputs":{"src/jsx-dev-runtime.ts":{"bytesInOutput":40}},"bytes":122},"dist/render-QZAFAGIM.js.map":{"imports":[],"exports":[],"inputs":{},"bytes":93},"dist/render-QZAFAGIM.js":{"imports":[{"path":"dist/chunk-6Z33DLMI.js","kind":"import-statement"},{"path":"dist/chunk-PSKDIB7J.js","kind":"import-statement"},{"path":"dist/chunk-YWTD32NA.js","kind":"import-statement"},{"path":"dist/chunk-UWFVCKRU.js","kind":"import-statement"}],"exports":["reconcile","render"],"entryPoint":"src/dom/render.ts","inputs":{},"bytes":157},"dist/index.js.map":{"imports":[],"exports":[],"inputs":{},"bytes":205},"dist/index.js":{"imports":[],"exports":["VERSION"],"entryPoint":"src/index.ts","inputs":{"src/index.ts":{"bytesInOutput":16}},"bytes":38},"dist/core.js.map":{"imports":[],"exports":[],"inputs":{},"bytes":3072},"dist/core.js":{"imports":[{"path":"dist/chunk-PSKDIB7J.js","kind":"import-statement"},{"path":"dist/chunk-LTT43APF.js","kind":"import-statement"},{"path":"dist/chunk-6VIRXD2Y.js","kind":"import-statement"},{"path":"dist/chunk-YWTD32NA.js","kind":"import-statement"},{"path":"dist/chunk-UWFVCKRU.js","kind":"import-statement"}],"exports":["context","createContext","effect","forwardRef","ref","state","sync"],"entryPoint":"src/core/index.ts","inputs":{"src/core/index.ts":{"bytesInOutput":0},"src/ref/ref.ts":{"bytesInOutput":42},"src/ref/index.ts":{"bytesInOutput":0},"src/ref/forwardRef.ts":{"bytesInOutput":131}},"bytes":474},"dist/dom.js.map":{"imports":[],"exports":[],"inputs":{},"bytes":27819},"dist/dom.js":{"imports":[{"path":"dist/chunk-6Z33DLMI.js","kind":"import-statement"},{"path":"dist/chunk-PSKDIB7J.js","kind":"import-statement"},{"path":"dist/chunk-LTT43APF.js","kind":"import-statement"},{"path":"dist/chunk-6VIRXD2Y.js","kind":"import-statement"},{"path":"dist/chunk-YWTD32NA.js","kind":"import-statement"},{"path":"dist/chunk-UWFVCKRU.js","kind":"import-statement"},{"path":"dist/render-QZAFAGIM.js","kind":"dynamic-import"}],"exports":["ErrorBoundary","Portal","Suspense","f","hydrate","lazy","reconcile","render","suspenseContext"],"entryPoint":"src/dom/index.ts","inputs":{"src/dom/f.ts":{"bytesInOutput":70},"src/dom/index.ts":{"bytesInOutput":0},"src/dom/hydrate.ts":{"bytesInOutput":2739},"src/dom/components/Portal.tsx":{"bytesInOutput":491},"src/dom/components/index.ts":{"bytesInOutput":0},"src/dom/components/suspenseContext.ts":{"bytesInOutput":71},"src/dom/components/Suspense.tsx":{"bytesInOutput":294},"src/dom/components/ErrorBoundary.tsx":{"bytesInOutput":500},"src/dom/components/lazy.ts":{"bytesInOutput":249}},"bytes":4816},"dist/chunk-6Z33DLMI.js.map":{"imports":[],"exports":[],"inputs":{},"bytes":23945},"dist/chunk-6Z33DLMI.js":{"imports":[{"path":"dist/chunk-PSKDIB7J.js","kind":"import-statement"},{"path":"dist/chunk-YWTD32NA.js","kind":"import-statement"},{"path":"dist/chunk-UWFVCKRU.js","kind":"import-statement"}],"exports":["a","b"],"inputs":{"src/dom/render.ts":{"bytesInOutput":4853}},"bytes":4996},"dist/server.js.map":{"imports":[],"exports":[],"inputs":{},"bytes":12945},"dist/server.js":{"imports":[{"path":"dist/chunk-PSKDIB7J.js","kind":"import-statement"},{"path":"dist/chunk-UWFVCKRU.js","kind":"import-statement"}],"exports":["getIsServer","renderToStaticMarkup","renderToString"],"entryPoint":"src/server/index.ts","inputs":{"src/server/escape.ts":{"bytesInOutput":157},"src/server/serverState.ts":{"bytesInOutput":186},"src/server/renderToString.ts":{"bytesInOutput":2125},"src/server/index.ts":{"bytesInOutput":0}},"bytes":2627},"dist/router.js.map":{"imports":[],"exports":[],"inputs":{},"bytes":16422},"dist/router.js":{"imports":[{"path":"dist/chunk-PSKDIB7J.js","kind":"import-statement"},{"path":"dist/chunk-LTT43APF.js","kind":"import-statement"},{"path":"dist/chunk-6VIRXD2Y.js","kind":"import-statement"},{"path":"dist/chunk-YWTD32NA.js","kind":"import-statement"},{"path":"dist/chunk-UWFVCKRU.js","kind":"import-statement"},{"path":"dist/chunk-EXLNKYSH.js","kind":"import-statement"}],"exports":["Link","Outlet","Route","Routes","router"],"entryPoint":"src/router/index.ts","inputs":{"src/router/index.ts":{"bytesInOutput":0},"src/router/utils.ts":{"bytesInOutput":1073},"src/router/router.ts":{"bytesInOutput":743},"src/router/dom/Route.tsx":{"bytesInOutput":26},"src/router/dom/Routes.tsx":{"bytesInOutput":638},"src/router/dom/Outlet.tsx":{"bytesInOutput":238},"src/router/dom/Link.tsx":{"bytesInOutput":133}},"bytes":3135},"dist/chunk-PSKDIB7J.js.map":{"imports":[],"exports":[],"inputs":{},"bytes":2198},"dist/chunk-PSKDIB7J.js":{"imports":[],"exports":["a","b","c","d"],"inputs":{"src/core/context.ts":{"bytesInOutput":284}},"bytes":316},"dist/canvas.js.map":{"imports":[],"exports":[],"inputs":{},"bytes":12793},"dist/canvas.js":{"imports":[{"path":"dist/chunk-6VIRXD2Y.js","kind":"import-statement"},{"path":"dist/chunk-YWTD32NA.js","kind":"import-statement"},{"path":"dist/chunk-UWFVCKRU.js","kind":"import-statement"},{"path":"dist/chunk-EXLNKYSH.js","kind":"import-statement"}],"exports":["Canvas","DrawArc","DrawCircle","DrawLine","DrawPath","DrawRect","DrawText"],"entryPoint":"src/canvas/index.ts","inputs":{"src/canvas/Canvas.tsx":{"bytesInOutput":1875},"src/canvas/index.ts":{"bytesInOutput":0},"src/canvas/dom/DrawRect.tsx":{"bytesInOutput":60},"src/canvas/dom/DrawCircle.tsx":{"bytesInOutput":62},"src/canvas/dom/DrawArc.tsx":{"bytesInOutput":59},"src/canvas/dom/DrawLine.tsx":{"bytesInOutput":60},"src/canvas/dom/DrawText.tsx":{"bytesInOutput":60},"src/canvas/dom/DrawPath.tsx":{"bytesInOutput":60}},"bytes":2490},"dist/interactive.js.map":{"imports":[],"exports":[],"inputs":{},"bytes":15153},"dist/interactive.js":{"imports":[{"path":"dist/chunk-LTT43APF.js","kind":"import-statement"},{"path":"dist/chunk-6VIRXD2Y.js","kind":"import-statement"},{"path":"dist/chunk-YWTD32NA.js","kind":"import-statement"},{"path":"dist/chunk-UWFVCKRU.js","kind":"import-statement"}],"exports":["Keys","MouseButton","keyboard","loop","mouse"],"entryPoint":"src/interactive/index.ts","inputs":{"src/interactive/loop.ts":{"bytesInOutput":459},"src/interactive/index.ts":{"bytesInOutput":0},"src/interactive/types.ts":{"bytesInOutput":701},"src/interactive/keyboard.ts":{"bytesInOutput":689},"src/interactive/mouse.ts":{"bytesInOutput":1150}},"bytes":3194},"dist/chunk-LTT43APF.js.map":{"imports":[],"exports":[],"inputs":{},"bytes":11319},"dist/chunk-LTT43APF.js":{"imports":[{"path":"dist/chunk-6VIRXD2Y.js","kind":"import-statement"},{"path":"dist/chunk-YWTD32NA.js","kind":"import-statement"},{"path":"dist/chunk-UWFVCKRU.js","kind":"import-statement"}],"exports":["a"],"inputs":{"src/core/devtools.ts":{"bytesInOutput":372},"src/core/state.ts":{"bytesInOutput":1581}},"bytes":2089},"dist/chunk-6VIRXD2Y.js.map":{"imports":[],"exports":[],"inputs":{},"bytes":3715},"dist/chunk-6VIRXD2Y.js":{"imports":[{"path":"dist/chunk-YWTD32NA.js","kind":"import-statement"}],"exports":["a","b"],"inputs":{"src/core/reactive.ts":{"bytesInOutput":590}},"bytes":667},"dist/chunk-YWTD32NA.js.map":{"imports":[],"exports":[],"inputs":{},"bytes":5910},"dist/chunk-YWTD32NA.js":{"imports":[{"path":"dist/chunk-UWFVCKRU.js","kind":"import-statement"}],"exports":["a","b","c","d","e","f"],"inputs":{"src/core/lifecycle.ts":{"bytesInOutput":1072}},"bytes":1163},"dist/chunk-UWFVCKRU.js.map":{"imports":[],"exports":[],"inputs":{},"bytes":1694},"dist/chunk-UWFVCKRU.js":{"imports":[],"exports":["a","b"],"inputs":{"src/core/hook.ts":{"bytesInOutput":227}},"bytes":250},"dist/jsx-runtime.js.map":{"imports":[],"exports":[],"inputs":{},"bytes":93},"dist/jsx-runtime.js":{"imports":[{"path":"dist/chunk-EXLNKYSH.js","kind":"import-statement"}],"exports":["Fragment","jsx","jsxs"],"entryPoint":"src/jsx-runtime.ts","inputs":{},"bytes":81},"dist/chunk-EXLNKYSH.js.map":{"imports":[],"exports":[],"inputs":{},"bytes":1278},"dist/chunk-EXLNKYSH.js":{"imports":[],"exports":["a","b","c"],"inputs":{"src/jsx-runtime.ts":{"bytesInOutput":177}},"bytes":207}}}
|
package/dist/metafile-esm.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"inputs":{"src/index.ts":{"bytes":68,"imports":[],"format":"esm"},"src/core/effect.ts":{"bytes":2302,"imports":[],"format":"esm"},"src/core/reactive.ts":{"bytes":2077,"imports":[{"path":"src/core/effect.ts","kind":"import-statement","original":"./effect"}],"format":"esm"},"src/core/hook.ts":{"bytes":986,"imports":[],"format":"esm"},"src/core/state.ts":{"bytes":5773,"imports":[{"path":"src/core/reactive.ts","kind":"import-statement","original":"./reactive"},{"path":"src/core/effect.ts","kind":"import-statement","original":"./effect"},{"path":"src/core/hook.ts","kind":"import-statement","original":"./hook"}],"format":"esm"},"src/core/lifecycle.ts":{"bytes":1649,"imports":[{"path":"src/core/hook.ts","kind":"import-statement","original":"./hook"},{"path":"src/core/effect.ts","kind":"import-statement","original":"./effect"}],"format":"esm"},"src/core/context.ts":{"bytes":1461,"imports":[],"format":"esm"},"src/core/index.ts":{"bytes":166,"imports":[{"path":"src/core/state.ts","kind":"import-statement","original":"./state"},{"path":"src/core/lifecycle.ts","kind":"import-statement","original":"./lifecycle"},{"path":"src/core/context.ts","kind":"import-statement","original":"./context"}],"format":"esm"},"src/dom/index.ts":{"bytes":21288,"imports":[{"path":"src/core/context.ts","kind":"import-statement","original":"../core/context"},{"path":"src/core/hook.ts","kind":"import-statement","original":"../core/hook"},{"path":"src/core/effect.ts","kind":"import-statement","original":"../core/effect"}],"format":"esm"},"src/router/types.ts":{"bytes":807,"imports":[],"format":"esm"},"src/router/utils.ts":{"bytes":3745,"imports":[{"path":"./types","kind":"import-statement","external":true}],"format":"esm"},"src/router/router.ts":{"bytes":2599,"imports":[{"path":"src/core/reactive.ts","kind":"import-statement","original":"../core/reactive"},{"path":"src/core/context.ts","kind":"import-statement","original":"../core/context"},{"path":"src/router/utils.ts","kind":"import-statement","original":"./utils"}],"format":"esm"},"src/jsx-runtime.ts":{"bytes":727,"imports":[],"format":"esm"},"src/router/dom/Route.tsx":{"bytes":106,"imports":[],"format":"esm"},"src/router/dom/Routes.tsx":{"bytes":2578,"imports":[{"path":"src/jsx-runtime.ts","kind":"import-statement","original":"../../jsx-runtime"},{"path":"src/router/router.ts","kind":"import-statement","original":"../router"},{"path":"src/router/utils.ts","kind":"import-statement","original":"../utils"},{"path":"src/router/dom/Route.tsx","kind":"import-statement","original":"./Route"}],"format":"esm"},"src/router/dom/Outlet.tsx":{"bytes":769,"imports":[{"path":"src/core/state.ts","kind":"import-statement","original":"../../core/state"},{"path":"src/core/context.ts","kind":"import-statement","original":"../../core/context"},{"path":"src/jsx-runtime.ts","kind":"import-statement","original":"../../jsx-runtime"},{"path":"src/router/router.ts","kind":"import-statement","original":"../router"}],"format":"esm"},"src/router/dom/Link.tsx":{"bytes":441,"imports":[{"path":"src/jsx-runtime.ts","kind":"import-statement","original":"../../jsx-runtime"},{"path":"src/router/router.ts","kind":"import-statement","original":"../router"}],"format":"esm"},"src/router/index.ts":{"bytes":259,"imports":[{"path":"src/router/types.ts","kind":"import-statement","original":"./types"},{"path":"src/router/router.ts","kind":"import-statement","original":"./router"},{"path":"src/router/dom/Routes.tsx","kind":"import-statement","original":"./dom/Routes"},{"path":"src/router/dom/Route.tsx","kind":"import-statement","original":"./dom/Route"},{"path":"src/router/dom/Outlet.tsx","kind":"import-statement","original":"./dom/Outlet"},{"path":"src/router/dom/Link.tsx","kind":"import-statement","original":"./dom/Link"}],"format":"esm"},"src/canvas/Canvas.tsx":{"bytes":5692,"imports":[{"path":"src/core/lifecycle.ts","kind":"import-statement","original":"../core/lifecycle"},{"path":"src/core/reactive.ts","kind":"import-statement","original":"../core/reactive"},{"path":"src/jsx-runtime.ts","kind":"import-statement","original":"flexium/jsx-runtime"}],"format":"esm"},"src/canvas/dom/DrawRect.tsx":{"bytes":533,"imports":[{"path":"src/core/lifecycle.ts","kind":"import-statement","original":"../../core/lifecycle"},{"path":"src/canvas/Canvas.tsx","kind":"import-statement","original":"../Canvas"}],"format":"esm"},"src/canvas/dom/DrawCircle.tsx":{"bytes":508,"imports":[{"path":"src/core/lifecycle.ts","kind":"import-statement","original":"../../core/lifecycle"},{"path":"src/canvas/Canvas.tsx","kind":"import-statement","original":"../Canvas"}],"format":"esm"},"src/canvas/dom/DrawArc.tsx":{"bytes":599,"imports":[{"path":"src/core/lifecycle.ts","kind":"import-statement","original":"../../core/lifecycle"},{"path":"src/canvas/Canvas.tsx","kind":"import-statement","original":"../Canvas"}],"format":"esm"},"src/canvas/dom/DrawLine.tsx":{"bytes":495,"imports":[{"path":"src/core/lifecycle.ts","kind":"import-statement","original":"../../core/lifecycle"},{"path":"src/canvas/Canvas.tsx","kind":"import-statement","original":"../Canvas"}],"format":"esm"},"src/canvas/dom/DrawText.tsx":{"bytes":580,"imports":[{"path":"src/core/lifecycle.ts","kind":"import-statement","original":"../../core/lifecycle"},{"path":"src/canvas/Canvas.tsx","kind":"import-statement","original":"../Canvas"}],"format":"esm"},"src/canvas/dom/DrawPath.tsx":{"bytes":437,"imports":[{"path":"src/core/lifecycle.ts","kind":"import-statement","original":"../../core/lifecycle"},{"path":"src/canvas/Canvas.tsx","kind":"import-statement","original":"../Canvas"}],"format":"esm"},"src/canvas/index.ts":{"bytes":427,"imports":[{"path":"src/canvas/Canvas.tsx","kind":"import-statement","original":"./Canvas"},{"path":"src/canvas/dom/DrawRect.tsx","kind":"import-statement","original":"./dom/DrawRect"},{"path":"src/canvas/dom/DrawCircle.tsx","kind":"import-statement","original":"./dom/DrawCircle"},{"path":"src/canvas/dom/DrawArc.tsx","kind":"import-statement","original":"./dom/DrawArc"},{"path":"src/canvas/dom/DrawLine.tsx","kind":"import-statement","original":"./dom/DrawLine"},{"path":"src/canvas/dom/DrawText.tsx","kind":"import-statement","original":"./dom/DrawText"},{"path":"src/canvas/dom/DrawPath.tsx","kind":"import-statement","original":"./dom/DrawPath"}],"format":"esm"},"src/interactive/loop.ts":{"bytes":1888,"imports":[],"format":"esm"},"src/interactive/keyboard.ts":{"bytes":3391,"imports":[{"path":"src/core/state.ts","kind":"import-statement","original":"../core/state"}],"format":"esm"},"src/interactive/mouse.ts":{"bytes":3563,"imports":[{"path":"src/core/state.ts","kind":"import-statement","original":"../core/state"}],"format":"esm"},"src/interactive/index.ts":{"bytes":206,"imports":[{"path":"src/interactive/loop.ts","kind":"import-statement","original":"./loop"},{"path":"src/interactive/keyboard.ts","kind":"import-statement","original":"./keyboard"},{"path":"src/interactive/mouse.ts","kind":"import-statement","original":"./mouse"}],"format":"esm"},"src/jsx-dev-runtime.ts":{"bytes":211,"imports":[{"path":"src/jsx-runtime.ts","kind":"import-statement","original":"./jsx-runtime"}],"format":"esm"}},"outputs":{"dist/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":205},"dist/index.mjs":{"imports":[],"exports":["VERSION"],"entryPoint":"src/index.ts","inputs":{"src/index.ts":{"bytesInOutput":16}},"bytes":38},"dist/core.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":93},"dist/core.mjs":{"imports":[{"path":"dist/chunk-LUREDEUB.mjs","kind":"import-statement"},{"path":"dist/chunk-S6WF3XNF.mjs","kind":"import-statement"},{"path":"dist/chunk-ECB5HZOQ.mjs","kind":"import-statement"},{"path":"dist/chunk-CPJRQL2C.mjs","kind":"import-statement"},{"path":"dist/chunk-44RZHCII.mjs","kind":"import-statement"}],"exports":["batch","context","createContext","effect","popContext","pushContext","runWithContext","snapshotContext","state","sync"],"entryPoint":"src/core/index.ts","inputs":{"src/core/index.ts":{"bytesInOutput":0}},"bytes":389},"dist/dom.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":30353},"dist/dom.mjs":{"imports":[{"path":"dist/chunk-LUREDEUB.mjs","kind":"import-statement"},{"path":"dist/chunk-44RZHCII.mjs","kind":"import-statement"}],"exports":["f","reconcile","render"],"entryPoint":"src/dom/index.ts","inputs":{"src/dom/index.ts":{"bytesInOutput":4899}},"bytes":5031},"dist/router.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":16422},"dist/router.mjs":{"imports":[{"path":"dist/chunk-LUREDEUB.mjs","kind":"import-statement"},{"path":"dist/chunk-ECB5HZOQ.mjs","kind":"import-statement"},{"path":"dist/chunk-CPJRQL2C.mjs","kind":"import-statement"},{"path":"dist/chunk-44RZHCII.mjs","kind":"import-statement"},{"path":"dist/chunk-ZCO4NIGC.mjs","kind":"import-statement"}],"exports":["Link","Outlet","Route","Routes","router"],"entryPoint":"src/router/index.ts","inputs":{"src/router/index.ts":{"bytesInOutput":0},"src/router/utils.ts":{"bytesInOutput":1073},"src/router/router.ts":{"bytesInOutput":743},"src/router/dom/Route.tsx":{"bytesInOutput":26},"src/router/dom/Routes.tsx":{"bytesInOutput":638},"src/router/dom/Outlet.tsx":{"bytesInOutput":238},"src/router/dom/Link.tsx":{"bytesInOutput":133}},"bytes":3112},"dist/chunk-LUREDEUB.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":2664},"dist/chunk-LUREDEUB.mjs":{"imports":[],"exports":["a","b","c","d","e","f"],"inputs":{"src/core/context.ts":{"bytesInOutput":450}},"bytes":501},"dist/canvas.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":14321},"dist/canvas.mjs":{"imports":[{"path":"dist/chunk-S6WF3XNF.mjs","kind":"import-statement"},{"path":"dist/chunk-CPJRQL2C.mjs","kind":"import-statement"},{"path":"dist/chunk-44RZHCII.mjs","kind":"import-statement"},{"path":"dist/chunk-ZCO4NIGC.mjs","kind":"import-statement"}],"exports":["Canvas","DrawArc","DrawCircle","DrawLine","DrawPath","DrawRect","DrawText"],"entryPoint":"src/canvas/index.ts","inputs":{"src/canvas/Canvas.tsx":{"bytesInOutput":1875},"src/canvas/index.ts":{"bytesInOutput":0},"src/canvas/dom/DrawRect.tsx":{"bytesInOutput":60},"src/canvas/dom/DrawCircle.tsx":{"bytesInOutput":62},"src/canvas/dom/DrawArc.tsx":{"bytesInOutput":59},"src/canvas/dom/DrawLine.tsx":{"bytesInOutput":60},"src/canvas/dom/DrawText.tsx":{"bytesInOutput":60},"src/canvas/dom/DrawPath.tsx":{"bytesInOutput":60}},"bytes":2494},"dist/chunk-S6WF3XNF.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":2516},"dist/chunk-S6WF3XNF.mjs":{"imports":[{"path":"dist/chunk-44RZHCII.mjs","kind":"import-statement"}],"exports":["a","b","c"],"inputs":{"src/core/lifecycle.ts":{"bytesInOutput":340}},"bytes":425},"dist/interactive.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":14770},"dist/interactive.mjs":{"imports":[{"path":"dist/chunk-ECB5HZOQ.mjs","kind":"import-statement"},{"path":"dist/chunk-CPJRQL2C.mjs","kind":"import-statement"},{"path":"dist/chunk-44RZHCII.mjs","kind":"import-statement"}],"exports":["Keys","MouseButton","keyboard","loop","mouse"],"entryPoint":"src/interactive/index.ts","inputs":{"src/interactive/loop.ts":{"bytesInOutput":459},"src/interactive/index.ts":{"bytesInOutput":0},"src/interactive/keyboard.ts":{"bytesInOutput":1309},"src/interactive/mouse.ts":{"bytesInOutput":1235}},"bytes":3173},"dist/chunk-ECB5HZOQ.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":8537},"dist/chunk-ECB5HZOQ.mjs":{"imports":[{"path":"dist/chunk-CPJRQL2C.mjs","kind":"import-statement"},{"path":"dist/chunk-44RZHCII.mjs","kind":"import-statement"}],"exports":["a"],"inputs":{"src/core/state.ts":{"bytesInOutput":1555}},"bytes":1660},"dist/chunk-CPJRQL2C.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":3712},"dist/chunk-CPJRQL2C.mjs":{"imports":[{"path":"dist/chunk-44RZHCII.mjs","kind":"import-statement"}],"exports":["a","b"],"inputs":{"src/core/reactive.ts":{"bytesInOutput":590}},"bytes":668},"dist/chunk-44RZHCII.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":5647},"dist/chunk-44RZHCII.mjs":{"imports":[],"exports":["a","b","c","d","e","f","g","h"],"inputs":{"src/core/effect.ts":{"bytesInOutput":751},"src/core/hook.ts":{"bytesInOutput":227}},"bytes":1038},"dist/jsx-runtime.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":93},"dist/jsx-runtime.mjs":{"imports":[{"path":"dist/chunk-ZCO4NIGC.mjs","kind":"import-statement"}],"exports":["Fragment","jsx","jsxs"],"entryPoint":"src/jsx-runtime.ts","inputs":{},"bytes":82},"dist/jsx-dev-runtime.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":510},"dist/jsx-dev-runtime.mjs":{"imports":[{"path":"dist/chunk-ZCO4NIGC.mjs","kind":"import-statement"}],"exports":["Fragment","jsxDEV"],"entryPoint":"src/jsx-dev-runtime.ts","inputs":{"src/jsx-dev-runtime.ts":{"bytesInOutput":40}},"bytes":123},"dist/chunk-ZCO4NIGC.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":1278},"dist/chunk-ZCO4NIGC.mjs":{"imports":[],"exports":["a","b","c"],"inputs":{"src/jsx-runtime.ts":{"bytesInOutput":177}},"bytes":207}}}
|
|
1
|
+
{"inputs":{"src/index.ts":{"bytes":68,"imports":[],"format":"esm"},"src/core/hook.ts":{"bytes":986,"imports":[],"format":"esm"},"src/core/lifecycle.ts":{"bytes":3525,"imports":[{"path":"src/core/hook.ts","kind":"import-statement","original":"./hook"}],"format":"esm"},"src/core/reactive.ts":{"bytes":2080,"imports":[{"path":"src/core/lifecycle.ts","kind":"import-statement","original":"./lifecycle"}],"format":"esm"},"src/core/devtools.ts":{"bytes":1841,"imports":[],"format":"esm"},"src/core/state.ts":{"bytes":5816,"imports":[{"path":"src/core/reactive.ts","kind":"import-statement","original":"./reactive"},{"path":"src/core/lifecycle.ts","kind":"import-statement","original":"./lifecycle"},{"path":"src/core/hook.ts","kind":"import-statement","original":"./hook"},{"path":"src/core/devtools.ts","kind":"import-statement","original":"./devtools"}],"format":"esm"},"src/core/context.ts":{"bytes":1400,"imports":[],"format":"esm"},"src/ref/ref.ts":{"bytes":803,"imports":[{"path":"src/core/hook.ts","kind":"import-statement","original":"../core/hook"}],"format":"esm"},"src/ref/forwardRef.ts":{"bytes":1604,"imports":[],"format":"esm"},"src/ref/index.ts":{"bytes":268,"imports":[{"path":"src/ref/ref.ts","kind":"import-statement","original":"./ref"},{"path":"src/ref/forwardRef.ts","kind":"import-statement","original":"./forwardRef"}],"format":"esm"},"src/core/index.ts":{"bytes":406,"imports":[{"path":"src/core/state.ts","kind":"import-statement","original":"./state"},{"path":"src/core/lifecycle.ts","kind":"import-statement","original":"./lifecycle"},{"path":"src/core/context.ts","kind":"import-statement","original":"./context"},{"path":"src/ref/index.ts","kind":"import-statement","original":"../ref"}],"format":"esm"},"src/dom/f.ts":{"bytes":285,"imports":[],"format":"esm"},"src/dom/render.ts":{"bytes":15127,"imports":[{"path":"src/core/context.ts","kind":"import-statement","original":"../core/context"},{"path":"src/core/hook.ts","kind":"import-statement","original":"../core/hook"},{"path":"src/core/lifecycle.ts","kind":"import-statement","original":"../core/lifecycle"}],"format":"esm"},"src/dom/hydrate.ts":{"bytes":9375,"imports":[{"path":"src/core/hook.ts","kind":"import-statement","original":"../core/hook"},{"path":"src/core/context.ts","kind":"import-statement","original":"../core/context"},{"path":"src/core/lifecycle.ts","kind":"import-statement","original":"../core/lifecycle"},{"path":"src/dom/render.ts","kind":"dynamic-import","original":"./render"}],"format":"esm"},"src/dom/components/Portal.tsx":{"bytes":1932,"imports":[{"path":"src/core/lifecycle.ts","kind":"import-statement","original":"../../core/lifecycle"},{"path":"src/core/hook.ts","kind":"import-statement","original":"../../core/hook"},{"path":"src/dom/render.ts","kind":"import-statement","original":"../render"}],"format":"esm"},"src/dom/components/suspenseContext.ts":{"bytes":372,"imports":[{"path":"src/core/context.ts","kind":"import-statement","original":"../../core/context"}],"format":"esm"},"src/dom/components/Suspense.tsx":{"bytes":1790,"imports":[{"path":"src/core/state.ts","kind":"import-statement","original":"../../core/state"},{"path":"src/core/hook.ts","kind":"import-statement","original":"../../core/hook"},{"path":"src/dom/components/suspenseContext.ts","kind":"import-statement","original":"./suspenseContext"}],"format":"esm"},"src/dom/components/ErrorBoundary.tsx":{"bytes":2860,"imports":[{"path":"src/core/state.ts","kind":"import-statement","original":"../../core/state"},{"path":"src/core/hook.ts","kind":"import-statement","original":"../../core/hook"}],"format":"esm"},"src/dom/components/lazy.ts":{"bytes":1767,"imports":[{"path":"src/dom/components/suspenseContext.ts","kind":"import-statement","original":"./suspenseContext"}],"format":"esm"},"src/dom/components/index.ts":{"bytes":598,"imports":[{"path":"src/dom/components/Portal.tsx","kind":"import-statement","original":"./Portal"},{"path":"src/dom/components/Suspense.tsx","kind":"import-statement","original":"./Suspense"},{"path":"src/dom/components/ErrorBoundary.tsx","kind":"import-statement","original":"./ErrorBoundary"},{"path":"src/dom/components/lazy.ts","kind":"import-statement","original":"./lazy"},{"path":"src/dom/components/suspenseContext.ts","kind":"import-statement","original":"./suspenseContext"},{"path":"src/dom/components/ErrorBoundary.tsx","kind":"import-statement","original":"./ErrorBoundary"}],"format":"esm"},"src/dom/index.ts":{"bytes":457,"imports":[{"path":"src/dom/f.ts","kind":"import-statement","original":"./f"},{"path":"src/dom/render.ts","kind":"import-statement","original":"./render"},{"path":"src/dom/hydrate.ts","kind":"import-statement","original":"./hydrate"},{"path":"src/dom/components/index.ts","kind":"import-statement","original":"./components"}],"format":"esm"},"src/server/escape.ts":{"bytes":364,"imports":[],"format":"esm"},"src/server/serverState.ts":{"bytes":896,"imports":[],"format":"esm"},"src/server/renderToString.ts":{"bytes":6572,"imports":[{"path":"src/server/escape.ts","kind":"import-statement","original":"./escape"},{"path":"src/server/serverState.ts","kind":"import-statement","original":"./serverState"},{"path":"src/core/hook.ts","kind":"import-statement","original":"../core/hook"},{"path":"src/core/context.ts","kind":"import-statement","original":"../core/context"}],"format":"esm"},"src/server/index.ts":{"bytes":243,"imports":[{"path":"src/server/renderToString.ts","kind":"import-statement","original":"./renderToString"},{"path":"src/server/serverState.ts","kind":"import-statement","original":"./serverState"}],"format":"esm"},"src/router/types.ts":{"bytes":807,"imports":[],"format":"esm"},"src/router/utils.ts":{"bytes":3745,"imports":[{"path":"./types","kind":"import-statement","external":true}],"format":"esm"},"src/router/router.ts":{"bytes":2599,"imports":[{"path":"src/core/reactive.ts","kind":"import-statement","original":"../core/reactive"},{"path":"src/core/context.ts","kind":"import-statement","original":"../core/context"},{"path":"src/router/utils.ts","kind":"import-statement","original":"./utils"}],"format":"esm"},"src/jsx-runtime.ts":{"bytes":727,"imports":[],"format":"esm"},"src/router/dom/Route.tsx":{"bytes":106,"imports":[],"format":"esm"},"src/router/dom/Routes.tsx":{"bytes":2578,"imports":[{"path":"src/jsx-runtime.ts","kind":"import-statement","original":"../../jsx-runtime"},{"path":"src/router/router.ts","kind":"import-statement","original":"../router"},{"path":"src/router/utils.ts","kind":"import-statement","original":"../utils"},{"path":"src/router/dom/Route.tsx","kind":"import-statement","original":"./Route"}],"format":"esm"},"src/router/dom/Outlet.tsx":{"bytes":769,"imports":[{"path":"src/core/state.ts","kind":"import-statement","original":"../../core/state"},{"path":"src/core/context.ts","kind":"import-statement","original":"../../core/context"},{"path":"src/jsx-runtime.ts","kind":"import-statement","original":"../../jsx-runtime"},{"path":"src/router/router.ts","kind":"import-statement","original":"../router"}],"format":"esm"},"src/router/dom/Link.tsx":{"bytes":441,"imports":[{"path":"src/jsx-runtime.ts","kind":"import-statement","original":"../../jsx-runtime"},{"path":"src/router/router.ts","kind":"import-statement","original":"../router"}],"format":"esm"},"src/router/index.ts":{"bytes":259,"imports":[{"path":"src/router/types.ts","kind":"import-statement","original":"./types"},{"path":"src/router/router.ts","kind":"import-statement","original":"./router"},{"path":"src/router/dom/Routes.tsx","kind":"import-statement","original":"./dom/Routes"},{"path":"src/router/dom/Route.tsx","kind":"import-statement","original":"./dom/Route"},{"path":"src/router/dom/Outlet.tsx","kind":"import-statement","original":"./dom/Outlet"},{"path":"src/router/dom/Link.tsx","kind":"import-statement","original":"./dom/Link"}],"format":"esm"},"src/canvas/Canvas.tsx":{"bytes":5538,"imports":[{"path":"src/core/lifecycle.ts","kind":"import-statement","original":"../core/lifecycle"},{"path":"src/core/reactive.ts","kind":"import-statement","original":"../core/reactive"},{"path":"src/jsx-runtime.ts","kind":"import-statement","original":"flexium/jsx-runtime"}],"format":"esm"},"src/canvas/dom/DrawRect.tsx":{"bytes":305,"imports":[{"path":"src/core/lifecycle.ts","kind":"import-statement","original":"../../core/lifecycle"},{"path":"src/canvas/Canvas.tsx","kind":"import-statement","original":"../Canvas"}],"format":"esm"},"src/canvas/dom/DrawCircle.tsx":{"bytes":315,"imports":[{"path":"src/core/lifecycle.ts","kind":"import-statement","original":"../../core/lifecycle"},{"path":"src/canvas/Canvas.tsx","kind":"import-statement","original":"../Canvas"}],"format":"esm"},"src/canvas/dom/DrawArc.tsx":{"bytes":300,"imports":[{"path":"src/core/lifecycle.ts","kind":"import-statement","original":"../../core/lifecycle"},{"path":"src/canvas/Canvas.tsx","kind":"import-statement","original":"../Canvas"}],"format":"esm"},"src/canvas/dom/DrawLine.tsx":{"bytes":305,"imports":[{"path":"src/core/lifecycle.ts","kind":"import-statement","original":"../../core/lifecycle"},{"path":"src/canvas/Canvas.tsx","kind":"import-statement","original":"../Canvas"}],"format":"esm"},"src/canvas/dom/DrawText.tsx":{"bytes":305,"imports":[{"path":"src/core/lifecycle.ts","kind":"import-statement","original":"../../core/lifecycle"},{"path":"src/canvas/Canvas.tsx","kind":"import-statement","original":"../Canvas"}],"format":"esm"},"src/canvas/dom/DrawPath.tsx":{"bytes":305,"imports":[{"path":"src/core/lifecycle.ts","kind":"import-statement","original":"../../core/lifecycle"},{"path":"src/canvas/Canvas.tsx","kind":"import-statement","original":"../Canvas"}],"format":"esm"},"src/canvas/index.ts":{"bytes":427,"imports":[{"path":"src/canvas/Canvas.tsx","kind":"import-statement","original":"./Canvas"},{"path":"src/canvas/dom/DrawRect.tsx","kind":"import-statement","original":"./dom/DrawRect"},{"path":"src/canvas/dom/DrawCircle.tsx","kind":"import-statement","original":"./dom/DrawCircle"},{"path":"src/canvas/dom/DrawArc.tsx","kind":"import-statement","original":"./dom/DrawArc"},{"path":"src/canvas/dom/DrawLine.tsx","kind":"import-statement","original":"./dom/DrawLine"},{"path":"src/canvas/dom/DrawText.tsx","kind":"import-statement","original":"./dom/DrawText"},{"path":"src/canvas/dom/DrawPath.tsx","kind":"import-statement","original":"./dom/DrawPath"}],"format":"esm"},"src/interactive/loop.ts":{"bytes":1684,"imports":[],"format":"esm"},"src/interactive/types.ts":{"bytes":1937,"imports":[],"format":"esm"},"src/interactive/keyboard.ts":{"bytes":2405,"imports":[{"path":"src/core/state.ts","kind":"import-statement","original":"../core/state"},{"path":"src/interactive/types.ts","kind":"import-statement","original":"./types"}],"format":"esm"},"src/interactive/mouse.ts":{"bytes":3183,"imports":[{"path":"src/core/state.ts","kind":"import-statement","original":"../core/state"},{"path":"src/interactive/types.ts","kind":"import-statement","original":"./types"}],"format":"esm"},"src/interactive/index.ts":{"bytes":206,"imports":[{"path":"src/interactive/loop.ts","kind":"import-statement","original":"./loop"},{"path":"src/interactive/keyboard.ts","kind":"import-statement","original":"./keyboard"},{"path":"src/interactive/mouse.ts","kind":"import-statement","original":"./mouse"}],"format":"esm"},"src/jsx-dev-runtime.ts":{"bytes":211,"imports":[{"path":"src/jsx-runtime.ts","kind":"import-statement","original":"./jsx-runtime"}],"format":"esm"}},"outputs":{"dist/jsx-dev-runtime.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":510},"dist/jsx-dev-runtime.mjs":{"imports":[{"path":"dist/chunk-ZCO4NIGC.mjs","kind":"import-statement"}],"exports":["Fragment","jsxDEV"],"entryPoint":"src/jsx-dev-runtime.ts","inputs":{"src/jsx-dev-runtime.ts":{"bytesInOutput":40}},"bytes":123},"dist/render-UIWHIMS2.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":93},"dist/render-UIWHIMS2.mjs":{"imports":[{"path":"dist/chunk-E75BJDOQ.mjs","kind":"import-statement"},{"path":"dist/chunk-3DKZ2J4D.mjs","kind":"import-statement"},{"path":"dist/chunk-IWFEXW4F.mjs","kind":"import-statement"},{"path":"dist/chunk-5PNH2ARD.mjs","kind":"import-statement"}],"exports":["reconcile","render"],"entryPoint":"src/dom/render.ts","inputs":{},"bytes":161},"dist/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":205},"dist/index.mjs":{"imports":[],"exports":["VERSION"],"entryPoint":"src/index.ts","inputs":{"src/index.ts":{"bytesInOutput":16}},"bytes":38},"dist/core.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":3072},"dist/core.mjs":{"imports":[{"path":"dist/chunk-3DKZ2J4D.mjs","kind":"import-statement"},{"path":"dist/chunk-WGKD63GN.mjs","kind":"import-statement"},{"path":"dist/chunk-JY6CE6RN.mjs","kind":"import-statement"},{"path":"dist/chunk-IWFEXW4F.mjs","kind":"import-statement"},{"path":"dist/chunk-5PNH2ARD.mjs","kind":"import-statement"}],"exports":["context","createContext","effect","forwardRef","ref","state","sync"],"entryPoint":"src/core/index.ts","inputs":{"src/core/index.ts":{"bytesInOutput":0},"src/ref/ref.ts":{"bytesInOutput":42},"src/ref/index.ts":{"bytesInOutput":0},"src/ref/forwardRef.ts":{"bytesInOutput":131}},"bytes":479},"dist/dom.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":27819},"dist/dom.mjs":{"imports":[{"path":"dist/chunk-E75BJDOQ.mjs","kind":"import-statement"},{"path":"dist/chunk-3DKZ2J4D.mjs","kind":"import-statement"},{"path":"dist/chunk-WGKD63GN.mjs","kind":"import-statement"},{"path":"dist/chunk-JY6CE6RN.mjs","kind":"import-statement"},{"path":"dist/chunk-IWFEXW4F.mjs","kind":"import-statement"},{"path":"dist/chunk-5PNH2ARD.mjs","kind":"import-statement"},{"path":"dist/render-UIWHIMS2.mjs","kind":"dynamic-import"}],"exports":["ErrorBoundary","Portal","Suspense","f","hydrate","lazy","reconcile","render","suspenseContext"],"entryPoint":"src/dom/index.ts","inputs":{"src/dom/f.ts":{"bytesInOutput":70},"src/dom/index.ts":{"bytesInOutput":0},"src/dom/hydrate.ts":{"bytesInOutput":2740},"src/dom/components/Portal.tsx":{"bytesInOutput":491},"src/dom/components/index.ts":{"bytesInOutput":0},"src/dom/components/suspenseContext.ts":{"bytesInOutput":71},"src/dom/components/Suspense.tsx":{"bytesInOutput":294},"src/dom/components/ErrorBoundary.tsx":{"bytesInOutput":500},"src/dom/components/lazy.ts":{"bytesInOutput":249}},"bytes":4823},"dist/chunk-E75BJDOQ.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":23945},"dist/chunk-E75BJDOQ.mjs":{"imports":[{"path":"dist/chunk-3DKZ2J4D.mjs","kind":"import-statement"},{"path":"dist/chunk-IWFEXW4F.mjs","kind":"import-statement"},{"path":"dist/chunk-5PNH2ARD.mjs","kind":"import-statement"}],"exports":["a","b"],"inputs":{"src/dom/render.ts":{"bytesInOutput":4853}},"bytes":4999},"dist/server.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":12945},"dist/server.mjs":{"imports":[{"path":"dist/chunk-3DKZ2J4D.mjs","kind":"import-statement"},{"path":"dist/chunk-5PNH2ARD.mjs","kind":"import-statement"}],"exports":["getIsServer","renderToStaticMarkup","renderToString"],"entryPoint":"src/server/index.ts","inputs":{"src/server/escape.ts":{"bytesInOutput":157},"src/server/serverState.ts":{"bytesInOutput":186},"src/server/renderToString.ts":{"bytesInOutput":2125},"src/server/index.ts":{"bytesInOutput":0}},"bytes":2629},"dist/router.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":16422},"dist/router.mjs":{"imports":[{"path":"dist/chunk-3DKZ2J4D.mjs","kind":"import-statement"},{"path":"dist/chunk-WGKD63GN.mjs","kind":"import-statement"},{"path":"dist/chunk-JY6CE6RN.mjs","kind":"import-statement"},{"path":"dist/chunk-IWFEXW4F.mjs","kind":"import-statement"},{"path":"dist/chunk-5PNH2ARD.mjs","kind":"import-statement"},{"path":"dist/chunk-ZCO4NIGC.mjs","kind":"import-statement"}],"exports":["Link","Outlet","Route","Routes","router"],"entryPoint":"src/router/index.ts","inputs":{"src/router/index.ts":{"bytesInOutput":0},"src/router/utils.ts":{"bytesInOutput":1073},"src/router/router.ts":{"bytesInOutput":743},"src/router/dom/Route.tsx":{"bytesInOutput":26},"src/router/dom/Routes.tsx":{"bytesInOutput":638},"src/router/dom/Outlet.tsx":{"bytesInOutput":238},"src/router/dom/Link.tsx":{"bytesInOutput":133}},"bytes":3141},"dist/chunk-3DKZ2J4D.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":2198},"dist/chunk-3DKZ2J4D.mjs":{"imports":[],"exports":["a","b","c","d"],"inputs":{"src/core/context.ts":{"bytesInOutput":284}},"bytes":316},"dist/canvas.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":12793},"dist/canvas.mjs":{"imports":[{"path":"dist/chunk-JY6CE6RN.mjs","kind":"import-statement"},{"path":"dist/chunk-IWFEXW4F.mjs","kind":"import-statement"},{"path":"dist/chunk-5PNH2ARD.mjs","kind":"import-statement"},{"path":"dist/chunk-ZCO4NIGC.mjs","kind":"import-statement"}],"exports":["Canvas","DrawArc","DrawCircle","DrawLine","DrawPath","DrawRect","DrawText"],"entryPoint":"src/canvas/index.ts","inputs":{"src/canvas/Canvas.tsx":{"bytesInOutput":1875},"src/canvas/index.ts":{"bytesInOutput":0},"src/canvas/dom/DrawRect.tsx":{"bytesInOutput":60},"src/canvas/dom/DrawCircle.tsx":{"bytesInOutput":62},"src/canvas/dom/DrawArc.tsx":{"bytesInOutput":59},"src/canvas/dom/DrawLine.tsx":{"bytesInOutput":60},"src/canvas/dom/DrawText.tsx":{"bytesInOutput":60},"src/canvas/dom/DrawPath.tsx":{"bytesInOutput":60}},"bytes":2494},"dist/interactive.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":15153},"dist/interactive.mjs":{"imports":[{"path":"dist/chunk-WGKD63GN.mjs","kind":"import-statement"},{"path":"dist/chunk-JY6CE6RN.mjs","kind":"import-statement"},{"path":"dist/chunk-IWFEXW4F.mjs","kind":"import-statement"},{"path":"dist/chunk-5PNH2ARD.mjs","kind":"import-statement"}],"exports":["Keys","MouseButton","keyboard","loop","mouse"],"entryPoint":"src/interactive/index.ts","inputs":{"src/interactive/loop.ts":{"bytesInOutput":459},"src/interactive/index.ts":{"bytesInOutput":0},"src/interactive/types.ts":{"bytesInOutput":701},"src/interactive/keyboard.ts":{"bytesInOutput":689},"src/interactive/mouse.ts":{"bytesInOutput":1150}},"bytes":3198},"dist/chunk-WGKD63GN.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":11319},"dist/chunk-WGKD63GN.mjs":{"imports":[{"path":"dist/chunk-JY6CE6RN.mjs","kind":"import-statement"},{"path":"dist/chunk-IWFEXW4F.mjs","kind":"import-statement"},{"path":"dist/chunk-5PNH2ARD.mjs","kind":"import-statement"}],"exports":["a"],"inputs":{"src/core/devtools.ts":{"bytesInOutput":372},"src/core/state.ts":{"bytesInOutput":1581}},"bytes":2092},"dist/chunk-JY6CE6RN.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":3715},"dist/chunk-JY6CE6RN.mjs":{"imports":[{"path":"dist/chunk-IWFEXW4F.mjs","kind":"import-statement"}],"exports":["a","b"],"inputs":{"src/core/reactive.ts":{"bytesInOutput":590}},"bytes":668},"dist/chunk-IWFEXW4F.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":5910},"dist/chunk-IWFEXW4F.mjs":{"imports":[{"path":"dist/chunk-5PNH2ARD.mjs","kind":"import-statement"}],"exports":["a","b","c","d","e","f"],"inputs":{"src/core/lifecycle.ts":{"bytesInOutput":1072}},"bytes":1164},"dist/chunk-5PNH2ARD.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":1694},"dist/chunk-5PNH2ARD.mjs":{"imports":[],"exports":["a","b"],"inputs":{"src/core/hook.ts":{"bytesInOutput":227}},"bytes":250},"dist/jsx-runtime.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":93},"dist/jsx-runtime.mjs":{"imports":[{"path":"dist/chunk-ZCO4NIGC.mjs","kind":"import-statement"}],"exports":["Fragment","jsx","jsxs"],"entryPoint":"src/jsx-runtime.ts","inputs":{},"bytes":82},"dist/chunk-ZCO4NIGC.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":1278},"dist/chunk-ZCO4NIGC.mjs":{"imports":[],"exports":["a","b","c"],"inputs":{"src/jsx-runtime.ts":{"bytesInOutput":177}},"bytes":207}}}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
'use strict';var chunk6Z33DLMI_js=require('./chunk-6Z33DLMI.js');require('./chunk-PSKDIB7J.js'),require('./chunk-YWTD32NA.js'),require('./chunk-UWFVCKRU.js');Object.defineProperty(exports,"reconcile",{enumerable:true,get:function(){return chunk6Z33DLMI_js.a}});Object.defineProperty(exports,"render",{enumerable:true,get:function(){return chunk6Z33DLMI_js.b}});//# sourceMappingURL=render-QZAFAGIM.js.map
|
|
2
|
+
//# sourceMappingURL=render-QZAFAGIM.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":"","file":"render-QZAFAGIM.js"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":"","file":"render-UIWHIMS2.mjs"}
|
package/dist/router.d.cts
CHANGED
package/dist/router.d.ts
CHANGED
package/dist/router.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
'use strict';var
|
|
1
|
+
'use strict';var chunkPSKDIB7J_js=require('./chunk-PSKDIB7J.js'),chunkLTT43APF_js=require('./chunk-LTT43APF.js'),chunk6VIRXD2Y_js=require('./chunk-6VIRXD2Y.js');require('./chunk-YWTD32NA.js'),require('./chunk-UWFVCKRU.js');var chunkEXLNKYSH_js=require('./chunk-EXLNKYSH.js');function k(t){if(!t)return {};if(typeof URLSearchParams<"u"){let e=new URLSearchParams(t),r={};return e.forEach((o,n)=>r[n]=o),r}return t.substring(1).split("&").reduce((e,r)=>{let[o,n]=r.split("=");return o&&(e[decodeURIComponent(o)]=decodeURIComponent(n||"")),e},{})}function D(t){return !!(t.length>2048||t.includes("__proto__")||t.includes("constructor")||/^\s*javascript:/i.test(t))}function y(t){let e=[];return t.forEach(r=>{if(!r)return;let{path:o,component:n,children:s,beforeEnter:f}=r.props||{},u={path:o||"/",component:n,beforeEnter:f};if(s){let c=Array.isArray(s)?s:[s];u.children=y(c);}!u.children&&r.children&&r.children.length>0&&(u.children=y(r.children)),e.push(u);}),e}function E(t,e){for(let r of t){let o=r.path,n=j(o,e);if(n)return [{route:r,params:n.params,pathname:n.path}]}return null}function j(t,e){let r=t.split("/").filter(Boolean),o=e.split("/").filter(Boolean);if(r.length!==o.length)return null;let n={};for(let s=0;s<r.length;s++){let f=r[s],u=o[s];if(f.startsWith(":")){let c=f.slice(1);n[c]=u;}else if(f!==u)return null}return {params:n,path:e}}var w=chunkPSKDIB7J_js.a(null),p=chunkPSKDIB7J_js.a(0),_=()=>({pathname:"/",search:"",hash:"",query:{}}),v=()=>typeof window>"u"?_():{pathname:window.location.pathname,search:window.location.search,hash:window.location.hash,query:k(window.location.search)},l=null,g=null,F=false;function N(){if(l&&g)return [l,g];l=chunk6VIRXD2Y_js.a(v());let t=e=>{l&&(l.pathname=e.pathname,l.search=e.search,l.hash=e.hash,l.query=e.query);};return g=e=>{if(typeof window>"u")return;if(D(e)){console.error("[Flexium Router] Blocked navigation to unsafe path:",e);return}window.history.pushState({},"",e);let r=v();t(r);},typeof window<"u"&&!F&&(window.addEventListener("popstate",()=>{t(v());}),F=true),[l,g]}function m(){let t=chunkPSKDIB7J_js.b(w);if(!t)throw new Error("router() must be called within a <Routes> component");return t}function R(t){return null}function A(t){return t&&typeof t=="object"&&("type"in t||Array.isArray(t))}function q(t){let[e,r]=N(),o=Array.isArray(t.children)?t.children:[t.children],n=o.filter(i=>A(i)&&i.type===R),s=o.filter(i=>!A(i)||i.type!==R),f=y(n),u=e.pathname,c=E(f,u)||[],S=c.length>0?c[c.length-1].params:{},U={location:e,navigate:r,matches:c,params:S},x=null;if(c.length>0){let i=c[0],L=i.route.component,h=u;i.route.beforeEnter?i.route.beforeEnter(i.params)!==false&&(x=chunkEXLNKYSH_js.a(p.Provider,{value:1,key:h,children:chunkEXLNKYSH_js.a(L,{params:i.params,key:h})})):x=chunkEXLNKYSH_js.a(p.Provider,{value:1,key:h,children:chunkEXLNKYSH_js.a(L,{params:i.params,key:h})});}return chunkEXLNKYSH_js.a(w.Provider,{value:U,children:[...s,x]})}function B(){let t=m(),e=chunkPSKDIB7J_js.b(p)||0,[r]=chunkLTT43APF_js.a(()=>t.matches);if(e>=r.length)return null;let o=r[e],n=o.route.component;return o.route.beforeEnter&&o.route.beforeEnter(o.params)===false?null:chunkEXLNKYSH_js.a(p.Provider,{value:e+1,children:chunkEXLNKYSH_js.a(n,{params:o.params})})}function M(t){let e=m();return chunkEXLNKYSH_js.a("a",{href:t.to,class:t.class,onclick:r=>{r.preventDefault(),e.navigate(t.to);},children:t.children})}exports.Link=M;exports.Outlet=B;exports.Route=R;exports.Routes=q;exports.router=m;//# sourceMappingURL=router.js.map
|
|
2
2
|
//# sourceMappingURL=router.js.map
|
package/dist/router.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/router/utils.ts","../src/router/router.ts","../src/router/dom/Route.tsx","../src/router/dom/Routes.tsx","../src/router/dom/Outlet.tsx","../src/router/dom/Link.tsx"],"names":["parseQuery","search","params","result","value","key","accumulator","part","isUnsafePath","path","createRoutesFromChildren","children","routes","child","component","subChildren","beforeEnter","route","nestedChildren","matchRoutes","locationPathname","routePath","matchResult","matchPath","locationPath","routeSegments","locationSegments","i","routeSegment","locationSegment","RouterCtx","createContext","RouteDepthCtx","getDefaultLocation","getCurrentLocation","globalLocation","globalNavigate","popstateListenerAttached","location","reactive","updateLocation","newLocation","router","routerContext","context","Route","_props","isFNode","node","Routes","props","currentLocation","navigate","childrenList","routeNodes","otherChildren","routeDefinitions","currentPath","matches","matchedContent","rootMatch","Component","routeKey","jsx","Outlet","depth","state","match","Link","event"],"mappings":"oPAGA,SAASA,CAAAA,CAAWC,EAAwC,CAC1D,GAAI,CAACA,CAAAA,CAAQ,OAAO,EAAC,CACrB,GAAI,OAAO,eAAA,CAAoB,GAAA,CAAa,CAC1C,IAAMC,CAAAA,CAAS,IAAI,eAAA,CAAgBD,CAAM,EACnCE,CAAAA,CAAiC,GACvC,OAAAD,CAAAA,CAAO,QAAQ,CAACE,CAAAA,CAAOC,IAAQF,CAAAA,CAAOE,CAAG,EAAID,CAAK,CAAA,CAC3CD,CACT,CACA,OAAOF,EACJ,SAAA,CAAU,CAAC,EACX,KAAA,CAAM,GAAG,EACT,MAAA,CAAO,CAACK,EAAaC,CAAAA,GAAS,CAC7B,GAAM,CAACF,CAAAA,CAAKD,CAAK,CAAA,CAAIG,CAAAA,CAAK,MAAM,GAAG,CAAA,CACnC,OAAIF,CAAAA,GAAKC,CAAAA,CAAY,mBAAmBD,CAAG,CAAC,EAAI,kBAAA,CAAmBD,CAAAA,EAAS,EAAE,CAAA,CAAA,CACvEE,CACT,EAAG,EAA4B,CACnC,CAEA,SAASE,EAAaC,CAAAA,CAAuB,CAK3C,OAHI,CAAA,EAAAA,CAAAA,CAAK,OAAS,IAAA,EACdA,CAAAA,CAAK,SAAS,WAAW,CAAA,EAAKA,EAAK,QAAA,CAAS,aAAa,GAEzD,kBAAA,CAAmB,IAAA,CAAKA,CAAI,CAAA,CAElC,CAGA,SAASC,CAAAA,CAAyBC,CAAAA,CAAoC,CACpE,IAAMC,CAAAA,CAA4B,EAAC,CAEnC,OAAAD,EAAS,OAAA,CAAQE,CAAAA,EAAS,CACxB,GAAI,CAACA,EAAO,OAMZ,GAAM,CAAE,IAAA,CAAAJ,CAAAA,CAAM,UAAAK,CAAAA,CAAW,QAAA,CAAUC,EAAa,WAAA,CAAAC,CAAY,EAAIH,CAAAA,CAAM,KAAA,EAAS,EAAC,CAE1EI,CAAAA,CAAyB,CAC7B,IAAA,CAAMR,CAAAA,EAAQ,IACd,SAAA,CAAWK,CAAAA,CACX,YAAAE,CACF,CAAA,CAEA,GAAID,CAAAA,CAAa,CAEf,IAAMG,CAAAA,CAAiB,KAAA,CAAM,QAAQH,CAAW,CAAA,CAAIA,EAAc,CAACA,CAAW,EAG9EE,CAAAA,CAAM,QAAA,CAAWP,EAAyBQ,CAAc,EAC1D,CAGI,CAACD,CAAAA,CAAM,UAAYJ,CAAAA,CAAM,QAAA,EAAYA,EAAM,QAAA,CAAS,MAAA,CAAS,IAC/DI,CAAAA,CAAM,QAAA,CAAWP,EAAyBG,CAAAA,CAAM,QAAQ,GAG1DD,CAAAA,CAAO,IAAA,CAAKK,CAAK,EACnB,CAAC,EACML,CACT,CAGA,SAASO,CAAAA,CAAYP,CAAAA,CAA2BQ,EAA+C,CAG7F,IAAA,IAAWH,KAASL,CAAAA,CAAQ,CAK1B,IAAMS,CAAAA,CAAYJ,CAAAA,CAAM,KAElBK,CAAAA,CAAcC,CAAAA,CAAUF,EAAWD,CAAgB,CAAA,CACzD,GAAIE,CAAAA,CACF,OAAO,CAAC,CAAE,KAAA,CAAAL,EAAO,MAAA,CAAQK,CAAAA,CAAY,OAAQ,QAAA,CAAUA,CAAAA,CAAY,IAAK,CAAC,CAE7E,CACA,OAAO,IACT,CAEA,SAASC,CAAAA,CAAUF,EAAmBG,CAAAA,CAAsB,CAE1D,IAAMC,CAAAA,CAAgBJ,CAAAA,CAAU,MAAM,GAAG,CAAA,CAAE,OAAO,OAAO,CAAA,CACnDK,EAAmBF,CAAAA,CAAa,KAAA,CAAM,GAAG,CAAA,CAAE,MAAA,CAAO,OAAO,CAAA,CAE/D,GAAIC,EAAc,MAAA,GAAWC,CAAAA,CAAiB,OAAQ,OAAO,IAAA,CAE7D,IAAMxB,CAAAA,CAAiC,GAEvC,IAAA,IAASyB,CAAAA,CAAI,EAAGA,CAAAA,CAAIF,CAAAA,CAAc,OAAQE,CAAAA,EAAAA,CAAK,CAC7C,IAAMC,CAAAA,CAAeH,CAAAA,CAAcE,CAAC,CAAA,CAC9BE,CAAAA,CAAkBH,EAAiBC,CAAC,CAAA,CAE1C,GAAIC,CAAAA,CAAa,UAAA,CAAW,GAAG,CAAA,CAAG,CAChC,IAAMvB,CAAAA,CAAMuB,CAAAA,CAAa,MAAM,CAAC,CAAA,CAChC1B,EAAOG,CAAG,CAAA,CAAIwB,EAChB,CAAA,KAAA,GAAWD,CAAAA,GAAiBC,EAC1B,OAAO,IAEX,CAEA,OAAO,CAAE,OAAA3B,CAAAA,CAAQ,IAAA,CAAMsB,CAAa,CACtC,CCtGO,IAAMM,CAAAA,CAAYC,kBAAAA,CAA6B,IAAW,CAAA,CACpDC,CAAAA,CAAgBD,mBAAsB,CAAC,CAAA,CAG9CE,EAAqB,KAAiB,CACxC,SAAU,GAAA,CACV,MAAA,CAAQ,GACR,IAAA,CAAM,EAAA,CACN,MAAO,EACX,GAEMC,CAAAA,CAAqB,IACnB,OAAO,MAAA,CAAW,GAAA,CACXD,GAAmB,CAEvB,CACH,SAAU,MAAA,CAAO,QAAA,CAAS,SAC1B,MAAA,CAAQ,MAAA,CAAO,SAAS,MAAA,CACxB,IAAA,CAAM,OAAO,QAAA,CAAS,IAAA,CACtB,MAAOjC,CAAAA,CAAW,MAAA,CAAO,SAAS,MAAM,CAC5C,EAIAmC,CAAAA,CAAkC,IAAA,CAClCC,EAAkD,IAAA,CAClDC,CAAAA,CAA2B,MAGxB,SAASC,CAAAA,EAA+C,CAE3D,GAAIH,CAAAA,EAAkBC,EAClB,OAAO,CAACD,EAAgBC,CAAc,CAAA,CAI1CD,EAAiBI,kBAAAA,CAAmBL,CAAAA,EAAoB,CAAA,CAExD,IAAMM,EAAkBC,CAAAA,EAA0B,CACzCN,IACLA,CAAAA,CAAe,QAAA,CAAWM,EAAY,QAAA,CACtCN,CAAAA,CAAe,OAASM,CAAAA,CAAY,MAAA,CACpCN,EAAe,IAAA,CAAOM,CAAAA,CAAY,KAClCN,CAAAA,CAAe,KAAA,CAAQM,EAAY,KAAA,EACvC,CAAA,CAEA,OAAAL,CAAAA,CAAkB3B,CAAAA,EAAiB,CAC/B,GAAI,OAAO,OAAW,GAAA,CAAa,OACnC,GAAID,CAAAA,CAAaC,CAAI,EAAG,CACpB,OAAA,CAAQ,MAAM,qDAAA,CAAuDA,CAAI,EACzE,MACJ,CACA,OAAO,OAAA,CAAQ,SAAA,CAAU,EAAC,CAAG,EAAA,CAAIA,CAAI,CAAA,CACrC,IAAMgC,EAAcP,CAAAA,EAAmB,CACvCM,EAAeC,CAAW,EAC9B,EAGI,OAAO,MAAA,CAAW,KAAe,CAACJ,CAAAA,GAClC,OAAO,gBAAA,CAAiB,UAAA,CAAY,IAAM,CACtCG,CAAAA,CAAeN,GAAoB,EACvC,CAAC,CAAA,CACDG,CAAAA,CAA2B,MAGxB,CAACF,CAAAA,CAAgBC,CAAc,CAC1C,CAGO,SAASM,CAAAA,EAAwB,CACpC,IAAMC,CAAAA,CAAgBC,kBAAAA,CAAQd,CAAS,CAAA,CACvC,GAAI,CAACa,CAAAA,CACD,MAAM,IAAI,KAAA,CAAM,qDAAqD,EAEzE,OAAOA,CACX,CC/EO,SAASE,CAAAA,CAAMC,EAAoB,CACtC,OAAO,IACX,CCEA,SAASC,EAAQC,CAAAA,CAA0B,CACvC,OAAOA,CAAAA,EAAQ,OAAOA,GAAS,QAAA,GAAa,MAAA,GAAUA,GAAQ,KAAA,CAAM,OAAA,CAAQA,CAAI,CAAA,CACpF,CAEO,SAASC,CAAAA,CAAOC,CAAAA,CAAiC,CACpD,GAAM,CAACC,EAAiBC,CAAQ,CAAA,CAAId,GAAS,CAGzCe,CAAAA,CAAsB,MAAM,OAAA,CAAQH,CAAAA,CAAM,QAAQ,CAAA,CAAIA,CAAAA,CAAM,SAAW,CAACA,CAAAA,CAAM,QAAQ,CAAA,CAGpFI,CAAAA,CAAaD,EAAa,MAAA,CAAOxC,CAAAA,EAASkC,EAAQlC,CAAK,CAAA,EAAKA,EAAM,IAAA,GAASgC,CAAK,EAChFU,CAAAA,CAAgBF,CAAAA,CAAa,OAAOxC,CAAAA,EAAS,CAACkC,EAAQlC,CAAK,CAAA,EAAKA,EAAM,IAAA,GAASgC,CAAK,EAGpFW,CAAAA,CAAmB9C,CAAAA,CAAyB4C,CAAU,CAAA,CAItDG,CAAAA,CAAcN,EAAgB,QAAA,CAC9BO,CAAAA,CAAUvC,EAAYqC,CAAAA,CAAkBC,CAAW,GAAK,EAAC,CACzDvD,EAASwD,CAAAA,CAAQ,MAAA,CAAS,EAAIA,CAAAA,CAAQA,CAAAA,CAAQ,OAAS,CAAC,CAAA,CAAE,OAAS,EAAC,CAEpEf,EAAgB,CAClB,QAAA,CAAUQ,EACV,QAAA,CAAAC,CAAAA,CACA,QAASM,CAAAA,CACT,MAAA,CAAQxD,CACZ,CAAA,CAGIyD,CAAAA,CAA6B,KAEjC,GAAID,CAAAA,CAAQ,OAAS,CAAA,CAAG,CACpB,IAAME,CAAAA,CAAYF,CAAAA,CAAQ,CAAC,CAAA,CACrBG,CAAAA,CAAYD,EAAU,KAAA,CAAM,SAAA,CAG5BE,EAAWL,CAAAA,CAGbG,CAAAA,CAAU,MAAM,WAAA,CACDA,CAAAA,CAAU,MAAM,WAAA,CAAYA,CAAAA,CAAU,MAAM,CAAA,GAC5C,KAAA,GACXD,EAAiBI,kBAAAA,CAAE/B,CAAAA,CAAc,SAAU,CACvC,KAAA,CAAO,EACP,GAAA,CAAK8B,CAAAA,CACL,SAAUC,kBAAAA,CAAEF,CAAAA,CAAW,CAAE,MAAA,CAAQD,CAAAA,CAAU,OAAQ,GAAA,CAAKE,CAAS,CAAC,CACtE,CAAC,GAGLH,CAAAA,CAAiBI,kBAAAA,CAAE/B,EAAc,QAAA,CAAU,CACvC,MAAO,CAAA,CACP,GAAA,CAAK8B,EACL,QAAA,CAAUC,kBAAAA,CAAEF,EAAW,CAAE,MAAA,CAAQD,EAAU,MAAA,CAAQ,GAAA,CAAKE,CAAS,CAAC,CACtE,CAAC,EAET,CAEA,OAAOC,kBAAAA,CAAEjC,CAAAA,CAAU,SAAU,CACzB,KAAA,CAAOa,EACP,QAAA,CAAU,CAAC,GAAGY,CAAAA,CAAeI,CAAc,CAC/C,CAAC,CACL,CChEO,SAASK,CAAAA,EAAS,CACrB,IAAMrB,CAAAA,CAAgBD,GAAO,CACvBuB,CAAAA,CAASrB,mBAAQZ,CAAa,CAAA,EAAgB,EAE9C,CAAC0B,CAAO,EAAIQ,kBAAAA,CAAM,IAAMvB,EAAc,OAAO,CAAA,CAEnD,GAAIsB,CAAAA,EAASP,CAAAA,CAAQ,OAAQ,OAAO,IAAA,CAEpC,IAAMS,CAAAA,CAAQT,CAAAA,CAAQO,CAAK,CAAA,CACrBJ,CAAAA,CAAYM,EAAM,KAAA,CAAM,SAAA,CAG9B,OAAIA,CAAAA,CAAM,KAAA,CAAM,aACRA,CAAAA,CAAM,KAAA,CAAM,YAAYA,CAAAA,CAAM,MAAM,IAAM,KAAA,CAAc,IAAA,CAIzDJ,mBAAE/B,CAAAA,CAAc,QAAA,CAAU,CAC7B,KAAA,CAAOiC,CAAAA,CAAQ,EACf,QAAA,CAAUF,kBAAAA,CAAEF,EAAW,CAAE,MAAA,CAAQM,EAAM,MAAO,CAAC,CACnD,CAAC,CACL,CCtBO,SAASC,CAAAA,CAAKlB,EAAkB,CACnC,IAAMP,EAAgBD,CAAAA,EAAO,CAC7B,OAAOqB,kBAAAA,CAAE,GAAA,CAAK,CACV,IAAA,CAAMb,CAAAA,CAAM,GACZ,KAAA,CAAOA,CAAAA,CAAM,MACb,OAAA,CAAUmB,CAAAA,EAAiB,CACvBA,CAAAA,CAAM,cAAA,GACN1B,CAAAA,CAAc,QAAA,CAASO,EAAM,EAAE,EACnC,EACA,QAAA,CAAUA,CAAAA,CAAM,QACpB,CAAC,CACL","file":"router.js","sourcesContent":["import { RouteDefinition, RouteMatch } from './types'\n\n// Simple query parser (native URLSearchParams fallback) - internal use only\nfunction parseQuery(search: string): Record<string, string> {\n if (!search) return {}\n if (typeof URLSearchParams !== 'undefined') {\n const params = new URLSearchParams(search)\n const result: Record<string, string> = {}\n params.forEach((value, key) => result[key] = value)\n return result\n }\n return search\n .substring(1)\n .split('&')\n .reduce((accumulator, part) => {\n const [key, value] = part.split('=')\n if (key) accumulator[decodeURIComponent(key)] = decodeURIComponent(value || '')\n return accumulator\n }, {} as Record<string, string>)\n}\n\nfunction isUnsafePath(path: string): boolean {\n // Prevent prototype pollution or massive strings\n if (path.length > 2048) return true\n if (path.includes('__proto__') || path.includes('constructor')) return true\n // Basic XSS check for javascript: protocol\n if (/^\\s*javascript:/i.test(path)) return true\n return false\n}\n\n// Convert children FNodes to RouteDefinitions - internal use only\nfunction createRoutesFromChildren(children: any[]): RouteDefinition[] {\n const routes: RouteDefinition[] = []\n\n children.forEach(child => {\n if (!child) return\n\n // Assuming child is an FNode-like object (config)\n // In Flexium, Route component returns null, but 'createNode' isn't called here.\n // We are traversing the props passed to Router.\n\n const { path, component, children: subChildren, beforeEnter } = child.props || {}\n\n const route: RouteDefinition = {\n path: path || '/',\n component: component,\n beforeEnter\n }\n\n if (subChildren) {\n // If subChildren is array\n const nestedChildren = Array.isArray(subChildren) ? subChildren : [subChildren]\n // We expect the children of a Route to be other Routes\n // However, the 'children' prop in JSX might be the Route components themselves.\n route.children = createRoutesFromChildren(nestedChildren)\n }\n\n // Also check child.children if props.children is empty (direct FNode structure)\n if (!route.children && child.children && child.children.length > 0) {\n route.children = createRoutesFromChildren(child.children)\n }\n\n routes.push(route)\n })\n return routes\n}\n\n// Simple Matcher - internal use only\nfunction matchRoutes(routes: RouteDefinition[], locationPathname: string): RouteMatch[] | null {\n // We want to find the best matching branch\n\n for (const route of routes) {\n // 1. Match current segment\n // Simple exact match or parameter match logic needed?\n // Let's implement simple param matching: /user/:id\n\n const routePath = route.path\n\n const matchResult = matchPath(routePath, locationPathname)\n if (matchResult) {\n return [{ route, params: matchResult.params, pathname: matchResult.path }]\n }\n }\n return null\n}\n\nfunction matchPath(routePath: string, locationPath: string) {\n // 1. Split into segments\n const routeSegments = routePath.split('/').filter(Boolean)\n const locationSegments = locationPath.split('/').filter(Boolean)\n\n if (routeSegments.length !== locationSegments.length) return null\n\n const params: Record<string, string> = {}\n\n for (let i = 0; i < routeSegments.length; i++) {\n const routeSegment = routeSegments[i]\n const locationSegment = locationSegments[i]\n\n if (routeSegment.startsWith(':')) {\n const key = routeSegment.slice(1)\n params[key] = locationSegment\n } else if (routeSegment !== locationSegment) {\n return null\n }\n }\n\n return { params, path: locationPath }\n}\n\n// Export only what's needed by other router files\nexport { parseQuery, isUnsafePath, createRoutesFromChildren, matchRoutes }\n","import { reactive } from '../core/reactive'\nimport { createContext, context } from '../core/context'\nimport type { Location, RouterContext } from './types'\nimport { parseQuery, isUnsafePath } from './utils'\n\n// Contexts\nexport const RouterCtx = createContext<RouterContext>(null as any)\nexport const RouteDepthCtx = createContext<number>(0)\n\n// Helper functions\nconst getDefaultLocation = (): Location => ({\n pathname: '/',\n search: '',\n hash: '',\n query: {},\n})\n\nconst getCurrentLocation = (): Location => {\n if (typeof window === 'undefined') {\n return getDefaultLocation()\n }\n return {\n pathname: window.location.pathname,\n search: window.location.search,\n hash: window.location.hash,\n query: parseQuery(window.location.search),\n }\n}\n\n// Global singleton location state\nlet globalLocation: Location | null = null\nlet globalNavigate: ((path: string) => void) | null = null\nlet popstateListenerAttached = false\n\n// Create location state and navigation (singleton pattern)\nexport function location(): [Location, (path: string) => void] {\n // Return existing singleton if already created\n if (globalLocation && globalNavigate) {\n return [globalLocation, globalNavigate]\n }\n\n // Create a reactive location object (only once)\n globalLocation = reactive<Location>(getCurrentLocation())\n\n const updateLocation = (newLocation: Location) => {\n if (!globalLocation) return\n globalLocation.pathname = newLocation.pathname\n globalLocation.search = newLocation.search\n globalLocation.hash = newLocation.hash\n globalLocation.query = newLocation.query\n }\n\n globalNavigate = (path: string) => {\n if (typeof window === 'undefined') return\n if (isUnsafePath(path)) {\n console.error('[Flexium Router] Blocked navigation to unsafe path:', path)\n return\n }\n window.history.pushState({}, '', path)\n const newLocation = getCurrentLocation()\n updateLocation(newLocation)\n }\n\n // Listen to popstate (only once)\n if (typeof window !== 'undefined' && !popstateListenerAttached) {\n window.addEventListener('popstate', () => {\n updateLocation(getCurrentLocation())\n })\n popstateListenerAttached = true\n }\n\n return [globalLocation, globalNavigate]\n}\n\n// Router hook\nexport function router(): RouterContext {\n const routerContext = context(RouterCtx)\n if (!routerContext) {\n throw new Error('router() must be called within a <Routes> component')\n }\n return routerContext\n}\n","import type { RouteProps } from '../types'\n\nexport function Route(_props: RouteProps) {\n return null\n}\n","import { jsx as f } from '../../jsx-runtime'\nimport type { FNode, FNodeChild } from '../../dom'\nimport { RouterCtx, RouteDepthCtx, location } from '../router'\nimport { createRoutesFromChildren, matchRoutes } from '../utils'\nimport { Route } from './Route'\n\nfunction isFNode(node: any): node is FNode {\n return node && typeof node === 'object' && ('type' in node || Array.isArray(node))\n}\n\nexport function Routes(props: { children: FNodeChild }) {\n const [currentLocation, navigate] = location()\n\n // Parse children to find <Route> definitions and other content\n let childrenList: any[] = Array.isArray(props.children) ? props.children : [props.children]\n\n // Separate routes from other children (like Nav components)\n const routeNodes = childrenList.filter(child => isFNode(child) && child.type === Route)\n const otherChildren = childrenList.filter(child => !isFNode(child) || child.type !== Route)\n\n // Create route definitions\n const routeDefinitions = createRoutesFromChildren(routeNodes)\n\n // DIRECT access to currentLocation.pathname\n // This should trigger reactive tracking in the component's effect context\n const currentPath = currentLocation.pathname\n const matches = matchRoutes(routeDefinitions, currentPath) || []\n const params = matches.length > 0 ? matches[matches.length - 1].params : {}\n\n const routerContext = {\n location: currentLocation,\n navigate,\n matches: matches,\n params: params\n }\n\n // Render matched component\n let matchedContent: FNodeChild = null\n\n if (matches.length > 0) {\n const rootMatch = matches[0]\n const Component = rootMatch.route.component\n\n // Use pathname as key to force re-mount on route change\n const routeKey = currentPath\n\n // Guard Check\n if (rootMatch.route.beforeEnter) {\n const result = rootMatch.route.beforeEnter(rootMatch.params)\n if (result !== false) {\n matchedContent = f(RouteDepthCtx.Provider, {\n value: 1,\n key: routeKey,\n children: f(Component, { params: rootMatch.params, key: routeKey })\n })\n }\n } else {\n matchedContent = f(RouteDepthCtx.Provider, {\n value: 1,\n key: routeKey,\n children: f(Component, { params: rootMatch.params, key: routeKey })\n })\n }\n }\n\n return f(RouterCtx.Provider, {\n value: routerContext,\n children: [...otherChildren, matchedContent]\n })\n}\n","import { state } from '../../core/state'\nimport { context } from '../../core/context'\nimport { jsx as f } from '../../jsx-runtime'\nimport { RouteDepthCtx, router } from '../router'\n\nexport function Outlet() {\n const routerContext = router()\n const depth = (context(RouteDepthCtx) as number) || 0\n\n const [matches] = state(() => routerContext.matches)\n\n if (depth >= matches.length) return null\n\n const match = matches[depth]\n const Component = match.route.component\n\n // Guard\n if (match.route.beforeEnter) {\n if (match.route.beforeEnter(match.params) === false) return null\n }\n\n // Render next level\n return f(RouteDepthCtx.Provider, {\n value: depth + 1,\n children: f(Component, { params: match.params })\n })\n}\n","import { jsx as f } from '../../jsx-runtime'\nimport type { LinkProps } from '../types'\nimport { router } from '../router'\n\nexport function Link(props: LinkProps) {\n const routerContext = router()\n return f('a', {\n href: props.to,\n class: props.class,\n onclick: (event: Event) => {\n event.preventDefault()\n routerContext.navigate(props.to)\n },\n children: props.children\n })\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/router/utils.ts","../src/router/router.ts","../src/router/dom/Route.tsx","../src/router/dom/Routes.tsx","../src/router/dom/Outlet.tsx","../src/router/dom/Link.tsx"],"names":["parseQuery","search","params","result","value","key","accumulator","part","isUnsafePath","path","createRoutesFromChildren","children","routes","child","component","subChildren","beforeEnter","route","nestedChildren","matchRoutes","locationPathname","routePath","matchResult","matchPath","locationPath","routeSegments","locationSegments","i","routeSegment","locationSegment","RouterCtx","createContext","RouteDepthCtx","getDefaultLocation","getCurrentLocation","globalLocation","globalNavigate","popstateListenerAttached","location","reactive","updateLocation","newLocation","router","routerContext","context","Route","_props","isFNode","node","Routes","props","currentLocation","navigate","childrenList","routeNodes","otherChildren","routeDefinitions","currentPath","matches","matchedContent","rootMatch","Component","routeKey","jsx","Outlet","depth","state","match","Link","event"],"mappings":"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","file":"router.js","sourcesContent":["import { RouteDefinition, RouteMatch } from './types'\n\n// Simple query parser (native URLSearchParams fallback) - internal use only\nfunction parseQuery(search: string): Record<string, string> {\n if (!search) return {}\n if (typeof URLSearchParams !== 'undefined') {\n const params = new URLSearchParams(search)\n const result: Record<string, string> = {}\n params.forEach((value, key) => result[key] = value)\n return result\n }\n return search\n .substring(1)\n .split('&')\n .reduce((accumulator, part) => {\n const [key, value] = part.split('=')\n if (key) accumulator[decodeURIComponent(key)] = decodeURIComponent(value || '')\n return accumulator\n }, {} as Record<string, string>)\n}\n\nfunction isUnsafePath(path: string): boolean {\n // Prevent prototype pollution or massive strings\n if (path.length > 2048) return true\n if (path.includes('__proto__') || path.includes('constructor')) return true\n // Basic XSS check for javascript: protocol\n if (/^\\s*javascript:/i.test(path)) return true\n return false\n}\n\n// Convert children FNodes to RouteDefinitions - internal use only\nfunction createRoutesFromChildren(children: any[]): RouteDefinition[] {\n const routes: RouteDefinition[] = []\n\n children.forEach(child => {\n if (!child) return\n\n // Assuming child is an FNode-like object (config)\n // In Flexium, Route component returns null, but 'createNode' isn't called here.\n // We are traversing the props passed to Router.\n\n const { path, component, children: subChildren, beforeEnter } = child.props || {}\n\n const route: RouteDefinition = {\n path: path || '/',\n component: component,\n beforeEnter\n }\n\n if (subChildren) {\n // If subChildren is array\n const nestedChildren = Array.isArray(subChildren) ? subChildren : [subChildren]\n // We expect the children of a Route to be other Routes\n // However, the 'children' prop in JSX might be the Route components themselves.\n route.children = createRoutesFromChildren(nestedChildren)\n }\n\n // Also check child.children if props.children is empty (direct FNode structure)\n if (!route.children && child.children && child.children.length > 0) {\n route.children = createRoutesFromChildren(child.children)\n }\n\n routes.push(route)\n })\n return routes\n}\n\n// Simple Matcher - internal use only\nfunction matchRoutes(routes: RouteDefinition[], locationPathname: string): RouteMatch[] | null {\n // We want to find the best matching branch\n\n for (const route of routes) {\n // 1. Match current segment\n // Simple exact match or parameter match logic needed?\n // Let's implement simple param matching: /user/:id\n\n const routePath = route.path\n\n const matchResult = matchPath(routePath, locationPathname)\n if (matchResult) {\n return [{ route, params: matchResult.params, pathname: matchResult.path }]\n }\n }\n return null\n}\n\nfunction matchPath(routePath: string, locationPath: string) {\n // 1. Split into segments\n const routeSegments = routePath.split('/').filter(Boolean)\n const locationSegments = locationPath.split('/').filter(Boolean)\n\n if (routeSegments.length !== locationSegments.length) return null\n\n const params: Record<string, string> = {}\n\n for (let i = 0; i < routeSegments.length; i++) {\n const routeSegment = routeSegments[i]\n const locationSegment = locationSegments[i]\n\n if (routeSegment.startsWith(':')) {\n const key = routeSegment.slice(1)\n params[key] = locationSegment\n } else if (routeSegment !== locationSegment) {\n return null\n }\n }\n\n return { params, path: locationPath }\n}\n\n// Export only what's needed by other router files\nexport { parseQuery, isUnsafePath, createRoutesFromChildren, matchRoutes }\n","import { reactive } from '../core/reactive'\nimport { createContext, context } from '../core/context'\nimport type { Location, RouterContext } from './types'\nimport { parseQuery, isUnsafePath } from './utils'\n\n// Contexts\nexport const RouterCtx = createContext<RouterContext>(null as any)\nexport const RouteDepthCtx = createContext<number>(0)\n\n// Helper functions\nconst getDefaultLocation = (): Location => ({\n pathname: '/',\n search: '',\n hash: '',\n query: {},\n})\n\nconst getCurrentLocation = (): Location => {\n if (typeof window === 'undefined') {\n return getDefaultLocation()\n }\n return {\n pathname: window.location.pathname,\n search: window.location.search,\n hash: window.location.hash,\n query: parseQuery(window.location.search),\n }\n}\n\n// Global singleton location state\nlet globalLocation: Location | null = null\nlet globalNavigate: ((path: string) => void) | null = null\nlet popstateListenerAttached = false\n\n// Create location state and navigation (singleton pattern)\nexport function location(): [Location, (path: string) => void] {\n // Return existing singleton if already created\n if (globalLocation && globalNavigate) {\n return [globalLocation, globalNavigate]\n }\n\n // Create a reactive location object (only once)\n globalLocation = reactive<Location>(getCurrentLocation())\n\n const updateLocation = (newLocation: Location) => {\n if (!globalLocation) return\n globalLocation.pathname = newLocation.pathname\n globalLocation.search = newLocation.search\n globalLocation.hash = newLocation.hash\n globalLocation.query = newLocation.query\n }\n\n globalNavigate = (path: string) => {\n if (typeof window === 'undefined') return\n if (isUnsafePath(path)) {\n console.error('[Flexium Router] Blocked navigation to unsafe path:', path)\n return\n }\n window.history.pushState({}, '', path)\n const newLocation = getCurrentLocation()\n updateLocation(newLocation)\n }\n\n // Listen to popstate (only once)\n if (typeof window !== 'undefined' && !popstateListenerAttached) {\n window.addEventListener('popstate', () => {\n updateLocation(getCurrentLocation())\n })\n popstateListenerAttached = true\n }\n\n return [globalLocation, globalNavigate]\n}\n\n// Router hook\nexport function router(): RouterContext {\n const routerContext = context(RouterCtx)\n if (!routerContext) {\n throw new Error('router() must be called within a <Routes> component')\n }\n return routerContext\n}\n","import type { RouteProps } from '../types'\n\nexport function Route(_props: RouteProps) {\n return null\n}\n","import { jsx as f } from '../../jsx-runtime'\nimport type { FNode, FNodeChild } from '../../dom'\nimport { RouterCtx, RouteDepthCtx, location } from '../router'\nimport { createRoutesFromChildren, matchRoutes } from '../utils'\nimport { Route } from './Route'\n\nfunction isFNode(node: any): node is FNode {\n return node && typeof node === 'object' && ('type' in node || Array.isArray(node))\n}\n\nexport function Routes(props: { children: FNodeChild }) {\n const [currentLocation, navigate] = location()\n\n // Parse children to find <Route> definitions and other content\n let childrenList: any[] = Array.isArray(props.children) ? props.children : [props.children]\n\n // Separate routes from other children (like Nav components)\n const routeNodes = childrenList.filter(child => isFNode(child) && child.type === Route)\n const otherChildren = childrenList.filter(child => !isFNode(child) || child.type !== Route)\n\n // Create route definitions\n const routeDefinitions = createRoutesFromChildren(routeNodes)\n\n // DIRECT access to currentLocation.pathname\n // This should trigger reactive tracking in the component's effect context\n const currentPath = currentLocation.pathname\n const matches = matchRoutes(routeDefinitions, currentPath) || []\n const params = matches.length > 0 ? matches[matches.length - 1].params : {}\n\n const routerContext = {\n location: currentLocation,\n navigate,\n matches: matches,\n params: params\n }\n\n // Render matched component\n let matchedContent: FNodeChild = null\n\n if (matches.length > 0) {\n const rootMatch = matches[0]\n const Component = rootMatch.route.component\n\n // Use pathname as key to force re-mount on route change\n const routeKey = currentPath\n\n // Guard Check\n if (rootMatch.route.beforeEnter) {\n const result = rootMatch.route.beforeEnter(rootMatch.params)\n if (result !== false) {\n matchedContent = f(RouteDepthCtx.Provider, {\n value: 1,\n key: routeKey,\n children: f(Component, { params: rootMatch.params, key: routeKey })\n })\n }\n } else {\n matchedContent = f(RouteDepthCtx.Provider, {\n value: 1,\n key: routeKey,\n children: f(Component, { params: rootMatch.params, key: routeKey })\n })\n }\n }\n\n return f(RouterCtx.Provider, {\n value: routerContext,\n children: [...otherChildren, matchedContent]\n })\n}\n","import { state } from '../../core/state'\nimport { context } from '../../core/context'\nimport { jsx as f } from '../../jsx-runtime'\nimport { RouteDepthCtx, router } from '../router'\n\nexport function Outlet() {\n const routerContext = router()\n const depth = (context(RouteDepthCtx) as number) || 0\n\n const [matches] = state(() => routerContext.matches)\n\n if (depth >= matches.length) return null\n\n const match = matches[depth]\n const Component = match.route.component\n\n // Guard\n if (match.route.beforeEnter) {\n if (match.route.beforeEnter(match.params) === false) return null\n }\n\n // Render next level\n return f(RouteDepthCtx.Provider, {\n value: depth + 1,\n children: f(Component, { params: match.params })\n })\n}\n","import { jsx as f } from '../../jsx-runtime'\nimport type { LinkProps } from '../types'\nimport { router } from '../router'\n\nexport function Link(props: LinkProps) {\n const routerContext = router()\n return f('a', {\n href: props.to,\n class: props.class,\n onclick: (event: Event) => {\n event.preventDefault()\n routerContext.navigate(props.to)\n },\n children: props.children\n })\n}\n"]}
|
package/dist/router.mjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import {a,b}from'./chunk-
|
|
1
|
+
import {a,b}from'./chunk-3DKZ2J4D.mjs';import {a as a$2}from'./chunk-WGKD63GN.mjs';import {a as a$3}from'./chunk-JY6CE6RN.mjs';import'./chunk-IWFEXW4F.mjs';import'./chunk-5PNH2ARD.mjs';import {a as a$1}from'./chunk-ZCO4NIGC.mjs';function k(t){if(!t)return {};if(typeof URLSearchParams<"u"){let e=new URLSearchParams(t),r={};return e.forEach((o,n)=>r[n]=o),r}return t.substring(1).split("&").reduce((e,r)=>{let[o,n]=r.split("=");return o&&(e[decodeURIComponent(o)]=decodeURIComponent(n||"")),e},{})}function D(t){return !!(t.length>2048||t.includes("__proto__")||t.includes("constructor")||/^\s*javascript:/i.test(t))}function y(t){let e=[];return t.forEach(r=>{if(!r)return;let{path:o,component:n,children:s,beforeEnter:f}=r.props||{},u={path:o||"/",component:n,beforeEnter:f};if(s){let c=Array.isArray(s)?s:[s];u.children=y(c);}!u.children&&r.children&&r.children.length>0&&(u.children=y(r.children)),e.push(u);}),e}function E(t,e){for(let r of t){let o=r.path,n=j(o,e);if(n)return [{route:r,params:n.params,pathname:n.path}]}return null}function j(t,e){let r=t.split("/").filter(Boolean),o=e.split("/").filter(Boolean);if(r.length!==o.length)return null;let n={};for(let s=0;s<r.length;s++){let f=r[s],u=o[s];if(f.startsWith(":")){let c=f.slice(1);n[c]=u;}else if(f!==u)return null}return {params:n,path:e}}var w=a(null),p=a(0),_=()=>({pathname:"/",search:"",hash:"",query:{}}),v=()=>typeof window>"u"?_():{pathname:window.location.pathname,search:window.location.search,hash:window.location.hash,query:k(window.location.search)},l=null,g=null,F=false;function N(){if(l&&g)return [l,g];l=a$3(v());let t=e=>{l&&(l.pathname=e.pathname,l.search=e.search,l.hash=e.hash,l.query=e.query);};return g=e=>{if(typeof window>"u")return;if(D(e)){console.error("[Flexium Router] Blocked navigation to unsafe path:",e);return}window.history.pushState({},"",e);let r=v();t(r);},typeof window<"u"&&!F&&(window.addEventListener("popstate",()=>{t(v());}),F=true),[l,g]}function m(){let t=b(w);if(!t)throw new Error("router() must be called within a <Routes> component");return t}function R(t){return null}function A(t){return t&&typeof t=="object"&&("type"in t||Array.isArray(t))}function q(t){let[e,r]=N(),o=Array.isArray(t.children)?t.children:[t.children],n=o.filter(i=>A(i)&&i.type===R),s=o.filter(i=>!A(i)||i.type!==R),f=y(n),u=e.pathname,c=E(f,u)||[],S=c.length>0?c[c.length-1].params:{},U={location:e,navigate:r,matches:c,params:S},x=null;if(c.length>0){let i=c[0],L=i.route.component,h=u;i.route.beforeEnter?i.route.beforeEnter(i.params)!==false&&(x=a$1(p.Provider,{value:1,key:h,children:a$1(L,{params:i.params,key:h})})):x=a$1(p.Provider,{value:1,key:h,children:a$1(L,{params:i.params,key:h})});}return a$1(w.Provider,{value:U,children:[...s,x]})}function B(){let t=m(),e=b(p)||0,[r]=a$2(()=>t.matches);if(e>=r.length)return null;let o=r[e],n=o.route.component;return o.route.beforeEnter&&o.route.beforeEnter(o.params)===false?null:a$1(p.Provider,{value:e+1,children:a$1(n,{params:o.params})})}function M(t){let e=m();return a$1("a",{href:t.to,class:t.class,onclick:r=>{r.preventDefault(),e.navigate(t.to);},children:t.children})}export{M as Link,B as Outlet,R as Route,q as Routes,m as router};//# sourceMappingURL=router.mjs.map
|
|
2
2
|
//# sourceMappingURL=router.mjs.map
|
package/dist/router.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/router/utils.ts","../src/router/router.ts","../src/router/dom/Route.tsx","../src/router/dom/Routes.tsx","../src/router/dom/Outlet.tsx","../src/router/dom/Link.tsx"],"names":["parseQuery","search","params","result","value","key","accumulator","part","isUnsafePath","path","createRoutesFromChildren","children","routes","child","component","subChildren","beforeEnter","route","nestedChildren","matchRoutes","locationPathname","routePath","matchResult","matchPath","locationPath","routeSegments","locationSegments","i","routeSegment","locationSegment","RouterCtx","createContext","RouteDepthCtx","getDefaultLocation","getCurrentLocation","globalLocation","globalNavigate","popstateListenerAttached","location","reactive","updateLocation","newLocation","router","routerContext","context","Route","_props","isFNode","node","Routes","props","currentLocation","navigate","childrenList","routeNodes","otherChildren","routeDefinitions","currentPath","matches","matchedContent","rootMatch","Component","routeKey","jsx","Outlet","depth","state","match","Link","event"],"mappings":"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","file":"router.mjs","sourcesContent":["import { RouteDefinition, RouteMatch } from './types'\n\n// Simple query parser (native URLSearchParams fallback) - internal use only\nfunction parseQuery(search: string): Record<string, string> {\n if (!search) return {}\n if (typeof URLSearchParams !== 'undefined') {\n const params = new URLSearchParams(search)\n const result: Record<string, string> = {}\n params.forEach((value, key) => result[key] = value)\n return result\n }\n return search\n .substring(1)\n .split('&')\n .reduce((accumulator, part) => {\n const [key, value] = part.split('=')\n if (key) accumulator[decodeURIComponent(key)] = decodeURIComponent(value || '')\n return accumulator\n }, {} as Record<string, string>)\n}\n\nfunction isUnsafePath(path: string): boolean {\n // Prevent prototype pollution or massive strings\n if (path.length > 2048) return true\n if (path.includes('__proto__') || path.includes('constructor')) return true\n // Basic XSS check for javascript: protocol\n if (/^\\s*javascript:/i.test(path)) return true\n return false\n}\n\n// Convert children FNodes to RouteDefinitions - internal use only\nfunction createRoutesFromChildren(children: any[]): RouteDefinition[] {\n const routes: RouteDefinition[] = []\n\n children.forEach(child => {\n if (!child) return\n\n // Assuming child is an FNode-like object (config)\n // In Flexium, Route component returns null, but 'createNode' isn't called here.\n // We are traversing the props passed to Router.\n\n const { path, component, children: subChildren, beforeEnter } = child.props || {}\n\n const route: RouteDefinition = {\n path: path || '/',\n component: component,\n beforeEnter\n }\n\n if (subChildren) {\n // If subChildren is array\n const nestedChildren = Array.isArray(subChildren) ? subChildren : [subChildren]\n // We expect the children of a Route to be other Routes\n // However, the 'children' prop in JSX might be the Route components themselves.\n route.children = createRoutesFromChildren(nestedChildren)\n }\n\n // Also check child.children if props.children is empty (direct FNode structure)\n if (!route.children && child.children && child.children.length > 0) {\n route.children = createRoutesFromChildren(child.children)\n }\n\n routes.push(route)\n })\n return routes\n}\n\n// Simple Matcher - internal use only\nfunction matchRoutes(routes: RouteDefinition[], locationPathname: string): RouteMatch[] | null {\n // We want to find the best matching branch\n\n for (const route of routes) {\n // 1. Match current segment\n // Simple exact match or parameter match logic needed?\n // Let's implement simple param matching: /user/:id\n\n const routePath = route.path\n\n const matchResult = matchPath(routePath, locationPathname)\n if (matchResult) {\n return [{ route, params: matchResult.params, pathname: matchResult.path }]\n }\n }\n return null\n}\n\nfunction matchPath(routePath: string, locationPath: string) {\n // 1. Split into segments\n const routeSegments = routePath.split('/').filter(Boolean)\n const locationSegments = locationPath.split('/').filter(Boolean)\n\n if (routeSegments.length !== locationSegments.length) return null\n\n const params: Record<string, string> = {}\n\n for (let i = 0; i < routeSegments.length; i++) {\n const routeSegment = routeSegments[i]\n const locationSegment = locationSegments[i]\n\n if (routeSegment.startsWith(':')) {\n const key = routeSegment.slice(1)\n params[key] = locationSegment\n } else if (routeSegment !== locationSegment) {\n return null\n }\n }\n\n return { params, path: locationPath }\n}\n\n// Export only what's needed by other router files\nexport { parseQuery, isUnsafePath, createRoutesFromChildren, matchRoutes }\n","import { reactive } from '../core/reactive'\nimport { createContext, context } from '../core/context'\nimport type { Location, RouterContext } from './types'\nimport { parseQuery, isUnsafePath } from './utils'\n\n// Contexts\nexport const RouterCtx = createContext<RouterContext>(null as any)\nexport const RouteDepthCtx = createContext<number>(0)\n\n// Helper functions\nconst getDefaultLocation = (): Location => ({\n pathname: '/',\n search: '',\n hash: '',\n query: {},\n})\n\nconst getCurrentLocation = (): Location => {\n if (typeof window === 'undefined') {\n return getDefaultLocation()\n }\n return {\n pathname: window.location.pathname,\n search: window.location.search,\n hash: window.location.hash,\n query: parseQuery(window.location.search),\n }\n}\n\n// Global singleton location state\nlet globalLocation: Location | null = null\nlet globalNavigate: ((path: string) => void) | null = null\nlet popstateListenerAttached = false\n\n// Create location state and navigation (singleton pattern)\nexport function location(): [Location, (path: string) => void] {\n // Return existing singleton if already created\n if (globalLocation && globalNavigate) {\n return [globalLocation, globalNavigate]\n }\n\n // Create a reactive location object (only once)\n globalLocation = reactive<Location>(getCurrentLocation())\n\n const updateLocation = (newLocation: Location) => {\n if (!globalLocation) return\n globalLocation.pathname = newLocation.pathname\n globalLocation.search = newLocation.search\n globalLocation.hash = newLocation.hash\n globalLocation.query = newLocation.query\n }\n\n globalNavigate = (path: string) => {\n if (typeof window === 'undefined') return\n if (isUnsafePath(path)) {\n console.error('[Flexium Router] Blocked navigation to unsafe path:', path)\n return\n }\n window.history.pushState({}, '', path)\n const newLocation = getCurrentLocation()\n updateLocation(newLocation)\n }\n\n // Listen to popstate (only once)\n if (typeof window !== 'undefined' && !popstateListenerAttached) {\n window.addEventListener('popstate', () => {\n updateLocation(getCurrentLocation())\n })\n popstateListenerAttached = true\n }\n\n return [globalLocation, globalNavigate]\n}\n\n// Router hook\nexport function router(): RouterContext {\n const routerContext = context(RouterCtx)\n if (!routerContext) {\n throw new Error('router() must be called within a <Routes> component')\n }\n return routerContext\n}\n","import type { RouteProps } from '../types'\n\nexport function Route(_props: RouteProps) {\n return null\n}\n","import { jsx as f } from '../../jsx-runtime'\nimport type { FNode, FNodeChild } from '../../dom'\nimport { RouterCtx, RouteDepthCtx, location } from '../router'\nimport { createRoutesFromChildren, matchRoutes } from '../utils'\nimport { Route } from './Route'\n\nfunction isFNode(node: any): node is FNode {\n return node && typeof node === 'object' && ('type' in node || Array.isArray(node))\n}\n\nexport function Routes(props: { children: FNodeChild }) {\n const [currentLocation, navigate] = location()\n\n // Parse children to find <Route> definitions and other content\n let childrenList: any[] = Array.isArray(props.children) ? props.children : [props.children]\n\n // Separate routes from other children (like Nav components)\n const routeNodes = childrenList.filter(child => isFNode(child) && child.type === Route)\n const otherChildren = childrenList.filter(child => !isFNode(child) || child.type !== Route)\n\n // Create route definitions\n const routeDefinitions = createRoutesFromChildren(routeNodes)\n\n // DIRECT access to currentLocation.pathname\n // This should trigger reactive tracking in the component's effect context\n const currentPath = currentLocation.pathname\n const matches = matchRoutes(routeDefinitions, currentPath) || []\n const params = matches.length > 0 ? matches[matches.length - 1].params : {}\n\n const routerContext = {\n location: currentLocation,\n navigate,\n matches: matches,\n params: params\n }\n\n // Render matched component\n let matchedContent: FNodeChild = null\n\n if (matches.length > 0) {\n const rootMatch = matches[0]\n const Component = rootMatch.route.component\n\n // Use pathname as key to force re-mount on route change\n const routeKey = currentPath\n\n // Guard Check\n if (rootMatch.route.beforeEnter) {\n const result = rootMatch.route.beforeEnter(rootMatch.params)\n if (result !== false) {\n matchedContent = f(RouteDepthCtx.Provider, {\n value: 1,\n key: routeKey,\n children: f(Component, { params: rootMatch.params, key: routeKey })\n })\n }\n } else {\n matchedContent = f(RouteDepthCtx.Provider, {\n value: 1,\n key: routeKey,\n children: f(Component, { params: rootMatch.params, key: routeKey })\n })\n }\n }\n\n return f(RouterCtx.Provider, {\n value: routerContext,\n children: [...otherChildren, matchedContent]\n })\n}\n","import { state } from '../../core/state'\nimport { context } from '../../core/context'\nimport { jsx as f } from '../../jsx-runtime'\nimport { RouteDepthCtx, router } from '../router'\n\nexport function Outlet() {\n const routerContext = router()\n const depth = (context(RouteDepthCtx) as number) || 0\n\n const [matches] = state(() => routerContext.matches)\n\n if (depth >= matches.length) return null\n\n const match = matches[depth]\n const Component = match.route.component\n\n // Guard\n if (match.route.beforeEnter) {\n if (match.route.beforeEnter(match.params) === false) return null\n }\n\n // Render next level\n return f(RouteDepthCtx.Provider, {\n value: depth + 1,\n children: f(Component, { params: match.params })\n })\n}\n","import { jsx as f } from '../../jsx-runtime'\nimport type { LinkProps } from '../types'\nimport { router } from '../router'\n\nexport function Link(props: LinkProps) {\n const routerContext = router()\n return f('a', {\n href: props.to,\n class: props.class,\n onclick: (event: Event) => {\n event.preventDefault()\n routerContext.navigate(props.to)\n },\n children: props.children\n })\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/router/utils.ts","../src/router/router.ts","../src/router/dom/Route.tsx","../src/router/dom/Routes.tsx","../src/router/dom/Outlet.tsx","../src/router/dom/Link.tsx"],"names":["parseQuery","search","params","result","value","key","accumulator","part","isUnsafePath","path","createRoutesFromChildren","children","routes","child","component","subChildren","beforeEnter","route","nestedChildren","matchRoutes","locationPathname","routePath","matchResult","matchPath","locationPath","routeSegments","locationSegments","i","routeSegment","locationSegment","RouterCtx","createContext","RouteDepthCtx","getDefaultLocation","getCurrentLocation","globalLocation","globalNavigate","popstateListenerAttached","location","reactive","updateLocation","newLocation","router","routerContext","context","Route","_props","isFNode","node","Routes","props","currentLocation","navigate","childrenList","routeNodes","otherChildren","routeDefinitions","currentPath","matches","matchedContent","rootMatch","Component","routeKey","jsx","Outlet","depth","state","match","Link","event"],"mappings":"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","file":"router.mjs","sourcesContent":["import { RouteDefinition, RouteMatch } from './types'\n\n// Simple query parser (native URLSearchParams fallback) - internal use only\nfunction parseQuery(search: string): Record<string, string> {\n if (!search) return {}\n if (typeof URLSearchParams !== 'undefined') {\n const params = new URLSearchParams(search)\n const result: Record<string, string> = {}\n params.forEach((value, key) => result[key] = value)\n return result\n }\n return search\n .substring(1)\n .split('&')\n .reduce((accumulator, part) => {\n const [key, value] = part.split('=')\n if (key) accumulator[decodeURIComponent(key)] = decodeURIComponent(value || '')\n return accumulator\n }, {} as Record<string, string>)\n}\n\nfunction isUnsafePath(path: string): boolean {\n // Prevent prototype pollution or massive strings\n if (path.length > 2048) return true\n if (path.includes('__proto__') || path.includes('constructor')) return true\n // Basic XSS check for javascript: protocol\n if (/^\\s*javascript:/i.test(path)) return true\n return false\n}\n\n// Convert children FNodes to RouteDefinitions - internal use only\nfunction createRoutesFromChildren(children: any[]): RouteDefinition[] {\n const routes: RouteDefinition[] = []\n\n children.forEach(child => {\n if (!child) return\n\n // Assuming child is an FNode-like object (config)\n // In Flexium, Route component returns null, but 'createNode' isn't called here.\n // We are traversing the props passed to Router.\n\n const { path, component, children: subChildren, beforeEnter } = child.props || {}\n\n const route: RouteDefinition = {\n path: path || '/',\n component: component,\n beforeEnter\n }\n\n if (subChildren) {\n // If subChildren is array\n const nestedChildren = Array.isArray(subChildren) ? subChildren : [subChildren]\n // We expect the children of a Route to be other Routes\n // However, the 'children' prop in JSX might be the Route components themselves.\n route.children = createRoutesFromChildren(nestedChildren)\n }\n\n // Also check child.children if props.children is empty (direct FNode structure)\n if (!route.children && child.children && child.children.length > 0) {\n route.children = createRoutesFromChildren(child.children)\n }\n\n routes.push(route)\n })\n return routes\n}\n\n// Simple Matcher - internal use only\nfunction matchRoutes(routes: RouteDefinition[], locationPathname: string): RouteMatch[] | null {\n // We want to find the best matching branch\n\n for (const route of routes) {\n // 1. Match current segment\n // Simple exact match or parameter match logic needed?\n // Let's implement simple param matching: /user/:id\n\n const routePath = route.path\n\n const matchResult = matchPath(routePath, locationPathname)\n if (matchResult) {\n return [{ route, params: matchResult.params, pathname: matchResult.path }]\n }\n }\n return null\n}\n\nfunction matchPath(routePath: string, locationPath: string) {\n // 1. Split into segments\n const routeSegments = routePath.split('/').filter(Boolean)\n const locationSegments = locationPath.split('/').filter(Boolean)\n\n if (routeSegments.length !== locationSegments.length) return null\n\n const params: Record<string, string> = {}\n\n for (let i = 0; i < routeSegments.length; i++) {\n const routeSegment = routeSegments[i]\n const locationSegment = locationSegments[i]\n\n if (routeSegment.startsWith(':')) {\n const key = routeSegment.slice(1)\n params[key] = locationSegment\n } else if (routeSegment !== locationSegment) {\n return null\n }\n }\n\n return { params, path: locationPath }\n}\n\n// Export only what's needed by other router files\nexport { parseQuery, isUnsafePath, createRoutesFromChildren, matchRoutes }\n","import { reactive } from '../core/reactive'\nimport { createContext, context } from '../core/context'\nimport type { Location, RouterContext } from './types'\nimport { parseQuery, isUnsafePath } from './utils'\n\n// Contexts\nexport const RouterCtx = createContext<RouterContext>(null as any)\nexport const RouteDepthCtx = createContext<number>(0)\n\n// Helper functions\nconst getDefaultLocation = (): Location => ({\n pathname: '/',\n search: '',\n hash: '',\n query: {},\n})\n\nconst getCurrentLocation = (): Location => {\n if (typeof window === 'undefined') {\n return getDefaultLocation()\n }\n return {\n pathname: window.location.pathname,\n search: window.location.search,\n hash: window.location.hash,\n query: parseQuery(window.location.search),\n }\n}\n\n// Global singleton location state\nlet globalLocation: Location | null = null\nlet globalNavigate: ((path: string) => void) | null = null\nlet popstateListenerAttached = false\n\n// Create location state and navigation (singleton pattern)\nexport function location(): [Location, (path: string) => void] {\n // Return existing singleton if already created\n if (globalLocation && globalNavigate) {\n return [globalLocation, globalNavigate]\n }\n\n // Create a reactive location object (only once)\n globalLocation = reactive<Location>(getCurrentLocation())\n\n const updateLocation = (newLocation: Location) => {\n if (!globalLocation) return\n globalLocation.pathname = newLocation.pathname\n globalLocation.search = newLocation.search\n globalLocation.hash = newLocation.hash\n globalLocation.query = newLocation.query\n }\n\n globalNavigate = (path: string) => {\n if (typeof window === 'undefined') return\n if (isUnsafePath(path)) {\n console.error('[Flexium Router] Blocked navigation to unsafe path:', path)\n return\n }\n window.history.pushState({}, '', path)\n const newLocation = getCurrentLocation()\n updateLocation(newLocation)\n }\n\n // Listen to popstate (only once)\n if (typeof window !== 'undefined' && !popstateListenerAttached) {\n window.addEventListener('popstate', () => {\n updateLocation(getCurrentLocation())\n })\n popstateListenerAttached = true\n }\n\n return [globalLocation, globalNavigate]\n}\n\n// Router hook\nexport function router(): RouterContext {\n const routerContext = context(RouterCtx)\n if (!routerContext) {\n throw new Error('router() must be called within a <Routes> component')\n }\n return routerContext\n}\n","import type { RouteProps } from '../types'\n\nexport function Route(_props: RouteProps) {\n return null\n}\n","import { jsx as f } from '../../jsx-runtime'\nimport type { FNode, FNodeChild } from '../../dom'\nimport { RouterCtx, RouteDepthCtx, location } from '../router'\nimport { createRoutesFromChildren, matchRoutes } from '../utils'\nimport { Route } from './Route'\n\nfunction isFNode(node: any): node is FNode {\n return node && typeof node === 'object' && ('type' in node || Array.isArray(node))\n}\n\nexport function Routes(props: { children: FNodeChild }) {\n const [currentLocation, navigate] = location()\n\n // Parse children to find <Route> definitions and other content\n let childrenList: any[] = Array.isArray(props.children) ? props.children : [props.children]\n\n // Separate routes from other children (like Nav components)\n const routeNodes = childrenList.filter(child => isFNode(child) && child.type === Route)\n const otherChildren = childrenList.filter(child => !isFNode(child) || child.type !== Route)\n\n // Create route definitions\n const routeDefinitions = createRoutesFromChildren(routeNodes)\n\n // DIRECT access to currentLocation.pathname\n // This should trigger reactive tracking in the component's effect context\n const currentPath = currentLocation.pathname\n const matches = matchRoutes(routeDefinitions, currentPath) || []\n const params = matches.length > 0 ? matches[matches.length - 1].params : {}\n\n const routerContext = {\n location: currentLocation,\n navigate,\n matches: matches,\n params: params\n }\n\n // Render matched component\n let matchedContent: FNodeChild = null\n\n if (matches.length > 0) {\n const rootMatch = matches[0]\n const Component = rootMatch.route.component\n\n // Use pathname as key to force re-mount on route change\n const routeKey = currentPath\n\n // Guard Check\n if (rootMatch.route.beforeEnter) {\n const result = rootMatch.route.beforeEnter(rootMatch.params)\n if (result !== false) {\n matchedContent = f(RouteDepthCtx.Provider, {\n value: 1,\n key: routeKey,\n children: f(Component, { params: rootMatch.params, key: routeKey })\n })\n }\n } else {\n matchedContent = f(RouteDepthCtx.Provider, {\n value: 1,\n key: routeKey,\n children: f(Component, { params: rootMatch.params, key: routeKey })\n })\n }\n }\n\n return f(RouterCtx.Provider, {\n value: routerContext,\n children: [...otherChildren, matchedContent]\n })\n}\n","import { state } from '../../core/state'\nimport { context } from '../../core/context'\nimport { jsx as f } from '../../jsx-runtime'\nimport { RouteDepthCtx, router } from '../router'\n\nexport function Outlet() {\n const routerContext = router()\n const depth = (context(RouteDepthCtx) as number) || 0\n\n const [matches] = state(() => routerContext.matches)\n\n if (depth >= matches.length) return null\n\n const match = matches[depth]\n const Component = match.route.component\n\n // Guard\n if (match.route.beforeEnter) {\n if (match.route.beforeEnter(match.params) === false) return null\n }\n\n // Render next level\n return f(RouteDepthCtx.Provider, {\n value: depth + 1,\n children: f(Component, { params: match.params })\n })\n}\n","import { jsx as f } from '../../jsx-runtime'\nimport type { LinkProps } from '../types'\nimport { router } from '../router'\n\nexport function Link(props: LinkProps) {\n const routerContext = router()\n return f('a', {\n href: props.to,\n class: props.class,\n onclick: (event: Event) => {\n event.preventDefault()\n routerContext.navigate(props.to)\n },\n children: props.children\n })\n}\n"]}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { a as SSROptions, b as SSRResult } from './types-CxlS2F2j.cjs';
|
|
2
|
+
export { S as SerializedState } from './types-CxlS2F2j.cjs';
|
|
3
|
+
import { F as FNodeChild } from './types-y2GGaXXk.cjs';
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Render component tree to HTML string with hydration markers
|
|
7
|
+
*/
|
|
8
|
+
declare function renderToString(app: FNodeChild | (() => FNodeChild), options?: SSROptions): SSRResult;
|
|
9
|
+
/**
|
|
10
|
+
* Render component tree to static HTML (no hydration markers)
|
|
11
|
+
* Use for email templates, static pages, etc.
|
|
12
|
+
*/
|
|
13
|
+
declare function renderToStaticMarkup(app: FNodeChild | (() => FNodeChild)): string;
|
|
14
|
+
|
|
15
|
+
declare function getIsServer(): boolean;
|
|
16
|
+
|
|
17
|
+
export { SSROptions, SSRResult, getIsServer, renderToStaticMarkup, renderToString };
|
package/dist/server.d.ts
ADDED
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { a as SSROptions, b as SSRResult } from './types-CxlS2F2j.js';
|
|
2
|
+
export { S as SerializedState } from './types-CxlS2F2j.js';
|
|
3
|
+
import { F as FNodeChild } from './types-y2GGaXXk.js';
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Render component tree to HTML string with hydration markers
|
|
7
|
+
*/
|
|
8
|
+
declare function renderToString(app: FNodeChild | (() => FNodeChild), options?: SSROptions): SSRResult;
|
|
9
|
+
/**
|
|
10
|
+
* Render component tree to static HTML (no hydration markers)
|
|
11
|
+
* Use for email templates, static pages, etc.
|
|
12
|
+
*/
|
|
13
|
+
declare function renderToStaticMarkup(app: FNodeChild | (() => FNodeChild)): string;
|
|
14
|
+
|
|
15
|
+
declare function getIsServer(): boolean;
|
|
16
|
+
|
|
17
|
+
export { SSROptions, SSRResult, getIsServer, renderToStaticMarkup, renderToString };
|