@askrjs/askr 0.0.52 → 0.0.54

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-2ZR3MtO0.js +647 -0
  11. package/dist/cleanup-DScKZG2i.js +487 -0
  12. package/dist/component-internal-D9PLuFUc.js +614 -0
  13. package/dist/component-lifecycle-C7lnU9Bt.js +359 -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-BI4RMD2z.d.ts +437 -0
  23. package/dist/control-Bf4Wkdvv.d.ts +9 -0
  24. package/dist/{common/control.js → control-DhFRTIoE.js} +1 -1
  25. package/dist/control-mXROCjL3.js +165 -0
  26. package/dist/data/index.d.ts +2 -6
  27. package/dist/data/index.js +4 -5
  28. package/dist/data-B9dauyDn.js +559 -0
  29. package/dist/{data/data-runtime.js → data-runtime-SJ1BSUvk.js} +32 -31
  30. package/dist/deferred-DklLG4qM.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-CSz8Unkq.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-B1LNotpU.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-C8iW3xCt.d.ts +44 -0
  52. package/dist/index-DwxdIA-t.d.ts +48 -0
  53. package/dist/{runtime/runtime.d.ts → index-Zb31mCiU.d.ts} +31 -8
  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-CdRjdsHo.js} +4 -5
  67. package/dist/navigate-BVDCzOuB.d.ts +34 -0
  68. package/dist/navigate-D17eVQyI.js +1449 -0
  69. package/dist/{runtime/portal.js → portal-C47xkwXj.js} +71 -41
  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-DrLRAD5y.js +6266 -0
  73. package/dist/{runtime/resource-operation.js → resource-operation-BNY29MVH.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-DCfwLBr-.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-DEARZxJ5.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-BWwu-mWu.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,280 +0,0 @@
1
- import { isDevelopmentEnvironment } from "../common/env.js";
2
- import { getRuntimeRenderer } from "./access.js";
3
- import { captureChildScopeTransactionSnapshot, createChildScope, disposeChildScope } from "./child-scope.js";
4
- import { canProxyForItem, createForIndexSignal, createReactiveForItem, haveSameOwnKeys, notifyForSignalReaders, readForItemProperty, removeForParentReaders, scopeDirectlyReadsSource, scopeReadsSource, syncForIndexSignal } from "./for-signals.js";
5
- import "./for-bench.js";
6
- function enqueueForScopeUpdate(parent) {
7
- parent?._enqueueRun?.();
8
- }
9
- const forStatesByScope = /* @__PURE__ */ new WeakMap();
10
- function enqueueForBoundaryScopeCommit() {
11
- const forState = this.blueprintOwner ?? forStatesByScope.get(this);
12
- if (!forState) return;
13
- if (forState._enqueueBoundaryCommit) {
14
- forState._enqueueBoundaryCommit();
15
- return;
16
- }
17
- enqueueForScopeUpdate(forState.parentInstance);
18
- }
19
- function createForOwnedChildScope(forState, key) {
20
- return createChildScope(forState.parentInstance, key, enqueueForBoundaryScopeCommit);
21
- }
22
- function captureForItemTransactionSnapshot(forState, itemInstance) {
23
- const transaction = forState._transaction;
24
- if (!transaction || transaction.itemSnapshots?.has(itemInstance)) return;
25
- if (transaction.collectionSnapshotMode === "reset-empty" || transaction.items.get(itemInstance.key) !== itemInstance) return;
26
- const itemSnapshots = transaction.itemSnapshots ??= /* @__PURE__ */ new Map();
27
- const propertySignals = itemInstance.reactiveItemState?.propertySignals ?? null;
28
- const itemSignal = itemInstance.reactiveItemState?.itemSignal ?? null;
29
- const propertySnapshots = propertySignals && propertySignals.size > 0 ? new Map(Array.from(propertySignals, ([property, signal]) => [property, {
30
- signal,
31
- value: signal.peek(),
32
- hasBeenRead: signal._hasBeenRead === true
33
- }])) : null;
34
- itemSnapshots.set(itemInstance, {
35
- item: itemInstance.item,
36
- itemSignalExists: itemSignal !== null,
37
- itemSignalValue: itemSignal?.peek(),
38
- itemSignalHasBeenRead: itemSignal?._hasBeenRead === true,
39
- indexValue: itemInstance.indexSignal.peek(),
40
- indexHasBeenRead: itemInstance.indexSignal._hasBeenRead === true,
41
- propertySignalStore: propertySignals,
42
- propertySignals: propertySnapshots,
43
- scope: captureChildScopeTransactionSnapshot(itemInstance.scope)
44
- });
45
- }
46
- function captureForFallbackTransactionSnapshot(forState, fallbackScope = forState.fallbackScope) {
47
- const transaction = forState._transaction;
48
- if (!transaction || !fallbackScope || transaction.fallbackScope !== fallbackScope || transaction.fallbackScopeSnapshot) return;
49
- transaction.fallbackScopeSnapshot = captureChildScopeTransactionSnapshot(fallbackScope);
50
- }
51
- function stageForSignalEffect(forState, source, notify, skipInstance = null, skipOwnedBy = null) {
52
- const transaction = forState._transaction;
53
- if (!transaction) return false;
54
- const effects = transaction.signalEffects ??= /* @__PURE__ */ new Map();
55
- const existing = effects.get(source);
56
- if (existing) {
57
- existing.notify ||= notify;
58
- if (existing.skipInstance !== skipInstance) existing.skipInstance = null;
59
- if (existing.skipOwnedBy !== skipOwnedBy) existing.skipOwnedBy = null;
60
- } else effects.set(source, {
61
- parentInstance: forState.parentInstance,
62
- notify,
63
- skipInstance,
64
- skipOwnedBy
65
- });
66
- return true;
67
- }
68
- function syncForItemIndex(forState, itemInstance, nextIndex) {
69
- const indexSignal = itemInstance.indexSignal;
70
- const previousIndex = indexSignal.peek();
71
- if (previousIndex === nextIndex) return false;
72
- if (indexSignal._hasBeenRead !== true) {
73
- const transaction = forState._transaction;
74
- if (transaction) {
75
- const snapshots = transaction.unreadIndexSnapshots ??= /* @__PURE__ */ new Map();
76
- if (!snapshots.has(indexSignal)) snapshots.set(indexSignal, previousIndex);
77
- }
78
- indexSignal.set(nextIndex, false);
79
- return false;
80
- }
81
- captureForItemTransactionSnapshot(forState, itemInstance);
82
- const scopeReadsIndex = scopeReadsSource(itemInstance.scope, indexSignal);
83
- const scopeDirectlyReadsIndex = scopeDirectlyReadsSource(itemInstance.scope, indexSignal);
84
- if (forState._transaction) {
85
- const shouldNotify = indexSignal._hasBeenRead === true;
86
- indexSignal.set(nextIndex, false);
87
- stageForSignalEffect(forState, indexSignal, shouldNotify, scopeReadsIndex ? itemInstance.scope.componentInstance : null);
88
- if (!scopeReadsIndex) return false;
89
- if (scopeDirectlyReadsIndex) rerenderItemInstance(forState, itemInstance, itemInstance.reactiveItem);
90
- else itemInstance.scope.markDirty();
91
- return true;
92
- }
93
- if (!scopeReadsIndex) {
94
- syncForIndexSignal(indexSignal, nextIndex);
95
- return false;
96
- }
97
- indexSignal.set(nextIndex, false);
98
- notifyForSignalReaders(indexSignal, itemInstance.scope.componentInstance);
99
- rerenderItemInstance(forState, itemInstance, itemInstance.reactiveItem);
100
- return true;
101
- }
102
- function materializeItemVnode(forState, key, vnode) {
103
- if (vnode && typeof vnode === "object" && "type" in vnode) {
104
- const vn = vnode;
105
- vn.key = key;
106
- if (forState.parentInstance?.ssr && typeof vn.type === "string") {
107
- if (!vn.props) vn.props = {};
108
- if (vn.props["data-key"] === void 0) vn.props["data-key"] = String(key);
109
- if (vn.props["data-askr-key-kind"] === void 0) vn.props["data-askr-key-kind"] = typeof key;
110
- }
111
- }
112
- }
113
- function renderItemScope(forState, scope, item, indexSignal, key) {
114
- const vnode = scope.render(() => forState.renderFn(item, indexSignal));
115
- materializeItemVnode(forState, key, vnode);
116
- return vnode;
117
- }
118
- function disposeItemInstance(forState, itemInstance, domCleanup) {
119
- const removedDom = itemInstance.scope.dom;
120
- const removedRange = itemInstance.scope.range;
121
- const transaction = forState._transaction;
122
- if (transaction) {
123
- (transaction.removedScopes ??= []).push(itemInstance.scope);
124
- if (removedDom) forState.lastRemovedNodes.push(removedDom);
125
- if (removedRange) forState.lastRemovedRanges.push(removedRange);
126
- return;
127
- }
128
- try {
129
- disposeChildScope(itemInstance.scope);
130
- } catch (err) {
131
- if (isDevelopmentEnvironment()) console.error("[For] Cleanup error:", err);
132
- }
133
- if (!removedDom) return;
134
- if (removedDom instanceof Element) {
135
- if (domCleanup === "teardown") getRuntimeRenderer().teardownNodeSubtree(removedDom);
136
- }
137
- forState.lastRemovedNodes.push(removedDom);
138
- if (removedRange) forState.lastRemovedRanges.push(removedRange);
139
- }
140
- function createItemInstance(key, item, index, forState) {
141
- const indexSignal = createForIndexSignal(index);
142
- const reactiveItemState = canProxyForItem(item) ? createReactiveForItem(item) : null;
143
- const reactiveItem = reactiveItemState?.proxy ?? item;
144
- const scope = createForOwnedChildScope(forState, key);
145
- scope.blueprintOwner = forState;
146
- try {
147
- renderItemScope(forState, scope, reactiveItem, indexSignal, key);
148
- } catch (error) {
149
- disposeChildScope(scope);
150
- throw error;
151
- }
152
- return {
153
- key,
154
- item,
155
- reactiveItem,
156
- reactiveItemState,
157
- indexSignal,
158
- scope
159
- };
160
- }
161
- function rerenderItemInstance(forState, itemInstance, item) {
162
- renderItemScope(forState, itemInstance.scope, item, itemInstance.indexSignal, itemInstance.key);
163
- }
164
- function updateItemInstance(forState, itemInstance, item) {
165
- if (itemInstance.item === item) return false;
166
- captureForItemTransactionSnapshot(forState, itemInstance);
167
- const previousItem = itemInstance.item;
168
- itemInstance.item = item;
169
- const scope = itemInstance.scope;
170
- let scopeReadsChangedSignal = false;
171
- const reactiveItemState = itemInstance.reactiveItemState;
172
- if (!reactiveItemState) {
173
- rerenderItemInstance(forState, itemInstance, item);
174
- return true;
175
- }
176
- const itemSignal = reactiveItemState.itemSignal;
177
- reactiveItemState.currentItem = item;
178
- const propertySignals = reactiveItemState.propertySignals;
179
- const changedPropertySignals = [];
180
- if (propertySignals && propertySignals.size > 0) for (const [prop, propertySignal] of propertySignals) {
181
- const previousValue = readForItemProperty(previousItem, prop);
182
- const nextValue = readForItemProperty(item, prop);
183
- if (Object.is(previousValue, nextValue)) continue;
184
- if (scopeReadsSource(scope, propertySignal)) scopeReadsChangedSignal = true;
185
- changedPropertySignals.push([propertySignal, nextValue]);
186
- }
187
- if (itemSignal && scopeReadsSource(scope, itemSignal)) scopeReadsChangedSignal = true;
188
- let coalescedPropertyChanged = false;
189
- const coalescedProperties = reactiveItemState.coalescedProperties;
190
- if (coalescedProperties !== null) if (Array.isArray(coalescedProperties)) {
191
- for (const property of coalescedProperties) if (!Object.is(readForItemProperty(previousItem, property), readForItemProperty(item, property))) {
192
- coalescedPropertyChanged = true;
193
- break;
194
- }
195
- } else {
196
- coalescedPropertyChanged = !Object.is(readForItemProperty(previousItem, coalescedProperties), readForItemProperty(item, coalescedProperties));
197
- const secondProperty = reactiveItemState.coalescedProperty2;
198
- if (secondProperty !== null && !coalescedPropertyChanged) coalescedPropertyChanged = !Object.is(readForItemProperty(previousItem, secondProperty), readForItemProperty(item, secondProperty));
199
- }
200
- const wholeItemChanged = itemSignal?._hasBeenRead === true && (reactiveItemState.wholeItemRead || coalescedPropertyChanged);
201
- const itemShapeChanged = !wholeItemChanged && changedPropertySignals.length === 0 && !haveSameOwnKeys(previousItem, item);
202
- const notifyReaders = !scopeReadsChangedSignal && (changedPropertySignals.length > 0 || itemShapeChanged || wholeItemChanged);
203
- const visibleChange = scopeReadsChangedSignal || changedPropertySignals.length > 0 || itemShapeChanged || wholeItemChanged;
204
- for (const [propertySignal, nextValue] of changedPropertySignals) if (stageForSignalEffect(forState, propertySignal, notifyReaders, null, itemInstance.scope.componentInstance)) propertySignal.set(nextValue, false);
205
- else {
206
- removeForParentReaders(forState.parentInstance, propertySignal);
207
- propertySignal.set(nextValue, notifyReaders);
208
- }
209
- if (itemSignal && stageForSignalEffect(forState, itemSignal, notifyReaders, null, itemInstance.scope.componentInstance)) itemSignal.set(item, false);
210
- else if (itemSignal) {
211
- removeForParentReaders(forState.parentInstance, itemSignal);
212
- itemSignal.set(item, notifyReaders);
213
- }
214
- if (scopeReadsChangedSignal) if (itemSignal !== null && scopeDirectlyReadsSource(scope, itemSignal) || changedPropertySignals.some(([propertySignal]) => scopeDirectlyReadsSource(scope, propertySignal))) rerenderItemInstance(forState, itemInstance, itemInstance.reactiveItem);
215
- else scope.markDirty();
216
- return visibleChange;
217
- }
218
- const FOR_FALLBACK_SCOPE_KEY = "__for-fallback__";
219
- function disposeFallbackScope(forState, domCleanup) {
220
- const fallbackScope = forState.fallbackScope;
221
- if (!fallbackScope) return;
222
- const removedDom = fallbackScope.dom;
223
- const removedRange = fallbackScope.range;
224
- const transaction = forState._transaction;
225
- if (transaction) {
226
- (transaction.removedScopes ??= []).push(fallbackScope);
227
- if (removedRange) forState.lastRemovedRanges.push(removedRange);
228
- } else disposeChildScope(fallbackScope);
229
- forState.fallbackScope = null;
230
- if (!removedDom) return;
231
- if (removedDom instanceof Element) {
232
- if (domCleanup === "teardown") getRuntimeRenderer().teardownNodeSubtree(removedDom);
233
- }
234
- forState.lastRemovedNodes.push(removedDom);
235
- if (removedRange) forState.lastRemovedRanges.push(removedRange);
236
- }
237
- function renderFallbackScope(forState) {
238
- if (forState.fallback == null || forState.fallback === false) {
239
- if (forState.fallbackScope) disposeFallbackScope(forState, "none");
240
- forState.orderedVNodes = [];
241
- forState.orderedItems = [];
242
- return [];
243
- }
244
- const fallbackScope = forState.fallbackScope ?? createForOwnedChildScope(forState, FOR_FALLBACK_SCOPE_KEY);
245
- if (!forState.fallbackScope) forStatesByScope.set(fallbackScope, forState);
246
- forState.fallbackScope = fallbackScope;
247
- captureForFallbackTransactionSnapshot(forState, fallbackScope);
248
- const fallbackVNode = forState.fallback;
249
- const vnode = fallbackScope.render(() => fallbackVNode);
250
- forState.orderedVNodes = vnode == null || vnode === false ? [] : [vnode];
251
- forState.orderedItems = [];
252
- return forState.orderedVNodes;
253
- }
254
- function disposeAllItems(forState, domCleanup) {
255
- const { items, orderedKeys } = forState;
256
- if (forState._transaction?.collectionSnapshotMode === "preserve-clear") {
257
- const transaction = forState._transaction;
258
- transaction.removeAllItems = true;
259
- for (let index = 0; index < forState.orderedItems.length; index++) {
260
- const removedDom = forState.orderedItems[index]?.scope.dom;
261
- if (removedDom) forState.lastRemovedNodes.push(removedDom);
262
- const range = forState.orderedItems[index]?.scope.range;
263
- if (range) forState.lastRemovedRanges.push(range);
264
- }
265
- forState.items = /* @__PURE__ */ new Map();
266
- forState.orderedKeys = [];
267
- return;
268
- }
269
- for (let index = 0; index < orderedKeys.length; index += 1) {
270
- const key = orderedKeys[index];
271
- const itemInstance = items.get(key);
272
- if (!itemInstance) continue;
273
- disposeItemInstance(forState, itemInstance, domCleanup);
274
- items.delete(key);
275
- }
276
- orderedKeys.length = 0;
277
- forState.orderedKeys = orderedKeys;
278
- }
279
- //#endregion
280
- export { captureForFallbackTransactionSnapshot, captureForItemTransactionSnapshot, createItemInstance, disposeAllItems, disposeFallbackScope, disposeItemInstance, renderFallbackScope, syncForItemIndex, updateItemInstance };
@@ -1,39 +0,0 @@
1
- import { ComponentInstance } from "./component-internal.js";
2
- import { ReadableSource } from "./readable.js";
3
- import { ChildScope } from "./child-scope.js";
4
-
5
- //#region src/runtime/for-signals.d.ts
6
- type ForItemSignal<T> = ReadableSource<T> & (() => T) & {
7
- peek(): T;
8
- set(newValue: T, notifyReaders?: boolean): void;
9
- };
10
- type ForItemPropertySignal = ReadableSource<unknown> & (() => unknown) & {
11
- peek(): unknown;
12
- set(newValue: unknown, notifyReaders?: boolean): void;
13
- };
14
- type ForIndexSignal = ReadableSource<number> & (() => number) & {
15
- peek(): number;
16
- set(newValue: number | ((prev: number) => number), notifyReaders?: boolean): void;
17
- };
18
- declare function notifyForSignalReaders(source: ReadableSource<unknown>, skipInstance?: ComponentInstance | null, skipOwnedBy?: ComponentInstance | null): void;
19
- declare function createForIndexSignal(initialIndex: number): ForIndexSignal;
20
- declare function syncForIndexSignal(indexSignal: ForIndexSignal, nextIndex: number): boolean;
21
- declare function createForItemSignal<T>(initialItem: T): ForItemSignal<T>;
22
- declare function readForItemProperty(item: unknown, prop: PropertyKey): unknown;
23
- declare function haveSameOwnKeys(previousItem: unknown, nextItem: unknown): boolean;
24
- declare function scopeReadsSource(scope: ChildScope, source: ReadableSource<unknown>): boolean;
25
- declare function scopeDirectlyReadsSource(scope: ChildScope, source: ReadableSource<unknown>): boolean;
26
- declare function removeForParentReaders(parentInstance: ComponentInstance | null, source: ReadableSource<unknown>): void;
27
- declare function canProxyForItem(item: unknown): item is object;
28
- interface ReactiveForItemState<T> {
29
- currentItem: T;
30
- itemSignal: ForItemSignal<T> | null;
31
- propertySignals: Map<PropertyKey, ForItemPropertySignal> | null;
32
- coalescedProperties: PropertyKey | PropertyKey[] | null;
33
- coalescedProperty2: PropertyKey | null;
34
- wholeItemRead: boolean;
35
- proxy: T;
36
- }
37
- declare function createReactiveForItem<T>(item: T): ReactiveForItemState<T>;
38
- //#endregion
39
- export { ForIndexSignal, ForItemPropertySignal, ForItemSignal, ReactiveForItemState };
@@ -1,213 +0,0 @@
1
- import { markReactivePropsDirtySource, markReadableDerivedSubscribersDirty, notifyReadableReaders, recordReadableRead, shouldCoalesceFineGrainedItemReads } from "./readable.js";
2
- //#region src/runtime/for-signals.ts
3
- function peekForSignal() {
4
- return this._value;
5
- }
6
- function setForValueSignal(newValue, notifyReaders = true) {
7
- if (Object.is(this._value, newValue)) return;
8
- this._value = newValue;
9
- if (notifyReaders) notifyForSignalReaders(this);
10
- }
11
- function setForIndexValue(newValue, notifyReaders = true) {
12
- const nextValue = typeof newValue === "function" ? newValue(this._value) : newValue;
13
- if (nextValue === this._value) return;
14
- this._value = nextValue;
15
- if (notifyReaders) notifyForSignalReaders(this);
16
- }
17
- function notifyForSignalReaders(source, skipInstance, skipOwnedBy) {
18
- markReadableDerivedSubscribersDirty(source);
19
- markReactivePropsDirtySource(source);
20
- notifyReadableReaders(source, skipInstance, skipOwnedBy);
21
- }
22
- function createForIndexSignal(initialIndex) {
23
- function readIndexSignal() {
24
- const signal = readIndexSignal;
25
- signal._hasBeenRead = true;
26
- recordReadableRead(signal);
27
- return signal._value;
28
- }
29
- const indexSignal = readIndexSignal;
30
- indexSignal._value = initialIndex;
31
- indexSignal.peek = peekForSignal;
32
- indexSignal.set = setForIndexValue;
33
- indexSignal._hasBeenRead = false;
34
- return indexSignal;
35
- }
36
- function syncForIndexSignal(indexSignal, nextIndex) {
37
- if (indexSignal.peek() === nextIndex) return false;
38
- indexSignal.set(nextIndex, indexSignal._hasBeenRead);
39
- return indexSignal._hasBeenRead === true;
40
- }
41
- function createForItemSignal(initialItem) {
42
- function readItemSignal() {
43
- const signal = readItemSignal;
44
- signal._hasBeenRead = true;
45
- recordReadableRead(signal);
46
- return signal._value;
47
- }
48
- const itemSignal = readItemSignal;
49
- itemSignal._value = initialItem;
50
- itemSignal.peek = peekForSignal;
51
- itemSignal.set = setForValueSignal;
52
- itemSignal._hasBeenRead = false;
53
- return itemSignal;
54
- }
55
- function createForItemPropertySignal(initialValue) {
56
- function readPropertySignal() {
57
- const signal = readPropertySignal;
58
- signal._hasBeenRead = true;
59
- recordReadableRead(signal);
60
- return signal._value;
61
- }
62
- const propertySignal = readPropertySignal;
63
- propertySignal._value = initialValue;
64
- propertySignal.peek = peekForSignal;
65
- propertySignal.set = setForValueSignal;
66
- propertySignal._hasBeenRead = false;
67
- return propertySignal;
68
- }
69
- function readForItemProperty(item, prop) {
70
- return Reflect.get(Object(item), prop);
71
- }
72
- function haveSameOwnKeys(previousItem, nextItem) {
73
- const previousKeys = Reflect.ownKeys(Object(previousItem));
74
- const nextKeys = Reflect.ownKeys(Object(nextItem));
75
- if (previousKeys.length !== nextKeys.length) return false;
76
- for (let i = 0; i < previousKeys.length; i += 1) if (previousKeys[i] !== nextKeys[i]) return false;
77
- return true;
78
- }
79
- function scopeReadsSource(scope, source) {
80
- const readers = source._readers;
81
- if (!readers || readers.size === 0) return false;
82
- for (const reader of readers.keys()) {
83
- let current = reader;
84
- while (current) {
85
- if (current === scope.componentInstance) return true;
86
- current = current.parentInstance;
87
- }
88
- }
89
- return false;
90
- }
91
- function scopeDirectlyReadsSource(scope, source) {
92
- return source._readers?.has(scope.componentInstance) ?? false;
93
- }
94
- function isForParentReader(parentInstance, reader) {
95
- let current = parentInstance;
96
- while (current) {
97
- if (current === reader) return true;
98
- current = current.parentInstance;
99
- }
100
- return false;
101
- }
102
- function removeForParentReaders(parentInstance, source) {
103
- const readers = source._readers;
104
- if (!readers || readers.size === 0) return;
105
- for (const reader of readers.keys()) if (isForParentReader(parentInstance, reader)) readers.delete(reader);
106
- }
107
- function getOrCreateForItemPropertySignal(state, prop) {
108
- const item = state.currentItem;
109
- const propertySignals = state.propertySignals ?? (state.propertySignals = /* @__PURE__ */ new Map());
110
- const existingSignal = propertySignals.get(prop);
111
- if (existingSignal) return existingSignal;
112
- const propertySignal = createForItemPropertySignal(readForItemProperty(item, prop));
113
- propertySignals.set(prop, propertySignal);
114
- return propertySignal;
115
- }
116
- function canProxyForItem(item) {
117
- return typeof item === "function" || typeof item === "object" && item !== null && !Array.isArray(item);
118
- }
119
- function createReactiveForItem(item) {
120
- const target = Object.create(null);
121
- const state = {
122
- currentItem: item,
123
- itemSignal: null,
124
- propertySignals: null,
125
- coalescedProperties: null,
126
- coalescedProperty2: null,
127
- wholeItemRead: false,
128
- proxy: void 0
129
- };
130
- target[REACTIVE_FOR_ITEM_STATE] = state;
131
- state.proxy = new Proxy(target, REACTIVE_FOR_ITEM_PROXY_HANDLER);
132
- return state;
133
- }
134
- const REACTIVE_FOR_ITEM_STATE = Symbol("askr.reactive-for-item-state");
135
- function getReactiveForItemState(target) {
136
- return target[REACTIVE_FOR_ITEM_STATE];
137
- }
138
- function getWholeItemSignal(state) {
139
- let signal = state.itemSignal;
140
- if (!signal) {
141
- signal = createForItemSignal(state.currentItem);
142
- state.itemSignal = signal;
143
- }
144
- return signal;
145
- }
146
- const REACTIVE_FOR_ITEM_PROXY_HANDLER = {
147
- get(target, prop, receiver) {
148
- if (prop !== REACTIVE_FOR_ITEM_STATE && prop in target) return Reflect.get(target, prop, receiver);
149
- const metadata = getReactiveForItemState(target);
150
- const currentItem = metadata.currentItem;
151
- if (typeof prop !== "symbol") {
152
- if (shouldCoalesceFineGrainedItemReads()) {
153
- const properties = metadata.coalescedProperties;
154
- if (properties === null) metadata.coalescedProperties = prop;
155
- else if (Array.isArray(properties)) {
156
- if (!properties.includes(prop)) properties.push(prop);
157
- } else if (properties !== prop && metadata.coalescedProperty2 !== prop) if (metadata.coalescedProperty2 === null) metadata.coalescedProperty2 = prop;
158
- else {
159
- metadata.coalescedProperties = [
160
- properties,
161
- metadata.coalescedProperty2,
162
- prop
163
- ];
164
- metadata.coalescedProperty2 = null;
165
- }
166
- let itemSignal = metadata.itemSignal;
167
- if (!itemSignal) {
168
- itemSignal = createForItemSignal(currentItem);
169
- metadata.itemSignal = itemSignal;
170
- }
171
- itemSignal();
172
- return readForItemProperty(currentItem, prop);
173
- }
174
- return getOrCreateForItemPropertySignal(metadata, prop)();
175
- }
176
- metadata.wholeItemRead = true;
177
- recordReadableRead(getWholeItemSignal(metadata));
178
- return Reflect.get(Object(currentItem), prop, receiver);
179
- },
180
- has(target, prop) {
181
- if (prop === REACTIVE_FOR_ITEM_STATE) return false;
182
- const metadata = getReactiveForItemState(target);
183
- metadata.wholeItemRead = true;
184
- recordReadableRead(getWholeItemSignal(metadata));
185
- return prop in target || prop in Object(metadata.currentItem);
186
- },
187
- ownKeys(target) {
188
- const metadata = getReactiveForItemState(target);
189
- metadata.wholeItemRead = true;
190
- recordReadableRead(getWholeItemSignal(metadata));
191
- const keys = /* @__PURE__ */ new Set();
192
- for (const key of Reflect.ownKeys(target)) if (key !== REACTIVE_FOR_ITEM_STATE) keys.add(key);
193
- for (const key of Reflect.ownKeys(Object(metadata.currentItem))) keys.add(key);
194
- return Array.from(keys);
195
- },
196
- getOwnPropertyDescriptor(target, prop) {
197
- if (prop === REACTIVE_FOR_ITEM_STATE) return;
198
- const metadata = getReactiveForItemState(target);
199
- metadata.wholeItemRead = true;
200
- recordReadableRead(getWholeItemSignal(metadata));
201
- const ownDescriptor = Reflect.getOwnPropertyDescriptor(target, prop);
202
- if (ownDescriptor) return ownDescriptor;
203
- return Object.getOwnPropertyDescriptor(Object(metadata.currentItem), prop);
204
- },
205
- getPrototypeOf(target) {
206
- const metadata = getReactiveForItemState(target);
207
- metadata.wholeItemRead = true;
208
- recordReadableRead(getWholeItemSignal(metadata));
209
- return Object.getPrototypeOf(Object(metadata.currentItem));
210
- }
211
- };
212
- //#endregion
213
- export { canProxyForItem, createForIndexSignal, createForItemSignal, createReactiveForItem, haveSameOwnKeys, notifyForSignalReaders, readForItemProperty, removeForParentReaders, scopeDirectlyReadsSource, scopeReadsSource, syncForIndexSignal };
@@ -1,8 +0,0 @@
1
- import { VNode } from "../common/vnode.js";
2
-
3
- //#region src/runtime/for-types.d.ts
4
- type ForEachSource<T> = T[] | (() => T[]);
5
- type ForKeySelector<T> = (item: T, index: number) => string | number;
6
- type ForRenderItem<T> = (item: T, index: () => number) => VNode;
7
- //#endregion
8
- export { ForEachSource, ForKeySelector, ForRenderItem };
@@ -1,4 +0,0 @@
1
- import { ForItemInstance } from "./for-scopes.js";
2
- import { reconcileForItems } from "./for-reconcile.js";
3
- import { ForCommitStrategy, ForItemTransactionSnapshot, ForState, ForTransaction } from "./for-internal.js";
4
- export { ForCommitStrategy, ForItemTransactionSnapshot, ForState, ForTransaction, reconcileForItems };
@@ -1,5 +0,0 @@
1
- import { isBenchMetricScopeActive, recordBenchCounter, recordBenchEvent, recordBenchTiming, withBenchMetricScope } from "./for-bench.js";
2
- import { captureForFallbackTransactionSnapshot, captureForItemTransactionSnapshot } from "./for-scopes.js";
3
- import { reconcileForItems } from "./for-reconcile.js";
4
- import { beginForStateTransaction, clearForDomUpdateState, commitForStateTransaction, createForState, evaluateForState, registerForStateTransaction, rollbackForStateTransaction, useForState } from "./for-internal.js";
5
- export { beginForStateTransaction, captureForFallbackTransactionSnapshot, captureForItemTransactionSnapshot, clearForDomUpdateState, commitForStateTransaction, createForState, evaluateForState, isBenchMetricScopeActive, reconcileForItems, recordBenchCounter, recordBenchEvent, recordBenchTiming, registerForStateTransaction, rollbackForStateTransaction, useForState, withBenchMetricScope };
@@ -1,24 +0,0 @@
1
- import { State, StateSetter, StateTuple, state } from "./state.js";
2
- import { Context, ContextFrame, ContextKey, defineContext, readContext } from "./context.js";
3
- import { cleanupComponent, registerOwnedChildScope, unregisterOwnedChildScope } from "./component-cleanup.js";
4
- import { ComponentInstance } from "./component-internal.js";
5
- import { getSignal } from "./component-scope.js";
6
- import { DerivedSubscriber, FineGrainedReadCollector, ReadableSource } from "./readable.js";
7
- import { Scheduler, SchedulerLane, scheduleEventHandler } from "./scheduler.js";
8
- import { AskrRuntime, AskrRuntimeOptions, RuntimeKeyedReorderDecision, RuntimeRendererHost, createRuntime, getDefaultRuntime } from "./runtime.js";
9
- import { ChildScope, ChildScopeTransactionSnapshot } from "./child-scope.js";
10
- import { ForItemInstance } from "./for-scopes.js";
11
- import { CreateFineGrainedEffectOptions, FineGrainedEffectHandle } from "./effect.js";
12
- import { ForEachSource, ForKeySelector, ForRenderItem } from "./for-types.js";
13
- import { reconcileForItems } from "./for-reconcile.js";
14
- import { ForCommitStrategy, ForItemTransactionSnapshot, ForState, ForTransaction } from "./for-internal.js";
15
- import { CaseState, ControlBoundaryState, ControlTransaction, MatchBranch, ShowState } from "./control.js";
16
- import { Derived, derive } from "./derive.js";
17
- import { DelegatedEventMap } from "./events.js";
18
- import { ExecutionModel } from "./execution-model.js";
19
- import { ResourceResult, resource } from "./resource-operation.js";
20
- import { ActivityPredicate, TimerOptions, capture, documentVisible, on, routeActive, stream, task, timer, windowFocused } from "./lifecycle-operations.js";
21
- import { DefaultPortal, Portal, PortalProps, definePortal } from "./portal.js";
22
- import { Selector, selector } from "./selector.js";
23
- import { ComponentFunction } from "../common/component.js";
24
- export { type ActivityPredicate, AskrRuntime, AskrRuntimeOptions, CaseState, ChildScope, ChildScopeTransactionSnapshot, type ComponentFunction, type ComponentInstance, Context, ContextFrame, ContextKey, ControlBoundaryState, ControlTransaction, CreateFineGrainedEffectOptions, DefaultPortal, DelegatedEventMap, Derived, DerivedSubscriber, ExecutionModel, FineGrainedEffectHandle, FineGrainedReadCollector, ForCommitStrategy, type ForEachSource, ForItemTransactionSnapshot, ForState, ForTransaction, MatchBranch, Portal, PortalProps, ReadableSource, type ResourceResult, RuntimeKeyedReorderDecision, RuntimeRendererHost, Selector, ShowState, State, StateSetter, StateTuple, type TimerOptions, capture, createRuntime, defineContext, definePortal, derive, documentVisible, getDefaultRuntime, getSignal, on, readContext, reconcileForItems, resource, routeActive, scheduleEventHandler, selector, state, stream, task, timer, windowFocused };
@@ -1,33 +0,0 @@
1
- import { addPerfDuration, getPerfMetricsStore, incrementPerfMetric, recordSchedulerFlushTaskCount } from "./perf-metrics.js";
2
- import { scheduleEventHandler } from "./scheduler.js";
3
- import { AskrRuntime, configureRuntimeRenderer, createRuntime, defaultRuntime, getDefaultRuntime } from "./runtime.js";
4
- import { enqueueRuntimeLane, enqueueRuntimeTask, flushRuntimeScheduler, getDefaultRuntimeInstance, getRuntimeFlushVersion, getRuntimeRenderer, getRuntimeScheduler, getRuntimeSchedulerState, isRuntimeSchedulerExecuting, markRuntimeReactivePropsDirtySource, runRuntimeHandlerScope, runRuntimeWithSyncProgress, setRuntimeBulkCommitProbe } from "./access.js";
5
- import { CONTEXT_FRAME_SYMBOL, callWithContext, defineContext, getCurrentContextFrame, getExecutionContextFrame, getVNodeContextFrame, markVNodeTreeWithContextFrame, markVNodeWithContextFrame, readContext, withAsyncResourceContext, withContext } from "./context.js";
6
- import { cleanupReadableSubscriptions, clearDerivedDependencySubscriptions, finalizeReadableSubscriptions, finalizeReadableSubscriptionsFromSnapshot, markReactivePropsDirtySource, markReadableDerivedSubscribersDirty, markReadableUsage, notifyReadableReaders, recordReadableRead, shouldCoalesceFineGrainedItemReads, syncDerivedDependencySubscriptions, withDerivedReadTracking, withFineGrainedReadTracking } from "./readable.js";
7
- import { getDevNamespace, getDevValue, incDevCounter, setDevValue } from "./dev-namespace.js";
8
- import { claimHookIndex, enterDomCommitScope, getCurrentComponentInstance, getCurrentInstance, getCurrentPortalScope, getCurrentStateIndex, getSignal, restoreDomCommitScope, setCurrentComponentInstance } from "./component-scope.js";
9
- import { cleanupComponent, registerOwnedChildScope, unregisterOwnedChildScope } from "./component-cleanup.js";
10
- import { classifyUpdate, commitReorderOnly, enterBulkCommit, exitBulkCommit, isBulkCommitActive, markFastPathApplied, tryRuntimeFastLaneSync } from "./fastlane.js";
11
- import { beginLifecycleCommitBatch, discardLifecycleCommitBatch, drainLifecycleCommitErrors, flushLifecycleCommitBatch, getCurrentLifecycleCommitBatch, registerLifecycleRollback, registerLifecycleTransaction } from "./lifecycle-batch.js";
12
- import "./component-lifecycle.js";
13
- import { captureInlineRenderSnapshot, createComponentInstance, mountComponent, mountInstanceInline, registerCommitOperation, renderComponentInline, renderScopedComponent, warnUnusedStateReads } from "./component-internal.js";
14
- import "./component.js";
15
- import { captureChildScopeTransactionSnapshot, createChildScope, disposeChildScope, rerenderChildScope, restoreChildScopeTransactionSnapshot } from "./child-scope.js";
16
- import { clearCaseDomUpdateState, clearShowDomUpdateState, createCaseState, createShowState, evaluateCaseState, evaluateShowState } from "./control.js";
17
- import { derive } from "./derive.js";
18
- import { createFineGrainedEffect, createOwnedFineGrainedEffect, markFineGrainedEffectsDirtySource } from "./effect.js";
19
- import { createBoundaryReset, reportBoundaryError } from "./error-boundary.js";
20
- import { addDelegatedListener, addFreshDelegatedListener, clearDelegatedHandlersForElement, getDelegatedHandlerForElement, getDelegatedHandlersForElement, isDelegatedEvent, isEventDelegationEnabled, removeDelegatedListener, updateDelegatedListener } from "./events.js";
21
- import { assertExecutionModel, getExecutionModel } from "./execution-model.js";
22
- import { isBenchMetricScopeActive, recordBenchCounter, recordBenchEvent, recordBenchTiming, withBenchMetricScope } from "./for-bench.js";
23
- import { captureForFallbackTransactionSnapshot, captureForItemTransactionSnapshot } from "./for-scopes.js";
24
- import { reconcileForItems } from "./for-reconcile.js";
25
- import { beginForStateTransaction, clearForDomUpdateState, commitForStateTransaction, createForState, evaluateForState, registerForStateTransaction, rollbackForStateTransaction, useForState } from "./for-internal.js";
26
- import "./for.js";
27
- import { state } from "./state.js";
28
- import { resource } from "./resource-operation.js";
29
- import { capture, documentVisible, on, routeActive, stream, task, timer, windowFocused } from "./lifecycle-operations.js";
30
- import "./operations.js";
31
- import { DefaultPortal, Portal, clearDefaultPortalForInstance, definePortal, disposeDefaultPortalScope } from "./portal.js";
32
- import { selector } from "./selector.js";
33
- export { AskrRuntime, CONTEXT_FRAME_SYMBOL, DefaultPortal, Portal, addDelegatedListener, addFreshDelegatedListener, addPerfDuration, assertExecutionModel, beginForStateTransaction, beginLifecycleCommitBatch, callWithContext, capture, captureChildScopeTransactionSnapshot, captureForFallbackTransactionSnapshot, captureForItemTransactionSnapshot, captureInlineRenderSnapshot, claimHookIndex, classifyUpdate, cleanupComponent, cleanupReadableSubscriptions, clearCaseDomUpdateState, clearDefaultPortalForInstance, clearDelegatedHandlersForElement, clearDerivedDependencySubscriptions, clearForDomUpdateState, clearShowDomUpdateState, commitForStateTransaction, commitReorderOnly, configureRuntimeRenderer, createBoundaryReset, createCaseState, createChildScope, createComponentInstance, createFineGrainedEffect, createForState, createOwnedFineGrainedEffect, createRuntime, createShowState, defaultRuntime, defineContext, definePortal, derive, discardLifecycleCommitBatch, disposeChildScope, disposeDefaultPortalScope, documentVisible, drainLifecycleCommitErrors, enqueueRuntimeLane, enqueueRuntimeTask, enterBulkCommit, enterDomCommitScope, evaluateCaseState, evaluateForState, evaluateShowState, exitBulkCommit, finalizeReadableSubscriptions, finalizeReadableSubscriptionsFromSnapshot, flushLifecycleCommitBatch, flushRuntimeScheduler, getCurrentComponentInstance, getCurrentContextFrame, getCurrentInstance, getCurrentLifecycleCommitBatch, getCurrentPortalScope, getCurrentStateIndex, getDefaultRuntime, getDefaultRuntimeInstance, getDelegatedHandlerForElement, getDelegatedHandlersForElement, getDevNamespace, getDevValue, getExecutionContextFrame, getExecutionModel, getPerfMetricsStore, getRuntimeFlushVersion, getRuntimeRenderer, getRuntimeScheduler, getRuntimeSchedulerState, getSignal, getVNodeContextFrame, incDevCounter, incrementPerfMetric, isBenchMetricScopeActive, isBulkCommitActive, isDelegatedEvent, isEventDelegationEnabled, isRuntimeSchedulerExecuting, markFastPathApplied, markFineGrainedEffectsDirtySource, markReactivePropsDirtySource, markReadableDerivedSubscribersDirty, markReadableUsage, markRuntimeReactivePropsDirtySource, markVNodeTreeWithContextFrame, markVNodeWithContextFrame, mountComponent, mountInstanceInline, notifyReadableReaders, on, readContext, reconcileForItems, recordBenchCounter, recordBenchEvent, recordBenchTiming, recordReadableRead, recordSchedulerFlushTaskCount, registerCommitOperation, registerForStateTransaction, registerLifecycleRollback, registerLifecycleTransaction, registerOwnedChildScope, removeDelegatedListener, renderComponentInline, renderScopedComponent, reportBoundaryError, rerenderChildScope, resource, restoreChildScopeTransactionSnapshot, restoreDomCommitScope, rollbackForStateTransaction, routeActive, runRuntimeHandlerScope, runRuntimeWithSyncProgress, scheduleEventHandler, selector, setCurrentComponentInstance, setDevValue, setRuntimeBulkCommitProbe, shouldCoalesceFineGrainedItemReads, state, stream, syncDerivedDependencySubscriptions, task, timer, tryRuntimeFastLaneSync, unregisterOwnedChildScope, updateDelegatedListener, useForState, warnUnusedStateReads, windowFocused, withAsyncResourceContext, withBenchMetricScope, withContext, withDerivedReadTracking, withFineGrainedReadTracking };