flexium 0.13.0 → 0.13.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +14 -8
- package/dist/canvas.js +1 -1
- package/dist/canvas.js.map +1 -1
- package/dist/canvas.mjs +1 -1
- package/dist/canvas.mjs.map +1 -1
- package/dist/chunk-3AKECLKA.mjs +2 -0
- package/dist/chunk-3AKECLKA.mjs.map +1 -0
- package/dist/chunk-ACYN2UKT.js +2 -0
- package/dist/chunk-ACYN2UKT.js.map +1 -0
- package/dist/chunk-E6Z7AI4J.js +2 -0
- package/dist/chunk-E6Z7AI4J.js.map +1 -0
- package/dist/{chunk-NY6NOGFU.mjs → chunk-J3542Z77.mjs} +2 -2
- package/dist/chunk-J3542Z77.mjs.map +1 -0
- package/dist/{chunk-DUGPBZZ3.js → chunk-LHOIM4QY.js} +2 -2
- package/dist/chunk-LHOIM4QY.js.map +1 -0
- package/dist/chunk-MI76R42D.mjs +2 -0
- package/dist/chunk-MI76R42D.mjs.map +1 -0
- package/dist/chunk-PUXZJ7OV.js +2 -0
- package/dist/{chunk-X6HXRSMG.js.map → chunk-PUXZJ7OV.js.map} +1 -1
- package/dist/chunk-TP5HUAIN.mjs +2 -0
- package/dist/{chunk-JUP6RTZA.mjs.map → chunk-TP5HUAIN.mjs.map} +1 -1
- package/dist/core.d.cts +32 -2
- package/dist/core.d.ts +32 -2
- package/dist/core.js +1 -1
- package/dist/core.js.map +1 -1
- package/dist/core.mjs +1 -1
- package/dist/core.mjs.map +1 -1
- package/dist/dom.d.cts +1 -10
- package/dist/dom.d.ts +1 -10
- package/dist/dom.js +1 -1
- package/dist/dom.js.map +1 -1
- package/dist/dom.mjs +1 -1
- package/dist/dom.mjs.map +1 -1
- package/dist/index.d.cts +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +1 -1
- package/dist/index.mjs.map +1 -1
- package/dist/interactive.d.cts +3 -3
- package/dist/interactive.d.ts +3 -3
- package/dist/interactive.js +1 -1
- package/dist/interactive.js.map +1 -1
- package/dist/interactive.mjs +1 -1
- package/dist/interactive.mjs.map +1 -1
- package/dist/jsx-dev-runtime.js +1 -1
- package/dist/jsx-dev-runtime.mjs +1 -1
- package/dist/jsx-runtime.js +1 -1
- package/dist/jsx-runtime.mjs +1 -1
- package/dist/metafile-cjs.json +1 -1
- package/dist/metafile-esm.json +1 -1
- package/dist/render-4HB53K66.mjs +2 -0
- package/dist/{render-L57MA662.mjs.map → render-4HB53K66.mjs.map} +1 -1
- package/dist/render-MJ2LCNSG.js +2 -0
- package/dist/{render-VERKNIPR.js.map → render-MJ2LCNSG.js.map} +1 -1
- package/dist/router.js +1 -1
- package/dist/router.js.map +1 -1
- package/dist/router.mjs +1 -1
- package/dist/router.mjs.map +1 -1
- package/dist/server.js +1 -1
- package/dist/server.js.map +1 -1
- package/dist/server.mjs +1 -1
- package/dist/server.mjs.map +1 -1
- package/package.json +1 -6
- package/dist/advanced.d.cts +0 -5
- package/dist/advanced.d.ts +0 -5
- package/dist/advanced.js +0 -2
- package/dist/advanced.js.map +0 -1
- package/dist/advanced.mjs +0 -2
- package/dist/advanced.mjs.map +0 -1
- package/dist/chunk-5PNH2ARD.mjs +0 -2
- package/dist/chunk-5PNH2ARD.mjs.map +0 -1
- package/dist/chunk-CGB4YXKS.js +0 -2
- package/dist/chunk-CGB4YXKS.js.map +0 -1
- package/dist/chunk-DUGPBZZ3.js.map +0 -1
- package/dist/chunk-INJXOHFD.mjs +0 -2
- package/dist/chunk-INJXOHFD.mjs.map +0 -1
- package/dist/chunk-JUP6RTZA.mjs +0 -2
- package/dist/chunk-NDPEE2TQ.mjs +0 -2
- package/dist/chunk-NDPEE2TQ.mjs.map +0 -1
- package/dist/chunk-NY6NOGFU.mjs.map +0 -1
- package/dist/chunk-UWFVCKRU.js +0 -2
- package/dist/chunk-UWFVCKRU.js.map +0 -1
- package/dist/chunk-W2L7BLE7.js +0 -2
- package/dist/chunk-W2L7BLE7.js.map +0 -1
- package/dist/chunk-X6HXRSMG.js +0 -2
- package/dist/render-L57MA662.mjs +0 -2
- package/dist/render-VERKNIPR.js +0 -2
- package/dist/types--emg3Tgw.d.cts +0 -10
- package/dist/types--emg3Tgw.d.ts +0 -10
package/dist/interactive.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/interactive/loop.ts","../src/interactive/types.ts","../src/interactive/keyboard.ts","../src/interactive/mouse.ts"],"names":["useLoop","callbacks","fixedFps","onUpdate","onFixedUpdate","onRender","fixedDelta","maxDelta","running","lastTime","accumulator","fps","frameCount","fpsTime","rafId","loop","currentTime","delta","alpha","Keys","MouseButton","keyboard","target","pressedKeys","setPressedKeys","use","justPressedKeys","setJustPressedKeys","justReleasedKeys","setJustReleasedKeys","handleKeyDown","e","key","currentPressed","newPressed","currentJustPressed","newJustPressed","handleKeyUp","currentJustReleased","newJustReleased","mouse","options","canvasGetter","position","setPosition","setDelta","wheelDelta","setWheelDelta","buttons","setButtons","lastX","lastY","handleMouseMove","me","canvas","x","y","rect","handleMouseDown","button","currentButtons","newButtons","handleMouseUp","handleWheel","currentPosition","currentDelta","currentWheelDelta"],"mappings":"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","file":"interactive.mjs","sourcesContent":["import type { LoopCallbacks, Loop } from './types'\n\nexport type { LoopCallbacks, Loop }\n\nexport function useLoop(callbacks: LoopCallbacks): Loop {\n const { fixedFps = 60, onUpdate, onFixedUpdate, onRender } = callbacks\n\n const fixedDelta = 1 / fixedFps\n const maxDelta = 0.25 // Cap delta at 250ms to prevent spiral of death\n\n let running = false\n let lastTime = 0\n let accumulator = 0\n let fps = 0\n let frameCount = 0\n let fpsTime = 0\n let rafId: number | null = null\n\n function loop(currentTime: number) {\n if (!running) return\n\n // Calculate delta in seconds\n const delta = Math.min((currentTime - lastTime) / 1000, maxDelta)\n lastTime = currentTime\n\n // Variable timestep update\n if (onUpdate) {\n onUpdate(delta)\n }\n\n // Fixed timestep update\n if (onFixedUpdate) {\n accumulator += delta\n\n while (accumulator >= fixedDelta) {\n onFixedUpdate(fixedDelta)\n accumulator -= fixedDelta\n }\n }\n\n // Render with interpolation alpha\n if (onRender) {\n const alpha = accumulator / fixedDelta\n onRender(alpha)\n }\n\n // FPS calculation\n frameCount++\n if (currentTime - fpsTime >= 1000) {\n fps = frameCount\n frameCount = 0\n fpsTime = currentTime\n }\n\n rafId = requestAnimationFrame(loop)\n }\n\n return {\n start: () => {\n if (running) return\n running = true\n lastTime = performance.now()\n accumulator = 0\n rafId = requestAnimationFrame(loop)\n },\n\n stop: () => {\n running = false\n if (rafId !== null) {\n cancelAnimationFrame(rafId)\n rafId = null\n }\n },\n\n isRunning: () => running,\n\n getFps: () => fps\n }\n}\n","// Keyboard types\nexport enum Keys {\n ArrowUp = 'ArrowUp',\n ArrowDown = 'ArrowDown',\n ArrowLeft = 'ArrowLeft',\n ArrowRight = 'ArrowRight',\n KeyW = 'KeyW',\n KeyA = 'KeyA',\n KeyS = 'KeyS',\n KeyD = 'KeyD',\n Space = 'Space',\n Enter = 'Enter',\n Escape = 'Escape',\n Tab = 'Tab',\n ShiftLeft = 'ShiftLeft',\n ShiftRight = 'ShiftRight',\n ControlLeft = 'ControlLeft',\n ControlRight = 'ControlRight',\n AltLeft = 'AltLeft',\n AltRight = 'AltRight',\n Digit0 = 'Digit0',\n Digit1 = 'Digit1',\n Digit2 = 'Digit2',\n Digit3 = 'Digit3',\n Digit4 = 'Digit4',\n Digit5 = 'Digit5',\n Digit6 = 'Digit6',\n Digit7 = 'Digit7',\n Digit8 = 'Digit8',\n Digit9 = 'Digit9',\n KeyE = 'KeyE',\n KeyQ = 'KeyQ',\n KeyR = 'KeyR',\n KeyF = 'KeyF',\n}\n\nexport interface KeyboardState {\n isPressed: (key: string) => boolean\n isJustPressed: (key: string) => boolean\n isJustReleased: (key: string) => boolean\n getPressedKeys: () => string[]\n clearFrameState: () => void\n dispose: () => void\n}\n\n// Mouse types\nexport enum MouseButton {\n Left = 0,\n Middle = 1,\n Right = 2\n}\n\nexport interface MouseOptions {\n canvas?: HTMLCanvasElement | (() => HTMLCanvasElement | undefined)\n target?: EventTarget\n}\n\nexport interface MouseState {\n x: number | null\n y: number | null\n deltaX: number\n deltaY: number\n wheelDelta: number\n isPressed: (button: MouseButton) => boolean\n isLeftPressed: () => boolean\n isRightPressed: () => boolean\n isMiddlePressed: () => boolean\n clearFrameState: () => void\n dispose: () => void\n}\n\n// Loop types\nexport interface LoopCallbacks {\n fixedFps?: number\n onUpdate?: (delta: number) => void\n onFixedUpdate?: (fixedDelta: number) => void\n onRender?: (alpha: number) => void\n}\n\nexport interface Loop {\n start: () => void\n stop: () => void\n isRunning: () => boolean\n getFps: () => number\n}\n","import { use } from '../core/use'\nimport { Keys, type KeyboardState } from './types'\n\nexport { Keys, type KeyboardState }\n\nexport function keyboard(target: EventTarget = window): KeyboardState {\n const [pressedKeys, setPressedKeys] = use<Set<string>>(new Set<string>(), { key: ['keyboard', 'pressed'] })\n const [justPressedKeys, setJustPressedKeys] = use<Set<string>>(new Set<string>(), { key: ['keyboard', 'justPressed'] })\n const [justReleasedKeys, setJustReleasedKeys] = use<Set<string>>(new Set<string>(), { key: ['keyboard', 'justReleased'] })\n\n const handleKeyDown = (e: Event) => {\n const key = (e as KeyboardEvent).code\n const currentPressed = pressedKeys as Set<string>\n\n if (!currentPressed.has(key)) {\n const newPressed = new Set(currentPressed)\n newPressed.add(key)\n setPressedKeys(newPressed)\n\n const currentJustPressed = justPressedKeys as Set<string>\n const newJustPressed = new Set(currentJustPressed)\n newJustPressed.add(key)\n setJustPressedKeys(newJustPressed)\n }\n }\n\n const handleKeyUp = (e: Event) => {\n const key = (e as KeyboardEvent).code\n const currentPressed = pressedKeys as Set<string>\n\n const newPressed = new Set(currentPressed)\n newPressed.delete(key)\n setPressedKeys(newPressed)\n\n const currentJustReleased = justReleasedKeys as Set<string>\n const newJustReleased = new Set(currentJustReleased)\n newJustReleased.add(key)\n setJustReleasedKeys(newJustReleased)\n }\n\n target.addEventListener('keydown', handleKeyDown)\n target.addEventListener('keyup', handleKeyUp)\n\n return {\n isPressed: (key: string) => {\n const current = pressedKeys as Set<string>\n return current?.has(key) || false\n },\n\n isJustPressed: (key: string) => {\n const current = justPressedKeys as Set<string>\n return current?.has(key) || false\n },\n\n isJustReleased: (key: string) => {\n const current = justReleasedKeys as Set<string>\n return current?.has(key) || false\n },\n\n getPressedKeys: () => {\n const current = pressedKeys as Set<string>\n return Array.from(current || [])\n },\n\n clearFrameState: () => {\n setJustPressedKeys(new Set<string>())\n setJustReleasedKeys(new Set<string>())\n },\n\n dispose: () => {\n target.removeEventListener('keydown', handleKeyDown)\n target.removeEventListener('keyup', handleKeyUp)\n }\n }\n}\n","import { use } from '../core/use'\nimport { MouseButton, type MouseOptions, type MouseState } from './types'\n\nexport { MouseButton, type MouseOptions, type MouseState }\n\nexport function mouse(options: MouseOptions = {}): MouseState {\n const target = options.target || window\n const canvasGetter = typeof options.canvas === 'function' ? options.canvas : () => options.canvas as HTMLCanvasElement | undefined\n\n const [position, setPosition] = use({ x: 0, y: 0 }, { key: ['mouse', 'position'] })\n const [delta, setDelta] = use({ x: 0, y: 0 }, { key: ['mouse', 'delta'] })\n const [wheelDelta, setWheelDelta] = use(0, { key: ['mouse', 'wheel'] })\n const [buttons, setButtons] = use<Set<number>>(new Set<number>(), { key: ['mouse', 'buttons'] })\n\n let lastX = 0\n let lastY = 0\n\n const handleMouseMove = (e: Event) => {\n const me = e as MouseEvent\n const canvas = canvasGetter()\n\n let x = me.clientX\n let y = me.clientY\n\n // If canvas is provided, calculate position relative to canvas\n if (canvas) {\n const rect = canvas.getBoundingClientRect()\n x = me.clientX - rect.left\n y = me.clientY - rect.top\n }\n\n setPosition({ x, y })\n setDelta({ x: x - lastX, y: y - lastY })\n lastX = x\n lastY = y\n }\n\n const handleMouseDown = (e: Event) => {\n const button = (e as MouseEvent).button\n const currentButtons = buttons as Set<number>\n const newButtons = new Set(currentButtons)\n newButtons.add(button)\n setButtons(newButtons)\n }\n\n const handleMouseUp = (e: Event) => {\n const button = (e as MouseEvent).button\n const currentButtons = buttons as Set<number>\n const newButtons = new Set(currentButtons)\n newButtons.delete(button)\n setButtons(newButtons)\n }\n\n const handleWheel = (e: Event) => {\n const we = e as WheelEvent\n setWheelDelta(we.deltaY)\n }\n\n target.addEventListener('mousemove', handleMouseMove)\n target.addEventListener('mousedown', handleMouseDown)\n target.addEventListener('mouseup', handleMouseUp)\n target.addEventListener('wheel', handleWheel)\n\n const currentButtons = buttons as Set<number>\n const currentPosition = position as { x: number; y: number }\n const currentDelta = delta as { x: number; y: number }\n const currentWheelDelta = wheelDelta as number\n\n return {\n get x() { return currentPosition.x },\n get y() { return currentPosition.y },\n get deltaX() { return currentDelta.x },\n get deltaY() { return currentDelta.y },\n get wheelDelta() { return currentWheelDelta },\n\n isPressed: (button: MouseButton) => currentButtons?.has(button) || false,\n\n isLeftPressed: () => currentButtons?.has(MouseButton.Left) || false,\n\n isRightPressed: () => currentButtons?.has(MouseButton.Right) || false,\n\n isMiddlePressed: () => currentButtons?.has(MouseButton.Middle) || false,\n\n clearFrameState: () => {\n setDelta({ x: 0, y: 0 })\n setWheelDelta(0)\n },\n\n dispose: () => {\n target.removeEventListener('mousemove', handleMouseMove)\n target.removeEventListener('mousedown', handleMouseDown)\n target.removeEventListener('mouseup', handleMouseUp)\n target.removeEventListener('wheel', handleWheel)\n }\n }\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/interactive/loop.ts","../src/interactive/types.ts","../src/interactive/keyboard.ts","../src/interactive/mouse.ts"],"names":["useLoop","callbacks","fixedFps","onUpdate","onFixedUpdate","onRender","fixedDelta","maxDelta","running","lastTime","accumulator","fps","frameCount","fpsTime","rafId","loop","currentTime","delta","alpha","Keys","MouseButton","useKeyboard","target","pressedKeys","setPressedKeys","use","justPressedKeys","setJustPressedKeys","justReleasedKeys","setJustReleasedKeys","handleKeyDown","e","key","currentPressed","newPressed","currentJustPressed","newJustPressed","handleKeyUp","currentJustReleased","newJustReleased","useMouse","options","canvasGetter","position","setPosition","setDelta","wheelDelta","setWheelDelta","buttons","setButtons","lastX","lastY","handleMouseMove","me","canvas","x","y","rect","handleMouseDown","button","currentButtons","newButtons","handleMouseUp","handleWheel","currentPosition","currentDelta","currentWheelDelta"],"mappings":"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","file":"interactive.mjs","sourcesContent":["import type { LoopCallbacks, Loop } from './types'\n\nexport type { LoopCallbacks, Loop }\n\nexport function useLoop(callbacks: LoopCallbacks): Loop {\n const { fixedFps = 60, onUpdate, onFixedUpdate, onRender } = callbacks\n\n const fixedDelta = 1 / fixedFps\n const maxDelta = 0.25 // Cap delta at 250ms to prevent spiral of death\n\n let running = false\n let lastTime = 0\n let accumulator = 0\n let fps = 0\n let frameCount = 0\n let fpsTime = 0\n let rafId: number | null = null\n\n function loop(currentTime: number) {\n if (!running) return\n\n // Calculate delta in seconds\n const delta = Math.min((currentTime - lastTime) / 1000, maxDelta)\n lastTime = currentTime\n\n // Variable timestep update\n if (onUpdate) {\n onUpdate(delta)\n }\n\n // Fixed timestep update\n if (onFixedUpdate) {\n accumulator += delta\n\n while (accumulator >= fixedDelta) {\n onFixedUpdate(fixedDelta)\n accumulator -= fixedDelta\n }\n }\n\n // Render with interpolation alpha\n if (onRender) {\n const alpha = accumulator / fixedDelta\n onRender(alpha)\n }\n\n // FPS calculation\n frameCount++\n if (currentTime - fpsTime >= 1000) {\n fps = frameCount\n frameCount = 0\n fpsTime = currentTime\n }\n\n rafId = requestAnimationFrame(loop)\n }\n\n return {\n start: () => {\n if (running) return\n running = true\n lastTime = performance.now()\n accumulator = 0\n rafId = requestAnimationFrame(loop)\n },\n\n stop: () => {\n running = false\n if (rafId !== null) {\n cancelAnimationFrame(rafId)\n rafId = null\n }\n },\n\n isRunning: () => running,\n\n getFps: () => fps\n }\n}\n","// Keyboard types\nexport enum Keys {\n ArrowUp = 'ArrowUp',\n ArrowDown = 'ArrowDown',\n ArrowLeft = 'ArrowLeft',\n ArrowRight = 'ArrowRight',\n KeyW = 'KeyW',\n KeyA = 'KeyA',\n KeyS = 'KeyS',\n KeyD = 'KeyD',\n Space = 'Space',\n Enter = 'Enter',\n Escape = 'Escape',\n Tab = 'Tab',\n ShiftLeft = 'ShiftLeft',\n ShiftRight = 'ShiftRight',\n ControlLeft = 'ControlLeft',\n ControlRight = 'ControlRight',\n AltLeft = 'AltLeft',\n AltRight = 'AltRight',\n Digit0 = 'Digit0',\n Digit1 = 'Digit1',\n Digit2 = 'Digit2',\n Digit3 = 'Digit3',\n Digit4 = 'Digit4',\n Digit5 = 'Digit5',\n Digit6 = 'Digit6',\n Digit7 = 'Digit7',\n Digit8 = 'Digit8',\n Digit9 = 'Digit9',\n KeyE = 'KeyE',\n KeyQ = 'KeyQ',\n KeyR = 'KeyR',\n KeyF = 'KeyF',\n}\n\nexport interface KeyboardState {\n isPressed: (key: string) => boolean\n isJustPressed: (key: string) => boolean\n isJustReleased: (key: string) => boolean\n getPressedKeys: () => string[]\n clearFrameState: () => void\n dispose: () => void\n}\n\n// Mouse types\nexport enum MouseButton {\n Left = 0,\n Middle = 1,\n Right = 2\n}\n\nexport interface MouseOptions {\n canvas?: HTMLCanvasElement | (() => HTMLCanvasElement | undefined)\n target?: EventTarget\n}\n\nexport interface MouseState {\n x: number | null\n y: number | null\n deltaX: number\n deltaY: number\n wheelDelta: number\n isPressed: (button: MouseButton) => boolean\n isLeftPressed: () => boolean\n isRightPressed: () => boolean\n isMiddlePressed: () => boolean\n clearFrameState: () => void\n dispose: () => void\n}\n\n// Loop types\nexport interface LoopCallbacks {\n fixedFps?: number\n onUpdate?: (delta: number) => void\n onFixedUpdate?: (fixedDelta: number) => void\n onRender?: (alpha: number) => void\n}\n\nexport interface Loop {\n start: () => void\n stop: () => void\n isRunning: () => boolean\n getFps: () => number\n}\n","import { use } from '../core/use'\nimport { Keys, type KeyboardState } from './types'\n\nexport { Keys, type KeyboardState }\n\nexport function useKeyboard(target: EventTarget = window): KeyboardState {\n const [pressedKeys, setPressedKeys] = use<Set<string>>(new Set<string>(), { key: ['keyboard', 'pressed'] })\n const [justPressedKeys, setJustPressedKeys] = use<Set<string>>(new Set<string>(), { key: ['keyboard', 'justPressed'] })\n const [justReleasedKeys, setJustReleasedKeys] = use<Set<string>>(new Set<string>(), { key: ['keyboard', 'justReleased'] })\n\n const handleKeyDown = (e: Event) => {\n const key = (e as KeyboardEvent).code\n const currentPressed = pressedKeys as Set<string>\n\n if (!currentPressed.has(key)) {\n const newPressed = new Set(currentPressed)\n newPressed.add(key)\n setPressedKeys(newPressed)\n\n const currentJustPressed = justPressedKeys as Set<string>\n const newJustPressed = new Set(currentJustPressed)\n newJustPressed.add(key)\n setJustPressedKeys(newJustPressed)\n }\n }\n\n const handleKeyUp = (e: Event) => {\n const key = (e as KeyboardEvent).code\n const currentPressed = pressedKeys as Set<string>\n\n const newPressed = new Set(currentPressed)\n newPressed.delete(key)\n setPressedKeys(newPressed)\n\n const currentJustReleased = justReleasedKeys as Set<string>\n const newJustReleased = new Set(currentJustReleased)\n newJustReleased.add(key)\n setJustReleasedKeys(newJustReleased)\n }\n\n target.addEventListener('keydown', handleKeyDown)\n target.addEventListener('keyup', handleKeyUp)\n\n return {\n isPressed: (key: string) => {\n const current = pressedKeys as Set<string>\n return current?.has(key) || false\n },\n\n isJustPressed: (key: string) => {\n const current = justPressedKeys as Set<string>\n return current?.has(key) || false\n },\n\n isJustReleased: (key: string) => {\n const current = justReleasedKeys as Set<string>\n return current?.has(key) || false\n },\n\n getPressedKeys: () => {\n const current = pressedKeys as Set<string>\n return Array.from(current || [])\n },\n\n clearFrameState: () => {\n setJustPressedKeys(new Set<string>())\n setJustReleasedKeys(new Set<string>())\n },\n\n dispose: () => {\n target.removeEventListener('keydown', handleKeyDown)\n target.removeEventListener('keyup', handleKeyUp)\n }\n }\n}\n","import { use } from '../core/use'\nimport { MouseButton, type MouseOptions, type MouseState } from './types'\n\nexport { MouseButton, type MouseOptions, type MouseState }\n\nexport function useMouse(options: MouseOptions = {}): MouseState {\n const target = options.target || window\n const canvasGetter = typeof options.canvas === 'function' ? options.canvas : () => options.canvas as HTMLCanvasElement | undefined\n\n const [position, setPosition] = use({ x: 0, y: 0 }, { key: ['mouse', 'position'] })\n const [delta, setDelta] = use({ x: 0, y: 0 }, { key: ['mouse', 'delta'] })\n const [wheelDelta, setWheelDelta] = use(0, { key: ['mouse', 'wheel'] })\n const [buttons, setButtons] = use<Set<number>>(new Set<number>(), { key: ['mouse', 'buttons'] })\n\n let lastX = 0\n let lastY = 0\n\n const handleMouseMove = (e: Event) => {\n const me = e as MouseEvent\n const canvas = canvasGetter()\n\n let x = me.clientX\n let y = me.clientY\n\n // If canvas is provided, calculate position relative to canvas\n if (canvas) {\n const rect = canvas.getBoundingClientRect()\n x = me.clientX - rect.left\n y = me.clientY - rect.top\n }\n\n setPosition({ x, y })\n setDelta({ x: x - lastX, y: y - lastY })\n lastX = x\n lastY = y\n }\n\n const handleMouseDown = (e: Event) => {\n const button = (e as MouseEvent).button\n const currentButtons = buttons as Set<number>\n const newButtons = new Set(currentButtons)\n newButtons.add(button)\n setButtons(newButtons)\n }\n\n const handleMouseUp = (e: Event) => {\n const button = (e as MouseEvent).button\n const currentButtons = buttons as Set<number>\n const newButtons = new Set(currentButtons)\n newButtons.delete(button)\n setButtons(newButtons)\n }\n\n const handleWheel = (e: Event) => {\n const we = e as WheelEvent\n setWheelDelta(we.deltaY)\n }\n\n target.addEventListener('mousemove', handleMouseMove)\n target.addEventListener('mousedown', handleMouseDown)\n target.addEventListener('mouseup', handleMouseUp)\n target.addEventListener('wheel', handleWheel)\n\n const currentButtons = buttons as Set<number>\n const currentPosition = position as { x: number; y: number }\n const currentDelta = delta as { x: number; y: number }\n const currentWheelDelta = wheelDelta as number\n\n return {\n get x() { return currentPosition.x },\n get y() { return currentPosition.y },\n get deltaX() { return currentDelta.x },\n get deltaY() { return currentDelta.y },\n get wheelDelta() { return currentWheelDelta },\n\n isPressed: (button: MouseButton) => currentButtons?.has(button) || false,\n\n isLeftPressed: () => currentButtons?.has(MouseButton.Left) || false,\n\n isRightPressed: () => currentButtons?.has(MouseButton.Right) || false,\n\n isMiddlePressed: () => currentButtons?.has(MouseButton.Middle) || false,\n\n clearFrameState: () => {\n setDelta({ x: 0, y: 0 })\n setWheelDelta(0)\n },\n\n dispose: () => {\n target.removeEventListener('mousemove', handleMouseMove)\n target.removeEventListener('mousedown', handleMouseDown)\n target.removeEventListener('mouseup', handleMouseUp)\n target.removeEventListener('wheel', handleWheel)\n }\n }\n}\n"]}
|
package/dist/jsx-dev-runtime.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
'use strict';var
|
|
1
|
+
'use strict';var chunkLHOIM4QY_js=require('./chunk-LHOIM4QY.js');function x(r,a,e,t,i,s){return chunkLHOIM4QY_js.a(r,a,e)}Object.defineProperty(exports,"Fragment",{enumerable:true,get:function(){return chunkLHOIM4QY_js.c}});exports.jsxDEV=x;//# sourceMappingURL=jsx-dev-runtime.js.map
|
|
2
2
|
//# sourceMappingURL=jsx-dev-runtime.js.map
|
package/dist/jsx-dev-runtime.mjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import {a}from'./chunk-
|
|
1
|
+
import {a}from'./chunk-J3542Z77.mjs';export{c as Fragment}from'./chunk-J3542Z77.mjs';function x(r,a$1,e,t,i,s){return a(r,a$1,e)}export{x as jsxDEV};//# sourceMappingURL=jsx-dev-runtime.mjs.map
|
|
2
2
|
//# sourceMappingURL=jsx-dev-runtime.mjs.map
|
package/dist/jsx-runtime.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
'use strict';var
|
|
1
|
+
'use strict';var chunkLHOIM4QY_js=require('./chunk-LHOIM4QY.js');Object.defineProperty(exports,"Fragment",{enumerable:true,get:function(){return chunkLHOIM4QY_js.c}});Object.defineProperty(exports,"jsx",{enumerable:true,get:function(){return chunkLHOIM4QY_js.a}});Object.defineProperty(exports,"jsxs",{enumerable:true,get:function(){return chunkLHOIM4QY_js.b}});//# sourceMappingURL=jsx-runtime.js.map
|
|
2
2
|
//# sourceMappingURL=jsx-runtime.js.map
|
package/dist/jsx-runtime.mjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export{c as Fragment,a as jsx,b as jsxs}from'./chunk-
|
|
1
|
+
export{c as Fragment,a as jsx,b as jsxs}from'./chunk-J3542Z77.mjs';//# sourceMappingURL=jsx-runtime.mjs.map
|
|
2
2
|
//# sourceMappingURL=jsx-runtime.mjs.map
|
package/dist/metafile-cjs.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"inputs":{"src/index.ts":{"bytes":67,"imports":[],"format":"esm"},"src/core/lifecycle.ts":{"bytes":2686,"imports":[],"format":"esm"},"src/core/reactive.ts":{"bytes":2080,"imports":[{"path":"src/core/lifecycle.ts","kind":"import-statement","original":"./lifecycle"}],"format":"esm"},"src/core/hook.ts":{"bytes":986,"imports":[],"format":"esm"},"src/core/devtools.ts":{"bytes":1841,"imports":[],"format":"esm"},"src/core/context.ts":{"bytes":1403,"imports":[],"format":"esm"},"src/core/use.ts":{"bytes":8217,"imports":[{"path":"src/core/reactive.ts","kind":"import-statement","original":"./reactive"},{"path":"src/core/lifecycle.ts","kind":"import-statement","original":"./lifecycle"},{"path":"src/core/hook.ts","kind":"import-statement","original":"./hook"},{"path":"src/core/devtools.ts","kind":"import-statement","original":"./devtools"},{"path":"src/core/context.ts","kind":"import-statement","original":"./context"},{"path":"src/core/context.ts","kind":"import-statement","original":"./context"}],"format":"esm"},"src/ref/ref.ts":{"bytes":818,"imports":[{"path":"src/core/hook.ts","kind":"import-statement","original":"../core/hook"}],"format":"esm"},"src/ref/index.ts":{"bytes":113,"imports":[{"path":"src/ref/ref.ts","kind":"import-statement","original":"./ref"}],"format":"esm"},"src/core/index.ts":{"bytes":271,"imports":[{"path":"src/core/use.ts","kind":"import-statement","original":"./use"},{"path":"src/core/lifecycle.ts","kind":"import-statement","original":"./lifecycle"},{"path":"src/ref/index.ts","kind":"import-statement","original":"../ref"}],"format":"esm"},"src/dom/f.ts":{"bytes":285,"imports":[],"format":"esm"},"src/dom/render.ts":{"bytes":15127,"imports":[{"path":"src/core/context.ts","kind":"import-statement","original":"../core/context"},{"path":"src/core/hook.ts","kind":"import-statement","original":"../core/hook"},{"path":"src/core/lifecycle.ts","kind":"import-statement","original":"../core/lifecycle"}],"format":"esm"},"src/dom/hydrate.ts":{"bytes":9324,"imports":[{"path":"src/core/hook.ts","kind":"import-statement","original":"../core/hook"},{"path":"src/core/context.ts","kind":"import-statement","original":"../core/context"},{"path":"src/core/lifecycle.ts","kind":"import-statement","original":"../core/lifecycle"},{"path":"src/dom/render.ts","kind":"dynamic-import","original":"./render"}],"format":"esm"},"src/dom/components/Portal.tsx":{"bytes":1937,"imports":[{"path":"src/core/use.ts","kind":"import-statement","original":"../../core/use"},{"path":"src/core/hook.ts","kind":"import-statement","original":"../../core/hook"},{"path":"src/dom/render.ts","kind":"import-statement","original":"../render"}],"format":"esm"},"src/dom/components/suspenseContext.ts":{"bytes":378,"imports":[{"path":"src/core/context.ts","kind":"import-statement","original":"../../core/context"}],"format":"esm"},"src/dom/components/Suspense.tsx":{"bytes":1770,"imports":[{"path":"src/core/use.ts","kind":"import-statement","original":"../../core/use"},{"path":"src/core/hook.ts","kind":"import-statement","original":"../../core/hook"},{"path":"src/dom/components/suspenseContext.ts","kind":"import-statement","original":"./suspenseContext"}],"format":"esm"},"src/dom/components/ErrorBoundary.tsx":{"bytes":2854,"imports":[{"path":"src/core/use.ts","kind":"import-statement","original":"../../core/use"},{"path":"src/core/hook.ts","kind":"import-statement","original":"../../core/hook"}],"format":"esm"},"src/dom/components/lazy.ts":{"bytes":1767,"imports":[{"path":"src/dom/components/suspenseContext.ts","kind":"import-statement","original":"./suspenseContext"}],"format":"esm"},"src/dom/components/index.ts":{"bytes":598,"imports":[{"path":"src/dom/components/Portal.tsx","kind":"import-statement","original":"./Portal"},{"path":"src/dom/components/Suspense.tsx","kind":"import-statement","original":"./Suspense"},{"path":"src/dom/components/ErrorBoundary.tsx","kind":"import-statement","original":"./ErrorBoundary"},{"path":"src/dom/components/lazy.ts","kind":"import-statement","original":"./lazy"},{"path":"src/dom/components/suspenseContext.ts","kind":"import-statement","original":"./suspenseContext"},{"path":"src/dom/components/ErrorBoundary.tsx","kind":"import-statement","original":"./ErrorBoundary"}],"format":"esm"},"src/dom/index.ts":{"bytes":457,"imports":[{"path":"src/dom/f.ts","kind":"import-statement","original":"./f"},{"path":"src/dom/render.ts","kind":"import-statement","original":"./render"},{"path":"src/dom/hydrate.ts","kind":"import-statement","original":"./hydrate"},{"path":"src/dom/components/index.ts","kind":"import-statement","original":"./components"}],"format":"esm"},"src/server/escape.ts":{"bytes":364,"imports":[],"format":"esm"},"src/server/serverState.ts":{"bytes":896,"imports":[],"format":"esm"},"src/server/renderToString.ts":{"bytes":6572,"imports":[{"path":"src/server/escape.ts","kind":"import-statement","original":"./escape"},{"path":"src/server/serverState.ts","kind":"import-statement","original":"./serverState"},{"path":"src/core/hook.ts","kind":"import-statement","original":"../core/hook"},{"path":"src/core/context.ts","kind":"import-statement","original":"../core/context"}],"format":"esm"},"src/server/index.ts":{"bytes":243,"imports":[{"path":"src/server/renderToString.ts","kind":"import-statement","original":"./renderToString"},{"path":"src/server/serverState.ts","kind":"import-statement","original":"./serverState"}],"format":"esm"},"src/router/types.ts":{"bytes":807,"imports":[],"format":"esm"},"src/router/utils.ts":{"bytes":3745,"imports":[{"path":"./types","kind":"import-statement","external":true}],"format":"esm"},"src/router/router.ts":{"bytes":3200,"imports":[{"path":"src/core/reactive.ts","kind":"import-statement","original":"../core/reactive"},{"path":"src/core/context.ts","kind":"import-statement","original":"../core/context"},{"path":"src/router/utils.ts","kind":"import-statement","original":"./utils"}],"format":"esm"},"src/jsx-runtime.ts":{"bytes":735,"imports":[],"format":"esm"},"src/router/dom/Route.tsx":{"bytes":106,"imports":[],"format":"esm"},"src/router/dom/Routes.tsx":{"bytes":2584,"imports":[{"path":"src/jsx-runtime.ts","kind":"import-statement","original":"../../jsx-runtime"},{"path":"src/router/router.ts","kind":"import-statement","original":"../router"},{"path":"src/router/utils.ts","kind":"import-statement","original":"../utils"},{"path":"src/router/dom/Route.tsx","kind":"import-statement","original":"./Route"}],"format":"esm"},"src/router/dom/Outlet.tsx":{"bytes":744,"imports":[{"path":"src/core/use.ts","kind":"import-statement","original":"../../core/use"},{"path":"src/jsx-runtime.ts","kind":"import-statement","original":"../../jsx-runtime"},{"path":"src/router/router.ts","kind":"import-statement","original":"../router"}],"format":"esm"},"src/router/dom/Link.tsx":{"bytes":447,"imports":[{"path":"src/jsx-runtime.ts","kind":"import-statement","original":"../../jsx-runtime"},{"path":"src/router/router.ts","kind":"import-statement","original":"../router"}],"format":"esm"},"src/router/index.ts":{"bytes":309,"imports":[{"path":"src/router/types.ts","kind":"import-statement","original":"./types"},{"path":"src/router/router.ts","kind":"import-statement","original":"./router"},{"path":"src/router/dom/Routes.tsx","kind":"import-statement","original":"./dom/Routes"},{"path":"src/router/dom/Route.tsx","kind":"import-statement","original":"./dom/Route"},{"path":"src/router/dom/Outlet.tsx","kind":"import-statement","original":"./dom/Outlet"},{"path":"src/router/dom/Link.tsx","kind":"import-statement","original":"./dom/Link"}],"format":"esm"},"src/canvas/Canvas.tsx":{"bytes":5526,"imports":[{"path":"src/core/use.ts","kind":"import-statement","original":"../core/use"},{"path":"src/core/reactive.ts","kind":"import-statement","original":"../core/reactive"},{"path":"src/jsx-runtime.ts","kind":"import-statement","original":"flexium/jsx-runtime"}],"format":"esm"},"src/canvas/dom/DrawRect.tsx":{"bytes":293,"imports":[{"path":"src/core/use.ts","kind":"import-statement","original":"../../core/use"},{"path":"src/canvas/Canvas.tsx","kind":"import-statement","original":"../Canvas"}],"format":"esm"},"src/canvas/dom/DrawCircle.tsx":{"bytes":303,"imports":[{"path":"src/core/use.ts","kind":"import-statement","original":"../../core/use"},{"path":"src/canvas/Canvas.tsx","kind":"import-statement","original":"../Canvas"}],"format":"esm"},"src/canvas/dom/DrawArc.tsx":{"bytes":288,"imports":[{"path":"src/core/use.ts","kind":"import-statement","original":"../../core/use"},{"path":"src/canvas/Canvas.tsx","kind":"import-statement","original":"../Canvas"}],"format":"esm"},"src/canvas/dom/DrawLine.tsx":{"bytes":293,"imports":[{"path":"src/core/use.ts","kind":"import-statement","original":"../../core/use"},{"path":"src/canvas/Canvas.tsx","kind":"import-statement","original":"../Canvas"}],"format":"esm"},"src/canvas/dom/DrawText.tsx":{"bytes":293,"imports":[{"path":"src/core/use.ts","kind":"import-statement","original":"../../core/use"},{"path":"src/canvas/Canvas.tsx","kind":"import-statement","original":"../Canvas"}],"format":"esm"},"src/canvas/dom/DrawPath.tsx":{"bytes":293,"imports":[{"path":"src/core/use.ts","kind":"import-statement","original":"../../core/use"},{"path":"src/canvas/Canvas.tsx","kind":"import-statement","original":"../Canvas"}],"format":"esm"},"src/canvas/index.ts":{"bytes":427,"imports":[{"path":"src/canvas/Canvas.tsx","kind":"import-statement","original":"./Canvas"},{"path":"src/canvas/dom/DrawRect.tsx","kind":"import-statement","original":"./dom/DrawRect"},{"path":"src/canvas/dom/DrawCircle.tsx","kind":"import-statement","original":"./dom/DrawCircle"},{"path":"src/canvas/dom/DrawArc.tsx","kind":"import-statement","original":"./dom/DrawArc"},{"path":"src/canvas/dom/DrawLine.tsx","kind":"import-statement","original":"./dom/DrawLine"},{"path":"src/canvas/dom/DrawText.tsx","kind":"import-statement","original":"./dom/DrawText"},{"path":"src/canvas/dom/DrawPath.tsx","kind":"import-statement","original":"./dom/DrawPath"}],"format":"esm"},"src/interactive/loop.ts":{"bytes":1687,"imports":[],"format":"esm"},"src/interactive/types.ts":{"bytes":1937,"imports":[],"format":"esm"},"src/interactive/keyboard.ts":{"bytes":2395,"imports":[{"path":"src/core/use.ts","kind":"import-statement","original":"../core/use"},{"path":"src/interactive/types.ts","kind":"import-statement","original":"./types"}],"format":"esm"},"src/interactive/mouse.ts":{"bytes":3171,"imports":[{"path":"src/core/use.ts","kind":"import-statement","original":"../core/use"},{"path":"src/interactive/types.ts","kind":"import-statement","original":"./types"}],"format":"esm"},"src/interactive/index.ts":{"bytes":209,"imports":[{"path":"src/interactive/loop.ts","kind":"import-statement","original":"./loop"},{"path":"src/interactive/keyboard.ts","kind":"import-statement","original":"./keyboard"},{"path":"src/interactive/mouse.ts","kind":"import-statement","original":"./mouse"}],"format":"esm"},"src/advanced/index.ts":{"bytes":116,"imports":[{"path":"src/core/context.ts","kind":"import-statement","original":"../core/context"}],"format":"esm"},"src/jsx-dev-runtime.ts":{"bytes":211,"imports":[{"path":"src/jsx-runtime.ts","kind":"import-statement","original":"./jsx-runtime"}],"format":"esm"}},"outputs":{"dist/jsx-runtime.js.map":{"imports":[],"exports":[],"inputs":{},"bytes":93},"dist/jsx-runtime.js":{"imports":[{"path":"dist/chunk-DUGPBZZ3.js","kind":"import-statement"}],"exports":["Fragment","jsx","jsxs"],"entryPoint":"src/jsx-runtime.ts","inputs":{},"bytes":81},"dist/jsx-dev-runtime.js.map":{"imports":[],"exports":[],"inputs":{},"bytes":510},"dist/jsx-dev-runtime.js":{"imports":[{"path":"dist/chunk-DUGPBZZ3.js","kind":"import-statement"}],"exports":["Fragment","jsxDEV"],"entryPoint":"src/jsx-dev-runtime.ts","inputs":{"src/jsx-dev-runtime.ts":{"bytesInOutput":40}},"bytes":122},"dist/render-VERKNIPR.js.map":{"imports":[],"exports":[],"inputs":{},"bytes":93},"dist/render-VERKNIPR.js":{"imports":[{"path":"dist/chunk-X6HXRSMG.js","kind":"import-statement"},{"path":"dist/chunk-3CKIHQIE.js","kind":"import-statement"},{"path":"dist/chunk-UWFVCKRU.js","kind":"import-statement"},{"path":"dist/chunk-CGB4YXKS.js","kind":"import-statement"}],"exports":["reconcile","render"],"entryPoint":"src/dom/render.ts","inputs":{},"bytes":157},"dist/index.js.map":{"imports":[],"exports":[],"inputs":{},"bytes":204},"dist/index.js":{"imports":[],"exports":["VERSION"],"entryPoint":"src/index.ts","inputs":{"src/index.ts":{"bytesInOutput":15}},"bytes":37},"dist/core.js.map":{"imports":[],"exports":[],"inputs":{},"bytes":1071},"dist/core.js":{"imports":[{"path":"dist/chunk-W2L7BLE7.js","kind":"import-statement"},{"path":"dist/chunk-3CKIHQIE.js","kind":"import-statement"},{"path":"dist/chunk-UWFVCKRU.js","kind":"import-statement"},{"path":"dist/chunk-CGB4YXKS.js","kind":"import-statement"}],"exports":["sync","use","useRef"],"entryPoint":"src/core/index.ts","inputs":{"src/core/index.ts":{"bytesInOutput":0},"src/ref/ref.ts":{"bytesInOutput":42},"src/ref/index.ts":{"bytesInOutput":0}},"bytes":230},"dist/dom.js.map":{"imports":[],"exports":[],"inputs":{},"bytes":27737},"dist/dom.js":{"imports":[{"path":"dist/chunk-X6HXRSMG.js","kind":"import-statement"},{"path":"dist/chunk-W2L7BLE7.js","kind":"import-statement"},{"path":"dist/chunk-3CKIHQIE.js","kind":"import-statement"},{"path":"dist/chunk-UWFVCKRU.js","kind":"import-statement"},{"path":"dist/chunk-CGB4YXKS.js","kind":"import-statement"},{"path":"dist/render-VERKNIPR.js","kind":"dynamic-import"}],"exports":["ErrorBoundary","Portal","Suspense","f","hydrate","lazy","reconcile","render","suspenseContext"],"entryPoint":"src/dom/index.ts","inputs":{"src/dom/f.ts":{"bytesInOutput":70},"src/dom/index.ts":{"bytesInOutput":0},"src/dom/hydrate.ts":{"bytesInOutput":2733},"src/dom/components/Portal.tsx":{"bytesInOutput":500},"src/dom/components/index.ts":{"bytesInOutput":0},"src/dom/components/suspenseContext.ts":{"bytesInOutput":71},"src/dom/components/Suspense.tsx":{"bytesInOutput":293},"src/dom/components/ErrorBoundary.tsx":{"bytesInOutput":500},"src/dom/components/lazy.ts":{"bytesInOutput":249}},"bytes":4783},"dist/chunk-X6HXRSMG.js.map":{"imports":[],"exports":[],"inputs":{},"bytes":23945},"dist/chunk-X6HXRSMG.js":{"imports":[{"path":"dist/chunk-3CKIHQIE.js","kind":"import-statement"},{"path":"dist/chunk-UWFVCKRU.js","kind":"import-statement"},{"path":"dist/chunk-CGB4YXKS.js","kind":"import-statement"}],"exports":["a","b"],"inputs":{"src/dom/render.ts":{"bytesInOutput":4853}},"bytes":4996},"dist/server.js.map":{"imports":[],"exports":[],"inputs":{},"bytes":12945},"dist/server.js":{"imports":[{"path":"dist/chunk-UWFVCKRU.js","kind":"import-statement"},{"path":"dist/chunk-CGB4YXKS.js","kind":"import-statement"}],"exports":["getIsServer","renderToStaticMarkup","renderToString"],"entryPoint":"src/server/index.ts","inputs":{"src/server/escape.ts":{"bytesInOutput":157},"src/server/serverState.ts":{"bytesInOutput":186},"src/server/renderToString.ts":{"bytesInOutput":2125},"src/server/index.ts":{"bytesInOutput":0}},"bytes":2627},"dist/router.js.map":{"imports":[],"exports":[],"inputs":{},"bytes":17313},"dist/router.js":{"imports":[{"path":"dist/chunk-DUGPBZZ3.js","kind":"import-statement"},{"path":"dist/chunk-W2L7BLE7.js","kind":"import-statement"},{"path":"dist/chunk-3CKIHQIE.js","kind":"import-statement"},{"path":"dist/chunk-UWFVCKRU.js","kind":"import-statement"},{"path":"dist/chunk-CGB4YXKS.js","kind":"import-statement"}],"exports":["Link","Outlet","Route","Routes","useLocation","useNavigate","useParams","useQuery","useRouter"],"entryPoint":"src/router/index.ts","inputs":{"src/router/index.ts":{"bytesInOutput":0},"src/router/utils.ts":{"bytesInOutput":1073},"src/router/router.ts":{"bytesInOutput":850},"src/router/dom/Route.tsx":{"bytesInOutput":26},"src/router/dom/Routes.tsx":{"bytesInOutput":638},"src/router/dom/Outlet.tsx":{"bytesInOutput":244},"src/router/dom/Link.tsx":{"bytesInOutput":133}},"bytes":3281},"dist/canvas.js.map":{"imports":[],"exports":[],"inputs":{},"bytes":12688},"dist/canvas.js":{"imports":[{"path":"dist/chunk-DUGPBZZ3.js","kind":"import-statement"},{"path":"dist/chunk-W2L7BLE7.js","kind":"import-statement"},{"path":"dist/chunk-3CKIHQIE.js","kind":"import-statement"},{"path":"dist/chunk-UWFVCKRU.js","kind":"import-statement"},{"path":"dist/chunk-CGB4YXKS.js","kind":"import-statement"}],"exports":["Canvas","DrawArc","DrawCircle","DrawLine","DrawPath","DrawRect","DrawText"],"entryPoint":"src/canvas/index.ts","inputs":{"src/canvas/Canvas.tsx":{"bytesInOutput":1875},"src/canvas/index.ts":{"bytesInOutput":0},"src/canvas/dom/DrawRect.tsx":{"bytesInOutput":60},"src/canvas/dom/DrawCircle.tsx":{"bytesInOutput":62},"src/canvas/dom/DrawArc.tsx":{"bytesInOutput":59},"src/canvas/dom/DrawLine.tsx":{"bytesInOutput":60},"src/canvas/dom/DrawText.tsx":{"bytesInOutput":60},"src/canvas/dom/DrawPath.tsx":{"bytesInOutput":60}},"bytes":2513},"dist/chunk-DUGPBZZ3.js.map":{"imports":[],"exports":[],"inputs":{},"bytes":1291},"dist/chunk-DUGPBZZ3.js":{"imports":[],"exports":["a","b","c"],"inputs":{"src/jsx-runtime.ts":{"bytesInOutput":183}},"bytes":213},"dist/interactive.js.map":{"imports":[],"exports":[],"inputs":{},"bytes":15141},"dist/interactive.js":{"imports":[{"path":"dist/chunk-W2L7BLE7.js","kind":"import-statement"},{"path":"dist/chunk-3CKIHQIE.js","kind":"import-statement"},{"path":"dist/chunk-UWFVCKRU.js","kind":"import-statement"},{"path":"dist/chunk-CGB4YXKS.js","kind":"import-statement"}],"exports":["Keys","MouseButton","keyboard","mouse","useLoop"],"entryPoint":"src/interactive/index.ts","inputs":{"src/interactive/loop.ts":{"bytesInOutput":459},"src/interactive/index.ts":{"bytesInOutput":0},"src/interactive/types.ts":{"bytesInOutput":701},"src/interactive/keyboard.ts":{"bytesInOutput":689},"src/interactive/mouse.ts":{"bytesInOutput":1150}},"bytes":3197},"dist/chunk-W2L7BLE7.js.map":{"imports":[],"exports":[],"inputs":{},"bytes":18116},"dist/chunk-W2L7BLE7.js":{"imports":[{"path":"dist/chunk-3CKIHQIE.js","kind":"import-statement"},{"path":"dist/chunk-UWFVCKRU.js","kind":"import-statement"},{"path":"dist/chunk-CGB4YXKS.js","kind":"import-statement"}],"exports":["a","b","c"],"inputs":{"src/core/reactive.ts":{"bytesInOutput":590},"src/core/devtools.ts":{"bytesInOutput":372},"src/core/use.ts":{"bytesInOutput":2043}},"bytes":3176},"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-UWFVCKRU.js.map":{"imports":[],"exports":[],"inputs":{},"bytes":1694},"dist/chunk-UWFVCKRU.js":{"imports":[],"exports":["a","b"],"inputs":{"src/core/hook.ts":{"bytesInOutput":227}},"bytes":250},"dist/advanced.js.map":{"imports":[],"exports":[],"inputs":{},"bytes":93},"dist/advanced.js":{"imports":[{"path":"dist/chunk-CGB4YXKS.js","kind":"import-statement"}],"exports":["createContext"],"entryPoint":"src/advanced/index.ts","inputs":{"src/advanced/index.ts":{"bytesInOutput":0}},"bytes":68},"dist/chunk-CGB4YXKS.js.map":{"imports":[],"exports":[],"inputs":{},"bytes":2204},"dist/chunk-CGB4YXKS.js":{"imports":[],"exports":["a","b","c","d"],"inputs":{"src/core/context.ts":{"bytesInOutput":284}},"bytes":316}}}
|
|
1
|
+
{"inputs":{"src/index.ts":{"bytes":67,"imports":[],"format":"esm"},"src/core/lifecycle.ts":{"bytes":2686,"imports":[],"format":"esm"},"src/core/reactive.ts":{"bytes":2080,"imports":[{"path":"src/core/lifecycle.ts","kind":"import-statement","original":"./lifecycle"}],"format":"esm"},"src/core/hook.ts":{"bytes":986,"imports":[],"format":"esm"},"src/core/devtools.ts":{"bytes":1841,"imports":[],"format":"esm"},"src/core/context.ts":{"bytes":1918,"imports":[],"format":"esm"},"src/core/use.ts":{"bytes":8125,"imports":[{"path":"src/core/reactive.ts","kind":"import-statement","original":"./reactive"},{"path":"src/core/lifecycle.ts","kind":"import-statement","original":"./lifecycle"},{"path":"src/core/hook.ts","kind":"import-statement","original":"./hook"},{"path":"src/core/devtools.ts","kind":"import-statement","original":"./devtools"},{"path":"src/core/context.ts","kind":"import-statement","original":"./context"},{"path":"src/core/context.ts","kind":"import-statement","original":"./context"}],"format":"esm"},"src/core/ref.ts":{"bytes":812,"imports":[{"path":"src/core/hook.ts","kind":"import-statement","original":"./hook"}],"format":"esm"},"src/core/index.ts":{"bytes":315,"imports":[{"path":"src/core/use.ts","kind":"import-statement","original":"./use"},{"path":"src/core/lifecycle.ts","kind":"import-statement","original":"./lifecycle"},{"path":"src/core/ref.ts","kind":"import-statement","original":"./ref"},{"path":"src/core/context.ts","kind":"import-statement","original":"./context"}],"format":"esm"},"src/dom/f.ts":{"bytes":285,"imports":[],"format":"esm"},"src/dom/render.ts":{"bytes":15127,"imports":[{"path":"src/core/context.ts","kind":"import-statement","original":"../core/context"},{"path":"src/core/hook.ts","kind":"import-statement","original":"../core/hook"},{"path":"src/core/lifecycle.ts","kind":"import-statement","original":"../core/lifecycle"}],"format":"esm"},"src/dom/hydrate.ts":{"bytes":9324,"imports":[{"path":"src/core/hook.ts","kind":"import-statement","original":"../core/hook"},{"path":"src/core/context.ts","kind":"import-statement","original":"../core/context"},{"path":"src/core/lifecycle.ts","kind":"import-statement","original":"../core/lifecycle"},{"path":"src/dom/render.ts","kind":"dynamic-import","original":"./render"}],"format":"esm"},"src/dom/components/Portal.tsx":{"bytes":1937,"imports":[{"path":"src/core/use.ts","kind":"import-statement","original":"../../core/use"},{"path":"src/core/hook.ts","kind":"import-statement","original":"../../core/hook"},{"path":"src/dom/render.ts","kind":"import-statement","original":"../render"}],"format":"esm"},"src/dom/components/suspenseContext.ts":{"bytes":412,"imports":[{"path":"src/core/context.ts","kind":"import-statement","original":"../../core/context"},{"path":"src/core/use.ts","kind":"import-statement","original":"../../core/use"}],"format":"esm"},"src/dom/components/Suspense.tsx":{"bytes":1770,"imports":[{"path":"src/core/use.ts","kind":"import-statement","original":"../../core/use"},{"path":"src/core/hook.ts","kind":"import-statement","original":"../../core/hook"},{"path":"src/dom/components/suspenseContext.ts","kind":"import-statement","original":"./suspenseContext"}],"format":"esm"},"src/dom/components/ErrorBoundary.tsx":{"bytes":2854,"imports":[{"path":"src/core/use.ts","kind":"import-statement","original":"../../core/use"},{"path":"src/core/hook.ts","kind":"import-statement","original":"../../core/hook"}],"format":"esm"},"src/dom/components/lazy.ts":{"bytes":1767,"imports":[{"path":"src/dom/components/suspenseContext.ts","kind":"import-statement","original":"./suspenseContext"}],"format":"esm"},"src/dom/components/index.ts":{"bytes":598,"imports":[{"path":"src/dom/components/Portal.tsx","kind":"import-statement","original":"./Portal"},{"path":"src/dom/components/Suspense.tsx","kind":"import-statement","original":"./Suspense"},{"path":"src/dom/components/ErrorBoundary.tsx","kind":"import-statement","original":"./ErrorBoundary"},{"path":"src/dom/components/lazy.ts","kind":"import-statement","original":"./lazy"},{"path":"src/dom/components/suspenseContext.ts","kind":"import-statement","original":"./suspenseContext"},{"path":"src/dom/components/ErrorBoundary.tsx","kind":"import-statement","original":"./ErrorBoundary"}],"format":"esm"},"src/dom/index.ts":{"bytes":373,"imports":[{"path":"src/dom/f.ts","kind":"import-statement","original":"./f"},{"path":"src/dom/render.ts","kind":"import-statement","original":"./render"},{"path":"src/dom/hydrate.ts","kind":"import-statement","original":"./hydrate"},{"path":"src/dom/components/index.ts","kind":"import-statement","original":"./components"}],"format":"esm"},"src/server/escape.ts":{"bytes":364,"imports":[],"format":"esm"},"src/server/serverState.ts":{"bytes":896,"imports":[],"format":"esm"},"src/server/renderToString.ts":{"bytes":6572,"imports":[{"path":"src/server/escape.ts","kind":"import-statement","original":"./escape"},{"path":"src/server/serverState.ts","kind":"import-statement","original":"./serverState"},{"path":"src/core/hook.ts","kind":"import-statement","original":"../core/hook"},{"path":"src/core/context.ts","kind":"import-statement","original":"../core/context"}],"format":"esm"},"src/server/index.ts":{"bytes":243,"imports":[{"path":"src/server/renderToString.ts","kind":"import-statement","original":"./renderToString"},{"path":"src/server/serverState.ts","kind":"import-statement","original":"./serverState"}],"format":"esm"},"src/router/types.ts":{"bytes":807,"imports":[],"format":"esm"},"src/router/utils.ts":{"bytes":3745,"imports":[{"path":"./types","kind":"import-statement","external":true}],"format":"esm"},"src/router/router.ts":{"bytes":3207,"imports":[{"path":"src/core/reactive.ts","kind":"import-statement","original":"../core/reactive"},{"path":"src/core/context.ts","kind":"import-statement","original":"../core/context"},{"path":"src/core/use.ts","kind":"import-statement","original":"../core/use"},{"path":"src/router/utils.ts","kind":"import-statement","original":"./utils"}],"format":"esm"},"src/jsx-runtime.ts":{"bytes":741,"imports":[],"format":"esm"},"src/router/dom/Route.tsx":{"bytes":106,"imports":[],"format":"esm"},"src/router/dom/Routes.tsx":{"bytes":2590,"imports":[{"path":"src/jsx-runtime.ts","kind":"import-statement","original":"../../jsx-runtime"},{"path":"src/router/router.ts","kind":"import-statement","original":"../router"},{"path":"src/router/utils.ts","kind":"import-statement","original":"../utils"},{"path":"src/router/dom/Route.tsx","kind":"import-statement","original":"./Route"}],"format":"esm"},"src/router/dom/Outlet.tsx":{"bytes":744,"imports":[{"path":"src/core/use.ts","kind":"import-statement","original":"../../core/use"},{"path":"src/jsx-runtime.ts","kind":"import-statement","original":"../../jsx-runtime"},{"path":"src/router/router.ts","kind":"import-statement","original":"../router"}],"format":"esm"},"src/router/dom/Link.tsx":{"bytes":447,"imports":[{"path":"src/jsx-runtime.ts","kind":"import-statement","original":"../../jsx-runtime"},{"path":"src/router/router.ts","kind":"import-statement","original":"../router"}],"format":"esm"},"src/router/index.ts":{"bytes":309,"imports":[{"path":"src/router/types.ts","kind":"import-statement","original":"./types"},{"path":"src/router/router.ts","kind":"import-statement","original":"./router"},{"path":"src/router/dom/Routes.tsx","kind":"import-statement","original":"./dom/Routes"},{"path":"src/router/dom/Route.tsx","kind":"import-statement","original":"./dom/Route"},{"path":"src/router/dom/Outlet.tsx","kind":"import-statement","original":"./dom/Outlet"},{"path":"src/router/dom/Link.tsx","kind":"import-statement","original":"./dom/Link"}],"format":"esm"},"src/canvas/Canvas.tsx":{"bytes":5526,"imports":[{"path":"src/core/use.ts","kind":"import-statement","original":"../core/use"},{"path":"src/core/reactive.ts","kind":"import-statement","original":"../core/reactive"},{"path":"src/jsx-runtime.ts","kind":"import-statement","original":"flexium/jsx-runtime"}],"format":"esm"},"src/canvas/dom/DrawRect.tsx":{"bytes":293,"imports":[{"path":"src/core/use.ts","kind":"import-statement","original":"../../core/use"},{"path":"src/canvas/Canvas.tsx","kind":"import-statement","original":"../Canvas"}],"format":"esm"},"src/canvas/dom/DrawCircle.tsx":{"bytes":303,"imports":[{"path":"src/core/use.ts","kind":"import-statement","original":"../../core/use"},{"path":"src/canvas/Canvas.tsx","kind":"import-statement","original":"../Canvas"}],"format":"esm"},"src/canvas/dom/DrawArc.tsx":{"bytes":288,"imports":[{"path":"src/core/use.ts","kind":"import-statement","original":"../../core/use"},{"path":"src/canvas/Canvas.tsx","kind":"import-statement","original":"../Canvas"}],"format":"esm"},"src/canvas/dom/DrawLine.tsx":{"bytes":293,"imports":[{"path":"src/core/use.ts","kind":"import-statement","original":"../../core/use"},{"path":"src/canvas/Canvas.tsx","kind":"import-statement","original":"../Canvas"}],"format":"esm"},"src/canvas/dom/DrawText.tsx":{"bytes":293,"imports":[{"path":"src/core/use.ts","kind":"import-statement","original":"../../core/use"},{"path":"src/canvas/Canvas.tsx","kind":"import-statement","original":"../Canvas"}],"format":"esm"},"src/canvas/dom/DrawPath.tsx":{"bytes":293,"imports":[{"path":"src/core/use.ts","kind":"import-statement","original":"../../core/use"},{"path":"src/canvas/Canvas.tsx","kind":"import-statement","original":"../Canvas"}],"format":"esm"},"src/canvas/index.ts":{"bytes":427,"imports":[{"path":"src/canvas/Canvas.tsx","kind":"import-statement","original":"./Canvas"},{"path":"src/canvas/dom/DrawRect.tsx","kind":"import-statement","original":"./dom/DrawRect"},{"path":"src/canvas/dom/DrawCircle.tsx","kind":"import-statement","original":"./dom/DrawCircle"},{"path":"src/canvas/dom/DrawArc.tsx","kind":"import-statement","original":"./dom/DrawArc"},{"path":"src/canvas/dom/DrawLine.tsx","kind":"import-statement","original":"./dom/DrawLine"},{"path":"src/canvas/dom/DrawText.tsx","kind":"import-statement","original":"./dom/DrawText"},{"path":"src/canvas/dom/DrawPath.tsx","kind":"import-statement","original":"./dom/DrawPath"}],"format":"esm"},"src/interactive/loop.ts":{"bytes":1687,"imports":[],"format":"esm"},"src/interactive/types.ts":{"bytes":1937,"imports":[],"format":"esm"},"src/interactive/keyboard.ts":{"bytes":2398,"imports":[{"path":"src/core/use.ts","kind":"import-statement","original":"../core/use"},{"path":"src/interactive/types.ts","kind":"import-statement","original":"./types"}],"format":"esm"},"src/interactive/mouse.ts":{"bytes":3174,"imports":[{"path":"src/core/use.ts","kind":"import-statement","original":"../core/use"},{"path":"src/interactive/types.ts","kind":"import-statement","original":"./types"}],"format":"esm"},"src/interactive/index.ts":{"bytes":215,"imports":[{"path":"src/interactive/loop.ts","kind":"import-statement","original":"./loop"},{"path":"src/interactive/keyboard.ts","kind":"import-statement","original":"./keyboard"},{"path":"src/interactive/mouse.ts","kind":"import-statement","original":"./mouse"}],"format":"esm"},"src/jsx-dev-runtime.ts":{"bytes":211,"imports":[{"path":"src/jsx-runtime.ts","kind":"import-statement","original":"./jsx-runtime"}],"format":"esm"}},"outputs":{"dist/jsx-dev-runtime.js.map":{"imports":[],"exports":[],"inputs":{},"bytes":510},"dist/jsx-dev-runtime.js":{"imports":[{"path":"dist/chunk-LHOIM4QY.js","kind":"import-statement"}],"exports":["Fragment","jsxDEV"],"entryPoint":"src/jsx-dev-runtime.ts","inputs":{"src/jsx-dev-runtime.ts":{"bytesInOutput":40}},"bytes":122},"dist/render-MJ2LCNSG.js.map":{"imports":[],"exports":[],"inputs":{},"bytes":93},"dist/render-MJ2LCNSG.js":{"imports":[{"path":"dist/chunk-PUXZJ7OV.js","kind":"import-statement"},{"path":"dist/chunk-3CKIHQIE.js","kind":"import-statement"},{"path":"dist/chunk-E6Z7AI4J.js","kind":"import-statement"}],"exports":["reconcile","render"],"entryPoint":"src/dom/render.ts","inputs":{},"bytes":129},"dist/index.js.map":{"imports":[],"exports":[],"inputs":{},"bytes":204},"dist/index.js":{"imports":[],"exports":["VERSION"],"entryPoint":"src/index.ts","inputs":{"src/index.ts":{"bytesInOutput":15}},"bytes":37},"dist/core.js.map":{"imports":[],"exports":[],"inputs":{},"bytes":1066},"dist/core.js":{"imports":[{"path":"dist/chunk-ACYN2UKT.js","kind":"import-statement"},{"path":"dist/chunk-3CKIHQIE.js","kind":"import-statement"},{"path":"dist/chunk-E6Z7AI4J.js","kind":"import-statement"}],"exports":["Context","sync","use","useRef"],"entryPoint":"src/core/index.ts","inputs":{"src/core/index.ts":{"bytesInOutput":0},"src/core/ref.ts":{"bytesInOutput":42}},"bytes":222},"dist/dom.js.map":{"imports":[],"exports":[],"inputs":{},"bytes":27792},"dist/dom.js":{"imports":[{"path":"dist/chunk-PUXZJ7OV.js","kind":"import-statement"},{"path":"dist/chunk-ACYN2UKT.js","kind":"import-statement"},{"path":"dist/chunk-3CKIHQIE.js","kind":"import-statement"},{"path":"dist/chunk-E6Z7AI4J.js","kind":"import-statement"},{"path":"dist/render-MJ2LCNSG.js","kind":"dynamic-import"}],"exports":["ErrorBoundary","Portal","Suspense","f","hydrate","lazy","render"],"entryPoint":"src/dom/index.ts","inputs":{"src/dom/f.ts":{"bytesInOutput":70},"src/dom/index.ts":{"bytesInOutput":0},"src/dom/hydrate.ts":{"bytesInOutput":2733},"src/dom/components/Portal.tsx":{"bytesInOutput":500},"src/dom/components/index.ts":{"bytesInOutput":0},"src/dom/components/suspenseContext.ts":{"bytesInOutput":84},"src/dom/components/Suspense.tsx":{"bytesInOutput":293},"src/dom/components/ErrorBoundary.tsx":{"bytesInOutput":500},"src/dom/components/lazy.ts":{"bytesInOutput":249}},"bytes":4713},"dist/chunk-PUXZJ7OV.js.map":{"imports":[],"exports":[],"inputs":{},"bytes":23945},"dist/chunk-PUXZJ7OV.js":{"imports":[{"path":"dist/chunk-3CKIHQIE.js","kind":"import-statement"},{"path":"dist/chunk-E6Z7AI4J.js","kind":"import-statement"}],"exports":["a","b"],"inputs":{"src/dom/render.ts":{"bytesInOutput":4853}},"bytes":4963},"dist/server.js.map":{"imports":[],"exports":[],"inputs":{},"bytes":12945},"dist/server.js":{"imports":[{"path":"dist/chunk-E6Z7AI4J.js","kind":"import-statement"}],"exports":["getIsServer","renderToStaticMarkup","renderToString"],"entryPoint":"src/server/index.ts","inputs":{"src/server/escape.ts":{"bytesInOutput":157},"src/server/serverState.ts":{"bytesInOutput":186},"src/server/renderToString.ts":{"bytesInOutput":2125},"src/server/index.ts":{"bytesInOutput":0}},"bytes":2594},"dist/router.js.map":{"imports":[],"exports":[],"inputs":{},"bytes":17333},"dist/router.js":{"imports":[{"path":"dist/chunk-ACYN2UKT.js","kind":"import-statement"},{"path":"dist/chunk-3CKIHQIE.js","kind":"import-statement"},{"path":"dist/chunk-E6Z7AI4J.js","kind":"import-statement"},{"path":"dist/chunk-LHOIM4QY.js","kind":"import-statement"}],"exports":["Link","Outlet","Route","Routes","useLocation","useNavigate","useParams","useQuery","useRouter"],"entryPoint":"src/router/index.ts","inputs":{"src/router/index.ts":{"bytesInOutput":0},"src/router/utils.ts":{"bytesInOutput":1073},"src/router/router.ts":{"bytesInOutput":859},"src/router/dom/Route.tsx":{"bytesInOutput":26},"src/router/dom/Routes.tsx":{"bytesInOutput":638},"src/router/dom/Outlet.tsx":{"bytesInOutput":244},"src/router/dom/Link.tsx":{"bytesInOutput":133}},"bytes":3255},"dist/canvas.js.map":{"imports":[],"exports":[],"inputs":{},"bytes":12688},"dist/canvas.js":{"imports":[{"path":"dist/chunk-ACYN2UKT.js","kind":"import-statement"},{"path":"dist/chunk-3CKIHQIE.js","kind":"import-statement"},{"path":"dist/chunk-E6Z7AI4J.js","kind":"import-statement"},{"path":"dist/chunk-LHOIM4QY.js","kind":"import-statement"}],"exports":["Canvas","DrawArc","DrawCircle","DrawLine","DrawPath","DrawRect","DrawText"],"entryPoint":"src/canvas/index.ts","inputs":{"src/canvas/Canvas.tsx":{"bytesInOutput":1875},"src/canvas/index.ts":{"bytesInOutput":0},"src/canvas/dom/DrawRect.tsx":{"bytesInOutput":60},"src/canvas/dom/DrawCircle.tsx":{"bytesInOutput":62},"src/canvas/dom/DrawArc.tsx":{"bytesInOutput":59},"src/canvas/dom/DrawLine.tsx":{"bytesInOutput":60},"src/canvas/dom/DrawText.tsx":{"bytesInOutput":60},"src/canvas/dom/DrawPath.tsx":{"bytesInOutput":60}},"bytes":2485},"dist/interactive.js.map":{"imports":[],"exports":[],"inputs":{},"bytes":15153},"dist/interactive.js":{"imports":[{"path":"dist/chunk-ACYN2UKT.js","kind":"import-statement"},{"path":"dist/chunk-3CKIHQIE.js","kind":"import-statement"},{"path":"dist/chunk-E6Z7AI4J.js","kind":"import-statement"}],"exports":["Keys","MouseButton","useKeyboard","useLoop","useMouse"],"entryPoint":"src/interactive/index.ts","inputs":{"src/interactive/loop.ts":{"bytesInOutput":459},"src/interactive/index.ts":{"bytesInOutput":0},"src/interactive/types.ts":{"bytesInOutput":701},"src/interactive/keyboard.ts":{"bytesInOutput":689},"src/interactive/mouse.ts":{"bytesInOutput":1150}},"bytes":3175},"dist/chunk-ACYN2UKT.js.map":{"imports":[],"exports":[],"inputs":{},"bytes":18028},"dist/chunk-ACYN2UKT.js":{"imports":[{"path":"dist/chunk-3CKIHQIE.js","kind":"import-statement"},{"path":"dist/chunk-E6Z7AI4J.js","kind":"import-statement"}],"exports":["a","b","c"],"inputs":{"src/core/reactive.ts":{"bytesInOutput":590},"src/core/devtools.ts":{"bytesInOutput":372},"src/core/use.ts":{"bytesInOutput":2043}},"bytes":3143},"dist/chunk-3CKIHQIE.js.map":{"imports":[],"exports":[],"inputs":{},"bytes":4599},"dist/chunk-3CKIHQIE.js":{"imports":[],"exports":["a","b","c","d","e"],"inputs":{"src/core/lifecycle.ts":{"bytesInOutput":813}},"bytes":857},"dist/chunk-E6Z7AI4J.js.map":{"imports":[],"exports":[],"inputs":{},"bytes":4337},"dist/chunk-E6Z7AI4J.js":{"imports":[],"exports":["a","b","c","d","e","f"],"inputs":{"src/core/hook.ts":{"bytesInOutput":227},"src/core/context.ts":{"bytesInOutput":307}},"bytes":585},"dist/jsx-runtime.js.map":{"imports":[],"exports":[],"inputs":{},"bytes":93},"dist/jsx-runtime.js":{"imports":[{"path":"dist/chunk-LHOIM4QY.js","kind":"import-statement"}],"exports":["Fragment","jsx","jsxs"],"entryPoint":"src/jsx-runtime.ts","inputs":{},"bytes":81},"dist/chunk-LHOIM4QY.js.map":{"imports":[],"exports":[],"inputs":{},"bytes":1297},"dist/chunk-LHOIM4QY.js":{"imports":[],"exports":["a","b","c"],"inputs":{"src/jsx-runtime.ts":{"bytesInOutput":183}},"bytes":213}}}
|
package/dist/metafile-esm.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"inputs":{"src/index.ts":{"bytes":67,"imports":[],"format":"esm"},"src/core/lifecycle.ts":{"bytes":2686,"imports":[],"format":"esm"},"src/core/reactive.ts":{"bytes":2080,"imports":[{"path":"src/core/lifecycle.ts","kind":"import-statement","original":"./lifecycle"}],"format":"esm"},"src/core/hook.ts":{"bytes":986,"imports":[],"format":"esm"},"src/core/devtools.ts":{"bytes":1841,"imports":[],"format":"esm"},"src/core/context.ts":{"bytes":1403,"imports":[],"format":"esm"},"src/core/use.ts":{"bytes":8217,"imports":[{"path":"src/core/reactive.ts","kind":"import-statement","original":"./reactive"},{"path":"src/core/lifecycle.ts","kind":"import-statement","original":"./lifecycle"},{"path":"src/core/hook.ts","kind":"import-statement","original":"./hook"},{"path":"src/core/devtools.ts","kind":"import-statement","original":"./devtools"},{"path":"src/core/context.ts","kind":"import-statement","original":"./context"},{"path":"src/core/context.ts","kind":"import-statement","original":"./context"}],"format":"esm"},"src/ref/ref.ts":{"bytes":818,"imports":[{"path":"src/core/hook.ts","kind":"import-statement","original":"../core/hook"}],"format":"esm"},"src/ref/index.ts":{"bytes":113,"imports":[{"path":"src/ref/ref.ts","kind":"import-statement","original":"./ref"}],"format":"esm"},"src/core/index.ts":{"bytes":271,"imports":[{"path":"src/core/use.ts","kind":"import-statement","original":"./use"},{"path":"src/core/lifecycle.ts","kind":"import-statement","original":"./lifecycle"},{"path":"src/ref/index.ts","kind":"import-statement","original":"../ref"}],"format":"esm"},"src/dom/f.ts":{"bytes":285,"imports":[],"format":"esm"},"src/dom/render.ts":{"bytes":15127,"imports":[{"path":"src/core/context.ts","kind":"import-statement","original":"../core/context"},{"path":"src/core/hook.ts","kind":"import-statement","original":"../core/hook"},{"path":"src/core/lifecycle.ts","kind":"import-statement","original":"../core/lifecycle"}],"format":"esm"},"src/dom/hydrate.ts":{"bytes":9324,"imports":[{"path":"src/core/hook.ts","kind":"import-statement","original":"../core/hook"},{"path":"src/core/context.ts","kind":"import-statement","original":"../core/context"},{"path":"src/core/lifecycle.ts","kind":"import-statement","original":"../core/lifecycle"},{"path":"src/dom/render.ts","kind":"dynamic-import","original":"./render"}],"format":"esm"},"src/dom/components/Portal.tsx":{"bytes":1937,"imports":[{"path":"src/core/use.ts","kind":"import-statement","original":"../../core/use"},{"path":"src/core/hook.ts","kind":"import-statement","original":"../../core/hook"},{"path":"src/dom/render.ts","kind":"import-statement","original":"../render"}],"format":"esm"},"src/dom/components/suspenseContext.ts":{"bytes":378,"imports":[{"path":"src/core/context.ts","kind":"import-statement","original":"../../core/context"}],"format":"esm"},"src/dom/components/Suspense.tsx":{"bytes":1770,"imports":[{"path":"src/core/use.ts","kind":"import-statement","original":"../../core/use"},{"path":"src/core/hook.ts","kind":"import-statement","original":"../../core/hook"},{"path":"src/dom/components/suspenseContext.ts","kind":"import-statement","original":"./suspenseContext"}],"format":"esm"},"src/dom/components/ErrorBoundary.tsx":{"bytes":2854,"imports":[{"path":"src/core/use.ts","kind":"import-statement","original":"../../core/use"},{"path":"src/core/hook.ts","kind":"import-statement","original":"../../core/hook"}],"format":"esm"},"src/dom/components/lazy.ts":{"bytes":1767,"imports":[{"path":"src/dom/components/suspenseContext.ts","kind":"import-statement","original":"./suspenseContext"}],"format":"esm"},"src/dom/components/index.ts":{"bytes":598,"imports":[{"path":"src/dom/components/Portal.tsx","kind":"import-statement","original":"./Portal"},{"path":"src/dom/components/Suspense.tsx","kind":"import-statement","original":"./Suspense"},{"path":"src/dom/components/ErrorBoundary.tsx","kind":"import-statement","original":"./ErrorBoundary"},{"path":"src/dom/components/lazy.ts","kind":"import-statement","original":"./lazy"},{"path":"src/dom/components/suspenseContext.ts","kind":"import-statement","original":"./suspenseContext"},{"path":"src/dom/components/ErrorBoundary.tsx","kind":"import-statement","original":"./ErrorBoundary"}],"format":"esm"},"src/dom/index.ts":{"bytes":457,"imports":[{"path":"src/dom/f.ts","kind":"import-statement","original":"./f"},{"path":"src/dom/render.ts","kind":"import-statement","original":"./render"},{"path":"src/dom/hydrate.ts","kind":"import-statement","original":"./hydrate"},{"path":"src/dom/components/index.ts","kind":"import-statement","original":"./components"}],"format":"esm"},"src/server/escape.ts":{"bytes":364,"imports":[],"format":"esm"},"src/server/serverState.ts":{"bytes":896,"imports":[],"format":"esm"},"src/server/renderToString.ts":{"bytes":6572,"imports":[{"path":"src/server/escape.ts","kind":"import-statement","original":"./escape"},{"path":"src/server/serverState.ts","kind":"import-statement","original":"./serverState"},{"path":"src/core/hook.ts","kind":"import-statement","original":"../core/hook"},{"path":"src/core/context.ts","kind":"import-statement","original":"../core/context"}],"format":"esm"},"src/server/index.ts":{"bytes":243,"imports":[{"path":"src/server/renderToString.ts","kind":"import-statement","original":"./renderToString"},{"path":"src/server/serverState.ts","kind":"import-statement","original":"./serverState"}],"format":"esm"},"src/router/types.ts":{"bytes":807,"imports":[],"format":"esm"},"src/router/utils.ts":{"bytes":3745,"imports":[{"path":"./types","kind":"import-statement","external":true}],"format":"esm"},"src/router/router.ts":{"bytes":3200,"imports":[{"path":"src/core/reactive.ts","kind":"import-statement","original":"../core/reactive"},{"path":"src/core/context.ts","kind":"import-statement","original":"../core/context"},{"path":"src/router/utils.ts","kind":"import-statement","original":"./utils"}],"format":"esm"},"src/jsx-runtime.ts":{"bytes":735,"imports":[],"format":"esm"},"src/router/dom/Route.tsx":{"bytes":106,"imports":[],"format":"esm"},"src/router/dom/Routes.tsx":{"bytes":2584,"imports":[{"path":"src/jsx-runtime.ts","kind":"import-statement","original":"../../jsx-runtime"},{"path":"src/router/router.ts","kind":"import-statement","original":"../router"},{"path":"src/router/utils.ts","kind":"import-statement","original":"../utils"},{"path":"src/router/dom/Route.tsx","kind":"import-statement","original":"./Route"}],"format":"esm"},"src/router/dom/Outlet.tsx":{"bytes":744,"imports":[{"path":"src/core/use.ts","kind":"import-statement","original":"../../core/use"},{"path":"src/jsx-runtime.ts","kind":"import-statement","original":"../../jsx-runtime"},{"path":"src/router/router.ts","kind":"import-statement","original":"../router"}],"format":"esm"},"src/router/dom/Link.tsx":{"bytes":447,"imports":[{"path":"src/jsx-runtime.ts","kind":"import-statement","original":"../../jsx-runtime"},{"path":"src/router/router.ts","kind":"import-statement","original":"../router"}],"format":"esm"},"src/router/index.ts":{"bytes":309,"imports":[{"path":"src/router/types.ts","kind":"import-statement","original":"./types"},{"path":"src/router/router.ts","kind":"import-statement","original":"./router"},{"path":"src/router/dom/Routes.tsx","kind":"import-statement","original":"./dom/Routes"},{"path":"src/router/dom/Route.tsx","kind":"import-statement","original":"./dom/Route"},{"path":"src/router/dom/Outlet.tsx","kind":"import-statement","original":"./dom/Outlet"},{"path":"src/router/dom/Link.tsx","kind":"import-statement","original":"./dom/Link"}],"format":"esm"},"src/canvas/Canvas.tsx":{"bytes":5526,"imports":[{"path":"src/core/use.ts","kind":"import-statement","original":"../core/use"},{"path":"src/core/reactive.ts","kind":"import-statement","original":"../core/reactive"},{"path":"src/jsx-runtime.ts","kind":"import-statement","original":"flexium/jsx-runtime"}],"format":"esm"},"src/canvas/dom/DrawRect.tsx":{"bytes":293,"imports":[{"path":"src/core/use.ts","kind":"import-statement","original":"../../core/use"},{"path":"src/canvas/Canvas.tsx","kind":"import-statement","original":"../Canvas"}],"format":"esm"},"src/canvas/dom/DrawCircle.tsx":{"bytes":303,"imports":[{"path":"src/core/use.ts","kind":"import-statement","original":"../../core/use"},{"path":"src/canvas/Canvas.tsx","kind":"import-statement","original":"../Canvas"}],"format":"esm"},"src/canvas/dom/DrawArc.tsx":{"bytes":288,"imports":[{"path":"src/core/use.ts","kind":"import-statement","original":"../../core/use"},{"path":"src/canvas/Canvas.tsx","kind":"import-statement","original":"../Canvas"}],"format":"esm"},"src/canvas/dom/DrawLine.tsx":{"bytes":293,"imports":[{"path":"src/core/use.ts","kind":"import-statement","original":"../../core/use"},{"path":"src/canvas/Canvas.tsx","kind":"import-statement","original":"../Canvas"}],"format":"esm"},"src/canvas/dom/DrawText.tsx":{"bytes":293,"imports":[{"path":"src/core/use.ts","kind":"import-statement","original":"../../core/use"},{"path":"src/canvas/Canvas.tsx","kind":"import-statement","original":"../Canvas"}],"format":"esm"},"src/canvas/dom/DrawPath.tsx":{"bytes":293,"imports":[{"path":"src/core/use.ts","kind":"import-statement","original":"../../core/use"},{"path":"src/canvas/Canvas.tsx","kind":"import-statement","original":"../Canvas"}],"format":"esm"},"src/canvas/index.ts":{"bytes":427,"imports":[{"path":"src/canvas/Canvas.tsx","kind":"import-statement","original":"./Canvas"},{"path":"src/canvas/dom/DrawRect.tsx","kind":"import-statement","original":"./dom/DrawRect"},{"path":"src/canvas/dom/DrawCircle.tsx","kind":"import-statement","original":"./dom/DrawCircle"},{"path":"src/canvas/dom/DrawArc.tsx","kind":"import-statement","original":"./dom/DrawArc"},{"path":"src/canvas/dom/DrawLine.tsx","kind":"import-statement","original":"./dom/DrawLine"},{"path":"src/canvas/dom/DrawText.tsx","kind":"import-statement","original":"./dom/DrawText"},{"path":"src/canvas/dom/DrawPath.tsx","kind":"import-statement","original":"./dom/DrawPath"}],"format":"esm"},"src/interactive/loop.ts":{"bytes":1687,"imports":[],"format":"esm"},"src/interactive/types.ts":{"bytes":1937,"imports":[],"format":"esm"},"src/interactive/keyboard.ts":{"bytes":2395,"imports":[{"path":"src/core/use.ts","kind":"import-statement","original":"../core/use"},{"path":"src/interactive/types.ts","kind":"import-statement","original":"./types"}],"format":"esm"},"src/interactive/mouse.ts":{"bytes":3171,"imports":[{"path":"src/core/use.ts","kind":"import-statement","original":"../core/use"},{"path":"src/interactive/types.ts","kind":"import-statement","original":"./types"}],"format":"esm"},"src/interactive/index.ts":{"bytes":209,"imports":[{"path":"src/interactive/loop.ts","kind":"import-statement","original":"./loop"},{"path":"src/interactive/keyboard.ts","kind":"import-statement","original":"./keyboard"},{"path":"src/interactive/mouse.ts","kind":"import-statement","original":"./mouse"}],"format":"esm"},"src/advanced/index.ts":{"bytes":116,"imports":[{"path":"src/core/context.ts","kind":"import-statement","original":"../core/context"}],"format":"esm"},"src/jsx-dev-runtime.ts":{"bytes":211,"imports":[{"path":"src/jsx-runtime.ts","kind":"import-statement","original":"./jsx-runtime"}],"format":"esm"}},"outputs":{"dist/jsx-runtime.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":93},"dist/jsx-runtime.mjs":{"imports":[{"path":"dist/chunk-NY6NOGFU.mjs","kind":"import-statement"}],"exports":["Fragment","jsx","jsxs"],"entryPoint":"src/jsx-runtime.ts","inputs":{},"bytes":82},"dist/jsx-dev-runtime.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":510},"dist/jsx-dev-runtime.mjs":{"imports":[{"path":"dist/chunk-NY6NOGFU.mjs","kind":"import-statement"}],"exports":["Fragment","jsxDEV"],"entryPoint":"src/jsx-dev-runtime.ts","inputs":{"src/jsx-dev-runtime.ts":{"bytesInOutput":40}},"bytes":123},"dist/render-L57MA662.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":93},"dist/render-L57MA662.mjs":{"imports":[{"path":"dist/chunk-JUP6RTZA.mjs","kind":"import-statement"},{"path":"dist/chunk-NRPWBHKP.mjs","kind":"import-statement"},{"path":"dist/chunk-5PNH2ARD.mjs","kind":"import-statement"},{"path":"dist/chunk-NDPEE2TQ.mjs","kind":"import-statement"}],"exports":["reconcile","render"],"entryPoint":"src/dom/render.ts","inputs":{},"bytes":161},"dist/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":204},"dist/index.mjs":{"imports":[],"exports":["VERSION"],"entryPoint":"src/index.ts","inputs":{"src/index.ts":{"bytesInOutput":15}},"bytes":37},"dist/core.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":1071},"dist/core.mjs":{"imports":[{"path":"dist/chunk-INJXOHFD.mjs","kind":"import-statement"},{"path":"dist/chunk-NRPWBHKP.mjs","kind":"import-statement"},{"path":"dist/chunk-5PNH2ARD.mjs","kind":"import-statement"},{"path":"dist/chunk-NDPEE2TQ.mjs","kind":"import-statement"}],"exports":["sync","use","useRef"],"entryPoint":"src/core/index.ts","inputs":{"src/core/index.ts":{"bytesInOutput":0},"src/ref/ref.ts":{"bytesInOutput":42},"src/ref/index.ts":{"bytesInOutput":0}},"bytes":234},"dist/dom.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":27737},"dist/dom.mjs":{"imports":[{"path":"dist/chunk-JUP6RTZA.mjs","kind":"import-statement"},{"path":"dist/chunk-INJXOHFD.mjs","kind":"import-statement"},{"path":"dist/chunk-NRPWBHKP.mjs","kind":"import-statement"},{"path":"dist/chunk-5PNH2ARD.mjs","kind":"import-statement"},{"path":"dist/chunk-NDPEE2TQ.mjs","kind":"import-statement"},{"path":"dist/render-L57MA662.mjs","kind":"dynamic-import"}],"exports":["ErrorBoundary","Portal","Suspense","f","hydrate","lazy","reconcile","render","suspenseContext"],"entryPoint":"src/dom/index.ts","inputs":{"src/dom/f.ts":{"bytesInOutput":70},"src/dom/index.ts":{"bytesInOutput":0},"src/dom/hydrate.ts":{"bytesInOutput":2734},"src/dom/components/Portal.tsx":{"bytesInOutput":500},"src/dom/components/index.ts":{"bytesInOutput":0},"src/dom/components/suspenseContext.ts":{"bytesInOutput":71},"src/dom/components/Suspense.tsx":{"bytesInOutput":293},"src/dom/components/ErrorBoundary.tsx":{"bytesInOutput":500},"src/dom/components/lazy.ts":{"bytesInOutput":249}},"bytes":4789},"dist/chunk-JUP6RTZA.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":23945},"dist/chunk-JUP6RTZA.mjs":{"imports":[{"path":"dist/chunk-NRPWBHKP.mjs","kind":"import-statement"},{"path":"dist/chunk-5PNH2ARD.mjs","kind":"import-statement"},{"path":"dist/chunk-NDPEE2TQ.mjs","kind":"import-statement"}],"exports":["a","b"],"inputs":{"src/dom/render.ts":{"bytesInOutput":4853}},"bytes":4999},"dist/server.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":12945},"dist/server.mjs":{"imports":[{"path":"dist/chunk-5PNH2ARD.mjs","kind":"import-statement"},{"path":"dist/chunk-NDPEE2TQ.mjs","kind":"import-statement"}],"exports":["getIsServer","renderToStaticMarkup","renderToString"],"entryPoint":"src/server/index.ts","inputs":{"src/server/escape.ts":{"bytesInOutput":157},"src/server/serverState.ts":{"bytesInOutput":186},"src/server/renderToString.ts":{"bytesInOutput":2125},"src/server/index.ts":{"bytesInOutput":0}},"bytes":2629},"dist/router.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":17313},"dist/router.mjs":{"imports":[{"path":"dist/chunk-NY6NOGFU.mjs","kind":"import-statement"},{"path":"dist/chunk-INJXOHFD.mjs","kind":"import-statement"},{"path":"dist/chunk-NRPWBHKP.mjs","kind":"import-statement"},{"path":"dist/chunk-5PNH2ARD.mjs","kind":"import-statement"},{"path":"dist/chunk-NDPEE2TQ.mjs","kind":"import-statement"}],"exports":["Link","Outlet","Route","Routes","useLocation","useNavigate","useParams","useQuery","useRouter"],"entryPoint":"src/router/index.ts","inputs":{"src/router/index.ts":{"bytesInOutput":0},"src/router/utils.ts":{"bytesInOutput":1073},"src/router/router.ts":{"bytesInOutput":850},"src/router/dom/Route.tsx":{"bytesInOutput":26},"src/router/dom/Routes.tsx":{"bytesInOutput":638},"src/router/dom/Outlet.tsx":{"bytesInOutput":244},"src/router/dom/Link.tsx":{"bytesInOutput":133}},"bytes":3286},"dist/canvas.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":12688},"dist/canvas.mjs":{"imports":[{"path":"dist/chunk-NY6NOGFU.mjs","kind":"import-statement"},{"path":"dist/chunk-INJXOHFD.mjs","kind":"import-statement"},{"path":"dist/chunk-NRPWBHKP.mjs","kind":"import-statement"},{"path":"dist/chunk-5PNH2ARD.mjs","kind":"import-statement"},{"path":"dist/chunk-NDPEE2TQ.mjs","kind":"import-statement"}],"exports":["Canvas","DrawArc","DrawCircle","DrawLine","DrawPath","DrawRect","DrawText"],"entryPoint":"src/canvas/index.ts","inputs":{"src/canvas/Canvas.tsx":{"bytesInOutput":1875},"src/canvas/index.ts":{"bytesInOutput":0},"src/canvas/dom/DrawRect.tsx":{"bytesInOutput":60},"src/canvas/dom/DrawCircle.tsx":{"bytesInOutput":62},"src/canvas/dom/DrawArc.tsx":{"bytesInOutput":59},"src/canvas/dom/DrawLine.tsx":{"bytesInOutput":60},"src/canvas/dom/DrawText.tsx":{"bytesInOutput":60},"src/canvas/dom/DrawPath.tsx":{"bytesInOutput":60}},"bytes":2518},"dist/chunk-NY6NOGFU.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":1291},"dist/chunk-NY6NOGFU.mjs":{"imports":[],"exports":["a","b","c"],"inputs":{"src/jsx-runtime.ts":{"bytesInOutput":183}},"bytes":213},"dist/interactive.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":15141},"dist/interactive.mjs":{"imports":[{"path":"dist/chunk-INJXOHFD.mjs","kind":"import-statement"},{"path":"dist/chunk-NRPWBHKP.mjs","kind":"import-statement"},{"path":"dist/chunk-5PNH2ARD.mjs","kind":"import-statement"},{"path":"dist/chunk-NDPEE2TQ.mjs","kind":"import-statement"}],"exports":["Keys","MouseButton","keyboard","mouse","useLoop"],"entryPoint":"src/interactive/index.ts","inputs":{"src/interactive/loop.ts":{"bytesInOutput":459},"src/interactive/index.ts":{"bytesInOutput":0},"src/interactive/types.ts":{"bytesInOutput":701},"src/interactive/keyboard.ts":{"bytesInOutput":689},"src/interactive/mouse.ts":{"bytesInOutput":1150}},"bytes":3201},"dist/chunk-INJXOHFD.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":18116},"dist/chunk-INJXOHFD.mjs":{"imports":[{"path":"dist/chunk-NRPWBHKP.mjs","kind":"import-statement"},{"path":"dist/chunk-5PNH2ARD.mjs","kind":"import-statement"},{"path":"dist/chunk-NDPEE2TQ.mjs","kind":"import-statement"}],"exports":["a","b","c"],"inputs":{"src/core/reactive.ts":{"bytesInOutput":590},"src/core/devtools.ts":{"bytesInOutput":372},"src/core/use.ts":{"bytesInOutput":2043}},"bytes":3179},"dist/chunk-NRPWBHKP.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":4599},"dist/chunk-NRPWBHKP.mjs":{"imports":[],"exports":["a","b","c","d","e"],"inputs":{"src/core/lifecycle.ts":{"bytesInOutput":813}},"bytes":857},"dist/chunk-5PNH2ARD.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":1694},"dist/chunk-5PNH2ARD.mjs":{"imports":[],"exports":["a","b"],"inputs":{"src/core/hook.ts":{"bytesInOutput":227}},"bytes":250},"dist/advanced.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":93},"dist/advanced.mjs":{"imports":[{"path":"dist/chunk-NDPEE2TQ.mjs","kind":"import-statement"}],"exports":["createContext"],"entryPoint":"src/advanced/index.ts","inputs":{"src/advanced/index.ts":{"bytesInOutput":0}},"bytes":69},"dist/chunk-NDPEE2TQ.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":2204},"dist/chunk-NDPEE2TQ.mjs":{"imports":[],"exports":["a","b","c","d"],"inputs":{"src/core/context.ts":{"bytesInOutput":284}},"bytes":316}}}
|
|
1
|
+
{"inputs":{"src/index.ts":{"bytes":67,"imports":[],"format":"esm"},"src/core/lifecycle.ts":{"bytes":2686,"imports":[],"format":"esm"},"src/core/reactive.ts":{"bytes":2080,"imports":[{"path":"src/core/lifecycle.ts","kind":"import-statement","original":"./lifecycle"}],"format":"esm"},"src/core/hook.ts":{"bytes":986,"imports":[],"format":"esm"},"src/core/devtools.ts":{"bytes":1841,"imports":[],"format":"esm"},"src/core/context.ts":{"bytes":1918,"imports":[],"format":"esm"},"src/core/use.ts":{"bytes":8125,"imports":[{"path":"src/core/reactive.ts","kind":"import-statement","original":"./reactive"},{"path":"src/core/lifecycle.ts","kind":"import-statement","original":"./lifecycle"},{"path":"src/core/hook.ts","kind":"import-statement","original":"./hook"},{"path":"src/core/devtools.ts","kind":"import-statement","original":"./devtools"},{"path":"src/core/context.ts","kind":"import-statement","original":"./context"},{"path":"src/core/context.ts","kind":"import-statement","original":"./context"}],"format":"esm"},"src/core/ref.ts":{"bytes":812,"imports":[{"path":"src/core/hook.ts","kind":"import-statement","original":"./hook"}],"format":"esm"},"src/core/index.ts":{"bytes":315,"imports":[{"path":"src/core/use.ts","kind":"import-statement","original":"./use"},{"path":"src/core/lifecycle.ts","kind":"import-statement","original":"./lifecycle"},{"path":"src/core/ref.ts","kind":"import-statement","original":"./ref"},{"path":"src/core/context.ts","kind":"import-statement","original":"./context"}],"format":"esm"},"src/dom/f.ts":{"bytes":285,"imports":[],"format":"esm"},"src/dom/render.ts":{"bytes":15127,"imports":[{"path":"src/core/context.ts","kind":"import-statement","original":"../core/context"},{"path":"src/core/hook.ts","kind":"import-statement","original":"../core/hook"},{"path":"src/core/lifecycle.ts","kind":"import-statement","original":"../core/lifecycle"}],"format":"esm"},"src/dom/hydrate.ts":{"bytes":9324,"imports":[{"path":"src/core/hook.ts","kind":"import-statement","original":"../core/hook"},{"path":"src/core/context.ts","kind":"import-statement","original":"../core/context"},{"path":"src/core/lifecycle.ts","kind":"import-statement","original":"../core/lifecycle"},{"path":"src/dom/render.ts","kind":"dynamic-import","original":"./render"}],"format":"esm"},"src/dom/components/Portal.tsx":{"bytes":1937,"imports":[{"path":"src/core/use.ts","kind":"import-statement","original":"../../core/use"},{"path":"src/core/hook.ts","kind":"import-statement","original":"../../core/hook"},{"path":"src/dom/render.ts","kind":"import-statement","original":"../render"}],"format":"esm"},"src/dom/components/suspenseContext.ts":{"bytes":412,"imports":[{"path":"src/core/context.ts","kind":"import-statement","original":"../../core/context"},{"path":"src/core/use.ts","kind":"import-statement","original":"../../core/use"}],"format":"esm"},"src/dom/components/Suspense.tsx":{"bytes":1770,"imports":[{"path":"src/core/use.ts","kind":"import-statement","original":"../../core/use"},{"path":"src/core/hook.ts","kind":"import-statement","original":"../../core/hook"},{"path":"src/dom/components/suspenseContext.ts","kind":"import-statement","original":"./suspenseContext"}],"format":"esm"},"src/dom/components/ErrorBoundary.tsx":{"bytes":2854,"imports":[{"path":"src/core/use.ts","kind":"import-statement","original":"../../core/use"},{"path":"src/core/hook.ts","kind":"import-statement","original":"../../core/hook"}],"format":"esm"},"src/dom/components/lazy.ts":{"bytes":1767,"imports":[{"path":"src/dom/components/suspenseContext.ts","kind":"import-statement","original":"./suspenseContext"}],"format":"esm"},"src/dom/components/index.ts":{"bytes":598,"imports":[{"path":"src/dom/components/Portal.tsx","kind":"import-statement","original":"./Portal"},{"path":"src/dom/components/Suspense.tsx","kind":"import-statement","original":"./Suspense"},{"path":"src/dom/components/ErrorBoundary.tsx","kind":"import-statement","original":"./ErrorBoundary"},{"path":"src/dom/components/lazy.ts","kind":"import-statement","original":"./lazy"},{"path":"src/dom/components/suspenseContext.ts","kind":"import-statement","original":"./suspenseContext"},{"path":"src/dom/components/ErrorBoundary.tsx","kind":"import-statement","original":"./ErrorBoundary"}],"format":"esm"},"src/dom/index.ts":{"bytes":373,"imports":[{"path":"src/dom/f.ts","kind":"import-statement","original":"./f"},{"path":"src/dom/render.ts","kind":"import-statement","original":"./render"},{"path":"src/dom/hydrate.ts","kind":"import-statement","original":"./hydrate"},{"path":"src/dom/components/index.ts","kind":"import-statement","original":"./components"}],"format":"esm"},"src/server/escape.ts":{"bytes":364,"imports":[],"format":"esm"},"src/server/serverState.ts":{"bytes":896,"imports":[],"format":"esm"},"src/server/renderToString.ts":{"bytes":6572,"imports":[{"path":"src/server/escape.ts","kind":"import-statement","original":"./escape"},{"path":"src/server/serverState.ts","kind":"import-statement","original":"./serverState"},{"path":"src/core/hook.ts","kind":"import-statement","original":"../core/hook"},{"path":"src/core/context.ts","kind":"import-statement","original":"../core/context"}],"format":"esm"},"src/server/index.ts":{"bytes":243,"imports":[{"path":"src/server/renderToString.ts","kind":"import-statement","original":"./renderToString"},{"path":"src/server/serverState.ts","kind":"import-statement","original":"./serverState"}],"format":"esm"},"src/router/types.ts":{"bytes":807,"imports":[],"format":"esm"},"src/router/utils.ts":{"bytes":3745,"imports":[{"path":"./types","kind":"import-statement","external":true}],"format":"esm"},"src/router/router.ts":{"bytes":3207,"imports":[{"path":"src/core/reactive.ts","kind":"import-statement","original":"../core/reactive"},{"path":"src/core/context.ts","kind":"import-statement","original":"../core/context"},{"path":"src/core/use.ts","kind":"import-statement","original":"../core/use"},{"path":"src/router/utils.ts","kind":"import-statement","original":"./utils"}],"format":"esm"},"src/jsx-runtime.ts":{"bytes":741,"imports":[],"format":"esm"},"src/router/dom/Route.tsx":{"bytes":106,"imports":[],"format":"esm"},"src/router/dom/Routes.tsx":{"bytes":2590,"imports":[{"path":"src/jsx-runtime.ts","kind":"import-statement","original":"../../jsx-runtime"},{"path":"src/router/router.ts","kind":"import-statement","original":"../router"},{"path":"src/router/utils.ts","kind":"import-statement","original":"../utils"},{"path":"src/router/dom/Route.tsx","kind":"import-statement","original":"./Route"}],"format":"esm"},"src/router/dom/Outlet.tsx":{"bytes":744,"imports":[{"path":"src/core/use.ts","kind":"import-statement","original":"../../core/use"},{"path":"src/jsx-runtime.ts","kind":"import-statement","original":"../../jsx-runtime"},{"path":"src/router/router.ts","kind":"import-statement","original":"../router"}],"format":"esm"},"src/router/dom/Link.tsx":{"bytes":447,"imports":[{"path":"src/jsx-runtime.ts","kind":"import-statement","original":"../../jsx-runtime"},{"path":"src/router/router.ts","kind":"import-statement","original":"../router"}],"format":"esm"},"src/router/index.ts":{"bytes":309,"imports":[{"path":"src/router/types.ts","kind":"import-statement","original":"./types"},{"path":"src/router/router.ts","kind":"import-statement","original":"./router"},{"path":"src/router/dom/Routes.tsx","kind":"import-statement","original":"./dom/Routes"},{"path":"src/router/dom/Route.tsx","kind":"import-statement","original":"./dom/Route"},{"path":"src/router/dom/Outlet.tsx","kind":"import-statement","original":"./dom/Outlet"},{"path":"src/router/dom/Link.tsx","kind":"import-statement","original":"./dom/Link"}],"format":"esm"},"src/canvas/Canvas.tsx":{"bytes":5526,"imports":[{"path":"src/core/use.ts","kind":"import-statement","original":"../core/use"},{"path":"src/core/reactive.ts","kind":"import-statement","original":"../core/reactive"},{"path":"src/jsx-runtime.ts","kind":"import-statement","original":"flexium/jsx-runtime"}],"format":"esm"},"src/canvas/dom/DrawRect.tsx":{"bytes":293,"imports":[{"path":"src/core/use.ts","kind":"import-statement","original":"../../core/use"},{"path":"src/canvas/Canvas.tsx","kind":"import-statement","original":"../Canvas"}],"format":"esm"},"src/canvas/dom/DrawCircle.tsx":{"bytes":303,"imports":[{"path":"src/core/use.ts","kind":"import-statement","original":"../../core/use"},{"path":"src/canvas/Canvas.tsx","kind":"import-statement","original":"../Canvas"}],"format":"esm"},"src/canvas/dom/DrawArc.tsx":{"bytes":288,"imports":[{"path":"src/core/use.ts","kind":"import-statement","original":"../../core/use"},{"path":"src/canvas/Canvas.tsx","kind":"import-statement","original":"../Canvas"}],"format":"esm"},"src/canvas/dom/DrawLine.tsx":{"bytes":293,"imports":[{"path":"src/core/use.ts","kind":"import-statement","original":"../../core/use"},{"path":"src/canvas/Canvas.tsx","kind":"import-statement","original":"../Canvas"}],"format":"esm"},"src/canvas/dom/DrawText.tsx":{"bytes":293,"imports":[{"path":"src/core/use.ts","kind":"import-statement","original":"../../core/use"},{"path":"src/canvas/Canvas.tsx","kind":"import-statement","original":"../Canvas"}],"format":"esm"},"src/canvas/dom/DrawPath.tsx":{"bytes":293,"imports":[{"path":"src/core/use.ts","kind":"import-statement","original":"../../core/use"},{"path":"src/canvas/Canvas.tsx","kind":"import-statement","original":"../Canvas"}],"format":"esm"},"src/canvas/index.ts":{"bytes":427,"imports":[{"path":"src/canvas/Canvas.tsx","kind":"import-statement","original":"./Canvas"},{"path":"src/canvas/dom/DrawRect.tsx","kind":"import-statement","original":"./dom/DrawRect"},{"path":"src/canvas/dom/DrawCircle.tsx","kind":"import-statement","original":"./dom/DrawCircle"},{"path":"src/canvas/dom/DrawArc.tsx","kind":"import-statement","original":"./dom/DrawArc"},{"path":"src/canvas/dom/DrawLine.tsx","kind":"import-statement","original":"./dom/DrawLine"},{"path":"src/canvas/dom/DrawText.tsx","kind":"import-statement","original":"./dom/DrawText"},{"path":"src/canvas/dom/DrawPath.tsx","kind":"import-statement","original":"./dom/DrawPath"}],"format":"esm"},"src/interactive/loop.ts":{"bytes":1687,"imports":[],"format":"esm"},"src/interactive/types.ts":{"bytes":1937,"imports":[],"format":"esm"},"src/interactive/keyboard.ts":{"bytes":2398,"imports":[{"path":"src/core/use.ts","kind":"import-statement","original":"../core/use"},{"path":"src/interactive/types.ts","kind":"import-statement","original":"./types"}],"format":"esm"},"src/interactive/mouse.ts":{"bytes":3174,"imports":[{"path":"src/core/use.ts","kind":"import-statement","original":"../core/use"},{"path":"src/interactive/types.ts","kind":"import-statement","original":"./types"}],"format":"esm"},"src/interactive/index.ts":{"bytes":215,"imports":[{"path":"src/interactive/loop.ts","kind":"import-statement","original":"./loop"},{"path":"src/interactive/keyboard.ts","kind":"import-statement","original":"./keyboard"},{"path":"src/interactive/mouse.ts","kind":"import-statement","original":"./mouse"}],"format":"esm"},"src/jsx-dev-runtime.ts":{"bytes":211,"imports":[{"path":"src/jsx-runtime.ts","kind":"import-statement","original":"./jsx-runtime"}],"format":"esm"}},"outputs":{"dist/jsx-dev-runtime.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":510},"dist/jsx-dev-runtime.mjs":{"imports":[{"path":"dist/chunk-J3542Z77.mjs","kind":"import-statement"}],"exports":["Fragment","jsxDEV"],"entryPoint":"src/jsx-dev-runtime.ts","inputs":{"src/jsx-dev-runtime.ts":{"bytesInOutput":40}},"bytes":123},"dist/render-4HB53K66.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":93},"dist/render-4HB53K66.mjs":{"imports":[{"path":"dist/chunk-TP5HUAIN.mjs","kind":"import-statement"},{"path":"dist/chunk-NRPWBHKP.mjs","kind":"import-statement"},{"path":"dist/chunk-MI76R42D.mjs","kind":"import-statement"}],"exports":["reconcile","render"],"entryPoint":"src/dom/render.ts","inputs":{},"bytes":132},"dist/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":204},"dist/index.mjs":{"imports":[],"exports":["VERSION"],"entryPoint":"src/index.ts","inputs":{"src/index.ts":{"bytesInOutput":15}},"bytes":37},"dist/core.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":1066},"dist/core.mjs":{"imports":[{"path":"dist/chunk-3AKECLKA.mjs","kind":"import-statement"},{"path":"dist/chunk-NRPWBHKP.mjs","kind":"import-statement"},{"path":"dist/chunk-MI76R42D.mjs","kind":"import-statement"}],"exports":["Context","sync","use","useRef"],"entryPoint":"src/core/index.ts","inputs":{"src/core/index.ts":{"bytesInOutput":0},"src/core/ref.ts":{"bytesInOutput":42}},"bytes":225},"dist/dom.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":27792},"dist/dom.mjs":{"imports":[{"path":"dist/chunk-TP5HUAIN.mjs","kind":"import-statement"},{"path":"dist/chunk-3AKECLKA.mjs","kind":"import-statement"},{"path":"dist/chunk-NRPWBHKP.mjs","kind":"import-statement"},{"path":"dist/chunk-MI76R42D.mjs","kind":"import-statement"},{"path":"dist/render-4HB53K66.mjs","kind":"dynamic-import"}],"exports":["ErrorBoundary","Portal","Suspense","f","hydrate","lazy","render"],"entryPoint":"src/dom/index.ts","inputs":{"src/dom/f.ts":{"bytesInOutput":70},"src/dom/index.ts":{"bytesInOutput":0},"src/dom/hydrate.ts":{"bytesInOutput":2734},"src/dom/components/Portal.tsx":{"bytesInOutput":500},"src/dom/components/index.ts":{"bytesInOutput":0},"src/dom/components/suspenseContext.ts":{"bytesInOutput":84},"src/dom/components/Suspense.tsx":{"bytesInOutput":293},"src/dom/components/ErrorBoundary.tsx":{"bytesInOutput":500},"src/dom/components/lazy.ts":{"bytesInOutput":249}},"bytes":4718},"dist/chunk-TP5HUAIN.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":23945},"dist/chunk-TP5HUAIN.mjs":{"imports":[{"path":"dist/chunk-NRPWBHKP.mjs","kind":"import-statement"},{"path":"dist/chunk-MI76R42D.mjs","kind":"import-statement"}],"exports":["a","b"],"inputs":{"src/dom/render.ts":{"bytesInOutput":4853}},"bytes":4965},"dist/server.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":12945},"dist/server.mjs":{"imports":[{"path":"dist/chunk-MI76R42D.mjs","kind":"import-statement"}],"exports":["getIsServer","renderToStaticMarkup","renderToString"],"entryPoint":"src/server/index.ts","inputs":{"src/server/escape.ts":{"bytesInOutput":157},"src/server/serverState.ts":{"bytesInOutput":186},"src/server/renderToString.ts":{"bytesInOutput":2125},"src/server/index.ts":{"bytesInOutput":0}},"bytes":2595},"dist/router.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":17333},"dist/router.mjs":{"imports":[{"path":"dist/chunk-3AKECLKA.mjs","kind":"import-statement"},{"path":"dist/chunk-NRPWBHKP.mjs","kind":"import-statement"},{"path":"dist/chunk-MI76R42D.mjs","kind":"import-statement"},{"path":"dist/chunk-J3542Z77.mjs","kind":"import-statement"}],"exports":["Link","Outlet","Route","Routes","useLocation","useNavigate","useParams","useQuery","useRouter"],"entryPoint":"src/router/index.ts","inputs":{"src/router/index.ts":{"bytesInOutput":0},"src/router/utils.ts":{"bytesInOutput":1073},"src/router/router.ts":{"bytesInOutput":859},"src/router/dom/Route.tsx":{"bytesInOutput":26},"src/router/dom/Routes.tsx":{"bytesInOutput":638},"src/router/dom/Outlet.tsx":{"bytesInOutput":244},"src/router/dom/Link.tsx":{"bytesInOutput":133}},"bytes":3259},"dist/canvas.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":12688},"dist/canvas.mjs":{"imports":[{"path":"dist/chunk-3AKECLKA.mjs","kind":"import-statement"},{"path":"dist/chunk-NRPWBHKP.mjs","kind":"import-statement"},{"path":"dist/chunk-MI76R42D.mjs","kind":"import-statement"},{"path":"dist/chunk-J3542Z77.mjs","kind":"import-statement"}],"exports":["Canvas","DrawArc","DrawCircle","DrawLine","DrawPath","DrawRect","DrawText"],"entryPoint":"src/canvas/index.ts","inputs":{"src/canvas/Canvas.tsx":{"bytesInOutput":1875},"src/canvas/index.ts":{"bytesInOutput":0},"src/canvas/dom/DrawRect.tsx":{"bytesInOutput":60},"src/canvas/dom/DrawCircle.tsx":{"bytesInOutput":62},"src/canvas/dom/DrawArc.tsx":{"bytesInOutput":59},"src/canvas/dom/DrawLine.tsx":{"bytesInOutput":60},"src/canvas/dom/DrawText.tsx":{"bytesInOutput":60},"src/canvas/dom/DrawPath.tsx":{"bytesInOutput":60}},"bytes":2489},"dist/interactive.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":15153},"dist/interactive.mjs":{"imports":[{"path":"dist/chunk-3AKECLKA.mjs","kind":"import-statement"},{"path":"dist/chunk-NRPWBHKP.mjs","kind":"import-statement"},{"path":"dist/chunk-MI76R42D.mjs","kind":"import-statement"}],"exports":["Keys","MouseButton","useKeyboard","useLoop","useMouse"],"entryPoint":"src/interactive/index.ts","inputs":{"src/interactive/loop.ts":{"bytesInOutput":459},"src/interactive/index.ts":{"bytesInOutput":0},"src/interactive/types.ts":{"bytesInOutput":701},"src/interactive/keyboard.ts":{"bytesInOutput":689},"src/interactive/mouse.ts":{"bytesInOutput":1150}},"bytes":3178},"dist/chunk-3AKECLKA.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":18028},"dist/chunk-3AKECLKA.mjs":{"imports":[{"path":"dist/chunk-NRPWBHKP.mjs","kind":"import-statement"},{"path":"dist/chunk-MI76R42D.mjs","kind":"import-statement"}],"exports":["a","b","c"],"inputs":{"src/core/reactive.ts":{"bytesInOutput":590},"src/core/devtools.ts":{"bytesInOutput":372},"src/core/use.ts":{"bytesInOutput":2043}},"bytes":3145},"dist/chunk-NRPWBHKP.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":4599},"dist/chunk-NRPWBHKP.mjs":{"imports":[],"exports":["a","b","c","d","e"],"inputs":{"src/core/lifecycle.ts":{"bytesInOutput":813}},"bytes":857},"dist/chunk-MI76R42D.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":4337},"dist/chunk-MI76R42D.mjs":{"imports":[],"exports":["a","b","c","d","e","f"],"inputs":{"src/core/hook.ts":{"bytesInOutput":227},"src/core/context.ts":{"bytesInOutput":307}},"bytes":585},"dist/jsx-runtime.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":93},"dist/jsx-runtime.mjs":{"imports":[{"path":"dist/chunk-J3542Z77.mjs","kind":"import-statement"}],"exports":["Fragment","jsx","jsxs"],"entryPoint":"src/jsx-runtime.ts","inputs":{},"bytes":82},"dist/chunk-J3542Z77.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":1297},"dist/chunk-J3542Z77.mjs":{"imports":[],"exports":["a","b","c"],"inputs":{"src/jsx-runtime.ts":{"bytesInOutput":183}},"bytes":213}}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":[],"names":[],"mappings":"","file":"render-
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":"","file":"render-4HB53K66.mjs"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
'use strict';var chunkPUXZJ7OV_js=require('./chunk-PUXZJ7OV.js');require('./chunk-3CKIHQIE.js'),require('./chunk-E6Z7AI4J.js');Object.defineProperty(exports,"reconcile",{enumerable:true,get:function(){return chunkPUXZJ7OV_js.a}});Object.defineProperty(exports,"render",{enumerable:true,get:function(){return chunkPUXZJ7OV_js.b}});//# sourceMappingURL=render-MJ2LCNSG.js.map
|
|
2
|
+
//# sourceMappingURL=render-MJ2LCNSG.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":[],"names":[],"mappings":"","file":"render-
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":"","file":"render-MJ2LCNSG.js"}
|
package/dist/router.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
'use strict';var
|
|
1
|
+
'use strict';var chunkACYN2UKT_js=require('./chunk-ACYN2UKT.js');require('./chunk-3CKIHQIE.js');var chunkE6Z7AI4J_js=require('./chunk-E6Z7AI4J.js'),chunkLHOIM4QY_js=require('./chunk-LHOIM4QY.js');function k(t){if(!t)return {};if(typeof URLSearchParams<"u"){let e=new URLSearchParams(t),r={};return e.forEach((n,o)=>r[o]=n),r}return t.substring(1).split("&").reduce((e,r)=>{let[n,o]=r.split("=");return n&&(e[decodeURIComponent(n)]=decodeURIComponent(o||"")),e},{})}function D(t){return !!(t.length>2048||t.includes("__proto__")||t.includes("constructor")||/^\s*javascript:/i.test(t))}function R(t){let e=[];return t.forEach(r=>{if(!r)return;let{path:n,component:o,children:i,beforeEnter:f}=r.props||{},u={path:n||"/",component:o,beforeEnter:f};if(i){let c=Array.isArray(i)?i:[i];u.children=R(c);}!u.children&&r.children&&r.children.length>0&&(u.children=R(r.children)),e.push(u);}),e}function E(t,e){for(let r of t){let n=r.path,o=T(n,e);if(o)return [{route:r,params:o.params,pathname:o.path}]}return null}function T(t,e){let r=t.split("/").filter(Boolean),n=e.split("/").filter(Boolean);if(r.length!==n.length)return null;let o={};for(let i=0;i<r.length;i++){let f=r[i],u=n[i];if(f.startsWith(":")){let c=f.slice(1);o[c]=u;}else if(f!==u)return null}return {params:o,path:e}}var L=new chunkE6Z7AI4J_js.c(null),p=new chunkE6Z7AI4J_js.c(0),U=()=>({pathname:"/",search:"",hash:"",query:{}}),w=()=>typeof window>"u"?U():{pathname:window.location.pathname,search:window.location.search,hash:window.location.hash,query:k(window.location.search)},l=null,y=null,N=false;function d(){if(l&&y)return [l,y];l=chunkACYN2UKT_js.a(w());let t=e=>{l&&(l.pathname=e.pathname,l.search=e.search,l.hash=e.hash,l.query=e.query);};return y=e=>{if(typeof window>"u")return;if(D(e)){console.error("[Flexium Router] Blocked navigation to unsafe path:",e);return}window.history.pushState({},"",e);let r=w();t(r);},typeof window<"u"&&!N&&(window.addEventListener("popstate",()=>{t(w());}),N=true),[l,y]}function m(){let[t]=chunkACYN2UKT_js.c(L);if(!t)throw new Error("useRouter() must be called within a <Routes> component");return t}function j(){let[,t]=d();return t}function q(){return m().params}function _(){let[t]=d();return t.query}function x(t){return null}function F(t){return t&&typeof t=="object"&&("type"in t||Array.isArray(t))}function Q(t){let[e,r]=d(),n=Array.isArray(t.children)?t.children:[t.children],o=n.filter(s=>F(s)&&s.type===x),i=n.filter(s=>!F(s)||s.type!==x),f=R(o),u=e.pathname,c=E(f,u)||[],A=c.length>0?c[c.length-1].params:{},S={location:e,navigate:r,matches:c,params:A},C=null;if(c.length>0){let s=c[0],P=s.route.component,g=u;s.route.beforeEnter?s.route.beforeEnter(s.params)!==false&&(C=chunkLHOIM4QY_js.a(p.Provider,{value:1,key:g,children:chunkLHOIM4QY_js.a(P,{params:s.params,key:g})})):C=chunkLHOIM4QY_js.a(p.Provider,{value:1,key:g,children:chunkLHOIM4QY_js.a(P,{params:s.params,key:g})});}return chunkLHOIM4QY_js.a(L.Provider,{value:S,children:[...i,C]})}function B(){let t=m(),[e]=chunkACYN2UKT_js.c(p),r=e??0,[n]=chunkACYN2UKT_js.c(()=>t.matches);if(r>=n.length)return null;let o=n[r],i=o.route.component;return o.route.beforeEnter&&o.route.beforeEnter(o.params)===false?null:chunkLHOIM4QY_js.a(p.Provider,{value:r+1,children:chunkLHOIM4QY_js.a(i,{params:o.params})})}function M(t){let e=m();return chunkLHOIM4QY_js.a("a",{href:t.to,class:t.class,onclick:r=>{r.preventDefault(),e.navigate(t.to);},children:t.children})}exports.Link=M;exports.Outlet=B;exports.Route=x;exports.Routes=Q;exports.useLocation=d;exports.useNavigate=j;exports.useParams=q;exports.useQuery=_;exports.useRouter=m;//# sourceMappingURL=router.js.map
|
|
2
2
|
//# sourceMappingURL=router.js.map
|
package/dist/router.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/router/utils.ts","../src/router/router.ts","../src/router/dom/Route.tsx","../src/router/dom/Routes.tsx","../src/router/dom/Outlet.tsx","../src/router/dom/Link.tsx"],"names":["parseQuery","search","params","result","value","key","accumulator","part","isUnsafePath","path","createRoutesFromChildren","children","routes","child","component","subChildren","beforeEnter","route","nestedChildren","matchRoutes","locationPathname","routePath","matchResult","matchPath","locationPath","routeSegments","locationSegments","routeSegment","locationSegment","RouterCtx","createContext","RouteDepthCtx","getDefaultLocation","getCurrentLocation","globalLocation","globalNavigate","popstateListenerAttached","useLocation","reactive","updateLocation","newLocation","useRouter","routerContext","useContext","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","use","depth","match","Link","event"],"mappings":"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","file":"router.js","sourcesContent":["import { RouteDefinition, RouteMatch } from './types'\n\n// Simple query parser (native URLSearchParams fallback) - internal use only\nfunction parseQuery(search: string): Record<string, string> {\n if (!search) return {}\n if (typeof URLSearchParams !== 'undefined') {\n const params = new URLSearchParams(search)\n const result: Record<string, string> = {}\n params.forEach((value, key) => result[key] = value)\n return result\n }\n return search\n .substring(1)\n .split('&')\n .reduce((accumulator, part) => {\n const [key, value] = part.split('=')\n if (key) accumulator[decodeURIComponent(key)] = decodeURIComponent(value || '')\n return accumulator\n }, {} as Record<string, string>)\n}\n\nfunction isUnsafePath(path: string): boolean {\n // Prevent prototype pollution or massive strings\n if (path.length > 2048) return true\n if (path.includes('__proto__') || path.includes('constructor')) return true\n // Basic XSS check for javascript: protocol\n if (/^\\s*javascript:/i.test(path)) return true\n return false\n}\n\n// Convert children FNodes to RouteDefinitions - internal use only\nfunction createRoutesFromChildren(children: any[]): RouteDefinition[] {\n const routes: RouteDefinition[] = []\n\n children.forEach(child => {\n if (!child) return\n\n // Assuming child is an FNode-like object (config)\n // In Flexium, Route component returns null, but 'createNode' isn't called here.\n // We are traversing the props passed to Router.\n\n const { path, component, children: subChildren, beforeEnter } = child.props || {}\n\n const route: RouteDefinition = {\n path: path || '/',\n component: component,\n beforeEnter\n }\n\n if (subChildren) {\n // If subChildren is array\n const nestedChildren = Array.isArray(subChildren) ? subChildren : [subChildren]\n // We expect the children of a Route to be other Routes\n // However, the 'children' prop in JSX might be the Route components themselves.\n route.children = createRoutesFromChildren(nestedChildren)\n }\n\n // Also check child.children if props.children is empty (direct FNode structure)\n if (!route.children && child.children && child.children.length > 0) {\n route.children = createRoutesFromChildren(child.children)\n }\n\n routes.push(route)\n })\n return routes\n}\n\n// Simple Matcher - internal use only\nfunction matchRoutes(routes: RouteDefinition[], locationPathname: string): RouteMatch[] | null {\n // We want to find the best matching branch\n\n for (const route of routes) {\n // 1. Match current segment\n // Simple exact match or parameter match logic needed?\n // Let's implement simple param matching: /user/:id\n\n const routePath = route.path\n\n const matchResult = matchPath(routePath, locationPathname)\n if (matchResult) {\n return [{ route, params: matchResult.params, pathname: matchResult.path }]\n }\n }\n return null\n}\n\nfunction matchPath(routePath: string, locationPath: string) {\n // 1. Split into segments\n const routeSegments = routePath.split('/').filter(Boolean)\n const locationSegments = locationPath.split('/').filter(Boolean)\n\n if (routeSegments.length !== locationSegments.length) return null\n\n const params: Record<string, string> = {}\n\n for (let i = 0; i < routeSegments.length; i++) {\n const routeSegment = routeSegments[i]\n const locationSegment = locationSegments[i]\n\n if (routeSegment.startsWith(':')) {\n const key = routeSegment.slice(1)\n params[key] = locationSegment\n } else if (routeSegment !== locationSegment) {\n return null\n }\n }\n\n return { params, path: locationPath }\n}\n\n// Export only what's needed by other router files\nexport { parseQuery, isUnsafePath, createRoutesFromChildren, matchRoutes }\n","import { reactive } from '../core/reactive'\nimport { createContext, useContext } from '../core/context'\nimport type { Location, RouterContext } from './types'\nimport { parseQuery, isUnsafePath } from './utils'\n\n// Contexts\nexport const RouterCtx = createContext<RouterContext>(null as any)\nexport const RouteDepthCtx = createContext<number>(0)\n\n// Helper functions\nconst getDefaultLocation = (): Location => ({\n pathname: '/',\n search: '',\n hash: '',\n query: {},\n})\n\nconst getCurrentLocation = (): Location => {\n if (typeof window === 'undefined') {\n return getDefaultLocation()\n }\n return {\n pathname: window.location.pathname,\n search: window.location.search,\n hash: window.location.hash,\n query: parseQuery(window.location.search),\n }\n}\n\n// Global singleton location state\nlet globalLocation: Location | null = null\nlet globalNavigate: ((path: string) => void) | null = null\nlet popstateListenerAttached = false\n\n// Create location state and navigation (singleton pattern)\nexport function useLocation(): [Location, (path: string) => void] {\n // Return existing singleton if already created\n if (globalLocation && globalNavigate) {\n return [globalLocation, globalNavigate]\n }\n\n // Create a reactive location object (only once)\n globalLocation = reactive<Location>(getCurrentLocation())\n\n const updateLocation = (newLocation: Location) => {\n if (!globalLocation) return\n globalLocation.pathname = newLocation.pathname\n globalLocation.search = newLocation.search\n globalLocation.hash = newLocation.hash\n globalLocation.query = newLocation.query\n }\n\n globalNavigate = (path: string) => {\n if (typeof window === 'undefined') return\n if (isUnsafePath(path)) {\n console.error('[Flexium Router] Blocked navigation to unsafe path:', path)\n return\n }\n window.history.pushState({}, '', path)\n const newLocation = getCurrentLocation()\n updateLocation(newLocation)\n }\n\n // Listen to popstate (only once)\n if (typeof window !== 'undefined' && !popstateListenerAttached) {\n window.addEventListener('popstate', () => {\n updateLocation(getCurrentLocation())\n })\n popstateListenerAttached = true\n }\n\n return [globalLocation, globalNavigate]\n}\n\n// Router hook - returns full router context\nexport function useRouter(): RouterContext {\n const routerContext = useContext(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'\nimport { RouterCtx, RouteDepthCtx, useLocation } from '../router'\nimport { createRoutesFromChildren, matchRoutes } from '../utils'\nimport { Route } from './Route'\n\nfunction isFNode(node: any): node is FNode {\n return node && typeof node === 'object' && ('type' in node || Array.isArray(node))\n}\n\nexport function Routes(props: { children: FNodeChild }) {\n const [currentLocation, navigate] = useLocation()\n\n // Parse children to find <Route> definitions and other content\n let childrenList: any[] = Array.isArray(props.children) ? props.children : [props.children]\n\n // Separate routes from other children (like Nav components)\n const routeNodes = childrenList.filter(child => isFNode(child) && child.type === Route)\n const otherChildren = childrenList.filter(child => !isFNode(child) || child.type !== Route)\n\n // Create route definitions\n const routeDefinitions = createRoutesFromChildren(routeNodes)\n\n // DIRECT access to currentLocation.pathname\n // This should trigger reactive tracking in the component's effect context\n const currentPath = currentLocation.pathname\n const matches = matchRoutes(routeDefinitions, currentPath) || []\n const params = matches.length > 0 ? matches[matches.length - 1].params : {}\n\n const routerContext = {\n location: currentLocation,\n navigate,\n matches: matches,\n params: params\n }\n\n // Render matched component\n let matchedContent: FNodeChild = null\n\n if (matches.length > 0) {\n const rootMatch = matches[0]\n const Component = rootMatch.route.component\n\n // Use pathname as key to force re-mount on route change\n const routeKey = currentPath\n\n // Guard Check\n if (rootMatch.route.beforeEnter) {\n const result = rootMatch.route.beforeEnter(rootMatch.params)\n if (result !== false) {\n matchedContent = f(RouteDepthCtx.Provider, {\n value: 1,\n key: routeKey,\n children: f(Component, { params: rootMatch.params, key: routeKey })\n })\n }\n } else {\n matchedContent = f(RouteDepthCtx.Provider, {\n value: 1,\n key: routeKey,\n children: f(Component, { params: rootMatch.params, key: routeKey })\n })\n }\n }\n\n return f(RouterCtx.Provider, {\n value: routerContext,\n children: [...otherChildren, matchedContent]\n })\n}\n","import { use } from '../../core/use'\nimport { jsx as f } from '../../jsx-runtime'\nimport { RouteDepthCtx, useRouter } from '../router'\n\nexport function Outlet() {\n const routerContext = useRouter()\n const [depthValue] = use(RouteDepthCtx)\n const depth = depthValue ?? 0\n\n const [matches] = use(() => routerContext.matches)\n\n if (depth >= matches.length) return null\n\n const match = matches[depth]\n const Component = match.route.component\n\n // Guard\n if (match.route.beforeEnter) {\n if (match.route.beforeEnter(match.params) === false) return null\n }\n\n // Render next level\n return f(RouteDepthCtx.Provider, {\n value: depth + 1,\n children: f(Component, { params: match.params })\n })\n}\n","import { jsx as f } from '../../jsx-runtime'\nimport type { LinkProps } from '../types'\nimport { useRouter } from '../router'\n\nexport function Link(props: LinkProps) {\n const routerContext = useRouter()\n return f('a', {\n href: props.to,\n class: props.class,\n onclick: (event: Event) => {\n event.preventDefault()\n routerContext.navigate(props.to)\n },\n children: props.children\n })\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/router/utils.ts","../src/router/router.ts","../src/router/dom/Route.tsx","../src/router/dom/Routes.tsx","../src/router/dom/Outlet.tsx","../src/router/dom/Link.tsx"],"names":["parseQuery","search","params","result","value","key","accumulator","part","isUnsafePath","path","createRoutesFromChildren","children","routes","child","component","subChildren","beforeEnter","route","nestedChildren","matchRoutes","locationPathname","routePath","matchResult","matchPath","locationPath","routeSegments","locationSegments","routeSegment","locationSegment","RouterCtx","Context","RouteDepthCtx","getDefaultLocation","getCurrentLocation","globalLocation","globalNavigate","popstateListenerAttached","useLocation","reactive","updateLocation","newLocation","useRouter","routerContext","use","useNavigate","navigate","useParams","useQuery","location","Route","_props","isFNode","node","Routes","props","currentLocation","childrenList","routeNodes","otherChildren","routeDefinitions","currentPath","matches","matchedContent","rootMatch","Component","routeKey","jsx","Outlet","depthValue","depth","match","Link","event"],"mappings":"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","file":"router.js","sourcesContent":["import { RouteDefinition, RouteMatch } from './types'\n\n// Simple query parser (native URLSearchParams fallback) - internal use only\nfunction parseQuery(search: string): Record<string, string> {\n if (!search) return {}\n if (typeof URLSearchParams !== 'undefined') {\n const params = new URLSearchParams(search)\n const result: Record<string, string> = {}\n params.forEach((value, key) => result[key] = value)\n return result\n }\n return search\n .substring(1)\n .split('&')\n .reduce((accumulator, part) => {\n const [key, value] = part.split('=')\n if (key) accumulator[decodeURIComponent(key)] = decodeURIComponent(value || '')\n return accumulator\n }, {} as Record<string, string>)\n}\n\nfunction isUnsafePath(path: string): boolean {\n // Prevent prototype pollution or massive strings\n if (path.length > 2048) return true\n if (path.includes('__proto__') || path.includes('constructor')) return true\n // Basic XSS check for javascript: protocol\n if (/^\\s*javascript:/i.test(path)) return true\n return false\n}\n\n// Convert children FNodes to RouteDefinitions - internal use only\nfunction createRoutesFromChildren(children: any[]): RouteDefinition[] {\n const routes: RouteDefinition[] = []\n\n children.forEach(child => {\n if (!child) return\n\n // Assuming child is an FNode-like object (config)\n // In Flexium, Route component returns null, but 'createNode' isn't called here.\n // We are traversing the props passed to Router.\n\n const { path, component, children: subChildren, beforeEnter } = child.props || {}\n\n const route: RouteDefinition = {\n path: path || '/',\n component: component,\n beforeEnter\n }\n\n if (subChildren) {\n // If subChildren is array\n const nestedChildren = Array.isArray(subChildren) ? subChildren : [subChildren]\n // We expect the children of a Route to be other Routes\n // However, the 'children' prop in JSX might be the Route components themselves.\n route.children = createRoutesFromChildren(nestedChildren)\n }\n\n // Also check child.children if props.children is empty (direct FNode structure)\n if (!route.children && child.children && child.children.length > 0) {\n route.children = createRoutesFromChildren(child.children)\n }\n\n routes.push(route)\n })\n return routes\n}\n\n// Simple Matcher - internal use only\nfunction matchRoutes(routes: RouteDefinition[], locationPathname: string): RouteMatch[] | null {\n // We want to find the best matching branch\n\n for (const route of routes) {\n // 1. Match current segment\n // Simple exact match or parameter match logic needed?\n // Let's implement simple param matching: /user/:id\n\n const routePath = route.path\n\n const matchResult = matchPath(routePath, locationPathname)\n if (matchResult) {\n return [{ route, params: matchResult.params, pathname: matchResult.path }]\n }\n }\n return null\n}\n\nfunction matchPath(routePath: string, locationPath: string) {\n // 1. Split into segments\n const routeSegments = routePath.split('/').filter(Boolean)\n const locationSegments = locationPath.split('/').filter(Boolean)\n\n if (routeSegments.length !== locationSegments.length) return null\n\n const params: Record<string, string> = {}\n\n for (let i = 0; i < routeSegments.length; i++) {\n const routeSegment = routeSegments[i]\n const locationSegment = locationSegments[i]\n\n if (routeSegment.startsWith(':')) {\n const key = routeSegment.slice(1)\n params[key] = locationSegment\n } else if (routeSegment !== locationSegment) {\n return null\n }\n }\n\n return { params, path: locationPath }\n}\n\n// Export only what's needed by other router files\nexport { parseQuery, isUnsafePath, createRoutesFromChildren, matchRoutes }\n","import { reactive } from '../core/reactive'\nimport { Context } from '../core/context'\nimport { use } from '../core/use'\nimport type { Location, RouterContext } from './types'\nimport { parseQuery, isUnsafePath } from './utils'\n\n// Contexts\nexport const RouterCtx = new Context<RouterContext>(null as any)\nexport const RouteDepthCtx = new Context<number>(0)\n\n// Helper functions\nconst getDefaultLocation = (): Location => ({\n pathname: '/',\n search: '',\n hash: '',\n query: {},\n})\n\nconst getCurrentLocation = (): Location => {\n if (typeof window === 'undefined') {\n return getDefaultLocation()\n }\n return {\n pathname: window.location.pathname,\n search: window.location.search,\n hash: window.location.hash,\n query: parseQuery(window.location.search),\n }\n}\n\n// Global singleton location state\nlet globalLocation: Location | null = null\nlet globalNavigate: ((path: string) => void) | null = null\nlet popstateListenerAttached = false\n\n// Create location state and navigation (singleton pattern)\nexport function useLocation(): [Location, (path: string) => void] {\n // Return existing singleton if already created\n if (globalLocation && globalNavigate) {\n return [globalLocation, globalNavigate]\n }\n\n // Create a reactive location object (only once)\n globalLocation = reactive<Location>(getCurrentLocation())\n\n const updateLocation = (newLocation: Location) => {\n if (!globalLocation) return\n globalLocation.pathname = newLocation.pathname\n globalLocation.search = newLocation.search\n globalLocation.hash = newLocation.hash\n globalLocation.query = newLocation.query\n }\n\n globalNavigate = (path: string) => {\n if (typeof window === 'undefined') return\n if (isUnsafePath(path)) {\n console.error('[Flexium Router] Blocked navigation to unsafe path:', path)\n return\n }\n window.history.pushState({}, '', path)\n const newLocation = getCurrentLocation()\n updateLocation(newLocation)\n }\n\n // Listen to popstate (only once)\n if (typeof window !== 'undefined' && !popstateListenerAttached) {\n window.addEventListener('popstate', () => {\n updateLocation(getCurrentLocation())\n })\n popstateListenerAttached = true\n }\n\n return [globalLocation, globalNavigate]\n}\n\n// Router hook - returns full router context\nexport function useRouter(): RouterContext {\n const [routerContext] = use(RouterCtx)\n if (!routerContext) {\n throw new Error('useRouter() must be called within a <Routes> component')\n }\n return routerContext\n}\n\n// Navigate hook - returns navigate function\nexport function useNavigate(): (path: string) => void {\n const [, navigate] = useLocation()\n return navigate\n}\n\n// Params hook - returns route params\nexport function useParams<T extends Record<string, string> = Record<string, string>>(): T {\n const router = useRouter()\n return router.params as T\n}\n\n// Query hook - returns query params\nexport function useQuery<T extends Record<string, string> = Record<string, string>>(): T {\n const [location] = useLocation()\n return location.query as T\n}\n","import type { RouteProps } from '../types'\n\nexport function Route(_props: RouteProps) {\n return null\n}\n","import { jsx as f } from '../../jsx-runtime'\nimport type { FNode, FNodeChild } from '../../dom/types'\nimport { RouterCtx, RouteDepthCtx, useLocation } from '../router'\nimport { createRoutesFromChildren, matchRoutes } from '../utils'\nimport { Route } from './Route'\n\nfunction isFNode(node: any): node is FNode {\n return node && typeof node === 'object' && ('type' in node || Array.isArray(node))\n}\n\nexport function Routes(props: { children: FNodeChild }) {\n const [currentLocation, navigate] = useLocation()\n\n // Parse children to find <Route> definitions and other content\n let childrenList: any[] = Array.isArray(props.children) ? props.children : [props.children]\n\n // Separate routes from other children (like Nav components)\n const routeNodes = childrenList.filter(child => isFNode(child) && child.type === Route)\n const otherChildren = childrenList.filter(child => !isFNode(child) || child.type !== Route)\n\n // Create route definitions\n const routeDefinitions = createRoutesFromChildren(routeNodes)\n\n // DIRECT access to currentLocation.pathname\n // This should trigger reactive tracking in the component's effect context\n const currentPath = currentLocation.pathname\n const matches = matchRoutes(routeDefinitions, currentPath) || []\n const params = matches.length > 0 ? matches[matches.length - 1].params : {}\n\n const routerContext = {\n location: currentLocation,\n navigate,\n matches: matches,\n params: params\n }\n\n // Render matched component\n let matchedContent: FNodeChild = null\n\n if (matches.length > 0) {\n const rootMatch = matches[0]\n const Component = rootMatch.route.component\n\n // Use pathname as key to force re-mount on route change\n const routeKey = currentPath\n\n // Guard Check\n if (rootMatch.route.beforeEnter) {\n const result = rootMatch.route.beforeEnter(rootMatch.params)\n if (result !== false) {\n matchedContent = f(RouteDepthCtx.Provider, {\n value: 1,\n key: routeKey,\n children: f(Component, { params: rootMatch.params, key: routeKey })\n })\n }\n } else {\n matchedContent = f(RouteDepthCtx.Provider, {\n value: 1,\n key: routeKey,\n children: f(Component, { params: rootMatch.params, key: routeKey })\n })\n }\n }\n\n return f(RouterCtx.Provider, {\n value: routerContext,\n children: [...otherChildren, matchedContent]\n })\n}\n","import { use } from '../../core/use'\nimport { jsx as f } from '../../jsx-runtime'\nimport { RouteDepthCtx, useRouter } from '../router'\n\nexport function Outlet() {\n const routerContext = useRouter()\n const [depthValue] = use(RouteDepthCtx)\n const depth = depthValue ?? 0\n\n const [matches] = use(() => routerContext.matches)\n\n if (depth >= matches.length) return null\n\n const match = matches[depth]\n const Component = match.route.component\n\n // Guard\n if (match.route.beforeEnter) {\n if (match.route.beforeEnter(match.params) === false) return null\n }\n\n // Render next level\n return f(RouteDepthCtx.Provider, {\n value: depth + 1,\n children: f(Component, { params: match.params })\n })\n}\n","import { jsx as f } from '../../jsx-runtime'\nimport type { LinkProps } from '../types'\nimport { useRouter } from '../router'\n\nexport function Link(props: LinkProps) {\n const routerContext = useRouter()\n return f('a', {\n href: props.to,\n class: props.class,\n onclick: (event: Event) => {\n event.preventDefault()\n routerContext.navigate(props.to)\n },\n children: props.children\n })\n}\n"]}
|