@fictjs/runtime 0.10.0 → 0.12.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.
Files changed (72) hide show
  1. package/dist/advanced.cjs +9 -9
  2. package/dist/advanced.d.cts +3 -3
  3. package/dist/advanced.d.ts +3 -3
  4. package/dist/advanced.js +4 -4
  5. package/dist/{binding-DqxS9ZQf.d.ts → binding-DcnhUSQK.d.ts} +1 -1
  6. package/dist/{binding-DUEukRxl.d.cts → binding-FRyTeLDn.d.cts} +1 -1
  7. package/dist/{chunk-DKA2I6ET.js → chunk-2UR2UWE2.js} +3 -3
  8. package/dist/{chunk-SZLJCQFZ.cjs → chunk-44EQF3AR.cjs} +63 -52
  9. package/dist/chunk-44EQF3AR.cjs.map +1 -0
  10. package/dist/{chunk-I4GKKAAY.cjs → chunk-4QGEN5SJ.cjs} +295 -262
  11. package/dist/chunk-4QGEN5SJ.cjs.map +1 -0
  12. package/dist/{chunk-V7BC64W2.cjs → chunk-C5IE4WUG.cjs} +8 -8
  13. package/dist/{chunk-V7BC64W2.cjs.map → chunk-C5IE4WUG.cjs.map} +1 -1
  14. package/dist/{chunk-F4RVNXOL.js → chunk-DIK33H5U.js} +8 -2
  15. package/dist/chunk-DIK33H5U.js.map +1 -0
  16. package/dist/{chunk-2JRPPCG7.js → chunk-FESAXMHT.js} +7 -6
  17. package/dist/{chunk-2JRPPCG7.js.map → chunk-FESAXMHT.js.map} +1 -1
  18. package/dist/chunk-FHQZCAAK.cjs +112 -0
  19. package/dist/chunk-FHQZCAAK.cjs.map +1 -0
  20. package/dist/{chunk-EQ5E4WOV.cjs → chunk-QNMYVXRL.cjs} +44 -38
  21. package/dist/chunk-QNMYVXRL.cjs.map +1 -0
  22. package/dist/{chunk-P4TZLFV6.js → chunk-S63VBIWN.js} +27 -16
  23. package/dist/chunk-S63VBIWN.js.map +1 -0
  24. package/dist/{chunk-R6FINS25.js → chunk-WIHNVN6L.js} +106 -73
  25. package/dist/chunk-WIHNVN6L.js.map +1 -0
  26. package/dist/{devtools-CMxlJUTx.d.cts → devtools-BtIkN77t.d.cts} +1 -1
  27. package/dist/{devtools-C4Hgfa-S.d.ts → devtools-D2z4llpA.d.ts} +1 -1
  28. package/dist/index.cjs +60 -58
  29. package/dist/index.cjs.map +1 -1
  30. package/dist/index.d.cts +4 -4
  31. package/dist/index.d.ts +4 -4
  32. package/dist/index.dev.js +72 -51
  33. package/dist/index.dev.js.map +1 -1
  34. package/dist/index.js +13 -11
  35. package/dist/index.js.map +1 -1
  36. package/dist/internal-list.cjs +4 -4
  37. package/dist/internal-list.d.cts +1 -1
  38. package/dist/internal-list.d.ts +1 -1
  39. package/dist/internal-list.js +3 -3
  40. package/dist/internal.cjs +5 -5
  41. package/dist/internal.d.cts +4 -4
  42. package/dist/internal.d.ts +4 -4
  43. package/dist/internal.js +4 -4
  44. package/dist/{list-BBzsJhrm.d.ts → list-BKM6YOPq.d.ts} +1 -1
  45. package/dist/{list-_NJCcjl1.d.cts → list-Bi8dDF8Q.d.cts} +1 -1
  46. package/dist/loader.cjs +28 -26
  47. package/dist/loader.cjs.map +1 -1
  48. package/dist/loader.js +11 -9
  49. package/dist/loader.js.map +1 -1
  50. package/dist/{props--zJ4ebbT.d.cts → props-9chMyBGb.d.cts} +1 -1
  51. package/dist/{props-BAGR7j-j.d.ts → props-D1nj2p_3.d.ts} +1 -1
  52. package/dist/{scope-CuImnvh1.d.ts → scope-BSkhJr0a.d.ts} +1 -1
  53. package/dist/{scope-Dq5hOu7c.d.cts → scope-Bn3sxem5.d.cts} +1 -1
  54. package/package.json +1 -1
  55. package/src/binding.ts +59 -29
  56. package/src/context.ts +4 -3
  57. package/src/dom.ts +65 -39
  58. package/src/error-boundary.ts +5 -5
  59. package/src/lifecycle.ts +8 -1
  60. package/src/list-helpers.ts +30 -13
  61. package/src/loader.ts +10 -8
  62. package/src/node-ops.ts +8 -5
  63. package/src/suspense.ts +5 -4
  64. package/dist/chunk-EQ5E4WOV.cjs.map +0 -1
  65. package/dist/chunk-F4RVNXOL.js.map +0 -1
  66. package/dist/chunk-I4GKKAAY.cjs.map +0 -1
  67. package/dist/chunk-K3DH5SD5.cjs +0 -111
  68. package/dist/chunk-K3DH5SD5.cjs.map +0 -1
  69. package/dist/chunk-P4TZLFV6.js.map +0 -1
  70. package/dist/chunk-R6FINS25.js.map +0 -1
  71. package/dist/chunk-SZLJCQFZ.cjs.map +0 -1
  72. /package/dist/{chunk-DKA2I6ET.js.map → chunk-2UR2UWE2.js.map} +0 -0
package/dist/index.js CHANGED
@@ -2,7 +2,7 @@ import {
2
2
  createContext,
3
3
  hasContext,
4
4
  useContext
5
- } from "./chunk-2JRPPCG7.js";
5
+ } from "./chunk-FESAXMHT.js";
6
6
  import {
7
7
  Fragment,
8
8
  batch,
@@ -19,7 +19,7 @@ import {
19
19
  untrack,
20
20
  useDeferredValue,
21
21
  useTransition
22
- } from "./chunk-R6FINS25.js";
22
+ } from "./chunk-WIHNVN6L.js";
23
23
  import {
24
24
  __fictGetSSRStreamHooks,
25
25
  __fictPopSSRBoundary,
@@ -40,7 +40,7 @@ import {
40
40
  registerErrorHandler,
41
41
  registerSuspenseHandler,
42
42
  signal
43
- } from "./chunk-F4RVNXOL.js";
43
+ } from "./chunk-DIK33H5U.js";
44
44
 
45
45
  // src/ref.ts
46
46
  function createRef() {
@@ -49,10 +49,11 @@ function createRef() {
49
49
 
50
50
  // src/error-boundary.ts
51
51
  function ErrorBoundary(props) {
52
- const fragment = document.createDocumentFragment();
53
- const marker = document.createComment("fict:error-boundary");
54
- fragment.appendChild(marker);
55
52
  const hostRoot = getCurrentRoot();
53
+ const markerOwnerDocument = hostRoot?.ownerDocument ?? document;
54
+ const fragment = markerOwnerDocument.createDocumentFragment();
55
+ const marker = markerOwnerDocument.createComment("fict:error-boundary");
56
+ fragment.appendChild(marker);
56
57
  let cleanup;
57
58
  let activeNodes = [];
58
59
  let renderingFallback = false;
@@ -81,7 +82,7 @@ function ErrorBoundary(props) {
81
82
  let nodes = [];
82
83
  try {
83
84
  const output = createElement(value);
84
- nodes = toNodeArray(output);
85
+ nodes = toNodeArray(output, markerOwnerDocument);
85
86
  const parentNode = marker.parentNode;
86
87
  if (parentNode) {
87
88
  insertNodesBefore(parentNode, nodes, marker);
@@ -159,6 +160,7 @@ function Suspense(props) {
159
160
  let resolvedOnce = false;
160
161
  let epoch = 0;
161
162
  const hostRoot = getCurrentRoot();
163
+ const markerOwnerDocument = hostRoot?.ownerDocument ?? document;
162
164
  const toFallback = (err) => typeof props.fallback === "function" ? props.fallback(err) : props.fallback;
163
165
  const renderView = (view) => {
164
166
  if (cleanup) {
@@ -182,7 +184,7 @@ function Suspense(props) {
182
184
  boundaryPushed = true;
183
185
  }
184
186
  const output = createElement(view);
185
- nodes = toNodeArray(output);
187
+ nodes = toNodeArray(output, markerOwnerDocument);
186
188
  const suspendedAttempt = root.suspended || nodes.length > 0 && nodes.every((node) => node instanceof Comment && node.data === "fict:suspend");
187
189
  if (suspendedAttempt) {
188
190
  popRoot(prev);
@@ -213,9 +215,9 @@ function Suspense(props) {
213
215
  };
214
216
  activeNodes = nodes;
215
217
  };
216
- const fragment = document.createDocumentFragment();
217
- const startMarker = document.createComment("fict:suspense-start");
218
- const endMarker = document.createComment("fict:suspense-end");
218
+ const fragment = markerOwnerDocument.createDocumentFragment();
219
+ const startMarker = markerOwnerDocument.createComment("fict:suspense-start");
220
+ const endMarker = markerOwnerDocument.createComment("fict:suspense-end");
219
221
  fragment.appendChild(startMarker);
220
222
  fragment.appendChild(endMarker);
221
223
  let cleanup;
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/ref.ts","../src/error-boundary.ts","../src/suspense.ts"],"sourcesContent":["import type { RefObject } from './types'\n\n/**\n * Create a ref object for DOM element references.\n *\n * @returns A ref object with a `current` property initialized to `null`\n *\n * @example\n * ```tsx\n * import { createRef } from 'fict'\n *\n * function Component() {\n * const inputRef = createRef<HTMLInputElement>()\n *\n * $effect(() => {\n * inputRef.current?.focus()\n * })\n *\n * return <input ref={inputRef} />\n * }\n * ```\n */\nexport function createRef<T extends Element = HTMLElement>(): RefObject<T> {\n return { current: null }\n}\n","import { createElement } from './dom'\nimport { createEffect } from './effect'\nimport {\n createRootContext,\n destroyRoot,\n flushOnMount,\n getCurrentRoot,\n pushRoot,\n popRoot,\n registerErrorHandler,\n} from './lifecycle'\nimport { insertNodesBefore, removeNodes, toNodeArray } from './node-ops'\nimport type { BaseProps, FictNode } from './types'\n\ninterface ErrorBoundaryProps extends BaseProps {\n fallback: FictNode | ((err: unknown, reset?: () => void) => FictNode)\n onError?: (err: unknown) => void\n resetKeys?: unknown | (() => unknown)\n}\n\nexport function ErrorBoundary(props: ErrorBoundaryProps): FictNode {\n const fragment = document.createDocumentFragment()\n const marker = document.createComment('fict:error-boundary')\n fragment.appendChild(marker)\n\n const hostRoot = getCurrentRoot()\n\n let cleanup: (() => void) | undefined\n let activeNodes: Node[] = []\n let renderingFallback = false\n\n let reset = () => {}\n const toView = (err: unknown | null): FictNode | null => {\n if (err != null) {\n return typeof props.fallback === 'function'\n ? (props.fallback as (e: unknown, reset?: () => void) => FictNode)(err, reset)\n : props.fallback\n }\n return props.children ?? null\n }\n\n const renderValue = (value: FictNode | null) => {\n if (cleanup) {\n cleanup()\n cleanup = undefined\n }\n if (activeNodes.length) {\n removeNodes(activeNodes)\n activeNodes = []\n }\n\n if (value == null || value === false) {\n return\n }\n\n const root = createRootContext(hostRoot)\n const prev = pushRoot(root)\n let nodes: Node[] = []\n try {\n const output = createElement(value)\n nodes = toNodeArray(output)\n const parentNode = marker.parentNode as (ParentNode & Node) | null\n if (parentNode) {\n insertNodesBefore(parentNode, nodes, marker)\n }\n } catch (err) {\n popRoot(prev)\n destroyRoot(root)\n // Fall back immediately on render errors, avoid infinite recursion\n if (renderingFallback) {\n throw err\n }\n // nested errors. If fallback rendering also throws, we should NOT reset\n // the flag until we're sure no more recursion is happening.\n renderingFallback = true\n try {\n renderValue(toView(err))\n // Only reset if successful - if renderValue threw, we want to keep\n // renderingFallback = true to prevent infinite recursion\n renderingFallback = false\n props.onError?.(err)\n } catch (fallbackErr) {\n // Fallback rendering failed - keep renderingFallback = true\n // to prevent further attempts, then rethrow\n // If fallback fails, report both errors\n props.onError?.(err)\n throw fallbackErr\n }\n return\n }\n popRoot(prev)\n flushOnMount(root)\n\n cleanup = () => {\n destroyRoot(root)\n removeNodes(nodes)\n }\n activeNodes = nodes\n }\n\n reset = () => {\n renderingFallback = false\n renderValue(toView(null))\n }\n\n renderValue(props.children ?? null)\n\n registerErrorHandler(err => {\n renderValue(toView(err))\n props.onError?.(err)\n return true\n })\n\n if (props.resetKeys !== undefined) {\n const isGetter =\n typeof props.resetKeys === 'function' && (props.resetKeys as () => unknown).length === 0\n const getter = isGetter ? (props.resetKeys as () => unknown) : undefined\n let prev = isGetter ? getter!() : props.resetKeys\n createEffect(() => {\n const next = getter ? getter() : props.resetKeys\n if (prev !== next) {\n prev = next\n renderValue(toView(null))\n }\n })\n }\n\n return fragment\n}\n","import { createElement } from './dom'\nimport { createEffect } from './effect'\nimport {\n createRootContext,\n destroyRoot,\n flushOnMount,\n getCurrentRoot,\n handleError,\n pushRoot,\n popRoot,\n registerSuspenseHandler,\n} from './lifecycle'\nimport { insertNodesBefore, removeNodes, toNodeArray } from './node-ops'\nimport { createSignal } from './signal'\nimport { __fictGetSSRStreamHooks, __fictPopSSRBoundary, __fictPushSSRBoundary } from './ssr-stream'\nimport type { BaseProps, FictNode, SuspenseToken } from './types'\n\nexport interface SuspenseProps extends BaseProps {\n fallback: FictNode | ((err?: unknown) => FictNode)\n onResolve?: () => void\n onReject?: (err: unknown) => void\n resetKeys?: unknown | (() => unknown)\n}\n\nexport interface SuspenseHandle {\n token: SuspenseToken\n resolve: () => void\n reject: (err: unknown) => void\n}\n\nexport function createSuspenseToken(): SuspenseHandle {\n let resolve!: () => void\n let reject!: (err: unknown) => void\n const promise = new Promise<void>((res, rej) => {\n resolve = res\n reject = rej\n })\n return {\n token: {\n then: promise.then.bind(promise),\n },\n resolve,\n reject,\n }\n}\n\nconst isThenable = (value: unknown): value is PromiseLike<unknown> =>\n typeof value === 'object' &&\n value !== null &&\n typeof (value as PromiseLike<unknown>).then === 'function'\n\nexport function Suspense(props: SuspenseProps): FictNode {\n const streamHooks = __fictGetSSRStreamHooks()\n const pending = createSignal(0)\n let resolvedOnce = false\n let epoch = 0\n const hostRoot = getCurrentRoot()\n\n const toFallback = (err?: unknown) =>\n typeof props.fallback === 'function'\n ? (props.fallback as (e?: unknown) => FictNode)(err)\n : props.fallback\n\n const renderView = (view: FictNode | null) => {\n if (cleanup) {\n cleanup()\n cleanup = undefined\n }\n if (activeNodes.length) {\n removeNodes(activeNodes)\n activeNodes = []\n }\n\n if (view == null || view === false) {\n return\n }\n\n const root = createRootContext(hostRoot)\n const prev = pushRoot(root)\n let nodes: Node[] = []\n let boundaryPushed = false\n try {\n if (streamBoundaryId) {\n __fictPushSSRBoundary(streamBoundaryId)\n boundaryPushed = true\n }\n const output = createElement(view)\n nodes = toNodeArray(output)\n // Suspended view: child threw a suspense token and was handled upstream.\n // Avoid replacing existing fallback content; tear down this attempt.\n const suspendedAttempt =\n root.suspended ||\n (nodes.length > 0 &&\n nodes.every(node => node instanceof Comment && (node as Comment).data === 'fict:suspend'))\n if (suspendedAttempt) {\n popRoot(prev)\n destroyRoot(root)\n return\n }\n const parentNode = endMarker.parentNode as (ParentNode & Node) | null\n if (parentNode) {\n insertNodesBefore(parentNode, nodes, endMarker)\n }\n } catch (err) {\n popRoot(prev)\n destroyRoot(root)\n if (!handleError(err, { source: 'render' }, hostRoot)) {\n throw err\n }\n return\n } finally {\n if (boundaryPushed) {\n __fictPopSSRBoundary(streamBoundaryId ?? undefined)\n }\n }\n popRoot(prev)\n flushOnMount(root)\n\n cleanup = () => {\n destroyRoot(root)\n removeNodes(nodes)\n }\n activeNodes = nodes\n }\n\n const fragment = document.createDocumentFragment()\n const startMarker = document.createComment('fict:suspense-start')\n const endMarker = document.createComment('fict:suspense-end')\n fragment.appendChild(startMarker)\n fragment.appendChild(endMarker)\n let cleanup: (() => void) | undefined\n let activeNodes: Node[] = []\n let streamBoundaryId: string | null = null\n let streamPending = false\n\n if (streamHooks?.registerBoundary) {\n streamBoundaryId = streamHooks.registerBoundary(startMarker, endMarker) ?? null\n if (streamBoundaryId) {\n startMarker.data = `fict:suspense-start:${streamBoundaryId}`\n endMarker.data = `fict:suspense-end:${streamBoundaryId}`\n }\n }\n\n const onResolveMaybe = () => {\n if (!resolvedOnce) {\n resolvedOnce = true\n props.onResolve?.()\n }\n }\n\n registerSuspenseHandler(token => {\n const tokenEpoch = epoch\n if (!streamPending && streamBoundaryId && streamHooks?.boundaryPending) {\n streamPending = true\n streamHooks.boundaryPending(streamBoundaryId)\n }\n pending(pending() + 1)\n // Directly render fallback instead of using switchView to avoid\n // triggering the effect which would cause duplicate renders\n renderView(toFallback())\n\n const thenable = (token as SuspenseToken).then\n ? (token as SuspenseToken)\n : isThenable(token)\n ? token\n : null\n\n if (thenable) {\n thenable.then(\n () => {\n // This prevents stale token resolutions from affecting state after\n // a reset. The order is important: check epoch first, then update state.\n if (epoch !== tokenEpoch) {\n // Token is stale (from before a reset), ignore it completely\n return\n }\n // Use Math.max as a defensive measure - pending should never go below 0,\n // but this protects against edge cases where a token might resolve twice\n // or after the component has been reset.\n const newPending = Math.max(0, pending() - 1)\n pending(newPending)\n if (newPending === 0) {\n // Directly render children instead of using switchView\n renderView(props.children ?? null)\n if (streamPending && streamBoundaryId && streamHooks?.boundaryResolved) {\n streamPending = false\n streamHooks.boundaryResolved(streamBoundaryId)\n }\n onResolveMaybe()\n }\n },\n err => {\n // Same epoch check - ignore stale tokens\n if (epoch !== tokenEpoch) {\n return\n }\n const newPending = Math.max(0, pending() - 1)\n pending(newPending)\n let rejectionError = err\n try {\n props.onReject?.(err)\n } catch (callbackError) {\n rejectionError = callbackError\n }\n\n const handled = handleError(rejectionError, { source: 'render' }, hostRoot)\n if (!handled) {\n if (streamHooks?.onError) {\n streamHooks.onError(rejectionError, streamBoundaryId ?? undefined)\n return\n }\n throw rejectionError\n }\n if (\n newPending === 0 &&\n streamPending &&\n streamBoundaryId &&\n streamHooks?.boundaryResolved\n ) {\n streamPending = false\n streamHooks.boundaryResolved(streamBoundaryId)\n }\n },\n )\n return true\n }\n\n return false\n })\n\n // Initial render - render children directly\n // Note: This will be called synchronously during component creation.\n // If children suspend, the handler above will be called and switch to fallback.\n renderView(props.children ?? null)\n\n if (props.resetKeys !== undefined) {\n const isGetter =\n typeof props.resetKeys === 'function' && (props.resetKeys as () => unknown).length === 0\n const getter = isGetter ? (props.resetKeys as () => unknown) : undefined\n let prev = isGetter ? getter!() : props.resetKeys\n createEffect(() => {\n const next = getter ? getter() : props.resetKeys\n if (prev !== next) {\n prev = next\n epoch++\n pending(0)\n // Directly render children instead of using switchView\n renderView(props.children ?? null)\n if (streamPending && streamBoundaryId && streamHooks?.boundaryResolved) {\n streamPending = false\n streamHooks.boundaryResolved(streamBoundaryId)\n }\n }\n })\n }\n\n return fragment\n}\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../src/ref.ts","../src/error-boundary.ts","../src/suspense.ts"],"sourcesContent":["import type { RefObject } from './types'\n\n/**\n * Create a ref object for DOM element references.\n *\n * @returns A ref object with a `current` property initialized to `null`\n *\n * @example\n * ```tsx\n * import { createRef } from 'fict'\n *\n * function Component() {\n * const inputRef = createRef<HTMLInputElement>()\n *\n * $effect(() => {\n * inputRef.current?.focus()\n * })\n *\n * return <input ref={inputRef} />\n * }\n * ```\n */\nexport function createRef<T extends Element = HTMLElement>(): RefObject<T> {\n return { current: null }\n}\n","import { createElement } from './dom'\nimport { createEffect } from './effect'\nimport {\n createRootContext,\n destroyRoot,\n flushOnMount,\n getCurrentRoot,\n pushRoot,\n popRoot,\n registerErrorHandler,\n} from './lifecycle'\nimport { insertNodesBefore, removeNodes, toNodeArray } from './node-ops'\nimport type { BaseProps, FictNode } from './types'\n\ninterface ErrorBoundaryProps extends BaseProps {\n fallback: FictNode | ((err: unknown, reset?: () => void) => FictNode)\n onError?: (err: unknown) => void\n resetKeys?: unknown | (() => unknown)\n}\n\nexport function ErrorBoundary(props: ErrorBoundaryProps): FictNode {\n const hostRoot = getCurrentRoot()\n const markerOwnerDocument = hostRoot?.ownerDocument ?? document\n const fragment = markerOwnerDocument.createDocumentFragment()\n const marker = markerOwnerDocument.createComment('fict:error-boundary')\n fragment.appendChild(marker)\n\n let cleanup: (() => void) | undefined\n let activeNodes: Node[] = []\n let renderingFallback = false\n\n let reset = () => {}\n const toView = (err: unknown | null): FictNode | null => {\n if (err != null) {\n return typeof props.fallback === 'function'\n ? (props.fallback as (e: unknown, reset?: () => void) => FictNode)(err, reset)\n : props.fallback\n }\n return props.children ?? null\n }\n\n const renderValue = (value: FictNode | null) => {\n if (cleanup) {\n cleanup()\n cleanup = undefined\n }\n if (activeNodes.length) {\n removeNodes(activeNodes)\n activeNodes = []\n }\n\n if (value == null || value === false) {\n return\n }\n\n const root = createRootContext(hostRoot)\n const prev = pushRoot(root)\n let nodes: Node[] = []\n try {\n const output = createElement(value)\n nodes = toNodeArray(output, markerOwnerDocument)\n const parentNode = marker.parentNode as (ParentNode & Node) | null\n if (parentNode) {\n insertNodesBefore(parentNode, nodes, marker)\n }\n } catch (err) {\n popRoot(prev)\n destroyRoot(root)\n // Fall back immediately on render errors, avoid infinite recursion\n if (renderingFallback) {\n throw err\n }\n // nested errors. If fallback rendering also throws, we should NOT reset\n // the flag until we're sure no more recursion is happening.\n renderingFallback = true\n try {\n renderValue(toView(err))\n // Only reset if successful - if renderValue threw, we want to keep\n // renderingFallback = true to prevent infinite recursion\n renderingFallback = false\n props.onError?.(err)\n } catch (fallbackErr) {\n // Fallback rendering failed - keep renderingFallback = true\n // to prevent further attempts, then rethrow\n // If fallback fails, report both errors\n props.onError?.(err)\n throw fallbackErr\n }\n return\n }\n popRoot(prev)\n flushOnMount(root)\n\n cleanup = () => {\n destroyRoot(root)\n removeNodes(nodes)\n }\n activeNodes = nodes\n }\n\n reset = () => {\n renderingFallback = false\n renderValue(toView(null))\n }\n\n renderValue(props.children ?? null)\n\n registerErrorHandler(err => {\n renderValue(toView(err))\n props.onError?.(err)\n return true\n })\n\n if (props.resetKeys !== undefined) {\n const isGetter =\n typeof props.resetKeys === 'function' && (props.resetKeys as () => unknown).length === 0\n const getter = isGetter ? (props.resetKeys as () => unknown) : undefined\n let prev = isGetter ? getter!() : props.resetKeys\n createEffect(() => {\n const next = getter ? getter() : props.resetKeys\n if (prev !== next) {\n prev = next\n renderValue(toView(null))\n }\n })\n }\n\n return fragment\n}\n","import { createElement } from './dom'\nimport { createEffect } from './effect'\nimport {\n createRootContext,\n destroyRoot,\n flushOnMount,\n getCurrentRoot,\n handleError,\n pushRoot,\n popRoot,\n registerSuspenseHandler,\n} from './lifecycle'\nimport { insertNodesBefore, removeNodes, toNodeArray } from './node-ops'\nimport { createSignal } from './signal'\nimport { __fictGetSSRStreamHooks, __fictPopSSRBoundary, __fictPushSSRBoundary } from './ssr-stream'\nimport type { BaseProps, FictNode, SuspenseToken } from './types'\n\nexport interface SuspenseProps extends BaseProps {\n fallback: FictNode | ((err?: unknown) => FictNode)\n onResolve?: () => void\n onReject?: (err: unknown) => void\n resetKeys?: unknown | (() => unknown)\n}\n\nexport interface SuspenseHandle {\n token: SuspenseToken\n resolve: () => void\n reject: (err: unknown) => void\n}\n\nexport function createSuspenseToken(): SuspenseHandle {\n let resolve!: () => void\n let reject!: (err: unknown) => void\n const promise = new Promise<void>((res, rej) => {\n resolve = res\n reject = rej\n })\n return {\n token: {\n then: promise.then.bind(promise),\n },\n resolve,\n reject,\n }\n}\n\nconst isThenable = (value: unknown): value is PromiseLike<unknown> =>\n typeof value === 'object' &&\n value !== null &&\n typeof (value as PromiseLike<unknown>).then === 'function'\n\nexport function Suspense(props: SuspenseProps): FictNode {\n const streamHooks = __fictGetSSRStreamHooks()\n const pending = createSignal(0)\n let resolvedOnce = false\n let epoch = 0\n const hostRoot = getCurrentRoot()\n const markerOwnerDocument = hostRoot?.ownerDocument ?? document\n\n const toFallback = (err?: unknown) =>\n typeof props.fallback === 'function'\n ? (props.fallback as (e?: unknown) => FictNode)(err)\n : props.fallback\n\n const renderView = (view: FictNode | null) => {\n if (cleanup) {\n cleanup()\n cleanup = undefined\n }\n if (activeNodes.length) {\n removeNodes(activeNodes)\n activeNodes = []\n }\n\n if (view == null || view === false) {\n return\n }\n\n const root = createRootContext(hostRoot)\n const prev = pushRoot(root)\n let nodes: Node[] = []\n let boundaryPushed = false\n try {\n if (streamBoundaryId) {\n __fictPushSSRBoundary(streamBoundaryId)\n boundaryPushed = true\n }\n const output = createElement(view)\n nodes = toNodeArray(output, markerOwnerDocument)\n // Suspended view: child threw a suspense token and was handled upstream.\n // Avoid replacing existing fallback content; tear down this attempt.\n const suspendedAttempt =\n root.suspended ||\n (nodes.length > 0 &&\n nodes.every(node => node instanceof Comment && (node as Comment).data === 'fict:suspend'))\n if (suspendedAttempt) {\n popRoot(prev)\n destroyRoot(root)\n return\n }\n const parentNode = endMarker.parentNode as (ParentNode & Node) | null\n if (parentNode) {\n insertNodesBefore(parentNode, nodes, endMarker)\n }\n } catch (err) {\n popRoot(prev)\n destroyRoot(root)\n if (!handleError(err, { source: 'render' }, hostRoot)) {\n throw err\n }\n return\n } finally {\n if (boundaryPushed) {\n __fictPopSSRBoundary(streamBoundaryId ?? undefined)\n }\n }\n popRoot(prev)\n flushOnMount(root)\n\n cleanup = () => {\n destroyRoot(root)\n removeNodes(nodes)\n }\n activeNodes = nodes\n }\n\n const fragment = markerOwnerDocument.createDocumentFragment()\n const startMarker = markerOwnerDocument.createComment('fict:suspense-start')\n const endMarker = markerOwnerDocument.createComment('fict:suspense-end')\n fragment.appendChild(startMarker)\n fragment.appendChild(endMarker)\n let cleanup: (() => void) | undefined\n let activeNodes: Node[] = []\n let streamBoundaryId: string | null = null\n let streamPending = false\n\n if (streamHooks?.registerBoundary) {\n streamBoundaryId = streamHooks.registerBoundary(startMarker, endMarker) ?? null\n if (streamBoundaryId) {\n startMarker.data = `fict:suspense-start:${streamBoundaryId}`\n endMarker.data = `fict:suspense-end:${streamBoundaryId}`\n }\n }\n\n const onResolveMaybe = () => {\n if (!resolvedOnce) {\n resolvedOnce = true\n props.onResolve?.()\n }\n }\n\n registerSuspenseHandler(token => {\n const tokenEpoch = epoch\n if (!streamPending && streamBoundaryId && streamHooks?.boundaryPending) {\n streamPending = true\n streamHooks.boundaryPending(streamBoundaryId)\n }\n pending(pending() + 1)\n // Directly render fallback instead of using switchView to avoid\n // triggering the effect which would cause duplicate renders\n renderView(toFallback())\n\n const thenable = (token as SuspenseToken).then\n ? (token as SuspenseToken)\n : isThenable(token)\n ? token\n : null\n\n if (thenable) {\n thenable.then(\n () => {\n // This prevents stale token resolutions from affecting state after\n // a reset. The order is important: check epoch first, then update state.\n if (epoch !== tokenEpoch) {\n // Token is stale (from before a reset), ignore it completely\n return\n }\n // Use Math.max as a defensive measure - pending should never go below 0,\n // but this protects against edge cases where a token might resolve twice\n // or after the component has been reset.\n const newPending = Math.max(0, pending() - 1)\n pending(newPending)\n if (newPending === 0) {\n // Directly render children instead of using switchView\n renderView(props.children ?? null)\n if (streamPending && streamBoundaryId && streamHooks?.boundaryResolved) {\n streamPending = false\n streamHooks.boundaryResolved(streamBoundaryId)\n }\n onResolveMaybe()\n }\n },\n err => {\n // Same epoch check - ignore stale tokens\n if (epoch !== tokenEpoch) {\n return\n }\n const newPending = Math.max(0, pending() - 1)\n pending(newPending)\n let rejectionError = err\n try {\n props.onReject?.(err)\n } catch (callbackError) {\n rejectionError = callbackError\n }\n\n const handled = handleError(rejectionError, { source: 'render' }, hostRoot)\n if (!handled) {\n if (streamHooks?.onError) {\n streamHooks.onError(rejectionError, streamBoundaryId ?? undefined)\n return\n }\n throw rejectionError\n }\n if (\n newPending === 0 &&\n streamPending &&\n streamBoundaryId &&\n streamHooks?.boundaryResolved\n ) {\n streamPending = false\n streamHooks.boundaryResolved(streamBoundaryId)\n }\n },\n )\n return true\n }\n\n return false\n })\n\n // Initial render - render children directly\n // Note: This will be called synchronously during component creation.\n // If children suspend, the handler above will be called and switch to fallback.\n renderView(props.children ?? null)\n\n if (props.resetKeys !== undefined) {\n const isGetter =\n typeof props.resetKeys === 'function' && (props.resetKeys as () => unknown).length === 0\n const getter = isGetter ? (props.resetKeys as () => unknown) : undefined\n let prev = isGetter ? getter!() : props.resetKeys\n createEffect(() => {\n const next = getter ? getter() : props.resetKeys\n if (prev !== next) {\n prev = next\n epoch++\n pending(0)\n // Directly render children instead of using switchView\n renderView(props.children ?? null)\n if (streamPending && streamBoundaryId && streamHooks?.boundaryResolved) {\n streamPending = false\n streamHooks.boundaryResolved(streamBoundaryId)\n }\n }\n })\n }\n\n return fragment\n}\n"],"mappings":"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","names":[]}
@@ -1,12 +1,12 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
2
 
3
- var _chunkSZLJCQFZcjs = require('./chunk-SZLJCQFZ.cjs');
3
+ var _chunk44EQF3ARcjs = require('./chunk-44EQF3AR.cjs');
4
4
 
5
5
 
6
- var _chunkI4GKKAAYcjs = require('./chunk-I4GKKAAY.cjs');
7
- require('./chunk-EQ5E4WOV.cjs');
6
+ var _chunk4QGEN5SJcjs = require('./chunk-4QGEN5SJ.cjs');
7
+ require('./chunk-QNMYVXRL.cjs');
8
8
 
9
9
 
10
10
 
11
- exports.createKeyedList = _chunkSZLJCQFZcjs.createKeyedList; exports.toNodeArray = _chunkI4GKKAAYcjs.toNodeArray;
11
+ exports.createKeyedList = _chunk44EQF3ARcjs.createKeyedList; exports.toNodeArray = _chunk4QGEN5SJcjs.toNodeArray;
12
12
  //# sourceMappingURL=internal-list.cjs.map
@@ -1,2 +1,2 @@
1
- export { K as KeyedListBinding, c as createKeyedList, t as toNodeArray } from './list-_NJCcjl1.cjs';
1
+ export { K as KeyedListBinding, c as createKeyedList, t as toNodeArray } from './list-Bi8dDF8Q.cjs';
2
2
  import './signal-Z4KkDk9h.cjs';
@@ -1,2 +1,2 @@
1
- export { K as KeyedListBinding, c as createKeyedList, t as toNodeArray } from './list-BBzsJhrm.js';
1
+ export { K as KeyedListBinding, c as createKeyedList, t as toNodeArray } from './list-BKM6YOPq.js';
2
2
  import './signal-Z4KkDk9h.js';
@@ -1,10 +1,10 @@
1
1
  import {
2
2
  createKeyedList
3
- } from "./chunk-P4TZLFV6.js";
3
+ } from "./chunk-S63VBIWN.js";
4
4
  import {
5
5
  toNodeArray
6
- } from "./chunk-R6FINS25.js";
7
- import "./chunk-F4RVNXOL.js";
6
+ } from "./chunk-WIHNVN6L.js";
7
+ import "./chunk-DIK33H5U.js";
8
8
  export {
9
9
  createKeyedList,
10
10
  toNodeArray
package/dist/internal.cjs CHANGED
@@ -3,10 +3,10 @@
3
3
 
4
4
 
5
5
 
6
- var _chunkSZLJCQFZcjs = require('./chunk-SZLJCQFZ.cjs');
6
+ var _chunk44EQF3ARcjs = require('./chunk-44EQF3AR.cjs');
7
7
 
8
8
 
9
- var _chunkV7BC64W2cjs = require('./chunk-V7BC64W2.cjs');
9
+ var _chunkC5IE4WUGcjs = require('./chunk-C5IE4WUG.cjs');
10
10
 
11
11
 
12
12
 
@@ -51,7 +51,7 @@ var _chunkV7BC64W2cjs = require('./chunk-V7BC64W2.cjs');
51
51
 
52
52
 
53
53
 
54
- var _chunkI4GKKAAYcjs = require('./chunk-I4GKKAAY.cjs');
54
+ var _chunk4QGEN5SJcjs = require('./chunk-4QGEN5SJ.cjs');
55
55
 
56
56
 
57
57
 
@@ -109,7 +109,7 @@ var _chunkI4GKKAAYcjs = require('./chunk-I4GKKAAY.cjs');
109
109
 
110
110
 
111
111
 
112
- var _chunkEQ5E4WOVcjs = require('./chunk-EQ5E4WOV.cjs');
112
+ var _chunkQNMYVXRLcjs = require('./chunk-QNMYVXRL.cjs');
113
113
 
114
114
 
115
115
 
@@ -215,5 +215,5 @@ var _chunkEQ5E4WOVcjs = require('./chunk-EQ5E4WOV.cjs');
215
215
 
216
216
 
217
217
 
218
- exports.Aliases = _chunkEQ5E4WOVcjs.Aliases; exports.BooleanAttributes = _chunkEQ5E4WOVcjs.BooleanAttributes; exports.ChildProperties = _chunkEQ5E4WOVcjs.ChildProperties; exports.DelegatedEvents = _chunkEQ5E4WOVcjs.DelegatedEvents; exports.FICT_SSR_SNAPSHOT_SCHEMA_VERSION = _chunkEQ5E4WOVcjs.FICT_SSR_SNAPSHOT_SCHEMA_VERSION; exports.Fragment = _chunkI4GKKAAYcjs.Fragment; exports.Properties = _chunkEQ5E4WOVcjs.Properties; exports.SVGElements = _chunkEQ5E4WOVcjs.SVGElements; exports.SVGNamespace = _chunkEQ5E4WOVcjs.SVGNamespace; exports.UnitlessStyles = _chunkEQ5E4WOVcjs.UnitlessStyles; exports.__fictDisableResumable = _chunkEQ5E4WOVcjs.__fictDisableResumable; exports.__fictDisableSSR = _chunkEQ5E4WOVcjs.__fictDisableSSR; exports.__fictEnableResumable = _chunkEQ5E4WOVcjs.__fictEnableResumable; exports.__fictEnableSSR = _chunkEQ5E4WOVcjs.__fictEnableSSR; exports.__fictEnsureScope = _chunkEQ5E4WOVcjs.__fictEnsureScope; exports.__fictEnterHydration = _chunkEQ5E4WOVcjs.__fictEnterHydration; exports.__fictExitHydration = _chunkEQ5E4WOVcjs.__fictExitHydration; exports.__fictGetResume = _chunkEQ5E4WOVcjs.__fictGetResume; exports.__fictGetSSRScope = _chunkEQ5E4WOVcjs.__fictGetSSRScope; exports.__fictGetSSRStreamHooks = _chunkEQ5E4WOVcjs.__fictGetSSRStreamHooks; exports.__fictGetScopeProps = _chunkEQ5E4WOVcjs.__fictGetScopeProps; exports.__fictGetScopeRegistry = _chunkEQ5E4WOVcjs.__fictGetScopeRegistry; exports.__fictGetScopesForBoundary = _chunkEQ5E4WOVcjs.__fictGetScopesForBoundary; exports.__fictIsHydrating = _chunkEQ5E4WOVcjs.__fictIsHydrating; exports.__fictIsResumable = _chunkEQ5E4WOVcjs.__fictIsResumable; exports.__fictIsSSR = _chunkEQ5E4WOVcjs.__fictIsSSR; exports.__fictMergeSSRState = _chunkEQ5E4WOVcjs.__fictMergeSSRState; exports.__fictPopContext = _chunkEQ5E4WOVcjs.__fictPopContext; exports.__fictPrepareContext = _chunkEQ5E4WOVcjs.__fictPrepareContext; exports.__fictProp = _chunkI4GKKAAYcjs.__fictProp; exports.__fictPropsRest = _chunkI4GKKAAYcjs.__fictPropsRest; exports.__fictPushContext = _chunkEQ5E4WOVcjs.__fictPushContext; exports.__fictQrl = _chunkEQ5E4WOVcjs.__fictQrl; exports.__fictRegisterResume = _chunkEQ5E4WOVcjs.__fictRegisterResume; exports.__fictRegisterScope = _chunkEQ5E4WOVcjs.__fictRegisterScope; exports.__fictRender = _chunkEQ5E4WOVcjs.__fictRender; exports.__fictResetContext = _chunkEQ5E4WOVcjs.__fictResetContext; exports.__fictSerializeSSRState = _chunkEQ5E4WOVcjs.__fictSerializeSSRState; exports.__fictSerializeSSRStateForScopes = _chunkEQ5E4WOVcjs.__fictSerializeSSRStateForScopes; exports.__fictSetSSRState = _chunkEQ5E4WOVcjs.__fictSetSSRState; exports.__fictSetSSRStreamHooks = _chunkEQ5E4WOVcjs.__fictSetSSRStreamHooks; exports.__fictUseContext = _chunkEQ5E4WOVcjs.__fictUseContext; exports.__fictUseEffect = _chunkEQ5E4WOVcjs.__fictUseEffect; exports.__fictUseLexicalScope = _chunkEQ5E4WOVcjs.__fictUseLexicalScope; exports.__fictUseMemo = _chunkEQ5E4WOVcjs.__fictUseMemo; exports.__fictUseSignal = _chunkEQ5E4WOVcjs.__fictUseSignal; exports.__resetReactiveState = _chunkEQ5E4WOVcjs.__resetReactiveState; exports.addEventListener = _chunkI4GKKAAYcjs.addEventListener; exports.assign = _chunkI4GKKAAYcjs.assign; exports.bindAttribute = _chunkI4GKKAAYcjs.bindAttribute; exports.bindClass = _chunkI4GKKAAYcjs.bindClass; exports.bindEvent = _chunkI4GKKAAYcjs.bindEvent; exports.bindProperty = _chunkI4GKKAAYcjs.bindProperty; exports.bindRef = _chunkI4GKKAAYcjs.bindRef; exports.bindStyle = _chunkI4GKKAAYcjs.bindStyle; exports.bindText = _chunkI4GKKAAYcjs.bindText; exports.callEventHandler = _chunkI4GKKAAYcjs.callEventHandler; exports.classList = _chunkI4GKKAAYcjs.classList; exports.clearDelegatedEvents = _chunkI4GKKAAYcjs.clearDelegatedEvents; exports.createConditional = _chunkI4GKKAAYcjs.createConditional; exports.createEffect = _chunkEQ5E4WOVcjs.createEffect; exports.createElement = _chunkI4GKKAAYcjs.createElement; exports.createKeyedList = _chunkSZLJCQFZcjs.createKeyedList; exports.createMemo = _chunkEQ5E4WOVcjs.createMemo; exports.createPortal = _chunkI4GKKAAYcjs.createPortal; exports.createPropsProxy = _chunkI4GKKAAYcjs.createPropsProxy; exports.createRenderEffect = _chunkEQ5E4WOVcjs.createRenderEffect; exports.createSelector = _chunkEQ5E4WOVcjs.createSelector; exports.createSignal = _chunkEQ5E4WOVcjs.signal; exports.createStore = _chunkEQ5E4WOVcjs.createStore; exports.delegateEvents = _chunkI4GKKAAYcjs.delegateEvents; exports.deserializeValue = _chunkEQ5E4WOVcjs.deserializeValue; exports.getPropAlias = _chunkEQ5E4WOVcjs.getPropAlias; exports.getSlotEnd = _chunkI4GKKAAYcjs.getSlotEnd; exports.hydrateComponent = _chunkI4GKKAAYcjs.hydrateComponent; exports.insert = _chunkI4GKKAAYcjs.insert; exports.insertBetween = _chunkI4GKKAAYcjs.insertBetween; exports.insertNodesBefore = _chunkI4GKKAAYcjs.insertNodesBefore; exports.isNodeBetweenMarkers = _chunkSZLJCQFZcjs.isNodeBetweenMarkers; exports.isReactive = _chunkI4GKKAAYcjs.isReactive; exports.isStoreProxy = _chunkEQ5E4WOVcjs.isStoreProxy; exports.keyed = _chunkI4GKKAAYcjs.keyed; exports.mergeProps = _chunkI4GKKAAYcjs.mergeProps; exports.moveNodesBefore = _chunkSZLJCQFZcjs.moveNodesBefore; exports.nonReactive = _chunkI4GKKAAYcjs.nonReactive; exports.onDestroy = _chunkEQ5E4WOVcjs.onDestroy; exports.prop = _chunkI4GKKAAYcjs.prop; exports.reactive = _chunkI4GKKAAYcjs.reactive; exports.reconcileArrays = _chunkSZLJCQFZcjs.reconcileArrays; exports.removeNodes = _chunkI4GKKAAYcjs.removeNodes; exports.render = _chunkI4GKKAAYcjs.render; exports.resolvePath = _chunkI4GKKAAYcjs.resolvePath; exports.runInScope = _chunkV7BC64W2cjs.runInScope; exports.serializeValue = _chunkEQ5E4WOVcjs.serializeValue; exports.setAttr = _chunkI4GKKAAYcjs.setAttr; exports.setClass = _chunkI4GKKAAYcjs.setClass; exports.setProp = _chunkI4GKKAAYcjs.setProp; exports.setStyle = _chunkI4GKKAAYcjs.setStyle; exports.setText = _chunkI4GKKAAYcjs.setText; exports.spread = _chunkI4GKKAAYcjs.spread; exports.template = _chunkI4GKKAAYcjs.template; exports.toNodeArray = _chunkI4GKKAAYcjs.toNodeArray; exports.unwrap = _chunkI4GKKAAYcjs.unwrap; exports.unwrapStore = _chunkEQ5E4WOVcjs.unwrapStore;
218
+ exports.Aliases = _chunkQNMYVXRLcjs.Aliases; exports.BooleanAttributes = _chunkQNMYVXRLcjs.BooleanAttributes; exports.ChildProperties = _chunkQNMYVXRLcjs.ChildProperties; exports.DelegatedEvents = _chunkQNMYVXRLcjs.DelegatedEvents; exports.FICT_SSR_SNAPSHOT_SCHEMA_VERSION = _chunkQNMYVXRLcjs.FICT_SSR_SNAPSHOT_SCHEMA_VERSION; exports.Fragment = _chunk4QGEN5SJcjs.Fragment; exports.Properties = _chunkQNMYVXRLcjs.Properties; exports.SVGElements = _chunkQNMYVXRLcjs.SVGElements; exports.SVGNamespace = _chunkQNMYVXRLcjs.SVGNamespace; exports.UnitlessStyles = _chunkQNMYVXRLcjs.UnitlessStyles; exports.__fictDisableResumable = _chunkQNMYVXRLcjs.__fictDisableResumable; exports.__fictDisableSSR = _chunkQNMYVXRLcjs.__fictDisableSSR; exports.__fictEnableResumable = _chunkQNMYVXRLcjs.__fictEnableResumable; exports.__fictEnableSSR = _chunkQNMYVXRLcjs.__fictEnableSSR; exports.__fictEnsureScope = _chunkQNMYVXRLcjs.__fictEnsureScope; exports.__fictEnterHydration = _chunkQNMYVXRLcjs.__fictEnterHydration; exports.__fictExitHydration = _chunkQNMYVXRLcjs.__fictExitHydration; exports.__fictGetResume = _chunkQNMYVXRLcjs.__fictGetResume; exports.__fictGetSSRScope = _chunkQNMYVXRLcjs.__fictGetSSRScope; exports.__fictGetSSRStreamHooks = _chunkQNMYVXRLcjs.__fictGetSSRStreamHooks; exports.__fictGetScopeProps = _chunkQNMYVXRLcjs.__fictGetScopeProps; exports.__fictGetScopeRegistry = _chunkQNMYVXRLcjs.__fictGetScopeRegistry; exports.__fictGetScopesForBoundary = _chunkQNMYVXRLcjs.__fictGetScopesForBoundary; exports.__fictIsHydrating = _chunkQNMYVXRLcjs.__fictIsHydrating; exports.__fictIsResumable = _chunkQNMYVXRLcjs.__fictIsResumable; exports.__fictIsSSR = _chunkQNMYVXRLcjs.__fictIsSSR; exports.__fictMergeSSRState = _chunkQNMYVXRLcjs.__fictMergeSSRState; exports.__fictPopContext = _chunkQNMYVXRLcjs.__fictPopContext; exports.__fictPrepareContext = _chunkQNMYVXRLcjs.__fictPrepareContext; exports.__fictProp = _chunk4QGEN5SJcjs.__fictProp; exports.__fictPropsRest = _chunk4QGEN5SJcjs.__fictPropsRest; exports.__fictPushContext = _chunkQNMYVXRLcjs.__fictPushContext; exports.__fictQrl = _chunkQNMYVXRLcjs.__fictQrl; exports.__fictRegisterResume = _chunkQNMYVXRLcjs.__fictRegisterResume; exports.__fictRegisterScope = _chunkQNMYVXRLcjs.__fictRegisterScope; exports.__fictRender = _chunkQNMYVXRLcjs.__fictRender; exports.__fictResetContext = _chunkQNMYVXRLcjs.__fictResetContext; exports.__fictSerializeSSRState = _chunkQNMYVXRLcjs.__fictSerializeSSRState; exports.__fictSerializeSSRStateForScopes = _chunkQNMYVXRLcjs.__fictSerializeSSRStateForScopes; exports.__fictSetSSRState = _chunkQNMYVXRLcjs.__fictSetSSRState; exports.__fictSetSSRStreamHooks = _chunkQNMYVXRLcjs.__fictSetSSRStreamHooks; exports.__fictUseContext = _chunkQNMYVXRLcjs.__fictUseContext; exports.__fictUseEffect = _chunkQNMYVXRLcjs.__fictUseEffect; exports.__fictUseLexicalScope = _chunkQNMYVXRLcjs.__fictUseLexicalScope; exports.__fictUseMemo = _chunkQNMYVXRLcjs.__fictUseMemo; exports.__fictUseSignal = _chunkQNMYVXRLcjs.__fictUseSignal; exports.__resetReactiveState = _chunkQNMYVXRLcjs.__resetReactiveState; exports.addEventListener = _chunk4QGEN5SJcjs.addEventListener; exports.assign = _chunk4QGEN5SJcjs.assign; exports.bindAttribute = _chunk4QGEN5SJcjs.bindAttribute; exports.bindClass = _chunk4QGEN5SJcjs.bindClass; exports.bindEvent = _chunk4QGEN5SJcjs.bindEvent; exports.bindProperty = _chunk4QGEN5SJcjs.bindProperty; exports.bindRef = _chunk4QGEN5SJcjs.bindRef; exports.bindStyle = _chunk4QGEN5SJcjs.bindStyle; exports.bindText = _chunk4QGEN5SJcjs.bindText; exports.callEventHandler = _chunk4QGEN5SJcjs.callEventHandler; exports.classList = _chunk4QGEN5SJcjs.classList; exports.clearDelegatedEvents = _chunk4QGEN5SJcjs.clearDelegatedEvents; exports.createConditional = _chunk4QGEN5SJcjs.createConditional; exports.createEffect = _chunkQNMYVXRLcjs.createEffect; exports.createElement = _chunk4QGEN5SJcjs.createElement; exports.createKeyedList = _chunk44EQF3ARcjs.createKeyedList; exports.createMemo = _chunkQNMYVXRLcjs.createMemo; exports.createPortal = _chunk4QGEN5SJcjs.createPortal; exports.createPropsProxy = _chunk4QGEN5SJcjs.createPropsProxy; exports.createRenderEffect = _chunkQNMYVXRLcjs.createRenderEffect; exports.createSelector = _chunkQNMYVXRLcjs.createSelector; exports.createSignal = _chunkQNMYVXRLcjs.signal; exports.createStore = _chunkQNMYVXRLcjs.createStore; exports.delegateEvents = _chunk4QGEN5SJcjs.delegateEvents; exports.deserializeValue = _chunkQNMYVXRLcjs.deserializeValue; exports.getPropAlias = _chunkQNMYVXRLcjs.getPropAlias; exports.getSlotEnd = _chunk4QGEN5SJcjs.getSlotEnd; exports.hydrateComponent = _chunk4QGEN5SJcjs.hydrateComponent; exports.insert = _chunk4QGEN5SJcjs.insert; exports.insertBetween = _chunk4QGEN5SJcjs.insertBetween; exports.insertNodesBefore = _chunk4QGEN5SJcjs.insertNodesBefore; exports.isNodeBetweenMarkers = _chunk44EQF3ARcjs.isNodeBetweenMarkers; exports.isReactive = _chunk4QGEN5SJcjs.isReactive; exports.isStoreProxy = _chunkQNMYVXRLcjs.isStoreProxy; exports.keyed = _chunk4QGEN5SJcjs.keyed; exports.mergeProps = _chunk4QGEN5SJcjs.mergeProps; exports.moveNodesBefore = _chunk44EQF3ARcjs.moveNodesBefore; exports.nonReactive = _chunk4QGEN5SJcjs.nonReactive; exports.onDestroy = _chunkQNMYVXRLcjs.onDestroy; exports.prop = _chunk4QGEN5SJcjs.prop; exports.reactive = _chunk4QGEN5SJcjs.reactive; exports.reconcileArrays = _chunk44EQF3ARcjs.reconcileArrays; exports.removeNodes = _chunk4QGEN5SJcjs.removeNodes; exports.render = _chunk4QGEN5SJcjs.render; exports.resolvePath = _chunk4QGEN5SJcjs.resolvePath; exports.runInScope = _chunkC5IE4WUGcjs.runInScope; exports.serializeValue = _chunkQNMYVXRLcjs.serializeValue; exports.setAttr = _chunk4QGEN5SJcjs.setAttr; exports.setClass = _chunk4QGEN5SJcjs.setClass; exports.setProp = _chunk4QGEN5SJcjs.setProp; exports.setStyle = _chunk4QGEN5SJcjs.setStyle; exports.setText = _chunk4QGEN5SJcjs.setText; exports.spread = _chunk4QGEN5SJcjs.spread; exports.template = _chunk4QGEN5SJcjs.template; exports.toNodeArray = _chunk4QGEN5SJcjs.toNodeArray; exports.unwrap = _chunk4QGEN5SJcjs.unwrap; exports.unwrapStore = _chunkQNMYVXRLcjs.unwrapStore;
219
219
  //# sourceMappingURL=internal.cjs.map
@@ -1,9 +1,9 @@
1
1
  export { _ as __resetReactiveState, c as createSelector, s as createSignal } from './signal-Z4KkDk9h.cjs';
2
- export { F as Fragment, _ as __fictProp, a as __fictPropsRest, d as createElement, c as createMemo, b as createPropsProxy, h as hydrateComponent, k as keyed, m as mergeProps, p as prop, r as render, t as template } from './props--zJ4ebbT.cjs';
3
- export { Q as AttributeSetter, O as BindingHandle, P as CreateElementFn, M as MaybeReactive, L as addEventListener, H as assign, l as bindAttribute, o as bindClass, w as bindEvent, y as bindProperty, z as bindRef, m as bindStyle, k as bindText, x as callEventHandler, I as classList, K as clearDelegatedEvents, D as createConditional, j as createEffect, E as createPortal, h as createRenderEffect, J as delegateEvents, A as insert, C as insertBetween, i as isReactive, n as nonReactive, N as onDestroy, r as reactive, p as setAttr, v as setClass, q as setProp, t as setStyle, s as setText, G as spread, u as unwrap } from './binding-DUEukRxl.cjs';
2
+ export { F as Fragment, _ as __fictProp, a as __fictPropsRest, d as createElement, c as createMemo, b as createPropsProxy, h as hydrateComponent, k as keyed, m as mergeProps, p as prop, r as render, t as template } from './props-9chMyBGb.cjs';
3
+ export { Q as AttributeSetter, O as BindingHandle, P as CreateElementFn, M as MaybeReactive, L as addEventListener, H as assign, l as bindAttribute, o as bindClass, w as bindEvent, y as bindProperty, z as bindRef, m as bindStyle, k as bindText, x as callEventHandler, I as classList, K as clearDelegatedEvents, D as createConditional, j as createEffect, E as createPortal, h as createRenderEffect, J as delegateEvents, A as insert, C as insertBetween, i as isReactive, n as nonReactive, N as onDestroy, r as reactive, p as setAttr, v as setClass, q as setProp, t as setStyle, s as setText, G as spread, u as unwrap } from './binding-FRyTeLDn.cjs';
4
4
  export { F as FICT_SSR_SNAPSHOT_SCHEMA_VERSION, n as __fictDisableResumable, k as __fictDisableSSR, m as __fictEnableResumable, j as __fictEnableSSR, A as __fictEnsureScope, p as __fictEnterHydration, q as __fictExitHydration, E as __fictGetResume, z as __fictGetSSRScope, B as __fictGetScopeProps, t as __fictGetScopeRegistry, u as __fictGetScopesForBoundary, r as __fictIsHydrating, o as __fictIsResumable, l as __fictIsSSR, y as __fictMergeSSRState, c as __fictPopContext, i as __fictPrepareContext, b as __fictPushContext, C as __fictQrl, D as __fictRegisterResume, s as __fictRegisterScope, g as __fictRender, h as __fictResetContext, v as __fictSerializeSSRState, w as __fictSerializeSSRStateForScopes, x as __fictSetSSRState, a as __fictUseContext, f as __fictUseEffect, _ as __fictUseLexicalScope, e as __fictUseMemo, d as __fictUseSignal, H as deserializeValue, G as serializeValue } from './resume-DPZxmA95.cjs';
5
- export { K as KeyedListBinding, c as createKeyedList, g as getSlotEnd, i as insertNodesBefore, b as isNodeBetweenMarkers, m as moveNodesBefore, a as removeNodes, r as resolvePath, t as toNodeArray } from './list-_NJCcjl1.cjs';
6
- export { r as runInScope } from './scope-Dq5hOu7c.cjs';
5
+ export { K as KeyedListBinding, c as createKeyedList, g as getSlotEnd, i as insertNodesBefore, b as isNodeBetweenMarkers, m as moveNodesBefore, a as removeNodes, r as resolvePath, t as toNodeArray } from './list-Bi8dDF8Q.cjs';
6
+ export { r as runInScope } from './scope-Bn3sxem5.cjs';
7
7
 
8
8
  type Store<T> = T;
9
9
  /**
@@ -1,9 +1,9 @@
1
1
  export { _ as __resetReactiveState, c as createSelector, s as createSignal } from './signal-Z4KkDk9h.js';
2
- export { F as Fragment, _ as __fictProp, a as __fictPropsRest, d as createElement, c as createMemo, b as createPropsProxy, h as hydrateComponent, k as keyed, m as mergeProps, p as prop, r as render, t as template } from './props-BAGR7j-j.js';
3
- export { Q as AttributeSetter, O as BindingHandle, P as CreateElementFn, M as MaybeReactive, L as addEventListener, H as assign, l as bindAttribute, o as bindClass, w as bindEvent, y as bindProperty, z as bindRef, m as bindStyle, k as bindText, x as callEventHandler, I as classList, K as clearDelegatedEvents, D as createConditional, j as createEffect, E as createPortal, h as createRenderEffect, J as delegateEvents, A as insert, C as insertBetween, i as isReactive, n as nonReactive, N as onDestroy, r as reactive, p as setAttr, v as setClass, q as setProp, t as setStyle, s as setText, G as spread, u as unwrap } from './binding-DqxS9ZQf.js';
2
+ export { F as Fragment, _ as __fictProp, a as __fictPropsRest, d as createElement, c as createMemo, b as createPropsProxy, h as hydrateComponent, k as keyed, m as mergeProps, p as prop, r as render, t as template } from './props-D1nj2p_3.js';
3
+ export { Q as AttributeSetter, O as BindingHandle, P as CreateElementFn, M as MaybeReactive, L as addEventListener, H as assign, l as bindAttribute, o as bindClass, w as bindEvent, y as bindProperty, z as bindRef, m as bindStyle, k as bindText, x as callEventHandler, I as classList, K as clearDelegatedEvents, D as createConditional, j as createEffect, E as createPortal, h as createRenderEffect, J as delegateEvents, A as insert, C as insertBetween, i as isReactive, n as nonReactive, N as onDestroy, r as reactive, p as setAttr, v as setClass, q as setProp, t as setStyle, s as setText, G as spread, u as unwrap } from './binding-DcnhUSQK.js';
4
4
  export { F as FICT_SSR_SNAPSHOT_SCHEMA_VERSION, n as __fictDisableResumable, k as __fictDisableSSR, m as __fictEnableResumable, j as __fictEnableSSR, A as __fictEnsureScope, p as __fictEnterHydration, q as __fictExitHydration, E as __fictGetResume, z as __fictGetSSRScope, B as __fictGetScopeProps, t as __fictGetScopeRegistry, u as __fictGetScopesForBoundary, r as __fictIsHydrating, o as __fictIsResumable, l as __fictIsSSR, y as __fictMergeSSRState, c as __fictPopContext, i as __fictPrepareContext, b as __fictPushContext, C as __fictQrl, D as __fictRegisterResume, s as __fictRegisterScope, g as __fictRender, h as __fictResetContext, v as __fictSerializeSSRState, w as __fictSerializeSSRStateForScopes, x as __fictSetSSRState, a as __fictUseContext, f as __fictUseEffect, _ as __fictUseLexicalScope, e as __fictUseMemo, d as __fictUseSignal, H as deserializeValue, G as serializeValue } from './resume-C5IKAIdh.js';
5
- export { K as KeyedListBinding, c as createKeyedList, g as getSlotEnd, i as insertNodesBefore, b as isNodeBetweenMarkers, m as moveNodesBefore, a as removeNodes, r as resolvePath, t as toNodeArray } from './list-BBzsJhrm.js';
6
- export { r as runInScope } from './scope-CuImnvh1.js';
5
+ export { K as KeyedListBinding, c as createKeyedList, g as getSlotEnd, i as insertNodesBefore, b as isNodeBetweenMarkers, m as moveNodesBefore, a as removeNodes, r as resolvePath, t as toNodeArray } from './list-BKM6YOPq.js';
6
+ export { r as runInScope } from './scope-BSkhJr0a.js';
7
7
 
8
8
  type Store<T> = T;
9
9
  /**
package/dist/internal.js CHANGED
@@ -3,10 +3,10 @@ import {
3
3
  isNodeBetweenMarkers,
4
4
  moveNodesBefore,
5
5
  reconcileArrays
6
- } from "./chunk-P4TZLFV6.js";
6
+ } from "./chunk-S63VBIWN.js";
7
7
  import {
8
8
  runInScope
9
- } from "./chunk-DKA2I6ET.js";
9
+ } from "./chunk-2UR2UWE2.js";
10
10
  import {
11
11
  Fragment,
12
12
  __fictProp,
@@ -51,7 +51,7 @@ import {
51
51
  template,
52
52
  toNodeArray,
53
53
  unwrap
54
- } from "./chunk-R6FINS25.js";
54
+ } from "./chunk-WIHNVN6L.js";
55
55
  import {
56
56
  Aliases,
57
57
  BooleanAttributes,
@@ -109,7 +109,7 @@ import {
109
109
  serializeValue,
110
110
  signal,
111
111
  unwrapStore
112
- } from "./chunk-F4RVNXOL.js";
112
+ } from "./chunk-DIK33H5U.js";
113
113
  export {
114
114
  Aliases,
115
115
  BooleanAttributes,
@@ -8,7 +8,7 @@ import { S as SignalAccessor } from './signal-Z4KkDk9h.js';
8
8
  * Convert a value to a flat array of DOM nodes.
9
9
  * Defensively handles proxies and non-DOM values.
10
10
  */
11
- declare function toNodeArray(node: Node | Node[] | unknown): Node[];
11
+ declare function toNodeArray(node: Node | Node[] | unknown, ownerDocument?: Document): Node[];
12
12
  /**
13
13
  * Insert nodes before an anchor node, preserving order.
14
14
  * Uses DocumentFragment for batch insertion when inserting multiple nodes.
@@ -8,7 +8,7 @@ import { S as SignalAccessor } from './signal-Z4KkDk9h.cjs';
8
8
  * Convert a value to a flat array of DOM nodes.
9
9
  * Defensively handles proxies and non-DOM values.
10
10
  */
11
- declare function toNodeArray(node: Node | Node[] | unknown): Node[];
11
+ declare function toNodeArray(node: Node | Node[] | unknown, ownerDocument?: Document): Node[];
12
12
  /**
13
13
  * Insert nodes before an anchor node, preserving order.
14
14
  * Uses DocumentFragment for batch insertion when inserting multiple nodes.
package/dist/loader.cjs CHANGED
@@ -8,7 +8,7 @@
8
8
 
9
9
 
10
10
 
11
- var _chunkEQ5E4WOVcjs = require('./chunk-EQ5E4WOV.cjs');
11
+ var _chunkQNMYVXRLcjs = require('./chunk-QNMYVXRL.cjs');
12
12
 
13
13
  // src/loader.ts
14
14
  function resolveModuleUrl(url) {
@@ -54,7 +54,7 @@ function installResumableLoader(options = {}) {
54
54
  prefetchedUrls.clear();
55
55
  processedSnapshots.clear();
56
56
  emittedIssueKeys.clear();
57
- _chunkEQ5E4WOVcjs.__fictSetSSRState.call(void 0, null);
57
+ _chunkQNMYVXRLcjs.__fictSetSSRState.call(void 0, null);
58
58
  if (eventListenerCleanup) {
59
59
  eventListenerCleanup();
60
60
  eventListenerCleanup = null;
@@ -71,7 +71,7 @@ function installResumableLoader(options = {}) {
71
71
  if (_optionalChain([snapshotEl, 'optionalAccess', _ => _.textContent])) {
72
72
  const state = parseSnapshotText(snapshotEl.textContent, `#${scriptId}`);
73
73
  if (state) {
74
- _chunkEQ5E4WOVcjs.__fictSetSSRState.call(void 0, state);
74
+ _chunkQNMYVXRLcjs.__fictSetSSRState.call(void 0, state);
75
75
  }
76
76
  }
77
77
  const snapshotScripts = doc.querySelectorAll(
@@ -104,8 +104,8 @@ function installResumableLoader(options = {}) {
104
104
  });
105
105
  snapshotObserver.observe(_nullishCoalesce(doc.documentElement, () => ( doc)), { childList: true, subtree: true });
106
106
  }
107
- _chunkEQ5E4WOVcjs.__fictEnableResumable.call(void 0, );
108
- const events = _nullishCoalesce(options.events, () => ( Array.from(_chunkEQ5E4WOVcjs.DelegatedEvents)));
107
+ _chunkQNMYVXRLcjs.__fictEnableResumable.call(void 0, );
108
+ const events = _nullishCoalesce(options.events, () => ( Array.from(_chunkQNMYVXRLcjs.DelegatedEvents)));
109
109
  for (const eventName of events) {
110
110
  doc.addEventListener(eventName, handleResumableEvent, true);
111
111
  }
@@ -129,7 +129,7 @@ function parseSnapshotScript(script) {
129
129
  const source = script.id ? `#${script.id}` : "<script[data-fict-snapshot]>";
130
130
  const state = parseSnapshotText(text, source);
131
131
  if (state) {
132
- _chunkEQ5E4WOVcjs.__fictMergeSSRState.call(void 0, state);
132
+ _chunkQNMYVXRLcjs.__fictMergeSSRState.call(void 0, state);
133
133
  }
134
134
  }
135
135
  function parseSnapshotText(text, source) {
@@ -141,7 +141,7 @@ function parseSnapshotText(text, source) {
141
141
  code: "snapshot_parse_error",
142
142
  message: "[fict/loader] Failed to parse SSR snapshot JSON.",
143
143
  source,
144
- expectedVersion: _chunkEQ5E4WOVcjs.FICT_SSR_SNAPSHOT_SCHEMA_VERSION
144
+ expectedVersion: _chunkQNMYVXRLcjs.FICT_SSR_SNAPSHOT_SCHEMA_VERSION
145
145
  });
146
146
  return null;
147
147
  }
@@ -153,18 +153,18 @@ function normalizeSnapshotState(value, source) {
153
153
  code: "snapshot_invalid_shape",
154
154
  message: "[fict/loader] Snapshot payload must be an object.",
155
155
  source,
156
- expectedVersion: _chunkEQ5E4WOVcjs.FICT_SSR_SNAPSHOT_SCHEMA_VERSION
156
+ expectedVersion: _chunkQNMYVXRLcjs.FICT_SSR_SNAPSHOT_SCHEMA_VERSION
157
157
  });
158
158
  return null;
159
159
  }
160
160
  const rawVersion = value.v;
161
- const version = rawVersion === void 0 ? _chunkEQ5E4WOVcjs.FICT_SSR_SNAPSHOT_SCHEMA_VERSION : rawVersion;
162
- if (!Number.isInteger(version) || version !== _chunkEQ5E4WOVcjs.FICT_SSR_SNAPSHOT_SCHEMA_VERSION) {
161
+ const version = rawVersion === void 0 ? _chunkQNMYVXRLcjs.FICT_SSR_SNAPSHOT_SCHEMA_VERSION : rawVersion;
162
+ if (!Number.isInteger(version) || version !== _chunkQNMYVXRLcjs.FICT_SSR_SNAPSHOT_SCHEMA_VERSION) {
163
163
  const versionIssue = {
164
164
  code: "snapshot_unsupported_version",
165
165
  message: `[fict/loader] Snapshot schema version ${String(version)} is not supported by this runtime.`,
166
166
  source,
167
- expectedVersion: _chunkEQ5E4WOVcjs.FICT_SSR_SNAPSHOT_SCHEMA_VERSION
167
+ expectedVersion: _chunkQNMYVXRLcjs.FICT_SSR_SNAPSHOT_SCHEMA_VERSION
168
168
  };
169
169
  if (typeof version === "number") {
170
170
  versionIssue.actualVersion = version;
@@ -180,11 +180,11 @@ function normalizeSnapshotState(value, source) {
180
180
  code: "snapshot_invalid_shape",
181
181
  message: "[fict/loader] Snapshot payload is missing a valid `scopes` object.",
182
182
  source,
183
- expectedVersion: _chunkEQ5E4WOVcjs.FICT_SSR_SNAPSHOT_SCHEMA_VERSION
183
+ expectedVersion: _chunkQNMYVXRLcjs.FICT_SSR_SNAPSHOT_SCHEMA_VERSION
184
184
  });
185
185
  return null;
186
186
  }
187
- return { v: _chunkEQ5E4WOVcjs.FICT_SSR_SNAPSHOT_SCHEMA_VERSION, scopes };
187
+ return { v: _chunkQNMYVXRLcjs.FICT_SSR_SNAPSHOT_SCHEMA_VERSION, scopes };
188
188
  }
189
189
  function isRecord(value) {
190
190
  return typeof value === "object" && value !== null && !Array.isArray(value);
@@ -275,16 +275,17 @@ function setupHoverPrefetch(doc, delay) {
275
275
  };
276
276
  }
277
277
  function prefetchElementQrls(el) {
278
+ const ownerDocument = _nullishCoalesce(el.ownerDocument, () => ( (typeof document !== "undefined" ? document : void 0)));
278
279
  const eventAttrs = ["on:click", "on:input", "on:change", "on:submit", "on:keydown", "on:keyup"];
279
280
  for (const attr of eventAttrs) {
280
281
  const qrl = el.getAttribute(attr);
281
282
  if (qrl) {
282
- prefetchQrl(qrl);
283
+ prefetchQrl(qrl, ownerDocument);
283
284
  }
284
285
  }
285
286
  const resumeQrl = el.getAttribute("data-fict-h");
286
287
  if (resumeQrl) {
287
- prefetchQrl(resumeQrl);
288
+ prefetchQrl(resumeQrl, ownerDocument);
288
289
  }
289
290
  const children = el.querySelectorAll(
290
291
  "[on\\:click], [on\\:input], [on\\:change], [on\\:submit], [data-fict-h]"
@@ -293,26 +294,27 @@ function prefetchElementQrls(el) {
293
294
  for (const attr of eventAttrs) {
294
295
  const qrl = child.getAttribute(attr);
295
296
  if (qrl) {
296
- prefetchQrl(qrl);
297
+ prefetchQrl(qrl, ownerDocument);
297
298
  }
298
299
  }
299
300
  const childResumeQrl = child.getAttribute("data-fict-h");
300
301
  if (childResumeQrl) {
301
- prefetchQrl(childResumeQrl);
302
+ prefetchQrl(childResumeQrl, ownerDocument);
302
303
  }
303
304
  });
304
305
  }
305
- function prefetchQrl(qrl) {
306
+ function prefetchQrl(qrl, ownerDocument) {
306
307
  const { url } = parseQrl(qrl);
307
308
  if (!url || prefetchedUrls.has(url)) return;
308
309
  prefetchedUrls.add(url);
309
310
  const resolvedUrl = resolveModuleUrl(url);
310
- if (typeof document !== "undefined") {
311
- const link = document.createElement("link");
311
+ const doc = _nullishCoalesce(ownerDocument, () => ( (typeof document !== "undefined" ? document : void 0)));
312
+ if (doc) {
313
+ const link = doc.createElement("link");
312
314
  link.rel = "modulepreload";
313
315
  link.href = resolvedUrl;
314
316
  link.crossOrigin = "anonymous";
315
- document.head.appendChild(link);
317
+ _optionalChain([doc, 'access', _5 => _5.head, 'optionalAccess', _6 => _6.appendChild, 'call', _7 => _7(link)]);
316
318
  }
317
319
  }
318
320
  function handleResumableEvent(event) {
@@ -336,18 +338,18 @@ async function handleResumableEventAsync(event) {
336
338
  if (!host) continue;
337
339
  const scopeId = host.getAttribute("data-fict-s");
338
340
  if (!scopeId) continue;
339
- const snapshot = _chunkEQ5E4WOVcjs.__fictGetSSRScope.call(void 0, scopeId);
341
+ const snapshot = _chunkQNMYVXRLcjs.__fictGetSSRScope.call(void 0, scopeId);
340
342
  if (!snapshot) {
341
343
  emitSnapshotIssue({
342
344
  code: "scope_snapshot_missing",
343
345
  message: `[fict/loader] Missing scope snapshot for ${scopeId}; skipping resumable handler execution.`,
344
346
  source: "event",
345
- expectedVersion: _chunkEQ5E4WOVcjs.FICT_SSR_SNAPSHOT_SCHEMA_VERSION,
347
+ expectedVersion: _chunkQNMYVXRLcjs.FICT_SSR_SNAPSHOT_SCHEMA_VERSION,
346
348
  scopeId
347
349
  });
348
350
  continue;
349
351
  }
350
- _chunkEQ5E4WOVcjs.__fictEnsureScope.call(void 0, scopeId, host, snapshot);
352
+ _chunkQNMYVXRLcjs.__fictEnsureScope.call(void 0, scopeId, host, snapshot);
351
353
  const { url, exportName } = parseQrl(qrl);
352
354
  if (event.cancelable && (event.type === "click" || event.type === "submit")) {
353
355
  const tag = node.tagName.toLowerCase();
@@ -364,7 +366,7 @@ async function handleResumableEventAsync(event) {
364
366
  /* @vite-ignore */
365
367
  resolvedResumeUrl
366
368
  )));
367
- const resumeFn = _chunkEQ5E4WOVcjs.__fictGetResume.call(void 0, resumeExport);
369
+ const resumeFn = _chunkQNMYVXRLcjs.__fictGetResume.call(void 0, resumeExport);
368
370
  if (typeof resumeFn === "function") {
369
371
  await resumeFn(scopeId, host);
370
372
  hydratedScopes.add(scopeId);
@@ -411,5 +413,5 @@ function buildEventPath(event) {
411
413
 
412
414
 
413
415
 
414
- exports.__fictUseLexicalScope = _chunkEQ5E4WOVcjs.__fictUseLexicalScope; exports.cleanupEventListeners = cleanupEventListeners; exports.installResumableLoader = installResumableLoader; exports.resetHydratedScopes = resetHydratedScopes; exports.resetPrefetchedUrls = resetPrefetchedUrls; exports.waitForPendingHandlers = waitForPendingHandlers;
416
+ exports.__fictUseLexicalScope = _chunkQNMYVXRLcjs.__fictUseLexicalScope; exports.cleanupEventListeners = cleanupEventListeners; exports.installResumableLoader = installResumableLoader; exports.resetHydratedScopes = resetHydratedScopes; exports.resetPrefetchedUrls = resetPrefetchedUrls; exports.waitForPendingHandlers = waitForPendingHandlers;
415
417
  //# sourceMappingURL=loader.cjs.map