@askrjs/askr 0.0.52 → 0.0.54

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (386) hide show
  1. package/README.md +5 -1
  2. package/dist/{runtime/scheduler.js → access-Bg4RJNC8.js} +182 -9
  3. package/dist/actions/index.d.ts +2 -0
  4. package/dist/actions/index.js +103 -0
  5. package/dist/{common/attr-names.js → attr-names-CjhzmHOn.js} +1 -1
  6. package/dist/benchmark.d.ts +6 -2
  7. package/dist/benchmark.js +63 -11
  8. package/dist/boot/index.d.ts +61 -2
  9. package/dist/boot/index.js +1 -203
  10. package/dist/boot-2ZR3MtO0.js +647 -0
  11. package/dist/cleanup-DScKZG2i.js +487 -0
  12. package/dist/component-internal-D9PLuFUc.js +614 -0
  13. package/dist/component-lifecycle-C7lnU9Bt.js +359 -0
  14. package/dist/{runtime/component-scope.js → component-scope-CC3cojX9.js} +8 -1
  15. package/dist/component-scope-CvPba6O6.d.ts +12 -0
  16. package/dist/components/index.d.ts +17 -2
  17. package/dist/components/index.js +39 -1
  18. package/dist/compose-ref-Cc_YkUpM.js +92 -0
  19. package/dist/{foundations/utilities/compose-ref.d.ts → compose-ref-Cizq72-x.d.ts} +1 -1
  20. package/dist/control/index.d.ts +1 -3
  21. package/dist/control/index.js +1 -3
  22. package/dist/control-BI4RMD2z.d.ts +437 -0
  23. package/dist/control-Bf4Wkdvv.d.ts +9 -0
  24. package/dist/{common/control.js → control-DhFRTIoE.js} +1 -1
  25. package/dist/control-mXROCjL3.js +165 -0
  26. package/dist/data/index.d.ts +2 -6
  27. package/dist/data/index.js +4 -5
  28. package/dist/data-B9dauyDn.js +559 -0
  29. package/dist/{data/data-runtime.js → data-runtime-SJ1BSUvk.js} +32 -31
  30. package/dist/deferred-DklLG4qM.js +386 -0
  31. package/dist/{runtime/effect.js → effect-BwnIvLah.js} +4 -4
  32. package/dist/fastlane-Dw8SOBr9.js +343 -0
  33. package/dist/for-internal-CSz8Unkq.js +1563 -0
  34. package/dist/foundations/icon/index.d.ts +68 -2
  35. package/dist/foundations/icon/index.js +85 -1
  36. package/dist/foundations/index.d.ts +2 -5
  37. package/dist/foundations/index.js +2 -5
  38. package/dist/foundations/interactions/index.d.ts +264 -6
  39. package/dist/foundations/interactions/index.js +1 -6
  40. package/dist/foundations/state/index.d.ts +32 -1
  41. package/dist/foundations/state/index.js +78 -1
  42. package/dist/foundations/structures/index.d.ts +2 -7
  43. package/dist/foundations/structures/index.js +2 -7
  44. package/dist/foundations/utilities/index.d.ts +2 -6
  45. package/dist/foundations/utilities/index.js +2 -5
  46. package/dist/fx/index.d.ts +190 -3
  47. package/dist/fx/index.js +454 -4
  48. package/dist/index-B1LNotpU.d.ts +239 -0
  49. package/dist/index-Bki2rqcr.d.ts +233 -0
  50. package/dist/index-BnU0NPwM.d.ts +101 -0
  51. package/dist/index-C8iW3xCt.d.ts +44 -0
  52. package/dist/index-DwxdIA-t.d.ts +48 -0
  53. package/dist/{runtime/runtime.d.ts → index-Zb31mCiU.d.ts} +31 -8
  54. package/dist/index.d.ts +8 -13
  55. package/dist/index.js +150 -15
  56. package/dist/interactions-w7gQN4ha.js +280 -0
  57. package/dist/{data/invalidation-listeners.js → invalidation-listeners-Des3AHYs.js} +1 -1
  58. package/dist/{common/props.d.ts → jsx-CP0gmYwJ.d.ts} +17 -5
  59. package/dist/{common/jsx.js → jsx-CUpRxrLH.js} +1 -1
  60. package/dist/jsx-dev-runtime.d.ts +2 -4
  61. package/dist/jsx-dev-runtime.js +7 -5
  62. package/dist/jsx-runtime-92bV2hSa.d.ts +34 -0
  63. package/dist/jsx-runtime-BVVgDSdq.d.ts +1 -0
  64. package/dist/jsx-runtime.d.ts +2 -35
  65. package/dist/jsx-runtime.js +11 -5
  66. package/dist/{runtime/lifecycle-operations.js → lifecycle-operations-CdRjdsHo.js} +4 -5
  67. package/dist/navigate-BVDCzOuB.d.ts +34 -0
  68. package/dist/navigate-D17eVQyI.js +1449 -0
  69. package/dist/{runtime/portal.js → portal-C47xkwXj.js} +71 -41
  70. package/dist/query-registry-CQIT4mXr.js +73 -0
  71. package/dist/{common/render-context.js → render-context-Clw3rFiO.js} +14 -6
  72. package/dist/renderer-DrLRAD5y.js +6266 -0
  73. package/dist/{runtime/resource-operation.js → resource-operation-BNY29MVH.js} +118 -15
  74. package/dist/resources/index.d.ts +42 -3
  75. package/dist/resources/index.js +3 -4
  76. package/dist/{common/route-activity.js → route-activity-CNJfpwx-.js} +1 -1
  77. package/dist/route-matching-vJpvLVbX.js +515 -0
  78. package/dist/router/index.d.ts +166 -14
  79. package/dist/router/index.js +150 -12
  80. package/dist/{common/router.d.ts → router-DCfwLBr-.d.ts} +72 -28
  81. package/dist/{common/router-internal.js → router-internal-BC0w1_xk.js} +1 -1
  82. package/dist/{runtime/scheduler.d.ts → scheduler-CmLO4Dfm.d.ts} +1 -3
  83. package/dist/{runtime/selector.js → selector-DafVYzV4.js} +34 -11
  84. package/dist/{runtime/snapshot-source.js → snapshot-source-BB42xgwb.js} +1 -1
  85. package/dist/ssg/index.d.ts +252 -4
  86. package/dist/ssg/index.js +857 -1
  87. package/dist/ssr/index.d.ts +225 -8
  88. package/dist/ssr/index.js +3 -6
  89. package/dist/{common/ssr.js → ssr-CbQO5xd3.js} +1 -1
  90. package/dist/ssr-DEARZxJ5.js +1413 -0
  91. package/dist/{runtime/state.js → state-DPl8lffD.js} +3 -5
  92. package/dist/structures-DUB3HchX.js +221 -0
  93. package/dist/testing/index.d.ts +3 -2
  94. package/dist/testing/index.js +2 -5
  95. package/dist/{jsx/types.d.ts → types-DnQVG4ZY.d.ts} +2 -5
  96. package/dist/{foundations/utilities/use-id.js → utilities-C_CGX4Dz.js} +1 -1
  97. package/dist/{ssr/verify-hydration.js → verify-hydration-BWwu-mWu.js} +2 -2
  98. package/dist/{common/vnode.js → vnode-CGMJYPMB.js} +2 -2
  99. package/package.json +12 -7
  100. package/dist/bench/components/benchmark-row.d.ts +0 -20
  101. package/dist/bench/components/benchmark-row.js +0 -40
  102. package/dist/bench/components/benchmark-table.js +0 -23
  103. package/dist/bin/askr-ssg.d.ts +0 -27
  104. package/dist/bin/askr-ssg.js +0 -186
  105. package/dist/boot/hydration.js +0 -139
  106. package/dist/boot/root-lifecycle.d.ts +0 -18
  107. package/dist/boot/root-lifecycle.js +0 -209
  108. package/dist/boot/route-startup.js +0 -54
  109. package/dist/boot/types.d.ts +0 -61
  110. package/dist/common/component.d.ts +0 -18
  111. package/dist/common/control.d.ts +0 -12
  112. package/dist/common/dom-range.d.ts +0 -13
  113. package/dist/common/env.js +0 -41
  114. package/dist/common/error-boundary.d.ts +0 -15
  115. package/dist/common/invariant.js +0 -15
  116. package/dist/common/jsx.d.ts +0 -22
  117. package/dist/common/logger.js +0 -34
  118. package/dist/common/promise.js +0 -6
  119. package/dist/common/ssr-errors.d.ts +0 -10
  120. package/dist/common/ssr-errors.js +0 -14
  121. package/dist/common/ssr.d.ts +0 -41
  122. package/dist/common/vnode.d.ts +0 -21
  123. package/dist/components/error-boundary.d.ts +0 -14
  124. package/dist/components/error-boundary.js +0 -41
  125. package/dist/components/link.d.ts +0 -68
  126. package/dist/components/link.js +0 -74
  127. package/dist/control/case.d.ts +0 -18
  128. package/dist/control/case.js +0 -68
  129. package/dist/control/for.d.ts +0 -23
  130. package/dist/control/for.js +0 -61
  131. package/dist/control/shared.d.ts +0 -8
  132. package/dist/control/shared.js +0 -18
  133. package/dist/control/show.d.ts +0 -14
  134. package/dist/control/show.js +0 -32
  135. package/dist/data/data-runtime.d.ts +0 -27
  136. package/dist/data/invalidation.d.ts +0 -8
  137. package/dist/data/invalidation.js +0 -25
  138. package/dist/data/mutation-cell.d.ts +0 -27
  139. package/dist/data/mutation-cell.js +0 -133
  140. package/dist/data/query-cell.d.ts +0 -47
  141. package/dist/data/query-cell.js +0 -324
  142. package/dist/data/query-key.js +0 -40
  143. package/dist/data/shared.js +0 -20
  144. package/dist/data/testing.js +0 -2
  145. package/dist/data/types.d.ts +0 -160
  146. package/dist/foundations/icon/icon.d.ts +0 -52
  147. package/dist/foundations/icon/icon.js +0 -86
  148. package/dist/foundations/icon/icon.types.d.ts +0 -21
  149. package/dist/foundations/interactions/dismissable.d.ts +0 -71
  150. package/dist/foundations/interactions/dismissable.js +0 -24
  151. package/dist/foundations/interactions/focusable.d.ts +0 -21
  152. package/dist/foundations/interactions/focusable.js +0 -16
  153. package/dist/foundations/interactions/hoverable.d.ts +0 -25
  154. package/dist/foundations/interactions/hoverable.js +0 -13
  155. package/dist/foundations/interactions/interaction-policy.d.ts +0 -49
  156. package/dist/foundations/interactions/interaction-policy.js +0 -120
  157. package/dist/foundations/interactions/pressable.d.ts +0 -60
  158. package/dist/foundations/interactions/pressable.js +0 -49
  159. package/dist/foundations/interactions/roving-focus.d.ts +0 -51
  160. package/dist/foundations/interactions/roving-focus.js +0 -69
  161. package/dist/foundations/state/controllable.d.ts +0 -32
  162. package/dist/foundations/state/controllable.js +0 -80
  163. package/dist/foundations/structures/collection.d.ts +0 -51
  164. package/dist/foundations/structures/collection.js +0 -49
  165. package/dist/foundations/structures/layer.d.ts +0 -80
  166. package/dist/foundations/structures/layer.js +0 -79
  167. package/dist/foundations/structures/layout.d.ts +0 -32
  168. package/dist/foundations/structures/layout.js +0 -11
  169. package/dist/foundations/structures/portal.d.ts +0 -2
  170. package/dist/foundations/structures/portal.js +0 -3
  171. package/dist/foundations/structures/presence.d.ts +0 -36
  172. package/dist/foundations/structures/presence.js +0 -37
  173. package/dist/foundations/structures/slot.d.ts +0 -34
  174. package/dist/foundations/structures/slot.js +0 -39
  175. package/dist/foundations/utilities/aria.d.ts +0 -15
  176. package/dist/foundations/utilities/aria.js +0 -15
  177. package/dist/foundations/utilities/compose-handlers.d.ts +0 -36
  178. package/dist/foundations/utilities/compose-handlers.js +0 -18
  179. package/dist/foundations/utilities/compose-ref.js +0 -16
  180. package/dist/foundations/utilities/event-types.d.ts +0 -19
  181. package/dist/foundations/utilities/merge-props.d.ts +0 -4
  182. package/dist/foundations/utilities/merge-props.js +0 -47
  183. package/dist/foundations/utilities/use-id.d.ts +0 -31
  184. package/dist/fx/fx.d.ts +0 -32
  185. package/dist/fx/fx.js +0 -211
  186. package/dist/fx/noop.js +0 -7
  187. package/dist/fx/timing.d.ts +0 -158
  188. package/dist/fx/timing.js +0 -241
  189. package/dist/jsx/index.d.ts +0 -2
  190. package/dist/jsx/index.js +0 -4
  191. package/dist/jsx/types.js +0 -2
  192. package/dist/jsx/utils.d.ts +0 -4
  193. package/dist/jsx/utils.js +0 -17
  194. package/dist/jsx-runtime2.d.ts +0 -3
  195. package/dist/jsx-runtime2.js +0 -4
  196. package/dist/renderer/attributes.js +0 -254
  197. package/dist/renderer/boundaries.js +0 -142
  198. package/dist/renderer/boundary-materialization.js +0 -72
  199. package/dist/renderer/boundary-range-adoption.js +0 -76
  200. package/dist/renderer/boundary-range-sync.js +0 -101
  201. package/dist/renderer/boundary-state.js +0 -50
  202. package/dist/renderer/child-shape.js +0 -83
  203. package/dist/renderer/children-fastpath.js +0 -149
  204. package/dist/renderer/children.js +0 -158
  205. package/dist/renderer/cleanup.js +0 -267
  206. package/dist/renderer/component-host-cleanup.js +0 -143
  207. package/dist/renderer/component-host-instances.js +0 -116
  208. package/dist/renderer/component-host-replacement.js +0 -105
  209. package/dist/renderer/component-host-results.js +0 -138
  210. package/dist/renderer/component-host.js +0 -172
  211. package/dist/renderer/dom-host.js +0 -11
  212. package/dist/renderer/dom-internal.js +0 -243
  213. package/dist/renderer/dom-range.js +0 -161
  214. package/dist/renderer/dom.js +0 -11
  215. package/dist/renderer/element-children.js +0 -359
  216. package/dist/renderer/env.js +0 -2
  217. package/dist/renderer/error-boundary-dom.js +0 -86
  218. package/dist/renderer/evaluate-dom-range.js +0 -84
  219. package/dist/renderer/evaluate-reconcile.js +0 -257
  220. package/dist/renderer/evaluate.js +0 -95
  221. package/dist/renderer/fastpath.js +0 -142
  222. package/dist/renderer/for-commit-dom-map.js +0 -71
  223. package/dist/renderer/for-commit-removal.js +0 -27
  224. package/dist/renderer/for-commit-reorder.js +0 -87
  225. package/dist/renderer/for-commit.js +0 -442
  226. package/dist/renderer/hydration-boundaries.js +0 -60
  227. package/dist/renderer/hydration-listener-transaction.js +0 -49
  228. package/dist/renderer/index.js +0 -39
  229. package/dist/renderer/intrinsic-blueprint-analysis.js +0 -202
  230. package/dist/renderer/intrinsic-blueprint-bindings.js +0 -152
  231. package/dist/renderer/intrinsic-blueprint-materialization.js +0 -100
  232. package/dist/renderer/intrinsic-blueprint.js +0 -30
  233. package/dist/renderer/intrinsic-hydration-adoption.js +0 -66
  234. package/dist/renderer/keyed-children.js +0 -26
  235. package/dist/renderer/keyed.js +0 -167
  236. package/dist/renderer/namespaces.js +0 -21
  237. package/dist/renderer/prop-bindings.js +0 -315
  238. package/dist/renderer/reactive-child-dom.js +0 -139
  239. package/dist/renderer/reactive-child-sources.js +0 -182
  240. package/dist/renderer/reactive-children.js +0 -303
  241. package/dist/renderer/reconcile-commit.js +0 -36
  242. package/dist/renderer/reconcile-fastpaths.js +0 -100
  243. package/dist/renderer/reconcile-resolution.js +0 -163
  244. package/dist/renderer/reconcile.js +0 -37
  245. package/dist/renderer/retained-element-rollback.js +0 -288
  246. package/dist/renderer/stable-patch.js +0 -80
  247. package/dist/renderer/static-reuse.js +0 -94
  248. package/dist/renderer/types.js +0 -2
  249. package/dist/renderer/utils.js +0 -265
  250. package/dist/router/access.js +0 -34
  251. package/dist/router/activity.d.ts +0 -9
  252. package/dist/router/activity.js +0 -85
  253. package/dist/router/authoring.d.ts +0 -21
  254. package/dist/router/authoring.js +0 -196
  255. package/dist/router/internal-types.d.ts +0 -30
  256. package/dist/router/lazy.d.ts +0 -18
  257. package/dist/router/lazy.js +0 -50
  258. package/dist/router/manifest.d.ts +0 -9
  259. package/dist/router/manifest.js +0 -47
  260. package/dist/router/match.js +0 -120
  261. package/dist/router/navigate.d.ts +0 -10
  262. package/dist/router/navigate.js +0 -73
  263. package/dist/router/navigation-registry.d.ts +0 -31
  264. package/dist/router/navigation-registry.js +0 -103
  265. package/dist/router/navigation-scroll.d.ts +0 -13
  266. package/dist/router/navigation-scroll.js +0 -91
  267. package/dist/router/navigation-targets.d.ts +0 -30
  268. package/dist/router/navigation-targets.js +0 -634
  269. package/dist/router/policy.d.ts +0 -27
  270. package/dist/router/policy.js +0 -130
  271. package/dist/router/rendering.d.ts +0 -9
  272. package/dist/router/rendering.js +0 -47
  273. package/dist/router/resolution.d.ts +0 -3
  274. package/dist/router/resolution.js +0 -84
  275. package/dist/router/route-context.js +0 -77
  276. package/dist/router/route-matching.d.ts +0 -19
  277. package/dist/router/route-matching.js +0 -173
  278. package/dist/router/route-query.d.ts +0 -16
  279. package/dist/router/route-query.js +0 -45
  280. package/dist/router/route.d.ts +0 -8
  281. package/dist/router/route.js +0 -10
  282. package/dist/router/store.d.ts +0 -49
  283. package/dist/router/store.js +0 -169
  284. package/dist/router/testing.js +0 -4
  285. package/dist/runtime/access.d.ts +0 -19
  286. package/dist/runtime/access.js +0 -43
  287. package/dist/runtime/child-scope.d.ts +0 -41
  288. package/dist/runtime/child-scope.js +0 -134
  289. package/dist/runtime/component-cleanup.d.ts +0 -15
  290. package/dist/runtime/component-cleanup.js +0 -68
  291. package/dist/runtime/component-commit.js +0 -167
  292. package/dist/runtime/component-facade.d.ts +0 -5
  293. package/dist/runtime/component-facade.js +0 -6
  294. package/dist/runtime/component-internal.d.ts +0 -105
  295. package/dist/runtime/component-internal.js +0 -237
  296. package/dist/runtime/component-lifecycle.d.ts +0 -10
  297. package/dist/runtime/component-lifecycle.js +0 -33
  298. package/dist/runtime/component-scope.d.ts +0 -54
  299. package/dist/runtime/component.d.ts +0 -5
  300. package/dist/runtime/component.js +0 -6
  301. package/dist/runtime/context.d.ts +0 -72
  302. package/dist/runtime/context.js +0 -236
  303. package/dist/runtime/control.d.ts +0 -62
  304. package/dist/runtime/control.js +0 -239
  305. package/dist/runtime/derive.d.ts +0 -16
  306. package/dist/runtime/derive.js +0 -140
  307. package/dist/runtime/dev-namespace.d.ts +0 -30
  308. package/dist/runtime/dev-namespace.js +0 -64
  309. package/dist/runtime/effect.d.ts +0 -35
  310. package/dist/runtime/error-boundary.d.ts +0 -4
  311. package/dist/runtime/error-boundary.js +0 -29
  312. package/dist/runtime/events.d.ts +0 -58
  313. package/dist/runtime/events.js +0 -201
  314. package/dist/runtime/execution-model.d.ts +0 -6
  315. package/dist/runtime/execution-model.js +0 -13
  316. package/dist/runtime/fastlane.d.ts +0 -33
  317. package/dist/runtime/fastlane.js +0 -173
  318. package/dist/runtime/for-bench.d.ts +0 -40
  319. package/dist/runtime/for-bench.js +0 -13
  320. package/dist/runtime/for-internal.d.ts +0 -106
  321. package/dist/runtime/for-internal.js +0 -285
  322. package/dist/runtime/for-reconcile.d.ts +0 -7
  323. package/dist/runtime/for-reconcile.js +0 -442
  324. package/dist/runtime/for-scopes.d.ts +0 -26
  325. package/dist/runtime/for-scopes.js +0 -280
  326. package/dist/runtime/for-signals.d.ts +0 -39
  327. package/dist/runtime/for-signals.js +0 -213
  328. package/dist/runtime/for-types.d.ts +0 -8
  329. package/dist/runtime/for.d.ts +0 -4
  330. package/dist/runtime/for.js +0 -5
  331. package/dist/runtime/index.d.ts +0 -24
  332. package/dist/runtime/index.js +0 -33
  333. package/dist/runtime/lifecycle-batch.d.ts +0 -59
  334. package/dist/runtime/lifecycle-batch.js +0 -178
  335. package/dist/runtime/lifecycle-operation-settlement.d.ts +0 -5
  336. package/dist/runtime/lifecycle-operation-settlement.js +0 -51
  337. package/dist/runtime/lifecycle-operations.d.ts +0 -30
  338. package/dist/runtime/operations.d.ts +0 -3
  339. package/dist/runtime/operations.js +0 -3
  340. package/dist/runtime/perf-metrics.d.ts +0 -27
  341. package/dist/runtime/perf-metrics.js +0 -6
  342. package/dist/runtime/portal.d.ts +0 -21
  343. package/dist/runtime/readable.d.ts +0 -34
  344. package/dist/runtime/readable.js +0 -183
  345. package/dist/runtime/resource-cell.js +0 -112
  346. package/dist/runtime/resource-operation.d.ts +0 -12
  347. package/dist/runtime/runtime.js +0 -57
  348. package/dist/runtime/selector-store.js +0 -22
  349. package/dist/runtime/selector.d.ts +0 -10
  350. package/dist/runtime/snapshot-source.d.ts +0 -9
  351. package/dist/runtime/state.d.ts +0 -54
  352. package/dist/ssg/batch-render.js +0 -101
  353. package/dist/ssg/create-static-gen.d.ts +0 -66
  354. package/dist/ssg/create-static-gen.js +0 -250
  355. package/dist/ssg/generate-metadata.js +0 -92
  356. package/dist/ssg/generation-plan.js +0 -68
  357. package/dist/ssg/incremental-manifest.js +0 -54
  358. package/dist/ssg/resolve-ssg-data.js +0 -103
  359. package/dist/ssg/route-utils.js +0 -22
  360. package/dist/ssg/static-routes.js +0 -100
  361. package/dist/ssg/types.d.ts +0 -188
  362. package/dist/ssg/write-static-files.js +0 -77
  363. package/dist/ssr/attrs.js +0 -92
  364. package/dist/ssr/boundaries.js +0 -124
  365. package/dist/ssr/component-runtime.js +0 -85
  366. package/dist/ssr/context.d.ts +0 -49
  367. package/dist/ssr/context.js +0 -89
  368. package/dist/ssr/errors.d.ts +0 -9
  369. package/dist/ssr/errors.js +0 -12
  370. package/dist/ssr/escape.js +0 -191
  371. package/dist/ssr/hydration-data.js +0 -8
  372. package/dist/ssr/hydration-verify.d.ts +0 -11
  373. package/dist/ssr/hydration-verify.js +0 -171
  374. package/dist/ssr/index-internal.d.ts +0 -14
  375. package/dist/ssr/index-internal.js +0 -17
  376. package/dist/ssr/render-keys.js +0 -14
  377. package/dist/ssr/render-resolved.d.ts +0 -19
  378. package/dist/ssr/render-resolved.js +0 -33
  379. package/dist/ssr/render-sync.d.ts +0 -20
  380. package/dist/ssr/render-sync.js +0 -283
  381. package/dist/ssr/route-policy-resolution.js +0 -76
  382. package/dist/ssr/route-render.d.ts +0 -76
  383. package/dist/ssr/route-render.js +0 -118
  384. package/dist/ssr/sink.d.ts +0 -25
  385. package/dist/ssr/sink.js +0 -84
  386. package/dist/ssr/types.d.ts +0 -22
@@ -1,3 +1,69 @@
1
- import { IconOwnProps, IconProps, IconSizeToken, IconStyleObject } from "./icon.types.js";
2
- import { IconBase, getIconContractProps, isIconSizeToken, joinIconStyle, normalizeIconSizeValue, resolveIconSizeVariable, resolveIconStrokeWidthVariable, serializeIconStyle } from "./icon.js";
1
+ import { r as JSXElement, s as Props } from "../../jsx-CP0gmYwJ.js";
2
+ import { t as Ref } from "../../compose-ref-Cizq72-x.js";
3
+
4
+ //#region src/foundations/icon/icon.types.d.ts
5
+ type IconSizeToken = 'sm' | 'md' | 'lg' | 'xl';
6
+ type IconStyleObject = Record<string, unknown>;
7
+ type IconOwnProps = {
8
+ size?: number | string;
9
+ strokeWidth?: number;
10
+ color?: string;
11
+ title?: string;
12
+ class?: string;
13
+ style?: string | IconStyleObject;
14
+ iconName?: string;
15
+ };
16
+ type IconProps = Omit<Props, 'children' | 'class' | 'color' | 'height' | 'ref' | 'role' | 'stroke' | 'stroke-width' | 'style' | 'title' | 'width'> & IconOwnProps & {
17
+ children?: unknown;
18
+ ref?: Ref<SVGSVGElement>;
19
+ };
20
+ //#endregion
21
+ //#region src/foundations/icon/icon.d.ts
22
+ declare function isIconSizeToken(value: unknown): value is IconSizeToken;
23
+ declare function normalizeIconSizeValue(size: number | string): string;
24
+ declare function resolveIconSizeVariable(size: number | string): string;
25
+ declare function resolveIconStrokeWidthVariable(strokeWidth: number, sizeToken: IconSizeToken | undefined): string;
26
+ declare function serializeIconStyle(style: string | IconStyleObject | undefined): string;
27
+ declare function joinIconStyle(...styles: Array<string | undefined>): string | undefined;
28
+ declare function getIconContractProps({
29
+ size,
30
+ strokeWidth,
31
+ color,
32
+ title,
33
+ style,
34
+ iconName
35
+ }: Pick<IconProps, 'color' | 'iconName' | 'size' | 'strokeWidth' | 'style' | 'title'>): {
36
+ sizeToken: IconSizeToken | undefined;
37
+ decorative: string | undefined;
38
+ iconStyle: string | undefined;
39
+ attrs: {
40
+ xmlns: string;
41
+ width: string;
42
+ height: string;
43
+ fill: string;
44
+ stroke: string;
45
+ 'stroke-width': string;
46
+ role: string;
47
+ 'aria-hidden': string | undefined;
48
+ style: string | undefined;
49
+ 'data-slot': string;
50
+ 'data-icon': string | undefined;
51
+ 'data-size': IconSizeToken | undefined;
52
+ 'data-decorative': string | undefined;
53
+ 'data-color': string | undefined;
54
+ };
55
+ };
56
+ declare function IconBase({
57
+ size,
58
+ strokeWidth,
59
+ color,
60
+ title,
61
+ class: className,
62
+ style,
63
+ iconName,
64
+ children,
65
+ ref,
66
+ ...rest
67
+ }: IconProps): JSXElement;
68
+ //#endregion
3
69
  export { IconBase, type IconOwnProps, type IconProps, type IconSizeToken, type IconStyleObject, getIconContractProps, isIconSizeToken, joinIconStyle, normalizeIconSizeValue, resolveIconSizeVariable, resolveIconStrokeWidthVariable, serializeIconStyle };
@@ -1,2 +1,86 @@
1
- import { IconBase, getIconContractProps, isIconSizeToken, joinIconStyle, normalizeIconSizeValue, resolveIconSizeVariable, resolveIconStrokeWidthVariable, serializeIconStyle } from "./icon.js";
1
+ import { jsx, jsxs } from "../../jsx-runtime.js";
2
+ //#region src/foundations/icon/icon.tsx
3
+ const ICON_SIZE_TOKENS = [
4
+ "sm",
5
+ "md",
6
+ "lg",
7
+ "xl"
8
+ ];
9
+ function isIconSizeToken(value) {
10
+ return typeof value === "string" && ICON_SIZE_TOKENS.includes(value);
11
+ }
12
+ function normalizeIconSizeValue(size) {
13
+ if (typeof size === "number") return `${size}px`;
14
+ return size;
15
+ }
16
+ function resolveIconSizeVariable(size) {
17
+ if (isIconSizeToken(size)) return `var(--ak-icon-size-${size}, var(--ak-icon-size-md, 1.25rem))`;
18
+ return normalizeIconSizeValue(size);
19
+ }
20
+ function resolveIconStrokeWidthVariable(strokeWidth, sizeToken) {
21
+ if (sizeToken) return `var(--ak-icon-stroke-width-${sizeToken}, var(--ak-icon-stroke-width-md, ${strokeWidth}))`;
22
+ return `var(--ak-icon-stroke-width-md, ${strokeWidth})`;
23
+ }
24
+ function camelToKebab(key) {
25
+ return key.replace(/([A-Z])/g, (match) => `-${match.toLowerCase()}`);
26
+ }
27
+ function serializeIconStyle(style) {
28
+ if (!style) return "";
29
+ if (typeof style === "string") return style.trim();
30
+ return Object.entries(style).filter(([, value]) => value !== void 0 && value !== null).map(([key, value]) => `${camelToKebab(key)}:${String(value)}`).join(";");
31
+ }
32
+ function joinIconStyle(...styles) {
33
+ const merged = styles.map((style) => style?.trim()).filter(Boolean);
34
+ return merged.length > 0 ? merged.join(";") : void 0;
35
+ }
36
+ function getIconContractProps({ size = 20, strokeWidth = 2, color = "currentColor", title, style, iconName }) {
37
+ const sizeToken = isIconSizeToken(size) ? size : void 0;
38
+ const decorative = title ? void 0 : "true";
39
+ const resolvedSize = resolveIconSizeVariable(size);
40
+ const resolvedStrokeWidth = resolveIconStrokeWidthVariable(strokeWidth, sizeToken);
41
+ const iconStyle = joinIconStyle(`--ak-icon-size:${resolvedSize}`, `--ak-icon-stroke-width:${resolvedStrokeWidth}`, "display:inline-block", "flex-shrink:0", "width:var(--ak-icon-size)", "height:var(--ak-icon-size)", "stroke-width:var(--ak-icon-stroke-width)", serializeIconStyle(style));
42
+ return {
43
+ sizeToken,
44
+ decorative,
45
+ iconStyle,
46
+ attrs: {
47
+ xmlns: "http://www.w3.org/2000/svg",
48
+ width: "24",
49
+ height: "24",
50
+ fill: "none",
51
+ stroke: color,
52
+ "stroke-width": "var(--ak-icon-stroke-width)",
53
+ role: "img",
54
+ "aria-hidden": title ? void 0 : "true",
55
+ style: iconStyle,
56
+ "data-slot": "icon",
57
+ "data-icon": iconName,
58
+ "data-size": sizeToken,
59
+ "data-decorative": decorative,
60
+ "data-color": color === "currentColor" ? "current" : void 0
61
+ }
62
+ };
63
+ }
64
+ function IconBase({ size = 20, strokeWidth = 2, color = "currentColor", title, class: className, style, iconName, children, ref, ...rest }) {
65
+ const { attrs } = getIconContractProps({
66
+ size,
67
+ strokeWidth,
68
+ color,
69
+ title,
70
+ style,
71
+ iconName
72
+ });
73
+ const finalChildren = title ? [jsx("title", { children: title }), children] : children;
74
+ return jsxs("svg", {
75
+ ...rest,
76
+ ...attrs,
77
+ viewBox: rest.viewBox ?? "0 0 24 24",
78
+ "stroke-linecap": rest["stroke-linecap"] ?? "round",
79
+ "stroke-linejoin": rest["stroke-linejoin"] ?? "round",
80
+ class: className,
81
+ ref,
82
+ children: finalChildren
83
+ });
84
+ }
85
+ //#endregion
2
86
  export { IconBase, getIconContractProps, isIconSizeToken, joinIconStyle, normalizeIconSizeValue, resolveIconSizeVariable, resolveIconStrokeWidthVariable, serializeIconStyle };
@@ -1,6 +1,3 @@
1
- import { JSXElement } from "../common/jsx.js";
2
- import { DefaultPortal, Portal, PortalProps, definePortal } from "../runtime/portal.js";
3
- import { LayoutComponent, layout } from "./structures/layout.js";
4
- import { Slot, SlotProps } from "./structures/slot.js";
5
- import { Presence, PresenceProps } from "./structures/presence.js";
1
+ import { r as JSXElement } from "../jsx-CP0gmYwJ.js";
2
+ import { _ as definePortal, c as Presence, d as SlotProps, f as LayoutComponent, g as PortalProps, h as Portal, l as PresenceProps, m as DefaultPortal, p as layout, u as Slot } from "../index-B1LNotpU.js";
6
3
  export { DefaultPortal, type JSXElement, type LayoutComponent, Portal, type PortalProps, Presence, type PresenceProps, Slot, type SlotProps, definePortal, layout };
@@ -1,6 +1,3 @@
1
- import { DefaultPortal, Portal, definePortal } from "../runtime/portal.js";
2
- import { layout } from "./structures/layout.js";
3
- import { Slot } from "./structures/slot.js";
4
- import { Presence } from "./structures/presence.js";
5
- import "./structures/index.js";
1
+ import { i as definePortal, n as Portal, t as DefaultPortal } from "../portal-C47xkwXj.js";
2
+ import { a as layout, i as Slot, r as Presence } from "../structures-DUB3HchX.js";
6
3
  export { DefaultPortal, Portal, Presence, Slot, definePortal, layout };
@@ -1,7 +1,265 @@
1
- import { PressableOptions, PressableResult, pressable } from "./pressable.js";
2
- import { DismissableOptions, dismissable } from "./dismissable.js";
3
- import { FocusableOptions, FocusableResult, focusable } from "./focusable.js";
4
- import { HoverableOptions, HoverableResult, hoverable } from "./hoverable.js";
5
- import { Orientation, RovingFocusOptions, RovingFocusResult, rovingFocus } from "./roving-focus.js";
6
- import { InteractionPolicyInput, applyInteractionPolicy, mergeInteractionProps } from "./interaction-policy.js";
1
+ import { t as Ref } from "../../compose-ref-Cizq72-x.js";
2
+ import { d as KeyboardLikeEvent, f as PointerLikeEvent, l as DefaultPreventable, p as PropagationStoppable } from "../../index-BnU0NPwM.js";
3
+
4
+ //#region src/foundations/interactions/pressable.d.ts
5
+ /**
6
+ * pressable
7
+ *
8
+ * Interaction helper that produces VNode props for 'press' semantics.
9
+ * - Pure and deterministic: no DOM construction or mutation here
10
+ * - The runtime owns event attachment and scheduling
11
+ * - This helper returns plain props (handlers) intended to be attached by the runtime
12
+ *
13
+ * Behaviour:
14
+ * - For native buttons: only an `onClick` prop is provided (no ARIA or keyboard shims)
15
+ * - For non-button elements: add `role="button"` and `tabIndex` and keyboard handlers
16
+ * - Activation: `Enter` activates on keydown, `Space` activates on keyup (matches native button)
17
+ * - Disabled: handlers short-circuit and `aria-disabled` is set for all hosts
18
+ *
19
+ * POLICY DECISIONS (LOCKED):
20
+ *
21
+ * 1. Activation Timing (Platform Parity)
22
+ * - Enter fires on keydown (immediate response)
23
+ * - Space fires on keyup (allows cancel by moving focus, matches native)
24
+ * - Space keydown prevents scroll (matches native button behavior)
25
+ *
26
+ * 2. Disabled Enforcement Strategy
27
+ * - Native buttons: Use HTML `disabled` attribute (platform-enforced non-interactivity)
28
+ * AND `aria-disabled` (consistent a11y signaling)
29
+ * - Non-native: Use `tabIndex=-1` (removes from tab order)
30
+ * AND `aria-disabled` (signals disabled state to AT)
31
+ * - Click handler short-circuits as defense-in-depth (prevents leaked focus issues)
32
+ *
33
+ * 3. Key Repeat Behavior
34
+ * - Held Enter/Space will fire onPress repeatedly (matches native button)
35
+ * - No debouncing or repeat prevention (platform parity)
36
+ */
37
+ interface PressableOptions {
38
+ disabled?: boolean;
39
+ onPress?: (e: PressEvent) => void;
40
+ /**
41
+ * Whether the host is a native button. Defaults to false.
42
+ */
43
+ isNativeButton?: boolean;
44
+ }
45
+ type PressEvent = DefaultPreventable & PropagationStoppable;
46
+ interface PressableResult {
47
+ onClick: (e: PressEvent) => void;
48
+ disabled?: true;
49
+ role?: 'button';
50
+ tabIndex?: number;
51
+ onKeyDown?: (e: KeyboardLikeEvent) => void;
52
+ onKeyUp?: (e: KeyboardLikeEvent) => void;
53
+ 'aria-disabled'?: 'true';
54
+ }
55
+ declare function pressable({
56
+ disabled,
57
+ onPress,
58
+ isNativeButton
59
+ }: PressableOptions): PressableResult;
60
+ //#endregion
61
+ //#region src/foundations/interactions/dismissable.d.ts
62
+ /**
63
+ * dismissable
64
+ *
65
+ * THE dismissal primitive. Handles Escape key and outside interactions.
66
+ *
67
+ * INVARIANTS:
68
+ * 1. Returns props that compose via mergeProps (no factories)
69
+ * 2. Disabled state respected exactly once, here
70
+ * 3. No side effects - pure props generation
71
+ * 4. Outside detection requires explicit node reference
72
+ * 5. This is the ONLY dismissal primitive - do not create alternatives
73
+ *
74
+ * DESIGN:
75
+ * - Returns standard event handler props (onKeyDown, onPointerDownCapture)
76
+ * - Composable via mergeProps with other foundations
77
+ * - Caller provides the protected node reference for outside detection
78
+ * - Returned capture props must be attached to a surface that can observe both
79
+ * the protected subtree and the outside interaction path (for example, an
80
+ * overlay or wrapper around the protected node)
81
+ * - Single onDismiss callback for all dismiss triggers
82
+ *
83
+ * PIT OF SUCCESS:
84
+ * ✓ Can't accidentally bypass (only way to get dismiss behavior)
85
+ * ✓ Can't duplicate (disabled checked once)
86
+ * ✓ Composes via mergeProps (standard props)
87
+ * ✓ Wrong usage is hard (no factories to misuse)
88
+ *
89
+ * USAGE:
90
+ * const props = dismissable({
91
+ * node: elementRef,
92
+ * disabled: false,
93
+ * onDismiss: () => close()
94
+ * });
95
+ *
96
+ * <div {...props}>
97
+ * <div ref={elementRef}>Content</div>
98
+ * </div>
99
+ *
100
+ * MISUSE EXAMPLE (PREVENTED):
101
+ * ❌ Can't forget to check disabled - checked inside dismissable
102
+ * ❌ Can't create custom escape handler - this is the only one
103
+ * ❌ Can't bypass via direct event listeners - mergeProps composes correctly
104
+ */
105
+ interface DismissableOptions {
106
+ /**
107
+ * Reference to the protected element for outside click detection. Attach the
108
+ * returned capture props to a surface that encloses this node.
109
+ */
110
+ node?: Node | null;
111
+ /**
112
+ * Whether dismiss is disabled
113
+ */
114
+ disabled?: boolean;
115
+ /**
116
+ * Called when dismiss is triggered (Escape or outside click)
117
+ */
118
+ onDismiss?: (trigger: 'escape' | 'outside') => void;
119
+ }
120
+ declare function dismissable({
121
+ node,
122
+ disabled,
123
+ onDismiss
124
+ }: DismissableOptions): {
125
+ onKeyDown: (e: KeyboardLikeEvent) => void;
126
+ onPointerDownCapture: (e: PointerLikeEvent) => void;
127
+ };
128
+ //#endregion
129
+ //#region src/foundations/interactions/focusable.d.ts
130
+ /**
131
+ * focusable
132
+ *
133
+ * Normalize focus-related props for hosts.
134
+ * - No DOM manipulation here; returns props that the runtime may attach.
135
+ */
136
+ interface FocusableOptions {
137
+ disabled?: boolean;
138
+ tabIndex?: number | undefined;
139
+ }
140
+ interface FocusableResult {
141
+ tabIndex?: number;
142
+ 'aria-disabled'?: 'true';
143
+ }
144
+ declare function focusable({
145
+ disabled,
146
+ tabIndex
147
+ }: FocusableOptions): FocusableResult;
148
+ //#endregion
149
+ //#region src/foundations/interactions/hoverable.d.ts
150
+ /**
151
+ * hoverable
152
+ *
153
+ * Produces props for pointer enter/leave handling. Pure and deterministic.
154
+ */
155
+ interface HoverableOptions {
156
+ disabled?: boolean;
157
+ onEnter?: (e: HoverEvent) => void;
158
+ onLeave?: (e: HoverEvent) => void;
159
+ }
160
+ type HoverEvent = DefaultPreventable & PropagationStoppable;
161
+ interface HoverableResult {
162
+ onPointerEnter?: (e: HoverEvent) => void;
163
+ onPointerLeave?: (e: HoverEvent) => void;
164
+ }
165
+ declare function hoverable({
166
+ disabled,
167
+ onEnter,
168
+ onLeave
169
+ }: HoverableOptions): HoverableResult;
170
+ //#endregion
171
+ //#region src/foundations/interactions/roving-focus.d.ts
172
+ type Orientation = 'horizontal' | 'vertical' | 'both';
173
+ interface RovingFocusOptions {
174
+ /**
175
+ * Current focused index
176
+ */
177
+ currentIndex: number;
178
+ /**
179
+ * Total number of items
180
+ */
181
+ itemCount: number;
182
+ /**
183
+ * Navigation orientation
184
+ * - horizontal: ArrowLeft/ArrowRight
185
+ * - vertical: ArrowUp/ArrowDown
186
+ * - both: all arrow keys
187
+ */
188
+ orientation?: Orientation;
189
+ /**
190
+ * Whether to loop when reaching the end
191
+ */
192
+ loop?: boolean;
193
+ /**
194
+ * Callback when navigation occurs
195
+ */
196
+ onNavigate?: (index: number) => void;
197
+ /**
198
+ * Optional disabled state check per index
199
+ */
200
+ isDisabled?: (index: number) => boolean;
201
+ }
202
+ interface RovingFocusResult {
203
+ /**
204
+ * Props for the container element (composes via mergeProps)
205
+ */
206
+ container: {
207
+ onKeyDown: (e: KeyboardLikeEvent) => void;
208
+ };
209
+ /**
210
+ * Generate props for an item at the given index (composes via mergeProps)
211
+ */
212
+ item: (index: number) => {
213
+ tabIndex: number;
214
+ 'data-roving-index': number;
215
+ };
216
+ }
217
+ declare function rovingFocus(options: RovingFocusOptions): RovingFocusResult;
218
+ //#endregion
219
+ //#region src/foundations/interactions/interaction-policy.d.ts
220
+ interface InteractionPolicyInput {
221
+ /** Whether the host element is a native interactive element (button, a, etc) */
222
+ isNative: boolean;
223
+ /** Disabled state - checked ONLY here, never in components */
224
+ disabled: boolean;
225
+ /** User-provided press handler - semantic action, not DOM event */
226
+ onPress?: (e: Event) => void;
227
+ /** Optional ref to compose */
228
+ ref?: Ref<unknown>;
229
+ }
230
+ /**
231
+ * THE interaction policy. Components MUST use this, NEVER implement
232
+ * interaction logic directly.
233
+ */
234
+ declare function applyInteractionPolicy({
235
+ isNative,
236
+ disabled,
237
+ onPress,
238
+ ref
239
+ }: InteractionPolicyInput): {
240
+ disabled: true | undefined;
241
+ onClick: (e: Event) => void;
242
+ ref: Ref<unknown>;
243
+ } | {
244
+ tabIndex: number;
245
+ ref: Ref<unknown>;
246
+ 'aria-disabled'?: "true";
247
+ onClick: (e: DefaultPreventable & PropagationStoppable) => void;
248
+ disabled?: true;
249
+ role?: "button";
250
+ onKeyDown?: (e: KeyboardLikeEvent) => void;
251
+ onKeyUp?: (e: KeyboardLikeEvent) => void;
252
+ };
253
+ /**
254
+ * Merge rule for Slot / asChild
255
+ *
256
+ * Precedence:
257
+ * policy → user → child
258
+ *
259
+ * Event handlers are composed (policy first).
260
+ * Refs are always composed.
261
+ * Policy props MUST take precedence to enforce invariants.
262
+ */
263
+ declare function mergeInteractionProps(childProps: Record<string, unknown>, policyProps: Record<string, unknown>, userProps?: Record<string, unknown>): Record<string, unknown>;
264
+ //#endregion
7
265
  export { type DismissableOptions, type FocusableOptions, type FocusableResult, type HoverableOptions, type HoverableResult, type InteractionPolicyInput, type Orientation, type PressableOptions, type PressableResult, type RovingFocusOptions, type RovingFocusResult, applyInteractionPolicy, dismissable, focusable, hoverable, mergeInteractionProps, pressable, rovingFocus };
@@ -1,7 +1,2 @@
1
- import { pressable } from "./pressable.js";
2
- import { dismissable } from "./dismissable.js";
3
- import { focusable } from "./focusable.js";
4
- import { hoverable } from "./hoverable.js";
5
- import { rovingFocus } from "./roving-focus.js";
6
- import { applyInteractionPolicy, mergeInteractionProps } from "./interaction-policy.js";
1
+ import { a as focusable, i as hoverable, n as mergeInteractionProps, o as dismissable, r as rovingFocus, s as pressable, t as applyInteractionPolicy } from "../../interactions-w7gQN4ha.js";
7
2
  export { applyInteractionPolicy, dismissable, focusable, hoverable, mergeInteractionProps, pressable, rovingFocus };
@@ -1,2 +1,33 @@
1
- import { ControllableState, controllableState, isControlled, makeControllable, resolveControllable } from "./controllable.js";
1
+ import { m as State } from "../../control-BI4RMD2z.js";
2
+
3
+ //#region src/foundations/state/controllable.d.ts
4
+ declare function isControlled<T>(value: T | undefined): value is T;
5
+ declare function resolveControllable<T>(value: T | undefined, defaultValue: T): {
6
+ value: T;
7
+ isControlled: boolean;
8
+ };
9
+ declare function makeControllable<T>(options: {
10
+ value: T | undefined;
11
+ defaultValue: T;
12
+ onChange?: (next: T) => void;
13
+ setInternal?: (next: T) => void;
14
+ }): {
15
+ set: (next: T) => void;
16
+ isControlled: boolean;
17
+ };
18
+ type ControllableState<T> = State<T> & {
19
+ isControlled: boolean;
20
+ };
21
+ /**
22
+ * controllableState
23
+ *
24
+ * Hook-like primitive that mirrors `state()` semantics while supporting
25
+ * controlled/uncontrolled behavior.
26
+ */
27
+ declare function controllableState<T>(options: {
28
+ value: T | undefined;
29
+ defaultValue: T;
30
+ onChange?: (next: T) => void;
31
+ }): ControllableState<T>;
32
+ //#endregion
2
33
  export { type ControllableState, controllableState, isControlled, makeControllable, resolveControllable };
@@ -1,2 +1,79 @@
1
- import { controllableState, isControlled, makeControllable, resolveControllable } from "./controllable.js";
1
+ import { t as state } from "../../state-DPl8lffD.js";
2
+ //#region src/foundations/state/controllable.ts
3
+ /**
4
+ * controllable
5
+ *
6
+ * Small utilities for controlled vs uncontrolled components. These helpers are
7
+ * intentionally minimal and do not manage state themselves; they help component
8
+ * implementations make correct decisions about when to call `onChange` vs
9
+ * update internal state.
10
+ *
11
+ * POLICY DECISIONS (LOCKED):
12
+ *
13
+ * 1. Controlled Detection
14
+ * A value is "controlled" if it is not `undefined`.
15
+ * This matches React conventions and is SSR-safe.
16
+ *
17
+ * 2. onChange Timing
18
+ * - Controlled mode: onChange called immediately, no internal update
19
+ * - Uncontrolled mode: internal state updated first, then onChange called
20
+ * This ensures onChange sees the new value in both modes.
21
+ *
22
+ * 3. Value Equality
23
+ * controllableState uses Object.is() to prevent unnecessary onChange calls.
24
+ * This is intentional — strict equality, no deep comparison.
25
+ */
26
+ function isControlled(value) {
27
+ return value !== void 0;
28
+ }
29
+ function resolveControllable(value, defaultValue) {
30
+ const controlled = isControlled(value);
31
+ return {
32
+ value: controlled ? value : defaultValue,
33
+ isControlled: controlled
34
+ };
35
+ }
36
+ function makeControllable(options) {
37
+ const { value, defaultValue, onChange, setInternal } = options;
38
+ const { isControlled } = resolveControllable(value, defaultValue);
39
+ function set(next) {
40
+ if (isControlled) onChange?.(next);
41
+ else {
42
+ setInternal?.(next);
43
+ onChange?.(next);
44
+ }
45
+ }
46
+ return {
47
+ set,
48
+ isControlled
49
+ };
50
+ }
51
+ /**
52
+ * controllableState
53
+ *
54
+ * Hook-like primitive that mirrors `state()` semantics while supporting
55
+ * controlled/uncontrolled behavior.
56
+ */
57
+ function controllableState(options) {
58
+ const isControlled = options.value !== void 0;
59
+ const internal = isControlled ? null : state(options.defaultValue);
60
+ function read() {
61
+ if (isControlled) return options.value;
62
+ return internal();
63
+ }
64
+ read.set = (nextOrUpdater) => {
65
+ const prev = read();
66
+ const next = typeof nextOrUpdater === "function" ? nextOrUpdater(prev) : nextOrUpdater;
67
+ if (Object.is(prev, next)) return;
68
+ if (isControlled) {
69
+ options.onChange?.(next);
70
+ return;
71
+ }
72
+ internal.set(nextOrUpdater);
73
+ options.onChange?.(next);
74
+ };
75
+ read.isControlled = isControlled;
76
+ return read;
77
+ }
78
+ //#endregion
2
79
  export { controllableState, isControlled, makeControllable, resolveControllable };
@@ -1,8 +1,3 @@
1
- import { JSXElement } from "../../common/jsx.js";
2
- import { DefaultPortal, Portal, PortalProps, definePortal } from "../../runtime/portal.js";
3
- import { LayoutComponent, layout } from "./layout.js";
4
- import { Slot, SlotProps } from "./slot.js";
5
- import { Presence, PresenceProps } from "./presence.js";
6
- import { Collection, CollectionItem, createCollection } from "./collection.js";
7
- import { Layer, LayerManager, LayerOptions, createLayer } from "./layer.js";
1
+ import { r as JSXElement } from "../../jsx-CP0gmYwJ.js";
2
+ import { _ as definePortal, a as Collection, c as Presence, d as SlotProps, f as LayoutComponent, g as PortalProps, h as Portal, i as createLayer, l as PresenceProps, m as DefaultPortal, n as LayerManager, o as CollectionItem, p as layout, r as LayerOptions, s as createCollection, t as Layer, u as Slot } from "../../index-B1LNotpU.js";
8
3
  export { type Collection, type CollectionItem, DefaultPortal, type JSXElement, type Layer, type LayerManager, type LayerOptions, type LayoutComponent, Portal, type PortalProps, Presence, type PresenceProps, Slot, type SlotProps, createCollection, createLayer, definePortal, layout };
@@ -1,8 +1,3 @@
1
- import { DefaultPortal, Portal, definePortal } from "../../runtime/portal.js";
2
- import { layout } from "./layout.js";
3
- import { Slot } from "./slot.js";
4
- import { Presence } from "./presence.js";
5
- import "./portal.js";
6
- import { createCollection } from "./collection.js";
7
- import { createLayer } from "./layer.js";
1
+ import { i as definePortal, n as Portal, t as DefaultPortal } from "../../portal-C47xkwXj.js";
2
+ import { a as layout, i as Slot, n as createCollection, r as Presence, t as createLayer } from "../../structures-DUB3HchX.js";
8
3
  export { DefaultPortal, Portal, Presence, Slot, createCollection, createLayer, definePortal, layout };
@@ -1,7 +1,3 @@
1
- import { Ref, composeRefs, setRef } from "./compose-ref.js";
2
- import { DefaultPreventable, FocusLikeEvent, KeyboardLikeEvent, PointerLikeEvent, PropagationStoppable } from "./event-types.js";
3
- import { ComposeHandlersOptions, composeHandlers } from "./compose-handlers.js";
4
- import { mergeProps } from "./merge-props.js";
5
- import { ariaDisabled, ariaExpanded, ariaSelected } from "./aria.js";
6
- import { FormatIdOptions, formatId } from "./use-id.js";
1
+ import { n as composeRefs, r as setRef, t as Ref } from "../../compose-ref-Cizq72-x.js";
2
+ import { a as ariaSelected, c as composeHandlers, d as KeyboardLikeEvent, f as PointerLikeEvent, i as ariaExpanded, l as DefaultPreventable, n as formatId, o as mergeProps, p as PropagationStoppable, r as ariaDisabled, s as ComposeHandlersOptions, t as FormatIdOptions, u as FocusLikeEvent } from "../../index-BnU0NPwM.js";
7
3
  export { type ComposeHandlersOptions, type DefaultPreventable, type FocusLikeEvent, type FormatIdOptions, type KeyboardLikeEvent, type PointerLikeEvent, type PropagationStoppable, type Ref, ariaDisabled, ariaExpanded, ariaSelected, composeHandlers, composeRefs, formatId, mergeProps, setRef };
@@ -1,6 +1,3 @@
1
- import { composeHandlers } from "./compose-handlers.js";
2
- import { mergeProps } from "./merge-props.js";
3
- import { ariaDisabled, ariaExpanded, ariaSelected } from "./aria.js";
4
- import { composeRefs, setRef } from "./compose-ref.js";
5
- import { formatId } from "./use-id.js";
1
+ import { a as ariaSelected, i as ariaExpanded, n as setRef, o as mergeProps, r as ariaDisabled, s as composeHandlers, t as composeRefs } from "../../compose-ref-Cc_YkUpM.js";
2
+ import { t as formatId } from "../../utilities-C_CGX4Dz.js";
6
3
  export { ariaDisabled, ariaExpanded, ariaSelected, composeHandlers, composeRefs, formatId, mergeProps, setRef };