flexium 0.16.7 → 0.16.9

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 (39) hide show
  1. package/dist/chunk-3T5WSKBQ.mjs +2 -0
  2. package/dist/chunk-3T5WSKBQ.mjs.map +1 -0
  3. package/dist/chunk-A7TIKNG5.js +2 -0
  4. package/dist/chunk-A7TIKNG5.js.map +1 -0
  5. package/dist/{chunk-DVG7OZ3X.js → chunk-DZKR3RLN.js} +2 -2
  6. package/dist/chunk-DZKR3RLN.js.map +1 -0
  7. package/dist/{chunk-JNWUZKHF.js → chunk-FJKINID6.js} +2 -2
  8. package/dist/{chunk-JNWUZKHF.js.map → chunk-FJKINID6.js.map} +1 -1
  9. package/dist/{chunk-HBBTT5I5.mjs → chunk-KXRTSDK2.mjs} +2 -2
  10. package/dist/{chunk-HBBTT5I5.mjs.map → chunk-KXRTSDK2.mjs.map} +1 -1
  11. package/dist/{chunk-AJL63VBW.mjs → chunk-REYBGD7A.mjs} +2 -2
  12. package/dist/chunk-REYBGD7A.mjs.map +1 -0
  13. package/dist/dom.js +1 -1
  14. package/dist/dom.mjs +1 -1
  15. package/dist/index.d.cts +1 -1
  16. package/dist/index.d.ts +1 -1
  17. package/dist/index.js +1 -1
  18. package/dist/index.js.map +1 -1
  19. package/dist/index.mjs +1 -1
  20. package/dist/index.mjs.map +1 -1
  21. package/dist/metafile-cjs.json +1 -1
  22. package/dist/metafile-esm.json +1 -1
  23. package/dist/render-5B44GLK2.js +2 -0
  24. package/dist/{render-IBWAHNEZ.js.map → render-5B44GLK2.js.map} +1 -1
  25. package/dist/render-UEJPLQX4.mjs +2 -0
  26. package/dist/{render-Z4FL7ORX.mjs.map → render-UEJPLQX4.mjs.map} +1 -1
  27. package/dist/router.d.cts +2 -0
  28. package/dist/router.d.ts +2 -0
  29. package/dist/router.js +1 -1
  30. package/dist/router.mjs +1 -1
  31. package/package.json +1 -1
  32. package/dist/chunk-AJL63VBW.mjs.map +0 -1
  33. package/dist/chunk-DVG7OZ3X.js.map +0 -1
  34. package/dist/chunk-NABWFBEA.mjs +0 -2
  35. package/dist/chunk-NABWFBEA.mjs.map +0 -1
  36. package/dist/chunk-THUSQSDY.js +0 -2
  37. package/dist/chunk-THUSQSDY.js.map +0 -1
  38. package/dist/render-IBWAHNEZ.js +0 -2
  39. package/dist/render-Z4FL7ORX.mjs +0 -2
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/dom/f.ts","../src/dom/hydrate.ts","../src/dom/components/suspenseContext.ts","../src/dom/components/Suspense.tsx","../src/dom/components/ErrorBoundary.tsx","../src/dom/components/lazy.ts"],"names":["f","type","props","children","hydrationCursor","hydratedInstanceRegistry","currentHydratingInstance","hydrate","app","container","options","state","onHydrated","onMismatch","fnode","isFNode","hydrateNode","error","render","value","parent","skipEmptyTextNodes","hydrateTextNode","nodes","child","result","hydrateComponent","hydrateElement","text","current","tag","key","eventName","savedCursor","Component","contextId","isProvider","prevContextValue","pushContext","parentRegistry","hasExplicitKey","instanceCount","componentName","_","k","instance","previousHydratingInstance","runWithComponent","isFirstRender","renderFn","currentProps","newNodes","renderNode","nodeParent","marker","lastNode","tempContainer","newNodesArray","reconciledNodes","reconcile","unsafeEffect","popContext","defaultValue","SuspenseCtx","Context","suspenseContext","use","Suspense","fallback","pendingSet","hook","setPendingCount","showFallback","setShowFallback","contextValue","promise","c","newCount","content","ErrorBoundary","onError","resetKey","errorState","setErrorState","prevResetKeyRef","lazy","loader","resolved","LazyWrapper","suspense","module","err"],"mappings":"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","file":"chunk-HBBTT5I5.mjs","sourcesContent":["import type { FNode } from './types'\n\n/**\n * f() - Create FNodes without JSX\n */\nexport function f(\n type: string | Function,\n props?: any,\n ...children: any[]\n): FNode {\n return {\n type,\n props: props || {},\n children,\n key: props?.key\n }\n}\n","import type { FNode, FNodeChild } from './types'\nimport type { SerializedState } from '../server/types'\nimport { runWithComponent, type ComponentInstance } from '../core/hook'\nimport { pushContext, popContext } from '../core/context'\nimport { unsafeEffect } from '../core/lifecycle'\nimport { renderNode, reconcile } from './render'\n\n// Hydration state\nlet isHydrating = false\nlet hydrationCursor: Node | null = null\nlet hydrationState: SerializedState | null = null\n\nexport interface HydrateOptions {\n /**\n * Serialized state from server\n * Typically embedded in HTML as JSON script tag\n */\n state?: SerializedState\n\n /**\n * Called when hydration completes successfully\n */\n onHydrated?: () => void\n\n /**\n * Called when hydration fails (falls back to full render)\n */\n onMismatch?: (error: Error) => void\n}\n\n// Extended ComponentInstance for DOM tracking (same as render.ts)\ninterface DOMComponentInstance extends ComponentInstance {\n nodes: Node[]\n parent: HTMLElement\n fnode: any\n props: any\n key?: any\n renderFn?: () => void\n children: Set<DOMComponentInstance>\n parentInstance?: DOMComponentInstance\n}\n\n// Registry for hydrated components\nconst hydratedInstanceRegistry = new WeakMap<HTMLElement, Map<any, DOMComponentInstance>>()\nlet currentHydratingInstance: DOMComponentInstance | null = null\n\nexport function getIsHydrating(): boolean {\n return isHydrating\n}\n\nexport function getHydrationState(): SerializedState | null {\n return hydrationState\n}\n\n/**\n * Hydrate server-rendered HTML with client-side interactivity\n */\nexport function hydrate(\n app: FNodeChild | (() => FNodeChild),\n container: HTMLElement,\n options: HydrateOptions = {}\n): void {\n const { state, onHydrated, onMismatch } = options\n\n // Store state for rehydration\n hydrationState = state || null\n\n // Initialize hydration mode\n isHydrating = true\n hydrationCursor = container.firstChild\n\n try {\n // Normalize input\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 // Hydrate the tree\n hydrateNode(fnode, container)\n\n onHydrated?.()\n } catch (error) {\n // Hydration mismatch - fall back to full render\n console.warn('[Flexium] Hydration mismatch, falling back to full render:', error)\n onMismatch?.(error as Error)\n\n // Clear and re-render\n container.innerHTML = ''\n // Import dynamically to avoid circular deps\n import('./render').then(({ render }) => {\n render(app, container)\n })\n } finally {\n isHydrating = false\n hydrationCursor = null\n hydrationState = null\n }\n}\n\nfunction isFNode(value: any): value is FNode {\n return value && typeof value === 'object' && 'type' in value && 'props' in value\n}\n\nfunction hydrateNode(fnode: FNodeChild, parent: HTMLElement): Node | Node[] | null {\n // Null/undefined/boolean -> skip empty text nodes\n if (fnode === null || fnode === undefined || typeof fnode === 'boolean') {\n // Server might have rendered an empty text node\n skipEmptyTextNodes()\n return null\n }\n\n // String/number -> expect text node\n if (typeof fnode === 'string' || typeof fnode === 'number') {\n return hydrateTextNode(String(fnode))\n }\n\n // Array -> hydrate each child\n if (Array.isArray(fnode)) {\n const nodes: Node[] = []\n for (const child of fnode) {\n const result = hydrateNode(child, parent)\n if (result) {\n if (Array.isArray(result)) {\n nodes.push(...result)\n } else {\n nodes.push(result)\n }\n }\n }\n return nodes\n }\n\n // Function (standalone) -> wrap in FNode and hydrate\n if (typeof fnode === 'function') {\n const wrappedFnode: FNode = { type: fnode, props: {}, children: [], key: undefined }\n return hydrateComponent(wrappedFnode, parent)\n }\n\n // Object (FNode)\n if (typeof fnode === 'object' && isFNode(fnode)) {\n if (typeof fnode.type === 'string') {\n return hydrateElement(fnode)\n }\n\n if (typeof fnode.type === 'function') {\n return hydrateComponent(fnode, parent)\n }\n }\n\n return null\n}\n\nfunction skipEmptyTextNodes(): void {\n while (\n hydrationCursor &&\n hydrationCursor.nodeType === Node.TEXT_NODE &&\n (!hydrationCursor.textContent || hydrationCursor.textContent.trim() === '')\n ) {\n hydrationCursor = hydrationCursor.nextSibling\n }\n}\n\nfunction hydrateTextNode(text: string): Node | null {\n skipEmptyTextNodes()\n\n const current = hydrationCursor\n\n if (!current) {\n // No node to hydrate - this is okay for conditional rendering\n return null\n }\n\n if (current.nodeType !== Node.TEXT_NODE) {\n // Try to find a text node nearby (whitespace handling)\n if (text.trim() === '') {\n return null\n }\n throw new Error(`Hydration mismatch: expected text node \"${text}\", got ${current.nodeName}`)\n }\n\n // Update cursor\n hydrationCursor = current.nextSibling\n\n return current\n}\n\nfunction hydrateElement(fnode: FNode): Node {\n skipEmptyTextNodes()\n\n const current = hydrationCursor as Element\n const tag = fnode.type as string\n\n // Validate element type\n if (!current || current.nodeType !== Node.ELEMENT_NODE) {\n throw new Error(`Hydration mismatch: expected element <${tag}>, got ${current?.nodeName || 'nothing'}`)\n }\n\n if (current.tagName.toLowerCase() !== tag.toLowerCase()) {\n throw new Error(`Hydration mismatch: expected <${tag}>, got <${current.tagName.toLowerCase()}>`)\n }\n\n // Attach event handlers and refs (don't modify DOM structure)\n if (fnode.props) {\n for (const [key, value] of Object.entries(fnode.props)) {\n if (key === 'ref') {\n if (typeof value === 'function') {\n value(current)\n } else if (value && typeof value === 'object' && 'current' in value) {\n value.current = current\n }\n } else if (key.startsWith('on') && typeof value === 'function') {\n const eventName = key.slice(2).toLowerCase()\n current.addEventListener(eventName, value as EventListener)\n\n // Store for reconciliation\n if (!(current as any).__eventHandlers) {\n (current as any).__eventHandlers = {}\n }\n (current as any).__eventHandlers[eventName] = value\n }\n }\n }\n\n // Move cursor past this element\n hydrationCursor = current.nextSibling\n\n // Hydrate children\n if (fnode.children && fnode.children.length > 0) {\n const savedCursor = hydrationCursor\n\n hydrationCursor = current.firstChild\n\n for (const child of fnode.children) {\n hydrateNode(child, current as HTMLElement)\n }\n\n hydrationCursor = savedCursor\n }\n\n return current\n}\n\nfunction hydrateComponent(fnode: FNode, parent: HTMLElement): Node | Node[] | null {\n const Component = fnode.type as Function\n\n // Merge props\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 // Handle context providers\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 // Generate key (same logic as render.ts)\n if (!hydratedInstanceRegistry.has(parent)) {\n hydratedInstanceRegistry.set(parent, new Map())\n }\n const parentRegistry = hydratedInstanceRegistry.get(parent)!\n\n const hasExplicitKey = fnode.key !== undefined\n let key: any\n if (hasExplicitKey) {\n key = fnode.key\n } else {\n let instanceCount = 0\n const componentName = (Component as any).name || 'anonymous'\n parentRegistry.forEach((_, k) => {\n if (typeof k === 'string' && k.startsWith(`__auto_${componentName}_`)) {\n instanceCount++\n }\n })\n key = `__auto_${componentName}_${instanceCount}`\n }\n\n // Create component instance\n const instance: DOMComponentInstance = {\n hooks: [],\n hookIndex: 0,\n nodes: [],\n parent,\n fnode,\n props,\n key,\n children: new Set(),\n parentInstance: currentHydratingInstance || undefined\n }\n\n if (currentHydratingInstance) {\n currentHydratingInstance.children.add(instance)\n }\n\n parentRegistry.set(key, instance)\n\n const previousHydratingInstance = currentHydratingInstance\n currentHydratingInstance = instance\n\n try {\n // First render during hydration - just match DOM\n const result = runWithComponent(instance, () => Component(props))\n const nodes = hydrateNode(result, parent)\n instance.nodes = nodes ? (Array.isArray(nodes) ? nodes : [nodes]) : []\n\n // Set up reactive re-rendering for future updates\n let isFirstRender = true\n const renderFn = () => {\n // Re-render with reconciliation (same logic as render.ts)\n const currentProps = instance.props\n\n // Always run the component to establish reactive tracking\n const result = runWithComponent(instance, () => Component(currentProps))\n\n if (isFirstRender) {\n isFirstRender = false\n return // Skip DOM manipulation on first render, already done during hydration\n }\n\n if (instance.nodes.length === 0) {\n const newNodes = renderNode(result, parent)\n instance.nodes = newNodes ? (Array.isArray(newNodes) ? newNodes : [newNodes]) : []\n return\n }\n\n const firstNode = instance.nodes[0]\n const nodeParent = firstNode.parentNode as HTMLElement\n\n if (!nodeParent) {\n return\n }\n\n const marker = document.createComment('flexium-marker')\n const lastNode = instance.nodes[instance.nodes.length - 1]\n if (lastNode.nextSibling) {\n nodeParent.insertBefore(marker, lastNode.nextSibling)\n } else {\n nodeParent.appendChild(marker)\n }\n\n instance.children.clear()\n\n const tempContainer = document.createElement('div')\n const newNodes = renderNode(result, tempContainer, nodeParent)\n const newNodesArray = newNodes ? (Array.isArray(newNodes) ? newNodes : [newNodes]) : []\n\n const reconciledNodes = reconcile(instance.nodes, newNodesArray, nodeParent, marker)\n\n nodeParent.removeChild(marker)\n\n instance.nodes = reconciledNodes\n }\n\n instance.renderFn = renderFn\n unsafeEffect(renderFn)\n\n return instance.nodes\n } finally {\n currentHydratingInstance = previousHydratingInstance\n\n if (isProvider) {\n popContext(contextId, prevContextValue)\n }\n }\n}\n","import { Context } from '../../core/context'\nimport { use } from '../../core/use'\nimport type { SuspenseContextValue } from './types'\n\nconst defaultValue: SuspenseContextValue = {\n register: () => {},\n hasBoundary: false\n}\n\nexport const SuspenseCtx = new Context<SuspenseContextValue>(defaultValue)\n\nexport function suspenseContext(): SuspenseContextValue {\n const [value] = use(SuspenseCtx)\n return value\n}\n","import { use } from '../../core/use'\nimport { hook } from '../../core/hook'\nimport { SuspenseCtx } from './suspenseContext'\nimport type { SuspenseProps, SuspenseContextValue } from './types'\nimport type { FNodeChild } from '../types'\n\n/**\n * Suspense component that shows fallback while children are loading\n *\n * @example\n * ```tsx\n * const Dashboard = lazy(() => import('./Dashboard'))\n *\n * function App() {\n * return (\n * <Suspense fallback={<div>Loading...</div>}>\n * <Dashboard />\n * </Suspense>\n * )\n * }\n * ```\n */\nexport function Suspense(props: SuspenseProps): FNodeChild {\n const { fallback, children } = props\n\n // Track pending promises using hook for mutable Set\n const pendingSet = hook(() => new Set<Promise<any>>())\n const [, setPendingCount] = use(0)\n const [showFallback, setShowFallback] = use(false)\n\n // Register function for lazy components\n const register = (promise: Promise<any>) => {\n if (!pendingSet.has(promise)) {\n // Add to pending set\n pendingSet.add(promise)\n setPendingCount(c => c + 1)\n setShowFallback(true)\n\n // Wait for resolution\n promise.finally(() => {\n pendingSet.delete(promise)\n setPendingCount(c => {\n const newCount = c - 1\n if (newCount === 0) {\n setShowFallback(false)\n }\n return newCount\n })\n })\n }\n }\n\n const contextValue: SuspenseContextValue = {\n register,\n hasBoundary: true\n }\n\n // Render fallback or children based on pending state\n const content = showFallback ? fallback : children\n\n // Wrap content with Suspense context provider\n return {\n type: SuspenseCtx.Provider,\n props: { value: contextValue },\n children: [content],\n key: undefined\n } as any\n}\n","import { use } from '../../core/use'\nimport { hook } from '../../core/hook'\nimport type { FNodeChild } from '../types'\nimport type { ErrorInfo, ErrorBoundaryProps } from './types'\n\n// Component name stack for error messages\nlet componentNameStack: string[] = []\n\nexport function pushComponentName(name: string): void {\n componentNameStack.push(name)\n}\n\nexport function popComponentName(): void {\n componentNameStack.pop()\n}\n\nexport function getComponentStack(): string {\n return componentNameStack\n .map(name => ` at ${name}`)\n .reverse()\n .join('\\n')\n}\n\n// Stack of error boundaries for nested error propagation\ninterface ErrorBoundaryInstance {\n handleError: (error: Error, phase: 'render' | 'effect' | 'event') => void\n}\n\nlet errorBoundaryStack: ErrorBoundaryInstance[] = []\n\nexport function pushErrorBoundary(instance: ErrorBoundaryInstance): void {\n errorBoundaryStack.push(instance)\n}\n\nexport function popErrorBoundary(): void {\n errorBoundaryStack.pop()\n}\n\nexport function getNearestErrorBoundary(): ErrorBoundaryInstance | null {\n return errorBoundaryStack[errorBoundaryStack.length - 1] || null\n}\n\n/**\n * ErrorBoundary component that catches errors in its children and displays fallback UI\n *\n * @example\n * ```tsx\n * <ErrorBoundary\n * fallback={(error, info) => <div>Error: {error.message}</div>}\n * onError={(error, info) => console.error(error)}\n * >\n * <App />\n * </ErrorBoundary>\n * ```\n */\nexport function ErrorBoundary(props: ErrorBoundaryProps): FNodeChild {\n const { fallback, onError, children, resetKey } = props\n\n // Error state\n const [errorState, setErrorState] = use<{\n error: Error | null\n info: ErrorInfo | null\n }>({ error: null, info: null })\n\n // Track reset key changes to clear error\n const prevResetKeyRef = hook(() => ({ current: resetKey }))\n\n if (resetKey !== prevResetKeyRef.current) {\n prevResetKeyRef.current = resetKey\n if (errorState.error !== null) {\n setErrorState({ error: null, info: null })\n }\n }\n\n // Error boundary instance\n const boundaryInstance: ErrorBoundaryInstance = {\n handleError: (error: Error, phase: 'render' | 'effect' | 'event') => {\n const info: ErrorInfo = {\n componentStack: getComponentStack(),\n phase\n }\n\n // Call error callback\n onError?.(error, info)\n\n // Update error state (triggers re-render with fallback)\n setErrorState({ error, info })\n }\n }\n\n // If we have an error, render fallback\n if (errorState.error) {\n if (typeof fallback === 'function') {\n return fallback(errorState.error, errorState.info!)\n }\n return fallback\n }\n\n // Push boundary onto stack for children to use\n pushErrorBoundary(boundaryInstance)\n\n try {\n // Return children - they will be rendered with this boundary active\n return children\n } finally {\n popErrorBoundary()\n }\n}\n","import { suspenseContext } from './suspenseContext'\nimport type { FNodeChild } from '../types'\nimport type { LazyComponent } from './types'\n\n/**\n * Creates a lazy-loaded component for code splitting\n *\n * @example\n * ```tsx\n * const Dashboard = lazy(() => import('./Dashboard'))\n * const Settings = lazy(() => import('./Settings'))\n *\n * function App() {\n * return (\n * <Suspense fallback={<div>Loading...</div>}>\n * <Dashboard />\n * </Suspense>\n * )\n * }\n * ```\n */\nexport function lazy<P = {}>(\n loader: () => Promise<{ default: (props: P) => FNodeChild }>\n): LazyComponent<P> {\n // Shared state across all instances\n let resolved: ((props: P) => FNodeChild) | null = null\n let promise: Promise<any> | null = null\n let error: Error | null = null\n\n // The wrapper component\n const LazyWrapper = (props: P): FNodeChild => {\n // If already resolved, render immediately\n if (resolved) {\n return resolved(props)\n }\n\n // If error occurred, throw it (will be caught by ErrorBoundary)\n if (error) {\n throw error\n }\n\n // Get suspense context\n const suspense = suspenseContext()\n\n // Start loading if not already\n if (!promise) {\n promise = loader()\n .then(module => {\n resolved = module.default\n })\n .catch(err => {\n error = err instanceof Error ? err : new Error(String(err))\n })\n }\n\n // Register with suspense boundary if available\n if (suspense.hasBoundary) {\n suspense.register(promise)\n }\n\n // Return null - Suspense will show fallback\n return null\n }\n\n // Mark as lazy component\n ;(LazyWrapper as LazyComponent<P>)._lazy = true\n ;(LazyWrapper as LazyComponent<P>)._loader = loader\n\n return LazyWrapper as LazyComponent<P>\n}\n"]}
1
+ {"version":3,"sources":["../src/dom/f.ts","../src/dom/hydrate.ts","../src/dom/components/suspenseContext.ts","../src/dom/components/Suspense.tsx","../src/dom/components/ErrorBoundary.tsx","../src/dom/components/lazy.ts"],"names":["f","type","props","children","hydrationCursor","hydratedInstanceRegistry","currentHydratingInstance","hydrate","app","container","options","state","onHydrated","onMismatch","fnode","isFNode","hydrateNode","error","render","value","parent","skipEmptyTextNodes","hydrateTextNode","nodes","child","result","hydrateComponent","hydrateElement","text","current","tag","key","eventName","savedCursor","Component","contextId","isProvider","prevContextValue","pushContext","parentRegistry","hasExplicitKey","instanceCount","componentName","_","k","instance","previousHydratingInstance","runWithComponent","isFirstRender","renderFn","currentProps","newNodes","renderNode","nodeParent","marker","lastNode","tempContainer","newNodesArray","reconciledNodes","reconcile","unsafeEffect","popContext","defaultValue","SuspenseCtx","Context","suspenseContext","use","Suspense","fallback","pendingSet","hook","setPendingCount","showFallback","setShowFallback","contextValue","promise","c","newCount","content","ErrorBoundary","onError","resetKey","errorState","setErrorState","prevResetKeyRef","lazy","loader","resolved","LazyWrapper","suspense","module","err"],"mappings":"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","file":"chunk-KXRTSDK2.mjs","sourcesContent":["import type { FNode } from './types'\n\n/**\n * f() - Create FNodes without JSX\n */\nexport function f(\n type: string | Function,\n props?: any,\n ...children: any[]\n): FNode {\n return {\n type,\n props: props || {},\n children,\n key: props?.key\n }\n}\n","import type { FNode, FNodeChild } from './types'\nimport type { SerializedState } from '../server/types'\nimport { runWithComponent, type ComponentInstance } from '../core/hook'\nimport { pushContext, popContext } from '../core/context'\nimport { unsafeEffect } from '../core/lifecycle'\nimport { renderNode, reconcile } from './render'\n\n// Hydration state\nlet isHydrating = false\nlet hydrationCursor: Node | null = null\nlet hydrationState: SerializedState | null = null\n\nexport interface HydrateOptions {\n /**\n * Serialized state from server\n * Typically embedded in HTML as JSON script tag\n */\n state?: SerializedState\n\n /**\n * Called when hydration completes successfully\n */\n onHydrated?: () => void\n\n /**\n * Called when hydration fails (falls back to full render)\n */\n onMismatch?: (error: Error) => void\n}\n\n// Extended ComponentInstance for DOM tracking (same as render.ts)\ninterface DOMComponentInstance extends ComponentInstance {\n nodes: Node[]\n parent: HTMLElement\n fnode: any\n props: any\n key?: any\n renderFn?: () => void\n children: Set<DOMComponentInstance>\n parentInstance?: DOMComponentInstance\n}\n\n// Registry for hydrated components\nconst hydratedInstanceRegistry = new WeakMap<HTMLElement, Map<any, DOMComponentInstance>>()\nlet currentHydratingInstance: DOMComponentInstance | null = null\n\nexport function getIsHydrating(): boolean {\n return isHydrating\n}\n\nexport function getHydrationState(): SerializedState | null {\n return hydrationState\n}\n\n/**\n * Hydrate server-rendered HTML with client-side interactivity\n */\nexport function hydrate(\n app: FNodeChild | (() => FNodeChild),\n container: HTMLElement,\n options: HydrateOptions = {}\n): void {\n const { state, onHydrated, onMismatch } = options\n\n // Store state for rehydration\n hydrationState = state || null\n\n // Initialize hydration mode\n isHydrating = true\n hydrationCursor = container.firstChild\n\n try {\n // Normalize input\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 // Hydrate the tree\n hydrateNode(fnode, container)\n\n onHydrated?.()\n } catch (error) {\n // Hydration mismatch - fall back to full render\n console.warn('[Flexium] Hydration mismatch, falling back to full render:', error)\n onMismatch?.(error as Error)\n\n // Clear and re-render\n container.innerHTML = ''\n // Import dynamically to avoid circular deps\n import('./render').then(({ render }) => {\n render(app, container)\n })\n } finally {\n isHydrating = false\n hydrationCursor = null\n hydrationState = null\n }\n}\n\nfunction isFNode(value: any): value is FNode {\n return value && typeof value === 'object' && 'type' in value && 'props' in value\n}\n\nfunction hydrateNode(fnode: FNodeChild, parent: HTMLElement): Node | Node[] | null {\n // Null/undefined/boolean -> skip empty text nodes\n if (fnode === null || fnode === undefined || typeof fnode === 'boolean') {\n // Server might have rendered an empty text node\n skipEmptyTextNodes()\n return null\n }\n\n // String/number -> expect text node\n if (typeof fnode === 'string' || typeof fnode === 'number') {\n return hydrateTextNode(String(fnode))\n }\n\n // Array -> hydrate each child\n if (Array.isArray(fnode)) {\n const nodes: Node[] = []\n for (const child of fnode) {\n const result = hydrateNode(child, parent)\n if (result) {\n if (Array.isArray(result)) {\n nodes.push(...result)\n } else {\n nodes.push(result)\n }\n }\n }\n return nodes\n }\n\n // Function (standalone) -> wrap in FNode and hydrate\n if (typeof fnode === 'function') {\n const wrappedFnode: FNode = { type: fnode, props: {}, children: [], key: undefined }\n return hydrateComponent(wrappedFnode, parent)\n }\n\n // Object (FNode)\n if (typeof fnode === 'object' && isFNode(fnode)) {\n if (typeof fnode.type === 'string') {\n return hydrateElement(fnode)\n }\n\n if (typeof fnode.type === 'function') {\n return hydrateComponent(fnode, parent)\n }\n }\n\n return null\n}\n\nfunction skipEmptyTextNodes(): void {\n while (\n hydrationCursor &&\n hydrationCursor.nodeType === Node.TEXT_NODE &&\n (!hydrationCursor.textContent || hydrationCursor.textContent.trim() === '')\n ) {\n hydrationCursor = hydrationCursor.nextSibling\n }\n}\n\nfunction hydrateTextNode(text: string): Node | null {\n skipEmptyTextNodes()\n\n const current = hydrationCursor\n\n if (!current) {\n // No node to hydrate - this is okay for conditional rendering\n return null\n }\n\n if (current.nodeType !== Node.TEXT_NODE) {\n // Try to find a text node nearby (whitespace handling)\n if (text.trim() === '') {\n return null\n }\n throw new Error(`Hydration mismatch: expected text node \"${text}\", got ${current.nodeName}`)\n }\n\n // Update cursor\n hydrationCursor = current.nextSibling\n\n return current\n}\n\nfunction hydrateElement(fnode: FNode): Node {\n skipEmptyTextNodes()\n\n const current = hydrationCursor as Element\n const tag = fnode.type as string\n\n // Validate element type\n if (!current || current.nodeType !== Node.ELEMENT_NODE) {\n throw new Error(`Hydration mismatch: expected element <${tag}>, got ${current?.nodeName || 'nothing'}`)\n }\n\n if (current.tagName.toLowerCase() !== tag.toLowerCase()) {\n throw new Error(`Hydration mismatch: expected <${tag}>, got <${current.tagName.toLowerCase()}>`)\n }\n\n // Attach event handlers and refs (don't modify DOM structure)\n if (fnode.props) {\n for (const [key, value] of Object.entries(fnode.props)) {\n if (key === 'ref') {\n if (typeof value === 'function') {\n value(current)\n } else if (value && typeof value === 'object' && 'current' in value) {\n value.current = current\n }\n } else if (key.startsWith('on') && typeof value === 'function') {\n const eventName = key.slice(2).toLowerCase()\n current.addEventListener(eventName, value as EventListener)\n\n // Store for reconciliation\n if (!(current as any).__eventHandlers) {\n (current as any).__eventHandlers = {}\n }\n (current as any).__eventHandlers[eventName] = value\n }\n }\n }\n\n // Move cursor past this element\n hydrationCursor = current.nextSibling\n\n // Hydrate children\n if (fnode.children && fnode.children.length > 0) {\n const savedCursor = hydrationCursor\n\n hydrationCursor = current.firstChild\n\n for (const child of fnode.children) {\n hydrateNode(child, current as HTMLElement)\n }\n\n hydrationCursor = savedCursor\n }\n\n return current\n}\n\nfunction hydrateComponent(fnode: FNode, parent: HTMLElement): Node | Node[] | null {\n const Component = fnode.type as Function\n\n // Merge props\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 // Handle context providers\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 // Generate key (same logic as render.ts)\n if (!hydratedInstanceRegistry.has(parent)) {\n hydratedInstanceRegistry.set(parent, new Map())\n }\n const parentRegistry = hydratedInstanceRegistry.get(parent)!\n\n const hasExplicitKey = fnode.key !== undefined\n let key: any\n if (hasExplicitKey) {\n key = fnode.key\n } else {\n let instanceCount = 0\n const componentName = (Component as any).name || 'anonymous'\n parentRegistry.forEach((_, k) => {\n if (typeof k === 'string' && k.startsWith(`__auto_${componentName}_`)) {\n instanceCount++\n }\n })\n key = `__auto_${componentName}_${instanceCount}`\n }\n\n // Create component instance\n const instance: DOMComponentInstance = {\n hooks: [],\n hookIndex: 0,\n nodes: [],\n parent,\n fnode,\n props,\n key,\n children: new Set(),\n parentInstance: currentHydratingInstance || undefined\n }\n\n if (currentHydratingInstance) {\n currentHydratingInstance.children.add(instance)\n }\n\n parentRegistry.set(key, instance)\n\n const previousHydratingInstance = currentHydratingInstance\n currentHydratingInstance = instance\n\n try {\n // First render during hydration - just match DOM\n const result = runWithComponent(instance, () => Component(props))\n const nodes = hydrateNode(result, parent)\n instance.nodes = nodes ? (Array.isArray(nodes) ? nodes : [nodes]) : []\n\n // Set up reactive re-rendering for future updates\n let isFirstRender = true\n const renderFn = () => {\n // Re-render with reconciliation (same logic as render.ts)\n const currentProps = instance.props\n\n // Always run the component to establish reactive tracking\n const result = runWithComponent(instance, () => Component(currentProps))\n\n if (isFirstRender) {\n isFirstRender = false\n return // Skip DOM manipulation on first render, already done during hydration\n }\n\n if (instance.nodes.length === 0) {\n const newNodes = renderNode(result, parent)\n instance.nodes = newNodes ? (Array.isArray(newNodes) ? newNodes : [newNodes]) : []\n return\n }\n\n const firstNode = instance.nodes[0]\n const nodeParent = firstNode.parentNode as HTMLElement\n\n if (!nodeParent) {\n return\n }\n\n const marker = document.createComment('flexium-marker')\n const lastNode = instance.nodes[instance.nodes.length - 1]\n if (lastNode.nextSibling) {\n nodeParent.insertBefore(marker, lastNode.nextSibling)\n } else {\n nodeParent.appendChild(marker)\n }\n\n instance.children.clear()\n\n const tempContainer = document.createElement('div')\n const newNodes = renderNode(result, tempContainer, nodeParent)\n const newNodesArray = newNodes ? (Array.isArray(newNodes) ? newNodes : [newNodes]) : []\n\n const reconciledNodes = reconcile(instance.nodes, newNodesArray, nodeParent, marker)\n\n nodeParent.removeChild(marker)\n\n instance.nodes = reconciledNodes\n }\n\n instance.renderFn = renderFn\n unsafeEffect(renderFn)\n\n return instance.nodes\n } finally {\n currentHydratingInstance = previousHydratingInstance\n\n if (isProvider) {\n popContext(contextId, prevContextValue)\n }\n }\n}\n","import { Context } from '../../core/context'\nimport { use } from '../../core/use'\nimport type { SuspenseContextValue } from './types'\n\nconst defaultValue: SuspenseContextValue = {\n register: () => {},\n hasBoundary: false\n}\n\nexport const SuspenseCtx = new Context<SuspenseContextValue>(defaultValue)\n\nexport function suspenseContext(): SuspenseContextValue {\n const [value] = use(SuspenseCtx)\n return value\n}\n","import { use } from '../../core/use'\nimport { hook } from '../../core/hook'\nimport { SuspenseCtx } from './suspenseContext'\nimport type { SuspenseProps, SuspenseContextValue } from './types'\nimport type { FNodeChild } from '../types'\n\n/**\n * Suspense component that shows fallback while children are loading\n *\n * @example\n * ```tsx\n * const Dashboard = lazy(() => import('./Dashboard'))\n *\n * function App() {\n * return (\n * <Suspense fallback={<div>Loading...</div>}>\n * <Dashboard />\n * </Suspense>\n * )\n * }\n * ```\n */\nexport function Suspense(props: SuspenseProps): FNodeChild {\n const { fallback, children } = props\n\n // Track pending promises using hook for mutable Set\n const pendingSet = hook(() => new Set<Promise<any>>())\n const [, setPendingCount] = use(0)\n const [showFallback, setShowFallback] = use(false)\n\n // Register function for lazy components\n const register = (promise: Promise<any>) => {\n if (!pendingSet.has(promise)) {\n // Add to pending set\n pendingSet.add(promise)\n setPendingCount(c => c + 1)\n setShowFallback(true)\n\n // Wait for resolution\n promise.finally(() => {\n pendingSet.delete(promise)\n setPendingCount(c => {\n const newCount = c - 1\n if (newCount === 0) {\n setShowFallback(false)\n }\n return newCount\n })\n })\n }\n }\n\n const contextValue: SuspenseContextValue = {\n register,\n hasBoundary: true\n }\n\n // Render fallback or children based on pending state\n const content = showFallback ? fallback : children\n\n // Wrap content with Suspense context provider\n return {\n type: SuspenseCtx.Provider,\n props: { value: contextValue },\n children: [content],\n key: undefined\n } as any\n}\n","import { use } from '../../core/use'\nimport { hook } from '../../core/hook'\nimport type { FNodeChild } from '../types'\nimport type { ErrorInfo, ErrorBoundaryProps } from './types'\n\n// Component name stack for error messages\nlet componentNameStack: string[] = []\n\nexport function pushComponentName(name: string): void {\n componentNameStack.push(name)\n}\n\nexport function popComponentName(): void {\n componentNameStack.pop()\n}\n\nexport function getComponentStack(): string {\n return componentNameStack\n .map(name => ` at ${name}`)\n .reverse()\n .join('\\n')\n}\n\n// Stack of error boundaries for nested error propagation\ninterface ErrorBoundaryInstance {\n handleError: (error: Error, phase: 'render' | 'effect' | 'event') => void\n}\n\nlet errorBoundaryStack: ErrorBoundaryInstance[] = []\n\nexport function pushErrorBoundary(instance: ErrorBoundaryInstance): void {\n errorBoundaryStack.push(instance)\n}\n\nexport function popErrorBoundary(): void {\n errorBoundaryStack.pop()\n}\n\nexport function getNearestErrorBoundary(): ErrorBoundaryInstance | null {\n return errorBoundaryStack[errorBoundaryStack.length - 1] || null\n}\n\n/**\n * ErrorBoundary component that catches errors in its children and displays fallback UI\n *\n * @example\n * ```tsx\n * <ErrorBoundary\n * fallback={(error, info) => <div>Error: {error.message}</div>}\n * onError={(error, info) => console.error(error)}\n * >\n * <App />\n * </ErrorBoundary>\n * ```\n */\nexport function ErrorBoundary(props: ErrorBoundaryProps): FNodeChild {\n const { fallback, onError, children, resetKey } = props\n\n // Error state\n const [errorState, setErrorState] = use<{\n error: Error | null\n info: ErrorInfo | null\n }>({ error: null, info: null })\n\n // Track reset key changes to clear error\n const prevResetKeyRef = hook(() => ({ current: resetKey }))\n\n if (resetKey !== prevResetKeyRef.current) {\n prevResetKeyRef.current = resetKey\n if (errorState.error !== null) {\n setErrorState({ error: null, info: null })\n }\n }\n\n // Error boundary instance\n const boundaryInstance: ErrorBoundaryInstance = {\n handleError: (error: Error, phase: 'render' | 'effect' | 'event') => {\n const info: ErrorInfo = {\n componentStack: getComponentStack(),\n phase\n }\n\n // Call error callback\n onError?.(error, info)\n\n // Update error state (triggers re-render with fallback)\n setErrorState({ error, info })\n }\n }\n\n // If we have an error, render fallback\n if (errorState.error) {\n if (typeof fallback === 'function') {\n return fallback(errorState.error, errorState.info!)\n }\n return fallback\n }\n\n // Push boundary onto stack for children to use\n pushErrorBoundary(boundaryInstance)\n\n try {\n // Return children - they will be rendered with this boundary active\n return children\n } finally {\n popErrorBoundary()\n }\n}\n","import { suspenseContext } from './suspenseContext'\nimport type { FNodeChild } from '../types'\nimport type { LazyComponent } from './types'\n\n/**\n * Creates a lazy-loaded component for code splitting\n *\n * @example\n * ```tsx\n * const Dashboard = lazy(() => import('./Dashboard'))\n * const Settings = lazy(() => import('./Settings'))\n *\n * function App() {\n * return (\n * <Suspense fallback={<div>Loading...</div>}>\n * <Dashboard />\n * </Suspense>\n * )\n * }\n * ```\n */\nexport function lazy<P = {}>(\n loader: () => Promise<{ default: (props: P) => FNodeChild }>\n): LazyComponent<P> {\n // Shared state across all instances\n let resolved: ((props: P) => FNodeChild) | null = null\n let promise: Promise<any> | null = null\n let error: Error | null = null\n\n // The wrapper component\n const LazyWrapper = (props: P): FNodeChild => {\n // If already resolved, render immediately\n if (resolved) {\n return resolved(props)\n }\n\n // If error occurred, throw it (will be caught by ErrorBoundary)\n if (error) {\n throw error\n }\n\n // Get suspense context\n const suspense = suspenseContext()\n\n // Start loading if not already\n if (!promise) {\n promise = loader()\n .then(module => {\n resolved = module.default\n })\n .catch(err => {\n error = err instanceof Error ? err : new Error(String(err))\n })\n }\n\n // Register with suspense boundary if available\n if (suspense.hasBoundary) {\n suspense.register(promise)\n }\n\n // Return null - Suspense will show fallback\n return null\n }\n\n // Mark as lazy component\n ;(LazyWrapper as LazyComponent<P>)._lazy = true\n ;(LazyWrapper as LazyComponent<P>)._loader = loader\n\n return LazyWrapper as LazyComponent<P>\n}\n"]}
@@ -1,2 +1,2 @@
1
- import {a,c}from'./chunk-CB6CIG76.mjs';import {e}from'./chunk-WHRUAZR4.mjs';import {a as a$1}from'./chunk-RUYGSYEV.mjs';function w(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||typeof t!="string"||t.length>2048||t.includes("__proto__")||t.includes("constructor")||/^\s*javascript:/i.test(t))}function g(t){let e=[];return t.forEach(r=>{if(!r)return;let{path:n,component:o,children:i,beforeEnter:f}=r.props||{},a={path:n||"/",component:o,beforeEnter:f};if(i){let c=Array.isArray(i)?i:[i];a.children=g(c);}!a.children&&r.children&&r.children.length>0&&(a.children=g(r.children)),e.push(a);}),e}function N(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],a=n[i];if(f.startsWith(":")){let c=f.slice(1);o[c]=a;}else if(f!==a)return null}return {params:o,path:e}}var L=new e(null),p=new e(0),U=()=>({pathname:"/",search:"",hash:"",query:{}}),E=()=>{if(typeof window>"u")return U();let t=window.location.pathname;return (!t||t==="srcdoc"||t==="/srcdoc")&&(t="/"),{pathname:t,search:window.location.search,hash:window.location.hash,query:w(window.location.search)}},l=null,y=null,F=false;function h(){if(l&&y)return [l,y];l=a(E());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")){if(D(e)){console.error("[Flexium Router] Blocked navigation to unsafe path:",e);return}try{window.history.pushState({},"",e);}catch{}t({pathname:e.split("?")[0].split("#")[0],search:e.includes("?")?"?"+e.split("?")[1].split("#")[0]:"",hash:e.includes("#")?"#"+e.split("#")[1]:"",query:w(e.includes("?")?"?"+e.split("?")[1].split("#")[0]:"")});}},typeof window<"u"&&!F&&(window.addEventListener("popstate",()=>{t(E());}),F=true),[l,y]}function R(){let[t]=c(L);if(!t)throw new Error("useRouter() must be called within a <Routes> component");return t}function P(){let[,t]=h();return t}function j(){return R().params}function _(){let[t]=h();return t.query}function x(t){return null}function A(t){return t&&typeof t=="object"&&("type"in t||Array.isArray(t))}function Q(t){let[e,r]=h(),n=Array.isArray(t.children)?t.children:[t.children],o=n.filter(s=>A(s)&&s.type===x),i=n.filter(s=>!A(s)||s.type!==x),f=g(o),a=e.pathname,c=N(f,a)||[],S=c.length>0?c[c.length-1].params:{},q={location:e,navigate:r,matches:c,params:S},C=null;if(c.length>0){let s=c[0],b=s.route.component,d=a;s.route.beforeEnter?s.route.beforeEnter(s.params)!==false&&(C=a$1(p.Provider,{value:1,key:d,children:a$1(b,{params:s.params,key:d})})):C=a$1(p.Provider,{value:1,key:d,children:a$1(b,{params:s.params,key:d})});}return a$1(L.Provider,{value:q,children:[...i,C]})}function B(){let t=R(),[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=P();return a$1("a",{href:t.to,class:t.class,style:"cursor: pointer;",onclick:r=>{r.preventDefault(),e(t.to);},children:t.children})}export{h as a,R as b,P as c,j as d,_ as e,x as f,Q as g,B as h,M as i};//# sourceMappingURL=chunk-AJL63VBW.mjs.map
2
- //# sourceMappingURL=chunk-AJL63VBW.mjs.map
1
+ import {a,c}from'./chunk-CB6CIG76.mjs';import {e}from'./chunk-WHRUAZR4.mjs';import {a as a$1}from'./chunk-RUYGSYEV.mjs';function w(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 N(t){return !!(!t||typeof t!="string"||t.length>2048||t.includes("__proto__")||t.includes("constructor")||/^\s*javascript:/i.test(t))}function g(t){let e=[];return t.forEach(r=>{if(!r)return;let{path:n,component:o,children:i,beforeEnter:f}=r.props||{},a={path:n||"/",component:o,beforeEnter:f};if(i){let c=Array.isArray(i)?i:[i];a.children=g(c);}!a.children&&r.children&&r.children.length>0&&(a.children=g(r.children)),e.push(a);}),e}function D(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],a=n[i];if(f.startsWith(":")){let c=f.slice(1);o[c]=a;}else if(f!==a)return null}return {params:o,path:e}}var L=new e(null),p=new e(0),U=()=>({pathname:"/",search:"",hash:"",query:{}}),E=()=>{if(typeof window>"u")return U();let t=window.location.pathname;return (!t||t==="srcdoc"||t==="/srcdoc")&&(t="/"),{pathname:t,search:window.location.search,hash:window.location.hash,query:w(window.location.search)}},l=null,y=null,F=false;function h(){if(l&&y)return [l,y];l=a(E());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")){if(N(e)){console.error("[Flexium Router] Blocked navigation to unsafe path:",e);return}try{window.history.pushState({},"",e);}catch{}t({pathname:e.split("?")[0].split("#")[0],search:e.includes("?")?"?"+e.split("?")[1].split("#")[0]:"",hash:e.includes("#")?"#"+e.split("#")[1]:"",query:w(e.includes("?")?"?"+e.split("?")[1].split("#")[0]:"")});}},typeof window<"u"&&!F&&(window.addEventListener("popstate",()=>{t(E());}),F=true),[l,y]}function R(){let[t]=c(L);if(!t)throw new Error("useRouter() must be called within a <Routes> component");return t}function P(){let[,t]=h();return t}function j(){return R().params}function _(){let[t]=h();return t.query}function x(t){return null}function A(t){return t&&typeof t=="object"&&("type"in t||Array.isArray(t))}function Q(t){let[e,r]=h(),n=Array.isArray(t.children)?t.children:[t.children],o=n.filter(s=>A(s)&&s.type===x),i=n.filter(s=>!A(s)||s.type!==x),f=g(o),a=e.pathname,c=D(f,a)||[],S=c.length>0?c[c.length-1].params:{},q={location:e,navigate:r,matches:c,params:S},C=null;if(c.length>0){let s=c[0],b=s.route.component,d=a;s.route.beforeEnter?s.route.beforeEnter(s.params)!==false&&(C=a$1(p.Provider,{value:1,key:d,children:a$1(b,{params:s.params,key:d})})):C=a$1(p.Provider,{value:1,key:d,children:a$1(b,{params:s.params,key:d})});}return a$1(L.Provider,{value:q,children:[...i,C]})}function B(){let t=R(),[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=P();return a$1("a",{href:t.to,class:t.class||t.className,style:t.style?t.style+"; cursor: pointer;":"cursor: pointer;",onclick:r=>{r.preventDefault(),e(t.to);},children:t.children})}export{h as a,R as b,P as c,j as d,_ as e,x as f,Q as g,B as h,M as i};//# sourceMappingURL=chunk-REYBGD7A.mjs.map
2
+ //# sourceMappingURL=chunk-REYBGD7A.mjs.map
@@ -0,0 +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","pathname","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":"chunk-REYBGD7A.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 // Handle undefined or null path\n if (!path || typeof path !== 'string') return true\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\n // Handle srcdoc iframe - pathname may be empty or 'srcdoc'\n let pathname = window.location.pathname\n if (!pathname || pathname === 'srcdoc' || pathname === '/srcdoc') {\n pathname = '/'\n }\n\n return {\n 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\n // Try to update browser history, but continue even if it fails (e.g., in srcdoc iframe)\n try {\n window.history.pushState({}, '', path)\n } catch {\n // SecurityError in srcdoc iframe - ignore but continue with internal state update\n }\n\n // Always update internal location state for SPA navigation\n updateLocation({\n pathname: path.split('?')[0].split('#')[0],\n search: path.includes('?') ? '?' + path.split('?')[1].split('#')[0] : '',\n hash: path.includes('#') ? '#' + path.split('#')[1] : '',\n query: parseQuery(path.includes('?') ? '?' + path.split('?')[1].split('#')[0] : '')\n })\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 { useNavigate } from '../router'\n\nexport function Link(props: LinkProps) {\n const navigate = useNavigate()\n return f('a', {\n href: props.to,\n class: props.class || props.className,\n style: props.style ? props.style + '; cursor: pointer;' : 'cursor: pointer;',\n onclick: (event: Event) => {\n event.preventDefault()\n navigate(props.to)\n },\n children: props.children\n })\n}\n"]}
package/dist/dom.js CHANGED
@@ -1,2 +1,2 @@
1
- 'use strict';var chunkJNWUZKHF_js=require('./chunk-JNWUZKHF.js'),chunkTHUSQSDY_js=require('./chunk-THUSQSDY.js');require('./chunk-LOKMOGSA.js'),require('./chunk-3CKIHQIE.js'),require('./chunk-VNYPOCV7.js');Object.defineProperty(exports,"ErrorBoundary",{enumerable:true,get:function(){return chunkJNWUZKHF_js.d}});Object.defineProperty(exports,"Suspense",{enumerable:true,get:function(){return chunkJNWUZKHF_js.c}});Object.defineProperty(exports,"f",{enumerable:true,get:function(){return chunkJNWUZKHF_js.a}});Object.defineProperty(exports,"hydrate",{enumerable:true,get:function(){return chunkJNWUZKHF_js.b}});Object.defineProperty(exports,"lazy",{enumerable:true,get:function(){return chunkJNWUZKHF_js.e}});Object.defineProperty(exports,"render",{enumerable:true,get:function(){return chunkTHUSQSDY_js.c}});//# sourceMappingURL=dom.js.map
1
+ 'use strict';var chunkFJKINID6_js=require('./chunk-FJKINID6.js'),chunkA7TIKNG5_js=require('./chunk-A7TIKNG5.js');require('./chunk-LOKMOGSA.js'),require('./chunk-3CKIHQIE.js'),require('./chunk-VNYPOCV7.js');Object.defineProperty(exports,"ErrorBoundary",{enumerable:true,get:function(){return chunkFJKINID6_js.d}});Object.defineProperty(exports,"Suspense",{enumerable:true,get:function(){return chunkFJKINID6_js.c}});Object.defineProperty(exports,"f",{enumerable:true,get:function(){return chunkFJKINID6_js.a}});Object.defineProperty(exports,"hydrate",{enumerable:true,get:function(){return chunkFJKINID6_js.b}});Object.defineProperty(exports,"lazy",{enumerable:true,get:function(){return chunkFJKINID6_js.e}});Object.defineProperty(exports,"render",{enumerable:true,get:function(){return chunkA7TIKNG5_js.c}});//# sourceMappingURL=dom.js.map
2
2
  //# sourceMappingURL=dom.js.map
package/dist/dom.mjs CHANGED
@@ -1,2 +1,2 @@
1
- export{d as ErrorBoundary,c as Suspense,a as f,b as hydrate,e as lazy}from'./chunk-HBBTT5I5.mjs';export{c as render}from'./chunk-NABWFBEA.mjs';import'./chunk-CB6CIG76.mjs';import'./chunk-NRPWBHKP.mjs';import'./chunk-WHRUAZR4.mjs';//# sourceMappingURL=dom.mjs.map
1
+ export{d as ErrorBoundary,c as Suspense,a as f,b as hydrate,e as lazy}from'./chunk-KXRTSDK2.mjs';export{c as render}from'./chunk-3T5WSKBQ.mjs';import'./chunk-CB6CIG76.mjs';import'./chunk-NRPWBHKP.mjs';import'./chunk-WHRUAZR4.mjs';//# sourceMappingURL=dom.mjs.map
2
2
  //# sourceMappingURL=dom.mjs.map
package/dist/index.d.cts CHANGED
@@ -6,6 +6,6 @@ export { getIsServer, renderToStaticMarkup, renderToString } from './server.cjs'
6
6
  export { CSSProperties, CSSValue, DefaultVariants, KeyframeDefinition, StyleObject, StyledConfig, StyledProps, VariantConfig, css, cx, getStyleTag, getStyles, hydrateStyles, keyframes, resetStyles, styled } from './css.cjs';
7
7
  import './types-DH8L3A5z.cjs';
8
8
 
9
- declare const VERSION = "0.16.7";
9
+ declare const VERSION = "0.16.9";
10
10
 
11
11
  export { VERSION };
package/dist/index.d.ts CHANGED
@@ -6,6 +6,6 @@ export { getIsServer, renderToStaticMarkup, renderToString } from './server.js';
6
6
  export { CSSProperties, CSSValue, DefaultVariants, KeyframeDefinition, StyleObject, StyledConfig, StyledProps, VariantConfig, css, cx, getStyleTag, getStyles, hydrateStyles, keyframes, resetStyles, styled } from './css.js';
7
7
  import './types-DH8L3A5z.js';
8
8
 
9
- declare const VERSION = "0.16.7";
9
+ declare const VERSION = "0.16.9";
10
10
 
11
11
  export { VERSION };
package/dist/index.js CHANGED
@@ -1,2 +1,2 @@
1
- 'use strict';var chunkEROGYZGA_js=require('./chunk-EROGYZGA.js'),chunkJNWUZKHF_js=require('./chunk-JNWUZKHF.js'),chunkTHUSQSDY_js=require('./chunk-THUSQSDY.js'),chunkHUE2TOCR_js=require('./chunk-HUE2TOCR.js'),chunkDVG7OZ3X_js=require('./chunk-DVG7OZ3X.js'),chunkLOKMOGSA_js=require('./chunk-LOKMOGSA.js'),chunk3CKIHQIE_js=require('./chunk-3CKIHQIE.js'),chunkVNYPOCV7_js=require('./chunk-VNYPOCV7.js'),chunkZJZRDYA2_js=require('./chunk-ZJZRDYA2.js');require('./chunk-TFXBDC6C.js');var D="0.16.7";Object.defineProperty(exports,"useRef",{enumerable:true,get:function(){return chunkEROGYZGA_js.a}});Object.defineProperty(exports,"ErrorBoundary",{enumerable:true,get:function(){return chunkJNWUZKHF_js.d}});Object.defineProperty(exports,"Suspense",{enumerable:true,get:function(){return chunkJNWUZKHF_js.c}});Object.defineProperty(exports,"f",{enumerable:true,get:function(){return chunkJNWUZKHF_js.a}});Object.defineProperty(exports,"hydrate",{enumerable:true,get:function(){return chunkJNWUZKHF_js.b}});Object.defineProperty(exports,"lazy",{enumerable:true,get:function(){return chunkJNWUZKHF_js.e}});Object.defineProperty(exports,"render",{enumerable:true,get:function(){return chunkTHUSQSDY_js.c}});Object.defineProperty(exports,"getIsServer",{enumerable:true,get:function(){return chunkHUE2TOCR_js.a}});Object.defineProperty(exports,"renderToStaticMarkup",{enumerable:true,get:function(){return chunkHUE2TOCR_js.c}});Object.defineProperty(exports,"renderToString",{enumerable:true,get:function(){return chunkHUE2TOCR_js.b}});Object.defineProperty(exports,"Link",{enumerable:true,get:function(){return chunkDVG7OZ3X_js.i}});Object.defineProperty(exports,"Outlet",{enumerable:true,get:function(){return chunkDVG7OZ3X_js.h}});Object.defineProperty(exports,"Route",{enumerable:true,get:function(){return chunkDVG7OZ3X_js.f}});Object.defineProperty(exports,"Routes",{enumerable:true,get:function(){return chunkDVG7OZ3X_js.g}});Object.defineProperty(exports,"useLocation",{enumerable:true,get:function(){return chunkDVG7OZ3X_js.a}});Object.defineProperty(exports,"useNavigate",{enumerable:true,get:function(){return chunkDVG7OZ3X_js.c}});Object.defineProperty(exports,"useParams",{enumerable:true,get:function(){return chunkDVG7OZ3X_js.d}});Object.defineProperty(exports,"useQuery",{enumerable:true,get:function(){return chunkDVG7OZ3X_js.e}});Object.defineProperty(exports,"useRouter",{enumerable:true,get:function(){return chunkDVG7OZ3X_js.b}});Object.defineProperty(exports,"isReactive",{enumerable:true,get:function(){return chunkLOKMOGSA_js.b}});Object.defineProperty(exports,"use",{enumerable:true,get:function(){return chunkLOKMOGSA_js.c}});Object.defineProperty(exports,"sync",{enumerable:true,get:function(){return chunk3CKIHQIE_js.e}});Object.defineProperty(exports,"Context",{enumerable:true,get:function(){return chunkVNYPOCV7_js.e}});Object.defineProperty(exports,"Useable",{enumerable:true,get:function(){return chunkVNYPOCV7_js.c}});Object.defineProperty(exports,"getContextValue",{enumerable:true,get:function(){return chunkVNYPOCV7_js.f}});Object.defineProperty(exports,"isUseable",{enumerable:true,get:function(){return chunkVNYPOCV7_js.d}});Object.defineProperty(exports,"popContext",{enumerable:true,get:function(){return chunkVNYPOCV7_js.h}});Object.defineProperty(exports,"pushContext",{enumerable:true,get:function(){return chunkVNYPOCV7_js.g}});Object.defineProperty(exports,"css",{enumerable:true,get:function(){return chunkZJZRDYA2_js.e}});Object.defineProperty(exports,"cx",{enumerable:true,get:function(){return chunkZJZRDYA2_js.f}});Object.defineProperty(exports,"getStyleTag",{enumerable:true,get:function(){return chunkZJZRDYA2_js.b}});Object.defineProperty(exports,"getStyles",{enumerable:true,get:function(){return chunkZJZRDYA2_js.a}});Object.defineProperty(exports,"hydrateStyles",{enumerable:true,get:function(){return chunkZJZRDYA2_js.d}});Object.defineProperty(exports,"keyframes",{enumerable:true,get:function(){return chunkZJZRDYA2_js.h}});Object.defineProperty(exports,"resetStyles",{enumerable:true,get:function(){return chunkZJZRDYA2_js.c}});Object.defineProperty(exports,"styled",{enumerable:true,get:function(){return chunkZJZRDYA2_js.g}});exports.VERSION=D;//# sourceMappingURL=index.js.map
1
+ 'use strict';var chunkEROGYZGA_js=require('./chunk-EROGYZGA.js'),chunkFJKINID6_js=require('./chunk-FJKINID6.js'),chunkA7TIKNG5_js=require('./chunk-A7TIKNG5.js'),chunkHUE2TOCR_js=require('./chunk-HUE2TOCR.js'),chunkDZKR3RLN_js=require('./chunk-DZKR3RLN.js'),chunkLOKMOGSA_js=require('./chunk-LOKMOGSA.js'),chunk3CKIHQIE_js=require('./chunk-3CKIHQIE.js'),chunkVNYPOCV7_js=require('./chunk-VNYPOCV7.js'),chunkZJZRDYA2_js=require('./chunk-ZJZRDYA2.js');require('./chunk-TFXBDC6C.js');var D="0.16.9";Object.defineProperty(exports,"useRef",{enumerable:true,get:function(){return chunkEROGYZGA_js.a}});Object.defineProperty(exports,"ErrorBoundary",{enumerable:true,get:function(){return chunkFJKINID6_js.d}});Object.defineProperty(exports,"Suspense",{enumerable:true,get:function(){return chunkFJKINID6_js.c}});Object.defineProperty(exports,"f",{enumerable:true,get:function(){return chunkFJKINID6_js.a}});Object.defineProperty(exports,"hydrate",{enumerable:true,get:function(){return chunkFJKINID6_js.b}});Object.defineProperty(exports,"lazy",{enumerable:true,get:function(){return chunkFJKINID6_js.e}});Object.defineProperty(exports,"render",{enumerable:true,get:function(){return chunkA7TIKNG5_js.c}});Object.defineProperty(exports,"getIsServer",{enumerable:true,get:function(){return chunkHUE2TOCR_js.a}});Object.defineProperty(exports,"renderToStaticMarkup",{enumerable:true,get:function(){return chunkHUE2TOCR_js.c}});Object.defineProperty(exports,"renderToString",{enumerable:true,get:function(){return chunkHUE2TOCR_js.b}});Object.defineProperty(exports,"Link",{enumerable:true,get:function(){return chunkDZKR3RLN_js.i}});Object.defineProperty(exports,"Outlet",{enumerable:true,get:function(){return chunkDZKR3RLN_js.h}});Object.defineProperty(exports,"Route",{enumerable:true,get:function(){return chunkDZKR3RLN_js.f}});Object.defineProperty(exports,"Routes",{enumerable:true,get:function(){return chunkDZKR3RLN_js.g}});Object.defineProperty(exports,"useLocation",{enumerable:true,get:function(){return chunkDZKR3RLN_js.a}});Object.defineProperty(exports,"useNavigate",{enumerable:true,get:function(){return chunkDZKR3RLN_js.c}});Object.defineProperty(exports,"useParams",{enumerable:true,get:function(){return chunkDZKR3RLN_js.d}});Object.defineProperty(exports,"useQuery",{enumerable:true,get:function(){return chunkDZKR3RLN_js.e}});Object.defineProperty(exports,"useRouter",{enumerable:true,get:function(){return chunkDZKR3RLN_js.b}});Object.defineProperty(exports,"isReactive",{enumerable:true,get:function(){return chunkLOKMOGSA_js.b}});Object.defineProperty(exports,"use",{enumerable:true,get:function(){return chunkLOKMOGSA_js.c}});Object.defineProperty(exports,"sync",{enumerable:true,get:function(){return chunk3CKIHQIE_js.e}});Object.defineProperty(exports,"Context",{enumerable:true,get:function(){return chunkVNYPOCV7_js.e}});Object.defineProperty(exports,"Useable",{enumerable:true,get:function(){return chunkVNYPOCV7_js.c}});Object.defineProperty(exports,"getContextValue",{enumerable:true,get:function(){return chunkVNYPOCV7_js.f}});Object.defineProperty(exports,"isUseable",{enumerable:true,get:function(){return chunkVNYPOCV7_js.d}});Object.defineProperty(exports,"popContext",{enumerable:true,get:function(){return chunkVNYPOCV7_js.h}});Object.defineProperty(exports,"pushContext",{enumerable:true,get:function(){return chunkVNYPOCV7_js.g}});Object.defineProperty(exports,"css",{enumerable:true,get:function(){return chunkZJZRDYA2_js.e}});Object.defineProperty(exports,"cx",{enumerable:true,get:function(){return chunkZJZRDYA2_js.f}});Object.defineProperty(exports,"getStyleTag",{enumerable:true,get:function(){return chunkZJZRDYA2_js.b}});Object.defineProperty(exports,"getStyles",{enumerable:true,get:function(){return chunkZJZRDYA2_js.a}});Object.defineProperty(exports,"hydrateStyles",{enumerable:true,get:function(){return chunkZJZRDYA2_js.d}});Object.defineProperty(exports,"keyframes",{enumerable:true,get:function(){return chunkZJZRDYA2_js.h}});Object.defineProperty(exports,"resetStyles",{enumerable:true,get:function(){return chunkZJZRDYA2_js.c}});Object.defineProperty(exports,"styled",{enumerable:true,get:function(){return chunkZJZRDYA2_js.g}});exports.VERSION=D;//# sourceMappingURL=index.js.map
2
2
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts"],"names":["VERSION"],"mappings":"geAAO,IAAMA,CAAAA,CAAU","file":"index.js","sourcesContent":["export const VERSION = '0.16.7' // Bump version to signify rebuild\n\n// Re-export all from submodules\nexport * from './core'\nexport * from './dom'\nexport * from './router'\nexport * from './server'\nexport * from './css'\n"]}
1
+ {"version":3,"sources":["../src/index.ts"],"names":["VERSION"],"mappings":"geAAO,IAAMA,CAAAA,CAAU","file":"index.js","sourcesContent":["export const VERSION = '0.16.9' // Bump version to signify rebuild\n\n// Re-export all from submodules\nexport * from './core'\nexport * from './dom'\nexport * from './router'\nexport * from './server'\nexport * from './css'\n"]}
package/dist/index.mjs CHANGED
@@ -1,2 +1,2 @@
1
- export{a as useRef}from'./chunk-PPPU2XSA.mjs';export{d as ErrorBoundary,c as Suspense,a as f,b as hydrate,e as lazy}from'./chunk-HBBTT5I5.mjs';export{c as render}from'./chunk-NABWFBEA.mjs';export{a as getIsServer,c as renderToStaticMarkup,b as renderToString}from'./chunk-S5DHAAMO.mjs';export{i as Link,h as Outlet,f as Route,g as Routes,a as useLocation,c as useNavigate,d as useParams,e as useQuery,b as useRouter}from'./chunk-AJL63VBW.mjs';export{b as isReactive,c as use}from'./chunk-CB6CIG76.mjs';export{e as sync}from'./chunk-NRPWBHKP.mjs';export{e as Context,c as Useable,f as getContextValue,d as isUseable,h as popContext,g as pushContext}from'./chunk-WHRUAZR4.mjs';export{e as css,f as cx,b as getStyleTag,a as getStyles,d as hydrateStyles,h as keyframes,c as resetStyles,g as styled}from'./chunk-FU4W2BKL.mjs';import'./chunk-RUYGSYEV.mjs';var D="0.16.7";export{D as VERSION};//# sourceMappingURL=index.mjs.map
1
+ export{a as useRef}from'./chunk-PPPU2XSA.mjs';export{d as ErrorBoundary,c as Suspense,a as f,b as hydrate,e as lazy}from'./chunk-KXRTSDK2.mjs';export{c as render}from'./chunk-3T5WSKBQ.mjs';export{a as getIsServer,c as renderToStaticMarkup,b as renderToString}from'./chunk-S5DHAAMO.mjs';export{i as Link,h as Outlet,f as Route,g as Routes,a as useLocation,c as useNavigate,d as useParams,e as useQuery,b as useRouter}from'./chunk-REYBGD7A.mjs';export{b as isReactive,c as use}from'./chunk-CB6CIG76.mjs';export{e as sync}from'./chunk-NRPWBHKP.mjs';export{e as Context,c as Useable,f as getContextValue,d as isUseable,h as popContext,g as pushContext}from'./chunk-WHRUAZR4.mjs';export{e as css,f as cx,b as getStyleTag,a as getStyles,d as hydrateStyles,h as keyframes,c as resetStyles,g as styled}from'./chunk-FU4W2BKL.mjs';import'./chunk-RUYGSYEV.mjs';var D="0.16.9";export{D as VERSION};//# sourceMappingURL=index.mjs.map
2
2
  //# sourceMappingURL=index.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts"],"names":["VERSION"],"mappings":"k1BAAO,IAAMA,CAAAA,CAAU","file":"index.mjs","sourcesContent":["export const VERSION = '0.16.7' // Bump version to signify rebuild\n\n// Re-export all from submodules\nexport * from './core'\nexport * from './dom'\nexport * from './router'\nexport * from './server'\nexport * from './css'\n"]}
1
+ {"version":3,"sources":["../src/index.ts"],"names":["VERSION"],"mappings":"k1BAAO,IAAMA,CAAAA,CAAU","file":"index.mjs","sourcesContent":["export const VERSION = '0.16.9' // Bump version to signify rebuild\n\n// Re-export all from submodules\nexport * from './core'\nexport * from './dom'\nexport * from './router'\nexport * from './server'\nexport * from './css'\n"]}
@@ -1 +1 @@
1
- {"inputs":{"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":2083,"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":8860,"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":15640,"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":10437,"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":"import-statement","original":"./render"},{"path":"src/dom/render.ts","kind":"dynamic-import","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":549,"imports":[{"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":348,"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/router/types.ts":{"bytes":807,"imports":[],"format":"esm"},"src/router/utils.ts":{"bytes":3833,"imports":[{"path":"./types","kind":"import-statement","external":true}],"format":"esm"},"src/router/router.ts":{"bytes":3959,"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":467,"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/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/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/index.ts":{"bytes":218,"imports":[{"path":"src/core/index.ts","kind":"import-statement","original":"./core"},{"path":"src/dom/index.ts","kind":"import-statement","original":"./dom"},{"path":"src/router/index.ts","kind":"import-statement","original":"./router"},{"path":"src/server/index.ts","kind":"import-statement","original":"./server"},{"path":"src/css/index.ts","kind":"import-statement","original":"./css"}],"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-IBWAHNEZ.js.map":{"imports":[],"exports":[],"inputs":{},"bytes":93},"dist/render-IBWAHNEZ.js":{"imports":[{"path":"dist/chunk-THUSQSDY.js","kind":"import-statement"},{"path":"dist/chunk-3CKIHQIE.js","kind":"import-statement"},{"path":"dist/chunk-VNYPOCV7.js","kind":"import-statement"}],"exports":["reconcile","render","renderNode"],"entryPoint":"src/dom/render.ts","inputs":{},"bytes":147},"dist/index.js.map":{"imports":[],"exports":[],"inputs":{},"bytes":364},"dist/index.js":{"imports":[{"path":"dist/chunk-EROGYZGA.js","kind":"import-statement"},{"path":"dist/chunk-JNWUZKHF.js","kind":"import-statement"},{"path":"dist/chunk-THUSQSDY.js","kind":"import-statement"},{"path":"dist/chunk-HUE2TOCR.js","kind":"import-statement"},{"path":"dist/chunk-DVG7OZ3X.js","kind":"import-statement"},{"path":"dist/chunk-LOKMOGSA.js","kind":"import-statement"},{"path":"dist/chunk-3CKIHQIE.js","kind":"import-statement"},{"path":"dist/chunk-VNYPOCV7.js","kind":"import-statement"},{"path":"dist/chunk-ZJZRDYA2.js","kind":"import-statement"},{"path":"dist/chunk-TFXBDC6C.js","kind":"import-statement"}],"exports":["Context","ErrorBoundary","Link","Outlet","Route","Routes","Suspense","Useable","VERSION","css","cx","f","getContextValue","getIsServer","getStyleTag","getStyles","hydrate","hydrateStyles","isReactive","isUseable","keyframes","lazy","popContext","pushContext","render","renderToStaticMarkup","renderToString","resetStyles","styled","sync","use","useLocation","useNavigate","useParams","useQuery","useRef","useRouter"],"entryPoint":"src/index.ts","inputs":{"src/index.ts":{"bytesInOutput":15}},"bytes":1124},"dist/core.js.map":{"imports":[],"exports":[],"inputs":{},"bytes":93},"dist/core.js":{"imports":[{"path":"dist/chunk-EROGYZGA.js","kind":"import-statement"},{"path":"dist/chunk-LOKMOGSA.js","kind":"import-statement"},{"path":"dist/chunk-3CKIHQIE.js","kind":"import-statement"},{"path":"dist/chunk-VNYPOCV7.js","kind":"import-statement"}],"exports":["Context","Useable","getContextValue","isReactive","isUseable","popContext","pushContext","sync","use","useRef"],"entryPoint":"src/core/index.ts","inputs":{},"bytes":318},"dist/chunk-EROGYZGA.js.map":{"imports":[],"exports":[],"inputs":{},"bytes":1066},"dist/chunk-EROGYZGA.js":{"imports":[{"path":"dist/chunk-VNYPOCV7.js","kind":"import-statement"}],"exports":["a"],"inputs":{"src/core/index.ts":{"bytesInOutput":0},"src/core/ref.ts":{"bytesInOutput":42}},"bytes":98},"dist/dom.js.map":{"imports":[],"exports":[],"inputs":{},"bytes":93},"dist/dom.js":{"imports":[{"path":"dist/chunk-JNWUZKHF.js","kind":"import-statement"},{"path":"dist/chunk-THUSQSDY.js","kind":"import-statement"},{"path":"dist/chunk-LOKMOGSA.js","kind":"import-statement"},{"path":"dist/chunk-3CKIHQIE.js","kind":"import-statement"},{"path":"dist/chunk-VNYPOCV7.js","kind":"import-statement"}],"exports":["ErrorBoundary","Suspense","f","hydrate","lazy","render"],"entryPoint":"src/dom/index.ts","inputs":{},"bytes":271},"dist/chunk-JNWUZKHF.js.map":{"imports":[],"exports":[],"inputs":{},"bytes":26910},"dist/chunk-JNWUZKHF.js":{"imports":[{"path":"dist/chunk-THUSQSDY.js","kind":"import-statement"},{"path":"dist/chunk-LOKMOGSA.js","kind":"import-statement"},{"path":"dist/chunk-3CKIHQIE.js","kind":"import-statement"},{"path":"dist/chunk-VNYPOCV7.js","kind":"import-statement"},{"path":"dist/render-IBWAHNEZ.js","kind":"dynamic-import"}],"exports":["a","b","c","d","e"],"inputs":{"src/dom/f.ts":{"bytesInOutput":70},"src/dom/index.ts":{"bytesInOutput":0},"src/dom/hydrate.ts":{"bytesInOutput":3135},"src/dom/components/suspenseContext.ts":{"bytesInOutput":86},"src/dom/components/Suspense.tsx":{"bytesInOutput":293},"src/dom/components/index.ts":{"bytesInOutput":0},"src/dom/components/ErrorBoundary.tsx":{"bytesInOutput":508},"src/dom/components/lazy.ts":{"bytesInOutput":249}},"bytes":4580},"dist/chunk-THUSQSDY.js.map":{"imports":[],"exports":[],"inputs":{},"bytes":24696},"dist/chunk-THUSQSDY.js":{"imports":[{"path":"dist/chunk-3CKIHQIE.js","kind":"import-statement"},{"path":"dist/chunk-VNYPOCV7.js","kind":"import-statement"}],"exports":["a","b","c"],"inputs":{"src/dom/render.ts":{"bytesInOutput":4952}},"bytes":5069},"dist/server.js.map":{"imports":[],"exports":[],"inputs":{},"bytes":93},"dist/server.js":{"imports":[{"path":"dist/chunk-HUE2TOCR.js","kind":"import-statement"},{"path":"dist/chunk-VNYPOCV7.js","kind":"import-statement"}],"exports":["getIsServer","renderToStaticMarkup","renderToString"],"entryPoint":"src/server/index.ts","inputs":{},"bytes":139},"dist/chunk-HUE2TOCR.js.map":{"imports":[],"exports":[],"inputs":{},"bytes":12945},"dist/chunk-HUE2TOCR.js":{"imports":[{"path":"dist/chunk-VNYPOCV7.js","kind":"import-statement"}],"exports":["a","b","c"],"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":2547},"dist/router.js.map":{"imports":[],"exports":[],"inputs":{},"bytes":93},"dist/router.js":{"imports":[{"path":"dist/chunk-DVG7OZ3X.js","kind":"import-statement"},{"path":"dist/chunk-LOKMOGSA.js","kind":"import-statement"},{"path":"dist/chunk-3CKIHQIE.js","kind":"import-statement"},{"path":"dist/chunk-VNYPOCV7.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":{},"bytes":295},"dist/chunk-DVG7OZ3X.js.map":{"imports":[],"exports":[],"inputs":{},"bytes":18667},"dist/chunk-DVG7OZ3X.js":{"imports":[{"path":"dist/chunk-LOKMOGSA.js","kind":"import-statement"},{"path":"dist/chunk-VNYPOCV7.js","kind":"import-statement"},{"path":"dist/chunk-TFXBDC6C.js","kind":"import-statement"}],"exports":["a","b","c","d","e","f","g","h","i"],"inputs":{"src/router/index.ts":{"bytesInOutput":0},"src/router/utils.ts":{"bytesInOutput":1097},"src/router/router.ts":{"bytesInOutput":1132},"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":149}},"bytes":3485},"dist/chunk-LOKMOGSA.js.map":{"imports":[],"exports":[],"inputs":{},"bytes":19014},"dist/chunk-LOKMOGSA.js":{"imports":[{"path":"dist/chunk-3CKIHQIE.js","kind":"import-statement"},{"path":"dist/chunk-VNYPOCV7.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":2119}},"bytes":3219},"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-VNYPOCV7.js.map":{"imports":[],"exports":[],"inputs":{},"bytes":7360},"dist/chunk-VNYPOCV7.js":{"imports":[],"exports":["a","b","c","d","e","f","g","h"],"inputs":{"src/core/hook.ts":{"bytesInOutput":227},"src/core/useable.ts":{"bytesInOutput":151},"src/core/context.ts":{"bytesInOutput":397}},"bytes":840},"dist/css.js.map":{"imports":[],"exports":[],"inputs":{},"bytes":93},"dist/css.js":{"imports":[{"path":"dist/chunk-ZJZRDYA2.js","kind":"import-statement"}],"exports":["css","cx","getStyleTag","getStyles","hydrateStyles","keyframes","resetStyles","styled"],"entryPoint":"src/css/index.ts","inputs":{},"bytes":170},"dist/chunk-ZJZRDYA2.js.map":{"imports":[],"exports":[],"inputs":{},"bytes":20385},"dist/chunk-ZJZRDYA2.js":{"imports":[],"exports":["a","b","c","d","e","f","g","h"],"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":3283},"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/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":2083,"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":8860,"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":16120,"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":10437,"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":"import-statement","original":"./render"},{"path":"src/dom/render.ts","kind":"dynamic-import","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":549,"imports":[{"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":348,"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/router/types.ts":{"bytes":845,"imports":[],"format":"esm"},"src/router/utils.ts":{"bytes":3833,"imports":[{"path":"./types","kind":"import-statement","external":true}],"format":"esm"},"src/router/router.ts":{"bytes":3959,"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":537,"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/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/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/index.ts":{"bytes":218,"imports":[{"path":"src/core/index.ts","kind":"import-statement","original":"./core"},{"path":"src/dom/index.ts","kind":"import-statement","original":"./dom"},{"path":"src/router/index.ts","kind":"import-statement","original":"./router"},{"path":"src/server/index.ts","kind":"import-statement","original":"./server"},{"path":"src/css/index.ts","kind":"import-statement","original":"./css"}],"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-5B44GLK2.js.map":{"imports":[],"exports":[],"inputs":{},"bytes":93},"dist/render-5B44GLK2.js":{"imports":[{"path":"dist/chunk-A7TIKNG5.js","kind":"import-statement"},{"path":"dist/chunk-3CKIHQIE.js","kind":"import-statement"},{"path":"dist/chunk-VNYPOCV7.js","kind":"import-statement"}],"exports":["reconcile","render","renderNode"],"entryPoint":"src/dom/render.ts","inputs":{},"bytes":147},"dist/index.js.map":{"imports":[],"exports":[],"inputs":{},"bytes":364},"dist/index.js":{"imports":[{"path":"dist/chunk-EROGYZGA.js","kind":"import-statement"},{"path":"dist/chunk-FJKINID6.js","kind":"import-statement"},{"path":"dist/chunk-A7TIKNG5.js","kind":"import-statement"},{"path":"dist/chunk-HUE2TOCR.js","kind":"import-statement"},{"path":"dist/chunk-DZKR3RLN.js","kind":"import-statement"},{"path":"dist/chunk-LOKMOGSA.js","kind":"import-statement"},{"path":"dist/chunk-3CKIHQIE.js","kind":"import-statement"},{"path":"dist/chunk-VNYPOCV7.js","kind":"import-statement"},{"path":"dist/chunk-ZJZRDYA2.js","kind":"import-statement"},{"path":"dist/chunk-TFXBDC6C.js","kind":"import-statement"}],"exports":["Context","ErrorBoundary","Link","Outlet","Route","Routes","Suspense","Useable","VERSION","css","cx","f","getContextValue","getIsServer","getStyleTag","getStyles","hydrate","hydrateStyles","isReactive","isUseable","keyframes","lazy","popContext","pushContext","render","renderToStaticMarkup","renderToString","resetStyles","styled","sync","use","useLocation","useNavigate","useParams","useQuery","useRef","useRouter"],"entryPoint":"src/index.ts","inputs":{"src/index.ts":{"bytesInOutput":15}},"bytes":1124},"dist/core.js.map":{"imports":[],"exports":[],"inputs":{},"bytes":93},"dist/core.js":{"imports":[{"path":"dist/chunk-EROGYZGA.js","kind":"import-statement"},{"path":"dist/chunk-LOKMOGSA.js","kind":"import-statement"},{"path":"dist/chunk-3CKIHQIE.js","kind":"import-statement"},{"path":"dist/chunk-VNYPOCV7.js","kind":"import-statement"}],"exports":["Context","Useable","getContextValue","isReactive","isUseable","popContext","pushContext","sync","use","useRef"],"entryPoint":"src/core/index.ts","inputs":{},"bytes":318},"dist/chunk-EROGYZGA.js.map":{"imports":[],"exports":[],"inputs":{},"bytes":1066},"dist/chunk-EROGYZGA.js":{"imports":[{"path":"dist/chunk-VNYPOCV7.js","kind":"import-statement"}],"exports":["a"],"inputs":{"src/core/index.ts":{"bytesInOutput":0},"src/core/ref.ts":{"bytesInOutput":42}},"bytes":98},"dist/dom.js.map":{"imports":[],"exports":[],"inputs":{},"bytes":93},"dist/dom.js":{"imports":[{"path":"dist/chunk-FJKINID6.js","kind":"import-statement"},{"path":"dist/chunk-A7TIKNG5.js","kind":"import-statement"},{"path":"dist/chunk-LOKMOGSA.js","kind":"import-statement"},{"path":"dist/chunk-3CKIHQIE.js","kind":"import-statement"},{"path":"dist/chunk-VNYPOCV7.js","kind":"import-statement"}],"exports":["ErrorBoundary","Suspense","f","hydrate","lazy","render"],"entryPoint":"src/dom/index.ts","inputs":{},"bytes":271},"dist/chunk-FJKINID6.js.map":{"imports":[],"exports":[],"inputs":{},"bytes":26910},"dist/chunk-FJKINID6.js":{"imports":[{"path":"dist/chunk-A7TIKNG5.js","kind":"import-statement"},{"path":"dist/chunk-LOKMOGSA.js","kind":"import-statement"},{"path":"dist/chunk-3CKIHQIE.js","kind":"import-statement"},{"path":"dist/chunk-VNYPOCV7.js","kind":"import-statement"},{"path":"dist/render-5B44GLK2.js","kind":"dynamic-import"}],"exports":["a","b","c","d","e"],"inputs":{"src/dom/f.ts":{"bytesInOutput":70},"src/dom/index.ts":{"bytesInOutput":0},"src/dom/hydrate.ts":{"bytesInOutput":3135},"src/dom/components/suspenseContext.ts":{"bytesInOutput":86},"src/dom/components/Suspense.tsx":{"bytesInOutput":293},"src/dom/components/index.ts":{"bytesInOutput":0},"src/dom/components/ErrorBoundary.tsx":{"bytesInOutput":508},"src/dom/components/lazy.ts":{"bytesInOutput":249}},"bytes":4580},"dist/chunk-A7TIKNG5.js.map":{"imports":[],"exports":[],"inputs":{},"bytes":25273},"dist/chunk-A7TIKNG5.js":{"imports":[{"path":"dist/chunk-3CKIHQIE.js","kind":"import-statement"},{"path":"dist/chunk-VNYPOCV7.js","kind":"import-statement"}],"exports":["a","b","c"],"inputs":{"src/dom/render.ts":{"bytesInOutput":5036}},"bytes":5153},"dist/server.js.map":{"imports":[],"exports":[],"inputs":{},"bytes":93},"dist/server.js":{"imports":[{"path":"dist/chunk-HUE2TOCR.js","kind":"import-statement"},{"path":"dist/chunk-VNYPOCV7.js","kind":"import-statement"}],"exports":["getIsServer","renderToStaticMarkup","renderToString"],"entryPoint":"src/server/index.ts","inputs":{},"bytes":139},"dist/chunk-HUE2TOCR.js.map":{"imports":[],"exports":[],"inputs":{},"bytes":12945},"dist/chunk-HUE2TOCR.js":{"imports":[{"path":"dist/chunk-VNYPOCV7.js","kind":"import-statement"}],"exports":["a","b","c"],"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":2547},"dist/router.js.map":{"imports":[],"exports":[],"inputs":{},"bytes":93},"dist/router.js":{"imports":[{"path":"dist/chunk-DZKR3RLN.js","kind":"import-statement"},{"path":"dist/chunk-LOKMOGSA.js","kind":"import-statement"},{"path":"dist/chunk-3CKIHQIE.js","kind":"import-statement"},{"path":"dist/chunk-VNYPOCV7.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":{},"bytes":295},"dist/chunk-DZKR3RLN.js.map":{"imports":[],"exports":[],"inputs":{},"bytes":18779},"dist/chunk-DZKR3RLN.js":{"imports":[{"path":"dist/chunk-LOKMOGSA.js","kind":"import-statement"},{"path":"dist/chunk-VNYPOCV7.js","kind":"import-statement"},{"path":"dist/chunk-TFXBDC6C.js","kind":"import-statement"}],"exports":["a","b","c","d","e","f","g","h","i"],"inputs":{"src/router/index.ts":{"bytesInOutput":0},"src/router/utils.ts":{"bytesInOutput":1097},"src/router/router.ts":{"bytesInOutput":1132},"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":199}},"bytes":3535},"dist/chunk-LOKMOGSA.js.map":{"imports":[],"exports":[],"inputs":{},"bytes":19014},"dist/chunk-LOKMOGSA.js":{"imports":[{"path":"dist/chunk-3CKIHQIE.js","kind":"import-statement"},{"path":"dist/chunk-VNYPOCV7.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":2119}},"bytes":3219},"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-VNYPOCV7.js.map":{"imports":[],"exports":[],"inputs":{},"bytes":7360},"dist/chunk-VNYPOCV7.js":{"imports":[],"exports":["a","b","c","d","e","f","g","h"],"inputs":{"src/core/hook.ts":{"bytesInOutput":227},"src/core/useable.ts":{"bytesInOutput":151},"src/core/context.ts":{"bytesInOutput":397}},"bytes":840},"dist/css.js.map":{"imports":[],"exports":[],"inputs":{},"bytes":93},"dist/css.js":{"imports":[{"path":"dist/chunk-ZJZRDYA2.js","kind":"import-statement"}],"exports":["css","cx","getStyleTag","getStyles","hydrateStyles","keyframes","resetStyles","styled"],"entryPoint":"src/css/index.ts","inputs":{},"bytes":170},"dist/chunk-ZJZRDYA2.js.map":{"imports":[],"exports":[],"inputs":{},"bytes":20385},"dist/chunk-ZJZRDYA2.js":{"imports":[],"exports":["a","b","c","d","e","f","g","h"],"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":3283},"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}}}