@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,43 +0,0 @@
1
- import { __ERROR_BOUNDARY__ } from "../common/vnode.js";
2
- import { ELEMENT_TYPE } from "../common/jsx.js";
3
- import { getCurrentComponentInstance } from "../runtime/component-scope.js";
4
- import "../runtime/index.js";
5
- //#region src/components/error-boundary.tsx
6
- function ensureBoundaryState(instance, resetKey) {
7
- const boundaryState = instance.errorBoundaryState ?? (instance.errorBoundaryState = {
8
- error: null,
9
- resetKey,
10
- notified: false
11
- });
12
- if (!Object.is(boundaryState.resetKey, resetKey)) {
13
- boundaryState.error = null;
14
- boundaryState.resetKey = resetKey;
15
- boundaryState.notified = false;
16
- }
17
- return boundaryState;
18
- }
19
- function createBoundaryVNode(instance, props) {
20
- const key = typeof props.key === "symbol" ? null : props.key ?? null;
21
- return {
22
- $$typeof: ELEMENT_TYPE,
23
- type: __ERROR_BOUNDARY__,
24
- props: {
25
- children: props.children,
26
- fallback: props.fallback,
27
- onError: props.onError,
28
- resetKey: props.resetKey
29
- },
30
- key,
31
- __instance: instance
32
- };
33
- }
34
- function ErrorBoundary(props) {
35
- const instance = getCurrentComponentInstance();
36
- if (!instance) throw new Error("[Askr] ErrorBoundary() can only be used during component render execution.");
37
- ensureBoundaryState(instance, props.resetKey);
38
- return createBoundaryVNode(instance, props);
39
- }
40
- //#endregion
41
- export { ErrorBoundary };
42
-
43
- //# sourceMappingURL=error-boundary.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"error-boundary.js","names":[],"sources":["../../src/components/error-boundary.tsx"],"sourcesContent":["import type {\n ErrorBoundaryFallbackRender,\n ErrorBoundaryProps,\n} from '../common/error-boundary';\nimport { ELEMENT_TYPE, type JSXElement } from '../common/jsx';\nimport { __ERROR_BOUNDARY__ } from '../common/vnode';\nimport {\n getCurrentComponentInstance,\n type ComponentInstance,\n} from '../runtime';\n\nexport type { ErrorBoundaryFallbackRender, ErrorBoundaryProps };\n\ntype ErrorBoundaryState = NonNullable<ComponentInstance['errorBoundaryState']>;\n\ntype ErrorBoundaryVNode = JSXElement & {\n __instance?: ComponentInstance;\n};\n\nfunction ensureBoundaryState(\n instance: ComponentInstance,\n resetKey: unknown\n): ErrorBoundaryState {\n const boundaryState =\n instance.errorBoundaryState ??\n (instance.errorBoundaryState = {\n error: null,\n resetKey,\n notified: false,\n });\n\n if (!Object.is(boundaryState.resetKey, resetKey)) {\n boundaryState.error = null;\n boundaryState.resetKey = resetKey;\n boundaryState.notified = false;\n }\n\n return boundaryState;\n}\n\nfunction createBoundaryVNode(\n instance: ComponentInstance,\n props: ErrorBoundaryProps\n): ErrorBoundaryVNode {\n const key =\n typeof props.key === 'symbol'\n ? null\n : ((props.key ?? null) as string | number | null);\n\n return {\n $$typeof: ELEMENT_TYPE,\n type: __ERROR_BOUNDARY__,\n props: {\n children: props.children,\n fallback: props.fallback,\n onError: props.onError,\n resetKey: props.resetKey,\n },\n key,\n __instance: instance,\n };\n}\n\nexport function ErrorBoundary(props: ErrorBoundaryProps): JSXElement {\n const instance = getCurrentComponentInstance();\n if (!instance) {\n throw new Error(\n '[Askr] ErrorBoundary() can only be used during component render execution.'\n );\n }\n\n ensureBoundaryState(instance, props.resetKey);\n return createBoundaryVNode(instance, props);\n}\n\nexport function isErrorBoundaryVNode(\n value: unknown\n): value is ErrorBoundaryVNode {\n return (\n typeof value === 'object' &&\n value !== null &&\n (value as ErrorBoundaryVNode).type === __ERROR_BOUNDARY__\n );\n}\n\nexport function resolveErrorBoundaryState(\n vnode: ErrorBoundaryVNode\n): ErrorBoundaryState | null {\n return vnode.__instance?.errorBoundaryState ?? null;\n}\n"],"mappings":";;;;;AAmBA,SAAS,oBACP,UACA,UACoB;CACpB,MAAM,gBACJ,SAAS,uBACR,SAAS,qBAAqB;EAC7B,OAAO;EACP;EACA,UAAU;CACZ;CAEF,IAAI,CAAC,OAAO,GAAG,cAAc,UAAU,QAAQ,GAAG;EAChD,cAAc,QAAQ;EACtB,cAAc,WAAW;EACzB,cAAc,WAAW;CAC3B;CAEA,OAAO;AACT;AAEA,SAAS,oBACP,UACA,OACoB;CACpB,MAAM,MACJ,OAAO,MAAM,QAAQ,WACjB,OACE,MAAM,OAAO;CAErB,OAAO;EACL,UAAU;EACV,MAAM;EACN,OAAO;GACL,UAAU,MAAM;GAChB,UAAU,MAAM;GAChB,SAAS,MAAM;GACf,UAAU,MAAM;EAClB;EACA;EACA,YAAY;CACd;AACF;AAEA,SAAgB,cAAc,OAAuC;CACnE,MAAM,WAAW,4BAA4B;CAC7C,IAAI,CAAC,UACH,MAAM,IAAI,MACR,4EACF;CAGF,oBAAoB,UAAU,MAAM,QAAQ;CAC5C,OAAO,oBAAoB,UAAU,KAAK;AAC5C"}
@@ -1,68 +0,0 @@
1
- import { Props } from "../common/props.js";
2
- import { JSXElement } from "../common/jsx.js";
3
- import { RenderableChild } from "../common/vnode.js";
4
- //#region src/components/link.d.ts
5
- type LinkProps = Omit<Props, 'children' | 'href' | 'class' | 'rel' | 'target' | 'aria-current' | 'aria-label'> & {
6
- href: string;
7
- class?: string;
8
- children?: RenderableChild;
9
- /**
10
- * Optional rel attribute for link relationships.
11
- * Common values: "noopener", "noreferrer", "nofollow"
12
- */
13
- rel?: string;
14
- /**
15
- * Optional target attribute.
16
- * Use "_blank" for new tab/window.
17
- */
18
- target?: string;
19
- /**
20
- * Optional aria-current attribute for indicating current page/location.
21
- * Use "page" for the current page in navigation.
22
- */
23
- 'aria-current'?: 'page' | 'step' | 'location' | 'date' | 'time' | 'true' | 'false';
24
- /**
25
- * Optional aria-label for accessibility when link text isn't descriptive enough.
26
- */
27
- 'aria-label'?: string;
28
- };
29
- /**
30
- * Link component that prevents default navigation and uses navigate()
31
- * Provides declarative way to navigate between routes
32
- *
33
- * Accessibility features:
34
- * - Proper semantic <a> element (not a button)
35
- * - Supports aria-current for indicating active page
36
- * - Supports aria-label for descriptive labels
37
- * - Keyboard accessible (Enter key handled by native <a> element)
38
- *
39
- * Respects native browser behaviors:
40
- * - Middle-click (opens in new tab)
41
- * - Ctrl/Cmd+click (opens in new tab)
42
- * - Shift+click (opens in new window)
43
- * - Alt+click (downloads link)
44
- * - Right-click context menu
45
- *
46
- * Best practices:
47
- * - Use target="_blank" with rel="noopener noreferrer" for external links
48
- * - Use aria-current="page" for the current page in navigation
49
- * - Provide descriptive link text or aria-label
50
- *
51
- * Uses applyInteractionPolicy to enforce pit-of-success principles:
52
- * - Interaction behavior centralized in foundations
53
- * - Keyboard handling automatic
54
- * - Composable via mergeProps
55
- */
56
- declare function Link({
57
- href,
58
- class: className,
59
- children,
60
- rel,
61
- target,
62
- 'aria-current': ariaCurrent,
63
- 'aria-label': ariaLabel,
64
- ...rest
65
- }: LinkProps): JSXElement;
66
- //#endregion
67
- export { Link, LinkProps };
68
- //# sourceMappingURL=link.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"link.d.ts","names":[],"sources":["../../src/components/link.tsx"],"mappings":";;;;KAYY,SAAA,GAAY,IAAA,CACtB,KAAA;EASA,IAAA;EACA,KAAA;EACA,QAAA,GAAW,eAAA;EAAA;;;;EAKX,GAAA;EAPA;;;;EAYA,MAAA;EAAA;;;;EAKA,cAAA;EAyDc;;;EA9Cd,YAAA;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;AAuDuB;;iBATT,IAAA;EACd,IAAA;EACA,KAAA,EAAO,SAAA;EACP,QAAA;EACA,GAAA;EACA,MAAA;EAAA,gBACgB,WAAA;EAAA,cACF,SAAA;EAAA,GACX;AAAA,GACF,SAAA,GAAY,UAAA"}
@@ -1,76 +0,0 @@
1
- import "../jsx/types.js";
2
- import { jsx } from "../jsx-runtime.js";
3
- import "../jsx-runtime2.js";
4
- import { navigate } from "../router/navigate.js";
5
- import { mergeProps } from "../foundations/utilities/merge-props.js";
6
- import "../foundations/utilities/index.js";
7
- import { applyInteractionPolicy } from "../foundations/interactions/interaction-policy.js";
8
- import "../foundations/interactions/index.js";
9
- //#region src/components/link.tsx
10
- /**
11
- * Link component for client-side navigation
12
- */
13
- function isSameOriginNavigableHref(href) {
14
- if (typeof window === "undefined") return true;
15
- try {
16
- const target = new URL(href, window.location.href);
17
- return target.origin === window.location.origin && (target.protocol === "http:" || target.protocol === "https:");
18
- } catch {
19
- return false;
20
- }
21
- }
22
- /**
23
- * Link component that prevents default navigation and uses navigate()
24
- * Provides declarative way to navigate between routes
25
- *
26
- * Accessibility features:
27
- * - Proper semantic <a> element (not a button)
28
- * - Supports aria-current for indicating active page
29
- * - Supports aria-label for descriptive labels
30
- * - Keyboard accessible (Enter key handled by native <a> element)
31
- *
32
- * Respects native browser behaviors:
33
- * - Middle-click (opens in new tab)
34
- * - Ctrl/Cmd+click (opens in new tab)
35
- * - Shift+click (opens in new window)
36
- * - Alt+click (downloads link)
37
- * - Right-click context menu
38
- *
39
- * Best practices:
40
- * - Use target="_blank" with rel="noopener noreferrer" for external links
41
- * - Use aria-current="page" for the current page in navigation
42
- * - Provide descriptive link text or aria-label
43
- *
44
- * Uses applyInteractionPolicy to enforce pit-of-success principles:
45
- * - Interaction behavior centralized in foundations
46
- * - Keyboard handling automatic
47
- * - Composable via mergeProps
48
- */
49
- function Link({ href, class: className, children, rel, target, "aria-current": ariaCurrent, "aria-label": ariaLabel, ...rest }) {
50
- return /* @__PURE__ */ jsx("a", {
51
- ...mergeProps(rest, {
52
- ...applyInteractionPolicy({
53
- isNative: true,
54
- disabled: false,
55
- onPress: (e) => {
56
- const event = e;
57
- if ((event.button ?? 0) !== 0 || event.ctrlKey || event.metaKey || event.shiftKey || event.altKey) return;
58
- if (target || !isSameOriginNavigableHref(href)) return;
59
- event.preventDefault();
60
- navigate(href);
61
- }
62
- }),
63
- href,
64
- class: className,
65
- rel,
66
- target,
67
- "aria-current": ariaCurrent,
68
- "aria-label": ariaLabel
69
- }),
70
- children
71
- });
72
- }
73
- //#endregion
74
- export { Link };
75
-
76
- //# sourceMappingURL=link.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"link.js","names":[],"sources":["../../src/components/link.tsx"],"sourcesContent":["/**\n * Link component for client-side navigation\n */\n\nimport '../jsx/types';\nimport type { JSXElement } from '../common/jsx';\nimport type { AnchorIntrinsicProps, Props } from '../common/props';\nimport type { RenderableChild } from '../common/vnode';\nimport { navigate } from '../router/navigate';\nimport { applyInteractionPolicy } from '../foundations/interactions';\nimport { mergeProps } from '../foundations/utilities';\n\nexport type LinkProps = Omit<\n Props,\n | 'children'\n | 'href'\n | 'class'\n | 'rel'\n | 'target'\n | 'aria-current'\n | 'aria-label'\n> & {\n href: string;\n class?: string;\n children?: RenderableChild;\n /**\n * Optional rel attribute for link relationships.\n * Common values: \"noopener\", \"noreferrer\", \"nofollow\"\n */\n rel?: string;\n /**\n * Optional target attribute.\n * Use \"_blank\" for new tab/window.\n */\n target?: string;\n /**\n * Optional aria-current attribute for indicating current page/location.\n * Use \"page\" for the current page in navigation.\n */\n 'aria-current'?:\n | 'page'\n | 'step'\n | 'location'\n | 'date'\n | 'time'\n | 'true'\n | 'false';\n /**\n * Optional aria-label for accessibility when link text isn't descriptive enough.\n */\n 'aria-label'?: string;\n};\n\nfunction isSameOriginNavigableHref(href: string): boolean {\n if (typeof window === 'undefined') {\n return true;\n }\n\n try {\n const target = new URL(href, window.location.href);\n return (\n target.origin === window.location.origin &&\n (target.protocol === 'http:' || target.protocol === 'https:')\n );\n } catch {\n return false;\n }\n}\n\n/**\n * Link component that prevents default navigation and uses navigate()\n * Provides declarative way to navigate between routes\n *\n * Accessibility features:\n * - Proper semantic <a> element (not a button)\n * - Supports aria-current for indicating active page\n * - Supports aria-label for descriptive labels\n * - Keyboard accessible (Enter key handled by native <a> element)\n *\n * Respects native browser behaviors:\n * - Middle-click (opens in new tab)\n * - Ctrl/Cmd+click (opens in new tab)\n * - Shift+click (opens in new window)\n * - Alt+click (downloads link)\n * - Right-click context menu\n *\n * Best practices:\n * - Use target=\"_blank\" with rel=\"noopener noreferrer\" for external links\n * - Use aria-current=\"page\" for the current page in navigation\n * - Provide descriptive link text or aria-label\n *\n * Uses applyInteractionPolicy to enforce pit-of-success principles:\n * - Interaction behavior centralized in foundations\n * - Keyboard handling automatic\n * - Composable via mergeProps\n */\nexport function Link({\n href,\n class: className,\n children,\n rel,\n target,\n 'aria-current': ariaCurrent,\n 'aria-label': ariaLabel,\n ...rest\n}: LinkProps): JSXElement {\n const interaction = applyInteractionPolicy({\n isNative: true,\n disabled: false,\n onPress: (e: Event) => {\n const event = e as MouseEvent;\n\n // Only intercept left-click without modifiers\n // Default button to 0 if undefined (for mock events in tests)\n const button = event.button ?? 0;\n if (\n button !== 0 || // not left-click\n event.ctrlKey || // Ctrl/Cmd+click\n event.metaKey || // Cmd on Mac\n event.shiftKey || // Shift+click\n event.altKey // Alt+click\n ) {\n return; // Let browser handle it (new tab, etc.)\n }\n\n // Don't intercept external links or explicit target.\n if (target || !isSameOriginNavigableHref(href)) {\n return; // Let browser handle it\n }\n\n event.preventDefault();\n navigate(href);\n },\n });\n\n const props = mergeProps(rest, {\n ...interaction,\n href,\n class: className,\n rel,\n target,\n 'aria-current': ariaCurrent,\n 'aria-label': ariaLabel,\n });\n\n return <a {...(props as AnchorIntrinsicProps)}>{children}</a>;\n}\n"],"mappings":";;;;;;;;;;;;AAqDA,SAAS,0BAA0B,MAAuB;CACxD,IAAI,OAAO,WAAW,aACpB,OAAO;CAGT,IAAI;EACF,MAAM,SAAS,IAAI,IAAI,MAAM,OAAO,SAAS,IAAI;EACjD,OACE,OAAO,WAAW,OAAO,SAAS,WACjC,OAAO,aAAa,WAAW,OAAO,aAAa;CAExD,QAAQ;EACN,OAAO;CACT;AACF;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6BA,SAAgB,KAAK,EACnB,MACA,OAAO,WACP,UACA,KACA,QACA,gBAAgB,aAChB,cAAc,WACd,GAAG,QACqB;CAwCxB,OAAO,oBAAC,KAAD;EAAG,GAVI,WAAW,MAAM;GAC7B,GA9BkB,uBAAuB;IACzC,UAAU;IACV,UAAU;IACV,UAAU,MAAa;KACrB,MAAM,QAAQ;KAKd,KADe,MAAM,UAAU,OAElB,KACX,MAAM,WACN,MAAM,WACN,MAAM,YACN,MAAM,QAEN;KAIF,IAAI,UAAU,CAAC,0BAA0B,IAAI,GAC3C;KAGF,MAAM,eAAe;KACrB,SAAS,IAAI;IACf;GACF,CAGK;GACH;GACA,OAAO;GACP;GACA;GACA,gBAAgB;GAChB,cAAc;EAChB,CAEe;EAAiC;CAAY,CAAA;AAC9D"}
@@ -1,19 +0,0 @@
1
- import { JSXElement } from "../common/jsx.js";
2
- import { BoundaryChild } from "./shared.js";
3
-
4
- //#region src/control/case.d.ts
5
- type MatchChild = BoundaryChild | (() => BoundaryChild);
6
- type MatchProps = {
7
- key?: string | number | null;
8
- when: unknown;
9
- children: MatchChild;
10
- };
11
- type CaseProps = {
12
- fallback?: BoundaryChild;
13
- children?: unknown;
14
- };
15
- declare function Match(_props: MatchProps): null;
16
- declare const Case: (props: CaseProps) => JSXElement;
17
- //#endregion
18
- export { Case, CaseProps, Match, MatchProps };
19
- //# sourceMappingURL=case.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"case.d.ts","names":[],"sources":["../../src/control/case.ts"],"mappings":";;;;KAWK,UAAA,GAAa,aAAA,UAAuB,aAAa;AAAA,KAE1C,UAAA;EACV,GAAA;EACA,IAAA;EACA,QAAA,EAAU,UAAU;AAAA;AAAA,KAGV,SAAA;EACV,QAAA,GAAW,aAAa;EACxB,QAAA;AAAA;AAAA,iBAmBc,KAAA,CAAM,MAAkB,EAAV,UAAU;AAAA,cAyF3B,IAAA,GAEP,KAAA,EAAO,SAAA,KAAc,UAAU"}
@@ -1,70 +0,0 @@
1
- import { __CONTROL_BOUNDARY__, markEagerControlPrimitive } from "../common/control.js";
2
- import { isDevelopmentEnvironment } from "../common/env.js";
3
- import { createCaseState } from "../runtime/control.js";
4
- import { state } from "../runtime/state.js";
5
- import "../runtime/index.js";
6
- import { normalizeBoundaryChild } from "./shared.js";
7
- //#region src/control/case.ts
8
- function flattenChildren(children) {
9
- if (!Array.isArray(children)) return children == null || children === false ? [] : [children];
10
- const result = [];
11
- for (const child of children) {
12
- if (Array.isArray(child)) {
13
- result.push(...flattenChildren(child));
14
- continue;
15
- }
16
- result.push(child);
17
- }
18
- return result;
19
- }
20
- function Match(_props) {
21
- if (isDevelopmentEnvironment()) throw new Error("[askr] <Match> may only be used as a direct child of <Case>.");
22
- return null;
23
- }
24
- function createCaseFallbackRenderer(fallback) {
25
- const normalizedFallback = normalizeBoundaryChild(fallback);
26
- if (normalizedFallback == null || normalizedFallback === false) return null;
27
- return () => normalizedFallback;
28
- }
29
- function createMatchBranchKey(key, index) {
30
- if (key == null) return index;
31
- return `match:${index}:${typeof key}:${String(key)}`;
32
- }
33
- function readMatchBranches(children) {
34
- const branches = [];
35
- const flatChildren = flattenChildren(children);
36
- for (let index = 0; index < flatChildren.length; index += 1) {
37
- const child = flatChildren[index];
38
- if (child == null || child === false) continue;
39
- if (typeof child === "object" && child !== null && "type" in child && child.type === Match) {
40
- const element = child;
41
- const props = element.props ?? {};
42
- const key = createMatchBranchKey(element.key, index);
43
- const render = typeof props.children === "function" ? () => normalizeBoundaryChild(props.children()) : () => normalizeBoundaryChild(props.children);
44
- branches.push({
45
- key,
46
- render,
47
- when: props.when
48
- });
49
- continue;
50
- }
51
- if (isDevelopmentEnvironment()) throw new Error("[askr] <Case> only accepts <Match> children.");
52
- }
53
- return branches;
54
- }
55
- function CasePrimitive(props) {
56
- const matches = readMatchBranches(props.children);
57
- const fallback = createCaseFallbackRenderer(props.fallback);
58
- const caseState = state(createCaseState(matches, fallback))();
59
- caseState.matches = matches;
60
- caseState.fallback = fallback;
61
- return {
62
- type: __CONTROL_BOUNDARY__,
63
- _controlState: caseState
64
- };
65
- }
66
- const Case = markEagerControlPrimitive(CasePrimitive);
67
- //#endregion
68
- export { Case, Match };
69
-
70
- //# sourceMappingURL=case.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"case.js","names":[],"sources":["../../src/control/case.ts"],"sourcesContent":["import {\n __CONTROL_BOUNDARY__,\n markEagerControlPrimitive,\n} from '../common/control';\nimport type { JSXElement } from '../common/jsx';\nimport type { VNode } from '../common/vnode';\nimport { isDevelopmentEnvironment } from '../common/env';\nimport { createCaseState, type CaseState, type MatchBranch } from '../runtime';\nimport { state } from '../runtime';\nimport { type BoundaryChild, normalizeBoundaryChild } from './shared';\n\ntype MatchChild = BoundaryChild | (() => BoundaryChild);\n\nexport type MatchProps = {\n key?: string | number | null;\n when: unknown;\n children: MatchChild;\n};\n\nexport type CaseProps = {\n fallback?: BoundaryChild;\n children?: unknown;\n};\n\nfunction flattenChildren(children: unknown): unknown[] {\n if (!Array.isArray(children)) {\n return children == null || children === false ? [] : [children];\n }\n\n const result: unknown[] = [];\n for (const child of children) {\n if (Array.isArray(child)) {\n result.push(...flattenChildren(child));\n continue;\n }\n result.push(child);\n }\n return result;\n}\n\nexport function Match(_props: MatchProps): null {\n if (isDevelopmentEnvironment()) {\n throw new Error(\n '[askr] <Match> may only be used as a direct child of <Case>.'\n );\n }\n return null;\n}\n\nfunction createCaseFallbackRenderer(\n fallback: BoundaryChild | undefined\n): (() => VNode) | null {\n const normalizedFallback = normalizeBoundaryChild(fallback);\n if (normalizedFallback == null || normalizedFallback === false) {\n return null;\n }\n return () => normalizedFallback;\n}\n\nfunction createMatchBranchKey(\n key: string | number | null | undefined,\n index: number\n): string | number {\n if (key == null) {\n return index;\n }\n return `match:${index}:${typeof key}:${String(key)}`;\n}\n\nfunction readMatchBranches(children: unknown): MatchBranch[] {\n const branches: MatchBranch[] = [];\n const flatChildren = flattenChildren(children);\n\n for (let index = 0; index < flatChildren.length; index += 1) {\n const child = flatChildren[index];\n if (child == null || child === false) {\n continue;\n }\n\n if (\n typeof child === 'object' &&\n child !== null &&\n 'type' in child &&\n (child as JSXElement).type === Match\n ) {\n const element = child as JSXElement;\n const props = (element.props ?? {}) as MatchProps;\n const key = createMatchBranchKey(element.key, index);\n const render =\n typeof props.children === 'function'\n ? () =>\n normalizeBoundaryChild(\n (props.children as () => BoundaryChild)()\n ) as VNode\n : () => normalizeBoundaryChild(props.children) as VNode;\n branches.push({\n key,\n render,\n when: props.when,\n });\n continue;\n }\n\n if (isDevelopmentEnvironment()) {\n throw new Error('[askr] <Case> only accepts <Match> children.');\n }\n }\n\n return branches;\n}\n\nfunction CasePrimitive(props: CaseProps): JSXElement {\n const matches = readMatchBranches(props.children);\n const fallback = createCaseFallbackRenderer(props.fallback);\n\n const caseStateContainer = state<CaseState>(\n createCaseState(matches, fallback)\n );\n const caseState = caseStateContainer();\n\n caseState.matches = matches;\n caseState.fallback = fallback;\n\n return {\n type: __CONTROL_BOUNDARY__,\n _controlState: caseState,\n } as unknown as JSXElement;\n}\n\nexport const Case = markEagerControlPrimitive(\n CasePrimitive as (props: CaseProps) => JSXElement\n) as (props: CaseProps) => JSXElement;\n"],"mappings":";;;;;;;AAwBA,SAAS,gBAAgB,UAA8B;CACrD,IAAI,CAAC,MAAM,QAAQ,QAAQ,GACzB,OAAO,YAAY,QAAQ,aAAa,QAAQ,CAAC,IAAI,CAAC,QAAQ;CAGhE,MAAM,SAAoB,CAAC;CAC3B,KAAK,MAAM,SAAS,UAAU;EAC5B,IAAI,MAAM,QAAQ,KAAK,GAAG;GACxB,OAAO,KAAK,GAAG,gBAAgB,KAAK,CAAC;GACrC;EACF;EACA,OAAO,KAAK,KAAK;CACnB;CACA,OAAO;AACT;AAEA,SAAgB,MAAM,QAA0B;CAC9C,IAAI,yBAAyB,GAC3B,MAAM,IAAI,MACR,8DACF;CAEF,OAAO;AACT;AAEA,SAAS,2BACP,UACsB;CACtB,MAAM,qBAAqB,uBAAuB,QAAQ;CAC1D,IAAI,sBAAsB,QAAQ,uBAAuB,OACvD,OAAO;CAET,aAAa;AACf;AAEA,SAAS,qBACP,KACA,OACiB;CACjB,IAAI,OAAO,MACT,OAAO;CAET,OAAO,SAAS,MAAM,GAAG,OAAO,IAAI,GAAG,OAAO,GAAG;AACnD;AAEA,SAAS,kBAAkB,UAAkC;CAC3D,MAAM,WAA0B,CAAC;CACjC,MAAM,eAAe,gBAAgB,QAAQ;CAE7C,KAAK,IAAI,QAAQ,GAAG,QAAQ,aAAa,QAAQ,SAAS,GAAG;EAC3D,MAAM,QAAQ,aAAa;EAC3B,IAAI,SAAS,QAAQ,UAAU,OAC7B;EAGF,IACE,OAAO,UAAU,YACjB,UAAU,QACV,UAAU,SACT,MAAqB,SAAS,OAC/B;GACA,MAAM,UAAU;GAChB,MAAM,QAAS,QAAQ,SAAS,CAAC;GACjC,MAAM,MAAM,qBAAqB,QAAQ,KAAK,KAAK;GACnD,MAAM,SACJ,OAAO,MAAM,aAAa,mBAEpB,uBACG,MAAM,SAAiC,CAC1C,UACI,uBAAuB,MAAM,QAAQ;GACjD,SAAS,KAAK;IACZ;IACA;IACA,MAAM,MAAM;GACd,CAAC;GACD;EACF;EAEA,IAAI,yBAAyB,GAC3B,MAAM,IAAI,MAAM,8CAA8C;CAElE;CAEA,OAAO;AACT;AAEA,SAAS,cAAc,OAA8B;CACnD,MAAM,UAAU,kBAAkB,MAAM,QAAQ;CAChD,MAAM,WAAW,2BAA2B,MAAM,QAAQ;CAK1D,MAAM,YAHqB,MACzB,gBAAgB,SAAS,QAAQ,CAEjB,CAAA,CAAmB;CAErC,UAAU,UAAU;CACpB,UAAU,WAAW;CAErB,OAAO;EACL,MAAM;EACN,eAAe;CACjB;AACF;AAEA,MAAa,OAAO,0BAClB,aACF"}
@@ -1,24 +0,0 @@
1
- import { JSXElement } from "../common/jsx.js";
2
- import { ForEachSource } from "../runtime/for-types.js";
3
- import { VNode } from "../common/vnode.js";
4
- import { BoundaryChild } from "./shared.js";
5
-
6
- //#region src/control/for.d.ts
7
- type ForBaseProps<T> = {
8
- each: ForEachSource<T>;
9
- fallback?: BoundaryChild;
10
- children: (item: T, index: () => number) => VNode;
11
- };
12
- type KeyedForProps<T, K extends string | number> = ForBaseProps<T> & {
13
- by: (item: T, index: number) => K;
14
- byIndex?: never;
15
- };
16
- type IndexedForProps<T> = ForBaseProps<T> & {
17
- by?: never;
18
- byIndex: true;
19
- };
20
- type ForProps<T, K extends string | number = string | number> = KeyedForProps<T, K> | IndexedForProps<T>;
21
- declare const For: <T, K extends string | number = string | number>(props: ForProps<T, K>) => JSXElement;
22
- //#endregion
23
- export { For, ForProps };
24
- //# sourceMappingURL=for.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"for.d.ts","names":[],"sources":["../../src/control/for.ts"],"mappings":";;;;;;KAoBK,YAAA;EACH,IAAA,EAAM,aAAA,CAAc,CAAA;EACpB,QAAA,GAAW,aAAA;EACX,QAAA,GAAW,IAAA,EAAM,CAAA,EAAG,KAAA,mBAAwB,KAAA;AAAA;AAAA,KAGzC,aAAA,iCAA8C,YAAA,CAAa,CAAA;EAC9D,EAAA,GAAK,IAAA,EAAM,CAAA,EAAG,KAAA,aAAkB,CAAA;EAChC,OAAA;AAAA;AAAA,KAGG,eAAA,MAAqB,YAAY,CAAC,CAAA;EACrC,EAAA;EACA,OAAA;AAAA;AAAA,KAGU,QAAA,mDACR,aAAA,CAAc,CAAA,EAAG,CAAA,IACjB,eAAA,CAAgB,CAAA;AAAA,cA0EP,GAAA,mDAKX,KAAA,EAAO,QAAA,CAAS,CAAA,EAAG,CAAA,MAChB,UAAA"}
@@ -1,63 +0,0 @@
1
- import { __CONTROL_BOUNDARY__, markEagerControlPrimitive } from "../common/control.js";
2
- import { createFineGrainedEffect } from "../runtime/effect.js";
3
- import { useForState } from "../runtime/for-internal.js";
4
- import "../runtime/index.js";
5
- import { normalizeBoundaryChild } from "./shared.js";
6
- //#region src/control/for.ts
7
- /**
8
- * For JSX primitive
9
- *
10
- * Creates a keyed child-scope boundary for efficient list rendering.
11
- */
12
- function resolveEach(each) {
13
- const resolved = typeof each === "function" ? each() : each;
14
- if (!Array.isArray(resolved)) throw new Error("For each must resolve to an array.");
15
- return resolved;
16
- }
17
- function resolveKeyFn(props) {
18
- if ("by" in props && typeof props.by === "function") return props.by;
19
- if ("byIndex" in props && props.byIndex === true) return (_item, index) => index;
20
- throw new Error("[askr] <For> requires a stable `by` key function. Use `byIndex` only as an explicit positional escape hatch.");
21
- }
22
- function createForBoundary(props) {
23
- if ("by" in props && typeof props.by === "function" && "byIndex" in props) throw new Error("[askr] <For> accepts either `by` or `byIndex`, not both.");
24
- const byFn = resolveKeyFn(props);
25
- const fallback = normalizeBoundaryChild(props.fallback);
26
- const forState = useForState(props.each, byFn, props.children, fallback);
27
- const computeItems = () => resolveEach(forState.eachSource);
28
- if (!forState._sourceEffect) {
29
- forState._suspendSourceCommit = true;
30
- forState._sourceEffect = createFineGrainedEffect({
31
- lane: "reactive",
32
- compute: computeItems,
33
- commit: (items) => {
34
- forState.currentItems = items;
35
- if (forState._suspendSourceCommit) return;
36
- forState._needsSourceReconcile = true;
37
- if (forState._enqueueBoundaryCommit) {
38
- forState._enqueueBoundaryCommit();
39
- return;
40
- }
41
- forState.parentInstance?._enqueueRun?.();
42
- }
43
- });
44
- forState._suspendSourceCommit = false;
45
- } else {
46
- forState._suspendSourceCommit = true;
47
- forState._sourceEffect.updateCompute(computeItems);
48
- forState._suspendSourceCommit = false;
49
- }
50
- return {
51
- type: __CONTROL_BOUNDARY__,
52
- _controlState: forState,
53
- _forState: forState
54
- };
55
- }
56
- function ForPrimitive(props) {
57
- return createForBoundary(props);
58
- }
59
- const For = markEagerControlPrimitive(ForPrimitive);
60
- //#endregion
61
- export { For };
62
-
63
- //# sourceMappingURL=for.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"for.js","names":[],"sources":["../../src/control/for.ts"],"sourcesContent":["/**\n * For JSX primitive\n *\n * Creates a keyed child-scope boundary for efficient list rendering.\n */\n\nimport {\n __CONTROL_BOUNDARY__,\n markEagerControlPrimitive,\n} from '../common/control';\nimport type { JSXElement } from '../common/jsx';\nimport type { DOMElement, VNode } from '../common/vnode';\nimport {\n createFineGrainedEffect,\n type ForEachSource,\n type ForState,\n useForState,\n} from '../runtime';\nimport { type BoundaryChild, normalizeBoundaryChild } from './shared';\n\ntype ForBaseProps<T> = {\n each: ForEachSource<T>;\n fallback?: BoundaryChild;\n children: (item: T, index: () => number) => VNode;\n};\n\ntype KeyedForProps<T, K extends string | number> = ForBaseProps<T> & {\n by: (item: T, index: number) => K;\n byIndex?: never;\n};\n\ntype IndexedForProps<T> = ForBaseProps<T> & {\n by?: never;\n byIndex: true;\n};\n\nexport type ForProps<T, K extends string | number = string | number> =\n | KeyedForProps<T, K>\n | IndexedForProps<T>;\n\nfunction resolveEach<T>(each: ForEachSource<T>): T[] {\n const resolved = typeof each === 'function' ? each() : each;\n if (!Array.isArray(resolved)) {\n throw new Error('For each must resolve to an array.');\n }\n return resolved;\n}\n\nfunction resolveKeyFn<T>(\n props: ForProps<T>\n): (item: T, index: number) => string | number {\n if ('by' in props && typeof props.by === 'function') {\n return props.by;\n }\n if ('byIndex' in props && props.byIndex === true) {\n return (_item, index) => index;\n }\n throw new Error(\n '[askr] <For> requires a stable `by` key function. Use `byIndex` only as an explicit positional escape hatch.'\n );\n}\n\nfunction createForBoundary<T>(props: ForProps<T>): DOMElement {\n if ('by' in props && typeof props.by === 'function' && 'byIndex' in props) {\n throw new Error('[askr] <For> accepts either `by` or `byIndex`, not both.');\n }\n\n const byFn = resolveKeyFn(props);\n const fallback = normalizeBoundaryChild(props.fallback);\n const forState = useForState(props.each, byFn, props.children, fallback);\n\n const computeItems = () => resolveEach(forState.eachSource);\n if (!forState._sourceEffect) {\n forState._suspendSourceCommit = true;\n forState._sourceEffect = createFineGrainedEffect({\n lane: 'reactive',\n compute: computeItems,\n commit: (items) => {\n forState.currentItems = items;\n\n if (forState._suspendSourceCommit) {\n return;\n }\n\n forState._needsSourceReconcile = true;\n\n if (forState._enqueueBoundaryCommit) {\n forState._enqueueBoundaryCommit();\n return;\n }\n\n forState.parentInstance?._enqueueRun?.();\n },\n });\n forState._suspendSourceCommit = false;\n } else {\n forState._suspendSourceCommit = true;\n forState._sourceEffect.updateCompute(computeItems);\n forState._suspendSourceCommit = false;\n }\n\n return {\n type: __CONTROL_BOUNDARY__,\n _controlState: forState as unknown as ForState<unknown>,\n _forState: forState as unknown as ForState<unknown>,\n };\n}\n\nfunction ForPrimitive<T>(props: ForProps<T>): JSXElement {\n return createForBoundary(props) as unknown as JSXElement;\n}\n\nexport const For = markEagerControlPrimitive(\n ForPrimitive as <T, K extends string | number = string | number>(\n props: ForProps<T, K>\n ) => JSXElement\n) as <T, K extends string | number = string | number>(\n props: ForProps<T, K>\n) => JSXElement;\n"],"mappings":";;;;;;;;;;;AAwCA,SAAS,YAAe,MAA6B;CACnD,MAAM,WAAW,OAAO,SAAS,aAAa,KAAK,IAAI;CACvD,IAAI,CAAC,MAAM,QAAQ,QAAQ,GACzB,MAAM,IAAI,MAAM,oCAAoC;CAEtD,OAAO;AACT;AAEA,SAAS,aACP,OAC6C;CAC7C,IAAI,QAAQ,SAAS,OAAO,MAAM,OAAO,YACvC,OAAO,MAAM;CAEf,IAAI,aAAa,SAAS,MAAM,YAAY,MAC1C,QAAQ,OAAO,UAAU;CAE3B,MAAM,IAAI,MACR,8GACF;AACF;AAEA,SAAS,kBAAqB,OAAgC;CAC5D,IAAI,QAAQ,SAAS,OAAO,MAAM,OAAO,cAAc,aAAa,OAClE,MAAM,IAAI,MAAM,0DAA0D;CAG5E,MAAM,OAAO,aAAa,KAAK;CAC/B,MAAM,WAAW,uBAAuB,MAAM,QAAQ;CACtD,MAAM,WAAW,YAAY,MAAM,MAAM,MAAM,MAAM,UAAU,QAAQ;CAEvE,MAAM,qBAAqB,YAAY,SAAS,UAAU;CAC1D,IAAI,CAAC,SAAS,eAAe;EAC3B,SAAS,uBAAuB;EAChC,SAAS,gBAAgB,wBAAwB;GAC/C,MAAM;GACN,SAAS;GACT,SAAS,UAAU;IACjB,SAAS,eAAe;IAExB,IAAI,SAAS,sBACX;IAGF,SAAS,wBAAwB;IAEjC,IAAI,SAAS,wBAAwB;KACnC,SAAS,uBAAuB;KAChC;IACF;IAEA,SAAS,gBAAgB,cAAc;GACzC;EACF,CAAC;EACD,SAAS,uBAAuB;CAClC,OAAO;EACL,SAAS,uBAAuB;EAChC,SAAS,cAAc,cAAc,YAAY;EACjD,SAAS,uBAAuB;CAClC;CAEA,OAAO;EACL,MAAM;EACN,eAAe;EACf,WAAW;CACb;AACF;AAEA,SAAS,aAAgB,OAAgC;CACvD,OAAO,kBAAkB,KAAK;AAChC;AAEA,MAAa,MAAM,0BACjB,YAGF"}
@@ -1,9 +0,0 @@
1
- import { RenderableChild, VNode } from "../common/vnode.js";
2
-
3
- //#region src/control/shared.d.ts
4
- type BoundaryChild = RenderableChild;
5
- declare function normalizeBoundaryChild(value: unknown): VNode | null;
6
- declare function resolveMaybeAccessor<T>(value: T | (() => T)): T;
7
- //#endregion
8
- export { BoundaryChild };
9
- //# sourceMappingURL=shared.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"shared.d.ts","names":[],"sources":["../../src/control/shared.ts"],"mappings":";;;KAGY,aAAA,GAAgB,eAAe;AAAA,iBAE3B,sBAAA,CAAuB,KAAA,YAAiB,KAAK;AAAA,iBAmB7C,oBAAA,IAAwB,KAAA,EAAO,CAAA,UAAW,CAAA,IAAK,CAAA"}
@@ -1,20 +0,0 @@
1
- import { Fragment } from "../common/jsx.js";
2
- //#region src/control/shared.ts
3
- function normalizeBoundaryChild(value) {
4
- if (Array.isArray(value)) {
5
- if (value.length === 0) return null;
6
- if (value.length === 1) return normalizeBoundaryChild(value[0]);
7
- return {
8
- type: Fragment,
9
- props: { children: value }
10
- };
11
- }
12
- return value ?? null;
13
- }
14
- function resolveMaybeAccessor(value) {
15
- return typeof value === "function" ? value() : value;
16
- }
17
- //#endregion
18
- export { normalizeBoundaryChild, resolveMaybeAccessor };
19
-
20
- //# sourceMappingURL=shared.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"shared.js","names":[],"sources":["../../src/control/shared.ts"],"sourcesContent":["import { Fragment } from '../common/jsx';\nimport type { DOMElement, RenderableChild, VNode } from '../common/vnode';\n\nexport type BoundaryChild = RenderableChild;\n\nexport function normalizeBoundaryChild(value: unknown): VNode | null {\n if (Array.isArray(value)) {\n if (value.length === 0) {\n return null;\n }\n if (value.length === 1) {\n return normalizeBoundaryChild(value[0]);\n }\n return {\n type: Fragment,\n props: {\n children: value,\n },\n } as DOMElement;\n }\n\n return (value ?? null) as VNode | null;\n}\n\nexport function resolveMaybeAccessor<T>(value: T | (() => T)): T {\n return typeof value === 'function' ? (value as () => T)() : value;\n}\n"],"mappings":";;AAKA,SAAgB,uBAAuB,OAA8B;CACnE,IAAI,MAAM,QAAQ,KAAK,GAAG;EACxB,IAAI,MAAM,WAAW,GACnB,OAAO;EAET,IAAI,MAAM,WAAW,GACnB,OAAO,uBAAuB,MAAM,EAAE;EAExC,OAAO;GACL,MAAM;GACN,OAAO,EACL,UAAU,MACZ;EACF;CACF;CAEA,OAAQ,SAAS;AACnB;AAEA,SAAgB,qBAAwB,OAAyB;CAC/D,OAAO,OAAO,UAAU,aAAc,MAAkB,IAAI;AAC9D"}
@@ -1,15 +0,0 @@
1
- import { JSXElement } from "../common/jsx.js";
2
- import { BoundaryChild } from "./shared.js";
3
-
4
- //#region src/control/show.d.ts
5
- type ShowSource<T> = T | (() => T);
6
- type Truthy<T> = T extends false | '' | 0 | 0n | null | undefined ? never : T;
7
- type ShowProps<T> = {
8
- when: ShowSource<T>;
9
- fallback?: BoundaryChild;
10
- children: BoundaryChild | ((value: Truthy<T>) => BoundaryChild);
11
- };
12
- declare const Show: <T>(props: ShowProps<T>) => JSXElement;
13
- //#endregion
14
- export { Show, ShowProps };
15
- //# sourceMappingURL=show.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"show.d.ts","names":[],"sources":["../../src/control/show.ts"],"mappings":";;;;KAcK,UAAA,MAAgB,CAAA,UAAW,CAAC;AAAA,KAC5B,MAAA,MAAY,CAAA,0DAA2D,CAAC;AAAA,KAEjE,SAAA;EACV,IAAA,EAAM,UAAA,CAAW,CAAA;EACjB,QAAA,GAAW,aAAA;EACX,QAAA,EAAU,aAAA,KAAkB,KAAA,EAAO,MAAA,CAAO,CAAA,MAAO,aAAA;AAAA;AAAA,cA+CtC,IAAA,MAEJ,KAAA,EAAO,SAAA,CAAU,CAAA,MAAO,UAAA"}
@@ -1,34 +0,0 @@
1
- import { __CONTROL_BOUNDARY__, markEagerControlPrimitive } from "../common/control.js";
2
- import { createShowState } from "../runtime/control.js";
3
- import { state } from "../runtime/state.js";
4
- import "../runtime/index.js";
5
- import { normalizeBoundaryChild, resolveMaybeAccessor } from "./shared.js";
6
- //#region src/control/show.ts
7
- function createTruthyRenderer(props) {
8
- if (typeof props.children === "function") return (value) => normalizeBoundaryChild(props.children(value));
9
- const staticChild = normalizeBoundaryChild(props.children);
10
- return () => staticChild;
11
- }
12
- function createFallbackRenderer(fallback) {
13
- const normalizedFallback = normalizeBoundaryChild(fallback);
14
- if (normalizedFallback == null || normalizedFallback === false) return null;
15
- return () => normalizedFallback;
16
- }
17
- function ShowPrimitive(props) {
18
- const selectedValue = resolveMaybeAccessor(props.when);
19
- const renderTruthy = createTruthyRenderer(props);
20
- const renderFallback = createFallbackRenderer(props.fallback);
21
- const showState = state(createShowState(selectedValue, renderTruthy, renderFallback))();
22
- showState.selectedValue = selectedValue;
23
- showState.renderTruthy = renderTruthy;
24
- showState.renderFallback = renderFallback;
25
- return {
26
- type: __CONTROL_BOUNDARY__,
27
- _controlState: showState
28
- };
29
- }
30
- const Show = markEagerControlPrimitive(ShowPrimitive);
31
- //#endregion
32
- export { Show };
33
-
34
- //# sourceMappingURL=show.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"show.js","names":[],"sources":["../../src/control/show.ts"],"sourcesContent":["import {\n __CONTROL_BOUNDARY__,\n markEagerControlPrimitive,\n} from '../common/control';\nimport type { JSXElement } from '../common/jsx';\nimport type { VNode } from '../common/vnode';\nimport { createShowState, type ShowState } from '../runtime';\nimport { state } from '../runtime';\nimport {\n type BoundaryChild,\n normalizeBoundaryChild,\n resolveMaybeAccessor,\n} from './shared';\n\ntype ShowSource<T> = T | (() => T);\ntype Truthy<T> = T extends false | '' | 0 | 0n | null | undefined ? never : T;\n\nexport type ShowProps<T> = {\n when: ShowSource<T>;\n fallback?: BoundaryChild;\n children: BoundaryChild | ((value: Truthy<T>) => BoundaryChild);\n};\n\nfunction createTruthyRenderer<T>(\n props: ShowProps<T>\n): ShowState['renderTruthy'] {\n if (typeof props.children === 'function') {\n return (value: unknown) =>\n normalizeBoundaryChild(\n (props.children as (resolved: Truthy<T>) => VNode)(value as Truthy<T>)\n ) as VNode;\n }\n\n const staticChild = normalizeBoundaryChild(props.children);\n return () => staticChild as VNode;\n}\n\nfunction createFallbackRenderer(\n fallback: BoundaryChild | undefined\n): (() => VNode) | null {\n const normalizedFallback = normalizeBoundaryChild(fallback);\n if (normalizedFallback == null || normalizedFallback === false) {\n return null;\n }\n return () => normalizedFallback;\n}\n\nfunction ShowPrimitive<T>(props: ShowProps<T>): JSXElement {\n const selectedValue = resolveMaybeAccessor(props.when);\n const renderTruthy = createTruthyRenderer(props);\n const renderFallback = createFallbackRenderer(props.fallback);\n\n const showStateContainer = state<ShowState>(\n createShowState(selectedValue, renderTruthy, renderFallback)\n );\n const showState = showStateContainer();\n\n showState.selectedValue = selectedValue;\n showState.renderTruthy = renderTruthy;\n showState.renderFallback = renderFallback;\n\n return {\n type: __CONTROL_BOUNDARY__,\n _controlState: showState,\n } as unknown as JSXElement;\n}\n\nexport const Show = markEagerControlPrimitive(\n ShowPrimitive as <T>(props: ShowProps<T>) => JSXElement\n) as <T>(props: ShowProps<T>) => JSXElement;\n"],"mappings":";;;;;;AAuBA,SAAS,qBACP,OAC2B;CAC3B,IAAI,OAAO,MAAM,aAAa,YAC5B,QAAQ,UACN,uBACG,MAAM,SAA4C,KAAkB,CACvE;CAGJ,MAAM,cAAc,uBAAuB,MAAM,QAAQ;CACzD,aAAa;AACf;AAEA,SAAS,uBACP,UACsB;CACtB,MAAM,qBAAqB,uBAAuB,QAAQ;CAC1D,IAAI,sBAAsB,QAAQ,uBAAuB,OACvD,OAAO;CAET,aAAa;AACf;AAEA,SAAS,cAAiB,OAAiC;CACzD,MAAM,gBAAgB,qBAAqB,MAAM,IAAI;CACrD,MAAM,eAAe,qBAAqB,KAAK;CAC/C,MAAM,iBAAiB,uBAAuB,MAAM,QAAQ;CAK5D,MAAM,YAHqB,MACzB,gBAAgB,eAAe,cAAc,cAAc,CAE3C,CAAA,CAAmB;CAErC,UAAU,gBAAgB;CAC1B,UAAU,eAAe;CACzB,UAAU,iBAAiB;CAE3B,OAAO;EACL,MAAM;EACN,eAAe;CACjB;AACF;AAEA,MAAa,OAAO,0BAClB,aACF"}
@@ -1,28 +0,0 @@
1
- import { ComponentInstance } from "../runtime/component-internal.js";
2
- import { DataRuntime, DataRuntimeOptions } from "./types.js";
3
- import { MutationCell } from "./mutation-cell.js";
4
- import { QueryCell } from "./query-cell.js";
5
-
6
- //#region src/data/data-runtime.d.ts
7
- type QuerySlot = {
8
- key: string;
9
- cell: QueryCell<unknown>;
10
- };
11
- type DataRuntimeState = {
12
- queryCache: Map<string, QueryCell<unknown>>;
13
- querySlotsByInstance: WeakMap<ComponentInstance, Map<number, QuerySlot>>;
14
- mutationSlotsByInstance: WeakMap<ComponentInstance, Map<number, MutationCell<unknown, unknown>>>;
15
- queryCleanupRegistered: WeakSet<ComponentInstance>;
16
- mutationCleanupRegistered: WeakSet<ComponentInstance>;
17
- };
18
- declare function createDataRuntime(options?: DataRuntimeOptions): DataRuntime;
19
- declare function getDefaultDataRuntime(): DataRuntime;
20
- declare function resolveDataRuntimeState(runtime?: DataRuntime): DataRuntimeState;
21
- declare function getQuerySlotStore(runtimeState: DataRuntimeState, instance: ComponentInstance): Map<number, QuerySlot>;
22
- declare function getMutationSlotStore(runtimeState: DataRuntimeState, instance: ComponentInstance): Map<number, MutationCell<unknown, unknown>>;
23
- declare function ensureQueryCleanup(runtimeState: DataRuntimeState, instance: ComponentInstance): void;
24
- declare function ensureMutationCleanup(runtimeState: DataRuntimeState, instance: ComponentInstance): void;
25
- declare function invalidateQueriesForRuntime(runtimeState: DataRuntimeState, prefix: string, markPendingWrite: boolean): void;
26
- //#endregion
27
- export { DataRuntimeState, QuerySlot, createDataRuntime, getDefaultDataRuntime };
28
- //# sourceMappingURL=data-runtime.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"data-runtime.d.ts","names":[],"sources":["../../src/data/data-runtime.ts"],"mappings":";;;;;;KAOY,SAAA;EACV,GAAA;EACA,IAAA,EAAM,SAAS;AAAA;AAAA,KAGL,gBAAA;EACV,UAAA,EAAY,GAAA,SAAY,SAAA;EACxB,oBAAA,EAAsB,OAAA,CAAQ,iBAAA,EAAmB,GAAA,SAAY,SAAA;EAC7D,uBAAA,EAAyB,OAAA,CACvB,iBAAA,EACA,GAAA,SAAY,YAAA;EAEd,sBAAA,EAAwB,OAAA,CAAQ,iBAAA;EAChC,yBAAA,EAA2B,OAAA,CAAQ,iBAAA;AAAA;AAAA,iBAqBrB,iBAAA,CACd,OAAA,GAAS,kBAAA,GACR,WAAW;AAAA,iBAWE,qBAAA,IAAyB,WAAW;AAAA,iBAkDpC,uBAAA,CACd,OAAA,GAAU,WAAA,GACT,gBAAgB;AAAA,iBAIH,iBAAA,CACd,YAAA,EAAc,gBAAA,EACd,QAAA,EAAU,iBAAA,GACT,GAAA,SAAY,SAAA;AAAA,iBASC,oBAAA,CACd,YAAA,EAAc,gBAAA,EACd,QAAA,EAAU,iBAAA,GACT,GAAA,SAAY,YAAA;AAAA,iBASC,kBAAA,CACd,YAAA,EAAc,gBAAA,EACd,QAAA,EAAU,iBAAiB;AAAA,iBAwBb,qBAAA,CACd,YAAA,EAAc,gBAAA,EACd,QAAA,EAAU,iBAAiB;AAAA,iBAwBb,2BAAA,CACd,YAAA,EAAc,gBAAgB,EAC9B,MAAA,UACA,gBAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"data-runtime.js","names":[],"sources":["../../src/data/data-runtime.ts"],"sourcesContent":["import { getActiveRenderContext } from '../common/render-context';\nimport type { ComponentInstance } from '../runtime';\nimport { emitInvalidation } from './invalidation-listeners';\nimport type { MutationCell } from './mutation-cell';\nimport type { QueryCell } from './query-cell';\nimport type { DataRuntime, DataRuntimeOptions } from './types';\n\nexport type QuerySlot = {\n key: string;\n cell: QueryCell<unknown>;\n};\n\nexport type DataRuntimeState = {\n queryCache: Map<string, QueryCell<unknown>>;\n querySlotsByInstance: WeakMap<ComponentInstance, Map<number, QuerySlot>>;\n mutationSlotsByInstance: WeakMap<\n ComponentInstance,\n Map<number, MutationCell<unknown, unknown>>\n >;\n queryCleanupRegistered: WeakSet<ComponentInstance>;\n mutationCleanupRegistered: WeakSet<ComponentInstance>;\n};\n\nconst dataRuntimeStates = new WeakMap<DataRuntime, DataRuntimeState>();\nconst dataRuntimeByQueryCache = new WeakMap<\n Map<string, unknown>,\n DataRuntime\n>();\n\nfunction createDataRuntimeState(\n queryCache: Map<string, unknown>\n): DataRuntimeState {\n return {\n queryCache: queryCache as Map<string, QueryCell<unknown>>,\n querySlotsByInstance: new WeakMap(),\n mutationSlotsByInstance: new WeakMap(),\n queryCleanupRegistered: new WeakSet(),\n mutationCleanupRegistered: new WeakSet(),\n };\n}\n\nexport function createDataRuntime(\n options: DataRuntimeOptions = {}\n): DataRuntime {\n const runtime: DataRuntime = Object.freeze({\n queryCache: options.queryCache ?? new Map<string, unknown>(),\n });\n dataRuntimeStates.set(runtime, createDataRuntimeState(runtime.queryCache));\n dataRuntimeByQueryCache.set(runtime.queryCache, runtime);\n return runtime;\n}\n\nconst defaultDataRuntime = createDataRuntime();\n\nexport function getDefaultDataRuntime(): DataRuntime {\n return defaultDataRuntime;\n}\n\nfunction getDataRuntimeState(runtime: DataRuntime): DataRuntimeState {\n const state = dataRuntimeStates.get(runtime);\n if (!state) {\n throw new Error(\n '[Askr] data runtime was not created by createDataRuntime().'\n );\n }\n return state;\n}\n\nfunction isDataRuntime(value: unknown): value is DataRuntime {\n return (\n typeof value === 'object' &&\n value !== null &&\n dataRuntimeStates.has(value as DataRuntime)\n );\n}\n\nfunction getDataRuntimeForQueryCache(\n queryCache: Map<string, unknown>\n): DataRuntime {\n let runtime = dataRuntimeByQueryCache.get(queryCache);\n if (!runtime) {\n runtime = createDataRuntime({ queryCache });\n dataRuntimeByQueryCache.set(queryCache, runtime);\n }\n return runtime;\n}\n\nfunction getActiveDataRuntime(): DataRuntime {\n const ctx = getActiveRenderContext();\n if (isDataRuntime(ctx?.dataRuntime)) {\n return ctx.dataRuntime;\n }\n\n if (ctx?.queryCache) {\n return getDataRuntimeForQueryCache(ctx.queryCache);\n }\n\n return defaultDataRuntime;\n}\n\nfunction getActiveDataRuntimeState(): DataRuntimeState {\n return getDataRuntimeState(getActiveDataRuntime());\n}\n\nexport function resolveDataRuntimeState(\n runtime?: DataRuntime\n): DataRuntimeState {\n return runtime ? getDataRuntimeState(runtime) : getActiveDataRuntimeState();\n}\n\nexport function getQuerySlotStore(\n runtimeState: DataRuntimeState,\n instance: ComponentInstance\n): Map<number, QuerySlot> {\n let store = runtimeState.querySlotsByInstance.get(instance);\n if (!store) {\n store = new Map();\n runtimeState.querySlotsByInstance.set(instance, store);\n }\n return store;\n}\n\nexport function getMutationSlotStore(\n runtimeState: DataRuntimeState,\n instance: ComponentInstance\n): Map<number, MutationCell<unknown, unknown>> {\n let store = runtimeState.mutationSlotsByInstance.get(instance);\n if (!store) {\n store = new Map();\n runtimeState.mutationSlotsByInstance.set(instance, store);\n }\n return store;\n}\n\nexport function ensureQueryCleanup(\n runtimeState: DataRuntimeState,\n instance: ComponentInstance\n): void {\n if (runtimeState.queryCleanupRegistered.has(instance)) {\n return;\n }\n\n runtimeState.queryCleanupRegistered.add(instance);\n instance.cleanupFns.push(() => {\n const slots = runtimeState.querySlotsByInstance.get(instance);\n if (!slots) {\n runtimeState.queryCleanupRegistered.delete(instance);\n return;\n }\n\n for (const [hookIndex, slot] of slots) {\n slot.cell.detach(instance, hookIndex);\n }\n\n slots.clear();\n runtimeState.querySlotsByInstance.delete(instance);\n runtimeState.queryCleanupRegistered.delete(instance);\n });\n}\n\nexport function ensureMutationCleanup(\n runtimeState: DataRuntimeState,\n instance: ComponentInstance\n): void {\n if (runtimeState.mutationCleanupRegistered.has(instance)) {\n return;\n }\n\n runtimeState.mutationCleanupRegistered.add(instance);\n instance.cleanupFns.push(() => {\n const slots = runtimeState.mutationSlotsByInstance.get(instance);\n if (!slots) {\n runtimeState.mutationCleanupRegistered.delete(instance);\n return;\n }\n\n for (const cell of slots.values()) {\n cell.abort();\n }\n\n slots.clear();\n runtimeState.mutationSlotsByInstance.delete(instance);\n runtimeState.mutationCleanupRegistered.delete(instance);\n });\n}\n\nexport function invalidateQueriesForRuntime(\n runtimeState: DataRuntimeState,\n prefix: string,\n markPendingWrite: boolean\n): void {\n emitInvalidation({ prefix, markPendingWrite });\n\n const cache = runtimeState.queryCache;\n\n for (const [key, query] of cache) {\n if (!key.startsWith(prefix)) {\n continue;\n }\n\n if (markPendingWrite) {\n query.markPendingWrite();\n }\n\n void query.refresh();\n }\n}\n"],"mappings":";;;AAuBA,MAAM,oCAAoB,IAAI,QAAuC;AACrE,MAAM,0CAA0B,IAAI,QAGlC;AAEF,SAAS,uBACP,YACkB;CAClB,OAAO;EACO;EACZ,sCAAsB,IAAI,QAAQ;EAClC,yCAAyB,IAAI,QAAQ;EACrC,wCAAwB,IAAI,QAAQ;EACpC,2CAA2B,IAAI,QAAQ;CACzC;AACF;AAEA,SAAgB,kBACd,UAA8B,CAAC,GAClB;CACb,MAAM,UAAuB,OAAO,OAAO,EACzC,YAAY,QAAQ,8BAAc,IAAI,IAAqB,EAC7D,CAAC;CACD,kBAAkB,IAAI,SAAS,uBAAuB,QAAQ,UAAU,CAAC;CACzE,wBAAwB,IAAI,QAAQ,YAAY,OAAO;CACvD,OAAO;AACT;AAEA,MAAM,qBAAqB,kBAAkB;AAE7C,SAAgB,wBAAqC;CACnD,OAAO;AACT;AAEA,SAAS,oBAAoB,SAAwC;CACnE,MAAM,QAAQ,kBAAkB,IAAI,OAAO;CAC3C,IAAI,CAAC,OACH,MAAM,IAAI,MACR,6DACF;CAEF,OAAO;AACT;AAEA,SAAS,cAAc,OAAsC;CAC3D,OACE,OAAO,UAAU,YACjB,UAAU,QACV,kBAAkB,IAAI,KAAoB;AAE9C;AAEA,SAAS,4BACP,YACa;CACb,IAAI,UAAU,wBAAwB,IAAI,UAAU;CACpD,IAAI,CAAC,SAAS;EACZ,UAAU,kBAAkB,EAAE,WAAW,CAAC;EAC1C,wBAAwB,IAAI,YAAY,OAAO;CACjD;CACA,OAAO;AACT;AAEA,SAAS,uBAAoC;CAC3C,MAAM,MAAM,uBAAuB;CACnC,IAAI,cAAc,KAAK,WAAW,GAChC,OAAO,IAAI;CAGb,IAAI,KAAK,YACP,OAAO,4BAA4B,IAAI,UAAU;CAGnD,OAAO;AACT;AAEA,SAAS,4BAA8C;CACrD,OAAO,oBAAoB,qBAAqB,CAAC;AACnD;AAEA,SAAgB,wBACd,SACkB;CAClB,OAAO,UAAU,oBAAoB,OAAO,IAAI,0BAA0B;AAC5E;AAEA,SAAgB,kBACd,cACA,UACwB;CACxB,IAAI,QAAQ,aAAa,qBAAqB,IAAI,QAAQ;CAC1D,IAAI,CAAC,OAAO;EACV,wBAAQ,IAAI,IAAI;EAChB,aAAa,qBAAqB,IAAI,UAAU,KAAK;CACvD;CACA,OAAO;AACT;AAEA,SAAgB,qBACd,cACA,UAC6C;CAC7C,IAAI,QAAQ,aAAa,wBAAwB,IAAI,QAAQ;CAC7D,IAAI,CAAC,OAAO;EACV,wBAAQ,IAAI,IAAI;EAChB,aAAa,wBAAwB,IAAI,UAAU,KAAK;CAC1D;CACA,OAAO;AACT;AAEA,SAAgB,mBACd,cACA,UACM;CACN,IAAI,aAAa,uBAAuB,IAAI,QAAQ,GAClD;CAGF,aAAa,uBAAuB,IAAI,QAAQ;CAChD,SAAS,WAAW,WAAW;EAC7B,MAAM,QAAQ,aAAa,qBAAqB,IAAI,QAAQ;EAC5D,IAAI,CAAC,OAAO;GACV,aAAa,uBAAuB,OAAO,QAAQ;GACnD;EACF;EAEA,KAAK,MAAM,CAAC,WAAW,SAAS,OAC9B,KAAK,KAAK,OAAO,UAAU,SAAS;EAGtC,MAAM,MAAM;EACZ,aAAa,qBAAqB,OAAO,QAAQ;EACjD,aAAa,uBAAuB,OAAO,QAAQ;CACrD,CAAC;AACH;AAEA,SAAgB,sBACd,cACA,UACM;CACN,IAAI,aAAa,0BAA0B,IAAI,QAAQ,GACrD;CAGF,aAAa,0BAA0B,IAAI,QAAQ;CACnD,SAAS,WAAW,WAAW;EAC7B,MAAM,QAAQ,aAAa,wBAAwB,IAAI,QAAQ;EAC/D,IAAI,CAAC,OAAO;GACV,aAAa,0BAA0B,OAAO,QAAQ;GACtD;EACF;EAEA,KAAK,MAAM,QAAQ,MAAM,OAAO,GAC9B,KAAK,MAAM;EAGb,MAAM,MAAM;EACZ,aAAa,wBAAwB,OAAO,QAAQ;EACpD,aAAa,0BAA0B,OAAO,QAAQ;CACxD,CAAC;AACH;AAEA,SAAgB,4BACd,cACA,QACA,kBACM;CACN,iBAAiB;EAAE;EAAQ;CAAiB,CAAC;CAE7C,MAAM,QAAQ,aAAa;CAE3B,KAAK,MAAM,CAAC,KAAK,UAAU,OAAO;EAChC,IAAI,CAAC,IAAI,WAAW,MAAM,GACxB;EAGF,IAAI,kBACF,MAAM,iBAAiB;EAGzB,AAAK,MAAM,QAAQ;CACrB;AACF"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"invalidation-listeners.js","names":[],"sources":["../../src/data/invalidation-listeners.ts"],"sourcesContent":["export interface InvalidationEvent {\n prefix: string;\n markPendingWrite: boolean;\n}\n\ntype InvalidationListener = (event: InvalidationEvent) => void;\n\nconst invalidationListeners = new Set<InvalidationListener>();\n\nexport function addInvalidationListener(\n listener: InvalidationListener\n): () => void {\n invalidationListeners.add(listener);\n return () => {\n invalidationListeners.delete(listener);\n };\n}\n\nexport function emitInvalidation(event: InvalidationEvent): void {\n for (const listener of invalidationListeners) {\n listener(event);\n }\n}\n"],"mappings":";AAOA,MAAM,wCAAwB,IAAI,IAA0B;AAE5D,SAAgB,wBACd,UACY;CACZ,sBAAsB,IAAI,QAAQ;CAClC,aAAa;EACX,sBAAsB,OAAO,QAAQ;CACvC;AACF;AAEA,SAAgB,iBAAiB,OAAgC;CAC/D,KAAK,MAAM,YAAY,uBACrB,SAAS,KAAK;AAElB"}
@@ -1,9 +0,0 @@
1
- import { InvalidateOnIntervalOptions, InvalidateOptions, QueryScope } from "./types.js";
2
-
3
- //#region src/data/invalidation.d.ts
4
- declare function invalidate(prefix: string, options?: InvalidateOptions): void;
5
- declare function queryScope(namespace: string): QueryScope;
6
- declare function invalidateOnInterval(prefix: string, options: InvalidateOnIntervalOptions): void;
7
- //#endregion
8
- export { invalidate, invalidateOnInterval, queryScope };
9
- //# sourceMappingURL=invalidation.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"invalidation.d.ts","names":[],"sources":["../../src/data/invalidation.ts"],"mappings":";;;iBAkBgB,UAAA,CAAW,MAAA,UAAgB,OAAA,GAAU,iBAAiB;AAAA,iBAQtD,UAAA,CAAW,SAAA,WAAoB,UAAU;AAAA,iBAOzC,oBAAA,CACd,MAAA,UACA,OAAA,EAAS,2BAA2B"}
@@ -1,27 +0,0 @@
1
- import { documentVisible, routeActive, timer, windowFocused } from "../runtime/lifecycle-operations.js";
2
- import "../runtime/index.js";
3
- import { invalidateQueriesForRuntime, resolveDataRuntimeState } from "./data-runtime.js";
4
- import { createQueryScope } from "./query-key.js";
5
- //#region src/data/invalidation.ts
6
- function invalidate(prefix, options) {
7
- invalidateQueriesForRuntime(resolveDataRuntimeState(options?.runtime), prefix, options?.markPendingWrite ?? false);
8
- }
9
- function queryScope(namespace) {
10
- return createQueryScope(namespace, invalidate);
11
- }
12
- const INVALIDATE_ON_INTERVAL_OPTIONS_ERROR = "[Askr] invalidateOnInterval() requires an options object with a finite numeric intervalMs.";
13
- function invalidateOnInterval(prefix, options) {
14
- if (!options || typeof options !== "object" || typeof options.intervalMs !== "number" || !Number.isFinite(options.intervalMs)) throw new Error(INVALIDATE_ON_INTERVAL_OPTIONS_ERROR);
15
- const runtimeState = resolveDataRuntimeState(options.runtime);
16
- const when = [];
17
- if (options.activeOn) when.push(routeActive(options.activeOn));
18
- if (options.visibleOnly) when.push(documentVisible());
19
- if (options.focusedOnly) when.push(windowFocused());
20
- timer(options.intervalMs, () => {
21
- invalidateQueriesForRuntime(runtimeState, prefix, options.markPendingWrite ?? false);
22
- }, when.length > 0 ? { when } : void 0);
23
- }
24
- //#endregion
25
- export { invalidate, invalidateOnInterval, queryScope };
26
-
27
- //# sourceMappingURL=invalidation.js.map