@askrjs/askr 0.0.51 → 0.0.53

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 (651) hide show
  1. package/README.md +5 -1
  2. package/dist/{runtime/scheduler.js → access-Bg4RJNC8.js} +190 -20
  3. package/dist/actions/index.d.ts +2 -0
  4. package/dist/actions/index.js +103 -0
  5. package/dist/{common/attr-names.js → attr-names-CjhzmHOn.js} +1 -3
  6. package/dist/benchmark.d.ts +7 -4
  7. package/dist/benchmark.js +63 -13
  8. package/dist/boot/index.d.ts +62 -4
  9. package/dist/boot/index.js +1 -194
  10. package/dist/boot-j2KoN6ss.js +647 -0
  11. package/dist/cleanup-COv77su2.js +487 -0
  12. package/dist/component-internal-B3z7GXlD.js +614 -0
  13. package/dist/component-lifecycle-CO4hXlP4.js +357 -0
  14. package/dist/{runtime/component-scope.js → component-scope-CC3cojX9.js} +35 -9
  15. package/dist/component-scope-CvPba6O6.d.ts +12 -0
  16. package/dist/components/index.d.ts +17 -2
  17. package/dist/components/index.js +39 -1
  18. package/dist/compose-ref-Cc_YkUpM.js +92 -0
  19. package/dist/{foundations/utilities/compose-ref.d.ts → compose-ref-Cizq72-x.d.ts} +1 -2
  20. package/dist/control/index.d.ts +1 -3
  21. package/dist/control/index.js +1 -3
  22. package/dist/control-BQvNVfAd.d.ts +436 -0
  23. package/dist/control-BYyLTFyw.js +165 -0
  24. package/dist/control-Bf4Wkdvv.d.ts +9 -0
  25. package/dist/{common/control.js → control-DhFRTIoE.js} +1 -3
  26. package/dist/data/index.d.ts +2 -6
  27. package/dist/data/index.js +4 -5
  28. package/dist/data-DnxnDxD-.js +559 -0
  29. package/dist/{data/data-runtime.js → data-runtime-SJ1BSUvk.js} +35 -36
  30. package/dist/deferred-lKE8uR0z.js +386 -0
  31. package/dist/effect-BwnIvLah.js +260 -0
  32. package/dist/fastlane-Dw8SOBr9.js +343 -0
  33. package/dist/for-internal-BKf_Tnv1.js +1563 -0
  34. package/dist/foundations/icon/index.d.ts +68 -2
  35. package/dist/foundations/icon/index.js +85 -1
  36. package/dist/foundations/index.d.ts +2 -5
  37. package/dist/foundations/index.js +2 -5
  38. package/dist/foundations/interactions/index.d.ts +264 -6
  39. package/dist/foundations/interactions/index.js +1 -6
  40. package/dist/foundations/state/index.d.ts +32 -1
  41. package/dist/foundations/state/index.js +78 -1
  42. package/dist/foundations/structures/index.d.ts +2 -7
  43. package/dist/foundations/structures/index.js +2 -7
  44. package/dist/foundations/utilities/index.d.ts +2 -6
  45. package/dist/foundations/utilities/index.js +2 -5
  46. package/dist/fx/index.d.ts +190 -3
  47. package/dist/fx/index.js +454 -4
  48. package/dist/index-31Uoz_NS.d.ts +239 -0
  49. package/dist/index-Bki2rqcr.d.ts +233 -0
  50. package/dist/index-BnU0NPwM.d.ts +101 -0
  51. package/dist/index-D73jgYx1.d.ts +48 -0
  52. package/dist/{runtime/runtime.d.ts → index-R2JJIbM-.d.ts} +31 -9
  53. package/dist/index-SJXJkssx.d.ts +44 -0
  54. package/dist/index.d.ts +8 -13
  55. package/dist/index.js +150 -17
  56. package/dist/interactions-w7gQN4ha.js +280 -0
  57. package/dist/{data/invalidation-listeners.js → invalidation-listeners-Des3AHYs.js} +1 -3
  58. package/dist/{common/props.d.ts → jsx-CP0gmYwJ.d.ts} +17 -6
  59. package/dist/{common/jsx.js → jsx-CUpRxrLH.js} +1 -3
  60. package/dist/jsx-dev-runtime.d.ts +17 -5
  61. package/dist/jsx-dev-runtime.js +3 -10
  62. package/dist/jsx-runtime-92bV2hSa.d.ts +34 -0
  63. package/dist/jsx-runtime-BVVgDSdq.d.ts +1 -0
  64. package/dist/jsx-runtime.d.ts +3 -22
  65. package/dist/jsx-runtime.js +17 -20
  66. package/dist/{runtime/lifecycle-operations.js → lifecycle-operations-D9va7GOU.js} +9 -11
  67. package/dist/navigate-BVDCzOuB.d.ts +34 -0
  68. package/dist/navigate-CmPLSXyw.js +1449 -0
  69. package/dist/{runtime/portal.js → portal-CyU3Ucf2.js} +124 -35
  70. package/dist/query-registry-CQIT4mXr.js +73 -0
  71. package/dist/{common/render-context.js → render-context-Clw3rFiO.js} +14 -8
  72. package/dist/renderer-DzPjeLby.js +6197 -0
  73. package/dist/resource-operation-CEzfpnDk.js +276 -0
  74. package/dist/resources/index.d.ts +42 -3
  75. package/dist/resources/index.js +3 -4
  76. package/dist/{common/route-activity.js → route-activity-CNJfpwx-.js} +1 -3
  77. package/dist/route-matching-vJpvLVbX.js +515 -0
  78. package/dist/router/index.d.ts +166 -14
  79. package/dist/router/index.js +150 -12
  80. package/dist/{common/router.d.ts → router-CeYvjj5_.d.ts} +72 -29
  81. package/dist/{common/router-internal.js → router-internal-BC0w1_xk.js} +1 -3
  82. package/dist/{runtime/scheduler.d.ts → scheduler-CmLO4Dfm.d.ts} +1 -4
  83. package/dist/{runtime/selector.js → selector-DafVYzV4.js} +35 -20
  84. package/dist/{runtime/snapshot-source.js → snapshot-source-BB42xgwb.js} +1 -3
  85. package/dist/ssg/index.d.ts +252 -4
  86. package/dist/ssg/index.js +857 -1
  87. package/dist/ssr/index.d.ts +225 -8
  88. package/dist/ssr/index.js +3 -6
  89. package/dist/{common/ssr.js → ssr-CbQO5xd3.js} +1 -3
  90. package/dist/ssr-D3t80Rc0.js +1413 -0
  91. package/dist/{runtime/state.js → state-DPl8lffD.js} +4 -8
  92. package/dist/structures-DUB3HchX.js +221 -0
  93. package/dist/testing/index.d.ts +4 -4
  94. package/dist/testing/index.js +2 -7
  95. package/dist/{jsx/types.d.ts → types-DnQVG4ZY.d.ts} +2 -6
  96. package/dist/{foundations/utilities/use-id.js → utilities-C_CGX4Dz.js} +1 -3
  97. package/dist/{ssr/verify-hydration.js → verify-hydration-io9ahUeq.js} +2 -4
  98. package/dist/{common/vnode.js → vnode-CGMJYPMB.js} +2 -4
  99. package/package.json +63 -45
  100. package/dist/bench/components/benchmark-row.d.ts +0 -20
  101. package/dist/bench/components/benchmark-row.d.ts.map +0 -1
  102. package/dist/bench/components/benchmark-row.js +0 -42
  103. package/dist/bench/components/benchmark-row.js.map +0 -1
  104. package/dist/bench/components/benchmark-table.js +0 -25
  105. package/dist/bench/components/benchmark-table.js.map +0 -1
  106. package/dist/benchmark.d.ts.map +0 -1
  107. package/dist/benchmark.js.map +0 -1
  108. package/dist/bin/askr-ssg.d.ts +0 -28
  109. package/dist/bin/askr-ssg.d.ts.map +0 -1
  110. package/dist/bin/askr-ssg.js +0 -171
  111. package/dist/bin/askr-ssg.js.map +0 -1
  112. package/dist/boot/hydration.js +0 -140
  113. package/dist/boot/hydration.js.map +0 -1
  114. package/dist/boot/index.d.ts.map +0 -1
  115. package/dist/boot/index.js.map +0 -1
  116. package/dist/boot/root-lifecycle.d.ts +0 -15
  117. package/dist/boot/root-lifecycle.d.ts.map +0 -1
  118. package/dist/boot/root-lifecycle.js +0 -205
  119. package/dist/boot/root-lifecycle.js.map +0 -1
  120. package/dist/boot/route-startup.js +0 -45
  121. package/dist/boot/route-startup.js.map +0 -1
  122. package/dist/boot/types.d.ts +0 -62
  123. package/dist/boot/types.d.ts.map +0 -1
  124. package/dist/common/attr-names.js.map +0 -1
  125. package/dist/common/component.d.ts +0 -19
  126. package/dist/common/component.d.ts.map +0 -1
  127. package/dist/common/control.d.ts +0 -13
  128. package/dist/common/control.d.ts.map +0 -1
  129. package/dist/common/control.js.map +0 -1
  130. package/dist/common/env.js +0 -47
  131. package/dist/common/env.js.map +0 -1
  132. package/dist/common/error-boundary.d.ts +0 -16
  133. package/dist/common/error-boundary.d.ts.map +0 -1
  134. package/dist/common/invariant.js +0 -17
  135. package/dist/common/invariant.js.map +0 -1
  136. package/dist/common/jsx.d.ts +0 -23
  137. package/dist/common/jsx.d.ts.map +0 -1
  138. package/dist/common/jsx.js.map +0 -1
  139. package/dist/common/logger.js +0 -36
  140. package/dist/common/logger.js.map +0 -1
  141. package/dist/common/promise.js +0 -8
  142. package/dist/common/promise.js.map +0 -1
  143. package/dist/common/props.d.ts.map +0 -1
  144. package/dist/common/render-context.js.map +0 -1
  145. package/dist/common/route-activity.js.map +0 -1
  146. package/dist/common/router-internal.js.map +0 -1
  147. package/dist/common/router.d.ts.map +0 -1
  148. package/dist/common/ssr-errors.d.ts +0 -11
  149. package/dist/common/ssr-errors.d.ts.map +0 -1
  150. package/dist/common/ssr-errors.js +0 -16
  151. package/dist/common/ssr-errors.js.map +0 -1
  152. package/dist/common/ssr.d.ts +0 -42
  153. package/dist/common/ssr.d.ts.map +0 -1
  154. package/dist/common/ssr.js.map +0 -1
  155. package/dist/common/vnode.d.ts +0 -22
  156. package/dist/common/vnode.d.ts.map +0 -1
  157. package/dist/common/vnode.js.map +0 -1
  158. package/dist/components/error-boundary.d.ts +0 -15
  159. package/dist/components/error-boundary.d.ts.map +0 -1
  160. package/dist/components/error-boundary.js +0 -43
  161. package/dist/components/error-boundary.js.map +0 -1
  162. package/dist/components/link.d.ts +0 -68
  163. package/dist/components/link.d.ts.map +0 -1
  164. package/dist/components/link.js +0 -76
  165. package/dist/components/link.js.map +0 -1
  166. package/dist/control/case.d.ts +0 -19
  167. package/dist/control/case.d.ts.map +0 -1
  168. package/dist/control/case.js +0 -70
  169. package/dist/control/case.js.map +0 -1
  170. package/dist/control/for.d.ts +0 -24
  171. package/dist/control/for.d.ts.map +0 -1
  172. package/dist/control/for.js +0 -63
  173. package/dist/control/for.js.map +0 -1
  174. package/dist/control/shared.d.ts +0 -9
  175. package/dist/control/shared.d.ts.map +0 -1
  176. package/dist/control/shared.js +0 -20
  177. package/dist/control/shared.js.map +0 -1
  178. package/dist/control/show.d.ts +0 -15
  179. package/dist/control/show.d.ts.map +0 -1
  180. package/dist/control/show.js +0 -34
  181. package/dist/control/show.js.map +0 -1
  182. package/dist/data/data-runtime.d.ts +0 -28
  183. package/dist/data/data-runtime.d.ts.map +0 -1
  184. package/dist/data/data-runtime.js.map +0 -1
  185. package/dist/data/invalidation-listeners.js.map +0 -1
  186. package/dist/data/invalidation.d.ts +0 -9
  187. package/dist/data/invalidation.d.ts.map +0 -1
  188. package/dist/data/invalidation.js +0 -27
  189. package/dist/data/invalidation.js.map +0 -1
  190. package/dist/data/mutation-cell.d.ts +0 -28
  191. package/dist/data/mutation-cell.d.ts.map +0 -1
  192. package/dist/data/mutation-cell.js +0 -132
  193. package/dist/data/mutation-cell.js.map +0 -1
  194. package/dist/data/query-cell.d.ts +0 -46
  195. package/dist/data/query-cell.d.ts.map +0 -1
  196. package/dist/data/query-cell.js +0 -290
  197. package/dist/data/query-cell.js.map +0 -1
  198. package/dist/data/query-key.js +0 -42
  199. package/dist/data/query-key.js.map +0 -1
  200. package/dist/data/shared.js +0 -21
  201. package/dist/data/shared.js.map +0 -1
  202. package/dist/data/testing.js +0 -2
  203. package/dist/data/types.d.ts +0 -161
  204. package/dist/data/types.d.ts.map +0 -1
  205. package/dist/foundations/icon/icon.d.ts +0 -53
  206. package/dist/foundations/icon/icon.d.ts.map +0 -1
  207. package/dist/foundations/icon/icon.js +0 -88
  208. package/dist/foundations/icon/icon.js.map +0 -1
  209. package/dist/foundations/icon/icon.types.d.ts +0 -22
  210. package/dist/foundations/icon/icon.types.d.ts.map +0 -1
  211. package/dist/foundations/interactions/dismissable.d.ts +0 -72
  212. package/dist/foundations/interactions/dismissable.d.ts.map +0 -1
  213. package/dist/foundations/interactions/dismissable.js +0 -26
  214. package/dist/foundations/interactions/dismissable.js.map +0 -1
  215. package/dist/foundations/interactions/focusable.d.ts +0 -22
  216. package/dist/foundations/interactions/focusable.d.ts.map +0 -1
  217. package/dist/foundations/interactions/focusable.js +0 -18
  218. package/dist/foundations/interactions/focusable.js.map +0 -1
  219. package/dist/foundations/interactions/hoverable.d.ts +0 -26
  220. package/dist/foundations/interactions/hoverable.d.ts.map +0 -1
  221. package/dist/foundations/interactions/hoverable.js +0 -15
  222. package/dist/foundations/interactions/hoverable.js.map +0 -1
  223. package/dist/foundations/interactions/interaction-policy.d.ts +0 -50
  224. package/dist/foundations/interactions/interaction-policy.d.ts.map +0 -1
  225. package/dist/foundations/interactions/interaction-policy.js +0 -122
  226. package/dist/foundations/interactions/interaction-policy.js.map +0 -1
  227. package/dist/foundations/interactions/pressable.d.ts +0 -61
  228. package/dist/foundations/interactions/pressable.d.ts.map +0 -1
  229. package/dist/foundations/interactions/pressable.js +0 -51
  230. package/dist/foundations/interactions/pressable.js.map +0 -1
  231. package/dist/foundations/interactions/roving-focus.d.ts +0 -52
  232. package/dist/foundations/interactions/roving-focus.d.ts.map +0 -1
  233. package/dist/foundations/interactions/roving-focus.js +0 -71
  234. package/dist/foundations/interactions/roving-focus.js.map +0 -1
  235. package/dist/foundations/state/controllable.d.ts +0 -33
  236. package/dist/foundations/state/controllable.d.ts.map +0 -1
  237. package/dist/foundations/state/controllable.js +0 -82
  238. package/dist/foundations/state/controllable.js.map +0 -1
  239. package/dist/foundations/structures/collection.d.ts +0 -52
  240. package/dist/foundations/structures/collection.d.ts.map +0 -1
  241. package/dist/foundations/structures/collection.js +0 -51
  242. package/dist/foundations/structures/collection.js.map +0 -1
  243. package/dist/foundations/structures/layer.d.ts +0 -81
  244. package/dist/foundations/structures/layer.d.ts.map +0 -1
  245. package/dist/foundations/structures/layer.js +0 -81
  246. package/dist/foundations/structures/layer.js.map +0 -1
  247. package/dist/foundations/structures/layout.d.ts +0 -33
  248. package/dist/foundations/structures/layout.d.ts.map +0 -1
  249. package/dist/foundations/structures/layout.js +0 -13
  250. package/dist/foundations/structures/layout.js.map +0 -1
  251. package/dist/foundations/structures/portal.d.ts +0 -2
  252. package/dist/foundations/structures/portal.js +0 -3
  253. package/dist/foundations/structures/presence.d.ts +0 -37
  254. package/dist/foundations/structures/presence.d.ts.map +0 -1
  255. package/dist/foundations/structures/presence.js +0 -39
  256. package/dist/foundations/structures/presence.js.map +0 -1
  257. package/dist/foundations/structures/slot.d.ts +0 -35
  258. package/dist/foundations/structures/slot.d.ts.map +0 -1
  259. package/dist/foundations/structures/slot.js +0 -41
  260. package/dist/foundations/structures/slot.js.map +0 -1
  261. package/dist/foundations/utilities/aria.d.ts +0 -16
  262. package/dist/foundations/utilities/aria.d.ts.map +0 -1
  263. package/dist/foundations/utilities/aria.js +0 -17
  264. package/dist/foundations/utilities/aria.js.map +0 -1
  265. package/dist/foundations/utilities/compose-handlers.d.ts +0 -37
  266. package/dist/foundations/utilities/compose-handlers.d.ts.map +0 -1
  267. package/dist/foundations/utilities/compose-handlers.js +0 -20
  268. package/dist/foundations/utilities/compose-handlers.js.map +0 -1
  269. package/dist/foundations/utilities/compose-ref.d.ts.map +0 -1
  270. package/dist/foundations/utilities/compose-ref.js +0 -18
  271. package/dist/foundations/utilities/compose-ref.js.map +0 -1
  272. package/dist/foundations/utilities/event-types.d.ts +0 -20
  273. package/dist/foundations/utilities/event-types.d.ts.map +0 -1
  274. package/dist/foundations/utilities/merge-props.d.ts +0 -5
  275. package/dist/foundations/utilities/merge-props.d.ts.map +0 -1
  276. package/dist/foundations/utilities/merge-props.js +0 -49
  277. package/dist/foundations/utilities/merge-props.js.map +0 -1
  278. package/dist/foundations/utilities/use-id.d.ts +0 -32
  279. package/dist/foundations/utilities/use-id.d.ts.map +0 -1
  280. package/dist/foundations/utilities/use-id.js.map +0 -1
  281. package/dist/fx/fx.d.ts +0 -33
  282. package/dist/fx/fx.d.ts.map +0 -1
  283. package/dist/fx/fx.js +0 -213
  284. package/dist/fx/fx.js.map +0 -1
  285. package/dist/fx/noop.js +0 -9
  286. package/dist/fx/noop.js.map +0 -1
  287. package/dist/fx/timing.d.ts +0 -159
  288. package/dist/fx/timing.d.ts.map +0 -1
  289. package/dist/fx/timing.js +0 -243
  290. package/dist/fx/timing.js.map +0 -1
  291. package/dist/index.js.map +0 -1
  292. package/dist/jsx/index.d.ts +0 -2
  293. package/dist/jsx/index.js +0 -4
  294. package/dist/jsx/types.d.ts.map +0 -1
  295. package/dist/jsx/types.js +0 -2
  296. package/dist/jsx/utils.d.ts +0 -5
  297. package/dist/jsx/utils.d.ts.map +0 -1
  298. package/dist/jsx/utils.js +0 -19
  299. package/dist/jsx/utils.js.map +0 -1
  300. package/dist/jsx-dev-runtime.d.ts.map +0 -1
  301. package/dist/jsx-dev-runtime.js.map +0 -1
  302. package/dist/jsx-runtime.d.ts.map +0 -1
  303. package/dist/jsx-runtime.js.map +0 -1
  304. package/dist/jsx-runtime2.d.ts +0 -3
  305. package/dist/jsx-runtime2.js +0 -4
  306. package/dist/renderer/attributes.js +0 -232
  307. package/dist/renderer/attributes.js.map +0 -1
  308. package/dist/renderer/boundaries.js +0 -266
  309. package/dist/renderer/boundaries.js.map +0 -1
  310. package/dist/renderer/child-shape.js +0 -85
  311. package/dist/renderer/child-shape.js.map +0 -1
  312. package/dist/renderer/children-fastpath.js +0 -149
  313. package/dist/renderer/children-fastpath.js.map +0 -1
  314. package/dist/renderer/children.js +0 -160
  315. package/dist/renderer/children.js.map +0 -1
  316. package/dist/renderer/cleanup.js +0 -210
  317. package/dist/renderer/cleanup.js.map +0 -1
  318. package/dist/renderer/component-host-cleanup.js +0 -68
  319. package/dist/renderer/component-host-cleanup.js.map +0 -1
  320. package/dist/renderer/component-host-instances.js +0 -65
  321. package/dist/renderer/component-host-instances.js.map +0 -1
  322. package/dist/renderer/component-host.js +0 -247
  323. package/dist/renderer/component-host.js.map +0 -1
  324. package/dist/renderer/dom-host.js +0 -13
  325. package/dist/renderer/dom-host.js.map +0 -1
  326. package/dist/renderer/dom-internal.js +0 -186
  327. package/dist/renderer/dom-internal.js.map +0 -1
  328. package/dist/renderer/dom.js +0 -10
  329. package/dist/renderer/element-children.js +0 -279
  330. package/dist/renderer/element-children.js.map +0 -1
  331. package/dist/renderer/env.js +0 -2
  332. package/dist/renderer/error-boundary-dom.js +0 -78
  333. package/dist/renderer/error-boundary-dom.js.map +0 -1
  334. package/dist/renderer/evaluate-dom-range.js +0 -85
  335. package/dist/renderer/evaluate-dom-range.js.map +0 -1
  336. package/dist/renderer/evaluate-reconcile.js +0 -282
  337. package/dist/renderer/evaluate-reconcile.js.map +0 -1
  338. package/dist/renderer/evaluate.js +0 -84
  339. package/dist/renderer/evaluate.js.map +0 -1
  340. package/dist/renderer/fastpath.js +0 -150
  341. package/dist/renderer/fastpath.js.map +0 -1
  342. package/dist/renderer/for-commit-dom-map.js +0 -83
  343. package/dist/renderer/for-commit-dom-map.js.map +0 -1
  344. package/dist/renderer/for-commit-removal.js +0 -36
  345. package/dist/renderer/for-commit-removal.js.map +0 -1
  346. package/dist/renderer/for-commit-reorder.js +0 -89
  347. package/dist/renderer/for-commit-reorder.js.map +0 -1
  348. package/dist/renderer/for-commit.js +0 -314
  349. package/dist/renderer/for-commit.js.map +0 -1
  350. package/dist/renderer/index.js +0 -38
  351. package/dist/renderer/index.js.map +0 -1
  352. package/dist/renderer/keyed-children.js +0 -32
  353. package/dist/renderer/keyed-children.js.map +0 -1
  354. package/dist/renderer/keyed.js +0 -167
  355. package/dist/renderer/keyed.js.map +0 -1
  356. package/dist/renderer/namespaces.js +0 -23
  357. package/dist/renderer/namespaces.js.map +0 -1
  358. package/dist/renderer/prop-bindings.js +0 -280
  359. package/dist/renderer/prop-bindings.js.map +0 -1
  360. package/dist/renderer/reactive-child-dom.js +0 -133
  361. package/dist/renderer/reactive-child-dom.js.map +0 -1
  362. package/dist/renderer/reactive-child-sources.js +0 -184
  363. package/dist/renderer/reactive-child-sources.js.map +0 -1
  364. package/dist/renderer/reactive-children.js +0 -294
  365. package/dist/renderer/reactive-children.js.map +0 -1
  366. package/dist/renderer/reconcile-commit.js +0 -38
  367. package/dist/renderer/reconcile-commit.js.map +0 -1
  368. package/dist/renderer/reconcile-fastpaths.js +0 -107
  369. package/dist/renderer/reconcile-fastpaths.js.map +0 -1
  370. package/dist/renderer/reconcile-resolution.js +0 -187
  371. package/dist/renderer/reconcile-resolution.js.map +0 -1
  372. package/dist/renderer/reconcile.js +0 -39
  373. package/dist/renderer/reconcile.js.map +0 -1
  374. package/dist/renderer/retained-element-rollback.js +0 -277
  375. package/dist/renderer/retained-element-rollback.js.map +0 -1
  376. package/dist/renderer/stable-patch.js +0 -81
  377. package/dist/renderer/stable-patch.js.map +0 -1
  378. package/dist/renderer/static-reuse.js +0 -96
  379. package/dist/renderer/static-reuse.js.map +0 -1
  380. package/dist/renderer/types.js +0 -2
  381. package/dist/renderer/utils.js +0 -256
  382. package/dist/renderer/utils.js.map +0 -1
  383. package/dist/router/access.js +0 -36
  384. package/dist/router/access.js.map +0 -1
  385. package/dist/router/activity.d.ts +0 -10
  386. package/dist/router/activity.d.ts.map +0 -1
  387. package/dist/router/activity.js +0 -87
  388. package/dist/router/activity.js.map +0 -1
  389. package/dist/router/authoring.d.ts +0 -22
  390. package/dist/router/authoring.d.ts.map +0 -1
  391. package/dist/router/authoring.js +0 -198
  392. package/dist/router/authoring.js.map +0 -1
  393. package/dist/router/internal-types.d.ts +0 -31
  394. package/dist/router/internal-types.d.ts.map +0 -1
  395. package/dist/router/lazy.d.ts +0 -19
  396. package/dist/router/lazy.d.ts.map +0 -1
  397. package/dist/router/lazy.js +0 -52
  398. package/dist/router/lazy.js.map +0 -1
  399. package/dist/router/manifest.d.ts +0 -10
  400. package/dist/router/manifest.d.ts.map +0 -1
  401. package/dist/router/manifest.js +0 -49
  402. package/dist/router/manifest.js.map +0 -1
  403. package/dist/router/match.js +0 -122
  404. package/dist/router/match.js.map +0 -1
  405. package/dist/router/navigate.d.ts +0 -11
  406. package/dist/router/navigate.d.ts.map +0 -1
  407. package/dist/router/navigate.js +0 -76
  408. package/dist/router/navigate.js.map +0 -1
  409. package/dist/router/navigation-registry.d.ts +0 -32
  410. package/dist/router/navigation-registry.d.ts.map +0 -1
  411. package/dist/router/navigation-registry.js +0 -105
  412. package/dist/router/navigation-registry.js.map +0 -1
  413. package/dist/router/navigation-scroll.d.ts +0 -14
  414. package/dist/router/navigation-scroll.d.ts.map +0 -1
  415. package/dist/router/navigation-scroll.js +0 -93
  416. package/dist/router/navigation-scroll.js.map +0 -1
  417. package/dist/router/navigation-targets.d.ts +0 -31
  418. package/dist/router/navigation-targets.d.ts.map +0 -1
  419. package/dist/router/navigation-targets.js +0 -255
  420. package/dist/router/navigation-targets.js.map +0 -1
  421. package/dist/router/policy.d.ts +0 -28
  422. package/dist/router/policy.d.ts.map +0 -1
  423. package/dist/router/policy.js +0 -132
  424. package/dist/router/policy.js.map +0 -1
  425. package/dist/router/rendering.d.ts +0 -10
  426. package/dist/router/rendering.d.ts.map +0 -1
  427. package/dist/router/rendering.js +0 -46
  428. package/dist/router/rendering.js.map +0 -1
  429. package/dist/router/resolution.d.ts +0 -4
  430. package/dist/router/resolution.d.ts.map +0 -1
  431. package/dist/router/resolution.js +0 -86
  432. package/dist/router/resolution.js.map +0 -1
  433. package/dist/router/route-context.js +0 -79
  434. package/dist/router/route-context.js.map +0 -1
  435. package/dist/router/route-matching.d.ts +0 -20
  436. package/dist/router/route-matching.d.ts.map +0 -1
  437. package/dist/router/route-matching.js +0 -175
  438. package/dist/router/route-matching.js.map +0 -1
  439. package/dist/router/route-query.d.ts +0 -17
  440. package/dist/router/route-query.d.ts.map +0 -1
  441. package/dist/router/route-query.js +0 -47
  442. package/dist/router/route-query.js.map +0 -1
  443. package/dist/router/route.d.ts +0 -8
  444. package/dist/router/route.js +0 -10
  445. package/dist/router/store.d.ts +0 -50
  446. package/dist/router/store.d.ts.map +0 -1
  447. package/dist/router/store.js +0 -171
  448. package/dist/router/store.js.map +0 -1
  449. package/dist/router/testing.js +0 -4
  450. package/dist/runtime/access.d.ts +0 -20
  451. package/dist/runtime/access.d.ts.map +0 -1
  452. package/dist/runtime/access.js +0 -45
  453. package/dist/runtime/access.js.map +0 -1
  454. package/dist/runtime/child-scope.d.ts +0 -22
  455. package/dist/runtime/child-scope.d.ts.map +0 -1
  456. package/dist/runtime/child-scope.js +0 -87
  457. package/dist/runtime/child-scope.js.map +0 -1
  458. package/dist/runtime/component-cleanup.d.ts +0 -16
  459. package/dist/runtime/component-cleanup.d.ts.map +0 -1
  460. package/dist/runtime/component-cleanup.js +0 -70
  461. package/dist/runtime/component-cleanup.js.map +0 -1
  462. package/dist/runtime/component-commit.js +0 -165
  463. package/dist/runtime/component-commit.js.map +0 -1
  464. package/dist/runtime/component-facade.d.ts +0 -5
  465. package/dist/runtime/component-facade.js +0 -4
  466. package/dist/runtime/component-internal.d.ts +0 -100
  467. package/dist/runtime/component-internal.d.ts.map +0 -1
  468. package/dist/runtime/component-internal.js +0 -219
  469. package/dist/runtime/component-internal.js.map +0 -1
  470. package/dist/runtime/component-lifecycle.d.ts +0 -49
  471. package/dist/runtime/component-lifecycle.d.ts.map +0 -1
  472. package/dist/runtime/component-lifecycle.js +0 -176
  473. package/dist/runtime/component-lifecycle.js.map +0 -1
  474. package/dist/runtime/component-scope.d.ts +0 -55
  475. package/dist/runtime/component-scope.d.ts.map +0 -1
  476. package/dist/runtime/component-scope.js.map +0 -1
  477. package/dist/runtime/component.d.ts +0 -5
  478. package/dist/runtime/component.js +0 -5
  479. package/dist/runtime/context.d.ts +0 -69
  480. package/dist/runtime/context.d.ts.map +0 -1
  481. package/dist/runtime/context.js +0 -210
  482. package/dist/runtime/context.js.map +0 -1
  483. package/dist/runtime/control.d.ts +0 -43
  484. package/dist/runtime/control.d.ts.map +0 -1
  485. package/dist/runtime/control.js +0 -126
  486. package/dist/runtime/control.js.map +0 -1
  487. package/dist/runtime/derive.d.ts +0 -17
  488. package/dist/runtime/derive.d.ts.map +0 -1
  489. package/dist/runtime/derive.js +0 -142
  490. package/dist/runtime/derive.js.map +0 -1
  491. package/dist/runtime/dev-namespace.d.ts +0 -31
  492. package/dist/runtime/dev-namespace.d.ts.map +0 -1
  493. package/dist/runtime/dev-namespace.js +0 -57
  494. package/dist/runtime/dev-namespace.js.map +0 -1
  495. package/dist/runtime/effect.d.ts +0 -32
  496. package/dist/runtime/effect.d.ts.map +0 -1
  497. package/dist/runtime/effect.js +0 -177
  498. package/dist/runtime/effect.js.map +0 -1
  499. package/dist/runtime/error-boundary.d.ts +0 -5
  500. package/dist/runtime/error-boundary.d.ts.map +0 -1
  501. package/dist/runtime/error-boundary.js +0 -31
  502. package/dist/runtime/error-boundary.js.map +0 -1
  503. package/dist/runtime/events.d.ts +0 -58
  504. package/dist/runtime/events.d.ts.map +0 -1
  505. package/dist/runtime/events.js +0 -204
  506. package/dist/runtime/events.js.map +0 -1
  507. package/dist/runtime/execution-model.d.ts +0 -7
  508. package/dist/runtime/execution-model.d.ts.map +0 -1
  509. package/dist/runtime/execution-model.js +0 -15
  510. package/dist/runtime/execution-model.js.map +0 -1
  511. package/dist/runtime/fastlane.d.ts +0 -34
  512. package/dist/runtime/fastlane.d.ts.map +0 -1
  513. package/dist/runtime/fastlane.js +0 -175
  514. package/dist/runtime/fastlane.js.map +0 -1
  515. package/dist/runtime/for-bench.d.ts +0 -41
  516. package/dist/runtime/for-bench.d.ts.map +0 -1
  517. package/dist/runtime/for-bench.js +0 -171
  518. package/dist/runtime/for-bench.js.map +0 -1
  519. package/dist/runtime/for-internal.d.ts +0 -43
  520. package/dist/runtime/for-internal.d.ts.map +0 -1
  521. package/dist/runtime/for-internal.js +0 -98
  522. package/dist/runtime/for-internal.js.map +0 -1
  523. package/dist/runtime/for-reconcile.d.ts +0 -8
  524. package/dist/runtime/for-reconcile.d.ts.map +0 -1
  525. package/dist/runtime/for-reconcile.js +0 -389
  526. package/dist/runtime/for-reconcile.js.map +0 -1
  527. package/dist/runtime/for-scopes.d.ts +0 -26
  528. package/dist/runtime/for-scopes.d.ts.map +0 -1
  529. package/dist/runtime/for-scopes.js +0 -160
  530. package/dist/runtime/for-scopes.js.map +0 -1
  531. package/dist/runtime/for-signals.d.ts +0 -30
  532. package/dist/runtime/for-signals.d.ts.map +0 -1
  533. package/dist/runtime/for-signals.js +0 -139
  534. package/dist/runtime/for-signals.js.map +0 -1
  535. package/dist/runtime/for-types.d.ts +0 -9
  536. package/dist/runtime/for-types.d.ts.map +0 -1
  537. package/dist/runtime/for.d.ts +0 -4
  538. package/dist/runtime/for.js +0 -5
  539. package/dist/runtime/index.d.ts +0 -24
  540. package/dist/runtime/index.js +0 -31
  541. package/dist/runtime/lifecycle-operations.d.ts +0 -31
  542. package/dist/runtime/lifecycle-operations.d.ts.map +0 -1
  543. package/dist/runtime/lifecycle-operations.js.map +0 -1
  544. package/dist/runtime/operations.d.ts +0 -3
  545. package/dist/runtime/operations.js +0 -3
  546. package/dist/runtime/perf-metrics.d.ts +0 -26
  547. package/dist/runtime/perf-metrics.d.ts.map +0 -1
  548. package/dist/runtime/perf-metrics.js +0 -70
  549. package/dist/runtime/perf-metrics.js.map +0 -1
  550. package/dist/runtime/portal.d.ts +0 -22
  551. package/dist/runtime/portal.d.ts.map +0 -1
  552. package/dist/runtime/portal.js.map +0 -1
  553. package/dist/runtime/readable.d.ts +0 -29
  554. package/dist/runtime/readable.d.ts.map +0 -1
  555. package/dist/runtime/readable.js +0 -159
  556. package/dist/runtime/readable.js.map +0 -1
  557. package/dist/runtime/resource-cell.js +0 -114
  558. package/dist/runtime/resource-cell.js.map +0 -1
  559. package/dist/runtime/resource-operation.d.ts +0 -13
  560. package/dist/runtime/resource-operation.d.ts.map +0 -1
  561. package/dist/runtime/resource-operation.js +0 -170
  562. package/dist/runtime/resource-operation.js.map +0 -1
  563. package/dist/runtime/runtime.d.ts.map +0 -1
  564. package/dist/runtime/runtime.js +0 -59
  565. package/dist/runtime/runtime.js.map +0 -1
  566. package/dist/runtime/scheduler.d.ts.map +0 -1
  567. package/dist/runtime/scheduler.js.map +0 -1
  568. package/dist/runtime/selector-store.js +0 -24
  569. package/dist/runtime/selector-store.js.map +0 -1
  570. package/dist/runtime/selector.d.ts +0 -11
  571. package/dist/runtime/selector.d.ts.map +0 -1
  572. package/dist/runtime/selector.js.map +0 -1
  573. package/dist/runtime/snapshot-source.d.ts +0 -10
  574. package/dist/runtime/snapshot-source.d.ts.map +0 -1
  575. package/dist/runtime/snapshot-source.js.map +0 -1
  576. package/dist/runtime/state.d.ts +0 -55
  577. package/dist/runtime/state.d.ts.map +0 -1
  578. package/dist/runtime/state.js.map +0 -1
  579. package/dist/ssg/batch-render.js +0 -103
  580. package/dist/ssg/batch-render.js.map +0 -1
  581. package/dist/ssg/create-static-gen.d.ts +0 -64
  582. package/dist/ssg/create-static-gen.d.ts.map +0 -1
  583. package/dist/ssg/create-static-gen.js +0 -199
  584. package/dist/ssg/create-static-gen.js.map +0 -1
  585. package/dist/ssg/generate-metadata.js +0 -94
  586. package/dist/ssg/generate-metadata.js.map +0 -1
  587. package/dist/ssg/generation-plan.js +0 -70
  588. package/dist/ssg/generation-plan.js.map +0 -1
  589. package/dist/ssg/incremental-manifest.js +0 -56
  590. package/dist/ssg/incremental-manifest.js.map +0 -1
  591. package/dist/ssg/resolve-ssg-data.js +0 -105
  592. package/dist/ssg/resolve-ssg-data.js.map +0 -1
  593. package/dist/ssg/route-utils.js +0 -24
  594. package/dist/ssg/route-utils.js.map +0 -1
  595. package/dist/ssg/static-routes.js +0 -102
  596. package/dist/ssg/static-routes.js.map +0 -1
  597. package/dist/ssg/types.d.ts +0 -189
  598. package/dist/ssg/types.d.ts.map +0 -1
  599. package/dist/ssg/write-static-files.js +0 -73
  600. package/dist/ssg/write-static-files.js.map +0 -1
  601. package/dist/ssr/attrs.js +0 -94
  602. package/dist/ssr/attrs.js.map +0 -1
  603. package/dist/ssr/boundaries.js +0 -113
  604. package/dist/ssr/boundaries.js.map +0 -1
  605. package/dist/ssr/component-runtime.js +0 -111
  606. package/dist/ssr/component-runtime.js.map +0 -1
  607. package/dist/ssr/context.d.ts +0 -50
  608. package/dist/ssr/context.d.ts.map +0 -1
  609. package/dist/ssr/context.js +0 -91
  610. package/dist/ssr/context.js.map +0 -1
  611. package/dist/ssr/errors.d.ts +0 -10
  612. package/dist/ssr/errors.d.ts.map +0 -1
  613. package/dist/ssr/errors.js +0 -14
  614. package/dist/ssr/errors.js.map +0 -1
  615. package/dist/ssr/escape.js +0 -193
  616. package/dist/ssr/escape.js.map +0 -1
  617. package/dist/ssr/hydration-data.js +0 -10
  618. package/dist/ssr/hydration-data.js.map +0 -1
  619. package/dist/ssr/hydration-verify.d.ts +0 -12
  620. package/dist/ssr/hydration-verify.d.ts.map +0 -1
  621. package/dist/ssr/hydration-verify.js +0 -144
  622. package/dist/ssr/hydration-verify.js.map +0 -1
  623. package/dist/ssr/index-internal.d.ts +0 -15
  624. package/dist/ssr/index-internal.d.ts.map +0 -1
  625. package/dist/ssr/index-internal.js +0 -19
  626. package/dist/ssr/index-internal.js.map +0 -1
  627. package/dist/ssr/render-keys.js +0 -16
  628. package/dist/ssr/render-keys.js.map +0 -1
  629. package/dist/ssr/render-resolved.d.ts +0 -20
  630. package/dist/ssr/render-resolved.d.ts.map +0 -1
  631. package/dist/ssr/render-resolved.js +0 -35
  632. package/dist/ssr/render-resolved.js.map +0 -1
  633. package/dist/ssr/render-sync.d.ts +0 -21
  634. package/dist/ssr/render-sync.d.ts.map +0 -1
  635. package/dist/ssr/render-sync.js +0 -275
  636. package/dist/ssr/render-sync.js.map +0 -1
  637. package/dist/ssr/route-policy-resolution.js +0 -78
  638. package/dist/ssr/route-policy-resolution.js.map +0 -1
  639. package/dist/ssr/route-render.d.ts +0 -77
  640. package/dist/ssr/route-render.d.ts.map +0 -1
  641. package/dist/ssr/route-render.js +0 -120
  642. package/dist/ssr/route-render.js.map +0 -1
  643. package/dist/ssr/sink.d.ts +0 -26
  644. package/dist/ssr/sink.d.ts.map +0 -1
  645. package/dist/ssr/sink.js +0 -86
  646. package/dist/ssr/sink.js.map +0 -1
  647. package/dist/ssr/types.d.ts +0 -23
  648. package/dist/ssr/types.d.ts.map +0 -1
  649. package/dist/ssr/verify-hydration.js.map +0 -1
  650. package/dist/testing/index.d.ts.map +0 -1
  651. package/dist/testing/index.js.map +0 -1
@@ -1,133 +0,0 @@
1
- import { teardownNodeSubtree } from "./cleanup.js";
2
- import { createElementForNamespace, getParentNamespace } from "./namespaces.js";
3
- import { syncControlBoundaryScopeDom } from "./boundaries.js";
4
- import { collectReactiveChildBoundaryVNodes, isSingleRootReactiveChildBoundaryValue } from "./reactive-child-sources.js";
5
- //#region src/renderer/reactive-child-dom.ts
6
- function materializeReactiveChildBoundaryNodes(value, parentNamespace, host) {
7
- const nodes = [];
8
- const dom = host.createDOMNode(value, parentNamespace);
9
- if (!dom) return nodes;
10
- if (dom instanceof DocumentFragment) {
11
- for (let child = dom.firstChild; child; child = dom.firstChild) {
12
- nodes.push(child);
13
- dom.removeChild(child);
14
- }
15
- return nodes;
16
- }
17
- nodes.push(dom);
18
- return nodes;
19
- }
20
- function createReactiveChildBoundaryHost(el) {
21
- const ownerDocument = el.ownerDocument;
22
- const parentNamespace = getParentNamespace(el);
23
- return parentNamespace === "http://www.w3.org/2000/svg" ? createElementForNamespace("g", parentNamespace, ownerDocument) : createElementForNamespace("div", parentNamespace, ownerDocument);
24
- }
25
- function disposeReactiveChildBoundaryNodes(nodes) {
26
- for (const node of nodes) {
27
- if (node.parentNode) node.parentNode.removeChild(node);
28
- teardownNodeSubtree(node);
29
- }
30
- }
31
- function syncReactiveChildExpectedNodes(el, expectedNodes) {
32
- const expectedNodeSet = new Set(expectedNodes);
33
- for (let node = el.firstChild; node;) {
34
- const next = node.nextSibling;
35
- if (!expectedNodeSet.has(node)) {
36
- teardownNodeSubtree(node);
37
- el.removeChild(node);
38
- }
39
- node = next;
40
- }
41
- let anchor = el.firstChild;
42
- for (const node of expectedNodes) {
43
- if (node === anchor) {
44
- anchor = anchor.nextSibling;
45
- continue;
46
- }
47
- el.insertBefore(node, anchor);
48
- anchor = node.nextSibling;
49
- }
50
- }
51
- function commitReactiveChildBoundaryEntryNodes(el, entry, host) {
52
- if (!entry.scope.needsDomUpdate) return entry.nodes;
53
- if (entry.scope.vnode === null || entry.scope.vnode === void 0 || entry.scope.vnode === false) {
54
- if (entry.nodes.length > 0) {
55
- disposeReactiveChildBoundaryNodes(entry.nodes);
56
- entry.nodes = [];
57
- }
58
- const dom = entry.scope.dom;
59
- if (dom?.parentNode === el) {
60
- teardownNodeSubtree(dom);
61
- el.removeChild(dom);
62
- }
63
- entry.scope.dom = void 0;
64
- entry.scope.needsDomUpdate = false;
65
- return entry.nodes;
66
- }
67
- if (!isSingleRootReactiveChildBoundaryValue(entry.scope.vnode)) {
68
- const nextChildren = [];
69
- collectReactiveChildBoundaryVNodes(entry.scope.vnode, nextChildren);
70
- const boundaryHost = createReactiveChildBoundaryHost(el);
71
- for (const node of entry.nodes) boundaryHost.appendChild(node);
72
- host.updateElementChildren(boundaryHost, nextChildren);
73
- const nextNodes = Array.from(boundaryHost.childNodes);
74
- entry.scope.dom = void 0;
75
- entry.scope.needsDomUpdate = false;
76
- entry.nodes = nextNodes;
77
- return nextNodes;
78
- }
79
- if (entry.nodes.length > 1) {
80
- disposeReactiveChildBoundaryNodes(entry.nodes);
81
- entry.nodes = [];
82
- entry.scope.dom = void 0;
83
- }
84
- const nextDom = syncControlBoundaryScopeDom(el, entry.scope, entry.scope.vnode ?? null);
85
- if (!nextDom) {
86
- entry.nodes = [];
87
- entry.scope.needsDomUpdate = false;
88
- return entry.nodes;
89
- }
90
- entry.nodes = [nextDom];
91
- entry.scope.needsDomUpdate = false;
92
- return entry.nodes;
93
- }
94
- function syncReactiveChildSequenceNodes(el, entries, host) {
95
- const expectedNodes = [];
96
- for (const entry of entries) {
97
- if (entry.kind === "static") {
98
- expectedNodes.push(...entry.nodes);
99
- continue;
100
- }
101
- expectedNodes.push(...commitReactiveChildBoundaryEntryNodes(el, entry, host));
102
- }
103
- syncReactiveChildExpectedNodes(el, expectedNodes);
104
- }
105
- function syncReactiveScalarTextNodes(el, slotValues, values, host) {
106
- const childNodes = el.childNodes;
107
- if (childNodes.length === values.length) {
108
- let allText = true;
109
- for (let index = 0; index < childNodes.length; index += 1) if (childNodes[index]?.nodeType !== Node.TEXT_NODE) {
110
- allText = false;
111
- break;
112
- }
113
- if (allText) {
114
- for (let index = 0; index < values.length; index += 1) {
115
- const textNode = childNodes[index];
116
- if (textNode.data !== values[index]) textNode.data = values[index];
117
- }
118
- return;
119
- }
120
- }
121
- const boundaryHost = createReactiveChildBoundaryHost(el);
122
- for (let node = el.firstChild; node;) {
123
- const next = node.nextSibling;
124
- boundaryHost.appendChild(node);
125
- node = next;
126
- }
127
- host.updateElementChildren(boundaryHost, slotValues);
128
- syncReactiveChildExpectedNodes(el, Array.from(boundaryHost.childNodes));
129
- }
130
- //#endregion
131
- export { commitReactiveChildBoundaryEntryNodes, createReactiveChildBoundaryHost, disposeReactiveChildBoundaryNodes, materializeReactiveChildBoundaryNodes, syncReactiveChildExpectedNodes, syncReactiveChildSequenceNodes, syncReactiveScalarTextNodes };
132
-
133
- //# sourceMappingURL=reactive-child-dom.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"reactive-child-dom.js","names":[],"sources":["../../src/renderer/reactive-child-dom.ts"],"sourcesContent":["import type { ChildScope } from '../runtime';\nimport { syncControlBoundaryScopeDom } from './boundaries';\nimport { teardownNodeSubtree } from './cleanup';\nimport {\n createElementForNamespace,\n getParentNamespace,\n SVG_NAMESPACE,\n} from './namespaces';\nimport {\n collectReactiveChildBoundaryVNodes,\n isSingleRootReactiveChildBoundaryValue,\n} from './reactive-child-sources';\nimport type { VNode } from './types';\n\nexport interface ReactiveChildDOMHost {\n createDOMNode(node: unknown, parentNamespace?: string): Node | null;\n updateElementChildren(\n el: Element,\n children: VNode | VNode[] | undefined,\n forceUpdate?: boolean\n ): void;\n}\n\nexport type ReactiveChildBoundarySequenceEntry =\n | { kind: 'static'; nodes: Node[] }\n | { kind: 'dynamic'; scope: ChildScope; nodes: Node[] };\n\nexport function materializeReactiveChildBoundaryNodes(\n value: unknown,\n parentNamespace: string | undefined,\n host: ReactiveChildDOMHost\n): Node[] {\n const nodes: Node[] = [];\n const dom = host.createDOMNode(value, parentNamespace);\n if (!dom) {\n return nodes;\n }\n\n if (dom instanceof DocumentFragment) {\n for (let child = dom.firstChild; child; child = dom.firstChild) {\n nodes.push(child);\n dom.removeChild(child);\n }\n return nodes;\n }\n\n nodes.push(dom);\n return nodes;\n}\n\nexport function createReactiveChildBoundaryHost(el: Element): Element {\n const ownerDocument = el.ownerDocument;\n const parentNamespace = getParentNamespace(el);\n return parentNamespace === SVG_NAMESPACE\n ? createElementForNamespace('g', parentNamespace, ownerDocument)\n : createElementForNamespace('div', parentNamespace, ownerDocument);\n}\n\nexport function disposeReactiveChildBoundaryNodes(nodes: Node[]): void {\n for (const node of nodes) {\n if (node.parentNode) {\n node.parentNode.removeChild(node);\n }\n\n teardownNodeSubtree(node);\n }\n}\n\nexport function syncReactiveChildExpectedNodes(\n el: Element,\n expectedNodes: Node[]\n): void {\n const expectedNodeSet = new Set(expectedNodes);\n\n for (let node = el.firstChild; node; ) {\n const next = node.nextSibling;\n if (!expectedNodeSet.has(node)) {\n teardownNodeSubtree(node);\n el.removeChild(node);\n }\n node = next;\n }\n\n let anchor = el.firstChild;\n for (const node of expectedNodes) {\n if (node === anchor) {\n anchor = anchor.nextSibling;\n continue;\n }\n\n el.insertBefore(node, anchor);\n anchor = node.nextSibling;\n }\n}\n\nexport function commitReactiveChildBoundaryEntryNodes(\n el: Element,\n entry: { scope: ChildScope; nodes: Node[] },\n host: ReactiveChildDOMHost\n): Node[] {\n if (!entry.scope.needsDomUpdate) {\n return entry.nodes;\n }\n\n if (\n entry.scope.vnode === null ||\n entry.scope.vnode === undefined ||\n entry.scope.vnode === false\n ) {\n if (entry.nodes.length > 0) {\n disposeReactiveChildBoundaryNodes(entry.nodes);\n entry.nodes = [];\n }\n\n const dom = entry.scope.dom;\n if (dom?.parentNode === el) {\n teardownNodeSubtree(dom);\n el.removeChild(dom);\n }\n\n entry.scope.dom = undefined;\n entry.scope.needsDomUpdate = false;\n return entry.nodes;\n }\n\n if (!isSingleRootReactiveChildBoundaryValue(entry.scope.vnode)) {\n const nextChildren: VNode[] = [];\n collectReactiveChildBoundaryVNodes(entry.scope.vnode, nextChildren);\n\n const boundaryHost = createReactiveChildBoundaryHost(el);\n for (const node of entry.nodes) {\n boundaryHost.appendChild(node);\n }\n\n host.updateElementChildren(boundaryHost, nextChildren);\n\n const nextNodes = Array.from(boundaryHost.childNodes);\n\n entry.scope.dom = undefined;\n entry.scope.needsDomUpdate = false;\n entry.nodes = nextNodes;\n return nextNodes;\n }\n\n if (entry.nodes.length > 1) {\n disposeReactiveChildBoundaryNodes(entry.nodes);\n entry.nodes = [];\n entry.scope.dom = undefined;\n }\n\n const nextDom = syncControlBoundaryScopeDom(\n el,\n entry.scope,\n entry.scope.vnode ?? null\n );\n if (!nextDom) {\n entry.nodes = [];\n entry.scope.needsDomUpdate = false;\n return entry.nodes;\n }\n\n entry.nodes = [nextDom];\n entry.scope.needsDomUpdate = false;\n return entry.nodes;\n}\n\nexport function syncReactiveChildSequenceNodes(\n el: Element,\n entries: ReactiveChildBoundarySequenceEntry[],\n host: ReactiveChildDOMHost\n): void {\n const expectedNodes: Node[] = [];\n\n for (const entry of entries) {\n if (entry.kind === 'static') {\n expectedNodes.push(...entry.nodes);\n continue;\n }\n\n expectedNodes.push(\n ...commitReactiveChildBoundaryEntryNodes(el, entry, host)\n );\n }\n\n syncReactiveChildExpectedNodes(el, expectedNodes);\n}\n\nexport function syncReactiveScalarTextNodes(\n el: Element,\n slotValues: unknown[],\n values: string[],\n host: ReactiveChildDOMHost\n): void {\n const childNodes = el.childNodes;\n const canPatchInPlace = childNodes.length === values.length;\n\n if (canPatchInPlace) {\n let allText = true;\n for (let index = 0; index < childNodes.length; index += 1) {\n if (childNodes[index]?.nodeType !== Node.TEXT_NODE) {\n allText = false;\n break;\n }\n }\n\n if (allText) {\n for (let index = 0; index < values.length; index += 1) {\n const textNode = childNodes[index] as Text;\n if (textNode.data !== values[index]) {\n textNode.data = values[index];\n }\n }\n return;\n }\n }\n\n const boundaryHost = createReactiveChildBoundaryHost(el);\n for (let node = el.firstChild; node; ) {\n const next = node.nextSibling;\n boundaryHost.appendChild(node);\n node = next;\n }\n\n host.updateElementChildren(boundaryHost, slotValues as VNode[]);\n syncReactiveChildExpectedNodes(el, Array.from(boundaryHost.childNodes));\n}\n"],"mappings":"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"}
@@ -1,184 +0,0 @@
1
- import { _isDOMElement } from "../common/vnode.js";
2
- import "./types.js";
3
- import { isFragmentVNode, normalizeComponentChildren } from "./child-shape.js";
4
- //#region src/renderer/reactive-child-sources.ts
5
- function collectReactiveScalarSequenceValue(value, normalized) {
6
- if (isFragmentVNode(value)) return collectReactiveScalarSequenceValue(value.props?.children ?? value.children, normalized);
7
- if (Array.isArray(value)) {
8
- for (const child of value) if (!collectReactiveScalarSequenceValue(child, normalized)) return false;
9
- return true;
10
- }
11
- if (value === null || value === void 0 || value === false) return true;
12
- if (typeof value === "string" || typeof value === "number") {
13
- normalized.push(String(value));
14
- return true;
15
- }
16
- return false;
17
- }
18
- function collectReactiveScalarChildSource(children, slots, state) {
19
- if (isFragmentVNode(children)) return collectReactiveScalarChildSource(children.props?.children ?? children.children, slots, state);
20
- if (Array.isArray(children)) {
21
- for (const child of children) if (!collectReactiveScalarChildSource(child, slots, state)) return false;
22
- return true;
23
- }
24
- if (children === null || children === void 0 || children === false) return true;
25
- if (typeof children === "function") {
26
- slots.push({
27
- kind: "dynamic",
28
- compute: children
29
- });
30
- state.hasDynamic = true;
31
- return true;
32
- }
33
- if (typeof children === "string" || typeof children === "number") {
34
- slots.push({
35
- kind: "static",
36
- value: String(children)
37
- });
38
- return true;
39
- }
40
- return false;
41
- }
42
- function getReactiveScalarChildSource(children) {
43
- const slots = [];
44
- const state = { hasDynamic: false };
45
- if (!collectReactiveScalarChildSource(children, slots, state)) return null;
46
- return state.hasDynamic ? slots : null;
47
- }
48
- function getSingleReactiveChildBoundarySource(children) {
49
- if (isFragmentVNode(children)) return getSingleReactiveChildBoundarySource(children.props?.children ?? children.children);
50
- if (Array.isArray(children)) {
51
- if (children.length !== 1) return null;
52
- return getSingleReactiveChildBoundarySource(children[0]);
53
- }
54
- if (typeof children === "function") return children;
55
- return null;
56
- }
57
- function collectReactiveChildBoundarySequenceSource(children, slots, state) {
58
- if (isFragmentVNode(children)) return collectReactiveChildBoundarySequenceSource(children.props?.children ?? children.children, slots, state);
59
- if (Array.isArray(children)) {
60
- for (const child of children) if (!collectReactiveChildBoundarySequenceSource(child, slots, state)) return false;
61
- return true;
62
- }
63
- if (children === null || children === void 0 || children === false) return true;
64
- if (typeof children === "function") {
65
- slots.push({
66
- kind: "dynamic",
67
- compute: children
68
- });
69
- state.dynamicCount += 1;
70
- return true;
71
- }
72
- if (typeof children === "string" || typeof children === "number") {
73
- slots.push({
74
- kind: "static-text",
75
- value: String(children)
76
- });
77
- return true;
78
- }
79
- if (_isDOMElement(children)) {
80
- slots.push({
81
- kind: "static-node",
82
- value: children
83
- });
84
- return true;
85
- }
86
- return false;
87
- }
88
- function getReactiveChildBoundarySequenceSource(children) {
89
- const slots = [];
90
- const state = { dynamicCount: 0 };
91
- if (!collectReactiveChildBoundarySequenceSource(children, slots, state)) return null;
92
- return state.dynamicCount >= 1 && slots.length > 1 ? slots : null;
93
- }
94
- function areReactiveChildBoundarySequenceSourcesEqual(previousSource, nextSource) {
95
- if (!Array.isArray(previousSource) || previousSource.length !== nextSource.length) return false;
96
- for (let index = 0; index < nextSource.length; index += 1) {
97
- const previousSlot = previousSource[index];
98
- const nextSlot = nextSource[index];
99
- if (!previousSlot || previousSlot.kind !== nextSlot.kind) return false;
100
- if (nextSlot.kind === "static-text") {
101
- if (previousSlot.kind !== "static-text" || previousSlot.value !== nextSlot.value) return false;
102
- continue;
103
- }
104
- if (nextSlot.kind === "static-node") {
105
- if (previousSlot.kind !== "static-node" || previousSlot.value !== nextSlot.value) return false;
106
- continue;
107
- }
108
- if (previousSlot.kind !== "dynamic" || previousSlot.compute !== nextSlot.compute) return false;
109
- }
110
- return true;
111
- }
112
- function canUpdateReactiveChildBoundarySequenceSource(previousSource, nextSource) {
113
- if (!Array.isArray(previousSource) || previousSource.length !== nextSource.length) return false;
114
- for (let index = 0; index < nextSource.length; index += 1) {
115
- const previousSlot = previousSource[index];
116
- const nextSlot = nextSource[index];
117
- if (!previousSlot || previousSlot.kind !== nextSlot.kind) return false;
118
- if (nextSlot.kind === "static-text") {
119
- if (previousSlot.kind !== "static-text" || previousSlot.value !== nextSlot.value) return false;
120
- continue;
121
- }
122
- if (nextSlot.kind === "static-node") {
123
- if (previousSlot.kind !== "static-node" || previousSlot.value !== nextSlot.value) return false;
124
- }
125
- }
126
- return true;
127
- }
128
- function areReactiveScalarChildSourcesEqual(previousSource, nextSource) {
129
- if (!Array.isArray(previousSource) || previousSource.length !== nextSource.length) return false;
130
- for (let index = 0; index < nextSource.length; index += 1) {
131
- const previousSlot = previousSource[index];
132
- const nextSlot = nextSource[index];
133
- if (!previousSlot || previousSlot.kind !== nextSlot.kind) return false;
134
- if (nextSlot.kind === "static") {
135
- if (previousSlot.kind !== "static" || previousSlot.value !== nextSlot.value) return false;
136
- continue;
137
- }
138
- if (previousSlot.kind !== "dynamic" || previousSlot.compute !== nextSlot.compute) return false;
139
- }
140
- return true;
141
- }
142
- function normalizeReactiveScalarSequenceValues(values) {
143
- const normalized = [];
144
- for (const value of values) if (!collectReactiveScalarSequenceValue(value, normalized)) return null;
145
- return normalized;
146
- }
147
- function normalizeOwnedReactiveTextValue(value) {
148
- if (typeof value === "string" || typeof value === "number") return String(value);
149
- return null;
150
- }
151
- function collectReactiveChildValuesAsVNodes(values, children) {
152
- for (const value of values) collectReactiveChildBoundaryVNodes(value, children);
153
- }
154
- function normalizeReactiveChildBoundaryVNode(value) {
155
- if (!isFragmentVNode(value)) return value;
156
- const children = normalizeComponentChildren(value);
157
- if (children.length !== 1) return value;
158
- return normalizeReactiveChildBoundaryVNode(children[0]);
159
- }
160
- function isSingleRootReactiveChildBoundaryValue(value) {
161
- if (value === null || value === void 0 || value === false) return true;
162
- if (Array.isArray(value)) return value.length === 1 && isSingleRootReactiveChildBoundaryValue(value[0]);
163
- if (isFragmentVNode(value)) {
164
- const children = normalizeComponentChildren(value);
165
- return children.length === 1 && isSingleRootReactiveChildBoundaryValue(children[0]);
166
- }
167
- return true;
168
- }
169
- function collectReactiveChildBoundaryVNodes(value, children) {
170
- if (value === null || value === void 0 || value === false) return;
171
- if (Array.isArray(value)) {
172
- for (const child of value) collectReactiveChildBoundaryVNodes(child, children);
173
- return;
174
- }
175
- if (isFragmentVNode(value)) {
176
- collectReactiveChildBoundaryVNodes(value.props?.children ?? value.children, children);
177
- return;
178
- }
179
- children.push(value);
180
- }
181
- //#endregion
182
- export { areReactiveChildBoundarySequenceSourcesEqual, areReactiveScalarChildSourcesEqual, canUpdateReactiveChildBoundarySequenceSource, collectReactiveChildBoundaryVNodes, collectReactiveChildValuesAsVNodes, getReactiveChildBoundarySequenceSource, getReactiveScalarChildSource, getSingleReactiveChildBoundarySource, isSingleRootReactiveChildBoundaryValue, normalizeOwnedReactiveTextValue, normalizeReactiveChildBoundaryVNode, normalizeReactiveScalarSequenceValues };
183
-
184
- //# sourceMappingURL=reactive-child-sources.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"reactive-child-sources.js","names":[],"sources":["../../src/renderer/reactive-child-sources.ts"],"sourcesContent":["import { _isDOMElement, type VNode } from './types';\nimport { isFragmentVNode, normalizeComponentChildren } from './child-shape';\n\nexport type ReactiveScalarChildSourceSlot =\n | { kind: 'static'; value: string }\n | { kind: 'dynamic'; compute: () => unknown };\n\nexport type ReactiveScalarChildSource = ReactiveScalarChildSourceSlot[];\n\nexport type ReactiveChildBoundarySequenceSource = Array<\n | { kind: 'static-text'; value: string }\n | { kind: 'static-node'; value: VNode }\n | { kind: 'dynamic'; compute: () => VNode }\n>;\n\nfunction collectReactiveScalarSequenceValue(\n value: unknown,\n normalized: string[]\n): boolean {\n if (isFragmentVNode(value)) {\n const fragmentChildren = value.props?.children ?? value.children;\n return collectReactiveScalarSequenceValue(fragmentChildren, normalized);\n }\n\n if (Array.isArray(value)) {\n for (const child of value) {\n if (!collectReactiveScalarSequenceValue(child, normalized)) {\n return false;\n }\n }\n return true;\n }\n\n if (value === null || value === undefined || value === false) {\n return true;\n }\n\n if (typeof value === 'string' || typeof value === 'number') {\n normalized.push(String(value));\n return true;\n }\n\n return false;\n}\n\nfunction collectReactiveScalarChildSource(\n children: unknown,\n slots: ReactiveScalarChildSource,\n state: { hasDynamic: boolean }\n): boolean {\n if (isFragmentVNode(children)) {\n const fragmentChildren = children.props?.children ?? children.children;\n return collectReactiveScalarChildSource(fragmentChildren, slots, state);\n }\n\n if (Array.isArray(children)) {\n for (const child of children) {\n if (!collectReactiveScalarChildSource(child, slots, state)) {\n return false;\n }\n }\n return true;\n }\n\n if (children === null || children === undefined || children === false) {\n return true;\n }\n\n if (typeof children === 'function') {\n slots.push({ kind: 'dynamic', compute: children as () => unknown });\n state.hasDynamic = true;\n return true;\n }\n\n if (typeof children === 'string' || typeof children === 'number') {\n slots.push({ kind: 'static', value: String(children) });\n return true;\n }\n\n return false;\n}\n\nexport function getReactiveScalarChildSource(\n children: unknown\n): ReactiveScalarChildSource | null {\n const slots: ReactiveScalarChildSource = [];\n const state = { hasDynamic: false };\n\n if (!collectReactiveScalarChildSource(children, slots, state)) {\n return null;\n }\n\n return state.hasDynamic ? slots : null;\n}\n\nexport function getSingleReactiveChildBoundarySource(\n children: unknown\n): (() => VNode) | null {\n if (isFragmentVNode(children)) {\n const fragmentChildren = children.props?.children ?? children.children;\n return getSingleReactiveChildBoundarySource(fragmentChildren);\n }\n\n if (Array.isArray(children)) {\n if (children.length !== 1) {\n return null;\n }\n return getSingleReactiveChildBoundarySource(children[0]);\n }\n\n if (typeof children === 'function') {\n return children as () => VNode;\n }\n\n return null;\n}\n\nfunction collectReactiveChildBoundarySequenceSource(\n children: unknown,\n slots: ReactiveChildBoundarySequenceSource,\n state: { dynamicCount: number }\n): boolean {\n if (isFragmentVNode(children)) {\n const fragmentChildren = children.props?.children ?? children.children;\n return collectReactiveChildBoundarySequenceSource(\n fragmentChildren,\n slots,\n state\n );\n }\n\n if (Array.isArray(children)) {\n for (const child of children) {\n if (!collectReactiveChildBoundarySequenceSource(child, slots, state)) {\n return false;\n }\n }\n return true;\n }\n\n if (children === null || children === undefined || children === false) {\n return true;\n }\n\n if (typeof children === 'function') {\n slots.push({ kind: 'dynamic', compute: children as () => VNode });\n state.dynamicCount += 1;\n return true;\n }\n\n if (typeof children === 'string' || typeof children === 'number') {\n slots.push({ kind: 'static-text', value: String(children) });\n return true;\n }\n\n if (_isDOMElement(children)) {\n slots.push({ kind: 'static-node', value: children as VNode });\n return true;\n }\n\n return false;\n}\n\nexport function getReactiveChildBoundarySequenceSource(\n children: unknown\n): ReactiveChildBoundarySequenceSource | null {\n const slots: ReactiveChildBoundarySequenceSource = [];\n const state = { dynamicCount: 0 };\n\n if (!collectReactiveChildBoundarySequenceSource(children, slots, state)) {\n return null;\n }\n\n return state.dynamicCount >= 1 && slots.length > 1 ? slots : null;\n}\n\nexport function areReactiveChildBoundarySequenceSourcesEqual(\n previousSource: unknown,\n nextSource: ReactiveChildBoundarySequenceSource\n): boolean {\n if (\n !Array.isArray(previousSource) ||\n previousSource.length !== nextSource.length\n ) {\n return false;\n }\n\n for (let index = 0; index < nextSource.length; index += 1) {\n const previousSlot = previousSource[index] as\n | ReactiveChildBoundarySequenceSource[number]\n | undefined;\n const nextSlot = nextSource[index];\n\n if (!previousSlot || previousSlot.kind !== nextSlot.kind) {\n return false;\n }\n\n if (nextSlot.kind === 'static-text') {\n if (\n previousSlot.kind !== 'static-text' ||\n previousSlot.value !== nextSlot.value\n ) {\n return false;\n }\n continue;\n }\n\n if (nextSlot.kind === 'static-node') {\n if (\n previousSlot.kind !== 'static-node' ||\n previousSlot.value !== nextSlot.value\n ) {\n return false;\n }\n continue;\n }\n\n if (\n previousSlot.kind !== 'dynamic' ||\n previousSlot.compute !== nextSlot.compute\n ) {\n return false;\n }\n }\n\n return true;\n}\n\nexport function canUpdateReactiveChildBoundarySequenceSource(\n previousSource: unknown,\n nextSource: ReactiveChildBoundarySequenceSource\n): boolean {\n if (\n !Array.isArray(previousSource) ||\n previousSource.length !== nextSource.length\n ) {\n return false;\n }\n\n for (let index = 0; index < nextSource.length; index += 1) {\n const previousSlot = previousSource[index] as\n | ReactiveChildBoundarySequenceSource[number]\n | undefined;\n const nextSlot = nextSource[index];\n\n if (!previousSlot || previousSlot.kind !== nextSlot.kind) {\n return false;\n }\n\n if (nextSlot.kind === 'static-text') {\n if (\n previousSlot.kind !== 'static-text' ||\n previousSlot.value !== nextSlot.value\n ) {\n return false;\n }\n continue;\n }\n\n if (nextSlot.kind === 'static-node') {\n if (\n previousSlot.kind !== 'static-node' ||\n previousSlot.value !== nextSlot.value\n ) {\n return false;\n }\n }\n }\n\n return true;\n}\n\nexport function areReactiveScalarChildSourcesEqual(\n previousSource: unknown,\n nextSource: ReactiveScalarChildSource\n): boolean {\n if (\n !Array.isArray(previousSource) ||\n previousSource.length !== nextSource.length\n ) {\n return false;\n }\n\n for (let index = 0; index < nextSource.length; index += 1) {\n const previousSlot = previousSource[index] as\n | ReactiveScalarChildSourceSlot\n | undefined;\n const nextSlot = nextSource[index];\n\n if (!previousSlot || previousSlot.kind !== nextSlot.kind) {\n return false;\n }\n\n if (nextSlot.kind === 'static') {\n if (\n previousSlot.kind !== 'static' ||\n previousSlot.value !== nextSlot.value\n ) {\n return false;\n }\n continue;\n }\n\n if (\n previousSlot.kind !== 'dynamic' ||\n previousSlot.compute !== nextSlot.compute\n ) {\n return false;\n }\n }\n\n return true;\n}\n\nexport function normalizeReactiveScalarSequenceValues(\n values: unknown[]\n): string[] | null {\n const normalized: string[] = [];\n\n for (const value of values) {\n if (!collectReactiveScalarSequenceValue(value, normalized)) {\n return null;\n }\n }\n\n return normalized;\n}\n\nexport function normalizeOwnedReactiveTextValue(value: unknown): string | null {\n if (typeof value === 'string' || typeof value === 'number') {\n return String(value);\n }\n\n return null;\n}\n\nexport function collectReactiveChildValuesAsVNodes(\n values: unknown[],\n children: VNode[]\n): void {\n for (const value of values) {\n collectReactiveChildBoundaryVNodes(value, children);\n }\n}\n\nexport function normalizeReactiveChildBoundaryVNode(value: VNode): VNode {\n if (!isFragmentVNode(value)) {\n return value;\n }\n\n const children = normalizeComponentChildren(value);\n if (children.length !== 1) {\n return value;\n }\n\n return normalizeReactiveChildBoundaryVNode(children[0] as VNode);\n}\n\nexport function isSingleRootReactiveChildBoundaryValue(\n value: unknown\n): boolean {\n if (value === null || value === undefined || value === false) {\n return true;\n }\n\n if (Array.isArray(value)) {\n return (\n value.length === 1 && isSingleRootReactiveChildBoundaryValue(value[0])\n );\n }\n\n if (isFragmentVNode(value)) {\n const children = normalizeComponentChildren(value);\n return (\n children.length === 1 &&\n isSingleRootReactiveChildBoundaryValue(children[0])\n );\n }\n\n return true;\n}\n\nexport function collectReactiveChildBoundaryVNodes(\n value: unknown,\n children: VNode[]\n): void {\n if (value === null || value === undefined || value === false) {\n return;\n }\n\n if (Array.isArray(value)) {\n for (const child of value) {\n collectReactiveChildBoundaryVNodes(child, children);\n }\n return;\n }\n\n if (isFragmentVNode(value)) {\n const fragmentChildren = value.props?.children ?? value.children;\n collectReactiveChildBoundaryVNodes(fragmentChildren, children);\n return;\n }\n\n children.push(value as VNode);\n}\n"],"mappings":"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"}
@@ -1,294 +0,0 @@
1
- import { getRuntimeEnv } from "../common/env.js";
2
- import { logger } from "../common/logger.js";
3
- import { incDevCounter } from "../runtime/dev-namespace.js";
4
- import { getCurrentInstance } from "../runtime/component-scope.js";
5
- import { createChildScope, disposeChildScope, rerenderChildScope } from "../runtime/child-scope.js";
6
- import { createFineGrainedEffect } from "../runtime/effect.js";
7
- import "../runtime/index.js";
8
- import { REACTIVE_CHILDREN_KEY, elementReactivePropsCleanup, teardownNodeSubtree } from "./cleanup.js";
9
- import "./env.js";
10
- import { getParentNamespace } from "./namespaces.js";
11
- import { areReactiveChildBoundarySequenceSourcesEqual, areReactiveScalarChildSourcesEqual, canUpdateReactiveChildBoundarySequenceSource, collectReactiveChildValuesAsVNodes, getReactiveChildBoundarySequenceSource, getReactiveScalarChildSource, getSingleReactiveChildBoundarySource, normalizeOwnedReactiveTextValue, normalizeReactiveChildBoundaryVNode, normalizeReactiveScalarSequenceValues } from "./reactive-child-sources.js";
12
- import { commitReactiveChildBoundaryEntryNodes, createReactiveChildBoundaryHost, disposeReactiveChildBoundaryNodes, materializeReactiveChildBoundaryNodes, syncReactiveChildExpectedNodes, syncReactiveChildSequenceNodes, syncReactiveScalarTextNodes } from "./reactive-child-dom.js";
13
- //#region src/renderer/reactive-children.ts
14
- let reactiveChildScopeId = 0;
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;
22
- }
23
- function trySyncScalarChildSequenceInPlace(el, children, host) {
24
- const normalized = normalizeReactiveScalarSequenceValues(children);
25
- if (!normalized) return false;
26
- if (el.childNodes.length !== normalized.length) return false;
27
- for (let index = 0; index < el.childNodes.length; index += 1) if (el.childNodes[index]?.nodeType !== Node.TEXT_NODE) return false;
28
- syncReactiveScalarTextNodes(el, children, normalized, host);
29
- return true;
30
- }
31
- function setupReactiveScalarChild(el, source, host) {
32
- let currentSource = source;
33
- if (source.length === 1 && source[0]?.kind === "dynamic") {
34
- let ownedTextNode = el.childNodes.length === 1 && el.firstChild?.nodeType === Node.TEXT_NODE ? el.firstChild : null;
35
- let effectHandle = createFineGrainedEffect({
36
- lane: "reactive",
37
- compute: () => {
38
- const currentSlot = currentSource[0];
39
- if (!currentSlot || currentSlot.kind !== "dynamic") throw new Error("[Askr] Direct reactive text bindings require a single dynamic slot.");
40
- const rawValue = currentSlot.compute();
41
- return normalizeOwnedReactiveTextValue(rawValue) ?? rawValue;
42
- },
43
- commit: (value) => {
44
- const normalized = normalizeOwnedReactiveTextValue(value);
45
- if (normalized === null) {
46
- ownedTextNode = null;
47
- host.updateElementChildren(el, value);
48
- return;
49
- }
50
- if (!ownedTextNode || el.childNodes.length !== 1 || el.firstChild !== ownedTextNode) {
51
- host.updateElementChildren(el, normalized);
52
- ownedTextNode = el.childNodes.length === 1 && el.firstChild?.nodeType === Node.TEXT_NODE ? el.firstChild : null;
53
- }
54
- if (!ownedTextNode) return;
55
- if (ownedTextNode.data !== normalized) {
56
- ownedTextNode.data = normalized;
57
- incDevCounter("textNodeWrites");
58
- }
59
- },
60
- onError: (err) => {
61
- if (getRuntimeEnv().NODE_ENV !== "production") logger.warn("[Askr] Reactive child update failed:", err);
62
- }
63
- });
64
- return {
65
- cleanup: () => {
66
- effectHandle?.cleanup();
67
- effectHandle = null;
68
- },
69
- updateFn: (nextSource) => {
70
- if (!effectHandle) return;
71
- currentSource = nextSource;
72
- effectHandle.updateCompute(() => {
73
- const currentSlot = currentSource[0];
74
- if (!currentSlot || currentSlot.kind !== "dynamic") throw new Error("[Askr] Direct reactive text bindings require a single dynamic slot.");
75
- const rawValue = currentSlot.compute();
76
- return normalizeOwnedReactiveTextValue(rawValue) ?? rawValue;
77
- });
78
- }
79
- };
80
- }
81
- let effectHandle = createFineGrainedEffect({
82
- lane: "reactive",
83
- compute: () => currentSource.map((slot) => slot.kind === "static" ? slot.value : slot.compute()),
84
- commit: (values) => {
85
- if (!Array.isArray(values)) throw new Error("[Askr] Reactive scalar children must evaluate to a slot array.");
86
- const normalized = normalizeReactiveScalarSequenceValues(values);
87
- if (normalized) {
88
- syncReactiveScalarTextNodes(el, values, normalized, host);
89
- return;
90
- }
91
- const nextChildren = [];
92
- collectReactiveChildValuesAsVNodes(values, nextChildren);
93
- const boundaryHost = createReactiveChildBoundaryHost(el);
94
- for (let node = el.firstChild; node;) {
95
- const next = node.nextSibling;
96
- boundaryHost.appendChild(node);
97
- node = next;
98
- }
99
- host.updateElementChildren(boundaryHost, nextChildren);
100
- syncReactiveChildExpectedNodes(el, Array.from(boundaryHost.childNodes));
101
- },
102
- equals: (previousValue, nextValue) => {
103
- if (!Array.isArray(previousValue) || !Array.isArray(nextValue)) return false;
104
- const previousNormalized = normalizeReactiveScalarSequenceValues(previousValue);
105
- const nextNormalized = normalizeReactiveScalarSequenceValues(nextValue);
106
- if (!previousNormalized || !nextNormalized) return false;
107
- if (previousNormalized.length !== nextNormalized.length) return false;
108
- for (let index = 0; index < previousNormalized.length; index += 1) if (previousNormalized[index] !== nextNormalized[index]) return false;
109
- return true;
110
- },
111
- onError: (err) => {
112
- if (getRuntimeEnv().NODE_ENV !== "production") logger.warn("[Askr] Reactive child update failed:", err);
113
- }
114
- });
115
- return {
116
- cleanup: () => {
117
- effectHandle?.cleanup();
118
- effectHandle = null;
119
- },
120
- updateFn: (nextSource) => {
121
- if (!effectHandle) return;
122
- currentSource = nextSource;
123
- effectHandle.updateCompute(() => currentSource.map((slot) => slot.kind === "static" ? slot.value : slot.compute()));
124
- }
125
- };
126
- }
127
- function setupReactiveChildBoundary(el, childFn, host) {
128
- let currentChildFn = childFn;
129
- const entry = {
130
- scope: createChildScope(getCurrentInstance(), `__reactive-child__:${reactiveChildScopeId += 1}`, () => {
131
- syncReactiveChildExpectedNodes(el, commitReactiveChildBoundaryEntryNodes(el, entry, host));
132
- }),
133
- nodes: []
134
- };
135
- entry.scope.render(() => normalizeReactiveChildBoundaryVNode(currentChildFn()));
136
- syncReactiveChildExpectedNodes(el, commitReactiveChildBoundaryEntryNodes(el, entry, host));
137
- return {
138
- cleanup: () => {
139
- const dom = entry.scope.dom;
140
- const nodes = entry.nodes;
141
- disposeChildScope(entry.scope);
142
- entry.nodes = [];
143
- if (nodes.length > 0) {
144
- disposeReactiveChildBoundaryNodes(nodes);
145
- return;
146
- }
147
- if (dom?.parentNode === el) {
148
- teardownNodeSubtree(dom);
149
- el.removeChild(dom);
150
- }
151
- },
152
- updateFn: (nextValue) => {
153
- currentChildFn = nextValue;
154
- rerenderChildScope(entry.scope);
155
- syncReactiveChildExpectedNodes(el, commitReactiveChildBoundaryEntryNodes(el, entry, host));
156
- }
157
- };
158
- }
159
- function setupReactiveChildBoundarySequence(el, source, host) {
160
- let currentSource = source;
161
- const parentInstance = getCurrentInstance();
162
- const entries = [];
163
- const dynamicEntries = [];
164
- if (!currentSource.some((slot) => slot.kind === "dynamic")) throw new Error("[Askr] Reactive child boundary sequence requires at least one dynamic slot.");
165
- const syncSequence = () => {
166
- syncReactiveChildSequenceNodes(el, entries, host);
167
- };
168
- const parentNamespace = getParentNamespace(el);
169
- for (let index = 0; index < currentSource.length; index += 1) {
170
- const slot = currentSource[index];
171
- if (!slot) continue;
172
- if (slot.kind === "static-text") {
173
- entries.push({
174
- kind: "static",
175
- nodes: [document.createTextNode(slot.value)]
176
- });
177
- continue;
178
- }
179
- if (slot.kind === "static-node") {
180
- entries.push({
181
- kind: "static",
182
- nodes: materializeReactiveChildBoundaryNodes(slot.value, parentNamespace, host)
183
- });
184
- continue;
185
- }
186
- const dynamicEntry = {
187
- kind: "dynamic",
188
- scope: createChildScope(parentInstance, `__reactive-child-seq__:${reactiveChildScopeId += 1}`, syncSequence),
189
- nodes: []
190
- };
191
- entries.push(dynamicEntry);
192
- dynamicEntries.push({
193
- index,
194
- entry: dynamicEntry
195
- });
196
- }
197
- for (const dynamicEntry of dynamicEntries) dynamicEntry.entry.scope.render(() => normalizeReactiveChildBoundaryVNode(currentSource[dynamicEntry.index].compute()));
198
- syncSequence();
199
- return {
200
- cleanup: () => {
201
- for (const dynamicEntry of dynamicEntries) {
202
- const dom = dynamicEntry.entry.scope.dom;
203
- const nodes = dynamicEntry.entry.nodes;
204
- disposeChildScope(dynamicEntry.entry.scope);
205
- if (nodes.length > 0) {
206
- disposeReactiveChildBoundaryNodes(nodes);
207
- continue;
208
- }
209
- if (dom?.parentNode === el) {
210
- teardownNodeSubtree(dom);
211
- el.removeChild(dom);
212
- }
213
- }
214
- for (const entry of entries) if (entry.kind === "static") disposeReactiveChildBoundaryNodes(entry.nodes);
215
- },
216
- updateFn: (nextValue) => {
217
- currentSource = nextValue;
218
- for (const dynamicEntry of dynamicEntries) rerenderChildScope(dynamicEntry.entry.scope);
219
- syncSequence();
220
- }
221
- };
222
- }
223
- function syncReactiveScalarChild(el, children, host) {
224
- const reactiveChildSource = getReactiveScalarChildSource(children);
225
- const reactiveChildBoundary = getSingleReactiveChildBoundarySource(children);
226
- const reactiveChildBoundarySequence = getReactiveChildBoundarySequenceSource(children);
227
- const existingReactiveEntry = elementReactivePropsCleanup.get(el)?.get(REACTIVE_CHILDREN_KEY);
228
- if (!reactiveChildSource && !reactiveChildBoundary && !reactiveChildBoundarySequence) {
229
- if (existingReactiveEntry) {
230
- existingReactiveEntry.cleanup();
231
- const cleanupMap = elementReactivePropsCleanup.get(el);
232
- cleanupMap?.delete(REACTIVE_CHILDREN_KEY);
233
- if (cleanupMap && cleanupMap.size === 0) elementReactivePropsCleanup.delete(el);
234
- }
235
- return false;
236
- }
237
- if (reactiveChildSource && !reactiveChildBoundarySequence) {
238
- if (existingReactiveEntry && Array.isArray(existingReactiveEntry.fnRef) && areReactiveScalarChildSourcesEqual(existingReactiveEntry.fnRef, reactiveChildSource)) return true;
239
- if (existingReactiveEntry?.updateFn && Array.isArray(existingReactiveEntry.fnRef)) {
240
- existingReactiveEntry.updateFn(reactiveChildSource);
241
- existingReactiveEntry.fnRef = reactiveChildSource;
242
- return true;
243
- }
244
- existingReactiveEntry?.cleanup();
245
- 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
- });
254
- return true;
255
- } catch (error) {
256
- if (!reactiveChildBoundary && !reactiveChildBoundarySequence) throw error;
257
- }
258
- }
259
- if (reactiveChildBoundarySequence) {
260
- if (existingReactiveEntry && Array.isArray(existingReactiveEntry.fnRef) && areReactiveChildBoundarySequenceSourcesEqual(existingReactiveEntry.fnRef, reactiveChildBoundarySequence)) return true;
261
- if (existingReactiveEntry?.updateFn && Array.isArray(existingReactiveEntry.fnRef) && canUpdateReactiveChildBoundarySequenceSource(existingReactiveEntry.fnRef, reactiveChildBoundarySequence)) {
262
- existingReactiveEntry.updateFn(reactiveChildBoundarySequence);
263
- existingReactiveEntry.fnRef = reactiveChildBoundarySequence;
264
- return true;
265
- }
266
- existingReactiveEntry?.cleanup();
267
- const reactive = setupReactiveChildBoundarySequence(el, reactiveChildBoundarySequence, host);
268
- getOrCreateElementReactiveCleanupMap(el).set(REACTIVE_CHILDREN_KEY, {
269
- cleanup: reactive.cleanup,
270
- updateFn: reactive.updateFn,
271
- fnRef: reactiveChildBoundarySequence
272
- });
273
- return true;
274
- }
275
- if (existingReactiveEntry?.fnRef === reactiveChildBoundary) return true;
276
- if (existingReactiveEntry?.updateFn && !Array.isArray(existingReactiveEntry.fnRef)) {
277
- existingReactiveEntry.updateFn(reactiveChildBoundary);
278
- existingReactiveEntry.fnRef = reactiveChildBoundary;
279
- return true;
280
- }
281
- existingReactiveEntry?.cleanup();
282
- if (!reactiveChildBoundary) return false;
283
- const reactive = setupReactiveChildBoundary(el, reactiveChildBoundary, host);
284
- getOrCreateElementReactiveCleanupMap(el).set(REACTIVE_CHILDREN_KEY, {
285
- cleanup: reactive.cleanup,
286
- updateFn: reactive.updateFn,
287
- fnRef: reactiveChildBoundary
288
- });
289
- return true;
290
- }
291
- //#endregion
292
- export { syncReactiveScalarChild, trySyncScalarChildSequenceInPlace };
293
-
294
- //# sourceMappingURL=reactive-children.js.map