@askrjs/askr 0.0.51 → 0.0.52

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 (593) hide show
  1. package/dist/bench/components/benchmark-row.d.ts +2 -2
  2. package/dist/bench/components/benchmark-row.js +0 -2
  3. package/dist/bench/components/benchmark-table.js +0 -2
  4. package/dist/benchmark.d.ts +1 -2
  5. package/dist/benchmark.js +2 -4
  6. package/dist/bin/askr-ssg.d.ts +1 -2
  7. package/dist/bin/askr-ssg.js +21 -6
  8. package/dist/boot/hydration.js +10 -11
  9. package/dist/boot/index.d.ts +1 -2
  10. package/dist/boot/index.js +20 -11
  11. package/dist/boot/root-lifecycle.d.ts +6 -3
  12. package/dist/boot/root-lifecycle.js +14 -10
  13. package/dist/boot/route-startup.js +13 -4
  14. package/dist/boot/types.d.ts +1 -2
  15. package/dist/common/attr-names.js +0 -2
  16. package/dist/common/component.d.ts +1 -2
  17. package/dist/common/control.d.ts +1 -2
  18. package/dist/common/control.js +0 -2
  19. package/dist/common/dom-range.d.ts +13 -0
  20. package/dist/common/env.js +1 -7
  21. package/dist/common/error-boundary.d.ts +1 -2
  22. package/dist/common/invariant.js +0 -2
  23. package/dist/common/jsx.d.ts +1 -2
  24. package/dist/common/jsx.js +0 -2
  25. package/dist/common/logger.js +0 -2
  26. package/dist/common/promise.js +0 -2
  27. package/dist/common/props.d.ts +1 -2
  28. package/dist/common/render-context.js +0 -2
  29. package/dist/common/route-activity.js +0 -2
  30. package/dist/common/router-internal.js +0 -2
  31. package/dist/common/router.d.ts +1 -2
  32. package/dist/common/ssr-errors.d.ts +1 -2
  33. package/dist/common/ssr-errors.js +0 -2
  34. package/dist/common/ssr.d.ts +1 -2
  35. package/dist/common/ssr.js +0 -2
  36. package/dist/common/vnode.d.ts +1 -2
  37. package/dist/common/vnode.js +0 -2
  38. package/dist/components/error-boundary.d.ts +1 -2
  39. package/dist/components/error-boundary.js +0 -2
  40. package/dist/components/link.d.ts +2 -2
  41. package/dist/components/link.js +0 -2
  42. package/dist/control/case.d.ts +1 -2
  43. package/dist/control/case.js +0 -2
  44. package/dist/control/for.d.ts +1 -2
  45. package/dist/control/for.js +0 -2
  46. package/dist/control/shared.d.ts +1 -2
  47. package/dist/control/shared.js +0 -2
  48. package/dist/control/show.d.ts +1 -2
  49. package/dist/control/show.js +0 -2
  50. package/dist/data/data-runtime.d.ts +1 -2
  51. package/dist/data/data-runtime.js +3 -5
  52. package/dist/data/invalidation-listeners.js +0 -2
  53. package/dist/data/invalidation.d.ts +1 -2
  54. package/dist/data/invalidation.js +0 -2
  55. package/dist/data/mutation-cell.d.ts +1 -2
  56. package/dist/data/mutation-cell.js +6 -5
  57. package/dist/data/query-cell.d.ts +3 -2
  58. package/dist/data/query-cell.js +43 -9
  59. package/dist/data/query-key.js +0 -2
  60. package/dist/data/shared.js +2 -3
  61. package/dist/data/types.d.ts +1 -2
  62. package/dist/foundations/icon/icon.d.ts +1 -2
  63. package/dist/foundations/icon/icon.js +0 -2
  64. package/dist/foundations/icon/icon.types.d.ts +1 -2
  65. package/dist/foundations/interactions/dismissable.d.ts +1 -2
  66. package/dist/foundations/interactions/dismissable.js +0 -2
  67. package/dist/foundations/interactions/focusable.d.ts +1 -2
  68. package/dist/foundations/interactions/focusable.js +0 -2
  69. package/dist/foundations/interactions/hoverable.d.ts +1 -2
  70. package/dist/foundations/interactions/hoverable.js +0 -2
  71. package/dist/foundations/interactions/interaction-policy.d.ts +1 -2
  72. package/dist/foundations/interactions/interaction-policy.js +0 -2
  73. package/dist/foundations/interactions/pressable.d.ts +1 -2
  74. package/dist/foundations/interactions/pressable.js +0 -2
  75. package/dist/foundations/interactions/roving-focus.d.ts +1 -2
  76. package/dist/foundations/interactions/roving-focus.js +0 -2
  77. package/dist/foundations/state/controllable.d.ts +1 -2
  78. package/dist/foundations/state/controllable.js +0 -2
  79. package/dist/foundations/structures/collection.d.ts +1 -2
  80. package/dist/foundations/structures/collection.js +0 -2
  81. package/dist/foundations/structures/layer.d.ts +1 -2
  82. package/dist/foundations/structures/layer.js +0 -2
  83. package/dist/foundations/structures/layout.d.ts +1 -2
  84. package/dist/foundations/structures/layout.js +0 -2
  85. package/dist/foundations/structures/presence.d.ts +1 -2
  86. package/dist/foundations/structures/presence.js +0 -2
  87. package/dist/foundations/structures/slot.d.ts +1 -2
  88. package/dist/foundations/structures/slot.js +0 -2
  89. package/dist/foundations/utilities/aria.d.ts +1 -2
  90. package/dist/foundations/utilities/aria.js +0 -2
  91. package/dist/foundations/utilities/compose-handlers.d.ts +1 -2
  92. package/dist/foundations/utilities/compose-handlers.js +0 -2
  93. package/dist/foundations/utilities/compose-ref.d.ts +1 -2
  94. package/dist/foundations/utilities/compose-ref.js +0 -2
  95. package/dist/foundations/utilities/event-types.d.ts +1 -2
  96. package/dist/foundations/utilities/merge-props.d.ts +1 -2
  97. package/dist/foundations/utilities/merge-props.js +0 -2
  98. package/dist/foundations/utilities/use-id.d.ts +1 -2
  99. package/dist/foundations/utilities/use-id.js +0 -2
  100. package/dist/fx/fx.d.ts +1 -2
  101. package/dist/fx/fx.js +0 -2
  102. package/dist/fx/noop.js +0 -2
  103. package/dist/fx/timing.d.ts +1 -2
  104. package/dist/fx/timing.js +0 -2
  105. package/dist/index.d.ts +1 -1
  106. package/dist/index.js +0 -2
  107. package/dist/jsx/types.d.ts +1 -2
  108. package/dist/jsx/utils.d.ts +1 -2
  109. package/dist/jsx/utils.js +0 -2
  110. package/dist/jsx-dev-runtime.d.ts +16 -2
  111. package/dist/jsx-dev-runtime.js +3 -12
  112. package/dist/jsx-runtime.d.ts +16 -2
  113. package/dist/jsx-runtime.js +15 -24
  114. package/dist/jsx-runtime2.d.ts +1 -1
  115. package/dist/renderer/attributes.js +28 -6
  116. package/dist/renderer/boundaries.js +48 -172
  117. package/dist/renderer/boundary-materialization.js +72 -0
  118. package/dist/renderer/boundary-range-adoption.js +76 -0
  119. package/dist/renderer/boundary-range-sync.js +101 -0
  120. package/dist/renderer/boundary-state.js +50 -0
  121. package/dist/renderer/child-shape.js +0 -2
  122. package/dist/renderer/children-fastpath.js +3 -3
  123. package/dist/renderer/children.js +0 -2
  124. package/dist/renderer/cleanup.js +70 -13
  125. package/dist/renderer/component-host-cleanup.js +123 -48
  126. package/dist/renderer/component-host-instances.js +59 -8
  127. package/dist/renderer/component-host-replacement.js +105 -0
  128. package/dist/renderer/component-host-results.js +138 -0
  129. package/dist/renderer/component-host.js +94 -169
  130. package/dist/renderer/dom-host.js +0 -2
  131. package/dist/renderer/dom-internal.js +110 -53
  132. package/dist/renderer/dom-range.js +161 -0
  133. package/dist/renderer/dom.js +5 -4
  134. package/dist/renderer/element-children.js +112 -32
  135. package/dist/renderer/error-boundary-dom.js +19 -11
  136. package/dist/renderer/evaluate-dom-range.js +3 -4
  137. package/dist/renderer/evaluate-reconcile.js +12 -37
  138. package/dist/renderer/evaluate.js +14 -3
  139. package/dist/renderer/fastpath.js +4 -12
  140. package/dist/renderer/for-commit-dom-map.js +6 -18
  141. package/dist/renderer/for-commit-removal.js +7 -16
  142. package/dist/renderer/for-commit-reorder.js +0 -2
  143. package/dist/renderer/for-commit.js +172 -44
  144. package/dist/renderer/hydration-boundaries.js +60 -0
  145. package/dist/renderer/hydration-listener-transaction.js +49 -0
  146. package/dist/renderer/index.js +8 -7
  147. package/dist/renderer/intrinsic-blueprint-analysis.js +202 -0
  148. package/dist/renderer/intrinsic-blueprint-bindings.js +152 -0
  149. package/dist/renderer/intrinsic-blueprint-materialization.js +100 -0
  150. package/dist/renderer/intrinsic-blueprint.js +30 -0
  151. package/dist/renderer/intrinsic-hydration-adoption.js +66 -0
  152. package/dist/renderer/keyed-children.js +3 -9
  153. package/dist/renderer/keyed.js +10 -10
  154. package/dist/renderer/namespaces.js +0 -2
  155. package/dist/renderer/prop-bindings.js +56 -21
  156. package/dist/renderer/reactive-child-dom.js +10 -4
  157. package/dist/renderer/reactive-child-sources.js +0 -2
  158. package/dist/renderer/reactive-children.js +29 -20
  159. package/dist/renderer/reconcile-commit.js +0 -2
  160. package/dist/renderer/reconcile-fastpaths.js +4 -11
  161. package/dist/renderer/reconcile-resolution.js +31 -55
  162. package/dist/renderer/reconcile.js +0 -2
  163. package/dist/renderer/retained-element-rollback.js +159 -148
  164. package/dist/renderer/stable-patch.js +3 -4
  165. package/dist/renderer/static-reuse.js +0 -2
  166. package/dist/renderer/utils.js +18 -9
  167. package/dist/router/access.js +0 -2
  168. package/dist/router/activity.d.ts +1 -2
  169. package/dist/router/activity.js +0 -2
  170. package/dist/router/authoring.d.ts +1 -2
  171. package/dist/router/authoring.js +0 -2
  172. package/dist/router/internal-types.d.ts +1 -2
  173. package/dist/router/lazy.d.ts +1 -2
  174. package/dist/router/lazy.js +0 -2
  175. package/dist/router/manifest.d.ts +1 -2
  176. package/dist/router/manifest.js +0 -2
  177. package/dist/router/match.js +0 -2
  178. package/dist/router/navigate.d.ts +1 -2
  179. package/dist/router/navigate.js +4 -7
  180. package/dist/router/navigation-registry.d.ts +1 -2
  181. package/dist/router/navigation-registry.js +0 -2
  182. package/dist/router/navigation-scroll.d.ts +1 -2
  183. package/dist/router/navigation-scroll.js +0 -2
  184. package/dist/router/navigation-targets.d.ts +3 -4
  185. package/dist/router/navigation-targets.js +419 -40
  186. package/dist/router/policy.d.ts +1 -2
  187. package/dist/router/policy.js +0 -2
  188. package/dist/router/rendering.d.ts +1 -2
  189. package/dist/router/rendering.js +4 -3
  190. package/dist/router/resolution.d.ts +1 -2
  191. package/dist/router/resolution.js +0 -2
  192. package/dist/router/route-context.js +0 -2
  193. package/dist/router/route-matching.d.ts +1 -2
  194. package/dist/router/route-matching.js +0 -2
  195. package/dist/router/route-query.d.ts +1 -2
  196. package/dist/router/route-query.js +1 -3
  197. package/dist/router/store.d.ts +1 -2
  198. package/dist/router/store.js +0 -2
  199. package/dist/runtime/access.d.ts +1 -2
  200. package/dist/runtime/access.js +0 -2
  201. package/dist/runtime/child-scope.d.ts +21 -2
  202. package/dist/runtime/child-scope.js +101 -54
  203. package/dist/runtime/component-cleanup.d.ts +1 -2
  204. package/dist/runtime/component-cleanup.js +2 -4
  205. package/dist/runtime/component-commit.js +25 -23
  206. package/dist/runtime/component-facade.js +5 -3
  207. package/dist/runtime/component-internal.d.ts +11 -6
  208. package/dist/runtime/component-internal.js +63 -45
  209. package/dist/runtime/component-lifecycle.d.ts +2 -41
  210. package/dist/runtime/component-lifecycle.js +6 -149
  211. package/dist/runtime/component-scope.d.ts +3 -4
  212. package/dist/runtime/component-scope.js +27 -8
  213. package/dist/runtime/component.js +4 -3
  214. package/dist/runtime/context.d.ts +5 -2
  215. package/dist/runtime/context.js +29 -3
  216. package/dist/runtime/control.d.ts +22 -3
  217. package/dist/runtime/control.js +168 -55
  218. package/dist/runtime/derive.d.ts +1 -2
  219. package/dist/runtime/derive.js +0 -2
  220. package/dist/runtime/dev-namespace.d.ts +5 -6
  221. package/dist/runtime/dev-namespace.js +32 -25
  222. package/dist/runtime/effect.d.ts +8 -5
  223. package/dist/runtime/effect.js +158 -75
  224. package/dist/runtime/error-boundary.d.ts +1 -2
  225. package/dist/runtime/error-boundary.js +0 -2
  226. package/dist/runtime/events.d.ts +3 -3
  227. package/dist/runtime/events.js +66 -69
  228. package/dist/runtime/execution-model.d.ts +1 -2
  229. package/dist/runtime/execution-model.js +0 -2
  230. package/dist/runtime/fastlane.d.ts +1 -2
  231. package/dist/runtime/fastlane.js +0 -2
  232. package/dist/runtime/for-bench.d.ts +1 -2
  233. package/dist/runtime/for-bench.js +9 -167
  234. package/dist/runtime/for-internal.d.ts +68 -5
  235. package/dist/runtime/for-internal.js +201 -14
  236. package/dist/runtime/for-reconcile.d.ts +1 -2
  237. package/dist/runtime/for-reconcile.js +76 -23
  238. package/dist/runtime/for-scopes.d.ts +5 -5
  239. package/dist/runtime/for-scopes.js +168 -48
  240. package/dist/runtime/for-signals.d.ts +13 -4
  241. package/dist/runtime/for-signals.js +155 -81
  242. package/dist/runtime/for-types.d.ts +1 -2
  243. package/dist/runtime/for.d.ts +2 -2
  244. package/dist/runtime/for.js +3 -3
  245. package/dist/runtime/index.d.ts +5 -5
  246. package/dist/runtime/index.js +12 -10
  247. package/dist/runtime/lifecycle-batch.d.ts +59 -0
  248. package/dist/runtime/lifecycle-batch.js +178 -0
  249. package/dist/runtime/lifecycle-operation-settlement.d.ts +5 -0
  250. package/dist/runtime/lifecycle-operation-settlement.js +51 -0
  251. package/dist/runtime/lifecycle-operations.d.ts +1 -2
  252. package/dist/runtime/lifecycle-operations.js +5 -6
  253. package/dist/runtime/perf-metrics.d.ts +8 -7
  254. package/dist/runtime/perf-metrics.js +4 -68
  255. package/dist/runtime/portal.d.ts +1 -2
  256. package/dist/runtime/portal.js +103 -11
  257. package/dist/runtime/readable.d.ts +9 -4
  258. package/dist/runtime/readable.js +41 -17
  259. package/dist/runtime/resource-cell.js +2 -4
  260. package/dist/runtime/resource-operation.d.ts +1 -2
  261. package/dist/runtime/resource-operation.js +37 -34
  262. package/dist/runtime/runtime.d.ts +1 -2
  263. package/dist/runtime/runtime.js +0 -2
  264. package/dist/runtime/scheduler.d.ts +1 -2
  265. package/dist/runtime/scheduler.js +8 -11
  266. package/dist/runtime/selector-store.js +0 -2
  267. package/dist/runtime/selector.d.ts +1 -2
  268. package/dist/runtime/selector.js +3 -11
  269. package/dist/runtime/snapshot-source.d.ts +1 -2
  270. package/dist/runtime/snapshot-source.js +0 -2
  271. package/dist/runtime/state.d.ts +1 -2
  272. package/dist/runtime/state.js +1 -3
  273. package/dist/ssg/batch-render.js +0 -2
  274. package/dist/ssg/create-static-gen.d.ts +4 -2
  275. package/dist/ssg/create-static-gen.js +65 -14
  276. package/dist/ssg/generate-metadata.js +0 -2
  277. package/dist/ssg/generation-plan.js +0 -2
  278. package/dist/ssg/incremental-manifest.js +1 -3
  279. package/dist/ssg/resolve-ssg-data.js +0 -2
  280. package/dist/ssg/route-utils.js +0 -2
  281. package/dist/ssg/static-routes.js +0 -2
  282. package/dist/ssg/types.d.ts +2 -3
  283. package/dist/ssg/write-static-files.js +16 -12
  284. package/dist/ssr/attrs.js +0 -2
  285. package/dist/ssr/boundaries.js +16 -5
  286. package/dist/ssr/component-runtime.js +1 -27
  287. package/dist/ssr/context.d.ts +1 -2
  288. package/dist/ssr/context.js +0 -2
  289. package/dist/ssr/errors.d.ts +1 -2
  290. package/dist/ssr/errors.js +0 -2
  291. package/dist/ssr/escape.js +0 -2
  292. package/dist/ssr/hydration-data.js +0 -2
  293. package/dist/ssr/hydration-verify.d.ts +1 -2
  294. package/dist/ssr/hydration-verify.js +34 -7
  295. package/dist/ssr/index-internal.d.ts +1 -2
  296. package/dist/ssr/index-internal.js +0 -2
  297. package/dist/ssr/render-keys.js +0 -2
  298. package/dist/ssr/render-resolved.d.ts +1 -2
  299. package/dist/ssr/render-resolved.js +0 -2
  300. package/dist/ssr/render-sync.d.ts +1 -2
  301. package/dist/ssr/render-sync.js +27 -19
  302. package/dist/ssr/route-policy-resolution.js +0 -2
  303. package/dist/ssr/route-render.d.ts +1 -2
  304. package/dist/ssr/route-render.js +0 -2
  305. package/dist/ssr/sink.d.ts +1 -2
  306. package/dist/ssr/sink.js +0 -2
  307. package/dist/ssr/types.d.ts +1 -2
  308. package/dist/ssr/verify-hydration.js +0 -2
  309. package/dist/testing/index.d.ts +1 -2
  310. package/dist/testing/index.js +0 -2
  311. package/package.json +57 -44
  312. package/dist/bench/components/benchmark-row.d.ts.map +0 -1
  313. package/dist/bench/components/benchmark-row.js.map +0 -1
  314. package/dist/bench/components/benchmark-table.js.map +0 -1
  315. package/dist/benchmark.d.ts.map +0 -1
  316. package/dist/benchmark.js.map +0 -1
  317. package/dist/bin/askr-ssg.d.ts.map +0 -1
  318. package/dist/bin/askr-ssg.js.map +0 -1
  319. package/dist/boot/hydration.js.map +0 -1
  320. package/dist/boot/index.d.ts.map +0 -1
  321. package/dist/boot/index.js.map +0 -1
  322. package/dist/boot/root-lifecycle.d.ts.map +0 -1
  323. package/dist/boot/root-lifecycle.js.map +0 -1
  324. package/dist/boot/route-startup.js.map +0 -1
  325. package/dist/boot/types.d.ts.map +0 -1
  326. package/dist/common/attr-names.js.map +0 -1
  327. package/dist/common/component.d.ts.map +0 -1
  328. package/dist/common/control.d.ts.map +0 -1
  329. package/dist/common/control.js.map +0 -1
  330. package/dist/common/env.js.map +0 -1
  331. package/dist/common/error-boundary.d.ts.map +0 -1
  332. package/dist/common/invariant.js.map +0 -1
  333. package/dist/common/jsx.d.ts.map +0 -1
  334. package/dist/common/jsx.js.map +0 -1
  335. package/dist/common/logger.js.map +0 -1
  336. package/dist/common/promise.js.map +0 -1
  337. package/dist/common/props.d.ts.map +0 -1
  338. package/dist/common/render-context.js.map +0 -1
  339. package/dist/common/route-activity.js.map +0 -1
  340. package/dist/common/router-internal.js.map +0 -1
  341. package/dist/common/router.d.ts.map +0 -1
  342. package/dist/common/ssr-errors.d.ts.map +0 -1
  343. package/dist/common/ssr-errors.js.map +0 -1
  344. package/dist/common/ssr.d.ts.map +0 -1
  345. package/dist/common/ssr.js.map +0 -1
  346. package/dist/common/vnode.d.ts.map +0 -1
  347. package/dist/common/vnode.js.map +0 -1
  348. package/dist/components/error-boundary.d.ts.map +0 -1
  349. package/dist/components/error-boundary.js.map +0 -1
  350. package/dist/components/link.d.ts.map +0 -1
  351. package/dist/components/link.js.map +0 -1
  352. package/dist/control/case.d.ts.map +0 -1
  353. package/dist/control/case.js.map +0 -1
  354. package/dist/control/for.d.ts.map +0 -1
  355. package/dist/control/for.js.map +0 -1
  356. package/dist/control/shared.d.ts.map +0 -1
  357. package/dist/control/shared.js.map +0 -1
  358. package/dist/control/show.d.ts.map +0 -1
  359. package/dist/control/show.js.map +0 -1
  360. package/dist/data/data-runtime.d.ts.map +0 -1
  361. package/dist/data/data-runtime.js.map +0 -1
  362. package/dist/data/invalidation-listeners.js.map +0 -1
  363. package/dist/data/invalidation.d.ts.map +0 -1
  364. package/dist/data/invalidation.js.map +0 -1
  365. package/dist/data/mutation-cell.d.ts.map +0 -1
  366. package/dist/data/mutation-cell.js.map +0 -1
  367. package/dist/data/query-cell.d.ts.map +0 -1
  368. package/dist/data/query-cell.js.map +0 -1
  369. package/dist/data/query-key.js.map +0 -1
  370. package/dist/data/shared.js.map +0 -1
  371. package/dist/data/types.d.ts.map +0 -1
  372. package/dist/foundations/icon/icon.d.ts.map +0 -1
  373. package/dist/foundations/icon/icon.js.map +0 -1
  374. package/dist/foundations/icon/icon.types.d.ts.map +0 -1
  375. package/dist/foundations/interactions/dismissable.d.ts.map +0 -1
  376. package/dist/foundations/interactions/dismissable.js.map +0 -1
  377. package/dist/foundations/interactions/focusable.d.ts.map +0 -1
  378. package/dist/foundations/interactions/focusable.js.map +0 -1
  379. package/dist/foundations/interactions/hoverable.d.ts.map +0 -1
  380. package/dist/foundations/interactions/hoverable.js.map +0 -1
  381. package/dist/foundations/interactions/interaction-policy.d.ts.map +0 -1
  382. package/dist/foundations/interactions/interaction-policy.js.map +0 -1
  383. package/dist/foundations/interactions/pressable.d.ts.map +0 -1
  384. package/dist/foundations/interactions/pressable.js.map +0 -1
  385. package/dist/foundations/interactions/roving-focus.d.ts.map +0 -1
  386. package/dist/foundations/interactions/roving-focus.js.map +0 -1
  387. package/dist/foundations/state/controllable.d.ts.map +0 -1
  388. package/dist/foundations/state/controllable.js.map +0 -1
  389. package/dist/foundations/structures/collection.d.ts.map +0 -1
  390. package/dist/foundations/structures/collection.js.map +0 -1
  391. package/dist/foundations/structures/layer.d.ts.map +0 -1
  392. package/dist/foundations/structures/layer.js.map +0 -1
  393. package/dist/foundations/structures/layout.d.ts.map +0 -1
  394. package/dist/foundations/structures/layout.js.map +0 -1
  395. package/dist/foundations/structures/presence.d.ts.map +0 -1
  396. package/dist/foundations/structures/presence.js.map +0 -1
  397. package/dist/foundations/structures/slot.d.ts.map +0 -1
  398. package/dist/foundations/structures/slot.js.map +0 -1
  399. package/dist/foundations/utilities/aria.d.ts.map +0 -1
  400. package/dist/foundations/utilities/aria.js.map +0 -1
  401. package/dist/foundations/utilities/compose-handlers.d.ts.map +0 -1
  402. package/dist/foundations/utilities/compose-handlers.js.map +0 -1
  403. package/dist/foundations/utilities/compose-ref.d.ts.map +0 -1
  404. package/dist/foundations/utilities/compose-ref.js.map +0 -1
  405. package/dist/foundations/utilities/event-types.d.ts.map +0 -1
  406. package/dist/foundations/utilities/merge-props.d.ts.map +0 -1
  407. package/dist/foundations/utilities/merge-props.js.map +0 -1
  408. package/dist/foundations/utilities/use-id.d.ts.map +0 -1
  409. package/dist/foundations/utilities/use-id.js.map +0 -1
  410. package/dist/fx/fx.d.ts.map +0 -1
  411. package/dist/fx/fx.js.map +0 -1
  412. package/dist/fx/noop.js.map +0 -1
  413. package/dist/fx/timing.d.ts.map +0 -1
  414. package/dist/fx/timing.js.map +0 -1
  415. package/dist/index.js.map +0 -1
  416. package/dist/jsx/types.d.ts.map +0 -1
  417. package/dist/jsx/utils.d.ts.map +0 -1
  418. package/dist/jsx/utils.js.map +0 -1
  419. package/dist/jsx-dev-runtime.d.ts.map +0 -1
  420. package/dist/jsx-dev-runtime.js.map +0 -1
  421. package/dist/jsx-runtime.d.ts.map +0 -1
  422. package/dist/jsx-runtime.js.map +0 -1
  423. package/dist/renderer/attributes.js.map +0 -1
  424. package/dist/renderer/boundaries.js.map +0 -1
  425. package/dist/renderer/child-shape.js.map +0 -1
  426. package/dist/renderer/children-fastpath.js.map +0 -1
  427. package/dist/renderer/children.js.map +0 -1
  428. package/dist/renderer/cleanup.js.map +0 -1
  429. package/dist/renderer/component-host-cleanup.js.map +0 -1
  430. package/dist/renderer/component-host-instances.js.map +0 -1
  431. package/dist/renderer/component-host.js.map +0 -1
  432. package/dist/renderer/dom-host.js.map +0 -1
  433. package/dist/renderer/dom-internal.js.map +0 -1
  434. package/dist/renderer/element-children.js.map +0 -1
  435. package/dist/renderer/error-boundary-dom.js.map +0 -1
  436. package/dist/renderer/evaluate-dom-range.js.map +0 -1
  437. package/dist/renderer/evaluate-reconcile.js.map +0 -1
  438. package/dist/renderer/evaluate.js.map +0 -1
  439. package/dist/renderer/fastpath.js.map +0 -1
  440. package/dist/renderer/for-commit-dom-map.js.map +0 -1
  441. package/dist/renderer/for-commit-removal.js.map +0 -1
  442. package/dist/renderer/for-commit-reorder.js.map +0 -1
  443. package/dist/renderer/for-commit.js.map +0 -1
  444. package/dist/renderer/index.js.map +0 -1
  445. package/dist/renderer/keyed-children.js.map +0 -1
  446. package/dist/renderer/keyed.js.map +0 -1
  447. package/dist/renderer/namespaces.js.map +0 -1
  448. package/dist/renderer/prop-bindings.js.map +0 -1
  449. package/dist/renderer/reactive-child-dom.js.map +0 -1
  450. package/dist/renderer/reactive-child-sources.js.map +0 -1
  451. package/dist/renderer/reactive-children.js.map +0 -1
  452. package/dist/renderer/reconcile-commit.js.map +0 -1
  453. package/dist/renderer/reconcile-fastpaths.js.map +0 -1
  454. package/dist/renderer/reconcile-resolution.js.map +0 -1
  455. package/dist/renderer/reconcile.js.map +0 -1
  456. package/dist/renderer/retained-element-rollback.js.map +0 -1
  457. package/dist/renderer/stable-patch.js.map +0 -1
  458. package/dist/renderer/static-reuse.js.map +0 -1
  459. package/dist/renderer/utils.js.map +0 -1
  460. package/dist/router/access.js.map +0 -1
  461. package/dist/router/activity.d.ts.map +0 -1
  462. package/dist/router/activity.js.map +0 -1
  463. package/dist/router/authoring.d.ts.map +0 -1
  464. package/dist/router/authoring.js.map +0 -1
  465. package/dist/router/internal-types.d.ts.map +0 -1
  466. package/dist/router/lazy.d.ts.map +0 -1
  467. package/dist/router/lazy.js.map +0 -1
  468. package/dist/router/manifest.d.ts.map +0 -1
  469. package/dist/router/manifest.js.map +0 -1
  470. package/dist/router/match.js.map +0 -1
  471. package/dist/router/navigate.d.ts.map +0 -1
  472. package/dist/router/navigate.js.map +0 -1
  473. package/dist/router/navigation-registry.d.ts.map +0 -1
  474. package/dist/router/navigation-registry.js.map +0 -1
  475. package/dist/router/navigation-scroll.d.ts.map +0 -1
  476. package/dist/router/navigation-scroll.js.map +0 -1
  477. package/dist/router/navigation-targets.d.ts.map +0 -1
  478. package/dist/router/navigation-targets.js.map +0 -1
  479. package/dist/router/policy.d.ts.map +0 -1
  480. package/dist/router/policy.js.map +0 -1
  481. package/dist/router/rendering.d.ts.map +0 -1
  482. package/dist/router/rendering.js.map +0 -1
  483. package/dist/router/resolution.d.ts.map +0 -1
  484. package/dist/router/resolution.js.map +0 -1
  485. package/dist/router/route-context.js.map +0 -1
  486. package/dist/router/route-matching.d.ts.map +0 -1
  487. package/dist/router/route-matching.js.map +0 -1
  488. package/dist/router/route-query.d.ts.map +0 -1
  489. package/dist/router/route-query.js.map +0 -1
  490. package/dist/router/store.d.ts.map +0 -1
  491. package/dist/router/store.js.map +0 -1
  492. package/dist/runtime/access.d.ts.map +0 -1
  493. package/dist/runtime/access.js.map +0 -1
  494. package/dist/runtime/child-scope.d.ts.map +0 -1
  495. package/dist/runtime/child-scope.js.map +0 -1
  496. package/dist/runtime/component-cleanup.d.ts.map +0 -1
  497. package/dist/runtime/component-cleanup.js.map +0 -1
  498. package/dist/runtime/component-commit.js.map +0 -1
  499. package/dist/runtime/component-internal.d.ts.map +0 -1
  500. package/dist/runtime/component-internal.js.map +0 -1
  501. package/dist/runtime/component-lifecycle.d.ts.map +0 -1
  502. package/dist/runtime/component-lifecycle.js.map +0 -1
  503. package/dist/runtime/component-scope.d.ts.map +0 -1
  504. package/dist/runtime/component-scope.js.map +0 -1
  505. package/dist/runtime/context.d.ts.map +0 -1
  506. package/dist/runtime/context.js.map +0 -1
  507. package/dist/runtime/control.d.ts.map +0 -1
  508. package/dist/runtime/control.js.map +0 -1
  509. package/dist/runtime/derive.d.ts.map +0 -1
  510. package/dist/runtime/derive.js.map +0 -1
  511. package/dist/runtime/dev-namespace.d.ts.map +0 -1
  512. package/dist/runtime/dev-namespace.js.map +0 -1
  513. package/dist/runtime/effect.d.ts.map +0 -1
  514. package/dist/runtime/effect.js.map +0 -1
  515. package/dist/runtime/error-boundary.d.ts.map +0 -1
  516. package/dist/runtime/error-boundary.js.map +0 -1
  517. package/dist/runtime/events.d.ts.map +0 -1
  518. package/dist/runtime/events.js.map +0 -1
  519. package/dist/runtime/execution-model.d.ts.map +0 -1
  520. package/dist/runtime/execution-model.js.map +0 -1
  521. package/dist/runtime/fastlane.d.ts.map +0 -1
  522. package/dist/runtime/fastlane.js.map +0 -1
  523. package/dist/runtime/for-bench.d.ts.map +0 -1
  524. package/dist/runtime/for-bench.js.map +0 -1
  525. package/dist/runtime/for-internal.d.ts.map +0 -1
  526. package/dist/runtime/for-internal.js.map +0 -1
  527. package/dist/runtime/for-reconcile.d.ts.map +0 -1
  528. package/dist/runtime/for-reconcile.js.map +0 -1
  529. package/dist/runtime/for-scopes.d.ts.map +0 -1
  530. package/dist/runtime/for-scopes.js.map +0 -1
  531. package/dist/runtime/for-signals.d.ts.map +0 -1
  532. package/dist/runtime/for-signals.js.map +0 -1
  533. package/dist/runtime/for-types.d.ts.map +0 -1
  534. package/dist/runtime/lifecycle-operations.d.ts.map +0 -1
  535. package/dist/runtime/lifecycle-operations.js.map +0 -1
  536. package/dist/runtime/perf-metrics.d.ts.map +0 -1
  537. package/dist/runtime/perf-metrics.js.map +0 -1
  538. package/dist/runtime/portal.d.ts.map +0 -1
  539. package/dist/runtime/portal.js.map +0 -1
  540. package/dist/runtime/readable.d.ts.map +0 -1
  541. package/dist/runtime/readable.js.map +0 -1
  542. package/dist/runtime/resource-cell.js.map +0 -1
  543. package/dist/runtime/resource-operation.d.ts.map +0 -1
  544. package/dist/runtime/resource-operation.js.map +0 -1
  545. package/dist/runtime/runtime.d.ts.map +0 -1
  546. package/dist/runtime/runtime.js.map +0 -1
  547. package/dist/runtime/scheduler.d.ts.map +0 -1
  548. package/dist/runtime/scheduler.js.map +0 -1
  549. package/dist/runtime/selector-store.js.map +0 -1
  550. package/dist/runtime/selector.d.ts.map +0 -1
  551. package/dist/runtime/selector.js.map +0 -1
  552. package/dist/runtime/snapshot-source.d.ts.map +0 -1
  553. package/dist/runtime/snapshot-source.js.map +0 -1
  554. package/dist/runtime/state.d.ts.map +0 -1
  555. package/dist/runtime/state.js.map +0 -1
  556. package/dist/ssg/batch-render.js.map +0 -1
  557. package/dist/ssg/create-static-gen.d.ts.map +0 -1
  558. package/dist/ssg/create-static-gen.js.map +0 -1
  559. package/dist/ssg/generate-metadata.js.map +0 -1
  560. package/dist/ssg/generation-plan.js.map +0 -1
  561. package/dist/ssg/incremental-manifest.js.map +0 -1
  562. package/dist/ssg/resolve-ssg-data.js.map +0 -1
  563. package/dist/ssg/route-utils.js.map +0 -1
  564. package/dist/ssg/static-routes.js.map +0 -1
  565. package/dist/ssg/types.d.ts.map +0 -1
  566. package/dist/ssg/write-static-files.js.map +0 -1
  567. package/dist/ssr/attrs.js.map +0 -1
  568. package/dist/ssr/boundaries.js.map +0 -1
  569. package/dist/ssr/component-runtime.js.map +0 -1
  570. package/dist/ssr/context.d.ts.map +0 -1
  571. package/dist/ssr/context.js.map +0 -1
  572. package/dist/ssr/errors.d.ts.map +0 -1
  573. package/dist/ssr/errors.js.map +0 -1
  574. package/dist/ssr/escape.js.map +0 -1
  575. package/dist/ssr/hydration-data.js.map +0 -1
  576. package/dist/ssr/hydration-verify.d.ts.map +0 -1
  577. package/dist/ssr/hydration-verify.js.map +0 -1
  578. package/dist/ssr/index-internal.d.ts.map +0 -1
  579. package/dist/ssr/index-internal.js.map +0 -1
  580. package/dist/ssr/render-keys.js.map +0 -1
  581. package/dist/ssr/render-resolved.d.ts.map +0 -1
  582. package/dist/ssr/render-resolved.js.map +0 -1
  583. package/dist/ssr/render-sync.d.ts.map +0 -1
  584. package/dist/ssr/render-sync.js.map +0 -1
  585. package/dist/ssr/route-policy-resolution.js.map +0 -1
  586. package/dist/ssr/route-render.d.ts.map +0 -1
  587. package/dist/ssr/route-render.js.map +0 -1
  588. package/dist/ssr/sink.d.ts.map +0 -1
  589. package/dist/ssr/sink.js.map +0 -1
  590. package/dist/ssr/types.d.ts.map +0 -1
  591. package/dist/ssr/verify-hydration.js.map +0 -1
  592. package/dist/testing/index.d.ts.map +0 -1
  593. package/dist/testing/index.js.map +0 -1
@@ -2,173 +2,83 @@ import { _isDOMElement } from "../common/vnode.js";
2
2
  import "./types.js";
3
3
  import { getCurrentContextFrame, getVNodeContextFrame, markVNodeTreeWithContextFrame, withContext } from "../runtime/context.js";
4
4
  import { getCurrentInstance } from "../runtime/component-scope.js";
5
- import { cleanupComponent } from "../runtime/component-cleanup.js";
6
5
  import { isPromiseLike } from "../common/promise.js";
7
6
  import { captureInlineRenderSnapshot, createComponentInstance, mountInstanceInline, renderComponentInline, warnUnusedStateReads } from "../runtime/component-internal.js";
8
7
  import "../runtime/index.js";
9
8
  import { tagNamesEqualIgnoreCase } from "./utils.js";
10
- import { materializeKey } from "./attributes.js";
11
- import { normalizeComponentChildren } from "./child-shape.js";
12
- import { cleanupDetachedComponentHost, pruneComponentHostInstances } from "./component-host-cleanup.js";
9
+ import { materializeFreshKey, materializeKey } from "./attributes.js";
13
10
  import { getRendererDOMHost } from "./dom-host.js";
14
- import { findHostInstanceByType, getVNodeComponentInstance, inheritComponentCleanupStrict, inheritComponentKey, isRouteRootComponentVNode, nextComponentInstanceId, setVNodeComponentInstance } from "./component-host-instances.js";
11
+ import { normalizeComponentChildren } from "./child-shape.js";
12
+ import { pruneComponentHostInstances } from "./component-host-cleanup.js";
13
+ import { findHostInstanceByType, getVNodeComponentInstance, inheritComponentCleanupStrict, inheritComponentKey, isRouteRootComponentVNode, nextComponentInstanceId, restoreVNodeComponentInstance, setComponentOwnershipIdentity, setVNodeComponentInstance } from "./component-host-instances.js";
14
+ import { beginComponentHostReplacement, cleanupProvisionalComponentInstance, createRetainedHostInstanceSet, registerVNodeComponentInstanceRollback } from "./component-host-replacement.js";
15
+ import { materializeComponentResultNode, resolveHostNestedComponentResult, resolveNestedComponentResult, resolveWrapperHostResult } from "./component-host-results.js";
15
16
  //#region src/renderer/component-host.ts
16
- function materializeComponentResultNode(childInstance, result, parentNamespace) {
17
- const dom = getRendererDOMHost().createDOMNode(result, parentNamespace);
18
- if (dom instanceof Element) {
19
- mountInstanceInline(childInstance, dom);
20
- return dom;
21
- }
22
- if (!dom) {
23
- const placeholder = document.createComment("");
24
- try {
25
- placeholder.__ASKR_INSTANCE = childInstance;
26
- } catch {}
27
- childInstance._placeholder = placeholder;
28
- mountInstanceInline(childInstance, null);
29
- return placeholder;
30
- }
31
- const host = document.createElement("div");
32
- host.appendChild(dom);
33
- host.__ASKR_WRAPPER_HOST = true;
34
- mountInstanceInline(childInstance, host);
35
- return host;
36
- }
37
- function resolveNestedComponentResult(result, snapshot, parentInstance) {
38
- let currentResult = result;
39
- let activeSnapshot = snapshot;
40
- let depth = 0;
41
- while (_isDOMElement(currentResult) && typeof currentResult.type === "function" && depth < 16) {
42
- const nestedSnapshot = getVNodeContextFrame(currentResult) ?? activeSnapshot;
43
- const nestedInstance = createComponentInstance(nextComponentInstanceId(), currentResult.type, currentResult.props ?? {}, null);
44
- nestedInstance.isRoot = isRouteRootComponentVNode(currentResult);
45
- nestedInstance.parentInstance = parentInstance;
46
- nestedInstance.portalScope = parentInstance?.portalScope ?? nestedInstance.portalScope;
47
- inheritComponentCleanupStrict(nestedInstance);
48
- if (nestedSnapshot) nestedInstance.ownerFrame = nestedSnapshot;
49
- const nextResult = withContext(nestedSnapshot ?? null, () => renderComponentInline(nestedInstance));
50
- cleanupComponent(nestedInstance);
51
- if (isPromiseLike(nextResult)) throw new Error("Async components are not supported. Components must return synchronously.");
52
- activeSnapshot = nestedSnapshot ?? null;
53
- currentResult = nextResult;
54
- depth += 1;
55
- }
56
- return currentResult;
57
- }
58
- function resolveHostNestedComponentResult(host, retainedInstance, result, snapshot, retainedHostInstances) {
59
- let currentResult = result;
60
- let activeSnapshot = snapshot;
61
- let depth = 0;
62
- const retainedInstances = /* @__PURE__ */ new Set([retainedInstance]);
63
- if (retainedHostInstances) for (const instance of retainedHostInstances) retainedInstances.add(instance);
64
- const createdInstances = [];
65
- while (_isDOMElement(currentResult) && typeof currentResult.type === "function" && depth < 16) {
66
- const nestedSnapshot = getVNodeContextFrame(currentResult) ?? activeSnapshot;
67
- let nestedInstance = findHostInstanceByType(host, currentResult.type);
68
- const hadNestedInstance = !!nestedInstance;
69
- if (!nestedInstance) {
70
- nestedInstance = createComponentInstance(nextComponentInstanceId(), currentResult.type, currentResult.props ?? {}, null);
71
- createdInstances.push(nestedInstance);
72
- }
73
- if (hadNestedInstance) captureInlineRenderSnapshot(nestedInstance);
74
- setVNodeComponentInstance(currentResult, nestedInstance);
75
- nestedInstance.isRoot = isRouteRootComponentVNode(currentResult);
76
- nestedInstance.parentInstance = retainedInstance;
77
- nestedInstance.portalScope = retainedInstance.portalScope ?? nestedInstance.portalScope;
78
- inheritComponentCleanupStrict(nestedInstance);
79
- nestedInstance.props = (currentResult.props ?? {}) || {};
80
- if (nestedSnapshot) nestedInstance.ownerFrame = nestedSnapshot;
81
- const nextResult = withContext(nestedSnapshot ?? null, () => renderComponentInline(nestedInstance));
82
- if (isPromiseLike(nextResult)) throw new Error("Async components are not supported. Components must return synchronously.");
83
- retainedInstances.add(nestedInstance);
84
- warnUnusedStateReads(nestedInstance);
85
- activeSnapshot = nestedSnapshot ?? null;
86
- currentResult = markVNodeTreeWithContextFrame(nextResult, activeSnapshot);
87
- depth += 1;
88
- }
89
- const previousInstances = host.__ASKR_INSTANCES ?? [];
90
- for (const instance of previousInstances) if (!retainedInstances.has(instance)) cleanupComponent(instance);
91
- const nextHostInstances = previousInstances.filter((instance) => retainedInstances.has(instance));
92
- for (const instance of retainedInstances) if (instance.target === host && !nextHostInstances.includes(instance)) nextHostInstances.push(instance);
93
- host.__ASKR_INSTANCES = nextHostInstances;
94
- host.__ASKR_INSTANCE = host.__ASKR_INSTANCES[0] ?? retainedInstance;
95
- for (const instance of createdInstances) mountInstanceInline(instance, host);
96
- return currentResult;
97
- }
98
- function resolveWrapperHostResult(host, result, snapshot) {
99
- let currentResult = result;
100
- let activeSnapshot = snapshot;
101
- let depth = 0;
102
- while (_isDOMElement(currentResult) && typeof currentResult.type === "function" && depth < 16) {
103
- const nestedSnapshot = getVNodeContextFrame(currentResult) ?? activeSnapshot;
104
- const nestedInstance = findHostInstanceByType(host, currentResult.type);
105
- if (!nestedInstance) break;
106
- captureInlineRenderSnapshot(nestedInstance);
107
- nestedInstance.props = (currentResult.props ?? {}) || {};
108
- nestedInstance.parentInstance = getCurrentInstance();
109
- nestedInstance.isRoot = isRouteRootComponentVNode(currentResult);
110
- nestedInstance.portalScope = getCurrentInstance()?.portalScope ?? nestedInstance.portalScope;
111
- inheritComponentCleanupStrict(nestedInstance);
112
- if (nestedSnapshot) nestedInstance.ownerFrame = nestedSnapshot;
113
- const nextResult = withContext(nestedSnapshot ?? null, () => renderComponentInline(nestedInstance));
114
- if (isPromiseLike(nextResult)) throw new Error("Async components are not supported. Components must return synchronously.");
115
- warnUnusedStateReads(nestedInstance);
116
- activeSnapshot = nestedSnapshot ?? null;
117
- currentResult = nextResult;
118
- depth += 1;
119
- }
120
- return markVNodeTreeWithContextFrame(currentResult, activeSnapshot);
121
- }
122
17
  function syncComponentElement(currentDom, node, type, props, parentNamespace, forceChildrenUpdate = false, retainedHostInstances) {
123
18
  const existingHost = currentDom instanceof Element ? currentDom : null;
124
- const existingInstance = existingHost ? findHostInstanceByType(existingHost, type) : null;
19
+ const existingInstance = existingHost ? findHostInstanceByType(existingHost, type, node, getCurrentInstance(), 0) : null;
125
20
  if (!existingHost) return null;
126
21
  const domHost = getRendererDOMHost();
127
22
  if (!existingInstance || existingInstance.fn !== type) {
128
23
  const snapshot = getVNodeContextFrame(node) || getCurrentContextFrame() || null;
129
24
  const hydrationInstance = createComponentInstance(nextComponentInstanceId(), type, props || {}, existingHost);
25
+ setComponentOwnershipIdentity(hydrationInstance, node, getCurrentInstance(), 0);
130
26
  hydrationInstance.isRoot = isRouteRootComponentVNode(node);
131
27
  hydrationInstance.portalScope = getCurrentInstance()?.portalScope ?? hydrationInstance.portalScope;
132
28
  inheritComponentCleanupStrict(hydrationInstance);
133
- setVNodeComponentInstance(node, hydrationInstance);
134
- if (snapshot) hydrationInstance.ownerFrame = snapshot;
135
- const result = withContext(snapshot, () => renderComponentInline(hydrationInstance));
136
- if (isPromiseLike(result)) throw new Error("Async components are not supported. Components must return synchronously.");
137
- const scopedResult = markVNodeTreeWithContextFrame(result, snapshot ?? null);
138
- if (scopedResult && typeof scopedResult === "object" && "type" in scopedResult && typeof scopedResult.type === "string" && tagNamesEqualIgnoreCase(existingHost.tagName, scopedResult.type)) {
139
- pruneComponentHostInstances(existingHost, retainedHostInstances ? [hydrationInstance, ...retainedHostInstances] : [hydrationInstance]);
140
- withContext(snapshot, () => {
141
- domHost.updateElementFromVnode(existingHost, inheritComponentKey(scopedResult, node), true, forceChildrenUpdate || hydrationInstance.mounted === false);
142
- materializeKey(existingHost, node, props);
143
- });
144
- mountInstanceInline(hydrationInstance, existingHost);
145
- itemInstanceHydrationComplete(existingHost);
146
- warnUnusedStateReads(hydrationInstance);
147
- return existingHost;
148
- }
149
- const resolvedResult = resolveHostNestedComponentResult(existingHost, hydrationInstance, scopedResult, snapshot ?? null, retainedHostInstances);
150
- if (_isDOMElement(resolvedResult) && typeof resolvedResult.type === "string" && tagNamesEqualIgnoreCase(existingHost.tagName, resolvedResult.type)) {
151
- withContext(snapshot, () => {
152
- domHost.updateElementFromVnode(existingHost, inheritComponentKey(resolvedResult, node), true, forceChildrenUpdate || hydrationInstance.mounted === false);
153
- materializeKey(existingHost, node, props);
29
+ const previousVNodeInstance = getVNodeComponentInstance(node);
30
+ const liveRetainedInstances = createRetainedHostInstanceSet(hydrationInstance, retainedHostInstances);
31
+ pruneComponentHostInstances(existingHost, liveRetainedInstances);
32
+ const replacement = beginComponentHostReplacement(existingHost, hydrationInstance, hydrationInstance.target, liveRetainedInstances, true);
33
+ try {
34
+ registerVNodeComponentInstanceRollback(node, previousVNodeInstance, hydrationInstance);
35
+ setVNodeComponentInstance(node, hydrationInstance);
36
+ if (snapshot) hydrationInstance.ownerFrame = snapshot;
37
+ const result = withContext(snapshot, () => renderComponentInline(hydrationInstance));
38
+ if (isPromiseLike(result)) throw new Error("Async components are not supported. Components must return synchronously.");
39
+ const scopedResult = markVNodeTreeWithContextFrame(result, snapshot ?? null);
40
+ if (scopedResult && typeof scopedResult === "object" && "type" in scopedResult && typeof scopedResult.type === "string" && tagNamesEqualIgnoreCase(existingHost.tagName, scopedResult.type)) {
41
+ withContext(snapshot, () => {
42
+ domHost.updateElementFromVnode(existingHost, inheritComponentKey(scopedResult, node), true, forceChildrenUpdate || hydrationInstance.mounted === false);
43
+ materializeKey(existingHost, node, props);
44
+ });
45
+ mountInstanceInline(hydrationInstance, existingHost);
46
+ itemInstanceHydrationComplete(existingHost);
47
+ warnUnusedStateReads(hydrationInstance);
48
+ return existingHost;
49
+ }
50
+ const resolvedResult = resolveHostNestedComponentResult(existingHost, hydrationInstance, scopedResult, snapshot ?? null, liveRetainedInstances);
51
+ if (_isDOMElement(resolvedResult) && typeof resolvedResult.type === "string" && tagNamesEqualIgnoreCase(existingHost.tagName, resolvedResult.type)) {
52
+ withContext(snapshot, () => {
53
+ domHost.updateElementFromVnode(existingHost, inheritComponentKey(resolvedResult, node), true, forceChildrenUpdate || hydrationInstance.mounted === false);
54
+ materializeKey(existingHost, node, props);
55
+ });
56
+ mountInstanceInline(hydrationInstance, existingHost);
57
+ itemInstanceHydrationComplete(existingHost);
58
+ warnUnusedStateReads(hydrationInstance);
59
+ return existingHost;
60
+ }
61
+ const nextDom = replacement.replace(() => materializeComponentResultNode(hydrationInstance, scopedResult, parentNamespace), (replacement) => {
62
+ if (replacement instanceof Element) {
63
+ materializeKey(replacement, node, props);
64
+ retainReplacementOwnerChain(replacement, hydrationInstance, liveRetainedInstances);
65
+ }
154
66
  });
155
- mountInstanceInline(hydrationInstance, existingHost);
156
- itemInstanceHydrationComplete(existingHost);
157
67
  warnUnusedStateReads(hydrationInstance);
158
- return existingHost;
68
+ return nextDom;
69
+ } catch (error) {
70
+ restoreVNodeComponentInstance(node, previousVNodeInstance);
71
+ if (!hydrationInstance.mounted) cleanupProvisionalComponentInstance(hydrationInstance);
72
+ throw error;
159
73
  }
160
- const nextDom = materializeComponentResultNode(hydrationInstance, scopedResult, parentNamespace);
161
- if (nextDom instanceof Element) materializeKey(nextDom, node, props);
162
- if (nextDom !== existingHost && existingHost.parentNode) {
163
- existingHost.parentNode.replaceChild(nextDom, existingHost);
164
- cleanupDetachedComponentHost(existingHost, hydrationInstance);
165
- }
166
- warnUnusedStateReads(hydrationInstance);
167
- return nextDom;
168
74
  }
169
75
  const snapshot = getVNodeContextFrame(node) || getCurrentContextFrame() || existingInstance.ownerFrame || null;
76
+ const liveRetainedInstances = createRetainedHostInstanceSet(existingInstance, retainedHostInstances);
77
+ pruneComponentHostInstances(existingHost, liveRetainedInstances);
78
+ const replacement = beginComponentHostReplacement(existingHost, existingInstance, existingInstance.target, liveRetainedInstances);
170
79
  captureInlineRenderSnapshot(existingInstance);
171
80
  existingInstance.props = props || {};
81
+ setComponentOwnershipIdentity(existingInstance, node, getCurrentInstance(), 0);
172
82
  existingInstance.isRoot = isRouteRootComponentVNode(node);
173
83
  existingInstance.portalScope = getCurrentInstance()?.portalScope ?? existingInstance.portalScope;
174
84
  inheritComponentCleanupStrict(existingInstance);
@@ -177,13 +87,12 @@ function syncComponentElement(currentDom, node, type, props, parentNamespace, fo
177
87
  if (isPromiseLike(result)) throw new Error("Async components are not supported. Components must return synchronously.");
178
88
  const scopedResult = markVNodeTreeWithContextFrame(result, snapshot ?? null);
179
89
  if (existingHost.__ASKR_WRAPPER_HOST) {
180
- const wrapperResult = resolveWrapperHostResult(existingHost, scopedResult, snapshot ?? null);
90
+ const wrapperResult = resolveWrapperHostResult(existingHost, scopedResult, snapshot ?? null, liveRetainedInstances);
181
91
  domHost.updateElementChildren(existingHost, normalizeComponentChildren(wrapperResult));
182
92
  warnUnusedStateReads(existingInstance);
183
93
  return existingHost;
184
94
  }
185
95
  if (scopedResult && typeof scopedResult === "object" && "type" in scopedResult && typeof scopedResult.type === "string" && tagNamesEqualIgnoreCase(existingHost.tagName, scopedResult.type)) {
186
- pruneComponentHostInstances(existingHost, retainedHostInstances ? [existingInstance, ...retainedHostInstances] : [existingInstance]);
187
96
  withContext(snapshot, () => {
188
97
  domHost.updateElementFromVnode(existingHost, inheritComponentKey(scopedResult, node), true, forceChildrenUpdate || existingInstance.mounted === false);
189
98
  materializeKey(existingHost, node, props);
@@ -191,7 +100,7 @@ function syncComponentElement(currentDom, node, type, props, parentNamespace, fo
191
100
  warnUnusedStateReads(existingInstance);
192
101
  return existingHost;
193
102
  }
194
- const resolvedResult = resolveHostNestedComponentResult(existingHost, existingInstance, scopedResult, snapshot ?? null, retainedHostInstances);
103
+ const resolvedResult = resolveHostNestedComponentResult(existingHost, existingInstance, scopedResult, snapshot ?? null, liveRetainedInstances);
195
104
  if (_isDOMElement(resolvedResult) && typeof resolvedResult.type === "string" && tagNamesEqualIgnoreCase(existingHost.tagName, resolvedResult.type)) {
196
105
  withContext(snapshot, () => {
197
106
  domHost.updateElementFromVnode(existingHost, inheritComponentKey(resolvedResult, node), true, forceChildrenUpdate || existingInstance.mounted === false);
@@ -200,15 +109,22 @@ function syncComponentElement(currentDom, node, type, props, parentNamespace, fo
200
109
  warnUnusedStateReads(existingInstance);
201
110
  return existingHost;
202
111
  }
203
- const nextDom = materializeComponentResultNode(existingInstance, scopedResult, parentNamespace);
204
- if (nextDom instanceof Element) materializeKey(nextDom, node, props);
205
- if (nextDom !== existingHost && existingHost.parentNode) {
206
- existingHost.parentNode.replaceChild(nextDom, existingHost);
207
- cleanupDetachedComponentHost(existingHost, existingInstance);
208
- }
112
+ const nextDom = replacement.replace(() => materializeComponentResultNode(existingInstance, scopedResult, parentNamespace), (replacement) => {
113
+ if (replacement instanceof Element) {
114
+ materializeKey(replacement, node, props);
115
+ retainReplacementOwnerChain(replacement, existingInstance, liveRetainedInstances);
116
+ }
117
+ });
209
118
  warnUnusedStateReads(existingInstance);
210
119
  return nextDom;
211
120
  }
121
+ function retainReplacementOwnerChain(host, owner, retainedInstances) {
122
+ const componentHost = host;
123
+ const next = [...componentHost.__ASKR_INSTANCES ?? []];
124
+ for (const instance of retainedInstances) if (!next.includes(instance)) next.push(instance);
125
+ componentHost.__ASKR_INSTANCES = next;
126
+ componentHost.__ASKR_INSTANCE = owner;
127
+ }
212
128
  function itemInstanceHydrationComplete(host) {
213
129
  const instance = host.__ASKR_INSTANCE;
214
130
  if (instance) {
@@ -222,26 +138,35 @@ function createComponentElement(node, type, props, parentNamespace) {
222
138
  if (componentFn.constructor.name === "AsyncFunction") throw new Error("Async components are not supported. Use resource() for async work.");
223
139
  let childInstance = getVNodeComponentInstance(node);
224
140
  const hadChildInstance = !!childInstance;
141
+ const previousVNodeInstance = childInstance;
225
142
  if (!childInstance) {
226
143
  childInstance = createComponentInstance(nextComponentInstanceId(), componentFn, props || {}, null);
144
+ registerVNodeComponentInstanceRollback(node, previousVNodeInstance, childInstance);
227
145
  setVNodeComponentInstance(node, childInstance);
228
146
  }
229
- if (hadChildInstance) captureInlineRenderSnapshot(childInstance);
230
- childInstance.portalScope = getCurrentInstance()?.portalScope ?? childInstance.portalScope;
231
- childInstance.parentInstance = getCurrentInstance();
232
- childInstance.props = props || {};
233
- childInstance.isRoot = isRouteRootComponentVNode(node);
234
- inheritComponentCleanupStrict(childInstance);
235
- if (snapshot) childInstance.ownerFrame = snapshot;
236
- const result = withContext(snapshot, () => renderComponentInline(childInstance));
237
- if (isPromiseLike(result)) throw new Error("Async components are not supported. Components must return synchronously.");
238
- const scopedResult = markVNodeTreeWithContextFrame(result, snapshot ?? null);
239
- const dom = withContext(snapshot, () => materializeComponentResultNode(childInstance, scopedResult, parentNamespace));
240
- warnUnusedStateReads(childInstance);
241
- if (dom instanceof Element) materializeKey(dom, node, props);
242
- return dom;
147
+ try {
148
+ if (hadChildInstance) captureInlineRenderSnapshot(childInstance);
149
+ childInstance.portalScope = getCurrentInstance()?.portalScope ?? childInstance.portalScope;
150
+ setComponentOwnershipIdentity(childInstance, node, getCurrentInstance(), 0);
151
+ childInstance.parentInstance = getCurrentInstance();
152
+ childInstance.props = props || {};
153
+ childInstance.isRoot = isRouteRootComponentVNode(node);
154
+ inheritComponentCleanupStrict(childInstance);
155
+ if (snapshot) childInstance.ownerFrame = snapshot;
156
+ const result = snapshot ? withContext(snapshot, () => renderComponentInline(childInstance)) : renderComponentInline(childInstance);
157
+ if (isPromiseLike(result)) throw new Error("Async components are not supported. Components must return synchronously.");
158
+ const scopedResult = markVNodeTreeWithContextFrame(result, snapshot ?? null);
159
+ const dom = snapshot ? withContext(snapshot, () => materializeComponentResultNode(childInstance, scopedResult, parentNamespace)) : materializeComponentResultNode(childInstance, scopedResult, parentNamespace);
160
+ warnUnusedStateReads(childInstance);
161
+ if (dom instanceof Element) materializeFreshKey(dom, node, props);
162
+ return dom;
163
+ } catch (error) {
164
+ if (!hadChildInstance) {
165
+ restoreVNodeComponentInstance(node, previousVNodeInstance);
166
+ cleanupProvisionalComponentInstance(childInstance);
167
+ }
168
+ throw error;
169
+ }
243
170
  }
244
171
  //#endregion
245
172
  export { createComponentElement, findHostInstanceByType, inheritComponentCleanupStrict, inheritComponentKey, isRouteRootComponentVNode, resolveNestedComponentResult, syncComponentElement };
246
-
247
- //# sourceMappingURL=component-host.js.map
@@ -9,5 +9,3 @@ function getRendererDOMHost() {
9
9
  }
10
10
  //#endregion
11
11
  export { configureRendererDOMHost, getRendererDOMHost };
12
-
13
- //# sourceMappingURL=dom-host.js.map
@@ -3,28 +3,42 @@ import "./types.js";
3
3
  import { getRuntimeEnv } from "../common/env.js";
4
4
  import { logger } from "../common/logger.js";
5
5
  import { Fragment } from "../common/jsx.js";
6
+ import { getCurrentInstance } from "../runtime/component-scope.js";
7
+ import { beginLifecycleCommitBatch, discardLifecycleCommitBatch, flushLifecycleCommitBatch } from "../runtime/lifecycle-batch.js";
6
8
  import { isBenchMetricScopeActive, recordBenchCounter } from "../runtime/for-bench.js";
7
9
  import "../runtime/index.js";
8
10
  import { removeAllListeners, removeElementReactiveProps, teardownNodeSubtree, updateElementRef } from "./cleanup.js";
9
11
  import "./env.js";
10
12
  import "../jsx-runtime.js";
11
- import { applyStaticScalarPropsToElement, hasMatchingStaticProps, materializeKey } from "./attributes.js";
13
+ import { applyStaticScalarPropsToElement, hasMatchingStaticProps, materializeFreshKey, materializeKey } from "./attributes.js";
12
14
  import { createElementForNamespace, resolveChildNamespace } from "./namespaces.js";
13
- import { configureBoundaryDOMHost, createForBoundary, getControlBoundaryState, getDirectControlBoundaryVNode, registerControlBoundaryCommitOwner } from "./boundaries.js";
14
15
  import { performBulkPositionalKeyedTextUpdate } from "./children-fastpath.js";
15
16
  import { isBulkTextFastPathEligible, performBulkTextReplace } from "./children.js";
16
- import { maybeWarnMissingKeys, tryGetStaticCreateFastPathShape } from "./child-shape.js";
17
17
  import { configureRendererDOMHost } from "./dom-host.js";
18
- import { createComponentElement, syncComponentElement } from "./component-host.js";
18
+ import { maybeWarnMissingKeys, tryGetStaticCreateFastPathShape } from "./child-shape.js";
19
19
  import { syncReactiveScalarChild } from "./reactive-children.js";
20
20
  import { canReuseStaticSubtree, setStaticChildSlotsCacheEnabled } from "./static-reuse.js";
21
21
  import { rendererReactiveChildDOMHost, updateElementChildren, updateUnkeyedChildren } from "./element-children.js";
22
- import { createErrorBoundaryElement } from "./error-boundary-dom.js";
23
- import { applyPropsToElement, hasTrackedElementPropBindings, markReactivePropsDirtySource, syncElementPropBindings } from "./prop-bindings.js";
24
22
  import { runRetainedElementUpdate } from "./retained-element-rollback.js";
23
+ import { beginHydrationListenerTransaction, commitHydrationListenerTransaction, discardHydrationListenerTransaction } from "./hydration-listener-transaction.js";
24
+ import { applyPropsToElement, hasTrackedElementPropBindings, markReactivePropsDirtySource, syncElementPropBindings } from "./prop-bindings.js";
25
+ import { tryAdoptMatchingIntrinsicSubtree, withIntrinsicHydrationAdoption } from "./intrinsic-hydration-adoption.js";
26
+ import { getControlBoundaryState, getDirectControlBoundaryVNode } from "./boundary-state.js";
27
+ import { createForBoundary } from "./boundary-materialization.js";
28
+ import { configureBoundaryDOMHost, registerControlBoundaryCommitOwner } from "./boundaries.js";
29
+ import { createComponentElement, syncComponentElement } from "./component-host.js";
30
+ import { createErrorBoundaryElement } from "./error-boundary-dom.js";
25
31
  import { tryPatchStableForDirtyItem } from "./stable-patch.js";
32
+ import { beginDeferredHydrationActivation, commitDeferredHydrationActivation, rememberDeferredHydrationVNode, rollbackDeferredHydrationActivation } from "./hydration-boundaries.js";
33
+ import { createComponentResultNodeWithBlueprint, createResultNodeWithBlueprint } from "./intrinsic-blueprint.js";
26
34
  //#region src/renderer/dom-internal.ts
27
35
  const IS_DOM_AVAILABLE = typeof document !== "undefined";
36
+ function cleanupFailedDOMConstruction(root) {
37
+ const nodes = root instanceof DocumentFragment ? Array.from(root.childNodes) : [root];
38
+ for (const node of nodes) try {
39
+ teardownNodeSubtree(node);
40
+ } catch {}
41
+ }
28
42
  function getHydrationSkipBoundary(el) {
29
43
  return el.closest("[data-skip-hydrate=\"true\"]");
30
44
  }
@@ -58,11 +72,16 @@ function createDOMNode(node, parentNamespace) {
58
72
  if (Array.isArray(node)) {
59
73
  maybeWarnMissingKeys(node);
60
74
  const fragment = document.createDocumentFragment();
61
- for (const child of node) {
62
- const dom = createDOMNode(child, parentNamespace);
63
- if (dom) fragment.appendChild(dom);
75
+ try {
76
+ for (const child of node) {
77
+ const dom = createDOMNode(child, parentNamespace);
78
+ if (dom) fragment.appendChild(dom);
79
+ }
80
+ return fragment;
81
+ } catch (error) {
82
+ cleanupFailedDOMConstruction(fragment);
83
+ throw error;
64
84
  }
65
- return fragment;
66
85
  }
67
86
  if (typeof node === "object" && node !== null && "type" in node) {
68
87
  const type = node.type;
@@ -75,66 +94,80 @@ function createDOMNode(node, parentNamespace) {
75
94
  }
76
95
  return null;
77
96
  }
97
+ function createComponentResultNode(component, node, parentNamespace) {
98
+ return createComponentResultNodeWithBlueprint(component, node, parentNamespace, () => createDOMNode(node, parentNamespace), rendererReactiveChildDOMHost);
99
+ }
100
+ function createOwnedResultNodeWithBlueprint(owner, node, parentNamespace) {
101
+ return createResultNodeWithBlueprint(owner, node, parentNamespace, () => createDOMNode(node, parentNamespace), rendererReactiveChildDOMHost);
102
+ }
78
103
  function createIntrinsicElement(node, type, props, parentNamespace) {
79
104
  const children = props.children ?? node.children;
80
105
  const elementNamespace = resolveChildNamespace(type, parentNamespace);
81
106
  const el = createElementForNamespace(type, parentNamespace);
82
- if (isBenchMetricScopeActive("coldCreate")) recordBenchCounter("domNodesCreated");
83
- materializeKey(el, node, props);
84
- const staticCreateFastPath = tryGetStaticCreateFastPathShape(props, children);
85
- if (staticCreateFastPath) {
86
- applyStaticScalarPropsToElement(el, props, type);
87
- if (staticCreateFastPath.textContent !== null) {
88
- el.textContent = staticCreateFastPath.textContent;
89
- if (isBenchMetricScopeActive("coldCreate")) recordBenchCounter("domNodesCreated");
90
- }
91
- return el;
92
- }
93
- applyPropsToElement(el, props, type, isHydrationSkipped);
94
- if (children !== null && children !== void 0) {
95
- const controlBoundaryVNode = getDirectControlBoundaryVNode(children);
96
- if (controlBoundaryVNode) {
97
- const controlState = getControlBoundaryState(controlBoundaryVNode);
98
- if (!controlState) throw new Error("[createIntrinsicElement] Control boundary missing internal state");
99
- registerControlBoundaryCommitOwner(el, controlState);
107
+ try {
108
+ if (isBenchMetricScopeActive("coldCreate")) recordBenchCounter("domNodesCreated");
109
+ materializeFreshKey(el, node, props);
110
+ const staticCreateFastPath = tryGetStaticCreateFastPathShape(props, children);
111
+ if (staticCreateFastPath) {
112
+ applyStaticScalarPropsToElement(el, props, type);
113
+ if (staticCreateFastPath.textContent !== null) {
114
+ el.textContent = staticCreateFastPath.textContent;
115
+ if (isBenchMetricScopeActive("coldCreate")) recordBenchCounter("domNodesCreated");
116
+ }
117
+ return el;
100
118
  }
101
- if (syncReactiveScalarChild(el, children, rendererReactiveChildDOMHost)) return el;
102
- if (Array.isArray(children)) {
103
- maybeWarnMissingKeys(children);
104
- if (children.length > 1) {
105
- const childFrag = document.createDocumentFragment();
106
- for (const child of children) {
119
+ applyPropsToElement(el, props, type, isHydrationSkipped);
120
+ if (children !== null && children !== void 0) {
121
+ const controlBoundaryVNode = getDirectControlBoundaryVNode(children);
122
+ if (controlBoundaryVNode) {
123
+ const controlState = getControlBoundaryState(controlBoundaryVNode);
124
+ if (!controlState) throw new Error("[createIntrinsicElement] Control boundary missing internal state");
125
+ registerControlBoundaryCommitOwner(el, controlState);
126
+ }
127
+ if (syncReactiveScalarChild(el, children, rendererReactiveChildDOMHost)) return el;
128
+ if (Array.isArray(children)) {
129
+ maybeWarnMissingKeys(children);
130
+ if (children.length > 1) for (const child of children) {
107
131
  const dom = createDOMNode(child, elementNamespace);
108
- if (dom) childFrag.appendChild(dom);
132
+ if (dom) el.appendChild(dom);
109
133
  }
110
- el.appendChild(childFrag);
111
- } else if (children.length === 1) {
112
- const dom = createDOMNode(children[0], elementNamespace);
134
+ else if (children.length === 1) {
135
+ const dom = createDOMNode(children[0], elementNamespace);
136
+ if (dom) el.appendChild(dom);
137
+ }
138
+ } else {
139
+ const dom = createDOMNode(children, elementNamespace);
113
140
  if (dom) el.appendChild(dom);
114
141
  }
115
- } else {
116
- const dom = createDOMNode(children, elementNamespace);
117
- if (dom) el.appendChild(dom);
118
142
  }
143
+ return el;
144
+ } catch (error) {
145
+ cleanupFailedDOMConstruction(el);
146
+ throw error;
119
147
  }
120
- return el;
121
148
  }
122
149
  function createFragmentElement(node, props, parentNamespace) {
123
150
  const fragment = document.createDocumentFragment();
124
151
  const children = props.children ?? node.children;
125
- if (children) if (Array.isArray(children)) {
126
- maybeWarnMissingKeys(children);
127
- for (const child of children) {
128
- const dom = createDOMNode(child, parentNamespace);
152
+ try {
153
+ if (children) if (Array.isArray(children)) {
154
+ maybeWarnMissingKeys(children);
155
+ for (const child of children) {
156
+ const dom = createDOMNode(child, parentNamespace);
157
+ if (dom) fragment.appendChild(dom);
158
+ }
159
+ } else {
160
+ const dom = createDOMNode(children, parentNamespace);
129
161
  if (dom) fragment.appendChild(dom);
130
162
  }
131
- } else {
132
- const dom = createDOMNode(children, parentNamespace);
133
- if (dom) fragment.appendChild(dom);
163
+ return fragment;
164
+ } catch (error) {
165
+ cleanupFailedDOMConstruction(fragment);
166
+ throw error;
134
167
  }
135
- return fragment;
136
168
  }
137
169
  function updateElementFromVnode(el, vnode, updateChildren = true, forceChildrenUpdate = false) {
170
+ if (updateChildren && !forceChildrenUpdate && _isDOMElement(vnode) && tryAdoptMatchingIntrinsicSubtree(el, vnode)) return;
138
171
  runRetainedElementUpdate(el, teardownNodeSubtree, () => {
139
172
  applyElementUpdateFromVnode(el, vnode, updateChildren, forceChildrenUpdate);
140
173
  });
@@ -144,6 +177,7 @@ function applyElementUpdateFromVnode(el, vnode, updateChildren, forceChildrenUpd
144
177
  const props = vnode.props || {};
145
178
  const domVNode = vnode;
146
179
  if (isHydrationSkipped(el)) {
180
+ rememberDeferredHydrationVNode(el, vnode, getCurrentInstance(), getCurrentInstance()?.ownerFrame ?? null);
147
181
  clearHydrationDeferredSubtree(el);
148
182
  return;
149
183
  }
@@ -167,8 +201,32 @@ function applyElementUpdateFromVnode(el, vnode, updateChildren, forceChildrenUpd
167
201
  updateElementChildren(el, children, forceChildrenUpdate);
168
202
  }
169
203
  }
204
+ /** @internal Activate one recorded deferred hydration boundary in place. */
205
+ function activateHydrationBoundary(element) {
206
+ const record = beginDeferredHydrationActivation(element);
207
+ if (!record?.vnode) return false;
208
+ const lifecycleBatch = beginLifecycleCommitBatch();
209
+ const listenerTransaction = beginHydrationListenerTransaction();
210
+ try {
211
+ element.removeAttribute("data-skip-hydrate");
212
+ withIntrinsicHydrationAdoption(() => {
213
+ updateElementFromVnode(element, record.vnode, true, true);
214
+ });
215
+ commitHydrationListenerTransaction(listenerTransaction);
216
+ flushLifecycleCommitBatch(lifecycleBatch);
217
+ commitDeferredHydrationActivation(record);
218
+ return true;
219
+ } catch (error) {
220
+ discardHydrationListenerTransaction(listenerTransaction);
221
+ discardLifecycleCommitBatch(lifecycleBatch);
222
+ element.setAttribute("data-skip-hydrate", "true");
223
+ rollbackDeferredHydrationActivation(record);
224
+ throw error;
225
+ }
226
+ }
170
227
  configureRendererDOMHost({
171
228
  createDOMNode,
229
+ createComponentResultNode,
172
230
  syncComponentElement,
173
231
  updateElementFromVnode,
174
232
  updateElementChildren,
@@ -176,11 +234,10 @@ configureRendererDOMHost({
176
234
  });
177
235
  configureBoundaryDOMHost({
178
236
  createDOMNode,
237
+ createResultNodeWithBlueprint: createOwnedResultNodeWithBlueprint,
179
238
  syncComponentElement,
180
239
  updateElementFromVnode,
181
240
  tryPatchStableForDirtyItem
182
241
  });
183
242
  //#endregion
184
- export { IS_DOM_AVAILABLE, createDOMNode, isBulkTextFastPathEligible, markReactivePropsDirtySource, performBulkPositionalKeyedTextUpdate, performBulkTextReplace, setStaticChildSlotsCacheEnabled, syncComponentElement, tryPatchStableForDirtyItem, updateElementChildren, updateElementFromVnode, updateUnkeyedChildren };
185
-
186
- //# sourceMappingURL=dom-internal.js.map
243
+ export { IS_DOM_AVAILABLE, activateHydrationBoundary, createDOMNode, isBulkTextFastPathEligible, markReactivePropsDirtySource, performBulkPositionalKeyedTextUpdate, performBulkTextReplace, setStaticChildSlotsCacheEnabled, syncComponentElement, tryPatchStableForDirtyItem, updateElementChildren, updateElementFromVnode, updateUnkeyedChildren };