@askrjs/askr 0.0.51 → 0.0.53

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (651) hide show
  1. package/README.md +5 -1
  2. package/dist/{runtime/scheduler.js → access-Bg4RJNC8.js} +190 -20
  3. package/dist/actions/index.d.ts +2 -0
  4. package/dist/actions/index.js +103 -0
  5. package/dist/{common/attr-names.js → attr-names-CjhzmHOn.js} +1 -3
  6. package/dist/benchmark.d.ts +7 -4
  7. package/dist/benchmark.js +63 -13
  8. package/dist/boot/index.d.ts +62 -4
  9. package/dist/boot/index.js +1 -194
  10. package/dist/boot-j2KoN6ss.js +647 -0
  11. package/dist/cleanup-COv77su2.js +487 -0
  12. package/dist/component-internal-B3z7GXlD.js +614 -0
  13. package/dist/component-lifecycle-CO4hXlP4.js +357 -0
  14. package/dist/{runtime/component-scope.js → component-scope-CC3cojX9.js} +35 -9
  15. package/dist/component-scope-CvPba6O6.d.ts +12 -0
  16. package/dist/components/index.d.ts +17 -2
  17. package/dist/components/index.js +39 -1
  18. package/dist/compose-ref-Cc_YkUpM.js +92 -0
  19. package/dist/{foundations/utilities/compose-ref.d.ts → compose-ref-Cizq72-x.d.ts} +1 -2
  20. package/dist/control/index.d.ts +1 -3
  21. package/dist/control/index.js +1 -3
  22. package/dist/control-BQvNVfAd.d.ts +436 -0
  23. package/dist/control-BYyLTFyw.js +165 -0
  24. package/dist/control-Bf4Wkdvv.d.ts +9 -0
  25. package/dist/{common/control.js → control-DhFRTIoE.js} +1 -3
  26. package/dist/data/index.d.ts +2 -6
  27. package/dist/data/index.js +4 -5
  28. package/dist/data-DnxnDxD-.js +559 -0
  29. package/dist/{data/data-runtime.js → data-runtime-SJ1BSUvk.js} +35 -36
  30. package/dist/deferred-lKE8uR0z.js +386 -0
  31. package/dist/effect-BwnIvLah.js +260 -0
  32. package/dist/fastlane-Dw8SOBr9.js +343 -0
  33. package/dist/for-internal-BKf_Tnv1.js +1563 -0
  34. package/dist/foundations/icon/index.d.ts +68 -2
  35. package/dist/foundations/icon/index.js +85 -1
  36. package/dist/foundations/index.d.ts +2 -5
  37. package/dist/foundations/index.js +2 -5
  38. package/dist/foundations/interactions/index.d.ts +264 -6
  39. package/dist/foundations/interactions/index.js +1 -6
  40. package/dist/foundations/state/index.d.ts +32 -1
  41. package/dist/foundations/state/index.js +78 -1
  42. package/dist/foundations/structures/index.d.ts +2 -7
  43. package/dist/foundations/structures/index.js +2 -7
  44. package/dist/foundations/utilities/index.d.ts +2 -6
  45. package/dist/foundations/utilities/index.js +2 -5
  46. package/dist/fx/index.d.ts +190 -3
  47. package/dist/fx/index.js +454 -4
  48. package/dist/index-31Uoz_NS.d.ts +239 -0
  49. package/dist/index-Bki2rqcr.d.ts +233 -0
  50. package/dist/index-BnU0NPwM.d.ts +101 -0
  51. package/dist/index-D73jgYx1.d.ts +48 -0
  52. package/dist/{runtime/runtime.d.ts → index-R2JJIbM-.d.ts} +31 -9
  53. package/dist/index-SJXJkssx.d.ts +44 -0
  54. package/dist/index.d.ts +8 -13
  55. package/dist/index.js +150 -17
  56. package/dist/interactions-w7gQN4ha.js +280 -0
  57. package/dist/{data/invalidation-listeners.js → invalidation-listeners-Des3AHYs.js} +1 -3
  58. package/dist/{common/props.d.ts → jsx-CP0gmYwJ.d.ts} +17 -6
  59. package/dist/{common/jsx.js → jsx-CUpRxrLH.js} +1 -3
  60. package/dist/jsx-dev-runtime.d.ts +17 -5
  61. package/dist/jsx-dev-runtime.js +3 -10
  62. package/dist/jsx-runtime-92bV2hSa.d.ts +34 -0
  63. package/dist/jsx-runtime-BVVgDSdq.d.ts +1 -0
  64. package/dist/jsx-runtime.d.ts +3 -22
  65. package/dist/jsx-runtime.js +17 -20
  66. package/dist/{runtime/lifecycle-operations.js → lifecycle-operations-D9va7GOU.js} +9 -11
  67. package/dist/navigate-BVDCzOuB.d.ts +34 -0
  68. package/dist/navigate-CmPLSXyw.js +1449 -0
  69. package/dist/{runtime/portal.js → portal-CyU3Ucf2.js} +124 -35
  70. package/dist/query-registry-CQIT4mXr.js +73 -0
  71. package/dist/{common/render-context.js → render-context-Clw3rFiO.js} +14 -8
  72. package/dist/renderer-DzPjeLby.js +6197 -0
  73. package/dist/resource-operation-CEzfpnDk.js +276 -0
  74. package/dist/resources/index.d.ts +42 -3
  75. package/dist/resources/index.js +3 -4
  76. package/dist/{common/route-activity.js → route-activity-CNJfpwx-.js} +1 -3
  77. package/dist/route-matching-vJpvLVbX.js +515 -0
  78. package/dist/router/index.d.ts +166 -14
  79. package/dist/router/index.js +150 -12
  80. package/dist/{common/router.d.ts → router-CeYvjj5_.d.ts} +72 -29
  81. package/dist/{common/router-internal.js → router-internal-BC0w1_xk.js} +1 -3
  82. package/dist/{runtime/scheduler.d.ts → scheduler-CmLO4Dfm.d.ts} +1 -4
  83. package/dist/{runtime/selector.js → selector-DafVYzV4.js} +35 -20
  84. package/dist/{runtime/snapshot-source.js → snapshot-source-BB42xgwb.js} +1 -3
  85. package/dist/ssg/index.d.ts +252 -4
  86. package/dist/ssg/index.js +857 -1
  87. package/dist/ssr/index.d.ts +225 -8
  88. package/dist/ssr/index.js +3 -6
  89. package/dist/{common/ssr.js → ssr-CbQO5xd3.js} +1 -3
  90. package/dist/ssr-D3t80Rc0.js +1413 -0
  91. package/dist/{runtime/state.js → state-DPl8lffD.js} +4 -8
  92. package/dist/structures-DUB3HchX.js +221 -0
  93. package/dist/testing/index.d.ts +4 -4
  94. package/dist/testing/index.js +2 -7
  95. package/dist/{jsx/types.d.ts → types-DnQVG4ZY.d.ts} +2 -6
  96. package/dist/{foundations/utilities/use-id.js → utilities-C_CGX4Dz.js} +1 -3
  97. package/dist/{ssr/verify-hydration.js → verify-hydration-io9ahUeq.js} +2 -4
  98. package/dist/{common/vnode.js → vnode-CGMJYPMB.js} +2 -4
  99. package/package.json +63 -45
  100. package/dist/bench/components/benchmark-row.d.ts +0 -20
  101. package/dist/bench/components/benchmark-row.d.ts.map +0 -1
  102. package/dist/bench/components/benchmark-row.js +0 -42
  103. package/dist/bench/components/benchmark-row.js.map +0 -1
  104. package/dist/bench/components/benchmark-table.js +0 -25
  105. package/dist/bench/components/benchmark-table.js.map +0 -1
  106. package/dist/benchmark.d.ts.map +0 -1
  107. package/dist/benchmark.js.map +0 -1
  108. package/dist/bin/askr-ssg.d.ts +0 -28
  109. package/dist/bin/askr-ssg.d.ts.map +0 -1
  110. package/dist/bin/askr-ssg.js +0 -171
  111. package/dist/bin/askr-ssg.js.map +0 -1
  112. package/dist/boot/hydration.js +0 -140
  113. package/dist/boot/hydration.js.map +0 -1
  114. package/dist/boot/index.d.ts.map +0 -1
  115. package/dist/boot/index.js.map +0 -1
  116. package/dist/boot/root-lifecycle.d.ts +0 -15
  117. package/dist/boot/root-lifecycle.d.ts.map +0 -1
  118. package/dist/boot/root-lifecycle.js +0 -205
  119. package/dist/boot/root-lifecycle.js.map +0 -1
  120. package/dist/boot/route-startup.js +0 -45
  121. package/dist/boot/route-startup.js.map +0 -1
  122. package/dist/boot/types.d.ts +0 -62
  123. package/dist/boot/types.d.ts.map +0 -1
  124. package/dist/common/attr-names.js.map +0 -1
  125. package/dist/common/component.d.ts +0 -19
  126. package/dist/common/component.d.ts.map +0 -1
  127. package/dist/common/control.d.ts +0 -13
  128. package/dist/common/control.d.ts.map +0 -1
  129. package/dist/common/control.js.map +0 -1
  130. package/dist/common/env.js +0 -47
  131. package/dist/common/env.js.map +0 -1
  132. package/dist/common/error-boundary.d.ts +0 -16
  133. package/dist/common/error-boundary.d.ts.map +0 -1
  134. package/dist/common/invariant.js +0 -17
  135. package/dist/common/invariant.js.map +0 -1
  136. package/dist/common/jsx.d.ts +0 -23
  137. package/dist/common/jsx.d.ts.map +0 -1
  138. package/dist/common/jsx.js.map +0 -1
  139. package/dist/common/logger.js +0 -36
  140. package/dist/common/logger.js.map +0 -1
  141. package/dist/common/promise.js +0 -8
  142. package/dist/common/promise.js.map +0 -1
  143. package/dist/common/props.d.ts.map +0 -1
  144. package/dist/common/render-context.js.map +0 -1
  145. package/dist/common/route-activity.js.map +0 -1
  146. package/dist/common/router-internal.js.map +0 -1
  147. package/dist/common/router.d.ts.map +0 -1
  148. package/dist/common/ssr-errors.d.ts +0 -11
  149. package/dist/common/ssr-errors.d.ts.map +0 -1
  150. package/dist/common/ssr-errors.js +0 -16
  151. package/dist/common/ssr-errors.js.map +0 -1
  152. package/dist/common/ssr.d.ts +0 -42
  153. package/dist/common/ssr.d.ts.map +0 -1
  154. package/dist/common/ssr.js.map +0 -1
  155. package/dist/common/vnode.d.ts +0 -22
  156. package/dist/common/vnode.d.ts.map +0 -1
  157. package/dist/common/vnode.js.map +0 -1
  158. package/dist/components/error-boundary.d.ts +0 -15
  159. package/dist/components/error-boundary.d.ts.map +0 -1
  160. package/dist/components/error-boundary.js +0 -43
  161. package/dist/components/error-boundary.js.map +0 -1
  162. package/dist/components/link.d.ts +0 -68
  163. package/dist/components/link.d.ts.map +0 -1
  164. package/dist/components/link.js +0 -76
  165. package/dist/components/link.js.map +0 -1
  166. package/dist/control/case.d.ts +0 -19
  167. package/dist/control/case.d.ts.map +0 -1
  168. package/dist/control/case.js +0 -70
  169. package/dist/control/case.js.map +0 -1
  170. package/dist/control/for.d.ts +0 -24
  171. package/dist/control/for.d.ts.map +0 -1
  172. package/dist/control/for.js +0 -63
  173. package/dist/control/for.js.map +0 -1
  174. package/dist/control/shared.d.ts +0 -9
  175. package/dist/control/shared.d.ts.map +0 -1
  176. package/dist/control/shared.js +0 -20
  177. package/dist/control/shared.js.map +0 -1
  178. package/dist/control/show.d.ts +0 -15
  179. package/dist/control/show.d.ts.map +0 -1
  180. package/dist/control/show.js +0 -34
  181. package/dist/control/show.js.map +0 -1
  182. package/dist/data/data-runtime.d.ts +0 -28
  183. package/dist/data/data-runtime.d.ts.map +0 -1
  184. package/dist/data/data-runtime.js.map +0 -1
  185. package/dist/data/invalidation-listeners.js.map +0 -1
  186. package/dist/data/invalidation.d.ts +0 -9
  187. package/dist/data/invalidation.d.ts.map +0 -1
  188. package/dist/data/invalidation.js +0 -27
  189. package/dist/data/invalidation.js.map +0 -1
  190. package/dist/data/mutation-cell.d.ts +0 -28
  191. package/dist/data/mutation-cell.d.ts.map +0 -1
  192. package/dist/data/mutation-cell.js +0 -132
  193. package/dist/data/mutation-cell.js.map +0 -1
  194. package/dist/data/query-cell.d.ts +0 -46
  195. package/dist/data/query-cell.d.ts.map +0 -1
  196. package/dist/data/query-cell.js +0 -290
  197. package/dist/data/query-cell.js.map +0 -1
  198. package/dist/data/query-key.js +0 -42
  199. package/dist/data/query-key.js.map +0 -1
  200. package/dist/data/shared.js +0 -21
  201. package/dist/data/shared.js.map +0 -1
  202. package/dist/data/testing.js +0 -2
  203. package/dist/data/types.d.ts +0 -161
  204. package/dist/data/types.d.ts.map +0 -1
  205. package/dist/foundations/icon/icon.d.ts +0 -53
  206. package/dist/foundations/icon/icon.d.ts.map +0 -1
  207. package/dist/foundations/icon/icon.js +0 -88
  208. package/dist/foundations/icon/icon.js.map +0 -1
  209. package/dist/foundations/icon/icon.types.d.ts +0 -22
  210. package/dist/foundations/icon/icon.types.d.ts.map +0 -1
  211. package/dist/foundations/interactions/dismissable.d.ts +0 -72
  212. package/dist/foundations/interactions/dismissable.d.ts.map +0 -1
  213. package/dist/foundations/interactions/dismissable.js +0 -26
  214. package/dist/foundations/interactions/dismissable.js.map +0 -1
  215. package/dist/foundations/interactions/focusable.d.ts +0 -22
  216. package/dist/foundations/interactions/focusable.d.ts.map +0 -1
  217. package/dist/foundations/interactions/focusable.js +0 -18
  218. package/dist/foundations/interactions/focusable.js.map +0 -1
  219. package/dist/foundations/interactions/hoverable.d.ts +0 -26
  220. package/dist/foundations/interactions/hoverable.d.ts.map +0 -1
  221. package/dist/foundations/interactions/hoverable.js +0 -15
  222. package/dist/foundations/interactions/hoverable.js.map +0 -1
  223. package/dist/foundations/interactions/interaction-policy.d.ts +0 -50
  224. package/dist/foundations/interactions/interaction-policy.d.ts.map +0 -1
  225. package/dist/foundations/interactions/interaction-policy.js +0 -122
  226. package/dist/foundations/interactions/interaction-policy.js.map +0 -1
  227. package/dist/foundations/interactions/pressable.d.ts +0 -61
  228. package/dist/foundations/interactions/pressable.d.ts.map +0 -1
  229. package/dist/foundations/interactions/pressable.js +0 -51
  230. package/dist/foundations/interactions/pressable.js.map +0 -1
  231. package/dist/foundations/interactions/roving-focus.d.ts +0 -52
  232. package/dist/foundations/interactions/roving-focus.d.ts.map +0 -1
  233. package/dist/foundations/interactions/roving-focus.js +0 -71
  234. package/dist/foundations/interactions/roving-focus.js.map +0 -1
  235. package/dist/foundations/state/controllable.d.ts +0 -33
  236. package/dist/foundations/state/controllable.d.ts.map +0 -1
  237. package/dist/foundations/state/controllable.js +0 -82
  238. package/dist/foundations/state/controllable.js.map +0 -1
  239. package/dist/foundations/structures/collection.d.ts +0 -52
  240. package/dist/foundations/structures/collection.d.ts.map +0 -1
  241. package/dist/foundations/structures/collection.js +0 -51
  242. package/dist/foundations/structures/collection.js.map +0 -1
  243. package/dist/foundations/structures/layer.d.ts +0 -81
  244. package/dist/foundations/structures/layer.d.ts.map +0 -1
  245. package/dist/foundations/structures/layer.js +0 -81
  246. package/dist/foundations/structures/layer.js.map +0 -1
  247. package/dist/foundations/structures/layout.d.ts +0 -33
  248. package/dist/foundations/structures/layout.d.ts.map +0 -1
  249. package/dist/foundations/structures/layout.js +0 -13
  250. package/dist/foundations/structures/layout.js.map +0 -1
  251. package/dist/foundations/structures/portal.d.ts +0 -2
  252. package/dist/foundations/structures/portal.js +0 -3
  253. package/dist/foundations/structures/presence.d.ts +0 -37
  254. package/dist/foundations/structures/presence.d.ts.map +0 -1
  255. package/dist/foundations/structures/presence.js +0 -39
  256. package/dist/foundations/structures/presence.js.map +0 -1
  257. package/dist/foundations/structures/slot.d.ts +0 -35
  258. package/dist/foundations/structures/slot.d.ts.map +0 -1
  259. package/dist/foundations/structures/slot.js +0 -41
  260. package/dist/foundations/structures/slot.js.map +0 -1
  261. package/dist/foundations/utilities/aria.d.ts +0 -16
  262. package/dist/foundations/utilities/aria.d.ts.map +0 -1
  263. package/dist/foundations/utilities/aria.js +0 -17
  264. package/dist/foundations/utilities/aria.js.map +0 -1
  265. package/dist/foundations/utilities/compose-handlers.d.ts +0 -37
  266. package/dist/foundations/utilities/compose-handlers.d.ts.map +0 -1
  267. package/dist/foundations/utilities/compose-handlers.js +0 -20
  268. package/dist/foundations/utilities/compose-handlers.js.map +0 -1
  269. package/dist/foundations/utilities/compose-ref.d.ts.map +0 -1
  270. package/dist/foundations/utilities/compose-ref.js +0 -18
  271. package/dist/foundations/utilities/compose-ref.js.map +0 -1
  272. package/dist/foundations/utilities/event-types.d.ts +0 -20
  273. package/dist/foundations/utilities/event-types.d.ts.map +0 -1
  274. package/dist/foundations/utilities/merge-props.d.ts +0 -5
  275. package/dist/foundations/utilities/merge-props.d.ts.map +0 -1
  276. package/dist/foundations/utilities/merge-props.js +0 -49
  277. package/dist/foundations/utilities/merge-props.js.map +0 -1
  278. package/dist/foundations/utilities/use-id.d.ts +0 -32
  279. package/dist/foundations/utilities/use-id.d.ts.map +0 -1
  280. package/dist/foundations/utilities/use-id.js.map +0 -1
  281. package/dist/fx/fx.d.ts +0 -33
  282. package/dist/fx/fx.d.ts.map +0 -1
  283. package/dist/fx/fx.js +0 -213
  284. package/dist/fx/fx.js.map +0 -1
  285. package/dist/fx/noop.js +0 -9
  286. package/dist/fx/noop.js.map +0 -1
  287. package/dist/fx/timing.d.ts +0 -159
  288. package/dist/fx/timing.d.ts.map +0 -1
  289. package/dist/fx/timing.js +0 -243
  290. package/dist/fx/timing.js.map +0 -1
  291. package/dist/index.js.map +0 -1
  292. package/dist/jsx/index.d.ts +0 -2
  293. package/dist/jsx/index.js +0 -4
  294. package/dist/jsx/types.d.ts.map +0 -1
  295. package/dist/jsx/types.js +0 -2
  296. package/dist/jsx/utils.d.ts +0 -5
  297. package/dist/jsx/utils.d.ts.map +0 -1
  298. package/dist/jsx/utils.js +0 -19
  299. package/dist/jsx/utils.js.map +0 -1
  300. package/dist/jsx-dev-runtime.d.ts.map +0 -1
  301. package/dist/jsx-dev-runtime.js.map +0 -1
  302. package/dist/jsx-runtime.d.ts.map +0 -1
  303. package/dist/jsx-runtime.js.map +0 -1
  304. package/dist/jsx-runtime2.d.ts +0 -3
  305. package/dist/jsx-runtime2.js +0 -4
  306. package/dist/renderer/attributes.js +0 -232
  307. package/dist/renderer/attributes.js.map +0 -1
  308. package/dist/renderer/boundaries.js +0 -266
  309. package/dist/renderer/boundaries.js.map +0 -1
  310. package/dist/renderer/child-shape.js +0 -85
  311. package/dist/renderer/child-shape.js.map +0 -1
  312. package/dist/renderer/children-fastpath.js +0 -149
  313. package/dist/renderer/children-fastpath.js.map +0 -1
  314. package/dist/renderer/children.js +0 -160
  315. package/dist/renderer/children.js.map +0 -1
  316. package/dist/renderer/cleanup.js +0 -210
  317. package/dist/renderer/cleanup.js.map +0 -1
  318. package/dist/renderer/component-host-cleanup.js +0 -68
  319. package/dist/renderer/component-host-cleanup.js.map +0 -1
  320. package/dist/renderer/component-host-instances.js +0 -65
  321. package/dist/renderer/component-host-instances.js.map +0 -1
  322. package/dist/renderer/component-host.js +0 -247
  323. package/dist/renderer/component-host.js.map +0 -1
  324. package/dist/renderer/dom-host.js +0 -13
  325. package/dist/renderer/dom-host.js.map +0 -1
  326. package/dist/renderer/dom-internal.js +0 -186
  327. package/dist/renderer/dom-internal.js.map +0 -1
  328. package/dist/renderer/dom.js +0 -10
  329. package/dist/renderer/element-children.js +0 -279
  330. package/dist/renderer/element-children.js.map +0 -1
  331. package/dist/renderer/env.js +0 -2
  332. package/dist/renderer/error-boundary-dom.js +0 -78
  333. package/dist/renderer/error-boundary-dom.js.map +0 -1
  334. package/dist/renderer/evaluate-dom-range.js +0 -85
  335. package/dist/renderer/evaluate-dom-range.js.map +0 -1
  336. package/dist/renderer/evaluate-reconcile.js +0 -282
  337. package/dist/renderer/evaluate-reconcile.js.map +0 -1
  338. package/dist/renderer/evaluate.js +0 -84
  339. package/dist/renderer/evaluate.js.map +0 -1
  340. package/dist/renderer/fastpath.js +0 -150
  341. package/dist/renderer/fastpath.js.map +0 -1
  342. package/dist/renderer/for-commit-dom-map.js +0 -83
  343. package/dist/renderer/for-commit-dom-map.js.map +0 -1
  344. package/dist/renderer/for-commit-removal.js +0 -36
  345. package/dist/renderer/for-commit-removal.js.map +0 -1
  346. package/dist/renderer/for-commit-reorder.js +0 -89
  347. package/dist/renderer/for-commit-reorder.js.map +0 -1
  348. package/dist/renderer/for-commit.js +0 -314
  349. package/dist/renderer/for-commit.js.map +0 -1
  350. package/dist/renderer/index.js +0 -38
  351. package/dist/renderer/index.js.map +0 -1
  352. package/dist/renderer/keyed-children.js +0 -32
  353. package/dist/renderer/keyed-children.js.map +0 -1
  354. package/dist/renderer/keyed.js +0 -167
  355. package/dist/renderer/keyed.js.map +0 -1
  356. package/dist/renderer/namespaces.js +0 -23
  357. package/dist/renderer/namespaces.js.map +0 -1
  358. package/dist/renderer/prop-bindings.js +0 -280
  359. package/dist/renderer/prop-bindings.js.map +0 -1
  360. package/dist/renderer/reactive-child-dom.js +0 -133
  361. package/dist/renderer/reactive-child-dom.js.map +0 -1
  362. package/dist/renderer/reactive-child-sources.js +0 -184
  363. package/dist/renderer/reactive-child-sources.js.map +0 -1
  364. package/dist/renderer/reactive-children.js +0 -294
  365. package/dist/renderer/reactive-children.js.map +0 -1
  366. package/dist/renderer/reconcile-commit.js +0 -38
  367. package/dist/renderer/reconcile-commit.js.map +0 -1
  368. package/dist/renderer/reconcile-fastpaths.js +0 -107
  369. package/dist/renderer/reconcile-fastpaths.js.map +0 -1
  370. package/dist/renderer/reconcile-resolution.js +0 -187
  371. package/dist/renderer/reconcile-resolution.js.map +0 -1
  372. package/dist/renderer/reconcile.js +0 -39
  373. package/dist/renderer/reconcile.js.map +0 -1
  374. package/dist/renderer/retained-element-rollback.js +0 -277
  375. package/dist/renderer/retained-element-rollback.js.map +0 -1
  376. package/dist/renderer/stable-patch.js +0 -81
  377. package/dist/renderer/stable-patch.js.map +0 -1
  378. package/dist/renderer/static-reuse.js +0 -96
  379. package/dist/renderer/static-reuse.js.map +0 -1
  380. package/dist/renderer/types.js +0 -2
  381. package/dist/renderer/utils.js +0 -256
  382. package/dist/renderer/utils.js.map +0 -1
  383. package/dist/router/access.js +0 -36
  384. package/dist/router/access.js.map +0 -1
  385. package/dist/router/activity.d.ts +0 -10
  386. package/dist/router/activity.d.ts.map +0 -1
  387. package/dist/router/activity.js +0 -87
  388. package/dist/router/activity.js.map +0 -1
  389. package/dist/router/authoring.d.ts +0 -22
  390. package/dist/router/authoring.d.ts.map +0 -1
  391. package/dist/router/authoring.js +0 -198
  392. package/dist/router/authoring.js.map +0 -1
  393. package/dist/router/internal-types.d.ts +0 -31
  394. package/dist/router/internal-types.d.ts.map +0 -1
  395. package/dist/router/lazy.d.ts +0 -19
  396. package/dist/router/lazy.d.ts.map +0 -1
  397. package/dist/router/lazy.js +0 -52
  398. package/dist/router/lazy.js.map +0 -1
  399. package/dist/router/manifest.d.ts +0 -10
  400. package/dist/router/manifest.d.ts.map +0 -1
  401. package/dist/router/manifest.js +0 -49
  402. package/dist/router/manifest.js.map +0 -1
  403. package/dist/router/match.js +0 -122
  404. package/dist/router/match.js.map +0 -1
  405. package/dist/router/navigate.d.ts +0 -11
  406. package/dist/router/navigate.d.ts.map +0 -1
  407. package/dist/router/navigate.js +0 -76
  408. package/dist/router/navigate.js.map +0 -1
  409. package/dist/router/navigation-registry.d.ts +0 -32
  410. package/dist/router/navigation-registry.d.ts.map +0 -1
  411. package/dist/router/navigation-registry.js +0 -105
  412. package/dist/router/navigation-registry.js.map +0 -1
  413. package/dist/router/navigation-scroll.d.ts +0 -14
  414. package/dist/router/navigation-scroll.d.ts.map +0 -1
  415. package/dist/router/navigation-scroll.js +0 -93
  416. package/dist/router/navigation-scroll.js.map +0 -1
  417. package/dist/router/navigation-targets.d.ts +0 -31
  418. package/dist/router/navigation-targets.d.ts.map +0 -1
  419. package/dist/router/navigation-targets.js +0 -255
  420. package/dist/router/navigation-targets.js.map +0 -1
  421. package/dist/router/policy.d.ts +0 -28
  422. package/dist/router/policy.d.ts.map +0 -1
  423. package/dist/router/policy.js +0 -132
  424. package/dist/router/policy.js.map +0 -1
  425. package/dist/router/rendering.d.ts +0 -10
  426. package/dist/router/rendering.d.ts.map +0 -1
  427. package/dist/router/rendering.js +0 -46
  428. package/dist/router/rendering.js.map +0 -1
  429. package/dist/router/resolution.d.ts +0 -4
  430. package/dist/router/resolution.d.ts.map +0 -1
  431. package/dist/router/resolution.js +0 -86
  432. package/dist/router/resolution.js.map +0 -1
  433. package/dist/router/route-context.js +0 -79
  434. package/dist/router/route-context.js.map +0 -1
  435. package/dist/router/route-matching.d.ts +0 -20
  436. package/dist/router/route-matching.d.ts.map +0 -1
  437. package/dist/router/route-matching.js +0 -175
  438. package/dist/router/route-matching.js.map +0 -1
  439. package/dist/router/route-query.d.ts +0 -17
  440. package/dist/router/route-query.d.ts.map +0 -1
  441. package/dist/router/route-query.js +0 -47
  442. package/dist/router/route-query.js.map +0 -1
  443. package/dist/router/route.d.ts +0 -8
  444. package/dist/router/route.js +0 -10
  445. package/dist/router/store.d.ts +0 -50
  446. package/dist/router/store.d.ts.map +0 -1
  447. package/dist/router/store.js +0 -171
  448. package/dist/router/store.js.map +0 -1
  449. package/dist/router/testing.js +0 -4
  450. package/dist/runtime/access.d.ts +0 -20
  451. package/dist/runtime/access.d.ts.map +0 -1
  452. package/dist/runtime/access.js +0 -45
  453. package/dist/runtime/access.js.map +0 -1
  454. package/dist/runtime/child-scope.d.ts +0 -22
  455. package/dist/runtime/child-scope.d.ts.map +0 -1
  456. package/dist/runtime/child-scope.js +0 -87
  457. package/dist/runtime/child-scope.js.map +0 -1
  458. package/dist/runtime/component-cleanup.d.ts +0 -16
  459. package/dist/runtime/component-cleanup.d.ts.map +0 -1
  460. package/dist/runtime/component-cleanup.js +0 -70
  461. package/dist/runtime/component-cleanup.js.map +0 -1
  462. package/dist/runtime/component-commit.js +0 -165
  463. package/dist/runtime/component-commit.js.map +0 -1
  464. package/dist/runtime/component-facade.d.ts +0 -5
  465. package/dist/runtime/component-facade.js +0 -4
  466. package/dist/runtime/component-internal.d.ts +0 -100
  467. package/dist/runtime/component-internal.d.ts.map +0 -1
  468. package/dist/runtime/component-internal.js +0 -219
  469. package/dist/runtime/component-internal.js.map +0 -1
  470. package/dist/runtime/component-lifecycle.d.ts +0 -49
  471. package/dist/runtime/component-lifecycle.d.ts.map +0 -1
  472. package/dist/runtime/component-lifecycle.js +0 -176
  473. package/dist/runtime/component-lifecycle.js.map +0 -1
  474. package/dist/runtime/component-scope.d.ts +0 -55
  475. package/dist/runtime/component-scope.d.ts.map +0 -1
  476. package/dist/runtime/component-scope.js.map +0 -1
  477. package/dist/runtime/component.d.ts +0 -5
  478. package/dist/runtime/component.js +0 -5
  479. package/dist/runtime/context.d.ts +0 -69
  480. package/dist/runtime/context.d.ts.map +0 -1
  481. package/dist/runtime/context.js +0 -210
  482. package/dist/runtime/context.js.map +0 -1
  483. package/dist/runtime/control.d.ts +0 -43
  484. package/dist/runtime/control.d.ts.map +0 -1
  485. package/dist/runtime/control.js +0 -126
  486. package/dist/runtime/control.js.map +0 -1
  487. package/dist/runtime/derive.d.ts +0 -17
  488. package/dist/runtime/derive.d.ts.map +0 -1
  489. package/dist/runtime/derive.js +0 -142
  490. package/dist/runtime/derive.js.map +0 -1
  491. package/dist/runtime/dev-namespace.d.ts +0 -31
  492. package/dist/runtime/dev-namespace.d.ts.map +0 -1
  493. package/dist/runtime/dev-namespace.js +0 -57
  494. package/dist/runtime/dev-namespace.js.map +0 -1
  495. package/dist/runtime/effect.d.ts +0 -32
  496. package/dist/runtime/effect.d.ts.map +0 -1
  497. package/dist/runtime/effect.js +0 -177
  498. package/dist/runtime/effect.js.map +0 -1
  499. package/dist/runtime/error-boundary.d.ts +0 -5
  500. package/dist/runtime/error-boundary.d.ts.map +0 -1
  501. package/dist/runtime/error-boundary.js +0 -31
  502. package/dist/runtime/error-boundary.js.map +0 -1
  503. package/dist/runtime/events.d.ts +0 -58
  504. package/dist/runtime/events.d.ts.map +0 -1
  505. package/dist/runtime/events.js +0 -204
  506. package/dist/runtime/events.js.map +0 -1
  507. package/dist/runtime/execution-model.d.ts +0 -7
  508. package/dist/runtime/execution-model.d.ts.map +0 -1
  509. package/dist/runtime/execution-model.js +0 -15
  510. package/dist/runtime/execution-model.js.map +0 -1
  511. package/dist/runtime/fastlane.d.ts +0 -34
  512. package/dist/runtime/fastlane.d.ts.map +0 -1
  513. package/dist/runtime/fastlane.js +0 -175
  514. package/dist/runtime/fastlane.js.map +0 -1
  515. package/dist/runtime/for-bench.d.ts +0 -41
  516. package/dist/runtime/for-bench.d.ts.map +0 -1
  517. package/dist/runtime/for-bench.js +0 -171
  518. package/dist/runtime/for-bench.js.map +0 -1
  519. package/dist/runtime/for-internal.d.ts +0 -43
  520. package/dist/runtime/for-internal.d.ts.map +0 -1
  521. package/dist/runtime/for-internal.js +0 -98
  522. package/dist/runtime/for-internal.js.map +0 -1
  523. package/dist/runtime/for-reconcile.d.ts +0 -8
  524. package/dist/runtime/for-reconcile.d.ts.map +0 -1
  525. package/dist/runtime/for-reconcile.js +0 -389
  526. package/dist/runtime/for-reconcile.js.map +0 -1
  527. package/dist/runtime/for-scopes.d.ts +0 -26
  528. package/dist/runtime/for-scopes.d.ts.map +0 -1
  529. package/dist/runtime/for-scopes.js +0 -160
  530. package/dist/runtime/for-scopes.js.map +0 -1
  531. package/dist/runtime/for-signals.d.ts +0 -30
  532. package/dist/runtime/for-signals.d.ts.map +0 -1
  533. package/dist/runtime/for-signals.js +0 -139
  534. package/dist/runtime/for-signals.js.map +0 -1
  535. package/dist/runtime/for-types.d.ts +0 -9
  536. package/dist/runtime/for-types.d.ts.map +0 -1
  537. package/dist/runtime/for.d.ts +0 -4
  538. package/dist/runtime/for.js +0 -5
  539. package/dist/runtime/index.d.ts +0 -24
  540. package/dist/runtime/index.js +0 -31
  541. package/dist/runtime/lifecycle-operations.d.ts +0 -31
  542. package/dist/runtime/lifecycle-operations.d.ts.map +0 -1
  543. package/dist/runtime/lifecycle-operations.js.map +0 -1
  544. package/dist/runtime/operations.d.ts +0 -3
  545. package/dist/runtime/operations.js +0 -3
  546. package/dist/runtime/perf-metrics.d.ts +0 -26
  547. package/dist/runtime/perf-metrics.d.ts.map +0 -1
  548. package/dist/runtime/perf-metrics.js +0 -70
  549. package/dist/runtime/perf-metrics.js.map +0 -1
  550. package/dist/runtime/portal.d.ts +0 -22
  551. package/dist/runtime/portal.d.ts.map +0 -1
  552. package/dist/runtime/portal.js.map +0 -1
  553. package/dist/runtime/readable.d.ts +0 -29
  554. package/dist/runtime/readable.d.ts.map +0 -1
  555. package/dist/runtime/readable.js +0 -159
  556. package/dist/runtime/readable.js.map +0 -1
  557. package/dist/runtime/resource-cell.js +0 -114
  558. package/dist/runtime/resource-cell.js.map +0 -1
  559. package/dist/runtime/resource-operation.d.ts +0 -13
  560. package/dist/runtime/resource-operation.d.ts.map +0 -1
  561. package/dist/runtime/resource-operation.js +0 -170
  562. package/dist/runtime/resource-operation.js.map +0 -1
  563. package/dist/runtime/runtime.d.ts.map +0 -1
  564. package/dist/runtime/runtime.js +0 -59
  565. package/dist/runtime/runtime.js.map +0 -1
  566. package/dist/runtime/scheduler.d.ts.map +0 -1
  567. package/dist/runtime/scheduler.js.map +0 -1
  568. package/dist/runtime/selector-store.js +0 -24
  569. package/dist/runtime/selector-store.js.map +0 -1
  570. package/dist/runtime/selector.d.ts +0 -11
  571. package/dist/runtime/selector.d.ts.map +0 -1
  572. package/dist/runtime/selector.js.map +0 -1
  573. package/dist/runtime/snapshot-source.d.ts +0 -10
  574. package/dist/runtime/snapshot-source.d.ts.map +0 -1
  575. package/dist/runtime/snapshot-source.js.map +0 -1
  576. package/dist/runtime/state.d.ts +0 -55
  577. package/dist/runtime/state.d.ts.map +0 -1
  578. package/dist/runtime/state.js.map +0 -1
  579. package/dist/ssg/batch-render.js +0 -103
  580. package/dist/ssg/batch-render.js.map +0 -1
  581. package/dist/ssg/create-static-gen.d.ts +0 -64
  582. package/dist/ssg/create-static-gen.d.ts.map +0 -1
  583. package/dist/ssg/create-static-gen.js +0 -199
  584. package/dist/ssg/create-static-gen.js.map +0 -1
  585. package/dist/ssg/generate-metadata.js +0 -94
  586. package/dist/ssg/generate-metadata.js.map +0 -1
  587. package/dist/ssg/generation-plan.js +0 -70
  588. package/dist/ssg/generation-plan.js.map +0 -1
  589. package/dist/ssg/incremental-manifest.js +0 -56
  590. package/dist/ssg/incremental-manifest.js.map +0 -1
  591. package/dist/ssg/resolve-ssg-data.js +0 -105
  592. package/dist/ssg/resolve-ssg-data.js.map +0 -1
  593. package/dist/ssg/route-utils.js +0 -24
  594. package/dist/ssg/route-utils.js.map +0 -1
  595. package/dist/ssg/static-routes.js +0 -102
  596. package/dist/ssg/static-routes.js.map +0 -1
  597. package/dist/ssg/types.d.ts +0 -189
  598. package/dist/ssg/types.d.ts.map +0 -1
  599. package/dist/ssg/write-static-files.js +0 -73
  600. package/dist/ssg/write-static-files.js.map +0 -1
  601. package/dist/ssr/attrs.js +0 -94
  602. package/dist/ssr/attrs.js.map +0 -1
  603. package/dist/ssr/boundaries.js +0 -113
  604. package/dist/ssr/boundaries.js.map +0 -1
  605. package/dist/ssr/component-runtime.js +0 -111
  606. package/dist/ssr/component-runtime.js.map +0 -1
  607. package/dist/ssr/context.d.ts +0 -50
  608. package/dist/ssr/context.d.ts.map +0 -1
  609. package/dist/ssr/context.js +0 -91
  610. package/dist/ssr/context.js.map +0 -1
  611. package/dist/ssr/errors.d.ts +0 -10
  612. package/dist/ssr/errors.d.ts.map +0 -1
  613. package/dist/ssr/errors.js +0 -14
  614. package/dist/ssr/errors.js.map +0 -1
  615. package/dist/ssr/escape.js +0 -193
  616. package/dist/ssr/escape.js.map +0 -1
  617. package/dist/ssr/hydration-data.js +0 -10
  618. package/dist/ssr/hydration-data.js.map +0 -1
  619. package/dist/ssr/hydration-verify.d.ts +0 -12
  620. package/dist/ssr/hydration-verify.d.ts.map +0 -1
  621. package/dist/ssr/hydration-verify.js +0 -144
  622. package/dist/ssr/hydration-verify.js.map +0 -1
  623. package/dist/ssr/index-internal.d.ts +0 -15
  624. package/dist/ssr/index-internal.d.ts.map +0 -1
  625. package/dist/ssr/index-internal.js +0 -19
  626. package/dist/ssr/index-internal.js.map +0 -1
  627. package/dist/ssr/render-keys.js +0 -16
  628. package/dist/ssr/render-keys.js.map +0 -1
  629. package/dist/ssr/render-resolved.d.ts +0 -20
  630. package/dist/ssr/render-resolved.d.ts.map +0 -1
  631. package/dist/ssr/render-resolved.js +0 -35
  632. package/dist/ssr/render-resolved.js.map +0 -1
  633. package/dist/ssr/render-sync.d.ts +0 -21
  634. package/dist/ssr/render-sync.d.ts.map +0 -1
  635. package/dist/ssr/render-sync.js +0 -275
  636. package/dist/ssr/render-sync.js.map +0 -1
  637. package/dist/ssr/route-policy-resolution.js +0 -78
  638. package/dist/ssr/route-policy-resolution.js.map +0 -1
  639. package/dist/ssr/route-render.d.ts +0 -77
  640. package/dist/ssr/route-render.d.ts.map +0 -1
  641. package/dist/ssr/route-render.js +0 -120
  642. package/dist/ssr/route-render.js.map +0 -1
  643. package/dist/ssr/sink.d.ts +0 -26
  644. package/dist/ssr/sink.d.ts.map +0 -1
  645. package/dist/ssr/sink.js +0 -86
  646. package/dist/ssr/sink.js.map +0 -1
  647. package/dist/ssr/types.d.ts +0 -23
  648. package/dist/ssr/types.d.ts.map +0 -1
  649. package/dist/ssr/verify-hydration.js.map +0 -1
  650. package/dist/testing/index.d.ts.map +0 -1
  651. package/dist/testing/index.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"for-scopes.js","names":[],"sources":["../../src/runtime/for-scopes.ts"],"sourcesContent":["/**\n * For item and fallback child-scope ownership.\n */\n\nimport type { DOMElement, VNode } from '../common/vnode';\nimport { isDevelopmentEnvironment } from '../common/env';\nimport type { ComponentInstance } from './component';\nimport {\n createChildScope,\n disposeChildScope,\n type ChildScope,\n} from './child-scope';\nimport {\n canProxyForItem,\n createForIndexSignal,\n createForItemSignal,\n createReactiveForItem,\n haveSameOwnKeys,\n notifyForSignalReaders,\n readForItemProperty,\n removeForParentReaders,\n scopeReadsSource,\n syncForIndexSignal,\n type ForIndexSignal,\n type ForItemPropertySignal,\n type ForItemSignal,\n} from './for-signals';\nimport { getRuntimeRenderer } from './access';\nimport { recordBenchEvent } from './for-bench';\nimport type { ForState } from './for-internal';\n\nexport interface ForItemInstance<T> {\n key: string | number;\n item: T;\n reactiveItem: T;\n itemSignal: ForItemSignal<T> | null;\n itemPropertySignals: Map<PropertyKey, ForItemPropertySignal> | null;\n indexSignal: ForIndexSignal;\n scope: ChildScope;\n}\n\nexport type RemovedDomCleanupMode = 'none' | 'teardown' | 'full-clear';\n\nfunction enqueueForScopeUpdate(parent: ComponentInstance | null): void {\n parent?._enqueueRun?.();\n}\n\nexport function syncForItemIndex<T>(\n forState: ForState<T>,\n itemInstance: ForItemInstance<T>,\n nextIndex: number\n): boolean {\n const indexSignal = itemInstance.indexSignal;\n if (indexSignal.peek() === nextIndex) {\n return false;\n }\n\n const scopeReadsIndex = scopeReadsSource(itemInstance.scope, indexSignal);\n if (!scopeReadsIndex) {\n syncForIndexSignal(indexSignal, nextIndex);\n return false;\n }\n\n indexSignal.set(nextIndex, false);\n notifyForSignalReaders(indexSignal, itemInstance.scope.componentInstance);\n\n rerenderItemInstance(forState, itemInstance, itemInstance.reactiveItem);\n\n return true;\n}\n\nfunction materializeItemVnode(\n key: string | number,\n vnode: VNode | undefined\n): void {\n if (vnode && typeof vnode === 'object' && 'type' in vnode) {\n const vn = vnode as DOMElement;\n vn.key = key;\n\n if (typeof vn.type === 'string') {\n if (!vn.props) vn.props = {};\n if (vn.props['data-key'] === undefined) {\n vn.props['data-key'] = String(key);\n }\n }\n }\n}\n\nfunction renderItemScope<T>(\n forState: ForState<T>,\n scope: ChildScope,\n item: T,\n indexSignal: ForIndexSignal,\n key: string | number\n): VNode {\n recordBenchEvent('rowFactory');\n const vnode = scope.render(() => forState.renderFn(item, indexSignal));\n materializeItemVnode(key, vnode);\n return vnode;\n}\n\nexport function disposeItemInstance<T>(\n forState: ForState<T>,\n itemInstance: ForItemInstance<T>,\n domCleanup: RemovedDomCleanupMode\n): void {\n recordBenchEvent('itemRemoved');\n const removedDom = itemInstance.scope.dom;\n\n try {\n disposeChildScope(itemInstance.scope);\n } catch (err) {\n if (isDevelopmentEnvironment()) {\n console.error('[For] Cleanup error:', err);\n }\n }\n\n if (!removedDom) {\n return;\n }\n\n if (removedDom instanceof Element) {\n if (domCleanup === 'teardown') {\n getRuntimeRenderer().teardownNodeSubtree(removedDom);\n }\n }\n\n forState.lastRemovedNodes.push(removedDom);\n}\n\nexport function createItemInstance<T>(\n key: string | number,\n item: T,\n index: number,\n forState: ForState<T>\n): ForItemInstance<T> {\n recordBenchEvent('itemCreated');\n\n // Create index signal manually without going through state() hook\n // to avoid hook order violations (each For item creates its signal dynamically)\n const indexSignal = createForIndexSignal(index);\n const itemSignal = canProxyForItem(item) ? createForItemSignal(item) : null;\n const itemPropertySignals = itemSignal\n ? new Map<PropertyKey, ForItemPropertySignal>()\n : null;\n const reactiveItem =\n itemSignal && itemPropertySignals\n ? createReactiveForItem(itemSignal, itemPropertySignals)\n : item;\n const scope = createChildScope(forState.parentInstance, key, () => {\n if (forState._enqueueBoundaryCommit) {\n forState._enqueueBoundaryCommit();\n return;\n }\n\n enqueueForScopeUpdate(forState.parentInstance);\n });\n\n renderItemScope(forState, scope, reactiveItem, indexSignal, key);\n\n return {\n key,\n item,\n reactiveItem,\n itemSignal,\n itemPropertySignals,\n indexSignal,\n scope,\n };\n}\n\nfunction rerenderItemInstance<T>(\n forState: ForState<T>,\n itemInstance: ForItemInstance<T>,\n item: T\n): void {\n renderItemScope(\n forState,\n itemInstance.scope,\n item,\n itemInstance.indexSignal,\n itemInstance.key\n );\n}\n\nexport function updateItemInstance<T>(\n forState: ForState<T>,\n itemInstance: ForItemInstance<T>,\n item: T\n): boolean {\n if (itemInstance.item === item) {\n return false;\n }\n\n const previousItem = itemInstance.item;\n itemInstance.item = item;\n\n const scope = itemInstance.scope;\n let scopeReadsChangedSignal = false;\n const itemSignal = itemInstance.itemSignal;\n if (!itemSignal) {\n rerenderItemInstance(forState, itemInstance, item);\n return true;\n }\n\n const propertySignals = itemInstance.itemPropertySignals;\n const changedPropertySignals: Array<[ForItemPropertySignal, unknown]> = [];\n if (propertySignals && propertySignals.size > 0) {\n for (const [prop, propertySignal] of propertySignals) {\n const previousValue = readForItemProperty(previousItem, prop);\n const nextValue = readForItemProperty(item, prop);\n if (Object.is(previousValue, nextValue)) {\n continue;\n }\n\n if (scopeReadsSource(scope, propertySignal)) {\n scopeReadsChangedSignal = true;\n }\n\n changedPropertySignals.push([propertySignal, nextValue]);\n }\n }\n\n if (scopeReadsSource(scope, itemSignal)) {\n scopeReadsChangedSignal = true;\n }\n\n const itemShapeChanged =\n changedPropertySignals.length === 0 && !haveSameOwnKeys(previousItem, item);\n const notifyReaders =\n !scopeReadsChangedSignal &&\n (changedPropertySignals.length > 0 || itemShapeChanged);\n const visibleChange =\n scopeReadsChangedSignal ||\n changedPropertySignals.length > 0 ||\n itemShapeChanged;\n for (const [propertySignal, nextValue] of changedPropertySignals) {\n removeForParentReaders(forState.parentInstance, propertySignal);\n propertySignal.set(nextValue, notifyReaders);\n }\n removeForParentReaders(forState.parentInstance, itemSignal);\n itemSignal.set(item, notifyReaders);\n\n if (scopeReadsChangedSignal) {\n rerenderItemInstance(forState, itemInstance, itemInstance.reactiveItem);\n }\n\n return visibleChange;\n}\n\nconst FOR_FALLBACK_SCOPE_KEY = '__for-fallback__';\n\nexport function disposeFallbackScope<T>(\n forState: ForState<T>,\n domCleanup: RemovedDomCleanupMode\n): void {\n const fallbackScope = forState.fallbackScope;\n if (!fallbackScope) {\n return;\n }\n\n const removedDom = fallbackScope.dom;\n disposeChildScope(fallbackScope);\n forState.fallbackScope = null;\n\n if (!removedDom) {\n return;\n }\n\n if (removedDom instanceof Element) {\n if (domCleanup === 'teardown') {\n getRuntimeRenderer().teardownNodeSubtree(removedDom);\n }\n }\n\n forState.lastRemovedNodes.push(removedDom);\n}\n\nexport function renderFallbackScope<T>(forState: ForState<T>): VNode[] {\n if (forState.fallback == null || forState.fallback === false) {\n if (forState.fallbackScope) {\n disposeFallbackScope(forState, 'none');\n }\n forState.orderedVNodes = [];\n forState.orderedItems = [];\n return [];\n }\n\n const fallbackScope =\n forState.fallbackScope ??\n createChildScope(forState.parentInstance, FOR_FALLBACK_SCOPE_KEY, () => {\n if (forState._enqueueBoundaryCommit) {\n forState._enqueueBoundaryCommit();\n return;\n }\n\n enqueueForScopeUpdate(forState.parentInstance);\n });\n forState.fallbackScope = fallbackScope;\n\n const vnode = fallbackScope.render(() => forState.fallback as VNode);\n forState.orderedVNodes = vnode == null || vnode === false ? [] : [vnode];\n forState.orderedItems = [];\n return forState.orderedVNodes;\n}\n\nexport function disposeAllItems<T>(\n forState: ForState<T>,\n domCleanup: RemovedDomCleanupMode\n): void {\n const { items, orderedKeys } = forState;\n for (let index = 0; index < orderedKeys.length; index += 1) {\n const key = orderedKeys[index];\n const itemInstance = items.get(key);\n if (!itemInstance) {\n continue;\n }\n disposeItemInstance(forState, itemInstance, domCleanup);\n items.delete(key);\n }\n orderedKeys.length = 0;\n forState.orderedKeys = orderedKeys;\n}\n"],"mappings":"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"}
@@ -1,30 +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): 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 removeForParentReaders(parentInstance: ComponentInstance | null, source: ReadableSource<unknown>): void;
26
- declare function canProxyForItem(item: unknown): item is object;
27
- declare function createReactiveForItem<T>(itemSignal: ForItemSignal<T>, propertySignals: Map<PropertyKey, ForItemPropertySignal>): T;
28
- //#endregion
29
- export { ForIndexSignal, ForItemPropertySignal, ForItemSignal };
30
- //# sourceMappingURL=for-signals.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"for-signals.d.ts","names":[],"sources":["../../src/runtime/for-signals.ts"],"mappings":";;;;;KAUY,aAAA,MAAmB,cAAA,CAAe,CAAA,WACrC,CAAA;EACL,IAAA,IAAQ,CAAA;EACR,GAAA,CAAI,QAAA,EAAU,CAAA,EAAG,aAAA;AAAA;AAAA,KAGT,qBAAA,GAAwB,cAAc;EAE9C,IAAA;EACA,GAAA,CAAI,QAAA,WAAmB,aAAA;AAAA;AAAA,KAGf,cAAA,GAAiB,cAAc;EAEvC,IAAA;EACA,GAAA,CACE,QAAA,aAAqB,IAAA,sBACrB,aAAA;AAAA;AAAA,iBAIU,sBAAA,CACd,MAAA,EAAQ,cAAA,WACR,YAAA,GAAe,iBAAiB;AAAA,iBAOlB,oBAAA,CAAqB,YAAA,WAAuB,cAAc;AAAA,iBA6B1D,kBAAA,CACd,WAAA,EAAa,cAAc,EAC3B,SAAA;AAAA,iBAUc,mBAAA,IAAuB,WAAA,EAAa,CAAA,GAAI,aAAA,CAAc,CAAA;AAAA,iBAwDtD,mBAAA,CAAoB,IAAA,WAAe,IAAA,EAAM,WAAW;AAAA,iBAIpD,eAAA,CACd,YAAA,WACA,QAAiB;AAAA,iBAkBH,gBAAA,CACd,KAAA,EAAO,UAAA,EACP,MAAA,EAAQ,cAAc;AAAA,iBAqBR,sBAAA,CACd,cAAA,EAAgB,iBAAA,SAChB,MAAA,EAAQ,cAAc;AAAA,iBA+BR,eAAA,CAAgB,IAAA,YAAgB,IAAI;AAAA,iBAOpC,qBAAA,IACd,UAAA,EAAY,aAAA,CAAc,CAAA,GAC1B,eAAA,EAAiB,GAAA,CAAI,WAAA,EAAa,qBAAA,IACjC,CAAA"}
@@ -1,139 +0,0 @@
1
- import { markReactivePropsDirtySource, markReadableDerivedSubscribersDirty, notifyReadableReaders, recordReadableRead } from "./readable.js";
2
- //#region src/runtime/for-signals.ts
3
- function notifyForSignalReaders(source, skipInstance) {
4
- markReadableDerivedSubscribersDirty(source);
5
- markReactivePropsDirtySource(source);
6
- notifyReadableReaders(source, skipInstance);
7
- }
8
- function createForIndexSignal(initialIndex) {
9
- let indexValue = initialIndex;
10
- const readers = /* @__PURE__ */ new Map();
11
- const indexSignal = (() => {
12
- indexSignal._hasBeenRead = true;
13
- recordReadableRead(indexSignal);
14
- return indexValue;
15
- });
16
- indexSignal._readers = readers;
17
- indexSignal.peek = () => indexValue;
18
- indexSignal.set = (newValue, notifyReaders = true) => {
19
- const nextValue = typeof newValue === "function" ? newValue(indexValue) : newValue;
20
- if (nextValue !== indexValue) {
21
- indexValue = nextValue;
22
- if (notifyReaders) notifyForSignalReaders(indexSignal);
23
- }
24
- };
25
- indexSignal._hasBeenRead = false;
26
- return indexSignal;
27
- }
28
- function syncForIndexSignal(indexSignal, nextIndex) {
29
- if (indexSignal.peek() === nextIndex) return false;
30
- indexSignal.set(nextIndex, indexSignal._hasBeenRead);
31
- return indexSignal._hasBeenRead === true;
32
- }
33
- function createForItemSignal(initialItem) {
34
- let itemValue = initialItem;
35
- const readers = /* @__PURE__ */ new Map();
36
- const itemSignal = (() => {
37
- itemSignal._hasBeenRead = true;
38
- recordReadableRead(itemSignal);
39
- return itemValue;
40
- });
41
- itemSignal._readers = readers;
42
- itemSignal.peek = () => itemValue;
43
- itemSignal.set = (newValue, notifyReaders = true) => {
44
- if (Object.is(itemValue, newValue)) return;
45
- itemValue = newValue;
46
- if (notifyReaders) notifyForSignalReaders(itemSignal);
47
- };
48
- itemSignal._hasBeenRead = false;
49
- return itemSignal;
50
- }
51
- function createForItemPropertySignal(initialValue) {
52
- let propertyValue = initialValue;
53
- const readers = /* @__PURE__ */ new Map();
54
- const propertySignal = (() => {
55
- propertySignal._hasBeenRead = true;
56
- recordReadableRead(propertySignal);
57
- return propertyValue;
58
- });
59
- propertySignal._readers = readers;
60
- propertySignal.peek = () => propertyValue;
61
- propertySignal.set = (newValue, notifyReaders = true) => {
62
- if (Object.is(propertyValue, newValue)) return;
63
- propertyValue = newValue;
64
- if (notifyReaders) notifyForSignalReaders(propertySignal);
65
- };
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
- return source._readers?.has(scope.componentInstance) ?? false;
81
- }
82
- function isForParentReader(parentInstance, reader) {
83
- let current = parentInstance;
84
- while (current) {
85
- if (current === reader) return true;
86
- current = current.parentInstance;
87
- }
88
- return false;
89
- }
90
- function removeForParentReaders(parentInstance, source) {
91
- const readers = source._readers;
92
- if (!readers || readers.size === 0) return;
93
- for (const reader of readers.keys()) if (isForParentReader(parentInstance, reader)) readers.delete(reader);
94
- }
95
- function getOrCreateForItemPropertySignal(item, propertySignals, prop) {
96
- const existingSignal = propertySignals.get(prop);
97
- if (existingSignal) return existingSignal;
98
- const propertySignal = createForItemPropertySignal(readForItemProperty(item, prop));
99
- propertySignals.set(prop, propertySignal);
100
- return propertySignal;
101
- }
102
- function canProxyForItem(item) {
103
- return typeof item === "function" || typeof item === "object" && item !== null && !Array.isArray(item);
104
- }
105
- function createReactiveForItem(itemSignal, propertySignals) {
106
- return new Proxy(Object.create(null), {
107
- get(target, prop, receiver) {
108
- if (Reflect.getOwnPropertyDescriptor(target, prop)) return Reflect.get(target, prop, receiver);
109
- const currentItem = itemSignal.peek();
110
- if (typeof prop !== "symbol") return getOrCreateForItemPropertySignal(currentItem, propertySignals, prop)();
111
- recordReadableRead(itemSignal);
112
- return Reflect.get(Object(currentItem), prop, receiver);
113
- },
114
- has(target, prop) {
115
- recordReadableRead(itemSignal);
116
- return prop in target || prop in Object(itemSignal.peek());
117
- },
118
- ownKeys(target) {
119
- recordReadableRead(itemSignal);
120
- const keys = new Set(Reflect.ownKeys(target));
121
- for (const key of Reflect.ownKeys(Object(itemSignal.peek()))) keys.add(key);
122
- return Array.from(keys);
123
- },
124
- getOwnPropertyDescriptor(target, prop) {
125
- recordReadableRead(itemSignal);
126
- const ownDescriptor = Reflect.getOwnPropertyDescriptor(target, prop);
127
- if (ownDescriptor) return ownDescriptor;
128
- return Object.getOwnPropertyDescriptor(Object(itemSignal.peek()), prop);
129
- },
130
- getPrototypeOf() {
131
- recordReadableRead(itemSignal);
132
- return Object.getPrototypeOf(Object(itemSignal.peek()));
133
- }
134
- });
135
- }
136
- //#endregion
137
- export { canProxyForItem, createForIndexSignal, createForItemSignal, createReactiveForItem, haveSameOwnKeys, notifyForSignalReaders, readForItemProperty, removeForParentReaders, scopeReadsSource, syncForIndexSignal };
138
-
139
- //# sourceMappingURL=for-signals.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"for-signals.js","names":[],"sources":["../../src/runtime/for-signals.ts"],"sourcesContent":["import type { ChildScope } from './child-scope';\nimport type { ComponentInstance } from './component';\nimport {\n markReactivePropsDirtySource,\n markReadableDerivedSubscribersDirty,\n notifyReadableReaders,\n recordReadableRead,\n type ReadableSource,\n} from './readable';\n\nexport type ForItemSignal<T> = ReadableSource<T> &\n (() => T) & {\n peek(): T;\n set(newValue: T, notifyReaders?: boolean): void;\n };\n\nexport type ForItemPropertySignal = ReadableSource<unknown> &\n (() => unknown) & {\n peek(): unknown;\n set(newValue: unknown, notifyReaders?: boolean): void;\n };\n\nexport type ForIndexSignal = ReadableSource<number> &\n (() => number) & {\n peek(): number;\n set(\n newValue: number | ((prev: number) => number),\n notifyReaders?: boolean\n ): void;\n };\n\nexport function notifyForSignalReaders(\n source: ReadableSource<unknown>,\n skipInstance?: ComponentInstance | null\n): void {\n markReadableDerivedSubscribersDirty(source);\n markReactivePropsDirtySource(source);\n notifyReadableReaders(source, skipInstance);\n}\n\nexport function createForIndexSignal(initialIndex: number): ForIndexSignal {\n let indexValue = initialIndex;\n const readers = new Map<ComponentInstance, number>();\n\n const indexSignal = (() => {\n indexSignal._hasBeenRead = true;\n recordReadableRead(indexSignal);\n return indexValue;\n }) as ForIndexSignal;\n indexSignal._readers = readers;\n indexSignal.peek = () => indexValue;\n indexSignal.set = (\n newValue: number | ((prev: number) => number),\n notifyReaders = true\n ) => {\n const nextValue =\n typeof newValue === 'function' ? newValue(indexValue) : newValue;\n if (nextValue !== indexValue) {\n indexValue = nextValue;\n if (notifyReaders) {\n notifyForSignalReaders(indexSignal);\n }\n }\n };\n indexSignal._hasBeenRead = false;\n\n return indexSignal;\n}\n\nexport function syncForIndexSignal(\n indexSignal: ForIndexSignal,\n nextIndex: number\n): boolean {\n if (indexSignal.peek() === nextIndex) {\n return false;\n }\n\n indexSignal.set(nextIndex, indexSignal._hasBeenRead);\n return indexSignal._hasBeenRead === true;\n}\n\nexport function createForItemSignal<T>(initialItem: T): ForItemSignal<T> {\n let itemValue = initialItem;\n const readers = new Map<ComponentInstance, number>();\n\n const itemSignal = (() => {\n itemSignal._hasBeenRead = true;\n recordReadableRead(itemSignal);\n return itemValue;\n }) as ForItemSignal<T>;\n\n itemSignal._readers = readers;\n itemSignal.peek = () => itemValue;\n itemSignal.set = (newValue: T, notifyReaders = true) => {\n if (Object.is(itemValue, newValue)) {\n return;\n }\n\n itemValue = newValue;\n if (notifyReaders) {\n notifyForSignalReaders(itemSignal);\n }\n };\n itemSignal._hasBeenRead = false;\n\n return itemSignal;\n}\n\nfunction createForItemPropertySignal(\n initialValue: unknown\n): ForItemPropertySignal {\n let propertyValue = initialValue;\n const readers = new Map<ComponentInstance, number>();\n\n const propertySignal = (() => {\n propertySignal._hasBeenRead = true;\n recordReadableRead(propertySignal);\n return propertyValue;\n }) as ForItemPropertySignal;\n\n propertySignal._readers = readers;\n propertySignal.peek = () => propertyValue;\n propertySignal.set = (newValue: unknown, notifyReaders = true) => {\n if (Object.is(propertyValue, newValue)) {\n return;\n }\n\n propertyValue = newValue;\n if (notifyReaders) {\n notifyForSignalReaders(propertySignal);\n }\n };\n propertySignal._hasBeenRead = false;\n\n return propertySignal;\n}\n\nexport function readForItemProperty(item: unknown, prop: PropertyKey): unknown {\n return Reflect.get(Object(item), prop);\n}\n\nexport function haveSameOwnKeys(\n previousItem: unknown,\n nextItem: unknown\n): boolean {\n const previousKeys = Reflect.ownKeys(Object(previousItem));\n const nextKeys = Reflect.ownKeys(Object(nextItem));\n\n if (previousKeys.length !== nextKeys.length) {\n return false;\n }\n\n for (let i = 0; i < previousKeys.length; i += 1) {\n if (previousKeys[i] !== nextKeys[i]) {\n return false;\n }\n }\n\n return true;\n}\n\nexport function scopeReadsSource(\n scope: ChildScope,\n source: ReadableSource<unknown>\n): boolean {\n return source._readers?.has(scope.componentInstance) ?? false;\n}\n\nfunction isForParentReader(\n parentInstance: ComponentInstance | null,\n reader: ComponentInstance\n): boolean {\n let current = parentInstance;\n\n while (current) {\n if (current === reader) {\n return true;\n }\n current = current.parentInstance;\n }\n\n return false;\n}\n\nexport function removeForParentReaders(\n parentInstance: ComponentInstance | null,\n source: ReadableSource<unknown>\n): void {\n const readers = source._readers;\n if (!readers || readers.size === 0) {\n return;\n }\n\n for (const reader of readers.keys()) {\n if (isForParentReader(parentInstance, reader)) {\n readers.delete(reader);\n }\n }\n}\n\nfunction getOrCreateForItemPropertySignal<T>(\n item: T,\n propertySignals: Map<PropertyKey, ForItemPropertySignal>,\n prop: PropertyKey\n): ForItemPropertySignal {\n const existingSignal = propertySignals.get(prop);\n if (existingSignal) {\n return existingSignal;\n }\n\n const propertySignal = createForItemPropertySignal(\n readForItemProperty(item, prop)\n );\n propertySignals.set(prop, propertySignal);\n return propertySignal;\n}\n\nexport function canProxyForItem(item: unknown): item is object {\n return (\n typeof item === 'function' ||\n (typeof item === 'object' && item !== null && !Array.isArray(item))\n );\n}\n\nexport function createReactiveForItem<T>(\n itemSignal: ForItemSignal<T>,\n propertySignals: Map<PropertyKey, ForItemPropertySignal>\n): T {\n const target = Object.create(null) as Record<string | symbol, unknown>;\n\n return new Proxy(target, {\n get(target, prop, receiver) {\n const ownDescriptor = Reflect.getOwnPropertyDescriptor(target, prop);\n if (ownDescriptor) {\n return Reflect.get(target, prop, receiver);\n }\n\n const currentItem = itemSignal.peek();\n\n if (typeof prop !== 'symbol') {\n return getOrCreateForItemPropertySignal(\n currentItem,\n propertySignals,\n prop\n )();\n }\n\n recordReadableRead(itemSignal);\n return Reflect.get(Object(currentItem), prop, receiver);\n },\n has(target, prop) {\n recordReadableRead(itemSignal);\n return prop in target || prop in Object(itemSignal.peek());\n },\n ownKeys(target) {\n recordReadableRead(itemSignal);\n const keys = new Set<string | symbol>(Reflect.ownKeys(target));\n for (const key of Reflect.ownKeys(Object(itemSignal.peek()))) {\n keys.add(key);\n }\n\n return Array.from(keys);\n },\n getOwnPropertyDescriptor(target, prop) {\n recordReadableRead(itemSignal);\n const ownDescriptor = Reflect.getOwnPropertyDescriptor(target, prop);\n if (ownDescriptor) {\n return ownDescriptor;\n }\n\n return Object.getOwnPropertyDescriptor(Object(itemSignal.peek()), prop);\n },\n getPrototypeOf() {\n recordReadableRead(itemSignal);\n return Object.getPrototypeOf(Object(itemSignal.peek()));\n },\n }) as T;\n}\n"],"mappings":"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"}
@@ -1,9 +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 };
9
- //# sourceMappingURL=for-types.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"for-types.d.ts","names":[],"sources":["../../src/runtime/for-types.ts"],"mappings":";;;KAEY,aAAA,MAAmB,CAAA,YAAa,CAAC;AAAA,KACjC,cAAA,OAAqB,IAAA,EAAM,CAAC,EAAE,KAAA;AAAA,KAC9B,aAAA,OAAoB,IAAA,EAAM,CAAA,EAAG,KAAA,mBAAwB,KAAK"}
@@ -1,4 +0,0 @@
1
- import { ForItemInstance } from "./for-scopes.js";
2
- import { reconcileForItems } from "./for-reconcile.js";
3
- import { ForCommitStrategy, ForState } from "./for-internal.js";
4
- export { ForCommitStrategy, ForState, reconcileForItems };
@@ -1,5 +0,0 @@
1
- import { isBenchMetricScopeActive, recordBenchCounter, recordBenchEvent, recordBenchTiming, withBenchMetricScope } from "./for-bench.js";
2
- import "./for-scopes.js";
3
- import { reconcileForItems } from "./for-reconcile.js";
4
- import { clearForDomUpdateState, createForState, evaluateForState, useForState } from "./for-internal.js";
5
- export { clearForDomUpdateState, createForState, evaluateForState, isBenchMetricScopeActive, reconcileForItems, recordBenchCounter, recordBenchEvent, recordBenchTiming, 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, 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 } 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, ForState } from "./for-internal.js";
15
- import { CaseState, ControlBoundaryState, 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, type ComponentFunction, type ComponentInstance, Context, ContextFrame, ContextKey, ControlBoundaryState, CreateFineGrainedEffectOptions, DefaultPortal, DelegatedEventMap, Derived, DerivedSubscriber, ExecutionModel, FineGrainedEffectHandle, ForCommitStrategy, type ForEachSource, ForState, 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,31 +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, defineContext, getCurrentContextFrame, getVNodeContextFrame, markVNodeTreeWithContextFrame, markVNodeWithContextFrame, readContext, withAsyncResourceContext, withContext } from "./context.js";
6
- import { cleanupReadableSubscriptions, clearDerivedDependencySubscriptions, finalizeReadableSubscriptions, finalizeReadableSubscriptionsFromSnapshot, markReactivePropsDirtySource, markReadableDerivedSubscribersDirty, markReadableUsage, notifyReadableReaders, recordReadableRead, syncDerivedDependencySubscriptions, withDerivedReadTracking, withFineGrainedReadTracking } from "./readable.js";
7
- import { getDevNamespace, getDevValue, incDevCounter, setDevValue } from "./dev-namespace.js";
8
- import { claimHookIndex, getCurrentComponentInstance, getCurrentInstance, getCurrentPortalScope, getCurrentStateIndex, getSignal, 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 { captureInlineRenderSnapshot, createComponentInstance, finalizeReadSubscriptions, mountComponent, mountInstanceInline, registerCommitOperation, renderComponentInline, renderScopedComponent, warnUnusedStateReads } from "./component-internal.js";
12
- import "./component.js";
13
- import { createChildScope, disposeChildScope, rerenderChildScope } from "./child-scope.js";
14
- import { clearCaseDomUpdateState, clearShowDomUpdateState, createCaseState, createShowState, evaluateCaseState, evaluateShowState } from "./control.js";
15
- import { derive } from "./derive.js";
16
- import { createFineGrainedEffect, markFineGrainedEffectsDirtySource } from "./effect.js";
17
- import { createBoundaryReset, reportBoundaryError } from "./error-boundary.js";
18
- import { addDelegatedListener, clearDelegatedHandlersForElement, getDelegatedHandlerForElement, getDelegatedHandlersForElement, isDelegatedEvent, isEventDelegationEnabled, removeDelegatedListener, updateDelegatedListener } from "./events.js";
19
- import { assertExecutionModel, getExecutionModel } from "./execution-model.js";
20
- import { isBenchMetricScopeActive, recordBenchCounter, recordBenchEvent, recordBenchTiming, withBenchMetricScope } from "./for-bench.js";
21
- import "./for-scopes.js";
22
- import { reconcileForItems } from "./for-reconcile.js";
23
- import { clearForDomUpdateState, createForState, evaluateForState, useForState } from "./for-internal.js";
24
- import "./for.js";
25
- import { state } from "./state.js";
26
- import { resource } from "./resource-operation.js";
27
- import { capture, documentVisible, on, routeActive, stream, task, timer, windowFocused } from "./lifecycle-operations.js";
28
- import "./operations.js";
29
- import { DefaultPortal, Portal, clearDefaultPortalForInstance, definePortal, disposeDefaultPortalScope } from "./portal.js";
30
- import { selector } from "./selector.js";
31
- export { AskrRuntime, CONTEXT_FRAME_SYMBOL, DefaultPortal, Portal, addDelegatedListener, addPerfDuration, assertExecutionModel, capture, captureInlineRenderSnapshot, claimHookIndex, classifyUpdate, cleanupComponent, cleanupReadableSubscriptions, clearCaseDomUpdateState, clearDefaultPortalForInstance, clearDelegatedHandlersForElement, clearDerivedDependencySubscriptions, clearForDomUpdateState, clearShowDomUpdateState, commitReorderOnly, configureRuntimeRenderer, createBoundaryReset, createCaseState, createChildScope, createComponentInstance, createFineGrainedEffect, createForState, createRuntime, createShowState, defaultRuntime, defineContext, definePortal, derive, disposeChildScope, disposeDefaultPortalScope, documentVisible, enqueueRuntimeLane, enqueueRuntimeTask, enterBulkCommit, evaluateCaseState, evaluateForState, evaluateShowState, exitBulkCommit, finalizeReadSubscriptions, finalizeReadableSubscriptions, finalizeReadableSubscriptionsFromSnapshot, flushRuntimeScheduler, getCurrentComponentInstance, getCurrentContextFrame, getCurrentInstance, getCurrentPortalScope, getCurrentStateIndex, getDefaultRuntime, getDefaultRuntimeInstance, getDelegatedHandlerForElement, getDelegatedHandlersForElement, getDevNamespace, getDevValue, 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, registerOwnedChildScope, removeDelegatedListener, renderComponentInline, renderScopedComponent, reportBoundaryError, rerenderChildScope, resource, routeActive, runRuntimeHandlerScope, runRuntimeWithSyncProgress, scheduleEventHandler, selector, setCurrentComponentInstance, setDevValue, setRuntimeBulkCommitProbe, state, stream, syncDerivedDependencySubscriptions, task, timer, tryRuntimeFastLaneSync, unregisterOwnedChildScope, updateDelegatedListener, useForState, warnUnusedStateReads, windowFocused, withAsyncResourceContext, withBenchMetricScope, withContext, withDerivedReadTracking, withFineGrainedReadTracking };
@@ -1,31 +0,0 @@
1
- //#region src/runtime/lifecycle-operations.d.ts
2
- type ActivityPredicate = () => boolean;
3
- interface TimerOptions {
4
- when?: ActivityPredicate | readonly ActivityPredicate[];
5
- }
6
- declare function routeActive(pathOrPaths: string | readonly string[]): ActivityPredicate;
7
- declare function documentVisible(): ActivityPredicate;
8
- declare function windowFocused(): ActivityPredicate;
9
- type ListenerOptions = boolean | AddEventListenerOptions | undefined;
10
- declare function on(target: EventTarget, event: string, handler: EventListener, options?: ListenerOptions): void;
11
- declare function timer(intervalMs: number, fn: () => void, options?: TimerOptions): void;
12
- declare function stream<T>(_source: unknown, _options?: Record<string, unknown>): {
13
- value: T | null;
14
- pending: boolean;
15
- error: Error | null;
16
- };
17
- declare function task(fn: () => void | (() => void) | PromiseLike<void | (() => void)>): void;
18
- /**
19
- * Capture the result of a synchronous expression at call time and return a
20
- * thunk that returns the captured value later. This is a low-level helper for
21
- * cases where async continuations need to observe a snapshot of values at the
22
- * moment scheduling occurred.
23
- *
24
- * Usage (public API):
25
- * const snapshot = capture(() => someState());
26
- * Promise.resolve().then(() => { use(snapshot()); });
27
- */
28
- declare function capture<T>(fn: () => T): () => T;
29
- //#endregion
30
- export { ActivityPredicate, TimerOptions, capture, documentVisible, on, routeActive, stream, task, timer, windowFocused };
31
- //# sourceMappingURL=lifecycle-operations.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"lifecycle-operations.d.ts","names":[],"sources":["../../src/runtime/lifecycle-operations.ts"],"mappings":";KAQY,iBAAA;AAAA,UAEK,YAAA;EACf,IAAA,GAAO,iBAAA,YAA6B,iBAAiB;AAAA;AAAA,iBAsDvC,WAAA,CACd,WAAA,+BACC,iBAAiB;AAAA,iBAIJ,eAAA,IAAmB,iBAAiB;AAAA,iBAKpC,aAAA,IAAiB,iBAAiB;AAAA,KAO7C,eAAA,aAA4B,uBAAuB;AAAA,iBAuGxC,EAAA,CACd,MAAA,EAAQ,WAAA,EACR,KAAA,UACA,OAAA,EAAS,aAAA,EACT,OAAA,GAAU,eAAA;AAAA,iBA8FI,KAAA,CACd,UAAA,UACA,EAAA,cACA,OAAA,GAAU,YAAY;AAAA,iBA8BR,MAAA,IACd,OAAA,WACA,QAAA,GAAW,MAAA;EACR,KAAA,EAAO,CAAA;EAAU,OAAA;EAAkB,KAAA,EAAO,KAAA;AAAA;AAAA,iBAK/B,IAAA,CACd,EAAgE,8BAAhC,WAAW;;;;AAnQzB;AAIpB;;;;AAAoD;AAKpD;iBAqSgB,OAAA,IAAW,EAAA,QAAU,CAAA,SAAU,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"lifecycle-operations.js","names":[],"sources":["../../src/runtime/lifecycle-operations.ts"],"sourcesContent":["import {\n claimHookIndex,\n getCurrentComponentInstance,\n registerCommitOperation,\n type ComponentInstance,\n} from './component';\nimport { isRouteActivityActive } from '../common/route-activity';\n\nexport type ActivityPredicate = () => boolean;\n\nexport interface TimerOptions {\n when?: ActivityPredicate | readonly ActivityPredicate[];\n}\n\nfunction normalizePredicates(\n predicates: TimerOptions['when']\n): readonly ActivityPredicate[] {\n if (!predicates) {\n return [];\n }\n\n return typeof predicates === 'function' ? [predicates] : predicates;\n}\n\nfunction allPredicatesPass(predicates: readonly ActivityPredicate[]): boolean {\n for (const predicate of predicates) {\n if (!predicate()) {\n return false;\n }\n }\n\n return true;\n}\n\ntype LifecycleSlotKind = 'timer' | 'listener' | 'task';\n\ntype LifecycleSlot = {\n kind: LifecycleSlotKind;\n};\n\nfunction getLifecycleSlot<TSlot extends LifecycleSlot>(\n instance: ComponentInstance,\n index: number,\n kind: TSlot['kind'],\n create: () => TSlot\n): TSlot {\n const existing = instance.lifecycleSlots[index];\n\n if (existing) {\n const slot = existing as LifecycleSlot;\n if (slot.kind !== kind) {\n throw new Error(\n `${kind}() lifecycle order violation: slot ${index} already belongs to ${slot.kind}(). ` +\n 'Keep lifecycle primitives in a stable top-level order.'\n );\n }\n\n return existing as TSlot;\n }\n\n const slot = create();\n instance.lifecycleSlots[index] = slot;\n return slot;\n}\n\nexport function routeActive(\n pathOrPaths: string | readonly string[]\n): ActivityPredicate {\n return () => isRouteActivityActive(pathOrPaths);\n}\n\nexport function documentVisible(): ActivityPredicate {\n return () =>\n typeof document === 'undefined' || document.visibilityState !== 'hidden';\n}\n\nexport function windowFocused(): ActivityPredicate {\n return () =>\n typeof document === 'undefined' ||\n typeof document.hasFocus !== 'function' ||\n document.hasFocus();\n}\n\ntype ListenerOptions = boolean | AddEventListenerOptions | undefined;\n\ntype NormalizedListenerOptions =\n | boolean\n | {\n capture?: boolean;\n once?: boolean;\n passive?: boolean;\n signal?: AbortSignal;\n }\n | undefined;\n\ninterface ListenerSlot extends LifecycleSlot {\n kind: 'listener';\n target: EventTarget | null;\n event: string;\n handler: EventListener;\n listener: EventListener;\n options: NormalizedListenerOptions;\n pendingTarget: EventTarget;\n pendingEvent: string;\n pendingHandler: EventListener;\n pendingOptions: NormalizedListenerOptions;\n attached: boolean;\n cleanupRegistered: boolean;\n}\n\nfunction normalizeListenerOptions(\n options: ListenerOptions\n): NormalizedListenerOptions {\n if (options === undefined || typeof options === 'boolean') {\n return options;\n }\n\n return {\n ...(options.capture !== undefined ? { capture: options.capture } : {}),\n ...(options.once !== undefined ? { once: options.once } : {}),\n ...(options.passive !== undefined ? { passive: options.passive } : {}),\n ...(options.signal !== undefined ? { signal: options.signal } : {}),\n };\n}\n\nfunction listenerOptionsEqual(\n a: NormalizedListenerOptions,\n b: NormalizedListenerOptions\n): boolean {\n if (a === b) {\n return true;\n }\n if (typeof a === 'boolean' || typeof b === 'boolean') {\n return a === b;\n }\n if (!a || !b) {\n return a === b;\n }\n\n return (\n a.capture === b.capture &&\n a.once === b.once &&\n a.passive === b.passive &&\n a.signal === b.signal\n );\n}\n\nfunction detachListenerSlot(slot: ListenerSlot): void {\n if (!slot.attached || !slot.target) {\n return;\n }\n\n slot.target.removeEventListener(slot.event, slot.listener, slot.options);\n slot.attached = false;\n}\n\nfunction commitListenerSlot(\n instance: ComponentInstance,\n slot: ListenerSlot\n): void {\n slot.handler = slot.pendingHandler;\n\n const shouldReattach =\n !slot.attached ||\n slot.target !== slot.pendingTarget ||\n slot.event !== slot.pendingEvent ||\n !listenerOptionsEqual(slot.options, slot.pendingOptions);\n\n if (shouldReattach) {\n detachListenerSlot(slot);\n slot.target = slot.pendingTarget;\n slot.event = slot.pendingEvent;\n slot.options = slot.pendingOptions;\n slot.target.addEventListener(slot.event, slot.listener, slot.options);\n slot.attached = true;\n }\n\n if (!slot.cleanupRegistered) {\n slot.cleanupRegistered = true;\n instance.cleanupFns.push(() => {\n detachListenerSlot(slot);\n slot.cleanupRegistered = false;\n });\n }\n}\n\nexport function on(\n target: EventTarget,\n event: string,\n handler: EventListener,\n options?: ListenerOptions\n): void {\n const instance = getCurrentComponentInstance();\n if (!instance) {\n return;\n }\n\n const index = claimHookIndex(instance, 'on');\n const normalizedOptions = normalizeListenerOptions(options);\n const slot = getLifecycleSlot<ListenerSlot>(\n instance,\n index,\n 'listener',\n () => {\n const createdSlot = {\n kind: 'listener' as const,\n target: null,\n event,\n handler,\n listener: ((evt: Event) => {\n createdSlot.handler.call(createdSlot.target, evt);\n }) as EventListener,\n options: undefined,\n pendingTarget: target,\n pendingEvent: event,\n pendingHandler: handler,\n pendingOptions: normalizedOptions,\n attached: false,\n cleanupRegistered: false,\n };\n return createdSlot;\n }\n );\n\n slot.pendingTarget = target;\n slot.pendingEvent = event;\n slot.pendingHandler = handler;\n slot.pendingOptions = normalizedOptions;\n\n registerCommitOperation(() => {\n commitListenerSlot(instance, slot);\n });\n}\n\ninterface TimerSlot extends LifecycleSlot {\n kind: 'timer';\n id: ReturnType<typeof setInterval> | null;\n intervalMs: number | null;\n pendingIntervalMs: number;\n callback: () => void;\n predicates: readonly ActivityPredicate[];\n pendingCallback: () => void;\n pendingPredicates: readonly ActivityPredicate[];\n cleanupRegistered: boolean;\n}\n\nfunction stopTimerSlot(slot: TimerSlot): void {\n if (slot.id === null) {\n return;\n }\n\n clearInterval(slot.id);\n slot.id = null;\n}\n\nfunction startTimerSlot(slot: TimerSlot): void {\n slot.id = setInterval(() => {\n if (allPredicatesPass(slot.predicates)) {\n slot.callback();\n }\n }, slot.intervalMs ?? slot.pendingIntervalMs);\n}\n\nfunction commitTimerSlot(instance: ComponentInstance, slot: TimerSlot): void {\n const intervalChanged = slot.intervalMs !== slot.pendingIntervalMs;\n\n slot.callback = slot.pendingCallback;\n slot.predicates = slot.pendingPredicates;\n\n if (slot.id === null || intervalChanged) {\n stopTimerSlot(slot);\n slot.intervalMs = slot.pendingIntervalMs;\n startTimerSlot(slot);\n }\n\n if (!slot.cleanupRegistered) {\n slot.cleanupRegistered = true;\n instance.cleanupFns.push(() => {\n stopTimerSlot(slot);\n slot.cleanupRegistered = false;\n });\n }\n}\n\nexport function timer(\n intervalMs: number,\n fn: () => void,\n options?: TimerOptions\n): void {\n const instance = getCurrentComponentInstance();\n if (!instance) {\n return;\n }\n\n const index = claimHookIndex(instance, 'timer');\n const predicates = normalizePredicates(options?.when);\n const slot = getLifecycleSlot<TimerSlot>(instance, index, 'timer', () => ({\n kind: 'timer',\n id: null,\n intervalMs: null,\n pendingIntervalMs: intervalMs,\n callback: fn,\n predicates,\n pendingCallback: fn,\n pendingPredicates: predicates,\n cleanupRegistered: false,\n }));\n\n slot.pendingIntervalMs = intervalMs;\n slot.pendingCallback = fn;\n slot.pendingPredicates = predicates;\n\n registerCommitOperation(() => {\n commitTimerSlot(instance, slot);\n });\n}\n\nexport function stream<T>(\n _source: unknown,\n _options?: Record<string, unknown>\n): { value: T | null; pending: boolean; error: Error | null } {\n // Stub implementation: no-op.\n return { value: null, pending: true, error: null };\n}\n\nexport function task(\n fn: () => void | (() => void) | PromiseLike<void | (() => void)>\n): void {\n const instance = getCurrentComponentInstance();\n if (!instance) {\n return;\n }\n\n const index = claimHookIndex(instance, 'task');\n const slot = getLifecycleSlot<\n LifecycleSlot & {\n kind: 'task';\n started: boolean;\n task: typeof fn;\n }\n >(instance, index, 'task', () => ({\n kind: 'task',\n started: false,\n task: fn,\n }));\n\n if (!slot.started) {\n slot.task = fn;\n registerCommitOperation(async () => {\n if (slot.started) {\n return;\n }\n\n slot.started = true;\n return await slot.task();\n });\n }\n}\n\n/**\n * Capture the result of a synchronous expression at call time and return a\n * thunk that returns the captured value later. This is a low-level helper for\n * cases where async continuations need to observe a snapshot of values at the\n * moment scheduling occurred.\n *\n * Usage (public API):\n * const snapshot = capture(() => someState());\n * Promise.resolve().then(() => { use(snapshot()); });\n */\nexport function capture<T>(fn: () => T): () => T {\n const value = fn();\n return () => value;\n}\n"],"mappings":";;;;;AAcA,SAAS,oBACP,YAC8B;CAC9B,IAAI,CAAC,YACH,OAAO,CAAC;CAGV,OAAO,OAAO,eAAe,aAAa,CAAC,UAAU,IAAI;AAC3D;AAEA,SAAS,kBAAkB,YAAmD;CAC5E,KAAK,MAAM,aAAa,YACtB,IAAI,CAAC,UAAU,GACb,OAAO;CAIX,OAAO;AACT;AAQA,SAAS,iBACP,UACA,OACA,MACA,QACO;CACP,MAAM,WAAW,SAAS,eAAe;CAEzC,IAAI,UAAU;EACZ,MAAM,OAAO;EACb,IAAI,KAAK,SAAS,MAChB,MAAM,IAAI,MACR,GAAG,KAAK,qCAAqC,MAAM,sBAAsB,KAAK,KAAK,2DAErF;EAGF,OAAO;CACT;CAEA,MAAM,OAAO,OAAO;CACpB,SAAS,eAAe,SAAS;CACjC,OAAO;AACT;AAEA,SAAgB,YACd,aACmB;CACnB,aAAa,sBAAsB,WAAW;AAChD;AAEA,SAAgB,kBAAqC;CACnD,aACE,OAAO,aAAa,eAAe,SAAS,oBAAoB;AACpE;AAEA,SAAgB,gBAAmC;CACjD,aACE,OAAO,aAAa,eACpB,OAAO,SAAS,aAAa,cAC7B,SAAS,SAAS;AACtB;AA6BA,SAAS,yBACP,SAC2B;CAC3B,IAAI,YAAY,UAAa,OAAO,YAAY,WAC9C,OAAO;CAGT,OAAO;EACL,GAAI,QAAQ,YAAY,SAAY,EAAE,SAAS,QAAQ,QAAQ,IAAI,CAAC;EACpE,GAAI,QAAQ,SAAS,SAAY,EAAE,MAAM,QAAQ,KAAK,IAAI,CAAC;EAC3D,GAAI,QAAQ,YAAY,SAAY,EAAE,SAAS,QAAQ,QAAQ,IAAI,CAAC;EACpE,GAAI,QAAQ,WAAW,SAAY,EAAE,QAAQ,QAAQ,OAAO,IAAI,CAAC;CACnE;AACF;AAEA,SAAS,qBACP,GACA,GACS;CACT,IAAI,MAAM,GACR,OAAO;CAET,IAAI,OAAO,MAAM,aAAa,OAAO,MAAM,WACzC,OAAO,MAAM;CAEf,IAAI,CAAC,KAAK,CAAC,GACT,OAAO,MAAM;CAGf,OACE,EAAE,YAAY,EAAE,WAChB,EAAE,SAAS,EAAE,QACb,EAAE,YAAY,EAAE,WAChB,EAAE,WAAW,EAAE;AAEnB;AAEA,SAAS,mBAAmB,MAA0B;CACpD,IAAI,CAAC,KAAK,YAAY,CAAC,KAAK,QAC1B;CAGF,KAAK,OAAO,oBAAoB,KAAK,OAAO,KAAK,UAAU,KAAK,OAAO;CACvE,KAAK,WAAW;AAClB;AAEA,SAAS,mBACP,UACA,MACM;CACN,KAAK,UAAU,KAAK;CAQpB,IALE,CAAC,KAAK,YACN,KAAK,WAAW,KAAK,iBACrB,KAAK,UAAU,KAAK,gBACpB,CAAC,qBAAqB,KAAK,SAAS,KAAK,cAAc,GAErC;EAClB,mBAAmB,IAAI;EACvB,KAAK,SAAS,KAAK;EACnB,KAAK,QAAQ,KAAK;EAClB,KAAK,UAAU,KAAK;EACpB,KAAK,OAAO,iBAAiB,KAAK,OAAO,KAAK,UAAU,KAAK,OAAO;EACpE,KAAK,WAAW;CAClB;CAEA,IAAI,CAAC,KAAK,mBAAmB;EAC3B,KAAK,oBAAoB;EACzB,SAAS,WAAW,WAAW;GAC7B,mBAAmB,IAAI;GACvB,KAAK,oBAAoB;EAC3B,CAAC;CACH;AACF;AAEA,SAAgB,GACd,QACA,OACA,SACA,SACM;CACN,MAAM,WAAW,4BAA4B;CAC7C,IAAI,CAAC,UACH;CAGF,MAAM,QAAQ,eAAe,UAAU,IAAI;CAC3C,MAAM,oBAAoB,yBAAyB,OAAO;CAC1D,MAAM,OAAO,iBACX,UACA,OACA,kBACM;EACJ,MAAM,cAAc;GAClB,MAAM;GACN,QAAQ;GACR;GACA;GACA,YAAY,QAAe;IACzB,YAAY,QAAQ,KAAK,YAAY,QAAQ,GAAG;GAClD;GACA,SAAS;GACT,eAAe;GACf,cAAc;GACd,gBAAgB;GAChB,gBAAgB;GAChB,UAAU;GACV,mBAAmB;EACrB;EACA,OAAO;CACT,CACF;CAEA,KAAK,gBAAgB;CACrB,KAAK,eAAe;CACpB,KAAK,iBAAiB;CACtB,KAAK,iBAAiB;CAEtB,8BAA8B;EAC5B,mBAAmB,UAAU,IAAI;CACnC,CAAC;AACH;AAcA,SAAS,cAAc,MAAuB;CAC5C,IAAI,KAAK,OAAO,MACd;CAGF,cAAc,KAAK,EAAE;CACrB,KAAK,KAAK;AACZ;AAEA,SAAS,eAAe,MAAuB;CAC7C,KAAK,KAAK,kBAAkB;EAC1B,IAAI,kBAAkB,KAAK,UAAU,GACnC,KAAK,SAAS;CAElB,GAAG,KAAK,cAAc,KAAK,iBAAiB;AAC9C;AAEA,SAAS,gBAAgB,UAA6B,MAAuB;CAC3E,MAAM,kBAAkB,KAAK,eAAe,KAAK;CAEjD,KAAK,WAAW,KAAK;CACrB,KAAK,aAAa,KAAK;CAEvB,IAAI,KAAK,OAAO,QAAQ,iBAAiB;EACvC,cAAc,IAAI;EAClB,KAAK,aAAa,KAAK;EACvB,eAAe,IAAI;CACrB;CAEA,IAAI,CAAC,KAAK,mBAAmB;EAC3B,KAAK,oBAAoB;EACzB,SAAS,WAAW,WAAW;GAC7B,cAAc,IAAI;GAClB,KAAK,oBAAoB;EAC3B,CAAC;CACH;AACF;AAEA,SAAgB,MACd,YACA,IACA,SACM;CACN,MAAM,WAAW,4BAA4B;CAC7C,IAAI,CAAC,UACH;CAGF,MAAM,QAAQ,eAAe,UAAU,OAAO;CAC9C,MAAM,aAAa,oBAAoB,SAAS,IAAI;CACpD,MAAM,OAAO,iBAA4B,UAAU,OAAO,gBAAgB;EACxE,MAAM;EACN,IAAI;EACJ,YAAY;EACZ,mBAAmB;EACnB,UAAU;EACV;EACA,iBAAiB;EACjB,mBAAmB;EACnB,mBAAmB;CACrB,EAAE;CAEF,KAAK,oBAAoB;CACzB,KAAK,kBAAkB;CACvB,KAAK,oBAAoB;CAEzB,8BAA8B;EAC5B,gBAAgB,UAAU,IAAI;CAChC,CAAC;AACH;AAEA,SAAgB,OACd,SACA,UAC4D;CAE5D,OAAO;EAAE,OAAO;EAAM,SAAS;EAAM,OAAO;CAAK;AACnD;AAEA,SAAgB,KACd,IACM;CACN,MAAM,WAAW,4BAA4B;CAC7C,IAAI,CAAC,UACH;CAIF,MAAM,OAAO,iBAMX,UAPY,eAAe,UAAU,MAO3B,GAAO,eAAe;EAChC,MAAM;EACN,SAAS;EACT,MAAM;CACR,EAAE;CAEF,IAAI,CAAC,KAAK,SAAS;EACjB,KAAK,OAAO;EACZ,wBAAwB,YAAY;GAClC,IAAI,KAAK,SACP;GAGF,KAAK,UAAU;GACf,OAAO,MAAM,KAAK,KAAK;EACzB,CAAC;CACH;AACF;;;;;;;;;;;AAYA,SAAgB,QAAW,IAAsB;CAC/C,MAAM,QAAQ,GAAG;CACjB,aAAa;AACf"}
@@ -1,3 +0,0 @@
1
- import { ResourceResult, resource } from "./resource-operation.js";
2
- import { ActivityPredicate, TimerOptions, capture, documentVisible, on, routeActive, stream, task, timer, windowFocused } from "./lifecycle-operations.js";
3
- export { type ActivityPredicate, type ResourceResult, type TimerOptions, capture, documentVisible, on, resource, routeActive, stream, task, timer, windowFocused };
@@ -1,3 +0,0 @@
1
- import { resource } from "./resource-operation.js";
2
- import { capture, documentVisible, on, routeActive, stream, task, timer, windowFocused } from "./lifecycle-operations.js";
3
- export { capture, documentVisible, on, resource, routeActive, stream, task, timer, windowFocused };
@@ -1,26 +0,0 @@
1
- //#region src/runtime/perf-metrics.d.ts
2
- type PerfMetrics = {
3
- selectorInvalidations: number;
4
- selectorCandidateReads: number;
5
- reactivePropReevaluations: number;
6
- skippedDomPropWrites: number;
7
- classListPatchOps: number;
8
- delegatedAncestorHops: number;
9
- hydrationBoundaryActivations: number;
10
- ssrTagCacheHits: number;
11
- lastSchedulerTaskCountPerFlush: number;
12
- maxSchedulerTaskCountPerFlush: number;
13
- schedulerFlushCount: number;
14
- schedulerTaskExecutions: number;
15
- ssgWorkerCount: number;
16
- ssgRenderTimeMs: number;
17
- ssgWorkerRenderTimeMs: number;
18
- ssgWriteTimeMs: number;
19
- };
20
- declare function getPerfMetricsStore(): PerfMetrics | null;
21
- declare function incrementPerfMetric(key: 'selectorInvalidations' | 'selectorCandidateReads' | 'reactivePropReevaluations' | 'skippedDomPropWrites' | 'classListPatchOps' | 'delegatedAncestorHops' | 'hydrationBoundaryActivations' | 'ssrTagCacheHits' | 'ssgWorkerCount', delta?: number): void;
22
- declare function addPerfDuration(key: 'ssgRenderTimeMs' | 'ssgWorkerRenderTimeMs' | 'ssgWriteTimeMs', deltaMs: number): void;
23
- declare function recordSchedulerFlushTaskCount(taskCount: number): void;
24
- declare function getPerfMetrics(): Readonly<PerfMetrics> | undefined;
25
- declare function resetPerfMetrics(): void;
26
- //# sourceMappingURL=perf-metrics.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"perf-metrics.d.ts","names":[],"sources":["../../src/runtime/perf-metrics.ts"],"mappings":";KAKK,WAAA;EACH,qBAAA;EACA,sBAAA;EACA,yBAAA;EACA,oBAAA;EACA,iBAAA;EACA,qBAAA;EACA,4BAAA;EACA,eAAA;EACA,8BAAA;EACA,6BAAA;EACA,mBAAA;EACA,uBAAA;EACA,cAAA;EACA,eAAA;EACA,qBAAA;EACA,cAAA;AAAA;AAAA,iBAqEc,mBAAA,IAAuB,WAAW;AAAA,iBAIlC,mBAAA,CACd,GAAA,qOAUA,KAAS;AAAA,iBAOK,eAAA,CACd,GAAA,kEACA,OAAe;AAAA,iBAOD,6BAAA,CAA8B,SAAiB;AAAA,iBAY/C,cAAA,IAAkB,QAAQ,CAAC,WAAA;AAAA,iBAK3B,gBAAA"}
@@ -1,70 +0,0 @@
1
- import { isDevelopmentEnvironment, isRuntimeEnvFlagEnabled } from "../common/env.js";
2
- //#region src/runtime/perf-metrics.ts
3
- const BENCH_BUILD_ENABLED = isRuntimeEnvFlagEnabled("ASKR_BENCH");
4
- let cachedPerfStore;
5
- function createInitialPerfMetrics() {
6
- return {
7
- selectorInvalidations: 0,
8
- selectorCandidateReads: 0,
9
- reactivePropReevaluations: 0,
10
- skippedDomPropWrites: 0,
11
- classListPatchOps: 0,
12
- delegatedAncestorHops: 0,
13
- hydrationBoundaryActivations: 0,
14
- ssrTagCacheHits: 0,
15
- lastSchedulerTaskCountPerFlush: 0,
16
- maxSchedulerTaskCountPerFlush: 0,
17
- schedulerFlushCount: 0,
18
- schedulerTaskExecutions: 0,
19
- ssgWorkerCount: 0,
20
- ssgRenderTimeMs: 0,
21
- ssgWorkerRenderTimeMs: 0,
22
- ssgWriteTimeMs: 0
23
- };
24
- }
25
- function shouldCollectPerfMetrics() {
26
- if (isDevelopmentEnvironment()) return true;
27
- if (!BENCH_BUILD_ENABLED) return false;
28
- try {
29
- return !!globalThis.__ASKR_BENCH__;
30
- } catch {
31
- return false;
32
- }
33
- }
34
- function getPerfStore() {
35
- if (cachedPerfStore) return cachedPerfStore;
36
- if (!shouldCollectPerfMetrics()) return null;
37
- try {
38
- const g = globalThis;
39
- if (!g.__ASKR_PERF__) g.__ASKR_PERF__ = createInitialPerfMetrics();
40
- cachedPerfStore = g.__ASKR_PERF__;
41
- return cachedPerfStore;
42
- } catch {
43
- return null;
44
- }
45
- }
46
- function getPerfMetricsStore() {
47
- return getPerfStore();
48
- }
49
- function incrementPerfMetric(key, delta = 1) {
50
- const store = getPerfStore();
51
- if (!store) return;
52
- store[key] += delta;
53
- }
54
- function addPerfDuration(key, deltaMs) {
55
- const store = getPerfStore();
56
- if (!store) return;
57
- store[key] += deltaMs;
58
- }
59
- function recordSchedulerFlushTaskCount(taskCount) {
60
- const store = getPerfStore();
61
- if (!store) return;
62
- store.lastSchedulerTaskCountPerFlush = taskCount;
63
- store.maxSchedulerTaskCountPerFlush = Math.max(store.maxSchedulerTaskCountPerFlush, taskCount);
64
- store.schedulerFlushCount += 1;
65
- store.schedulerTaskExecutions += taskCount;
66
- }
67
- //#endregion
68
- export { addPerfDuration, getPerfMetricsStore, incrementPerfMetric, recordSchedulerFlushTaskCount };
69
-
70
- //# sourceMappingURL=perf-metrics.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"perf-metrics.js","names":[],"sources":["../../src/runtime/perf-metrics.ts"],"sourcesContent":["import {\n isDevelopmentEnvironment,\n isRuntimeEnvFlagEnabled,\n} from '../common/env';\n\ntype PerfMetrics = {\n selectorInvalidations: number;\n selectorCandidateReads: number;\n reactivePropReevaluations: number;\n skippedDomPropWrites: number;\n classListPatchOps: number;\n delegatedAncestorHops: number;\n hydrationBoundaryActivations: number;\n ssrTagCacheHits: number;\n lastSchedulerTaskCountPerFlush: number;\n maxSchedulerTaskCountPerFlush: number;\n schedulerFlushCount: number;\n schedulerTaskExecutions: number;\n ssgWorkerCount: number;\n ssgRenderTimeMs: number;\n ssgWorkerRenderTimeMs: number;\n ssgWriteTimeMs: number;\n};\n\ntype PerfMetricsKey = keyof PerfMetrics;\n\ntype AskrPerfGlobal = typeof globalThis & {\n __ASKR_BENCH__?: boolean;\n __ASKR_PERF__?: PerfMetrics;\n};\n\nconst BENCH_BUILD_ENABLED = isRuntimeEnvFlagEnabled('ASKR_BENCH');\nlet cachedPerfStore: PerfMetrics | undefined;\n\nfunction createInitialPerfMetrics(): PerfMetrics {\n return {\n selectorInvalidations: 0,\n selectorCandidateReads: 0,\n reactivePropReevaluations: 0,\n skippedDomPropWrites: 0,\n classListPatchOps: 0,\n delegatedAncestorHops: 0,\n hydrationBoundaryActivations: 0,\n ssrTagCacheHits: 0,\n lastSchedulerTaskCountPerFlush: 0,\n maxSchedulerTaskCountPerFlush: 0,\n schedulerFlushCount: 0,\n schedulerTaskExecutions: 0,\n ssgWorkerCount: 0,\n ssgRenderTimeMs: 0,\n ssgWorkerRenderTimeMs: 0,\n ssgWriteTimeMs: 0,\n };\n}\n\nfunction shouldCollectPerfMetrics(): boolean {\n if (isDevelopmentEnvironment()) {\n return true;\n }\n if (!BENCH_BUILD_ENABLED) {\n return false;\n }\n try {\n return !!(globalThis as AskrPerfGlobal).__ASKR_BENCH__;\n } catch {\n return false;\n }\n}\n\nfunction getPerfStore(): PerfMetrics | null {\n if (cachedPerfStore) {\n return cachedPerfStore;\n }\n\n if (!shouldCollectPerfMetrics()) {\n return null;\n }\n\n try {\n const g = globalThis as AskrPerfGlobal;\n if (!g.__ASKR_PERF__) {\n g.__ASKR_PERF__ = createInitialPerfMetrics();\n }\n cachedPerfStore = g.__ASKR_PERF__;\n return cachedPerfStore;\n } catch {\n return null;\n }\n}\n\nexport function getPerfMetricsStore(): PerfMetrics | null {\n return getPerfStore();\n}\n\nexport function incrementPerfMetric(\n key:\n | 'selectorInvalidations'\n | 'selectorCandidateReads'\n | 'reactivePropReevaluations'\n | 'skippedDomPropWrites'\n | 'classListPatchOps'\n | 'delegatedAncestorHops'\n | 'hydrationBoundaryActivations'\n | 'ssrTagCacheHits'\n | 'ssgWorkerCount',\n delta = 1\n): void {\n const store = getPerfStore();\n if (!store) return;\n store[key] += delta;\n}\n\nexport function addPerfDuration(\n key: 'ssgRenderTimeMs' | 'ssgWorkerRenderTimeMs' | 'ssgWriteTimeMs',\n deltaMs: number\n): void {\n const store = getPerfStore();\n if (!store) return;\n store[key] += deltaMs;\n}\n\nexport function recordSchedulerFlushTaskCount(taskCount: number): void {\n const store = getPerfStore();\n if (!store) return;\n store.lastSchedulerTaskCountPerFlush = taskCount;\n store.maxSchedulerTaskCountPerFlush = Math.max(\n store.maxSchedulerTaskCountPerFlush,\n taskCount\n );\n store.schedulerFlushCount += 1;\n store.schedulerTaskExecutions += taskCount;\n}\n\nexport function getPerfMetrics(): Readonly<PerfMetrics> | undefined {\n const store = getPerfStore();\n return store ? { ...store } : undefined;\n}\n\nexport function resetPerfMetrics(): void {\n const store = getPerfStore();\n if (!store) return;\n const next = createInitialPerfMetrics();\n (Object.keys(next) as PerfMetricsKey[]).forEach((key) => {\n store[key] = next[key];\n });\n}\n"],"mappings":";;AA+BA,MAAM,sBAAsB,wBAAwB,YAAY;AAChE,IAAI;AAEJ,SAAS,2BAAwC;CAC/C,OAAO;EACL,uBAAuB;EACvB,wBAAwB;EACxB,2BAA2B;EAC3B,sBAAsB;EACtB,mBAAmB;EACnB,uBAAuB;EACvB,8BAA8B;EAC9B,iBAAiB;EACjB,gCAAgC;EAChC,+BAA+B;EAC/B,qBAAqB;EACrB,yBAAyB;EACzB,gBAAgB;EAChB,iBAAiB;EACjB,uBAAuB;EACvB,gBAAgB;CAClB;AACF;AAEA,SAAS,2BAAoC;CAC3C,IAAI,yBAAyB,GAC3B,OAAO;CAET,IAAI,CAAC,qBACH,OAAO;CAET,IAAI;EACF,OAAO,CAAC,CAAE,WAA8B;CAC1C,QAAQ;EACN,OAAO;CACT;AACF;AAEA,SAAS,eAAmC;CAC1C,IAAI,iBACF,OAAO;CAGT,IAAI,CAAC,yBAAyB,GAC5B,OAAO;CAGT,IAAI;EACF,MAAM,IAAI;EACV,IAAI,CAAC,EAAE,eACL,EAAE,gBAAgB,yBAAyB;EAE7C,kBAAkB,EAAE;EACpB,OAAO;CACT,QAAQ;EACN,OAAO;CACT;AACF;AAEA,SAAgB,sBAA0C;CACxD,OAAO,aAAa;AACtB;AAEA,SAAgB,oBACd,KAUA,QAAQ,GACF;CACN,MAAM,QAAQ,aAAa;CAC3B,IAAI,CAAC,OAAO;CACZ,MAAM,QAAQ;AAChB;AAEA,SAAgB,gBACd,KACA,SACM;CACN,MAAM,QAAQ,aAAa;CAC3B,IAAI,CAAC,OAAO;CACZ,MAAM,QAAQ;AAChB;AAEA,SAAgB,8BAA8B,WAAyB;CACrE,MAAM,QAAQ,aAAa;CAC3B,IAAI,CAAC,OAAO;CACZ,MAAM,iCAAiC;CACvC,MAAM,gCAAgC,KAAK,IACzC,MAAM,+BACN,SACF;CACA,MAAM,uBAAuB;CAC7B,MAAM,2BAA2B;AACnC"}
@@ -1,22 +0,0 @@
1
- import { ComponentInstance } from "./component-internal.js";
2
- import { RenderableChild } from "../common/vnode.js";
3
-
4
- //#region src/runtime/portal.d.ts
5
- interface Portal<T extends RenderableChild = RenderableChild> {
6
- (): unknown;
7
- render(props: {
8
- children?: T;
9
- }): unknown;
10
- }
11
- interface PortalProps {
12
- children?: RenderableChild;
13
- }
14
- declare function definePortal<T extends RenderableChild = RenderableChild>(): Portal<T>;
15
- declare function _resetDefaultPortal(): void;
16
- declare function disposeDefaultPortalScope(scope: object | null): void;
17
- declare function clearDefaultPortalForInstance(instance: ComponentInstance): void;
18
- declare const DefaultPortal: Portal<RenderableChild>;
19
- declare function Portal(props: PortalProps): null;
20
- //#endregion
21
- export { DefaultPortal, Portal, PortalProps, definePortal };
22
- //# sourceMappingURL=portal.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"portal.d.ts","names":[],"sources":["../../src/runtime/portal.ts"],"mappings":";;;;UAeiB,MAAA,WAAiB,eAAA,GAAkB,eAAA;EAAA;EAElD,MAAA,CAAO,KAAA;IAAS,QAAA,GAAW,CAAA;EAAA;AAAA;AAAA,UAGZ,WAAA;EACf,QAAA,GAAW,eAAe;AAAA;AAAA,iBA+BZ,YAAA,WACJ,eAAA,GAAkB,eAAA,KACzB,MAAA,CAAO,CAAA;AAAA,iBAuGI,mBAAA;AAAA,iBAMA,yBAAA,CAA0B,KAAoB;AAAA,iBAyK9C,6BAAA,CACd,QAA2B,EAAjB,iBAAiB;AAAA,cAkBhB,aAAA,EAAe,MAAM,CAAC,eAAA;AAAA,iBA6BnB,MAAA,CAAO,KAAkB,EAAX,WAAW"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"portal.js","names":[],"sources":["../../src/runtime/portal.ts"],"sourcesContent":["import type { RenderableChild } from '../common/vnode';\nimport {\n markReactivePropsDirtySource,\n markReadableDerivedSubscribersDirty,\n notifyReadableReaders,\n recordReadableRead,\n type ReadableSource,\n} from './readable';\nimport {\n getCurrentComponentInstance,\n getCurrentPortalScope,\n type ComponentInstance,\n} from './component';\nimport { enqueueRuntimeTask } from './access';\n\nexport interface Portal<T extends RenderableChild = RenderableChild> {\n (): unknown;\n render(props: { children?: T }): unknown;\n}\n\nexport interface PortalProps {\n children?: RenderableChild;\n}\n\nfunction createPortalSlot<T>(): {\n read(): unknown;\n write(value: T | undefined): void;\n} {\n let currentValue: T | undefined;\n\n const source = (() => {\n recordReadableRead(source);\n return currentValue;\n }) as ReadableSource<T | undefined>;\n\n return {\n read() {\n return source();\n },\n write(value: T | undefined) {\n if (Object.is(currentValue, value)) {\n return;\n }\n\n currentValue = value;\n markReadableDerivedSubscribersDirty(source);\n markReactivePropsDirtySource(source);\n notifyReadableReaders(source);\n },\n };\n}\n\nexport function definePortal<\n T extends RenderableChild = RenderableChild,\n>(): Portal<T> {\n if (typeof createPortalSlot === 'function') {\n const slot = createPortalSlot<T>();\n\n function PortalHost() {\n return slot.read();\n }\n\n PortalHost.render = function PortalRender(props: { children?: T }) {\n slot.write(props.children);\n return null;\n };\n\n return PortalHost as Portal<T>;\n }\n\n let mounted = false;\n let value: T | undefined;\n\n function PortalHostFallback() {\n mounted = true;\n return value as unknown;\n }\n\n PortalHostFallback.render = function PortalRenderFallback(props: {\n children?: T;\n }) {\n if (!mounted) return null;\n value = props.children;\n return null;\n };\n\n return PortalHostFallback as Portal<T>;\n}\n\ntype DefaultPortalState = {\n portal: Portal<RenderableChild>;\n owner: ComponentInstance | null;\n cleanupOwners: WeakSet<ComponentInstance>;\n explicitHostOwners: Set<ComponentInstance>;\n explicitHostCleanupOwners: WeakSet<ComponentInstance>;\n explicitHostSource: ReadableSource<number>;\n};\n\nlet _defaultPortalStates = new Map<object, DefaultPortalState>();\nlet _hasPendingDefaultPortalValue = false;\nlet _pendingDefaultPortalValue: RenderableChild | undefined = undefined;\n\ntype DefaultPortalHostProps = {\n __askrAutoDefaultPortal?: boolean;\n};\n\nfunction createExplicitHostSource(\n readCount: () => number\n): ReadableSource<number> {\n let source: ReadableSource<number>;\n source = (() => {\n recordReadableRead(source);\n return readCount();\n }) as ReadableSource<number>;\n return source;\n}\n\nfunction readExplicitDefaultPortalHosts(state: DefaultPortalState): number {\n return state.explicitHostSource();\n}\n\nfunction notifyExplicitDefaultPortalHostReaders(\n state: DefaultPortalState\n): void {\n markReadableDerivedSubscribersDirty(state.explicitHostSource);\n markReactivePropsDirtySource(state.explicitHostSource);\n notifyReadableReaders(state.explicitHostSource);\n}\n\nfunction createDefaultPortalState(): DefaultPortalState {\n const state: DefaultPortalState = {\n portal: definePortal<RenderableChild>(),\n owner: null,\n cleanupOwners: new WeakSet<ComponentInstance>(),\n explicitHostOwners: new Set<ComponentInstance>(),\n explicitHostCleanupOwners: new WeakSet<ComponentInstance>(),\n explicitHostSource: (() => 0) as ReadableSource<number>,\n };\n\n state.explicitHostSource = createExplicitHostSource(\n () => state.explicitHostOwners.size\n );\n return state;\n}\n\nfunction isExplicitHostOwnerConnected(owner: ComponentInstance): boolean {\n if (owner.target) {\n return owner.target.isConnected;\n }\n\n if (owner._placeholder) {\n return owner._placeholder.isConnected;\n }\n\n return owner.mounted;\n}\n\nexport function _resetDefaultPortal(): void {\n _defaultPortalStates = new Map<object, DefaultPortalState>();\n _hasPendingDefaultPortalValue = false;\n _pendingDefaultPortalValue = undefined;\n}\n\nexport function disposeDefaultPortalScope(scope: object | null): void {\n if (!scope) {\n return;\n }\n\n const state = _defaultPortalStates.get(scope);\n if (state) {\n state.portal.render({ children: undefined });\n }\n\n _defaultPortalStates.delete(scope);\n}\n\nfunction isComponentPortalScope(scope: object): scope is ComponentInstance {\n return Array.isArray((scope as ComponentInstance).cleanupFns);\n}\n\nfunction isStaleDefaultPortalScope(scope: object): boolean {\n if (!isComponentPortalScope(scope)) {\n return false;\n }\n\n if (scope.target && scope.target.isConnected === false) {\n return true;\n }\n\n return scope.mounted === false;\n}\n\nfunction pruneStaleDefaultPortalScopes(): void {\n if (_defaultPortalStates.size === 0) {\n return;\n }\n\n for (const scope of Array.from(_defaultPortalStates.keys())) {\n if (isStaleDefaultPortalScope(scope)) {\n disposeDefaultPortalScope(scope);\n }\n }\n}\n\nfunction getSingleDefaultPortalScope(): object | null {\n pruneStaleDefaultPortalScopes();\n\n if (_defaultPortalStates.size !== 1) {\n return null;\n }\n\n return _defaultPortalStates.keys().next().value ?? null;\n}\n\nfunction getDefaultPortalState(scope: object): DefaultPortalState {\n let state = _defaultPortalStates.get(scope);\n if (!state) {\n state = createDefaultPortalState();\n _defaultPortalStates.set(scope, state);\n }\n return state;\n}\n\nfunction resolveDefaultPortalScope(\n owner: ComponentInstance | null\n): object | null {\n return (\n owner?.portalScope ??\n getCurrentPortalScope() ??\n getSingleDefaultPortalScope()\n );\n}\n\nfunction writeDefaultPortal(\n props: PortalProps,\n owner: ComponentInstance | null\n): void {\n const scope = resolveDefaultPortalScope(owner);\n if (!scope) {\n if (_defaultPortalStates.size !== 0) {\n return;\n }\n\n _hasPendingDefaultPortalValue = true;\n _pendingDefaultPortalValue = props.children;\n return;\n }\n\n const state = getDefaultPortalState(scope);\n _hasPendingDefaultPortalValue = false;\n _pendingDefaultPortalValue = undefined;\n state.portal.render(props);\n state.owner = owner;\n}\n\nfunction applyPendingDefaultPortalValue(scope: object): void {\n if (!_hasPendingDefaultPortalValue) {\n return;\n }\n\n const state = getDefaultPortalState(scope);\n state.portal.render({ children: _pendingDefaultPortalValue });\n state.owner = null;\n _hasPendingDefaultPortalValue = false;\n _pendingDefaultPortalValue = undefined;\n}\n\nfunction registerDefaultPortalOwner(owner: ComponentInstance): void {\n const scope = resolveDefaultPortalScope(owner);\n if (!scope) {\n return;\n }\n\n const state = getDefaultPortalState(scope);\n if (state.cleanupOwners.has(owner)) {\n return;\n }\n\n state.cleanupOwners.add(owner);\n owner.cleanupFns.push(() => {\n const currentState = _defaultPortalStates.get(scope);\n if (!currentState) {\n return;\n }\n\n if (currentState.owner === owner) {\n currentState.portal.render({ children: undefined });\n currentState.owner = null;\n }\n currentState.cleanupOwners.delete(owner);\n });\n}\n\nfunction registerExplicitDefaultPortalHost(\n scope: object,\n state: DefaultPortalState,\n owner: ComponentInstance | null\n): void {\n if (!owner) {\n return;\n }\n\n if (!state.explicitHostOwners.has(owner)) {\n state.explicitHostOwners.add(owner);\n notifyExplicitDefaultPortalHostReaders(state);\n }\n\n if (!state.explicitHostCleanupOwners.has(owner)) {\n state.explicitHostCleanupOwners.add(owner);\n owner.cleanupFns.push(() => {\n if (_defaultPortalStates.get(scope) !== state) {\n return;\n }\n\n state.explicitHostCleanupOwners.delete(owner);\n enqueueRuntimeTask(() => {\n if (_defaultPortalStates.get(scope) !== state) {\n return;\n }\n\n if (isExplicitHostOwnerConnected(owner)) {\n return;\n }\n\n if (state.explicitHostOwners.delete(owner)) {\n notifyExplicitDefaultPortalHostReaders(state);\n }\n });\n });\n }\n}\n\nexport function clearDefaultPortalForInstance(\n instance: ComponentInstance\n): void {\n const scope = instance.portalScope;\n if (!scope) {\n return;\n }\n\n const state = _defaultPortalStates.get(scope);\n if (!state) {\n return;\n }\n\n _hasPendingDefaultPortalValue = false;\n _pendingDefaultPortalValue = undefined;\n state.portal.render({ children: undefined });\n state.owner = null;\n}\n\nexport const DefaultPortal: Portal<RenderableChild> = (() => {\n function Host(props?: DefaultPortalHostProps) {\n const owner = getCurrentComponentInstance();\n const scope = resolveDefaultPortalScope(owner);\n if (!scope) {\n return null;\n }\n\n const state = getDefaultPortalState(scope);\n const isAutomaticFallback = props?.__askrAutoDefaultPortal === true;\n if (!isAutomaticFallback) {\n registerExplicitDefaultPortalHost(scope, state, owner);\n } else if (readExplicitDefaultPortalHosts(state) > 0) {\n return null;\n }\n\n applyPendingDefaultPortalValue(scope);\n const value = state.portal();\n return value === undefined ? null : value;\n }\n\n Host.render = function Render(props: { children?: RenderableChild }) {\n writeDefaultPortal(props, getCurrentComponentInstance());\n return null;\n };\n\n return Host as Portal<RenderableChild>;\n})();\n\nexport function Portal(props: PortalProps): null {\n const owner = getCurrentComponentInstance();\n if (owner) {\n registerDefaultPortalOwner(owner);\n }\n writeDefaultPortal(props, owner);\n return null;\n}\n"],"mappings":"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"}
@@ -1,29 +0,0 @@
1
- import { ComponentInstance } from "./component-internal.js";
2
- //#region src/runtime/readable.d.ts
3
- interface DerivedSubscriber {
4
- _markDirty(): void;
5
- _pendingDependencySources?: Set<ReadableSource<unknown>>;
6
- }
7
- interface ReadableSource<T = unknown> {
8
- (): T;
9
- _hasBeenRead?: boolean;
10
- _hasEverBeenRead?: boolean;
11
- _readers?: Map<ComponentInstance, number>;
12
- _derivedSubscribers?: Set<DerivedSubscriber>;
13
- _version?: number;
14
- }
15
- declare function markReadableUsage(source: unknown): void;
16
- declare function recordReadableRead(source: ReadableSource<unknown>): void;
17
- declare function withFineGrainedReadTracking<T>(pendingSources: Set<ReadableSource<unknown>>, fn: () => T): T;
18
- declare function finalizeReadableSubscriptions(instance: ComponentInstance): void;
19
- declare function finalizeReadableSubscriptionsFromSnapshot(instance: ComponentInstance, token: number | undefined, newSet: Set<ReadableSource<unknown>> | undefined, pendingReadSourceVersions?: Map<ReadableSource<unknown>, number> | undefined): void;
20
- declare function cleanupReadableSubscriptions(instance: ComponentInstance): void;
21
- declare function withDerivedReadTracking<T>(subscriber: DerivedSubscriber, fn: () => T): T;
22
- declare function syncDerivedDependencySubscriptions(subscriber: DerivedSubscriber, prevSources: Set<ReadableSource<unknown>>, nextSources: Set<ReadableSource<unknown>>): void;
23
- declare function clearDerivedDependencySubscriptions(subscriber: DerivedSubscriber, sources: Set<ReadableSource<unknown>>): void;
24
- declare function markReadableDerivedSubscribersDirty(source: ReadableSource<unknown>): void;
25
- declare function markReactivePropsDirtySource(source: ReadableSource<unknown>): void;
26
- declare function notifyReadableReaders(source: ReadableSource<unknown>, skipInstance?: ComponentInstance | null): boolean;
27
- //#endregion
28
- export { DerivedSubscriber, ReadableSource };
29
- //# sourceMappingURL=readable.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"readable.d.ts","names":[],"sources":["../../src/runtime/readable.ts"],"mappings":";;UAMiB,iBAAA;EACf,UAAA;EACA,yBAAA,GAA4B,GAAG,CAAC,cAAA;AAAA;AAAA,UAGjB,cAAA;EAAA,IACX,CAAA;EACJ,YAAA;EACA,gBAAA;EACA,QAAA,GAAW,GAAA,CAAI,iBAAA;EACf,mBAAA,GAAsB,GAAA,CAAI,iBAAA;EAC1B,QAAA;AAAA;AAAA,iBAGc,iBAAA,CAAkB,MAAe;AAAA,iBAkCjC,kBAAA,CAAmB,MAA+B,EAAvB,cAAc;AAAA,iBAsCzC,2BAAA,IACd,cAAA,EAAgB,GAAA,CAAI,cAAA,YACpB,EAAA,QAAU,CAAA,GACT,CAAA;AAAA,iBAWa,6BAAA,CACd,QAA2B,EAAjB,iBAAiB;AAAA,iBAiBb,yCAAA,CACd,QAAA,EAAU,iBAAA,EACV,KAAA,sBACA,MAAA,EAAQ,GAAA,CAAI,cAAA,wBACZ,yBAAA,GACI,GAAA,CAAI,cAAA;AAAA,iBAkDM,4BAAA,CACd,QAA2B,EAAjB,iBAAiB;AAAA,iBAiBb,uBAAA,IACd,UAAA,EAAY,iBAAA,EACZ,EAAA,QAAU,CAAA,GACT,CAAA;AAAA,iBAaa,kCAAA,CACd,UAAA,EAAY,iBAAA,EACZ,WAAA,EAAa,GAAA,CAAI,cAAA,YACjB,WAAA,EAAa,GAAA,CAAI,cAAA;AAAA,iBAkBH,mCAAA,CACd,UAAA,EAAY,iBAAA,EACZ,OAAA,EAAS,GAAA,CAAI,cAAA;AAAA,iBAQC,mCAAA,CACd,MAA+B,EAAvB,cAAc;AAAA,iBAYR,4BAAA,CACd,MAA+B,EAAvB,cAAc;AAAA,iBASR,qBAAA,CACd,MAAA,EAAQ,cAAA,WACR,YAAA,GAAe,iBAAiB"}