@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
@@ -3,21 +3,27 @@ import { logger } from "../common/logger.js";
3
3
  import { incrementPerfMetric } from "../runtime/perf-metrics.js";
4
4
  import { incDevCounter } from "../runtime/dev-namespace.js";
5
5
  import { createFineGrainedEffect, markFineGrainedEffectsDirtySource } from "../runtime/effect.js";
6
- import { addDelegatedListener, getDelegatedHandlerForElement, getDelegatedHandlersForElement, isDelegatedEvent, isEventDelegationEnabled, removeDelegatedListener, updateDelegatedListener } from "../runtime/events.js";
7
- import { isBenchMetricScopeActive, recordBenchCounter } from "../runtime/for-bench.js";
6
+ import { addDelegatedListener, addFreshDelegatedListener, getDelegatedHandlerForElement, getDelegatedHandlersForElement, isDelegatedEvent, isEventDelegationEnabled, removeDelegatedListener, updateDelegatedListener } from "../runtime/events.js";
7
+ import "../runtime/for-bench.js";
8
8
  import "../runtime/index.js";
9
- import { REACTIVE_CHILDREN_KEY, elementListeners, elementReactivePropsCleanup, updateElementRef } from "./cleanup.js";
9
+ import { REACTIVE_CHILDREN_KEY, elementListeners, elementReactivePropsCleanup, elementRefs, getElementReactivePropCleanupSize, getElementReactivePropsCleanupMap, updateElementRef } from "./cleanup.js";
10
10
  import "./env.js";
11
11
  import { createMutableWrappedHandler, getEventListenerKey, getEventListenerOptions, isSkippedProp, parseEventProp } from "./utils.js";
12
12
  import { applyScalarPropValue, removeStaleAttributes } from "./attributes.js";
13
- //#region src/renderer/prop-bindings.ts
13
+ import { stageHydrationListener } from "./hydration-listener-transaction.js";
14
14
  const reactivePropRegistry = /* @__PURE__ */ new Set();
15
- function addTrackedListener(el, eventName, handler, capture = false) {
15
+ function addTrackedListener(el, eventName, handler, capture = false, fresh = false) {
16
16
  const useDelegation = !capture && isEventDelegationEnabled() && isDelegatedEvent(eventName);
17
17
  const listenerKey = getEventListenerKey(eventName, capture);
18
+ if (stageHydrationListener({
19
+ kind: useDelegation ? "delegated" : "direct",
20
+ eventName,
21
+ publish: () => addTrackedListener(el, eventName, handler, capture, fresh),
22
+ rollback: () => removeTrackedListener(el, eventName, capture)
23
+ })) return;
18
24
  if (useDelegation) {
19
- addDelegatedListener(el, eventName, handler, handler, void 0);
20
- if (isBenchMetricScopeActive("coldCreate")) recordBenchCounter("listenerBindings");
25
+ if (fresh) addFreshDelegatedListener(el, eventName, handler, handler, void 0);
26
+ else addDelegatedListener(el, eventName, handler, handler, void 0);
21
27
  return;
22
28
  }
23
29
  const options = getEventListenerOptions(eventName, capture);
@@ -35,7 +41,21 @@ function addTrackedListener(el, eventName, handler, capture = false) {
35
41
  isDelegated: false,
36
42
  updateHandler: mutableHandler?.updateHandler
37
43
  });
38
- if (isBenchMetricScopeActive("coldCreate")) recordBenchCounter("listenerBindings");
44
+ }
45
+ function removeTrackedListener(el, eventName, capture) {
46
+ if (!capture && getDelegatedHandlerForElement(el, eventName)) {
47
+ removeDelegatedListener(el, eventName);
48
+ return;
49
+ }
50
+ const listenerKey = getEventListenerKey(eventName, capture);
51
+ const entry = elementListeners.get(el)?.get(listenerKey);
52
+ if (!entry) return;
53
+ if (entry.options !== void 0) el.removeEventListener(entry.eventName, entry.handler, entry.options);
54
+ else el.removeEventListener(entry.eventName, entry.handler);
55
+ incDevCounter("listenerRemoves");
56
+ const listeners = elementListeners.get(el);
57
+ listeners?.delete(listenerKey);
58
+ if (listeners?.size === 0) elementListeners.delete(el);
39
59
  }
40
60
  function markReactivePropsDirtySource(source) {
41
61
  markFineGrainedEffectsDirtySource(source);
@@ -68,7 +88,6 @@ function setupReactiveProp(el, propName, propFn, tagName) {
68
88
  if (getRuntimeEnv().NODE_ENV !== "production") logger.warn("[Askr] Reactive prop update failed:", err);
69
89
  }
70
90
  });
71
- if (isBenchMetricScopeActive("coldCreate")) recordBenchCounter("reactivePropsMounted");
72
91
  const cleanup = () => {
73
92
  reactivePropRegistry.delete(descriptor);
74
93
  effectHandle?.cleanup();
@@ -89,13 +108,9 @@ function setupReactiveProp(el, propName, propFn, tagName) {
89
108
  };
90
109
  }
91
110
  function getOrCreateReactivePropsCleanupMap(el) {
92
- let cleanupMap = elementReactivePropsCleanup.get(el);
93
- if (!cleanupMap) {
94
- cleanupMap = /* @__PURE__ */ new Map();
95
- elementReactivePropsCleanup.set(el, cleanupMap);
96
- }
97
- return cleanupMap;
111
+ return getElementReactivePropsCleanupMap(el, true);
98
112
  }
113
+ /** @internal Create a standalone reactive prop entry for rollback restoration. */
99
114
  function createReactivePropCleanupEntry(el, propName, propFn, tagName) {
100
115
  const reactive = setupReactiveProp(el, propName, propFn, tagName);
101
116
  return {
@@ -109,8 +124,30 @@ function createReactivePropCleanupEntry(el, propName, propFn, tagName) {
109
124
  }
110
125
  function hasTrackedElementPropBindings(el) {
111
126
  const existingListeners = elementListeners.get(el);
112
- const existingReactiveProps = elementReactivePropsCleanup.get(el);
113
- return existingListeners !== void 0 && existingListeners.size > 0 || existingReactiveProps !== void 0 && existingReactiveProps.size > 0;
127
+ return existingListeners !== void 0 && existingListeners.size > 0 || getElementReactivePropCleanupSize(el) > 0;
128
+ }
129
+ function hasAnyElementBindingState(el) {
130
+ return hasTrackedElementPropBindings(el) || getDelegatedHandlersForElement(el) !== void 0 || elementRefs.has(el);
131
+ }
132
+ function applyMatchingElementBindings(el, props) {
133
+ if (Object.prototype.hasOwnProperty.call(props, "ref")) updateElementRef(el, props.ref);
134
+ for (const key in props) {
135
+ const eventProp = parseEventProp(key);
136
+ if (!eventProp) continue;
137
+ const value = props[key];
138
+ if (typeof value === "function") addTrackedListener(el, eventProp.eventName, value, eventProp.capture);
139
+ }
140
+ }
141
+ /** @internal Attach stateful bindings to a newly cloned blueprint element. */
142
+ function applyFreshElementBindings(el, props) {
143
+ if (Object.prototype.hasOwnProperty.call(props, "ref")) updateElementRef(el, props.ref);
144
+ for (const key in props) {
145
+ const eventProp = parseEventProp(key);
146
+ if (eventProp) {
147
+ const value = props[key];
148
+ if (typeof value === "function") addTrackedListener(el, eventProp.eventName, value, eventProp.capture, true);
149
+ }
150
+ }
114
151
  }
115
152
  function applyPropsToElement(el, props, tagName, isHydrationSkipped) {
116
153
  if (isHydrationSkipped(el)) return;
@@ -136,7 +173,7 @@ function applyPropsToElement(el, props, tagName, isHydrationSkipped) {
136
173
  }
137
174
  function syncElementPropBindings(el, domVNode, props, usesReactiveChildren) {
138
175
  const existingListeners = elementListeners.get(el);
139
- const existingReactiveProps = elementReactivePropsCleanup.get(el);
176
+ const existingReactiveProps = getElementReactivePropsCleanupMap(el);
140
177
  let desiredListenerKeys = null;
141
178
  let desiredDelegatedEventNames = null;
142
179
  let desiredReactivePropNames = null;
@@ -275,6 +312,4 @@ function syncElementPropBindings(el, domVNode, props, usesReactiveChildren) {
275
312
  }
276
313
  }
277
314
  //#endregion
278
- export { applyPropsToElement, hasTrackedElementPropBindings, markReactivePropsDirtySource, syncElementPropBindings };
279
-
280
- //# sourceMappingURL=prop-bindings.js.map
315
+ export { applyFreshElementBindings, applyMatchingElementBindings, applyPropsToElement, createReactivePropCleanupEntry, hasAnyElementBindingState, hasTrackedElementPropBindings, markReactivePropsDirtySource, syncElementPropBindings };
@@ -1,7 +1,9 @@
1
1
  import { teardownNodeSubtree } from "./cleanup.js";
2
+ import { getRangeNodes } from "./dom-range.js";
2
3
  import { createElementForNamespace, getParentNamespace } from "./namespaces.js";
3
- import { syncControlBoundaryScopeDom } from "./boundaries.js";
4
4
  import { collectReactiveChildBoundaryVNodes, isSingleRootReactiveChildBoundaryValue } from "./reactive-child-sources.js";
5
+ import { syncControlBoundaryScopeDom } from "./boundary-range-sync.js";
6
+ import "./boundaries.js";
5
7
  //#region src/renderer/reactive-child-dom.ts
6
8
  function materializeReactiveChildBoundaryNodes(value, parentNamespace, host) {
7
9
  const nodes = [];
@@ -72,6 +74,7 @@ function commitReactiveChildBoundaryEntryNodes(el, entry, host) {
72
74
  host.updateElementChildren(boundaryHost, nextChildren);
73
75
  const nextNodes = Array.from(boundaryHost.childNodes);
74
76
  entry.scope.dom = void 0;
77
+ entry.scope.range = void 0;
75
78
  entry.scope.needsDomUpdate = false;
76
79
  entry.nodes = nextNodes;
77
80
  return nextNodes;
@@ -80,6 +83,7 @@ function commitReactiveChildBoundaryEntryNodes(el, entry, host) {
80
83
  disposeReactiveChildBoundaryNodes(entry.nodes);
81
84
  entry.nodes = [];
82
85
  entry.scope.dom = void 0;
86
+ entry.scope.range = void 0;
83
87
  }
84
88
  const nextDom = syncControlBoundaryScopeDom(el, entry.scope, entry.scope.vnode ?? null);
85
89
  if (!nextDom) {
@@ -87,7 +91,11 @@ function commitReactiveChildBoundaryEntryNodes(el, entry, host) {
87
91
  entry.scope.needsDomUpdate = false;
88
92
  return entry.nodes;
89
93
  }
90
- entry.nodes = [nextDom];
94
+ entry.nodes = nextDom.single ? [nextDom.start] : [
95
+ nextDom.start,
96
+ ...getRangeNodes(nextDom),
97
+ nextDom.end
98
+ ];
91
99
  entry.scope.needsDomUpdate = false;
92
100
  return entry.nodes;
93
101
  }
@@ -129,5 +137,3 @@ function syncReactiveScalarTextNodes(el, slotValues, values, host) {
129
137
  }
130
138
  //#endregion
131
139
  export { commitReactiveChildBoundaryEntryNodes, createReactiveChildBoundaryHost, disposeReactiveChildBoundaryNodes, materializeReactiveChildBoundaryNodes, syncReactiveChildExpectedNodes, syncReactiveChildSequenceNodes, syncReactiveScalarTextNodes };
132
-
133
- //# sourceMappingURL=reactive-child-dom.js.map
@@ -180,5 +180,3 @@ function collectReactiveChildBoundaryVNodes(value, children) {
180
180
  }
181
181
  //#endregion
182
182
  export { areReactiveChildBoundarySequenceSourcesEqual, areReactiveScalarChildSourcesEqual, canUpdateReactiveChildBoundarySequenceSource, collectReactiveChildBoundaryVNodes, collectReactiveChildValuesAsVNodes, getReactiveChildBoundarySequenceSource, getReactiveScalarChildSource, getSingleReactiveChildBoundarySource, isSingleRootReactiveChildBoundaryValue, normalizeOwnedReactiveTextValue, normalizeReactiveChildBoundaryVNode, normalizeReactiveScalarSequenceValues };
183
-
184
- //# sourceMappingURL=reactive-child-sources.js.map
@@ -5,7 +5,7 @@ import { getCurrentInstance } from "../runtime/component-scope.js";
5
5
  import { createChildScope, disposeChildScope, rerenderChildScope } from "../runtime/child-scope.js";
6
6
  import { createFineGrainedEffect } from "../runtime/effect.js";
7
7
  import "../runtime/index.js";
8
- import { REACTIVE_CHILDREN_KEY, elementReactivePropsCleanup, teardownNodeSubtree } from "./cleanup.js";
8
+ import { REACTIVE_CHILDREN_KEY, elementReactivePropsCleanup, getElementReactivePropsCleanupMap, teardownNodeSubtree } from "./cleanup.js";
9
9
  import "./env.js";
10
10
  import { getParentNamespace } from "./namespaces.js";
11
11
  import { areReactiveChildBoundarySequenceSourcesEqual, areReactiveScalarChildSourcesEqual, canUpdateReactiveChildBoundarySequenceSource, collectReactiveChildValuesAsVNodes, getReactiveChildBoundarySequenceSource, getReactiveScalarChildSource, getSingleReactiveChildBoundarySource, normalizeOwnedReactiveTextValue, normalizeReactiveChildBoundaryVNode, normalizeReactiveScalarSequenceValues } from "./reactive-child-sources.js";
@@ -13,12 +13,7 @@ import { commitReactiveChildBoundaryEntryNodes, createReactiveChildBoundaryHost,
13
13
  //#region src/renderer/reactive-children.ts
14
14
  let reactiveChildScopeId = 0;
15
15
  function getOrCreateElementReactiveCleanupMap(el) {
16
- let cleanupMap = elementReactivePropsCleanup.get(el);
17
- if (!cleanupMap) {
18
- cleanupMap = /* @__PURE__ */ new Map();
19
- elementReactivePropsCleanup.set(el, cleanupMap);
20
- }
21
- return cleanupMap;
16
+ return getElementReactivePropsCleanupMap(el, true);
22
17
  }
23
18
  function trySyncScalarChildSequenceInPlace(el, children, host) {
24
19
  const normalized = normalizeReactiveScalarSequenceValues(children);
@@ -47,6 +42,11 @@ function setupReactiveScalarChild(el, source, host) {
47
42
  host.updateElementChildren(el, value);
48
43
  return;
49
44
  }
45
+ if (!ownedTextNode && el.childNodes.length === 0) {
46
+ ownedTextNode = el.ownerDocument.createTextNode(normalized);
47
+ el.appendChild(ownedTextNode);
48
+ return;
49
+ }
50
50
  if (!ownedTextNode || el.childNodes.length !== 1 || el.firstChild !== ownedTextNode) {
51
51
  host.updateElementChildren(el, normalized);
52
52
  ownedTextNode = el.childNodes.length === 1 && el.firstChild?.nodeType === Node.TEXT_NODE ? el.firstChild : null;
@@ -124,6 +124,18 @@ function setupReactiveScalarChild(el, source, host) {
124
124
  }
125
125
  };
126
126
  }
127
+ /** @internal Create a standalone scalar-child binding for rollback restoration. */
128
+ function createReactiveScalarChildCleanupEntry(el, source, host) {
129
+ const reactive = setupReactiveScalarChild(el, source, host);
130
+ return {
131
+ cleanup: reactive.cleanup,
132
+ updateFn: (nextValue) => {
133
+ reactive.updateFn(nextValue);
134
+ },
135
+ restoreFn: (nextValue) => createReactiveScalarChildCleanupEntry(el, nextValue, host),
136
+ fnRef: source
137
+ };
138
+ }
127
139
  function setupReactiveChildBoundary(el, childFn, host) {
128
140
  let currentChildFn = childFn;
129
141
  const entry = {
@@ -224,17 +236,23 @@ function syncReactiveScalarChild(el, children, host) {
224
236
  const reactiveChildSource = getReactiveScalarChildSource(children);
225
237
  const reactiveChildBoundary = getSingleReactiveChildBoundarySource(children);
226
238
  const reactiveChildBoundarySequence = getReactiveChildBoundarySequenceSource(children);
227
- const existingReactiveEntry = elementReactivePropsCleanup.get(el)?.get(REACTIVE_CHILDREN_KEY);
239
+ const cleanupMap = getElementReactivePropsCleanupMap(el);
240
+ const existingReactiveEntry = cleanupMap?.get(REACTIVE_CHILDREN_KEY);
228
241
  if (!reactiveChildSource && !reactiveChildBoundary && !reactiveChildBoundarySequence) {
229
242
  if (existingReactiveEntry) {
230
243
  existingReactiveEntry.cleanup();
231
- const cleanupMap = elementReactivePropsCleanup.get(el);
232
244
  cleanupMap?.delete(REACTIVE_CHILDREN_KEY);
233
245
  if (cleanupMap && cleanupMap.size === 0) elementReactivePropsCleanup.delete(el);
234
246
  }
235
247
  return false;
236
248
  }
237
249
  if (reactiveChildSource && !reactiveChildBoundarySequence) {
250
+ if (existingReactiveEntry?.groupedScalar && existingReactiveEntry.updateFn && reactiveChildSource.length === 1 && reactiveChildSource[0]?.kind === "dynamic") {
251
+ const nextCompute = reactiveChildSource[0].compute;
252
+ existingReactiveEntry.updateFn(nextCompute);
253
+ existingReactiveEntry.fnRef = nextCompute;
254
+ return true;
255
+ }
238
256
  if (existingReactiveEntry && Array.isArray(existingReactiveEntry.fnRef) && areReactiveScalarChildSourcesEqual(existingReactiveEntry.fnRef, reactiveChildSource)) return true;
239
257
  if (existingReactiveEntry?.updateFn && Array.isArray(existingReactiveEntry.fnRef)) {
240
258
  existingReactiveEntry.updateFn(reactiveChildSource);
@@ -243,14 +261,7 @@ function syncReactiveScalarChild(el, children, host) {
243
261
  }
244
262
  existingReactiveEntry?.cleanup();
245
263
  try {
246
- const reactive = setupReactiveScalarChild(el, reactiveChildSource, host);
247
- getOrCreateElementReactiveCleanupMap(el).set(REACTIVE_CHILDREN_KEY, {
248
- cleanup: reactive.cleanup,
249
- updateFn: (nextValue) => {
250
- reactive.updateFn(nextValue);
251
- },
252
- fnRef: reactiveChildSource
253
- });
264
+ getOrCreateElementReactiveCleanupMap(el).set(REACTIVE_CHILDREN_KEY, createReactiveScalarChildCleanupEntry(el, reactiveChildSource, host));
254
265
  return true;
255
266
  } catch (error) {
256
267
  if (!reactiveChildBoundary && !reactiveChildBoundarySequence) throw error;
@@ -289,6 +300,4 @@ function syncReactiveScalarChild(el, children, host) {
289
300
  return true;
290
301
  }
291
302
  //#endregion
292
- export { syncReactiveScalarChild, trySyncScalarChildSequenceInPlace };
293
-
294
- //# sourceMappingURL=reactive-children.js.map
303
+ export { createReactiveScalarChildCleanupEntry, syncReactiveScalarChild, trySyncScalarChildSequenceInPlace };
@@ -34,5 +34,3 @@ function commitReconciliation(parent, finalNodes) {
34
34
  }
35
35
  //#endregion
36
36
  export { commitReconciliation };
37
-
38
- //# sourceMappingURL=reconcile-commit.js.map
@@ -1,6 +1,6 @@
1
1
  import { getRuntimeEnv } from "../common/env.js";
2
2
  import "./env.js";
3
- import { checkPropChanges, recordFastPathStats } from "./utils.js";
3
+ import { checkPropChanges, getMaterializedKey, recordFastPathStats } from "./utils.js";
4
4
  import { keyedElements, planKeyedReorderFastPath } from "./keyed.js";
5
5
  import { canReuseIntrinsicElementInNamespace, getParentNamespace } from "./namespaces.js";
6
6
  import { performBulkPositionalKeyedTextUpdate } from "./children-fastpath.js";
@@ -67,8 +67,7 @@ function countPositionalMatches(parent, keyedVnodes, parentNamespace) {
67
67
  const el = parent.children[i];
68
68
  if (!el) continue;
69
69
  if (canReuseIntrinsicElementInNamespace(el, vnode.type, parentNamespace)) {
70
- const actualKey = el.getAttribute("data-key");
71
- if (actualKey === String(expectedKey) || actualKey !== null && !Number.isNaN(Number(actualKey)) && Number(actualKey) === expectedKey) matchCount++;
70
+ if (getMaterializedKey(el) === expectedKey) matchCount++;
72
71
  }
73
72
  }
74
73
  } catch {}
@@ -91,17 +90,11 @@ function rebuildKeyedMap(parent) {
91
90
  try {
92
91
  const map = /* @__PURE__ */ new Map();
93
92
  for (let el = parent.firstElementChild; el; el = el.nextElementSibling) {
94
- const k = el.getAttribute("data-key");
95
- if (k !== null) {
96
- map.set(k, el);
97
- const n = Number(k);
98
- if (!Number.isNaN(n)) map.set(n, el);
99
- }
93
+ const key = getMaterializedKey(el);
94
+ if (key !== void 0) map.set(key, el);
100
95
  }
101
96
  keyedElements.set(parent, map);
102
97
  } catch {}
103
98
  }
104
99
  //#endregion
105
100
  export { tryFastPaths };
106
-
107
- //# sourceMappingURL=reconcile-fastpaths.js.map
@@ -1,8 +1,8 @@
1
1
  import { __FOR_BOUNDARY__ } from "../common/vnode.js";
2
2
  import { evaluateCaseState, evaluateShowState } from "../runtime/control.js";
3
- import { evaluateForState } from "../runtime/for-internal.js";
3
+ import { clearForDomUpdateState, evaluateForState } from "../runtime/for-internal.js";
4
4
  import "../runtime/index.js";
5
- import { extractKey } from "./utils.js";
5
+ import { extractKey, getMaterializedKey } from "./utils.js";
6
6
  import { canReuseIntrinsicElementInNamespace, getParentNamespace } from "./namespaces.js";
7
7
  import { getRendererDOMHost } from "./dom-host.js";
8
8
  //#region src/renderer/reconcile-resolution.ts
@@ -14,39 +14,17 @@ function createOldElResolver(parent, oldKeyMap, usedOldEls) {
14
14
  usedOldEls.add(direct);
15
15
  return direct;
16
16
  }
17
- const s = String(k);
18
- const byString = oldKeyMap.get(s);
19
- if (byString && !usedOldEls.has(byString)) {
20
- usedOldEls.add(byString);
21
- return byString;
22
- }
23
- const n = Number(s);
24
- if (!Number.isNaN(n)) {
25
- const byNum = oldKeyMap.get(n);
26
- if (byNum && !usedOldEls.has(byNum)) {
27
- usedOldEls.add(byNum);
28
- return byNum;
29
- }
30
- }
31
- return scanForElementByKey(parent, k, s, usedOldEls);
17
+ return scanForElementByKey(parent, k, usedOldEls);
32
18
  };
33
19
  }
34
- function scanForElementByKey(parent, k, keyStr, usedOldEls) {
20
+ function scanForElementByKey(parent, k, usedOldEls) {
35
21
  try {
36
22
  for (let ch = parent.firstElementChild; ch; ch = ch.nextElementSibling) {
37
23
  if (usedOldEls.has(ch)) continue;
38
- const attr = ch.getAttribute("data-key");
39
- if (attr === keyStr) {
24
+ if (getMaterializedKey(ch) === k) {
40
25
  usedOldEls.add(ch);
41
26
  return ch;
42
27
  }
43
- if (attr !== null) {
44
- const numAttr = Number(attr);
45
- if (!Number.isNaN(numAttr) && numAttr === k) {
46
- usedOldEls.add(ch);
47
- return ch;
48
- }
49
- }
50
28
  }
51
29
  } catch {}
52
30
  }
@@ -64,7 +42,7 @@ function reconcileKeyedChild(child, key, parent, resolveOldElOnce, newKeyMap) {
64
42
  const el = resolveOldElOnce(key);
65
43
  const parentNamespace = getParentNamespace(parent);
66
44
  const domHost = getRendererDOMHost();
67
- if (el && el.parentElement === parent) try {
45
+ if (el && el.parentElement === parent) {
68
46
  const childObj = child;
69
47
  if (childObj && typeof childObj === "object" && typeof childObj.type === "string") {
70
48
  if (canReuseIntrinsicElementInNamespace(el, childObj.type, parentNamespace)) {
@@ -80,7 +58,7 @@ function reconcileKeyedChild(child, key, parent, resolveOldElOnce, newKeyMap) {
80
58
  return synced;
81
59
  }
82
60
  }
83
- } catch {}
61
+ }
84
62
  const dom = domHost.createDOMNode(child, parentNamespace);
85
63
  if (dom) {
86
64
  if (dom instanceof Element) newKeyMap.set(key, dom);
@@ -91,31 +69,29 @@ function reconcileKeyedChild(child, key, parent, resolveOldElOnce, newKeyMap) {
91
69
  function reconcileUnkeyedChild(child, index, parent, resolveUnkeyedOnce, usedOldEls) {
92
70
  const parentNamespace = getParentNamespace(parent);
93
71
  const domHost = getRendererDOMHost();
94
- try {
95
- const existing = parent.childNodes[index];
96
- if (typeof child === "string" || typeof child === "number") {
97
- if (existing && existing.nodeType === 3) {
98
- existing.data = String(child);
99
- usedOldEls.add(existing);
100
- return existing;
101
- }
102
- return domHost.createDOMNode(child, parentNamespace);
103
- }
104
- if (existing instanceof Element) {
105
- const synced = trySyncComponentChild(existing, child, usedOldEls, parentNamespace);
106
- if (synced) return synced;
107
- }
108
- if (existing instanceof Element && canReuseElement(existing, child, parentNamespace)) {
109
- domHost.updateElementFromVnode(existing, child);
72
+ const existing = parent.childNodes[index];
73
+ if (typeof child === "string" || typeof child === "number") {
74
+ if (existing && existing.nodeType === 3) {
75
+ existing.data = String(child);
110
76
  usedOldEls.add(existing);
111
77
  return existing;
112
78
  }
113
- const avail = resolveUnkeyedOnce();
114
- if (avail) {
115
- const reuseResult = tryReuseElement(avail, child, usedOldEls, parentNamespace);
116
- if (reuseResult) return reuseResult;
117
- }
118
- } catch {}
79
+ return domHost.createDOMNode(child, parentNamespace);
80
+ }
81
+ if (existing instanceof Element) {
82
+ const synced = trySyncComponentChild(existing, child, usedOldEls, parentNamespace);
83
+ if (synced) return synced;
84
+ }
85
+ if (existing instanceof Element && canReuseElement(existing, child, parentNamespace)) {
86
+ domHost.updateElementFromVnode(existing, child);
87
+ usedOldEls.add(existing);
88
+ return existing;
89
+ }
90
+ const avail = resolveUnkeyedOnce();
91
+ if (avail) {
92
+ const reuseResult = tryReuseElement(avail, child, usedOldEls, parentNamespace);
93
+ if (reuseResult) return reuseResult;
94
+ }
119
95
  return domHost.createDOMNode(child, parentNamespace);
120
96
  }
121
97
  function isComponentVNode(child) {
@@ -130,10 +106,12 @@ function prepareControlBoundaryResolution(child) {
130
106
  if (!controlState) return null;
131
107
  if (controlState.kind === "for") {
132
108
  const childrenVNodes = evaluateControlBoundaryChildren(controlState);
133
- return childrenVNodes.length === 1 ? {
109
+ if (childrenVNodes.length !== 1) return null;
110
+ clearForDomUpdateState(controlState);
111
+ return {
134
112
  remount: false,
135
113
  vnode: childrenVNodes[0] ?? null
136
- } : null;
114
+ };
137
115
  }
138
116
  const previousActiveKey = controlState.activeKey;
139
117
  const childrenVNodes = evaluateControlBoundaryChildren(controlState);
@@ -183,5 +161,3 @@ function tryReuseElement(avail, child, usedOldEls, parentNamespace) {
183
161
  }
184
162
  //#endregion
185
163
  export { collectUnkeyedElements, createOldElResolver, reconcileSingleChild };
186
-
187
- //# sourceMappingURL=reconcile-resolution.js.map
@@ -35,5 +35,3 @@ function performFullReconciliation(parent, newChildren, oldKeyMap) {
35
35
  }
36
36
  //#endregion
37
37
  export { reconcileKeyedChildren };
38
-
39
- //# sourceMappingURL=reconcile.js.map