@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
package/dist/fx/timing.js DELETED
@@ -1,243 +0,0 @@
1
- //#region src/fx/timing.ts
2
- /**
3
- * Debounce — delay execution, coalesce rapid calls
4
- *
5
- * Useful for: text input, resize, autosave
6
- *
7
- * @param fn Function to debounce
8
- * @param ms Delay in milliseconds
9
- * @param options trailing (default true), leading
10
- * @returns Debounced function with cancel() method
11
- *
12
- * @example
13
- * ```ts
14
- * const save = debounce((text) => api.save(text), 500);
15
- * input.addEventListener('input', (e) => save(e.target.value));
16
- * save.cancel(); // stop any pending execution
17
- * ```
18
- */
19
- function debounce(fn, ms, options) {
20
- const callable = fn;
21
- let timeoutId = null;
22
- const { leading = false, trailing = true } = options || {};
23
- let lastArgs = null;
24
- let lastThis = null;
25
- let lastCallTime = 0;
26
- const debounced = function(...args) {
27
- const callTime = Date.now();
28
- lastArgs = args;
29
- lastThis = this;
30
- if (timeoutId !== null) clearTimeout(timeoutId);
31
- if (leading && callTime - lastCallTime >= ms) {
32
- callable.apply(this, args);
33
- lastCallTime = callTime;
34
- }
35
- if (trailing) timeoutId = setTimeout(() => {
36
- callable.apply(lastThis, lastArgs);
37
- timeoutId = null;
38
- lastCallTime = Date.now();
39
- }, ms);
40
- };
41
- debounced.cancel = () => {
42
- if (timeoutId !== null) {
43
- clearTimeout(timeoutId);
44
- timeoutId = null;
45
- }
46
- };
47
- return debounced;
48
- }
49
- /**
50
- * Throttle — rate-limit execution, keep first/last
51
- *
52
- * Useful for: scroll, mouse move, high-frequency events
53
- *
54
- * @param fn Function to throttle
55
- * @param ms Minimum interval between calls in milliseconds
56
- * @param options leading (default true), trailing (default true)
57
- * @returns Throttled function with cancel() method
58
- *
59
- * @example
60
- * ```ts
61
- * const handleScroll = throttle(updateUI, 100);
62
- * window.addEventListener('scroll', handleScroll);
63
- * handleScroll.cancel();
64
- * ```
65
- */
66
- function throttle(fn, ms, options) {
67
- const callable = fn;
68
- let lastCallTime = null;
69
- let timeoutId = null;
70
- const { leading = true, trailing = true } = options || {};
71
- let lastArgs = null;
72
- let lastThis = null;
73
- const throttled = function(...args) {
74
- const callTime = Date.now();
75
- const timeSinceLastCall = lastCallTime === null ? Number.POSITIVE_INFINITY : callTime - lastCallTime;
76
- lastArgs = args;
77
- lastThis = this;
78
- if (leading && timeSinceLastCall >= ms) {
79
- callable.apply(this, args);
80
- lastCallTime = callTime;
81
- if (timeoutId !== null) {
82
- clearTimeout(timeoutId);
83
- timeoutId = null;
84
- }
85
- return;
86
- }
87
- if (!leading && lastCallTime === null) lastCallTime = callTime;
88
- if (trailing && timeoutId === null) timeoutId = setTimeout(() => {
89
- callable.apply(lastThis, lastArgs);
90
- lastCallTime = Date.now();
91
- timeoutId = null;
92
- }, lastCallTime === null ? ms : Math.max(0, ms - (callTime - lastCallTime)));
93
- };
94
- throttled.cancel = () => {
95
- if (timeoutId !== null) {
96
- clearTimeout(timeoutId);
97
- timeoutId = null;
98
- }
99
- };
100
- return throttled;
101
- }
102
- /**
103
- * Once — guard against double execution
104
- *
105
- * Useful for: init logic, event safety
106
- *
107
- * @param fn Function to call at most once
108
- * @returns Function that executes fn only on first call
109
- *
110
- * @example
111
- * ```ts
112
- * const init = once(setup);
113
- * init(); // runs
114
- * init(); // does nothing
115
- * init(); // does nothing
116
- * ```
117
- */
118
- function once(fn) {
119
- const callable = fn;
120
- let called = false;
121
- let result;
122
- return ((...args) => {
123
- if (!called) {
124
- called = true;
125
- result = callable(...args);
126
- }
127
- return result;
128
- });
129
- }
130
- /**
131
- * Defer — schedule on microtask queue
132
- *
133
- * Useful for: run-after-current-stack logic
134
- * More reliable than setTimeout(..., 0)
135
- *
136
- * @param fn Function to defer
137
- *
138
- * @example
139
- * ```ts
140
- * defer(() => update()); // runs after current stack, before next macrotask
141
- * ```
142
- */
143
- function defer(fn) {
144
- Promise.resolve().then(fn);
145
- }
146
- /**
147
- * RAF — coalesce multiple updates into single frame
148
- *
149
- * Useful for: animation, layout work, render updates
150
- *
151
- * @param fn Function to schedule on next animation frame
152
- * @returns Function that schedules fn on requestAnimationFrame
153
- *
154
- * @example
155
- * ```ts
156
- * const update = raf(render);
157
- * update(); // schedules on next frame
158
- * update(); // same frame, no duplicate
159
- * ```
160
- */
161
- function raf(fn) {
162
- const callable = fn;
163
- let frameId = null;
164
- let lastArgs = null;
165
- let lastThis = null;
166
- return function(...args) {
167
- lastArgs = args;
168
- lastThis = this;
169
- if (frameId === null) frameId = requestAnimationFrame(() => {
170
- callable.apply(lastThis, lastArgs);
171
- frameId = null;
172
- });
173
- };
174
- }
175
- /**
176
- * Idle — schedule low-priority work
177
- *
178
- * Useful for: background prep, non-urgent updates
179
- * Falls back to setTimeout if requestIdleCallback unavailable
180
- *
181
- * @param fn Function to call when idle
182
- * @param options timeout for fallback
183
- *
184
- * @example
185
- * ```ts
186
- * idle(() => prefetchData());
187
- * ```
188
- */
189
- function idle(fn, options) {
190
- if (typeof requestIdleCallback !== "undefined") requestIdleCallback(fn, options ? { timeout: options.timeout } : void 0);
191
- else Promise.resolve().then(() => {
192
- setTimeout(fn, 0);
193
- });
194
- }
195
- /**
196
- * Timeout — Promise-based delay
197
- *
198
- * Useful for: readable async code, waiting between retries
199
- *
200
- * @param ms Milliseconds to wait
201
- * @returns Promise that resolves after delay
202
- *
203
- * @example
204
- * ```ts
205
- * await timeout(300);
206
- * console.log('300ms later');
207
- * ```
208
- */
209
- function timeout(ms) {
210
- return new Promise((resolve) => setTimeout(resolve, ms));
211
- }
212
- /**
213
- * Retry — attempt function with backoff
214
- *
215
- * Useful for: network calls, transient failures
216
- *
217
- * @param fn Async function to retry
218
- * @param options maxAttempts, delayMs, backoff function
219
- * @returns Promise with final result or error
220
- *
221
- * @example
222
- * ```ts
223
- * const data = await retry(() => fetch(url), {
224
- * maxAttempts: 3,
225
- * delayMs: 100,
226
- * });
227
- * ```
228
- */
229
- async function retry(fn, options) {
230
- const { maxAttempts = 3, delayMs = 100, backoff = (i) => delayMs * Math.pow(2, i) } = options || {};
231
- let lastError = null;
232
- for (let attempt = 0; attempt < maxAttempts; attempt++) try {
233
- return await fn();
234
- } catch (error) {
235
- lastError = error;
236
- if (attempt < maxAttempts - 1) await timeout(backoff(attempt));
237
- }
238
- throw lastError || /* @__PURE__ */ new Error("Retry failed");
239
- }
240
- //#endregion
241
- export { debounce, defer, idle, once, raf, retry, throttle, timeout };
242
-
243
- //# sourceMappingURL=timing.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"timing.js","names":[],"sources":["../../src/fx/timing.ts"],"sourcesContent":["/**\n * Timing utilities — pure helpers for common async patterns\n * No framework coupling. No lifecycle awareness.\n */\n\nexport interface DebounceOptions {\n leading?: boolean;\n trailing?: boolean;\n}\n\nexport interface ThrottleOptions {\n leading?: boolean;\n trailing?: boolean;\n}\n\nexport interface RetryOptions {\n maxAttempts?: number;\n delayMs?: number;\n backoff?: (attemptIndex: number) => number;\n}\n\ntype AnyFn = (...args: never[]) => unknown;\ntype CallableFn = (this: unknown, ...args: unknown[]) => unknown;\n\n/**\n * Debounce — delay execution, coalesce rapid calls\n *\n * Useful for: text input, resize, autosave\n *\n * @param fn Function to debounce\n * @param ms Delay in milliseconds\n * @param options trailing (default true), leading\n * @returns Debounced function with cancel() method\n *\n * @example\n * ```ts\n * const save = debounce((text) => api.save(text), 500);\n * input.addEventListener('input', (e) => save(e.target.value));\n * save.cancel(); // stop any pending execution\n * ```\n */\nexport function debounce<T extends AnyFn>(\n fn: T,\n ms: number,\n options?: DebounceOptions\n): T & { cancel(): void } {\n const callable = fn as unknown as CallableFn;\n let timeoutId: NodeJS.Timeout | null = null;\n const { leading = false, trailing = true } = options || {};\n let lastArgs: unknown[] | null = null;\n let lastThis: unknown = null;\n let lastCallTime = 0;\n\n const debounced = function (this: unknown, ...args: unknown[]) {\n const callTime = Date.now();\n lastArgs = args;\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n lastThis = this;\n\n if (timeoutId !== null) {\n clearTimeout(timeoutId);\n }\n\n if (leading && callTime - lastCallTime >= ms) {\n callable.apply(this, args);\n lastCallTime = callTime;\n }\n\n if (trailing) {\n timeoutId = setTimeout(() => {\n callable.apply(lastThis, lastArgs!);\n timeoutId = null;\n lastCallTime = Date.now();\n }, ms);\n }\n };\n\n debounced.cancel = () => {\n if (timeoutId !== null) {\n clearTimeout(timeoutId);\n timeoutId = null;\n }\n };\n\n return debounced as unknown as T & { cancel(): void };\n}\n\n/**\n * Throttle — rate-limit execution, keep first/last\n *\n * Useful for: scroll, mouse move, high-frequency events\n *\n * @param fn Function to throttle\n * @param ms Minimum interval between calls in milliseconds\n * @param options leading (default true), trailing (default true)\n * @returns Throttled function with cancel() method\n *\n * @example\n * ```ts\n * const handleScroll = throttle(updateUI, 100);\n * window.addEventListener('scroll', handleScroll);\n * handleScroll.cancel();\n * ```\n */\nexport function throttle<T extends AnyFn>(\n fn: T,\n ms: number,\n options?: ThrottleOptions\n): T & { cancel(): void } {\n const callable = fn as unknown as CallableFn;\n let lastCallTime: number | null = null;\n let timeoutId: NodeJS.Timeout | null = null;\n const { leading = true, trailing = true } = options || {};\n let lastArgs: unknown[] | null = null;\n let lastThis: unknown = null;\n\n const throttled = function (this: unknown, ...args: unknown[]) {\n const callTime = Date.now();\n const timeSinceLastCall =\n lastCallTime === null\n ? Number.POSITIVE_INFINITY\n : callTime - lastCallTime;\n lastArgs = args;\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n lastThis = this;\n\n if (leading && timeSinceLastCall >= ms) {\n callable.apply(this, args);\n lastCallTime = callTime;\n if (timeoutId !== null) {\n clearTimeout(timeoutId);\n timeoutId = null;\n }\n return;\n }\n\n if (!leading && lastCallTime === null) {\n lastCallTime = callTime;\n }\n\n if (trailing && timeoutId === null) {\n timeoutId = setTimeout(\n () => {\n callable.apply(lastThis, lastArgs!);\n lastCallTime = Date.now();\n timeoutId = null;\n },\n lastCallTime === null ? ms : Math.max(0, ms - (callTime - lastCallTime))\n );\n }\n };\n\n throttled.cancel = () => {\n if (timeoutId !== null) {\n clearTimeout(timeoutId);\n timeoutId = null;\n }\n };\n\n return throttled as unknown as T & { cancel(): void };\n}\n\n/**\n * Once — guard against double execution\n *\n * Useful for: init logic, event safety\n *\n * @param fn Function to call at most once\n * @returns Function that executes fn only on first call\n *\n * @example\n * ```ts\n * const init = once(setup);\n * init(); // runs\n * init(); // does nothing\n * init(); // does nothing\n * ```\n */\nexport function once<T extends AnyFn>(fn: T): T {\n const callable = fn as unknown as CallableFn;\n let called = false;\n let result: unknown;\n\n return ((...args: unknown[]) => {\n if (!called) {\n called = true;\n result = callable(...args);\n }\n return result;\n }) as unknown as T;\n}\n\n/**\n * Defer — schedule on microtask queue\n *\n * Useful for: run-after-current-stack logic\n * More reliable than setTimeout(..., 0)\n *\n * @param fn Function to defer\n *\n * @example\n * ```ts\n * defer(() => update()); // runs after current stack, before next macrotask\n * ```\n */\nexport function defer(fn: () => void): void {\n Promise.resolve().then(fn);\n}\n\n/**\n * RAF — coalesce multiple updates into single frame\n *\n * Useful for: animation, layout work, render updates\n *\n * @param fn Function to schedule on next animation frame\n * @returns Function that schedules fn on requestAnimationFrame\n *\n * @example\n * ```ts\n * const update = raf(render);\n * update(); // schedules on next frame\n * update(); // same frame, no duplicate\n * ```\n */\nexport function raf<T extends AnyFn>(fn: T): T {\n const callable = fn as unknown as CallableFn;\n let frameId: number | null = null;\n let lastArgs: unknown[] | null = null;\n let lastThis: unknown = null;\n\n return function (this: unknown, ...args: unknown[]) {\n lastArgs = args;\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n lastThis = this;\n\n if (frameId === null) {\n frameId = requestAnimationFrame(() => {\n callable.apply(lastThis, lastArgs!);\n frameId = null;\n });\n }\n } as unknown as T;\n}\n\n/**\n * Idle — schedule low-priority work\n *\n * Useful for: background prep, non-urgent updates\n * Falls back to setTimeout if requestIdleCallback unavailable\n *\n * @param fn Function to call when idle\n * @param options timeout for fallback\n *\n * @example\n * ```ts\n * idle(() => prefetchData());\n * ```\n */\nexport function idle(fn: () => void, options?: { timeout?: number }): void {\n if (typeof requestIdleCallback !== 'undefined') {\n requestIdleCallback(fn, options ? { timeout: options.timeout } : undefined);\n } else {\n // Fallback: defer to microtask, then use setTimeout\n Promise.resolve().then(() => {\n setTimeout(fn, 0);\n });\n }\n}\n\n/**\n * Timeout — Promise-based delay\n *\n * Useful for: readable async code, waiting between retries\n *\n * @param ms Milliseconds to wait\n * @returns Promise that resolves after delay\n *\n * @example\n * ```ts\n * await timeout(300);\n * console.log('300ms later');\n * ```\n */\nexport function timeout(ms: number): Promise<void> {\n return new Promise((resolve) => setTimeout(resolve, ms));\n}\n\n/**\n * Retry — attempt function with backoff\n *\n * Useful for: network calls, transient failures\n *\n * @param fn Async function to retry\n * @param options maxAttempts, delayMs, backoff function\n * @returns Promise with final result or error\n *\n * @example\n * ```ts\n * const data = await retry(() => fetch(url), {\n * maxAttempts: 3,\n * delayMs: 100,\n * });\n * ```\n */\nexport async function retry<T>(\n fn: () => Promise<T>,\n options?: RetryOptions\n): Promise<T> {\n const {\n maxAttempts = 3,\n delayMs = 100,\n backoff = (i: number) => delayMs * Math.pow(2, i),\n } = options || {};\n\n let lastError: Error | null = null;\n\n for (let attempt = 0; attempt < maxAttempts; attempt++) {\n try {\n return await fn();\n } catch (error) {\n lastError = error as Error;\n if (attempt < maxAttempts - 1) {\n const delay = backoff(attempt);\n await timeout(delay);\n }\n }\n }\n\n throw lastError || new Error('Retry failed');\n}\n"],"mappings":"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"}
package/dist/index.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","names":[],"sources":["../src/index.ts"],"sourcesContent":["/**\n * Askr: Actor-backed deterministic UI framework\n *\n * Public API surface — only users should import from here\n */\n\nimport { installRendererBridge } from './renderer';\n\ninstallRendererBridge();\n\nexport { createRuntime, getDefaultRuntime } from './runtime';\nexport type {\n AskrRuntimeOptions,\n RuntimeRendererHost,\n RuntimeKeyedReorderDecision,\n} from './runtime';\nexport { AskrRuntime } from './runtime';\n\n// Runtime primitives\nexport { derive, getSignal, selector, state } from './runtime';\nexport type {\n Derived,\n Selector,\n State,\n StateSetter,\n StateTuple,\n} from './runtime';\n\n// Control flow\nexport { Case, For, Match, Show } from './control';\nexport type { CaseProps, ForProps, MatchProps, ShowProps } from './control';\n\n// Context\nexport { defineContext, readContext } from './runtime';\nexport type { Context } from './runtime';\n\n// Re-export JSX runtime for tsconfig jsxImportSource\nexport { jsx, jsxs, Fragment } from './jsx-runtime';\n\n// Public types\nexport type { Props } from './common/props';\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAQA,sBAAsB"}
@@ -1,2 +0,0 @@
1
- import { Fragment, JSXComponent, JSXElement, JSXElementType } from "../common/jsx.js";
2
- export type { JSXElement };
package/dist/jsx/index.js DELETED
@@ -1,4 +0,0 @@
1
- import { ELEMENT_TYPE, Fragment } from "../common/jsx.js";
2
- import "./types.js";
3
- import { cloneElement, isElement } from "./utils.js";
4
- export { ELEMENT_TYPE, Fragment, cloneElement, isElement };
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.d.ts","names":[],"sources":["../../src/jsx/types.ts"],"mappings":";;;;QAoBQ,MAAA;EAAA,UAEI,GAAA;IAAA,UAEE,OAAA,SAAgB,UAAA;MAAA,SACf,qBAAA;IAAA;IAAA,UAGD,iBAAA,SAA0B,0BAAA;MAAA,CACjC,IAAA,WACG,sBAAA,GACA,0BAAA,OAAiC,0BAAA;IAAA;IAAA,UAG7B,yBAAA;MACR,KAAA,EAAO,KAAA;IAAA;IAAA,UAGC,wBAAA;MACR,QAAA;IAAA;EAAA;AAAA"}
package/dist/jsx/types.js DELETED
@@ -1,2 +0,0 @@
1
- import { ELEMENT_TYPE, Fragment, STATIC_CHILDREN } from "../common/jsx.js";
2
- export { ELEMENT_TYPE, Fragment, STATIC_CHILDREN };
@@ -1,5 +0,0 @@
1
- import { JSXElement } from "../common/jsx.js";
2
- //#region src/jsx/utils.d.ts
3
- declare function isElement(value: unknown): value is JSXElement;
4
- declare function cloneElement(element: JSXElement, props: Record<string, unknown>): JSXElement;
5
- //# sourceMappingURL=utils.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"utils.d.ts","names":[],"sources":["../../src/jsx/utils.ts"],"mappings":";;iBAEgB,SAAA,CAAU,KAAA,YAAiB,KAAA,IAAS,UAAU;AAAA,iBAQ9C,YAAA,CACd,OAAA,EAAS,UAAA,EACT,KAAA,EAAO,MAAA,oBACN,UAAA"}
package/dist/jsx/utils.js DELETED
@@ -1,19 +0,0 @@
1
- import { ELEMENT_TYPE } from "../common/jsx.js";
2
- import "./types.js";
3
- //#region src/jsx/utils.ts
4
- function isElement(value) {
5
- return typeof value === "object" && value !== null && value.$$typeof === ELEMENT_TYPE;
6
- }
7
- function cloneElement(element, props) {
8
- return {
9
- ...element,
10
- props: {
11
- ...element.props,
12
- ...props
13
- }
14
- };
15
- }
16
- //#endregion
17
- export { cloneElement, isElement };
18
-
19
- //# sourceMappingURL=utils.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"utils.js","names":[],"sources":["../../src/jsx/utils.ts"],"sourcesContent":["import { ELEMENT_TYPE, JSXElement } from './types';\n\nexport function isElement(value: unknown): value is JSXElement {\n return (\n typeof value === 'object' &&\n value !== null &&\n (value as JSXElement).$$typeof === ELEMENT_TYPE\n );\n}\n\nexport function cloneElement(\n element: JSXElement,\n props: Record<string, unknown>\n): JSXElement {\n return {\n ...element,\n props: { ...element.props, ...props },\n };\n}\n"],"mappings":";;;AAEA,SAAgB,UAAU,OAAqC;CAC7D,OACE,OAAO,UAAU,YACjB,UAAU,QACT,MAAqB,aAAa;AAEvC;AAEA,SAAgB,aACd,SACA,OACY;CACZ,OAAO;EACL,GAAG;EACH,OAAO;GAAE,GAAG,QAAQ;GAAO,GAAG;EAAM;CACtC;AACF"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"jsx-dev-runtime.d.ts","names":[],"sources":["../src/jsx/jsx-dev-runtime.ts"],"mappings":";;;;iBA2CgB,MAAA,CACd,IAAA,EAAM,qBAAA,EACN,KAAA,EAAO,KAAK,SACZ,GAAA,oBACA,gBAAA;AAAA,iBAEc,MAAA,oBAA0B,0BAAA,EACxC,IAAA,EAAM,IAAA,EACN,KAAA,EAAO,0BAAA,CAA2B,IAAA,UAClC,GAAA,oBACA,gBAAA,aACC,UAAA;AAAA,iBACa,MAAA,sBACd,IAAA,EAAM,OAAA,CAAQ,IAAA,QAAY,0BAAA,GAC1B,KAAA,EAAO,sBAAA,SACP,GAAA,oBACA,gBAAA,aACC,UAAA;AAAA,iBACa,MAAA,wBACd,IAAA,GAAO,KAAA,EAAO,MAAA,cACd,KAAA,EAAO,MAAA,SACP,GAAA,oBACA,gBAAA,aACC,UAAA;AAAA,iBACa,MAAA,CACd,IAAA,UACA,KAAA,EAAO,KAAA,SACP,GAAA,oBACA,gBAAA,aACC,UAAU"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"jsx-dev-runtime.js","names":[],"sources":["../src/jsx/jsx-dev-runtime.ts"],"sourcesContent":["/**\n * JSX dev runtime factory\n * Same element shape as production runtime, with room for dev warnings.\n */\nimport type {\n IntrinsicFallbackProps,\n KnownIntrinsicElementProps,\n Props,\n} from '../common/props';\nimport {\n isEagerControlPrimitive,\n type EagerControlPrimitive,\n} from '../common/control';\nimport {\n ELEMENT_TYPE,\n Fragment,\n STATIC_CHILDREN,\n type JSXElementType,\n type JSXElement,\n} from './types';\nimport { markReadableUsage } from '../runtime';\n\nfunction annotatePropsUsage(props: Record<string, unknown> | null): Props {\n const normalizedProps = (props ?? {}) as Props;\n\n for (const value of Object.values(normalizedProps)) {\n markReadableUsage(value);\n }\n\n return normalizedProps;\n}\n\nfunction markStaticChildren(props: Props): Props {\n if (Array.isArray(props.children)) {\n Object.defineProperty(props.children, STATIC_CHILDREN, {\n value: true,\n configurable: true,\n });\n }\n\n return props;\n}\n\nexport function jsxDEV(\n type: EagerControlPrimitive,\n props: Props | null,\n key?: string | number,\n isStaticChildren?: boolean\n): unknown;\nexport function jsxDEV<TTag extends keyof KnownIntrinsicElementProps>(\n type: TTag,\n props: KnownIntrinsicElementProps[TTag] | null,\n key?: string | number,\n isStaticChildren?: boolean\n): JSXElement;\nexport function jsxDEV<TTag extends string>(\n type: Exclude<TTag, keyof KnownIntrinsicElementProps>,\n props: IntrinsicFallbackProps | null,\n key?: string | number,\n isStaticChildren?: boolean\n): JSXElement;\nexport function jsxDEV<TProps extends object>(\n type: (props: TProps) => unknown,\n props: TProps | null,\n key?: string | number,\n isStaticChildren?: boolean\n): JSXElement;\nexport function jsxDEV(\n type: symbol,\n props: Props | null,\n key?: string | number,\n isStaticChildren?: boolean\n): JSXElement;\nexport function jsxDEV(\n type: unknown,\n props: Record<string, unknown> | null,\n key?: string | number,\n isStaticChildren = false\n): JSXElement | unknown {\n const normalizedProps = annotatePropsUsage(props);\n const preparedProps = isStaticChildren\n ? markStaticChildren(normalizedProps)\n : normalizedProps;\n\n if (isEagerControlPrimitive(type)) {\n return type(preparedProps);\n }\n\n return {\n $$typeof: ELEMENT_TYPE,\n type: type as JSXElementType,\n props: preparedProps,\n key: key ?? null,\n };\n}\n\n// Re-export Fragment for JSX\nexport { Fragment };\nexport type { JSXComponent, JSXElement, JSXElementType } from './types';\n"],"mappings":";;;;;;AAsBA,SAAS,mBAAmB,OAA8C;CACxE,MAAM,kBAAmB,SAAS,CAAC;CAEnC,KAAK,MAAM,SAAS,OAAO,OAAO,eAAe,GAC/C,kBAAkB,KAAK;CAGzB,OAAO;AACT;AAEA,SAAS,mBAAmB,OAAqB;CAC/C,IAAI,MAAM,QAAQ,MAAM,QAAQ,GAC9B,OAAO,eAAe,MAAM,UAAU,iBAAiB;EACrD,OAAO;EACP,cAAc;CAChB,CAAC;CAGH,OAAO;AACT;AAgCA,SAAgB,OACd,MACA,OACA,KACA,mBAAmB,OACG;CACtB,MAAM,kBAAkB,mBAAmB,KAAK;CAChD,MAAM,gBAAgB,mBAClB,mBAAmB,eAAe,IAClC;CAEJ,IAAI,wBAAwB,IAAI,GAC9B,OAAO,KAAK,aAAa;CAG3B,OAAO;EACL,UAAU;EACJ;EACN,OAAO;EACP,KAAK,OAAO;CACd;AACF"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"jsx-runtime.d.ts","names":[],"sources":["../src/jsx/jsx-runtime.ts"],"mappings":";;;;iBA4CgB,MAAA,CACd,IAAA,EAAM,qBAAA,EACN,KAAA,EAAO,KAAK,SACZ,GAAA,oBACA,gBAAA;AAAA,iBAEc,MAAA,oBAA0B,0BAAA,EACxC,IAAA,EAAM,IAAA,EACN,KAAA,EAAO,0BAAA,CAA2B,IAAA,UAClC,GAAA,oBACA,gBAAA,aACC,UAAA;AAAA,iBACa,MAAA,sBACd,IAAA,EAAM,OAAA,CAAQ,IAAA,QAAY,0BAAA,GAC1B,KAAA,EAAO,sBAAA,SACP,GAAA,oBACA,gBAAA,aACC,UAAA;AAAA,iBACa,MAAA,wBACd,IAAA,GAAO,KAAA,EAAO,MAAA,cACd,KAAA,EAAO,MAAA,SACP,GAAA,oBACA,gBAAA,aACC,UAAA;AAAA,iBACa,MAAA,CACd,IAAA,UACA,KAAA,EAAO,KAAA,SACP,GAAA,oBACA,gBAAA,aACC,UAAU;AAAA,iBAyBG,GAAA,CACd,IAAA,EAAM,qBAAA,EACN,KAAA,EAAO,KAAK,SACZ,GAAA;AAAA,iBAEc,GAAA,oBAAuB,0BAAA,EACrC,IAAA,EAAM,IAAA,EACN,KAAA,EAAO,0BAAA,CAA2B,IAAA,UAClC,GAAA,qBACC,UAAA;AAAA,iBACa,GAAA,sBACd,IAAA,EAAM,OAAA,CAAQ,IAAA,QAAY,0BAAA,GAC1B,KAAA,EAAO,sBAAA,SACP,GAAA,qBACC,UAAA;AAAA,iBACa,GAAA,wBACd,IAAA,GAAO,KAAA,EAAO,MAAA,cACd,KAAA,EAAO,MAAA,SACP,GAAA,qBACC,UAAA;AAAA,iBACa,GAAA,CACd,IAAA,UACA,KAAA,EAAO,KAAA,SACP,GAAA,qBACC,UAAU;AAAA,iBASG,IAAA,CACd,IAAA,EAAM,qBAAA,EACN,KAAA,EAAO,KAAK,SACZ,GAAA;AAAA,iBAEc,IAAA,oBAAwB,0BAAA,EACtC,IAAA,EAAM,IAAA,EACN,KAAA,EAAO,0BAAA,CAA2B,IAAA,UAClC,GAAA,qBACC,UAAA;AAAA,iBACa,IAAA,sBACd,IAAA,EAAM,OAAA,CAAQ,IAAA,QAAY,0BAAA,GAC1B,KAAA,EAAO,sBAAA,SACP,GAAA,qBACC,UAAA;AAAA,iBACa,IAAA,wBACd,IAAA,GAAO,KAAA,EAAO,MAAA,cACd,KAAA,EAAO,MAAA,SACP,GAAA,qBACC,UAAA;AAAA,iBACa,IAAA,CACd,IAAA,UACA,KAAA,EAAO,KAAA,SACP,GAAA,qBACC,UAAU"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"jsx-runtime.js","names":[],"sources":["../src/jsx/jsx-runtime.ts"],"sourcesContent":["/**\n * JSX runtime factory\n * Same element shape as production runtime.\n */\n\nimport type {\n IntrinsicFallbackProps,\n KnownIntrinsicElementProps,\n Props,\n} from '../common/props';\nimport {\n isEagerControlPrimitive,\n type EagerControlPrimitive,\n} from '../common/control';\nimport {\n ELEMENT_TYPE,\n Fragment,\n STATIC_CHILDREN,\n type JSXElementType,\n type JSXElement,\n} from './types';\nimport { markReadableUsage } from '../runtime';\n\nfunction annotatePropsUsage(props: Record<string, unknown> | null): Props {\n const normalizedProps = (props ?? {}) as Props;\n\n for (const value of Object.values(normalizedProps)) {\n markReadableUsage(value);\n }\n\n return normalizedProps;\n}\n\nfunction markStaticChildren(props: Props): Props {\n if (Array.isArray(props.children)) {\n Object.defineProperty(props.children, STATIC_CHILDREN, {\n value: true,\n configurable: true,\n });\n }\n\n return props;\n}\n\nexport function jsxDEV(\n type: EagerControlPrimitive,\n props: Props | null,\n key?: string | number,\n isStaticChildren?: boolean\n): unknown;\nexport function jsxDEV<TTag extends keyof KnownIntrinsicElementProps>(\n type: TTag,\n props: KnownIntrinsicElementProps[TTag] | null,\n key?: string | number,\n isStaticChildren?: boolean\n): JSXElement;\nexport function jsxDEV<TTag extends string>(\n type: Exclude<TTag, keyof KnownIntrinsicElementProps>,\n props: IntrinsicFallbackProps | null,\n key?: string | number,\n isStaticChildren?: boolean\n): JSXElement;\nexport function jsxDEV<TProps extends object>(\n type: (props: TProps) => unknown,\n props: TProps | null,\n key?: string | number,\n isStaticChildren?: boolean\n): JSXElement;\nexport function jsxDEV(\n type: symbol,\n props: Props | null,\n key?: string | number,\n isStaticChildren?: boolean\n): JSXElement;\nexport function jsxDEV(\n type: unknown,\n props: Record<string, unknown> | null,\n key?: string | number,\n isStaticChildren = false\n): JSXElement | unknown {\n const normalizedProps = annotatePropsUsage(props);\n const preparedProps = isStaticChildren\n ? markStaticChildren(normalizedProps)\n : normalizedProps;\n\n if (isEagerControlPrimitive(type)) {\n return type(preparedProps);\n }\n\n return {\n $$typeof: ELEMENT_TYPE,\n type: type as JSXElementType,\n props: preparedProps,\n key: key ?? null,\n };\n}\n\n// Production-style helpers: alias to the DEV factory for now\nexport function jsx(\n type: EagerControlPrimitive,\n props: Props | null,\n key?: string | number\n): unknown;\nexport function jsx<TTag extends keyof KnownIntrinsicElementProps>(\n type: TTag,\n props: KnownIntrinsicElementProps[TTag] | null,\n key?: string | number\n): JSXElement;\nexport function jsx<TTag extends string>(\n type: Exclude<TTag, keyof KnownIntrinsicElementProps>,\n props: IntrinsicFallbackProps | null,\n key?: string | number\n): JSXElement;\nexport function jsx<TProps extends object>(\n type: (props: TProps) => unknown,\n props: TProps | null,\n key?: string | number\n): JSXElement;\nexport function jsx(\n type: symbol,\n props: Props | null,\n key?: string | number\n): JSXElement;\nexport function jsx(\n type: unknown,\n props: Record<string, unknown> | null,\n key?: string | number\n) {\n return jsxDEV(type as never, props, key);\n}\n\nexport function jsxs(\n type: EagerControlPrimitive,\n props: Props | null,\n key?: string | number\n): unknown;\nexport function jsxs<TTag extends keyof KnownIntrinsicElementProps>(\n type: TTag,\n props: KnownIntrinsicElementProps[TTag] | null,\n key?: string | number\n): JSXElement;\nexport function jsxs<TTag extends string>(\n type: Exclude<TTag, keyof KnownIntrinsicElementProps>,\n props: IntrinsicFallbackProps | null,\n key?: string | number\n): JSXElement;\nexport function jsxs<TProps extends object>(\n type: (props: TProps) => unknown,\n props: TProps | null,\n key?: string | number\n): JSXElement;\nexport function jsxs(\n type: symbol,\n props: Props | null,\n key?: string | number\n): JSXElement;\nexport function jsxs(\n type: unknown,\n props: Record<string, unknown> | null,\n key?: string | number\n) {\n const normalizedProps = markStaticChildren(annotatePropsUsage(props));\n\n if (isEagerControlPrimitive(type)) {\n return type(normalizedProps);\n }\n\n return {\n $$typeof: ELEMENT_TYPE,\n type: type as JSXElementType,\n props: normalizedProps,\n key: key ?? null,\n } as JSXElement;\n}\n\n// Re-export Fragment for JSX.\nexport { Fragment };\nexport type { JSXComponent, JSXElement, JSXElementType } from './types';\n"],"mappings":";;;;;;AAuBA,SAAS,mBAAmB,OAA8C;CACxE,MAAM,kBAAmB,SAAS,CAAC;CAEnC,KAAK,MAAM,SAAS,OAAO,OAAO,eAAe,GAC/C,kBAAkB,KAAK;CAGzB,OAAO;AACT;AAEA,SAAS,mBAAmB,OAAqB;CAC/C,IAAI,MAAM,QAAQ,MAAM,QAAQ,GAC9B,OAAO,eAAe,MAAM,UAAU,iBAAiB;EACrD,OAAO;EACP,cAAc;CAChB,CAAC;CAGH,OAAO;AACT;AAgCA,SAAgB,OACd,MACA,OACA,KACA,mBAAmB,OACG;CACtB,MAAM,kBAAkB,mBAAmB,KAAK;CAChD,MAAM,gBAAgB,mBAClB,mBAAmB,eAAe,IAClC;CAEJ,IAAI,wBAAwB,IAAI,GAC9B,OAAO,KAAK,aAAa;CAG3B,OAAO;EACL,UAAU;EACJ;EACN,OAAO;EACP,KAAK,OAAO;CACd;AACF;AA4BA,SAAgB,IACd,MACA,OACA,KACA;CACA,OAAO,OAAO,MAAe,OAAO,GAAG;AACzC;AA2BA,SAAgB,KACd,MACA,OACA,KACA;CACA,MAAM,kBAAkB,mBAAmB,mBAAmB,KAAK,CAAC;CAEpE,IAAI,wBAAwB,IAAI,GAC9B,OAAO,KAAK,eAAe;CAG7B,OAAO;EACL,UAAU;EACJ;EACN,OAAO;EACP,KAAK,OAAO;CACd;AACF"}
@@ -1,3 +0,0 @@
1
- import { Fragment, JSXComponent, JSXElement, JSXElementType } from "./common/jsx.js";
2
- import { jsx, jsxDEV, jsxs } from "./jsx-runtime.js";
3
- export { Fragment, jsx, jsxs };
@@ -1,4 +0,0 @@
1
- import { Fragment } from "./common/jsx.js";
2
- import "./jsx/types.js";
3
- import { jsx, jsxs } from "./jsx-runtime.js";
4
- export { Fragment, jsx, jsxs };
@@ -1,232 +0,0 @@
1
- import { incrementPerfMetric } from "../runtime/perf-metrics.js";
2
- import "../runtime/index.js";
3
- import { extractKey, getRenderedAttributeName, isSkippedProp, parseEventName, readElementClassName, removeRenderedAttribute, setRenderedAttribute, tagNamesEqualIgnoreCase, writeElementClassName } from "./utils.js";
4
- function applyFormControlProp(el, key, value, tagName) {
5
- if (key === "value") {
6
- if (tagNamesEqualIgnoreCase(tagName, "input") || tagNamesEqualIgnoreCase(tagName, "textarea") || tagNamesEqualIgnoreCase(tagName, "select")) {
7
- el.value = String(value);
8
- el.setAttribute("value", String(value));
9
- } else el.setAttribute("value", String(value));
10
- return;
11
- }
12
- if (key === "checked") if (tagNamesEqualIgnoreCase(tagName, "input")) {
13
- const checked = Boolean(value);
14
- el.checked = checked;
15
- if (checked) el.setAttribute("checked", "");
16
- else el.removeAttribute("checked");
17
- } else if (value) el.setAttribute("checked", "");
18
- else el.removeAttribute("checked");
19
- }
20
- function normalizeStylePropertyName(propertyName) {
21
- if (propertyName.startsWith("--")) return propertyName;
22
- return propertyName.replace(/[A-Z]/g, (char) => `-${char.toLowerCase()}`);
23
- }
24
- function collectCurrentStyleEntries(el) {
25
- const entries = /* @__PURE__ */ new Map();
26
- const style = el.style;
27
- if (!style) return entries;
28
- for (let index = 0; index < style.length; index += 1) {
29
- const propertyName = style.item(index);
30
- entries.set(propertyName, style.getPropertyValue(propertyName));
31
- }
32
- return entries;
33
- }
34
- function normalizeStyleEntries(value) {
35
- if (!value || typeof value !== "object" || Array.isArray(value)) return null;
36
- const entries = /* @__PURE__ */ new Map();
37
- for (const [key, entryValue] of Object.entries(value)) {
38
- if (entryValue === void 0 || entryValue === null || entryValue === false) continue;
39
- entries.set(normalizeStylePropertyName(key), String(entryValue));
40
- }
41
- return entries;
42
- }
43
- function applyStylePropValue(el, value) {
44
- const style = el.style;
45
- if (!style) {
46
- if (value === null || value === void 0 || value === false) {
47
- el.removeAttribute("style");
48
- return;
49
- }
50
- el.setAttribute("style", String(value));
51
- return;
52
- }
53
- if (value === null || value === void 0 || value === false) {
54
- if (!el.getAttribute("style")) {
55
- incrementPerfMetric("skippedDomPropWrites");
56
- return;
57
- }
58
- style.cssText = "";
59
- el.removeAttribute("style");
60
- return;
61
- }
62
- if (typeof value === "string") {
63
- if ((el.getAttribute("style") ?? "") === value) {
64
- incrementPerfMetric("skippedDomPropWrites");
65
- return;
66
- }
67
- style.cssText = value;
68
- return;
69
- }
70
- const nextEntries = normalizeStyleEntries(value);
71
- if (!nextEntries) {
72
- const nextText = String(value);
73
- if ((el.getAttribute("style") ?? "") === nextText) {
74
- incrementPerfMetric("skippedDomPropWrites");
75
- return;
76
- }
77
- style.cssText = nextText;
78
- return;
79
- }
80
- const previousEntries = collectCurrentStyleEntries(el);
81
- let didWrite = false;
82
- for (const [propertyName] of previousEntries) {
83
- if (nextEntries.has(propertyName)) continue;
84
- style.removeProperty(propertyName);
85
- didWrite = true;
86
- }
87
- for (const [propertyName, propertyValue] of nextEntries) {
88
- if (previousEntries.get(propertyName) === propertyValue) continue;
89
- style.setProperty(propertyName, propertyValue);
90
- didWrite = true;
91
- }
92
- if (!didWrite) incrementPerfMetric("skippedDomPropWrites");
93
- }
94
- function applyStaticScalarPropsToElement(el, props, tagName) {
95
- for (const key in props) {
96
- if (isSkippedProp(key)) continue;
97
- const value = props[key];
98
- if (value === void 0 || value === null || value === false) continue;
99
- if (key === "class" || key === "className") writeElementClassName(el, String(value));
100
- else if (key === "style") applyStylePropValue(el, value);
101
- else if (key === "value" || key === "checked") applyFormControlProp(el, key, value, tagName);
102
- else setRenderedAttribute(el, key, String(value));
103
- }
104
- }
105
- function tokenizeClassValue(value) {
106
- if (typeof value !== "string") return null;
107
- const trimmed = value.trim();
108
- if (trimmed.length === 0) return [];
109
- return trimmed.split(/\s+/);
110
- }
111
- function patchClassList(el, previousTokens, nextTokens) {
112
- if (previousTokens.length === nextTokens.length) {
113
- let identical = true;
114
- for (let index = 0; index < previousTokens.length; index += 1) if (previousTokens[index] !== nextTokens[index]) {
115
- identical = false;
116
- break;
117
- }
118
- if (identical) return;
119
- }
120
- if (previousTokens.length === 0) {
121
- if (nextTokens.length === 0) return;
122
- el.classList.add(...nextTokens);
123
- incrementPerfMetric("classListPatchOps");
124
- return;
125
- }
126
- if (nextTokens.length === 0) {
127
- el.classList.remove(...previousTokens);
128
- incrementPerfMetric("classListPatchOps");
129
- return;
130
- }
131
- if (previousTokens.length === 1 && nextTokens.length === 1) {
132
- el.classList.remove(previousTokens[0]);
133
- el.classList.add(nextTokens[0]);
134
- incrementPerfMetric("classListPatchOps");
135
- return;
136
- }
137
- const nextSet = new Set(nextTokens);
138
- const previousSet = new Set(previousTokens);
139
- for (const token of previousTokens) if (!nextSet.has(token)) el.classList.remove(token);
140
- for (const token of nextTokens) if (!previousSet.has(token)) el.classList.add(token);
141
- incrementPerfMetric("classListPatchOps");
142
- }
143
- function applyClassPropValue(el, value, previousValue, descriptor) {
144
- const nextString = String(value);
145
- const nextTokens = tokenizeClassValue(nextString);
146
- const previousTokens = descriptor?.lastClassTokens ?? tokenizeClassValue(previousValue);
147
- if (nextTokens && previousTokens) {
148
- patchClassList(el, previousTokens, nextTokens);
149
- if (descriptor) descriptor.lastClassTokens = nextTokens;
150
- return;
151
- }
152
- writeElementClassName(el, nextString);
153
- if (descriptor) descriptor.lastClassTokens = nextTokens;
154
- }
155
- function applyScalarPropValue(el, key, value, tagName, previousValue, descriptor) {
156
- if (value === void 0 || value === null || value === false) {
157
- if (key === "class" || key === "className") {
158
- const previousTokens = descriptor?.lastClassTokens;
159
- if (previousTokens && previousTokens.length > 0) {
160
- el.classList.remove(...previousTokens);
161
- incrementPerfMetric("classListPatchOps");
162
- } else writeElementClassName(el, "");
163
- if (descriptor) descriptor.lastClassTokens = [];
164
- } else if (key === "value") applyFormControlProp(el, key, "", tagName);
165
- else if (key === "checked") applyFormControlProp(el, key, false, tagName);
166
- else if (key === "style") applyStylePropValue(el, null);
167
- else removeRenderedAttribute(el, key);
168
- return;
169
- }
170
- if (key === "class" || key === "className") applyClassPropValue(el, value, previousValue, descriptor);
171
- else if (key === "style") applyStylePropValue(el, value);
172
- else if (key === "value" || key === "checked") applyFormControlProp(el, key, value, tagName);
173
- else setRenderedAttribute(el, key, String(value));
174
- }
175
- function removeStaleAttributes(el, vnode, props) {
176
- const desiredAttributes = /* @__PURE__ */ new Set();
177
- if (extractKey(vnode) !== void 0) desiredAttributes.add("data-key");
178
- for (const propName in props) {
179
- if (isSkippedProp(propName)) continue;
180
- if (parseEventName(propName)) continue;
181
- const value = props[propName];
182
- if (value === void 0 || value === null || value === false) continue;
183
- desiredAttributes.add(getRenderedAttributeName(el, propName));
184
- }
185
- for (const attribute of Array.from(el.attributes)) if (!desiredAttributes.has(getRenderedAttributeName(el, attribute.name))) removeRenderedAttribute(el, attribute.name);
186
- }
187
- function materializeKey(el, vnode, props) {
188
- const rawKey = vnode.key ?? props.key;
189
- const vnodeKey = rawKey === null || rawKey === void 0 ? void 0 : typeof rawKey === "symbol" ? String(rawKey) : rawKey;
190
- if (vnodeKey !== void 0) {
191
- const nextKey = String(vnodeKey);
192
- if (el.getAttribute("data-key") !== nextKey) el.setAttribute("data-key", nextKey);
193
- }
194
- }
195
- function hasMatchingStaticProps(el, props, vnodeType) {
196
- let staticPropCount = 0;
197
- for (const key in props) {
198
- if (isSkippedProp(key)) continue;
199
- const value = props[key];
200
- if (value === void 0 || value === null || value === false) return false;
201
- if (parseEventName(key) || typeof value === "function") return false;
202
- if (key === "class" || key === "className") {
203
- if (readElementClassName(el) !== String(value)) return false;
204
- staticPropCount += 1;
205
- continue;
206
- }
207
- if (key === "style") {
208
- const styleValue = typeof value === "string" ? value.trim().replace(/;$/, "") : null;
209
- const domStyle = el.getAttribute("style")?.trim().replace(/;$/, "") ?? "";
210
- if (styleValue === null || domStyle !== styleValue) return false;
211
- staticPropCount += 1;
212
- continue;
213
- }
214
- if (key === "value" || key === "checked") {
215
- if (el[key] !== value) return false;
216
- staticPropCount += 1;
217
- continue;
218
- }
219
- if (key === "selected" && vnodeType === "option") {
220
- if (el.selected !== Boolean(value)) return false;
221
- staticPropCount += 1;
222
- continue;
223
- }
224
- if (el.getAttribute(getRenderedAttributeName(el, key)) !== String(value)) return false;
225
- staticPropCount += 1;
226
- }
227
- return el.attributes.length === staticPropCount;
228
- }
229
- //#endregion
230
- export { applyClassPropValue, applyFormControlProp, applyScalarPropValue, applyStaticScalarPropsToElement, applyStylePropValue, hasMatchingStaticProps, materializeKey, removeStaleAttributes };
231
-
232
- //# sourceMappingURL=attributes.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"attributes.js","names":[],"sources":["../../src/renderer/attributes.ts"],"sourcesContent":["import type { Props } from '../common/props';\nimport { incrementPerfMetric } from '../runtime';\nimport {\n extractKey,\n getRenderedAttributeName,\n isSkippedProp,\n parseEventName,\n readElementClassName,\n removeRenderedAttribute,\n setRenderedAttribute,\n tagNamesEqualIgnoreCase,\n writeElementClassName,\n} from './utils';\n\ntype ClassTokenDescriptor = {\n lastClassTokens: string[] | null;\n};\n\ntype StyleEntries = Map<string, string>;\n\ntype Ref<T> =\n | ((value: T | null) => void)\n | { current: T | null }\n | null\n | undefined;\n\nexport function applyRef<T>(el: T, ref: unknown): void {\n const resolvedRef = ref as Ref<T>;\n if (!resolvedRef) return;\n if (typeof resolvedRef === 'function') {\n resolvedRef(el);\n return;\n }\n\n if (Object.isExtensible(resolvedRef)) {\n (resolvedRef as { current: T | null }).current = el;\n }\n}\n\nexport function applyFormControlProp(\n el: Element,\n key: string,\n value: unknown,\n tagName: string\n): void {\n if (key === 'value') {\n if (\n tagNamesEqualIgnoreCase(tagName, 'input') ||\n tagNamesEqualIgnoreCase(tagName, 'textarea') ||\n tagNamesEqualIgnoreCase(tagName, 'select')\n ) {\n (el as HTMLInputElement & Props).value = String(value);\n el.setAttribute('value', String(value));\n } else {\n el.setAttribute('value', String(value));\n }\n return;\n }\n\n if (key === 'checked') {\n if (tagNamesEqualIgnoreCase(tagName, 'input')) {\n const checked = Boolean(value);\n (el as HTMLInputElement & Props).checked = checked;\n if (checked) {\n el.setAttribute('checked', '');\n } else {\n el.removeAttribute('checked');\n }\n } else if (value) {\n el.setAttribute('checked', '');\n } else {\n el.removeAttribute('checked');\n }\n }\n}\n\nfunction normalizeStylePropertyName(propertyName: string): string {\n if (propertyName.startsWith('--')) {\n return propertyName;\n }\n\n return propertyName.replace(/[A-Z]/g, (char) => `-${char.toLowerCase()}`);\n}\n\nfunction collectCurrentStyleEntries(el: Element): StyleEntries {\n const entries: StyleEntries = new Map();\n const style = (el as HTMLElement | SVGElement).style;\n\n if (!style) {\n return entries;\n }\n\n for (let index = 0; index < style.length; index += 1) {\n const propertyName = style.item(index);\n entries.set(propertyName, style.getPropertyValue(propertyName));\n }\n\n return entries;\n}\n\nfunction normalizeStyleEntries(value: unknown): StyleEntries | null {\n if (!value || typeof value !== 'object' || Array.isArray(value)) {\n return null;\n }\n\n const entries: StyleEntries = new Map();\n for (const [key, entryValue] of Object.entries(\n value as Record<string, unknown>\n )) {\n if (\n entryValue === undefined ||\n entryValue === null ||\n entryValue === false\n ) {\n continue;\n }\n\n entries.set(normalizeStylePropertyName(key), String(entryValue));\n }\n\n return entries;\n}\n\nexport function applyStylePropValue(el: Element, value: unknown): void {\n const style = (el as HTMLElement | SVGElement).style;\n if (!style) {\n if (value === null || value === undefined || value === false) {\n el.removeAttribute('style');\n return;\n }\n\n el.setAttribute('style', String(value));\n return;\n }\n\n if (value === null || value === undefined || value === false) {\n if (!el.getAttribute('style')) {\n incrementPerfMetric('skippedDomPropWrites');\n return;\n }\n\n style.cssText = '';\n el.removeAttribute('style');\n return;\n }\n\n if (typeof value === 'string') {\n if ((el.getAttribute('style') ?? '') === value) {\n incrementPerfMetric('skippedDomPropWrites');\n return;\n }\n\n style.cssText = value;\n return;\n }\n\n const nextEntries = normalizeStyleEntries(value);\n if (!nextEntries) {\n const nextText = String(value);\n if ((el.getAttribute('style') ?? '') === nextText) {\n incrementPerfMetric('skippedDomPropWrites');\n return;\n }\n\n style.cssText = nextText;\n return;\n }\n\n const previousEntries = collectCurrentStyleEntries(el);\n let didWrite = false;\n\n for (const [propertyName] of previousEntries) {\n if (nextEntries.has(propertyName)) {\n continue;\n }\n\n style.removeProperty(propertyName);\n didWrite = true;\n }\n\n for (const [propertyName, propertyValue] of nextEntries) {\n if (previousEntries.get(propertyName) === propertyValue) {\n continue;\n }\n\n style.setProperty(propertyName, propertyValue);\n didWrite = true;\n }\n\n if (!didWrite) {\n incrementPerfMetric('skippedDomPropWrites');\n }\n}\n\nexport function applyStaticScalarPropsToElement(\n el: Element,\n props: Record<string, unknown>,\n tagName: string\n): void {\n for (const key in props) {\n if (isSkippedProp(key)) {\n continue;\n }\n\n const value = props[key];\n if (value === undefined || value === null || value === false) {\n continue;\n }\n\n if (key === 'class' || key === 'className') {\n writeElementClassName(el, String(value));\n } else if (key === 'style') {\n applyStylePropValue(el, value);\n } else if (key === 'value' || key === 'checked') {\n applyFormControlProp(el, key, value, tagName);\n } else {\n setRenderedAttribute(el, key, String(value));\n }\n }\n}\n\nfunction tokenizeClassValue(value: unknown): string[] | null {\n if (typeof value !== 'string') {\n return null;\n }\n\n const trimmed = value.trim();\n if (trimmed.length === 0) {\n return [];\n }\n\n return trimmed.split(/\\s+/);\n}\n\nfunction patchClassList(\n el: Element,\n previousTokens: string[],\n nextTokens: string[]\n): void {\n if (previousTokens.length === nextTokens.length) {\n let identical = true;\n for (let index = 0; index < previousTokens.length; index += 1) {\n if (previousTokens[index] !== nextTokens[index]) {\n identical = false;\n break;\n }\n }\n if (identical) {\n return;\n }\n }\n\n if (previousTokens.length === 0) {\n if (nextTokens.length === 0) {\n return;\n }\n el.classList.add(...nextTokens);\n incrementPerfMetric('classListPatchOps');\n return;\n }\n\n if (nextTokens.length === 0) {\n el.classList.remove(...previousTokens);\n incrementPerfMetric('classListPatchOps');\n return;\n }\n\n if (previousTokens.length === 1 && nextTokens.length === 1) {\n el.classList.remove(previousTokens[0]);\n el.classList.add(nextTokens[0]);\n incrementPerfMetric('classListPatchOps');\n return;\n }\n\n const nextSet = new Set(nextTokens);\n const previousSet = new Set(previousTokens);\n\n for (const token of previousTokens) {\n if (!nextSet.has(token)) {\n el.classList.remove(token);\n }\n }\n\n for (const token of nextTokens) {\n if (!previousSet.has(token)) {\n el.classList.add(token);\n }\n }\n\n incrementPerfMetric('classListPatchOps');\n}\n\nexport function applyClassPropValue(\n el: Element,\n value: unknown,\n previousValue: unknown,\n descriptor?: ClassTokenDescriptor\n): void {\n const nextString = String(value);\n const nextTokens = tokenizeClassValue(nextString);\n const previousTokens =\n descriptor?.lastClassTokens ?? tokenizeClassValue(previousValue);\n\n if (nextTokens && previousTokens) {\n patchClassList(el, previousTokens, nextTokens);\n if (descriptor) {\n descriptor.lastClassTokens = nextTokens;\n }\n return;\n }\n\n writeElementClassName(el, nextString);\n if (descriptor) {\n descriptor.lastClassTokens = nextTokens;\n }\n}\n\nexport function applyScalarPropValue(\n el: Element,\n key: string,\n value: unknown,\n tagName: string,\n previousValue?: unknown,\n descriptor?: ClassTokenDescriptor\n): void {\n if (value === undefined || value === null || value === false) {\n if (key === 'class' || key === 'className') {\n const previousTokens = descriptor?.lastClassTokens;\n if (previousTokens && previousTokens.length > 0) {\n el.classList.remove(...previousTokens);\n incrementPerfMetric('classListPatchOps');\n } else {\n writeElementClassName(el, '');\n }\n if (descriptor) {\n descriptor.lastClassTokens = [];\n }\n } else if (key === 'value') {\n applyFormControlProp(el, key, '', tagName);\n } else if (key === 'checked') {\n applyFormControlProp(el, key, false, tagName);\n } else if (key === 'style') {\n applyStylePropValue(el, null);\n } else {\n removeRenderedAttribute(el, key);\n }\n return;\n }\n\n if (key === 'class' || key === 'className') {\n applyClassPropValue(el, value, previousValue, descriptor);\n } else if (key === 'style') {\n applyStylePropValue(el, value);\n } else if (key === 'value' || key === 'checked') {\n applyFormControlProp(el, key, value, tagName);\n } else {\n setRenderedAttribute(el, key, String(value));\n }\n}\n\nexport function removeStaleAttributes(\n el: Element,\n vnode: unknown,\n props: Record<string, unknown>\n): void {\n const desiredAttributes = new Set<string>();\n const key = extractKey(vnode);\n\n if (key !== undefined) {\n desiredAttributes.add('data-key');\n }\n\n for (const propName in props) {\n if (isSkippedProp(propName)) continue;\n if (parseEventName(propName)) continue;\n\n const value = props[propName];\n if (value === undefined || value === null || value === false) continue;\n\n desiredAttributes.add(getRenderedAttributeName(el, propName));\n }\n\n for (const attribute of Array.from(el.attributes)) {\n if (!desiredAttributes.has(getRenderedAttributeName(el, attribute.name))) {\n removeRenderedAttribute(el, attribute.name);\n }\n }\n}\n\nexport function materializeKey(\n el: Element,\n vnode: { key?: unknown },\n props: Record<string, unknown>\n): void {\n const rawKey = vnode.key ?? props.key;\n const vnodeKey =\n rawKey === null || rawKey === undefined\n ? undefined\n : typeof rawKey === 'symbol'\n ? String(rawKey)\n : (rawKey as string | number);\n if (vnodeKey !== undefined) {\n const nextKey = String(vnodeKey);\n if (el.getAttribute('data-key') !== nextKey) {\n el.setAttribute('data-key', nextKey);\n }\n }\n}\n\nexport function hasMatchingStaticProps(\n el: Element,\n props: Record<string, unknown>,\n vnodeType: string\n): boolean {\n let staticPropCount = 0;\n\n for (const key in props) {\n if (isSkippedProp(key)) continue;\n\n const value = props[key];\n if (value === undefined || value === null || value === false) {\n return false;\n }\n\n const eventName = parseEventName(key);\n if (eventName || typeof value === 'function') {\n return false;\n }\n\n if (key === 'class' || key === 'className') {\n if (readElementClassName(el) !== String(value)) {\n return false;\n }\n staticPropCount += 1;\n continue;\n }\n\n if (key === 'style') {\n const styleValue =\n typeof value === 'string' ? value.trim().replace(/;$/, '') : null;\n const domStyle = el.getAttribute('style')?.trim().replace(/;$/, '') ?? '';\n if (styleValue === null || domStyle !== styleValue) {\n return false;\n }\n staticPropCount += 1;\n continue;\n }\n\n if (key === 'value' || key === 'checked') {\n if ((el as HTMLElement & Record<string, unknown>)[key] !== value) {\n return false;\n }\n staticPropCount += 1;\n continue;\n }\n\n if (key === 'selected' && vnodeType === 'option') {\n if ((el as HTMLOptionElement).selected !== Boolean(value)) {\n return false;\n }\n staticPropCount += 1;\n continue;\n }\n\n if (el.getAttribute(getRenderedAttributeName(el, key)) !== String(value)) {\n return false;\n }\n\n staticPropCount += 1;\n }\n\n return el.attributes.length === staticPropCount;\n}\n"],"mappings":"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"}