@fictjs/runtime 0.10.0 → 0.11.0
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/advanced.cjs +9 -9
- package/dist/advanced.d.cts +3 -3
- package/dist/advanced.d.ts +3 -3
- package/dist/advanced.js +4 -4
- package/dist/{binding-DqxS9ZQf.d.ts → binding-DcnhUSQK.d.ts} +1 -1
- package/dist/{binding-DUEukRxl.d.cts → binding-FRyTeLDn.d.cts} +1 -1
- package/dist/{chunk-DKA2I6ET.js → chunk-2UR2UWE2.js} +3 -3
- package/dist/{chunk-SZLJCQFZ.cjs → chunk-44EQF3AR.cjs} +63 -52
- package/dist/chunk-44EQF3AR.cjs.map +1 -0
- package/dist/{chunk-I4GKKAAY.cjs → chunk-4QGEN5SJ.cjs} +295 -262
- package/dist/chunk-4QGEN5SJ.cjs.map +1 -0
- package/dist/{chunk-V7BC64W2.cjs → chunk-C5IE4WUG.cjs} +8 -8
- package/dist/{chunk-V7BC64W2.cjs.map → chunk-C5IE4WUG.cjs.map} +1 -1
- package/dist/{chunk-F4RVNXOL.js → chunk-DIK33H5U.js} +8 -2
- package/dist/chunk-DIK33H5U.js.map +1 -0
- package/dist/{chunk-2JRPPCG7.js → chunk-FESAXMHT.js} +7 -6
- package/dist/{chunk-2JRPPCG7.js.map → chunk-FESAXMHT.js.map} +1 -1
- package/dist/chunk-FHQZCAAK.cjs +112 -0
- package/dist/chunk-FHQZCAAK.cjs.map +1 -0
- package/dist/{chunk-EQ5E4WOV.cjs → chunk-QNMYVXRL.cjs} +44 -38
- package/dist/chunk-QNMYVXRL.cjs.map +1 -0
- package/dist/{chunk-P4TZLFV6.js → chunk-S63VBIWN.js} +27 -16
- package/dist/chunk-S63VBIWN.js.map +1 -0
- package/dist/{chunk-R6FINS25.js → chunk-WIHNVN6L.js} +106 -73
- package/dist/chunk-WIHNVN6L.js.map +1 -0
- package/dist/{devtools-CMxlJUTx.d.cts → devtools-BtIkN77t.d.cts} +1 -1
- package/dist/{devtools-C4Hgfa-S.d.ts → devtools-D2z4llpA.d.ts} +1 -1
- package/dist/index.cjs +60 -58
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +4 -4
- package/dist/index.d.ts +4 -4
- package/dist/index.dev.js +72 -51
- package/dist/index.dev.js.map +1 -1
- package/dist/index.js +13 -11
- package/dist/index.js.map +1 -1
- package/dist/internal-list.cjs +4 -4
- package/dist/internal-list.d.cts +1 -1
- package/dist/internal-list.d.ts +1 -1
- package/dist/internal-list.js +3 -3
- package/dist/internal.cjs +5 -5
- package/dist/internal.d.cts +4 -4
- package/dist/internal.d.ts +4 -4
- package/dist/internal.js +4 -4
- package/dist/{list-BBzsJhrm.d.ts → list-BKM6YOPq.d.ts} +1 -1
- package/dist/{list-_NJCcjl1.d.cts → list-Bi8dDF8Q.d.cts} +1 -1
- package/dist/loader.cjs +28 -26
- package/dist/loader.cjs.map +1 -1
- package/dist/loader.js +11 -9
- package/dist/loader.js.map +1 -1
- package/dist/{props--zJ4ebbT.d.cts → props-9chMyBGb.d.cts} +1 -1
- package/dist/{props-BAGR7j-j.d.ts → props-D1nj2p_3.d.ts} +1 -1
- package/dist/{scope-CuImnvh1.d.ts → scope-BSkhJr0a.d.ts} +1 -1
- package/dist/{scope-Dq5hOu7c.d.cts → scope-Bn3sxem5.d.cts} +1 -1
- package/package.json +1 -1
- package/src/binding.ts +59 -29
- package/src/context.ts +4 -3
- package/src/dom.ts +65 -39
- package/src/error-boundary.ts +5 -5
- package/src/lifecycle.ts +8 -1
- package/src/list-helpers.ts +30 -13
- package/src/loader.ts +10 -8
- package/src/node-ops.ts +8 -5
- package/src/suspense.ts +5 -4
- package/dist/chunk-EQ5E4WOV.cjs.map +0 -1
- package/dist/chunk-F4RVNXOL.js.map +0 -1
- package/dist/chunk-I4GKKAAY.cjs.map +0 -1
- package/dist/chunk-K3DH5SD5.cjs +0 -111
- package/dist/chunk-K3DH5SD5.cjs.map +0 -1
- package/dist/chunk-P4TZLFV6.js.map +0 -1
- package/dist/chunk-R6FINS25.js.map +0 -1
- package/dist/chunk-SZLJCQFZ.cjs.map +0 -1
- /package/dist/{chunk-DKA2I6ET.js.map → chunk-2UR2UWE2.js.map} +0 -0
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
var _chunk4QGEN5SJcjs = require('./chunk-4QGEN5SJ.cjs');
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
var _chunkQNMYVXRLcjs = require('./chunk-QNMYVXRL.cjs');
|
|
16
|
+
|
|
17
|
+
// src/context.ts
|
|
18
|
+
var contextStorage = /* @__PURE__ */ new WeakMap();
|
|
19
|
+
function getContextMap(root) {
|
|
20
|
+
let map = contextStorage.get(root);
|
|
21
|
+
if (!map) {
|
|
22
|
+
map = /* @__PURE__ */ new Map();
|
|
23
|
+
contextStorage.set(root, map);
|
|
24
|
+
}
|
|
25
|
+
return map;
|
|
26
|
+
}
|
|
27
|
+
function createContext(defaultValue) {
|
|
28
|
+
const id = Symbol("fict.context");
|
|
29
|
+
const context = {
|
|
30
|
+
id,
|
|
31
|
+
defaultValue,
|
|
32
|
+
Provider: null
|
|
33
|
+
};
|
|
34
|
+
context.Provider = function Provider(props) {
|
|
35
|
+
const hostRoot = _chunkQNMYVXRLcjs.getCurrentRoot.call(void 0, );
|
|
36
|
+
const providerRoot = _chunkQNMYVXRLcjs.createRootContext.call(void 0, hostRoot);
|
|
37
|
+
const contextMap = getContextMap(providerRoot);
|
|
38
|
+
contextMap.set(id, props.value);
|
|
39
|
+
const markerOwnerDocument = _nullishCoalesce(_nullishCoalesce(providerRoot.ownerDocument, () => ( _optionalChain([hostRoot, 'optionalAccess', _ => _.ownerDocument]))), () => ( document));
|
|
40
|
+
const fragment = markerOwnerDocument.createDocumentFragment();
|
|
41
|
+
const marker = markerOwnerDocument.createComment("fict:ctx");
|
|
42
|
+
fragment.appendChild(marker);
|
|
43
|
+
let cleanup;
|
|
44
|
+
let activeNodes = [];
|
|
45
|
+
const renderChildren = (children) => {
|
|
46
|
+
if (cleanup) {
|
|
47
|
+
cleanup();
|
|
48
|
+
cleanup = void 0;
|
|
49
|
+
}
|
|
50
|
+
if (activeNodes.length) {
|
|
51
|
+
_chunk4QGEN5SJcjs.removeNodes.call(void 0, activeNodes);
|
|
52
|
+
activeNodes = [];
|
|
53
|
+
}
|
|
54
|
+
if (children == null || children === false) {
|
|
55
|
+
return;
|
|
56
|
+
}
|
|
57
|
+
const prev = _chunkQNMYVXRLcjs.pushRoot.call(void 0, providerRoot);
|
|
58
|
+
let nodes = [];
|
|
59
|
+
try {
|
|
60
|
+
const output = _chunk4QGEN5SJcjs.createElement.call(void 0, children);
|
|
61
|
+
nodes = _chunk4QGEN5SJcjs.toNodeArray.call(void 0, output, markerOwnerDocument);
|
|
62
|
+
const parentNode = marker.parentNode;
|
|
63
|
+
if (parentNode) {
|
|
64
|
+
_chunk4QGEN5SJcjs.insertNodesBefore.call(void 0, parentNode, nodes, marker);
|
|
65
|
+
}
|
|
66
|
+
} finally {
|
|
67
|
+
_chunkQNMYVXRLcjs.popRoot.call(void 0, prev);
|
|
68
|
+
_chunkQNMYVXRLcjs.flushOnMount.call(void 0, providerRoot);
|
|
69
|
+
}
|
|
70
|
+
cleanup = () => {
|
|
71
|
+
_chunkQNMYVXRLcjs.destroyRoot.call(void 0, providerRoot);
|
|
72
|
+
_chunk4QGEN5SJcjs.removeNodes.call(void 0, nodes);
|
|
73
|
+
};
|
|
74
|
+
activeNodes = nodes;
|
|
75
|
+
};
|
|
76
|
+
_chunkQNMYVXRLcjs.createRenderEffect.call(void 0, () => {
|
|
77
|
+
contextMap.set(id, props.value);
|
|
78
|
+
renderChildren(props.children);
|
|
79
|
+
});
|
|
80
|
+
return fragment;
|
|
81
|
+
};
|
|
82
|
+
return context;
|
|
83
|
+
}
|
|
84
|
+
function useContext(context) {
|
|
85
|
+
let root = _chunkQNMYVXRLcjs.getCurrentRoot.call(void 0, );
|
|
86
|
+
while (root) {
|
|
87
|
+
const contextMap = contextStorage.get(root);
|
|
88
|
+
if (contextMap && contextMap.has(context.id)) {
|
|
89
|
+
return contextMap.get(context.id);
|
|
90
|
+
}
|
|
91
|
+
root = root.parent;
|
|
92
|
+
}
|
|
93
|
+
return context.defaultValue;
|
|
94
|
+
}
|
|
95
|
+
function hasContext(context) {
|
|
96
|
+
let root = _chunkQNMYVXRLcjs.getCurrentRoot.call(void 0, );
|
|
97
|
+
while (root) {
|
|
98
|
+
const contextMap = contextStorage.get(root);
|
|
99
|
+
if (contextMap && contextMap.has(context.id)) {
|
|
100
|
+
return true;
|
|
101
|
+
}
|
|
102
|
+
root = root.parent;
|
|
103
|
+
}
|
|
104
|
+
return false;
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
|
|
108
|
+
|
|
109
|
+
|
|
110
|
+
|
|
111
|
+
exports.createContext = createContext; exports.useContext = useContext; exports.hasContext = hasContext;
|
|
112
|
+
//# sourceMappingURL=chunk-FHQZCAAK.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["/home/runner/work/fict/fict/packages/runtime/dist/chunk-FHQZCAAK.cjs","../src/context.ts"],"names":[],"mappings":"AAAA;AACE;AACA;AACA;AACA;AACF,wDAA6B;AAC7B;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACF,wDAA6B;AAC7B;AACA;ACoFA,IAAM,eAAA,kBAAiB,IAAI,OAAA,CAA2C,CAAA;AAKtE,SAAS,aAAA,CAAc,IAAA,EAAyC;AAC9D,EAAA,IAAI,IAAA,EAAM,cAAA,CAAe,GAAA,CAAI,IAAI,CAAA;AACjC,EAAA,GAAA,CAAI,CAAC,GAAA,EAAK;AACR,IAAA,IAAA,kBAAM,IAAI,GAAA,CAAI,CAAA;AACd,IAAA,cAAA,CAAe,GAAA,CAAI,IAAA,EAAM,GAAG,CAAA;AAAA,EAC9B;AACA,EAAA,OAAO,GAAA;AACT;AA0CO,SAAS,aAAA,CAAiB,YAAA,EAA6B;AAC5D,EAAA,MAAM,GAAA,EAAK,MAAA,CAAO,cAAc,CAAA;AAEhC,EAAA,MAAM,QAAA,EAAsB;AAAA,IAC1B,EAAA;AAAA,IACA,YAAA;AAAA,IACA,QAAA,EAAU;AAAA,EACZ,CAAA;AAGA,EAAA,OAAA,CAAQ,SAAA,EAAW,SAAS,QAAA,CAAS,KAAA,EAAmC;AACtE,IAAA,MAAM,SAAA,EAAW,8CAAA,CAAe;AAIhC,IAAA,MAAM,aAAA,EAAe,iDAAA,QAA0B,CAAA;AAG/C,IAAA,MAAM,WAAA,EAAa,aAAA,CAAc,YAAY,CAAA;AAC7C,IAAA,UAAA,CAAW,GAAA,CAAI,EAAA,EAAI,KAAA,CAAM,KAAK,CAAA;AAG9B,IAAA,MAAM,oBAAA,oCAAsB,YAAA,CAAa,aAAA,0BAAiB,QAAA,2BAAU,iBAAA,UAAiB,UAAA;AACrF,IAAA,MAAM,SAAA,EAAW,mBAAA,CAAoB,sBAAA,CAAuB,CAAA;AAC5D,IAAA,MAAM,OAAA,EAAS,mBAAA,CAAoB,aAAA,CAAc,UAAU,CAAA;AAC3D,IAAA,QAAA,CAAS,WAAA,CAAY,MAAM,CAAA;AAE3B,IAAA,IAAI,OAAA;AACJ,IAAA,IAAI,YAAA,EAAsB,CAAC,CAAA;AAE3B,IAAA,MAAM,eAAA,EAAiB,CAAC,QAAA,EAAA,GAAuB;AAE7C,MAAA,GAAA,CAAI,OAAA,EAAS;AACX,QAAA,OAAA,CAAQ,CAAA;AACR,QAAA,QAAA,EAAU,KAAA,CAAA;AAAA,MACZ;AACA,MAAA,GAAA,CAAI,WAAA,CAAY,MAAA,EAAQ;AACtB,QAAA,2CAAA,WAAuB,CAAA;AACvB,QAAA,YAAA,EAAc,CAAC,CAAA;AAAA,MACjB;AAEA,MAAA,GAAA,CAAI,SAAA,GAAY,KAAA,GAAQ,SAAA,IAAa,KAAA,EAAO;AAC1C,QAAA,MAAA;AAAA,MACF;AAEA,MAAA,MAAM,KAAA,EAAO,wCAAA,YAAqB,CAAA;AAClC,MAAA,IAAI,MAAA,EAAgB,CAAC,CAAA;AACrB,MAAA,IAAI;AACF,QAAA,MAAM,OAAA,EAAS,6CAAA,QAAsB,CAAA;AACrC,QAAA,MAAA,EAAQ,2CAAA,MAAY,EAAQ,mBAAmB,CAAA;AAC/C,QAAA,MAAM,WAAA,EAAa,MAAA,CAAO,UAAA;AAC1B,QAAA,GAAA,CAAI,UAAA,EAAY;AACd,UAAA,iDAAA,UAAkB,EAAY,KAAA,EAAO,MAAM,CAAA;AAAA,QAC7C;AAAA,MACF,EAAA,QAAE;AACA,QAAA,uCAAA,IAAY,CAAA;AACZ,QAAA,4CAAA,YAAyB,CAAA;AAAA,MAC3B;AAEA,MAAA,QAAA,EAAU,CAAA,EAAA,GAAM;AACd,QAAA,2CAAA,YAAwB,CAAA;AACxB,QAAA,2CAAA,KAAiB,CAAA;AAAA,MACnB,CAAA;AACA,MAAA,YAAA,EAAc,KAAA;AAAA,IAChB,CAAA;AAGA,IAAA,kDAAA,CAAmB,EAAA,GAAM;AAEvB,MAAA,UAAA,CAAW,GAAA,CAAI,EAAA,EAAI,KAAA,CAAM,KAAK,CAAA;AAC9B,MAAA,cAAA,CAAe,KAAA,CAAM,QAAQ,CAAA;AAAA,IAC/B,CAAC,CAAA;AAED,IAAA,OAAO,QAAA;AAAA,EACT,CAAA;AAEA,EAAA,OAAO,OAAA;AACT;AAsBO,SAAS,UAAA,CAAc,OAAA,EAAwB;AACpD,EAAA,IAAI,KAAA,EAAO,8CAAA,CAAe;AAG1B,EAAA,MAAA,CAAO,IAAA,EAAM;AACX,IAAA,MAAM,WAAA,EAAa,cAAA,CAAe,GAAA,CAAI,IAAI,CAAA;AAC1C,IAAA,GAAA,CAAI,WAAA,GAAc,UAAA,CAAW,GAAA,CAAI,OAAA,CAAQ,EAAE,CAAA,EAAG;AAC5C,MAAA,OAAO,UAAA,CAAW,GAAA,CAAI,OAAA,CAAQ,EAAE,CAAA;AAAA,IAClC;AACA,IAAA,KAAA,EAAO,IAAA,CAAK,MAAA;AAAA,EACd;AAGA,EAAA,OAAO,OAAA,CAAQ,YAAA;AACjB;AAqBO,SAAS,UAAA,CAAc,OAAA,EAA8B;AAC1D,EAAA,IAAI,KAAA,EAAO,8CAAA,CAAe;AAE1B,EAAA,MAAA,CAAO,IAAA,EAAM;AACX,IAAA,MAAM,WAAA,EAAa,cAAA,CAAe,GAAA,CAAI,IAAI,CAAA;AAC1C,IAAA,GAAA,CAAI,WAAA,GAAc,UAAA,CAAW,GAAA,CAAI,OAAA,CAAQ,EAAE,CAAA,EAAG;AAC5C,MAAA,OAAO,IAAA;AAAA,IACT;AACA,IAAA,KAAA,EAAO,IAAA,CAAK,MAAA;AAAA,EACd;AAEA,EAAA,OAAO,KAAA;AACT;ADnMA;AACA;AACE;AACA;AACA;AACF,wGAAC","file":"/home/runner/work/fict/fict/packages/runtime/dist/chunk-FHQZCAAK.cjs","sourcesContent":[null,"/**\n * @fileoverview Context API for Fict\n *\n * Provides a way to pass data through the component tree without having to pass\n * props down manually at every level. Context is designed for:\n *\n * - SSR isolation (different request = different context values)\n * - Multi-instance support (multiple app roots with different values)\n * - Subtree scoping (override values in specific parts of the tree)\n *\n * ## Design Principles\n *\n * 1. **Reuses existing RootContext hierarchy** - Uses parent chain for value lookup,\n * consistent with handleError/handleSuspend mechanisms.\n *\n * 2. **Zero extra root creation overhead** - Provider doesn't create new root,\n * only mounts value on current root.\n *\n * 3. **Auto-aligned with insert/suspense boundaries** - Because they create child\n * roots that inherit parent, context values propagate correctly.\n *\n * ## Usage\n *\n * ```tsx\n * // Create context with default value\n * const ThemeContext = createContext<'light' | 'dark'>('light')\n *\n * // Provide value to subtree\n * function App() {\n * return (\n * <ThemeContext.Provider value=\"dark\">\n * <ThemedComponent />\n * </ThemeContext.Provider>\n * )\n * }\n *\n * // Consume value\n * function ThemedComponent() {\n * const theme = useContext(ThemeContext)\n * return <div class={theme}>...</div>\n * }\n * ```\n *\n * @module\n */\n\nimport { createElement } from './dom'\nimport { createRenderEffect } from './effect'\nimport {\n createRootContext,\n destroyRoot,\n flushOnMount,\n getCurrentRoot,\n popRoot,\n pushRoot,\n type RootContext,\n} from './lifecycle'\nimport { insertNodesBefore, removeNodes, toNodeArray } from './node-ops'\nimport type { BaseProps, FictNode } from './types'\n\n// ============================================================================\n// Types\n// ============================================================================\n\n/**\n * Context object created by createContext.\n * Contains the Provider component and serves as a key for context lookup.\n */\nexport interface Context<T> {\n /** Unique identifier for this context */\n readonly id: symbol\n /** Default value when no provider is found */\n readonly defaultValue: T\n /** Provider component for supplying context values */\n Provider: ContextProvider<T>\n /** Display name for debugging */\n displayName?: string\n}\n\n/**\n * Props for the Context Provider component\n */\nexport interface ProviderProps<T> extends BaseProps {\n /** The value to provide to the subtree */\n value: T\n}\n\n/**\n * Provider component type\n */\nexport type ContextProvider<T> = (props: ProviderProps<T>) => FictNode\n\n// ============================================================================\n// Internal Context Storage\n// ============================================================================\n\n/**\n * WeakMap to store context values per RootContext.\n * Using WeakMap ensures proper garbage collection when roots are destroyed.\n */\nconst contextStorage = new WeakMap<RootContext, Map<symbol, unknown>>()\n\n/**\n * Get the context map for a root, creating it if needed\n */\nfunction getContextMap(root: RootContext): Map<symbol, unknown> {\n let map = contextStorage.get(root)\n if (!map) {\n map = new Map()\n contextStorage.set(root, map)\n }\n return map\n}\n\n// ============================================================================\n// Context API\n// ============================================================================\n\n/**\n * Creates a new context with the given default value.\n *\n * Context provides a way to pass values through the component tree without\n * explicit props drilling. It's especially useful for:\n *\n * - Theme data\n * - Locale/i18n settings\n * - Authentication state\n * - Feature flags\n * - Any data that many components at different nesting levels need\n *\n * @param defaultValue - The value to use when no Provider is found above in the tree\n * @returns A context object with a Provider component\n *\n * @example\n * ```tsx\n * // Create a theme context\n * const ThemeContext = createContext<'light' | 'dark'>('light')\n *\n * // Use the provider\n * function App() {\n * return (\n * <ThemeContext.Provider value=\"dark\">\n * <Content />\n * </ThemeContext.Provider>\n * )\n * }\n *\n * // Consume the context\n * function Content() {\n * const theme = useContext(ThemeContext)\n * return <div class={`theme-${theme}`}>Hello</div>\n * }\n * ```\n */\nexport function createContext<T>(defaultValue: T): Context<T> {\n const id = Symbol('fict.context')\n\n const context: Context<T> = {\n id,\n defaultValue,\n Provider: null as unknown as ContextProvider<T>,\n }\n\n // Create the Provider component\n context.Provider = function Provider(props: ProviderProps<T>): FictNode {\n const hostRoot = getCurrentRoot()\n\n // Create a child root for the provider's subtree\n // This establishes the provider boundary - children will look up from here\n const providerRoot = createRootContext(hostRoot)\n\n // Store the context value on this root\n const contextMap = getContextMap(providerRoot)\n contextMap.set(id, props.value)\n\n // Create DOM structure\n const markerOwnerDocument = providerRoot.ownerDocument ?? hostRoot?.ownerDocument ?? document\n const fragment = markerOwnerDocument.createDocumentFragment()\n const marker = markerOwnerDocument.createComment('fict:ctx')\n fragment.appendChild(marker)\n\n let cleanup: (() => void) | undefined\n let activeNodes: Node[] = []\n\n const renderChildren = (children: FictNode) => {\n // Cleanup previous render\n if (cleanup) {\n cleanup()\n cleanup = undefined\n }\n if (activeNodes.length) {\n removeNodes(activeNodes)\n activeNodes = []\n }\n\n if (children == null || children === false) {\n return\n }\n\n const prev = pushRoot(providerRoot)\n let nodes: Node[] = []\n try {\n const output = createElement(children)\n nodes = toNodeArray(output, markerOwnerDocument)\n const parentNode = marker.parentNode as (ParentNode & Node) | null\n if (parentNode) {\n insertNodesBefore(parentNode, nodes, marker)\n }\n } finally {\n popRoot(prev)\n flushOnMount(providerRoot)\n }\n\n cleanup = () => {\n destroyRoot(providerRoot)\n removeNodes(nodes)\n }\n activeNodes = nodes\n }\n\n // Initial render\n createRenderEffect(() => {\n // Update context value on re-render (if value prop changes reactively)\n contextMap.set(id, props.value)\n renderChildren(props.children)\n })\n\n return fragment\n }\n\n return context\n}\n\n/**\n * Reads the current value of a context.\n *\n * useContext looks up through the RootContext parent chain to find the\n * nearest Provider for this context. If no Provider is found, returns\n * the context's default value.\n *\n * @param context - The context object created by createContext\n * @returns The current context value\n *\n * @example\n * ```tsx\n * const ThemeContext = createContext('light')\n *\n * function ThemedButton() {\n * const theme = useContext(ThemeContext)\n * return <button class={theme === 'dark' ? 'btn-dark' : 'btn-light'}>Click</button>\n * }\n * ```\n */\nexport function useContext<T>(context: Context<T>): T {\n let root = getCurrentRoot()\n\n // Walk up the parent chain looking for the context value\n while (root) {\n const contextMap = contextStorage.get(root)\n if (contextMap && contextMap.has(context.id)) {\n return contextMap.get(context.id) as T\n }\n root = root.parent\n }\n\n // No provider found, return default value\n return context.defaultValue\n}\n\n/**\n * Checks if a context value is currently provided in the tree.\n *\n * Useful for conditional behavior when a provider may or may not exist.\n *\n * @param context - The context object to check\n * @returns true if a Provider exists above in the tree\n *\n * @example\n * ```tsx\n * function OptionalTheme() {\n * if (hasContext(ThemeContext)) {\n * const theme = useContext(ThemeContext)\n * return <div class={theme}>Themed content</div>\n * }\n * return <div>Default content</div>\n * }\n * ```\n */\nexport function hasContext<T>(context: Context<T>): boolean {\n let root = getCurrentRoot()\n\n while (root) {\n const contextMap = contextStorage.get(root)\n if (contextMap && contextMap.has(context.id)) {\n return true\n }\n root = root.parent\n }\n\n return false\n}\n"]}
|
|
@@ -207,7 +207,13 @@ function setRootSuspendDevtools(root, suspended) {
|
|
|
207
207
|
_optionalChain([hook, 'optionalAccess', _10 => _10.rootSuspend, 'optionalCall', _11 => _11(id, suspended)]);
|
|
208
208
|
}
|
|
209
209
|
function createRootContext(parent) {
|
|
210
|
-
const root = {
|
|
210
|
+
const root = {
|
|
211
|
+
parent,
|
|
212
|
+
ownerDocument: _optionalChain([parent, 'optionalAccess', _12 => _12.ownerDocument]),
|
|
213
|
+
cleanups: [],
|
|
214
|
+
destroyCallbacks: [],
|
|
215
|
+
suspended: false
|
|
216
|
+
};
|
|
211
217
|
registerRootDevtools(root);
|
|
212
218
|
return root;
|
|
213
219
|
}
|
|
@@ -292,7 +298,7 @@ function destroyRoot(root) {
|
|
|
292
298
|
disposeRootDevtools(root);
|
|
293
299
|
}
|
|
294
300
|
function createRoot(fn, options2) {
|
|
295
|
-
const parent = _optionalChain([options2, 'optionalAccess',
|
|
301
|
+
const parent = _optionalChain([options2, 'optionalAccess', _13 => _13.inherit]) ? currentRoot : void 0;
|
|
296
302
|
const root = createRootContext(parent);
|
|
297
303
|
const prev = pushRoot(root);
|
|
298
304
|
let value;
|
|
@@ -459,7 +465,7 @@ function createMemo(fn, options2) {
|
|
|
459
465
|
}
|
|
460
466
|
|
|
461
467
|
// src/hooks.ts
|
|
462
|
-
var isDev3 = typeof __DEV__ !== "undefined" ? __DEV__ : typeof process !== "undefined" && _optionalChain([process, 'access',
|
|
468
|
+
var isDev3 = typeof __DEV__ !== "undefined" ? __DEV__ : typeof process !== "undefined" && _optionalChain([process, 'access', _14 => _14.env, 'optionalAccess', _15 => _15.NODE_ENV]) !== "production";
|
|
463
469
|
var ctxStack = [];
|
|
464
470
|
var preparedContext = null;
|
|
465
471
|
function assertRenderContext(ctx, hookName) {
|
|
@@ -490,7 +496,7 @@ function __fictPrepareContext(ctx) {
|
|
|
490
496
|
preparedContext = ctx;
|
|
491
497
|
}
|
|
492
498
|
function __fictGetCurrentComponentId() {
|
|
493
|
-
return _optionalChain([ctxStack, 'access',
|
|
499
|
+
return _optionalChain([ctxStack, 'access', _16 => _16[ctxStack.length - 1], 'optionalAccess', _17 => _17.componentId]);
|
|
494
500
|
}
|
|
495
501
|
function __fictPopContext() {
|
|
496
502
|
const ctx = ctxStack.pop();
|
|
@@ -507,7 +513,7 @@ function __fictUseSignal(ctx, initial, optionsOrSlot, slot) {
|
|
|
507
513
|
if (!ctx.slots[index]) {
|
|
508
514
|
ctx.slots[index] = signal(initial, options2);
|
|
509
515
|
}
|
|
510
|
-
if (_optionalChain([options2, 'optionalAccess',
|
|
516
|
+
if (_optionalChain([options2, 'optionalAccess', _18 => _18.name])) {
|
|
511
517
|
if (!ctx.slotMap) ctx.slotMap = {};
|
|
512
518
|
ctx.slotMap[options2.name] = index;
|
|
513
519
|
}
|
|
@@ -552,7 +558,7 @@ function __fictRender(ctx, fn) {
|
|
|
552
558
|
}
|
|
553
559
|
|
|
554
560
|
// src/signal.ts
|
|
555
|
-
var isDev4 = typeof __DEV__ !== "undefined" ? __DEV__ : typeof process !== "undefined" && _optionalChain([process, 'access',
|
|
561
|
+
var isDev4 = typeof __DEV__ !== "undefined" ? __DEV__ : typeof process !== "undefined" && _optionalChain([process, 'access', _19 => _19.env, 'optionalAccess', _20 => _20.NODE_ENV]) !== "production";
|
|
556
562
|
var Mutable = 1;
|
|
557
563
|
var Watching = 2;
|
|
558
564
|
var Running = 4;
|
|
@@ -1040,9 +1046,9 @@ function signal(initialValue, options2) {
|
|
|
1040
1046
|
flags: Mutable,
|
|
1041
1047
|
__id: void 0
|
|
1042
1048
|
};
|
|
1043
|
-
if (_optionalChain([options2, 'optionalAccess',
|
|
1044
|
-
if (_optionalChain([options2, 'optionalAccess',
|
|
1045
|
-
if (_optionalChain([options2, 'optionalAccess',
|
|
1049
|
+
if (_optionalChain([options2, 'optionalAccess', _21 => _21.equals]) !== void 0) s.equals = options2.equals;
|
|
1050
|
+
if (_optionalChain([options2, 'optionalAccess', _22 => _22.name]) !== void 0) s.name = options2.name;
|
|
1051
|
+
if (_optionalChain([options2, 'optionalAccess', _23 => _23.devToolsSource]) !== void 0) s.devToolsSource = options2.devToolsSource;
|
|
1046
1052
|
if (isDev4) registerSignalDevtools(s);
|
|
1047
1053
|
const accessor = signalOper.bind(s);
|
|
1048
1054
|
accessor[SIGNAL_MARKER] = true;
|
|
@@ -1099,10 +1105,10 @@ function computed(getter, options2) {
|
|
|
1099
1105
|
getter,
|
|
1100
1106
|
__id: void 0
|
|
1101
1107
|
};
|
|
1102
|
-
if (_optionalChain([options2, 'optionalAccess',
|
|
1103
|
-
if (_optionalChain([options2, 'optionalAccess',
|
|
1104
|
-
if (_optionalChain([options2, 'optionalAccess',
|
|
1105
|
-
if (_optionalChain([options2, 'optionalAccess',
|
|
1108
|
+
if (_optionalChain([options2, 'optionalAccess', _24 => _24.equals]) !== void 0) c.equals = options2.equals;
|
|
1109
|
+
if (_optionalChain([options2, 'optionalAccess', _25 => _25.name]) !== void 0) c.name = options2.name;
|
|
1110
|
+
if (_optionalChain([options2, 'optionalAccess', _26 => _26.devToolsSource]) !== void 0) c.devToolsSource = options2.devToolsSource;
|
|
1111
|
+
if (_optionalChain([options2, 'optionalAccess', _27 => _27.internal]) === true) c.devToolsInternal = true;
|
|
1106
1112
|
if (isDev4) registerComputedDevtools(c);
|
|
1107
1113
|
const bound = computedOper.bind(
|
|
1108
1114
|
c
|
|
@@ -1161,8 +1167,8 @@ function effect(fn, options2) {
|
|
|
1161
1167
|
deps: void 0,
|
|
1162
1168
|
depsTail: void 0,
|
|
1163
1169
|
flags: WatchingRunning,
|
|
1164
|
-
..._optionalChain([options2, 'optionalAccess',
|
|
1165
|
-
..._optionalChain([options2, 'optionalAccess',
|
|
1170
|
+
..._optionalChain([options2, 'optionalAccess', _28 => _28.name]) !== void 0 ? { name: options2.name } : {},
|
|
1171
|
+
..._optionalChain([options2, 'optionalAccess', _29 => _29.devToolsSource]) !== void 0 ? { devToolsSource: options2.devToolsSource } : {},
|
|
1166
1172
|
__id: void 0
|
|
1167
1173
|
};
|
|
1168
1174
|
const root = getCurrentRoot();
|
|
@@ -1203,8 +1209,8 @@ function effectWithCleanup(fn, cleanupRunner, root, options2) {
|
|
|
1203
1209
|
depsTail: void 0,
|
|
1204
1210
|
flags: WatchingRunning,
|
|
1205
1211
|
runCleanup: cleanupRunner,
|
|
1206
|
-
..._optionalChain([options2, 'optionalAccess',
|
|
1207
|
-
..._optionalChain([options2, 'optionalAccess',
|
|
1212
|
+
..._optionalChain([options2, 'optionalAccess', _30 => _30.name]) !== void 0 ? { name: options2.name } : {},
|
|
1213
|
+
..._optionalChain([options2, 'optionalAccess', _31 => _31.devToolsSource]) !== void 0 ? { devToolsSource: options2.devToolsSource } : {},
|
|
1208
1214
|
__id: void 0
|
|
1209
1215
|
};
|
|
1210
1216
|
const resolvedRoot = _nullishCoalesce(root, () => ( getCurrentRoot()));
|
|
@@ -1373,7 +1379,7 @@ var flushEndDevtools = () => {
|
|
|
1373
1379
|
};
|
|
1374
1380
|
var clearDevtoolsSignalSetters = () => {
|
|
1375
1381
|
};
|
|
1376
|
-
if (typeof __DEV__ !== "undefined" ? __DEV__ : typeof process !== "undefined" && _optionalChain([process, 'access',
|
|
1382
|
+
if (typeof __DEV__ !== "undefined" ? __DEV__ : typeof process !== "undefined" && _optionalChain([process, 'access', _32 => _32.env, 'optionalAccess', _33 => _33.NODE_ENV]) !== "production") {
|
|
1377
1383
|
let nextDevtoolsId = 0;
|
|
1378
1384
|
const getSignalSetterMap = () => {
|
|
1379
1385
|
if (typeof globalThis === "undefined") return void 0;
|
|
@@ -1398,7 +1404,7 @@ if (typeof __DEV__ !== "undefined" ? __DEV__ : typeof process !== "undefined" &&
|
|
|
1398
1404
|
if (ownerId !== void 0) options2.ownerId = ownerId;
|
|
1399
1405
|
hook.registerSignal(id, node.currentValue, options2);
|
|
1400
1406
|
node.__id = id;
|
|
1401
|
-
_optionalChain([getSignalSetterMap, 'call',
|
|
1407
|
+
_optionalChain([getSignalSetterMap, 'call', _34 => _34(), 'optionalAccess', _35 => _35.set, 'call', _36 => _36(id, (value) => {
|
|
1402
1408
|
signalOper.call(node, value);
|
|
1403
1409
|
})]);
|
|
1404
1410
|
return id;
|
|
@@ -1414,8 +1420,8 @@ if (typeof __DEV__ !== "undefined" ? __DEV__ : typeof process !== "undefined" &&
|
|
|
1414
1420
|
const id = identifiable.__id;
|
|
1415
1421
|
if (!id) return;
|
|
1416
1422
|
const hook = getDevtoolsHook();
|
|
1417
|
-
_optionalChain([hook, 'optionalAccess',
|
|
1418
|
-
_optionalChain([getExistingSignalSetterMap, 'call',
|
|
1423
|
+
_optionalChain([hook, 'optionalAccess', _37 => _37.disposeSignal, 'optionalCall', _38 => _38(id)]);
|
|
1424
|
+
_optionalChain([getExistingSignalSetterMap, 'call', _39 => _39(), 'optionalAccess', _40 => _40.delete, 'call', _41 => _41(id)]);
|
|
1419
1425
|
delete identifiable.__id;
|
|
1420
1426
|
};
|
|
1421
1427
|
registerComputedDevtools = (node) => {
|
|
@@ -1444,7 +1450,7 @@ if (typeof __DEV__ !== "undefined" ? __DEV__ : typeof process !== "undefined" &&
|
|
|
1444
1450
|
const id = identifiable.__id;
|
|
1445
1451
|
if (!id) return;
|
|
1446
1452
|
const hook = getDevtoolsHook();
|
|
1447
|
-
_optionalChain([hook, 'optionalAccess',
|
|
1453
|
+
_optionalChain([hook, 'optionalAccess', _42 => _42.disposeComputed, 'optionalCall', _43 => _43(id)]);
|
|
1448
1454
|
delete identifiable.__id;
|
|
1449
1455
|
};
|
|
1450
1456
|
registerEffectDevtools = (node) => {
|
|
@@ -1479,48 +1485,48 @@ if (typeof __DEV__ !== "undefined" ? __DEV__ : typeof process !== "undefined" &&
|
|
|
1479
1485
|
const hook = getDevtoolsHook();
|
|
1480
1486
|
if (!hook) return;
|
|
1481
1487
|
const id = node.__id;
|
|
1482
|
-
if (id) _optionalChain([hook, 'access',
|
|
1488
|
+
if (id) _optionalChain([hook, 'access', _44 => _44.effectCleanup, 'optionalCall', _45 => _45(id)]);
|
|
1483
1489
|
};
|
|
1484
1490
|
disposeEffectDevtools = (node) => {
|
|
1485
1491
|
const identifiable = node;
|
|
1486
1492
|
const id = identifiable.__id;
|
|
1487
1493
|
if (!id) return;
|
|
1488
1494
|
const hook = getDevtoolsHook();
|
|
1489
|
-
_optionalChain([hook, 'optionalAccess',
|
|
1495
|
+
_optionalChain([hook, 'optionalAccess', _46 => _46.disposeEffect, 'optionalCall', _47 => _47(id)]);
|
|
1490
1496
|
delete identifiable.__id;
|
|
1491
1497
|
};
|
|
1492
1498
|
trackDependencyDevtools = (dep, sub) => {
|
|
1493
1499
|
const hook = getDevtoolsHook();
|
|
1494
|
-
if (!_optionalChain([hook, 'optionalAccess',
|
|
1500
|
+
if (!_optionalChain([hook, 'optionalAccess', _48 => _48.trackDependency])) return;
|
|
1495
1501
|
const depId = dep.__id;
|
|
1496
1502
|
const subId = sub.__id;
|
|
1497
1503
|
if (depId && subId) hook.trackDependency(subId, depId);
|
|
1498
1504
|
};
|
|
1499
1505
|
untrackDependencyDevtools = (dep, sub) => {
|
|
1500
1506
|
const hook = getDevtoolsHook();
|
|
1501
|
-
if (!_optionalChain([hook, 'optionalAccess',
|
|
1507
|
+
if (!_optionalChain([hook, 'optionalAccess', _49 => _49.untrackDependency])) return;
|
|
1502
1508
|
const depId = dep.__id;
|
|
1503
1509
|
const subId = sub.__id;
|
|
1504
1510
|
if (depId && subId) hook.untrackDependency(subId, depId);
|
|
1505
1511
|
};
|
|
1506
1512
|
batchStartDevtools = () => {
|
|
1507
1513
|
const hook = getDevtoolsHook();
|
|
1508
|
-
_optionalChain([hook, 'optionalAccess',
|
|
1514
|
+
_optionalChain([hook, 'optionalAccess', _50 => _50.batchStart, 'optionalCall', _51 => _51()]);
|
|
1509
1515
|
};
|
|
1510
1516
|
batchEndDevtools = () => {
|
|
1511
1517
|
const hook = getDevtoolsHook();
|
|
1512
|
-
_optionalChain([hook, 'optionalAccess',
|
|
1518
|
+
_optionalChain([hook, 'optionalAccess', _52 => _52.batchEnd, 'optionalCall', _53 => _53()]);
|
|
1513
1519
|
};
|
|
1514
1520
|
flushStartDevtools = () => {
|
|
1515
1521
|
const hook = getDevtoolsHook();
|
|
1516
|
-
_optionalChain([hook, 'optionalAccess',
|
|
1522
|
+
_optionalChain([hook, 'optionalAccess', _54 => _54.flushStart, 'optionalCall', _55 => _55()]);
|
|
1517
1523
|
};
|
|
1518
1524
|
flushEndDevtools = () => {
|
|
1519
1525
|
const hook = getDevtoolsHook();
|
|
1520
|
-
_optionalChain([hook, 'optionalAccess',
|
|
1526
|
+
_optionalChain([hook, 'optionalAccess', _56 => _56.flushEnd, 'optionalCall', _57 => _57()]);
|
|
1521
1527
|
};
|
|
1522
1528
|
clearDevtoolsSignalSetters = () => {
|
|
1523
|
-
_optionalChain([getExistingSignalSetterMap, 'call',
|
|
1529
|
+
_optionalChain([getExistingSignalSetterMap, 'call', _58 => _58(), 'optionalAccess', _59 => _59.clear, 'call', _60 => _60()]);
|
|
1524
1530
|
};
|
|
1525
1531
|
}
|
|
1526
1532
|
function createSelector(source, equalityFn = (a, b) => a === b) {
|
|
@@ -1651,7 +1657,7 @@ var DelegatedEventNames = [
|
|
|
1651
1657
|
];
|
|
1652
1658
|
|
|
1653
1659
|
// src/constants.ts
|
|
1654
|
-
var isDev5 = typeof __DEV__ !== "undefined" ? __DEV__ : typeof process !== "undefined" && _optionalChain([process, 'access',
|
|
1660
|
+
var isDev5 = typeof __DEV__ !== "undefined" ? __DEV__ : typeof process !== "undefined" && _optionalChain([process, 'access', _61 => _61.env, 'optionalAccess', _62 => _62.NODE_ENV]) !== "production";
|
|
1655
1661
|
var booleans = isDev5 ? [
|
|
1656
1662
|
"allowfullscreen",
|
|
1657
1663
|
"async",
|
|
@@ -2386,18 +2392,18 @@ function __fictMergeSSRState(state) {
|
|
|
2386
2392
|
Object.assign(snapshotState.scopes, state.scopes);
|
|
2387
2393
|
}
|
|
2388
2394
|
function __fictGetSSRScope(id) {
|
|
2389
|
-
return _optionalChain([snapshotState, 'optionalAccess',
|
|
2395
|
+
return _optionalChain([snapshotState, 'optionalAccess', _63 => _63.scopes, 'access', _64 => _64[id]]);
|
|
2390
2396
|
}
|
|
2391
2397
|
function __fictEnsureScope(scopeId, host, snapshot) {
|
|
2392
2398
|
const existing = resumedScopes.get(scopeId);
|
|
2393
2399
|
if (existing) return existing.ctx;
|
|
2394
2400
|
const ctx = createContextFromSnapshot(snapshot);
|
|
2395
2401
|
ctx.scopeId = scopeId;
|
|
2396
|
-
if (_optionalChain([snapshot, 'optionalAccess',
|
|
2402
|
+
if (_optionalChain([snapshot, 'optionalAccess', _65 => _65.t]) !== void 0) {
|
|
2397
2403
|
ctx.scopeType = snapshot.t;
|
|
2398
2404
|
}
|
|
2399
2405
|
const entry = { ctx, host };
|
|
2400
|
-
if (_optionalChain([snapshot, 'optionalAccess',
|
|
2406
|
+
if (_optionalChain([snapshot, 'optionalAccess', _66 => _66.props]) !== void 0) {
|
|
2401
2407
|
entry.props = snapshot.props;
|
|
2402
2408
|
}
|
|
2403
2409
|
resumedScopes.set(scopeId, entry);
|
|
@@ -2413,11 +2419,11 @@ function __fictUseLexicalScope(scopeId, names) {
|
|
|
2413
2419
|
return names.map((name) => ctx.slots[_nullishCoalesce(map[name], () => ( -1))]);
|
|
2414
2420
|
}
|
|
2415
2421
|
function __fictGetScopeProps(scopeId) {
|
|
2416
|
-
return _optionalChain([resumedScopes, 'access',
|
|
2422
|
+
return _optionalChain([resumedScopes, 'access', _67 => _67.get, 'call', _68 => _68(scopeId), 'optionalAccess', _69 => _69.props]);
|
|
2417
2423
|
}
|
|
2418
2424
|
function __fictQrl(moduleId, exportName) {
|
|
2419
2425
|
const manifest = globalThis.__FICT_MANIFEST__;
|
|
2420
|
-
if (_optionalChain([manifest, 'optionalAccess',
|
|
2426
|
+
if (_optionalChain([manifest, 'optionalAccess', _70 => _70[moduleId]])) {
|
|
2421
2427
|
return `${manifest[moduleId]}#${exportName}`;
|
|
2422
2428
|
}
|
|
2423
2429
|
if (moduleId.startsWith("file://")) {
|
|
@@ -2721,4 +2727,4 @@ function deserializeValue(value, refs = /* @__PURE__ */ new Map(), path = "$") {
|
|
|
2721
2727
|
|
|
2722
2728
|
|
|
2723
2729
|
exports.getDevtoolsHook = getDevtoolsHook; exports.setCycleProtectionOptions = setCycleProtectionOptions; exports.createRootContext = createRootContext; exports.pushRoot = pushRoot; exports.getCurrentRoot = getCurrentRoot; exports.popRoot = popRoot; exports.onMount = onMount; exports.onDestroy = onDestroy; exports.onCleanup = onCleanup; exports.flushOnMount = flushOnMount; exports.registerRootCleanup = registerRootCleanup; exports.destroyRoot = destroyRoot; exports.createRoot = createRoot; exports.registerErrorHandler = registerErrorHandler; exports.registerSuspenseHandler = registerSuspenseHandler; exports.handleError = handleError; exports.handleSuspend = handleSuspend; exports.createEffect = createEffect; exports.createRenderEffect = createRenderEffect; exports.__fictUseContext = __fictUseContext; exports.__fictPushContext = __fictPushContext; exports.__fictPrepareContext = __fictPrepareContext; exports.__fictGetCurrentComponentId = __fictGetCurrentComponentId; exports.__fictPopContext = __fictPopContext; exports.__fictResetContext = __fictResetContext; exports.__fictUseSignal = __fictUseSignal; exports.__fictUseMemo = __fictUseMemo; exports.__fictUseEffect = __fictUseEffect; exports.__fictRender = __fictRender; exports.scheduleFlush = scheduleFlush; exports.flush = flush; exports.signal = signal; exports.computed = computed; exports.effectScope = effectScope; exports.batch = batch; exports.setActiveSub = setActiveSub; exports.__resetReactiveState = __resetReactiveState; exports.untrack = untrack; exports.isSignal = isSignal; exports.isComputed = isComputed; exports.isEffect = isEffect; exports.isEffectScope = isEffectScope; exports.setTransitionContext = setTransitionContext; exports.createSelector = createSelector; exports.createMemo = createMemo; exports.BooleanAttributes = BooleanAttributes; exports.Properties = Properties; exports.ChildProperties = ChildProperties; exports.Aliases = Aliases; exports.getPropAlias = getPropAlias; exports.$$EVENTS = $$EVENTS; exports.DelegatedEvents = DelegatedEvents; exports.SVGElements = SVGElements; exports.SVGNamespace = SVGNamespace; exports.UnitlessStyles = UnitlessStyles; exports.__fictSetSSRStreamHooks = __fictSetSSRStreamHooks; exports.__fictGetSSRStreamHooks = __fictGetSSRStreamHooks; exports.__fictPushSSRBoundary = __fictPushSSRBoundary; exports.__fictPopSSRBoundary = __fictPopSSRBoundary; exports.createStore = createStore; exports.isStoreProxy = isStoreProxy; exports.unwrapStore = unwrapStore; exports.FICT_SSR_SNAPSHOT_SCHEMA_VERSION = FICT_SSR_SNAPSHOT_SCHEMA_VERSION; exports.__fictEnableSSR = __fictEnableSSR; exports.__fictDisableSSR = __fictDisableSSR; exports.__fictEnableResumable = __fictEnableResumable; exports.__fictDisableResumable = __fictDisableResumable; exports.__fictIsResumable = __fictIsResumable; exports.__fictIsSSR = __fictIsSSR; exports.__fictEnterHydration = __fictEnterHydration; exports.__fictExitHydration = __fictExitHydration; exports.__fictIsHydrating = __fictIsHydrating; exports.__fictRegisterScope = __fictRegisterScope; exports.__fictGetScopeRegistry = __fictGetScopeRegistry; exports.__fictGetScopesForBoundary = __fictGetScopesForBoundary; exports.__fictSerializeSSRState = __fictSerializeSSRState; exports.__fictSerializeSSRStateForScopes = __fictSerializeSSRStateForScopes; exports.__fictSetSSRState = __fictSetSSRState; exports.__fictMergeSSRState = __fictMergeSSRState; exports.__fictGetSSRScope = __fictGetSSRScope; exports.__fictEnsureScope = __fictEnsureScope; exports.__fictUseLexicalScope = __fictUseLexicalScope; exports.__fictGetScopeProps = __fictGetScopeProps; exports.__fictQrl = __fictQrl; exports.__fictRegisterResume = __fictRegisterResume; exports.__fictGetResume = __fictGetResume; exports.serializeValue = serializeValue; exports.deserializeValue = deserializeValue;
|
|
2724
|
-
//# sourceMappingURL=chunk-
|
|
2730
|
+
//# sourceMappingURL=chunk-QNMYVXRL.cjs.map
|