@reckona/mreact-compat 0.0.160 → 0.0.161

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 (102) hide show
  1. package/dist/class-component.d.ts +5 -0
  2. package/dist/class-component.d.ts.map +1 -1
  3. package/dist/class-component.js +36 -11
  4. package/dist/class-component.js.map +1 -1
  5. package/dist/context.d.ts +4 -0
  6. package/dist/context.d.ts.map +1 -1
  7. package/dist/context.js +4 -0
  8. package/dist/context.js.map +1 -1
  9. package/dist/element.d.ts +28 -0
  10. package/dist/element.d.ts.map +1 -1
  11. package/dist/element.js +21 -1
  12. package/dist/element.js.map +1 -1
  13. package/dist/event-priority.d.ts +1 -0
  14. package/dist/event-priority.d.ts.map +1 -1
  15. package/dist/event-priority.js +1 -0
  16. package/dist/event-priority.js.map +1 -1
  17. package/dist/event-replay.d.ts +6 -0
  18. package/dist/event-replay.d.ts.map +1 -1
  19. package/dist/event-replay.js +4 -0
  20. package/dist/event-replay.js.map +1 -1
  21. package/dist/flight-decoder.d.ts +1 -0
  22. package/dist/flight-decoder.d.ts.map +1 -1
  23. package/dist/flight-decoder.js.map +1 -1
  24. package/dist/flight-protocol.d.ts +2 -0
  25. package/dist/flight-protocol.d.ts.map +1 -1
  26. package/dist/flight-protocol.js +1 -0
  27. package/dist/flight-protocol.js.map +1 -1
  28. package/dist/flight-types.d.ts +21 -0
  29. package/dist/flight-types.d.ts.map +1 -1
  30. package/dist/flight-types.js.map +1 -1
  31. package/dist/flight.d.ts +7 -0
  32. package/dist/flight.d.ts.map +1 -1
  33. package/dist/flight.js +5 -0
  34. package/dist/flight.js.map +1 -1
  35. package/dist/hooks-entry.d.ts +2 -0
  36. package/dist/hooks-entry.d.ts.map +1 -1
  37. package/dist/hooks-entry.js +1 -0
  38. package/dist/hooks-entry.js.map +1 -1
  39. package/dist/hooks.d.ts +36 -0
  40. package/dist/hooks.d.ts.map +1 -1
  41. package/dist/hooks.js +42 -10
  42. package/dist/hooks.js.map +1 -1
  43. package/dist/host-reconciler.js +30 -30
  44. package/dist/host-reconciler.js.map +1 -1
  45. package/dist/hydration.d.ts +2 -0
  46. package/dist/hydration.d.ts.map +1 -1
  47. package/dist/hydration.js +1 -0
  48. package/dist/hydration.js.map +1 -1
  49. package/dist/index.d.ts +3 -0
  50. package/dist/index.d.ts.map +1 -1
  51. package/dist/index.js +1 -0
  52. package/dist/index.js.map +1 -1
  53. package/dist/internal.d.ts +1 -0
  54. package/dist/internal.d.ts.map +1 -1
  55. package/dist/internal.js +1 -0
  56. package/dist/internal.js.map +1 -1
  57. package/dist/jsx-dev-runtime.d.ts +5 -0
  58. package/dist/jsx-dev-runtime.d.ts.map +1 -1
  59. package/dist/jsx-dev-runtime.js +3 -0
  60. package/dist/jsx-dev-runtime.js.map +1 -1
  61. package/dist/jsx-runtime.d.ts +13 -0
  62. package/dist/jsx-runtime.d.ts.map +1 -1
  63. package/dist/jsx-runtime.js +4 -0
  64. package/dist/jsx-runtime.js.map +1 -1
  65. package/dist/react-default.d.ts +2 -0
  66. package/dist/react-default.d.ts.map +1 -1
  67. package/dist/react-default.js +2 -0
  68. package/dist/react-default.js.map +1 -1
  69. package/dist/root.d.ts +13 -0
  70. package/dist/root.d.ts.map +1 -1
  71. package/dist/root.js +6 -0
  72. package/dist/root.js.map +1 -1
  73. package/dist/scheduler.d.ts +23 -0
  74. package/dist/scheduler.d.ts.map +1 -1
  75. package/dist/scheduler.js +19 -0
  76. package/dist/scheduler.js.map +1 -1
  77. package/dist/server-render.d.ts +1 -0
  78. package/dist/server-render.d.ts.map +1 -1
  79. package/dist/server-render.js +1 -0
  80. package/dist/server-render.js.map +1 -1
  81. package/package.json +3 -3
  82. package/src/class-component.ts +47 -11
  83. package/src/context.ts +4 -0
  84. package/src/element.ts +33 -6
  85. package/src/event-priority.ts +1 -0
  86. package/src/event-replay.ts +6 -0
  87. package/src/flight-decoder.ts +1 -0
  88. package/src/flight-protocol.ts +2 -0
  89. package/src/flight-types.ts +21 -0
  90. package/src/flight.ts +7 -0
  91. package/src/hooks-entry.ts +2 -0
  92. package/src/hooks.ts +55 -15
  93. package/src/host-reconciler.ts +39 -38
  94. package/src/hydration.ts +2 -0
  95. package/src/index.ts +3 -0
  96. package/src/internal.ts +1 -0
  97. package/src/jsx-dev-runtime.ts +5 -0
  98. package/src/jsx-runtime.ts +13 -0
  99. package/src/react-default.ts +2 -0
  100. package/src/root.ts +13 -0
  101. package/src/scheduler.ts +23 -0
  102. package/src/server-render.ts +1 -0
package/dist/hooks.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"hooks.js","sourceRoot":"","sources":["../src/hooks.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n flushPendingComputed,\n flushQueuedComputations,\n} from \"@reckona/mreact-reactive-core/internal\";\nimport { scheduleCallback } from \"./fiber-scheduler.js\";\nimport { removeChildIfPresent } from \"./dom-children.js\";\nimport {\n type ReactCompatContextLike,\n isReactCompatContext,\n readContextValue,\n useContext,\n withContextReadObserver,\n} from \"./context.js\";\nimport { REACTIVE_TEXT_BINDING_META } from \"./element.js\";\nimport { isThenable } from \"./thenable.js\";\n\nexport interface RootRuntime {\n currentElement?: unknown;\n instances: Map<string, ComponentInstance>;\n instanceKeysByPrefix: Map<string, Set<string>>;\n activeInstanceKeys: Set<string> | undefined;\n activeProfilerPaths: Set<string> | undefined;\n mountedProfilerPaths: Set<string>;\n profilerBaseDurations: Map<string, number>;\n pendingProfilerCommits: PendingProfilerCommit[];\n pendingInsertionEffects: PendingEffect[];\n pendingImperativeHandleEffects: PendingEffect[];\n pendingLayoutEffects: PendingEffect[];\n pendingEffects: PendingEffect[];\n externalStoreChecks: ExternalStoreCheck[];\n portalContainers: Set<Element>;\n portalNodes: Map<Element, Set<Node>>;\n idCounter: number;\n identifierPrefix: string;\n idMode: \"client\" | \"server\";\n strictModeDepth: number;\n strictReplayDepth: number;\n strictMemoCapture: unknown[] | undefined;\n strictMemoCaptureByHook: Map<string, unknown> | undefined;\n strictMemoReplay: { values: readonly unknown[]; index: number } | undefined;\n strictMemoReplayByHook: ReadonlyMap<string, unknown> | undefined;\n profilerFlushDepth: number;\n effectFlushPhase: \"insertion\" | \"imperative-handle\" | \"layout\" | \"normal\" | undefined;\n externalStoreUpdate: boolean;\n renderPhaseUpdate: boolean;\n rerender(priority?: RenderPriority): void;\n beginRender(): void;\n endRender(committed?: boolean): void;\n flushEffects(): void;\n dispose(): void;\n}\n\ninterface ComponentInstance {\n owner: unknown | undefined;\n path: string;\n hooks: HookSlot[];\n hookIndex: number;\n dirty: boolean;\n disposed?: boolean;\n contextDependencies?: Map<ReactCompatContextLike<unknown>, unknown>;\n devToolsHooks?: DevToolsHookValue[];\n devToolsHookTypes?: string[];\n devToolsHookSuppressionDepth: number;\n}\n\ntype EffectCallback = () => void | (() => void);\ntype ProfilerPhase = \"mount\" | \"update\" | \"nested-update\";\ntype ProfilerOnRender = (\n id: string,\n phase: ProfilerPhase,\n actualDuration: number,\n baseDuration: number,\n startTime: number,\n commitTime: number,\n) => void;\n\ninterface PendingEffect {\n slot: Extract<HookSlot, { kind: \"effect\" }>;\n}\n\ninterface PendingProfilerCommit {\n id: string;\n phase: ProfilerPhase;\n onRender: ProfilerOnRender;\n actualDuration: number;\n baseDuration: number;\n startTime: number;\n}\n\ninterface ExternalStoreCheck {\n getSnapshot: () => unknown;\n value: unknown;\n}\n\nexport interface CacheScope {\n functionCaches: WeakMap<(...args: never[]) => unknown, CacheTrieNode>;\n controller: AbortController;\n ownerStack: string[];\n}\n\ninterface CacheTrieNode {\n primitiveChildren: Map<unknown, CacheTrieNode>;\n objectChildren: WeakMap<object, CacheTrieNode>;\n status?: \"fulfilled\" | \"rejected\";\n value?: unknown;\n reason?: unknown;\n}\n\nexport interface DevToolsHookState {\n hooks: DevToolsHookValue[];\n hookTypes: string[];\n}\n\nexport type DevToolsHookValue =\n | { kind: \"state\"; value: unknown }\n | { kind: \"reducer\"; value: unknown }\n | { kind: \"store\"; value: unknown }\n | { kind: \"ref\"; value: unknown }\n | { kind: \"memo\"; value: unknown; deps?: readonly unknown[] }\n | { kind: \"callback\"; value: unknown; deps?: readonly unknown[] }\n | { kind: \"id\"; value: unknown }\n | { kind: \"imperative-handle\"; deps?: readonly unknown[] }\n | { kind: \"transition\"; value: unknown }\n | { kind: \"deferred\"; value: unknown }\n | { kind: \"debug\"; value: unknown }\n | { kind: \"effect\"; effectKind: \"insertion\" | \"layout\" | \"normal\"; deps?: readonly unknown[] };\n\ntype HookSlot =\n | { kind: \"state\"; value: unknown; hostCommitValue?: unknown; textBinding?: ReactiveTextBinding }\n | {\n kind: \"action-state\";\n state: unknown;\n pendingCount: number;\n action: (previousState: unknown, payload: unknown) => unknown;\n dispatch?: (payload: unknown) => void;\n error?: unknown;\n }\n | {\n kind: \"optimistic\";\n baseState: unknown;\n optimisticState: unknown;\n update: (state: unknown, payload: unknown) => unknown;\n dispatch?: (payload: unknown) => void;\n }\n | { kind: \"store\"; value: unknown; hasMounted?: boolean }\n | { kind: \"ref\"; value: { current: unknown } }\n | { kind: \"memo\"; value: unknown; deps?: readonly unknown[] }\n | { kind: \"debug\"; value: unknown }\n | {\n kind: \"effect\";\n effectKind: \"insertion\" | \"imperative-handle\" | \"layout\" | \"normal\";\n callback: EffectCallback;\n deps?: readonly unknown[];\n cleanup?: () => void;\n disposed?: boolean;\n mounted?: boolean;\n strictReplay?: boolean;\n };\n\ninterface HookRenderState {\n currentRuntime: RootRuntime | undefined;\n currentInstance: ComponentInstance | undefined;\n currentCacheScope: CacheScope | undefined;\n hostCommitDepth: number;\n queuedHostCommitRerenders: Set<RootRuntime>;\n queuedEffectFlushRerenders: Set<RootRuntime>;\n}\n\nconst HOOK_RENDER_STATE_KEY = Symbol.for(\"modular.react.hook_render_state\");\nconst hookRenderState =\n ((globalThis as typeof globalThis & Record<symbol, HookRenderState | undefined>)[\n HOOK_RENDER_STATE_KEY\n ] ??= {\n currentRuntime: undefined,\n currentInstance: undefined,\n currentCacheScope: undefined,\n hostCommitDepth: 0,\n queuedHostCommitRerenders: new Set<RootRuntime>(),\n queuedEffectFlushRerenders: new Set<RootRuntime>(),\n });\nconst CACHE_SCOPE_SYMBOL = Symbol.for(\"modular.react.cache_scope\");\nconst emptyCacheOwnerStack: string[] = [];\nlet syncVersion = 0;\nlet transitionVersion = 0;\nlet transitionDepth = 0;\nlet currentTransitionContext: TransitionContext | undefined;\nlet transitionRerenderScheduled = false;\nlet eventBatchDepth = 0;\nlet currentEventPriority: EventPriority = \"default\";\nlet eventRerenderScheduled = false;\nlet automaticRerenderScheduled = false;\nlet effectFlushRerenderDepth = 0;\nlet strictMemoOwnerId = 0;\nconst strictMemoObjectOwnerIds = new WeakMap<object, number>();\nconst queuedTransitionRerenders = new Map<RootRuntime, TransitionContext>();\nconst queuedEventRerenders = new Set<RootRuntime>();\nexport const version = \"19.2.6\";\n\nexport interface ReactiveTextBinding {\n value: unknown;\n subscribers: Set<Text>;\n}\n\nconst reactiveTextBindingsByNode = new WeakMap<Text, ReactiveTextBinding>();\nconst hydratedIdsByRuntime = new WeakMap<RootRuntime, Map<string, string>>();\n\nexport function act<T>(callback: () => T): T extends PromiseLike<unknown> ? Promise<void> : void {\n const previousPriority = currentEventPriority;\n currentEventPriority = \"discrete\";\n eventBatchDepth += 1;\n let result: T;\n\n try {\n result = callback();\n } catch (error) {\n eventBatchDepth -= 1;\n currentEventPriority = previousPriority;\n if (eventBatchDepth === 0) {\n flushEventRerendersForPriority(\"discrete\");\n }\n throw error;\n }\n\n const finishActScope = (): void => {\n eventBatchDepth -= 1;\n currentEventPriority = previousPriority;\n if (eventBatchDepth === 0) {\n flushEventRerendersForPriority(\"discrete\");\n }\n };\n\n if (isThenable(result)) {\n return Promise.resolve(result).then(\n async () => {\n finishActScope();\n await flushActWorkAsync();\n },\n (error: unknown) => {\n finishActScope();\n throw error;\n },\n ) as T extends PromiseLike<unknown> ? Promise<void> : void;\n }\n\n finishActScope();\n flushActWork();\n return undefined as T extends PromiseLike<unknown>\n ? Promise<void>\n : void;\n}\n\nasync function flushActWorkAsync(): Promise<void> {\n for (let attempt = 0; attempt < 10; attempt += 1) {\n await Promise.resolve();\n flushActWork();\n }\n for (let attempt = 0; attempt < 3; attempt += 1) {\n await new Promise((resolve) => setTimeout(resolve, 0));\n flushActWork();\n }\n}\n\nfunction flushActWork(): void {\n flushQueuedEventRerenders(\"sync\");\n flushQueuedTransitionRerenders();\n flushHostCommitRerenders();\n flushEffectFlushRerenders();\n}\n\nexport type EventPriority = \"discrete\" | \"continuous\" | \"default\";\nexport type RenderPriority = \"sync\" | \"transition\" | \"continuous\";\n\ninterface TransitionContext {\n syncVersion: number;\n transitionVersion: number;\n}\n\nexport interface RootRuntimeOptions {\n identifierPrefix?: string;\n idMode?: \"client\" | \"server\";\n}\n\nexport interface RuntimeSnapshot {\n instanceKeys: Set<string>;\n portalContainers: Set<Element>;\n portalNodes: Map<Element, Set<Node>>;\n pendingInsertionEffectsLength: number;\n pendingImperativeHandleEffectsLength: number;\n pendingLayoutEffectsLength: number;\n pendingEffectsLength: number;\n pendingProfilerCommitsLength: number;\n profilerBaseDurations: Map<string, number>;\n idCounter: number;\n identifierPrefix: string;\n idMode: \"client\" | \"server\";\n strictModeDepth: number;\n strictReplayDepth: number;\n strictMemoCapture: unknown[] | undefined;\n strictMemoCaptureByHook: Map<string, unknown> | undefined;\n strictMemoReplay: { values: readonly unknown[]; index: number } | undefined;\n strictMemoReplayByHook: ReadonlyMap<string, unknown> | undefined;\n profilerFlushDepth: number;\n}\n\nexport function createRootRuntime(\n rerender: (priority?: RenderPriority) => void,\n options: RootRuntimeOptions = {},\n): RootRuntime {\n return {\n instances: new Map(),\n instanceKeysByPrefix: new Map(),\n activeInstanceKeys: undefined,\n activeProfilerPaths: undefined,\n mountedProfilerPaths: new Set(),\n profilerBaseDurations: new Map(),\n pendingProfilerCommits: [],\n pendingInsertionEffects: [],\n pendingImperativeHandleEffects: [],\n pendingLayoutEffects: [],\n pendingEffects: [],\n externalStoreChecks: [],\n portalContainers: new Set(),\n portalNodes: new Map(),\n idCounter: 0,\n identifierPrefix: options.identifierPrefix ?? \"\",\n idMode: options.idMode ?? \"client\",\n strictModeDepth: 0,\n strictReplayDepth: 0,\n strictMemoCapture: undefined,\n strictMemoCaptureByHook: undefined,\n strictMemoReplay: undefined,\n strictMemoReplayByHook: undefined,\n profilerFlushDepth: 0,\n effectFlushPhase: undefined,\n externalStoreUpdate: false,\n renderPhaseUpdate: false,\n rerender,\n beginRender() {\n this.activeInstanceKeys = new Set();\n this.activeProfilerPaths = new Set();\n this.pendingProfilerCommits = [];\n this.pendingInsertionEffects = [];\n this.pendingImperativeHandleEffects = [];\n this.pendingLayoutEffects = [];\n this.pendingEffects = [];\n this.externalStoreChecks = [];\n this.renderPhaseUpdate = false;\n },\n endRender(committed = true) {\n const profilerCommits = committed ? this.pendingProfilerCommits.splice(0) : [];\n const activeProfilerPaths = this.activeProfilerPaths;\n if (committed) {\n cleanupInactiveInstances(this);\n this.mountedProfilerPaths =\n activeProfilerPaths === undefined ? new Set() : new Set(activeProfilerPaths);\n } else {\n this.pendingProfilerCommits = [];\n }\n this.activeInstanceKeys = undefined;\n this.activeProfilerPaths = undefined;\n hookRenderState.currentRuntime = undefined;\n hookRenderState.currentInstance = undefined;\n if (committed) {\n flushProfilerCommits(this, profilerCommits);\n flushHostCommitRerenders();\n this.externalStoreUpdate = false;\n }\n },\n flushEffects() {\n this.profilerFlushDepth += 1;\n try {\n this.effectFlushPhase = \"insertion\";\n flushPendingEffects(this.pendingInsertionEffects);\n this.effectFlushPhase = \"imperative-handle\";\n flushPendingEffects(this.pendingImperativeHandleEffects);\n this.effectFlushPhase = \"layout\";\n const strictLayoutEffects = flushPendingEffects(this.pendingLayoutEffects);\n this.effectFlushPhase = \"normal\";\n const strictEffects = flushPendingEffects(this.pendingEffects);\n this.effectFlushPhase = undefined;\n const strictReplayEffects = [...strictLayoutEffects, ...strictEffects];\n cleanupStrictEffects(strictReplayEffects);\n replayStrictEffects(strictReplayEffects);\n } finally {\n this.effectFlushPhase = undefined;\n this.profilerFlushDepth -= 1;\n if (this.profilerFlushDepth === 0) {\n flushEffectFlushRerenders();\n }\n }\n },\n dispose() {\n for (const instance of this.instances.values()) {\n cleanupInstance(instance);\n }\n\n this.pendingLayoutEffects = [];\n this.pendingInsertionEffects = [];\n this.pendingEffects = [];\n this.pendingProfilerCommits = [];\n this.activeProfilerPaths = undefined;\n this.mountedProfilerPaths.clear();\n this.profilerBaseDurations.clear();\n clearRuntimePortalNodes(this);\n },\n };\n}\n\nexport function createCacheScope(): CacheScope {\n return {\n functionCaches: new WeakMap(),\n controller: new AbortController(),\n ownerStack: [],\n };\n}\n\nexport function refreshCacheScope(scope: CacheScope): void {\n scope.controller.abort();\n scope.functionCaches = new WeakMap();\n scope.controller = new AbortController();\n}\n\nexport function runWithCacheScope<T>(scope: CacheScope, callback: () => T): T {\n const previousScope = hookRenderState.currentCacheScope;\n const previousGlobalScope = getGlobalCacheScope();\n hookRenderState.currentCacheScope = scope;\n setGlobalCacheScope(scope);\n\n try {\n const result = callback();\n\n if (isThenable(result)) {\n return Promise.resolve(result).finally(() => {\n hookRenderState.currentCacheScope = previousScope;\n setGlobalCacheScope(previousGlobalScope);\n }) as T;\n }\n\n hookRenderState.currentCacheScope = previousScope;\n setGlobalCacheScope(previousGlobalScope);\n return result;\n } catch (error) {\n hookRenderState.currentCacheScope = previousScope;\n setGlobalCacheScope(previousGlobalScope);\n throw error;\n }\n}\n\nexport function renderWithProfiler<T>(\n runtime: RootRuntime,\n path: string,\n props: Record<string, unknown>,\n render: () => T,\n): T {\n const startTime = getCurrentTime();\n const phase: ProfilerPhase =\n runtime.profilerFlushDepth > 0 || effectFlushRerenderDepth > 0\n ? \"nested-update\"\n : runtime.mountedProfilerPaths.has(path)\n ? \"update\"\n : \"mount\";\n\n try {\n return render();\n } finally {\n runtime.activeProfilerPaths?.add(path);\n const onRender = props.onRender;\n const id = props.id;\n\n if (typeof onRender === \"function\" && typeof id === \"string\") {\n const actualDuration = Math.max(0, getCurrentTime() - startTime);\n const baseDuration = Math.max(\n runtime.profilerBaseDurations.get(path) ?? 0,\n actualDuration,\n );\n runtime.profilerBaseDurations.set(path, baseDuration);\n runtime.pendingProfilerCommits.push({\n id,\n phase,\n onRender: onRender as ProfilerOnRender,\n actualDuration,\n baseDuration,\n startTime,\n });\n }\n }\n}\n\nexport function renderWithRootRuntime<T>(\n runtime: RootRuntime,\n path: string,\n render: () => T,\n owner?: unknown,\n): T {\n const previousRuntime = hookRenderState.currentRuntime;\n const previousInstance = hookRenderState.currentInstance;\n let instance = runtime.instances.get(path);\n\n if (instance !== undefined && owner !== undefined && instance.owner !== owner) {\n cleanupInstance(instance);\n instance = undefined;\n }\n\n instance ??= {\n owner,\n path,\n hooks: [],\n hookIndex: 0,\n dirty: false,\n devToolsHookSuppressionDepth: 0,\n };\n instance.owner = owner;\n instance.path = path;\n runtime.instances.set(path, instance);\n indexInstanceKey(runtime, path);\n runtime.activeInstanceKeys?.add(path);\n instance.hookIndex = 0;\n instance.dirty = false;\n instance.disposed = false;\n delete instance.contextDependencies;\n if (hasInstalledDevToolsHook()) {\n instance.devToolsHooks = [];\n instance.devToolsHookTypes = [];\n } else {\n delete instance.devToolsHooks;\n delete instance.devToolsHookTypes;\n }\n instance.devToolsHookSuppressionDepth = 0;\n hookRenderState.currentRuntime = runtime;\n hookRenderState.currentInstance = instance;\n\n try {\n return withContextReadObserver((context, value) => {\n (instance.contextDependencies ??= new Map()).set(context, value);\n }, render);\n } finally {\n hookRenderState.currentRuntime = previousRuntime;\n hookRenderState.currentInstance = previousInstance;\n }\n}\n\nexport function hasChangedContextDependency(\n runtime: RootRuntime,\n keys: readonly string[],\n): boolean {\n for (const key of keys) {\n const dependencies = runtime.instances.get(key)?.contextDependencies;\n\n if (dependencies === undefined) {\n continue;\n }\n\n for (const [context, value] of dependencies) {\n if (!Object.is(readContextValue(context), value)) {\n return true;\n }\n }\n }\n\n return false;\n}\n\nexport function hasContextDependency(\n runtime: RootRuntime,\n keys: readonly string[],\n): boolean {\n return keys.some((key) => runtime.instances.get(key)?.contextDependencies !== undefined);\n}\n\nexport function collectRuntimeInstanceKeys(runtime: RootRuntime, prefix: string): string[] {\n const keys = runtime.instanceKeysByPrefix.get(prefix);\n\n if (keys === undefined) {\n return [];\n }\n\n const activeKeys: string[] = [];\n\n for (const key of keys) {\n if (runtime.instances.has(key)) {\n activeKeys.push(key);\n }\n }\n\n return activeKeys;\n}\n\nexport function getDevToolsHookState(\n runtime: RootRuntime,\n path: string,\n): DevToolsHookState | undefined {\n const instance = runtime.instances.get(path);\n\n if (\n instance === undefined ||\n instance.devToolsHooks === undefined ||\n instance.devToolsHookTypes === undefined\n ) {\n return undefined;\n }\n\n return {\n hooks: [...instance.devToolsHooks],\n hookTypes: [...instance.devToolsHookTypes],\n };\n}\n\nexport function renderWithStrictMode<T>(\n runtime: RootRuntime,\n render: () => T,\n): T {\n runtime.strictModeDepth += 1;\n\n try {\n return render();\n } finally {\n runtime.strictModeDepth -= 1;\n }\n}\n\nexport function renderWithStrictModeMemoCapture<T>(\n runtime: RootRuntime,\n render: () => T,\n): { result: T; memoValues: readonly unknown[]; memoValuesByHook: ReadonlyMap<string, unknown> } {\n const previousCapture = runtime.strictMemoCapture;\n const previousCaptureByHook = runtime.strictMemoCaptureByHook;\n runtime.strictMemoCapture = [];\n runtime.strictMemoCaptureByHook = new Map();\n\n try {\n const result = renderWithStrictMode(runtime, render);\n return {\n result,\n memoValues: runtime.strictMemoCapture,\n memoValuesByHook: runtime.strictMemoCaptureByHook,\n };\n } finally {\n runtime.strictMemoCapture = previousCapture;\n runtime.strictMemoCaptureByHook = previousCaptureByHook;\n }\n}\n\nexport function renderStrictModeReplay<T>(\n runtime: RootRuntime,\n memoValues: readonly unknown[],\n memoValuesByHook: ReadonlyMap<string, unknown>,\n render: () => T,\n): T {\n const previousReplay = runtime.strictMemoReplay;\n const previousReplayByHook = runtime.strictMemoReplayByHook;\n runtime.strictReplayDepth += 1;\n runtime.strictMemoReplay = { values: memoValues, index: 0 };\n runtime.strictMemoReplayByHook = memoValuesByHook;\n\n try {\n return render();\n } finally {\n runtime.strictMemoReplay = previousReplay;\n runtime.strictMemoReplayByHook = previousReplayByHook;\n runtime.strictReplayDepth -= 1;\n }\n}\n\nexport function takeRuntimeSnapshot(runtime: RootRuntime): RuntimeSnapshot {\n return {\n instanceKeys: new Set(runtime.instances.keys()),\n portalContainers: new Set(runtime.portalContainers),\n portalNodes: clonePortalNodes(runtime.portalNodes),\n pendingInsertionEffectsLength: runtime.pendingInsertionEffects.length,\n pendingImperativeHandleEffectsLength: runtime.pendingImperativeHandleEffects.length,\n pendingLayoutEffectsLength: runtime.pendingLayoutEffects.length,\n pendingEffectsLength: runtime.pendingEffects.length,\n pendingProfilerCommitsLength: runtime.pendingProfilerCommits.length,\n profilerBaseDurations: new Map(runtime.profilerBaseDurations),\n idCounter: runtime.idCounter,\n identifierPrefix: runtime.identifierPrefix,\n idMode: runtime.idMode,\n strictModeDepth: runtime.strictModeDepth,\n strictReplayDepth: runtime.strictReplayDepth,\n strictMemoCapture: runtime.strictMemoCapture,\n strictMemoCaptureByHook: runtime.strictMemoCaptureByHook,\n strictMemoReplay: runtime.strictMemoReplay,\n strictMemoReplayByHook: runtime.strictMemoReplayByHook,\n profilerFlushDepth: runtime.profilerFlushDepth,\n };\n}\n\nexport function restoreRuntimeSnapshot(\n runtime: RootRuntime,\n snapshot: RuntimeSnapshot,\n): void {\n runtime.pendingInsertionEffects.length = snapshot.pendingInsertionEffectsLength;\n runtime.pendingImperativeHandleEffects.length = snapshot.pendingImperativeHandleEffectsLength;\n runtime.pendingLayoutEffects.length = snapshot.pendingLayoutEffectsLength;\n runtime.pendingEffects.length = snapshot.pendingEffectsLength;\n runtime.pendingProfilerCommits.length = snapshot.pendingProfilerCommitsLength;\n runtime.profilerBaseDurations = new Map(snapshot.profilerBaseDurations);\n runtime.idCounter = snapshot.idCounter;\n runtime.identifierPrefix = snapshot.identifierPrefix;\n runtime.idMode = snapshot.idMode;\n runtime.strictModeDepth = snapshot.strictModeDepth;\n runtime.strictReplayDepth = snapshot.strictReplayDepth;\n runtime.strictMemoCapture = snapshot.strictMemoCapture;\n runtime.strictMemoCaptureByHook = snapshot.strictMemoCaptureByHook;\n runtime.strictMemoReplay = snapshot.strictMemoReplay;\n runtime.strictMemoReplayByHook = snapshot.strictMemoReplayByHook;\n runtime.profilerFlushDepth = snapshot.profilerFlushDepth;\n\n for (const key of runtime.instances.keys()) {\n if (!snapshot.instanceKeys.has(key)) {\n runtime.instances.delete(key);\n }\n }\n\n clearRuntimePortalNodesExcept(runtime, snapshot.portalNodes);\n runtime.portalContainers.clear();\n for (const container of snapshot.portalContainers) {\n runtime.portalContainers.add(container);\n }\n runtime.portalNodes = clonePortalNodes(snapshot.portalNodes);\n}\n\nexport function clearRuntimePortalNodes(runtime: RootRuntime): void {\n for (const [container, nodes] of runtime.portalNodes) {\n for (const node of nodes) {\n removeChildIfPresent(container, node);\n }\n }\n\n runtime.portalNodes.clear();\n runtime.portalContainers.clear();\n}\n\nfunction clearRuntimePortalNodesExcept(\n runtime: RootRuntime,\n preserved: Map<Element, Set<Node>>,\n): void {\n for (const [container, nodes] of runtime.portalNodes) {\n const preservedNodes = preserved.get(container);\n\n for (const node of nodes) {\n if (preservedNodes?.has(node) !== true) {\n removeChildIfPresent(container, node);\n }\n }\n }\n}\n\nfunction clonePortalNodes(source: Map<Element, Set<Node>>): Map<Element, Set<Node>> {\n const clone = new Map<Element, Set<Node>>();\n\n for (const [container, nodes] of source) {\n clone.set(container, new Set(nodes));\n }\n\n return clone;\n}\n\nexport function useState<T>(\n initial: T | (() => T),\n): [T, (value: T | ((previous: T) => T)) => void] {\n const runtime = requireRuntime();\n const instance = requireInstance();\n const index = instance.hookIndex;\n instance.hookIndex += 1;\n\n let slot = instance.hooks[index];\n\n if (slot === undefined) {\n slot = {\n kind: \"state\",\n value: typeof initial === \"function\" ? (initial as () => T)() : initial,\n };\n instance.hooks[index] = slot;\n }\n\n if (slot.kind !== \"state\") {\n throw new Error(\"Hook order changed between renders.\");\n }\n\n const setState = (value: T | ((previous: T) => T)): void => {\n const previousValue = slot.value;\n const nextValue =\n typeof value === \"function\"\n ? (value as (previous: T) => T)(slot.value as T)\n : value;\n\n if (Object.is(slot.value, nextValue)) {\n return;\n }\n\n if (hookRenderState.hostCommitDepth > 0 && !Object.hasOwn(slot, \"hostCommitValue\")) {\n slot.hostCommitValue = previousValue;\n }\n\n slot.value = nextValue;\n const canUseDirectTextBinding =\n hookRenderState.hostCommitDepth === 0 &&\n hookRenderState.currentRuntime !== runtime &&\n hookRenderState.currentInstance !== instance &&\n runtime.effectFlushPhase === undefined &&\n eventBatchDepth === 0 &&\n transitionDepth === 0 &&\n optionsAllowDirectTextBinding(value) &&\n updateDirectTextBinding(slot.textBinding, nextValue);\n\n if (canUseDirectTextBinding) {\n return;\n }\n\n if (hookRenderState.hostCommitDepth > 0) {\n updateHostCommitDirtyState(instance);\n hookRenderState.queuedHostCommitRerenders.add(runtime);\n return;\n }\n\n scheduleInstanceUpdate(runtime, instance, { deferSync: typeof value === \"function\" });\n };\n\n recordDevToolsHook(\"useState\", {\n kind: \"state\",\n value: slot.value,\n });\n\n const result = [slot.value as T, setState] as [\n T,\n (value: T | ((previous: T) => T)) => void,\n ] & Record<PropertyKey, unknown>;\n result[REACTIVE_TEXT_BINDING_META] = getStateTextBinding(slot);\n return result;\n}\n\nexport function subscribeReactiveTextBinding(binding: unknown, node: Text): void {\n if (!isReactiveTextBinding(binding)) {\n clearReactiveTextBinding(node);\n return;\n }\n\n const previous = reactiveTextBindingsByNode.get(node);\n\n if (previous !== undefined && previous !== binding) {\n previous.subscribers.delete(node);\n }\n\n reactiveTextBindingsByNode.set(node, binding);\n binding.subscribers.add(node);\n}\n\nfunction clearReactiveTextBinding(node: Text): void {\n const previous = reactiveTextBindingsByNode.get(node);\n\n if (previous === undefined) {\n return;\n }\n\n previous.subscribers.delete(node);\n reactiveTextBindingsByNode.delete(node);\n}\n\nfunction getStateTextBinding(slot: Extract<HookSlot, { kind: \"state\" }>): ReactiveTextBinding {\n slot.textBinding ??= {\n value: slot.value,\n subscribers: new Set(),\n };\n slot.textBinding.value = slot.value;\n return slot.textBinding;\n}\n\nfunction optionsAllowDirectTextBinding(value: unknown): boolean {\n return typeof value !== \"function\";\n}\n\nfunction updateDirectTextBinding(binding: ReactiveTextBinding | undefined, value: unknown): boolean {\n if (binding === undefined || binding.subscribers.size === 0) {\n return false;\n }\n\n let updated = false;\n const nextText = String(value);\n\n for (const node of binding.subscribers) {\n if (node.parentNode === null) {\n binding.subscribers.delete(node);\n reactiveTextBindingsByNode.delete(node);\n continue;\n }\n\n if (node.data !== nextText) {\n node.data = nextText;\n }\n updated = true;\n }\n\n binding.value = value;\n return updated;\n}\n\nfunction isReactiveTextBinding(value: unknown): value is ReactiveTextBinding {\n return (\n typeof value === \"object\" &&\n value !== null &&\n \"subscribers\" in value &&\n (value as { subscribers?: unknown }).subscribers instanceof Set\n );\n}\n\nexport function useReducer<TState, TAction, TInitial = TState>(\n reducer: (state: TState, action: TAction) => TState,\n initialArg: TInitial,\n init?: (initialArg: TInitial) => TState,\n): [TState, (action: TAction) => void] {\n const [state, setState] = runWithoutDevToolsHookTracking(() =>\n useState<TState>(() =>\n init === undefined ? (initialArg as unknown as TState) : init(initialArg),\n ),\n );\n const reducerRef = runWithoutDevToolsHookTracking(() => useRef(reducer));\n const stateRef = runWithoutDevToolsHookTracking(() => useRef(state));\n const dispatchRef = runWithoutDevToolsHookTracking(() =>\n useRef<((action: TAction) => void) | undefined>(\n undefined,\n )\n );\n reducerRef.current = reducer;\n stateRef.current = state;\n\n if (dispatchRef.current === undefined) {\n dispatchRef.current = (action: TAction): void => {\n const nextState = reducerRef.current(stateRef.current, action);\n stateRef.current = nextState;\n setState(nextState);\n };\n }\n\n recordDevToolsHook(\"useReducer\", {\n kind: \"reducer\",\n value: state,\n });\n\n return [state, dispatchRef.current];\n}\n\nexport function useRef<T>(initial: T): { current: T } {\n const instance = requireInstance();\n const index = instance.hookIndex;\n instance.hookIndex += 1;\n\n let slot = instance.hooks[index];\n\n if (slot === undefined) {\n slot = { kind: \"ref\", value: { current: initial } };\n instance.hooks[index] = slot;\n }\n\n if (slot.kind !== \"ref\") {\n throw new Error(\"Hook order changed between renders.\");\n }\n\n recordDevToolsHook(\"useRef\", {\n kind: \"ref\",\n value: slot.value,\n });\n\n return slot.value as { current: T };\n}\n\nexport function useId(): string {\n const runtime = requireRuntime();\n const instance = requireInstance();\n const idSlotKey = `${instance.path}:${instance.hookIndex}`;\n const idRef = runWithoutDevToolsHookTracking(() =>\n useRef<string | undefined>(undefined)\n );\n\n if (idRef.current === undefined) {\n const hydratedId = runtime.idMode === \"client\"\n ? hydratedIdsByRuntime.get(runtime)?.get(idSlotKey)\n : undefined;\n\n if (hydratedId !== undefined) {\n idRef.current = hydratedId;\n } else {\n const mode = runtime.idMode === \"server\" ? \"R\" : \"r\";\n idRef.current = `_${runtime.identifierPrefix}${mode}_${runtime.idCounter}_`;\n runtime.idCounter += 1;\n\n if (runtime.idMode === \"server\") {\n const hydratedIds = hydratedIdsByRuntime.get(runtime) ?? new Map<string, string>();\n hydratedIds.set(idSlotKey, idRef.current);\n hydratedIdsByRuntime.set(runtime, hydratedIds);\n }\n }\n }\n\n recordDevToolsHook(\"useId\", {\n kind: \"id\",\n value: idRef.current,\n });\n\n return idRef.current;\n}\n\nexport function useImperativeHandle<T>(\n ref: unknown,\n create: () => T,\n deps?: readonly unknown[],\n): void {\n runWithoutDevToolsHookTracking(() =>\n useEffectImpl(\"imperative-handle\", () => {\n const handle = create();\n assignRef(ref, handle);\n return () => {\n assignRef(ref, null);\n };\n }, deps === undefined ? undefined : [ref, ...deps])\n );\n recordDevToolsHook(\"useImperativeHandle\", deps === undefined\n ? { kind: \"imperative-handle\" }\n : { kind: \"imperative-handle\", deps });\n}\n\nexport function useMemo<T>(factory: () => T, deps?: readonly unknown[]): T {\n const runtime = requireRuntime();\n const instance = requireInstance();\n const index = instance.hookIndex;\n instance.hookIndex += 1;\n\n let slot = instance.hooks[index];\n\n if (slot !== undefined && slot.kind !== \"memo\") {\n throw new Error(\"Hook order changed between renders.\");\n }\n\n let value: unknown;\n const shouldRecompute =\n slot === undefined ||\n deps === undefined ||\n slot.deps === undefined ||\n !areHookInputsEqual(deps, slot.deps);\n\n if (runtime.strictReplayDepth > 0) {\n const replayValue = factory();\n if (slot === undefined) {\n slot =\n deps === undefined\n ? { kind: \"memo\", value: replayValue }\n : { kind: \"memo\", value: replayValue, deps };\n instance.hooks[index] = slot;\n }\n const hookKey = getStrictMemoHookKey(instance, index);\n const replayByHook = runtime.strictMemoReplayByHook;\n const replay = runtime.strictMemoReplay;\n value = replayByHook?.has(hookKey) === true\n ? replayByHook.get(hookKey)\n : replay === undefined || replay.index >= replay.values.length\n ? slot.value\n : replay.values[replay.index++];\n } else if (shouldRecompute) {\n value = factory();\n slot =\n deps === undefined\n ? { kind: \"memo\", value }\n : { kind: \"memo\", value, deps };\n instance.hooks[index] = slot;\n } else {\n value = slot!.value;\n }\n\n if (runtime.strictModeDepth > 0 && runtime.strictReplayDepth === 0) {\n runtime.strictMemoCapture?.push(value);\n runtime.strictMemoCaptureByHook?.set(getStrictMemoHookKey(instance, index), value);\n }\n\n const memoSlot = slot;\n if (memoSlot === undefined) {\n throw new Error(\"Hook order changed between renders.\");\n }\n\n recordDevToolsHook(\"useMemo\", memoSlot.deps === undefined\n ? { kind: \"memo\", value }\n : { kind: \"memo\", value, deps: memoSlot.deps });\n\n return value as T;\n}\n\nfunction getStrictMemoHookKey(\n instance: ComponentInstance,\n index: number,\n): string {\n return `${instance.path}:${getStrictMemoOwnerKey(instance.owner)}:${index}`;\n}\n\nexport function __getStrictMemoOwnerKeyForTesting(owner: unknown): string {\n return getStrictMemoOwnerKey(owner);\n}\n\nfunction getStrictMemoOwnerKey(owner: unknown): string {\n if ((typeof owner === \"object\" && owner !== null) || typeof owner === \"function\") {\n const objectOwner = owner as object;\n let ownerId = strictMemoObjectOwnerIds.get(objectOwner);\n if (ownerId === undefined) {\n ownerId = strictMemoOwnerId++;\n strictMemoObjectOwnerIds.set(objectOwner, ownerId);\n }\n return `o:${ownerId}`;\n }\n\n if (typeof owner === \"symbol\") {\n const globalKey = Symbol.keyFor(owner);\n return globalKey === undefined\n ? `p:symbol:${String(owner)}`\n : `p:symbol-global:${globalKey}`;\n }\n\n return `p:${typeof owner}:${String(owner)}`;\n}\n\nfunction assignRef<T>(ref: unknown, value: T | null): void {\n if (typeof ref === \"function\") {\n ref(value);\n return;\n }\n\n if (typeof ref === \"object\" && ref !== null && \"current\" in ref) {\n (ref as { current: T | null }).current = value;\n }\n}\n\nfunction recordDevToolsHook(type: string, value: DevToolsHookValue): void {\n const instance = hookRenderState.currentInstance;\n\n if (\n instance === undefined ||\n instance.devToolsHookSuppressionDepth > 0 ||\n instance.devToolsHooks === undefined ||\n instance.devToolsHookTypes === undefined\n ) {\n return;\n }\n\n instance.devToolsHookTypes.push(type);\n instance.devToolsHooks.push(value);\n}\n\nfunction hasInstalledDevToolsHook(): boolean {\n return typeof (globalThis as {\n __REACT_DEVTOOLS_GLOBAL_HOOK__?: { inject?: unknown } | undefined;\n }).__REACT_DEVTOOLS_GLOBAL_HOOK__?.inject === \"function\";\n}\n\nfunction runWithoutDevToolsHookTracking<T>(callback: () => T): T {\n const instance = requireInstance();\n instance.devToolsHookSuppressionDepth += 1;\n\n try {\n return callback();\n } finally {\n instance.devToolsHookSuppressionDepth -= 1;\n }\n}\n\nexport function useCallback<T extends (...args: never[]) => unknown>(\n callback: T,\n deps?: readonly unknown[],\n): T {\n const value = runWithoutDevToolsHookTracking(() => useMemo(() => callback, deps));\n recordDevToolsHook(\"useCallback\", deps === undefined\n ? { kind: \"callback\", value }\n : { kind: \"callback\", value, deps });\n return value;\n}\n\nexport function useDebugValue(_value: unknown, _format?: (value: unknown) => unknown): void {\n const instance = requireInstance();\n const index = instance.hookIndex;\n instance.hookIndex += 1;\n\n const value = _format === undefined ? _value : _format(_value);\n let slot = instance.hooks[index];\n\n if (slot !== undefined && slot.kind !== \"debug\") {\n throw new Error(\"Hook order changed between renders.\");\n }\n\n if (slot === undefined) {\n slot = { kind: \"debug\", value };\n instance.hooks[index] = slot;\n recordDevToolsHook(\"useDebugValue\", {\n kind: \"debug\",\n value,\n });\n return;\n }\n\n slot.value = value;\n recordDevToolsHook(\"useDebugValue\", {\n kind: \"debug\",\n value,\n });\n}\n\nexport function useEffectEvent<TArgs extends unknown[], TResult>(\n callback: (...args: TArgs) => TResult,\n): (...args: TArgs) => TResult {\n const ref = runWithoutDevToolsHookTracking(() => useRef(callback));\n ref.current = callback;\n\n const event = runWithoutDevToolsHookTracking(() =>\n useCallback((...args: TArgs) => ref.current(...args), [])\n );\n recordDevToolsHook(\"useEffectEvent\", {\n kind: \"callback\",\n value: event,\n deps: [],\n });\n return event;\n}\n\nexport function useEffect(\n callback: EffectCallback,\n deps?: readonly unknown[],\n): void {\n useEffectImpl(\"normal\", callback, deps);\n recordDevToolsHook(\"useEffect\", deps === undefined\n ? { kind: \"effect\", effectKind: \"normal\" }\n : { kind: \"effect\", effectKind: \"normal\", deps });\n}\n\nexport function useInsertionEffect(\n callback: EffectCallback,\n deps?: readonly unknown[],\n): void {\n useEffectImpl(\"insertion\", callback, deps);\n recordDevToolsHook(\"useInsertionEffect\", deps === undefined\n ? { kind: \"effect\", effectKind: \"insertion\" }\n : { kind: \"effect\", effectKind: \"insertion\", deps });\n}\n\nexport function useLayoutEffect(\n callback: EffectCallback,\n deps?: readonly unknown[],\n): void {\n useEffectImpl(\"layout\", callback, deps);\n recordDevToolsHook(\"useLayoutEffect\", deps === undefined\n ? { kind: \"effect\", effectKind: \"layout\" }\n : { kind: \"effect\", effectKind: \"layout\", deps });\n}\n\nexport function useSyncExternalStore<T>(\n subscribe: (listener: () => void) => () => void,\n getSnapshot: () => T,\n getServerSnapshot?: () => T,\n): T {\n const runtime = requireRuntime();\n const instance = requireInstance();\n const index = instance.hookIndex;\n instance.hookIndex += 1;\n let slot = instance.hooks[index];\n\n if (slot === undefined) {\n slot = {\n kind: \"store\",\n value: runtime.idMode === \"server\" && getServerSnapshot !== undefined\n ? getServerSnapshot()\n : getSnapshot(),\n };\n instance.hooks[index] = slot;\n }\n\n if (slot.kind !== \"store\") {\n throw new Error(\"Hook order changed between renders.\");\n }\n\n const isHydrationMount =\n runtime.idMode === \"server\" && slot.hasMounted !== true && getServerSnapshot !== undefined;\n const currentSnapshot = isHydrationMount ? slot.value as T : getSnapshot();\n\n if (!Object.is(slot.value, currentSnapshot)) {\n slot.value = currentSnapshot;\n }\n\n if (!isHydrationMount) {\n recordExternalStoreCheck(getSnapshot, currentSnapshot);\n }\n\n runWithoutDevToolsHookTracking(() => useEffect(() => {\n const checkForUpdates = (): void => {\n if (instance.disposed === true) {\n return;\n }\n\n const nextSnapshot = getSnapshot();\n\n if (!Object.is(slot.value, nextSnapshot)) {\n slot.value = nextSnapshot;\n instance.dirty = true;\n runtime.externalStoreUpdate = true;\n if (runtime.profilerFlushDepth > 0) {\n hookRenderState.queuedEffectFlushRerenders.add(runtime);\n return;\n }\n runtime.rerender(\"sync\");\n }\n };\n\n if (slot.hasMounted !== true) {\n checkForUpdates();\n }\n const unsubscribe = subscribe(checkForUpdates);\n slot.hasMounted = true;\n return () => {\n unsubscribe();\n };\n }, [subscribe, getSnapshot]));\n\n recordDevToolsHook(\"useSyncExternalStore\", {\n kind: \"store\",\n value: slot.value,\n });\n\n return slot.value as T;\n}\n\nexport function useActionState<TState, TPayload>(\n action: (previousState: TState, payload: TPayload) => TState | Promise<TState>,\n initialState: TState,\n): [TState, (payload: TPayload) => void, boolean] {\n const runtime = requireRuntime();\n const instance = requireInstance();\n const index = instance.hookIndex;\n instance.hookIndex += 1;\n let slot = instance.hooks[index];\n\n if (slot !== undefined && slot.kind !== \"action-state\") {\n throw new Error(\"Hook order changed between renders.\");\n }\n\n if (slot === undefined) {\n slot = {\n kind: \"action-state\",\n state: initialState,\n pendingCount: 0,\n action: action as (previousState: unknown, payload: unknown) => unknown,\n };\n instance.hooks[index] = slot;\n }\n\n if (\"error\" in slot) {\n throw slot.error;\n }\n\n slot.action = action as (previousState: unknown, payload: unknown) => unknown;\n\n if (slot.dispatch === undefined) {\n slot.dispatch = (payload: unknown): void => {\n runActionStateDispatch(slot, runtime, instance, payload);\n };\n }\n\n recordDevToolsHook(\"useActionState\", {\n kind: \"state\",\n value: slot.state,\n });\n\n return [\n slot.state as TState,\n slot.dispatch as (payload: TPayload) => void,\n slot.pendingCount > 0,\n ];\n}\n\nexport function useOptimistic<TState, TPayload>(\n state: TState,\n update?: (state: TState, payload: TPayload) => TState,\n): [TState, (payload: TPayload) => void] {\n const runtime = requireRuntime();\n const instance = requireInstance();\n const index = instance.hookIndex;\n instance.hookIndex += 1;\n let slot = instance.hooks[index];\n const updateFn =\n update === undefined\n ? (_current: unknown, payload: unknown) => payload\n : update as (state: unknown, payload: unknown) => unknown;\n\n if (slot !== undefined && slot.kind !== \"optimistic\") {\n throw new Error(\"Hook order changed between renders.\");\n }\n\n if (slot === undefined) {\n slot = {\n kind: \"optimistic\",\n baseState: state,\n optimisticState: state,\n update: updateFn,\n };\n instance.hooks[index] = slot;\n }\n\n slot.update = updateFn;\n\n if (!Object.is(slot.baseState, state)) {\n slot.baseState = state;\n slot.optimisticState = state;\n }\n\n if (slot.dispatch === undefined) {\n slot.dispatch = (payload: unknown): void => {\n slot.optimisticState = slot.update(slot.optimisticState, payload);\n scheduleInstanceUpdate(runtime, instance);\n };\n }\n\n recordDevToolsHook(\"useOptimistic\", {\n kind: \"state\",\n value: slot.optimisticState,\n });\n\n return [slot.optimisticState as TState, slot.dispatch as (payload: TPayload) => void];\n}\n\nexport function use<T>(usable: PromiseLike<T> | unknown): T {\n if (isReactCompatContext(usable)) {\n return useContext(usable) as T;\n }\n\n if (isThenable(usable)) {\n return readThenable(usable as PromiseLike<T>);\n }\n\n return usable as T;\n}\n\nexport function cache<TArgs extends unknown[], TResult>(\n callback: (...args: TArgs) => TResult,\n): (...args: TArgs) => TResult {\n return (...args) => {\n const scope = getCurrentCacheScope();\n\n if (scope === undefined) {\n return callback(...args);\n }\n\n const leaf = getCacheLeaf(scope, callback, args);\n\n if (leaf.status === \"fulfilled\") {\n return leaf.value as TResult;\n }\n\n if (leaf.status === \"rejected\") {\n throw leaf.reason;\n }\n\n try {\n const value = callback(...args);\n leaf.status = \"fulfilled\";\n leaf.value = value;\n return value;\n } catch (error) {\n leaf.status = \"rejected\";\n leaf.reason = error;\n throw error;\n }\n };\n}\n\nexport function cacheSignal(): AbortSignal | null {\n return getCurrentCacheScope()?.controller.signal ?? null;\n}\n\nexport function captureOwnerStack(): string | null {\n const stack = getCurrentCacheScope()?.ownerStack ?? emptyCacheOwnerStack;\n return stack.length === 0 ? null : stack.join(\"\\n\");\n}\n\nexport function unstable_useCacheRefresh(): () => void {\n return useCallback(() => undefined, []);\n}\n\nexport function hasStableExternalStores(\n runtime: RootRuntime,\n): boolean {\n return runtime.externalStoreChecks.every((check) =>\n Object.is(check.getSnapshot(), check.value),\n );\n}\n\nfunction readThenable<T>(thenable: PromiseLike<T>): T {\n const record = thenable as PromiseLike<T> & {\n status?: \"pending\" | \"fulfilled\" | \"rejected\";\n value?: T;\n reason?: unknown;\n };\n\n if (record.status === \"fulfilled\") {\n return record.value as T;\n }\n\n if (record.status === \"rejected\") {\n throw record.reason;\n }\n\n if (record.status === undefined) {\n record.status = \"pending\";\n thenable.then(\n (value) => {\n if (record.status === \"pending\") {\n record.status = \"fulfilled\";\n record.value = value;\n }\n },\n (reason) => {\n if (record.status === \"pending\") {\n record.status = \"rejected\";\n record.reason = reason;\n }\n },\n );\n }\n\n throw thenable;\n}\n\nexport type TransitionScope = () => void;\nexport type StartTransition = (scope: TransitionScope) => void;\n\nexport function startTransition(scope: TransitionScope): void {\n const context = {\n syncVersion,\n transitionVersion: ++transitionVersion,\n };\n\n runTransitionScope(scope, context);\n}\n\nexport function runWithEventPriority<T>(\n priority: EventPriority,\n callback: () => T,\n): T {\n const previousPriority = currentEventPriority;\n currentEventPriority = priority;\n eventBatchDepth += 1;\n\n try {\n return callback();\n } finally {\n eventBatchDepth -= 1;\n currentEventPriority = previousPriority;\n\n if (eventBatchDepth === 0) {\n flushEventRerendersForPriority(priority);\n }\n }\n}\n\nexport function flushSyncUpdates<T>(callback: () => T): T {\n const previousEventBatchDepth = eventBatchDepth;\n const previousEventPriority = currentEventPriority;\n eventBatchDepth = 0;\n currentEventPriority = \"discrete\";\n\n try {\n const value = callback();\n // Reactive-core cell/computed updates flush in a scheduled microtask by\n // default; drain them here so flushSync guarantees committed DOM on return\n // for compiled (cell-driven) components as well as compat hook state.\n flushPendingComputed();\n flushQueuedComputations();\n flushQueuedEventRerenders();\n return value;\n } finally {\n eventBatchDepth = previousEventBatchDepth;\n currentEventPriority = previousEventPriority;\n }\n}\n\nexport function runWithHostCommit<T>(callback: () => T): T {\n hookRenderState.hostCommitDepth += 1;\n try {\n return callback();\n } finally {\n hookRenderState.hostCommitDepth -= 1;\n }\n}\n\nexport function useTransition(): [boolean, StartTransition] {\n const instance = requireInstance();\n const [pending, setPending] = runWithoutDevToolsHookTracking(() => useState(false));\n const startTransitionWithPending: StartTransition = (scope) => {\n setPending(true);\n const context = {\n syncVersion,\n transitionVersion: ++transitionVersion,\n };\n scheduleCallback(\"low\", () => {\n if (instance.disposed === true) {\n return;\n }\n\n if (!isTransitionContextCurrent(context)) {\n setPending(false);\n return;\n }\n\n runTransitionScope(() => {\n scope();\n if (instance.disposed === true) {\n return;\n }\n setPending(false);\n }, context);\n });\n };\n\n recordDevToolsHook(\"useTransition\", {\n kind: \"transition\",\n value: pending,\n });\n\n return [\n pending,\n startTransitionWithPending,\n ];\n}\n\nexport function useDeferredValue<T>(value: T, initialValue?: T): T {\n const [deferredValue, setDeferredValue] = runWithoutDevToolsHookTracking(() =>\n useState(arguments.length > 1 ? (initialValue as T) : value)\n );\n\n runWithoutDevToolsHookTracking(() =>\n useEffect(() => {\n if (Object.is(deferredValue, value)) {\n return;\n }\n\n startTransition(() => {\n setDeferredValue(value);\n });\n }, [value, deferredValue])\n );\n\n const currentValue = Object.is(deferredValue, value) ? value : deferredValue;\n\n recordDevToolsHook(\"useDeferredValue\", {\n kind: \"deferred\",\n value: currentValue,\n });\n\n return currentValue;\n}\n\nfunction runTransitionScope(\n scope: TransitionScope,\n context: TransitionContext,\n): void {\n transitionDepth += 1;\n const previousContext = currentTransitionContext;\n currentTransitionContext = context;\n\n try {\n scope();\n } finally {\n currentTransitionContext = previousContext;\n transitionDepth -= 1;\n }\n}\n\nfunction queueTransitionRerender(\n runtime: RootRuntime,\n context: TransitionContext,\n): void {\n queuedTransitionRerenders.set(runtime, context);\n\n if (transitionRerenderScheduled) {\n return;\n }\n\n transitionRerenderScheduled = true;\n scheduleCallback(\"low\", flushQueuedTransitionRerenders);\n}\n\nfunction queueEventRerender(runtime: RootRuntime): void {\n queuedEventRerenders.add(runtime);\n}\n\nfunction queueAutomaticRerender(runtime: RootRuntime): void {\n queueEventRerender(runtime);\n\n if (automaticRerenderScheduled) {\n return;\n }\n\n automaticRerenderScheduled = true;\n queueMicrotask(() => {\n automaticRerenderScheduled = false;\n flushQueuedEventRerenders(\"sync\");\n });\n}\n\nfunction flushEventRerendersForPriority(priority: EventPriority): void {\n if (priority === \"discrete\") {\n flushQueuedEventRerenders(\"sync\");\n return;\n }\n\n if (eventRerenderScheduled || queuedEventRerenders.size === 0) {\n return;\n }\n\n eventRerenderScheduled = true;\n scheduleCallback(priority === \"continuous\" ? \"normal\" : \"low\", () => {\n eventRerenderScheduled = false;\n flushQueuedEventRerenders(\n priority === \"continuous\" ? \"continuous\" : \"sync\",\n );\n });\n}\n\nfunction flushQueuedEventRerenders(priority: RenderPriority = \"sync\"): void {\n const runtimes = Array.from(queuedEventRerenders);\n queuedEventRerenders.clear();\n\n for (const runtime of runtimes) {\n runtime.rerender(priority);\n }\n}\n\nfunction flushQueuedTransitionRerenders(): void {\n transitionRerenderScheduled = false;\n const entries = Array.from(queuedTransitionRerenders.entries());\n queuedTransitionRerenders.clear();\n\n for (const [runtime, context] of entries) {\n if (isTransitionContextCurrent(context)) {\n runtime.rerender(\"transition\");\n }\n }\n}\n\nfunction isTransitionContextCurrent(context: TransitionContext): boolean {\n return (\n context.syncVersion === syncVersion &&\n context.transitionVersion === transitionVersion\n );\n}\n\nfunction useEffectImpl(\n effectKind: \"insertion\" | \"imperative-handle\" | \"layout\" | \"normal\",\n callback: EffectCallback,\n deps?: readonly unknown[],\n): void {\n const runtime = requireRuntime();\n const instance = requireInstance();\n const index = instance.hookIndex;\n instance.hookIndex += 1;\n\n let slot = instance.hooks[index];\n\n if (slot !== undefined && slot.kind !== \"effect\") {\n throw new Error(\"Hook order changed between renders.\");\n }\n\n const shouldRun =\n slot === undefined ||\n slot.mounted !== true ||\n deps === undefined ||\n slot.deps === undefined ||\n !areHookInputsEqual(deps, slot.deps);\n\n if (slot === undefined) {\n slot =\n deps === undefined\n ? { kind: \"effect\", effectKind, callback }\n : { kind: \"effect\", effectKind, callback, deps };\n instance.hooks[index] = slot;\n } else {\n slot.effectKind = effectKind;\n slot.callback = callback;\n slot.disposed = false;\n\n if (deps === undefined) {\n delete slot.deps;\n } else {\n slot.deps = deps;\n }\n }\n\n slot.strictReplay =\n (runtime.strictModeDepth > 0 || runtime.strictReplayDepth > 0) &&\n effectKind !== \"insertion\" &&\n effectKind !== \"imperative-handle\";\n\n if (shouldRun) {\n const queue =\n effectKind === \"insertion\"\n ? runtime.pendingInsertionEffects\n : effectKind === \"imperative-handle\"\n ? runtime.pendingImperativeHandleEffects\n : effectKind === \"layout\"\n ? runtime.pendingLayoutEffects\n : runtime.pendingEffects;\n queue.push({ slot });\n }\n}\n\nfunction recordExternalStoreCheck<T>(\n getSnapshot: () => T,\n value: T,\n): void {\n hookRenderState.currentRuntime?.externalStoreChecks.push({ getSnapshot, value });\n}\n\nfunction flushPendingEffects(queue: PendingEffect[]): PendingEffect[] {\n const pending = queue.splice(0);\n const strictReplay: PendingEffect[] = [];\n const runnable: { slot: Extract<HookSlot, { kind: \"effect\" }>; shouldReplay: boolean }[] = [];\n\n for (const { slot } of pending) {\n if (slot.disposed === true) {\n continue;\n }\n\n const shouldReplay = slot.strictReplay === true && slot.cleanup === undefined;\n slot.cleanup?.();\n runnable.push({ slot, shouldReplay });\n }\n\n for (const { slot, shouldReplay } of runnable) {\n if (slot.disposed === true) {\n continue;\n }\n\n const cleanup = slot.callback();\n\n if (typeof cleanup === \"function\") {\n slot.cleanup = cleanup;\n } else {\n delete slot.cleanup;\n }\n slot.mounted = true;\n\n if (shouldReplay) {\n strictReplay.push({ slot });\n }\n }\n\n return strictReplay;\n}\n\nfunction replayStrictEffects(effects: PendingEffect[]): void {\n for (const { slot } of effects) {\n if (slot.disposed === true) {\n continue;\n }\n\n const cleanup = slot.callback();\n\n if (typeof cleanup === \"function\") {\n slot.cleanup = cleanup;\n } else {\n delete slot.cleanup;\n }\n }\n}\n\nfunction flushProfilerCommits(\n runtime: RootRuntime,\n commits: PendingProfilerCommit[],\n): void {\n if (commits.length === 0) {\n return;\n }\n\n const commitTime = getCurrentTime();\n runtime.profilerFlushDepth += 1;\n\n try {\n for (const commit of commits) {\n commit.onRender(\n commit.id,\n commit.phase,\n commit.actualDuration,\n commit.baseDuration,\n commit.startTime,\n commitTime,\n );\n }\n } finally {\n runtime.profilerFlushDepth -= 1;\n }\n}\n\nfunction runActionStateDispatch(\n slot: Extract<HookSlot, { kind: \"action-state\" }>,\n runtime: RootRuntime,\n instance: ComponentInstance,\n payload: unknown,\n): void {\n let result: unknown;\n\n try {\n result = slot.action(slot.state, payload);\n } catch (error) {\n slot.error = error;\n scheduleInstanceUpdate(runtime, instance);\n return;\n }\n\n if (!isThenable(result)) {\n slot.state = result;\n scheduleInstanceUpdate(runtime, instance);\n return;\n }\n\n slot.pendingCount += 1;\n scheduleInstanceUpdate(runtime, instance);\n result.then(\n (nextState) => {\n slot.state = nextState;\n slot.pendingCount = Math.max(0, slot.pendingCount - 1);\n scheduleInstanceUpdate(runtime, instance);\n },\n (error) => {\n slot.error = error;\n slot.pendingCount = Math.max(0, slot.pendingCount - 1);\n scheduleInstanceUpdate(runtime, instance);\n },\n );\n}\n\nfunction scheduleInstanceUpdate(\n runtime: RootRuntime,\n instance: ComponentInstance,\n options: { deferSync?: boolean } = {},\n): void {\n if (instance.disposed === true) {\n return;\n }\n\n instance.dirty = true;\n if (\n hookRenderState.currentRuntime === runtime &&\n hookRenderState.currentInstance === instance\n ) {\n runtime.renderPhaseUpdate = true;\n return;\n }\n\n if (transitionDepth === 0) {\n syncVersion += 1;\n if (hookRenderState.hostCommitDepth > 0) {\n hookRenderState.queuedHostCommitRerenders.add(runtime);\n return;\n }\n if (runtime.effectFlushPhase !== undefined) {\n hookRenderState.queuedEffectFlushRerenders.add(runtime);\n return;\n }\n if (eventBatchDepth > 0) {\n queueEventRerender(runtime);\n return;\n }\n if (options.deferSync === true) {\n queueAutomaticRerender(runtime);\n return;\n }\n runtime.rerender(\"sync\");\n return;\n }\n\n if (currentTransitionContext !== undefined) {\n queueTransitionRerender(runtime, currentTransitionContext);\n }\n}\n\nfunction flushHostCommitRerenders(): void {\n if (\n hookRenderState.hostCommitDepth > 0 ||\n hookRenderState.queuedHostCommitRerenders.size === 0\n ) {\n return;\n }\n\n const runtimes = [...hookRenderState.queuedHostCommitRerenders];\n hookRenderState.queuedHostCommitRerenders.clear();\n for (const runtime of runtimes) {\n const hasDirtyInstance = Array.from(runtime.instances.values()).some(\n (instance) => instance.dirty,\n );\n clearHostCommitStateBaselines(runtime);\n\n if (hasDirtyInstance) {\n runtime.rerender(\"sync\");\n }\n }\n}\n\nfunction flushEffectFlushRerenders(): void {\n if (\n effectFlushRerenderDepth > 0 ||\n hookRenderState.queuedEffectFlushRerenders.size === 0\n ) {\n return;\n }\n\n effectFlushRerenderDepth += 1;\n try {\n for (\n let attempt = 0;\n attempt < 3 && hookRenderState.queuedEffectFlushRerenders.size > 0;\n attempt += 1\n ) {\n const runtimes = [...hookRenderState.queuedEffectFlushRerenders];\n hookRenderState.queuedEffectFlushRerenders.clear();\n for (const runtime of runtimes) {\n const hasDirtyInstance = Array.from(runtime.instances.values()).some(\n (instance) => instance.dirty,\n );\n\n if (hasDirtyInstance) {\n runtime.rerender(\"sync\");\n }\n }\n }\n hookRenderState.queuedEffectFlushRerenders.clear();\n } finally {\n effectFlushRerenderDepth -= 1;\n }\n}\n\nfunction updateHostCommitDirtyState(\n instance: ComponentInstance,\n): void {\n instance.dirty = instance.hooks.some(\n (slot) =>\n slot.kind === \"state\" &&\n Object.hasOwn(slot, \"hostCommitValue\") &&\n !Object.is(slot.hostCommitValue, slot.value),\n );\n}\n\nfunction clearHostCommitStateBaselines(runtime: RootRuntime): void {\n for (const instance of runtime.instances.values()) {\n for (const slot of instance.hooks) {\n if (slot.kind === \"state\") {\n delete slot.hostCommitValue;\n }\n }\n }\n}\n\nfunction getCacheLeaf(\n scope: CacheScope,\n callback: (...args: never[]) => unknown,\n args: readonly unknown[],\n): CacheTrieNode {\n let node = scope.functionCaches.get(callback);\n\n if (node === undefined) {\n node = createCacheTrieNode();\n scope.functionCaches.set(callback, node);\n }\n\n for (const arg of args) {\n node = getCacheChild(node, arg);\n }\n\n return node;\n}\n\nfunction getCacheChild(node: CacheTrieNode, key: unknown): CacheTrieNode {\n if ((typeof key === \"object\" && key !== null) || typeof key === \"function\") {\n const objectKey = key as object;\n let child = node.objectChildren.get(objectKey);\n\n if (child === undefined) {\n child = createCacheTrieNode();\n node.objectChildren.set(objectKey, child);\n }\n\n return child;\n }\n\n let child = node.primitiveChildren.get(key);\n\n if (child === undefined) {\n child = createCacheTrieNode();\n node.primitiveChildren.set(key, child);\n }\n\n return child;\n}\n\nfunction createCacheTrieNode(): CacheTrieNode {\n return {\n primitiveChildren: new Map(),\n objectChildren: new WeakMap(),\n };\n}\n\nfunction getCurrentCacheScope(): CacheScope | undefined {\n return hookRenderState.currentCacheScope ?? getGlobalCacheScope();\n}\n\nfunction getGlobalCacheScope(): CacheScope | undefined {\n return (globalThis as { [CACHE_SCOPE_SYMBOL]?: CacheScope })[CACHE_SCOPE_SYMBOL];\n}\n\nfunction setGlobalCacheScope(scope: CacheScope | undefined): void {\n if (scope === undefined) {\n delete (globalThis as { [CACHE_SCOPE_SYMBOL]?: CacheScope })[CACHE_SCOPE_SYMBOL];\n return;\n }\n\n (globalThis as { [CACHE_SCOPE_SYMBOL]?: CacheScope })[CACHE_SCOPE_SYMBOL] = scope;\n}\n\nfunction cleanupStrictEffects(effects: PendingEffect[]): void {\n for (const { slot } of effects) {\n if (slot.disposed !== true) {\n slot.cleanup?.();\n }\n }\n}\n\nfunction cleanupInactiveInstances(runtime: RootRuntime): void {\n const activeInstanceKeys = runtime.activeInstanceKeys;\n\n if (activeInstanceKeys === undefined) {\n return;\n }\n\n for (const [key, instance] of runtime.instances) {\n if (!activeInstanceKeys.has(key)) {\n cleanupInstance(instance);\n runtime.instances.delete(key);\n removeInstanceKeyFromIndex(runtime, key);\n }\n }\n}\n\nfunction indexInstanceKey(runtime: RootRuntime, key: string): void {\n for (const prefix of instanceKeyPrefixes(key)) {\n let keys = runtime.instanceKeysByPrefix.get(prefix);\n\n if (keys === undefined) {\n keys = new Set();\n runtime.instanceKeysByPrefix.set(prefix, keys);\n }\n\n keys.add(key);\n }\n}\n\nfunction removeInstanceKeyFromIndex(runtime: RootRuntime, key: string): void {\n for (const prefix of instanceKeyPrefixes(key)) {\n const keys = runtime.instanceKeysByPrefix.get(prefix);\n\n if (keys === undefined) {\n continue;\n }\n\n keys.delete(key);\n\n if (keys.size === 0) {\n runtime.instanceKeysByPrefix.delete(prefix);\n }\n }\n}\n\nfunction instanceKeyPrefixes(key: string): string[] {\n const parts = key.split(\".\");\n const prefixes: string[] = [];\n\n for (let index = 1; index <= parts.length; index += 1) {\n prefixes.push(parts.slice(0, index).join(\".\"));\n }\n\n return prefixes;\n}\n\nfunction cleanupInstance(instance: ComponentInstance): void {\n instance.disposed = true;\n for (const slot of instance.hooks) {\n if (slot?.kind === \"effect\") {\n slot.disposed = true;\n slot.mounted = false;\n slot.cleanup?.();\n delete slot.cleanup;\n }\n }\n}\n\nfunction requireRuntime(): RootRuntime {\n if (hookRenderState.currentRuntime === undefined) {\n throw new Error(\"Hooks can only be called while rendering.\");\n }\n\n return hookRenderState.currentRuntime;\n}\n\nfunction requireInstance(): ComponentInstance {\n if (hookRenderState.currentInstance === undefined) {\n throw new Error(\"Hooks can only be called while rendering.\");\n }\n\n return hookRenderState.currentInstance;\n}\n\nfunction areHookInputsEqual(\n nextDeps: readonly unknown[],\n previousDeps: readonly unknown[],\n): boolean {\n if (nextDeps.length !== previousDeps.length) {\n return false;\n }\n\n for (let index = 0; index < nextDeps.length; index += 1) {\n if (!Object.is(nextDeps[index], previousDeps[index])) {\n return false;\n }\n }\n\n return true;\n}\n\nfunction getCurrentTime(): number {\n return typeof performance === \"undefined\" ? Date.now() : performance.now();\n}\n"]}
1
+ {"version":3,"file":"hooks.js","sourceRoot":"","sources":["../src/hooks.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n flushPendingComputed,\n flushQueuedComputations,\n} from \"@reckona/mreact-reactive-core/internal\";\nimport { scheduleCallback } from \"./fiber-scheduler.js\";\nimport { removeChildIfPresent } from \"./dom-children.js\";\nimport {\n type ReactCompatContextLike,\n isReactCompatContext,\n readContextValue,\n useContext,\n withContextReadObserver,\n} from \"./context.js\";\nimport { REACTIVE_TEXT_BINDING_META } from \"./element.js\";\nimport { isThenable } from \"./thenable.js\";\n\nexport interface RootRuntime {\n currentElement?: unknown;\n instances: Map<string, ComponentInstance>;\n instanceKeysByPrefix: Map<string, Set<string>>;\n activeInstanceKeys: Set<string> | undefined;\n activeProfilerPaths: Set<string> | undefined;\n mountedProfilerPaths: Set<string>;\n profilerBaseDurations: Map<string, number>;\n pendingProfilerCommits: PendingProfilerCommit[];\n pendingInsertionEffects: PendingEffect[];\n pendingImperativeHandleEffects: PendingEffect[];\n pendingLayoutEffects: PendingEffect[];\n pendingEffects: PendingEffect[];\n externalStoreChecks: ExternalStoreCheck[];\n portalContainers: Set<Element>;\n portalNodes: Map<Element, Set<Node>>;\n idCounter: number;\n identifierPrefix: string;\n idMode: \"client\" | \"server\";\n strictModeDepth: number;\n strictReplayDepth: number;\n strictMemoCapture: unknown[] | undefined;\n strictMemoCaptureByHook: Map<string, unknown> | undefined;\n strictMemoReplay: { values: readonly unknown[]; index: number } | undefined;\n strictMemoReplayByHook: ReadonlyMap<string, unknown> | undefined;\n profilerFlushDepth: number;\n effectFlushPhase: \"insertion\" | \"imperative-handle\" | \"layout\" | \"normal\" | undefined;\n externalStoreUpdate: boolean;\n renderPhaseUpdate: boolean;\n rerender(priority?: RenderPriority): void;\n beginRender(): void;\n endRender(committed?: boolean): void;\n flushEffects(): void;\n dispose(): void;\n}\n\ninterface ComponentInstance {\n owner: unknown | undefined;\n path: string;\n hooks: HookSlot[];\n hookIndex: number;\n dirty: boolean;\n disposed?: boolean;\n contextDependencies?: Map<ReactCompatContextLike<unknown>, unknown>;\n devToolsHooks?: DevToolsHookValue[];\n devToolsHookTypes?: string[];\n devToolsHookSuppressionDepth: number;\n}\n\ntype EffectCallback = () => void | (() => void);\ntype ProfilerPhase = \"mount\" | \"update\" | \"nested-update\";\ntype ProfilerOnRender = (\n id: string,\n phase: ProfilerPhase,\n actualDuration: number,\n baseDuration: number,\n startTime: number,\n commitTime: number,\n) => void;\n\ninterface PendingEffect {\n slot: Extract<HookSlot, { kind: \"effect\" }>;\n}\n\ninterface PendingProfilerCommit {\n id: string;\n phase: ProfilerPhase;\n onRender: ProfilerOnRender;\n actualDuration: number;\n baseDuration: number;\n startTime: number;\n}\n\ninterface ExternalStoreCheck {\n getSnapshot: () => unknown;\n value: unknown;\n}\n\n/** Cache scope that stores memoized cache() results and cancellation state. */\nexport interface CacheScope {\n functionCaches: WeakMap<(...args: never[]) => unknown, CacheTrieNode>;\n controller: AbortController;\n ownerStack: string[];\n}\n\ninterface CacheTrieNode {\n primitiveChildren: Map<unknown, CacheTrieNode>;\n objectChildren: WeakMap<object, CacheTrieNode>;\n status?: \"fulfilled\" | \"rejected\";\n value?: unknown;\n reason?: unknown;\n}\n\nexport interface DevToolsHookState {\n hooks: DevToolsHookValue[];\n hookTypes: string[];\n}\n\nexport type DevToolsHookValue =\n | { kind: \"state\"; value: unknown }\n | { kind: \"reducer\"; value: unknown }\n | { kind: \"store\"; value: unknown }\n | { kind: \"ref\"; value: unknown }\n | { kind: \"memo\"; value: unknown; deps?: readonly unknown[] }\n | { kind: \"callback\"; value: unknown; deps?: readonly unknown[] }\n | { kind: \"id\"; value: unknown }\n | { kind: \"imperative-handle\"; deps?: readonly unknown[] }\n | { kind: \"transition\"; value: unknown }\n | { kind: \"deferred\"; value: unknown }\n | { kind: \"debug\"; value: unknown }\n | { kind: \"effect\"; effectKind: \"insertion\" | \"layout\" | \"normal\"; deps?: readonly unknown[] };\n\ntype HookSlot =\n | { kind: \"state\"; value: unknown; hostCommitValue?: unknown; textBinding?: ReactiveTextBinding }\n | {\n kind: \"action-state\";\n state: unknown;\n pendingCount: number;\n action: (previousState: unknown, payload: unknown) => unknown;\n dispatch?: (payload: unknown) => void;\n error?: unknown;\n }\n | {\n kind: \"optimistic\";\n baseState: unknown;\n optimisticState: unknown;\n update: (state: unknown, payload: unknown) => unknown;\n dispatch?: (payload: unknown) => void;\n }\n | { kind: \"store\"; value: unknown; hasMounted?: boolean }\n | { kind: \"ref\"; value: { current: unknown } }\n | { kind: \"memo\"; value: unknown; deps?: readonly unknown[] }\n | { kind: \"debug\"; value: unknown }\n | {\n kind: \"effect\";\n effectKind: \"insertion\" | \"imperative-handle\" | \"layout\" | \"normal\";\n callback: EffectCallback;\n deps?: readonly unknown[];\n cleanup?: () => void;\n disposed?: boolean;\n mounted?: boolean;\n strictReplay?: boolean;\n };\n\ninterface HookRenderState {\n currentRuntime: RootRuntime | undefined;\n currentInstance: ComponentInstance | undefined;\n currentCacheScope: CacheScope | undefined;\n hostCommitDepth: number;\n queuedHostCommitRerenders: Set<RootRuntime>;\n queuedEffectFlushRerenders: Set<RootRuntime>;\n}\n\nconst HOOK_RENDER_STATE_KEY = Symbol.for(\"modular.react.hook_render_state\");\nconst hookRenderState =\n ((globalThis as typeof globalThis & Record<symbol, HookRenderState | undefined>)[\n HOOK_RENDER_STATE_KEY\n ] ??= {\n currentRuntime: undefined,\n currentInstance: undefined,\n currentCacheScope: undefined,\n hostCommitDepth: 0,\n queuedHostCommitRerenders: new Set<RootRuntime>(),\n queuedEffectFlushRerenders: new Set<RootRuntime>(),\n });\nconst CACHE_SCOPE_SYMBOL = Symbol.for(\"modular.react.cache_scope\");\nconst emptyCacheOwnerStack: string[] = [];\nlet syncVersion = 0;\nlet transitionVersion = 0;\nlet transitionDepth = 0;\nlet currentTransitionContext: TransitionContext | undefined;\nlet transitionRerenderScheduled = false;\nlet eventBatchDepth = 0;\nlet currentEventPriority: EventPriority = \"default\";\nlet eventRerenderScheduled = false;\nlet automaticRerenderScheduled = false;\nlet effectFlushRerenderDepth = 0;\nlet strictMemoOwnerId = 0;\nconst strictMemoObjectOwnerIds = new WeakMap<object, number>();\nconst queuedTransitionRerenders = new Map<RootRuntime, TransitionContext>();\nconst queuedEventRerenders = new Set<RootRuntime>();\n/** React version string matched by the compatibility layer. */\nexport const version = \"19.2.6\";\n\nexport interface ReactiveTextBinding {\n value: unknown;\n subscribers: Set<Text>;\n}\n\nconst reactiveTextBindingsByNode = new WeakMap<Text, ReactiveTextBinding>();\nconst hydratedIdsByRuntime = new WeakMap<RootRuntime, Map<string, string>>();\n\n/** Flushes React-compatible updates produced inside a test interaction. */\nexport function act<T>(callback: () => T): T extends PromiseLike<unknown> ? Promise<void> : void {\n const previousPriority = currentEventPriority;\n currentEventPriority = \"discrete\";\n eventBatchDepth += 1;\n let result: T;\n\n try {\n result = callback();\n } catch (error) {\n eventBatchDepth -= 1;\n currentEventPriority = previousPriority;\n if (eventBatchDepth === 0) {\n flushEventRerendersForPriority(\"discrete\");\n }\n throw error;\n }\n\n const finishActScope = (): void => {\n eventBatchDepth -= 1;\n currentEventPriority = previousPriority;\n if (eventBatchDepth === 0) {\n flushEventRerendersForPriority(\"discrete\");\n }\n };\n\n if (isThenable(result)) {\n return Promise.resolve(result).then(\n async () => {\n finishActScope();\n await flushActWorkAsync();\n },\n (error: unknown) => {\n finishActScope();\n throw error;\n },\n ) as T extends PromiseLike<unknown> ? Promise<void> : void;\n }\n\n finishActScope();\n flushActWork();\n return undefined as T extends PromiseLike<unknown>\n ? Promise<void>\n : void;\n}\n\nasync function flushActWorkAsync(): Promise<void> {\n for (let attempt = 0; attempt < 10; attempt += 1) {\n await Promise.resolve();\n flushActWork();\n }\n for (let attempt = 0; attempt < 3; attempt += 1) {\n await new Promise((resolve) => setTimeout(resolve, 0));\n flushActWork();\n }\n}\n\nfunction flushActWork(): void {\n flushQueuedEventRerenders(\"sync\");\n flushQueuedTransitionRerenders();\n flushHostCommitRerenders();\n flushEffectFlushRerenders();\n}\n\n/** Priority category used while batching an event callback. */\nexport type EventPriority = \"discrete\" | \"continuous\" | \"default\";\nexport type RenderPriority = \"sync\" | \"transition\" | \"continuous\";\n\ninterface TransitionContext {\n syncVersion: number;\n transitionVersion: number;\n}\n\nexport interface RootRuntimeOptions {\n identifierPrefix?: string;\n idMode?: \"client\" | \"server\";\n}\n\nexport interface RuntimeSnapshot {\n instanceKeys: Set<string>;\n portalContainers: Set<Element>;\n portalNodes: Map<Element, Set<Node>>;\n pendingInsertionEffectsLength: number;\n pendingImperativeHandleEffectsLength: number;\n pendingLayoutEffectsLength: number;\n pendingEffectsLength: number;\n pendingProfilerCommitsLength: number;\n profilerBaseDurations: Map<string, number>;\n idCounter: number;\n identifierPrefix: string;\n idMode: \"client\" | \"server\";\n strictModeDepth: number;\n strictReplayDepth: number;\n strictMemoCapture: unknown[] | undefined;\n strictMemoCaptureByHook: Map<string, unknown> | undefined;\n strictMemoReplay: { values: readonly unknown[]; index: number } | undefined;\n strictMemoReplayByHook: ReadonlyMap<string, unknown> | undefined;\n profilerFlushDepth: number;\n}\n\nexport function createRootRuntime(\n rerender: (priority?: RenderPriority) => void,\n options: RootRuntimeOptions = {},\n): RootRuntime {\n return {\n instances: new Map(),\n instanceKeysByPrefix: new Map(),\n activeInstanceKeys: undefined,\n activeProfilerPaths: undefined,\n mountedProfilerPaths: new Set(),\n profilerBaseDurations: new Map(),\n pendingProfilerCommits: [],\n pendingInsertionEffects: [],\n pendingImperativeHandleEffects: [],\n pendingLayoutEffects: [],\n pendingEffects: [],\n externalStoreChecks: [],\n portalContainers: new Set(),\n portalNodes: new Map(),\n idCounter: 0,\n identifierPrefix: options.identifierPrefix ?? \"\",\n idMode: options.idMode ?? \"client\",\n strictModeDepth: 0,\n strictReplayDepth: 0,\n strictMemoCapture: undefined,\n strictMemoCaptureByHook: undefined,\n strictMemoReplay: undefined,\n strictMemoReplayByHook: undefined,\n profilerFlushDepth: 0,\n effectFlushPhase: undefined,\n externalStoreUpdate: false,\n renderPhaseUpdate: false,\n rerender,\n beginRender() {\n this.activeInstanceKeys = new Set();\n this.activeProfilerPaths = new Set();\n this.pendingProfilerCommits = [];\n this.pendingInsertionEffects = [];\n this.pendingImperativeHandleEffects = [];\n this.pendingLayoutEffects = [];\n this.pendingEffects = [];\n this.externalStoreChecks = [];\n this.renderPhaseUpdate = false;\n },\n endRender(committed = true) {\n const profilerCommits = committed ? this.pendingProfilerCommits.splice(0) : [];\n const activeProfilerPaths = this.activeProfilerPaths;\n if (committed) {\n cleanupInactiveInstances(this);\n this.mountedProfilerPaths =\n activeProfilerPaths === undefined ? new Set() : new Set(activeProfilerPaths);\n } else {\n this.pendingProfilerCommits = [];\n }\n this.activeInstanceKeys = undefined;\n this.activeProfilerPaths = undefined;\n hookRenderState.currentRuntime = undefined;\n hookRenderState.currentInstance = undefined;\n if (committed) {\n flushProfilerCommits(this, profilerCommits);\n flushHostCommitRerenders();\n this.externalStoreUpdate = false;\n }\n },\n flushEffects() {\n this.profilerFlushDepth += 1;\n try {\n this.effectFlushPhase = \"insertion\";\n flushPendingEffects(this.pendingInsertionEffects);\n this.effectFlushPhase = \"imperative-handle\";\n flushPendingEffects(this.pendingImperativeHandleEffects);\n this.effectFlushPhase = \"layout\";\n const strictLayoutEffects = flushPendingEffects(this.pendingLayoutEffects);\n this.effectFlushPhase = \"normal\";\n const strictEffects = flushPendingEffects(this.pendingEffects);\n this.effectFlushPhase = undefined;\n const strictReplayEffects = [...strictLayoutEffects, ...strictEffects];\n cleanupStrictEffects(strictReplayEffects);\n replayStrictEffects(strictReplayEffects);\n } finally {\n this.effectFlushPhase = undefined;\n this.profilerFlushDepth -= 1;\n if (this.profilerFlushDepth === 0) {\n flushEffectFlushRerenders();\n }\n }\n },\n dispose() {\n for (const instance of this.instances.values()) {\n cleanupInstance(instance);\n }\n\n this.pendingLayoutEffects = [];\n this.pendingInsertionEffects = [];\n this.pendingEffects = [];\n this.pendingProfilerCommits = [];\n this.activeProfilerPaths = undefined;\n this.mountedProfilerPaths.clear();\n this.profilerBaseDurations.clear();\n clearRuntimePortalNodes(this);\n },\n };\n}\n\n/** Creates an isolated cache scope for cache() and cacheSignal(). */\nexport function createCacheScope(): CacheScope {\n return {\n functionCaches: new WeakMap(),\n controller: new AbortController(),\n ownerStack: [],\n };\n}\n\n/** Clears a cache scope and aborts work tied to its previous signal. */\nexport function refreshCacheScope(scope: CacheScope): void {\n scope.controller.abort();\n scope.functionCaches = new WeakMap();\n scope.controller = new AbortController();\n}\n\n/** Runs a callback with a cache scope active for nested cache() calls. */\nexport function runWithCacheScope<T>(scope: CacheScope, callback: () => T): T {\n const previousScope = hookRenderState.currentCacheScope;\n const previousGlobalScope = getGlobalCacheScope();\n hookRenderState.currentCacheScope = scope;\n setGlobalCacheScope(scope);\n\n try {\n const result = callback();\n\n if (isThenable(result)) {\n return Promise.resolve(result).finally(() => {\n hookRenderState.currentCacheScope = previousScope;\n setGlobalCacheScope(previousGlobalScope);\n }) as T;\n }\n\n hookRenderState.currentCacheScope = previousScope;\n setGlobalCacheScope(previousGlobalScope);\n return result;\n } catch (error) {\n hookRenderState.currentCacheScope = previousScope;\n setGlobalCacheScope(previousGlobalScope);\n throw error;\n }\n}\n\nexport function renderWithProfiler<T>(\n runtime: RootRuntime,\n path: string,\n props: Record<string, unknown>,\n render: () => T,\n): T {\n const startTime = getCurrentTime();\n const phase: ProfilerPhase =\n runtime.profilerFlushDepth > 0 || effectFlushRerenderDepth > 0\n ? \"nested-update\"\n : runtime.mountedProfilerPaths.has(path)\n ? \"update\"\n : \"mount\";\n\n try {\n return render();\n } finally {\n runtime.activeProfilerPaths?.add(path);\n const onRender = props.onRender;\n const id = props.id;\n\n if (typeof onRender === \"function\" && typeof id === \"string\") {\n const actualDuration = Math.max(0, getCurrentTime() - startTime);\n const baseDuration = Math.max(\n runtime.profilerBaseDurations.get(path) ?? 0,\n actualDuration,\n );\n runtime.profilerBaseDurations.set(path, baseDuration);\n runtime.pendingProfilerCommits.push({\n id,\n phase,\n onRender: onRender as ProfilerOnRender,\n actualDuration,\n baseDuration,\n startTime,\n });\n }\n }\n}\n\nexport function renderWithRootRuntime<T>(\n runtime: RootRuntime,\n path: string,\n render: () => T,\n owner?: unknown,\n): T {\n const previousRuntime = hookRenderState.currentRuntime;\n const previousInstance = hookRenderState.currentInstance;\n let instance = runtime.instances.get(path);\n\n if (instance !== undefined && owner !== undefined && instance.owner !== owner) {\n cleanupInstance(instance);\n instance = undefined;\n }\n\n instance ??= {\n owner,\n path,\n hooks: [],\n hookIndex: 0,\n dirty: false,\n devToolsHookSuppressionDepth: 0,\n };\n instance.owner = owner;\n instance.path = path;\n runtime.instances.set(path, instance);\n indexInstanceKey(runtime, path);\n runtime.activeInstanceKeys?.add(path);\n instance.hookIndex = 0;\n instance.dirty = false;\n instance.disposed = false;\n delete instance.contextDependencies;\n if (hasInstalledDevToolsHook()) {\n instance.devToolsHooks = [];\n instance.devToolsHookTypes = [];\n } else {\n delete instance.devToolsHooks;\n delete instance.devToolsHookTypes;\n }\n instance.devToolsHookSuppressionDepth = 0;\n hookRenderState.currentRuntime = runtime;\n hookRenderState.currentInstance = instance;\n\n try {\n return withContextReadObserver((context, value) => {\n (instance.contextDependencies ??= new Map()).set(context, value);\n }, render);\n } finally {\n hookRenderState.currentRuntime = previousRuntime;\n hookRenderState.currentInstance = previousInstance;\n }\n}\n\nexport function hasChangedContextDependency(\n runtime: RootRuntime,\n keys: readonly string[],\n): boolean {\n for (const key of keys) {\n const dependencies = runtime.instances.get(key)?.contextDependencies;\n\n if (dependencies === undefined) {\n continue;\n }\n\n for (const [context, value] of dependencies) {\n if (!Object.is(readContextValue(context), value)) {\n return true;\n }\n }\n }\n\n return false;\n}\n\nexport function hasContextDependency(\n runtime: RootRuntime,\n keys: readonly string[],\n): boolean {\n return keys.some((key) => runtime.instances.get(key)?.contextDependencies !== undefined);\n}\n\nexport function collectRuntimeInstanceKeys(runtime: RootRuntime, prefix: string): string[] {\n const keys = runtime.instanceKeysByPrefix.get(prefix);\n\n if (keys === undefined) {\n return [];\n }\n\n const activeKeys: string[] = [];\n\n for (const key of keys) {\n if (runtime.instances.has(key)) {\n activeKeys.push(key);\n }\n }\n\n return activeKeys;\n}\n\nexport function getDevToolsHookState(\n runtime: RootRuntime,\n path: string,\n): DevToolsHookState | undefined {\n const instance = runtime.instances.get(path);\n\n if (\n instance === undefined ||\n instance.devToolsHooks === undefined ||\n instance.devToolsHookTypes === undefined\n ) {\n return undefined;\n }\n\n return {\n hooks: [...instance.devToolsHooks],\n hookTypes: [...instance.devToolsHookTypes],\n };\n}\n\nexport function renderWithStrictMode<T>(\n runtime: RootRuntime,\n render: () => T,\n): T {\n runtime.strictModeDepth += 1;\n\n try {\n return render();\n } finally {\n runtime.strictModeDepth -= 1;\n }\n}\n\nexport function renderWithStrictModeMemoCapture<T>(\n runtime: RootRuntime,\n render: () => T,\n): { result: T; memoValues: readonly unknown[]; memoValuesByHook: ReadonlyMap<string, unknown> } {\n const previousCapture = runtime.strictMemoCapture;\n const previousCaptureByHook = runtime.strictMemoCaptureByHook;\n runtime.strictMemoCapture = [];\n runtime.strictMemoCaptureByHook = new Map();\n\n try {\n const result = renderWithStrictMode(runtime, render);\n return {\n result,\n memoValues: runtime.strictMemoCapture,\n memoValuesByHook: runtime.strictMemoCaptureByHook,\n };\n } finally {\n runtime.strictMemoCapture = previousCapture;\n runtime.strictMemoCaptureByHook = previousCaptureByHook;\n }\n}\n\nexport function renderStrictModeReplay<T>(\n runtime: RootRuntime,\n memoValues: readonly unknown[],\n memoValuesByHook: ReadonlyMap<string, unknown>,\n render: () => T,\n): T {\n const previousReplay = runtime.strictMemoReplay;\n const previousReplayByHook = runtime.strictMemoReplayByHook;\n runtime.strictReplayDepth += 1;\n runtime.strictMemoReplay = { values: memoValues, index: 0 };\n runtime.strictMemoReplayByHook = memoValuesByHook;\n\n try {\n return render();\n } finally {\n runtime.strictMemoReplay = previousReplay;\n runtime.strictMemoReplayByHook = previousReplayByHook;\n runtime.strictReplayDepth -= 1;\n }\n}\n\nexport function takeRuntimeSnapshot(runtime: RootRuntime): RuntimeSnapshot {\n return {\n instanceKeys: new Set(runtime.instances.keys()),\n portalContainers: new Set(runtime.portalContainers),\n portalNodes: clonePortalNodes(runtime.portalNodes),\n pendingInsertionEffectsLength: runtime.pendingInsertionEffects.length,\n pendingImperativeHandleEffectsLength: runtime.pendingImperativeHandleEffects.length,\n pendingLayoutEffectsLength: runtime.pendingLayoutEffects.length,\n pendingEffectsLength: runtime.pendingEffects.length,\n pendingProfilerCommitsLength: runtime.pendingProfilerCommits.length,\n profilerBaseDurations: new Map(runtime.profilerBaseDurations),\n idCounter: runtime.idCounter,\n identifierPrefix: runtime.identifierPrefix,\n idMode: runtime.idMode,\n strictModeDepth: runtime.strictModeDepth,\n strictReplayDepth: runtime.strictReplayDepth,\n strictMemoCapture: runtime.strictMemoCapture,\n strictMemoCaptureByHook: runtime.strictMemoCaptureByHook,\n strictMemoReplay: runtime.strictMemoReplay,\n strictMemoReplayByHook: runtime.strictMemoReplayByHook,\n profilerFlushDepth: runtime.profilerFlushDepth,\n };\n}\n\nexport function restoreRuntimeSnapshot(\n runtime: RootRuntime,\n snapshot: RuntimeSnapshot,\n): void {\n runtime.pendingInsertionEffects.length = snapshot.pendingInsertionEffectsLength;\n runtime.pendingImperativeHandleEffects.length = snapshot.pendingImperativeHandleEffectsLength;\n runtime.pendingLayoutEffects.length = snapshot.pendingLayoutEffectsLength;\n runtime.pendingEffects.length = snapshot.pendingEffectsLength;\n runtime.pendingProfilerCommits.length = snapshot.pendingProfilerCommitsLength;\n runtime.profilerBaseDurations = new Map(snapshot.profilerBaseDurations);\n runtime.idCounter = snapshot.idCounter;\n runtime.identifierPrefix = snapshot.identifierPrefix;\n runtime.idMode = snapshot.idMode;\n runtime.strictModeDepth = snapshot.strictModeDepth;\n runtime.strictReplayDepth = snapshot.strictReplayDepth;\n runtime.strictMemoCapture = snapshot.strictMemoCapture;\n runtime.strictMemoCaptureByHook = snapshot.strictMemoCaptureByHook;\n runtime.strictMemoReplay = snapshot.strictMemoReplay;\n runtime.strictMemoReplayByHook = snapshot.strictMemoReplayByHook;\n runtime.profilerFlushDepth = snapshot.profilerFlushDepth;\n\n for (const key of runtime.instances.keys()) {\n if (!snapshot.instanceKeys.has(key)) {\n runtime.instances.delete(key);\n }\n }\n\n clearRuntimePortalNodesExcept(runtime, snapshot.portalNodes);\n runtime.portalContainers.clear();\n for (const container of snapshot.portalContainers) {\n runtime.portalContainers.add(container);\n }\n runtime.portalNodes = clonePortalNodes(snapshot.portalNodes);\n}\n\nexport function clearRuntimePortalNodes(runtime: RootRuntime): void {\n for (const [container, nodes] of runtime.portalNodes) {\n for (const node of nodes) {\n removeChildIfPresent(container, node);\n }\n }\n\n runtime.portalNodes.clear();\n runtime.portalContainers.clear();\n}\n\nfunction clearRuntimePortalNodesExcept(\n runtime: RootRuntime,\n preserved: Map<Element, Set<Node>>,\n): void {\n for (const [container, nodes] of runtime.portalNodes) {\n const preservedNodes = preserved.get(container);\n\n for (const node of nodes) {\n if (preservedNodes?.has(node) !== true) {\n removeChildIfPresent(container, node);\n }\n }\n }\n}\n\nfunction clonePortalNodes(source: Map<Element, Set<Node>>): Map<Element, Set<Node>> {\n const clone = new Map<Element, Set<Node>>();\n\n for (const [container, nodes] of source) {\n clone.set(container, new Set(nodes));\n }\n\n return clone;\n}\n\n/** Stores component-local state and returns the current value with an updater. */\nexport function useState<T>(\n initial: T | (() => T),\n): [T, (value: T | ((previous: T) => T)) => void] {\n const runtime = requireRuntime();\n const instance = requireInstance();\n const index = instance.hookIndex;\n instance.hookIndex += 1;\n\n let slot = instance.hooks[index];\n\n if (slot === undefined) {\n slot = {\n kind: \"state\",\n value: typeof initial === \"function\" ? (initial as () => T)() : initial,\n };\n instance.hooks[index] = slot;\n }\n\n if (slot.kind !== \"state\") {\n throw new Error(\"Hook order changed between renders.\");\n }\n\n const setState = (value: T | ((previous: T) => T)): void => {\n const previousValue = slot.value;\n const nextValue =\n typeof value === \"function\"\n ? (value as (previous: T) => T)(slot.value as T)\n : value;\n\n if (Object.is(slot.value, nextValue)) {\n return;\n }\n\n if (hookRenderState.hostCommitDepth > 0 && !Object.hasOwn(slot, \"hostCommitValue\")) {\n slot.hostCommitValue = previousValue;\n }\n\n slot.value = nextValue;\n const canUseDirectTextBinding =\n hookRenderState.hostCommitDepth === 0 &&\n hookRenderState.currentRuntime !== runtime &&\n hookRenderState.currentInstance !== instance &&\n runtime.effectFlushPhase === undefined &&\n eventBatchDepth === 0 &&\n transitionDepth === 0 &&\n optionsAllowDirectTextBinding(value) &&\n updateDirectTextBinding(slot.textBinding, nextValue);\n\n if (canUseDirectTextBinding) {\n return;\n }\n\n if (hookRenderState.hostCommitDepth > 0) {\n updateHostCommitDirtyState(instance);\n hookRenderState.queuedHostCommitRerenders.add(runtime);\n return;\n }\n\n scheduleInstanceUpdate(runtime, instance, { deferSync: typeof value === \"function\" });\n };\n\n recordDevToolsHook(\"useState\", {\n kind: \"state\",\n value: slot.value,\n });\n\n const result = [slot.value as T, setState] as [\n T,\n (value: T | ((previous: T) => T)) => void,\n ] & Record<PropertyKey, unknown>;\n result[REACTIVE_TEXT_BINDING_META] = getStateTextBinding(slot);\n return result;\n}\n\nexport function subscribeReactiveTextBinding(binding: unknown, node: Text): void {\n if (!isReactiveTextBinding(binding)) {\n clearReactiveTextBinding(node);\n return;\n }\n\n const previous = reactiveTextBindingsByNode.get(node);\n\n if (previous !== undefined && previous !== binding) {\n previous.subscribers.delete(node);\n }\n\n reactiveTextBindingsByNode.set(node, binding);\n binding.subscribers.add(node);\n}\n\nfunction clearReactiveTextBinding(node: Text): void {\n const previous = reactiveTextBindingsByNode.get(node);\n\n if (previous === undefined) {\n return;\n }\n\n previous.subscribers.delete(node);\n reactiveTextBindingsByNode.delete(node);\n}\n\nfunction getStateTextBinding(slot: Extract<HookSlot, { kind: \"state\" }>): ReactiveTextBinding {\n slot.textBinding ??= {\n value: slot.value,\n subscribers: new Set(),\n };\n slot.textBinding.value = slot.value;\n return slot.textBinding;\n}\n\nfunction optionsAllowDirectTextBinding(value: unknown): boolean {\n return typeof value !== \"function\";\n}\n\nfunction updateDirectTextBinding(binding: ReactiveTextBinding | undefined, value: unknown): boolean {\n if (binding === undefined || binding.subscribers.size === 0) {\n return false;\n }\n\n let updated = false;\n const nextText = String(value);\n\n for (const node of binding.subscribers) {\n if (node.parentNode === null) {\n binding.subscribers.delete(node);\n reactiveTextBindingsByNode.delete(node);\n continue;\n }\n\n if (node.data !== nextText) {\n node.data = nextText;\n }\n updated = true;\n }\n\n binding.value = value;\n return updated;\n}\n\nfunction isReactiveTextBinding(value: unknown): value is ReactiveTextBinding {\n return (\n typeof value === \"object\" &&\n value !== null &&\n \"subscribers\" in value &&\n (value as { subscribers?: unknown }).subscribers instanceof Set\n );\n}\n\n/** Stores reducer-managed component state and returns the current state with a dispatch function. */\nexport function useReducer<TState, TAction, TInitial = TState>(\n reducer: (state: TState, action: TAction) => TState,\n initialArg: TInitial,\n init?: (initialArg: TInitial) => TState,\n): [TState, (action: TAction) => void] {\n const [state, setState] = runWithoutDevToolsHookTracking(() =>\n useState<TState>(() =>\n init === undefined ? (initialArg as unknown as TState) : init(initialArg),\n ),\n );\n const reducerRef = runWithoutDevToolsHookTracking(() => useRef(reducer));\n const stateRef = runWithoutDevToolsHookTracking(() => useRef(state));\n const dispatchRef = runWithoutDevToolsHookTracking(() =>\n useRef<((action: TAction) => void) | undefined>(\n undefined,\n )\n );\n reducerRef.current = reducer;\n stateRef.current = state;\n\n if (dispatchRef.current === undefined) {\n dispatchRef.current = (action: TAction): void => {\n const nextState = reducerRef.current(stateRef.current, action);\n stateRef.current = nextState;\n setState(nextState);\n };\n }\n\n recordDevToolsHook(\"useReducer\", {\n kind: \"reducer\",\n value: state,\n });\n\n return [state, dispatchRef.current];\n}\n\n/** Returns a stable mutable ref object for the component instance. */\nexport function useRef<T>(initial: T): { current: T } {\n const instance = requireInstance();\n const index = instance.hookIndex;\n instance.hookIndex += 1;\n\n let slot = instance.hooks[index];\n\n if (slot === undefined) {\n slot = { kind: \"ref\", value: { current: initial } };\n instance.hooks[index] = slot;\n }\n\n if (slot.kind !== \"ref\") {\n throw new Error(\"Hook order changed between renders.\");\n }\n\n recordDevToolsHook(\"useRef\", {\n kind: \"ref\",\n value: slot.value,\n });\n\n return slot.value as { current: T };\n}\n\n/** Returns a stable id string that matches server and client rendering. */\nexport function useId(): string {\n const runtime = requireRuntime();\n const instance = requireInstance();\n const idSlotKey = `${instance.path}:${instance.hookIndex}`;\n const idRef = runWithoutDevToolsHookTracking(() =>\n useRef<string | undefined>(undefined)\n );\n\n if (idRef.current === undefined) {\n const hydratedId = runtime.idMode === \"client\"\n ? hydratedIdsByRuntime.get(runtime)?.get(idSlotKey)\n : undefined;\n\n if (hydratedId !== undefined) {\n idRef.current = hydratedId;\n } else {\n const mode = runtime.idMode === \"server\" ? \"R\" : \"r\";\n idRef.current = `_${runtime.identifierPrefix}${mode}_${runtime.idCounter}_`;\n runtime.idCounter += 1;\n\n if (runtime.idMode === \"server\") {\n const hydratedIds = hydratedIdsByRuntime.get(runtime) ?? new Map<string, string>();\n hydratedIds.set(idSlotKey, idRef.current);\n hydratedIdsByRuntime.set(runtime, hydratedIds);\n }\n }\n }\n\n recordDevToolsHook(\"useId\", {\n kind: \"id\",\n value: idRef.current,\n });\n\n return idRef.current;\n}\n\n/** Assigns a custom imperative handle to a forwarded ref. */\nexport function useImperativeHandle<T>(\n ref: unknown,\n create: () => T,\n deps?: readonly unknown[],\n): void {\n runWithoutDevToolsHookTracking(() =>\n useEffectImpl(\"imperative-handle\", () => {\n const handle = create();\n assignRef(ref, handle);\n return () => {\n assignRef(ref, null);\n };\n }, deps === undefined ? undefined : [ref, ...deps])\n );\n recordDevToolsHook(\"useImperativeHandle\", deps === undefined\n ? { kind: \"imperative-handle\" }\n : { kind: \"imperative-handle\", deps });\n}\n\n/** Memoizes a computed value until its dependency list changes. */\nexport function useMemo<T>(factory: () => T, deps?: readonly unknown[]): T {\n const runtime = requireRuntime();\n const instance = requireInstance();\n const index = instance.hookIndex;\n instance.hookIndex += 1;\n\n let slot = instance.hooks[index];\n\n if (slot !== undefined && slot.kind !== \"memo\") {\n throw new Error(\"Hook order changed between renders.\");\n }\n\n let value: unknown;\n const shouldRecompute =\n slot === undefined ||\n deps === undefined ||\n slot.deps === undefined ||\n !areHookInputsEqual(deps, slot.deps);\n\n if (runtime.strictReplayDepth > 0) {\n const replayValue = factory();\n if (slot === undefined) {\n slot =\n deps === undefined\n ? { kind: \"memo\", value: replayValue }\n : { kind: \"memo\", value: replayValue, deps };\n instance.hooks[index] = slot;\n }\n const hookKey = getStrictMemoHookKey(instance, index);\n const replayByHook = runtime.strictMemoReplayByHook;\n const replay = runtime.strictMemoReplay;\n value = replayByHook?.has(hookKey) === true\n ? replayByHook.get(hookKey)\n : replay === undefined || replay.index >= replay.values.length\n ? slot.value\n : replay.values[replay.index++];\n } else if (shouldRecompute) {\n value = factory();\n slot =\n deps === undefined\n ? { kind: \"memo\", value }\n : { kind: \"memo\", value, deps };\n instance.hooks[index] = slot;\n } else {\n value = slot!.value;\n }\n\n if (runtime.strictModeDepth > 0 && runtime.strictReplayDepth === 0) {\n runtime.strictMemoCapture?.push(value);\n runtime.strictMemoCaptureByHook?.set(getStrictMemoHookKey(instance, index), value);\n }\n\n const memoSlot = slot;\n if (memoSlot === undefined) {\n throw new Error(\"Hook order changed between renders.\");\n }\n\n recordDevToolsHook(\"useMemo\", memoSlot.deps === undefined\n ? { kind: \"memo\", value }\n : { kind: \"memo\", value, deps: memoSlot.deps });\n\n return value as T;\n}\n\nfunction getStrictMemoHookKey(\n instance: ComponentInstance,\n index: number,\n): string {\n return `${instance.path}:${getStrictMemoOwnerKey(instance.owner)}:${index}`;\n}\n\nexport function __getStrictMemoOwnerKeyForTesting(owner: unknown): string {\n return getStrictMemoOwnerKey(owner);\n}\n\nfunction getStrictMemoOwnerKey(owner: unknown): string {\n if ((typeof owner === \"object\" && owner !== null) || typeof owner === \"function\") {\n const objectOwner = owner as object;\n let ownerId = strictMemoObjectOwnerIds.get(objectOwner);\n if (ownerId === undefined) {\n ownerId = strictMemoOwnerId++;\n strictMemoObjectOwnerIds.set(objectOwner, ownerId);\n }\n return `o:${ownerId}`;\n }\n\n if (typeof owner === \"symbol\") {\n const globalKey = Symbol.keyFor(owner);\n return globalKey === undefined\n ? `p:symbol:${String(owner)}`\n : `p:symbol-global:${globalKey}`;\n }\n\n return `p:${typeof owner}:${String(owner)}`;\n}\n\nfunction assignRef<T>(ref: unknown, value: T | null): void {\n if (typeof ref === \"function\") {\n ref(value);\n return;\n }\n\n if (typeof ref === \"object\" && ref !== null && \"current\" in ref) {\n (ref as { current: T | null }).current = value;\n }\n}\n\nfunction recordDevToolsHook(type: string, value: DevToolsHookValue): void {\n const instance = hookRenderState.currentInstance;\n\n if (\n instance === undefined ||\n instance.devToolsHookSuppressionDepth > 0 ||\n instance.devToolsHooks === undefined ||\n instance.devToolsHookTypes === undefined\n ) {\n return;\n }\n\n instance.devToolsHookTypes.push(type);\n instance.devToolsHooks.push(value);\n}\n\nfunction hasInstalledDevToolsHook(): boolean {\n return typeof (globalThis as {\n __REACT_DEVTOOLS_GLOBAL_HOOK__?: { inject?: unknown } | undefined;\n }).__REACT_DEVTOOLS_GLOBAL_HOOK__?.inject === \"function\";\n}\n\nfunction runWithoutDevToolsHookTracking<T>(callback: () => T): T {\n const instance = requireInstance();\n instance.devToolsHookSuppressionDepth += 1;\n\n try {\n return callback();\n } finally {\n instance.devToolsHookSuppressionDepth -= 1;\n }\n}\n\n/** Memoizes a callback reference until its dependency list changes. */\nexport function useCallback<T extends (...args: never[]) => unknown>(\n callback: T,\n deps?: readonly unknown[],\n): T {\n const value = runWithoutDevToolsHookTracking(() => useMemo(() => callback, deps));\n recordDevToolsHook(\"useCallback\", deps === undefined\n ? { kind: \"callback\", value }\n : { kind: \"callback\", value, deps });\n return value;\n}\n\n/** Records a value for React DevTools hook inspection. */\nexport function useDebugValue(_value: unknown, _format?: (value: unknown) => unknown): void {\n const instance = requireInstance();\n const index = instance.hookIndex;\n instance.hookIndex += 1;\n\n const value = _format === undefined ? _value : _format(_value);\n let slot = instance.hooks[index];\n\n if (slot !== undefined && slot.kind !== \"debug\") {\n throw new Error(\"Hook order changed between renders.\");\n }\n\n if (slot === undefined) {\n slot = { kind: \"debug\", value };\n instance.hooks[index] = slot;\n recordDevToolsHook(\"useDebugValue\", {\n kind: \"debug\",\n value,\n });\n return;\n }\n\n slot.value = value;\n recordDevToolsHook(\"useDebugValue\", {\n kind: \"debug\",\n value,\n });\n}\n\n/** Creates a stable event callback that always calls the latest implementation. */\nexport function useEffectEvent<TArgs extends unknown[], TResult>(\n callback: (...args: TArgs) => TResult,\n): (...args: TArgs) => TResult {\n const ref = runWithoutDevToolsHookTracking(() => useRef(callback));\n ref.current = callback;\n\n const event = runWithoutDevToolsHookTracking(() =>\n useCallback((...args: TArgs) => ref.current(...args), [])\n );\n recordDevToolsHook(\"useEffectEvent\", {\n kind: \"callback\",\n value: event,\n deps: [],\n });\n return event;\n}\n\n/** Runs an effect after the rendered output has been committed. */\nexport function useEffect(\n callback: EffectCallback,\n deps?: readonly unknown[],\n): void {\n useEffectImpl(\"normal\", callback, deps);\n recordDevToolsHook(\"useEffect\", deps === undefined\n ? { kind: \"effect\", effectKind: \"normal\" }\n : { kind: \"effect\", effectKind: \"normal\", deps });\n}\n\n/** Runs an insertion effect before layout effects are flushed. */\nexport function useInsertionEffect(\n callback: EffectCallback,\n deps?: readonly unknown[],\n): void {\n useEffectImpl(\"insertion\", callback, deps);\n recordDevToolsHook(\"useInsertionEffect\", deps === undefined\n ? { kind: \"effect\", effectKind: \"insertion\" }\n : { kind: \"effect\", effectKind: \"insertion\", deps });\n}\n\n/** Runs a layout effect after DOM mutations and before normal effects. */\nexport function useLayoutEffect(\n callback: EffectCallback,\n deps?: readonly unknown[],\n): void {\n useEffectImpl(\"layout\", callback, deps);\n recordDevToolsHook(\"useLayoutEffect\", deps === undefined\n ? { kind: \"effect\", effectKind: \"layout\" }\n : { kind: \"effect\", effectKind: \"layout\", deps });\n}\n\n/** Subscribes to an external store with snapshot checks for consistent rendering. */\nexport function useSyncExternalStore<T>(\n subscribe: (listener: () => void) => () => void,\n getSnapshot: () => T,\n getServerSnapshot?: () => T,\n): T {\n const runtime = requireRuntime();\n const instance = requireInstance();\n const index = instance.hookIndex;\n instance.hookIndex += 1;\n let slot = instance.hooks[index];\n\n if (slot === undefined) {\n slot = {\n kind: \"store\",\n value: runtime.idMode === \"server\" && getServerSnapshot !== undefined\n ? getServerSnapshot()\n : getSnapshot(),\n };\n instance.hooks[index] = slot;\n }\n\n if (slot.kind !== \"store\") {\n throw new Error(\"Hook order changed between renders.\");\n }\n\n const isHydrationMount =\n runtime.idMode === \"server\" && slot.hasMounted !== true && getServerSnapshot !== undefined;\n const currentSnapshot = isHydrationMount ? slot.value as T : getSnapshot();\n\n if (!Object.is(slot.value, currentSnapshot)) {\n slot.value = currentSnapshot;\n }\n\n if (!isHydrationMount) {\n recordExternalStoreCheck(getSnapshot, currentSnapshot);\n }\n\n runWithoutDevToolsHookTracking(() => useEffect(() => {\n const checkForUpdates = (): void => {\n if (instance.disposed === true) {\n return;\n }\n\n const nextSnapshot = getSnapshot();\n\n if (!Object.is(slot.value, nextSnapshot)) {\n slot.value = nextSnapshot;\n instance.dirty = true;\n runtime.externalStoreUpdate = true;\n if (runtime.profilerFlushDepth > 0) {\n hookRenderState.queuedEffectFlushRerenders.add(runtime);\n return;\n }\n runtime.rerender(\"sync\");\n }\n };\n\n if (slot.hasMounted !== true) {\n checkForUpdates();\n }\n const unsubscribe = subscribe(checkForUpdates);\n slot.hasMounted = true;\n return () => {\n unsubscribe();\n };\n }, [subscribe, getSnapshot]));\n\n recordDevToolsHook(\"useSyncExternalStore\", {\n kind: \"store\",\n value: slot.value,\n });\n\n return slot.value as T;\n}\n\n/** Tracks state and pending status for an action that receives the previous state. */\nexport function useActionState<TState, TPayload>(\n action: (previousState: TState, payload: TPayload) => TState | Promise<TState>,\n initialState: TState,\n): [TState, (payload: TPayload) => void, boolean] {\n const runtime = requireRuntime();\n const instance = requireInstance();\n const index = instance.hookIndex;\n instance.hookIndex += 1;\n let slot = instance.hooks[index];\n\n if (slot !== undefined && slot.kind !== \"action-state\") {\n throw new Error(\"Hook order changed between renders.\");\n }\n\n if (slot === undefined) {\n slot = {\n kind: \"action-state\",\n state: initialState,\n pendingCount: 0,\n action: action as (previousState: unknown, payload: unknown) => unknown,\n };\n instance.hooks[index] = slot;\n }\n\n if (\"error\" in slot) {\n throw slot.error;\n }\n\n slot.action = action as (previousState: unknown, payload: unknown) => unknown;\n\n if (slot.dispatch === undefined) {\n slot.dispatch = (payload: unknown): void => {\n runActionStateDispatch(slot, runtime, instance, payload);\n };\n }\n\n recordDevToolsHook(\"useActionState\", {\n kind: \"state\",\n value: slot.state,\n });\n\n return [\n slot.state as TState,\n slot.dispatch as (payload: TPayload) => void,\n slot.pendingCount > 0,\n ];\n}\n\n/** Returns an optimistic state value and dispatcher layered on top of a base state. */\nexport function useOptimistic<TState, TPayload>(\n state: TState,\n update?: (state: TState, payload: TPayload) => TState,\n): [TState, (payload: TPayload) => void] {\n const runtime = requireRuntime();\n const instance = requireInstance();\n const index = instance.hookIndex;\n instance.hookIndex += 1;\n let slot = instance.hooks[index];\n const updateFn =\n update === undefined\n ? (_current: unknown, payload: unknown) => payload\n : update as (state: unknown, payload: unknown) => unknown;\n\n if (slot !== undefined && slot.kind !== \"optimistic\") {\n throw new Error(\"Hook order changed between renders.\");\n }\n\n if (slot === undefined) {\n slot = {\n kind: \"optimistic\",\n baseState: state,\n optimisticState: state,\n update: updateFn,\n };\n instance.hooks[index] = slot;\n }\n\n slot.update = updateFn;\n\n if (!Object.is(slot.baseState, state)) {\n slot.baseState = state;\n slot.optimisticState = state;\n }\n\n if (slot.dispatch === undefined) {\n slot.dispatch = (payload: unknown): void => {\n slot.optimisticState = slot.update(slot.optimisticState, payload);\n scheduleInstanceUpdate(runtime, instance);\n };\n }\n\n recordDevToolsHook(\"useOptimistic\", {\n kind: \"state\",\n value: slot.optimisticState,\n });\n\n return [slot.optimisticState as TState, slot.dispatch as (payload: TPayload) => void];\n}\n\n/** Reads a context-like value or suspends on a thenable until it resolves. */\nexport function use<T>(usable: PromiseLike<T> | unknown): T {\n if (isReactCompatContext(usable)) {\n return useContext(usable) as T;\n }\n\n if (isThenable(usable)) {\n return readThenable(usable as PromiseLike<T>);\n }\n\n return usable as T;\n}\n\n/** Memoizes a function within the currently active cache scope. */\nexport function cache<TArgs extends unknown[], TResult>(\n callback: (...args: TArgs) => TResult,\n): (...args: TArgs) => TResult {\n return (...args) => {\n const scope = getCurrentCacheScope();\n\n if (scope === undefined) {\n return callback(...args);\n }\n\n const leaf = getCacheLeaf(scope, callback, args);\n\n if (leaf.status === \"fulfilled\") {\n return leaf.value as TResult;\n }\n\n if (leaf.status === \"rejected\") {\n throw leaf.reason;\n }\n\n try {\n const value = callback(...args);\n leaf.status = \"fulfilled\";\n leaf.value = value;\n return value;\n } catch (error) {\n leaf.status = \"rejected\";\n leaf.reason = error;\n throw error;\n }\n };\n}\n\n/** Returns the abort signal for the currently active cache scope. */\nexport function cacheSignal(): AbortSignal | null {\n return getCurrentCacheScope()?.controller.signal ?? null;\n}\n\n/** Returns the current owner stack captured for cache diagnostics. */\nexport function captureOwnerStack(): string | null {\n const stack = getCurrentCacheScope()?.ownerStack ?? emptyCacheOwnerStack;\n return stack.length === 0 ? null : stack.join(\"\\n\");\n}\n\n/** Returns a callback placeholder for refreshing the current cache boundary. */\nexport function unstable_useCacheRefresh(): () => void {\n return useCallback(() => undefined, []);\n}\n\nexport function hasStableExternalStores(\n runtime: RootRuntime,\n): boolean {\n return runtime.externalStoreChecks.every((check) =>\n Object.is(check.getSnapshot(), check.value),\n );\n}\n\nfunction readThenable<T>(thenable: PromiseLike<T>): T {\n const record = thenable as PromiseLike<T> & {\n status?: \"pending\" | \"fulfilled\" | \"rejected\";\n value?: T;\n reason?: unknown;\n };\n\n if (record.status === \"fulfilled\") {\n return record.value as T;\n }\n\n if (record.status === \"rejected\") {\n throw record.reason;\n }\n\n if (record.status === undefined) {\n record.status = \"pending\";\n thenable.then(\n (value) => {\n if (record.status === \"pending\") {\n record.status = \"fulfilled\";\n record.value = value;\n }\n },\n (reason) => {\n if (record.status === \"pending\") {\n record.status = \"rejected\";\n record.reason = reason;\n }\n },\n );\n }\n\n throw thenable;\n}\n\n/** Callback body scheduled as transition work. */\nexport type TransitionScope = () => void;\n/** Function that schedules a transition scope. */\nexport type StartTransition = (scope: TransitionScope) => void;\n\n/** Schedules non-urgent updates produced inside a transition scope. */\nexport function startTransition(scope: TransitionScope): void {\n const context = {\n syncVersion,\n transitionVersion: ++transitionVersion,\n };\n\n runTransitionScope(scope, context);\n}\n\n/** Runs a callback while updates are batched at the requested event priority. */\nexport function runWithEventPriority<T>(\n priority: EventPriority,\n callback: () => T,\n): T {\n const previousPriority = currentEventPriority;\n currentEventPriority = priority;\n eventBatchDepth += 1;\n\n try {\n return callback();\n } finally {\n eventBatchDepth -= 1;\n currentEventPriority = previousPriority;\n\n if (eventBatchDepth === 0) {\n flushEventRerendersForPriority(priority);\n }\n }\n}\n\nexport function flushSyncUpdates<T>(callback: () => T): T {\n const previousEventBatchDepth = eventBatchDepth;\n const previousEventPriority = currentEventPriority;\n eventBatchDepth = 0;\n currentEventPriority = \"discrete\";\n\n try {\n const value = callback();\n // Reactive-core cell/computed updates flush in a scheduled microtask by\n // default; drain them here so flushSync guarantees committed DOM on return\n // for compiled (cell-driven) components as well as compat hook state.\n flushPendingComputed();\n flushQueuedComputations();\n flushQueuedEventRerenders();\n return value;\n } finally {\n eventBatchDepth = previousEventBatchDepth;\n currentEventPriority = previousEventPriority;\n }\n}\n\nexport function runWithHostCommit<T>(callback: () => T): T {\n hookRenderState.hostCommitDepth += 1;\n try {\n return callback();\n } finally {\n hookRenderState.hostCommitDepth -= 1;\n }\n}\n\n/** Returns transition pending state and a function that starts transition work. */\nexport function useTransition(): [boolean, StartTransition] {\n const instance = requireInstance();\n const [pending, setPending] = runWithoutDevToolsHookTracking(() => useState(false));\n const startTransitionWithPending: StartTransition = (scope) => {\n setPending(true);\n const context = {\n syncVersion,\n transitionVersion: ++transitionVersion,\n };\n scheduleCallback(\"low\", () => {\n if (instance.disposed === true) {\n return;\n }\n\n if (!isTransitionContextCurrent(context)) {\n setPending(false);\n return;\n }\n\n runTransitionScope(() => {\n scope();\n if (instance.disposed === true) {\n return;\n }\n setPending(false);\n }, context);\n });\n };\n\n recordDevToolsHook(\"useTransition\", {\n kind: \"transition\",\n value: pending,\n });\n\n return [\n pending,\n startTransitionWithPending,\n ];\n}\n\n/** Defers a value update so urgent renders can commit first. */\nexport function useDeferredValue<T>(value: T, initialValue?: T): T {\n const [deferredValue, setDeferredValue] = runWithoutDevToolsHookTracking(() =>\n useState(arguments.length > 1 ? (initialValue as T) : value)\n );\n\n runWithoutDevToolsHookTracking(() =>\n useEffect(() => {\n if (Object.is(deferredValue, value)) {\n return;\n }\n\n startTransition(() => {\n setDeferredValue(value);\n });\n }, [value, deferredValue])\n );\n\n const currentValue = Object.is(deferredValue, value) ? value : deferredValue;\n\n recordDevToolsHook(\"useDeferredValue\", {\n kind: \"deferred\",\n value: currentValue,\n });\n\n return currentValue;\n}\n\nfunction runTransitionScope(\n scope: TransitionScope,\n context: TransitionContext,\n): void {\n transitionDepth += 1;\n const previousContext = currentTransitionContext;\n currentTransitionContext = context;\n\n try {\n scope();\n } finally {\n currentTransitionContext = previousContext;\n transitionDepth -= 1;\n }\n}\n\nfunction queueTransitionRerender(\n runtime: RootRuntime,\n context: TransitionContext,\n): void {\n queuedTransitionRerenders.set(runtime, context);\n\n if (transitionRerenderScheduled) {\n return;\n }\n\n transitionRerenderScheduled = true;\n scheduleCallback(\"low\", flushQueuedTransitionRerenders);\n}\n\nfunction queueEventRerender(runtime: RootRuntime): void {\n queuedEventRerenders.add(runtime);\n}\n\nfunction queueAutomaticRerender(runtime: RootRuntime): void {\n queueEventRerender(runtime);\n\n if (automaticRerenderScheduled) {\n return;\n }\n\n automaticRerenderScheduled = true;\n queueMicrotask(() => {\n automaticRerenderScheduled = false;\n flushQueuedEventRerenders(\"sync\");\n });\n}\n\nfunction flushEventRerendersForPriority(priority: EventPriority): void {\n if (priority === \"discrete\") {\n flushQueuedEventRerenders(\"sync\");\n return;\n }\n\n if (eventRerenderScheduled || queuedEventRerenders.size === 0) {\n return;\n }\n\n eventRerenderScheduled = true;\n scheduleCallback(priority === \"continuous\" ? \"normal\" : \"low\", () => {\n eventRerenderScheduled = false;\n flushQueuedEventRerenders(\n priority === \"continuous\" ? \"continuous\" : \"sync\",\n );\n });\n}\n\nfunction flushQueuedEventRerenders(priority: RenderPriority = \"sync\"): void {\n const runtimes = Array.from(queuedEventRerenders);\n queuedEventRerenders.clear();\n\n for (const runtime of runtimes) {\n runtime.rerender(priority);\n }\n}\n\nfunction flushQueuedTransitionRerenders(): void {\n transitionRerenderScheduled = false;\n const entries = Array.from(queuedTransitionRerenders.entries());\n queuedTransitionRerenders.clear();\n\n for (const [runtime, context] of entries) {\n if (isTransitionContextCurrent(context)) {\n runtime.rerender(\"transition\");\n }\n }\n}\n\nfunction isTransitionContextCurrent(context: TransitionContext): boolean {\n return (\n context.syncVersion === syncVersion &&\n context.transitionVersion === transitionVersion\n );\n}\n\nfunction useEffectImpl(\n effectKind: \"insertion\" | \"imperative-handle\" | \"layout\" | \"normal\",\n callback: EffectCallback,\n deps?: readonly unknown[],\n): void {\n const runtime = requireRuntime();\n const instance = requireInstance();\n const index = instance.hookIndex;\n instance.hookIndex += 1;\n\n let slot = instance.hooks[index];\n\n if (slot !== undefined && slot.kind !== \"effect\") {\n throw new Error(\"Hook order changed between renders.\");\n }\n\n const shouldRun =\n slot === undefined ||\n slot.mounted !== true ||\n deps === undefined ||\n slot.deps === undefined ||\n !areHookInputsEqual(deps, slot.deps);\n\n if (slot === undefined) {\n slot =\n deps === undefined\n ? { kind: \"effect\", effectKind, callback }\n : { kind: \"effect\", effectKind, callback, deps };\n instance.hooks[index] = slot;\n } else {\n slot.effectKind = effectKind;\n slot.callback = callback;\n slot.disposed = false;\n\n if (deps === undefined) {\n delete slot.deps;\n } else {\n slot.deps = deps;\n }\n }\n\n slot.strictReplay =\n (runtime.strictModeDepth > 0 || runtime.strictReplayDepth > 0) &&\n effectKind !== \"insertion\" &&\n effectKind !== \"imperative-handle\";\n\n if (shouldRun) {\n const queue =\n effectKind === \"insertion\"\n ? runtime.pendingInsertionEffects\n : effectKind === \"imperative-handle\"\n ? runtime.pendingImperativeHandleEffects\n : effectKind === \"layout\"\n ? runtime.pendingLayoutEffects\n : runtime.pendingEffects;\n queue.push({ slot });\n }\n}\n\nfunction recordExternalStoreCheck<T>(\n getSnapshot: () => T,\n value: T,\n): void {\n hookRenderState.currentRuntime?.externalStoreChecks.push({ getSnapshot, value });\n}\n\nfunction flushPendingEffects(queue: PendingEffect[]): PendingEffect[] {\n const pending = queue.splice(0);\n const strictReplay: PendingEffect[] = [];\n const runnable: { slot: Extract<HookSlot, { kind: \"effect\" }>; shouldReplay: boolean }[] = [];\n\n for (const { slot } of pending) {\n if (slot.disposed === true) {\n continue;\n }\n\n const shouldReplay = slot.strictReplay === true && slot.cleanup === undefined;\n slot.cleanup?.();\n runnable.push({ slot, shouldReplay });\n }\n\n for (const { slot, shouldReplay } of runnable) {\n if (slot.disposed === true) {\n continue;\n }\n\n const cleanup = slot.callback();\n\n if (typeof cleanup === \"function\") {\n slot.cleanup = cleanup;\n } else {\n delete slot.cleanup;\n }\n slot.mounted = true;\n\n if (shouldReplay) {\n strictReplay.push({ slot });\n }\n }\n\n return strictReplay;\n}\n\nfunction replayStrictEffects(effects: PendingEffect[]): void {\n for (const { slot } of effects) {\n if (slot.disposed === true) {\n continue;\n }\n\n const cleanup = slot.callback();\n\n if (typeof cleanup === \"function\") {\n slot.cleanup = cleanup;\n } else {\n delete slot.cleanup;\n }\n }\n}\n\nfunction flushProfilerCommits(\n runtime: RootRuntime,\n commits: PendingProfilerCommit[],\n): void {\n if (commits.length === 0) {\n return;\n }\n\n const commitTime = getCurrentTime();\n runtime.profilerFlushDepth += 1;\n\n try {\n for (const commit of commits) {\n commit.onRender(\n commit.id,\n commit.phase,\n commit.actualDuration,\n commit.baseDuration,\n commit.startTime,\n commitTime,\n );\n }\n } finally {\n runtime.profilerFlushDepth -= 1;\n }\n}\n\nfunction runActionStateDispatch(\n slot: Extract<HookSlot, { kind: \"action-state\" }>,\n runtime: RootRuntime,\n instance: ComponentInstance,\n payload: unknown,\n): void {\n let result: unknown;\n\n try {\n result = slot.action(slot.state, payload);\n } catch (error) {\n slot.error = error;\n scheduleInstanceUpdate(runtime, instance);\n return;\n }\n\n if (!isThenable(result)) {\n slot.state = result;\n scheduleInstanceUpdate(runtime, instance);\n return;\n }\n\n slot.pendingCount += 1;\n scheduleInstanceUpdate(runtime, instance);\n result.then(\n (nextState) => {\n slot.state = nextState;\n slot.pendingCount = Math.max(0, slot.pendingCount - 1);\n scheduleInstanceUpdate(runtime, instance);\n },\n (error) => {\n slot.error = error;\n slot.pendingCount = Math.max(0, slot.pendingCount - 1);\n scheduleInstanceUpdate(runtime, instance);\n },\n );\n}\n\nexport function scheduleRuntimeRerender(\n runtime: RootRuntime,\n options: { deferSync?: boolean } = {},\n): void {\n if (transitionDepth === 0) {\n syncVersion += 1;\n if (hookRenderState.hostCommitDepth > 0) {\n hookRenderState.queuedHostCommitRerenders.add(runtime);\n return;\n }\n if (runtime.effectFlushPhase !== undefined) {\n hookRenderState.queuedEffectFlushRerenders.add(runtime);\n return;\n }\n if (eventBatchDepth > 0) {\n queueEventRerender(runtime);\n return;\n }\n if (options.deferSync === true) {\n queueAutomaticRerender(runtime);\n return;\n }\n runtime.rerender(\"sync\");\n return;\n }\n\n if (currentTransitionContext !== undefined) {\n queueTransitionRerender(runtime, currentTransitionContext);\n }\n}\n\nfunction scheduleInstanceUpdate(\n runtime: RootRuntime,\n instance: ComponentInstance,\n options: { deferSync?: boolean } = {},\n): void {\n if (instance.disposed === true) {\n return;\n }\n\n instance.dirty = true;\n if (\n hookRenderState.currentRuntime === runtime &&\n hookRenderState.currentInstance === instance\n ) {\n runtime.renderPhaseUpdate = true;\n return;\n }\n\n scheduleRuntimeRerender(runtime, options);\n}\n\nfunction flushHostCommitRerenders(): void {\n if (\n hookRenderState.hostCommitDepth > 0 ||\n hookRenderState.queuedHostCommitRerenders.size === 0\n ) {\n return;\n }\n\n const runtimes = [...hookRenderState.queuedHostCommitRerenders];\n hookRenderState.queuedHostCommitRerenders.clear();\n for (const runtime of runtimes) {\n const hasDirtyInstance = Array.from(runtime.instances.values()).some(\n (instance) => instance.dirty,\n );\n clearHostCommitStateBaselines(runtime);\n\n if (hasDirtyInstance) {\n runtime.rerender(\"sync\");\n }\n }\n}\n\nfunction flushEffectFlushRerenders(): void {\n if (\n effectFlushRerenderDepth > 0 ||\n hookRenderState.queuedEffectFlushRerenders.size === 0\n ) {\n return;\n }\n\n effectFlushRerenderDepth += 1;\n try {\n for (\n let attempt = 0;\n attempt < 3 && hookRenderState.queuedEffectFlushRerenders.size > 0;\n attempt += 1\n ) {\n const runtimes = [...hookRenderState.queuedEffectFlushRerenders];\n hookRenderState.queuedEffectFlushRerenders.clear();\n for (const runtime of runtimes) {\n const hasDirtyInstance = Array.from(runtime.instances.values()).some(\n (instance) => instance.dirty,\n );\n\n if (hasDirtyInstance) {\n runtime.rerender(\"sync\");\n }\n }\n }\n hookRenderState.queuedEffectFlushRerenders.clear();\n } finally {\n effectFlushRerenderDepth -= 1;\n }\n}\n\nfunction updateHostCommitDirtyState(\n instance: ComponentInstance,\n): void {\n instance.dirty = instance.hooks.some(\n (slot) =>\n slot.kind === \"state\" &&\n Object.hasOwn(slot, \"hostCommitValue\") &&\n !Object.is(slot.hostCommitValue, slot.value),\n );\n}\n\nfunction clearHostCommitStateBaselines(runtime: RootRuntime): void {\n for (const instance of runtime.instances.values()) {\n for (const slot of instance.hooks) {\n if (slot.kind === \"state\") {\n delete slot.hostCommitValue;\n }\n }\n }\n}\n\nfunction getCacheLeaf(\n scope: CacheScope,\n callback: (...args: never[]) => unknown,\n args: readonly unknown[],\n): CacheTrieNode {\n let node = scope.functionCaches.get(callback);\n\n if (node === undefined) {\n node = createCacheTrieNode();\n scope.functionCaches.set(callback, node);\n }\n\n for (const arg of args) {\n node = getCacheChild(node, arg);\n }\n\n return node;\n}\n\nfunction getCacheChild(node: CacheTrieNode, key: unknown): CacheTrieNode {\n if ((typeof key === \"object\" && key !== null) || typeof key === \"function\") {\n const objectKey = key as object;\n let child = node.objectChildren.get(objectKey);\n\n if (child === undefined) {\n child = createCacheTrieNode();\n node.objectChildren.set(objectKey, child);\n }\n\n return child;\n }\n\n let child = node.primitiveChildren.get(key);\n\n if (child === undefined) {\n child = createCacheTrieNode();\n node.primitiveChildren.set(key, child);\n }\n\n return child;\n}\n\nfunction createCacheTrieNode(): CacheTrieNode {\n return {\n primitiveChildren: new Map(),\n objectChildren: new WeakMap(),\n };\n}\n\nfunction getCurrentCacheScope(): CacheScope | undefined {\n return hookRenderState.currentCacheScope ?? getGlobalCacheScope();\n}\n\nfunction getGlobalCacheScope(): CacheScope | undefined {\n return (globalThis as { [CACHE_SCOPE_SYMBOL]?: CacheScope })[CACHE_SCOPE_SYMBOL];\n}\n\nfunction setGlobalCacheScope(scope: CacheScope | undefined): void {\n if (scope === undefined) {\n delete (globalThis as { [CACHE_SCOPE_SYMBOL]?: CacheScope })[CACHE_SCOPE_SYMBOL];\n return;\n }\n\n (globalThis as { [CACHE_SCOPE_SYMBOL]?: CacheScope })[CACHE_SCOPE_SYMBOL] = scope;\n}\n\nfunction cleanupStrictEffects(effects: PendingEffect[]): void {\n for (const { slot } of effects) {\n if (slot.disposed !== true) {\n slot.cleanup?.();\n }\n }\n}\n\nfunction cleanupInactiveInstances(runtime: RootRuntime): void {\n const activeInstanceKeys = runtime.activeInstanceKeys;\n\n if (activeInstanceKeys === undefined) {\n return;\n }\n\n for (const [key, instance] of runtime.instances) {\n if (!activeInstanceKeys.has(key)) {\n cleanupInstance(instance);\n runtime.instances.delete(key);\n removeInstanceKeyFromIndex(runtime, key);\n }\n }\n}\n\nfunction indexInstanceKey(runtime: RootRuntime, key: string): void {\n for (const prefix of instanceKeyPrefixes(key)) {\n let keys = runtime.instanceKeysByPrefix.get(prefix);\n\n if (keys === undefined) {\n keys = new Set();\n runtime.instanceKeysByPrefix.set(prefix, keys);\n }\n\n keys.add(key);\n }\n}\n\nfunction removeInstanceKeyFromIndex(runtime: RootRuntime, key: string): void {\n for (const prefix of instanceKeyPrefixes(key)) {\n const keys = runtime.instanceKeysByPrefix.get(prefix);\n\n if (keys === undefined) {\n continue;\n }\n\n keys.delete(key);\n\n if (keys.size === 0) {\n runtime.instanceKeysByPrefix.delete(prefix);\n }\n }\n}\n\nfunction instanceKeyPrefixes(key: string): string[] {\n const parts = key.split(\".\");\n const prefixes: string[] = [];\n\n for (let index = 1; index <= parts.length; index += 1) {\n prefixes.push(parts.slice(0, index).join(\".\"));\n }\n\n return prefixes;\n}\n\nfunction cleanupInstance(instance: ComponentInstance): void {\n instance.disposed = true;\n for (const slot of instance.hooks) {\n if (slot?.kind === \"effect\") {\n slot.disposed = true;\n slot.mounted = false;\n slot.cleanup?.();\n delete slot.cleanup;\n }\n }\n}\n\nfunction requireRuntime(): RootRuntime {\n if (hookRenderState.currentRuntime === undefined) {\n throw new Error(\"Hooks can only be called while rendering.\");\n }\n\n return hookRenderState.currentRuntime;\n}\n\nfunction requireInstance(): ComponentInstance {\n if (hookRenderState.currentInstance === undefined) {\n throw new Error(\"Hooks can only be called while rendering.\");\n }\n\n return hookRenderState.currentInstance;\n}\n\nfunction areHookInputsEqual(\n nextDeps: readonly unknown[],\n previousDeps: readonly unknown[],\n): boolean {\n if (nextDeps.length !== previousDeps.length) {\n return false;\n }\n\n for (let index = 0; index < nextDeps.length; index += 1) {\n if (!Object.is(nextDeps[index], previousDeps[index])) {\n return false;\n }\n }\n\n return true;\n}\n\nfunction getCurrentTime(): number {\n return typeof performance === \"undefined\" ? Date.now() : performance.now();\n}\n"]}