@askrjs/askr 0.0.52 → 0.0.54

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (386) hide show
  1. package/README.md +5 -1
  2. package/dist/{runtime/scheduler.js → access-Bg4RJNC8.js} +182 -9
  3. package/dist/actions/index.d.ts +2 -0
  4. package/dist/actions/index.js +103 -0
  5. package/dist/{common/attr-names.js → attr-names-CjhzmHOn.js} +1 -1
  6. package/dist/benchmark.d.ts +6 -2
  7. package/dist/benchmark.js +63 -11
  8. package/dist/boot/index.d.ts +61 -2
  9. package/dist/boot/index.js +1 -203
  10. package/dist/boot-2ZR3MtO0.js +647 -0
  11. package/dist/cleanup-DScKZG2i.js +487 -0
  12. package/dist/component-internal-D9PLuFUc.js +614 -0
  13. package/dist/component-lifecycle-C7lnU9Bt.js +359 -0
  14. package/dist/{runtime/component-scope.js → component-scope-CC3cojX9.js} +8 -1
  15. package/dist/component-scope-CvPba6O6.d.ts +12 -0
  16. package/dist/components/index.d.ts +17 -2
  17. package/dist/components/index.js +39 -1
  18. package/dist/compose-ref-Cc_YkUpM.js +92 -0
  19. package/dist/{foundations/utilities/compose-ref.d.ts → compose-ref-Cizq72-x.d.ts} +1 -1
  20. package/dist/control/index.d.ts +1 -3
  21. package/dist/control/index.js +1 -3
  22. package/dist/control-BI4RMD2z.d.ts +437 -0
  23. package/dist/control-Bf4Wkdvv.d.ts +9 -0
  24. package/dist/{common/control.js → control-DhFRTIoE.js} +1 -1
  25. package/dist/control-mXROCjL3.js +165 -0
  26. package/dist/data/index.d.ts +2 -6
  27. package/dist/data/index.js +4 -5
  28. package/dist/data-B9dauyDn.js +559 -0
  29. package/dist/{data/data-runtime.js → data-runtime-SJ1BSUvk.js} +32 -31
  30. package/dist/deferred-DklLG4qM.js +386 -0
  31. package/dist/{runtime/effect.js → effect-BwnIvLah.js} +4 -4
  32. package/dist/fastlane-Dw8SOBr9.js +343 -0
  33. package/dist/for-internal-CSz8Unkq.js +1563 -0
  34. package/dist/foundations/icon/index.d.ts +68 -2
  35. package/dist/foundations/icon/index.js +85 -1
  36. package/dist/foundations/index.d.ts +2 -5
  37. package/dist/foundations/index.js +2 -5
  38. package/dist/foundations/interactions/index.d.ts +264 -6
  39. package/dist/foundations/interactions/index.js +1 -6
  40. package/dist/foundations/state/index.d.ts +32 -1
  41. package/dist/foundations/state/index.js +78 -1
  42. package/dist/foundations/structures/index.d.ts +2 -7
  43. package/dist/foundations/structures/index.js +2 -7
  44. package/dist/foundations/utilities/index.d.ts +2 -6
  45. package/dist/foundations/utilities/index.js +2 -5
  46. package/dist/fx/index.d.ts +190 -3
  47. package/dist/fx/index.js +454 -4
  48. package/dist/index-B1LNotpU.d.ts +239 -0
  49. package/dist/index-Bki2rqcr.d.ts +233 -0
  50. package/dist/index-BnU0NPwM.d.ts +101 -0
  51. package/dist/index-C8iW3xCt.d.ts +44 -0
  52. package/dist/index-DwxdIA-t.d.ts +48 -0
  53. package/dist/{runtime/runtime.d.ts → index-Zb31mCiU.d.ts} +31 -8
  54. package/dist/index.d.ts +8 -13
  55. package/dist/index.js +150 -15
  56. package/dist/interactions-w7gQN4ha.js +280 -0
  57. package/dist/{data/invalidation-listeners.js → invalidation-listeners-Des3AHYs.js} +1 -1
  58. package/dist/{common/props.d.ts → jsx-CP0gmYwJ.d.ts} +17 -5
  59. package/dist/{common/jsx.js → jsx-CUpRxrLH.js} +1 -1
  60. package/dist/jsx-dev-runtime.d.ts +2 -4
  61. package/dist/jsx-dev-runtime.js +7 -5
  62. package/dist/jsx-runtime-92bV2hSa.d.ts +34 -0
  63. package/dist/jsx-runtime-BVVgDSdq.d.ts +1 -0
  64. package/dist/jsx-runtime.d.ts +2 -35
  65. package/dist/jsx-runtime.js +11 -5
  66. package/dist/{runtime/lifecycle-operations.js → lifecycle-operations-CdRjdsHo.js} +4 -5
  67. package/dist/navigate-BVDCzOuB.d.ts +34 -0
  68. package/dist/navigate-D17eVQyI.js +1449 -0
  69. package/dist/{runtime/portal.js → portal-C47xkwXj.js} +71 -41
  70. package/dist/query-registry-CQIT4mXr.js +73 -0
  71. package/dist/{common/render-context.js → render-context-Clw3rFiO.js} +14 -6
  72. package/dist/renderer-DrLRAD5y.js +6266 -0
  73. package/dist/{runtime/resource-operation.js → resource-operation-BNY29MVH.js} +118 -15
  74. package/dist/resources/index.d.ts +42 -3
  75. package/dist/resources/index.js +3 -4
  76. package/dist/{common/route-activity.js → route-activity-CNJfpwx-.js} +1 -1
  77. package/dist/route-matching-vJpvLVbX.js +515 -0
  78. package/dist/router/index.d.ts +166 -14
  79. package/dist/router/index.js +150 -12
  80. package/dist/{common/router.d.ts → router-DCfwLBr-.d.ts} +72 -28
  81. package/dist/{common/router-internal.js → router-internal-BC0w1_xk.js} +1 -1
  82. package/dist/{runtime/scheduler.d.ts → scheduler-CmLO4Dfm.d.ts} +1 -3
  83. package/dist/{runtime/selector.js → selector-DafVYzV4.js} +34 -11
  84. package/dist/{runtime/snapshot-source.js → snapshot-source-BB42xgwb.js} +1 -1
  85. package/dist/ssg/index.d.ts +252 -4
  86. package/dist/ssg/index.js +857 -1
  87. package/dist/ssr/index.d.ts +225 -8
  88. package/dist/ssr/index.js +3 -6
  89. package/dist/{common/ssr.js → ssr-CbQO5xd3.js} +1 -1
  90. package/dist/ssr-DEARZxJ5.js +1413 -0
  91. package/dist/{runtime/state.js → state-DPl8lffD.js} +3 -5
  92. package/dist/structures-DUB3HchX.js +221 -0
  93. package/dist/testing/index.d.ts +3 -2
  94. package/dist/testing/index.js +2 -5
  95. package/dist/{jsx/types.d.ts → types-DnQVG4ZY.d.ts} +2 -5
  96. package/dist/{foundations/utilities/use-id.js → utilities-C_CGX4Dz.js} +1 -1
  97. package/dist/{ssr/verify-hydration.js → verify-hydration-BWwu-mWu.js} +2 -2
  98. package/dist/{common/vnode.js → vnode-CGMJYPMB.js} +2 -2
  99. package/package.json +12 -7
  100. package/dist/bench/components/benchmark-row.d.ts +0 -20
  101. package/dist/bench/components/benchmark-row.js +0 -40
  102. package/dist/bench/components/benchmark-table.js +0 -23
  103. package/dist/bin/askr-ssg.d.ts +0 -27
  104. package/dist/bin/askr-ssg.js +0 -186
  105. package/dist/boot/hydration.js +0 -139
  106. package/dist/boot/root-lifecycle.d.ts +0 -18
  107. package/dist/boot/root-lifecycle.js +0 -209
  108. package/dist/boot/route-startup.js +0 -54
  109. package/dist/boot/types.d.ts +0 -61
  110. package/dist/common/component.d.ts +0 -18
  111. package/dist/common/control.d.ts +0 -12
  112. package/dist/common/dom-range.d.ts +0 -13
  113. package/dist/common/env.js +0 -41
  114. package/dist/common/error-boundary.d.ts +0 -15
  115. package/dist/common/invariant.js +0 -15
  116. package/dist/common/jsx.d.ts +0 -22
  117. package/dist/common/logger.js +0 -34
  118. package/dist/common/promise.js +0 -6
  119. package/dist/common/ssr-errors.d.ts +0 -10
  120. package/dist/common/ssr-errors.js +0 -14
  121. package/dist/common/ssr.d.ts +0 -41
  122. package/dist/common/vnode.d.ts +0 -21
  123. package/dist/components/error-boundary.d.ts +0 -14
  124. package/dist/components/error-boundary.js +0 -41
  125. package/dist/components/link.d.ts +0 -68
  126. package/dist/components/link.js +0 -74
  127. package/dist/control/case.d.ts +0 -18
  128. package/dist/control/case.js +0 -68
  129. package/dist/control/for.d.ts +0 -23
  130. package/dist/control/for.js +0 -61
  131. package/dist/control/shared.d.ts +0 -8
  132. package/dist/control/shared.js +0 -18
  133. package/dist/control/show.d.ts +0 -14
  134. package/dist/control/show.js +0 -32
  135. package/dist/data/data-runtime.d.ts +0 -27
  136. package/dist/data/invalidation.d.ts +0 -8
  137. package/dist/data/invalidation.js +0 -25
  138. package/dist/data/mutation-cell.d.ts +0 -27
  139. package/dist/data/mutation-cell.js +0 -133
  140. package/dist/data/query-cell.d.ts +0 -47
  141. package/dist/data/query-cell.js +0 -324
  142. package/dist/data/query-key.js +0 -40
  143. package/dist/data/shared.js +0 -20
  144. package/dist/data/testing.js +0 -2
  145. package/dist/data/types.d.ts +0 -160
  146. package/dist/foundations/icon/icon.d.ts +0 -52
  147. package/dist/foundations/icon/icon.js +0 -86
  148. package/dist/foundations/icon/icon.types.d.ts +0 -21
  149. package/dist/foundations/interactions/dismissable.d.ts +0 -71
  150. package/dist/foundations/interactions/dismissable.js +0 -24
  151. package/dist/foundations/interactions/focusable.d.ts +0 -21
  152. package/dist/foundations/interactions/focusable.js +0 -16
  153. package/dist/foundations/interactions/hoverable.d.ts +0 -25
  154. package/dist/foundations/interactions/hoverable.js +0 -13
  155. package/dist/foundations/interactions/interaction-policy.d.ts +0 -49
  156. package/dist/foundations/interactions/interaction-policy.js +0 -120
  157. package/dist/foundations/interactions/pressable.d.ts +0 -60
  158. package/dist/foundations/interactions/pressable.js +0 -49
  159. package/dist/foundations/interactions/roving-focus.d.ts +0 -51
  160. package/dist/foundations/interactions/roving-focus.js +0 -69
  161. package/dist/foundations/state/controllable.d.ts +0 -32
  162. package/dist/foundations/state/controllable.js +0 -80
  163. package/dist/foundations/structures/collection.d.ts +0 -51
  164. package/dist/foundations/structures/collection.js +0 -49
  165. package/dist/foundations/structures/layer.d.ts +0 -80
  166. package/dist/foundations/structures/layer.js +0 -79
  167. package/dist/foundations/structures/layout.d.ts +0 -32
  168. package/dist/foundations/structures/layout.js +0 -11
  169. package/dist/foundations/structures/portal.d.ts +0 -2
  170. package/dist/foundations/structures/portal.js +0 -3
  171. package/dist/foundations/structures/presence.d.ts +0 -36
  172. package/dist/foundations/structures/presence.js +0 -37
  173. package/dist/foundations/structures/slot.d.ts +0 -34
  174. package/dist/foundations/structures/slot.js +0 -39
  175. package/dist/foundations/utilities/aria.d.ts +0 -15
  176. package/dist/foundations/utilities/aria.js +0 -15
  177. package/dist/foundations/utilities/compose-handlers.d.ts +0 -36
  178. package/dist/foundations/utilities/compose-handlers.js +0 -18
  179. package/dist/foundations/utilities/compose-ref.js +0 -16
  180. package/dist/foundations/utilities/event-types.d.ts +0 -19
  181. package/dist/foundations/utilities/merge-props.d.ts +0 -4
  182. package/dist/foundations/utilities/merge-props.js +0 -47
  183. package/dist/foundations/utilities/use-id.d.ts +0 -31
  184. package/dist/fx/fx.d.ts +0 -32
  185. package/dist/fx/fx.js +0 -211
  186. package/dist/fx/noop.js +0 -7
  187. package/dist/fx/timing.d.ts +0 -158
  188. package/dist/fx/timing.js +0 -241
  189. package/dist/jsx/index.d.ts +0 -2
  190. package/dist/jsx/index.js +0 -4
  191. package/dist/jsx/types.js +0 -2
  192. package/dist/jsx/utils.d.ts +0 -4
  193. package/dist/jsx/utils.js +0 -17
  194. package/dist/jsx-runtime2.d.ts +0 -3
  195. package/dist/jsx-runtime2.js +0 -4
  196. package/dist/renderer/attributes.js +0 -254
  197. package/dist/renderer/boundaries.js +0 -142
  198. package/dist/renderer/boundary-materialization.js +0 -72
  199. package/dist/renderer/boundary-range-adoption.js +0 -76
  200. package/dist/renderer/boundary-range-sync.js +0 -101
  201. package/dist/renderer/boundary-state.js +0 -50
  202. package/dist/renderer/child-shape.js +0 -83
  203. package/dist/renderer/children-fastpath.js +0 -149
  204. package/dist/renderer/children.js +0 -158
  205. package/dist/renderer/cleanup.js +0 -267
  206. package/dist/renderer/component-host-cleanup.js +0 -143
  207. package/dist/renderer/component-host-instances.js +0 -116
  208. package/dist/renderer/component-host-replacement.js +0 -105
  209. package/dist/renderer/component-host-results.js +0 -138
  210. package/dist/renderer/component-host.js +0 -172
  211. package/dist/renderer/dom-host.js +0 -11
  212. package/dist/renderer/dom-internal.js +0 -243
  213. package/dist/renderer/dom-range.js +0 -161
  214. package/dist/renderer/dom.js +0 -11
  215. package/dist/renderer/element-children.js +0 -359
  216. package/dist/renderer/env.js +0 -2
  217. package/dist/renderer/error-boundary-dom.js +0 -86
  218. package/dist/renderer/evaluate-dom-range.js +0 -84
  219. package/dist/renderer/evaluate-reconcile.js +0 -257
  220. package/dist/renderer/evaluate.js +0 -95
  221. package/dist/renderer/fastpath.js +0 -142
  222. package/dist/renderer/for-commit-dom-map.js +0 -71
  223. package/dist/renderer/for-commit-removal.js +0 -27
  224. package/dist/renderer/for-commit-reorder.js +0 -87
  225. package/dist/renderer/for-commit.js +0 -442
  226. package/dist/renderer/hydration-boundaries.js +0 -60
  227. package/dist/renderer/hydration-listener-transaction.js +0 -49
  228. package/dist/renderer/index.js +0 -39
  229. package/dist/renderer/intrinsic-blueprint-analysis.js +0 -202
  230. package/dist/renderer/intrinsic-blueprint-bindings.js +0 -152
  231. package/dist/renderer/intrinsic-blueprint-materialization.js +0 -100
  232. package/dist/renderer/intrinsic-blueprint.js +0 -30
  233. package/dist/renderer/intrinsic-hydration-adoption.js +0 -66
  234. package/dist/renderer/keyed-children.js +0 -26
  235. package/dist/renderer/keyed.js +0 -167
  236. package/dist/renderer/namespaces.js +0 -21
  237. package/dist/renderer/prop-bindings.js +0 -315
  238. package/dist/renderer/reactive-child-dom.js +0 -139
  239. package/dist/renderer/reactive-child-sources.js +0 -182
  240. package/dist/renderer/reactive-children.js +0 -303
  241. package/dist/renderer/reconcile-commit.js +0 -36
  242. package/dist/renderer/reconcile-fastpaths.js +0 -100
  243. package/dist/renderer/reconcile-resolution.js +0 -163
  244. package/dist/renderer/reconcile.js +0 -37
  245. package/dist/renderer/retained-element-rollback.js +0 -288
  246. package/dist/renderer/stable-patch.js +0 -80
  247. package/dist/renderer/static-reuse.js +0 -94
  248. package/dist/renderer/types.js +0 -2
  249. package/dist/renderer/utils.js +0 -265
  250. package/dist/router/access.js +0 -34
  251. package/dist/router/activity.d.ts +0 -9
  252. package/dist/router/activity.js +0 -85
  253. package/dist/router/authoring.d.ts +0 -21
  254. package/dist/router/authoring.js +0 -196
  255. package/dist/router/internal-types.d.ts +0 -30
  256. package/dist/router/lazy.d.ts +0 -18
  257. package/dist/router/lazy.js +0 -50
  258. package/dist/router/manifest.d.ts +0 -9
  259. package/dist/router/manifest.js +0 -47
  260. package/dist/router/match.js +0 -120
  261. package/dist/router/navigate.d.ts +0 -10
  262. package/dist/router/navigate.js +0 -73
  263. package/dist/router/navigation-registry.d.ts +0 -31
  264. package/dist/router/navigation-registry.js +0 -103
  265. package/dist/router/navigation-scroll.d.ts +0 -13
  266. package/dist/router/navigation-scroll.js +0 -91
  267. package/dist/router/navigation-targets.d.ts +0 -30
  268. package/dist/router/navigation-targets.js +0 -634
  269. package/dist/router/policy.d.ts +0 -27
  270. package/dist/router/policy.js +0 -130
  271. package/dist/router/rendering.d.ts +0 -9
  272. package/dist/router/rendering.js +0 -47
  273. package/dist/router/resolution.d.ts +0 -3
  274. package/dist/router/resolution.js +0 -84
  275. package/dist/router/route-context.js +0 -77
  276. package/dist/router/route-matching.d.ts +0 -19
  277. package/dist/router/route-matching.js +0 -173
  278. package/dist/router/route-query.d.ts +0 -16
  279. package/dist/router/route-query.js +0 -45
  280. package/dist/router/route.d.ts +0 -8
  281. package/dist/router/route.js +0 -10
  282. package/dist/router/store.d.ts +0 -49
  283. package/dist/router/store.js +0 -169
  284. package/dist/router/testing.js +0 -4
  285. package/dist/runtime/access.d.ts +0 -19
  286. package/dist/runtime/access.js +0 -43
  287. package/dist/runtime/child-scope.d.ts +0 -41
  288. package/dist/runtime/child-scope.js +0 -134
  289. package/dist/runtime/component-cleanup.d.ts +0 -15
  290. package/dist/runtime/component-cleanup.js +0 -68
  291. package/dist/runtime/component-commit.js +0 -167
  292. package/dist/runtime/component-facade.d.ts +0 -5
  293. package/dist/runtime/component-facade.js +0 -6
  294. package/dist/runtime/component-internal.d.ts +0 -105
  295. package/dist/runtime/component-internal.js +0 -237
  296. package/dist/runtime/component-lifecycle.d.ts +0 -10
  297. package/dist/runtime/component-lifecycle.js +0 -33
  298. package/dist/runtime/component-scope.d.ts +0 -54
  299. package/dist/runtime/component.d.ts +0 -5
  300. package/dist/runtime/component.js +0 -6
  301. package/dist/runtime/context.d.ts +0 -72
  302. package/dist/runtime/context.js +0 -236
  303. package/dist/runtime/control.d.ts +0 -62
  304. package/dist/runtime/control.js +0 -239
  305. package/dist/runtime/derive.d.ts +0 -16
  306. package/dist/runtime/derive.js +0 -140
  307. package/dist/runtime/dev-namespace.d.ts +0 -30
  308. package/dist/runtime/dev-namespace.js +0 -64
  309. package/dist/runtime/effect.d.ts +0 -35
  310. package/dist/runtime/error-boundary.d.ts +0 -4
  311. package/dist/runtime/error-boundary.js +0 -29
  312. package/dist/runtime/events.d.ts +0 -58
  313. package/dist/runtime/events.js +0 -201
  314. package/dist/runtime/execution-model.d.ts +0 -6
  315. package/dist/runtime/execution-model.js +0 -13
  316. package/dist/runtime/fastlane.d.ts +0 -33
  317. package/dist/runtime/fastlane.js +0 -173
  318. package/dist/runtime/for-bench.d.ts +0 -40
  319. package/dist/runtime/for-bench.js +0 -13
  320. package/dist/runtime/for-internal.d.ts +0 -106
  321. package/dist/runtime/for-internal.js +0 -285
  322. package/dist/runtime/for-reconcile.d.ts +0 -7
  323. package/dist/runtime/for-reconcile.js +0 -442
  324. package/dist/runtime/for-scopes.d.ts +0 -26
  325. package/dist/runtime/for-scopes.js +0 -280
  326. package/dist/runtime/for-signals.d.ts +0 -39
  327. package/dist/runtime/for-signals.js +0 -213
  328. package/dist/runtime/for-types.d.ts +0 -8
  329. package/dist/runtime/for.d.ts +0 -4
  330. package/dist/runtime/for.js +0 -5
  331. package/dist/runtime/index.d.ts +0 -24
  332. package/dist/runtime/index.js +0 -33
  333. package/dist/runtime/lifecycle-batch.d.ts +0 -59
  334. package/dist/runtime/lifecycle-batch.js +0 -178
  335. package/dist/runtime/lifecycle-operation-settlement.d.ts +0 -5
  336. package/dist/runtime/lifecycle-operation-settlement.js +0 -51
  337. package/dist/runtime/lifecycle-operations.d.ts +0 -30
  338. package/dist/runtime/operations.d.ts +0 -3
  339. package/dist/runtime/operations.js +0 -3
  340. package/dist/runtime/perf-metrics.d.ts +0 -27
  341. package/dist/runtime/perf-metrics.js +0 -6
  342. package/dist/runtime/portal.d.ts +0 -21
  343. package/dist/runtime/readable.d.ts +0 -34
  344. package/dist/runtime/readable.js +0 -183
  345. package/dist/runtime/resource-cell.js +0 -112
  346. package/dist/runtime/resource-operation.d.ts +0 -12
  347. package/dist/runtime/runtime.js +0 -57
  348. package/dist/runtime/selector-store.js +0 -22
  349. package/dist/runtime/selector.d.ts +0 -10
  350. package/dist/runtime/snapshot-source.d.ts +0 -9
  351. package/dist/runtime/state.d.ts +0 -54
  352. package/dist/ssg/batch-render.js +0 -101
  353. package/dist/ssg/create-static-gen.d.ts +0 -66
  354. package/dist/ssg/create-static-gen.js +0 -250
  355. package/dist/ssg/generate-metadata.js +0 -92
  356. package/dist/ssg/generation-plan.js +0 -68
  357. package/dist/ssg/incremental-manifest.js +0 -54
  358. package/dist/ssg/resolve-ssg-data.js +0 -103
  359. package/dist/ssg/route-utils.js +0 -22
  360. package/dist/ssg/static-routes.js +0 -100
  361. package/dist/ssg/types.d.ts +0 -188
  362. package/dist/ssg/write-static-files.js +0 -77
  363. package/dist/ssr/attrs.js +0 -92
  364. package/dist/ssr/boundaries.js +0 -124
  365. package/dist/ssr/component-runtime.js +0 -85
  366. package/dist/ssr/context.d.ts +0 -49
  367. package/dist/ssr/context.js +0 -89
  368. package/dist/ssr/errors.d.ts +0 -9
  369. package/dist/ssr/errors.js +0 -12
  370. package/dist/ssr/escape.js +0 -191
  371. package/dist/ssr/hydration-data.js +0 -8
  372. package/dist/ssr/hydration-verify.d.ts +0 -11
  373. package/dist/ssr/hydration-verify.js +0 -171
  374. package/dist/ssr/index-internal.d.ts +0 -14
  375. package/dist/ssr/index-internal.js +0 -17
  376. package/dist/ssr/render-keys.js +0 -14
  377. package/dist/ssr/render-resolved.d.ts +0 -19
  378. package/dist/ssr/render-resolved.js +0 -33
  379. package/dist/ssr/render-sync.d.ts +0 -20
  380. package/dist/ssr/render-sync.js +0 -283
  381. package/dist/ssr/route-policy-resolution.js +0 -76
  382. package/dist/ssr/route-render.d.ts +0 -76
  383. package/dist/ssr/route-render.js +0 -118
  384. package/dist/ssr/sink.d.ts +0 -25
  385. package/dist/ssr/sink.js +0 -84
  386. package/dist/ssr/types.d.ts +0 -22
@@ -0,0 +1,487 @@
1
+ import { c as runRuntimeHandlerScope, v as logger } from "./access-Bg4RJNC8.js";
2
+ import "./fastlane-Dw8SOBr9.js";
3
+ import { f as registerLifecycleTransaction, h as cleanupComponent } from "./component-lifecycle-C7lnU9Bt.js";
4
+ //#region src/runtime/events.ts
5
+ /**
6
+ * Event delegation system for Askr
7
+ *
8
+ * Provides efficient event handling by attaching listeners to a container
9
+ * instead of individual elements. This significantly reduces memory usage
10
+ * and improves performance when many elements have the same event type.
11
+ *
12
+ * Delegated handling is enabled by default. Tests and internal runtime code
13
+ * can still disable or re-enable it when they need to exercise both modes.
14
+ */
15
+ const DELEGATED_EVENTS = [
16
+ "click",
17
+ "dblclick",
18
+ "mousedown",
19
+ "mouseup",
20
+ "mouseover",
21
+ "mouseout",
22
+ "mousemove",
23
+ "focus",
24
+ "blur",
25
+ "input",
26
+ "change",
27
+ "keydown",
28
+ "keyup",
29
+ "keypress",
30
+ "submit",
31
+ "scroll",
32
+ "wheel",
33
+ "touchstart",
34
+ "touchend",
35
+ "touchmove",
36
+ "touchcancel"
37
+ ];
38
+ const DELEGATED_HANDLERS = Symbol("askr.delegated-handlers");
39
+ const delegatedHandlerFallback = /* @__PURE__ */ new WeakMap();
40
+ function getDelegatedHandlerStore(element) {
41
+ return element[DELEGATED_HANDLERS] ?? delegatedHandlerFallback.get(element);
42
+ }
43
+ function setDelegatedHandlerStore(element, store) {
44
+ const host = element;
45
+ try {
46
+ host[DELEGATED_HANDLERS] = store;
47
+ if (host[DELEGATED_HANDLERS] === store) return;
48
+ } catch {}
49
+ delegatedHandlerFallback.set(element, store);
50
+ }
51
+ function deleteDelegatedHandlerStore(element) {
52
+ const host = element;
53
+ if (host[DELEGATED_HANDLERS] !== void 0) try {
54
+ delete host[DELEGATED_HANDLERS];
55
+ return;
56
+ } catch {}
57
+ delegatedHandlerFallback.delete(element);
58
+ }
59
+ let eventDelegationEnabled = true;
60
+ const containerDelegatedListeners = /* @__PURE__ */ new Map();
61
+ function isEventDelegationEnabled() {
62
+ return eventDelegationEnabled;
63
+ }
64
+ function decrementContainerListenerUsage(entry) {
65
+ const listeners = containerDelegatedListeners.get(entry.container);
66
+ const listener = listeners?.get(entry.eventName);
67
+ if (!listener) return;
68
+ listener.usage -= 1;
69
+ if (listener.usage > 0) return;
70
+ entry.container.removeEventListener(entry.eventName, listener.handler);
71
+ listeners?.delete(entry.eventName);
72
+ if (listeners?.size === 0) containerDelegatedListeners.delete(entry.container);
73
+ }
74
+ function getDelegationContainer() {
75
+ if (typeof document !== "undefined") return document.body;
76
+ return null;
77
+ }
78
+ function attachDelegatedListener(container, element, eventName, handler, originalHandler, options, fresh = false) {
79
+ const existingStore = fresh ? void 0 : getDelegatedHandlerStore(element);
80
+ const hadHandler = existingStore instanceof Map ? existingStore.has(eventName) : existingStore?.eventName === eventName;
81
+ let containerListeners = containerDelegatedListeners.get(container);
82
+ if (!containerListeners) {
83
+ containerListeners = /* @__PURE__ */ new Map();
84
+ containerDelegatedListeners.set(container, containerListeners);
85
+ }
86
+ let containerListener = containerListeners.get(eventName);
87
+ if (!containerListener) {
88
+ const delegatedHandler = (e) => {
89
+ const target = e.target;
90
+ if (!target) return;
91
+ runRuntimeHandlerScope(() => {
92
+ let current = target;
93
+ while (current && current !== container) {
94
+ const store = getDelegatedHandlerStore(current);
95
+ const entry = !store ? void 0 : store instanceof Map ? store.get(eventName) : store.eventName === eventName ? store : void 0;
96
+ if (entry) try {
97
+ entry.handler(e);
98
+ } catch (error) {
99
+ logger.error("[Askr] Delegated event error:", error);
100
+ }
101
+ if (e.cancelBubble) break;
102
+ current = current.parentElement;
103
+ }
104
+ }, "sync");
105
+ };
106
+ const listenerOptions = getPassiveOptions(eventName) ?? options;
107
+ container.addEventListener(eventName, delegatedHandler, listenerOptions);
108
+ containerListener = {
109
+ handler: delegatedHandler,
110
+ usage: 0
111
+ };
112
+ containerListeners.set(eventName, containerListener);
113
+ }
114
+ setDelegatedHandlerForElement(element, {
115
+ handler,
116
+ original: originalHandler,
117
+ container,
118
+ eventName,
119
+ options
120
+ }, existingStore);
121
+ if (!hadHandler) containerListener.usage += 1;
122
+ }
123
+ function setDelegatedHandlerForElement(element, entry, existing = getDelegatedHandlerStore(element)) {
124
+ if (!existing) {
125
+ setDelegatedHandlerStore(element, entry);
126
+ return;
127
+ }
128
+ if (existing instanceof Map) {
129
+ existing.set(entry.eventName, entry);
130
+ return;
131
+ }
132
+ if (existing.eventName === entry.eventName) {
133
+ setDelegatedHandlerStore(element, entry);
134
+ return;
135
+ }
136
+ const next = /* @__PURE__ */ new Map();
137
+ next.set(existing.eventName, existing);
138
+ next.set(entry.eventName, entry);
139
+ setDelegatedHandlerStore(element, next);
140
+ }
141
+ function getPassiveOptions(eventName) {
142
+ if (eventName === "wheel" || eventName === "scroll" || eventName.startsWith("touch")) return { passive: true };
143
+ }
144
+ function addDelegatedListener(element, eventName, handler, originalHandler, options) {
145
+ const container = getDelegationContainer();
146
+ if (!container) return;
147
+ attachDelegatedListener(container, element, eventName, handler, originalHandler, options);
148
+ }
149
+ /** @internal Attach a delegated handler to a newly cloned element. */
150
+ function addFreshDelegatedListener(element, eventName, handler, originalHandler, options) {
151
+ const container = getDelegationContainer();
152
+ if (!container) return;
153
+ attachDelegatedListener(container, element, eventName, handler, originalHandler, options, true);
154
+ }
155
+ function updateDelegatedListener(element, eventName, handler, originalHandler, options) {
156
+ const existing = getDelegatedHandlerForElement(element, eventName);
157
+ if (!existing) return false;
158
+ const container = getDelegationContainer();
159
+ if (!container || existing.container !== container || !containerDelegatedListeners.get(existing.container)?.has(eventName)) {
160
+ removeDelegatedListener(element, eventName);
161
+ return false;
162
+ }
163
+ existing.handler = handler;
164
+ existing.original = originalHandler;
165
+ existing.options = options;
166
+ return true;
167
+ }
168
+ function removeDelegatedListener(element, eventName) {
169
+ const existing = getDelegatedHandlerStore(element);
170
+ if (!existing) return;
171
+ if (existing instanceof Map) {
172
+ if (existing.has(eventName)) decrementContainerListenerUsage(existing.get(eventName));
173
+ existing.delete(eventName);
174
+ if (existing.size === 0) {
175
+ deleteDelegatedHandlerStore(element);
176
+ return;
177
+ }
178
+ if (existing.size === 1) {
179
+ const only = existing.values().next().value;
180
+ setDelegatedHandlerStore(element, only);
181
+ }
182
+ return;
183
+ }
184
+ if (existing.eventName === eventName) {
185
+ decrementContainerListenerUsage(existing);
186
+ deleteDelegatedHandlerStore(element);
187
+ }
188
+ }
189
+ function getDelegatedHandlerForElement(element, eventName) {
190
+ const store = getDelegatedHandlerStore(element);
191
+ if (!store) return void 0;
192
+ if (store instanceof Map) return store.get(eventName);
193
+ return store.eventName === eventName ? store : void 0;
194
+ }
195
+ function getDelegatedHandlersForElement(element) {
196
+ const store = getDelegatedHandlerStore(element);
197
+ if (!store) return void 0;
198
+ if (store instanceof Map) return store;
199
+ return /* @__PURE__ */ new Map([[store.eventName, store]]);
200
+ }
201
+ function clearDelegatedHandlersForElement(element) {
202
+ const existing = getDelegatedHandlerStore(element);
203
+ if (existing instanceof Map) for (const entry of existing.values()) decrementContainerListenerUsage(entry);
204
+ else if (existing) decrementContainerListenerUsage(existing);
205
+ deleteDelegatedHandlerStore(element);
206
+ }
207
+ function isDelegatedEvent(eventName) {
208
+ return DELEGATED_EVENTS.includes(eventName);
209
+ }
210
+ //#endregion
211
+ //#region src/renderer/cleanup.ts
212
+ const elementRefs = /* @__PURE__ */ new WeakMap();
213
+ const refOwners = /* @__PURE__ */ new WeakMap();
214
+ function isRefOwnerKey(ref) {
215
+ return typeof ref === "function" || typeof ref === "object" && ref !== null;
216
+ }
217
+ /** @internal Return the current exact owner for ref reconciliation. */
218
+ function getElementRefOwner(ref) {
219
+ return isRefOwnerKey(ref) ? refOwners.get(ref) : void 0;
220
+ }
221
+ /** @internal Synchronize ref registries without invoking user callbacks. */
222
+ function replaceElementRefBookkeeping(element, ref) {
223
+ const previousRef = elementRefs.get(element);
224
+ if (isRefOwnerKey(previousRef) && refOwners.get(previousRef) === element) refOwners.delete(previousRef);
225
+ if (ref) {
226
+ elementRefs.set(element, ref);
227
+ if (isRefOwnerKey(ref)) refOwners.set(ref, element);
228
+ } else elementRefs.delete(element);
229
+ }
230
+ function applyRefValue(ref, value) {
231
+ const resolvedRef = ref;
232
+ if (!resolvedRef) return;
233
+ if (typeof resolvedRef === "function") {
234
+ resolvedRef(value);
235
+ return;
236
+ }
237
+ if (Object.isExtensible(resolvedRef)) resolvedRef.current = value;
238
+ }
239
+ function updateElementRef(element, ref) {
240
+ if (registerLifecycleTransaction({}, () => updateElementRefImmediately(element, ref), () => void 0)) return;
241
+ updateElementRefImmediately(element, ref);
242
+ }
243
+ function updateElementRefImmediately(element, ref) {
244
+ const previousRef = elementRefs.get(element);
245
+ if (previousRef === ref) return;
246
+ if (previousRef) {
247
+ applyRefValue(previousRef, null);
248
+ if (getElementRefOwner(previousRef) === element) refOwners.delete(previousRef);
249
+ }
250
+ if (ref) {
251
+ const previousOwner = getElementRefOwner(ref);
252
+ if (typeof ref === "function" && previousOwner && previousOwner !== element) {
253
+ elementRefs.set(element, ref);
254
+ refOwners.set(ref, element);
255
+ return;
256
+ }
257
+ applyRefValue(ref, element);
258
+ elementRefs.set(element, ref);
259
+ if (isRefOwnerKey(ref)) refOwners.set(ref, element);
260
+ } else elementRefs.delete(element);
261
+ }
262
+ function removeElementRef(element) {
263
+ const ref = elementRefs.get(element);
264
+ if (!ref) return;
265
+ if (typeof ref !== "function" && getElementRefOwner(ref) !== element) {
266
+ elementRefs.delete(element);
267
+ return;
268
+ }
269
+ applyRefValue(ref, null);
270
+ const nextOwner = getElementRefOwner(ref);
271
+ if (typeof ref === "function" && nextOwner && nextOwner !== element) applyRefValue(ref, nextOwner);
272
+ replaceElementRefBookkeeping(element, void 0);
273
+ }
274
+ function cleanupSingleInstance(node, errors, strict) {
275
+ const instanceList = node.__ASKR_INSTANCES;
276
+ const primaryInstance = node.__ASKR_INSTANCE;
277
+ if (!instanceList && !primaryInstance) return;
278
+ const instances = /* @__PURE__ */ new Set();
279
+ if (Array.isArray(instanceList)) {
280
+ for (const instance of instanceList) if (instance) instances.add(instance);
281
+ }
282
+ if (primaryInstance) instances.add(primaryInstance);
283
+ for (const instance of instances) try {
284
+ cleanupComponent(instance);
285
+ } catch (err) {
286
+ if (strict) errors.push(err);
287
+ else logger.warn("[Askr] cleanupComponent failed:", err);
288
+ }
289
+ try {
290
+ delete node.__ASKR_INSTANCE;
291
+ delete node.__ASKR_INSTANCES;
292
+ } catch (e) {
293
+ if (strict) errors.push(e);
294
+ }
295
+ }
296
+ function teardownSingleElement(element, errors, strict) {
297
+ try {
298
+ removeElementRef(element);
299
+ } catch (err) {
300
+ if (strict) errors.push(err);
301
+ else logger.warn("[Askr] removeElementRef failed:", err);
302
+ }
303
+ try {
304
+ removeElementListeners(element);
305
+ } catch (err) {
306
+ if (strict) errors.push(err);
307
+ else logger.warn("[Askr] removeElementListeners failed:", err);
308
+ }
309
+ try {
310
+ removeElementReactiveProps(element);
311
+ } catch (err) {
312
+ if (strict) errors.push(err);
313
+ else logger.warn("[Askr] removeElementReactiveProps failed:", err);
314
+ }
315
+ try {
316
+ cleanupSingleInstance(element, errors, strict);
317
+ } catch (err) {
318
+ if (strict) errors.push(err);
319
+ else logger.warn("[Askr] cleanupSingleInstance failed:", err);
320
+ }
321
+ }
322
+ function forEachDescendantElement(root, visit) {
323
+ try {
324
+ const doc = root.ownerDocument;
325
+ const createTreeWalker = doc?.createTreeWalker;
326
+ if (typeof createTreeWalker === "function") {
327
+ const walker = createTreeWalker.call(doc, root, 1);
328
+ let n = walker.firstChild();
329
+ while (n) {
330
+ visit(n);
331
+ n = walker.nextNode();
332
+ }
333
+ return;
334
+ }
335
+ } catch {}
336
+ const descendants = root.querySelectorAll("*");
337
+ for (let i = 0; i < descendants.length; i++) visit(descendants[i]);
338
+ }
339
+ /** @internal Walk every descendant node, including component-host comments. */
340
+ function forEachDescendantNode(root, visit) {
341
+ try {
342
+ const doc = root.ownerDocument;
343
+ const createTreeWalker = doc?.createTreeWalker;
344
+ if (typeof createTreeWalker === "function") {
345
+ const walker = createTreeWalker.call(doc, root, 4294967295);
346
+ let node = walker.nextNode();
347
+ while (node) {
348
+ visit(node);
349
+ node = walker.nextNode();
350
+ }
351
+ return;
352
+ }
353
+ } catch {}
354
+ const stack = Array.from(root.childNodes).reverse();
355
+ while (stack.length > 0) {
356
+ const node = stack.pop();
357
+ visit(node);
358
+ for (let child = node.lastChild; child; child = child.previousSibling) stack.push(child);
359
+ }
360
+ }
361
+ function forEachElementInSubtree(root, visit) {
362
+ visit(root);
363
+ forEachDescendantElement(root, visit);
364
+ }
365
+ const elementListeners = /* @__PURE__ */ new WeakMap();
366
+ /**
367
+ * Clean up component instance attached to a DOM node
368
+ * Accepts an optional `opts.strict` flag to surface errors instead of swallowing them.
369
+ */
370
+ function cleanupInstanceIfPresent(node, opts) {
371
+ if (!node) return;
372
+ const strict = opts?.strict ?? false;
373
+ const errors = strict ? [] : null;
374
+ try {
375
+ cleanupSingleInstance(node, errors, strict);
376
+ } catch (err) {
377
+ if (strict) errors.push(err);
378
+ else logger.warn("[Askr] cleanupInstanceIfPresent failed:", err);
379
+ }
380
+ try {
381
+ forEachDescendantNode(node, (descendant) => {
382
+ try {
383
+ cleanupSingleInstance(descendant, errors, strict);
384
+ } catch (err) {
385
+ if (strict) errors.push(err);
386
+ else logger.warn("[Askr] cleanupInstanceIfPresent descendant cleanup failed:", err);
387
+ }
388
+ });
389
+ } catch (err) {
390
+ if (strict) errors.push(err);
391
+ else logger.warn("[Askr] cleanupInstanceIfPresent descendant query failed:", err);
392
+ }
393
+ if (errors && errors.length > 0) throw new AggregateError(errors, "cleanupInstanceIfPresent failed");
394
+ }
395
+ function cleanupInstancesUnder(node, opts) {
396
+ cleanupInstanceIfPresent(node, opts);
397
+ }
398
+ function teardownNodeSubtree(node, opts) {
399
+ if (!node) return;
400
+ const strict = opts?.strict ?? false;
401
+ const errors = strict ? [] : null;
402
+ if (!(node instanceof Element)) {
403
+ cleanupSingleInstance(node, errors, strict);
404
+ if (errors && errors.length > 0) throw new AggregateError(errors, "teardownNodeSubtree failed");
405
+ return;
406
+ }
407
+ try {
408
+ teardownSingleElement(node, errors, strict);
409
+ forEachDescendantNode(node, (descendant) => {
410
+ if (descendant instanceof Element) teardownSingleElement(descendant, errors, strict);
411
+ else cleanupSingleInstance(descendant, errors, strict);
412
+ });
413
+ } catch (err) {
414
+ if (strict) errors.push(err);
415
+ else logger.warn("[Askr] teardownNodeSubtree failed:", err);
416
+ }
417
+ if (errors && errors.length > 0) throw new AggregateError(errors, "teardownNodeSubtree failed");
418
+ }
419
+ const REACTIVE_CHILDREN_KEY = "__askr_reactive_children__";
420
+ const elementReactivePropsCleanup = /* @__PURE__ */ new WeakMap();
421
+ function getElementReactivePropsCleanupMap(element, create = false) {
422
+ const store = elementReactivePropsCleanup.get(element);
423
+ if (store instanceof Map) return store;
424
+ if (store) {
425
+ const map = /* @__PURE__ */ new Map([[store._bindingKey, store]]);
426
+ elementReactivePropsCleanup.set(element, map);
427
+ return map;
428
+ }
429
+ if (!create) return;
430
+ const map = /* @__PURE__ */ new Map();
431
+ elementReactivePropsCleanup.set(element, map);
432
+ return map;
433
+ }
434
+ function setDirectElementReactivePropCleanup(element, bindingKey, entry) {
435
+ if (!elementReactivePropsCleanup.get(element)) {
436
+ entry._bindingKey = bindingKey;
437
+ elementReactivePropsCleanup.set(element, entry);
438
+ return;
439
+ }
440
+ getElementReactivePropsCleanupMap(element, true).set(bindingKey, entry);
441
+ }
442
+ /** @internal Publish the first reactive binding on a newly created element. */
443
+ function setFreshElementReactivePropCleanup(element, bindingKey, entry) {
444
+ entry._bindingKey = bindingKey;
445
+ elementReactivePropsCleanup.set(element, entry);
446
+ }
447
+ function getElementReactivePropCleanupSize(element) {
448
+ const store = elementReactivePropsCleanup.get(element);
449
+ return store instanceof Map ? store.size : store ? 1 : 0;
450
+ }
451
+ function forEachElementReactivePropCleanup(element, visit) {
452
+ const store = elementReactivePropsCleanup.get(element);
453
+ if (store instanceof Map) for (const entry of store.values()) visit(entry);
454
+ else if (store) visit(store);
455
+ }
456
+ function removeElementReactiveProps(element) {
457
+ if (elementReactivePropsCleanup.has(element)) {
458
+ forEachElementReactivePropCleanup(element, (entry) => {
459
+ try {
460
+ entry.cleanup();
461
+ } catch (err) {
462
+ logger.warn("[Askr] reactive prop cleanup failed:", err);
463
+ }
464
+ });
465
+ elementReactivePropsCleanup.delete(element);
466
+ }
467
+ }
468
+ function removeElementListeners(element) {
469
+ const map = elementListeners.get(element);
470
+ if (map) {
471
+ for (const entry of map.values()) if (entry.isDelegated) removeDelegatedListener(element, entry.eventName);
472
+ else if (entry.options !== void 0) element.removeEventListener(entry.eventName, entry.handler, entry.options);
473
+ else element.removeEventListener(entry.eventName, entry.handler);
474
+ elementListeners.delete(element);
475
+ }
476
+ clearDelegatedHandlersForElement(element);
477
+ }
478
+ function removeAllListeners(root) {
479
+ if (!root) return;
480
+ forEachElementInSubtree(root, (el) => {
481
+ removeElementRef(el);
482
+ removeElementListeners(el);
483
+ removeElementReactiveProps(el);
484
+ });
485
+ }
486
+ //#endregion
487
+ export { getDelegatedHandlersForElement as C, updateDelegatedListener as D, removeDelegatedListener as E, getDelegatedHandlerForElement as S, isEventDelegationEnabled as T, teardownNodeSubtree as _, elementReactivePropsCleanup as a, addFreshDelegatedListener as b, forEachElementReactivePropCleanup as c, removeAllListeners as d, removeElementReactiveProps as f, setFreshElementReactivePropCleanup as g, setDirectElementReactivePropCleanup as h, elementListeners as i, getElementReactivePropCleanupSize as l, replaceElementRefBookkeeping as m, cleanupInstanceIfPresent as n, elementRefs as o, removeElementRef as p, cleanupInstancesUnder as r, forEachDescendantNode as s, REACTIVE_CHILDREN_KEY as t, getElementReactivePropsCleanupMap as u, updateElementRef as v, isDelegatedEvent as w, clearDelegatedHandlersForElement as x, addDelegatedListener as y };