@askrjs/askr 0.0.52 → 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 (386) hide show
  1. package/README.md +5 -1
  2. package/dist/{runtime/scheduler.js → access-Bg4RJNC8.js} +182 -9
  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 -1
  6. package/dist/benchmark.d.ts +6 -2
  7. package/dist/benchmark.js +63 -11
  8. package/dist/boot/index.d.ts +61 -2
  9. package/dist/boot/index.js +1 -203
  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} +8 -1
  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 -1
  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 -1
  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} +32 -31
  30. package/dist/deferred-lKE8uR0z.js +386 -0
  31. package/dist/{runtime/effect.js → effect-BwnIvLah.js} +4 -4
  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 -8
  53. package/dist/index-SJXJkssx.d.ts +44 -0
  54. package/dist/index.d.ts +8 -13
  55. package/dist/index.js +150 -15
  56. package/dist/interactions-w7gQN4ha.js +280 -0
  57. package/dist/{data/invalidation-listeners.js → invalidation-listeners-Des3AHYs.js} +1 -1
  58. package/dist/{common/props.d.ts → jsx-CP0gmYwJ.d.ts} +17 -5
  59. package/dist/{common/jsx.js → jsx-CUpRxrLH.js} +1 -1
  60. package/dist/jsx-dev-runtime.d.ts +2 -4
  61. package/dist/jsx-dev-runtime.js +7 -5
  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 +2 -35
  65. package/dist/jsx-runtime.js +11 -5
  66. package/dist/{runtime/lifecycle-operations.js → lifecycle-operations-D9va7GOU.js} +4 -5
  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} +33 -36
  70. package/dist/query-registry-CQIT4mXr.js +73 -0
  71. package/dist/{common/render-context.js → render-context-Clw3rFiO.js} +14 -6
  72. package/dist/renderer-DzPjeLby.js +6197 -0
  73. package/dist/{runtime/resource-operation.js → resource-operation-CEzfpnDk.js} +118 -15
  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 -1
  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 -28
  81. package/dist/{common/router-internal.js → router-internal-BC0w1_xk.js} +1 -1
  82. package/dist/{runtime/scheduler.d.ts → scheduler-CmLO4Dfm.d.ts} +1 -3
  83. package/dist/{runtime/selector.js → selector-DafVYzV4.js} +34 -11
  84. package/dist/{runtime/snapshot-source.js → snapshot-source-BB42xgwb.js} +1 -1
  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 -1
  90. package/dist/ssr-D3t80Rc0.js +1413 -0
  91. package/dist/{runtime/state.js → state-DPl8lffD.js} +3 -5
  92. package/dist/structures-DUB3HchX.js +221 -0
  93. package/dist/testing/index.d.ts +3 -2
  94. package/dist/testing/index.js +2 -5
  95. package/dist/{jsx/types.d.ts → types-DnQVG4ZY.d.ts} +2 -5
  96. package/dist/{foundations/utilities/use-id.js → utilities-C_CGX4Dz.js} +1 -1
  97. package/dist/{ssr/verify-hydration.js → verify-hydration-io9ahUeq.js} +2 -2
  98. package/dist/{common/vnode.js → vnode-CGMJYPMB.js} +2 -2
  99. package/package.json +12 -7
  100. package/dist/bench/components/benchmark-row.d.ts +0 -20
  101. package/dist/bench/components/benchmark-row.js +0 -40
  102. package/dist/bench/components/benchmark-table.js +0 -23
  103. package/dist/bin/askr-ssg.d.ts +0 -27
  104. package/dist/bin/askr-ssg.js +0 -186
  105. package/dist/boot/hydration.js +0 -139
  106. package/dist/boot/root-lifecycle.d.ts +0 -18
  107. package/dist/boot/root-lifecycle.js +0 -209
  108. package/dist/boot/route-startup.js +0 -54
  109. package/dist/boot/types.d.ts +0 -61
  110. package/dist/common/component.d.ts +0 -18
  111. package/dist/common/control.d.ts +0 -12
  112. package/dist/common/dom-range.d.ts +0 -13
  113. package/dist/common/env.js +0 -41
  114. package/dist/common/error-boundary.d.ts +0 -15
  115. package/dist/common/invariant.js +0 -15
  116. package/dist/common/jsx.d.ts +0 -22
  117. package/dist/common/logger.js +0 -34
  118. package/dist/common/promise.js +0 -6
  119. package/dist/common/ssr-errors.d.ts +0 -10
  120. package/dist/common/ssr-errors.js +0 -14
  121. package/dist/common/ssr.d.ts +0 -41
  122. package/dist/common/vnode.d.ts +0 -21
  123. package/dist/components/error-boundary.d.ts +0 -14
  124. package/dist/components/error-boundary.js +0 -41
  125. package/dist/components/link.d.ts +0 -68
  126. package/dist/components/link.js +0 -74
  127. package/dist/control/case.d.ts +0 -18
  128. package/dist/control/case.js +0 -68
  129. package/dist/control/for.d.ts +0 -23
  130. package/dist/control/for.js +0 -61
  131. package/dist/control/shared.d.ts +0 -8
  132. package/dist/control/shared.js +0 -18
  133. package/dist/control/show.d.ts +0 -14
  134. package/dist/control/show.js +0 -32
  135. package/dist/data/data-runtime.d.ts +0 -27
  136. package/dist/data/invalidation.d.ts +0 -8
  137. package/dist/data/invalidation.js +0 -25
  138. package/dist/data/mutation-cell.d.ts +0 -27
  139. package/dist/data/mutation-cell.js +0 -133
  140. package/dist/data/query-cell.d.ts +0 -47
  141. package/dist/data/query-cell.js +0 -324
  142. package/dist/data/query-key.js +0 -40
  143. package/dist/data/shared.js +0 -20
  144. package/dist/data/testing.js +0 -2
  145. package/dist/data/types.d.ts +0 -160
  146. package/dist/foundations/icon/icon.d.ts +0 -52
  147. package/dist/foundations/icon/icon.js +0 -86
  148. package/dist/foundations/icon/icon.types.d.ts +0 -21
  149. package/dist/foundations/interactions/dismissable.d.ts +0 -71
  150. package/dist/foundations/interactions/dismissable.js +0 -24
  151. package/dist/foundations/interactions/focusable.d.ts +0 -21
  152. package/dist/foundations/interactions/focusable.js +0 -16
  153. package/dist/foundations/interactions/hoverable.d.ts +0 -25
  154. package/dist/foundations/interactions/hoverable.js +0 -13
  155. package/dist/foundations/interactions/interaction-policy.d.ts +0 -49
  156. package/dist/foundations/interactions/interaction-policy.js +0 -120
  157. package/dist/foundations/interactions/pressable.d.ts +0 -60
  158. package/dist/foundations/interactions/pressable.js +0 -49
  159. package/dist/foundations/interactions/roving-focus.d.ts +0 -51
  160. package/dist/foundations/interactions/roving-focus.js +0 -69
  161. package/dist/foundations/state/controllable.d.ts +0 -32
  162. package/dist/foundations/state/controllable.js +0 -80
  163. package/dist/foundations/structures/collection.d.ts +0 -51
  164. package/dist/foundations/structures/collection.js +0 -49
  165. package/dist/foundations/structures/layer.d.ts +0 -80
  166. package/dist/foundations/structures/layer.js +0 -79
  167. package/dist/foundations/structures/layout.d.ts +0 -32
  168. package/dist/foundations/structures/layout.js +0 -11
  169. package/dist/foundations/structures/portal.d.ts +0 -2
  170. package/dist/foundations/structures/portal.js +0 -3
  171. package/dist/foundations/structures/presence.d.ts +0 -36
  172. package/dist/foundations/structures/presence.js +0 -37
  173. package/dist/foundations/structures/slot.d.ts +0 -34
  174. package/dist/foundations/structures/slot.js +0 -39
  175. package/dist/foundations/utilities/aria.d.ts +0 -15
  176. package/dist/foundations/utilities/aria.js +0 -15
  177. package/dist/foundations/utilities/compose-handlers.d.ts +0 -36
  178. package/dist/foundations/utilities/compose-handlers.js +0 -18
  179. package/dist/foundations/utilities/compose-ref.js +0 -16
  180. package/dist/foundations/utilities/event-types.d.ts +0 -19
  181. package/dist/foundations/utilities/merge-props.d.ts +0 -4
  182. package/dist/foundations/utilities/merge-props.js +0 -47
  183. package/dist/foundations/utilities/use-id.d.ts +0 -31
  184. package/dist/fx/fx.d.ts +0 -32
  185. package/dist/fx/fx.js +0 -211
  186. package/dist/fx/noop.js +0 -7
  187. package/dist/fx/timing.d.ts +0 -158
  188. package/dist/fx/timing.js +0 -241
  189. package/dist/jsx/index.d.ts +0 -2
  190. package/dist/jsx/index.js +0 -4
  191. package/dist/jsx/types.js +0 -2
  192. package/dist/jsx/utils.d.ts +0 -4
  193. package/dist/jsx/utils.js +0 -17
  194. package/dist/jsx-runtime2.d.ts +0 -3
  195. package/dist/jsx-runtime2.js +0 -4
  196. package/dist/renderer/attributes.js +0 -254
  197. package/dist/renderer/boundaries.js +0 -142
  198. package/dist/renderer/boundary-materialization.js +0 -72
  199. package/dist/renderer/boundary-range-adoption.js +0 -76
  200. package/dist/renderer/boundary-range-sync.js +0 -101
  201. package/dist/renderer/boundary-state.js +0 -50
  202. package/dist/renderer/child-shape.js +0 -83
  203. package/dist/renderer/children-fastpath.js +0 -149
  204. package/dist/renderer/children.js +0 -158
  205. package/dist/renderer/cleanup.js +0 -267
  206. package/dist/renderer/component-host-cleanup.js +0 -143
  207. package/dist/renderer/component-host-instances.js +0 -116
  208. package/dist/renderer/component-host-replacement.js +0 -105
  209. package/dist/renderer/component-host-results.js +0 -138
  210. package/dist/renderer/component-host.js +0 -172
  211. package/dist/renderer/dom-host.js +0 -11
  212. package/dist/renderer/dom-internal.js +0 -243
  213. package/dist/renderer/dom-range.js +0 -161
  214. package/dist/renderer/dom.js +0 -11
  215. package/dist/renderer/element-children.js +0 -359
  216. package/dist/renderer/env.js +0 -2
  217. package/dist/renderer/error-boundary-dom.js +0 -86
  218. package/dist/renderer/evaluate-dom-range.js +0 -84
  219. package/dist/renderer/evaluate-reconcile.js +0 -257
  220. package/dist/renderer/evaluate.js +0 -95
  221. package/dist/renderer/fastpath.js +0 -142
  222. package/dist/renderer/for-commit-dom-map.js +0 -71
  223. package/dist/renderer/for-commit-removal.js +0 -27
  224. package/dist/renderer/for-commit-reorder.js +0 -87
  225. package/dist/renderer/for-commit.js +0 -442
  226. package/dist/renderer/hydration-boundaries.js +0 -60
  227. package/dist/renderer/hydration-listener-transaction.js +0 -49
  228. package/dist/renderer/index.js +0 -39
  229. package/dist/renderer/intrinsic-blueprint-analysis.js +0 -202
  230. package/dist/renderer/intrinsic-blueprint-bindings.js +0 -152
  231. package/dist/renderer/intrinsic-blueprint-materialization.js +0 -100
  232. package/dist/renderer/intrinsic-blueprint.js +0 -30
  233. package/dist/renderer/intrinsic-hydration-adoption.js +0 -66
  234. package/dist/renderer/keyed-children.js +0 -26
  235. package/dist/renderer/keyed.js +0 -167
  236. package/dist/renderer/namespaces.js +0 -21
  237. package/dist/renderer/prop-bindings.js +0 -315
  238. package/dist/renderer/reactive-child-dom.js +0 -139
  239. package/dist/renderer/reactive-child-sources.js +0 -182
  240. package/dist/renderer/reactive-children.js +0 -303
  241. package/dist/renderer/reconcile-commit.js +0 -36
  242. package/dist/renderer/reconcile-fastpaths.js +0 -100
  243. package/dist/renderer/reconcile-resolution.js +0 -163
  244. package/dist/renderer/reconcile.js +0 -37
  245. package/dist/renderer/retained-element-rollback.js +0 -288
  246. package/dist/renderer/stable-patch.js +0 -80
  247. package/dist/renderer/static-reuse.js +0 -94
  248. package/dist/renderer/types.js +0 -2
  249. package/dist/renderer/utils.js +0 -265
  250. package/dist/router/access.js +0 -34
  251. package/dist/router/activity.d.ts +0 -9
  252. package/dist/router/activity.js +0 -85
  253. package/dist/router/authoring.d.ts +0 -21
  254. package/dist/router/authoring.js +0 -196
  255. package/dist/router/internal-types.d.ts +0 -30
  256. package/dist/router/lazy.d.ts +0 -18
  257. package/dist/router/lazy.js +0 -50
  258. package/dist/router/manifest.d.ts +0 -9
  259. package/dist/router/manifest.js +0 -47
  260. package/dist/router/match.js +0 -120
  261. package/dist/router/navigate.d.ts +0 -10
  262. package/dist/router/navigate.js +0 -73
  263. package/dist/router/navigation-registry.d.ts +0 -31
  264. package/dist/router/navigation-registry.js +0 -103
  265. package/dist/router/navigation-scroll.d.ts +0 -13
  266. package/dist/router/navigation-scroll.js +0 -91
  267. package/dist/router/navigation-targets.d.ts +0 -30
  268. package/dist/router/navigation-targets.js +0 -634
  269. package/dist/router/policy.d.ts +0 -27
  270. package/dist/router/policy.js +0 -130
  271. package/dist/router/rendering.d.ts +0 -9
  272. package/dist/router/rendering.js +0 -47
  273. package/dist/router/resolution.d.ts +0 -3
  274. package/dist/router/resolution.js +0 -84
  275. package/dist/router/route-context.js +0 -77
  276. package/dist/router/route-matching.d.ts +0 -19
  277. package/dist/router/route-matching.js +0 -173
  278. package/dist/router/route-query.d.ts +0 -16
  279. package/dist/router/route-query.js +0 -45
  280. package/dist/router/route.d.ts +0 -8
  281. package/dist/router/route.js +0 -10
  282. package/dist/router/store.d.ts +0 -49
  283. package/dist/router/store.js +0 -169
  284. package/dist/router/testing.js +0 -4
  285. package/dist/runtime/access.d.ts +0 -19
  286. package/dist/runtime/access.js +0 -43
  287. package/dist/runtime/child-scope.d.ts +0 -41
  288. package/dist/runtime/child-scope.js +0 -134
  289. package/dist/runtime/component-cleanup.d.ts +0 -15
  290. package/dist/runtime/component-cleanup.js +0 -68
  291. package/dist/runtime/component-commit.js +0 -167
  292. package/dist/runtime/component-facade.d.ts +0 -5
  293. package/dist/runtime/component-facade.js +0 -6
  294. package/dist/runtime/component-internal.d.ts +0 -105
  295. package/dist/runtime/component-internal.js +0 -237
  296. package/dist/runtime/component-lifecycle.d.ts +0 -10
  297. package/dist/runtime/component-lifecycle.js +0 -33
  298. package/dist/runtime/component-scope.d.ts +0 -54
  299. package/dist/runtime/component.d.ts +0 -5
  300. package/dist/runtime/component.js +0 -6
  301. package/dist/runtime/context.d.ts +0 -72
  302. package/dist/runtime/context.js +0 -236
  303. package/dist/runtime/control.d.ts +0 -62
  304. package/dist/runtime/control.js +0 -239
  305. package/dist/runtime/derive.d.ts +0 -16
  306. package/dist/runtime/derive.js +0 -140
  307. package/dist/runtime/dev-namespace.d.ts +0 -30
  308. package/dist/runtime/dev-namespace.js +0 -64
  309. package/dist/runtime/effect.d.ts +0 -35
  310. package/dist/runtime/error-boundary.d.ts +0 -4
  311. package/dist/runtime/error-boundary.js +0 -29
  312. package/dist/runtime/events.d.ts +0 -58
  313. package/dist/runtime/events.js +0 -201
  314. package/dist/runtime/execution-model.d.ts +0 -6
  315. package/dist/runtime/execution-model.js +0 -13
  316. package/dist/runtime/fastlane.d.ts +0 -33
  317. package/dist/runtime/fastlane.js +0 -173
  318. package/dist/runtime/for-bench.d.ts +0 -40
  319. package/dist/runtime/for-bench.js +0 -13
  320. package/dist/runtime/for-internal.d.ts +0 -106
  321. package/dist/runtime/for-internal.js +0 -285
  322. package/dist/runtime/for-reconcile.d.ts +0 -7
  323. package/dist/runtime/for-reconcile.js +0 -442
  324. package/dist/runtime/for-scopes.d.ts +0 -26
  325. package/dist/runtime/for-scopes.js +0 -280
  326. package/dist/runtime/for-signals.d.ts +0 -39
  327. package/dist/runtime/for-signals.js +0 -213
  328. package/dist/runtime/for-types.d.ts +0 -8
  329. package/dist/runtime/for.d.ts +0 -4
  330. package/dist/runtime/for.js +0 -5
  331. package/dist/runtime/index.d.ts +0 -24
  332. package/dist/runtime/index.js +0 -33
  333. package/dist/runtime/lifecycle-batch.d.ts +0 -59
  334. package/dist/runtime/lifecycle-batch.js +0 -178
  335. package/dist/runtime/lifecycle-operation-settlement.d.ts +0 -5
  336. package/dist/runtime/lifecycle-operation-settlement.js +0 -51
  337. package/dist/runtime/lifecycle-operations.d.ts +0 -30
  338. package/dist/runtime/operations.d.ts +0 -3
  339. package/dist/runtime/operations.js +0 -3
  340. package/dist/runtime/perf-metrics.d.ts +0 -27
  341. package/dist/runtime/perf-metrics.js +0 -6
  342. package/dist/runtime/portal.d.ts +0 -21
  343. package/dist/runtime/readable.d.ts +0 -34
  344. package/dist/runtime/readable.js +0 -183
  345. package/dist/runtime/resource-cell.js +0 -112
  346. package/dist/runtime/resource-operation.d.ts +0 -12
  347. package/dist/runtime/runtime.js +0 -57
  348. package/dist/runtime/selector-store.js +0 -22
  349. package/dist/runtime/selector.d.ts +0 -10
  350. package/dist/runtime/snapshot-source.d.ts +0 -9
  351. package/dist/runtime/state.d.ts +0 -54
  352. package/dist/ssg/batch-render.js +0 -101
  353. package/dist/ssg/create-static-gen.d.ts +0 -66
  354. package/dist/ssg/create-static-gen.js +0 -250
  355. package/dist/ssg/generate-metadata.js +0 -92
  356. package/dist/ssg/generation-plan.js +0 -68
  357. package/dist/ssg/incremental-manifest.js +0 -54
  358. package/dist/ssg/resolve-ssg-data.js +0 -103
  359. package/dist/ssg/route-utils.js +0 -22
  360. package/dist/ssg/static-routes.js +0 -100
  361. package/dist/ssg/types.d.ts +0 -188
  362. package/dist/ssg/write-static-files.js +0 -77
  363. package/dist/ssr/attrs.js +0 -92
  364. package/dist/ssr/boundaries.js +0 -124
  365. package/dist/ssr/component-runtime.js +0 -85
  366. package/dist/ssr/context.d.ts +0 -49
  367. package/dist/ssr/context.js +0 -89
  368. package/dist/ssr/errors.d.ts +0 -9
  369. package/dist/ssr/errors.js +0 -12
  370. package/dist/ssr/escape.js +0 -191
  371. package/dist/ssr/hydration-data.js +0 -8
  372. package/dist/ssr/hydration-verify.d.ts +0 -11
  373. package/dist/ssr/hydration-verify.js +0 -171
  374. package/dist/ssr/index-internal.d.ts +0 -14
  375. package/dist/ssr/index-internal.js +0 -17
  376. package/dist/ssr/render-keys.js +0 -14
  377. package/dist/ssr/render-resolved.d.ts +0 -19
  378. package/dist/ssr/render-resolved.js +0 -33
  379. package/dist/ssr/render-sync.d.ts +0 -20
  380. package/dist/ssr/render-sync.js +0 -283
  381. package/dist/ssr/route-policy-resolution.js +0 -76
  382. package/dist/ssr/route-render.d.ts +0 -76
  383. package/dist/ssr/route-render.js +0 -118
  384. package/dist/ssr/sink.d.ts +0 -25
  385. package/dist/ssr/sink.js +0 -84
  386. package/dist/ssr/types.d.ts +0 -22
@@ -1,202 +0,0 @@
1
- import { _isDOMElement } from "../common/vnode.js";
2
- import "./types.js";
3
- import { extractKey, tagNamesEqualIgnoreCase } from "./utils.js";
4
- import { applyScalarPropValue } from "./attributes.js";
5
- import { isFragmentVNode } from "./child-shape.js";
6
- //#region src/renderer/intrinsic-blueprint-analysis.ts
7
- function getVNodeChildren(vnode) {
8
- return vnode.props?.children ?? vnode.children;
9
- }
10
- function getDirectReactiveCompute(value) {
11
- if (typeof value === "function") return value;
12
- if (Array.isArray(value)) return value.length === 1 ? getDirectReactiveCompute(value[0]) : null;
13
- if (typeof value === "object" && value !== null && isFragmentVNode(value)) return getDirectReactiveCompute(getVNodeChildren(value));
14
- return null;
15
- }
16
- const ownerBlueprints = /* @__PURE__ */ new WeakMap();
17
- function getBlueprintKey(parentNamespace) {
18
- return parentNamespace ?? "";
19
- }
20
- function getBlueprint(owner, ownerDocument, parentNamespace) {
21
- return ownerBlueprints.get(owner)?.get(ownerDocument)?.get(getBlueprintKey(parentNamespace));
22
- }
23
- function cacheBlueprint(owner, ownerDocument, parentNamespace, blueprint) {
24
- let byDocument = ownerBlueprints.get(owner);
25
- if (!byDocument) {
26
- byDocument = /* @__PURE__ */ new WeakMap();
27
- ownerBlueprints.set(owner, byDocument);
28
- }
29
- let byNamespace = byDocument.get(ownerDocument);
30
- if (!byNamespace) {
31
- byNamespace = /* @__PURE__ */ new Map();
32
- byDocument.set(ownerDocument, byNamespace);
33
- }
34
- const key = getBlueprintKey(parentNamespace);
35
- if (!byNamespace.has(key)) byNamespace.set(key, blueprint);
36
- }
37
- function isBlueprintKeyProp(key) {
38
- return key === "key" || key === "data-key" || key === "data-askr-key-kind";
39
- }
40
- function classifyProp(value, key) {
41
- if (key === "ref") return { kind: "ref" };
42
- if (key.startsWith("on") && key.length > 2) return typeof value === "function" ? { kind: "event" } : null;
43
- if (typeof value === "function") return { kind: "reactive" };
44
- if (value === void 0 || value === null || value === false) return { kind: "empty" };
45
- if (typeof value === "object") return null;
46
- return {
47
- kind: "static",
48
- value
49
- };
50
- }
51
- function collectReactiveSlotShapes(value, slots) {
52
- if (Array.isArray(value)) {
53
- for (const child of value) if (!collectReactiveSlotShapes(child, slots)) return false;
54
- return true;
55
- }
56
- if (value === null || value === void 0 || value === false) return true;
57
- if (typeof value === "function") {
58
- slots.push({ kind: "dynamic" });
59
- return true;
60
- }
61
- if (typeof value === "string" || typeof value === "number") {
62
- slots.push({
63
- kind: "static",
64
- value: String(value)
65
- });
66
- return true;
67
- }
68
- if (typeof value === "object" && value !== null && isFragmentVNode(value)) return collectReactiveSlotShapes(getVNodeChildren(value), slots);
69
- return false;
70
- }
71
- function collectStaticVNodeChildren(value, children) {
72
- if (Array.isArray(value)) {
73
- for (const child of value) if (!collectStaticVNodeChildren(child, children)) return false;
74
- return true;
75
- }
76
- if (value === null || value === void 0 || typeof value === "boolean") return true;
77
- if (typeof value === "string" || typeof value === "number") {
78
- children.push(String(value));
79
- return true;
80
- }
81
- if (_isDOMElement(value)) {
82
- if (typeof value.type === "string") {
83
- children.push(value);
84
- return true;
85
- }
86
- if (typeof value.type === "symbol" && isFragmentVNode(value)) return collectStaticVNodeChildren(getVNodeChildren(value), children);
87
- }
88
- return false;
89
- }
90
- function buildElementShape(template, vnode) {
91
- if (typeof vnode.type !== "string" || !tagNamesEqualIgnoreCase(template.tagName, vnode.type)) return null;
92
- const props = vnode.props ?? {};
93
- const propShapes = Object.create(null);
94
- let propCount = 0;
95
- for (const key in props) {
96
- if (key === "children" || isBlueprintKeyProp(key)) continue;
97
- const propShape = classifyProp(props[key], key);
98
- if (!propShape) return null;
99
- propShapes[key] = propShape;
100
- propCount += 1;
101
- if (propShape.kind === "reactive") applyScalarPropValue(template, key, null, vnode.type);
102
- }
103
- if (extractKey(vnode) !== void 0) template.removeAttribute("data-key");
104
- const children = vnode.props?.children ?? vnode.children;
105
- const reactiveSlots = [];
106
- if (collectReactiveSlotShapes(children, reactiveSlots)) {
107
- if (reactiveSlots.some((slot) => slot.kind === "dynamic")) {
108
- if (template.childNodes.length !== reactiveSlots.length) return null;
109
- for (let index = 0; index < reactiveSlots.length; index += 1) {
110
- const child = template.childNodes[index];
111
- const slot = reactiveSlots[index];
112
- if (!child || child.nodeType !== Node.TEXT_NODE) return null;
113
- if (slot.kind === "static" && child.data !== slot.value) return null;
114
- if (slot.kind === "dynamic") child.data = "";
115
- }
116
- return {
117
- tagName: vnode.type,
118
- namespaceURI: template.namespaceURI,
119
- propCount,
120
- props: propShapes,
121
- children: {
122
- kind: "reactive",
123
- slots: reactiveSlots
124
- }
125
- };
126
- }
127
- }
128
- const staticChildren = [];
129
- if (!collectStaticVNodeChildren(children, staticChildren)) return null;
130
- if (template.childNodes.length !== staticChildren.length) return null;
131
- const childShapes = [];
132
- for (let index = 0; index < staticChildren.length; index += 1) {
133
- const child = staticChildren[index];
134
- const templateChild = template.childNodes[index];
135
- if (typeof child === "string") {
136
- if (templateChild.nodeType !== Node.TEXT_NODE || templateChild.data !== child) return null;
137
- childShapes.push({
138
- kind: "text",
139
- value: child
140
- });
141
- continue;
142
- }
143
- if (!(templateChild instanceof Element)) return null;
144
- const shape = buildElementShape(templateChild, child);
145
- if (!shape) return null;
146
- childShapes.push({
147
- kind: "element",
148
- shape
149
- });
150
- }
151
- return {
152
- tagName: vnode.type,
153
- namespaceURI: template.namespaceURI,
154
- propCount,
155
- props: propShapes,
156
- children: {
157
- kind: "static",
158
- slots: childShapes
159
- }
160
- };
161
- }
162
- function buildBlueprint(element, vnode) {
163
- const template = element.cloneNode(true);
164
- const shape = buildElementShape(template, vnode);
165
- return shape ? {
166
- template,
167
- shape,
168
- elementCount: countBlueprintElements(shape)
169
- } : null;
170
- }
171
- function countBlueprintElements(shape) {
172
- if (shape.children.kind === "reactive") return 1;
173
- return 1 + shape.children.slots.reduce((count, slot) => count + (slot.kind === "element" ? countBlueprintElements(slot.shape) : 0), 0);
174
- }
175
- function matchPropShape(expected, value, key) {
176
- switch (expected.kind) {
177
- case "ref": return key === "ref";
178
- case "event": return key.startsWith("on") && key.length > 2 && typeof value === "function";
179
- case "reactive": return !(key.startsWith("on") && key.length > 2) && typeof value === "function";
180
- case "empty": return value === void 0 || value === null || value === false;
181
- case "static": return typeof value !== "object" && Object.is(value, expected.value);
182
- }
183
- }
184
- function matchReactiveSlots(value, slots, startIndex) {
185
- if (Array.isArray(value)) {
186
- let index = startIndex;
187
- for (const child of value) {
188
- index = matchReactiveSlots(child, slots, index);
189
- if (index < 0) return -1;
190
- }
191
- return index;
192
- }
193
- if (value === null || value === void 0 || value === false) return startIndex;
194
- const slot = slots[startIndex];
195
- if (!slot) return -1;
196
- if (typeof value === "function") return slot.kind === "dynamic" ? startIndex + 1 : -1;
197
- if (typeof value === "string" || typeof value === "number") return slot.kind === "static" && slot.value === String(value) ? startIndex + 1 : -1;
198
- if (typeof value === "object" && value !== null && isFragmentVNode(value)) return matchReactiveSlots(getVNodeChildren(value), slots, startIndex);
199
- return -1;
200
- }
201
- //#endregion
202
- export { buildBlueprint, cacheBlueprint, getBlueprint, getDirectReactiveCompute, getVNodeChildren, isBlueprintKeyProp, matchPropShape, matchReactiveSlots };
@@ -1,152 +0,0 @@
1
- import { getRuntimeEnv } from "../common/env.js";
2
- import { logger } from "../common/logger.js";
3
- import { incrementPerfMetric } from "../runtime/perf-metrics.js";
4
- import "../runtime/dev-namespace.js";
5
- import { createOwnedFineGrainedEffect } from "../runtime/effect.js";
6
- import "../runtime/index.js";
7
- import { REACTIVE_CHILDREN_KEY, setDirectElementReactivePropCleanup, setFreshElementReactivePropCleanup, teardownNodeSubtree } from "./cleanup.js";
8
- import "./env.js";
9
- import { applyScalarPropValue } from "./attributes.js";
10
- import { normalizeOwnedReactiveTextValue } from "./reactive-child-sources.js";
11
- import { createReactiveScalarChildCleanupEntry, syncReactiveScalarChild } from "./reactive-children.js";
12
- import { applyFreshElementBindings, createReactivePropCleanupEntry } from "./prop-bindings.js";
13
- const EMPTY_CLASS_TOKENS = [];
14
- var BlueprintBinding = class {
15
- constructor(kind, element, compute, propName, tagName, textNode) {
16
- this.kind = kind;
17
- this.element = element;
18
- this.propName = propName;
19
- this.tagName = tagName;
20
- this.textNode = textNode;
21
- this.active = true;
22
- this.group = null;
23
- this.lastClassTokens = null;
24
- this.hasValue = false;
25
- this.lastValue = void 0;
26
- this.nextValue = void 0;
27
- this.compute = compute;
28
- }
29
- get fnRef() {
30
- return this.compute;
31
- }
32
- set fnRef(nextValue) {
33
- this.compute = nextValue;
34
- }
35
- get groupedScalar() {
36
- return this.kind === "text";
37
- }
38
- cleanup() {
39
- if (this.group) cleanupGroupedBinding(this.group, this);
40
- }
41
- updateFn(nextValue) {
42
- if (this.group) updateGroupedBinding(this.group, this, nextValue);
43
- }
44
- restoreFn(nextValue) {
45
- const group = this.group;
46
- if (this.kind === "text") return createReactiveScalarChildCleanupEntry(this.element, [{
47
- kind: "dynamic",
48
- compute: nextValue
49
- }], group.host);
50
- return createReactivePropCleanupEntry(this.element, this.propName, nextValue, this.tagName);
51
- }
52
- };
53
- function commitBlueprintBinding(binding, value, host) {
54
- const previousValue = binding.lastValue;
55
- if (binding.hasValue && Object.is(previousValue, value)) return;
56
- if (!binding.hasValue && binding.kind === "text" && binding.textNode) {
57
- const normalized = normalizeOwnedReactiveTextValue(value);
58
- if (normalized !== null) {
59
- if (binding.textNode.data !== normalized) binding.textNode.data = normalized;
60
- binding.lastValue = value;
61
- binding.hasValue = true;
62
- return;
63
- }
64
- }
65
- if (binding.kind === "prop") {
66
- incrementPerfMetric("reactivePropReevaluations");
67
- if (!binding.hasValue && (binding.propName === "class" || binding.propName === "className") && (value === "" || value === void 0 || value === null || value === false)) binding.lastClassTokens = EMPTY_CLASS_TOKENS;
68
- else applyScalarPropValue(binding.element, binding.propName, value, binding.tagName, binding.hasValue ? previousValue : void 0, binding);
69
- } else {
70
- const normalized = normalizeOwnedReactiveTextValue(value);
71
- if (normalized === null) {
72
- binding.textNode = null;
73
- host.updateElementChildren(binding.element, value);
74
- } else {
75
- let textNode = binding.textNode;
76
- if (!textNode || binding.element.firstChild !== textNode || binding.element.lastChild !== textNode) {
77
- host.updateElementChildren(binding.element, normalized);
78
- textNode = binding.element.childNodes.length === 1 && binding.element.firstChild?.nodeType === Node.TEXT_NODE ? binding.element.firstChild : null;
79
- binding.textNode = textNode;
80
- }
81
- if (textNode && textNode.data !== normalized) textNode.data = normalized;
82
- }
83
- }
84
- binding.lastValue = value;
85
- binding.hasValue = true;
86
- }
87
- function updateGroupedBinding(group, binding, nextValue) {
88
- if (!binding.active || !group.effect) return;
89
- if (binding.kind === "text") {
90
- const nextSlot = nextValue[0];
91
- const nextCompute = typeof nextValue === "function" ? nextValue : nextSlot?.kind === "dynamic" ? nextSlot.compute : null;
92
- if (!nextCompute) return;
93
- binding.compute = nextCompute;
94
- } else binding.compute = nextValue;
95
- group.effect.flush();
96
- }
97
- function cleanupGroupedBinding(group, binding) {
98
- if (!binding.active) return;
99
- binding.active = false;
100
- group.activeCount -= 1;
101
- if (group.activeCount === 0) {
102
- group.effect?.cleanup();
103
- group.effect = null;
104
- }
105
- }
106
- function computeBlueprintBindings() {
107
- const group = this._owner;
108
- for (const binding of group.bindings) if (binding.active) binding.nextValue = binding.compute();
109
- return group.bindings;
110
- }
111
- function commitBlueprintBindings(_bindings, _previousBindings) {
112
- const group = this._owner;
113
- for (const binding of group.bindings) if (binding.active) commitBlueprintBinding(binding, binding.nextValue, group.host);
114
- }
115
- function blueprintBindingsChanged(_previousBindings, _nextBindings) {
116
- return false;
117
- }
118
- function reportBlueprintBindingError(error) {
119
- if (getRuntimeEnv().NODE_ENV !== "production") logger.warn("[Askr] Blueprint reactive update failed:", error);
120
- }
121
- function mountBlueprintBindingGroup(bindings, host) {
122
- if (bindings.length === 0) return;
123
- const group = {
124
- _coalesceForItemReads: true,
125
- bindings,
126
- activeCount: bindings.length,
127
- effect: null,
128
- host
129
- };
130
- group.effect = createOwnedFineGrainedEffect("reactive", computeBlueprintBindings, commitBlueprintBindings, blueprintBindingsChanged, reportBlueprintBindingError, group);
131
- let previousElement = null;
132
- for (const binding of bindings) {
133
- binding.group = group;
134
- const bindingKey = binding.kind === "text" ? REACTIVE_CHILDREN_KEY : binding.propName;
135
- if (binding.element === previousElement) setDirectElementReactivePropCleanup(binding.element, bindingKey, binding);
136
- else {
137
- setFreshElementReactivePropCleanup(binding.element, bindingKey, binding);
138
- previousElement = binding.element;
139
- }
140
- }
141
- }
142
- function publishPreparedBlueprintBindings(element, props) {
143
- applyFreshElementBindings(element, props);
144
- }
145
- function cleanupBlueprintElement(element) {
146
- teardownNodeSubtree(element);
147
- }
148
- function syncPreparedBlueprintChild(element, value, host) {
149
- return syncReactiveScalarChild(element, value, host);
150
- }
151
- //#endregion
152
- export { BlueprintBinding, cleanupBlueprintElement, mountBlueprintBindingGroup, publishPreparedBlueprintBindings, syncPreparedBlueprintChild };
@@ -1,100 +0,0 @@
1
- import { _isDOMElement } from "../common/vnode.js";
2
- import "./types.js";
3
- import { isBenchMetricScopeActive, recordBenchCounter } from "../runtime/for-bench.js";
4
- import "../runtime/index.js";
5
- import { materializeFreshKey } from "./attributes.js";
6
- import { isFragmentVNode } from "./child-shape.js";
7
- import { getDirectReactiveCompute, getVNodeChildren, isBlueprintKeyProp, matchPropShape, matchReactiveSlots } from "./intrinsic-blueprint-analysis.js";
8
- import { BlueprintBinding, cleanupBlueprintElement, mountBlueprintBindingGroup, publishPreparedBlueprintBindings, syncPreparedBlueprintChild } from "./intrinsic-blueprint-bindings.js";
9
- //#region src/renderer/intrinsic-blueprint-materialization.ts
10
- const BLUEPRINT_PUBLISH_BINDINGS = 0;
11
- const BLUEPRINT_SYNC_REACTIVE_CHILD = 1;
12
- function prepareElementBlueprint(element, vnode, shape, bindings, deferred) {
13
- const vnodeType = vnode.type;
14
- if (typeof vnodeType !== "string" || shape.tagName !== vnodeType && shape.tagName.toLowerCase() !== vnodeType.toLowerCase()) return false;
15
- const props = vnode.props ?? {};
16
- let propCount = 0;
17
- let shouldPublishBindings = false;
18
- for (const key in props) {
19
- if (key === "children" || isBlueprintKeyProp(key)) continue;
20
- const expected = shape.props[key];
21
- if (!expected || !matchPropShape(expected, props[key], key)) return false;
22
- propCount += 1;
23
- if (expected.kind === "reactive") bindings.push(new BlueprintBinding("prop", element, props[key], key, vnodeType, null));
24
- else if (expected.kind === "event" || expected.kind === "ref") shouldPublishBindings = true;
25
- }
26
- if (propCount !== shape.propCount) return false;
27
- materializeFreshKey(element, vnode, props);
28
- if (shouldPublishBindings) deferred.push(BLUEPRINT_PUBLISH_BINDINGS, element, props);
29
- const children = vnode.props?.children ?? vnode.children;
30
- if (shape.children.kind === "reactive") {
31
- if (shape.children.slots.length === 1 && shape.children.slots[0]?.kind === "dynamic") {
32
- const compute = getDirectReactiveCompute(children);
33
- const textNode = element.firstChild;
34
- if (compute) {
35
- bindings.push(new BlueprintBinding("text", element, compute, null, null, textNode));
36
- return true;
37
- }
38
- }
39
- if (matchReactiveSlots(children, shape.children.slots, 0) !== shape.children.slots.length) return false;
40
- deferred.push(BLUEPRINT_SYNC_REACTIVE_CHILD, element, children);
41
- return true;
42
- }
43
- if (shape.children.slots.length === 0 && (children === null || children === void 0 || typeof children === "boolean")) return true;
44
- const staticSlot = shape.children.slots.length === 1 ? shape.children.slots[0] : void 0;
45
- if (staticSlot?.kind === "element" && _isDOMElement(children) && typeof children.type === "string") {
46
- const childNode = element.firstChild;
47
- if (!(childNode instanceof Element)) return false;
48
- return prepareElementBlueprint(childNode, children, staticSlot.shape, bindings, deferred);
49
- }
50
- return prepareStaticSlots(element, children, shape.children.slots, 0, bindings, deferred) === shape.children.slots.length;
51
- }
52
- function prepareStaticSlots(element, value, slots, startIndex, bindings, deferred) {
53
- if (Array.isArray(value)) {
54
- let index = startIndex;
55
- for (const child of value) {
56
- index = prepareStaticSlots(element, child, slots, index, bindings, deferred);
57
- if (index < 0) return -1;
58
- }
59
- return index;
60
- }
61
- if (value === null || value === void 0 || typeof value === "boolean") return startIndex;
62
- const slot = slots[startIndex];
63
- const childNode = element.childNodes[startIndex];
64
- if (typeof value === "string" || typeof value === "number") return slot?.kind === "text" && slot.value === String(value) ? startIndex + 1 : -1;
65
- if (!_isDOMElement(value)) return -1;
66
- if (typeof value.type === "symbol") return isFragmentVNode(value) ? prepareStaticSlots(element, getVNodeChildren(value), slots, startIndex, bindings, deferred) : -1;
67
- if (slot?.kind === "element" && childNode !== void 0) return prepareElementBlueprint(childNode, value, slot.shape, bindings, deferred) ? startIndex + 1 : -1;
68
- return -1;
69
- }
70
- function publishPreparedBlueprint(deferred, host) {
71
- for (let index = 0; index < deferred.length; index += 3) {
72
- const operation = deferred[index];
73
- const element = deferred[index + 1];
74
- const value = deferred[index + 2];
75
- if (operation === BLUEPRINT_PUBLISH_BINDINGS) publishPreparedBlueprintBindings(element, value);
76
- else if (!syncPreparedBlueprintChild(element, value, host)) throw new Error("[askr] Component blueprint reactive shape changed.");
77
- }
78
- }
79
- function instantiateBlueprint(blueprint, vnode, host) {
80
- const element = blueprint.template.cloneNode(true);
81
- const bindings = [];
82
- const deferred = [];
83
- if (!prepareElementBlueprint(element, vnode, blueprint.shape, bindings, deferred)) return null;
84
- try {
85
- publishPreparedBlueprint(deferred, host);
86
- mountBlueprintBindingGroup(bindings, host);
87
- if (isBenchMetricScopeActive("coldCreate")) {
88
- recordBenchCounter("domNodesCreated", blueprint.elementCount);
89
- recordBenchCounter("reactivePropsMounted", bindings.reduce((count, binding) => count + (binding.kind === "prop" ? 1 : 0), 0));
90
- }
91
- return element;
92
- } catch (error) {
93
- try {
94
- cleanupBlueprintElement(element);
95
- } catch {}
96
- throw error;
97
- }
98
- }
99
- //#endregion
100
- export { instantiateBlueprint, prepareElementBlueprint };
@@ -1,30 +0,0 @@
1
- import { _isDOMElement } from "../common/vnode.js";
2
- import "./types.js";
3
- import { buildBlueprint, cacheBlueprint, getBlueprint } from "./intrinsic-blueprint-analysis.js";
4
- import { instantiateBlueprint } from "./intrinsic-blueprint-materialization.js";
5
- //#region src/renderer/intrinsic-blueprint.ts
6
- /**
7
- * Stable renderer facade for the intrinsic blueprint fast path.
8
- *
9
- * Analysis, materialization, and grouped binding publication intentionally
10
- * live behind this small adapter so callers do not depend on their internal
11
- * representations.
12
- */
13
- function createResultNodeWithBlueprint(owner, result, parentNamespace, createNormally, host) {
14
- if (!_isDOMElement(result) || typeof result.type !== "string") return createNormally();
15
- const cached = getBlueprint(owner, document, parentNamespace);
16
- if (cached) {
17
- const instantiated = instantiateBlueprint(cached, result, host);
18
- if (instantiated) return instantiated;
19
- }
20
- const node = createNormally();
21
- if (!(node instanceof Element) || cached) return node;
22
- const blueprint = buildBlueprint(node, result);
23
- if (blueprint) cacheBlueprint(owner, node.ownerDocument, parentNamespace, blueprint);
24
- return node;
25
- }
26
- function createComponentResultNodeWithBlueprint(component, result, parentNamespace, createNormally, host) {
27
- return createResultNodeWithBlueprint(component, result, parentNamespace, createNormally, host);
28
- }
29
- //#endregion
30
- export { createComponentResultNodeWithBlueprint, createResultNodeWithBlueprint };
@@ -1,66 +0,0 @@
1
- import { _isDOMElement } from "../common/vnode.js";
2
- import "./types.js";
3
- import { extractKey, parseEventProp, tagNamesEqualIgnoreCase } from "./utils.js";
4
- import { hasMatchingStaticPropsIgnoringEvents } from "./attributes.js";
5
- import { runRetainedElementUpdate } from "./retained-element-rollback.js";
6
- import { applyMatchingElementBindings, hasAnyElementBindingState } from "./prop-bindings.js";
7
- //#region src/renderer/intrinsic-hydration-adoption.ts
8
- let hydrationAdoptionDepth = 0;
9
- function withIntrinsicHydrationAdoption(work) {
10
- hydrationAdoptionDepth += 1;
11
- try {
12
- return work();
13
- } finally {
14
- hydrationAdoptionDepth -= 1;
15
- }
16
- }
17
- function getDirectVNodeChildren(vnode) {
18
- const children = vnode.props?.children ?? vnode.children;
19
- if (children === null || children === void 0 || children === false) return [];
20
- return Array.isArray(children) ? children : [children];
21
- }
22
- function canAdoptMatchingIntrinsicSubtree(element, vnode) {
23
- if (typeof vnode.type !== "string" || !tagNamesEqualIgnoreCase(element.tagName, vnode.type) || hasAnyElementBindingState(element) || extractKey(vnode) !== void 0) return false;
24
- const props = vnode.props || {};
25
- if (!hasMatchingStaticPropsIgnoringEvents(element, props, vnode.type)) return false;
26
- for (const key in props) {
27
- const value = props[key];
28
- const eventProp = parseEventProp(key);
29
- if (eventProp && typeof value !== "function") return false;
30
- if (!eventProp && key !== "ref" && typeof value === "function") return false;
31
- }
32
- const children = getDirectVNodeChildren(vnode);
33
- if (element.childNodes.length !== children.length) return false;
34
- for (let index = 0; index < children.length; index += 1) {
35
- const child = children[index];
36
- const current = element.childNodes[index];
37
- if (typeof child === "string" || typeof child === "number") {
38
- if (current.nodeType !== 3 || current.data !== String(child)) return false;
39
- continue;
40
- }
41
- if (!_isDOMElement(child) || typeof child.type !== "string" || !(current instanceof Element) || extractKey(child) !== void 0 || !canAdoptMatchingIntrinsicSubtree(current, child)) return false;
42
- }
43
- return true;
44
- }
45
- function adoptMatchingIntrinsicSubtree(element, vnode) {
46
- const props = vnode.props || {};
47
- let hasBindings = Object.prototype.hasOwnProperty.call(props, "ref");
48
- for (const key in props) if (parseEventProp(key)) {
49
- hasBindings = true;
50
- break;
51
- }
52
- if (hasBindings) runRetainedElementUpdate(element, () => void 0, () => applyMatchingElementBindings(element, props), void 0, true);
53
- const children = getDirectVNodeChildren(vnode);
54
- for (let index = 0; index < children.length; index += 1) {
55
- const child = children[index];
56
- if (_isDOMElement(child)) adoptMatchingIntrinsicSubtree(element.childNodes[index], child);
57
- }
58
- }
59
- function tryAdoptMatchingIntrinsicSubtree(element, vnode) {
60
- if (hydrationAdoptionDepth === 0) return false;
61
- if (!canAdoptMatchingIntrinsicSubtree(element, vnode)) return false;
62
- adoptMatchingIntrinsicSubtree(element, vnode);
63
- return true;
64
- }
65
- //#endregion
66
- export { tryAdoptMatchingIntrinsicSubtree, withIntrinsicHydrationAdoption };
@@ -1,26 +0,0 @@
1
- import { extractKey, getMaterializedKey } from "./utils.js";
2
- //#region src/renderer/keyed-children.ts
3
- function extractKeyedVnodes(newChildren) {
4
- const keyedVnodes = [];
5
- for (let i = 0; i < newChildren.length; i++) {
6
- const child = newChildren[i];
7
- const key = extractKey(child);
8
- if (key !== void 0) keyedVnodes.push({
9
- key,
10
- vnode: child
11
- });
12
- }
13
- return keyedVnodes;
14
- }
15
- function buildDOMKeyMap(parent) {
16
- const keyMap = /* @__PURE__ */ new Map();
17
- try {
18
- for (let el = parent.firstElementChild; el; el = el.nextElementSibling) {
19
- const key = getMaterializedKey(el);
20
- if (key !== void 0) keyMap.set(key, el);
21
- }
22
- } catch {}
23
- return keyMap;
24
- }
25
- //#endregion
26
- export { buildDOMKeyMap, extractKeyedVnodes };