flexium 0.14.3 → 0.15.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (53) hide show
  1. package/dist/chunk-44IBO7Q7.js +2 -0
  2. package/dist/chunk-44IBO7Q7.js.map +1 -0
  3. package/dist/chunk-4DTHOZSY.mjs +2 -0
  4. package/dist/chunk-4DTHOZSY.mjs.map +1 -0
  5. package/dist/chunk-64L26RKO.mjs +2 -0
  6. package/dist/chunk-64L26RKO.mjs.map +1 -0
  7. package/dist/chunk-6AVHHBFG.js +2 -0
  8. package/dist/chunk-6AVHHBFG.js.map +1 -0
  9. package/dist/{chunk-PUXZJ7OV.js → chunk-BGXOI2CB.js} +2 -2
  10. package/dist/{chunk-PUXZJ7OV.js.map → chunk-BGXOI2CB.js.map} +1 -1
  11. package/dist/chunk-LEL6ICHK.mjs +2 -0
  12. package/dist/{chunk-TP5HUAIN.mjs.map → chunk-LEL6ICHK.mjs.map} +1 -1
  13. package/dist/core.d.cts +57 -2
  14. package/dist/core.d.ts +57 -2
  15. package/dist/core.js +1 -1
  16. package/dist/core.mjs +1 -1
  17. package/dist/core.mjs.map +1 -1
  18. package/dist/dom.d.cts +5 -0
  19. package/dist/dom.d.ts +5 -0
  20. package/dist/dom.js +1 -1
  21. package/dist/dom.js.map +1 -1
  22. package/dist/dom.mjs +1 -1
  23. package/dist/dom.mjs.map +1 -1
  24. package/dist/index.d.cts +1 -1
  25. package/dist/index.d.ts +1 -1
  26. package/dist/index.js +1 -1
  27. package/dist/index.js.map +1 -1
  28. package/dist/index.mjs +1 -1
  29. package/dist/index.mjs.map +1 -1
  30. package/dist/metafile-cjs.json +1 -1
  31. package/dist/metafile-esm.json +1 -1
  32. package/dist/render-5F2KRAJI.js +2 -0
  33. package/dist/{render-MJ2LCNSG.js.map → render-5F2KRAJI.js.map} +1 -1
  34. package/dist/render-ZDUF6JTQ.mjs +2 -0
  35. package/dist/{render-4HB53K66.mjs.map → render-ZDUF6JTQ.mjs.map} +1 -1
  36. package/dist/router.js +1 -1
  37. package/dist/router.mjs +1 -1
  38. package/dist/router.mjs.map +1 -1
  39. package/dist/server.js +1 -1
  40. package/dist/server.mjs +1 -1
  41. package/dist/server.mjs.map +1 -1
  42. package/package.json +1 -1
  43. package/dist/chunk-3AKECLKA.mjs +0 -2
  44. package/dist/chunk-3AKECLKA.mjs.map +0 -1
  45. package/dist/chunk-ACYN2UKT.js +0 -2
  46. package/dist/chunk-ACYN2UKT.js.map +0 -1
  47. package/dist/chunk-E6Z7AI4J.js +0 -2
  48. package/dist/chunk-E6Z7AI4J.js.map +0 -1
  49. package/dist/chunk-MI76R42D.mjs +0 -2
  50. package/dist/chunk-MI76R42D.mjs.map +0 -1
  51. package/dist/chunk-TP5HUAIN.mjs +0 -2
  52. package/dist/render-4HB53K66.mjs +0 -2
  53. package/dist/render-MJ2LCNSG.js +0 -2
@@ -1 +1 @@
1
- {"inputs":{"src/index.ts":{"bytes":67,"imports":[],"format":"esm"},"src/core/lifecycle.ts":{"bytes":2686,"imports":[],"format":"esm"},"src/core/reactive.ts":{"bytes":2080,"imports":[{"path":"src/core/lifecycle.ts","kind":"import-statement","original":"./lifecycle"}],"format":"esm"},"src/core/hook.ts":{"bytes":986,"imports":[],"format":"esm"},"src/core/devtools.ts":{"bytes":1841,"imports":[],"format":"esm"},"src/core/context.ts":{"bytes":1918,"imports":[],"format":"esm"},"src/core/use.ts":{"bytes":8125,"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"},{"path":"src/core/context.ts","kind":"import-statement","original":"./context"},{"path":"src/core/context.ts","kind":"import-statement","original":"./context"}],"format":"esm"},"src/core/ref.ts":{"bytes":812,"imports":[{"path":"src/core/hook.ts","kind":"import-statement","original":"./hook"}],"format":"esm"},"src/core/index.ts":{"bytes":441,"imports":[{"path":"src/core/use.ts","kind":"import-statement","original":"./use"},{"path":"src/core/lifecycle.ts","kind":"import-statement","original":"./lifecycle"},{"path":"src/core/ref.ts","kind":"import-statement","original":"./ref"},{"path":"src/core/context.ts","kind":"import-statement","original":"./context"},{"path":"src/core/reactive.ts","kind":"import-statement","original":"./reactive"}],"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":9324,"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":1937,"imports":[{"path":"src/core/use.ts","kind":"import-statement","original":"../../core/use"},{"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":412,"imports":[{"path":"src/core/context.ts","kind":"import-statement","original":"../../core/context"},{"path":"src/core/use.ts","kind":"import-statement","original":"../../core/use"}],"format":"esm"},"src/dom/components/Suspense.tsx":{"bytes":1770,"imports":[{"path":"src/core/use.ts","kind":"import-statement","original":"../../core/use"},{"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":2854,"imports":[{"path":"src/core/use.ts","kind":"import-statement","original":"../../core/use"},{"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":373,"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":3207,"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/core/use.ts","kind":"import-statement","original":"../core/use"},{"path":"src/router/utils.ts","kind":"import-statement","original":"./utils"}],"format":"esm"},"src/jsx-runtime.ts":{"bytes":897,"imports":[],"format":"esm"},"src/router/dom/Route.tsx":{"bytes":106,"imports":[],"format":"esm"},"src/router/dom/Routes.tsx":{"bytes":2590,"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":744,"imports":[{"path":"src/core/use.ts","kind":"import-statement","original":"../../core/use"},{"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":447,"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":309,"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/css/runtime/hash.ts":{"bytes":290,"imports":[],"format":"esm"},"src/css/runtime/serialize.ts":{"bytes":2900,"imports":[],"format":"esm"},"src/css/runtime/sheet.ts":{"bytes":2860,"imports":[],"format":"esm"},"src/css/css.ts":{"bytes":1214,"imports":[{"path":"src/css/runtime/hash.ts","kind":"import-statement","original":"./runtime/hash"},{"path":"src/css/runtime/serialize.ts","kind":"import-statement","original":"./runtime/serialize"},{"path":"src/css/runtime/sheet.ts","kind":"import-statement","original":"./runtime/sheet"}],"format":"esm"},"src/css/styled.ts":{"bytes":5571,"imports":[{"path":"src/css/css.ts","kind":"import-statement","original":"./css"}],"format":"esm"},"src/css/keyframes.ts":{"bytes":1005,"imports":[{"path":"src/css/runtime/hash.ts","kind":"import-statement","original":"./runtime/hash"},{"path":"src/css/runtime/serialize.ts","kind":"import-statement","original":"./runtime/serialize"},{"path":"src/css/runtime/sheet.ts","kind":"import-statement","original":"./runtime/sheet"}],"format":"esm"},"src/css/index.ts":{"bytes":1086,"imports":[{"path":"src/css/css.ts","kind":"import-statement","original":"./css"},{"path":"src/css/styled.ts","kind":"import-statement","original":"./styled"},{"path":"src/css/keyframes.ts","kind":"import-statement","original":"./keyframes"},{"path":"src/css/runtime/sheet.ts","kind":"import-statement","original":"./runtime/sheet"}],"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/render-MJ2LCNSG.js.map":{"imports":[],"exports":[],"inputs":{},"bytes":93},"dist/render-MJ2LCNSG.js":{"imports":[{"path":"dist/chunk-PUXZJ7OV.js","kind":"import-statement"},{"path":"dist/chunk-3CKIHQIE.js","kind":"import-statement"},{"path":"dist/chunk-E6Z7AI4J.js","kind":"import-statement"}],"exports":["reconcile","render"],"entryPoint":"src/dom/render.ts","inputs":{},"bytes":129},"dist/index.js.map":{"imports":[],"exports":[],"inputs":{},"bytes":204},"dist/index.js":{"imports":[],"exports":["VERSION"],"entryPoint":"src/index.ts","inputs":{"src/index.ts":{"bytesInOutput":15}},"bytes":37},"dist/core.js.map":{"imports":[],"exports":[],"inputs":{},"bytes":1066},"dist/core.js":{"imports":[{"path":"dist/chunk-ACYN2UKT.js","kind":"import-statement"},{"path":"dist/chunk-3CKIHQIE.js","kind":"import-statement"},{"path":"dist/chunk-E6Z7AI4J.js","kind":"import-statement"}],"exports":["Context","getContextValue","isReactive","popContext","pushContext","sync","use","useRef"],"entryPoint":"src/core/index.ts","inputs":{"src/core/index.ts":{"bytesInOutput":0},"src/core/ref.ts":{"bytesInOutput":42}},"bytes":320},"dist/dom.js.map":{"imports":[],"exports":[],"inputs":{},"bytes":27792},"dist/dom.js":{"imports":[{"path":"dist/chunk-PUXZJ7OV.js","kind":"import-statement"},{"path":"dist/chunk-ACYN2UKT.js","kind":"import-statement"},{"path":"dist/chunk-3CKIHQIE.js","kind":"import-statement"},{"path":"dist/chunk-E6Z7AI4J.js","kind":"import-statement"},{"path":"dist/render-MJ2LCNSG.js","kind":"dynamic-import"}],"exports":["ErrorBoundary","Portal","Suspense","f","hydrate","lazy","render"],"entryPoint":"src/dom/index.ts","inputs":{"src/dom/f.ts":{"bytesInOutput":70},"src/dom/index.ts":{"bytesInOutput":0},"src/dom/hydrate.ts":{"bytesInOutput":2733},"src/dom/components/Portal.tsx":{"bytesInOutput":500},"src/dom/components/index.ts":{"bytesInOutput":0},"src/dom/components/suspenseContext.ts":{"bytesInOutput":84},"src/dom/components/Suspense.tsx":{"bytesInOutput":293},"src/dom/components/ErrorBoundary.tsx":{"bytesInOutput":500},"src/dom/components/lazy.ts":{"bytesInOutput":249}},"bytes":4713},"dist/chunk-PUXZJ7OV.js.map":{"imports":[],"exports":[],"inputs":{},"bytes":23945},"dist/chunk-PUXZJ7OV.js":{"imports":[{"path":"dist/chunk-3CKIHQIE.js","kind":"import-statement"},{"path":"dist/chunk-E6Z7AI4J.js","kind":"import-statement"}],"exports":["a","b"],"inputs":{"src/dom/render.ts":{"bytesInOutput":4853}},"bytes":4963},"dist/server.js.map":{"imports":[],"exports":[],"inputs":{},"bytes":12945},"dist/server.js":{"imports":[{"path":"dist/chunk-E6Z7AI4J.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":2594},"dist/router.js.map":{"imports":[],"exports":[],"inputs":{},"bytes":17333},"dist/router.js":{"imports":[{"path":"dist/chunk-ACYN2UKT.js","kind":"import-statement"},{"path":"dist/chunk-3CKIHQIE.js","kind":"import-statement"},{"path":"dist/chunk-E6Z7AI4J.js","kind":"import-statement"},{"path":"dist/chunk-TFXBDC6C.js","kind":"import-statement"}],"exports":["Link","Outlet","Route","Routes","useLocation","useNavigate","useParams","useQuery","useRouter"],"entryPoint":"src/router/index.ts","inputs":{"src/router/index.ts":{"bytesInOutput":0},"src/router/utils.ts":{"bytesInOutput":1073},"src/router/router.ts":{"bytesInOutput":859},"src/router/dom/Route.tsx":{"bytesInOutput":26},"src/router/dom/Routes.tsx":{"bytesInOutput":638},"src/router/dom/Outlet.tsx":{"bytesInOutput":244},"src/router/dom/Link.tsx":{"bytesInOutput":133}},"bytes":3255},"dist/chunk-ACYN2UKT.js.map":{"imports":[],"exports":[],"inputs":{},"bytes":18028},"dist/chunk-ACYN2UKT.js":{"imports":[{"path":"dist/chunk-3CKIHQIE.js","kind":"import-statement"},{"path":"dist/chunk-E6Z7AI4J.js","kind":"import-statement"}],"exports":["a","b","c"],"inputs":{"src/core/reactive.ts":{"bytesInOutput":590},"src/core/devtools.ts":{"bytesInOutput":372},"src/core/use.ts":{"bytesInOutput":2043}},"bytes":3143},"dist/chunk-3CKIHQIE.js.map":{"imports":[],"exports":[],"inputs":{},"bytes":4599},"dist/chunk-3CKIHQIE.js":{"imports":[],"exports":["a","b","c","d","e"],"inputs":{"src/core/lifecycle.ts":{"bytesInOutput":813}},"bytes":857},"dist/chunk-E6Z7AI4J.js.map":{"imports":[],"exports":[],"inputs":{},"bytes":4337},"dist/chunk-E6Z7AI4J.js":{"imports":[],"exports":["a","b","c","d","e","f"],"inputs":{"src/core/hook.ts":{"bytesInOutput":227},"src/core/context.ts":{"bytesInOutput":307}},"bytes":585},"dist/css.js.map":{"imports":[],"exports":[],"inputs":{},"bytes":20385},"dist/css.js":{"imports":[],"exports":["css","cx","getStyleTag","getStyles","hydrateStyles","keyframes","resetStyles","styled"],"entryPoint":"src/css/index.ts","inputs":{"src/css/runtime/hash.ts":{"bytesInOutput":112},"src/css/runtime/serialize.ts":{"bytesInOutput":1199},"src/css/runtime/sheet.ts":{"bytesInOutput":892},"src/css/css.ts":{"bytesInOutput":147},"src/css/index.ts":{"bytesInOutput":0},"src/css/styled.ts":{"bytesInOutput":777},"src/css/keyframes.ts":{"bytesInOutput":91}},"bytes":3339},"dist/jsx-runtime.js.map":{"imports":[],"exports":[],"inputs":{},"bytes":93},"dist/jsx-runtime.js":{"imports":[{"path":"dist/chunk-TFXBDC6C.js","kind":"import-statement"}],"exports":["Fragment","jsx","jsxDEV","jsxs"],"entryPoint":"src/jsx-runtime.ts","inputs":{},"bytes":95},"dist/jsx-dev-runtime.js.map":{"imports":[],"exports":[],"inputs":{},"bytes":510},"dist/jsx-dev-runtime.js":{"imports":[{"path":"dist/chunk-TFXBDC6C.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-TFXBDC6C.js.map":{"imports":[],"exports":[],"inputs":{},"bytes":1544},"dist/chunk-TFXBDC6C.js":{"imports":[],"exports":["a","b","c","d"],"inputs":{"src/jsx-runtime.ts":{"bytesInOutput":217}},"bytes":254}}}
1
+ {"inputs":{"src/index.ts":{"bytes":67,"imports":[],"format":"esm"},"src/core/lifecycle.ts":{"bytes":2686,"imports":[],"format":"esm"},"src/core/reactive.ts":{"bytes":2080,"imports":[{"path":"src/core/lifecycle.ts","kind":"import-statement","original":"./lifecycle"}],"format":"esm"},"src/core/hook.ts":{"bytes":986,"imports":[],"format":"esm"},"src/core/devtools.ts":{"bytes":1841,"imports":[],"format":"esm"},"src/core/useable.ts":{"bytes":1440,"imports":[],"format":"esm"},"src/core/context.ts":{"bytes":2396,"imports":[{"path":"src/core/useable.ts","kind":"import-statement","original":"./useable"}],"format":"esm"},"src/core/use.ts":{"bytes":8635,"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"},{"path":"./context","kind":"import-statement","external":true},{"path":"src/core/useable.ts","kind":"import-statement","original":"./useable"},{"path":"src/core/context.ts","kind":"import-statement","original":"./context"},{"path":"src/core/useable.ts","kind":"import-statement","original":"./useable"}],"format":"esm"},"src/core/ref.ts":{"bytes":812,"imports":[{"path":"src/core/hook.ts","kind":"import-statement","original":"./hook"}],"format":"esm"},"src/core/index.ts":{"bytes":511,"imports":[{"path":"src/core/use.ts","kind":"import-statement","original":"./use"},{"path":"src/core/lifecycle.ts","kind":"import-statement","original":"./lifecycle"},{"path":"src/core/ref.ts","kind":"import-statement","original":"./ref"},{"path":"src/core/useable.ts","kind":"import-statement","original":"./useable"},{"path":"src/core/context.ts","kind":"import-statement","original":"./context"},{"path":"src/core/reactive.ts","kind":"import-statement","original":"./reactive"}],"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":9324,"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":2049,"imports":[{"path":"src/core/use.ts","kind":"import-statement","original":"../../core/use"},{"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":412,"imports":[{"path":"src/core/context.ts","kind":"import-statement","original":"../../core/context"},{"path":"src/core/use.ts","kind":"import-statement","original":"../../core/use"}],"format":"esm"},"src/dom/components/Suspense.tsx":{"bytes":1770,"imports":[{"path":"src/core/use.ts","kind":"import-statement","original":"../../core/use"},{"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":2854,"imports":[{"path":"src/core/use.ts","kind":"import-statement","original":"../../core/use"},{"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":373,"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":3207,"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/core/use.ts","kind":"import-statement","original":"../core/use"},{"path":"src/router/utils.ts","kind":"import-statement","original":"./utils"}],"format":"esm"},"src/jsx-runtime.ts":{"bytes":897,"imports":[],"format":"esm"},"src/router/dom/Route.tsx":{"bytes":106,"imports":[],"format":"esm"},"src/router/dom/Routes.tsx":{"bytes":2590,"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":744,"imports":[{"path":"src/core/use.ts","kind":"import-statement","original":"../../core/use"},{"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":447,"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":309,"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/css/runtime/hash.ts":{"bytes":290,"imports":[],"format":"esm"},"src/css/runtime/serialize.ts":{"bytes":2900,"imports":[],"format":"esm"},"src/css/runtime/sheet.ts":{"bytes":2860,"imports":[],"format":"esm"},"src/css/css.ts":{"bytes":1214,"imports":[{"path":"src/css/runtime/hash.ts","kind":"import-statement","original":"./runtime/hash"},{"path":"src/css/runtime/serialize.ts","kind":"import-statement","original":"./runtime/serialize"},{"path":"src/css/runtime/sheet.ts","kind":"import-statement","original":"./runtime/sheet"}],"format":"esm"},"src/css/styled.ts":{"bytes":5571,"imports":[{"path":"src/css/css.ts","kind":"import-statement","original":"./css"}],"format":"esm"},"src/css/keyframes.ts":{"bytes":1005,"imports":[{"path":"src/css/runtime/hash.ts","kind":"import-statement","original":"./runtime/hash"},{"path":"src/css/runtime/serialize.ts","kind":"import-statement","original":"./runtime/serialize"},{"path":"src/css/runtime/sheet.ts","kind":"import-statement","original":"./runtime/sheet"}],"format":"esm"},"src/css/index.ts":{"bytes":1086,"imports":[{"path":"src/css/css.ts","kind":"import-statement","original":"./css"},{"path":"src/css/styled.ts","kind":"import-statement","original":"./styled"},{"path":"src/css/keyframes.ts","kind":"import-statement","original":"./keyframes"},{"path":"src/css/runtime/sheet.ts","kind":"import-statement","original":"./runtime/sheet"}],"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/render-5F2KRAJI.js.map":{"imports":[],"exports":[],"inputs":{},"bytes":93},"dist/render-5F2KRAJI.js":{"imports":[{"path":"dist/chunk-BGXOI2CB.js","kind":"import-statement"},{"path":"dist/chunk-3CKIHQIE.js","kind":"import-statement"},{"path":"dist/chunk-44IBO7Q7.js","kind":"import-statement"}],"exports":["reconcile","render"],"entryPoint":"src/dom/render.ts","inputs":{},"bytes":129},"dist/index.js.map":{"imports":[],"exports":[],"inputs":{},"bytes":204},"dist/index.js":{"imports":[],"exports":["VERSION"],"entryPoint":"src/index.ts","inputs":{"src/index.ts":{"bytesInOutput":15}},"bytes":37},"dist/core.js.map":{"imports":[],"exports":[],"inputs":{},"bytes":1066},"dist/core.js":{"imports":[{"path":"dist/chunk-6AVHHBFG.js","kind":"import-statement"},{"path":"dist/chunk-3CKIHQIE.js","kind":"import-statement"},{"path":"dist/chunk-44IBO7Q7.js","kind":"import-statement"}],"exports":["Context","Useable","getContextValue","isReactive","isUseable","popContext","pushContext","sync","use","useRef"],"entryPoint":"src/core/index.ts","inputs":{"src/core/index.ts":{"bytesInOutput":0},"src/core/ref.ts":{"bytesInOutput":42}},"bytes":362},"dist/dom.js.map":{"imports":[],"exports":[],"inputs":{},"bytes":27909},"dist/dom.js":{"imports":[{"path":"dist/chunk-BGXOI2CB.js","kind":"import-statement"},{"path":"dist/chunk-6AVHHBFG.js","kind":"import-statement"},{"path":"dist/chunk-3CKIHQIE.js","kind":"import-statement"},{"path":"dist/chunk-44IBO7Q7.js","kind":"import-statement"},{"path":"dist/render-5F2KRAJI.js","kind":"dynamic-import"}],"exports":["ErrorBoundary","Portal","Suspense","f","hydrate","lazy","render"],"entryPoint":"src/dom/index.ts","inputs":{"src/dom/f.ts":{"bytesInOutput":70},"src/dom/index.ts":{"bytesInOutput":0},"src/dom/hydrate.ts":{"bytesInOutput":2733},"src/dom/components/Portal.tsx":{"bytesInOutput":500},"src/dom/components/index.ts":{"bytesInOutput":0},"src/dom/components/suspenseContext.ts":{"bytesInOutput":84},"src/dom/components/Suspense.tsx":{"bytesInOutput":293},"src/dom/components/ErrorBoundary.tsx":{"bytesInOutput":500},"src/dom/components/lazy.ts":{"bytesInOutput":249}},"bytes":4713},"dist/chunk-BGXOI2CB.js.map":{"imports":[],"exports":[],"inputs":{},"bytes":23945},"dist/chunk-BGXOI2CB.js":{"imports":[{"path":"dist/chunk-3CKIHQIE.js","kind":"import-statement"},{"path":"dist/chunk-44IBO7Q7.js","kind":"import-statement"}],"exports":["a","b"],"inputs":{"src/dom/render.ts":{"bytesInOutput":4853}},"bytes":4963},"dist/server.js.map":{"imports":[],"exports":[],"inputs":{},"bytes":12945},"dist/server.js":{"imports":[{"path":"dist/chunk-44IBO7Q7.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":2589},"dist/router.js.map":{"imports":[],"exports":[],"inputs":{},"bytes":17333},"dist/router.js":{"imports":[{"path":"dist/chunk-6AVHHBFG.js","kind":"import-statement"},{"path":"dist/chunk-3CKIHQIE.js","kind":"import-statement"},{"path":"dist/chunk-44IBO7Q7.js","kind":"import-statement"},{"path":"dist/chunk-TFXBDC6C.js","kind":"import-statement"}],"exports":["Link","Outlet","Route","Routes","useLocation","useNavigate","useParams","useQuery","useRouter"],"entryPoint":"src/router/index.ts","inputs":{"src/router/index.ts":{"bytesInOutput":0},"src/router/utils.ts":{"bytesInOutput":1073},"src/router/router.ts":{"bytesInOutput":859},"src/router/dom/Route.tsx":{"bytesInOutput":26},"src/router/dom/Routes.tsx":{"bytesInOutput":638},"src/router/dom/Outlet.tsx":{"bytesInOutput":244},"src/router/dom/Link.tsx":{"bytesInOutput":133}},"bytes":3255},"dist/chunk-6AVHHBFG.js.map":{"imports":[],"exports":[],"inputs":{},"bytes":18686},"dist/chunk-6AVHHBFG.js":{"imports":[{"path":"dist/chunk-3CKIHQIE.js","kind":"import-statement"},{"path":"dist/chunk-44IBO7Q7.js","kind":"import-statement"}],"exports":["a","b","c"],"inputs":{"src/core/reactive.ts":{"bytesInOutput":590},"src/core/devtools.ts":{"bytesInOutput":372},"src/core/use.ts":{"bytesInOutput":2074}},"bytes":3174},"dist/chunk-3CKIHQIE.js.map":{"imports":[],"exports":[],"inputs":{},"bytes":4599},"dist/chunk-3CKIHQIE.js":{"imports":[],"exports":["a","b","c","d","e"],"inputs":{"src/core/lifecycle.ts":{"bytesInOutput":813}},"bytes":857},"dist/chunk-44IBO7Q7.js.map":{"imports":[],"exports":[],"inputs":{},"bytes":6677},"dist/chunk-44IBO7Q7.js":{"imports":[],"exports":["a","b","c","d","e","f","g","h"],"inputs":{"src/core/hook.ts":{"bytesInOutput":227},"src/core/useable.ts":{"bytesInOutput":137},"src/core/context.ts":{"bytesInOutput":397}},"bytes":821},"dist/css.js.map":{"imports":[],"exports":[],"inputs":{},"bytes":20385},"dist/css.js":{"imports":[],"exports":["css","cx","getStyleTag","getStyles","hydrateStyles","keyframes","resetStyles","styled"],"entryPoint":"src/css/index.ts","inputs":{"src/css/runtime/hash.ts":{"bytesInOutput":112},"src/css/runtime/serialize.ts":{"bytesInOutput":1199},"src/css/runtime/sheet.ts":{"bytesInOutput":892},"src/css/css.ts":{"bytesInOutput":147},"src/css/index.ts":{"bytesInOutput":0},"src/css/styled.ts":{"bytesInOutput":777},"src/css/keyframes.ts":{"bytesInOutput":91}},"bytes":3339},"dist/jsx-runtime.js.map":{"imports":[],"exports":[],"inputs":{},"bytes":93},"dist/jsx-runtime.js":{"imports":[{"path":"dist/chunk-TFXBDC6C.js","kind":"import-statement"}],"exports":["Fragment","jsx","jsxDEV","jsxs"],"entryPoint":"src/jsx-runtime.ts","inputs":{},"bytes":95},"dist/jsx-dev-runtime.js.map":{"imports":[],"exports":[],"inputs":{},"bytes":510},"dist/jsx-dev-runtime.js":{"imports":[{"path":"dist/chunk-TFXBDC6C.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-TFXBDC6C.js.map":{"imports":[],"exports":[],"inputs":{},"bytes":1544},"dist/chunk-TFXBDC6C.js":{"imports":[],"exports":["a","b","c","d"],"inputs":{"src/jsx-runtime.ts":{"bytesInOutput":217}},"bytes":254}}}
@@ -1 +1 @@
1
- {"inputs":{"src/index.ts":{"bytes":67,"imports":[],"format":"esm"},"src/core/lifecycle.ts":{"bytes":2686,"imports":[],"format":"esm"},"src/core/reactive.ts":{"bytes":2080,"imports":[{"path":"src/core/lifecycle.ts","kind":"import-statement","original":"./lifecycle"}],"format":"esm"},"src/core/hook.ts":{"bytes":986,"imports":[],"format":"esm"},"src/core/devtools.ts":{"bytes":1841,"imports":[],"format":"esm"},"src/core/context.ts":{"bytes":1918,"imports":[],"format":"esm"},"src/core/use.ts":{"bytes":8125,"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"},{"path":"src/core/context.ts","kind":"import-statement","original":"./context"},{"path":"src/core/context.ts","kind":"import-statement","original":"./context"}],"format":"esm"},"src/core/ref.ts":{"bytes":812,"imports":[{"path":"src/core/hook.ts","kind":"import-statement","original":"./hook"}],"format":"esm"},"src/core/index.ts":{"bytes":441,"imports":[{"path":"src/core/use.ts","kind":"import-statement","original":"./use"},{"path":"src/core/lifecycle.ts","kind":"import-statement","original":"./lifecycle"},{"path":"src/core/ref.ts","kind":"import-statement","original":"./ref"},{"path":"src/core/context.ts","kind":"import-statement","original":"./context"},{"path":"src/core/reactive.ts","kind":"import-statement","original":"./reactive"}],"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":9324,"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":1937,"imports":[{"path":"src/core/use.ts","kind":"import-statement","original":"../../core/use"},{"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":412,"imports":[{"path":"src/core/context.ts","kind":"import-statement","original":"../../core/context"},{"path":"src/core/use.ts","kind":"import-statement","original":"../../core/use"}],"format":"esm"},"src/dom/components/Suspense.tsx":{"bytes":1770,"imports":[{"path":"src/core/use.ts","kind":"import-statement","original":"../../core/use"},{"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":2854,"imports":[{"path":"src/core/use.ts","kind":"import-statement","original":"../../core/use"},{"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":373,"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":3207,"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/core/use.ts","kind":"import-statement","original":"../core/use"},{"path":"src/router/utils.ts","kind":"import-statement","original":"./utils"}],"format":"esm"},"src/jsx-runtime.ts":{"bytes":897,"imports":[],"format":"esm"},"src/router/dom/Route.tsx":{"bytes":106,"imports":[],"format":"esm"},"src/router/dom/Routes.tsx":{"bytes":2590,"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":744,"imports":[{"path":"src/core/use.ts","kind":"import-statement","original":"../../core/use"},{"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":447,"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":309,"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/css/runtime/hash.ts":{"bytes":290,"imports":[],"format":"esm"},"src/css/runtime/serialize.ts":{"bytes":2900,"imports":[],"format":"esm"},"src/css/runtime/sheet.ts":{"bytes":2860,"imports":[],"format":"esm"},"src/css/css.ts":{"bytes":1214,"imports":[{"path":"src/css/runtime/hash.ts","kind":"import-statement","original":"./runtime/hash"},{"path":"src/css/runtime/serialize.ts","kind":"import-statement","original":"./runtime/serialize"},{"path":"src/css/runtime/sheet.ts","kind":"import-statement","original":"./runtime/sheet"}],"format":"esm"},"src/css/styled.ts":{"bytes":5571,"imports":[{"path":"src/css/css.ts","kind":"import-statement","original":"./css"}],"format":"esm"},"src/css/keyframes.ts":{"bytes":1005,"imports":[{"path":"src/css/runtime/hash.ts","kind":"import-statement","original":"./runtime/hash"},{"path":"src/css/runtime/serialize.ts","kind":"import-statement","original":"./runtime/serialize"},{"path":"src/css/runtime/sheet.ts","kind":"import-statement","original":"./runtime/sheet"}],"format":"esm"},"src/css/index.ts":{"bytes":1086,"imports":[{"path":"src/css/css.ts","kind":"import-statement","original":"./css"},{"path":"src/css/styled.ts","kind":"import-statement","original":"./styled"},{"path":"src/css/keyframes.ts","kind":"import-statement","original":"./keyframes"},{"path":"src/css/runtime/sheet.ts","kind":"import-statement","original":"./runtime/sheet"}],"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/render-4HB53K66.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":93},"dist/render-4HB53K66.mjs":{"imports":[{"path":"dist/chunk-TP5HUAIN.mjs","kind":"import-statement"},{"path":"dist/chunk-NRPWBHKP.mjs","kind":"import-statement"},{"path":"dist/chunk-MI76R42D.mjs","kind":"import-statement"}],"exports":["reconcile","render"],"entryPoint":"src/dom/render.ts","inputs":{},"bytes":132},"dist/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":204},"dist/index.mjs":{"imports":[],"exports":["VERSION"],"entryPoint":"src/index.ts","inputs":{"src/index.ts":{"bytesInOutput":15}},"bytes":37},"dist/core.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":1066},"dist/core.mjs":{"imports":[{"path":"dist/chunk-3AKECLKA.mjs","kind":"import-statement"},{"path":"dist/chunk-NRPWBHKP.mjs","kind":"import-statement"},{"path":"dist/chunk-MI76R42D.mjs","kind":"import-statement"}],"exports":["Context","getContextValue","isReactive","popContext","pushContext","sync","use","useRef"],"entryPoint":"src/core/index.ts","inputs":{"src/core/index.ts":{"bytesInOutput":0},"src/core/ref.ts":{"bytesInOutput":42}},"bytes":323},"dist/dom.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":27792},"dist/dom.mjs":{"imports":[{"path":"dist/chunk-TP5HUAIN.mjs","kind":"import-statement"},{"path":"dist/chunk-3AKECLKA.mjs","kind":"import-statement"},{"path":"dist/chunk-NRPWBHKP.mjs","kind":"import-statement"},{"path":"dist/chunk-MI76R42D.mjs","kind":"import-statement"},{"path":"dist/render-4HB53K66.mjs","kind":"dynamic-import"}],"exports":["ErrorBoundary","Portal","Suspense","f","hydrate","lazy","render"],"entryPoint":"src/dom/index.ts","inputs":{"src/dom/f.ts":{"bytesInOutput":70},"src/dom/index.ts":{"bytesInOutput":0},"src/dom/hydrate.ts":{"bytesInOutput":2734},"src/dom/components/Portal.tsx":{"bytesInOutput":500},"src/dom/components/index.ts":{"bytesInOutput":0},"src/dom/components/suspenseContext.ts":{"bytesInOutput":84},"src/dom/components/Suspense.tsx":{"bytesInOutput":293},"src/dom/components/ErrorBoundary.tsx":{"bytesInOutput":500},"src/dom/components/lazy.ts":{"bytesInOutput":249}},"bytes":4718},"dist/chunk-TP5HUAIN.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":23945},"dist/chunk-TP5HUAIN.mjs":{"imports":[{"path":"dist/chunk-NRPWBHKP.mjs","kind":"import-statement"},{"path":"dist/chunk-MI76R42D.mjs","kind":"import-statement"}],"exports":["a","b"],"inputs":{"src/dom/render.ts":{"bytesInOutput":4853}},"bytes":4965},"dist/server.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":12945},"dist/server.mjs":{"imports":[{"path":"dist/chunk-MI76R42D.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":2595},"dist/router.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":17333},"dist/router.mjs":{"imports":[{"path":"dist/chunk-3AKECLKA.mjs","kind":"import-statement"},{"path":"dist/chunk-NRPWBHKP.mjs","kind":"import-statement"},{"path":"dist/chunk-MI76R42D.mjs","kind":"import-statement"},{"path":"dist/chunk-RUYGSYEV.mjs","kind":"import-statement"}],"exports":["Link","Outlet","Route","Routes","useLocation","useNavigate","useParams","useQuery","useRouter"],"entryPoint":"src/router/index.ts","inputs":{"src/router/index.ts":{"bytesInOutput":0},"src/router/utils.ts":{"bytesInOutput":1073},"src/router/router.ts":{"bytesInOutput":859},"src/router/dom/Route.tsx":{"bytesInOutput":26},"src/router/dom/Routes.tsx":{"bytesInOutput":638},"src/router/dom/Outlet.tsx":{"bytesInOutput":244},"src/router/dom/Link.tsx":{"bytesInOutput":133}},"bytes":3259},"dist/chunk-3AKECLKA.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":18028},"dist/chunk-3AKECLKA.mjs":{"imports":[{"path":"dist/chunk-NRPWBHKP.mjs","kind":"import-statement"},{"path":"dist/chunk-MI76R42D.mjs","kind":"import-statement"}],"exports":["a","b","c"],"inputs":{"src/core/reactive.ts":{"bytesInOutput":590},"src/core/devtools.ts":{"bytesInOutput":372},"src/core/use.ts":{"bytesInOutput":2043}},"bytes":3145},"dist/chunk-NRPWBHKP.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":4599},"dist/chunk-NRPWBHKP.mjs":{"imports":[],"exports":["a","b","c","d","e"],"inputs":{"src/core/lifecycle.ts":{"bytesInOutput":813}},"bytes":857},"dist/chunk-MI76R42D.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":4337},"dist/chunk-MI76R42D.mjs":{"imports":[],"exports":["a","b","c","d","e","f"],"inputs":{"src/core/hook.ts":{"bytesInOutput":227},"src/core/context.ts":{"bytesInOutput":307}},"bytes":585},"dist/css.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":20385},"dist/css.mjs":{"imports":[],"exports":["css","cx","getStyleTag","getStyles","hydrateStyles","keyframes","resetStyles","styled"],"entryPoint":"src/css/index.ts","inputs":{"src/css/runtime/hash.ts":{"bytesInOutput":112},"src/css/runtime/serialize.ts":{"bytesInOutput":1199},"src/css/runtime/sheet.ts":{"bytesInOutput":892},"src/css/css.ts":{"bytesInOutput":147},"src/css/index.ts":{"bytesInOutput":0},"src/css/styled.ts":{"bytesInOutput":777},"src/css/keyframes.ts":{"bytesInOutput":91}},"bytes":3339},"dist/jsx-runtime.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":93},"dist/jsx-runtime.mjs":{"imports":[{"path":"dist/chunk-RUYGSYEV.mjs","kind":"import-statement"}],"exports":["Fragment","jsx","jsxDEV","jsxs"],"entryPoint":"src/jsx-runtime.ts","inputs":{},"bytes":96},"dist/jsx-dev-runtime.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":510},"dist/jsx-dev-runtime.mjs":{"imports":[{"path":"dist/chunk-RUYGSYEV.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-RUYGSYEV.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":1544},"dist/chunk-RUYGSYEV.mjs":{"imports":[],"exports":["a","b","c","d"],"inputs":{"src/jsx-runtime.ts":{"bytesInOutput":217}},"bytes":254}}}
1
+ {"inputs":{"src/index.ts":{"bytes":67,"imports":[],"format":"esm"},"src/core/lifecycle.ts":{"bytes":2686,"imports":[],"format":"esm"},"src/core/reactive.ts":{"bytes":2080,"imports":[{"path":"src/core/lifecycle.ts","kind":"import-statement","original":"./lifecycle"}],"format":"esm"},"src/core/hook.ts":{"bytes":986,"imports":[],"format":"esm"},"src/core/devtools.ts":{"bytes":1841,"imports":[],"format":"esm"},"src/core/useable.ts":{"bytes":1440,"imports":[],"format":"esm"},"src/core/context.ts":{"bytes":2396,"imports":[{"path":"src/core/useable.ts","kind":"import-statement","original":"./useable"}],"format":"esm"},"src/core/use.ts":{"bytes":8635,"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"},{"path":"./context","kind":"import-statement","external":true},{"path":"src/core/useable.ts","kind":"import-statement","original":"./useable"},{"path":"src/core/context.ts","kind":"import-statement","original":"./context"},{"path":"src/core/useable.ts","kind":"import-statement","original":"./useable"}],"format":"esm"},"src/core/ref.ts":{"bytes":812,"imports":[{"path":"src/core/hook.ts","kind":"import-statement","original":"./hook"}],"format":"esm"},"src/core/index.ts":{"bytes":511,"imports":[{"path":"src/core/use.ts","kind":"import-statement","original":"./use"},{"path":"src/core/lifecycle.ts","kind":"import-statement","original":"./lifecycle"},{"path":"src/core/ref.ts","kind":"import-statement","original":"./ref"},{"path":"src/core/useable.ts","kind":"import-statement","original":"./useable"},{"path":"src/core/context.ts","kind":"import-statement","original":"./context"},{"path":"src/core/reactive.ts","kind":"import-statement","original":"./reactive"}],"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":9324,"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":2049,"imports":[{"path":"src/core/use.ts","kind":"import-statement","original":"../../core/use"},{"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":412,"imports":[{"path":"src/core/context.ts","kind":"import-statement","original":"../../core/context"},{"path":"src/core/use.ts","kind":"import-statement","original":"../../core/use"}],"format":"esm"},"src/dom/components/Suspense.tsx":{"bytes":1770,"imports":[{"path":"src/core/use.ts","kind":"import-statement","original":"../../core/use"},{"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":2854,"imports":[{"path":"src/core/use.ts","kind":"import-statement","original":"../../core/use"},{"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":373,"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":3207,"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/core/use.ts","kind":"import-statement","original":"../core/use"},{"path":"src/router/utils.ts","kind":"import-statement","original":"./utils"}],"format":"esm"},"src/jsx-runtime.ts":{"bytes":897,"imports":[],"format":"esm"},"src/router/dom/Route.tsx":{"bytes":106,"imports":[],"format":"esm"},"src/router/dom/Routes.tsx":{"bytes":2590,"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":744,"imports":[{"path":"src/core/use.ts","kind":"import-statement","original":"../../core/use"},{"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":447,"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":309,"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/css/runtime/hash.ts":{"bytes":290,"imports":[],"format":"esm"},"src/css/runtime/serialize.ts":{"bytes":2900,"imports":[],"format":"esm"},"src/css/runtime/sheet.ts":{"bytes":2860,"imports":[],"format":"esm"},"src/css/css.ts":{"bytes":1214,"imports":[{"path":"src/css/runtime/hash.ts","kind":"import-statement","original":"./runtime/hash"},{"path":"src/css/runtime/serialize.ts","kind":"import-statement","original":"./runtime/serialize"},{"path":"src/css/runtime/sheet.ts","kind":"import-statement","original":"./runtime/sheet"}],"format":"esm"},"src/css/styled.ts":{"bytes":5571,"imports":[{"path":"src/css/css.ts","kind":"import-statement","original":"./css"}],"format":"esm"},"src/css/keyframes.ts":{"bytes":1005,"imports":[{"path":"src/css/runtime/hash.ts","kind":"import-statement","original":"./runtime/hash"},{"path":"src/css/runtime/serialize.ts","kind":"import-statement","original":"./runtime/serialize"},{"path":"src/css/runtime/sheet.ts","kind":"import-statement","original":"./runtime/sheet"}],"format":"esm"},"src/css/index.ts":{"bytes":1086,"imports":[{"path":"src/css/css.ts","kind":"import-statement","original":"./css"},{"path":"src/css/styled.ts","kind":"import-statement","original":"./styled"},{"path":"src/css/keyframes.ts","kind":"import-statement","original":"./keyframes"},{"path":"src/css/runtime/sheet.ts","kind":"import-statement","original":"./runtime/sheet"}],"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/render-ZDUF6JTQ.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":93},"dist/render-ZDUF6JTQ.mjs":{"imports":[{"path":"dist/chunk-LEL6ICHK.mjs","kind":"import-statement"},{"path":"dist/chunk-NRPWBHKP.mjs","kind":"import-statement"},{"path":"dist/chunk-64L26RKO.mjs","kind":"import-statement"}],"exports":["reconcile","render"],"entryPoint":"src/dom/render.ts","inputs":{},"bytes":132},"dist/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":204},"dist/index.mjs":{"imports":[],"exports":["VERSION"],"entryPoint":"src/index.ts","inputs":{"src/index.ts":{"bytesInOutput":15}},"bytes":37},"dist/core.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":1066},"dist/core.mjs":{"imports":[{"path":"dist/chunk-4DTHOZSY.mjs","kind":"import-statement"},{"path":"dist/chunk-NRPWBHKP.mjs","kind":"import-statement"},{"path":"dist/chunk-64L26RKO.mjs","kind":"import-statement"}],"exports":["Context","Useable","getContextValue","isReactive","isUseable","popContext","pushContext","sync","use","useRef"],"entryPoint":"src/core/index.ts","inputs":{"src/core/index.ts":{"bytesInOutput":0},"src/core/ref.ts":{"bytesInOutput":42}},"bytes":365},"dist/dom.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":27909},"dist/dom.mjs":{"imports":[{"path":"dist/chunk-LEL6ICHK.mjs","kind":"import-statement"},{"path":"dist/chunk-4DTHOZSY.mjs","kind":"import-statement"},{"path":"dist/chunk-NRPWBHKP.mjs","kind":"import-statement"},{"path":"dist/chunk-64L26RKO.mjs","kind":"import-statement"},{"path":"dist/render-ZDUF6JTQ.mjs","kind":"dynamic-import"}],"exports":["ErrorBoundary","Portal","Suspense","f","hydrate","lazy","render"],"entryPoint":"src/dom/index.ts","inputs":{"src/dom/f.ts":{"bytesInOutput":70},"src/dom/index.ts":{"bytesInOutput":0},"src/dom/hydrate.ts":{"bytesInOutput":2734},"src/dom/components/Portal.tsx":{"bytesInOutput":500},"src/dom/components/index.ts":{"bytesInOutput":0},"src/dom/components/suspenseContext.ts":{"bytesInOutput":84},"src/dom/components/Suspense.tsx":{"bytesInOutput":293},"src/dom/components/ErrorBoundary.tsx":{"bytesInOutput":500},"src/dom/components/lazy.ts":{"bytesInOutput":249}},"bytes":4718},"dist/chunk-LEL6ICHK.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":23945},"dist/chunk-LEL6ICHK.mjs":{"imports":[{"path":"dist/chunk-NRPWBHKP.mjs","kind":"import-statement"},{"path":"dist/chunk-64L26RKO.mjs","kind":"import-statement"}],"exports":["a","b"],"inputs":{"src/dom/render.ts":{"bytesInOutput":4853}},"bytes":4965},"dist/server.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":12945},"dist/server.mjs":{"imports":[{"path":"dist/chunk-64L26RKO.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":2590},"dist/router.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":17333},"dist/router.mjs":{"imports":[{"path":"dist/chunk-4DTHOZSY.mjs","kind":"import-statement"},{"path":"dist/chunk-NRPWBHKP.mjs","kind":"import-statement"},{"path":"dist/chunk-64L26RKO.mjs","kind":"import-statement"},{"path":"dist/chunk-RUYGSYEV.mjs","kind":"import-statement"}],"exports":["Link","Outlet","Route","Routes","useLocation","useNavigate","useParams","useQuery","useRouter"],"entryPoint":"src/router/index.ts","inputs":{"src/router/index.ts":{"bytesInOutput":0},"src/router/utils.ts":{"bytesInOutput":1073},"src/router/router.ts":{"bytesInOutput":859},"src/router/dom/Route.tsx":{"bytesInOutput":26},"src/router/dom/Routes.tsx":{"bytesInOutput":638},"src/router/dom/Outlet.tsx":{"bytesInOutput":244},"src/router/dom/Link.tsx":{"bytesInOutput":133}},"bytes":3259},"dist/chunk-4DTHOZSY.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":18686},"dist/chunk-4DTHOZSY.mjs":{"imports":[{"path":"dist/chunk-NRPWBHKP.mjs","kind":"import-statement"},{"path":"dist/chunk-64L26RKO.mjs","kind":"import-statement"}],"exports":["a","b","c"],"inputs":{"src/core/reactive.ts":{"bytesInOutput":590},"src/core/devtools.ts":{"bytesInOutput":372},"src/core/use.ts":{"bytesInOutput":2074}},"bytes":3176},"dist/chunk-NRPWBHKP.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":4599},"dist/chunk-NRPWBHKP.mjs":{"imports":[],"exports":["a","b","c","d","e"],"inputs":{"src/core/lifecycle.ts":{"bytesInOutput":813}},"bytes":857},"dist/chunk-64L26RKO.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":6677},"dist/chunk-64L26RKO.mjs":{"imports":[],"exports":["a","b","c","d","e","f","g","h"],"inputs":{"src/core/hook.ts":{"bytesInOutput":227},"src/core/useable.ts":{"bytesInOutput":137},"src/core/context.ts":{"bytesInOutput":397}},"bytes":821},"dist/css.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":20385},"dist/css.mjs":{"imports":[],"exports":["css","cx","getStyleTag","getStyles","hydrateStyles","keyframes","resetStyles","styled"],"entryPoint":"src/css/index.ts","inputs":{"src/css/runtime/hash.ts":{"bytesInOutput":112},"src/css/runtime/serialize.ts":{"bytesInOutput":1199},"src/css/runtime/sheet.ts":{"bytesInOutput":892},"src/css/css.ts":{"bytesInOutput":147},"src/css/index.ts":{"bytesInOutput":0},"src/css/styled.ts":{"bytesInOutput":777},"src/css/keyframes.ts":{"bytesInOutput":91}},"bytes":3339},"dist/jsx-runtime.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":93},"dist/jsx-runtime.mjs":{"imports":[{"path":"dist/chunk-RUYGSYEV.mjs","kind":"import-statement"}],"exports":["Fragment","jsx","jsxDEV","jsxs"],"entryPoint":"src/jsx-runtime.ts","inputs":{},"bytes":96},"dist/jsx-dev-runtime.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":510},"dist/jsx-dev-runtime.mjs":{"imports":[{"path":"dist/chunk-RUYGSYEV.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-RUYGSYEV.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":1544},"dist/chunk-RUYGSYEV.mjs":{"imports":[],"exports":["a","b","c","d"],"inputs":{"src/jsx-runtime.ts":{"bytesInOutput":217}},"bytes":254}}}
@@ -0,0 +1,2 @@
1
+ 'use strict';var chunkBGXOI2CB_js=require('./chunk-BGXOI2CB.js');require('./chunk-3CKIHQIE.js'),require('./chunk-44IBO7Q7.js');Object.defineProperty(exports,"reconcile",{enumerable:true,get:function(){return chunkBGXOI2CB_js.a}});Object.defineProperty(exports,"render",{enumerable:true,get:function(){return chunkBGXOI2CB_js.b}});//# sourceMappingURL=render-5F2KRAJI.js.map
2
+ //# sourceMappingURL=render-5F2KRAJI.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":[],"names":[],"mappings":"","file":"render-MJ2LCNSG.js"}
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"render-5F2KRAJI.js"}
@@ -0,0 +1,2 @@
1
+ export{a as reconcile,b as render}from'./chunk-LEL6ICHK.mjs';import'./chunk-NRPWBHKP.mjs';import'./chunk-64L26RKO.mjs';//# sourceMappingURL=render-ZDUF6JTQ.mjs.map
2
+ //# sourceMappingURL=render-ZDUF6JTQ.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":[],"names":[],"mappings":"","file":"render-4HB53K66.mjs"}
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"render-ZDUF6JTQ.mjs"}
package/dist/router.js CHANGED
@@ -1,2 +1,2 @@
1
- 'use strict';var chunkACYN2UKT_js=require('./chunk-ACYN2UKT.js');require('./chunk-3CKIHQIE.js');var chunkE6Z7AI4J_js=require('./chunk-E6Z7AI4J.js'),chunkTFXBDC6C_js=require('./chunk-TFXBDC6C.js');function k(t){if(!t)return {};if(typeof URLSearchParams<"u"){let e=new URLSearchParams(t),r={};return e.forEach((n,o)=>r[o]=n),r}return t.substring(1).split("&").reduce((e,r)=>{let[n,o]=r.split("=");return n&&(e[decodeURIComponent(n)]=decodeURIComponent(o||"")),e},{})}function D(t){return !!(t.length>2048||t.includes("__proto__")||t.includes("constructor")||/^\s*javascript:/i.test(t))}function R(t){let e=[];return t.forEach(r=>{if(!r)return;let{path:n,component:o,children:i,beforeEnter:f}=r.props||{},u={path:n||"/",component:o,beforeEnter:f};if(i){let c=Array.isArray(i)?i:[i];u.children=R(c);}!u.children&&r.children&&r.children.length>0&&(u.children=R(r.children)),e.push(u);}),e}function E(t,e){for(let r of t){let n=r.path,o=T(n,e);if(o)return [{route:r,params:o.params,pathname:o.path}]}return null}function T(t,e){let r=t.split("/").filter(Boolean),n=e.split("/").filter(Boolean);if(r.length!==n.length)return null;let o={};for(let i=0;i<r.length;i++){let f=r[i],u=n[i];if(f.startsWith(":")){let c=f.slice(1);o[c]=u;}else if(f!==u)return null}return {params:o,path:e}}var L=new chunkE6Z7AI4J_js.c(null),p=new chunkE6Z7AI4J_js.c(0),U=()=>({pathname:"/",search:"",hash:"",query:{}}),w=()=>typeof window>"u"?U():{pathname:window.location.pathname,search:window.location.search,hash:window.location.hash,query:k(window.location.search)},l=null,y=null,N=false;function d(){if(l&&y)return [l,y];l=chunkACYN2UKT_js.a(w());let t=e=>{l&&(l.pathname=e.pathname,l.search=e.search,l.hash=e.hash,l.query=e.query);};return y=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=w();t(r);},typeof window<"u"&&!N&&(window.addEventListener("popstate",()=>{t(w());}),N=true),[l,y]}function m(){let[t]=chunkACYN2UKT_js.c(L);if(!t)throw new Error("useRouter() must be called within a <Routes> component");return t}function j(){let[,t]=d();return t}function q(){return m().params}function _(){let[t]=d();return t.query}function x(t){return null}function F(t){return t&&typeof t=="object"&&("type"in t||Array.isArray(t))}function Q(t){let[e,r]=d(),n=Array.isArray(t.children)?t.children:[t.children],o=n.filter(s=>F(s)&&s.type===x),i=n.filter(s=>!F(s)||s.type!==x),f=R(o),u=e.pathname,c=E(f,u)||[],A=c.length>0?c[c.length-1].params:{},S={location:e,navigate:r,matches:c,params:A},C=null;if(c.length>0){let s=c[0],P=s.route.component,g=u;s.route.beforeEnter?s.route.beforeEnter(s.params)!==false&&(C=chunkTFXBDC6C_js.a(p.Provider,{value:1,key:g,children:chunkTFXBDC6C_js.a(P,{params:s.params,key:g})})):C=chunkTFXBDC6C_js.a(p.Provider,{value:1,key:g,children:chunkTFXBDC6C_js.a(P,{params:s.params,key:g})});}return chunkTFXBDC6C_js.a(L.Provider,{value:S,children:[...i,C]})}function B(){let t=m(),[e]=chunkACYN2UKT_js.c(p),r=e??0,[n]=chunkACYN2UKT_js.c(()=>t.matches);if(r>=n.length)return null;let o=n[r],i=o.route.component;return o.route.beforeEnter&&o.route.beforeEnter(o.params)===false?null:chunkTFXBDC6C_js.a(p.Provider,{value:r+1,children:chunkTFXBDC6C_js.a(i,{params:o.params})})}function M(t){let e=m();return chunkTFXBDC6C_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=x;exports.Routes=Q;exports.useLocation=d;exports.useNavigate=j;exports.useParams=q;exports.useQuery=_;exports.useRouter=m;//# sourceMappingURL=router.js.map
1
+ 'use strict';var chunk6AVHHBFG_js=require('./chunk-6AVHHBFG.js');require('./chunk-3CKIHQIE.js');var chunk44IBO7Q7_js=require('./chunk-44IBO7Q7.js'),chunkTFXBDC6C_js=require('./chunk-TFXBDC6C.js');function k(t){if(!t)return {};if(typeof URLSearchParams<"u"){let e=new URLSearchParams(t),r={};return e.forEach((n,o)=>r[o]=n),r}return t.substring(1).split("&").reduce((e,r)=>{let[n,o]=r.split("=");return n&&(e[decodeURIComponent(n)]=decodeURIComponent(o||"")),e},{})}function D(t){return !!(t.length>2048||t.includes("__proto__")||t.includes("constructor")||/^\s*javascript:/i.test(t))}function R(t){let e=[];return t.forEach(r=>{if(!r)return;let{path:n,component:o,children:i,beforeEnter:f}=r.props||{},u={path:n||"/",component:o,beforeEnter:f};if(i){let c=Array.isArray(i)?i:[i];u.children=R(c);}!u.children&&r.children&&r.children.length>0&&(u.children=R(r.children)),e.push(u);}),e}function E(t,e){for(let r of t){let n=r.path,o=T(n,e);if(o)return [{route:r,params:o.params,pathname:o.path}]}return null}function T(t,e){let r=t.split("/").filter(Boolean),n=e.split("/").filter(Boolean);if(r.length!==n.length)return null;let o={};for(let i=0;i<r.length;i++){let f=r[i],u=n[i];if(f.startsWith(":")){let c=f.slice(1);o[c]=u;}else if(f!==u)return null}return {params:o,path:e}}var L=new chunk44IBO7Q7_js.e(null),p=new chunk44IBO7Q7_js.e(0),U=()=>({pathname:"/",search:"",hash:"",query:{}}),w=()=>typeof window>"u"?U():{pathname:window.location.pathname,search:window.location.search,hash:window.location.hash,query:k(window.location.search)},l=null,y=null,N=false;function d(){if(l&&y)return [l,y];l=chunk6AVHHBFG_js.a(w());let t=e=>{l&&(l.pathname=e.pathname,l.search=e.search,l.hash=e.hash,l.query=e.query);};return y=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=w();t(r);},typeof window<"u"&&!N&&(window.addEventListener("popstate",()=>{t(w());}),N=true),[l,y]}function m(){let[t]=chunk6AVHHBFG_js.c(L);if(!t)throw new Error("useRouter() must be called within a <Routes> component");return t}function j(){let[,t]=d();return t}function q(){return m().params}function _(){let[t]=d();return t.query}function x(t){return null}function F(t){return t&&typeof t=="object"&&("type"in t||Array.isArray(t))}function Q(t){let[e,r]=d(),n=Array.isArray(t.children)?t.children:[t.children],o=n.filter(s=>F(s)&&s.type===x),i=n.filter(s=>!F(s)||s.type!==x),f=R(o),u=e.pathname,c=E(f,u)||[],A=c.length>0?c[c.length-1].params:{},S={location:e,navigate:r,matches:c,params:A},C=null;if(c.length>0){let s=c[0],P=s.route.component,g=u;s.route.beforeEnter?s.route.beforeEnter(s.params)!==false&&(C=chunkTFXBDC6C_js.a(p.Provider,{value:1,key:g,children:chunkTFXBDC6C_js.a(P,{params:s.params,key:g})})):C=chunkTFXBDC6C_js.a(p.Provider,{value:1,key:g,children:chunkTFXBDC6C_js.a(P,{params:s.params,key:g})});}return chunkTFXBDC6C_js.a(L.Provider,{value:S,children:[...i,C]})}function B(){let t=m(),[e]=chunk6AVHHBFG_js.c(p),r=e??0,[n]=chunk6AVHHBFG_js.c(()=>t.matches);if(r>=n.length)return null;let o=n[r],i=o.route.component;return o.route.beforeEnter&&o.route.beforeEnter(o.params)===false?null:chunkTFXBDC6C_js.a(p.Provider,{value:r+1,children:chunkTFXBDC6C_js.a(i,{params:o.params})})}function M(t){let e=m();return chunkTFXBDC6C_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=x;exports.Routes=Q;exports.useLocation=d;exports.useNavigate=j;exports.useParams=q;exports.useQuery=_;exports.useRouter=m;//# sourceMappingURL=router.js.map
2
2
  //# sourceMappingURL=router.js.map
package/dist/router.mjs CHANGED
@@ -1,2 +1,2 @@
1
- import {a,c as c$1}from'./chunk-3AKECLKA.mjs';import'./chunk-NRPWBHKP.mjs';import {c}from'./chunk-MI76R42D.mjs';import {a as a$1}from'./chunk-RUYGSYEV.mjs';function k(t){if(!t)return {};if(typeof URLSearchParams<"u"){let e=new URLSearchParams(t),r={};return e.forEach((n,o)=>r[o]=n),r}return t.substring(1).split("&").reduce((e,r)=>{let[n,o]=r.split("=");return n&&(e[decodeURIComponent(n)]=decodeURIComponent(o||"")),e},{})}function D(t){return !!(t.length>2048||t.includes("__proto__")||t.includes("constructor")||/^\s*javascript:/i.test(t))}function R(t){let e=[];return t.forEach(r=>{if(!r)return;let{path:n,component:o,children:i,beforeEnter:f}=r.props||{},u={path:n||"/",component:o,beforeEnter:f};if(i){let c=Array.isArray(i)?i:[i];u.children=R(c);}!u.children&&r.children&&r.children.length>0&&(u.children=R(r.children)),e.push(u);}),e}function E(t,e){for(let r of t){let n=r.path,o=T(n,e);if(o)return [{route:r,params:o.params,pathname:o.path}]}return null}function T(t,e){let r=t.split("/").filter(Boolean),n=e.split("/").filter(Boolean);if(r.length!==n.length)return null;let o={};for(let i=0;i<r.length;i++){let f=r[i],u=n[i];if(f.startsWith(":")){let c=f.slice(1);o[c]=u;}else if(f!==u)return null}return {params:o,path:e}}var L=new c(null),p=new c(0),U=()=>({pathname:"/",search:"",hash:"",query:{}}),w=()=>typeof window>"u"?U():{pathname:window.location.pathname,search:window.location.search,hash:window.location.hash,query:k(window.location.search)},l=null,y=null,N=false;function d(){if(l&&y)return [l,y];l=a(w());let t=e=>{l&&(l.pathname=e.pathname,l.search=e.search,l.hash=e.hash,l.query=e.query);};return y=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=w();t(r);},typeof window<"u"&&!N&&(window.addEventListener("popstate",()=>{t(w());}),N=true),[l,y]}function m(){let[t]=c$1(L);if(!t)throw new Error("useRouter() must be called within a <Routes> component");return t}function j(){let[,t]=d();return t}function q(){return m().params}function _(){let[t]=d();return t.query}function x(t){return null}function F(t){return t&&typeof t=="object"&&("type"in t||Array.isArray(t))}function Q(t){let[e,r]=d(),n=Array.isArray(t.children)?t.children:[t.children],o=n.filter(s=>F(s)&&s.type===x),i=n.filter(s=>!F(s)||s.type!==x),f=R(o),u=e.pathname,c=E(f,u)||[],A=c.length>0?c[c.length-1].params:{},S={location:e,navigate:r,matches:c,params:A},C=null;if(c.length>0){let s=c[0],P=s.route.component,g=u;s.route.beforeEnter?s.route.beforeEnter(s.params)!==false&&(C=a$1(p.Provider,{value:1,key:g,children:a$1(P,{params:s.params,key:g})})):C=a$1(p.Provider,{value:1,key:g,children:a$1(P,{params:s.params,key:g})});}return a$1(L.Provider,{value:S,children:[...i,C]})}function B(){let t=m(),[e]=c$1(p),r=e??0,[n]=c$1(()=>t.matches);if(r>=n.length)return null;let o=n[r],i=o.route.component;return o.route.beforeEnter&&o.route.beforeEnter(o.params)===false?null:a$1(p.Provider,{value:r+1,children:a$1(i,{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,x as Route,Q as Routes,d as useLocation,j as useNavigate,q as useParams,_ as useQuery,m as useRouter};//# sourceMappingURL=router.mjs.map
1
+ import {a,c}from'./chunk-4DTHOZSY.mjs';import'./chunk-NRPWBHKP.mjs';import {e}from'./chunk-64L26RKO.mjs';import {a as a$1}from'./chunk-RUYGSYEV.mjs';function k(t){if(!t)return {};if(typeof URLSearchParams<"u"){let e=new URLSearchParams(t),r={};return e.forEach((n,o)=>r[o]=n),r}return t.substring(1).split("&").reduce((e,r)=>{let[n,o]=r.split("=");return n&&(e[decodeURIComponent(n)]=decodeURIComponent(o||"")),e},{})}function D(t){return !!(t.length>2048||t.includes("__proto__")||t.includes("constructor")||/^\s*javascript:/i.test(t))}function R(t){let e=[];return t.forEach(r=>{if(!r)return;let{path:n,component:o,children:i,beforeEnter:f}=r.props||{},u={path:n||"/",component:o,beforeEnter:f};if(i){let c=Array.isArray(i)?i:[i];u.children=R(c);}!u.children&&r.children&&r.children.length>0&&(u.children=R(r.children)),e.push(u);}),e}function E(t,e){for(let r of t){let n=r.path,o=T(n,e);if(o)return [{route:r,params:o.params,pathname:o.path}]}return null}function T(t,e){let r=t.split("/").filter(Boolean),n=e.split("/").filter(Boolean);if(r.length!==n.length)return null;let o={};for(let i=0;i<r.length;i++){let f=r[i],u=n[i];if(f.startsWith(":")){let c=f.slice(1);o[c]=u;}else if(f!==u)return null}return {params:o,path:e}}var L=new e(null),p=new e(0),U=()=>({pathname:"/",search:"",hash:"",query:{}}),w=()=>typeof window>"u"?U():{pathname:window.location.pathname,search:window.location.search,hash:window.location.hash,query:k(window.location.search)},l=null,y=null,N=false;function d(){if(l&&y)return [l,y];l=a(w());let t=e=>{l&&(l.pathname=e.pathname,l.search=e.search,l.hash=e.hash,l.query=e.query);};return y=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=w();t(r);},typeof window<"u"&&!N&&(window.addEventListener("popstate",()=>{t(w());}),N=true),[l,y]}function m(){let[t]=c(L);if(!t)throw new Error("useRouter() must be called within a <Routes> component");return t}function j(){let[,t]=d();return t}function q(){return m().params}function _(){let[t]=d();return t.query}function x(t){return null}function F(t){return t&&typeof t=="object"&&("type"in t||Array.isArray(t))}function Q(t){let[e,r]=d(),n=Array.isArray(t.children)?t.children:[t.children],o=n.filter(s=>F(s)&&s.type===x),i=n.filter(s=>!F(s)||s.type!==x),f=R(o),u=e.pathname,c=E(f,u)||[],A=c.length>0?c[c.length-1].params:{},S={location:e,navigate:r,matches:c,params:A},C=null;if(c.length>0){let s=c[0],P=s.route.component,g=u;s.route.beforeEnter?s.route.beforeEnter(s.params)!==false&&(C=a$1(p.Provider,{value:1,key:g,children:a$1(P,{params:s.params,key:g})})):C=a$1(p.Provider,{value:1,key:g,children:a$1(P,{params:s.params,key:g})});}return a$1(L.Provider,{value:S,children:[...i,C]})}function B(){let t=m(),[e]=c(p),r=e??0,[n]=c(()=>t.matches);if(r>=n.length)return null;let o=n[r],i=o.route.component;return o.route.beforeEnter&&o.route.beforeEnter(o.params)===false?null:a$1(p.Provider,{value:r+1,children:a$1(i,{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,x as Route,Q as Routes,d as useLocation,j as useNavigate,q as useParams,_ as useQuery,m as useRouter};//# sourceMappingURL=router.mjs.map
2
2
  //# sourceMappingURL=router.mjs.map
@@ -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","routeSegment","locationSegment","RouterCtx","Context","RouteDepthCtx","getDefaultLocation","getCurrentLocation","globalLocation","globalNavigate","popstateListenerAttached","useLocation","reactive","updateLocation","newLocation","useRouter","routerContext","use","useNavigate","navigate","useParams","useQuery","location","Route","_props","isFNode","node","Routes","props","currentLocation","childrenList","routeNodes","otherChildren","routeDefinitions","currentPath","matches","matchedContent","rootMatch","Component","routeKey","jsx","Outlet","depthValue","depth","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 { Context } from '../core/context'\nimport { use } from '../core/use'\nimport type { Location, RouterContext } from './types'\nimport { parseQuery, isUnsafePath } from './utils'\n\n// Contexts\nexport const RouterCtx = new Context<RouterContext>(null as any)\nexport const RouteDepthCtx = new Context<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 useLocation(): [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 - returns full router context\nexport function useRouter(): RouterContext {\n const [routerContext] = use(RouterCtx)\n if (!routerContext) {\n throw new Error('useRouter() must be called within a <Routes> component')\n }\n return routerContext\n}\n\n// Navigate hook - returns navigate function\nexport function useNavigate(): (path: string) => void {\n const [, navigate] = useLocation()\n return navigate\n}\n\n// Params hook - returns route params\nexport function useParams<T extends Record<string, string> = Record<string, string>>(): T {\n const router = useRouter()\n return router.params as T\n}\n\n// Query hook - returns query params\nexport function useQuery<T extends Record<string, string> = Record<string, string>>(): T {\n const [location] = useLocation()\n return location.query as T\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/types'\nimport { RouterCtx, RouteDepthCtx, useLocation } 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] = useLocation()\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 { use } from '../../core/use'\nimport { jsx as f } from '../../jsx-runtime'\nimport { RouteDepthCtx, useRouter } from '../router'\n\nexport function Outlet() {\n const routerContext = useRouter()\n const [depthValue] = use(RouteDepthCtx)\n const depth = depthValue ?? 0\n\n const [matches] = use(() => 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 { useRouter } from '../router'\n\nexport function Link(props: LinkProps) {\n const routerContext = useRouter()\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","routeSegment","locationSegment","RouterCtx","Context","RouteDepthCtx","getDefaultLocation","getCurrentLocation","globalLocation","globalNavigate","popstateListenerAttached","useLocation","reactive","updateLocation","newLocation","useRouter","routerContext","use","useNavigate","navigate","useParams","useQuery","location","Route","_props","isFNode","node","Routes","props","currentLocation","childrenList","routeNodes","otherChildren","routeDefinitions","currentPath","matches","matchedContent","rootMatch","Component","routeKey","jsx","Outlet","depthValue","depth","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 { Context } from '../core/context'\nimport { use } from '../core/use'\nimport type { Location, RouterContext } from './types'\nimport { parseQuery, isUnsafePath } from './utils'\n\n// Contexts\nexport const RouterCtx = new Context<RouterContext>(null as any)\nexport const RouteDepthCtx = new Context<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 useLocation(): [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 - returns full router context\nexport function useRouter(): RouterContext {\n const [routerContext] = use(RouterCtx)\n if (!routerContext) {\n throw new Error('useRouter() must be called within a <Routes> component')\n }\n return routerContext\n}\n\n// Navigate hook - returns navigate function\nexport function useNavigate(): (path: string) => void {\n const [, navigate] = useLocation()\n return navigate\n}\n\n// Params hook - returns route params\nexport function useParams<T extends Record<string, string> = Record<string, string>>(): T {\n const router = useRouter()\n return router.params as T\n}\n\n// Query hook - returns query params\nexport function useQuery<T extends Record<string, string> = Record<string, string>>(): T {\n const [location] = useLocation()\n return location.query as T\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/types'\nimport { RouterCtx, RouteDepthCtx, useLocation } 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] = useLocation()\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 { use } from '../../core/use'\nimport { jsx as f } from '../../jsx-runtime'\nimport { RouteDepthCtx, useRouter } from '../router'\n\nexport function Outlet() {\n const routerContext = useRouter()\n const [depthValue] = use(RouteDepthCtx)\n const depth = depthValue ?? 0\n\n const [matches] = use(() => 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 { useRouter } from '../router'\n\nexport function Link(props: LinkProps) {\n const routerContext = useRouter()\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/server.js CHANGED
@@ -1,2 +1,2 @@
1
- 'use strict';var chunkE6Z7AI4J_js=require('./chunk-E6Z7AI4J.js');var $={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#x27;"},F=/[&<>"']/g;function l(e){return String(e).replace(F,r=>$[r])}function a(e){return l(e)}var f=false,d=null,h=0;function I(){return f}function b(){f=true,d=new Map,h=0;}function S(){f=false;let e=Object.fromEntries(d||new Map);return d=null,{states:e}}function x(){return `fid-${h++}`}var T=new Set(["area","base","br","col","embed","hr","img","input","link","meta","param","source","track","wbr"]),v=new Set(["disabled","checked","readonly","required","hidden","selected","autofocus","autoplay","controls","loop","muted","multiple","open","defer","async","novalidate"]),A={className:"class",htmlFor:"for"};function R(e,r={}){let{hydrate:n=true}=r;b();try{let t;typeof e=="function"&&!N(e)?t={type:e,props:{},children:[],key:void 0}:t=e;let o=p(t,n),i=S();return {html:o,state:i}}catch(t){throw S(),t}}function E(e){let{html:r}=R(e,{hydrate:false});return r}function N(e){return e&&typeof e=="object"&&"type"in e&&"props"in e}function p(e,r){if(e==null||typeof e=="boolean")return "";if(typeof e=="string"||typeof e=="number")return l(String(e));if(Array.isArray(e))return e.map(n=>p(n,r)).join("");if(typeof e=="function")return C({type:e,props:{},children:[]},r);if(typeof e=="object"&&N(e)){if(typeof e.type=="string")return w(e,r);if(typeof e.type=="function")return C(e,r)}return ""}function w(e,r){let n=e.type,t=j(e.props,r);if(e.props?.dangerouslySetInnerHTML){let i=e.props.dangerouslySetInnerHTML.__html||"";return `<${n}${t}>${i}</${n}>`}if(T.has(n))return `<${n}${t}>`;let o=(e.children||[]).map(i=>p(i,r)).join("");return `<${n}${t}>${o}</${n}>`}function j(e,r){if(!e)return "";let n=[];if(r){let t=x();n.push(`data-fid="${t}"`);}for(let[t,o]of Object.entries(e)){if(t.startsWith("on")||t==="ref"||t==="key"||t==="children"||t==="dangerouslySetInnerHTML"||o==null)continue;let i=A[t]||t;if(t==="style"&&typeof o=="object"){let c=Object.entries(o).filter(([,s])=>s!=null).map(([s,u])=>`${k(s)}:${u}`).join(";");c&&n.push(`style="${a(c)}"`);continue}if(v.has(i)){o&&n.push(i);continue}o!==false&&n.push(`${i}="${a(String(o))}"`);}return n.length?" "+n.join(" "):""}function C(e,r){let n=e.type,t={...e.props};e.children&&e.children.length>0&&(t.children=e.children.length===1?e.children[0]:e.children);let o=n._contextId,i=o!==void 0,c;i&&(c=chunkE6Z7AI4J_js.e(o,t.value));let s={hooks:[],hookIndex:0};try{let u=chunkE6Z7AI4J_js.a(s,()=>n(t));return p(u,r)}finally{i&&chunkE6Z7AI4J_js.f(o,c);}}function k(e){return e.replace(/([A-Z])/g,"-$1").toLowerCase()}exports.getIsServer=I;exports.renderToStaticMarkup=E;exports.renderToString=R;//# sourceMappingURL=server.js.map
1
+ 'use strict';var chunk44IBO7Q7_js=require('./chunk-44IBO7Q7.js');var $={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#x27;"},F=/[&<>"']/g;function l(e){return String(e).replace(F,r=>$[r])}function a(e){return l(e)}var f=false,d=null,h=0;function I(){return f}function b(){f=true,d=new Map,h=0;}function S(){f=false;let e=Object.fromEntries(d||new Map);return d=null,{states:e}}function x(){return `fid-${h++}`}var T=new Set(["area","base","br","col","embed","hr","img","input","link","meta","param","source","track","wbr"]),v=new Set(["disabled","checked","readonly","required","hidden","selected","autofocus","autoplay","controls","loop","muted","multiple","open","defer","async","novalidate"]),A={className:"class",htmlFor:"for"};function R(e,r={}){let{hydrate:n=true}=r;b();try{let t;typeof e=="function"&&!N(e)?t={type:e,props:{},children:[],key:void 0}:t=e;let o=p(t,n),i=S();return {html:o,state:i}}catch(t){throw S(),t}}function E(e){let{html:r}=R(e,{hydrate:false});return r}function N(e){return e&&typeof e=="object"&&"type"in e&&"props"in e}function p(e,r){if(e==null||typeof e=="boolean")return "";if(typeof e=="string"||typeof e=="number")return l(String(e));if(Array.isArray(e))return e.map(n=>p(n,r)).join("");if(typeof e=="function")return C({type:e,props:{},children:[]},r);if(typeof e=="object"&&N(e)){if(typeof e.type=="string")return w(e,r);if(typeof e.type=="function")return C(e,r)}return ""}function w(e,r){let n=e.type,t=j(e.props,r);if(e.props?.dangerouslySetInnerHTML){let i=e.props.dangerouslySetInnerHTML.__html||"";return `<${n}${t}>${i}</${n}>`}if(T.has(n))return `<${n}${t}>`;let o=(e.children||[]).map(i=>p(i,r)).join("");return `<${n}${t}>${o}</${n}>`}function j(e,r){if(!e)return "";let n=[];if(r){let t=x();n.push(`data-fid="${t}"`);}for(let[t,o]of Object.entries(e)){if(t.startsWith("on")||t==="ref"||t==="key"||t==="children"||t==="dangerouslySetInnerHTML"||o==null)continue;let i=A[t]||t;if(t==="style"&&typeof o=="object"){let c=Object.entries(o).filter(([,s])=>s!=null).map(([s,u])=>`${k(s)}:${u}`).join(";");c&&n.push(`style="${a(c)}"`);continue}if(v.has(i)){o&&n.push(i);continue}o!==false&&n.push(`${i}="${a(String(o))}"`);}return n.length?" "+n.join(" "):""}function C(e,r){let n=e.type,t={...e.props};e.children&&e.children.length>0&&(t.children=e.children.length===1?e.children[0]:e.children);let o=n._contextId,i=o!==void 0,c;i&&(c=chunk44IBO7Q7_js.g(o,t.value));let s={hooks:[],hookIndex:0};try{let u=chunk44IBO7Q7_js.a(s,()=>n(t));return p(u,r)}finally{i&&chunk44IBO7Q7_js.h(o,c);}}function k(e){return e.replace(/([A-Z])/g,"-$1").toLowerCase()}exports.getIsServer=I;exports.renderToStaticMarkup=E;exports.renderToString=R;//# sourceMappingURL=server.js.map
2
2
  //# sourceMappingURL=server.js.map
package/dist/server.mjs CHANGED
@@ -1,2 +1,2 @@
1
- import {e,a as a$1,f as f$1}from'./chunk-MI76R42D.mjs';var $={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#x27;"},F=/[&<>"']/g;function l(e){return String(e).replace(F,r=>$[r])}function a(e){return l(e)}var f=false,d=null,h=0;function I(){return f}function b(){f=true,d=new Map,h=0;}function S(){f=false;let e=Object.fromEntries(d||new Map);return d=null,{states:e}}function x(){return `fid-${h++}`}var T=new Set(["area","base","br","col","embed","hr","img","input","link","meta","param","source","track","wbr"]),v=new Set(["disabled","checked","readonly","required","hidden","selected","autofocus","autoplay","controls","loop","muted","multiple","open","defer","async","novalidate"]),A={className:"class",htmlFor:"for"};function R(e,r={}){let{hydrate:n=true}=r;b();try{let t;typeof e=="function"&&!N(e)?t={type:e,props:{},children:[],key:void 0}:t=e;let o=p(t,n),i=S();return {html:o,state:i}}catch(t){throw S(),t}}function E(e){let{html:r}=R(e,{hydrate:false});return r}function N(e){return e&&typeof e=="object"&&"type"in e&&"props"in e}function p(e,r){if(e==null||typeof e=="boolean")return "";if(typeof e=="string"||typeof e=="number")return l(String(e));if(Array.isArray(e))return e.map(n=>p(n,r)).join("");if(typeof e=="function")return C({type:e,props:{},children:[]},r);if(typeof e=="object"&&N(e)){if(typeof e.type=="string")return w(e,r);if(typeof e.type=="function")return C(e,r)}return ""}function w(e,r){let n=e.type,t=j(e.props,r);if(e.props?.dangerouslySetInnerHTML){let i=e.props.dangerouslySetInnerHTML.__html||"";return `<${n}${t}>${i}</${n}>`}if(T.has(n))return `<${n}${t}>`;let o=(e.children||[]).map(i=>p(i,r)).join("");return `<${n}${t}>${o}</${n}>`}function j(e,r){if(!e)return "";let n=[];if(r){let t=x();n.push(`data-fid="${t}"`);}for(let[t,o]of Object.entries(e)){if(t.startsWith("on")||t==="ref"||t==="key"||t==="children"||t==="dangerouslySetInnerHTML"||o==null)continue;let i=A[t]||t;if(t==="style"&&typeof o=="object"){let c=Object.entries(o).filter(([,s])=>s!=null).map(([s,u])=>`${k(s)}:${u}`).join(";");c&&n.push(`style="${a(c)}"`);continue}if(v.has(i)){o&&n.push(i);continue}o!==false&&n.push(`${i}="${a(String(o))}"`);}return n.length?" "+n.join(" "):""}function C(e$1,r){let n=e$1.type,t={...e$1.props};e$1.children&&e$1.children.length>0&&(t.children=e$1.children.length===1?e$1.children[0]:e$1.children);let o=n._contextId,i=o!==void 0,c;i&&(c=e(o,t.value));let s={hooks:[],hookIndex:0};try{let u=a$1(s,()=>n(t));return p(u,r)}finally{i&&f$1(o,c);}}function k(e){return e.replace(/([A-Z])/g,"-$1").toLowerCase()}export{I as getIsServer,E as renderToStaticMarkup,R as renderToString};//# sourceMappingURL=server.mjs.map
1
+ import {g,a as a$1,h as h$1}from'./chunk-64L26RKO.mjs';var $={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#x27;"},F=/[&<>"']/g;function l(e){return String(e).replace(F,r=>$[r])}function a(e){return l(e)}var f=false,d=null,h=0;function I(){return f}function b(){f=true,d=new Map,h=0;}function S(){f=false;let e=Object.fromEntries(d||new Map);return d=null,{states:e}}function x(){return `fid-${h++}`}var T=new Set(["area","base","br","col","embed","hr","img","input","link","meta","param","source","track","wbr"]),v=new Set(["disabled","checked","readonly","required","hidden","selected","autofocus","autoplay","controls","loop","muted","multiple","open","defer","async","novalidate"]),A={className:"class",htmlFor:"for"};function R(e,r={}){let{hydrate:n=true}=r;b();try{let t;typeof e=="function"&&!N(e)?t={type:e,props:{},children:[],key:void 0}:t=e;let o=p(t,n),i=S();return {html:o,state:i}}catch(t){throw S(),t}}function E(e){let{html:r}=R(e,{hydrate:false});return r}function N(e){return e&&typeof e=="object"&&"type"in e&&"props"in e}function p(e,r){if(e==null||typeof e=="boolean")return "";if(typeof e=="string"||typeof e=="number")return l(String(e));if(Array.isArray(e))return e.map(n=>p(n,r)).join("");if(typeof e=="function")return C({type:e,props:{},children:[]},r);if(typeof e=="object"&&N(e)){if(typeof e.type=="string")return w(e,r);if(typeof e.type=="function")return C(e,r)}return ""}function w(e,r){let n=e.type,t=j(e.props,r);if(e.props?.dangerouslySetInnerHTML){let i=e.props.dangerouslySetInnerHTML.__html||"";return `<${n}${t}>${i}</${n}>`}if(T.has(n))return `<${n}${t}>`;let o=(e.children||[]).map(i=>p(i,r)).join("");return `<${n}${t}>${o}</${n}>`}function j(e,r){if(!e)return "";let n=[];if(r){let t=x();n.push(`data-fid="${t}"`);}for(let[t,o]of Object.entries(e)){if(t.startsWith("on")||t==="ref"||t==="key"||t==="children"||t==="dangerouslySetInnerHTML"||o==null)continue;let i=A[t]||t;if(t==="style"&&typeof o=="object"){let c=Object.entries(o).filter(([,s])=>s!=null).map(([s,u])=>`${k(s)}:${u}`).join(";");c&&n.push(`style="${a(c)}"`);continue}if(v.has(i)){o&&n.push(i);continue}o!==false&&n.push(`${i}="${a(String(o))}"`);}return n.length?" "+n.join(" "):""}function C(e,r){let n=e.type,t={...e.props};e.children&&e.children.length>0&&(t.children=e.children.length===1?e.children[0]:e.children);let o=n._contextId,i=o!==void 0,c;i&&(c=g(o,t.value));let s={hooks:[],hookIndex:0};try{let u=a$1(s,()=>n(t));return p(u,r)}finally{i&&h$1(o,c);}}function k(e){return e.replace(/([A-Z])/g,"-$1").toLowerCase()}export{I as getIsServer,E as renderToStaticMarkup,R as renderToString};//# sourceMappingURL=server.mjs.map
2
2
  //# sourceMappingURL=server.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/server/escape.ts","../src/server/serverState.ts","../src/server/renderToString.ts"],"names":["ESCAPE_MAP","ESCAPE_REGEX","escapeHtml","str","char","escapeAttribute","isServerRendering","serverStateCollector","hydrationIdCounter","getIsServer","enterServerRender","exitServerRender","states","generateHydrationId","VOID_ELEMENTS","BOOLEAN_ATTRS","ATTR_ALIASES","renderToString","app","options","hydrate","fnode","isFNode","html","renderNodeToString","state","error","renderToStaticMarkup","value","includeHydrationMarkers","child","renderComponentToString","renderElementToString","tag","attrs","renderAttributes","innerHTML","childrenHtml","props","parts","fid","key","attrName","styleStr","v","k","kebabCase","Component","contextId","isProvider","prevContextValue","pushContext","instance","result","runWithComponent","popContext"],"mappings":"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","file":"server.mjs","sourcesContent":["const ESCAPE_MAP: Record<string, string> = {\n '&': '&amp;',\n '<': '&lt;',\n '>': '&gt;',\n '\"': '&quot;',\n \"'\": '&#x27;'\n}\n\nconst ESCAPE_REGEX = /[&<>\"']/g\n\nexport function escapeHtml(str: string): string {\n return String(str).replace(ESCAPE_REGEX, char => ESCAPE_MAP[char])\n}\n\nexport function escapeAttribute(str: string): string {\n return escapeHtml(str)\n}\n","import type { SerializedState } from './types'\n\nlet isServerRendering = false\nlet serverStateCollector: Map<string, unknown> | null = null\nlet hydrationIdCounter = 0\n\nexport function getIsServer(): boolean {\n return isServerRendering\n}\n\nexport function enterServerRender(): void {\n isServerRendering = true\n serverStateCollector = new Map()\n hydrationIdCounter = 0\n}\n\nexport function exitServerRender(): SerializedState {\n isServerRendering = false\n const states = Object.fromEntries(serverStateCollector || new Map())\n serverStateCollector = null\n\n return { states }\n}\n\nexport function collectServerState(key: string, value: unknown): void {\n if (serverStateCollector) {\n serverStateCollector.set(key, value)\n }\n}\n\nexport function generateHydrationId(): string {\n return `fid-${hydrationIdCounter++}`\n}\n\nexport function resetHydrationIdCounter(): void {\n hydrationIdCounter = 0\n}\n","import type { FNode, FNodeChild } from '../dom/types'\nimport type { SSROptions, SSRResult } from './types'\nimport { escapeHtml, escapeAttribute } from './escape'\nimport {\n enterServerRender,\n exitServerRender,\n generateHydrationId\n} from './serverState'\nimport { runWithComponent, ComponentInstance } from '../core/hook'\nimport { pushContext, popContext } from '../core/context'\n\n// Self-closing HTML tags\nconst VOID_ELEMENTS = new Set([\n 'area', 'base', 'br', 'col', 'embed', 'hr', 'img', 'input',\n 'link', 'meta', 'param', 'source', 'track', 'wbr'\n])\n\n// Attributes that should be rendered as boolean\nconst BOOLEAN_ATTRS = new Set([\n 'disabled', 'checked', 'readonly', 'required', 'hidden',\n 'selected', 'autofocus', 'autoplay', 'controls', 'loop', 'muted',\n 'multiple', 'open', 'defer', 'async', 'novalidate'\n])\n\n// Attributes that need special handling\nconst ATTR_ALIASES: Record<string, string> = {\n className: 'class',\n htmlFor: 'for'\n}\n\n/**\n * Render component tree to HTML string with hydration markers\n */\nexport function renderToString(\n app: FNodeChild | (() => FNodeChild),\n options: SSROptions = {}\n): SSRResult {\n const { hydrate = true } = options\n\n enterServerRender()\n\n try {\n // Normalize input - wrap function in FNode if needed\n let fnode: FNodeChild\n if (typeof app === 'function' && !isFNode(app)) {\n fnode = { type: app, props: {}, children: [], key: undefined }\n } else {\n fnode = app\n }\n\n const html = renderNodeToString(fnode, hydrate)\n const state = exitServerRender()\n\n return { html, state }\n } catch (error) {\n exitServerRender()\n throw error\n }\n}\n\n/**\n * Render component tree to static HTML (no hydration markers)\n * Use for email templates, static pages, etc.\n */\nexport function renderToStaticMarkup(app: FNodeChild | (() => FNodeChild)): string {\n const { html } = renderToString(app, { hydrate: false })\n return html\n}\n\nfunction isFNode(value: any): value is FNode {\n return value && typeof value === 'object' && 'type' in value && 'props' in value\n}\n\nfunction renderNodeToString(fnode: FNodeChild, includeHydrationMarkers: boolean): string {\n // Null/undefined/boolean -> empty string\n if (fnode === null || fnode === undefined || typeof fnode === 'boolean') {\n return ''\n }\n\n // String/number -> escaped text\n if (typeof fnode === 'string' || typeof fnode === 'number') {\n return escapeHtml(String(fnode))\n }\n\n // Array -> concatenate children\n if (Array.isArray(fnode)) {\n return fnode.map(child => renderNodeToString(child, includeHydrationMarkers)).join('')\n }\n\n // Function (standalone) -> wrap in FNode and render\n if (typeof fnode === 'function') {\n const wrappedFnode: FNode = { type: fnode, props: {}, children: [], key: undefined }\n return renderComponentToString(wrappedFnode, includeHydrationMarkers)\n }\n\n // Object (FNode)\n if (typeof fnode === 'object' && isFNode(fnode)) {\n // HTML element\n if (typeof fnode.type === 'string') {\n return renderElementToString(fnode, includeHydrationMarkers)\n }\n\n // Function component\n if (typeof fnode.type === 'function') {\n return renderComponentToString(fnode, includeHydrationMarkers)\n }\n }\n\n return ''\n}\n\nfunction renderElementToString(fnode: FNode, includeHydrationMarkers: boolean): string {\n const tag = fnode.type as string\n const attrs = renderAttributes(fnode.props, includeHydrationMarkers)\n\n // Handle dangerouslySetInnerHTML\n if (fnode.props?.dangerouslySetInnerHTML) {\n const innerHTML = fnode.props.dangerouslySetInnerHTML.__html || ''\n return `<${tag}${attrs}>${innerHTML}</${tag}>`\n }\n\n // Void elements (self-closing)\n if (VOID_ELEMENTS.has(tag)) {\n return `<${tag}${attrs}>`\n }\n\n // Render children\n const childrenHtml = (fnode.children || [])\n .map(child => renderNodeToString(child, includeHydrationMarkers))\n .join('')\n\n return `<${tag}${attrs}>${childrenHtml}</${tag}>`\n}\n\nfunction renderAttributes(props: Record<string, any>, includeHydrationMarkers: boolean): string {\n if (!props) return ''\n\n const parts: string[] = []\n\n // Add hydration ID if needed\n if (includeHydrationMarkers) {\n const fid = generateHydrationId()\n parts.push(`data-fid=\"${fid}\"`)\n }\n\n for (const [key, value] of Object.entries(props)) {\n // Skip event handlers, refs, and internal props\n if (key.startsWith('on') || key === 'ref' || key === 'key' || key === 'children') continue\n if (key === 'dangerouslySetInnerHTML') continue\n\n // Skip undefined/null values\n if (value === undefined || value === null) continue\n\n // Handle aliased attributes\n const attrName = ATTR_ALIASES[key] || key\n\n // Handle style object\n if (key === 'style' && typeof value === 'object') {\n const styleStr = Object.entries(value)\n .filter(([, v]) => v !== null && v !== undefined)\n .map(([k, v]) => `${kebabCase(k)}:${v}`)\n .join(';')\n if (styleStr) {\n parts.push(`style=\"${escapeAttribute(styleStr)}\"`)\n }\n continue\n }\n\n // Handle boolean attributes\n if (BOOLEAN_ATTRS.has(attrName)) {\n if (value) parts.push(attrName)\n continue\n }\n\n // Handle false boolean values - skip entirely\n if (value === false) continue\n\n // Regular attribute\n parts.push(`${attrName}=\"${escapeAttribute(String(value))}\"`)\n }\n\n return parts.length ? ' ' + parts.join(' ') : ''\n}\n\nfunction renderComponentToString(fnode: FNode, includeHydrationMarkers: boolean): string {\n const Component = fnode.type as Function\n\n // Merge props with children\n const props = { ...fnode.props }\n if (fnode.children && fnode.children.length > 0) {\n props.children = fnode.children.length === 1\n ? fnode.children[0]\n : fnode.children\n }\n\n // Check if this is a Context Provider\n const contextId = (Component as any)._contextId\n const isProvider = contextId !== undefined\n let prevContextValue: any\n\n if (isProvider) {\n prevContextValue = pushContext(contextId, props.value)\n }\n\n // Create minimal component instance for server (hooks support)\n const instance: ComponentInstance = {\n hooks: [],\n hookIndex: 0\n }\n\n try {\n // Run component with hook context\n const result = runWithComponent(instance, () => Component(props))\n\n // Render result\n return renderNodeToString(result, includeHydrationMarkers)\n } finally {\n // Restore context if it was a provider\n if (isProvider) {\n popContext(contextId, prevContextValue)\n }\n }\n}\n\nfunction kebabCase(str: string): string {\n return str.replace(/([A-Z])/g, '-$1').toLowerCase()\n}\n"]}
1
+ {"version":3,"sources":["../src/server/escape.ts","../src/server/serverState.ts","../src/server/renderToString.ts"],"names":["ESCAPE_MAP","ESCAPE_REGEX","escapeHtml","str","char","escapeAttribute","isServerRendering","serverStateCollector","hydrationIdCounter","getIsServer","enterServerRender","exitServerRender","states","generateHydrationId","VOID_ELEMENTS","BOOLEAN_ATTRS","ATTR_ALIASES","renderToString","app","options","hydrate","fnode","isFNode","html","renderNodeToString","state","error","renderToStaticMarkup","value","includeHydrationMarkers","child","renderComponentToString","renderElementToString","tag","attrs","renderAttributes","innerHTML","childrenHtml","props","parts","fid","key","attrName","styleStr","v","k","kebabCase","Component","contextId","isProvider","prevContextValue","pushContext","instance","result","runWithComponent","popContext"],"mappings":"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","file":"server.mjs","sourcesContent":["const ESCAPE_MAP: Record<string, string> = {\n '&': '&amp;',\n '<': '&lt;',\n '>': '&gt;',\n '\"': '&quot;',\n \"'\": '&#x27;'\n}\n\nconst ESCAPE_REGEX = /[&<>\"']/g\n\nexport function escapeHtml(str: string): string {\n return String(str).replace(ESCAPE_REGEX, char => ESCAPE_MAP[char])\n}\n\nexport function escapeAttribute(str: string): string {\n return escapeHtml(str)\n}\n","import type { SerializedState } from './types'\n\nlet isServerRendering = false\nlet serverStateCollector: Map<string, unknown> | null = null\nlet hydrationIdCounter = 0\n\nexport function getIsServer(): boolean {\n return isServerRendering\n}\n\nexport function enterServerRender(): void {\n isServerRendering = true\n serverStateCollector = new Map()\n hydrationIdCounter = 0\n}\n\nexport function exitServerRender(): SerializedState {\n isServerRendering = false\n const states = Object.fromEntries(serverStateCollector || new Map())\n serverStateCollector = null\n\n return { states }\n}\n\nexport function collectServerState(key: string, value: unknown): void {\n if (serverStateCollector) {\n serverStateCollector.set(key, value)\n }\n}\n\nexport function generateHydrationId(): string {\n return `fid-${hydrationIdCounter++}`\n}\n\nexport function resetHydrationIdCounter(): void {\n hydrationIdCounter = 0\n}\n","import type { FNode, FNodeChild } from '../dom/types'\nimport type { SSROptions, SSRResult } from './types'\nimport { escapeHtml, escapeAttribute } from './escape'\nimport {\n enterServerRender,\n exitServerRender,\n generateHydrationId\n} from './serverState'\nimport { runWithComponent, ComponentInstance } from '../core/hook'\nimport { pushContext, popContext } from '../core/context'\n\n// Self-closing HTML tags\nconst VOID_ELEMENTS = new Set([\n 'area', 'base', 'br', 'col', 'embed', 'hr', 'img', 'input',\n 'link', 'meta', 'param', 'source', 'track', 'wbr'\n])\n\n// Attributes that should be rendered as boolean\nconst BOOLEAN_ATTRS = new Set([\n 'disabled', 'checked', 'readonly', 'required', 'hidden',\n 'selected', 'autofocus', 'autoplay', 'controls', 'loop', 'muted',\n 'multiple', 'open', 'defer', 'async', 'novalidate'\n])\n\n// Attributes that need special handling\nconst ATTR_ALIASES: Record<string, string> = {\n className: 'class',\n htmlFor: 'for'\n}\n\n/**\n * Render component tree to HTML string with hydration markers\n */\nexport function renderToString(\n app: FNodeChild | (() => FNodeChild),\n options: SSROptions = {}\n): SSRResult {\n const { hydrate = true } = options\n\n enterServerRender()\n\n try {\n // Normalize input - wrap function in FNode if needed\n let fnode: FNodeChild\n if (typeof app === 'function' && !isFNode(app)) {\n fnode = { type: app, props: {}, children: [], key: undefined }\n } else {\n fnode = app\n }\n\n const html = renderNodeToString(fnode, hydrate)\n const state = exitServerRender()\n\n return { html, state }\n } catch (error) {\n exitServerRender()\n throw error\n }\n}\n\n/**\n * Render component tree to static HTML (no hydration markers)\n * Use for email templates, static pages, etc.\n */\nexport function renderToStaticMarkup(app: FNodeChild | (() => FNodeChild)): string {\n const { html } = renderToString(app, { hydrate: false })\n return html\n}\n\nfunction isFNode(value: any): value is FNode {\n return value && typeof value === 'object' && 'type' in value && 'props' in value\n}\n\nfunction renderNodeToString(fnode: FNodeChild, includeHydrationMarkers: boolean): string {\n // Null/undefined/boolean -> empty string\n if (fnode === null || fnode === undefined || typeof fnode === 'boolean') {\n return ''\n }\n\n // String/number -> escaped text\n if (typeof fnode === 'string' || typeof fnode === 'number') {\n return escapeHtml(String(fnode))\n }\n\n // Array -> concatenate children\n if (Array.isArray(fnode)) {\n return fnode.map(child => renderNodeToString(child, includeHydrationMarkers)).join('')\n }\n\n // Function (standalone) -> wrap in FNode and render\n if (typeof fnode === 'function') {\n const wrappedFnode: FNode = { type: fnode, props: {}, children: [], key: undefined }\n return renderComponentToString(wrappedFnode, includeHydrationMarkers)\n }\n\n // Object (FNode)\n if (typeof fnode === 'object' && isFNode(fnode)) {\n // HTML element\n if (typeof fnode.type === 'string') {\n return renderElementToString(fnode, includeHydrationMarkers)\n }\n\n // Function component\n if (typeof fnode.type === 'function') {\n return renderComponentToString(fnode, includeHydrationMarkers)\n }\n }\n\n return ''\n}\n\nfunction renderElementToString(fnode: FNode, includeHydrationMarkers: boolean): string {\n const tag = fnode.type as string\n const attrs = renderAttributes(fnode.props, includeHydrationMarkers)\n\n // Handle dangerouslySetInnerHTML\n if (fnode.props?.dangerouslySetInnerHTML) {\n const innerHTML = fnode.props.dangerouslySetInnerHTML.__html || ''\n return `<${tag}${attrs}>${innerHTML}</${tag}>`\n }\n\n // Void elements (self-closing)\n if (VOID_ELEMENTS.has(tag)) {\n return `<${tag}${attrs}>`\n }\n\n // Render children\n const childrenHtml = (fnode.children || [])\n .map(child => renderNodeToString(child, includeHydrationMarkers))\n .join('')\n\n return `<${tag}${attrs}>${childrenHtml}</${tag}>`\n}\n\nfunction renderAttributes(props: Record<string, any>, includeHydrationMarkers: boolean): string {\n if (!props) return ''\n\n const parts: string[] = []\n\n // Add hydration ID if needed\n if (includeHydrationMarkers) {\n const fid = generateHydrationId()\n parts.push(`data-fid=\"${fid}\"`)\n }\n\n for (const [key, value] of Object.entries(props)) {\n // Skip event handlers, refs, and internal props\n if (key.startsWith('on') || key === 'ref' || key === 'key' || key === 'children') continue\n if (key === 'dangerouslySetInnerHTML') continue\n\n // Skip undefined/null values\n if (value === undefined || value === null) continue\n\n // Handle aliased attributes\n const attrName = ATTR_ALIASES[key] || key\n\n // Handle style object\n if (key === 'style' && typeof value === 'object') {\n const styleStr = Object.entries(value)\n .filter(([, v]) => v !== null && v !== undefined)\n .map(([k, v]) => `${kebabCase(k)}:${v}`)\n .join(';')\n if (styleStr) {\n parts.push(`style=\"${escapeAttribute(styleStr)}\"`)\n }\n continue\n }\n\n // Handle boolean attributes\n if (BOOLEAN_ATTRS.has(attrName)) {\n if (value) parts.push(attrName)\n continue\n }\n\n // Handle false boolean values - skip entirely\n if (value === false) continue\n\n // Regular attribute\n parts.push(`${attrName}=\"${escapeAttribute(String(value))}\"`)\n }\n\n return parts.length ? ' ' + parts.join(' ') : ''\n}\n\nfunction renderComponentToString(fnode: FNode, includeHydrationMarkers: boolean): string {\n const Component = fnode.type as Function\n\n // Merge props with children\n const props = { ...fnode.props }\n if (fnode.children && fnode.children.length > 0) {\n props.children = fnode.children.length === 1\n ? fnode.children[0]\n : fnode.children\n }\n\n // Check if this is a Context Provider\n const contextId = (Component as any)._contextId\n const isProvider = contextId !== undefined\n let prevContextValue: any\n\n if (isProvider) {\n prevContextValue = pushContext(contextId, props.value)\n }\n\n // Create minimal component instance for server (hooks support)\n const instance: ComponentInstance = {\n hooks: [],\n hookIndex: 0\n }\n\n try {\n // Run component with hook context\n const result = runWithComponent(instance, () => Component(props))\n\n // Render result\n return renderNodeToString(result, includeHydrationMarkers)\n } finally {\n // Restore context if it was a provider\n if (isProvider) {\n popContext(contextId, prevContextValue)\n }\n }\n}\n\nfunction kebabCase(str: string): string {\n return str.replace(/([A-Z])/g, '-$1').toLowerCase()\n}\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "flexium",
3
- "version": "0.14.3",
3
+ "version": "0.15.0",
4
4
  "description": "A lightweight, signals-based UI framework with cross-platform renderers",
5
5
  "publishConfig": {
6
6
  "access": "public"
@@ -1,2 +0,0 @@
1
- import {a,c,d,b as b$2}from'./chunk-NRPWBHKP.mjs';import {d as d$1,b as b$1}from'./chunk-MI76R42D.mjs';var b=Symbol("flexium.reactive"),C=new WeakMap,R=new WeakMap;function m(e){if(e&&e[b])return e;let r=R.get(e);if(r)return r;let s=new Proxy(e,{get(n,i,a){if(i===b)return true;let f=Reflect.get(n,i,a);return j(n,i),f!==null&&typeof f=="object"?m(f):f},set(n,i,a,f){let l=n[i],x=Reflect.set(n,i,a,f);return x&&A(a,l)&&I(n,i),x}});return R.set(e,s),s}function j(e,r){if(!a)return;let s=C.get(e);s||C.set(e,s=new Map);let n=s.get(r);n||s.set(r,n=new Set),c(n);}function I(e,r){let s=C.get(e);if(!s)return;let n=s.get(r);n&&d(n);}function A(e,r){return !Object.is(e,r)}function L(e){return !!(e&&e[b])}var K=0,M=new Map;function E(){if(typeof window<"u")return window.__FLEXIUM_DEVTOOLS__}function O(e,r){let s=E();if(!s)return -1;let n=++K;M.set(e,n);let i={id:n,name:r||`signal_${n}`,value:e.value,type:e.type||"signal",subscribers:0,createdAt:Date.now()};return s.onSignalCreate(i),n}function _(e,r){let s=E();if(!s)return;let n=M.get(e);n!==void 0&&s.onSignalUpdate(n,r);}function V(e){return e&&typeof e=="object"&&"id"in e&&"defaultValue"in e&&"Provider"in e}var P=new Map;function z(e){return JSON.stringify(e)}function B(e,r,s){if(V(e))return [d$1(e),void 0];let n,i;if(Array.isArray(r)?(n=r,i=s):r&&typeof r=="object"&&(i=r),i?.key&&!Array.isArray(i.key))throw new Error("State key must be an array");let a=b$1(()=>m({container:void 0,serializedKey:void 0})),f=i?.key,l=f?z(f):void 0,x=l!==a.serializedKey;if(typeof e=="function"&&n!==void 0){let c=e,o=b$1(()=>({value:void 0,prevDeps:void 0,cleanup:void 0,hasRun:false,params:void 0})),t=true;if(o.hasRun&&o.prevDeps&&(t=n.length!==o.prevDeps.length||n.some((p,d)=>p!==o.prevDeps[d])),t){o.cleanup&&(o.cleanup(),o.cleanup=void 0);let p={onCleanup:y=>{o.cleanup=y;},params:o.params},d=c(p);if(d instanceof Promise)throw new Error("deps with async functions is not supported. Use use(asyncFn) without deps for async resources.");o.value=d,o.prevDeps=[...n],o.hasRun=true;}let v={refetch:async()=>{},get loading(){return false},get error(){return null},get status(){return "success"}};return [o.value,v]}if(!a.container||x)if(a.serializedKey=l,l&&P.has(l))a.container=P.get(l);else {let c;if(typeof e=="function"){let o=e,t=m({type:"resource",value:void 0,loading:true,error:null,status:"idle",cleanup:void 0,params:void 0,run:()=>{}}),v=p=>{t.cleanup&&(t.cleanup(),t.cleanup=void 0),t.params=p;try{let d={onCleanup:g=>{t.cleanup=g;},params:t.params},y=o(d);y instanceof Promise?(t.loading=!0,t.status="loading",t.error=null,y.then(g=>{t.value=g,t.status="success",t.loading=!1;}).catch(g=>{t.error=g,t.status="error",t.loading=!1;})):(t.value=y,t.status="success",t.loading=!1,t.error=null);}catch(d){t.error=d,t.status="error",t.loading=false;}};t.run=v,b$2(()=>v()),c=t;}else c=m({type:"signal",value:e}),O(c,i?.name);l&&P.set(l,c),a.container=c;}let u=a.container,w=u.value;return u.type==="signal"?[w,o=>{typeof o=="function"?u.value=o(u.value):u.value=o,_(u,u.value);}]:[w,{refetch:async o=>{u.run(o);},get loading(){return u.loading},get error(){return u.error},get status(){return u.status}}]}export{m as a,L as b,B as c};//# sourceMappingURL=chunk-3AKECLKA.mjs.map
2
- //# sourceMappingURL=chunk-3AKECLKA.mjs.map