@fynixorg/ui 1.0.4 → 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.
- package/dist/build.d.ts +1 -0
- package/dist/context/context.d.ts +2 -0
- package/dist/context/context.js +3 -0
- package/dist/context/context.js.map +1 -1
- package/dist/custom/button.d.ts +19 -0
- package/dist/custom/button.js +3 -0
- package/dist/custom/button.js.map +1 -1
- package/dist/custom/index.d.ts +2 -0
- package/dist/custom/path.d.ts +20 -0
- package/dist/custom/path.js +3 -0
- package/dist/custom/path.js.map +2 -2
- package/dist/error/errorOverlay.d.ts +2 -0
- package/dist/error/errorOverlay.js +4 -0
- package/dist/error/errorOverlay.js.map +1 -1
- package/dist/fynix/index.d.ts +4 -0
- package/dist/hooks/nixAsync.d.ts +13 -0
- package/dist/hooks/nixAsync.js +7 -4
- package/dist/hooks/nixAsync.js.map +1 -1
- package/dist/hooks/nixAsyncCache.d.ts +7 -0
- package/dist/hooks/nixAsyncCache.js +7 -4
- package/dist/hooks/nixAsyncCache.js.map +1 -1
- package/dist/hooks/nixAsyncDebounce.d.ts +28 -0
- package/dist/hooks/nixAsyncDebounce.js +9 -6
- package/dist/hooks/nixAsyncDebounce.js.map +1 -1
- package/dist/hooks/nixAsyncQuery.d.ts +40 -0
- package/dist/hooks/nixAsyncQuery.js +7 -4
- package/dist/hooks/nixAsyncQuery.js.map +1 -1
- package/dist/hooks/nixCallback.d.ts +30 -0
- package/dist/hooks/nixCallback.js +4 -0
- package/dist/hooks/nixCallback.js.map +1 -1
- package/dist/hooks/nixComputed.d.ts +94 -0
- package/dist/hooks/nixComputed.js +4 -0
- package/dist/hooks/nixComputed.js.map +1 -1
- package/dist/hooks/nixDebounce.d.ts +28 -0
- package/dist/hooks/nixDebounce.js +7 -4
- package/dist/hooks/nixDebounce.js.map +1 -1
- package/dist/hooks/nixEffect.d.ts +64 -0
- package/dist/hooks/nixEffect.js +6 -0
- package/dist/hooks/nixEffect.js.map +1 -1
- package/dist/hooks/nixForm.d.ts +15 -0
- package/dist/hooks/nixForm.js +11 -0
- package/dist/hooks/nixForm.js.map +1 -1
- package/dist/hooks/nixFormAsync.d.ts +20 -0
- package/dist/hooks/nixFormAsync.js +12 -0
- package/dist/hooks/nixFormAsync.js.map +1 -1
- package/dist/hooks/nixInterval.d.ts +19 -0
- package/dist/hooks/nixInterval.js +6 -3
- package/dist/hooks/nixInterval.js.map +1 -1
- package/dist/hooks/nixLazy.d.ts +19 -0
- package/dist/hooks/nixLazy.js +6 -2
- package/dist/hooks/nixLazy.js.map +1 -1
- package/dist/hooks/nixLazyAsync.d.ts +26 -0
- package/dist/hooks/nixLazyAsync.js +10 -6
- package/dist/hooks/nixLazyAsync.js.map +1 -1
- package/dist/hooks/nixLazyFormAsync.d.ts +29 -0
- package/dist/hooks/nixLazyFormAsync.js +18 -6
- package/dist/hooks/nixLazyFormAsync.js.map +1 -1
- package/dist/hooks/nixLocalStorage.d.ts +11 -0
- package/dist/hooks/nixLocalStorage.js +5 -2
- package/dist/hooks/nixLocalStorage.js.map +1 -1
- package/dist/hooks/nixMemo.d.ts +8 -0
- package/dist/hooks/nixMemo.js +3 -0
- package/dist/hooks/nixMemo.js.map +1 -1
- package/dist/hooks/nixPrevious.d.ts +7 -0
- package/dist/hooks/nixPrevious.js +3 -0
- package/dist/hooks/nixPrevious.js.map +1 -1
- package/dist/hooks/nixRef.d.ts +10 -0
- package/dist/hooks/nixRef.js +3 -0
- package/dist/hooks/nixRef.js.map +1 -1
- package/dist/hooks/nixState.d.ts +73 -0
- package/dist/hooks/nixState.js +3 -0
- package/dist/hooks/nixState.js.map +1 -1
- package/dist/hooks/nixStore.d.ts +9 -0
- package/dist/hooks/nixStore.js +3 -0
- package/dist/hooks/nixStore.js.map +1 -1
- package/dist/plugins/vite-plugin-res.d.ts +12 -0
- package/dist/plugins/vite-plugin-res.js +3 -0
- package/dist/plugins/vite-plugin-res.js.map +1 -1
- package/dist/router/router.d.ts +53 -0
- package/dist/router/router.js +25 -2
- package/dist/router/router.js.map +1 -1
- package/dist/runtime.d.ts +91 -0
- package/dist/runtime.js +18 -0
- package/dist/runtime.js.map +1 -1
- package/package.json +2 -1
- 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,
|
package/dist/runtime.js.map
CHANGED
|
@@ -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,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@fynixorg/ui",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.5",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "Core package for Fynix UI framework.",
|
|
6
6
|
"main": "dist/fynix/index.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: (
|
|
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?:
|
|
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
|
|
190
|
+
declare module "*.css" {
|
|
181
191
|
const content: string;
|
|
182
192
|
export default content;
|
|
183
193
|
}
|
|
184
194
|
|
|
185
|
-
declare module
|
|
195
|
+
declare module "*.scss" {
|
|
186
196
|
const content: string;
|
|
187
197
|
export default content;
|
|
188
198
|
}
|
|
189
199
|
|
|
190
|
-
declare module
|
|
200
|
+
declare module "*.svg" {
|
|
191
201
|
const content: string;
|
|
192
202
|
export default content;
|
|
193
203
|
}
|
|
194
204
|
|
|
195
|
-
declare module
|
|
205
|
+
declare module "*.png" {
|
|
196
206
|
const content: string;
|
|
197
207
|
export default content;
|
|
198
208
|
}
|
|
199
209
|
|
|
200
|
-
declare module
|
|
210
|
+
declare module "*.jpg" {
|
|
201
211
|
const content: string;
|
|
202
212
|
export default content;
|
|
203
213
|
}
|
|
204
214
|
|
|
205
|
-
declare module
|
|
215
|
+
declare module "*.jpeg" {
|
|
206
216
|
const content: string;
|
|
207
217
|
export default content;
|
|
208
218
|
}
|
|
209
219
|
|
|
210
|
-
declare module
|
|
220
|
+
declare module "*.gif" {
|
|
211
221
|
const content: string;
|
|
212
222
|
export default content;
|
|
213
223
|
}
|
|
214
224
|
|
|
215
|
-
declare module
|
|
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
|
|
233
|
+
declare module "*.fnx" {
|
|
224
234
|
const Component: any;
|
|
225
235
|
export default Component;
|
|
226
236
|
}
|
|
227
237
|
|
|
228
|
-
declare module
|
|
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" />
|