@askrjs/askr 0.0.50 → 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 (594) 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 +5 -6
  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 +21 -11
  11. package/dist/boot/root-lifecycle.d.ts +6 -3
  12. package/dist/boot/root-lifecycle.js +18 -14
  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 +15 -0
  22. package/dist/common/invariant.js +15 -0
  23. package/dist/common/jsx.d.ts +1 -2
  24. package/dist/common/jsx.js +0 -2
  25. package/dist/{dev → common}/logger.js +5 -8
  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 +2 -16
  39. package/dist/components/error-boundary.js +2 -76
  40. package/dist/components/index.d.ts +2 -1
  41. package/dist/components/link.d.ts +2 -2
  42. package/dist/components/link.js +2 -2
  43. package/dist/control/case.d.ts +1 -2
  44. package/dist/control/case.js +1 -2
  45. package/dist/control/for.d.ts +3 -4
  46. package/dist/control/for.js +2 -4
  47. package/dist/control/shared.d.ts +1 -2
  48. package/dist/control/shared.js +0 -2
  49. package/dist/control/show.d.ts +1 -2
  50. package/dist/control/show.js +1 -2
  51. package/dist/data/data-runtime.d.ts +1 -2
  52. package/dist/data/data-runtime.js +3 -5
  53. package/dist/data/invalidation-listeners.js +0 -2
  54. package/dist/data/invalidation.d.ts +1 -2
  55. package/dist/data/invalidation.js +2 -4
  56. package/dist/data/mutation-cell.d.ts +1 -2
  57. package/dist/data/mutation-cell.js +7 -6
  58. package/dist/data/query-cell.d.ts +3 -2
  59. package/dist/data/query-cell.js +45 -11
  60. package/dist/data/query-key.js +0 -2
  61. package/dist/data/shared.js +3 -3
  62. package/dist/data/testing.js +2 -0
  63. package/dist/data/types.d.ts +1 -2
  64. package/dist/foundations/icon/icon.d.ts +1 -2
  65. package/dist/foundations/icon/icon.js +0 -2
  66. package/dist/foundations/icon/icon.types.d.ts +1 -2
  67. package/dist/foundations/index.d.ts +1 -1
  68. package/dist/foundations/index.js +1 -1
  69. package/dist/foundations/interactions/dismissable.d.ts +1 -2
  70. package/dist/foundations/interactions/dismissable.js +0 -2
  71. package/dist/foundations/interactions/focusable.d.ts +1 -2
  72. package/dist/foundations/interactions/focusable.js +0 -2
  73. package/dist/foundations/interactions/hoverable.d.ts +1 -2
  74. package/dist/foundations/interactions/hoverable.js +0 -2
  75. package/dist/foundations/interactions/interaction-policy.d.ts +1 -2
  76. package/dist/foundations/interactions/interaction-policy.js +0 -2
  77. package/dist/foundations/interactions/pressable.d.ts +1 -2
  78. package/dist/foundations/interactions/pressable.js +0 -2
  79. package/dist/foundations/interactions/roving-focus.d.ts +1 -2
  80. package/dist/foundations/interactions/roving-focus.js +0 -2
  81. package/dist/foundations/state/controllable.d.ts +1 -3
  82. package/dist/foundations/state/controllable.js +1 -2
  83. package/dist/foundations/structures/collection.d.ts +1 -2
  84. package/dist/foundations/structures/collection.js +0 -2
  85. package/dist/foundations/structures/index.d.ts +1 -1
  86. package/dist/foundations/structures/index.js +2 -1
  87. package/dist/foundations/structures/layer.d.ts +1 -2
  88. package/dist/foundations/structures/layer.js +0 -2
  89. package/dist/foundations/structures/layout.d.ts +1 -2
  90. package/dist/foundations/structures/layout.js +0 -2
  91. package/dist/foundations/structures/portal.d.ts +2 -24
  92. package/dist/foundations/structures/portal.js +3 -187
  93. package/dist/foundations/structures/presence.d.ts +1 -2
  94. package/dist/foundations/structures/presence.js +0 -2
  95. package/dist/foundations/structures/slot.d.ts +1 -2
  96. package/dist/foundations/structures/slot.js +0 -2
  97. package/dist/foundations/utilities/aria.d.ts +1 -2
  98. package/dist/foundations/utilities/aria.js +0 -2
  99. package/dist/foundations/utilities/compose-handlers.d.ts +1 -2
  100. package/dist/foundations/utilities/compose-handlers.js +0 -2
  101. package/dist/foundations/utilities/compose-ref.d.ts +1 -2
  102. package/dist/foundations/utilities/compose-ref.js +0 -2
  103. package/dist/foundations/utilities/event-types.d.ts +1 -2
  104. package/dist/foundations/utilities/merge-props.d.ts +1 -2
  105. package/dist/foundations/utilities/merge-props.js +0 -2
  106. package/dist/foundations/utilities/use-id.d.ts +1 -2
  107. package/dist/foundations/utilities/use-id.js +0 -2
  108. package/dist/fx/fx.d.ts +1 -2
  109. package/dist/fx/fx.js +2 -4
  110. package/dist/fx/index.js +1 -0
  111. package/dist/fx/noop.js +0 -2
  112. package/dist/fx/timing.d.ts +1 -2
  113. package/dist/fx/timing.js +0 -2
  114. package/dist/index.d.ts +4 -4
  115. package/dist/index.js +4 -6
  116. package/dist/jsx/types.d.ts +1 -2
  117. package/dist/jsx/utils.d.ts +1 -2
  118. package/dist/jsx/utils.js +0 -2
  119. package/dist/jsx-dev-runtime.d.ts +16 -2
  120. package/dist/jsx-dev-runtime.js +4 -12
  121. package/dist/jsx-runtime.d.ts +16 -2
  122. package/dist/jsx-runtime.js +16 -24
  123. package/dist/jsx-runtime2.d.ts +1 -1
  124. package/dist/renderer/attributes.js +29 -6
  125. package/dist/renderer/boundaries.js +50 -174
  126. package/dist/renderer/boundary-materialization.js +72 -0
  127. package/dist/renderer/boundary-range-adoption.js +76 -0
  128. package/dist/renderer/boundary-range-sync.js +101 -0
  129. package/dist/renderer/boundary-state.js +50 -0
  130. package/dist/renderer/child-shape.js +2 -4
  131. package/dist/renderer/children-fastpath.js +149 -0
  132. package/dist/renderer/children.js +3 -140
  133. package/dist/renderer/cleanup.js +72 -15
  134. package/dist/renderer/component-host-cleanup.js +124 -49
  135. package/dist/renderer/component-host-instances.js +60 -9
  136. package/dist/renderer/component-host-replacement.js +105 -0
  137. package/dist/renderer/component-host-results.js +138 -0
  138. package/dist/renderer/component-host.js +95 -170
  139. package/dist/renderer/dom-host.js +0 -2
  140. package/dist/renderer/dom-internal.js +115 -57
  141. package/dist/renderer/dom-range.js +161 -0
  142. package/dist/renderer/dom.js +7 -5
  143. package/dist/renderer/element-children.js +112 -32
  144. package/dist/renderer/error-boundary-dom.js +70 -13
  145. package/dist/renderer/evaluate-dom-range.js +3 -4
  146. package/dist/renderer/evaluate-reconcile.js +18 -42
  147. package/dist/renderer/evaluate.js +14 -3
  148. package/dist/renderer/fastpath.js +7 -14
  149. package/dist/renderer/for-commit-dom-map.js +6 -18
  150. package/dist/renderer/for-commit-removal.js +8 -17
  151. package/dist/renderer/for-commit-reorder.js +2 -4
  152. package/dist/renderer/for-commit.js +173 -45
  153. package/dist/renderer/hydration-boundaries.js +60 -0
  154. package/dist/renderer/hydration-listener-transaction.js +49 -0
  155. package/dist/renderer/index.js +11 -8
  156. package/dist/renderer/intrinsic-blueprint-analysis.js +202 -0
  157. package/dist/renderer/intrinsic-blueprint-bindings.js +152 -0
  158. package/dist/renderer/intrinsic-blueprint-materialization.js +100 -0
  159. package/dist/renderer/intrinsic-blueprint.js +30 -0
  160. package/dist/renderer/intrinsic-hydration-adoption.js +66 -0
  161. package/dist/renderer/keyed-children.js +3 -9
  162. package/dist/renderer/keyed.js +10 -10
  163. package/dist/renderer/namespaces.js +0 -2
  164. package/dist/renderer/prop-bindings.js +59 -24
  165. package/dist/renderer/reactive-child-dom.js +10 -4
  166. package/dist/renderer/reactive-child-sources.js +0 -2
  167. package/dist/renderer/reactive-children.js +33 -24
  168. package/dist/renderer/reconcile-commit.js +0 -2
  169. package/dist/renderer/reconcile-fastpaths.js +6 -12
  170. package/dist/renderer/reconcile-resolution.js +32 -56
  171. package/dist/renderer/reconcile.js +0 -2
  172. package/dist/renderer/retained-element-rollback.js +161 -149
  173. package/dist/renderer/stable-patch.js +5 -7
  174. package/dist/renderer/static-reuse.js +0 -2
  175. package/dist/renderer/utils.js +20 -10
  176. package/dist/resources/index.js +1 -2
  177. package/dist/router/access.js +0 -2
  178. package/dist/router/activity.d.ts +1 -2
  179. package/dist/router/activity.js +20 -24
  180. package/dist/router/authoring.d.ts +1 -2
  181. package/dist/router/authoring.js +1 -3
  182. package/dist/router/index.d.ts +1 -1
  183. package/dist/router/internal-types.d.ts +1 -2
  184. package/dist/router/lazy.d.ts +1 -2
  185. package/dist/router/lazy.js +0 -2
  186. package/dist/router/manifest.d.ts +1 -2
  187. package/dist/router/manifest.js +0 -2
  188. package/dist/router/match.js +0 -2
  189. package/dist/router/navigate.d.ts +1 -2
  190. package/dist/router/navigate.js +5 -8
  191. package/dist/router/navigation-registry.d.ts +1 -2
  192. package/dist/router/navigation-registry.js +1 -3
  193. package/dist/router/navigation-scroll.d.ts +1 -2
  194. package/dist/router/navigation-scroll.js +0 -2
  195. package/dist/router/navigation-targets.d.ts +3 -4
  196. package/dist/router/navigation-targets.js +425 -44
  197. package/dist/router/policy.d.ts +1 -2
  198. package/dist/router/policy.js +0 -2
  199. package/dist/router/rendering.d.ts +1 -2
  200. package/dist/router/rendering.js +5 -3
  201. package/dist/router/resolution.d.ts +2 -16
  202. package/dist/router/resolution.js +6 -175
  203. package/dist/router/route-context.js +0 -2
  204. package/dist/router/route-matching.d.ts +19 -0
  205. package/dist/router/route-matching.js +173 -0
  206. package/dist/router/route-query.d.ts +1 -2
  207. package/dist/router/route-query.js +1 -3
  208. package/dist/router/route.js +4 -2
  209. package/dist/router/store.d.ts +1 -2
  210. package/dist/router/store.js +0 -2
  211. package/dist/router/testing.js +4 -0
  212. package/dist/runtime/access.d.ts +19 -0
  213. package/dist/runtime/access.js +0 -2
  214. package/dist/runtime/child-scope.d.ts +21 -2
  215. package/dist/runtime/child-scope.js +101 -54
  216. package/dist/runtime/component-cleanup.d.ts +1 -2
  217. package/dist/runtime/component-cleanup.js +3 -5
  218. package/dist/runtime/component-commit.js +26 -24
  219. package/dist/runtime/component-facade.js +5 -3
  220. package/dist/runtime/component-internal.d.ts +12 -7
  221. package/dist/runtime/component-internal.js +64 -46
  222. package/dist/runtime/component-lifecycle.d.ts +2 -41
  223. package/dist/runtime/component-lifecycle.js +6 -149
  224. package/dist/runtime/component-scope.d.ts +4 -5
  225. package/dist/runtime/component-scope.js +27 -8
  226. package/dist/runtime/component.js +4 -3
  227. package/dist/runtime/context.d.ts +5 -2
  228. package/dist/runtime/context.js +29 -3
  229. package/dist/runtime/control.d.ts +22 -3
  230. package/dist/runtime/control.js +168 -55
  231. package/dist/runtime/derive.d.ts +1 -2
  232. package/dist/runtime/derive.js +0 -2
  233. package/dist/runtime/dev-namespace.d.ts +30 -0
  234. package/dist/runtime/dev-namespace.js +32 -25
  235. package/dist/runtime/effect.d.ts +8 -5
  236. package/dist/runtime/effect.js +158 -75
  237. package/dist/runtime/error-boundary.d.ts +4 -0
  238. package/dist/runtime/error-boundary.js +29 -0
  239. package/dist/runtime/events.d.ts +58 -0
  240. package/dist/runtime/events.js +67 -70
  241. package/dist/runtime/execution-model.d.ts +6 -0
  242. package/dist/runtime/execution-model.js +0 -2
  243. package/dist/runtime/fastlane.d.ts +33 -0
  244. package/dist/runtime/fastlane.js +0 -2
  245. package/dist/runtime/for-bench.d.ts +1 -2
  246. package/dist/runtime/for-bench.js +9 -167
  247. package/dist/runtime/for-internal.d.ts +73 -10
  248. package/dist/runtime/for-internal.js +201 -14
  249. package/dist/runtime/for-reconcile.d.ts +1 -2
  250. package/dist/runtime/for-reconcile.js +76 -23
  251. package/dist/runtime/for-scopes.d.ts +5 -5
  252. package/dist/runtime/for-scopes.js +168 -48
  253. package/dist/runtime/for-signals.d.ts +14 -5
  254. package/dist/runtime/for-signals.js +157 -83
  255. package/dist/runtime/for-types.d.ts +8 -0
  256. package/dist/runtime/for.d.ts +2 -2
  257. package/dist/runtime/for.js +3 -3
  258. package/dist/runtime/index.d.ts +24 -0
  259. package/dist/runtime/index.js +33 -0
  260. package/dist/runtime/lifecycle-batch.d.ts +59 -0
  261. package/dist/runtime/lifecycle-batch.js +178 -0
  262. package/dist/runtime/lifecycle-operation-settlement.d.ts +5 -0
  263. package/dist/runtime/lifecycle-operation-settlement.js +51 -0
  264. package/dist/runtime/lifecycle-operations.d.ts +1 -2
  265. package/dist/runtime/lifecycle-operations.js +5 -6
  266. package/dist/runtime/perf-metrics.d.ts +27 -0
  267. package/dist/runtime/perf-metrics.js +4 -68
  268. package/dist/runtime/portal.d.ts +21 -0
  269. package/dist/runtime/portal.js +305 -0
  270. package/dist/runtime/readable.d.ts +9 -4
  271. package/dist/runtime/readable.js +41 -17
  272. package/dist/runtime/resource-cell.js +3 -5
  273. package/dist/runtime/resource-operation.d.ts +1 -2
  274. package/dist/runtime/resource-operation.js +38 -35
  275. package/dist/runtime/runtime.d.ts +2 -3
  276. package/dist/runtime/runtime.js +0 -2
  277. package/dist/runtime/scheduler.d.ts +1 -2
  278. package/dist/runtime/scheduler.js +10 -13
  279. package/dist/runtime/selector-store.js +22 -0
  280. package/dist/runtime/selector.d.ts +1 -2
  281. package/dist/runtime/selector.js +6 -29
  282. package/dist/runtime/snapshot-source.d.ts +1 -2
  283. package/dist/runtime/snapshot-source.js +0 -2
  284. package/dist/runtime/state.d.ts +1 -2
  285. package/dist/runtime/state.js +1 -3
  286. package/dist/ssg/batch-render.js +0 -2
  287. package/dist/ssg/create-static-gen.d.ts +4 -2
  288. package/dist/ssg/create-static-gen.js +66 -14
  289. package/dist/ssg/generate-metadata.js +0 -2
  290. package/dist/ssg/generation-plan.js +0 -2
  291. package/dist/ssg/incremental-manifest.js +1 -3
  292. package/dist/ssg/resolve-ssg-data.js +0 -2
  293. package/dist/ssg/route-utils.js +0 -2
  294. package/dist/ssg/static-routes.js +1 -2
  295. package/dist/ssg/types.d.ts +2 -3
  296. package/dist/ssg/write-static-files.js +16 -12
  297. package/dist/ssr/attrs.js +0 -2
  298. package/dist/ssr/boundaries.js +17 -6
  299. package/dist/ssr/component-runtime.js +4 -30
  300. package/dist/ssr/context.d.ts +1 -2
  301. package/dist/ssr/context.js +0 -2
  302. package/dist/ssr/errors.d.ts +1 -2
  303. package/dist/ssr/errors.js +0 -2
  304. package/dist/ssr/escape.js +0 -2
  305. package/dist/ssr/hydration-data.js +0 -2
  306. package/dist/ssr/hydration-verify.d.ts +1 -2
  307. package/dist/ssr/hydration-verify.js +34 -7
  308. package/dist/ssr/index-internal.d.ts +1 -2
  309. package/dist/ssr/index-internal.js +0 -2
  310. package/dist/ssr/render-keys.js +0 -2
  311. package/dist/ssr/render-resolved.d.ts +1 -2
  312. package/dist/ssr/render-resolved.js +1 -3
  313. package/dist/ssr/render-sync.d.ts +1 -2
  314. package/dist/ssr/render-sync.js +28 -20
  315. package/dist/ssr/route-policy-resolution.js +2 -3
  316. package/dist/ssr/route-render.d.ts +1 -2
  317. package/dist/ssr/route-render.js +2 -3
  318. package/dist/ssr/sink.d.ts +1 -2
  319. package/dist/ssr/sink.js +0 -2
  320. package/dist/ssr/types.d.ts +1 -2
  321. package/dist/ssr/verify-hydration.js +0 -2
  322. package/dist/testing/index.d.ts +1 -2
  323. package/dist/testing/index.js +3 -4
  324. package/package.json +60 -47
  325. package/dist/bench/components/benchmark-row.d.ts.map +0 -1
  326. package/dist/bench/components/benchmark-row.js.map +0 -1
  327. package/dist/bench/components/benchmark-table.js.map +0 -1
  328. package/dist/benchmark.d.ts.map +0 -1
  329. package/dist/benchmark.js.map +0 -1
  330. package/dist/bin/askr-ssg.d.ts.map +0 -1
  331. package/dist/bin/askr-ssg.js.map +0 -1
  332. package/dist/boot/hydration.js.map +0 -1
  333. package/dist/boot/index.d.ts.map +0 -1
  334. package/dist/boot/index.js.map +0 -1
  335. package/dist/boot/root-lifecycle.d.ts.map +0 -1
  336. package/dist/boot/root-lifecycle.js.map +0 -1
  337. package/dist/boot/route-startup.js.map +0 -1
  338. package/dist/boot/types.d.ts.map +0 -1
  339. package/dist/common/attr-names.js.map +0 -1
  340. package/dist/common/component.d.ts.map +0 -1
  341. package/dist/common/control.d.ts.map +0 -1
  342. package/dist/common/control.js.map +0 -1
  343. package/dist/common/env.js.map +0 -1
  344. package/dist/common/jsx.d.ts.map +0 -1
  345. package/dist/common/jsx.js.map +0 -1
  346. package/dist/common/promise.js.map +0 -1
  347. package/dist/common/props.d.ts.map +0 -1
  348. package/dist/common/render-context.js.map +0 -1
  349. package/dist/common/route-activity.js.map +0 -1
  350. package/dist/common/router-internal.js.map +0 -1
  351. package/dist/common/router.d.ts.map +0 -1
  352. package/dist/common/ssr-errors.d.ts.map +0 -1
  353. package/dist/common/ssr-errors.js.map +0 -1
  354. package/dist/common/ssr.d.ts.map +0 -1
  355. package/dist/common/ssr.js.map +0 -1
  356. package/dist/common/vnode.d.ts.map +0 -1
  357. package/dist/common/vnode.js.map +0 -1
  358. package/dist/components/error-boundary.d.ts.map +0 -1
  359. package/dist/components/error-boundary.js.map +0 -1
  360. package/dist/components/link.d.ts.map +0 -1
  361. package/dist/components/link.js.map +0 -1
  362. package/dist/control/case.d.ts.map +0 -1
  363. package/dist/control/case.js.map +0 -1
  364. package/dist/control/for.d.ts.map +0 -1
  365. package/dist/control/for.js.map +0 -1
  366. package/dist/control/shared.d.ts.map +0 -1
  367. package/dist/control/shared.js.map +0 -1
  368. package/dist/control/show.d.ts.map +0 -1
  369. package/dist/control/show.js.map +0 -1
  370. package/dist/data/data-runtime.d.ts.map +0 -1
  371. package/dist/data/data-runtime.js.map +0 -1
  372. package/dist/data/invalidation-listeners.js.map +0 -1
  373. package/dist/data/invalidation.d.ts.map +0 -1
  374. package/dist/data/invalidation.js.map +0 -1
  375. package/dist/data/mutation-cell.d.ts.map +0 -1
  376. package/dist/data/mutation-cell.js.map +0 -1
  377. package/dist/data/query-cell.d.ts.map +0 -1
  378. package/dist/data/query-cell.js.map +0 -1
  379. package/dist/data/query-key.js.map +0 -1
  380. package/dist/data/shared.js.map +0 -1
  381. package/dist/data/types.d.ts.map +0 -1
  382. package/dist/dev/invariant.js +0 -29
  383. package/dist/dev/invariant.js.map +0 -1
  384. package/dist/dev/logger.js.map +0 -1
  385. package/dist/foundations/icon/icon.d.ts.map +0 -1
  386. package/dist/foundations/icon/icon.js.map +0 -1
  387. package/dist/foundations/icon/icon.types.d.ts.map +0 -1
  388. package/dist/foundations/interactions/dismissable.d.ts.map +0 -1
  389. package/dist/foundations/interactions/dismissable.js.map +0 -1
  390. package/dist/foundations/interactions/focusable.d.ts.map +0 -1
  391. package/dist/foundations/interactions/focusable.js.map +0 -1
  392. package/dist/foundations/interactions/hoverable.d.ts.map +0 -1
  393. package/dist/foundations/interactions/hoverable.js.map +0 -1
  394. package/dist/foundations/interactions/interaction-policy.d.ts.map +0 -1
  395. package/dist/foundations/interactions/interaction-policy.js.map +0 -1
  396. package/dist/foundations/interactions/pressable.d.ts.map +0 -1
  397. package/dist/foundations/interactions/pressable.js.map +0 -1
  398. package/dist/foundations/interactions/roving-focus.d.ts.map +0 -1
  399. package/dist/foundations/interactions/roving-focus.js.map +0 -1
  400. package/dist/foundations/state/controllable.d.ts.map +0 -1
  401. package/dist/foundations/state/controllable.js.map +0 -1
  402. package/dist/foundations/structures/collection.d.ts.map +0 -1
  403. package/dist/foundations/structures/collection.js.map +0 -1
  404. package/dist/foundations/structures/layer.d.ts.map +0 -1
  405. package/dist/foundations/structures/layer.js.map +0 -1
  406. package/dist/foundations/structures/layout.d.ts.map +0 -1
  407. package/dist/foundations/structures/layout.js.map +0 -1
  408. package/dist/foundations/structures/portal.d.ts.map +0 -1
  409. package/dist/foundations/structures/portal.js.map +0 -1
  410. package/dist/foundations/structures/presence.d.ts.map +0 -1
  411. package/dist/foundations/structures/presence.js.map +0 -1
  412. package/dist/foundations/structures/slot.d.ts.map +0 -1
  413. package/dist/foundations/structures/slot.js.map +0 -1
  414. package/dist/foundations/utilities/aria.d.ts.map +0 -1
  415. package/dist/foundations/utilities/aria.js.map +0 -1
  416. package/dist/foundations/utilities/compose-handlers.d.ts.map +0 -1
  417. package/dist/foundations/utilities/compose-handlers.js.map +0 -1
  418. package/dist/foundations/utilities/compose-ref.d.ts.map +0 -1
  419. package/dist/foundations/utilities/compose-ref.js.map +0 -1
  420. package/dist/foundations/utilities/event-types.d.ts.map +0 -1
  421. package/dist/foundations/utilities/merge-props.d.ts.map +0 -1
  422. package/dist/foundations/utilities/merge-props.js.map +0 -1
  423. package/dist/foundations/utilities/use-id.d.ts.map +0 -1
  424. package/dist/foundations/utilities/use-id.js.map +0 -1
  425. package/dist/fx/fx.d.ts.map +0 -1
  426. package/dist/fx/fx.js.map +0 -1
  427. package/dist/fx/noop.js.map +0 -1
  428. package/dist/fx/timing.d.ts.map +0 -1
  429. package/dist/fx/timing.js.map +0 -1
  430. package/dist/index.js.map +0 -1
  431. package/dist/jsx/types.d.ts.map +0 -1
  432. package/dist/jsx/utils.d.ts.map +0 -1
  433. package/dist/jsx/utils.js.map +0 -1
  434. package/dist/jsx-dev-runtime.d.ts.map +0 -1
  435. package/dist/jsx-dev-runtime.js.map +0 -1
  436. package/dist/jsx-runtime.d.ts.map +0 -1
  437. package/dist/jsx-runtime.js.map +0 -1
  438. package/dist/renderer/attributes.js.map +0 -1
  439. package/dist/renderer/boundaries.js.map +0 -1
  440. package/dist/renderer/child-shape.js.map +0 -1
  441. package/dist/renderer/children.js.map +0 -1
  442. package/dist/renderer/cleanup.js.map +0 -1
  443. package/dist/renderer/component-host-cleanup.js.map +0 -1
  444. package/dist/renderer/component-host-instances.js.map +0 -1
  445. package/dist/renderer/component-host.js.map +0 -1
  446. package/dist/renderer/dom-host.js.map +0 -1
  447. package/dist/renderer/dom-internal.js.map +0 -1
  448. package/dist/renderer/element-children.js.map +0 -1
  449. package/dist/renderer/error-boundary-dom.js.map +0 -1
  450. package/dist/renderer/evaluate-dom-range.js.map +0 -1
  451. package/dist/renderer/evaluate-reconcile.js.map +0 -1
  452. package/dist/renderer/evaluate.js.map +0 -1
  453. package/dist/renderer/fastpath.js.map +0 -1
  454. package/dist/renderer/for-commit-dom-map.js.map +0 -1
  455. package/dist/renderer/for-commit-removal.js.map +0 -1
  456. package/dist/renderer/for-commit-reorder.js.map +0 -1
  457. package/dist/renderer/for-commit.js.map +0 -1
  458. package/dist/renderer/index.js.map +0 -1
  459. package/dist/renderer/keyed-children.js.map +0 -1
  460. package/dist/renderer/keyed.js.map +0 -1
  461. package/dist/renderer/namespaces.js.map +0 -1
  462. package/dist/renderer/prop-bindings.js.map +0 -1
  463. package/dist/renderer/reactive-child-dom.js.map +0 -1
  464. package/dist/renderer/reactive-child-sources.js.map +0 -1
  465. package/dist/renderer/reactive-children.js.map +0 -1
  466. package/dist/renderer/reconcile-commit.js.map +0 -1
  467. package/dist/renderer/reconcile-fastpaths.js.map +0 -1
  468. package/dist/renderer/reconcile-resolution.js.map +0 -1
  469. package/dist/renderer/reconcile.js.map +0 -1
  470. package/dist/renderer/retained-element-rollback.js.map +0 -1
  471. package/dist/renderer/stable-patch.js.map +0 -1
  472. package/dist/renderer/static-reuse.js.map +0 -1
  473. package/dist/renderer/utils.js.map +0 -1
  474. package/dist/router/access.js.map +0 -1
  475. package/dist/router/activity.d.ts.map +0 -1
  476. package/dist/router/activity.js.map +0 -1
  477. package/dist/router/authoring.d.ts.map +0 -1
  478. package/dist/router/authoring.js.map +0 -1
  479. package/dist/router/internal-types.d.ts.map +0 -1
  480. package/dist/router/lazy.d.ts.map +0 -1
  481. package/dist/router/lazy.js.map +0 -1
  482. package/dist/router/manifest.d.ts.map +0 -1
  483. package/dist/router/manifest.js.map +0 -1
  484. package/dist/router/match.js.map +0 -1
  485. package/dist/router/navigate.d.ts.map +0 -1
  486. package/dist/router/navigate.js.map +0 -1
  487. package/dist/router/navigation-registry.d.ts.map +0 -1
  488. package/dist/router/navigation-registry.js.map +0 -1
  489. package/dist/router/navigation-scroll.d.ts.map +0 -1
  490. package/dist/router/navigation-scroll.js.map +0 -1
  491. package/dist/router/navigation-targets.d.ts.map +0 -1
  492. package/dist/router/navigation-targets.js.map +0 -1
  493. package/dist/router/policy.d.ts.map +0 -1
  494. package/dist/router/policy.js.map +0 -1
  495. package/dist/router/rendering.d.ts.map +0 -1
  496. package/dist/router/rendering.js.map +0 -1
  497. package/dist/router/resolution.d.ts.map +0 -1
  498. package/dist/router/resolution.js.map +0 -1
  499. package/dist/router/route-context.js.map +0 -1
  500. package/dist/router/route-query.d.ts.map +0 -1
  501. package/dist/router/route-query.js.map +0 -1
  502. package/dist/router/store.d.ts.map +0 -1
  503. package/dist/router/store.js.map +0 -1
  504. package/dist/runtime/access.js.map +0 -1
  505. package/dist/runtime/child-scope.d.ts.map +0 -1
  506. package/dist/runtime/child-scope.js.map +0 -1
  507. package/dist/runtime/component-cleanup.d.ts.map +0 -1
  508. package/dist/runtime/component-cleanup.js.map +0 -1
  509. package/dist/runtime/component-commit.js.map +0 -1
  510. package/dist/runtime/component-contracts.js +0 -5
  511. package/dist/runtime/component-internal.d.ts.map +0 -1
  512. package/dist/runtime/component-internal.js.map +0 -1
  513. package/dist/runtime/component-lifecycle.d.ts.map +0 -1
  514. package/dist/runtime/component-lifecycle.js.map +0 -1
  515. package/dist/runtime/component-scope.d.ts.map +0 -1
  516. package/dist/runtime/component-scope.js.map +0 -1
  517. package/dist/runtime/context.d.ts.map +0 -1
  518. package/dist/runtime/context.js.map +0 -1
  519. package/dist/runtime/control.d.ts.map +0 -1
  520. package/dist/runtime/control.js.map +0 -1
  521. package/dist/runtime/derive.d.ts.map +0 -1
  522. package/dist/runtime/derive.js.map +0 -1
  523. package/dist/runtime/dev-namespace.js.map +0 -1
  524. package/dist/runtime/effect.d.ts.map +0 -1
  525. package/dist/runtime/effect.js.map +0 -1
  526. package/dist/runtime/events.js.map +0 -1
  527. package/dist/runtime/execution-model.js.map +0 -1
  528. package/dist/runtime/fastlane.js.map +0 -1
  529. package/dist/runtime/for-bench.d.ts.map +0 -1
  530. package/dist/runtime/for-bench.js.map +0 -1
  531. package/dist/runtime/for-internal.d.ts.map +0 -1
  532. package/dist/runtime/for-internal.js.map +0 -1
  533. package/dist/runtime/for-reconcile.d.ts.map +0 -1
  534. package/dist/runtime/for-reconcile.js.map +0 -1
  535. package/dist/runtime/for-scopes.d.ts.map +0 -1
  536. package/dist/runtime/for-scopes.js.map +0 -1
  537. package/dist/runtime/for-signals.d.ts.map +0 -1
  538. package/dist/runtime/for-signals.js.map +0 -1
  539. package/dist/runtime/lifecycle-operations.d.ts.map +0 -1
  540. package/dist/runtime/lifecycle-operations.js.map +0 -1
  541. package/dist/runtime/perf-metrics.js.map +0 -1
  542. package/dist/runtime/readable.d.ts.map +0 -1
  543. package/dist/runtime/readable.js.map +0 -1
  544. package/dist/runtime/resource-cell.js.map +0 -1
  545. package/dist/runtime/resource-operation.d.ts.map +0 -1
  546. package/dist/runtime/resource-operation.js.map +0 -1
  547. package/dist/runtime/runtime.d.ts.map +0 -1
  548. package/dist/runtime/runtime.js.map +0 -1
  549. package/dist/runtime/scheduler.d.ts.map +0 -1
  550. package/dist/runtime/scheduler.js.map +0 -1
  551. package/dist/runtime/selector.d.ts.map +0 -1
  552. package/dist/runtime/selector.js.map +0 -1
  553. package/dist/runtime/snapshot-source.d.ts.map +0 -1
  554. package/dist/runtime/snapshot-source.js.map +0 -1
  555. package/dist/runtime/state.d.ts.map +0 -1
  556. package/dist/runtime/state.js.map +0 -1
  557. package/dist/ssg/batch-render.js.map +0 -1
  558. package/dist/ssg/create-static-gen.d.ts.map +0 -1
  559. package/dist/ssg/create-static-gen.js.map +0 -1
  560. package/dist/ssg/generate-metadata.js.map +0 -1
  561. package/dist/ssg/generation-plan.js.map +0 -1
  562. package/dist/ssg/incremental-manifest.js.map +0 -1
  563. package/dist/ssg/resolve-ssg-data.js.map +0 -1
  564. package/dist/ssg/route-utils.js.map +0 -1
  565. package/dist/ssg/static-routes.js.map +0 -1
  566. package/dist/ssg/types.d.ts.map +0 -1
  567. package/dist/ssg/write-static-files.js.map +0 -1
  568. package/dist/ssr/attrs.js.map +0 -1
  569. package/dist/ssr/boundaries.js.map +0 -1
  570. package/dist/ssr/component-runtime.js.map +0 -1
  571. package/dist/ssr/context.d.ts.map +0 -1
  572. package/dist/ssr/context.js.map +0 -1
  573. package/dist/ssr/errors.d.ts.map +0 -1
  574. package/dist/ssr/errors.js.map +0 -1
  575. package/dist/ssr/escape.js.map +0 -1
  576. package/dist/ssr/hydration-data.js.map +0 -1
  577. package/dist/ssr/hydration-verify.d.ts.map +0 -1
  578. package/dist/ssr/hydration-verify.js.map +0 -1
  579. package/dist/ssr/index-internal.d.ts.map +0 -1
  580. package/dist/ssr/index-internal.js.map +0 -1
  581. package/dist/ssr/render-keys.js.map +0 -1
  582. package/dist/ssr/render-resolved.d.ts.map +0 -1
  583. package/dist/ssr/render-resolved.js.map +0 -1
  584. package/dist/ssr/render-sync.d.ts.map +0 -1
  585. package/dist/ssr/render-sync.js.map +0 -1
  586. package/dist/ssr/route-policy-resolution.js.map +0 -1
  587. package/dist/ssr/route-render.d.ts.map +0 -1
  588. package/dist/ssr/route-render.js.map +0 -1
  589. package/dist/ssr/sink.d.ts.map +0 -1
  590. package/dist/ssr/sink.js.map +0 -1
  591. package/dist/ssr/types.d.ts.map +0 -1
  592. package/dist/ssr/verify-hydration.js.map +0 -1
  593. package/dist/testing/index.d.ts.map +0 -1
  594. package/dist/testing/index.js.map +0 -1
@@ -1,13 +1,14 @@
1
1
  import { getRuntimeEnv } from "../common/env.js";
2
- import { logger } from "../dev/logger.js";
2
+ import { logger } from "../common/logger.js";
3
3
  import { isRuntimeSchedulerExecuting } from "../runtime/access.js";
4
4
  import { incDevCounter, setDevValue } from "../runtime/dev-namespace.js";
5
5
  import { isBulkCommitActive, markFastPathApplied } from "../runtime/fastlane.js";
6
+ import { recordBenchCounter, recordBenchEvent } from "../runtime/for-bench.js";
7
+ import "../runtime/index.js";
6
8
  import { cleanupInstanceIfPresent, removeAllListeners } from "./cleanup.js";
7
9
  import "./env.js";
8
- import { canUseDirectReplaceChildrenSpread } from "./utils.js";
10
+ import { canUseDirectReplaceChildrenSpread, getMaterializedKey } from "./utils.js";
9
11
  import { _reconcilerRecordedParents } from "./keyed.js";
10
- import { recordBenchCounter, recordBenchEvent } from "../runtime/for-bench.js";
11
12
  import { createDOMNode, updateElementFromVnode } from "./dom-internal.js";
12
13
  import "./dom.js";
13
14
  function applyRendererFastPath(parent, keyedVnodes, oldKeyMap) {
@@ -26,12 +27,8 @@ function applyRendererFastPath(parent, keyedVnodes, oldKeyMap) {
26
27
  localOldKeyMap = /* @__PURE__ */ new Map();
27
28
  try {
28
29
  for (let ch = parent.firstElementChild; ch; ch = ch.nextElementSibling) {
29
- const k = ch.getAttribute("data-key");
30
- if (k !== null) {
31
- localOldKeyMap.set(k, ch);
32
- const n = Number(k);
33
- if (!Number.isNaN(n)) localOldKeyMap.set(n, ch);
34
- }
30
+ const key = getMaterializedKey(ch);
31
+ if (key !== void 0) localOldKeyMap.set(key, ch);
35
32
  }
36
33
  } catch (e) {
37
34
  localOldKeyMap = void 0;
@@ -46,11 +43,9 @@ function applyRendererFastPath(parent, keyedVnodes, oldKeyMap) {
46
43
  mapLookups++;
47
44
  let el;
48
45
  if (totalKeyed <= 20 && parentChildrenArr) {
49
- const ks = String(key);
50
46
  for (let j = 0; j < parentChildrenArr.length; j++) {
51
47
  const ch = parentChildrenArr[j];
52
- const k = ch.getAttribute("data-key");
53
- if (k !== null && (k === ks || Number(k) === key)) {
48
+ if (getMaterializedKey(ch) === key) {
54
49
  el = ch;
55
50
  break;
56
51
  }
@@ -145,5 +140,3 @@ function applyRendererFastPath(parent, keyedVnodes, oldKeyMap) {
145
140
  }
146
141
  //#endregion
147
142
  export { applyRendererFastPath };
148
-
149
- //# sourceMappingURL=fastpath.js.map
@@ -1,3 +1,4 @@
1
+ import { getMaterializedKey } from "./utils.js";
1
2
  import { keyedElements } from "./keyed.js";
2
3
  //#region src/renderer/for-commit-dom-map.ts
3
4
  function getOrBuildDomKeyMap(parent) {
@@ -5,12 +6,8 @@ function getOrBuildDomKeyMap(parent) {
5
6
  if (!keyMap) {
6
7
  keyMap = /* @__PURE__ */ new Map();
7
8
  for (let child = parent.firstElementChild; child; child = child.nextElementSibling) {
8
- const key = child.getAttribute("data-key");
9
- if (key !== null) {
10
- keyMap.set(key, child);
11
- const numericKey = Number(key);
12
- if (!Number.isNaN(numericKey)) keyMap.set(numericKey, child);
13
- }
9
+ const key = getMaterializedKey(child);
10
+ if (key !== void 0) keyMap.set(key, child);
14
11
  }
15
12
  if (keyMap.size > 0) keyedElements.set(parent, keyMap);
16
13
  }
@@ -22,7 +19,7 @@ function hydrateExistingForDomInOrder(parent, forState) {
22
19
  const itemKey = forState.orderedKeys[i];
23
20
  const itemInstance = forState.items.get(itemKey);
24
21
  const currentDom = parent.children[i];
25
- if (!itemInstance || currentDom.getAttribute("data-key") !== String(itemKey)) return false;
22
+ if (!itemInstance || getMaterializedKey(currentDom) !== itemKey) return false;
26
23
  itemInstance.scope.dom = currentDom;
27
24
  itemInstance.scope.needsDomUpdate = true;
28
25
  }
@@ -30,13 +27,6 @@ function hydrateExistingForDomInOrder(parent, forState) {
30
27
  }
31
28
  function syncKeyedMapFromForState(parent, forState, strategy, removedNodes) {
32
29
  const existing = keyedElements.get(parent);
33
- const ensureMapEntry = (map, key, element) => {
34
- map.set(key, element);
35
- const keyString = String(key);
36
- map.set(keyString, element);
37
- const keyNumber = Number(keyString);
38
- if (!Number.isNaN(keyNumber)) map.set(keyNumber, element);
39
- };
40
30
  if (strategy === "SWAP") {
41
31
  if (existing) return;
42
32
  }
@@ -60,7 +50,7 @@ function syncKeyedMapFromForState(parent, forState, strategy, removedNodes) {
60
50
  const key = forState.orderedKeys[i];
61
51
  if (key === null || existing.has(key)) continue;
62
52
  const itemInstance = forState.items.get(key);
63
- if (itemInstance?.scope.dom instanceof Element) ensureMapEntry(existing, key, itemInstance.scope.dom);
53
+ if (itemInstance?.scope.dom instanceof Element) existing.set(key, itemInstance.scope.dom);
64
54
  }
65
55
  if (existing.size > 0) keyedElements.set(parent, existing);
66
56
  else keyedElements.delete(parent);
@@ -72,12 +62,10 @@ function syncKeyedMapFromForState(parent, forState, strategy, removedNodes) {
72
62
  const key = forState.orderedKeys[i];
73
63
  if (key === null) continue;
74
64
  const itemInstance = forState.items.get(key);
75
- if (itemInstance?.scope.dom instanceof Element) ensureMapEntry(nextMap, key, itemInstance.scope.dom);
65
+ if (itemInstance?.scope.dom instanceof Element) nextMap.set(key, itemInstance.scope.dom);
76
66
  }
77
67
  if (nextMap.size > 0) keyedElements.set(parent, nextMap);
78
68
  else keyedElements.delete(parent);
79
69
  }
80
70
  //#endregion
81
71
  export { getOrBuildDomKeyMap, hydrateExistingForDomInOrder, syncKeyedMapFromForState };
82
-
83
- //# sourceMappingURL=for-commit-dom-map.js.map
@@ -1,36 +1,27 @@
1
+ import "../runtime/for-bench.js";
2
+ import "../runtime/index.js";
1
3
  import { teardownNodeSubtree } from "./cleanup.js";
2
- import { recordBenchCounter, recordBenchEvent, withBenchMetricScope } from "../runtime/for-bench.js";
3
- import "../runtime/for.js";
4
- //#region src/renderer/for-commit-removal.ts
5
- function removeForBoundaryNodes(parent, removedNodes) {
4
+ function removeForBoundaryNodes(parent, removedNodes, options = {}) {
5
+ const shouldTeardown = options.teardown !== false;
6
6
  if (removedNodes.length > 0 && removedNodes.length === parent.childNodes.length) {
7
7
  let canBulkClear = true;
8
- for (let i = 0; i < removedNodes.length; i++) if (removedNodes[i].parentNode !== parent) {
8
+ for (let i = 0; i < removedNodes.length; i++) if (removedNodes[i] !== parent.childNodes[i]) {
9
9
  canBulkClear = false;
10
10
  break;
11
11
  }
12
12
  if (canBulkClear) {
13
- for (let i = 0; i < removedNodes.length; i++) {
14
- recordBenchEvent("domRemove");
15
- teardownNodeSubtree(removedNodes[i]);
16
- }
17
- withBenchMetricScope("fullClear", () => {
18
- recordBenchCounter("bulkClearCommits");
19
- parent.textContent = "";
20
- });
13
+ if (shouldTeardown) for (let i = 0; i < removedNodes.length; i++) teardownNodeSubtree(removedNodes[i]);
14
+ parent.textContent = "";
21
15
  return;
22
16
  }
23
17
  }
24
18
  for (let i = 0; i < removedNodes.length; i++) {
25
19
  const node = removedNodes[i];
26
20
  if (node.parentNode === parent) {
27
- recordBenchEvent("domRemove");
28
- teardownNodeSubtree(node);
21
+ if (shouldTeardown) teardownNodeSubtree(node);
29
22
  parent.removeChild(node);
30
23
  }
31
24
  }
32
25
  }
33
26
  //#endregion
34
27
  export { removeForBoundaryNodes };
35
-
36
- //# sourceMappingURL=for-commit-removal.js.map
@@ -1,6 +1,6 @@
1
- import { canUseDirectReplaceChildrenSpread } from "./utils.js";
2
1
  import { recordBenchCounter, recordBenchEvent } from "../runtime/for-bench.js";
3
- import "../runtime/for.js";
2
+ import "../runtime/index.js";
3
+ import { canUseDirectReplaceChildrenSpread } from "./utils.js";
4
4
  //#region src/renderer/for-commit-reorder.ts
5
5
  const DENSE_MOVE_MINIMUM = 64;
6
6
  const DENSE_MOVE_RATIO = .75;
@@ -85,5 +85,3 @@ function commitMoveOnlyReorder(parent, nodes) {
85
85
  }
86
86
  //#endregion
87
87
  export { commitMoveOnlyReorder, replaceChildrenInOrder };
88
-
89
- //# sourceMappingURL=for-commit-reorder.js.map
@@ -1,16 +1,123 @@
1
+ import { beginLifecycleCommitBatch, discardLifecycleCommitBatch, flushLifecycleCommitBatch } from "../runtime/lifecycle-batch.js";
2
+ import { recordBenchEvent } from "../runtime/for-bench.js";
3
+ import { captureForFallbackTransactionSnapshot, captureForItemTransactionSnapshot } from "../runtime/for-scopes.js";
4
+ import { beginForStateTransaction, clearForDomUpdateState, registerForStateTransaction, rollbackForStateTransaction } from "../runtime/for-internal.js";
5
+ import "../runtime/index.js";
1
6
  import { teardownNodeSubtree } from "./cleanup.js";
2
7
  import { canUseDirectReplaceChildrenSpread } from "./utils.js";
3
8
  import { keyedElements } from "./keyed.js";
4
- import { recordBenchCounter, recordBenchEvent, recordBenchTiming, withBenchMetricScope } from "../runtime/for-bench.js";
5
- import { clearForDomUpdateState } from "../runtime/for-internal.js";
6
- import "../runtime/for.js";
7
9
  import { getOrBuildDomKeyMap, hydrateExistingForDomInOrder, syncKeyedMapFromForState } from "./for-commit-dom-map.js";
8
10
  import { commitMoveOnlyReorder, replaceChildrenInOrder } from "./for-commit-reorder.js";
9
11
  import { removeForBoundaryNodes } from "./for-commit-removal.js";
10
- //#region src/renderer/for-commit.ts
12
+ import { getRangeNodes, moveRange } from "./dom-range.js";
13
+ import { isFragment } from "./evaluate-reconcile.js";
14
+ function isExactRemovedBoundary(parent, removedNodes) {
15
+ if (removedNodes.length === 0 || removedNodes.length !== parent.childNodes.length) return false;
16
+ for (let index = 0; index < removedNodes.length; index++) if (removedNodes[index] !== parent.childNodes[index]) return false;
17
+ return true;
18
+ }
19
+ function isMultiNodeVNode(vnode) {
20
+ if (vnode === null || vnode === void 0 || vnode === false) return true;
21
+ return Array.isArray(vnode) || typeof vnode === "object" && vnode !== null && isFragment(vnode);
22
+ }
23
+ function getScopeRange(scope, node) {
24
+ if (scope.range) return scope.range;
25
+ if (!node) return null;
26
+ return {
27
+ start: node,
28
+ end: node,
29
+ single: true
30
+ };
31
+ }
32
+ function detachRange(range) {
33
+ const parent = range.start.parentNode;
34
+ if (!parent) return;
35
+ const fragment = parent.ownerDocument?.createDocumentFragment();
36
+ if (fragment) moveRange(fragment, range);
37
+ }
38
+ function detachRemovedForNodes(parent, forState) {
39
+ for (const range of forState.lastRemovedRanges) detachRange(range);
40
+ for (const node of forState.lastRemovedNodes) if (node.parentNode === parent) node.parentNode.removeChild(node);
41
+ }
42
+ function commitForStateBoundaryRanges(parent, forState, childrenVNodes, runtime) {
43
+ const desiredRanges = [];
44
+ if (forState.orderedKeys.length === 0) {
45
+ const fallbackScope = forState.fallbackScope;
46
+ const fallbackVNode = childrenVNodes[0];
47
+ if (fallbackScope && fallbackVNode !== void 0) {
48
+ const range = getScopeRange(fallbackScope, !fallbackScope.needsDomUpdate ? null : runtime.syncForItemDom(parent, fallbackScope, fallbackVNode));
49
+ if (range) desiredRanges.push(range);
50
+ }
51
+ } else for (let index = 0; index < forState.orderedItems.length; index += 1) {
52
+ const item = forState.orderedItems[index];
53
+ if (!item) continue;
54
+ captureItemBeforeRangeCommit(forState, item);
55
+ const node = !item.scope.needsDomUpdate ? null : runtime.syncForItemDom(parent, item.scope, childrenVNodes[index]);
56
+ const range = getScopeRange(item.scope, node);
57
+ if (range) desiredRanges.push(range);
58
+ }
59
+ const desiredNodes = /* @__PURE__ */ new Set();
60
+ for (const range of desiredRanges) {
61
+ desiredNodes.add(range.start);
62
+ for (const node of getRangeNodes(range)) desiredNodes.add(node);
63
+ if (!range.single) desiredNodes.add(range.end);
64
+ }
65
+ detachRemovedForNodes(parent, forState);
66
+ let anchor = null;
67
+ for (let index = desiredRanges.length - 1; index >= 0; index -= 1) {
68
+ const range = desiredRanges[index];
69
+ moveRange(parent, range, anchor);
70
+ anchor = range.start;
71
+ }
72
+ for (const node of Array.from(parent.childNodes)) {
73
+ if (desiredNodes.has(node)) continue;
74
+ node.parentNode?.removeChild(node);
75
+ }
76
+ forState._hasResolvedItemDom = true;
77
+ clearForDomUpdateState(forState);
78
+ }
79
+ function captureItemBeforeRangeCommit(forState, item) {
80
+ if (item.scope.needsDomUpdate || item.scope.hydrationPending) captureForItemTransactionSnapshot(forState, item);
81
+ }
11
82
  function commitForStateBoundaryChildren(parent, forState, childrenVNodes, runtime) {
12
- const domCommitStart = performance.now();
83
+ const previousChildren = Array.from(parent.childNodes);
84
+ const currentKeyedMap = keyedElements.get(parent);
85
+ const previousKeyedMap = currentKeyedMap ? new Map(currentKeyedMap) : void 0;
86
+ const lifecycleBatch = beginLifecycleCommitBatch();
87
+ beginForStateTransaction(forState, "reuse");
88
+ registerForStateTransaction(forState);
89
+ try {
90
+ commitForStateBoundaryChildrenImpl(parent, forState, childrenVNodes, runtime);
91
+ flushLifecycleCommitBatch(lifecycleBatch);
92
+ } catch (error) {
93
+ discardLifecycleCommitBatch(lifecycleBatch);
94
+ rollbackForStateTransaction(forState);
95
+ const previousChildrenSet = new Set(previousChildren);
96
+ for (const node of Array.from(parent.childNodes)) if (!previousChildrenSet.has(node)) teardownNodeSubtree(node);
97
+ parent.replaceChildren(...previousChildren);
98
+ if (previousKeyedMap) keyedElements.set(parent, new Map(previousKeyedMap));
99
+ else keyedElements.delete(parent);
100
+ throw error;
101
+ }
102
+ }
103
+ function commitForStateBoundaryChildrenImpl(parent, forState, childrenVNodes, runtime) {
104
+ if (childrenVNodes.some(isMultiNodeVNode) || forState.orderedItems.some((item) => item.scope.range && !item.scope.range.single) || Boolean(forState.fallbackScope?.range && !forState.fallbackScope.range.single)) {
105
+ commitForStateBoundaryRanges(parent, forState, childrenVNodes, runtime);
106
+ return;
107
+ }
108
+ let removedBoundaryConsumed = false;
109
+ const captureItemBeforeCommit = (item) => {
110
+ if (item.scope.needsDomUpdate || item.scope.hydrationPending) captureForItemTransactionSnapshot(forState, item);
111
+ };
112
+ const syncItemDom = (item, vnode) => {
113
+ captureItemBeforeCommit(item);
114
+ return runtime.syncForItemDom(parent, item.scope, vnode);
115
+ };
13
116
  const hydrateExistingForDom = () => {
117
+ if (parent.children.length === forState.orderedKeys.length) for (let index = 0; index < forState.orderedItems.length; index++) {
118
+ const item = forState.orderedItems[index];
119
+ if (item) captureForItemTransactionSnapshot(forState, item);
120
+ }
14
121
  if (hydrateExistingForDomInOrder(parent, forState)) return;
15
122
  const domKeyMap = getOrBuildDomKeyMap(parent);
16
123
  if (!domKeyMap) return;
@@ -20,21 +127,26 @@ function commitForStateBoundaryChildren(parent, forState, childrenVNodes, runtim
20
127
  if (!itemInstance || itemInstance.scope.dom) continue;
21
128
  const existingDom = domKeyMap.get(itemKey);
22
129
  if (!existingDom) continue;
130
+ captureForItemTransactionSnapshot(forState, itemInstance);
23
131
  itemInstance.scope.dom = existingDom;
24
132
  itemInstance.scope.needsDomUpdate = true;
25
133
  }
26
134
  };
27
135
  if (forState.orderedKeys.length === 0) {
28
- removeForBoundaryNodes(parent, forState.lastRemovedNodes);
29
136
  const fallbackScope = forState.fallbackScope;
30
137
  const fallbackVNode = childrenVNodes[0];
138
+ if (fallbackScope && (fallbackScope.needsDomUpdate || fallbackScope.hydrationPending)) captureForFallbackTransactionSnapshot(forState, fallbackScope);
31
139
  const nextDom = fallbackScope && fallbackVNode !== void 0 ? runtime.syncForItemDom(parent, fallbackScope, fallbackVNode) : null;
140
+ if (nextDom && isExactRemovedBoundary(parent, forState.lastRemovedNodes)) {
141
+ recordBenchEvent("domRemove", forState.lastRemovedNodes.length);
142
+ parent.replaceChildren(nextDom);
143
+ removedBoundaryConsumed = true;
144
+ } else removeForBoundaryNodes(parent, forState.lastRemovedNodes, { teardown: false });
32
145
  if (nextDom) {
33
- if (parent.childNodes.length !== 1 || parent.firstChild !== nextDom || forState.lastRemovedNodes.length > 0) parent.replaceChildren(nextDom);
146
+ if (parent.childNodes.length !== 1 || parent.firstChild !== nextDom || forState.lastRemovedNodes.length > 0 && !removedBoundaryConsumed) parent.replaceChildren(nextDom);
34
147
  } else if (parent.firstChild) parent.textContent = "";
35
148
  keyedElements.delete(parent);
36
149
  forState._hasResolvedItemDom = false;
37
- recordBenchTiming("domCommit", performance.now() - domCommitStart);
38
150
  clearForDomUpdateState(forState);
39
151
  return;
40
152
  }
@@ -65,8 +177,9 @@ function commitForStateBoundaryChildren(parent, forState, childrenVNodes, runtim
65
177
  const i = dirtyIndices[dirtyIndex];
66
178
  const itemInstance = orderedItems[i];
67
179
  if (!itemInstance) continue;
180
+ captureItemBeforeCommit(itemInstance);
68
181
  if (runtime.tryPatchStableForDirtyItem(itemInstance.scope)) continue;
69
- const dom = runtime.syncForItemDom(parent, itemInstance.scope, childrenVNodes[i]);
182
+ const dom = syncItemDom(itemInstance, childrenVNodes[i]);
70
183
  if (!dom) continue;
71
184
  const anchor = childNodes[i] ?? null;
72
185
  if (dom.parentNode !== parent || dom !== anchor) {
@@ -80,7 +193,7 @@ function commitForStateBoundaryChildren(parent, forState, childrenVNodes, runtim
80
193
  for (let i = 0; i < forState.orderedKeys.length; i++) {
81
194
  const itemInstance = forState.orderedItems[i];
82
195
  if (!itemInstance) continue;
83
- const dom = runtime.syncForItemDom(parent, itemInstance.scope, childrenVNodes[i]);
196
+ const dom = syncItemDom(itemInstance, childrenVNodes[i]);
84
197
  if (!dom) continue;
85
198
  if (dom.parentNode !== parent) {
86
199
  const anchor = parent.childNodes[i] ?? null;
@@ -101,7 +214,7 @@ function commitForStateBoundaryChildren(parent, forState, childrenVNodes, runtim
101
214
  currentNode = currentNode?.nextSibling ?? null;
102
215
  continue;
103
216
  }
104
- const dom = runtime.syncForItemDom(parent, itemInstance.scope, childrenVNodes[i]);
217
+ const dom = syncItemDom(itemInstance, childrenVNodes[i]);
105
218
  if (!dom || dom.parentNode !== parent || dom !== currentNode) exactOrder = false;
106
219
  currentNode = currentNode?.nextSibling ?? null;
107
220
  }
@@ -110,23 +223,41 @@ function commitForStateBoundaryChildren(parent, forState, childrenVNodes, runtim
110
223
  return;
111
224
  }
112
225
  }
113
- withBenchMetricScope("coldCreate", () => {
114
- const fragment = parent.ownerDocument.createDocumentFragment();
115
- let hasPendingAppend = false;
116
- for (let i = 0; i < forState.orderedKeys.length; i++) {
226
+ const appendColdRows = () => {
227
+ const pendingAppend = [];
228
+ const appendStart = forState.pendingAppendStart ?? 0;
229
+ const hasDetachedSuffix = forState.pendingAppendStart !== null && parent.childNodes.length === appendStart;
230
+ for (let i = appendStart; i < forState.orderedKeys.length; i++) {
117
231
  const itemInstance = forState.orderedItems[i];
118
232
  if (!itemInstance) continue;
119
- if (itemInstance.scope.dom?.parentNode === parent && !itemInstance.scope.needsDomUpdate) continue;
120
- const dom = runtime.syncForItemDom(parent, itemInstance.scope, childrenVNodes[i]);
233
+ if (!hasDetachedSuffix && itemInstance.scope.dom?.parentNode === parent && !itemInstance.scope.needsDomUpdate) continue;
234
+ const dom = syncItemDom(itemInstance, childrenVNodes[i]);
121
235
  if (!dom) continue;
122
- if (dom.parentNode !== parent) {
123
- recordBenchEvent("domInsert");
124
- fragment.appendChild(dom);
125
- hasPendingAppend = true;
126
- }
236
+ if (hasDetachedSuffix || dom.parentNode !== parent) pendingAppend.push(dom);
127
237
  }
128
- if (hasPendingAppend) parent.appendChild(fragment);
129
- });
238
+ if (pendingAppend.length > 0) {
239
+ const fragment = parent.ownerDocument.createDocumentFragment();
240
+ if (canUseDirectReplaceChildrenSpread(pendingAppend.length)) fragment.append(...pendingAppend);
241
+ else for (const node of pendingAppend) fragment.appendChild(node);
242
+ parent.appendChild(fragment);
243
+ }
244
+ };
245
+ appendColdRows();
246
+ boundaryChildrenExact = true;
247
+ };
248
+ const commitInsertOne = () => {
249
+ const index = forState.pendingInsertedIndex;
250
+ const item = index === null ? void 0 : forState.orderedItems[index];
251
+ if (index === null || !item || parent.childNodes.length !== forState.orderedKeys.length - 1) {
252
+ commitReorder();
253
+ return;
254
+ }
255
+ const anchor = parent.childNodes[index] ?? null;
256
+ const dom = syncItemDom(item, childrenVNodes[index]);
257
+ if (dom && (dom.parentNode !== parent || dom !== anchor)) {
258
+ recordBenchEvent("domInsert");
259
+ parent.insertBefore(dom, anchor);
260
+ }
130
261
  boundaryChildrenExact = true;
131
262
  };
132
263
  const commitSwap = () => {
@@ -143,8 +274,8 @@ function commitForStateBoundaryChildren(parent, forState, childrenVNodes, runtim
143
274
  commitReorder();
144
275
  return;
145
276
  }
146
- const firstDom = runtime.syncForItemDom(parent, firstItem.scope, childrenVNodes[firstIndex]);
147
- const secondDom = runtime.syncForItemDom(parent, secondItem.scope, childrenVNodes[secondIndex]);
277
+ const firstDom = syncItemDom(firstItem, childrenVNodes[firstIndex]);
278
+ const secondDom = syncItemDom(secondItem, childrenVNodes[secondIndex]);
148
279
  if (!firstDom || !secondDom) {
149
280
  commitReorder();
150
281
  return;
@@ -175,7 +306,7 @@ function commitForStateBoundaryChildren(parent, forState, childrenVNodes, runtim
175
306
  const itemInstance = items[i];
176
307
  if (!itemInstance) return;
177
308
  const scope = itemInstance.scope;
178
- const dom = scope.dom && !scope.needsDomUpdate ? scope.dom : runtime.syncForItemDom(parent, scope, childrenVNodes[i]);
309
+ const dom = scope.dom && !scope.needsDomUpdate ? scope.dom : syncItemDom(itemInstance, childrenVNodes[i]);
179
310
  if (!dom) return;
180
311
  if (dom.parentNode === parent) movedCount++;
181
312
  else insertedCount++;
@@ -211,20 +342,19 @@ function commitForStateBoundaryChildren(parent, forState, childrenVNodes, runtim
211
342
  break;
212
343
  }
213
344
  if (!hasExistingChild) {
214
- withBenchMetricScope("coldCreate", () => {
345
+ const canConsumeRemovedBoundary = isExactRemovedBoundary(parent, forState.lastRemovedNodes);
346
+ const replaceColdRows = () => {
215
347
  const nodes = [];
216
348
  for (let i = 0; i < count; i++) {
217
349
  const itemInstance = items[i];
218
350
  if (!itemInstance) continue;
219
- const dom = runtime.syncForItemDom(parent, itemInstance.scope, childrenVNodes[i]);
220
- if (dom) {
221
- recordBenchEvent("domInsert");
222
- nodes.push(dom);
223
- }
351
+ const dom = syncItemDom(itemInstance, childrenVNodes[i]);
352
+ if (dom) nodes.push(dom);
224
353
  }
225
- recordBenchCounter("replaceChildrenCommits");
226
- replaceChildrenInOrder(parent, nodes, false);
227
- });
354
+ replaceChildrenInOrder(parent, nodes, canConsumeRemovedBoundary);
355
+ };
356
+ replaceColdRows();
357
+ removedBoundaryConsumed = canConsumeRemovedBoundary;
228
358
  boundaryChildrenExact = true;
229
359
  return;
230
360
  }
@@ -233,7 +363,7 @@ function commitForStateBoundaryChildren(parent, forState, childrenVNodes, runtim
233
363
  for (let i = 0; i < count; i++) {
234
364
  const itemInstance = items[i];
235
365
  if (!itemInstance) continue;
236
- const dom = runtime.syncForItemDom(parent, itemInstance.scope, childrenVNodes[i]);
366
+ const dom = syncItemDom(itemInstance, childrenVNodes[i]);
237
367
  if (!dom) continue;
238
368
  recordBenchEvent(dom.parentNode === parent ? "domMove" : "domInsert");
239
369
  nodes.push(dom);
@@ -245,7 +375,7 @@ function commitForStateBoundaryChildren(parent, forState, childrenVNodes, runtim
245
375
  for (let i = 0; i < count; i++) {
246
376
  const itemInstance = items[i];
247
377
  if (!itemInstance) continue;
248
- const dom = runtime.syncForItemDom(parent, itemInstance.scope, childrenVNodes[i]);
378
+ const dom = syncItemDom(itemInstance, childrenVNodes[i]);
249
379
  if (!dom) continue;
250
380
  const anchor = parent.childNodes[i] ?? null;
251
381
  if (dom !== anchor) {
@@ -258,7 +388,6 @@ function commitForStateBoundaryChildren(parent, forState, childrenVNodes, runtim
258
388
  if (forState.lastCommitStrategy === "NO_REORDER" && dirtyIndices.length > 0 && forState.pendingDirtyIndices === null && forState.pendingSwapIndices === null && !forState.pendingMoveOnly && forState.lastRemovedNodes.length === 0 && parent.childNodes.length === forState.orderedKeys.length) {
259
389
  commitDirtyNoReorder(dirtyIndices);
260
390
  syncKeyedMapFromForState(parent, forState, "NO_REORDER", []);
261
- recordBenchTiming("domCommit", performance.now() - domCommitStart);
262
391
  clearForDomUpdateState(forState);
263
392
  return;
264
393
  }
@@ -272,6 +401,9 @@ function commitForStateBoundaryChildren(parent, forState, childrenVNodes, runtim
272
401
  case "APPEND":
273
402
  commitAppend();
274
403
  break;
404
+ case "INSERT_ONE":
405
+ commitInsertOne();
406
+ break;
275
407
  case "SWAP":
276
408
  commitSwap();
277
409
  break;
@@ -279,15 +411,14 @@ function commitForStateBoundaryChildren(parent, forState, childrenVNodes, runtim
279
411
  commitReorder();
280
412
  break;
281
413
  }
282
- removeForBoundaryNodes(parent, forState.lastRemovedNodes);
283
- if (forState.lastRemovedNodes.length > 0) boundaryChildrenExact = false;
414
+ if (!removedBoundaryConsumed) removeForBoundaryNodes(parent, forState.lastRemovedNodes, { teardown: false });
284
415
  syncKeyedMapFromForState(parent, forState, forState.lastCommitStrategy, forState.lastRemovedNodes);
285
416
  const syncExactForBoundaryChildren = () => {
286
417
  const expectedNodes = [];
287
418
  for (let i = 0; i < forState.orderedKeys.length; i++) {
288
419
  const itemInstance = forState.orderedItems[i];
289
420
  if (!itemInstance) continue;
290
- const dom = itemInstance.scope.dom && !itemInstance.scope.needsDomUpdate ? itemInstance.scope.dom : runtime.syncForItemDom(parent, itemInstance.scope, childrenVNodes[i]);
421
+ const dom = itemInstance.scope.dom && !itemInstance.scope.needsDomUpdate ? itemInstance.scope.dom : syncItemDom(itemInstance, childrenVNodes[i]);
291
422
  if (dom) expectedNodes.push(dom);
292
423
  }
293
424
  const currentNodes = Array.from(parent.childNodes);
@@ -305,10 +436,7 @@ function commitForStateBoundaryChildren(parent, forState, childrenVNodes, runtim
305
436
  };
306
437
  if (!boundaryChildrenExact) syncExactForBoundaryChildren();
307
438
  forState._hasResolvedItemDom = true;
308
- recordBenchTiming("domCommit", performance.now() - domCommitStart);
309
439
  clearForDomUpdateState(forState);
310
440
  }
311
441
  //#endregion
312
442
  export { commitForStateBoundaryChildren };
313
-
314
- //# sourceMappingURL=for-commit.js.map
@@ -0,0 +1,60 @@
1
+ //#region src/renderer/hydration-boundaries.ts
2
+ const recordsByElement = /* @__PURE__ */ new WeakMap();
3
+ const recordsByRoot = /* @__PURE__ */ new WeakMap();
4
+ function registerDeferredHydrationBoundary(root, element, range) {
5
+ const existing = recordsByElement.get(element);
6
+ if (existing) return existing;
7
+ const record = {
8
+ root,
9
+ element,
10
+ ownership: {
11
+ owner: null,
12
+ parent: null,
13
+ portalScope: null
14
+ },
15
+ context: null,
16
+ range,
17
+ vnode: void 0,
18
+ renderResult: void 0,
19
+ state: "deferred",
20
+ attempts: 0
21
+ };
22
+ recordsByElement.set(element, record);
23
+ const rootRecords = recordsByRoot.get(root) ?? /* @__PURE__ */ new Set();
24
+ rootRecords.add(record);
25
+ recordsByRoot.set(root, rootRecords);
26
+ return record;
27
+ }
28
+ function rememberDeferredHydrationVNode(element, vnode, owner, context) {
29
+ const record = recordsByElement.get(element);
30
+ if (!record) return;
31
+ record.vnode = vnode;
32
+ record.renderResult = vnode;
33
+ record.ownership.owner = owner;
34
+ record.ownership.parent = owner?.parentInstance ?? null;
35
+ record.ownership.portalScope = owner?.portalScope ?? null;
36
+ record.context = context;
37
+ return record;
38
+ }
39
+ function beginDeferredHydrationActivation(element) {
40
+ const record = recordsByElement.get(element);
41
+ if (!record || !record.vnode || record.state === "active" || record.state === "activating") return;
42
+ record.attempts += 1;
43
+ record.state = "activating";
44
+ return record;
45
+ }
46
+ function commitDeferredHydrationActivation(record) {
47
+ record.state = "active";
48
+ }
49
+ function rollbackDeferredHydrationActivation(record) {
50
+ record.state = "failed";
51
+ }
52
+ function clearDeferredHydrationBoundaries(root) {
53
+ const records = recordsByRoot.get(root);
54
+ if (!records) return;
55
+ for (const record of records) recordsByElement.delete(record.element);
56
+ records.clear();
57
+ recordsByRoot.delete(root);
58
+ }
59
+ //#endregion
60
+ export { beginDeferredHydrationActivation, clearDeferredHydrationBoundaries, commitDeferredHydrationActivation, registerDeferredHydrationBoundary, rememberDeferredHydrationVNode, rollbackDeferredHydrationActivation };
@@ -0,0 +1,49 @@
1
+ //#region src/renderer/hydration-listener-transaction.ts
2
+ let currentTransaction = null;
3
+ function beginHydrationListenerTransaction() {
4
+ const transaction = {
5
+ parent: currentTransaction,
6
+ stages: [],
7
+ active: true
8
+ };
9
+ currentTransaction = transaction;
10
+ return transaction;
11
+ }
12
+ function stageHydrationListener(stage) {
13
+ if (!currentTransaction?.active) return false;
14
+ currentTransaction.stages.push(stage);
15
+ return true;
16
+ }
17
+ function closeTransaction(transaction) {
18
+ if (!transaction.active) return false;
19
+ transaction.active = false;
20
+ currentTransaction = transaction.parent;
21
+ return true;
22
+ }
23
+ function commitHydrationListenerTransaction(transaction) {
24
+ if (!closeTransaction(transaction)) return;
25
+ const stages = [...transaction.stages].sort((left, right) => {
26
+ if (left.kind !== right.kind) return left.kind === "delegated" ? -1 : 1;
27
+ return left.eventName.localeCompare(right.eventName);
28
+ });
29
+ const published = [];
30
+ try {
31
+ for (const stage of stages) {
32
+ stage.publish();
33
+ published.push(stage);
34
+ }
35
+ } catch (error) {
36
+ for (let index = published.length - 1; index >= 0; index -= 1) try {
37
+ published[index].rollback();
38
+ } catch {}
39
+ throw error;
40
+ }
41
+ }
42
+ function discardHydrationListenerTransaction(transaction) {
43
+ if (!closeTransaction(transaction)) return;
44
+ for (let index = transaction.stages.length - 1; index >= 0; index -= 1) try {
45
+ transaction.stages[index].rollback();
46
+ } catch {}
47
+ }
48
+ //#endregion
49
+ export { beginHydrationListenerTransaction, commitHydrationListenerTransaction, discardHydrationListenerTransaction, stageHydrationListener };