@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
@@ -1,15 +1,100 @@
1
1
  import { getCurrentInstance } from "./component-scope.js";
2
+ import { registerLifecycleTransaction } from "./lifecycle-batch.js";
3
+ import "./component-lifecycle.js";
2
4
  import "./component.js";
3
- import { createChildScope, disposeChildScope } from "./child-scope.js";
5
+ import { captureChildScopeTransactionSnapshot, createChildScope, disposeChildScope, restoreChildScopeTransactionSnapshot } from "./child-scope.js";
4
6
  //#region src/runtime/control.ts
5
7
  const SHOW_TRUTHY_KEY = "__show-truthy__";
6
8
  const SHOW_FALLBACK_KEY = "__show-fallback__";
7
9
  const CASE_FALLBACK_KEY = "__case-fallback__";
8
- function disposeBranchScope(state, scope) {
10
+ function getBranchScopes(state) {
11
+ const scopes = [];
12
+ if (state.activeScope) scopes.push(state.activeScope);
13
+ if (state instanceof Object && "fallbackScope" in state) {
14
+ if (state.fallbackScope) scopes.push(state.fallbackScope);
15
+ }
16
+ if (state instanceof Object && "truthyScope" in state) {
17
+ if (state.truthyScope) scopes.push(state.truthyScope);
18
+ }
19
+ return scopes;
20
+ }
21
+ function beginControlTransaction(state) {
22
+ if (state._transaction) return state._transaction;
23
+ const scopeSnapshots = /* @__PURE__ */ new Map();
24
+ for (const scope of getBranchScopes(state)) scopeSnapshots.set(scope, captureChildScopeTransactionSnapshot(scope));
25
+ const transaction = {
26
+ state,
27
+ snapshot: {
28
+ activeKey: state.activeKey,
29
+ activeScope: state.activeScope,
30
+ activeVNodes: state.activeVNodes.slice(),
31
+ lastRemovedNodes: state.lastRemovedNodes.slice(),
32
+ lastRemovedRanges: state.lastRemovedRanges.slice(),
33
+ scopeSnapshots,
34
+ fallbackScope: "fallbackScope" in state ? state.fallbackScope : void 0,
35
+ truthyScope: "truthyScope" in state ? state.truthyScope : void 0
36
+ },
37
+ removedScopes: [],
38
+ shouldClearDomUpdateState: false,
39
+ registered: false
40
+ };
41
+ state._transaction = transaction;
42
+ transaction.registered = registerLifecycleTransaction(transaction, () => commitControlTransaction(state, transaction), () => rollbackControlTransaction(state, transaction));
43
+ return transaction;
44
+ }
45
+ function stageBranchRemoval(state, scope) {
9
46
  if (!scope) return;
47
+ const transaction = state._transaction;
48
+ if (transaction && !transaction.removedScopes.includes(scope)) transaction.removedScopes.push(scope);
49
+ else if (!transaction) disposeChildScope(scope);
10
50
  const removedDom = scope.dom;
11
- disposeChildScope(scope);
12
51
  if (removedDom) state.lastRemovedNodes.push(removedDom);
52
+ if (scope.range) state.lastRemovedRanges.push(scope.range);
53
+ }
54
+ function commitControlTransaction(state, transaction) {
55
+ if (state._transaction !== transaction) return;
56
+ const errors = [];
57
+ for (const scope of transaction.removedScopes) try {
58
+ disposeChildScope(scope);
59
+ } catch (error) {
60
+ errors.push(error);
61
+ }
62
+ if (transaction.shouldClearDomUpdateState) {
63
+ if ("truthyScope" in state && state.truthyScope) state.truthyScope.needsDomUpdate = false;
64
+ if ("fallbackScope" in state && state.fallbackScope) state.fallbackScope.needsDomUpdate = false;
65
+ if (state.activeScope) state.activeScope.needsDomUpdate = false;
66
+ state.lastRemovedNodes = [];
67
+ state.lastRemovedRanges = [];
68
+ }
69
+ state._transaction = null;
70
+ if (errors.length > 0) throw new AggregateError(errors, "Control branch cleanup failed");
71
+ }
72
+ function rollbackControlTransaction(state, transaction) {
73
+ if (state._transaction !== transaction) return;
74
+ const committedScopes = new Set(transaction.snapshot.scopeSnapshots.keys());
75
+ const currentScopes = getBranchScopes(state);
76
+ const errors = [];
77
+ for (const scope of currentScopes) {
78
+ if (committedScopes.has(scope)) continue;
79
+ try {
80
+ disposeChildScope(scope);
81
+ } catch (error) {
82
+ errors.push(error);
83
+ }
84
+ }
85
+ state.activeKey = transaction.snapshot.activeKey;
86
+ state.activeScope = transaction.snapshot.activeScope;
87
+ state.activeVNodes = transaction.snapshot.activeVNodes;
88
+ state.lastRemovedNodes = transaction.snapshot.lastRemovedNodes;
89
+ state.lastRemovedRanges = transaction.snapshot.lastRemovedRanges;
90
+ if ("truthyScope" in state) state.truthyScope = transaction.snapshot.truthyScope ?? null;
91
+ if ("fallbackScope" in state) state.fallbackScope = transaction.snapshot.fallbackScope ?? null;
92
+ for (const [scope, snapshot] of transaction.snapshot.scopeSnapshots) restoreChildScopeTransactionSnapshot(scope, snapshot);
93
+ state._transaction = null;
94
+ if (errors.length > 0) throw new AggregateError(errors, "Control branch rollback cleanup failed");
95
+ }
96
+ function finishImmediateControlTransaction(state, transaction) {
97
+ if (state._transaction === transaction && !transaction.registered) commitControlTransaction(state, transaction);
13
98
  }
14
99
  function createBranchScope(state, key) {
15
100
  return createChildScope(state.parentInstance, key, () => {
@@ -28,9 +113,11 @@ function createShowState(value, renderTruthy, renderFallback) {
28
113
  activeVNodes: [],
29
114
  fallbackScope: null,
30
115
  lastRemovedNodes: [],
116
+ lastRemovedRanges: [],
31
117
  parentInstance: getCurrentInstance(),
32
118
  _enqueueBoundaryCommit: null,
33
119
  _hasPendingBoundaryCommit: false,
120
+ _transaction: null,
34
121
  renderFallback,
35
122
  renderTruthy,
36
123
  selectedValue: value,
@@ -38,46 +125,59 @@ function createShowState(value, renderTruthy, renderFallback) {
38
125
  };
39
126
  }
40
127
  function evaluateShowState(state) {
128
+ const transaction = beginControlTransaction(state);
41
129
  state.lastRemovedNodes = [];
42
- if (state.selectedValue) {
43
- if (state.fallbackScope) {
44
- disposeBranchScope(state, state.fallbackScope);
45
- state.fallbackScope = null;
46
- }
47
- const truthyScope = state.truthyScope ?? createBranchScope(state, SHOW_TRUTHY_KEY);
48
- state.truthyScope = truthyScope;
49
- state.activeScope = truthyScope;
50
- state.activeKey = SHOW_TRUTHY_KEY;
51
- const vnode = truthyScope.render(() => state.renderTruthy(state.selectedValue));
52
- state.activeVNodes = vnode == null || vnode === false ? [] : [vnode];
53
- return state.activeVNodes;
54
- }
55
- if (state.truthyScope) {
56
- disposeBranchScope(state, state.truthyScope);
57
- state.truthyScope = null;
58
- }
59
- if (!state.renderFallback) {
60
- if (state.fallbackScope) {
61
- disposeBranchScope(state, state.fallbackScope);
62
- state.fallbackScope = null;
130
+ state.lastRemovedRanges = [];
131
+ try {
132
+ if (state.selectedValue) {
133
+ if (state.fallbackScope) {
134
+ stageBranchRemoval(state, state.fallbackScope);
135
+ state.fallbackScope = null;
136
+ }
137
+ const truthyScope = state.truthyScope ?? createBranchScope(state, SHOW_TRUTHY_KEY);
138
+ state.truthyScope = truthyScope;
139
+ state.activeScope = truthyScope;
140
+ state.activeKey = SHOW_TRUTHY_KEY;
141
+ const vnode = truthyScope.render(() => state.renderTruthy(state.selectedValue));
142
+ state.activeVNodes = vnode == null || vnode === false ? [] : [vnode];
143
+ } else {
144
+ if (state.truthyScope) {
145
+ stageBranchRemoval(state, state.truthyScope);
146
+ state.truthyScope = null;
147
+ }
148
+ if (!state.renderFallback) {
149
+ if (state.fallbackScope) {
150
+ stageBranchRemoval(state, state.fallbackScope);
151
+ state.fallbackScope = null;
152
+ }
153
+ state.activeKey = null;
154
+ state.activeScope = null;
155
+ state.activeVNodes = [];
156
+ } else {
157
+ const fallbackScope = state.fallbackScope ?? createBranchScope(state, SHOW_FALLBACK_KEY);
158
+ state.fallbackScope = fallbackScope;
159
+ state.activeScope = fallbackScope;
160
+ state.activeKey = SHOW_FALLBACK_KEY;
161
+ const vnode = fallbackScope.render(state.renderFallback);
162
+ state.activeVNodes = vnode == null || vnode === false ? [] : [vnode];
163
+ }
63
164
  }
64
- state.activeKey = null;
65
- state.activeScope = null;
66
- state.activeVNodes = [];
165
+ finishImmediateControlTransaction(state, transaction);
67
166
  return state.activeVNodes;
167
+ } catch (error) {
168
+ rollbackControlTransaction(state, transaction);
169
+ throw error;
68
170
  }
69
- const fallbackScope = state.fallbackScope ?? createBranchScope(state, SHOW_FALLBACK_KEY);
70
- state.fallbackScope = fallbackScope;
71
- state.activeScope = fallbackScope;
72
- state.activeKey = SHOW_FALLBACK_KEY;
73
- const vnode = fallbackScope.render(state.renderFallback);
74
- state.activeVNodes = vnode == null || vnode === false ? [] : [vnode];
75
- return state.activeVNodes;
76
171
  }
77
172
  function clearShowDomUpdateState(state) {
78
173
  if (state.truthyScope) state.truthyScope.needsDomUpdate = false;
79
174
  if (state.fallbackScope) state.fallbackScope.needsDomUpdate = false;
175
+ if (state._transaction) {
176
+ state._transaction.shouldClearDomUpdateState = true;
177
+ return;
178
+ }
80
179
  state.lastRemovedNodes = [];
180
+ state.lastRemovedRanges = [];
81
181
  }
82
182
  function createCaseState(matches, fallback) {
83
183
  return {
@@ -87,40 +187,53 @@ function createCaseState(matches, fallback) {
87
187
  activeVNodes: [],
88
188
  fallback,
89
189
  lastRemovedNodes: [],
190
+ lastRemovedRanges: [],
90
191
  matches,
91
192
  parentInstance: getCurrentInstance(),
92
193
  _enqueueBoundaryCommit: null,
93
- _hasPendingBoundaryCommit: false
194
+ _hasPendingBoundaryCommit: false,
195
+ _transaction: null
94
196
  };
95
197
  }
96
198
  function evaluateCaseState(state) {
199
+ const transaction = beginControlTransaction(state);
97
200
  state.lastRemovedNodes = [];
98
- const selectedMatch = state.matches.find((candidate) => Boolean(candidate.when)) ?? null;
99
- const nextKey = selectedMatch?.key ?? (state.fallback ? CASE_FALLBACK_KEY : null);
100
- if (nextKey === null) {
101
- if (state.activeScope) disposeBranchScope(state, state.activeScope);
102
- state.activeKey = null;
103
- state.activeScope = null;
104
- state.activeVNodes = [];
201
+ state.lastRemovedRanges = [];
202
+ try {
203
+ const selectedMatch = state.matches.find((candidate) => Boolean(candidate.when)) ?? null;
204
+ const nextKey = selectedMatch?.key ?? (state.fallback ? CASE_FALLBACK_KEY : null);
205
+ if (nextKey === null) {
206
+ if (state.activeScope) stageBranchRemoval(state, state.activeScope);
207
+ state.activeKey = null;
208
+ state.activeScope = null;
209
+ state.activeVNodes = [];
210
+ } else {
211
+ if (state.activeScope && state.activeKey !== nextKey) {
212
+ stageBranchRemoval(state, state.activeScope);
213
+ state.activeScope = null;
214
+ }
215
+ const activeScope = state.activeScope ?? createBranchScope(state, nextKey);
216
+ state.activeKey = nextKey;
217
+ state.activeScope = activeScope;
218
+ const renderBranch = selectedMatch?.render ?? state.fallback;
219
+ const vnode = renderBranch ? activeScope.render(renderBranch) : null;
220
+ state.activeVNodes = vnode == null || vnode === false ? [] : [vnode];
221
+ }
222
+ finishImmediateControlTransaction(state, transaction);
105
223
  return state.activeVNodes;
224
+ } catch (error) {
225
+ rollbackControlTransaction(state, transaction);
226
+ throw error;
106
227
  }
107
- if (state.activeScope && state.activeKey !== nextKey) {
108
- disposeBranchScope(state, state.activeScope);
109
- state.activeScope = null;
110
- }
111
- const activeScope = state.activeScope ?? createBranchScope(state, nextKey);
112
- state.activeKey = nextKey;
113
- state.activeScope = activeScope;
114
- const renderBranch = selectedMatch?.render ?? state.fallback;
115
- const vnode = renderBranch ? activeScope.render(renderBranch) : null;
116
- state.activeVNodes = vnode == null || vnode === false ? [] : [vnode];
117
- return state.activeVNodes;
118
228
  }
119
229
  function clearCaseDomUpdateState(state) {
120
230
  if (state.activeScope) state.activeScope.needsDomUpdate = false;
231
+ if (state._transaction) {
232
+ state._transaction.shouldClearDomUpdateState = true;
233
+ return;
234
+ }
121
235
  state.lastRemovedNodes = [];
236
+ state.lastRemovedRanges = [];
122
237
  }
123
238
  //#endregion
124
239
  export { clearCaseDomUpdateState, clearShowDomUpdateState, createCaseState, createShowState, evaluateCaseState, evaluateShowState };
125
-
126
- //# sourceMappingURL=control.js.map
@@ -13,5 +13,4 @@ type SnapshotSource<T> = {
13
13
  declare function derive<TOut>(fn: () => TOut): Derived<TOut>;
14
14
  declare function derive<TIn, TOut>(source: SnapshotSource<TIn> | TIn | (() => TIn), map: (value: TIn) => TOut): Derived<TOut | null>;
15
15
  //#endregion
16
- export { Derived, derive };
17
- //# sourceMappingURL=derive.d.ts.map
16
+ export { Derived, derive };
@@ -138,5 +138,3 @@ function derive(source, map) {
138
138
  }
139
139
  //#endregion
140
140
  export { derive };
141
-
142
- //# sourceMappingURL=derive.js.map
@@ -10,22 +10,21 @@ type DevNamespace = Record<string, unknown>;
10
10
  * Get or create the __ASKR__ dev namespace on globalThis.
11
11
  * Returns empty object in production to avoid allocations.
12
12
  */
13
- declare function getDevNamespace(): DevNamespace;
13
+ declare const getDevNamespace: () => DevNamespace;
14
14
  /**
15
15
  * Set a value in the dev namespace (no-op in production).
16
16
  */
17
- declare function setDevValue(key: string, value: unknown): void;
17
+ declare const setDevValue: (key: string, value: unknown) => void;
18
18
  /**
19
19
  * Get a value from the dev namespace (returns undefined in production).
20
20
  */
21
- declare function getDevValue<T>(key: string): T | undefined;
21
+ declare const getDevValue: <T>(key: string) => T | undefined;
22
22
  /**
23
23
  * Delete a value from the dev namespace (no-op in production).
24
24
  */
25
- declare function deleteDevValue(key: string): void;
25
+ declare const deleteDevValue: (key: string) => void;
26
26
  /**
27
27
  * Increment a counter in the dev namespace (no-op in production).
28
28
  * Safely handles non-number values by resetting to 1.
29
29
  */
30
- declare function incDevCounter(key: string): void;
31
- //# sourceMappingURL=dev-namespace.d.ts.map
30
+ declare const incDevCounter: (key: string) => void;
@@ -6,52 +6,59 @@ import { isProductionEnvironment } from "../common/env.js";
6
6
  * Centralizes the repetitive globalThis.__ASKR__ access pattern
7
7
  * used throughout runtime for dev-mode diagnostics.
8
8
  */
9
- /**
10
- * Get or create the __ASKR__ dev namespace on globalThis.
11
- * Returns empty object in production to avoid allocations.
12
- */
13
- function getDevNamespace() {
14
- if (isProductionEnvironment()) return {};
9
+ const PRODUCTION_BUILD_ENABLED = isProductionEnvironment();
10
+ const EMPTY_DEV_NAMESPACE = {};
11
+ function getOrCreateDevNamespace() {
15
12
  try {
16
13
  const g = globalThis;
17
14
  if (!g.__ASKR__) g.__ASKR__ = {};
18
15
  return g.__ASKR__;
19
16
  } catch {
20
- return {};
17
+ return EMPTY_DEV_NAMESPACE;
21
18
  }
22
19
  }
23
- /**
24
- * Set a value in the dev namespace (no-op in production).
25
- */
26
- function setDevValue(key, value) {
20
+ function getDevNamespaceLive() {
21
+ if (isProductionEnvironment()) return EMPTY_DEV_NAMESPACE;
22
+ return getOrCreateDevNamespace();
23
+ }
24
+ function setDevValueLive(key, value) {
27
25
  if (isProductionEnvironment()) return;
28
26
  try {
29
- getDevNamespace()[key] = value;
27
+ getOrCreateDevNamespace()[key] = value;
30
28
  } catch {}
31
29
  }
32
- /**
33
- * Get a value from the dev namespace (returns undefined in production).
34
- */
35
- function getDevValue(key) {
30
+ function getDevValueLive(key) {
36
31
  if (isProductionEnvironment()) return void 0;
37
32
  try {
38
- return getDevNamespace()[key];
33
+ return getOrCreateDevNamespace()[key];
39
34
  } catch {
40
35
  return;
41
36
  }
42
37
  }
43
- /**
44
- * Increment a counter in the dev namespace (no-op in production).
45
- * Safely handles non-number values by resetting to 1.
46
- */
47
- function incDevCounter(key) {
38
+ function incDevCounterLive(key) {
48
39
  if (isProductionEnvironment()) return;
49
40
  try {
50
- const ns = getDevNamespace();
41
+ const ns = getOrCreateDevNamespace();
51
42
  ns[key] = (typeof ns[key] === "number" ? ns[key] : 0) + 1;
52
43
  } catch {}
53
44
  }
45
+ /**
46
+ * Get or create the __ASKR__ dev namespace on globalThis.
47
+ * Returns empty object in production to avoid allocations.
48
+ */
49
+ const getDevNamespace = PRODUCTION_BUILD_ENABLED ? () => EMPTY_DEV_NAMESPACE : getDevNamespaceLive;
50
+ /**
51
+ * Set a value in the dev namespace (no-op in production).
52
+ */
53
+ const setDevValue = PRODUCTION_BUILD_ENABLED ? () => {} : setDevValueLive;
54
+ /**
55
+ * Get a value from the dev namespace (returns undefined in production).
56
+ */
57
+ const getDevValue = PRODUCTION_BUILD_ENABLED ? () => void 0 : getDevValueLive;
58
+ /**
59
+ * Increment a counter in the dev namespace (no-op in production).
60
+ * Safely handles non-number values by resetting to 1.
61
+ */
62
+ const incDevCounter = PRODUCTION_BUILD_ENABLED ? () => {} : incDevCounterLive;
54
63
  //#endregion
55
64
  export { getDevNamespace, getDevValue, incDevCounter, setDevValue };
56
-
57
- //# sourceMappingURL=dev-namespace.js.map
@@ -1,13 +1,15 @@
1
- import { ReadableSource } from "./readable.js";
1
+ import { FineGrainedReadCollector, ReadableSource } from "./readable.js";
2
2
  import { SchedulerLane } from "./scheduler.js";
3
3
 
4
4
  //#region src/runtime/effect.d.ts
5
- interface FineGrainedEffect<T> {
5
+ type EffectReadSources = ReadableSource<unknown> | ReadableSource<unknown>[] | Set<ReadableSource<unknown>> | null;
6
+ interface FineGrainedEffect<T> extends FineGrainedReadCollector {
6
7
  lane: SchedulerLane;
7
8
  compute(): T;
8
9
  commit(value: T, previousValue: T | undefined): void;
9
10
  equals(previousValue: T, nextValue: T): boolean;
10
- readSources: Set<ReadableSource<unknown>>;
11
+ readSources: EffectReadSources;
12
+ readSource2: ReadableSource<unknown> | null;
11
13
  isActive: boolean;
12
14
  hasValue: boolean;
13
15
  lastValue: T | undefined;
@@ -27,6 +29,7 @@ interface CreateFineGrainedEffectOptions<T> {
27
29
  }
28
30
  declare function markFineGrainedEffectsDirtySource(source: ReadableSource<unknown>): void;
29
31
  declare function createFineGrainedEffect<T>(options: CreateFineGrainedEffectOptions<T>): FineGrainedEffectHandle<T>;
32
+ /** @internal Allocation-sensitive variant for shared renderer callbacks. */
33
+ declare function createOwnedFineGrainedEffect<T>(lane: SchedulerLane, compute: () => T, commit: (value: T, previousValue: T | undefined) => void, equals: (previousValue: T, nextValue: T) => boolean, onError: ((error: unknown) => void) | undefined, owner: unknown): FineGrainedEffectHandle<T>;
30
34
  //#endregion
31
- export { CreateFineGrainedEffectOptions, FineGrainedEffectHandle };
32
- //# sourceMappingURL=effect.d.ts.map
35
+ export { CreateFineGrainedEffectOptions, FineGrainedEffectHandle };