@fynixorg/ui 1.0.3 → 1.0.5

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 (86) hide show
  1. package/dist/build.d.ts +1 -0
  2. package/dist/context/context.d.ts +2 -0
  3. package/dist/context/context.js +3 -0
  4. package/dist/context/context.js.map +1 -1
  5. package/dist/custom/button.d.ts +19 -0
  6. package/dist/custom/button.js +3 -0
  7. package/dist/custom/button.js.map +1 -1
  8. package/dist/custom/index.d.ts +2 -0
  9. package/dist/custom/path.d.ts +20 -0
  10. package/dist/custom/path.js +3 -0
  11. package/dist/custom/path.js.map +2 -2
  12. package/dist/error/errorOverlay.d.ts +2 -0
  13. package/dist/error/errorOverlay.js +4 -0
  14. package/dist/error/errorOverlay.js.map +1 -1
  15. package/dist/fynix/index.d.ts +4 -0
  16. package/dist/hooks/nixAsync.d.ts +13 -0
  17. package/dist/hooks/nixAsync.js +7 -4
  18. package/dist/hooks/nixAsync.js.map +1 -1
  19. package/dist/hooks/nixAsyncCache.d.ts +7 -0
  20. package/dist/hooks/nixAsyncCache.js +7 -4
  21. package/dist/hooks/nixAsyncCache.js.map +1 -1
  22. package/dist/hooks/nixAsyncDebounce.d.ts +28 -0
  23. package/dist/hooks/nixAsyncDebounce.js +9 -6
  24. package/dist/hooks/nixAsyncDebounce.js.map +1 -1
  25. package/dist/hooks/nixAsyncQuery.d.ts +40 -0
  26. package/dist/hooks/nixAsyncQuery.js +7 -4
  27. package/dist/hooks/nixAsyncQuery.js.map +1 -1
  28. package/dist/hooks/nixCallback.d.ts +30 -0
  29. package/dist/hooks/nixCallback.js +4 -0
  30. package/dist/hooks/nixCallback.js.map +1 -1
  31. package/dist/hooks/nixComputed.d.ts +94 -0
  32. package/dist/hooks/nixComputed.js +4 -0
  33. package/dist/hooks/nixComputed.js.map +1 -1
  34. package/dist/hooks/nixDebounce.d.ts +28 -0
  35. package/dist/hooks/nixDebounce.js +7 -4
  36. package/dist/hooks/nixDebounce.js.map +1 -1
  37. package/dist/hooks/nixEffect.d.ts +64 -0
  38. package/dist/hooks/nixEffect.js +6 -0
  39. package/dist/hooks/nixEffect.js.map +1 -1
  40. package/dist/hooks/nixForm.d.ts +15 -0
  41. package/dist/hooks/nixForm.js +11 -0
  42. package/dist/hooks/nixForm.js.map +1 -1
  43. package/dist/hooks/nixFormAsync.d.ts +20 -0
  44. package/dist/hooks/nixFormAsync.js +12 -0
  45. package/dist/hooks/nixFormAsync.js.map +1 -1
  46. package/dist/hooks/nixInterval.d.ts +19 -0
  47. package/dist/hooks/nixInterval.js +6 -3
  48. package/dist/hooks/nixInterval.js.map +1 -1
  49. package/dist/hooks/nixLazy.d.ts +19 -0
  50. package/dist/hooks/nixLazy.js +6 -2
  51. package/dist/hooks/nixLazy.js.map +1 -1
  52. package/dist/hooks/nixLazyAsync.d.ts +26 -0
  53. package/dist/hooks/nixLazyAsync.js +10 -6
  54. package/dist/hooks/nixLazyAsync.js.map +1 -1
  55. package/dist/hooks/nixLazyFormAsync.d.ts +29 -0
  56. package/dist/hooks/nixLazyFormAsync.js +18 -6
  57. package/dist/hooks/nixLazyFormAsync.js.map +1 -1
  58. package/dist/hooks/nixLocalStorage.d.ts +11 -0
  59. package/dist/hooks/nixLocalStorage.js +5 -2
  60. package/dist/hooks/nixLocalStorage.js.map +1 -1
  61. package/dist/hooks/nixMemo.d.ts +8 -0
  62. package/dist/hooks/nixMemo.js +3 -0
  63. package/dist/hooks/nixMemo.js.map +1 -1
  64. package/dist/hooks/nixPrevious.d.ts +7 -0
  65. package/dist/hooks/nixPrevious.js +3 -0
  66. package/dist/hooks/nixPrevious.js.map +1 -1
  67. package/dist/hooks/nixRef.d.ts +10 -0
  68. package/dist/hooks/nixRef.js +3 -0
  69. package/dist/hooks/nixRef.js.map +1 -1
  70. package/dist/hooks/nixState.d.ts +73 -0
  71. package/dist/hooks/nixState.js +3 -0
  72. package/dist/hooks/nixState.js.map +1 -1
  73. package/dist/hooks/nixStore.d.ts +9 -0
  74. package/dist/hooks/nixStore.js +3 -0
  75. package/dist/hooks/nixStore.js.map +1 -1
  76. package/dist/plugins/vite-plugin-res.d.ts +12 -0
  77. package/dist/plugins/vite-plugin-res.js +3 -0
  78. package/dist/plugins/vite-plugin-res.js.map +1 -1
  79. package/dist/router/router.d.ts +53 -0
  80. package/dist/router/router.js +25 -2
  81. package/dist/router/router.js.map +1 -1
  82. package/dist/runtime.d.ts +91 -0
  83. package/dist/runtime.js +18 -0
  84. package/dist/runtime.js.map +1 -1
  85. package/package.json +3 -2
  86. package/types/global.d.ts +29 -19
package/dist/runtime.js CHANGED
@@ -1,3 +1,5 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
1
3
  import { removeErrorOverlay, showErrorOverlay } from "./error/errorOverlay";
2
4
  import { setActiveContext, activeContext } from "./context/context.js";
3
5
  import { nixStore } from "./hooks/nixStore";
@@ -74,6 +76,7 @@ function createTextVNode(text) {
74
76
  }
75
77
  return { type: TEXT, props: { nodeValue: String(text) }, key: null };
76
78
  }
79
+ __name(createTextVNode, "createTextVNode");
77
80
  function h(type, props = {}, ...children) {
78
81
  if (props === null || typeof props !== "object" || Array.isArray(props))
79
82
  props = {};
@@ -101,6 +104,7 @@ function h(type, props = {}, ...children) {
101
104
  return { type: Fragment, props: { children: flatChildren }, key };
102
105
  return { type, props: { ...props, children: flatChildren }, key };
103
106
  }
107
+ __name(h, "h");
104
108
  h.Fragment = ({ children }) => children;
105
109
  const Fynix = h;
106
110
  Fynix.Fragment = h.Fragment;
@@ -133,6 +137,7 @@ function beginComponent(vnode) {
133
137
  ctx.version++;
134
138
  return ctx;
135
139
  }
140
+ __name(beginComponent, "beginComponent");
136
141
  function endComponent() {
137
142
  const ctx = activeContext;
138
143
  if (!ctx)
@@ -202,6 +207,7 @@ function endComponent() {
202
207
  });
203
208
  setActiveContext(null);
204
209
  }
210
+ __name(endComponent, "endComponent");
205
211
  function renderComponent(Component, props = {}) {
206
212
  const vnode = { type: Component, props };
207
213
  const ctx = beginComponent(vnode);
@@ -269,6 +275,7 @@ function renderComponent(Component, props = {}) {
269
275
  endComponent();
270
276
  }
271
277
  }
278
+ __name(renderComponent, "renderComponent");
272
279
  const delegatedEvents = /* @__PURE__ */ new Map();
273
280
  let eventIdCounter = 1;
274
281
  function ensureDelegated(eventType) {
@@ -290,6 +297,7 @@ function ensureDelegated(eventType) {
290
297
  }
291
298
  });
292
299
  }
300
+ __name(ensureDelegated, "ensureDelegated");
293
301
  function registerDelegatedHandler(el, eventName, fn) {
294
302
  if (!fn || el.nodeType !== 1)
295
303
  return;
@@ -304,6 +312,7 @@ function registerDelegatedHandler(el, eventName, fn) {
304
312
  }
305
313
  });
306
314
  }
315
+ __name(registerDelegatedHandler, "registerDelegatedHandler");
307
316
  function setProperty(el, key, value) {
308
317
  const k = key.toLowerCase();
309
318
  if (key === "r-class" || key === "rc") {
@@ -364,6 +373,7 @@ function setProperty(el, key, value) {
364
373
  if (value != null && value !== false)
365
374
  el.setAttribute(key, value);
366
375
  }
376
+ __name(setProperty, "setProperty");
367
377
  async function createDom(vnode, existing = null) {
368
378
  if (vnode == null || vnode === false)
369
379
  return document.createTextNode("");
@@ -423,6 +433,7 @@ async function createDom(vnode, existing = null) {
423
433
  vnode._domNode = el;
424
434
  return el;
425
435
  }
436
+ __name(createDom, "createDom");
426
437
  async function renderMaybeAsyncComponent(Component, props, vnode) {
427
438
  const ctx = beginComponent(vnode);
428
439
  removeErrorOverlay();
@@ -441,6 +452,7 @@ async function renderMaybeAsyncComponent(Component, props, vnode) {
441
452
  return h("div", { style: "color:red" }, `Error: ${err.message}`);
442
453
  }
443
454
  }
455
+ __name(renderMaybeAsyncComponent, "renderMaybeAsyncComponent");
444
456
  async function patch(parent, newVNode, oldVNode) {
445
457
  if (!(parent instanceof Node)) {
446
458
  console.error(
@@ -565,6 +577,7 @@ async function patch(parent, newVNode, oldVNode) {
565
577
  const oldChildren = oldVNode.props?.children || [];
566
578
  await patchChildren(el, newChildren, oldChildren);
567
579
  }
580
+ __name(patch, "patch");
568
581
  async function patchChildren(parent, newChildren, oldChildren) {
569
582
  if (!(parent instanceof Node))
570
583
  return;
@@ -635,6 +648,7 @@ async function patchChildren(parent, newChildren, oldChildren) {
635
648
  }
636
649
  }
637
650
  }
651
+ __name(patchChildren, "patchChildren");
638
652
  function unmountVNode(vnode) {
639
653
  if (!vnode)
640
654
  return;
@@ -699,6 +713,7 @@ function unmountVNode(vnode) {
699
713
  vnode._domNode = null;
700
714
  vnode._rendered = null;
701
715
  }
716
+ __name(unmountVNode, "unmountVNode");
702
717
  function updateProps(el, newProps = {}, oldProps = {}) {
703
718
  if (!el || el.nodeType !== 1)
704
719
  return;
@@ -727,6 +742,7 @@ function updateProps(el, newProps = {}, oldProps = {}) {
727
742
  setProperty(el, k, v);
728
743
  }
729
744
  }
745
+ __name(updateProps, "updateProps");
730
746
  function mount(AppComponent, root, hydrate = false, props = {}) {
731
747
  if (typeof root === "string") {
732
748
  const element = document.querySelector(root);
@@ -786,6 +802,7 @@ function mount(AppComponent, root, hydrate = false, props = {}) {
786
802
  isRendering = false;
787
803
  }
788
804
  }
805
+ __name(renderApp, "renderApp");
789
806
  rootRenderFn = renderApp;
790
807
  window.__fynix__ = window.__fynix__ || {};
791
808
  window.__fynix__.rerender = renderApp;
@@ -811,6 +828,7 @@ function mount(AppComponent, root, hydrate = false, props = {}) {
811
828
  }
812
829
  }
813
830
  }
831
+ __name(mount, "mount");
814
832
  export {
815
833
  Button,
816
834
  Fragment,
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../runtime.js"],
4
4
  "sourcesContent": ["import { removeErrorOverlay, showErrorOverlay } from \"./error/errorOverlay\";\r\nimport { setActiveContext, activeContext } from \"./context/context.js\";\r\nimport { nixStore } from \"./hooks/nixStore\";\r\nimport { nixState } from \"./hooks/nixState\";\r\nimport { nixEffect } from \"./hooks/nixEffect\";\r\nimport { nixAsync } from \"./hooks/nixAsync\";\r\nimport { nixMemo } from \"./hooks/nixMemo\";\r\nimport { nixCallback } from \"./hooks/nixCallback\";\r\nimport { nixComputed } from \"./hooks/nixComputed\";\r\nimport { nixDebounce } from \"./hooks/nixDebounce\";\r\nimport { nixInterval } from \"./hooks/nixInterval\";\r\nimport { nixRef } from \"./hooks/nixRef\";\r\nimport { nixLocalStorage } from \"./hooks/nixLocalStorage\";\r\nimport { nixPrevious } from \"./hooks/nixPrevious\";\r\nimport { nixLazy, Suspense } from \"./hooks/nixLazy.js\";\r\nimport { nixForm } from \"./hooks/nixForm.js\";\r\nimport { Path, Button } from \"./custom/index.js\";\r\n\r\n//new imports\r\nimport { nixAsyncCached } from \"./hooks/nixAsyncCache\";\r\nimport { nixAsyncDebounce } from \"./hooks/nixAsyncDebounce\";\r\nimport { nixAsyncQuery } from \"./hooks/nixAsyncQuery\";\r\nimport { nixEffectAlways } from \"./hooks/nixEffect\";\r\nimport { nixEffectOnce } from \"./hooks/nixEffect\";\r\nimport { nixFormAsync } from \"./hooks/nixFormAsync\";\r\nimport { nixLazyAsync } from \"./hooks/nixLazyAsync\";\r\nimport { nixLazyFormAsync } from \"./hooks/nixLazyFormAsync\";\r\nimport createFynix from \"./router/router.js\";\r\n/**\r\n * Symbol for text nodes\r\n * @type {symbol}\r\n */\r\nexport const TEXT = Symbol(\"text\");\r\n\r\n/**\r\n * Symbol for fragments\r\n * @type {symbol}\r\n */\r\nexport const Fragment = Symbol(\"Fragment\");\r\n\r\n/* ---------------------- Constants ---------------------- */\r\nconst BOOLEAN_ATTRS = new Set([\r\n \"checked\",\r\n \"selected\",\r\n \"disabled\",\r\n \"readonly\",\r\n \"multiple\",\r\n \"autoplay\",\r\n \"controls\",\r\n \"loop\",\r\n \"muted\",\r\n \"open\",\r\n \"required\",\r\n \"reversed\",\r\n \"scoped\",\r\n \"seamless\",\r\n \"autofocus\",\r\n \"novalidate\",\r\n \"formnovalidate\",\r\n]);\r\n\r\nconst DOM_PROPERTIES = new Set([\r\n \"value\",\r\n \"checked\",\r\n \"selected\",\r\n \"selectedIndex\",\r\n \"innerHTML\",\r\n \"textContent\",\r\n \"innerText\",\r\n]);\r\n\r\n/* ---------------------- Virtual Node Helpers ---------------------- */\r\n\r\n/**\r\n * Create a virtual text node, supporting reactive state.\r\n * @param {string|number|object} text\r\n * @returns {object} vnode\r\n */\r\nexport function createTextVNode(text) {\r\n if (text == null || text === false)\r\n return { type: TEXT, props: { nodeValue: \"\" }, key: null };\r\n\r\n if (text && typeof text === \"object\" && text._isNixState) {\r\n const vnode = {\r\n type: TEXT,\r\n props: { nodeValue: String(text.value) },\r\n key: null,\r\n _state: text,\r\n _cleanup: null, // FIX: Track subscription cleanup\r\n };\r\n\r\n // FIX: Store unsubscribe function for cleanup\r\n vnode._cleanup = text.subscribe(() => {\r\n if (vnode._domNode) vnode._domNode.nodeValue = String(text.value);\r\n });\r\n\r\n return vnode;\r\n }\r\n\r\n return { type: TEXT, props: { nodeValue: String(text) }, key: null };\r\n}\r\n\r\n/**\r\n * Create a virtual DOM node (element, fragment, or component).\r\n * @param {string|function|symbol} type\r\n * @param {object} [props={}]\r\n * @param {...any} children\r\n * @returns {object} vnode\r\n */\r\nexport function h(type, props = {}, ...children) {\r\n if (props === null || typeof props !== \"object\" || Array.isArray(props))\r\n props = {};\r\n const flatChildren = [];\r\n\r\n for (const c of children.flat(Infinity)) {\r\n if (c == null || c === false) continue;\r\n if (c && typeof c === \"object\" && c._isNixState)\r\n flatChildren.push(createTextVNode(c));\r\n else if (typeof c === \"string\" || typeof c === \"number\")\r\n flatChildren.push(createTextVNode(c));\r\n else if (c?.type === Fragment)\r\n flatChildren.push(\r\n ...(c.props.children || []).filter((x) => x != null && x !== false)\r\n );\r\n else if (c?.type) flatChildren.push(c);\r\n else flatChildren.push(createTextVNode(String(c)));\r\n }\r\n\r\n const key = props.key ?? null;\r\n if (key) delete props.key;\r\n\r\n if (type === Fragment)\r\n return { type: Fragment, props: { children: flatChildren }, key };\r\n return { type, props: { ...props, children: flatChildren }, key };\r\n}\r\n\r\nh.Fragment = ({ children }) => children;\r\nexport const Fynix = h;\r\nFynix.Fragment = h.Fragment;\r\n\r\n/* ---------------------- Component & Hooks ---------------------- */\r\n\r\n// FIX 1: Use WeakMap for automatic garbage collection\r\nconst componentInstances = new WeakMap();\r\nlet rootRenderFn = null;\r\n\r\n// FIX 2: Track pending rerenders to prevent race conditions\r\nconst pendingRerenders = new WeakSet();\r\n\r\n/**\r\n * Begin component context\r\n * @param {object} vnode\r\n * @returns {object} ctx\r\n */\r\nfunction beginComponent(vnode) {\r\n let ctx = componentInstances.get(vnode);\r\n if (!ctx) {\r\n ctx = {\r\n hooks: [],\r\n hookIndex: 0,\r\n effects: [],\r\n cleanups: [],\r\n _vnode: vnode,\r\n _accessedStates: new Set(),\r\n _subscriptions: new Set(),\r\n _subscriptionCleanups: [],\r\n version: 0,\r\n rerender: null,\r\n Component: vnode.type,\r\n _isMounted: false,\r\n _isRerendering: false,\r\n };\r\n componentInstances.set(vnode, ctx);\r\n }\r\n ctx.hookIndex = 0;\r\n ctx._accessedStates.clear();\r\n setActiveContext(ctx);\r\n ctx.version++;\r\n return ctx;\r\n}\r\n\r\n/**\r\n * End component context\r\n */\r\nfunction endComponent() {\r\n const ctx = activeContext;\r\n if (!ctx) return;\r\n\r\n ctx._accessedStates.forEach((state) => {\r\n if (!ctx._subscriptions.has(state)) {\r\n // FIX 3: Debounced rerender with race condition prevention\r\n if (!ctx.rerender) {\r\n let rerenderTimeout = null;\r\n\r\n ctx.rerender = () => {\r\n // Prevent multiple simultaneous rerenders\r\n if (ctx._isRerendering || pendingRerenders.has(ctx)) {\r\n return;\r\n }\r\n\r\n // Clear any pending timeout\r\n if (rerenderTimeout) {\r\n clearTimeout(rerenderTimeout);\r\n }\r\n\r\n // Debounce rerenders\r\n rerenderTimeout = setTimeout(() => {\r\n if (ctx._isRerendering || !ctx._isMounted) return;\r\n\r\n ctx._isRerendering = true;\r\n pendingRerenders.add(ctx);\r\n\r\n try {\r\n removeErrorOverlay();\r\n\r\n const vnode = ctx._vnode;\r\n const oldRendered = vnode._rendered;\r\n\r\n beginComponent(vnode);\r\n const newRendered = ctx.Component(vnode.props);\r\n endComponent();\r\n\r\n vnode._rendered = newRendered;\r\n\r\n const domNode = vnode._domNode;\r\n if (domNode && domNode.parentNode) {\r\n patch(domNode.parentNode, newRendered, oldRendered)\r\n .then(() => {\r\n vnode._domNode = newRendered?._domNode;\r\n })\r\n .finally(() => {\r\n ctx._isRerendering = false;\r\n pendingRerenders.delete(ctx);\r\n });\r\n } else if (rootRenderFn) {\r\n rootRenderFn().finally(() => {\r\n ctx._isRerendering = false;\r\n pendingRerenders.delete(ctx);\r\n });\r\n } else {\r\n ctx._isRerendering = false;\r\n pendingRerenders.delete(ctx);\r\n }\r\n } catch (err) {\r\n console.error(\"[Fynix] Component rerender error:\", err);\r\n showErrorOverlay(err);\r\n ctx._isRerendering = false;\r\n pendingRerenders.delete(ctx);\r\n }\r\n\r\n rerenderTimeout = null;\r\n }, 0);\r\n };\r\n }\r\n\r\n const unsub = state.subscribe(() => {\r\n if (ctx.rerender && ctx._isMounted) {\r\n if (typeof queueMicrotask === \"function\")\r\n queueMicrotask(ctx.rerender);\r\n else setTimeout(ctx.rerender, 0);\r\n }\r\n });\r\n ctx._subscriptions.add(state);\r\n ctx._subscriptionCleanups.push(unsub);\r\n }\r\n });\r\n\r\n setActiveContext(null);\r\n}\r\n\r\n/**\r\n * Safely render a component\r\n * @param {function} Component\r\n * @param {object} props\r\n * @returns {object} vnode\r\n */\r\nexport function renderComponent(Component, props = {}) {\r\n const vnode = { type: Component, props };\r\n const ctx = beginComponent(vnode);\r\n ctx.Component = Component;\r\n\r\n // FIX 4: Same debounced rerender pattern\r\n if (!ctx.rerender) {\r\n let rerenderTimeout = null;\r\n\r\n ctx.rerender = () => {\r\n if (ctx._isRerendering || pendingRerenders.has(ctx)) return;\r\n\r\n if (rerenderTimeout) {\r\n clearTimeout(rerenderTimeout);\r\n }\r\n\r\n rerenderTimeout = setTimeout(() => {\r\n if (ctx._isRerendering || !ctx._isMounted) return;\r\n\r\n ctx._isRerendering = true;\r\n pendingRerenders.add(ctx);\r\n\r\n try {\r\n removeErrorOverlay();\r\n\r\n const vnode = ctx._vnode;\r\n const oldRendered = vnode._rendered;\r\n\r\n beginComponent(vnode);\r\n const newRendered = ctx.Component(vnode.props);\r\n endComponent();\r\n\r\n vnode._rendered = newRendered;\r\n\r\n const domNode = vnode._domNode;\r\n if (domNode && domNode.parentNode) {\r\n patch(domNode.parentNode, newRendered, oldRendered)\r\n .then(() => {\r\n vnode._domNode = newRendered?._domNode;\r\n })\r\n .finally(() => {\r\n ctx._isRerendering = false;\r\n pendingRerenders.delete(ctx);\r\n });\r\n } else if (rootRenderFn) {\r\n rootRenderFn().finally(() => {\r\n ctx._isRerendering = false;\r\n pendingRerenders.delete(ctx);\r\n });\r\n } else {\r\n ctx._isRerendering = false;\r\n pendingRerenders.delete(ctx);\r\n }\r\n } catch (err) {\r\n console.error(\"[Fynix] Component rerender error:\", err);\r\n showErrorOverlay(err);\r\n ctx._isRerendering = false;\r\n pendingRerenders.delete(ctx);\r\n }\r\n\r\n rerenderTimeout = null;\r\n }, 0);\r\n };\r\n }\r\n\r\n try {\r\n removeErrorOverlay();\r\n const result = Component(props);\r\n ctx._vnode = vnode;\r\n vnode._rendered = result;\r\n ctx._isMounted = true;\r\n return result;\r\n } catch (err) {\r\n console.error(\"[Fynix] Component render error:\", err);\r\n showErrorOverlay(err);\r\n return h(\"div\", { style: \"color:red\" }, `Error: ${err.message}`);\r\n } finally {\r\n endComponent();\r\n }\r\n}\r\n\r\n/* ---------------------- Event Delegation ---------------------- */\r\n\r\nconst delegatedEvents = new Map();\r\nlet eventIdCounter = 1;\r\n\r\nfunction ensureDelegated(eventType) {\r\n if (delegatedEvents.has(eventType)) return;\r\n delegatedEvents.set(eventType, new Map());\r\n document.addEventListener(eventType, (e) => {\r\n let cur = e.target;\r\n while (cur && cur !== document) {\r\n if (cur.nodeType !== 1) break;\r\n const eid = cur._rest_eid;\r\n const map = delegatedEvents.get(eventType);\r\n if (eid != null && map?.has(eid)) {\r\n map.get(eid)(e);\r\n return;\r\n }\r\n cur = cur.parentElement;\r\n }\r\n });\r\n}\r\n\r\nfunction registerDelegatedHandler(el, eventName, fn) {\r\n if (!fn || el.nodeType !== 1) return;\r\n const eid = el._rest_eid ?? (el._rest_eid = ++eventIdCounter);\r\n ensureDelegated(eventName);\r\n delegatedEvents.get(eventName).set(eid, (e) => {\r\n try {\r\n fn.call(el, e);\r\n } catch (err) {\r\n console.error(\"[Fynix] Event handler error:\", err);\r\n showErrorOverlay(err);\r\n }\r\n });\r\n}\r\n\r\n/* ---------------------- Property Setter ---------------------- */\r\n\r\n/**\r\n * Set element property or attribute\r\n * @param {HTMLElement} el\r\n * @param {string} key\r\n * @param {*} value\r\n */\r\nfunction setProperty(el, key, value) {\r\n const k = key.toLowerCase();\r\n\r\n if (key === \"r-class\" || key === \"rc\") {\r\n if (typeof value === \"string\") el.setAttribute(\"class\", value);\r\n else if (value && (value._isNixState || value._isRestState)) {\r\n el.setAttribute(\"class\", value.value);\r\n\r\n // FIX: Track subscription for cleanup\r\n if (!el._fynixCleanups) el._fynixCleanups = [];\r\n const unsub = value.subscribe(() =>\r\n el.setAttribute(\"class\", value.value)\r\n );\r\n el._fynixCleanups.push(unsub);\r\n }\r\n return;\r\n }\r\n\r\n if (key.startsWith(\"r-\")) {\r\n registerDelegatedHandler(el, key.slice(2).toLowerCase(), value);\r\n return;\r\n }\r\n if (key === \"style\" && typeof value === \"object\") {\r\n Object.assign(el.style, value);\r\n return;\r\n }\r\n\r\n // Security: Prevent dangerous attributes\r\n if (key === \"innerHTML\" || key === \"outerHTML\") {\r\n console.warn(\r\n \"[Fynix] Security: innerHTML/outerHTML not allowed. Use textContent or children.\"\r\n );\r\n return;\r\n }\r\n\r\n if (BOOLEAN_ATTRS.has(k)) {\r\n if (value) {\r\n el.setAttribute(k, \"\");\r\n el[k] = true;\r\n } else {\r\n el.removeAttribute(k);\r\n el[k] = false;\r\n }\r\n return;\r\n }\r\n if (DOM_PROPERTIES.has(key)) {\r\n el[key] = value ?? \"\";\r\n return;\r\n }\r\n if (key.startsWith(\"data-\") || key.startsWith(\"aria-\")) {\r\n if (value != null && value !== false) el.setAttribute(key, value);\r\n else el.removeAttribute(key);\r\n return;\r\n }\r\n\r\n // Security: Sanitize href and src attributes\r\n if ((key === \"href\" || key === \"src\") && typeof value === \"string\") {\r\n if (value.trim().toLowerCase().startsWith(\"javascript:\")) {\r\n console.warn(\"[Fynix] Security: javascript: protocol blocked in\", key);\r\n return;\r\n }\r\n }\r\n\r\n if (value != null && value !== false) el.setAttribute(key, value);\r\n}\r\n\r\n/* ---------------------- DOM Creation ---------------------- */\r\n\r\n/**\r\n * Create DOM from vnode\r\n * @param {object|string|number|Promise} vnode\r\n * @param {Node} [existing=null]\r\n * @returns {Promise<Node>}\r\n */\r\nasync function createDom(vnode, existing = null) {\r\n if (vnode == null || vnode === false) return document.createTextNode(\"\");\r\n if (typeof vnode === \"string\" || typeof vnode === \"number\")\r\n return document.createTextNode(String(vnode));\r\n\r\n if (vnode.type === TEXT) {\r\n const textNode =\r\n existing || document.createTextNode(vnode.props.nodeValue ?? \"\");\r\n vnode._domNode = textNode;\r\n return textNode;\r\n }\r\n\r\n // FIX 5: Better async component error handling\r\n if (vnode instanceof Promise) {\r\n const placeholder = document.createTextNode(\"Loading...\");\r\n vnode\r\n .then(async (resolved) => {\r\n try {\r\n const dom = await createDom(resolved);\r\n if (placeholder.parentNode) {\r\n placeholder.replaceWith(dom);\r\n }\r\n } catch (err) {\r\n console.error(\"[Fynix] Async component error:\", err);\r\n if (placeholder.parentNode) {\r\n placeholder.textContent = \"Error loading component\";\r\n }\r\n }\r\n })\r\n .catch((err) => {\r\n console.error(\"[Fynix] Async component promise error:\", err);\r\n if (placeholder.parentNode) {\r\n placeholder.textContent = \"Error loading async component\";\r\n }\r\n });\r\n return placeholder;\r\n }\r\n\r\n if (vnode.type === Fragment) {\r\n const frag = document.createDocumentFragment();\r\n for (const child of vnode.props?.children || [])\r\n frag.appendChild(await createDom(child));\r\n vnode._domNode = frag;\r\n return frag;\r\n }\r\n\r\n if (typeof vnode.type === \"function\") {\r\n const rendered = await renderMaybeAsyncComponent(\r\n vnode.type,\r\n vnode.props,\r\n vnode\r\n );\r\n vnode._rendered = rendered;\r\n const dom = await createDom(rendered);\r\n vnode._domNode = dom;\r\n return dom;\r\n }\r\n\r\n const el = existing || document.createElement(vnode.type);\r\n for (const [k, v] of Object.entries(vnode.props || {}))\r\n if (k !== \"children\") setProperty(el, k, v);\r\n for (const child of vnode.props?.children || [])\r\n el.appendChild(await createDom(child));\r\n vnode._domNode = el;\r\n return el;\r\n}\r\n\r\n/* ---------------------- Async Component Helper ---------------------- */\r\n\r\n/**\r\n * Render async component safely\r\n * @param {function} Component\r\n * @param {object} props\r\n * @param {object} vnode\r\n * @returns {Promise<object>}\r\n */\r\nasync function renderMaybeAsyncComponent(Component, props, vnode) {\r\n const ctx = beginComponent(vnode);\r\n removeErrorOverlay();\r\n try {\r\n const result = await Component(props);\r\n ctx._vnode = vnode;\r\n vnode._rendered = result;\r\n ctx._isMounted = true;\r\n endComponent();\r\n return result ?? null;\r\n } catch (err) {\r\n console.error(\"[Fynix] async render error:\", err);\r\n showErrorOverlay(err);\r\n ctx._isMounted = false;\r\n endComponent();\r\n return h(\"div\", { style: \"color:red\" }, `Error: ${err.message}`);\r\n }\r\n}\r\n\r\n/* ---------------------- Patch / Diff ---------------------- */\r\n\r\n/**\r\n * Patch a parent DOM node based on oldVNode -> newVNode changes\r\n * @param {Node} parent\r\n * @param {object|string|number} newVNode\r\n * @param {object|string|number} oldVNode\r\n * @returns {Promise<void>}\r\n */\r\nexport async function patch(parent, newVNode, oldVNode) {\r\n if (!(parent instanceof Node)) {\r\n console.error(\r\n \"[Fynix] patch() expects a DOM Node, got:\",\r\n typeof parent,\r\n parent\r\n );\r\n return;\r\n }\r\n\r\n if (!newVNode && !oldVNode) return;\r\n\r\n if (!newVNode && oldVNode) {\r\n const domNode = oldVNode._domNode;\r\n if (domNode?.parentNode) domNode.parentNode.removeChild(domNode);\r\n unmountVNode(oldVNode);\r\n return;\r\n }\r\n\r\n if (newVNode && !oldVNode) {\r\n const newDom = await createDom(newVNode);\r\n if (newDom instanceof Node) {\r\n parent.appendChild(newDom);\r\n }\r\n return;\r\n }\r\n\r\n const newIsPrimitive =\r\n typeof newVNode === \"string\" || typeof newVNode === \"number\";\r\n const oldIsPrimitive =\r\n typeof oldVNode === \"string\" || typeof oldVNode === \"number\";\r\n\r\n if (newIsPrimitive || oldIsPrimitive) {\r\n if (newIsPrimitive && oldIsPrimitive && newVNode === oldVNode) return;\r\n const newDom = await createDom(newVNode);\r\n const oldDom = oldVNode._domNode || parent.firstChild;\r\n if (oldDom?.parentNode && newDom instanceof Node) {\r\n oldDom.parentNode.replaceChild(newDom, oldDom);\r\n }\r\n if (oldVNode && typeof oldVNode === \"object\") {\r\n unmountVNode(oldVNode);\r\n }\r\n return;\r\n }\r\n\r\n const newType = newVNode.type;\r\n const oldType = oldVNode.type;\r\n\r\n if (newType !== oldType) {\r\n const newDom = await createDom(newVNode);\r\n const oldDom = oldVNode._domNode;\r\n if (oldDom?.parentNode && newDom instanceof Node) {\r\n oldDom.parentNode.replaceChild(newDom, oldDom);\r\n }\r\n unmountVNode(oldVNode);\r\n return;\r\n }\r\n\r\n if (newType === TEXT) {\r\n const oldDom = oldVNode._domNode;\r\n const newText = newVNode.props.nodeValue ?? \"\";\r\n const oldText = oldVNode.props.nodeValue ?? \"\";\r\n if (newText !== oldText && oldDom) {\r\n oldDom.nodeValue = newText;\r\n }\r\n newVNode._domNode = oldDom;\r\n return;\r\n }\r\n\r\n if (newType === Fragment) {\r\n const newChildren = newVNode.props?.children || [];\r\n const oldChildren = oldVNode.props?.children || [];\r\n await patchChildren(parent, newChildren, oldChildren);\r\n newVNode._domNode = oldVNode._domNode;\r\n return;\r\n }\r\n\r\n // FIX 6: Better component reuse and cleanup\r\n if (typeof newType === \"function\") {\r\n const oldCtx = componentInstances.get(oldVNode);\r\n\r\n if (oldCtx && newType === oldType) {\r\n componentInstances.delete(oldVNode);\r\n componentInstances.set(newVNode, oldCtx);\r\n\r\n oldCtx._vnode = newVNode;\r\n\r\n beginComponent(newVNode);\r\n const rendered = await oldCtx.Component(newVNode.props);\r\n endComponent();\r\n\r\n newVNode._rendered = rendered;\r\n\r\n const oldRendered = oldVNode._rendered;\r\n const oldDom = oldVNode._domNode;\r\n\r\n if (oldDom?.parentNode instanceof Node) {\r\n await patch(oldDom.parentNode, rendered, oldRendered);\r\n newVNode._domNode = rendered?._domNode || oldDom;\r\n }\r\n } else {\r\n const rendered = await renderMaybeAsyncComponent(\r\n newType,\r\n newVNode.props,\r\n newVNode\r\n );\r\n newVNode._rendered = rendered;\r\n\r\n const oldRendered = oldVNode._rendered;\r\n const oldDom = oldVNode._domNode;\r\n\r\n if (oldDom?.parentNode instanceof Node) {\r\n await patch(oldDom.parentNode, rendered, oldRendered);\r\n newVNode._domNode = rendered?._domNode || oldDom;\r\n } else {\r\n const newDom = await createDom(rendered);\r\n if (parent && newDom instanceof Node) {\r\n parent.appendChild(newDom);\r\n }\r\n newVNode._domNode = newDom;\r\n }\r\n\r\n if (oldCtx && newType !== oldType) {\r\n unmountVNode(oldVNode);\r\n }\r\n }\r\n return;\r\n }\r\n\r\n const el = oldVNode._domNode;\r\n if (!el || el.nodeType !== 1) {\r\n const newDom = await createDom(newVNode);\r\n if (parent && newDom instanceof Node) {\r\n parent.appendChild(newDom);\r\n }\r\n unmountVNode(oldVNode);\r\n return;\r\n }\r\n\r\n updateProps(el, newVNode.props, oldVNode.props);\r\n newVNode._domNode = el;\r\n\r\n const newChildren = newVNode.props?.children || [];\r\n const oldChildren = oldVNode.props?.children || [];\r\n await patchChildren(el, newChildren, oldChildren);\r\n}\r\n\r\n/**\r\n * Patch children with keyed reconciliation\r\n * @param {Node} parent\r\n * @param {Array} newChildren\r\n * @param {Array} oldChildren\r\n */\r\nasync function patchChildren(parent, newChildren, oldChildren) {\r\n if (!(parent instanceof Node)) return;\r\n\r\n const hasKeys =\r\n newChildren.some((c) => c?.key != null) ||\r\n oldChildren.some((c) => c?.key != null);\r\n\r\n if (!hasKeys) {\r\n const maxLen = Math.max(newChildren.length, oldChildren.length);\r\n for (let i = 0; i < maxLen; i++) {\r\n const newChild = newChildren[i];\r\n const oldChild = oldChildren[i];\r\n\r\n if (i >= newChildren.length) {\r\n const dom = oldChild?._domNode;\r\n if (dom?.parentNode) dom.parentNode.removeChild(dom);\r\n unmountVNode(oldChild);\r\n } else if (i >= oldChildren.length) {\r\n const newDom = await createDom(newChild);\r\n if (newDom instanceof Node) {\r\n parent.appendChild(newDom);\r\n }\r\n } else {\r\n await patch(parent, newChild, oldChild);\r\n }\r\n }\r\n return;\r\n }\r\n\r\n const oldKeyMap = new Map();\r\n const oldIndexMap = new Map();\r\n\r\n oldChildren.forEach((child, idx) => {\r\n if (child?.key != null) {\r\n oldKeyMap.set(child.key, child);\r\n oldIndexMap.set(child.key, idx);\r\n }\r\n });\r\n\r\n const newKeySet = new Set(\r\n newChildren.filter((c) => c?.key != null).map((c) => c.key)\r\n );\r\n\r\n oldChildren.forEach((oldChild) => {\r\n if (oldChild?.key != null && !newKeySet.has(oldChild.key)) {\r\n const dom = oldChild._domNode;\r\n if (dom?.parentNode) dom.parentNode.removeChild(dom);\r\n unmountVNode(oldChild);\r\n }\r\n });\r\n\r\n for (let i = 0; i < newChildren.length; i++) {\r\n const newChild = newChildren[i];\r\n const key = newChild?.key;\r\n\r\n if (key != null && oldKeyMap.has(key)) {\r\n const oldChild = oldKeyMap.get(key);\r\n const oldDom = oldChild._domNode;\r\n const childNodes = Array.from(parent.childNodes);\r\n const currentPos = childNodes.indexOf(oldDom);\r\n const desiredPos = i;\r\n\r\n if (currentPos !== desiredPos) {\r\n const refNode = childNodes[desiredPos] || null;\r\n if (oldDom && oldDom.parentNode === parent) {\r\n parent.insertBefore(oldDom, refNode);\r\n }\r\n }\r\n\r\n await patch(parent, newChild, oldChild);\r\n } else {\r\n const newDom = await createDom(newChild);\r\n if (newDom instanceof Node) {\r\n const childNodes = Array.from(parent.childNodes);\r\n const refNode = childNodes[i] || null;\r\n parent.insertBefore(newDom, refNode);\r\n }\r\n }\r\n }\r\n}\r\n\r\n/* ---------------------- Unmount ---------------------- */\r\n\r\n/**\r\n * Unmount vnode recursively and cleanup\r\n * @param {object} vnode\r\n */\r\nfunction unmountVNode(vnode) {\r\n if (!vnode) return;\r\n\r\n // FIX: Clean up text node subscription\r\n if (vnode._cleanup && typeof vnode._cleanup === \"function\") {\r\n try {\r\n vnode._cleanup();\r\n } catch (e) {\r\n console.error(\"[Fynix] Text vnode cleanup error:\", e);\r\n }\r\n vnode._cleanup = null;\r\n }\r\n\r\n if (typeof vnode.type === \"function\") {\r\n const ctx = componentInstances.get(vnode);\r\n if (ctx) {\r\n // FIX 7: Mark as unmounted to prevent rerender attempts\r\n ctx._isMounted = false;\r\n\r\n ctx._subscriptionCleanups.forEach((u) => {\r\n try {\r\n u();\r\n } catch (e) {\r\n console.error(\"[Fynix] Cleanup error:\", e);\r\n }\r\n });\r\n\r\n ctx.cleanups.forEach((c) => {\r\n try {\r\n c?.();\r\n } catch (e) {\r\n console.error(\"[Fynix] Effect cleanup error:\", e);\r\n }\r\n });\r\n\r\n ctx._subscriptions.clear();\r\n ctx._accessedStates.clear();\r\n ctx._subscriptionCleanups = [];\r\n ctx.cleanups = [];\r\n ctx.hooks = [];\r\n ctx.effects = [];\r\n ctx.rerender = null;\r\n ctx._vnode = null;\r\n\r\n componentInstances.delete(vnode);\r\n pendingRerenders.delete(ctx);\r\n }\r\n unmountVNode(vnode._rendered);\r\n return;\r\n }\r\n\r\n if (vnode._domNode && vnode._domNode.nodeType === 1) {\r\n const eid = vnode._domNode._rest_eid;\r\n if (eid) {\r\n delegatedEvents.forEach((map) => map.delete(eid));\r\n }\r\n\r\n // FIX: Clean up reactive class subscriptions\r\n if (vnode._domNode._fynixCleanups) {\r\n vnode._domNode._fynixCleanups.forEach((cleanup) => {\r\n try {\r\n cleanup();\r\n } catch (e) {\r\n console.error(\"[Fynix] Element cleanup error:\", e);\r\n }\r\n });\r\n vnode._domNode._fynixCleanups = null;\r\n }\r\n }\r\n\r\n if (vnode.props?.children)\r\n vnode.props.children.forEach((c) => unmountVNode(c));\r\n\r\n vnode._domNode = null;\r\n vnode._rendered = null;\r\n}\r\n\r\n/* ---------------------- Update Props ---------------------- */\r\n\r\n/**\r\n * Update DOM props\r\n * @param {HTMLElement} el\r\n * @param {object} newProps\r\n * @param {object} oldProps\r\n */\r\nfunction updateProps(el, newProps = {}, oldProps = {}) {\r\n if (!el || el.nodeType !== 1) return;\r\n\r\n for (const k of Object.keys(oldProps)) {\r\n if (k === \"children\") continue;\r\n if (!(k in newProps)) {\r\n if (k.startsWith(\"r-\")) {\r\n const eid = el._rest_eid;\r\n if (eid && delegatedEvents.has(k.slice(2).toLowerCase())) {\r\n delegatedEvents.get(k.slice(2).toLowerCase()).delete(eid);\r\n }\r\n } else if (BOOLEAN_ATTRS.has(k.toLowerCase())) {\r\n el.removeAttribute(k);\r\n el[k] = false;\r\n } else if (DOM_PROPERTIES.has(k)) el[k] = \"\";\r\n else el.removeAttribute(k);\r\n }\r\n }\r\n\r\n for (const [k, v] of Object.entries(newProps)) {\r\n if (k === \"children\") continue;\r\n if (oldProps[k] !== v) setProperty(el, k, v);\r\n }\r\n}\r\n\r\n/* ---------------------- Mount ---------------------- */\r\n\r\n/**\r\n * Mount the app component to a root DOM node\r\n * @param {function} AppComponent\r\n * @param {string|Element} root\r\n * @param {boolean} [hydrate=false]\r\n * @param {object} [props={}]\r\n */\r\nexport function mount(AppComponent, root, hydrate = false, props = {}) {\r\n if (typeof root === \"string\") {\r\n const element = document.querySelector(root);\r\n if (!element) {\r\n console.error(\r\n \"[Fynix] Mount error: Element not found for selector:\",\r\n root\r\n );\r\n return;\r\n }\r\n root = element;\r\n }\r\n\r\n if (!(root instanceof Element)) {\r\n console.error(\"[Fynix] Mount error: Invalid root element\", root);\r\n return;\r\n }\r\n\r\n let Component = AppComponent;\r\n let oldVNode = null;\r\n let currentProps = props;\r\n let appVNode = null;\r\n let isRendering = false;\r\n\r\n async function renderApp() {\r\n // FIX 8: Prevent concurrent renders\r\n if (isRendering) {\r\n return;\r\n }\r\n\r\n isRendering = true;\r\n\r\n try {\r\n removeErrorOverlay();\r\n const propsToUse =\r\n window.__lastRouteProps ||\r\n window.__fynix__?.lastRouteProps ||\r\n currentProps;\r\n\r\n if (!appVNode) {\r\n appVNode = { type: Component, props: propsToUse, key: null };\r\n\r\n if (root instanceof Element) {\r\n root.innerHTML = \"\";\r\n const dom = await createDom(appVNode);\r\n if (dom instanceof Node) {\r\n root.appendChild(dom);\r\n }\r\n } else {\r\n console.error(\"[Fynix] Mount error: root is not a DOM Element\", root);\r\n return;\r\n }\r\n\r\n oldVNode = appVNode;\r\n } else {\r\n appVNode.props = propsToUse;\r\n\r\n if (root instanceof Node) {\r\n await patch(root, appVNode, oldVNode);\r\n oldVNode = appVNode;\r\n } else {\r\n console.error(\"[Fynix] Patch error: root is not a DOM Node\", root);\r\n return;\r\n }\r\n }\r\n } catch (err) {\r\n console.error(\"[Fynix] Mount error:\", err);\r\n showErrorOverlay(err);\r\n } finally {\r\n isRendering = false;\r\n }\r\n }\r\n\r\n rootRenderFn = renderApp;\r\n window.__fynix__ = window.__fynix__ || {};\r\n window.__fynix__.rerender = renderApp;\r\n renderApp();\r\n\r\n if (import.meta.hot) {\r\n if (!window.__fynix__.hmr) {\r\n window.__fynix__.hmr = async ({ mod }) => {\r\n try {\r\n const UpdatedComponent = mod.App || mod.default;\r\n if (UpdatedComponent) {\r\n Component = UpdatedComponent;\r\n if (appVNode) {\r\n appVNode.type = UpdatedComponent;\r\n }\r\n window.__fynix__.rerender?.();\r\n }\r\n } catch (err) {\r\n console.error(\"[Fynix HMR] update error:\", err);\r\n showErrorOverlay(err);\r\n }\r\n };\r\n import.meta.hot.accept();\r\n }\r\n }\r\n}\r\n\r\n/* ---------------------- Exports ---------------------- */\r\n\r\nexport {\r\n nixState,\r\n nixEffect,\r\n nixStore,\r\n nixInterval,\r\n nixAsync,\r\n nixCallback,\r\n nixComputed,\r\n nixMemo,\r\n nixDebounce,\r\n nixPrevious,\r\n nixLocalStorage,\r\n nixRef,\r\n nixLazy,\r\n Suspense,\r\n nixForm,\r\n nixAsyncCached,\r\n nixAsyncDebounce,\r\n nixAsyncQuery,\r\n nixEffectAlways,\r\n nixEffectOnce,\r\n nixFormAsync,\r\n nixLazyAsync,\r\n nixLazyFormAsync,\r\n Path,\r\n Button,\r\n createFynix,\r\n};\r\n"],
5
- "mappings": "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",
5
+ "mappings": "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",
6
6
  "names": ["vnode", "newChildren", "oldChildren"]
7
7
  }
package/package.json CHANGED
@@ -1,9 +1,9 @@
1
1
  {
2
2
  "name": "@fynixorg/ui",
3
- "version": "1.0.3",
3
+ "version": "1.0.5",
4
4
  "type": "module",
5
5
  "description": "Core package for Fynix UI framework.",
6
- "main": "dist/runtime.js",
6
+ "main": "dist/fynix/index.js",
7
7
  "types": "runtime.d.ts",
8
8
  "exports": {
9
9
  ".": "./dist/runtime.js",
@@ -55,6 +55,7 @@
55
55
  "devDependencies": {
56
56
  "@types/node": "^25.0.3",
57
57
  "esbuild": "^0.20.0",
58
+ "typescript": "^5.9.3",
58
59
  "vite": "^7.3.0"
59
60
  },
60
61
  "scripts": {
package/types/global.d.ts CHANGED
@@ -1,3 +1,11 @@
1
+ /**
2
+ * Virtual DOM node type for Fynix
3
+ */
4
+ type VNode = {
5
+ type: any;
6
+ props: any;
7
+ key: any;
8
+ };
1
9
  // global.d.ts - Fynix Global Type Declarations
2
10
 
3
11
  /**
@@ -47,7 +55,9 @@ interface NixFormState<T extends Record<string, any>> {
47
55
  isValid: boolean;
48
56
  isSubmitting: boolean;
49
57
  errors: { [K in keyof T]?: string };
50
- handleSubmit: (onSubmit: (values: T) => void | Promise<void>) => (e?: Event) => Promise<void>;
58
+ handleSubmit: (
59
+ onSubmit: (values: T) => void | Promise<void>
60
+ ) => (e?: Event) => Promise<void>;
51
61
  reset: () => void;
52
62
  setFieldValue: <K extends keyof T>(field: K, value: T[K]) => void;
53
63
  setFieldError: <K extends keyof T>(field: K, error: string) => void;
@@ -86,13 +96,13 @@ interface FynixRouter {
86
96
  interface Window {
87
97
  /** Cache for router props to prevent memory leaks */
88
98
  __fynixPropsCache?: Map<string, any>;
89
-
99
+
90
100
  /** Link props namespace for router navigation */
91
101
  __fynixLinkProps__?: Record<string, any>;
92
-
102
+
93
103
  /** Last route props passed to components */
94
104
  __lastRouteProps?: any;
95
-
105
+
96
106
  /** Fynix global state and utilities */
97
107
  __fynix__?: {
98
108
  /** Current route props */
@@ -110,7 +120,7 @@ interface Window {
110
120
  interface HTMLElement {
111
121
  /** Event delegation ID for r-* event handlers */
112
122
  _rest_eid?: number;
113
-
123
+
114
124
  /** Fynix internal data storage */
115
125
  _fynix_?: any;
116
126
  }
@@ -149,7 +159,7 @@ interface ImportMeta {
149
159
  /** Custom HMR event handling */
150
160
  on?: (event: string, cb: (...args: any[]) => void) => void;
151
161
  };
152
-
162
+
153
163
  /** Vite glob import function */
154
164
  readonly glob: <T = any>(
155
165
  pattern: string,
@@ -157,12 +167,12 @@ interface ImportMeta {
157
167
  /** Load modules eagerly (at build time) */
158
168
  eager?: boolean;
159
169
  /** Import as URL strings */
160
- as?: 'url' | 'raw';
170
+ as?: "url" | "raw";
161
171
  /** Custom import query */
162
172
  query?: Record<string, string | number | boolean>;
163
173
  }
164
174
  ) => Record<string, T>;
165
-
175
+
166
176
  /** Environment variables */
167
177
  readonly env: {
168
178
  MODE: string;
@@ -177,42 +187,42 @@ interface ImportMeta {
177
187
  /**
178
188
  * Module declarations for non-TypeScript files
179
189
  */
180
- declare module '*.css' {
190
+ declare module "*.css" {
181
191
  const content: string;
182
192
  export default content;
183
193
  }
184
194
 
185
- declare module '*.scss' {
195
+ declare module "*.scss" {
186
196
  const content: string;
187
197
  export default content;
188
198
  }
189
199
 
190
- declare module '*.svg' {
200
+ declare module "*.svg" {
191
201
  const content: string;
192
202
  export default content;
193
203
  }
194
204
 
195
- declare module '*.png' {
205
+ declare module "*.png" {
196
206
  const content: string;
197
207
  export default content;
198
208
  }
199
209
 
200
- declare module '*.jpg' {
210
+ declare module "*.jpg" {
201
211
  const content: string;
202
212
  export default content;
203
213
  }
204
214
 
205
- declare module '*.jpeg' {
215
+ declare module "*.jpeg" {
206
216
  const content: string;
207
217
  export default content;
208
218
  }
209
219
 
210
- declare module '*.gif' {
220
+ declare module "*.gif" {
211
221
  const content: string;
212
222
  export default content;
213
223
  }
214
224
 
215
- declare module '*.webp' {
225
+ declare module "*.webp" {
216
226
  const content: string;
217
227
  export default content;
218
228
  }
@@ -220,12 +230,12 @@ declare module '*.webp' {
220
230
  /**
221
231
  * Fynix-specific module patterns
222
232
  */
223
- declare module '*.fnx' {
233
+ declare module "*.fnx" {
224
234
  const Component: any;
225
235
  export default Component;
226
236
  }
227
237
 
228
- declare module '*.js' {
238
+ declare module "*.js" {
229
239
  const Component: any;
230
240
  export default Component;
231
241
  }
@@ -233,4 +243,4 @@ declare module '*.js' {
233
243
  /**
234
244
  * Vite client types
235
245
  */
236
- /// <reference types="vite/client" />
246
+ /// <reference types="vite/client" />