flexium 0.12.13 → 0.12.17

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (101) hide show
  1. package/README.md +149 -92
  2. package/dist/canvas.d.cts +14 -13
  3. package/dist/canvas.d.ts +14 -13
  4. package/dist/canvas.js +1 -1
  5. package/dist/canvas.js.map +1 -1
  6. package/dist/canvas.mjs +1 -1
  7. package/dist/canvas.mjs.map +1 -1
  8. package/dist/chunk-3DKZ2J4D.mjs +2 -0
  9. package/dist/chunk-3DKZ2J4D.mjs.map +1 -0
  10. package/dist/chunk-5PNH2ARD.mjs +2 -0
  11. package/dist/chunk-5PNH2ARD.mjs.map +1 -0
  12. package/dist/{chunk-7BXR4ZFD.js → chunk-6VIRXD2Y.js} +2 -2
  13. package/dist/chunk-6VIRXD2Y.js.map +1 -0
  14. package/dist/chunk-6Z33DLMI.js +2 -0
  15. package/dist/chunk-6Z33DLMI.js.map +1 -0
  16. package/dist/chunk-E75BJDOQ.mjs +2 -0
  17. package/dist/chunk-E75BJDOQ.mjs.map +1 -0
  18. package/dist/chunk-IWFEXW4F.mjs +2 -0
  19. package/dist/chunk-IWFEXW4F.mjs.map +1 -0
  20. package/dist/chunk-JY6CE6RN.mjs +2 -0
  21. package/dist/chunk-JY6CE6RN.mjs.map +1 -0
  22. package/dist/chunk-LTT43APF.js +2 -0
  23. package/dist/chunk-LTT43APF.js.map +1 -0
  24. package/dist/chunk-PSKDIB7J.js +2 -0
  25. package/dist/chunk-PSKDIB7J.js.map +1 -0
  26. package/dist/chunk-UWFVCKRU.js +2 -0
  27. package/dist/chunk-UWFVCKRU.js.map +1 -0
  28. package/dist/chunk-WGKD63GN.mjs +2 -0
  29. package/dist/chunk-WGKD63GN.mjs.map +1 -0
  30. package/dist/chunk-YWTD32NA.js +2 -0
  31. package/dist/chunk-YWTD32NA.js.map +1 -0
  32. package/dist/core.d.cts +91 -15
  33. package/dist/core.d.ts +91 -15
  34. package/dist/core.js +1 -1
  35. package/dist/core.js.map +1 -1
  36. package/dist/core.mjs +1 -1
  37. package/dist/core.mjs.map +1 -1
  38. package/dist/dom.d.cts +154 -9
  39. package/dist/dom.d.ts +154 -9
  40. package/dist/dom.js +1 -1
  41. package/dist/dom.js.map +1 -1
  42. package/dist/dom.mjs +1 -1
  43. package/dist/dom.mjs.map +1 -1
  44. package/dist/index.d.cts +1 -1
  45. package/dist/index.d.ts +1 -1
  46. package/dist/index.js +1 -1
  47. package/dist/index.js.map +1 -1
  48. package/dist/index.mjs +1 -1
  49. package/dist/index.mjs.map +1 -1
  50. package/dist/interactive.d.cts +17 -16
  51. package/dist/interactive.d.ts +17 -16
  52. package/dist/interactive.js +1 -1
  53. package/dist/interactive.js.map +1 -1
  54. package/dist/interactive.mjs +1 -1
  55. package/dist/interactive.mjs.map +1 -1
  56. package/dist/jsx-dev-runtime.d.cts +1 -1
  57. package/dist/jsx-dev-runtime.d.ts +1 -1
  58. package/dist/jsx-runtime.d.cts +1 -1
  59. package/dist/jsx-runtime.d.ts +1 -1
  60. package/dist/metafile-cjs.json +1 -1
  61. package/dist/metafile-esm.json +1 -1
  62. package/dist/render-QZAFAGIM.js +2 -0
  63. package/dist/render-QZAFAGIM.js.map +1 -0
  64. package/dist/render-UIWHIMS2.mjs +2 -0
  65. package/dist/render-UIWHIMS2.mjs.map +1 -0
  66. package/dist/router.d.cts +1 -1
  67. package/dist/router.d.ts +1 -1
  68. package/dist/router.js +1 -1
  69. package/dist/router.js.map +1 -1
  70. package/dist/router.mjs +1 -1
  71. package/dist/router.mjs.map +1 -1
  72. package/dist/server.d.cts +17 -0
  73. package/dist/server.d.ts +17 -0
  74. package/dist/server.js +2 -0
  75. package/dist/server.js.map +1 -0
  76. package/dist/server.mjs +2 -0
  77. package/dist/server.mjs.map +1 -0
  78. package/dist/types-CxlS2F2j.d.cts +19 -0
  79. package/dist/types-CxlS2F2j.d.ts +19 -0
  80. package/dist/types-y2GGaXXk.d.cts +9 -0
  81. package/dist/types-y2GGaXXk.d.ts +9 -0
  82. package/package.json +6 -1
  83. package/dist/chunk-44RZHCII.mjs +0 -2
  84. package/dist/chunk-44RZHCII.mjs.map +0 -1
  85. package/dist/chunk-7BXR4ZFD.js.map +0 -1
  86. package/dist/chunk-APAMPY43.js +0 -2
  87. package/dist/chunk-APAMPY43.js.map +0 -1
  88. package/dist/chunk-CPJRQL2C.mjs +0 -2
  89. package/dist/chunk-CPJRQL2C.mjs.map +0 -1
  90. package/dist/chunk-ECB5HZOQ.mjs +0 -2
  91. package/dist/chunk-ECB5HZOQ.mjs.map +0 -1
  92. package/dist/chunk-ENWGYQNU.js +0 -2
  93. package/dist/chunk-ENWGYQNU.js.map +0 -1
  94. package/dist/chunk-IA4FEBFE.js +0 -2
  95. package/dist/chunk-IA4FEBFE.js.map +0 -1
  96. package/dist/chunk-LUREDEUB.mjs +0 -2
  97. package/dist/chunk-LUREDEUB.mjs.map +0 -1
  98. package/dist/chunk-LUW7DIEW.js +0 -2
  99. package/dist/chunk-LUW7DIEW.js.map +0 -1
  100. package/dist/chunk-S6WF3XNF.mjs +0 -2
  101. package/dist/chunk-S6WF3XNF.mjs.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/interactive/loop.ts","../src/interactive/keyboard.ts","../src/interactive/mouse.ts"],"names":["loop","callbacks","fixedFps","onUpdate","onFixedUpdate","onRender","fixedDelta","maxDelta","running","lastTime","accumulator","fps","frameCount","fpsTime","rafId","currentTime","delta","alpha","Keys","keyboard","target","pressedKeys","setPressedKeys","state","justPressedKeys","setJustPressedKeys","justReleasedKeys","setJustReleasedKeys","handleKeyDown","e","key","currentPressed","newPressed","currentJustPressed","newJustPressed","handleKeyUp","currentJustReleased","newJustReleased","MouseButton","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.js","sourcesContent":["export 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\nexport function loop(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","import { state } from '../core/state'\n\nexport enum Keys {\n // Arrow keys\n ArrowUp = 'ArrowUp',\n ArrowDown = 'ArrowDown',\n ArrowLeft = 'ArrowLeft',\n ArrowRight = 'ArrowRight',\n\n // WASD\n KeyW = 'KeyW',\n KeyA = 'KeyA',\n KeyS = 'KeyS',\n KeyD = 'KeyD',\n\n // Common keys\n Space = 'Space',\n Enter = 'Enter',\n Escape = 'Escape',\n Tab = 'Tab',\n\n // Modifiers\n ShiftLeft = 'ShiftLeft',\n ShiftRight = 'ShiftRight',\n ControlLeft = 'ControlLeft',\n ControlRight = 'ControlRight',\n AltLeft = 'AltLeft',\n AltRight = 'AltRight',\n\n // Numbers\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\n // Letters (additional common ones)\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\nexport function keyboard(target: EventTarget = window): KeyboardState {\n const [pressedKeys, setPressedKeys] = state<Set<string>>(new Set<string>(), { key: ['keyboard', 'pressed'] })\n const [justPressedKeys, setJustPressedKeys] = state<Set<string>>(new Set<string>(), { key: ['keyboard', 'justPressed'] })\n const [justReleasedKeys, setJustReleasedKeys] = state<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 { state } from '../core/state'\n\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\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] = state({ x: 0, y: 0 }, { key: ['mouse', 'position'] })\n const [delta, setDelta] = state({ x: 0, y: 0 }, { key: ['mouse', 'delta'] })\n const [wheelDelta, setWheelDelta] = state(0, { key: ['mouse', 'wheel'] })\n const [buttons, setButtons] = state<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":["loop","callbacks","fixedFps","onUpdate","onFixedUpdate","onRender","fixedDelta","maxDelta","running","lastTime","accumulator","fps","frameCount","fpsTime","rafId","currentTime","delta","alpha","Keys","MouseButton","keyboard","target","pressedKeys","setPressedKeys","state","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.js","sourcesContent":["import type { LoopCallbacks, Loop } from './types'\n\nexport type { LoopCallbacks, Loop }\n\nexport function loop(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 { state } from '../core/state'\nimport { Keys, type KeyboardState } from './types'\n\nexport { Keys, type KeyboardState }\n\nexport function keyboard(target: EventTarget = window): KeyboardState {\n const [pressedKeys, setPressedKeys] = state<Set<string>>(new Set<string>(), { key: ['keyboard', 'pressed'] })\n const [justPressedKeys, setJustPressedKeys] = state<Set<string>>(new Set<string>(), { key: ['keyboard', 'justPressed'] })\n const [justReleasedKeys, setJustReleasedKeys] = state<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 { state } from '../core/state'\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] = state({ x: 0, y: 0 }, { key: ['mouse', 'position'] })\n const [delta, setDelta] = state({ x: 0, y: 0 }, { key: ['mouse', 'delta'] })\n const [wheelDelta, setWheelDelta] = state(0, { key: ['mouse', 'wheel'] })\n const [buttons, setButtons] = state<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,2 +1,2 @@
1
- import {a}from'./chunk-ECB5HZOQ.mjs';import'./chunk-CPJRQL2C.mjs';import'./chunk-44RZHCII.mjs';function F(a){let{fixedFps:n=60,onUpdate:b,onFixedUpdate:r,onRender:w}=a,g=1/n,S=.25,l=false,m=0,t=0,s=0,i=0,u=0,o=null;function d(h){if(!l)return;let E=Math.min((h-m)/1e3,S);if(m=h,b&&b(E),r)for(t+=E;t>=g;)r(g),t-=g;if(w){let y=t/g;w(y);}i++,h-u>=1e3&&(s=i,i=0,u=h),o=requestAnimationFrame(d);}return {start:()=>{l||(l=true,m=performance.now(),t=0,o=requestAnimationFrame(d));},stop:()=>{l=false,o!==null&&(cancelAnimationFrame(o),o=null);},isRunning:()=>l,getFps:()=>s}}var k=(e=>(e.ArrowUp="ArrowUp",e.ArrowDown="ArrowDown",e.ArrowLeft="ArrowLeft",e.ArrowRight="ArrowRight",e.KeyW="KeyW",e.KeyA="KeyA",e.KeyS="KeyS",e.KeyD="KeyD",e.Space="Space",e.Enter="Enter",e.Escape="Escape",e.Tab="Tab",e.ShiftLeft="ShiftLeft",e.ShiftRight="ShiftRight",e.ControlLeft="ControlLeft",e.ControlRight="ControlRight",e.AltLeft="AltLeft",e.AltRight="AltRight",e.Digit0="Digit0",e.Digit1="Digit1",e.Digit2="Digit2",e.Digit3="Digit3",e.Digit4="Digit4",e.Digit5="Digit5",e.Digit6="Digit6",e.Digit7="Digit7",e.Digit8="Digit8",e.Digit9="Digit9",e.KeyE="KeyE",e.KeyQ="KeyQ",e.KeyR="KeyR",e.KeyF="KeyF",e))(k||{});function C(a$1=window){let[n,b]=a(new Set,{key:["keyboard","pressed"]}),[r,w]=a(new Set,{key:["keyboard","justPressed"]}),[g,S]=a(new Set,{key:["keyboard","justReleased"]}),l=t=>{let s=t.code,i=n;if(!i.has(s)){let u=new Set(i);u.add(s),b(u);let o=r,d=new Set(o);d.add(s),w(d);}},m=t=>{let s=t.code,i=n,u=new Set(i);u.delete(s),b(u);let o=g,d=new Set(o);d.add(s),S(d);};return a$1.addEventListener("keydown",l),a$1.addEventListener("keyup",m),{isPressed:t=>n?.has(t)||false,isJustPressed:t=>r?.has(t)||false,isJustReleased:t=>g?.has(t)||false,getPressedKeys:()=>Array.from(n||[]),clearFrameState:()=>{w(new Set),S(new Set);},dispose:()=>{a$1.removeEventListener("keydown",l),a$1.removeEventListener("keyup",m);}}}var M=(r=>(r[r.Left=0]="Left",r[r.Middle=1]="Middle",r[r.Right=2]="Right",r))(M||{});function J(a$1={}){let n=a$1.target||window,b=typeof a$1.canvas=="function"?a$1.canvas:()=>a$1.canvas,[r,w]=a({x:0,y:0},{key:["mouse","position"]}),[g,S]=a({x:0,y:0},{key:["mouse","delta"]}),[l,m]=a(0,{key:["mouse","wheel"]}),[t,s]=a(new Set,{key:["mouse","buttons"]}),i=0,u=0,o=p=>{let f=p,D=b(),c=f.clientX,L=f.clientY;if(D){let R=D.getBoundingClientRect();c=f.clientX-R.left,L=f.clientY-R.top;}w({x:c,y:L}),S({x:c-i,y:L-u}),i=c,u=L;},d=p=>{let f=p.button,D=t,c=new Set(D);c.add(f),s(c);},h=p=>{let f=p.button,D=t,c=new Set(D);c.delete(f),s(c);},E=p=>{m(p.deltaY);};n.addEventListener("mousemove",o),n.addEventListener("mousedown",d),n.addEventListener("mouseup",h),n.addEventListener("wheel",E);let y=t,x=r,P=g,A=l;return {get x(){return x.x},get y(){return x.y},get deltaX(){return P.x},get deltaY(){return P.y},get wheelDelta(){return A},isPressed:p=>y?.has(p)||false,isLeftPressed:()=>y?.has(0)||false,isRightPressed:()=>y?.has(2)||false,isMiddlePressed:()=>y?.has(1)||false,clearFrameState:()=>{S({x:0,y:0}),m(0);},dispose:()=>{n.removeEventListener("mousemove",o),n.removeEventListener("mousedown",d),n.removeEventListener("mouseup",h),n.removeEventListener("wheel",E);}}}export{k as Keys,M as MouseButton,C as keyboard,F as loop,J as mouse};//# sourceMappingURL=interactive.mjs.map
1
+ import {a}from'./chunk-WGKD63GN.mjs';import'./chunk-JY6CE6RN.mjs';import'./chunk-IWFEXW4F.mjs';import'./chunk-5PNH2ARD.mjs';function F(a){let{fixedFps:n=60,onUpdate:v,onFixedUpdate:o,onRender:y}=a,p=1/n,S=.25,d=false,m=0,t=0,s=0,i=0,u=0,r=null;function l(w){if(!d)return;let D=Math.min((w-m)/1e3,S);if(m=w,v&&v(D),o)for(t+=D;t>=p;)o(p),t-=p;if(y){let h=t/p;y(h);}i++,w-u>=1e3&&(s=i,i=0,u=w),r=requestAnimationFrame(l);}return {start:()=>{d||(d=true,m=performance.now(),t=0,r=requestAnimationFrame(l));},stop:()=>{d=false,r!==null&&(cancelAnimationFrame(r),r=null);},isRunning:()=>d,getFps:()=>s}}var x=(e=>(e.ArrowUp="ArrowUp",e.ArrowDown="ArrowDown",e.ArrowLeft="ArrowLeft",e.ArrowRight="ArrowRight",e.KeyW="KeyW",e.KeyA="KeyA",e.KeyS="KeyS",e.KeyD="KeyD",e.Space="Space",e.Enter="Enter",e.Escape="Escape",e.Tab="Tab",e.ShiftLeft="ShiftLeft",e.ShiftRight="ShiftRight",e.ControlLeft="ControlLeft",e.ControlRight="ControlRight",e.AltLeft="AltLeft",e.AltRight="AltRight",e.Digit0="Digit0",e.Digit1="Digit1",e.Digit2="Digit2",e.Digit3="Digit3",e.Digit4="Digit4",e.Digit5="Digit5",e.Digit6="Digit6",e.Digit7="Digit7",e.Digit8="Digit8",e.Digit9="Digit9",e.KeyE="KeyE",e.KeyQ="KeyQ",e.KeyR="KeyR",e.KeyF="KeyF",e))(x||{}),k=(o=>(o[o.Left=0]="Left",o[o.Middle=1]="Middle",o[o.Right=2]="Right",o))(k||{});function C(a$1=window){let[n,v]=a(new Set,{key:["keyboard","pressed"]}),[o,y]=a(new Set,{key:["keyboard","justPressed"]}),[p,S]=a(new Set,{key:["keyboard","justReleased"]}),d=t=>{let s=t.code,i=n;if(!i.has(s)){let u=new Set(i);u.add(s),v(u);let r=o,l=new Set(r);l.add(s),y(l);}},m=t=>{let s=t.code,i=n,u=new Set(i);u.delete(s),v(u);let r=p,l=new Set(r);l.add(s),S(l);};return a$1.addEventListener("keydown",d),a$1.addEventListener("keyup",m),{isPressed:t=>n?.has(t)||false,isJustPressed:t=>o?.has(t)||false,isJustReleased:t=>p?.has(t)||false,getPressedKeys:()=>Array.from(n||[]),clearFrameState:()=>{y(new Set),S(new Set);},dispose:()=>{a$1.removeEventListener("keydown",d),a$1.removeEventListener("keyup",m);}}}function J(a$1={}){let n=a$1.target||window,v=typeof a$1.canvas=="function"?a$1.canvas:()=>a$1.canvas,[o,y]=a({x:0,y:0},{key:["mouse","position"]}),[p,S]=a({x:0,y:0},{key:["mouse","delta"]}),[d,m]=a(0,{key:["mouse","wheel"]}),[t,s]=a(new Set,{key:["mouse","buttons"]}),i=0,u=0,r=g=>{let f=g,L=v(),c=f.clientX,E=f.clientY;if(L){let M=L.getBoundingClientRect();c=f.clientX-M.left,E=f.clientY-M.top;}y({x:c,y:E}),S({x:c-i,y:E-u}),i=c,u=E;},l=g=>{let f=g.button,L=t,c=new Set(L);c.add(f),s(c);},w=g=>{let f=g.button,L=t,c=new Set(L);c.delete(f),s(c);},D=g=>{m(g.deltaY);};n.addEventListener("mousemove",r),n.addEventListener("mousedown",l),n.addEventListener("mouseup",w),n.addEventListener("wheel",D);let h=t,P=o,R=p,A=d;return {get x(){return P.x},get y(){return P.y},get deltaX(){return R.x},get deltaY(){return R.y},get wheelDelta(){return A},isPressed:g=>h?.has(g)||false,isLeftPressed:()=>h?.has(0)||false,isRightPressed:()=>h?.has(2)||false,isMiddlePressed:()=>h?.has(1)||false,clearFrameState:()=>{S({x:0,y:0}),m(0);},dispose:()=>{n.removeEventListener("mousemove",r),n.removeEventListener("mousedown",l),n.removeEventListener("mouseup",w),n.removeEventListener("wheel",D);}}}export{x as Keys,k as MouseButton,C as keyboard,F as loop,J as mouse};//# sourceMappingURL=interactive.mjs.map
2
2
  //# sourceMappingURL=interactive.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/interactive/loop.ts","../src/interactive/keyboard.ts","../src/interactive/mouse.ts"],"names":["loop","callbacks","fixedFps","onUpdate","onFixedUpdate","onRender","fixedDelta","maxDelta","running","lastTime","accumulator","fps","frameCount","fpsTime","rafId","currentTime","delta","alpha","Keys","keyboard","target","pressedKeys","setPressedKeys","state","justPressedKeys","setJustPressedKeys","justReleasedKeys","setJustReleasedKeys","handleKeyDown","e","key","currentPressed","newPressed","currentJustPressed","newJustPressed","handleKeyUp","currentJustReleased","newJustReleased","MouseButton","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":["export 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\nexport function loop(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","import { state } from '../core/state'\n\nexport enum Keys {\n // Arrow keys\n ArrowUp = 'ArrowUp',\n ArrowDown = 'ArrowDown',\n ArrowLeft = 'ArrowLeft',\n ArrowRight = 'ArrowRight',\n\n // WASD\n KeyW = 'KeyW',\n KeyA = 'KeyA',\n KeyS = 'KeyS',\n KeyD = 'KeyD',\n\n // Common keys\n Space = 'Space',\n Enter = 'Enter',\n Escape = 'Escape',\n Tab = 'Tab',\n\n // Modifiers\n ShiftLeft = 'ShiftLeft',\n ShiftRight = 'ShiftRight',\n ControlLeft = 'ControlLeft',\n ControlRight = 'ControlRight',\n AltLeft = 'AltLeft',\n AltRight = 'AltRight',\n\n // Numbers\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\n // Letters (additional common ones)\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\nexport function keyboard(target: EventTarget = window): KeyboardState {\n const [pressedKeys, setPressedKeys] = state<Set<string>>(new Set<string>(), { key: ['keyboard', 'pressed'] })\n const [justPressedKeys, setJustPressedKeys] = state<Set<string>>(new Set<string>(), { key: ['keyboard', 'justPressed'] })\n const [justReleasedKeys, setJustReleasedKeys] = state<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 { state } from '../core/state'\n\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\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] = state({ x: 0, y: 0 }, { key: ['mouse', 'position'] })\n const [delta, setDelta] = state({ x: 0, y: 0 }, { key: ['mouse', 'delta'] })\n const [wheelDelta, setWheelDelta] = state(0, { key: ['mouse', 'wheel'] })\n const [buttons, setButtons] = state<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":["loop","callbacks","fixedFps","onUpdate","onFixedUpdate","onRender","fixedDelta","maxDelta","running","lastTime","accumulator","fps","frameCount","fpsTime","rafId","currentTime","delta","alpha","Keys","MouseButton","keyboard","target","pressedKeys","setPressedKeys","state","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":"4HAIO,SAASA,CAAAA,CAAKC,EAAgC,CACnD,GAAM,CAAE,QAAA,CAAAC,CAAAA,CAAW,GAAI,QAAA,CAAAC,CAAAA,CAAU,cAAAC,CAAAA,CAAe,QAAA,CAAAC,CAAS,CAAA,CAAIJ,CAAAA,CAEvDK,EAAa,CAAA,CAAIJ,CAAAA,CACjBK,EAAW,GAAA,CAEbC,CAAAA,CAAU,MACVC,CAAAA,CAAW,CAAA,CACXC,EAAc,CAAA,CACdC,CAAAA,CAAM,EACNC,CAAAA,CAAa,CAAA,CACbC,EAAU,CAAA,CACVC,CAAAA,CAAuB,KAE3B,SAASd,CAAAA,CAAKe,EAAqB,CACjC,GAAI,CAACP,CAAAA,CAAS,OAGd,IAAMQ,CAAAA,CAAQ,IAAA,CAAK,GAAA,CAAA,CAAKD,EAAcN,CAAAA,EAAY,GAAA,CAAMF,CAAQ,CAAA,CAShE,GARAE,EAAWM,CAAAA,CAGPZ,CAAAA,EACFA,EAASa,CAAK,CAAA,CAIZZ,EAGF,IAFAM,CAAAA,EAAeM,EAERN,CAAAA,EAAeJ,CAAAA,EACpBF,EAAcE,CAAU,CAAA,CACxBI,GAAeJ,CAAAA,CAKnB,GAAID,EAAU,CACZ,IAAMY,EAAQP,CAAAA,CAAcJ,CAAAA,CAC5BD,EAASY,CAAK,EAChB,CAGAL,CAAAA,EAAAA,CACIG,CAAAA,CAAcF,GAAW,GAAA,GAC3BF,CAAAA,CAAMC,EACNA,CAAAA,CAAa,CAAA,CACbC,EAAUE,CAAAA,CAAAA,CAGZD,CAAAA,CAAQ,qBAAA,CAAsBd,CAAI,EACpC,CAEA,OAAO,CACL,KAAA,CAAO,IAAM,CACPQ,CAAAA,GACJA,EAAU,IAAA,CACVC,CAAAA,CAAW,YAAY,GAAA,EAAI,CAC3BC,EAAc,CAAA,CACdI,CAAAA,CAAQ,sBAAsBd,CAAI,CAAA,EACpC,EAEA,IAAA,CAAM,IAAM,CACVQ,CAAAA,CAAU,KAAA,CACNM,IAAU,IAAA,GACZ,oBAAA,CAAqBA,CAAK,CAAA,CAC1BA,CAAAA,CAAQ,MAEZ,CAAA,CAEA,SAAA,CAAW,IAAMN,CAAAA,CAEjB,MAAA,CAAQ,IAAMG,CAChB,CACF,CC7EO,IAAKO,CAAAA,CAAAA,CAAAA,CAAAA,GACRA,EAAA,OAAA,CAAU,SAAA,CACVA,CAAAA,CAAA,SAAA,CAAY,WAAA,CACZA,CAAAA,CAAA,UAAY,WAAA,CACZA,CAAAA,CAAA,WAAa,YAAA,CACbA,CAAAA,CAAA,KAAO,MAAA,CACPA,CAAAA,CAAA,KAAO,MAAA,CACPA,CAAAA,CAAA,KAAO,MAAA,CACPA,CAAAA,CAAA,KAAO,MAAA,CACPA,CAAAA,CAAA,MAAQ,OAAA,CACRA,CAAAA,CAAA,KAAA,CAAQ,OAAA,CACRA,CAAAA,CAAA,MAAA,CAAS,SACTA,CAAAA,CAAA,GAAA,CAAM,MACNA,CAAAA,CAAA,SAAA,CAAY,YACZA,CAAAA,CAAA,UAAA,CAAa,aACbA,CAAAA,CAAA,WAAA,CAAc,cACdA,CAAAA,CAAA,YAAA,CAAe,eACfA,CAAAA,CAAA,OAAA,CAAU,UACVA,CAAAA,CAAA,QAAA,CAAW,UAAA,CACXA,CAAAA,CAAA,MAAA,CAAS,QAAA,CACTA,EAAA,MAAA,CAAS,QAAA,CACTA,EAAA,MAAA,CAAS,QAAA,CACTA,EAAA,MAAA,CAAS,QAAA,CACTA,EAAA,MAAA,CAAS,QAAA,CACTA,EAAA,MAAA,CAAS,QAAA,CACTA,EAAA,MAAA,CAAS,QAAA,CACTA,EAAA,MAAA,CAAS,QAAA,CACTA,EAAA,MAAA,CAAS,QAAA,CACTA,EAAA,MAAA,CAAS,QAAA,CACTA,EAAA,IAAA,CAAO,MAAA,CACPA,EAAA,IAAA,CAAO,MAAA,CACPA,EAAA,IAAA,CAAO,MAAA,CACPA,EAAA,IAAA,CAAO,MAAA,CAhCCA,OAAA,EAAA,CAAA,CA6CAC,CAAAA,CAAAA,CAAAA,CAAAA,GACRA,IAAA,IAAA,CAAO,CAAA,CAAA,CAAP,MAAA,CACAA,CAAAA,CAAAA,CAAAA,CAAA,MAAA,CAAS,CAAA,CAAA,CAAT,SACAA,CAAAA,CAAAA,CAAAA,CAAA,KAAA,CAAQ,GAAR,OAAA,CAHQA,CAAAA,CAAAA,EAAAA,CAAAA,EAAA,ICzCL,SAASC,CAAAA,CAASC,IAAsB,MAAA,CAAuB,CACpE,GAAM,CAACC,CAAAA,CAAaC,CAAc,CAAA,CAAIC,CAAAA,CAAmB,IAAI,GAAA,CAAe,CAAE,IAAK,CAAC,UAAA,CAAY,SAAS,CAAE,CAAC,EACtG,CAACC,CAAAA,CAAiBC,CAAkB,CAAA,CAAIF,CAAAA,CAAmB,IAAI,GAAA,CAAe,CAAE,IAAK,CAAC,UAAA,CAAY,aAAa,CAAE,CAAC,EAClH,CAACG,CAAAA,CAAkBC,CAAmB,CAAA,CAAIJ,CAAAA,CAAmB,IAAI,IAAe,CAAE,GAAA,CAAK,CAAC,UAAA,CAAY,cAAc,CAAE,CAAC,CAAA,CAErHK,EAAiBC,CAAAA,EAAa,CAClC,IAAMC,CAAAA,CAAOD,CAAAA,CAAoB,KAC3BE,CAAAA,CAAiBV,CAAAA,CAEvB,GAAI,CAACU,CAAAA,CAAe,IAAID,CAAG,CAAA,CAAG,CAC5B,IAAME,CAAAA,CAAa,IAAI,GAAA,CAAID,CAAc,EACzCC,CAAAA,CAAW,GAAA,CAAIF,CAAG,CAAA,CAClBR,CAAAA,CAAeU,CAAU,CAAA,CAEzB,IAAMC,EAAqBT,CAAAA,CACrBU,CAAAA,CAAiB,IAAI,GAAA,CAAID,CAAkB,CAAA,CACjDC,CAAAA,CAAe,GAAA,CAAIJ,CAAG,EACtBL,CAAAA,CAAmBS,CAAc,EACnC,CACF,CAAA,CAEMC,EAAeN,CAAAA,EAAa,CAChC,IAAMC,CAAAA,CAAOD,CAAAA,CAAoB,KAC3BE,CAAAA,CAAiBV,CAAAA,CAEjBW,EAAa,IAAI,GAAA,CAAID,CAAc,CAAA,CACzCC,CAAAA,CAAW,MAAA,CAAOF,CAAG,CAAA,CACrBR,CAAAA,CAAeU,CAAU,CAAA,CAEzB,IAAMI,EAAsBV,CAAAA,CACtBW,CAAAA,CAAkB,IAAI,GAAA,CAAID,CAAmB,EACnDC,CAAAA,CAAgB,GAAA,CAAIP,CAAG,CAAA,CACvBH,CAAAA,CAAoBU,CAAe,EACrC,CAAA,CAEA,OAAAjB,GAAAA,CAAO,gBAAA,CAAiB,SAAA,CAAWQ,CAAa,CAAA,CAChDR,GAAAA,CAAO,iBAAiB,OAAA,CAASe,CAAW,EAErC,CACL,SAAA,CAAYL,GACMT,CAAAA,EACA,GAAA,CAAIS,CAAG,CAAA,EAAK,KAAA,CAG9B,cAAgBA,CAAAA,EACEN,CAAAA,EACA,IAAIM,CAAG,CAAA,EAAK,MAG9B,cAAA,CAAiBA,CAAAA,EACCJ,GACA,GAAA,CAAII,CAAG,GAAK,KAAA,CAG9B,cAAA,CAAgB,IAEP,KAAA,CAAM,IAAA,CADGT,GACa,EAAE,EAGjC,eAAA,CAAiB,IAAM,CACrBI,CAAAA,CAAmB,IAAI,GAAa,CAAA,CACpCE,CAAAA,CAAoB,IAAI,GAAa,EACvC,CAAA,CAEA,OAAA,CAAS,IAAM,CACbP,IAAO,mBAAA,CAAoB,SAAA,CAAWQ,CAAa,CAAA,CACnDR,GAAAA,CAAO,oBAAoB,OAAA,CAASe,CAAW,EACjD,CACF,CACF,CCrEO,SAASG,CAAAA,CAAMC,IAAwB,EAAC,CAAe,CAC5D,IAAMnB,CAAAA,CAASmB,IAAQ,MAAA,EAAU,MAAA,CAC3BC,EAAe,OAAOD,GAAAA,CAAQ,QAAW,UAAA,CAAaA,GAAAA,CAAQ,OAAS,IAAMA,GAAAA,CAAQ,OAErF,CAACE,CAAAA,CAAUC,CAAW,CAAA,CAAInB,CAAAA,CAAM,CAAE,CAAA,CAAG,CAAA,CAAG,EAAG,CAAE,CAAA,CAAG,CAAE,GAAA,CAAK,CAAC,OAAA,CAAS,UAAU,CAAE,CAAC,EAC9E,CAACR,CAAAA,CAAO4B,CAAQ,CAAA,CAAIpB,CAAAA,CAAM,CAAE,CAAA,CAAG,CAAA,CAAG,EAAG,CAAE,CAAA,CAAG,CAAE,GAAA,CAAK,CAAC,QAAS,OAAO,CAAE,CAAC,CAAA,CACrE,CAACqB,EAAYC,CAAa,CAAA,CAAItB,EAAM,CAAA,CAAG,CAAE,IAAK,CAAC,OAAA,CAAS,OAAO,CAAE,CAAC,EAClE,CAACuB,CAAAA,CAASC,CAAU,CAAA,CAAIxB,CAAAA,CAAmB,IAAI,GAAA,CAAe,CAAE,GAAA,CAAK,CAAC,OAAA,CAAS,SAAS,CAAE,CAAC,CAAA,CAE7FyB,EAAQ,CAAA,CACRC,CAAAA,CAAQ,EAENC,CAAAA,CAAmBrB,CAAAA,EAAa,CACpC,IAAMsB,CAAAA,CAAKtB,EACLuB,CAAAA,CAASZ,CAAAA,GAEXa,CAAAA,CAAIF,CAAAA,CAAG,QACPG,CAAAA,CAAIH,CAAAA,CAAG,OAAA,CAGX,GAAIC,CAAAA,CAAQ,CACV,IAAMG,CAAAA,CAAOH,CAAAA,CAAO,uBAAsB,CAC1CC,CAAAA,CAAIF,EAAG,OAAA,CAAUI,CAAAA,CAAK,KACtBD,CAAAA,CAAIH,CAAAA,CAAG,QAAUI,CAAAA,CAAK,IACxB,CAEAb,CAAAA,CAAY,CAAE,EAAAW,CAAAA,CAAG,CAAA,CAAAC,CAAE,CAAC,CAAA,CACpBX,CAAAA,CAAS,CAAE,CAAA,CAAGU,CAAAA,CAAIL,EAAO,CAAA,CAAGM,CAAAA,CAAIL,CAAM,CAAC,CAAA,CACvCD,EAAQK,CAAAA,CACRJ,CAAAA,CAAQK,EACV,CAAA,CAEME,CAAAA,CAAmB3B,GAAa,CACpC,IAAM4B,EAAU5B,CAAAA,CAAiB,MAAA,CAC3B6B,EAAiBZ,CAAAA,CACjBa,CAAAA,CAAa,IAAI,GAAA,CAAID,CAAc,EACzCC,CAAAA,CAAW,GAAA,CAAIF,CAAM,CAAA,CACrBV,CAAAA,CAAWY,CAAU,EACvB,CAAA,CAEMC,EAAiB/B,CAAAA,EAAa,CAClC,IAAM4B,CAAAA,CAAU5B,CAAAA,CAAiB,OAC3B6B,CAAAA,CAAiBZ,CAAAA,CACjBa,CAAAA,CAAa,IAAI,GAAA,CAAID,CAAc,EACzCC,CAAAA,CAAW,MAAA,CAAOF,CAAM,CAAA,CACxBV,CAAAA,CAAWY,CAAU,EACvB,CAAA,CAEME,EAAehC,CAAAA,EAAa,CAEhCgB,EADWhB,CAAAA,CACM,MAAM,EACzB,CAAA,CAEAT,CAAAA,CAAO,iBAAiB,WAAA,CAAa8B,CAAe,EACpD9B,CAAAA,CAAO,gBAAA,CAAiB,YAAaoC,CAAe,CAAA,CACpDpC,EAAO,gBAAA,CAAiB,SAAA,CAAWwC,CAAa,CAAA,CAChDxC,CAAAA,CAAO,iBAAiB,OAAA,CAASyC,CAAW,EAE5C,IAAMH,CAAAA,CAAiBZ,EACjBgB,CAAAA,CAAkBrB,CAAAA,CAClBsB,EAAehD,CAAAA,CACfiD,CAAAA,CAAoBpB,CAAAA,CAE1B,OAAO,CACL,IAAI,GAAI,CAAE,OAAOkB,EAAgB,CAAE,CAAA,CACnC,IAAI,CAAA,EAAI,CAAE,OAAOA,CAAAA,CAAgB,CAAE,EACnC,IAAI,MAAA,EAAS,CAAE,OAAOC,CAAAA,CAAa,CAAE,CAAA,CACrC,IAAI,QAAS,CAAE,OAAOA,EAAa,CAAE,CAAA,CACrC,IAAI,UAAA,EAAa,CAAE,OAAOC,CAAkB,CAAA,CAE5C,UAAYP,CAAAA,EAAwBC,CAAAA,EAAgB,IAAID,CAAM,CAAA,EAAK,MAEnE,aAAA,CAAe,IAAMC,GAAgB,GAAA,CAAA,CAAoB,CAAA,EAAK,KAAA,CAE9D,cAAA,CAAgB,IAAMA,CAAAA,EAAgB,KAAqB,CAAA,EAAK,KAAA,CAEhE,gBAAiB,IAAMA,CAAAA,EAAgB,KAAsB,CAAA,EAAK,KAAA,CAElE,gBAAiB,IAAM,CACrBf,EAAS,CAAE,CAAA,CAAG,EAAG,CAAA,CAAG,CAAE,CAAC,CAAA,CACvBE,CAAAA,CAAc,CAAC,EACjB,CAAA,CAEA,OAAA,CAAS,IAAM,CACbzB,CAAAA,CAAO,oBAAoB,WAAA,CAAa8B,CAAe,EACvD9B,CAAAA,CAAO,mBAAA,CAAoB,YAAaoC,CAAe,CAAA,CACvDpC,EAAO,mBAAA,CAAoB,SAAA,CAAWwC,CAAa,CAAA,CACnDxC,CAAAA,CAAO,oBAAoB,OAAA,CAASyC,CAAW,EACjD,CACF,CACF","file":"interactive.mjs","sourcesContent":["import type { LoopCallbacks, Loop } from './types'\n\nexport type { LoopCallbacks, Loop }\n\nexport function loop(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 { state } from '../core/state'\nimport { Keys, type KeyboardState } from './types'\n\nexport { Keys, type KeyboardState }\n\nexport function keyboard(target: EventTarget = window): KeyboardState {\n const [pressedKeys, setPressedKeys] = state<Set<string>>(new Set<string>(), { key: ['keyboard', 'pressed'] })\n const [justPressedKeys, setJustPressedKeys] = state<Set<string>>(new Set<string>(), { key: ['keyboard', 'justPressed'] })\n const [justReleasedKeys, setJustReleasedKeys] = state<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 { state } from '../core/state'\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] = state({ x: 0, y: 0 }, { key: ['mouse', 'position'] })\n const [delta, setDelta] = state({ x: 0, y: 0 }, { key: ['mouse', 'delta'] })\n const [wheelDelta, setWheelDelta] = state(0, { key: ['mouse', 'wheel'] })\n const [buttons, setButtons] = state<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,4 +1,4 @@
1
- import { FNode } from './dom.cjs';
1
+ import { a as FNode } from './types-y2GGaXXk.cjs';
2
2
  export { Fragment } from './jsx-runtime.cjs';
3
3
 
4
4
  declare function jsxDEV(type: any, props: any, key: any, isStaticChildren: boolean, source: any, self: any): FNode;
@@ -1,4 +1,4 @@
1
- import { FNode } from './dom.js';
1
+ import { a as FNode } from './types-y2GGaXXk.js';
2
2
  export { Fragment } from './jsx-runtime.js';
3
3
 
4
4
  declare function jsxDEV(type: any, props: any, key: any, isStaticChildren: boolean, source: any, self: any): FNode;
@@ -1,4 +1,4 @@
1
- import { FNode, FNodeChild } from './dom.cjs';
1
+ import { a as FNode, F as FNodeChild } from './types-y2GGaXXk.cjs';
2
2
 
3
3
  declare function jsx(type: any, props: any, key?: any): FNode;
4
4
  declare function jsxs(type: any, props: any, key?: any): FNode;
@@ -1,4 +1,4 @@
1
- import { FNode, FNodeChild } from './dom.js';
1
+ import { a as FNode, F as FNodeChild } from './types-y2GGaXXk.js';
2
2
 
3
3
  declare function jsx(type: any, props: any, key?: any): FNode;
4
4
  declare function jsxs(type: any, props: any, key?: any): FNode;
@@ -1 +1 @@
1
- {"inputs":{"src/index.ts":{"bytes":68,"imports":[],"format":"esm"},"src/core/effect.ts":{"bytes":2302,"imports":[],"format":"esm"},"src/core/reactive.ts":{"bytes":2077,"imports":[{"path":"src/core/effect.ts","kind":"import-statement","original":"./effect"}],"format":"esm"},"src/core/hook.ts":{"bytes":986,"imports":[],"format":"esm"},"src/core/state.ts":{"bytes":5773,"imports":[{"path":"src/core/reactive.ts","kind":"import-statement","original":"./reactive"},{"path":"src/core/effect.ts","kind":"import-statement","original":"./effect"},{"path":"src/core/hook.ts","kind":"import-statement","original":"./hook"}],"format":"esm"},"src/core/lifecycle.ts":{"bytes":1649,"imports":[{"path":"src/core/hook.ts","kind":"import-statement","original":"./hook"},{"path":"src/core/effect.ts","kind":"import-statement","original":"./effect"}],"format":"esm"},"src/core/context.ts":{"bytes":1461,"imports":[],"format":"esm"},"src/core/index.ts":{"bytes":166,"imports":[{"path":"src/core/state.ts","kind":"import-statement","original":"./state"},{"path":"src/core/lifecycle.ts","kind":"import-statement","original":"./lifecycle"},{"path":"src/core/context.ts","kind":"import-statement","original":"./context"}],"format":"esm"},"src/dom/index.ts":{"bytes":21288,"imports":[{"path":"src/core/context.ts","kind":"import-statement","original":"../core/context"},{"path":"src/core/hook.ts","kind":"import-statement","original":"../core/hook"},{"path":"src/core/effect.ts","kind":"import-statement","original":"../core/effect"}],"format":"esm"},"src/router/types.ts":{"bytes":807,"imports":[],"format":"esm"},"src/router/utils.ts":{"bytes":3745,"imports":[{"path":"./types","kind":"import-statement","external":true}],"format":"esm"},"src/router/router.ts":{"bytes":2599,"imports":[{"path":"src/core/reactive.ts","kind":"import-statement","original":"../core/reactive"},{"path":"src/core/context.ts","kind":"import-statement","original":"../core/context"},{"path":"src/router/utils.ts","kind":"import-statement","original":"./utils"}],"format":"esm"},"src/jsx-runtime.ts":{"bytes":727,"imports":[],"format":"esm"},"src/router/dom/Route.tsx":{"bytes":106,"imports":[],"format":"esm"},"src/router/dom/Routes.tsx":{"bytes":2578,"imports":[{"path":"src/jsx-runtime.ts","kind":"import-statement","original":"../../jsx-runtime"},{"path":"src/router/router.ts","kind":"import-statement","original":"../router"},{"path":"src/router/utils.ts","kind":"import-statement","original":"../utils"},{"path":"src/router/dom/Route.tsx","kind":"import-statement","original":"./Route"}],"format":"esm"},"src/router/dom/Outlet.tsx":{"bytes":769,"imports":[{"path":"src/core/state.ts","kind":"import-statement","original":"../../core/state"},{"path":"src/core/context.ts","kind":"import-statement","original":"../../core/context"},{"path":"src/jsx-runtime.ts","kind":"import-statement","original":"../../jsx-runtime"},{"path":"src/router/router.ts","kind":"import-statement","original":"../router"}],"format":"esm"},"src/router/dom/Link.tsx":{"bytes":441,"imports":[{"path":"src/jsx-runtime.ts","kind":"import-statement","original":"../../jsx-runtime"},{"path":"src/router/router.ts","kind":"import-statement","original":"../router"}],"format":"esm"},"src/router/index.ts":{"bytes":259,"imports":[{"path":"src/router/types.ts","kind":"import-statement","original":"./types"},{"path":"src/router/router.ts","kind":"import-statement","original":"./router"},{"path":"src/router/dom/Routes.tsx","kind":"import-statement","original":"./dom/Routes"},{"path":"src/router/dom/Route.tsx","kind":"import-statement","original":"./dom/Route"},{"path":"src/router/dom/Outlet.tsx","kind":"import-statement","original":"./dom/Outlet"},{"path":"src/router/dom/Link.tsx","kind":"import-statement","original":"./dom/Link"}],"format":"esm"},"src/canvas/Canvas.tsx":{"bytes":5692,"imports":[{"path":"src/core/lifecycle.ts","kind":"import-statement","original":"../core/lifecycle"},{"path":"src/core/reactive.ts","kind":"import-statement","original":"../core/reactive"},{"path":"src/jsx-runtime.ts","kind":"import-statement","original":"flexium/jsx-runtime"}],"format":"esm"},"src/canvas/dom/DrawRect.tsx":{"bytes":533,"imports":[{"path":"src/core/lifecycle.ts","kind":"import-statement","original":"../../core/lifecycle"},{"path":"src/canvas/Canvas.tsx","kind":"import-statement","original":"../Canvas"}],"format":"esm"},"src/canvas/dom/DrawCircle.tsx":{"bytes":508,"imports":[{"path":"src/core/lifecycle.ts","kind":"import-statement","original":"../../core/lifecycle"},{"path":"src/canvas/Canvas.tsx","kind":"import-statement","original":"../Canvas"}],"format":"esm"},"src/canvas/dom/DrawArc.tsx":{"bytes":599,"imports":[{"path":"src/core/lifecycle.ts","kind":"import-statement","original":"../../core/lifecycle"},{"path":"src/canvas/Canvas.tsx","kind":"import-statement","original":"../Canvas"}],"format":"esm"},"src/canvas/dom/DrawLine.tsx":{"bytes":495,"imports":[{"path":"src/core/lifecycle.ts","kind":"import-statement","original":"../../core/lifecycle"},{"path":"src/canvas/Canvas.tsx","kind":"import-statement","original":"../Canvas"}],"format":"esm"},"src/canvas/dom/DrawText.tsx":{"bytes":580,"imports":[{"path":"src/core/lifecycle.ts","kind":"import-statement","original":"../../core/lifecycle"},{"path":"src/canvas/Canvas.tsx","kind":"import-statement","original":"../Canvas"}],"format":"esm"},"src/canvas/dom/DrawPath.tsx":{"bytes":437,"imports":[{"path":"src/core/lifecycle.ts","kind":"import-statement","original":"../../core/lifecycle"},{"path":"src/canvas/Canvas.tsx","kind":"import-statement","original":"../Canvas"}],"format":"esm"},"src/canvas/index.ts":{"bytes":427,"imports":[{"path":"src/canvas/Canvas.tsx","kind":"import-statement","original":"./Canvas"},{"path":"src/canvas/dom/DrawRect.tsx","kind":"import-statement","original":"./dom/DrawRect"},{"path":"src/canvas/dom/DrawCircle.tsx","kind":"import-statement","original":"./dom/DrawCircle"},{"path":"src/canvas/dom/DrawArc.tsx","kind":"import-statement","original":"./dom/DrawArc"},{"path":"src/canvas/dom/DrawLine.tsx","kind":"import-statement","original":"./dom/DrawLine"},{"path":"src/canvas/dom/DrawText.tsx","kind":"import-statement","original":"./dom/DrawText"},{"path":"src/canvas/dom/DrawPath.tsx","kind":"import-statement","original":"./dom/DrawPath"}],"format":"esm"},"src/interactive/loop.ts":{"bytes":1888,"imports":[],"format":"esm"},"src/interactive/keyboard.ts":{"bytes":3391,"imports":[{"path":"src/core/state.ts","kind":"import-statement","original":"../core/state"}],"format":"esm"},"src/interactive/mouse.ts":{"bytes":3563,"imports":[{"path":"src/core/state.ts","kind":"import-statement","original":"../core/state"}],"format":"esm"},"src/interactive/index.ts":{"bytes":206,"imports":[{"path":"src/interactive/loop.ts","kind":"import-statement","original":"./loop"},{"path":"src/interactive/keyboard.ts","kind":"import-statement","original":"./keyboard"},{"path":"src/interactive/mouse.ts","kind":"import-statement","original":"./mouse"}],"format":"esm"},"src/jsx-dev-runtime.ts":{"bytes":211,"imports":[{"path":"src/jsx-runtime.ts","kind":"import-statement","original":"./jsx-runtime"}],"format":"esm"}},"outputs":{"dist/index.js.map":{"imports":[],"exports":[],"inputs":{},"bytes":205},"dist/index.js":{"imports":[],"exports":["VERSION"],"entryPoint":"src/index.ts","inputs":{"src/index.ts":{"bytesInOutput":16}},"bytes":38},"dist/core.js.map":{"imports":[],"exports":[],"inputs":{},"bytes":93},"dist/core.js":{"imports":[{"path":"dist/chunk-LUW7DIEW.js","kind":"import-statement"},{"path":"dist/chunk-IA4FEBFE.js","kind":"import-statement"},{"path":"dist/chunk-APAMPY43.js","kind":"import-statement"},{"path":"dist/chunk-7BXR4ZFD.js","kind":"import-statement"},{"path":"dist/chunk-ENWGYQNU.js","kind":"import-statement"}],"exports":["batch","context","createContext","effect","popContext","pushContext","runWithContext","snapshotContext","state","sync"],"entryPoint":"src/core/index.ts","inputs":{"src/core/index.ts":{"bytesInOutput":0}},"bytes":384},"dist/dom.js.map":{"imports":[],"exports":[],"inputs":{},"bytes":30353},"dist/dom.js":{"imports":[{"path":"dist/chunk-LUW7DIEW.js","kind":"import-statement"},{"path":"dist/chunk-ENWGYQNU.js","kind":"import-statement"}],"exports":["f","reconcile","render"],"entryPoint":"src/dom/index.ts","inputs":{"src/dom/index.ts":{"bytesInOutput":4899}},"bytes":5029},"dist/router.js.map":{"imports":[],"exports":[],"inputs":{},"bytes":16422},"dist/router.js":{"imports":[{"path":"dist/chunk-LUW7DIEW.js","kind":"import-statement"},{"path":"dist/chunk-APAMPY43.js","kind":"import-statement"},{"path":"dist/chunk-7BXR4ZFD.js","kind":"import-statement"},{"path":"dist/chunk-ENWGYQNU.js","kind":"import-statement"},{"path":"dist/chunk-EXLNKYSH.js","kind":"import-statement"}],"exports":["Link","Outlet","Route","Routes","router"],"entryPoint":"src/router/index.ts","inputs":{"src/router/index.ts":{"bytesInOutput":0},"src/router/utils.ts":{"bytesInOutput":1073},"src/router/router.ts":{"bytesInOutput":743},"src/router/dom/Route.tsx":{"bytesInOutput":26},"src/router/dom/Routes.tsx":{"bytesInOutput":638},"src/router/dom/Outlet.tsx":{"bytesInOutput":238},"src/router/dom/Link.tsx":{"bytesInOutput":133}},"bytes":3107},"dist/chunk-LUW7DIEW.js.map":{"imports":[],"exports":[],"inputs":{},"bytes":2664},"dist/chunk-LUW7DIEW.js":{"imports":[],"exports":["a","b","c","d","e","f"],"inputs":{"src/core/context.ts":{"bytesInOutput":450}},"bytes":501},"dist/canvas.js.map":{"imports":[],"exports":[],"inputs":{},"bytes":14321},"dist/canvas.js":{"imports":[{"path":"dist/chunk-IA4FEBFE.js","kind":"import-statement"},{"path":"dist/chunk-7BXR4ZFD.js","kind":"import-statement"},{"path":"dist/chunk-ENWGYQNU.js","kind":"import-statement"},{"path":"dist/chunk-EXLNKYSH.js","kind":"import-statement"}],"exports":["Canvas","DrawArc","DrawCircle","DrawLine","DrawPath","DrawRect","DrawText"],"entryPoint":"src/canvas/index.ts","inputs":{"src/canvas/Canvas.tsx":{"bytesInOutput":1875},"src/canvas/index.ts":{"bytesInOutput":0},"src/canvas/dom/DrawRect.tsx":{"bytesInOutput":60},"src/canvas/dom/DrawCircle.tsx":{"bytesInOutput":62},"src/canvas/dom/DrawArc.tsx":{"bytesInOutput":59},"src/canvas/dom/DrawLine.tsx":{"bytesInOutput":60},"src/canvas/dom/DrawText.tsx":{"bytesInOutput":60},"src/canvas/dom/DrawPath.tsx":{"bytesInOutput":60}},"bytes":2490},"dist/chunk-IA4FEBFE.js.map":{"imports":[],"exports":[],"inputs":{},"bytes":2516},"dist/chunk-IA4FEBFE.js":{"imports":[{"path":"dist/chunk-ENWGYQNU.js","kind":"import-statement"}],"exports":["a","b","c"],"inputs":{"src/core/lifecycle.ts":{"bytesInOutput":340}},"bytes":424},"dist/interactive.js.map":{"imports":[],"exports":[],"inputs":{},"bytes":14770},"dist/interactive.js":{"imports":[{"path":"dist/chunk-APAMPY43.js","kind":"import-statement"},{"path":"dist/chunk-7BXR4ZFD.js","kind":"import-statement"},{"path":"dist/chunk-ENWGYQNU.js","kind":"import-statement"}],"exports":["Keys","MouseButton","keyboard","loop","mouse"],"entryPoint":"src/interactive/index.ts","inputs":{"src/interactive/loop.ts":{"bytesInOutput":459},"src/interactive/index.ts":{"bytesInOutput":0},"src/interactive/keyboard.ts":{"bytesInOutput":1309},"src/interactive/mouse.ts":{"bytesInOutput":1235}},"bytes":3170},"dist/chunk-APAMPY43.js.map":{"imports":[],"exports":[],"inputs":{},"bytes":8537},"dist/chunk-APAMPY43.js":{"imports":[{"path":"dist/chunk-7BXR4ZFD.js","kind":"import-statement"},{"path":"dist/chunk-ENWGYQNU.js","kind":"import-statement"}],"exports":["a"],"inputs":{"src/core/state.ts":{"bytesInOutput":1555}},"bytes":1658},"dist/chunk-7BXR4ZFD.js.map":{"imports":[],"exports":[],"inputs":{},"bytes":3712},"dist/chunk-7BXR4ZFD.js":{"imports":[{"path":"dist/chunk-ENWGYQNU.js","kind":"import-statement"}],"exports":["a","b"],"inputs":{"src/core/reactive.ts":{"bytesInOutput":590}},"bytes":667},"dist/chunk-ENWGYQNU.js.map":{"imports":[],"exports":[],"inputs":{},"bytes":5647},"dist/chunk-ENWGYQNU.js":{"imports":[],"exports":["a","b","c","d","e","f","g","h"],"inputs":{"src/core/effect.ts":{"bytesInOutput":751},"src/core/hook.ts":{"bytesInOutput":227}},"bytes":1038},"dist/jsx-runtime.js.map":{"imports":[],"exports":[],"inputs":{},"bytes":93},"dist/jsx-runtime.js":{"imports":[{"path":"dist/chunk-EXLNKYSH.js","kind":"import-statement"}],"exports":["Fragment","jsx","jsxs"],"entryPoint":"src/jsx-runtime.ts","inputs":{},"bytes":81},"dist/jsx-dev-runtime.js.map":{"imports":[],"exports":[],"inputs":{},"bytes":510},"dist/jsx-dev-runtime.js":{"imports":[{"path":"dist/chunk-EXLNKYSH.js","kind":"import-statement"}],"exports":["Fragment","jsxDEV"],"entryPoint":"src/jsx-dev-runtime.ts","inputs":{"src/jsx-dev-runtime.ts":{"bytesInOutput":40}},"bytes":122},"dist/chunk-EXLNKYSH.js.map":{"imports":[],"exports":[],"inputs":{},"bytes":1278},"dist/chunk-EXLNKYSH.js":{"imports":[],"exports":["a","b","c"],"inputs":{"src/jsx-runtime.ts":{"bytesInOutput":177}},"bytes":207}}}
1
+ {"inputs":{"src/index.ts":{"bytes":68,"imports":[],"format":"esm"},"src/core/hook.ts":{"bytes":986,"imports":[],"format":"esm"},"src/core/lifecycle.ts":{"bytes":3525,"imports":[{"path":"src/core/hook.ts","kind":"import-statement","original":"./hook"}],"format":"esm"},"src/core/reactive.ts":{"bytes":2080,"imports":[{"path":"src/core/lifecycle.ts","kind":"import-statement","original":"./lifecycle"}],"format":"esm"},"src/core/devtools.ts":{"bytes":1841,"imports":[],"format":"esm"},"src/core/state.ts":{"bytes":5816,"imports":[{"path":"src/core/reactive.ts","kind":"import-statement","original":"./reactive"},{"path":"src/core/lifecycle.ts","kind":"import-statement","original":"./lifecycle"},{"path":"src/core/hook.ts","kind":"import-statement","original":"./hook"},{"path":"src/core/devtools.ts","kind":"import-statement","original":"./devtools"}],"format":"esm"},"src/core/context.ts":{"bytes":1400,"imports":[],"format":"esm"},"src/ref/ref.ts":{"bytes":803,"imports":[{"path":"src/core/hook.ts","kind":"import-statement","original":"../core/hook"}],"format":"esm"},"src/ref/forwardRef.ts":{"bytes":1604,"imports":[],"format":"esm"},"src/ref/index.ts":{"bytes":268,"imports":[{"path":"src/ref/ref.ts","kind":"import-statement","original":"./ref"},{"path":"src/ref/forwardRef.ts","kind":"import-statement","original":"./forwardRef"}],"format":"esm"},"src/core/index.ts":{"bytes":406,"imports":[{"path":"src/core/state.ts","kind":"import-statement","original":"./state"},{"path":"src/core/lifecycle.ts","kind":"import-statement","original":"./lifecycle"},{"path":"src/core/context.ts","kind":"import-statement","original":"./context"},{"path":"src/ref/index.ts","kind":"import-statement","original":"../ref"}],"format":"esm"},"src/dom/f.ts":{"bytes":285,"imports":[],"format":"esm"},"src/dom/render.ts":{"bytes":15127,"imports":[{"path":"src/core/context.ts","kind":"import-statement","original":"../core/context"},{"path":"src/core/hook.ts","kind":"import-statement","original":"../core/hook"},{"path":"src/core/lifecycle.ts","kind":"import-statement","original":"../core/lifecycle"}],"format":"esm"},"src/dom/hydrate.ts":{"bytes":9375,"imports":[{"path":"src/core/hook.ts","kind":"import-statement","original":"../core/hook"},{"path":"src/core/context.ts","kind":"import-statement","original":"../core/context"},{"path":"src/core/lifecycle.ts","kind":"import-statement","original":"../core/lifecycle"},{"path":"src/dom/render.ts","kind":"dynamic-import","original":"./render"}],"format":"esm"},"src/dom/components/Portal.tsx":{"bytes":1932,"imports":[{"path":"src/core/lifecycle.ts","kind":"import-statement","original":"../../core/lifecycle"},{"path":"src/core/hook.ts","kind":"import-statement","original":"../../core/hook"},{"path":"src/dom/render.ts","kind":"import-statement","original":"../render"}],"format":"esm"},"src/dom/components/suspenseContext.ts":{"bytes":372,"imports":[{"path":"src/core/context.ts","kind":"import-statement","original":"../../core/context"}],"format":"esm"},"src/dom/components/Suspense.tsx":{"bytes":1790,"imports":[{"path":"src/core/state.ts","kind":"import-statement","original":"../../core/state"},{"path":"src/core/hook.ts","kind":"import-statement","original":"../../core/hook"},{"path":"src/dom/components/suspenseContext.ts","kind":"import-statement","original":"./suspenseContext"}],"format":"esm"},"src/dom/components/ErrorBoundary.tsx":{"bytes":2860,"imports":[{"path":"src/core/state.ts","kind":"import-statement","original":"../../core/state"},{"path":"src/core/hook.ts","kind":"import-statement","original":"../../core/hook"}],"format":"esm"},"src/dom/components/lazy.ts":{"bytes":1767,"imports":[{"path":"src/dom/components/suspenseContext.ts","kind":"import-statement","original":"./suspenseContext"}],"format":"esm"},"src/dom/components/index.ts":{"bytes":598,"imports":[{"path":"src/dom/components/Portal.tsx","kind":"import-statement","original":"./Portal"},{"path":"src/dom/components/Suspense.tsx","kind":"import-statement","original":"./Suspense"},{"path":"src/dom/components/ErrorBoundary.tsx","kind":"import-statement","original":"./ErrorBoundary"},{"path":"src/dom/components/lazy.ts","kind":"import-statement","original":"./lazy"},{"path":"src/dom/components/suspenseContext.ts","kind":"import-statement","original":"./suspenseContext"},{"path":"src/dom/components/ErrorBoundary.tsx","kind":"import-statement","original":"./ErrorBoundary"}],"format":"esm"},"src/dom/index.ts":{"bytes":457,"imports":[{"path":"src/dom/f.ts","kind":"import-statement","original":"./f"},{"path":"src/dom/render.ts","kind":"import-statement","original":"./render"},{"path":"src/dom/hydrate.ts","kind":"import-statement","original":"./hydrate"},{"path":"src/dom/components/index.ts","kind":"import-statement","original":"./components"}],"format":"esm"},"src/server/escape.ts":{"bytes":364,"imports":[],"format":"esm"},"src/server/serverState.ts":{"bytes":896,"imports":[],"format":"esm"},"src/server/renderToString.ts":{"bytes":6572,"imports":[{"path":"src/server/escape.ts","kind":"import-statement","original":"./escape"},{"path":"src/server/serverState.ts","kind":"import-statement","original":"./serverState"},{"path":"src/core/hook.ts","kind":"import-statement","original":"../core/hook"},{"path":"src/core/context.ts","kind":"import-statement","original":"../core/context"}],"format":"esm"},"src/server/index.ts":{"bytes":243,"imports":[{"path":"src/server/renderToString.ts","kind":"import-statement","original":"./renderToString"},{"path":"src/server/serverState.ts","kind":"import-statement","original":"./serverState"}],"format":"esm"},"src/router/types.ts":{"bytes":807,"imports":[],"format":"esm"},"src/router/utils.ts":{"bytes":3745,"imports":[{"path":"./types","kind":"import-statement","external":true}],"format":"esm"},"src/router/router.ts":{"bytes":2599,"imports":[{"path":"src/core/reactive.ts","kind":"import-statement","original":"../core/reactive"},{"path":"src/core/context.ts","kind":"import-statement","original":"../core/context"},{"path":"src/router/utils.ts","kind":"import-statement","original":"./utils"}],"format":"esm"},"src/jsx-runtime.ts":{"bytes":727,"imports":[],"format":"esm"},"src/router/dom/Route.tsx":{"bytes":106,"imports":[],"format":"esm"},"src/router/dom/Routes.tsx":{"bytes":2578,"imports":[{"path":"src/jsx-runtime.ts","kind":"import-statement","original":"../../jsx-runtime"},{"path":"src/router/router.ts","kind":"import-statement","original":"../router"},{"path":"src/router/utils.ts","kind":"import-statement","original":"../utils"},{"path":"src/router/dom/Route.tsx","kind":"import-statement","original":"./Route"}],"format":"esm"},"src/router/dom/Outlet.tsx":{"bytes":769,"imports":[{"path":"src/core/state.ts","kind":"import-statement","original":"../../core/state"},{"path":"src/core/context.ts","kind":"import-statement","original":"../../core/context"},{"path":"src/jsx-runtime.ts","kind":"import-statement","original":"../../jsx-runtime"},{"path":"src/router/router.ts","kind":"import-statement","original":"../router"}],"format":"esm"},"src/router/dom/Link.tsx":{"bytes":441,"imports":[{"path":"src/jsx-runtime.ts","kind":"import-statement","original":"../../jsx-runtime"},{"path":"src/router/router.ts","kind":"import-statement","original":"../router"}],"format":"esm"},"src/router/index.ts":{"bytes":259,"imports":[{"path":"src/router/types.ts","kind":"import-statement","original":"./types"},{"path":"src/router/router.ts","kind":"import-statement","original":"./router"},{"path":"src/router/dom/Routes.tsx","kind":"import-statement","original":"./dom/Routes"},{"path":"src/router/dom/Route.tsx","kind":"import-statement","original":"./dom/Route"},{"path":"src/router/dom/Outlet.tsx","kind":"import-statement","original":"./dom/Outlet"},{"path":"src/router/dom/Link.tsx","kind":"import-statement","original":"./dom/Link"}],"format":"esm"},"src/canvas/Canvas.tsx":{"bytes":5538,"imports":[{"path":"src/core/lifecycle.ts","kind":"import-statement","original":"../core/lifecycle"},{"path":"src/core/reactive.ts","kind":"import-statement","original":"../core/reactive"},{"path":"src/jsx-runtime.ts","kind":"import-statement","original":"flexium/jsx-runtime"}],"format":"esm"},"src/canvas/dom/DrawRect.tsx":{"bytes":305,"imports":[{"path":"src/core/lifecycle.ts","kind":"import-statement","original":"../../core/lifecycle"},{"path":"src/canvas/Canvas.tsx","kind":"import-statement","original":"../Canvas"}],"format":"esm"},"src/canvas/dom/DrawCircle.tsx":{"bytes":315,"imports":[{"path":"src/core/lifecycle.ts","kind":"import-statement","original":"../../core/lifecycle"},{"path":"src/canvas/Canvas.tsx","kind":"import-statement","original":"../Canvas"}],"format":"esm"},"src/canvas/dom/DrawArc.tsx":{"bytes":300,"imports":[{"path":"src/core/lifecycle.ts","kind":"import-statement","original":"../../core/lifecycle"},{"path":"src/canvas/Canvas.tsx","kind":"import-statement","original":"../Canvas"}],"format":"esm"},"src/canvas/dom/DrawLine.tsx":{"bytes":305,"imports":[{"path":"src/core/lifecycle.ts","kind":"import-statement","original":"../../core/lifecycle"},{"path":"src/canvas/Canvas.tsx","kind":"import-statement","original":"../Canvas"}],"format":"esm"},"src/canvas/dom/DrawText.tsx":{"bytes":305,"imports":[{"path":"src/core/lifecycle.ts","kind":"import-statement","original":"../../core/lifecycle"},{"path":"src/canvas/Canvas.tsx","kind":"import-statement","original":"../Canvas"}],"format":"esm"},"src/canvas/dom/DrawPath.tsx":{"bytes":305,"imports":[{"path":"src/core/lifecycle.ts","kind":"import-statement","original":"../../core/lifecycle"},{"path":"src/canvas/Canvas.tsx","kind":"import-statement","original":"../Canvas"}],"format":"esm"},"src/canvas/index.ts":{"bytes":427,"imports":[{"path":"src/canvas/Canvas.tsx","kind":"import-statement","original":"./Canvas"},{"path":"src/canvas/dom/DrawRect.tsx","kind":"import-statement","original":"./dom/DrawRect"},{"path":"src/canvas/dom/DrawCircle.tsx","kind":"import-statement","original":"./dom/DrawCircle"},{"path":"src/canvas/dom/DrawArc.tsx","kind":"import-statement","original":"./dom/DrawArc"},{"path":"src/canvas/dom/DrawLine.tsx","kind":"import-statement","original":"./dom/DrawLine"},{"path":"src/canvas/dom/DrawText.tsx","kind":"import-statement","original":"./dom/DrawText"},{"path":"src/canvas/dom/DrawPath.tsx","kind":"import-statement","original":"./dom/DrawPath"}],"format":"esm"},"src/interactive/loop.ts":{"bytes":1684,"imports":[],"format":"esm"},"src/interactive/types.ts":{"bytes":1937,"imports":[],"format":"esm"},"src/interactive/keyboard.ts":{"bytes":2405,"imports":[{"path":"src/core/state.ts","kind":"import-statement","original":"../core/state"},{"path":"src/interactive/types.ts","kind":"import-statement","original":"./types"}],"format":"esm"},"src/interactive/mouse.ts":{"bytes":3183,"imports":[{"path":"src/core/state.ts","kind":"import-statement","original":"../core/state"},{"path":"src/interactive/types.ts","kind":"import-statement","original":"./types"}],"format":"esm"},"src/interactive/index.ts":{"bytes":206,"imports":[{"path":"src/interactive/loop.ts","kind":"import-statement","original":"./loop"},{"path":"src/interactive/keyboard.ts","kind":"import-statement","original":"./keyboard"},{"path":"src/interactive/mouse.ts","kind":"import-statement","original":"./mouse"}],"format":"esm"},"src/jsx-dev-runtime.ts":{"bytes":211,"imports":[{"path":"src/jsx-runtime.ts","kind":"import-statement","original":"./jsx-runtime"}],"format":"esm"}},"outputs":{"dist/jsx-dev-runtime.js.map":{"imports":[],"exports":[],"inputs":{},"bytes":510},"dist/jsx-dev-runtime.js":{"imports":[{"path":"dist/chunk-EXLNKYSH.js","kind":"import-statement"}],"exports":["Fragment","jsxDEV"],"entryPoint":"src/jsx-dev-runtime.ts","inputs":{"src/jsx-dev-runtime.ts":{"bytesInOutput":40}},"bytes":122},"dist/render-QZAFAGIM.js.map":{"imports":[],"exports":[],"inputs":{},"bytes":93},"dist/render-QZAFAGIM.js":{"imports":[{"path":"dist/chunk-6Z33DLMI.js","kind":"import-statement"},{"path":"dist/chunk-PSKDIB7J.js","kind":"import-statement"},{"path":"dist/chunk-YWTD32NA.js","kind":"import-statement"},{"path":"dist/chunk-UWFVCKRU.js","kind":"import-statement"}],"exports":["reconcile","render"],"entryPoint":"src/dom/render.ts","inputs":{},"bytes":157},"dist/index.js.map":{"imports":[],"exports":[],"inputs":{},"bytes":205},"dist/index.js":{"imports":[],"exports":["VERSION"],"entryPoint":"src/index.ts","inputs":{"src/index.ts":{"bytesInOutput":16}},"bytes":38},"dist/core.js.map":{"imports":[],"exports":[],"inputs":{},"bytes":3072},"dist/core.js":{"imports":[{"path":"dist/chunk-PSKDIB7J.js","kind":"import-statement"},{"path":"dist/chunk-LTT43APF.js","kind":"import-statement"},{"path":"dist/chunk-6VIRXD2Y.js","kind":"import-statement"},{"path":"dist/chunk-YWTD32NA.js","kind":"import-statement"},{"path":"dist/chunk-UWFVCKRU.js","kind":"import-statement"}],"exports":["context","createContext","effect","forwardRef","ref","state","sync"],"entryPoint":"src/core/index.ts","inputs":{"src/core/index.ts":{"bytesInOutput":0},"src/ref/ref.ts":{"bytesInOutput":42},"src/ref/index.ts":{"bytesInOutput":0},"src/ref/forwardRef.ts":{"bytesInOutput":131}},"bytes":474},"dist/dom.js.map":{"imports":[],"exports":[],"inputs":{},"bytes":27819},"dist/dom.js":{"imports":[{"path":"dist/chunk-6Z33DLMI.js","kind":"import-statement"},{"path":"dist/chunk-PSKDIB7J.js","kind":"import-statement"},{"path":"dist/chunk-LTT43APF.js","kind":"import-statement"},{"path":"dist/chunk-6VIRXD2Y.js","kind":"import-statement"},{"path":"dist/chunk-YWTD32NA.js","kind":"import-statement"},{"path":"dist/chunk-UWFVCKRU.js","kind":"import-statement"},{"path":"dist/render-QZAFAGIM.js","kind":"dynamic-import"}],"exports":["ErrorBoundary","Portal","Suspense","f","hydrate","lazy","reconcile","render","suspenseContext"],"entryPoint":"src/dom/index.ts","inputs":{"src/dom/f.ts":{"bytesInOutput":70},"src/dom/index.ts":{"bytesInOutput":0},"src/dom/hydrate.ts":{"bytesInOutput":2739},"src/dom/components/Portal.tsx":{"bytesInOutput":491},"src/dom/components/index.ts":{"bytesInOutput":0},"src/dom/components/suspenseContext.ts":{"bytesInOutput":71},"src/dom/components/Suspense.tsx":{"bytesInOutput":294},"src/dom/components/ErrorBoundary.tsx":{"bytesInOutput":500},"src/dom/components/lazy.ts":{"bytesInOutput":249}},"bytes":4816},"dist/chunk-6Z33DLMI.js.map":{"imports":[],"exports":[],"inputs":{},"bytes":23945},"dist/chunk-6Z33DLMI.js":{"imports":[{"path":"dist/chunk-PSKDIB7J.js","kind":"import-statement"},{"path":"dist/chunk-YWTD32NA.js","kind":"import-statement"},{"path":"dist/chunk-UWFVCKRU.js","kind":"import-statement"}],"exports":["a","b"],"inputs":{"src/dom/render.ts":{"bytesInOutput":4853}},"bytes":4996},"dist/server.js.map":{"imports":[],"exports":[],"inputs":{},"bytes":12945},"dist/server.js":{"imports":[{"path":"dist/chunk-PSKDIB7J.js","kind":"import-statement"},{"path":"dist/chunk-UWFVCKRU.js","kind":"import-statement"}],"exports":["getIsServer","renderToStaticMarkup","renderToString"],"entryPoint":"src/server/index.ts","inputs":{"src/server/escape.ts":{"bytesInOutput":157},"src/server/serverState.ts":{"bytesInOutput":186},"src/server/renderToString.ts":{"bytesInOutput":2125},"src/server/index.ts":{"bytesInOutput":0}},"bytes":2627},"dist/router.js.map":{"imports":[],"exports":[],"inputs":{},"bytes":16422},"dist/router.js":{"imports":[{"path":"dist/chunk-PSKDIB7J.js","kind":"import-statement"},{"path":"dist/chunk-LTT43APF.js","kind":"import-statement"},{"path":"dist/chunk-6VIRXD2Y.js","kind":"import-statement"},{"path":"dist/chunk-YWTD32NA.js","kind":"import-statement"},{"path":"dist/chunk-UWFVCKRU.js","kind":"import-statement"},{"path":"dist/chunk-EXLNKYSH.js","kind":"import-statement"}],"exports":["Link","Outlet","Route","Routes","router"],"entryPoint":"src/router/index.ts","inputs":{"src/router/index.ts":{"bytesInOutput":0},"src/router/utils.ts":{"bytesInOutput":1073},"src/router/router.ts":{"bytesInOutput":743},"src/router/dom/Route.tsx":{"bytesInOutput":26},"src/router/dom/Routes.tsx":{"bytesInOutput":638},"src/router/dom/Outlet.tsx":{"bytesInOutput":238},"src/router/dom/Link.tsx":{"bytesInOutput":133}},"bytes":3135},"dist/chunk-PSKDIB7J.js.map":{"imports":[],"exports":[],"inputs":{},"bytes":2198},"dist/chunk-PSKDIB7J.js":{"imports":[],"exports":["a","b","c","d"],"inputs":{"src/core/context.ts":{"bytesInOutput":284}},"bytes":316},"dist/canvas.js.map":{"imports":[],"exports":[],"inputs":{},"bytes":12793},"dist/canvas.js":{"imports":[{"path":"dist/chunk-6VIRXD2Y.js","kind":"import-statement"},{"path":"dist/chunk-YWTD32NA.js","kind":"import-statement"},{"path":"dist/chunk-UWFVCKRU.js","kind":"import-statement"},{"path":"dist/chunk-EXLNKYSH.js","kind":"import-statement"}],"exports":["Canvas","DrawArc","DrawCircle","DrawLine","DrawPath","DrawRect","DrawText"],"entryPoint":"src/canvas/index.ts","inputs":{"src/canvas/Canvas.tsx":{"bytesInOutput":1875},"src/canvas/index.ts":{"bytesInOutput":0},"src/canvas/dom/DrawRect.tsx":{"bytesInOutput":60},"src/canvas/dom/DrawCircle.tsx":{"bytesInOutput":62},"src/canvas/dom/DrawArc.tsx":{"bytesInOutput":59},"src/canvas/dom/DrawLine.tsx":{"bytesInOutput":60},"src/canvas/dom/DrawText.tsx":{"bytesInOutput":60},"src/canvas/dom/DrawPath.tsx":{"bytesInOutput":60}},"bytes":2490},"dist/interactive.js.map":{"imports":[],"exports":[],"inputs":{},"bytes":15153},"dist/interactive.js":{"imports":[{"path":"dist/chunk-LTT43APF.js","kind":"import-statement"},{"path":"dist/chunk-6VIRXD2Y.js","kind":"import-statement"},{"path":"dist/chunk-YWTD32NA.js","kind":"import-statement"},{"path":"dist/chunk-UWFVCKRU.js","kind":"import-statement"}],"exports":["Keys","MouseButton","keyboard","loop","mouse"],"entryPoint":"src/interactive/index.ts","inputs":{"src/interactive/loop.ts":{"bytesInOutput":459},"src/interactive/index.ts":{"bytesInOutput":0},"src/interactive/types.ts":{"bytesInOutput":701},"src/interactive/keyboard.ts":{"bytesInOutput":689},"src/interactive/mouse.ts":{"bytesInOutput":1150}},"bytes":3194},"dist/chunk-LTT43APF.js.map":{"imports":[],"exports":[],"inputs":{},"bytes":11319},"dist/chunk-LTT43APF.js":{"imports":[{"path":"dist/chunk-6VIRXD2Y.js","kind":"import-statement"},{"path":"dist/chunk-YWTD32NA.js","kind":"import-statement"},{"path":"dist/chunk-UWFVCKRU.js","kind":"import-statement"}],"exports":["a"],"inputs":{"src/core/devtools.ts":{"bytesInOutput":372},"src/core/state.ts":{"bytesInOutput":1581}},"bytes":2089},"dist/chunk-6VIRXD2Y.js.map":{"imports":[],"exports":[],"inputs":{},"bytes":3715},"dist/chunk-6VIRXD2Y.js":{"imports":[{"path":"dist/chunk-YWTD32NA.js","kind":"import-statement"}],"exports":["a","b"],"inputs":{"src/core/reactive.ts":{"bytesInOutput":590}},"bytes":667},"dist/chunk-YWTD32NA.js.map":{"imports":[],"exports":[],"inputs":{},"bytes":5910},"dist/chunk-YWTD32NA.js":{"imports":[{"path":"dist/chunk-UWFVCKRU.js","kind":"import-statement"}],"exports":["a","b","c","d","e","f"],"inputs":{"src/core/lifecycle.ts":{"bytesInOutput":1072}},"bytes":1163},"dist/chunk-UWFVCKRU.js.map":{"imports":[],"exports":[],"inputs":{},"bytes":1694},"dist/chunk-UWFVCKRU.js":{"imports":[],"exports":["a","b"],"inputs":{"src/core/hook.ts":{"bytesInOutput":227}},"bytes":250},"dist/jsx-runtime.js.map":{"imports":[],"exports":[],"inputs":{},"bytes":93},"dist/jsx-runtime.js":{"imports":[{"path":"dist/chunk-EXLNKYSH.js","kind":"import-statement"}],"exports":["Fragment","jsx","jsxs"],"entryPoint":"src/jsx-runtime.ts","inputs":{},"bytes":81},"dist/chunk-EXLNKYSH.js.map":{"imports":[],"exports":[],"inputs":{},"bytes":1278},"dist/chunk-EXLNKYSH.js":{"imports":[],"exports":["a","b","c"],"inputs":{"src/jsx-runtime.ts":{"bytesInOutput":177}},"bytes":207}}}
@@ -1 +1 @@
1
- {"inputs":{"src/index.ts":{"bytes":68,"imports":[],"format":"esm"},"src/core/effect.ts":{"bytes":2302,"imports":[],"format":"esm"},"src/core/reactive.ts":{"bytes":2077,"imports":[{"path":"src/core/effect.ts","kind":"import-statement","original":"./effect"}],"format":"esm"},"src/core/hook.ts":{"bytes":986,"imports":[],"format":"esm"},"src/core/state.ts":{"bytes":5773,"imports":[{"path":"src/core/reactive.ts","kind":"import-statement","original":"./reactive"},{"path":"src/core/effect.ts","kind":"import-statement","original":"./effect"},{"path":"src/core/hook.ts","kind":"import-statement","original":"./hook"}],"format":"esm"},"src/core/lifecycle.ts":{"bytes":1649,"imports":[{"path":"src/core/hook.ts","kind":"import-statement","original":"./hook"},{"path":"src/core/effect.ts","kind":"import-statement","original":"./effect"}],"format":"esm"},"src/core/context.ts":{"bytes":1461,"imports":[],"format":"esm"},"src/core/index.ts":{"bytes":166,"imports":[{"path":"src/core/state.ts","kind":"import-statement","original":"./state"},{"path":"src/core/lifecycle.ts","kind":"import-statement","original":"./lifecycle"},{"path":"src/core/context.ts","kind":"import-statement","original":"./context"}],"format":"esm"},"src/dom/index.ts":{"bytes":21288,"imports":[{"path":"src/core/context.ts","kind":"import-statement","original":"../core/context"},{"path":"src/core/hook.ts","kind":"import-statement","original":"../core/hook"},{"path":"src/core/effect.ts","kind":"import-statement","original":"../core/effect"}],"format":"esm"},"src/router/types.ts":{"bytes":807,"imports":[],"format":"esm"},"src/router/utils.ts":{"bytes":3745,"imports":[{"path":"./types","kind":"import-statement","external":true}],"format":"esm"},"src/router/router.ts":{"bytes":2599,"imports":[{"path":"src/core/reactive.ts","kind":"import-statement","original":"../core/reactive"},{"path":"src/core/context.ts","kind":"import-statement","original":"../core/context"},{"path":"src/router/utils.ts","kind":"import-statement","original":"./utils"}],"format":"esm"},"src/jsx-runtime.ts":{"bytes":727,"imports":[],"format":"esm"},"src/router/dom/Route.tsx":{"bytes":106,"imports":[],"format":"esm"},"src/router/dom/Routes.tsx":{"bytes":2578,"imports":[{"path":"src/jsx-runtime.ts","kind":"import-statement","original":"../../jsx-runtime"},{"path":"src/router/router.ts","kind":"import-statement","original":"../router"},{"path":"src/router/utils.ts","kind":"import-statement","original":"../utils"},{"path":"src/router/dom/Route.tsx","kind":"import-statement","original":"./Route"}],"format":"esm"},"src/router/dom/Outlet.tsx":{"bytes":769,"imports":[{"path":"src/core/state.ts","kind":"import-statement","original":"../../core/state"},{"path":"src/core/context.ts","kind":"import-statement","original":"../../core/context"},{"path":"src/jsx-runtime.ts","kind":"import-statement","original":"../../jsx-runtime"},{"path":"src/router/router.ts","kind":"import-statement","original":"../router"}],"format":"esm"},"src/router/dom/Link.tsx":{"bytes":441,"imports":[{"path":"src/jsx-runtime.ts","kind":"import-statement","original":"../../jsx-runtime"},{"path":"src/router/router.ts","kind":"import-statement","original":"../router"}],"format":"esm"},"src/router/index.ts":{"bytes":259,"imports":[{"path":"src/router/types.ts","kind":"import-statement","original":"./types"},{"path":"src/router/router.ts","kind":"import-statement","original":"./router"},{"path":"src/router/dom/Routes.tsx","kind":"import-statement","original":"./dom/Routes"},{"path":"src/router/dom/Route.tsx","kind":"import-statement","original":"./dom/Route"},{"path":"src/router/dom/Outlet.tsx","kind":"import-statement","original":"./dom/Outlet"},{"path":"src/router/dom/Link.tsx","kind":"import-statement","original":"./dom/Link"}],"format":"esm"},"src/canvas/Canvas.tsx":{"bytes":5692,"imports":[{"path":"src/core/lifecycle.ts","kind":"import-statement","original":"../core/lifecycle"},{"path":"src/core/reactive.ts","kind":"import-statement","original":"../core/reactive"},{"path":"src/jsx-runtime.ts","kind":"import-statement","original":"flexium/jsx-runtime"}],"format":"esm"},"src/canvas/dom/DrawRect.tsx":{"bytes":533,"imports":[{"path":"src/core/lifecycle.ts","kind":"import-statement","original":"../../core/lifecycle"},{"path":"src/canvas/Canvas.tsx","kind":"import-statement","original":"../Canvas"}],"format":"esm"},"src/canvas/dom/DrawCircle.tsx":{"bytes":508,"imports":[{"path":"src/core/lifecycle.ts","kind":"import-statement","original":"../../core/lifecycle"},{"path":"src/canvas/Canvas.tsx","kind":"import-statement","original":"../Canvas"}],"format":"esm"},"src/canvas/dom/DrawArc.tsx":{"bytes":599,"imports":[{"path":"src/core/lifecycle.ts","kind":"import-statement","original":"../../core/lifecycle"},{"path":"src/canvas/Canvas.tsx","kind":"import-statement","original":"../Canvas"}],"format":"esm"},"src/canvas/dom/DrawLine.tsx":{"bytes":495,"imports":[{"path":"src/core/lifecycle.ts","kind":"import-statement","original":"../../core/lifecycle"},{"path":"src/canvas/Canvas.tsx","kind":"import-statement","original":"../Canvas"}],"format":"esm"},"src/canvas/dom/DrawText.tsx":{"bytes":580,"imports":[{"path":"src/core/lifecycle.ts","kind":"import-statement","original":"../../core/lifecycle"},{"path":"src/canvas/Canvas.tsx","kind":"import-statement","original":"../Canvas"}],"format":"esm"},"src/canvas/dom/DrawPath.tsx":{"bytes":437,"imports":[{"path":"src/core/lifecycle.ts","kind":"import-statement","original":"../../core/lifecycle"},{"path":"src/canvas/Canvas.tsx","kind":"import-statement","original":"../Canvas"}],"format":"esm"},"src/canvas/index.ts":{"bytes":427,"imports":[{"path":"src/canvas/Canvas.tsx","kind":"import-statement","original":"./Canvas"},{"path":"src/canvas/dom/DrawRect.tsx","kind":"import-statement","original":"./dom/DrawRect"},{"path":"src/canvas/dom/DrawCircle.tsx","kind":"import-statement","original":"./dom/DrawCircle"},{"path":"src/canvas/dom/DrawArc.tsx","kind":"import-statement","original":"./dom/DrawArc"},{"path":"src/canvas/dom/DrawLine.tsx","kind":"import-statement","original":"./dom/DrawLine"},{"path":"src/canvas/dom/DrawText.tsx","kind":"import-statement","original":"./dom/DrawText"},{"path":"src/canvas/dom/DrawPath.tsx","kind":"import-statement","original":"./dom/DrawPath"}],"format":"esm"},"src/interactive/loop.ts":{"bytes":1888,"imports":[],"format":"esm"},"src/interactive/keyboard.ts":{"bytes":3391,"imports":[{"path":"src/core/state.ts","kind":"import-statement","original":"../core/state"}],"format":"esm"},"src/interactive/mouse.ts":{"bytes":3563,"imports":[{"path":"src/core/state.ts","kind":"import-statement","original":"../core/state"}],"format":"esm"},"src/interactive/index.ts":{"bytes":206,"imports":[{"path":"src/interactive/loop.ts","kind":"import-statement","original":"./loop"},{"path":"src/interactive/keyboard.ts","kind":"import-statement","original":"./keyboard"},{"path":"src/interactive/mouse.ts","kind":"import-statement","original":"./mouse"}],"format":"esm"},"src/jsx-dev-runtime.ts":{"bytes":211,"imports":[{"path":"src/jsx-runtime.ts","kind":"import-statement","original":"./jsx-runtime"}],"format":"esm"}},"outputs":{"dist/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":205},"dist/index.mjs":{"imports":[],"exports":["VERSION"],"entryPoint":"src/index.ts","inputs":{"src/index.ts":{"bytesInOutput":16}},"bytes":38},"dist/core.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":93},"dist/core.mjs":{"imports":[{"path":"dist/chunk-LUREDEUB.mjs","kind":"import-statement"},{"path":"dist/chunk-S6WF3XNF.mjs","kind":"import-statement"},{"path":"dist/chunk-ECB5HZOQ.mjs","kind":"import-statement"},{"path":"dist/chunk-CPJRQL2C.mjs","kind":"import-statement"},{"path":"dist/chunk-44RZHCII.mjs","kind":"import-statement"}],"exports":["batch","context","createContext","effect","popContext","pushContext","runWithContext","snapshotContext","state","sync"],"entryPoint":"src/core/index.ts","inputs":{"src/core/index.ts":{"bytesInOutput":0}},"bytes":389},"dist/dom.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":30353},"dist/dom.mjs":{"imports":[{"path":"dist/chunk-LUREDEUB.mjs","kind":"import-statement"},{"path":"dist/chunk-44RZHCII.mjs","kind":"import-statement"}],"exports":["f","reconcile","render"],"entryPoint":"src/dom/index.ts","inputs":{"src/dom/index.ts":{"bytesInOutput":4899}},"bytes":5031},"dist/router.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":16422},"dist/router.mjs":{"imports":[{"path":"dist/chunk-LUREDEUB.mjs","kind":"import-statement"},{"path":"dist/chunk-ECB5HZOQ.mjs","kind":"import-statement"},{"path":"dist/chunk-CPJRQL2C.mjs","kind":"import-statement"},{"path":"dist/chunk-44RZHCII.mjs","kind":"import-statement"},{"path":"dist/chunk-ZCO4NIGC.mjs","kind":"import-statement"}],"exports":["Link","Outlet","Route","Routes","router"],"entryPoint":"src/router/index.ts","inputs":{"src/router/index.ts":{"bytesInOutput":0},"src/router/utils.ts":{"bytesInOutput":1073},"src/router/router.ts":{"bytesInOutput":743},"src/router/dom/Route.tsx":{"bytesInOutput":26},"src/router/dom/Routes.tsx":{"bytesInOutput":638},"src/router/dom/Outlet.tsx":{"bytesInOutput":238},"src/router/dom/Link.tsx":{"bytesInOutput":133}},"bytes":3112},"dist/chunk-LUREDEUB.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":2664},"dist/chunk-LUREDEUB.mjs":{"imports":[],"exports":["a","b","c","d","e","f"],"inputs":{"src/core/context.ts":{"bytesInOutput":450}},"bytes":501},"dist/canvas.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":14321},"dist/canvas.mjs":{"imports":[{"path":"dist/chunk-S6WF3XNF.mjs","kind":"import-statement"},{"path":"dist/chunk-CPJRQL2C.mjs","kind":"import-statement"},{"path":"dist/chunk-44RZHCII.mjs","kind":"import-statement"},{"path":"dist/chunk-ZCO4NIGC.mjs","kind":"import-statement"}],"exports":["Canvas","DrawArc","DrawCircle","DrawLine","DrawPath","DrawRect","DrawText"],"entryPoint":"src/canvas/index.ts","inputs":{"src/canvas/Canvas.tsx":{"bytesInOutput":1875},"src/canvas/index.ts":{"bytesInOutput":0},"src/canvas/dom/DrawRect.tsx":{"bytesInOutput":60},"src/canvas/dom/DrawCircle.tsx":{"bytesInOutput":62},"src/canvas/dom/DrawArc.tsx":{"bytesInOutput":59},"src/canvas/dom/DrawLine.tsx":{"bytesInOutput":60},"src/canvas/dom/DrawText.tsx":{"bytesInOutput":60},"src/canvas/dom/DrawPath.tsx":{"bytesInOutput":60}},"bytes":2494},"dist/chunk-S6WF3XNF.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":2516},"dist/chunk-S6WF3XNF.mjs":{"imports":[{"path":"dist/chunk-44RZHCII.mjs","kind":"import-statement"}],"exports":["a","b","c"],"inputs":{"src/core/lifecycle.ts":{"bytesInOutput":340}},"bytes":425},"dist/interactive.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":14770},"dist/interactive.mjs":{"imports":[{"path":"dist/chunk-ECB5HZOQ.mjs","kind":"import-statement"},{"path":"dist/chunk-CPJRQL2C.mjs","kind":"import-statement"},{"path":"dist/chunk-44RZHCII.mjs","kind":"import-statement"}],"exports":["Keys","MouseButton","keyboard","loop","mouse"],"entryPoint":"src/interactive/index.ts","inputs":{"src/interactive/loop.ts":{"bytesInOutput":459},"src/interactive/index.ts":{"bytesInOutput":0},"src/interactive/keyboard.ts":{"bytesInOutput":1309},"src/interactive/mouse.ts":{"bytesInOutput":1235}},"bytes":3173},"dist/chunk-ECB5HZOQ.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":8537},"dist/chunk-ECB5HZOQ.mjs":{"imports":[{"path":"dist/chunk-CPJRQL2C.mjs","kind":"import-statement"},{"path":"dist/chunk-44RZHCII.mjs","kind":"import-statement"}],"exports":["a"],"inputs":{"src/core/state.ts":{"bytesInOutput":1555}},"bytes":1660},"dist/chunk-CPJRQL2C.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":3712},"dist/chunk-CPJRQL2C.mjs":{"imports":[{"path":"dist/chunk-44RZHCII.mjs","kind":"import-statement"}],"exports":["a","b"],"inputs":{"src/core/reactive.ts":{"bytesInOutput":590}},"bytes":668},"dist/chunk-44RZHCII.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":5647},"dist/chunk-44RZHCII.mjs":{"imports":[],"exports":["a","b","c","d","e","f","g","h"],"inputs":{"src/core/effect.ts":{"bytesInOutput":751},"src/core/hook.ts":{"bytesInOutput":227}},"bytes":1038},"dist/jsx-runtime.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":93},"dist/jsx-runtime.mjs":{"imports":[{"path":"dist/chunk-ZCO4NIGC.mjs","kind":"import-statement"}],"exports":["Fragment","jsx","jsxs"],"entryPoint":"src/jsx-runtime.ts","inputs":{},"bytes":82},"dist/jsx-dev-runtime.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":510},"dist/jsx-dev-runtime.mjs":{"imports":[{"path":"dist/chunk-ZCO4NIGC.mjs","kind":"import-statement"}],"exports":["Fragment","jsxDEV"],"entryPoint":"src/jsx-dev-runtime.ts","inputs":{"src/jsx-dev-runtime.ts":{"bytesInOutput":40}},"bytes":123},"dist/chunk-ZCO4NIGC.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":1278},"dist/chunk-ZCO4NIGC.mjs":{"imports":[],"exports":["a","b","c"],"inputs":{"src/jsx-runtime.ts":{"bytesInOutput":177}},"bytes":207}}}
1
+ {"inputs":{"src/index.ts":{"bytes":68,"imports":[],"format":"esm"},"src/core/hook.ts":{"bytes":986,"imports":[],"format":"esm"},"src/core/lifecycle.ts":{"bytes":3525,"imports":[{"path":"src/core/hook.ts","kind":"import-statement","original":"./hook"}],"format":"esm"},"src/core/reactive.ts":{"bytes":2080,"imports":[{"path":"src/core/lifecycle.ts","kind":"import-statement","original":"./lifecycle"}],"format":"esm"},"src/core/devtools.ts":{"bytes":1841,"imports":[],"format":"esm"},"src/core/state.ts":{"bytes":5816,"imports":[{"path":"src/core/reactive.ts","kind":"import-statement","original":"./reactive"},{"path":"src/core/lifecycle.ts","kind":"import-statement","original":"./lifecycle"},{"path":"src/core/hook.ts","kind":"import-statement","original":"./hook"},{"path":"src/core/devtools.ts","kind":"import-statement","original":"./devtools"}],"format":"esm"},"src/core/context.ts":{"bytes":1400,"imports":[],"format":"esm"},"src/ref/ref.ts":{"bytes":803,"imports":[{"path":"src/core/hook.ts","kind":"import-statement","original":"../core/hook"}],"format":"esm"},"src/ref/forwardRef.ts":{"bytes":1604,"imports":[],"format":"esm"},"src/ref/index.ts":{"bytes":268,"imports":[{"path":"src/ref/ref.ts","kind":"import-statement","original":"./ref"},{"path":"src/ref/forwardRef.ts","kind":"import-statement","original":"./forwardRef"}],"format":"esm"},"src/core/index.ts":{"bytes":406,"imports":[{"path":"src/core/state.ts","kind":"import-statement","original":"./state"},{"path":"src/core/lifecycle.ts","kind":"import-statement","original":"./lifecycle"},{"path":"src/core/context.ts","kind":"import-statement","original":"./context"},{"path":"src/ref/index.ts","kind":"import-statement","original":"../ref"}],"format":"esm"},"src/dom/f.ts":{"bytes":285,"imports":[],"format":"esm"},"src/dom/render.ts":{"bytes":15127,"imports":[{"path":"src/core/context.ts","kind":"import-statement","original":"../core/context"},{"path":"src/core/hook.ts","kind":"import-statement","original":"../core/hook"},{"path":"src/core/lifecycle.ts","kind":"import-statement","original":"../core/lifecycle"}],"format":"esm"},"src/dom/hydrate.ts":{"bytes":9375,"imports":[{"path":"src/core/hook.ts","kind":"import-statement","original":"../core/hook"},{"path":"src/core/context.ts","kind":"import-statement","original":"../core/context"},{"path":"src/core/lifecycle.ts","kind":"import-statement","original":"../core/lifecycle"},{"path":"src/dom/render.ts","kind":"dynamic-import","original":"./render"}],"format":"esm"},"src/dom/components/Portal.tsx":{"bytes":1932,"imports":[{"path":"src/core/lifecycle.ts","kind":"import-statement","original":"../../core/lifecycle"},{"path":"src/core/hook.ts","kind":"import-statement","original":"../../core/hook"},{"path":"src/dom/render.ts","kind":"import-statement","original":"../render"}],"format":"esm"},"src/dom/components/suspenseContext.ts":{"bytes":372,"imports":[{"path":"src/core/context.ts","kind":"import-statement","original":"../../core/context"}],"format":"esm"},"src/dom/components/Suspense.tsx":{"bytes":1790,"imports":[{"path":"src/core/state.ts","kind":"import-statement","original":"../../core/state"},{"path":"src/core/hook.ts","kind":"import-statement","original":"../../core/hook"},{"path":"src/dom/components/suspenseContext.ts","kind":"import-statement","original":"./suspenseContext"}],"format":"esm"},"src/dom/components/ErrorBoundary.tsx":{"bytes":2860,"imports":[{"path":"src/core/state.ts","kind":"import-statement","original":"../../core/state"},{"path":"src/core/hook.ts","kind":"import-statement","original":"../../core/hook"}],"format":"esm"},"src/dom/components/lazy.ts":{"bytes":1767,"imports":[{"path":"src/dom/components/suspenseContext.ts","kind":"import-statement","original":"./suspenseContext"}],"format":"esm"},"src/dom/components/index.ts":{"bytes":598,"imports":[{"path":"src/dom/components/Portal.tsx","kind":"import-statement","original":"./Portal"},{"path":"src/dom/components/Suspense.tsx","kind":"import-statement","original":"./Suspense"},{"path":"src/dom/components/ErrorBoundary.tsx","kind":"import-statement","original":"./ErrorBoundary"},{"path":"src/dom/components/lazy.ts","kind":"import-statement","original":"./lazy"},{"path":"src/dom/components/suspenseContext.ts","kind":"import-statement","original":"./suspenseContext"},{"path":"src/dom/components/ErrorBoundary.tsx","kind":"import-statement","original":"./ErrorBoundary"}],"format":"esm"},"src/dom/index.ts":{"bytes":457,"imports":[{"path":"src/dom/f.ts","kind":"import-statement","original":"./f"},{"path":"src/dom/render.ts","kind":"import-statement","original":"./render"},{"path":"src/dom/hydrate.ts","kind":"import-statement","original":"./hydrate"},{"path":"src/dom/components/index.ts","kind":"import-statement","original":"./components"}],"format":"esm"},"src/server/escape.ts":{"bytes":364,"imports":[],"format":"esm"},"src/server/serverState.ts":{"bytes":896,"imports":[],"format":"esm"},"src/server/renderToString.ts":{"bytes":6572,"imports":[{"path":"src/server/escape.ts","kind":"import-statement","original":"./escape"},{"path":"src/server/serverState.ts","kind":"import-statement","original":"./serverState"},{"path":"src/core/hook.ts","kind":"import-statement","original":"../core/hook"},{"path":"src/core/context.ts","kind":"import-statement","original":"../core/context"}],"format":"esm"},"src/server/index.ts":{"bytes":243,"imports":[{"path":"src/server/renderToString.ts","kind":"import-statement","original":"./renderToString"},{"path":"src/server/serverState.ts","kind":"import-statement","original":"./serverState"}],"format":"esm"},"src/router/types.ts":{"bytes":807,"imports":[],"format":"esm"},"src/router/utils.ts":{"bytes":3745,"imports":[{"path":"./types","kind":"import-statement","external":true}],"format":"esm"},"src/router/router.ts":{"bytes":2599,"imports":[{"path":"src/core/reactive.ts","kind":"import-statement","original":"../core/reactive"},{"path":"src/core/context.ts","kind":"import-statement","original":"../core/context"},{"path":"src/router/utils.ts","kind":"import-statement","original":"./utils"}],"format":"esm"},"src/jsx-runtime.ts":{"bytes":727,"imports":[],"format":"esm"},"src/router/dom/Route.tsx":{"bytes":106,"imports":[],"format":"esm"},"src/router/dom/Routes.tsx":{"bytes":2578,"imports":[{"path":"src/jsx-runtime.ts","kind":"import-statement","original":"../../jsx-runtime"},{"path":"src/router/router.ts","kind":"import-statement","original":"../router"},{"path":"src/router/utils.ts","kind":"import-statement","original":"../utils"},{"path":"src/router/dom/Route.tsx","kind":"import-statement","original":"./Route"}],"format":"esm"},"src/router/dom/Outlet.tsx":{"bytes":769,"imports":[{"path":"src/core/state.ts","kind":"import-statement","original":"../../core/state"},{"path":"src/core/context.ts","kind":"import-statement","original":"../../core/context"},{"path":"src/jsx-runtime.ts","kind":"import-statement","original":"../../jsx-runtime"},{"path":"src/router/router.ts","kind":"import-statement","original":"../router"}],"format":"esm"},"src/router/dom/Link.tsx":{"bytes":441,"imports":[{"path":"src/jsx-runtime.ts","kind":"import-statement","original":"../../jsx-runtime"},{"path":"src/router/router.ts","kind":"import-statement","original":"../router"}],"format":"esm"},"src/router/index.ts":{"bytes":259,"imports":[{"path":"src/router/types.ts","kind":"import-statement","original":"./types"},{"path":"src/router/router.ts","kind":"import-statement","original":"./router"},{"path":"src/router/dom/Routes.tsx","kind":"import-statement","original":"./dom/Routes"},{"path":"src/router/dom/Route.tsx","kind":"import-statement","original":"./dom/Route"},{"path":"src/router/dom/Outlet.tsx","kind":"import-statement","original":"./dom/Outlet"},{"path":"src/router/dom/Link.tsx","kind":"import-statement","original":"./dom/Link"}],"format":"esm"},"src/canvas/Canvas.tsx":{"bytes":5538,"imports":[{"path":"src/core/lifecycle.ts","kind":"import-statement","original":"../core/lifecycle"},{"path":"src/core/reactive.ts","kind":"import-statement","original":"../core/reactive"},{"path":"src/jsx-runtime.ts","kind":"import-statement","original":"flexium/jsx-runtime"}],"format":"esm"},"src/canvas/dom/DrawRect.tsx":{"bytes":305,"imports":[{"path":"src/core/lifecycle.ts","kind":"import-statement","original":"../../core/lifecycle"},{"path":"src/canvas/Canvas.tsx","kind":"import-statement","original":"../Canvas"}],"format":"esm"},"src/canvas/dom/DrawCircle.tsx":{"bytes":315,"imports":[{"path":"src/core/lifecycle.ts","kind":"import-statement","original":"../../core/lifecycle"},{"path":"src/canvas/Canvas.tsx","kind":"import-statement","original":"../Canvas"}],"format":"esm"},"src/canvas/dom/DrawArc.tsx":{"bytes":300,"imports":[{"path":"src/core/lifecycle.ts","kind":"import-statement","original":"../../core/lifecycle"},{"path":"src/canvas/Canvas.tsx","kind":"import-statement","original":"../Canvas"}],"format":"esm"},"src/canvas/dom/DrawLine.tsx":{"bytes":305,"imports":[{"path":"src/core/lifecycle.ts","kind":"import-statement","original":"../../core/lifecycle"},{"path":"src/canvas/Canvas.tsx","kind":"import-statement","original":"../Canvas"}],"format":"esm"},"src/canvas/dom/DrawText.tsx":{"bytes":305,"imports":[{"path":"src/core/lifecycle.ts","kind":"import-statement","original":"../../core/lifecycle"},{"path":"src/canvas/Canvas.tsx","kind":"import-statement","original":"../Canvas"}],"format":"esm"},"src/canvas/dom/DrawPath.tsx":{"bytes":305,"imports":[{"path":"src/core/lifecycle.ts","kind":"import-statement","original":"../../core/lifecycle"},{"path":"src/canvas/Canvas.tsx","kind":"import-statement","original":"../Canvas"}],"format":"esm"},"src/canvas/index.ts":{"bytes":427,"imports":[{"path":"src/canvas/Canvas.tsx","kind":"import-statement","original":"./Canvas"},{"path":"src/canvas/dom/DrawRect.tsx","kind":"import-statement","original":"./dom/DrawRect"},{"path":"src/canvas/dom/DrawCircle.tsx","kind":"import-statement","original":"./dom/DrawCircle"},{"path":"src/canvas/dom/DrawArc.tsx","kind":"import-statement","original":"./dom/DrawArc"},{"path":"src/canvas/dom/DrawLine.tsx","kind":"import-statement","original":"./dom/DrawLine"},{"path":"src/canvas/dom/DrawText.tsx","kind":"import-statement","original":"./dom/DrawText"},{"path":"src/canvas/dom/DrawPath.tsx","kind":"import-statement","original":"./dom/DrawPath"}],"format":"esm"},"src/interactive/loop.ts":{"bytes":1684,"imports":[],"format":"esm"},"src/interactive/types.ts":{"bytes":1937,"imports":[],"format":"esm"},"src/interactive/keyboard.ts":{"bytes":2405,"imports":[{"path":"src/core/state.ts","kind":"import-statement","original":"../core/state"},{"path":"src/interactive/types.ts","kind":"import-statement","original":"./types"}],"format":"esm"},"src/interactive/mouse.ts":{"bytes":3183,"imports":[{"path":"src/core/state.ts","kind":"import-statement","original":"../core/state"},{"path":"src/interactive/types.ts","kind":"import-statement","original":"./types"}],"format":"esm"},"src/interactive/index.ts":{"bytes":206,"imports":[{"path":"src/interactive/loop.ts","kind":"import-statement","original":"./loop"},{"path":"src/interactive/keyboard.ts","kind":"import-statement","original":"./keyboard"},{"path":"src/interactive/mouse.ts","kind":"import-statement","original":"./mouse"}],"format":"esm"},"src/jsx-dev-runtime.ts":{"bytes":211,"imports":[{"path":"src/jsx-runtime.ts","kind":"import-statement","original":"./jsx-runtime"}],"format":"esm"}},"outputs":{"dist/jsx-dev-runtime.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":510},"dist/jsx-dev-runtime.mjs":{"imports":[{"path":"dist/chunk-ZCO4NIGC.mjs","kind":"import-statement"}],"exports":["Fragment","jsxDEV"],"entryPoint":"src/jsx-dev-runtime.ts","inputs":{"src/jsx-dev-runtime.ts":{"bytesInOutput":40}},"bytes":123},"dist/render-UIWHIMS2.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":93},"dist/render-UIWHIMS2.mjs":{"imports":[{"path":"dist/chunk-E75BJDOQ.mjs","kind":"import-statement"},{"path":"dist/chunk-3DKZ2J4D.mjs","kind":"import-statement"},{"path":"dist/chunk-IWFEXW4F.mjs","kind":"import-statement"},{"path":"dist/chunk-5PNH2ARD.mjs","kind":"import-statement"}],"exports":["reconcile","render"],"entryPoint":"src/dom/render.ts","inputs":{},"bytes":161},"dist/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":205},"dist/index.mjs":{"imports":[],"exports":["VERSION"],"entryPoint":"src/index.ts","inputs":{"src/index.ts":{"bytesInOutput":16}},"bytes":38},"dist/core.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":3072},"dist/core.mjs":{"imports":[{"path":"dist/chunk-3DKZ2J4D.mjs","kind":"import-statement"},{"path":"dist/chunk-WGKD63GN.mjs","kind":"import-statement"},{"path":"dist/chunk-JY6CE6RN.mjs","kind":"import-statement"},{"path":"dist/chunk-IWFEXW4F.mjs","kind":"import-statement"},{"path":"dist/chunk-5PNH2ARD.mjs","kind":"import-statement"}],"exports":["context","createContext","effect","forwardRef","ref","state","sync"],"entryPoint":"src/core/index.ts","inputs":{"src/core/index.ts":{"bytesInOutput":0},"src/ref/ref.ts":{"bytesInOutput":42},"src/ref/index.ts":{"bytesInOutput":0},"src/ref/forwardRef.ts":{"bytesInOutput":131}},"bytes":479},"dist/dom.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":27819},"dist/dom.mjs":{"imports":[{"path":"dist/chunk-E75BJDOQ.mjs","kind":"import-statement"},{"path":"dist/chunk-3DKZ2J4D.mjs","kind":"import-statement"},{"path":"dist/chunk-WGKD63GN.mjs","kind":"import-statement"},{"path":"dist/chunk-JY6CE6RN.mjs","kind":"import-statement"},{"path":"dist/chunk-IWFEXW4F.mjs","kind":"import-statement"},{"path":"dist/chunk-5PNH2ARD.mjs","kind":"import-statement"},{"path":"dist/render-UIWHIMS2.mjs","kind":"dynamic-import"}],"exports":["ErrorBoundary","Portal","Suspense","f","hydrate","lazy","reconcile","render","suspenseContext"],"entryPoint":"src/dom/index.ts","inputs":{"src/dom/f.ts":{"bytesInOutput":70},"src/dom/index.ts":{"bytesInOutput":0},"src/dom/hydrate.ts":{"bytesInOutput":2740},"src/dom/components/Portal.tsx":{"bytesInOutput":491},"src/dom/components/index.ts":{"bytesInOutput":0},"src/dom/components/suspenseContext.ts":{"bytesInOutput":71},"src/dom/components/Suspense.tsx":{"bytesInOutput":294},"src/dom/components/ErrorBoundary.tsx":{"bytesInOutput":500},"src/dom/components/lazy.ts":{"bytesInOutput":249}},"bytes":4823},"dist/chunk-E75BJDOQ.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":23945},"dist/chunk-E75BJDOQ.mjs":{"imports":[{"path":"dist/chunk-3DKZ2J4D.mjs","kind":"import-statement"},{"path":"dist/chunk-IWFEXW4F.mjs","kind":"import-statement"},{"path":"dist/chunk-5PNH2ARD.mjs","kind":"import-statement"}],"exports":["a","b"],"inputs":{"src/dom/render.ts":{"bytesInOutput":4853}},"bytes":4999},"dist/server.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":12945},"dist/server.mjs":{"imports":[{"path":"dist/chunk-3DKZ2J4D.mjs","kind":"import-statement"},{"path":"dist/chunk-5PNH2ARD.mjs","kind":"import-statement"}],"exports":["getIsServer","renderToStaticMarkup","renderToString"],"entryPoint":"src/server/index.ts","inputs":{"src/server/escape.ts":{"bytesInOutput":157},"src/server/serverState.ts":{"bytesInOutput":186},"src/server/renderToString.ts":{"bytesInOutput":2125},"src/server/index.ts":{"bytesInOutput":0}},"bytes":2629},"dist/router.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":16422},"dist/router.mjs":{"imports":[{"path":"dist/chunk-3DKZ2J4D.mjs","kind":"import-statement"},{"path":"dist/chunk-WGKD63GN.mjs","kind":"import-statement"},{"path":"dist/chunk-JY6CE6RN.mjs","kind":"import-statement"},{"path":"dist/chunk-IWFEXW4F.mjs","kind":"import-statement"},{"path":"dist/chunk-5PNH2ARD.mjs","kind":"import-statement"},{"path":"dist/chunk-ZCO4NIGC.mjs","kind":"import-statement"}],"exports":["Link","Outlet","Route","Routes","router"],"entryPoint":"src/router/index.ts","inputs":{"src/router/index.ts":{"bytesInOutput":0},"src/router/utils.ts":{"bytesInOutput":1073},"src/router/router.ts":{"bytesInOutput":743},"src/router/dom/Route.tsx":{"bytesInOutput":26},"src/router/dom/Routes.tsx":{"bytesInOutput":638},"src/router/dom/Outlet.tsx":{"bytesInOutput":238},"src/router/dom/Link.tsx":{"bytesInOutput":133}},"bytes":3141},"dist/chunk-3DKZ2J4D.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":2198},"dist/chunk-3DKZ2J4D.mjs":{"imports":[],"exports":["a","b","c","d"],"inputs":{"src/core/context.ts":{"bytesInOutput":284}},"bytes":316},"dist/canvas.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":12793},"dist/canvas.mjs":{"imports":[{"path":"dist/chunk-JY6CE6RN.mjs","kind":"import-statement"},{"path":"dist/chunk-IWFEXW4F.mjs","kind":"import-statement"},{"path":"dist/chunk-5PNH2ARD.mjs","kind":"import-statement"},{"path":"dist/chunk-ZCO4NIGC.mjs","kind":"import-statement"}],"exports":["Canvas","DrawArc","DrawCircle","DrawLine","DrawPath","DrawRect","DrawText"],"entryPoint":"src/canvas/index.ts","inputs":{"src/canvas/Canvas.tsx":{"bytesInOutput":1875},"src/canvas/index.ts":{"bytesInOutput":0},"src/canvas/dom/DrawRect.tsx":{"bytesInOutput":60},"src/canvas/dom/DrawCircle.tsx":{"bytesInOutput":62},"src/canvas/dom/DrawArc.tsx":{"bytesInOutput":59},"src/canvas/dom/DrawLine.tsx":{"bytesInOutput":60},"src/canvas/dom/DrawText.tsx":{"bytesInOutput":60},"src/canvas/dom/DrawPath.tsx":{"bytesInOutput":60}},"bytes":2494},"dist/interactive.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":15153},"dist/interactive.mjs":{"imports":[{"path":"dist/chunk-WGKD63GN.mjs","kind":"import-statement"},{"path":"dist/chunk-JY6CE6RN.mjs","kind":"import-statement"},{"path":"dist/chunk-IWFEXW4F.mjs","kind":"import-statement"},{"path":"dist/chunk-5PNH2ARD.mjs","kind":"import-statement"}],"exports":["Keys","MouseButton","keyboard","loop","mouse"],"entryPoint":"src/interactive/index.ts","inputs":{"src/interactive/loop.ts":{"bytesInOutput":459},"src/interactive/index.ts":{"bytesInOutput":0},"src/interactive/types.ts":{"bytesInOutput":701},"src/interactive/keyboard.ts":{"bytesInOutput":689},"src/interactive/mouse.ts":{"bytesInOutput":1150}},"bytes":3198},"dist/chunk-WGKD63GN.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":11319},"dist/chunk-WGKD63GN.mjs":{"imports":[{"path":"dist/chunk-JY6CE6RN.mjs","kind":"import-statement"},{"path":"dist/chunk-IWFEXW4F.mjs","kind":"import-statement"},{"path":"dist/chunk-5PNH2ARD.mjs","kind":"import-statement"}],"exports":["a"],"inputs":{"src/core/devtools.ts":{"bytesInOutput":372},"src/core/state.ts":{"bytesInOutput":1581}},"bytes":2092},"dist/chunk-JY6CE6RN.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":3715},"dist/chunk-JY6CE6RN.mjs":{"imports":[{"path":"dist/chunk-IWFEXW4F.mjs","kind":"import-statement"}],"exports":["a","b"],"inputs":{"src/core/reactive.ts":{"bytesInOutput":590}},"bytes":668},"dist/chunk-IWFEXW4F.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":5910},"dist/chunk-IWFEXW4F.mjs":{"imports":[{"path":"dist/chunk-5PNH2ARD.mjs","kind":"import-statement"}],"exports":["a","b","c","d","e","f"],"inputs":{"src/core/lifecycle.ts":{"bytesInOutput":1072}},"bytes":1164},"dist/chunk-5PNH2ARD.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":1694},"dist/chunk-5PNH2ARD.mjs":{"imports":[],"exports":["a","b"],"inputs":{"src/core/hook.ts":{"bytesInOutput":227}},"bytes":250},"dist/jsx-runtime.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":93},"dist/jsx-runtime.mjs":{"imports":[{"path":"dist/chunk-ZCO4NIGC.mjs","kind":"import-statement"}],"exports":["Fragment","jsx","jsxs"],"entryPoint":"src/jsx-runtime.ts","inputs":{},"bytes":82},"dist/chunk-ZCO4NIGC.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":1278},"dist/chunk-ZCO4NIGC.mjs":{"imports":[],"exports":["a","b","c"],"inputs":{"src/jsx-runtime.ts":{"bytesInOutput":177}},"bytes":207}}}
@@ -0,0 +1,2 @@
1
+ 'use strict';var chunk6Z33DLMI_js=require('./chunk-6Z33DLMI.js');require('./chunk-PSKDIB7J.js'),require('./chunk-YWTD32NA.js'),require('./chunk-UWFVCKRU.js');Object.defineProperty(exports,"reconcile",{enumerable:true,get:function(){return chunk6Z33DLMI_js.a}});Object.defineProperty(exports,"render",{enumerable:true,get:function(){return chunk6Z33DLMI_js.b}});//# sourceMappingURL=render-QZAFAGIM.js.map
2
+ //# sourceMappingURL=render-QZAFAGIM.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"render-QZAFAGIM.js"}
@@ -0,0 +1,2 @@
1
+ export{a as reconcile,b as render}from'./chunk-E75BJDOQ.mjs';import'./chunk-3DKZ2J4D.mjs';import'./chunk-IWFEXW4F.mjs';import'./chunk-5PNH2ARD.mjs';//# sourceMappingURL=render-UIWHIMS2.mjs.map
2
+ //# sourceMappingURL=render-UIWHIMS2.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"render-UIWHIMS2.mjs"}
package/dist/router.d.cts CHANGED
@@ -1,4 +1,4 @@
1
- import { FNodeChild, FNode } from './dom.cjs';
1
+ import { F as FNodeChild, a as FNode } from './types-y2GGaXXk.cjs';
2
2
 
3
3
  interface Location {
4
4
  pathname: string;
package/dist/router.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { FNodeChild, FNode } from './dom.js';
1
+ import { F as FNodeChild, a as FNode } from './types-y2GGaXXk.js';
2
2
 
3
3
  interface Location {
4
4
  pathname: string;
package/dist/router.js CHANGED
@@ -1,2 +1,2 @@
1
- 'use strict';var chunkLUW7DIEW_js=require('./chunk-LUW7DIEW.js'),chunkAPAMPY43_js=require('./chunk-APAMPY43.js'),chunk7BXR4ZFD_js=require('./chunk-7BXR4ZFD.js');require('./chunk-ENWGYQNU.js');var chunkEXLNKYSH_js=require('./chunk-EXLNKYSH.js');function k(t){if(!t)return {};if(typeof URLSearchParams<"u"){let e=new URLSearchParams(t),r={};return e.forEach((o,n)=>r[n]=o),r}return t.substring(1).split("&").reduce((e,r)=>{let[o,n]=r.split("=");return o&&(e[decodeURIComponent(o)]=decodeURIComponent(n||"")),e},{})}function D(t){return !!(t.length>2048||t.includes("__proto__")||t.includes("constructor")||/^\s*javascript:/i.test(t))}function y(t){let e=[];return t.forEach(r=>{if(!r)return;let{path:o,component:n,children:s,beforeEnter:f}=r.props||{},u={path:o||"/",component:n,beforeEnter:f};if(s){let c=Array.isArray(s)?s:[s];u.children=y(c);}!u.children&&r.children&&r.children.length>0&&(u.children=y(r.children)),e.push(u);}),e}function E(t,e){for(let r of t){let o=r.path,n=j(o,e);if(n)return [{route:r,params:n.params,pathname:n.path}]}return null}function j(t,e){let r=t.split("/").filter(Boolean),o=e.split("/").filter(Boolean);if(r.length!==o.length)return null;let n={};for(let s=0;s<r.length;s++){let f=r[s],u=o[s];if(f.startsWith(":")){let c=f.slice(1);n[c]=u;}else if(f!==u)return null}return {params:n,path:e}}var w=chunkLUW7DIEW_js.a(null),p=chunkLUW7DIEW_js.a(0),_=()=>({pathname:"/",search:"",hash:"",query:{}}),v=()=>typeof window>"u"?_():{pathname:window.location.pathname,search:window.location.search,hash:window.location.hash,query:k(window.location.search)},l=null,g=null,F=false;function N(){if(l&&g)return [l,g];l=chunk7BXR4ZFD_js.a(v());let t=e=>{l&&(l.pathname=e.pathname,l.search=e.search,l.hash=e.hash,l.query=e.query);};return g=e=>{if(typeof window>"u")return;if(D(e)){console.error("[Flexium Router] Blocked navigation to unsafe path:",e);return}window.history.pushState({},"",e);let r=v();t(r);},typeof window<"u"&&!F&&(window.addEventListener("popstate",()=>{t(v());}),F=true),[l,g]}function m(){let t=chunkLUW7DIEW_js.b(w);if(!t)throw new Error("router() must be called within a <Routes> component");return t}function R(t){return null}function A(t){return t&&typeof t=="object"&&("type"in t||Array.isArray(t))}function q(t){let[e,r]=N(),o=Array.isArray(t.children)?t.children:[t.children],n=o.filter(i=>A(i)&&i.type===R),s=o.filter(i=>!A(i)||i.type!==R),f=y(n),u=e.pathname,c=E(f,u)||[],S=c.length>0?c[c.length-1].params:{},U={location:e,navigate:r,matches:c,params:S},x=null;if(c.length>0){let i=c[0],L=i.route.component,h=u;i.route.beforeEnter?i.route.beforeEnter(i.params)!==false&&(x=chunkEXLNKYSH_js.a(p.Provider,{value:1,key:h,children:chunkEXLNKYSH_js.a(L,{params:i.params,key:h})})):x=chunkEXLNKYSH_js.a(p.Provider,{value:1,key:h,children:chunkEXLNKYSH_js.a(L,{params:i.params,key:h})});}return chunkEXLNKYSH_js.a(w.Provider,{value:U,children:[...s,x]})}function B(){let t=m(),e=chunkLUW7DIEW_js.b(p)||0,[r]=chunkAPAMPY43_js.a(()=>t.matches);if(e>=r.length)return null;let o=r[e],n=o.route.component;return o.route.beforeEnter&&o.route.beforeEnter(o.params)===false?null:chunkEXLNKYSH_js.a(p.Provider,{value:e+1,children:chunkEXLNKYSH_js.a(n,{params:o.params})})}function M(t){let e=m();return chunkEXLNKYSH_js.a("a",{href:t.to,class:t.class,onclick:r=>{r.preventDefault(),e.navigate(t.to);},children:t.children})}exports.Link=M;exports.Outlet=B;exports.Route=R;exports.Routes=q;exports.router=m;//# sourceMappingURL=router.js.map
1
+ 'use strict';var chunkPSKDIB7J_js=require('./chunk-PSKDIB7J.js'),chunkLTT43APF_js=require('./chunk-LTT43APF.js'),chunk6VIRXD2Y_js=require('./chunk-6VIRXD2Y.js');require('./chunk-YWTD32NA.js'),require('./chunk-UWFVCKRU.js');var chunkEXLNKYSH_js=require('./chunk-EXLNKYSH.js');function k(t){if(!t)return {};if(typeof URLSearchParams<"u"){let e=new URLSearchParams(t),r={};return e.forEach((o,n)=>r[n]=o),r}return t.substring(1).split("&").reduce((e,r)=>{let[o,n]=r.split("=");return o&&(e[decodeURIComponent(o)]=decodeURIComponent(n||"")),e},{})}function D(t){return !!(t.length>2048||t.includes("__proto__")||t.includes("constructor")||/^\s*javascript:/i.test(t))}function y(t){let e=[];return t.forEach(r=>{if(!r)return;let{path:o,component:n,children:s,beforeEnter:f}=r.props||{},u={path:o||"/",component:n,beforeEnter:f};if(s){let c=Array.isArray(s)?s:[s];u.children=y(c);}!u.children&&r.children&&r.children.length>0&&(u.children=y(r.children)),e.push(u);}),e}function E(t,e){for(let r of t){let o=r.path,n=j(o,e);if(n)return [{route:r,params:n.params,pathname:n.path}]}return null}function j(t,e){let r=t.split("/").filter(Boolean),o=e.split("/").filter(Boolean);if(r.length!==o.length)return null;let n={};for(let s=0;s<r.length;s++){let f=r[s],u=o[s];if(f.startsWith(":")){let c=f.slice(1);n[c]=u;}else if(f!==u)return null}return {params:n,path:e}}var w=chunkPSKDIB7J_js.a(null),p=chunkPSKDIB7J_js.a(0),_=()=>({pathname:"/",search:"",hash:"",query:{}}),v=()=>typeof window>"u"?_():{pathname:window.location.pathname,search:window.location.search,hash:window.location.hash,query:k(window.location.search)},l=null,g=null,F=false;function N(){if(l&&g)return [l,g];l=chunk6VIRXD2Y_js.a(v());let t=e=>{l&&(l.pathname=e.pathname,l.search=e.search,l.hash=e.hash,l.query=e.query);};return g=e=>{if(typeof window>"u")return;if(D(e)){console.error("[Flexium Router] Blocked navigation to unsafe path:",e);return}window.history.pushState({},"",e);let r=v();t(r);},typeof window<"u"&&!F&&(window.addEventListener("popstate",()=>{t(v());}),F=true),[l,g]}function m(){let t=chunkPSKDIB7J_js.b(w);if(!t)throw new Error("router() must be called within a <Routes> component");return t}function R(t){return null}function A(t){return t&&typeof t=="object"&&("type"in t||Array.isArray(t))}function q(t){let[e,r]=N(),o=Array.isArray(t.children)?t.children:[t.children],n=o.filter(i=>A(i)&&i.type===R),s=o.filter(i=>!A(i)||i.type!==R),f=y(n),u=e.pathname,c=E(f,u)||[],S=c.length>0?c[c.length-1].params:{},U={location:e,navigate:r,matches:c,params:S},x=null;if(c.length>0){let i=c[0],L=i.route.component,h=u;i.route.beforeEnter?i.route.beforeEnter(i.params)!==false&&(x=chunkEXLNKYSH_js.a(p.Provider,{value:1,key:h,children:chunkEXLNKYSH_js.a(L,{params:i.params,key:h})})):x=chunkEXLNKYSH_js.a(p.Provider,{value:1,key:h,children:chunkEXLNKYSH_js.a(L,{params:i.params,key:h})});}return chunkEXLNKYSH_js.a(w.Provider,{value:U,children:[...s,x]})}function B(){let t=m(),e=chunkPSKDIB7J_js.b(p)||0,[r]=chunkLTT43APF_js.a(()=>t.matches);if(e>=r.length)return null;let o=r[e],n=o.route.component;return o.route.beforeEnter&&o.route.beforeEnter(o.params)===false?null:chunkEXLNKYSH_js.a(p.Provider,{value:e+1,children:chunkEXLNKYSH_js.a(n,{params:o.params})})}function M(t){let e=m();return chunkEXLNKYSH_js.a("a",{href:t.to,class:t.class,onclick:r=>{r.preventDefault(),e.navigate(t.to);},children:t.children})}exports.Link=M;exports.Outlet=B;exports.Route=R;exports.Routes=q;exports.router=m;//# sourceMappingURL=router.js.map
2
2
  //# sourceMappingURL=router.js.map