@ariakit/react-components 0.1.0

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 (1155) hide show
  1. package/CHANGELOG.md +20 -0
  2. package/dist/button/button.d.ts +2 -0
  3. package/dist/button/button.js +53 -0
  4. package/dist/button/button.js.map +1 -0
  5. package/dist/button-Cp853csH.d.ts +34 -0
  6. package/dist/button-Cp853csH.d.ts.map +1 -0
  7. package/dist/checkbox/checkbox-check.d.ts +56 -0
  8. package/dist/checkbox/checkbox-check.d.ts.map +1 -0
  9. package/dist/checkbox/checkbox-check.js +77 -0
  10. package/dist/checkbox/checkbox-check.js.map +1 -0
  11. package/dist/checkbox/checkbox-checked-context.d.ts +5 -0
  12. package/dist/checkbox/checkbox-checked-context.d.ts.map +1 -0
  13. package/dist/checkbox/checkbox-checked-context.js +8 -0
  14. package/dist/checkbox/checkbox-checked-context.js.map +1 -0
  15. package/dist/checkbox/checkbox-context.d.ts +24 -0
  16. package/dist/checkbox/checkbox-context.d.ts.map +1 -0
  17. package/dist/checkbox/checkbox-context.js +26 -0
  18. package/dist/checkbox/checkbox-context.js.map +1 -0
  19. package/dist/checkbox/checkbox-provider.d.ts +35 -0
  20. package/dist/checkbox/checkbox-provider.d.ts.map +1 -0
  21. package/dist/checkbox/checkbox-provider.js +15 -0
  22. package/dist/checkbox/checkbox-provider.js.map +1 -0
  23. package/dist/checkbox/checkbox-store.d.ts +2 -0
  24. package/dist/checkbox/checkbox-store.js +18 -0
  25. package/dist/checkbox/checkbox-store.js.map +1 -0
  26. package/dist/checkbox/checkbox.d.ts +91 -0
  27. package/dist/checkbox/checkbox.d.ts.map +1 -0
  28. package/dist/checkbox/checkbox.js +148 -0
  29. package/dist/checkbox/checkbox.js.map +1 -0
  30. package/dist/checkbox-store-CYZPR4N4.d.ts +38 -0
  31. package/dist/checkbox-store-CYZPR4N4.d.ts.map +1 -0
  32. package/dist/collection/collection-context.d.ts +24 -0
  33. package/dist/collection/collection-context.d.ts.map +1 -0
  34. package/dist/collection/collection-context.js +26 -0
  35. package/dist/collection/collection-context.js.map +1 -0
  36. package/dist/collection/collection-item-offscreen.d.ts +2 -0
  37. package/dist/collection/collection-item-offscreen.js +88 -0
  38. package/dist/collection/collection-item-offscreen.js.map +1 -0
  39. package/dist/collection/collection-item.d.ts +2 -0
  40. package/dist/collection/collection-item.js +69 -0
  41. package/dist/collection/collection-item.js.map +1 -0
  42. package/dist/collection/collection-provider.d.ts +26 -0
  43. package/dist/collection/collection-provider.d.ts.map +1 -0
  44. package/dist/collection/collection-provider.js +15 -0
  45. package/dist/collection/collection-provider.js.map +1 -0
  46. package/dist/collection/collection-renderer.d.ts +2 -0
  47. package/dist/collection/collection-renderer.js +580 -0
  48. package/dist/collection/collection-renderer.js.map +1 -0
  49. package/dist/collection/collection-store.d.ts +2 -0
  50. package/dist/collection/collection-store.js +18 -0
  51. package/dist/collection/collection-store.js.map +1 -0
  52. package/dist/collection/collection.d.ts +55 -0
  53. package/dist/collection/collection.d.ts.map +1 -0
  54. package/dist/collection/collection.js +55 -0
  55. package/dist/collection/collection.js.map +1 -0
  56. package/dist/collection-item-C-g2BwVF.d.ts +84 -0
  57. package/dist/collection-item-C-g2BwVF.d.ts.map +1 -0
  58. package/dist/collection-item-offscreen-DyXa-sqj.d.ts +30 -0
  59. package/dist/collection-item-offscreen-DyXa-sqj.d.ts.map +1 -0
  60. package/dist/collection-renderer-DsPD9ksD.d.ts +469 -0
  61. package/dist/collection-renderer-DsPD9ksD.d.ts.map +1 -0
  62. package/dist/collection-store-CbwzYsWf.d.ts +42 -0
  63. package/dist/collection-store-CbwzYsWf.d.ts.map +1 -0
  64. package/dist/combobox/combobox-cancel.d.ts +62 -0
  65. package/dist/combobox/combobox-cancel.d.ts.map +1 -0
  66. package/dist/combobox/combobox-cancel.js +98 -0
  67. package/dist/combobox/combobox-cancel.js.map +1 -0
  68. package/dist/combobox/combobox-context.d.ts +27 -0
  69. package/dist/combobox/combobox-context.d.ts.map +1 -0
  70. package/dist/combobox/combobox-context.js +32 -0
  71. package/dist/combobox/combobox-context.js.map +1 -0
  72. package/dist/combobox/combobox-disclosure.d.ts +63 -0
  73. package/dist/combobox/combobox-disclosure.d.ts.map +1 -0
  74. package/dist/combobox/combobox-disclosure.js +108 -0
  75. package/dist/combobox/combobox-disclosure.js.map +1 -0
  76. package/dist/combobox/combobox-group-label.d.ts +56 -0
  77. package/dist/combobox/combobox-group-label.d.ts.map +1 -0
  78. package/dist/combobox/combobox-group-label.js +47 -0
  79. package/dist/combobox/combobox-group-label.js.map +1 -0
  80. package/dist/combobox/combobox-group.d.ts +63 -0
  81. package/dist/combobox/combobox-group.d.ts.map +1 -0
  82. package/dist/combobox/combobox-group.js +67 -0
  83. package/dist/combobox/combobox-group.js.map +1 -0
  84. package/dist/combobox/combobox-item-check.d.ts +61 -0
  85. package/dist/combobox/combobox-item-check.d.ts.map +1 -0
  86. package/dist/combobox/combobox-item-check.js +62 -0
  87. package/dist/combobox/combobox-item-check.js.map +1 -0
  88. package/dist/combobox/combobox-item-offscreen.d.ts +34 -0
  89. package/dist/combobox/combobox-item-offscreen.d.ts.map +1 -0
  90. package/dist/combobox/combobox-item-offscreen.js +53 -0
  91. package/dist/combobox/combobox-item-offscreen.js.map +1 -0
  92. package/dist/combobox/combobox-item-value.d.ts +103 -0
  93. package/dist/combobox/combobox-item-value.d.ts.map +1 -0
  94. package/dist/combobox/combobox-item-value.js +143 -0
  95. package/dist/combobox/combobox-item-value.js.map +1 -0
  96. package/dist/combobox/combobox-item.d.ts +146 -0
  97. package/dist/combobox/combobox-item.d.ts.map +1 -0
  98. package/dist/combobox/combobox-item.js +157 -0
  99. package/dist/combobox/combobox-item.js.map +1 -0
  100. package/dist/combobox/combobox-label.d.ts +50 -0
  101. package/dist/combobox/combobox-label.d.ts.map +1 -0
  102. package/dist/combobox/combobox-label.js +51 -0
  103. package/dist/combobox/combobox-label.js.map +1 -0
  104. package/dist/combobox/combobox-list.d.ts +55 -0
  105. package/dist/combobox/combobox-list.d.ts.map +1 -0
  106. package/dist/combobox/combobox-list.js +106 -0
  107. package/dist/combobox/combobox-list.js.map +1 -0
  108. package/dist/combobox/combobox-popover.d.ts +46 -0
  109. package/dist/combobox/combobox-popover.d.ts.map +1 -0
  110. package/dist/combobox/combobox-popover.js +115 -0
  111. package/dist/combobox/combobox-popover.js.map +1 -0
  112. package/dist/combobox/combobox-provider.d.ts +30 -0
  113. package/dist/combobox/combobox-provider.d.ts.map +1 -0
  114. package/dist/combobox/combobox-provider.js +15 -0
  115. package/dist/combobox/combobox-provider.js.map +1 -0
  116. package/dist/combobox/combobox-row.d.ts +66 -0
  117. package/dist/combobox/combobox-row.d.ts.map +1 -0
  118. package/dist/combobox/combobox-row.js +70 -0
  119. package/dist/combobox/combobox-row.js.map +1 -0
  120. package/dist/combobox/combobox-separator.d.ts +61 -0
  121. package/dist/combobox/combobox-separator.d.ts.map +1 -0
  122. package/dist/combobox/combobox-separator.js +60 -0
  123. package/dist/combobox/combobox-separator.js.map +1 -0
  124. package/dist/combobox/combobox-store.d.ts +2 -0
  125. package/dist/combobox/combobox-store.js +33 -0
  126. package/dist/combobox/combobox-store.js.map +1 -0
  127. package/dist/combobox/combobox-value.d.ts +49 -0
  128. package/dist/combobox/combobox-value.d.ts.map +1 -0
  129. package/dist/combobox/combobox-value.js +40 -0
  130. package/dist/combobox/combobox-value.js.map +1 -0
  131. package/dist/combobox/combobox.d.ts +268 -0
  132. package/dist/combobox/combobox.d.ts.map +1 -0
  133. package/dist/combobox/combobox.js +399 -0
  134. package/dist/combobox/combobox.js.map +1 -0
  135. package/dist/combobox-store-DEVQ45mZ.d.ts +80 -0
  136. package/dist/combobox-store-DEVQ45mZ.d.ts.map +1 -0
  137. package/dist/command/command.d.ts +2 -0
  138. package/dist/command/command.js +130 -0
  139. package/dist/command/command.js.map +1 -0
  140. package/dist/command-DckndCUK.d.ts +59 -0
  141. package/dist/command-DckndCUK.d.ts.map +1 -0
  142. package/dist/composite/composite-container.d.ts +59 -0
  143. package/dist/composite/composite-container.d.ts.map +1 -0
  144. package/dist/composite/composite-container.js +164 -0
  145. package/dist/composite/composite-container.js.map +1 -0
  146. package/dist/composite/composite-context.d.ts +34 -0
  147. package/dist/composite/composite-context.d.ts.map +1 -0
  148. package/dist/composite/composite-context.js +30 -0
  149. package/dist/composite/composite-context.js.map +1 -0
  150. package/dist/composite/composite-group-label.d.ts +55 -0
  151. package/dist/composite/composite-group-label.d.ts.map +1 -0
  152. package/dist/composite/composite-group-label.js +46 -0
  153. package/dist/composite/composite-group-label.js.map +1 -0
  154. package/dist/composite/composite-group.d.ts +60 -0
  155. package/dist/composite/composite-group.d.ts.map +1 -0
  156. package/dist/composite/composite-group.js +51 -0
  157. package/dist/composite/composite-group.js.map +1 -0
  158. package/dist/composite/composite-hover.d.ts +2 -0
  159. package/dist/composite/composite-hover.js +114 -0
  160. package/dist/composite/composite-hover.js.map +1 -0
  161. package/dist/composite/composite-input.d.ts +55 -0
  162. package/dist/composite/composite-input.d.ts.map +1 -0
  163. package/dist/composite/composite-input.js +91 -0
  164. package/dist/composite/composite-input.js.map +1 -0
  165. package/dist/composite/composite-item-offscreen.d.ts +39 -0
  166. package/dist/composite/composite-item-offscreen.d.ts.map +1 -0
  167. package/dist/composite/composite-item-offscreen.js +72 -0
  168. package/dist/composite/composite-item-offscreen.js.map +1 -0
  169. package/dist/composite/composite-item.d.ts +2 -0
  170. package/dist/composite/composite-item.js +290 -0
  171. package/dist/composite/composite-item.js.map +1 -0
  172. package/dist/composite/composite-overflow-disclosure.d.ts +53 -0
  173. package/dist/composite/composite-overflow-disclosure.d.ts.map +1 -0
  174. package/dist/composite/composite-overflow-disclosure.js +84 -0
  175. package/dist/composite/composite-overflow-disclosure.js.map +1 -0
  176. package/dist/composite/composite-overflow-store.d.ts +38 -0
  177. package/dist/composite/composite-overflow-store.d.ts.map +1 -0
  178. package/dist/composite/composite-overflow-store.js +36 -0
  179. package/dist/composite/composite-overflow-store.js.map +1 -0
  180. package/dist/composite/composite-overflow.d.ts +54 -0
  181. package/dist/composite/composite-overflow.d.ts.map +1 -0
  182. package/dist/composite/composite-overflow.js +82 -0
  183. package/dist/composite/composite-overflow.js.map +1 -0
  184. package/dist/composite/composite-provider.d.ts +28 -0
  185. package/dist/composite/composite-provider.d.ts.map +1 -0
  186. package/dist/composite/composite-provider.js +15 -0
  187. package/dist/composite/composite-provider.js.map +1 -0
  188. package/dist/composite/composite-renderer.d.ts +329 -0
  189. package/dist/composite/composite-renderer.d.ts.map +1 -0
  190. package/dist/composite/composite-renderer.js +121 -0
  191. package/dist/composite/composite-renderer.js.map +1 -0
  192. package/dist/composite/composite-row.d.ts +67 -0
  193. package/dist/composite/composite-row.d.ts.map +1 -0
  194. package/dist/composite/composite-row.js +86 -0
  195. package/dist/composite/composite-row.js.map +1 -0
  196. package/dist/composite/composite-separator.d.ts +61 -0
  197. package/dist/composite/composite-separator.d.ts.map +1 -0
  198. package/dist/composite/composite-separator.js +55 -0
  199. package/dist/composite/composite-separator.js.map +1 -0
  200. package/dist/composite/composite-store.d.ts +2 -0
  201. package/dist/composite/composite-store.js +33 -0
  202. package/dist/composite/composite-store.js.map +1 -0
  203. package/dist/composite/composite-typeahead.d.ts +2 -0
  204. package/dist/composite/composite-typeahead.js +126 -0
  205. package/dist/composite/composite-typeahead.js.map +1 -0
  206. package/dist/composite/composite.d.ts +2 -0
  207. package/dist/composite/composite.js +273 -0
  208. package/dist/composite/composite.js.map +1 -0
  209. package/dist/composite/utils.d.ts +52 -0
  210. package/dist/composite/utils.d.ts.map +1 -0
  211. package/dist/composite/utils.js +93 -0
  212. package/dist/composite/utils.js.map +1 -0
  213. package/dist/composite-DLvyFHMq.d.ts +124 -0
  214. package/dist/composite-DLvyFHMq.d.ts.map +1 -0
  215. package/dist/composite-hover-C7ul163w.d.ts +103 -0
  216. package/dist/composite-hover-C7ul163w.d.ts.map +1 -0
  217. package/dist/composite-item-B4WTelVz.d.ts +141 -0
  218. package/dist/composite-item-B4WTelVz.d.ts.map +1 -0
  219. package/dist/composite-store-DyJc-XRA.d.ts +43 -0
  220. package/dist/composite-store-DyJc-XRA.d.ts.map +1 -0
  221. package/dist/composite-typeahead-DDhpyKqm.d.ts +63 -0
  222. package/dist/composite-typeahead-DDhpyKqm.d.ts.map +1 -0
  223. package/dist/dialog/dialog-backdrop.d.ts +16 -0
  224. package/dist/dialog/dialog-backdrop.d.ts.map +1 -0
  225. package/dist/dialog/dialog-backdrop.js +58 -0
  226. package/dist/dialog/dialog-backdrop.js.map +1 -0
  227. package/dist/dialog/dialog-context.d.ts +27 -0
  228. package/dist/dialog/dialog-context.d.ts.map +1 -0
  229. package/dist/dialog/dialog-context.js +30 -0
  230. package/dist/dialog/dialog-context.js.map +1 -0
  231. package/dist/dialog/dialog-description.d.ts +2 -0
  232. package/dist/dialog/dialog-description.js +53 -0
  233. package/dist/dialog/dialog-description.js.map +1 -0
  234. package/dist/dialog/dialog-disclosure.d.ts +2 -0
  235. package/dist/dialog/dialog-disclosure.js +52 -0
  236. package/dist/dialog/dialog-disclosure.js.map +1 -0
  237. package/dist/dialog/dialog-dismiss.d.ts +2 -0
  238. package/dist/dialog/dialog-dismiss.js +80 -0
  239. package/dist/dialog/dialog-dismiss.js.map +1 -0
  240. package/dist/dialog/dialog-heading.d.ts +2 -0
  241. package/dist/dialog/dialog-heading.js +54 -0
  242. package/dist/dialog/dialog-heading.js.map +1 -0
  243. package/dist/dialog/dialog-provider.d.ts +22 -0
  244. package/dist/dialog/dialog-provider.d.ts.map +1 -0
  245. package/dist/dialog/dialog-provider.js +26 -0
  246. package/dist/dialog/dialog-provider.js.map +1 -0
  247. package/dist/dialog/dialog-store.d.ts +2 -0
  248. package/dist/dialog/dialog-store.js +28 -0
  249. package/dist/dialog/dialog-store.js.map +1 -0
  250. package/dist/dialog/dialog.d.ts +2 -0
  251. package/dist/dialog/dialog.js +429 -0
  252. package/dist/dialog/dialog.js.map +1 -0
  253. package/dist/dialog/utils/disable-accessibility-tree-outside.d.ts +7 -0
  254. package/dist/dialog/utils/disable-accessibility-tree-outside.d.ts.map +1 -0
  255. package/dist/dialog/utils/disable-accessibility-tree-outside.js +24 -0
  256. package/dist/dialog/utils/disable-accessibility-tree-outside.js.map +1 -0
  257. package/dist/dialog/utils/disable-tree.d.ts +9 -0
  258. package/dist/dialog/utils/disable-tree.d.ts.map +1 -0
  259. package/dist/dialog/utils/disable-tree.js +48 -0
  260. package/dist/dialog/utils/disable-tree.js.map +1 -0
  261. package/dist/dialog/utils/is-backdrop.d.ts +5 -0
  262. package/dist/dialog/utils/is-backdrop.d.ts.map +1 -0
  263. package/dist/dialog/utils/is-backdrop.js +15 -0
  264. package/dist/dialog/utils/is-backdrop.js.map +1 -0
  265. package/dist/dialog/utils/is-focus-trap.d.ts +5 -0
  266. package/dist/dialog/utils/is-focus-trap.d.ts.map +1 -0
  267. package/dist/dialog/utils/is-focus-trap.js +14 -0
  268. package/dist/dialog/utils/is-focus-trap.js.map +1 -0
  269. package/dist/dialog/utils/mark-tree-outside.d.ts +9 -0
  270. package/dist/dialog/utils/mark-tree-outside.d.ts.map +1 -0
  271. package/dist/dialog/utils/mark-tree-outside.js +44 -0
  272. package/dist/dialog/utils/mark-tree-outside.js.map +1 -0
  273. package/dist/dialog/utils/orchestrate.d.ts +9 -0
  274. package/dist/dialog/utils/orchestrate.d.ts.map +1 -0
  275. package/dist/dialog/utils/orchestrate.js +77 -0
  276. package/dist/dialog/utils/orchestrate.js.map +1 -0
  277. package/dist/dialog/utils/prepend-hidden-dismiss.d.ts +5 -0
  278. package/dist/dialog/utils/prepend-hidden-dismiss.d.ts.map +1 -0
  279. package/dist/dialog/utils/prepend-hidden-dismiss.js +31 -0
  280. package/dist/dialog/utils/prepend-hidden-dismiss.js.map +1 -0
  281. package/dist/dialog/utils/supports-inert.d.ts +5 -0
  282. package/dist/dialog/utils/supports-inert.d.ts.map +1 -0
  283. package/dist/dialog/utils/supports-inert.js +9 -0
  284. package/dist/dialog/utils/supports-inert.js.map +1 -0
  285. package/dist/dialog/utils/use-hide-on-interact-outside.d.ts +9 -0
  286. package/dist/dialog/utils/use-hide-on-interact-outside.d.ts.map +1 -0
  287. package/dist/dialog/utils/use-hide-on-interact-outside.js +123 -0
  288. package/dist/dialog/utils/use-hide-on-interact-outside.js.map +1 -0
  289. package/dist/dialog/utils/use-nested-dialogs.d.ts +11 -0
  290. package/dist/dialog/utils/use-nested-dialogs.d.ts.map +1 -0
  291. package/dist/dialog/utils/use-nested-dialogs.js +40 -0
  292. package/dist/dialog/utils/use-nested-dialogs.js.map +1 -0
  293. package/dist/dialog/utils/use-prevent-body-scroll.d.ts +5 -0
  294. package/dist/dialog/utils/use-prevent-body-scroll.d.ts.map +1 -0
  295. package/dist/dialog/utils/use-prevent-body-scroll.js +60 -0
  296. package/dist/dialog/utils/use-prevent-body-scroll.js.map +1 -0
  297. package/dist/dialog/utils/use-previous-mouse-down-ref.d.ts +5 -0
  298. package/dist/dialog/utils/use-previous-mouse-down-ref.d.ts.map +1 -0
  299. package/dist/dialog/utils/use-previous-mouse-down-ref.js +22 -0
  300. package/dist/dialog/utils/use-previous-mouse-down-ref.js.map +1 -0
  301. package/dist/dialog/utils/use-root-dialog.d.ts +16 -0
  302. package/dist/dialog/utils/use-root-dialog.d.ts.map +1 -0
  303. package/dist/dialog/utils/use-root-dialog.js +47 -0
  304. package/dist/dialog/utils/use-root-dialog.js.map +1 -0
  305. package/dist/dialog/utils/walk-tree-outside.d.ts +8 -0
  306. package/dist/dialog/utils/walk-tree-outside.d.ts.map +1 -0
  307. package/dist/dialog/utils/walk-tree-outside.js +58 -0
  308. package/dist/dialog/utils/walk-tree-outside.js.map +1 -0
  309. package/dist/dialog-C__C-zX2.d.ts +267 -0
  310. package/dist/dialog-C__C-zX2.d.ts.map +1 -0
  311. package/dist/dialog-description-BCZJ1Kyd.d.ts +48 -0
  312. package/dist/dialog-description-BCZJ1Kyd.d.ts.map +1 -0
  313. package/dist/dialog-disclosure-DLD10zlb.d.ts +47 -0
  314. package/dist/dialog-disclosure-DLD10zlb.d.ts.map +1 -0
  315. package/dist/dialog-dismiss-CnwEbzc6.d.ts +48 -0
  316. package/dist/dialog-dismiss-CnwEbzc6.d.ts.map +1 -0
  317. package/dist/dialog-heading-DQvnOfZH.d.ts +49 -0
  318. package/dist/dialog-heading-DQvnOfZH.d.ts.map +1 -0
  319. package/dist/dialog-store-Cjt12T_Y.d.ts +29 -0
  320. package/dist/dialog-store-Cjt12T_Y.d.ts.map +1 -0
  321. package/dist/disclosure/disclosure-content.d.ts +2 -0
  322. package/dist/disclosure/disclosure-content.js +171 -0
  323. package/dist/disclosure/disclosure-content.js.map +1 -0
  324. package/dist/disclosure/disclosure-context.d.ts +24 -0
  325. package/dist/disclosure/disclosure-context.d.ts.map +1 -0
  326. package/dist/disclosure/disclosure-context.js +26 -0
  327. package/dist/disclosure/disclosure-context.js.map +1 -0
  328. package/dist/disclosure/disclosure-provider.d.ts +23 -0
  329. package/dist/disclosure/disclosure-provider.d.ts.map +1 -0
  330. package/dist/disclosure/disclosure-provider.js +27 -0
  331. package/dist/disclosure/disclosure-provider.js.map +1 -0
  332. package/dist/disclosure/disclosure-store.d.ts +2 -0
  333. package/dist/disclosure/disclosure-store.js +32 -0
  334. package/dist/disclosure/disclosure-store.js.map +1 -0
  335. package/dist/disclosure/disclosure.d.ts +2 -0
  336. package/dist/disclosure/disclosure.js +83 -0
  337. package/dist/disclosure/disclosure.js.map +1 -0
  338. package/dist/disclosure-CQ37hPVP.d.ts +60 -0
  339. package/dist/disclosure-CQ37hPVP.d.ts.map +1 -0
  340. package/dist/disclosure-content-BbPkZgAc.d.ts +88 -0
  341. package/dist/disclosure-content-BbPkZgAc.d.ts.map +1 -0
  342. package/dist/disclosure-store-BsaBaRKv.d.ts +58 -0
  343. package/dist/disclosure-store-BsaBaRKv.d.ts.map +1 -0
  344. package/dist/focus-trap/focus-trap-region.d.ts +42 -0
  345. package/dist/focus-trap/focus-trap-region.d.ts.map +1 -0
  346. package/dist/focus-trap/focus-trap-region.js +69 -0
  347. package/dist/focus-trap/focus-trap-region.js.map +1 -0
  348. package/dist/focus-trap/focus-trap.d.ts +31 -0
  349. package/dist/focus-trap/focus-trap.d.ts.map +1 -0
  350. package/dist/focus-trap/focus-trap.js +45 -0
  351. package/dist/focus-trap/focus-trap.js.map +1 -0
  352. package/dist/focusable/focusable-container.d.ts +43 -0
  353. package/dist/focusable/focusable-container.d.ts.map +1 -0
  354. package/dist/focusable/focusable-container.js +41 -0
  355. package/dist/focusable/focusable-container.js.map +1 -0
  356. package/dist/focusable/focusable-context.d.ts +5 -0
  357. package/dist/focusable/focusable-context.d.ts.map +1 -0
  358. package/dist/focusable/focusable-context.js +8 -0
  359. package/dist/focusable/focusable-context.js.map +1 -0
  360. package/dist/focusable/focusable.d.ts +2 -0
  361. package/dist/focusable/focusable.js +273 -0
  362. package/dist/focusable/focusable.js.map +1 -0
  363. package/dist/focusable-B00tOxtB.d.ts +142 -0
  364. package/dist/focusable-B00tOxtB.d.ts.map +1 -0
  365. package/dist/form/form-checkbox.d.ts +50 -0
  366. package/dist/form/form-checkbox.d.ts.map +1 -0
  367. package/dist/form/form-checkbox.js +73 -0
  368. package/dist/form/form-checkbox.js.map +1 -0
  369. package/dist/form/form-context.d.ts +24 -0
  370. package/dist/form/form-context.d.ts.map +1 -0
  371. package/dist/form/form-context.js +27 -0
  372. package/dist/form/form-context.js.map +1 -0
  373. package/dist/form/form-control.d.ts +100 -0
  374. package/dist/form/form-control.d.ts.map +1 -0
  375. package/dist/form/form-control.js +139 -0
  376. package/dist/form/form-control.js.map +1 -0
  377. package/dist/form/form-description.d.ts +73 -0
  378. package/dist/form/form-description.d.ts.map +1 -0
  379. package/dist/form/form-description.js +83 -0
  380. package/dist/form/form-description.js.map +1 -0
  381. package/dist/form/form-error.d.ts +82 -0
  382. package/dist/form/form-error.d.ts.map +1 -0
  383. package/dist/form/form-error.js +102 -0
  384. package/dist/form/form-error.js.map +1 -0
  385. package/dist/form/form-field.d.ts +73 -0
  386. package/dist/form/form-field.d.ts.map +1 -0
  387. package/dist/form/form-field.js +74 -0
  388. package/dist/form/form-field.js.map +1 -0
  389. package/dist/form/form-group-label.d.ts +62 -0
  390. package/dist/form/form-group-label.d.ts.map +1 -0
  391. package/dist/form/form-group-label.js +54 -0
  392. package/dist/form/form-group-label.js.map +1 -0
  393. package/dist/form/form-group.d.ts +64 -0
  394. package/dist/form/form-group.d.ts.map +1 -0
  395. package/dist/form/form-group.js +56 -0
  396. package/dist/form/form-group.js.map +1 -0
  397. package/dist/form/form-input.d.ts +50 -0
  398. package/dist/form/form-input.d.ts.map +1 -0
  399. package/dist/form/form-input.js +74 -0
  400. package/dist/form/form-input.js.map +1 -0
  401. package/dist/form/form-label.d.ts +77 -0
  402. package/dist/form/form-label.d.ts.map +1 -0
  403. package/dist/form/form-label.js +120 -0
  404. package/dist/form/form-label.js.map +1 -0
  405. package/dist/form/form-provider.d.ts +28 -0
  406. package/dist/form/form-provider.d.ts.map +1 -0
  407. package/dist/form/form-provider.js +15 -0
  408. package/dist/form/form-provider.js.map +1 -0
  409. package/dist/form/form-push.d.ts +102 -0
  410. package/dist/form/form-push.d.ts.map +1 -0
  411. package/dist/form/form-push.js +134 -0
  412. package/dist/form/form-push.js.map +1 -0
  413. package/dist/form/form-radio-group.d.ts +56 -0
  414. package/dist/form/form-radio-group.d.ts.map +1 -0
  415. package/dist/form/form-radio-group.js +68 -0
  416. package/dist/form/form-radio-group.js.map +1 -0
  417. package/dist/form/form-radio.d.ts +58 -0
  418. package/dist/form/form-radio.d.ts.map +1 -0
  419. package/dist/form/form-radio.js +90 -0
  420. package/dist/form/form-radio.js.map +1 -0
  421. package/dist/form/form-remove.d.ts +102 -0
  422. package/dist/form/form-remove.d.ts.map +1 -0
  423. package/dist/form/form-remove.js +116 -0
  424. package/dist/form/form-remove.js.map +1 -0
  425. package/dist/form/form-reset.d.ts +51 -0
  426. package/dist/form/form-reset.d.ts.map +1 -0
  427. package/dist/form/form-reset.js +54 -0
  428. package/dist/form/form-reset.js.map +1 -0
  429. package/dist/form/form-store.d.ts +2 -0
  430. package/dist/form/form-store.js +41 -0
  431. package/dist/form/form-store.js.map +1 -0
  432. package/dist/form/form-submit.d.ts +57 -0
  433. package/dist/form/form-submit.d.ts.map +1 -0
  434. package/dist/form/form-submit.js +59 -0
  435. package/dist/form/form-submit.js.map +1 -0
  436. package/dist/form/form.d.ts +101 -0
  437. package/dist/form/form.d.ts.map +1 -0
  438. package/dist/form/form.js +146 -0
  439. package/dist/form/form.js.map +1 -0
  440. package/dist/form-store-C4Kf5QHm.d.ts +120 -0
  441. package/dist/form-store-C4Kf5QHm.d.ts.map +1 -0
  442. package/dist/group/group-label-context.d.ts +7 -0
  443. package/dist/group/group-label-context.d.ts.map +1 -0
  444. package/dist/group/group-label-context.js +8 -0
  445. package/dist/group/group-label-context.js.map +1 -0
  446. package/dist/group/group-label.d.ts +2 -0
  447. package/dist/group/group-label.js +52 -0
  448. package/dist/group/group-label.js.map +1 -0
  449. package/dist/group/group.d.ts +2 -0
  450. package/dist/group/group.js +47 -0
  451. package/dist/group/group.js.map +1 -0
  452. package/dist/group-CamegDJA.d.ts +32 -0
  453. package/dist/group-CamegDJA.d.ts.map +1 -0
  454. package/dist/group-label-C16IDs1b.d.ts +37 -0
  455. package/dist/group-label-C16IDs1b.d.ts.map +1 -0
  456. package/dist/heading/heading-context.d.ts +7 -0
  457. package/dist/heading/heading-context.d.ts.map +1 -0
  458. package/dist/heading/heading-context.js +8 -0
  459. package/dist/heading/heading-context.js.map +1 -0
  460. package/dist/heading/heading-level.d.ts +35 -0
  461. package/dist/heading/heading-level.d.ts.map +1 -0
  462. package/dist/heading/heading-level.js +33 -0
  463. package/dist/heading/heading-level.js.map +1 -0
  464. package/dist/heading/heading.d.ts +2 -0
  465. package/dist/heading/heading.js +56 -0
  466. package/dist/heading/heading.js.map +1 -0
  467. package/dist/heading/utils.d.ts +2 -0
  468. package/dist/heading/utils.js +1 -0
  469. package/dist/heading-zY9g_9K-.d.ts +42 -0
  470. package/dist/heading-zY9g_9K-.d.ts.map +1 -0
  471. package/dist/hovercard/hovercard-anchor.d.ts +59 -0
  472. package/dist/hovercard/hovercard-anchor.d.ts.map +1 -0
  473. package/dist/hovercard/hovercard-anchor.js +106 -0
  474. package/dist/hovercard/hovercard-anchor.js.map +1 -0
  475. package/dist/hovercard/hovercard-arrow.d.ts +54 -0
  476. package/dist/hovercard/hovercard-arrow.d.ts.map +1 -0
  477. package/dist/hovercard/hovercard-arrow.js +51 -0
  478. package/dist/hovercard/hovercard-arrow.js.map +1 -0
  479. package/dist/hovercard/hovercard-context.d.ts +24 -0
  480. package/dist/hovercard/hovercard-context.d.ts.map +1 -0
  481. package/dist/hovercard/hovercard-context.js +27 -0
  482. package/dist/hovercard/hovercard-context.js.map +1 -0
  483. package/dist/hovercard/hovercard-description.d.ts +51 -0
  484. package/dist/hovercard/hovercard-description.d.ts.map +1 -0
  485. package/dist/hovercard/hovercard-description.js +42 -0
  486. package/dist/hovercard/hovercard-description.js.map +1 -0
  487. package/dist/hovercard/hovercard-disclosure.d.ts +51 -0
  488. package/dist/hovercard/hovercard-disclosure.d.ts.map +1 -0
  489. package/dist/hovercard/hovercard-disclosure.js +122 -0
  490. package/dist/hovercard/hovercard-disclosure.js.map +1 -0
  491. package/dist/hovercard/hovercard-dismiss.d.ts +50 -0
  492. package/dist/hovercard/hovercard-dismiss.d.ts.map +1 -0
  493. package/dist/hovercard/hovercard-dismiss.js +47 -0
  494. package/dist/hovercard/hovercard-dismiss.js.map +1 -0
  495. package/dist/hovercard/hovercard-heading.d.ts +51 -0
  496. package/dist/hovercard/hovercard-heading.d.ts.map +1 -0
  497. package/dist/hovercard/hovercard-heading.js +42 -0
  498. package/dist/hovercard/hovercard-heading.js.map +1 -0
  499. package/dist/hovercard/hovercard-provider.d.ts +23 -0
  500. package/dist/hovercard/hovercard-provider.d.ts.map +1 -0
  501. package/dist/hovercard/hovercard-provider.js +27 -0
  502. package/dist/hovercard/hovercard-provider.js.map +1 -0
  503. package/dist/hovercard/hovercard-store.d.ts +2 -0
  504. package/dist/hovercard/hovercard-store.js +31 -0
  505. package/dist/hovercard/hovercard-store.js.map +1 -0
  506. package/dist/hovercard/hovercard.d.ts +80 -0
  507. package/dist/hovercard/hovercard.d.ts.map +1 -0
  508. package/dist/hovercard/hovercard.js +240 -0
  509. package/dist/hovercard/hovercard.js.map +1 -0
  510. package/dist/hovercard/utils/debug-polygon.d.ts +7 -0
  511. package/dist/hovercard/utils/debug-polygon.d.ts.map +1 -0
  512. package/dist/hovercard/utils/debug-polygon.js +33 -0
  513. package/dist/hovercard/utils/debug-polygon.js.map +1 -0
  514. package/dist/hovercard/utils/polygon.d.ts +9 -0
  515. package/dist/hovercard/utils/polygon.d.ts.map +1 -0
  516. package/dist/hovercard/utils/polygon.js +70 -0
  517. package/dist/hovercard/utils/polygon.js.map +1 -0
  518. package/dist/hovercard-store-gIeoQEn_.d.ts +30 -0
  519. package/dist/hovercard-store-gIeoQEn_.d.ts.map +1 -0
  520. package/dist/index.d.ts +5 -0
  521. package/dist/index.d.ts.map +1 -0
  522. package/dist/index.js +7 -0
  523. package/dist/index.js.map +1 -0
  524. package/dist/menu/menu-arrow.d.ts +52 -0
  525. package/dist/menu/menu-arrow.d.ts.map +1 -0
  526. package/dist/menu/menu-arrow.js +49 -0
  527. package/dist/menu/menu-arrow.js.map +1 -0
  528. package/dist/menu/menu-bar-provider.d.ts +35 -0
  529. package/dist/menu/menu-bar-provider.d.ts.map +1 -0
  530. package/dist/menu/menu-bar-provider.js +42 -0
  531. package/dist/menu/menu-bar-provider.js.map +1 -0
  532. package/dist/menu/menu-bar-store.d.ts +25 -0
  533. package/dist/menu/menu-bar-store.d.ts.map +1 -0
  534. package/dist/menu/menu-bar-store.js +28 -0
  535. package/dist/menu/menu-bar-store.js.map +1 -0
  536. package/dist/menu/menu-bar.d.ts +61 -0
  537. package/dist/menu/menu-bar.d.ts.map +1 -0
  538. package/dist/menu/menu-bar.js +66 -0
  539. package/dist/menu/menu-bar.js.map +1 -0
  540. package/dist/menu/menu-button-arrow.d.ts +65 -0
  541. package/dist/menu/menu-button-arrow.d.ts.map +1 -0
  542. package/dist/menu/menu-button-arrow.js +62 -0
  543. package/dist/menu/menu-button-arrow.js.map +1 -0
  544. package/dist/menu/menu-button.d.ts +67 -0
  545. package/dist/menu/menu-button.d.ts.map +1 -0
  546. package/dist/menu/menu-button.js +183 -0
  547. package/dist/menu/menu-button.js.map +1 -0
  548. package/dist/menu/menu-context.d.ts +47 -0
  549. package/dist/menu/menu-context.d.ts.map +1 -0
  550. package/dist/menu/menu-context.js +52 -0
  551. package/dist/menu/menu-context.js.map +1 -0
  552. package/dist/menu/menu-description.d.ts +50 -0
  553. package/dist/menu/menu-description.d.ts.map +1 -0
  554. package/dist/menu/menu-description.js +42 -0
  555. package/dist/menu/menu-description.js.map +1 -0
  556. package/dist/menu/menu-dismiss.d.ts +49 -0
  557. package/dist/menu/menu-dismiss.d.ts.map +1 -0
  558. package/dist/menu/menu-dismiss.js +47 -0
  559. package/dist/menu/menu-dismiss.js.map +1 -0
  560. package/dist/menu/menu-group-label.d.ts +55 -0
  561. package/dist/menu/menu-group-label.d.ts.map +1 -0
  562. package/dist/menu/menu-group-label.js +47 -0
  563. package/dist/menu/menu-group-label.js.map +1 -0
  564. package/dist/menu/menu-group.d.ts +61 -0
  565. package/dist/menu/menu-group.d.ts.map +1 -0
  566. package/dist/menu/menu-group.js +53 -0
  567. package/dist/menu/menu-group.js.map +1 -0
  568. package/dist/menu/menu-heading.d.ts +50 -0
  569. package/dist/menu/menu-heading.d.ts.map +1 -0
  570. package/dist/menu/menu-heading.js +42 -0
  571. package/dist/menu/menu-heading.js.map +1 -0
  572. package/dist/menu/menu-item-check.d.ts +58 -0
  573. package/dist/menu/menu-item-check.d.ts.map +1 -0
  574. package/dist/menu/menu-item-check.js +60 -0
  575. package/dist/menu/menu-item-check.js.map +1 -0
  576. package/dist/menu/menu-item-checkbox.d.ts +104 -0
  577. package/dist/menu/menu-item-checkbox.d.ts.map +1 -0
  578. package/dist/menu/menu-item-checkbox.js +151 -0
  579. package/dist/menu/menu-item-checkbox.js.map +1 -0
  580. package/dist/menu/menu-item-radio.d.ts +91 -0
  581. package/dist/menu/menu-item-radio.d.ts.map +1 -0
  582. package/dist/menu/menu-item-radio.js +121 -0
  583. package/dist/menu/menu-item-radio.js.map +1 -0
  584. package/dist/menu/menu-item.d.ts +75 -0
  585. package/dist/menu/menu-item.d.ts.map +1 -0
  586. package/dist/menu/menu-item.js +122 -0
  587. package/dist/menu/menu-item.js.map +1 -0
  588. package/dist/menu/menu-list.d.ts +59 -0
  589. package/dist/menu/menu-list.d.ts.map +1 -0
  590. package/dist/menu/menu-list.js +168 -0
  591. package/dist/menu/menu-list.js.map +1 -0
  592. package/dist/menu/menu-provider.d.ts +29 -0
  593. package/dist/menu/menu-provider.d.ts.map +1 -0
  594. package/dist/menu/menu-provider.js +15 -0
  595. package/dist/menu/menu-provider.js.map +1 -0
  596. package/dist/menu/menu-separator.d.ts +59 -0
  597. package/dist/menu/menu-separator.d.ts.map +1 -0
  598. package/dist/menu/menu-separator.js +57 -0
  599. package/dist/menu/menu-separator.js.map +1 -0
  600. package/dist/menu/menu-store.d.ts +2 -0
  601. package/dist/menu/menu-store.js +40 -0
  602. package/dist/menu/menu-store.js.map +1 -0
  603. package/dist/menu/menu.d.ts +49 -0
  604. package/dist/menu/menu.d.ts.map +1 -0
  605. package/dist/menu/menu.js +169 -0
  606. package/dist/menu/menu.js.map +1 -0
  607. package/dist/menu-store-0CKKmNek.d.ts +83 -0
  608. package/dist/menu-store-0CKKmNek.d.ts.map +1 -0
  609. package/dist/menubar/menubar-context.d.ts +25 -0
  610. package/dist/menubar/menubar-context.d.ts.map +1 -0
  611. package/dist/menubar/menubar-context.js +29 -0
  612. package/dist/menubar/menubar-context.js.map +1 -0
  613. package/dist/menubar/menubar-provider.d.ts +37 -0
  614. package/dist/menubar/menubar-provider.d.ts.map +1 -0
  615. package/dist/menubar/menubar-provider.js +41 -0
  616. package/dist/menubar/menubar-provider.js.map +1 -0
  617. package/dist/menubar/menubar-store.d.ts +2 -0
  618. package/dist/menubar/menubar-store.js +27 -0
  619. package/dist/menubar/menubar-store.js.map +1 -0
  620. package/dist/menubar/menubar.d.ts +71 -0
  621. package/dist/menubar/menubar.d.ts.map +1 -0
  622. package/dist/menubar/menubar.js +88 -0
  623. package/dist/menubar/menubar.js.map +1 -0
  624. package/dist/menubar-store-3h0eNIbS.d.ts +26 -0
  625. package/dist/menubar-store-3h0eNIbS.d.ts.map +1 -0
  626. package/dist/popover/popover-anchor.d.ts +2 -0
  627. package/dist/popover/popover-anchor.js +45 -0
  628. package/dist/popover/popover-anchor.js.map +1 -0
  629. package/dist/popover/popover-arrow-path.d.ts +5 -0
  630. package/dist/popover/popover-arrow-path.d.ts.map +1 -0
  631. package/dist/popover/popover-arrow-path.js +7 -0
  632. package/dist/popover/popover-arrow-path.js.map +1 -0
  633. package/dist/popover/popover-arrow.d.ts +65 -0
  634. package/dist/popover/popover-arrow.d.ts.map +1 -0
  635. package/dist/popover/popover-arrow.js +160 -0
  636. package/dist/popover/popover-arrow.js.map +1 -0
  637. package/dist/popover/popover-context.d.ts +24 -0
  638. package/dist/popover/popover-context.d.ts.map +1 -0
  639. package/dist/popover/popover-context.js +27 -0
  640. package/dist/popover/popover-context.js.map +1 -0
  641. package/dist/popover/popover-description.d.ts +2 -0
  642. package/dist/popover/popover-description.js +42 -0
  643. package/dist/popover/popover-description.js.map +1 -0
  644. package/dist/popover/popover-disclosure-arrow.d.ts +62 -0
  645. package/dist/popover/popover-disclosure-arrow.d.ts.map +1 -0
  646. package/dist/popover/popover-disclosure-arrow.js +81 -0
  647. package/dist/popover/popover-disclosure-arrow.js.map +1 -0
  648. package/dist/popover/popover-disclosure.d.ts +38 -0
  649. package/dist/popover/popover-disclosure.d.ts.map +1 -0
  650. package/dist/popover/popover-disclosure.js +66 -0
  651. package/dist/popover/popover-disclosure.js.map +1 -0
  652. package/dist/popover/popover-dismiss.d.ts +2 -0
  653. package/dist/popover/popover-dismiss.js +47 -0
  654. package/dist/popover/popover-dismiss.js.map +1 -0
  655. package/dist/popover/popover-heading.d.ts +2 -0
  656. package/dist/popover/popover-heading.js +42 -0
  657. package/dist/popover/popover-heading.js.map +1 -0
  658. package/dist/popover/popover-provider.d.ts +23 -0
  659. package/dist/popover/popover-provider.d.ts.map +1 -0
  660. package/dist/popover/popover-provider.js +27 -0
  661. package/dist/popover/popover-provider.js.map +1 -0
  662. package/dist/popover/popover-store.d.ts +2 -0
  663. package/dist/popover/popover-store.js +30 -0
  664. package/dist/popover/popover-store.js.map +1 -0
  665. package/dist/popover/popover.d.ts +2 -0
  666. package/dist/popover/popover.js +312 -0
  667. package/dist/popover/popover.js.map +1 -0
  668. package/dist/popover-CCqiRKqg.d.ts +181 -0
  669. package/dist/popover-CCqiRKqg.d.ts.map +1 -0
  670. package/dist/popover-anchor-PgfeXyzs.d.ts +47 -0
  671. package/dist/popover-anchor-PgfeXyzs.d.ts.map +1 -0
  672. package/dist/popover-description-DU753dah.d.ts +51 -0
  673. package/dist/popover-description-DU753dah.d.ts.map +1 -0
  674. package/dist/popover-dismiss-DPeI6Zse.d.ts +50 -0
  675. package/dist/popover-dismiss-DPeI6Zse.d.ts.map +1 -0
  676. package/dist/popover-heading-DGsr6D5W.d.ts +51 -0
  677. package/dist/popover-heading-DGsr6D5W.d.ts.map +1 -0
  678. package/dist/popover-store-Bc-l5VVO.d.ts +29 -0
  679. package/dist/popover-store-Bc-l5VVO.d.ts.map +1 -0
  680. package/dist/portal/portal-context.d.ts +21 -0
  681. package/dist/portal/portal-context.d.ts.map +1 -0
  682. package/dist/portal/portal-context.js +24 -0
  683. package/dist/portal/portal-context.js.map +1 -0
  684. package/dist/portal/portal.d.ts +2 -0
  685. package/dist/portal/portal.js +242 -0
  686. package/dist/portal/portal.js.map +1 -0
  687. package/dist/portal-CMBWiayp.d.ts +149 -0
  688. package/dist/portal-CMBWiayp.d.ts.map +1 -0
  689. package/dist/radio/radio-context.d.ts +24 -0
  690. package/dist/radio/radio-context.d.ts.map +1 -0
  691. package/dist/radio/radio-context.js +27 -0
  692. package/dist/radio/radio-context.js.map +1 -0
  693. package/dist/radio/radio-group.d.ts +51 -0
  694. package/dist/radio/radio-group.d.ts.map +1 -0
  695. package/dist/radio/radio-group.js +60 -0
  696. package/dist/radio/radio-group.js.map +1 -0
  697. package/dist/radio/radio-provider.d.ts +25 -0
  698. package/dist/radio/radio-provider.d.ts.map +1 -0
  699. package/dist/radio/radio-provider.js +29 -0
  700. package/dist/radio/radio-provider.js.map +1 -0
  701. package/dist/radio/radio-store.d.ts +2 -0
  702. package/dist/radio/radio-store.js +33 -0
  703. package/dist/radio/radio-store.js.map +1 -0
  704. package/dist/radio/radio.d.ts +76 -0
  705. package/dist/radio/radio.d.ts.map +1 -0
  706. package/dist/radio/radio.js +143 -0
  707. package/dist/radio/radio.js.map +1 -0
  708. package/dist/radio-store-DOZ_1RSk.d.ts +36 -0
  709. package/dist/radio-store-DOZ_1RSk.d.ts.map +1 -0
  710. package/dist/role/role.d.ts +34 -0
  711. package/dist/role/role.d.ts.map +1 -0
  712. package/dist/role/role.js +68 -0
  713. package/dist/role/role.js.map +1 -0
  714. package/dist/select/select-arrow.d.ts +60 -0
  715. package/dist/select/select-arrow.d.ts.map +1 -0
  716. package/dist/select/select-arrow.js +58 -0
  717. package/dist/select/select-arrow.js.map +1 -0
  718. package/dist/select/select-context.d.ts +27 -0
  719. package/dist/select/select-context.d.ts.map +1 -0
  720. package/dist/select/select-context.js +31 -0
  721. package/dist/select/select-context.js.map +1 -0
  722. package/dist/select/select-dismiss.d.ts +59 -0
  723. package/dist/select/select-dismiss.d.ts.map +1 -0
  724. package/dist/select/select-dismiss.js +56 -0
  725. package/dist/select/select-dismiss.js.map +1 -0
  726. package/dist/select/select-group-label.d.ts +61 -0
  727. package/dist/select/select-group-label.d.ts.map +1 -0
  728. package/dist/select/select-group-label.js +52 -0
  729. package/dist/select/select-group-label.js.map +1 -0
  730. package/dist/select/select-group.d.ts +62 -0
  731. package/dist/select/select-group.d.ts.map +1 -0
  732. package/dist/select/select-group.js +53 -0
  733. package/dist/select/select-group.js.map +1 -0
  734. package/dist/select/select-heading.d.ts +59 -0
  735. package/dist/select/select-heading.d.ts.map +1 -0
  736. package/dist/select/select-heading.js +62 -0
  737. package/dist/select/select-heading.js.map +1 -0
  738. package/dist/select/select-item-check.d.ts +59 -0
  739. package/dist/select/select-item-check.d.ts.map +1 -0
  740. package/dist/select/select-item-check.js +61 -0
  741. package/dist/select/select-item-check.js.map +1 -0
  742. package/dist/select/select-item-offscreen.d.ts +37 -0
  743. package/dist/select/select-item-offscreen.d.ts.map +1 -0
  744. package/dist/select/select-item-offscreen.js +38 -0
  745. package/dist/select/select-item-offscreen.js.map +1 -0
  746. package/dist/select/select-item.d.ts +108 -0
  747. package/dist/select/select-item.d.ts.map +1 -0
  748. package/dist/select/select-item.js +143 -0
  749. package/dist/select/select-item.js.map +1 -0
  750. package/dist/select/select-label.d.ts +55 -0
  751. package/dist/select/select-label.d.ts.map +1 -0
  752. package/dist/select/select-label.js +70 -0
  753. package/dist/select/select-label.js.map +1 -0
  754. package/dist/select/select-list.d.ts +80 -0
  755. package/dist/select/select-list.d.ts.map +1 -0
  756. package/dist/select/select-list.js +143 -0
  757. package/dist/select/select-list.js.map +1 -0
  758. package/dist/select/select-popover.d.ts +44 -0
  759. package/dist/select/select-popover.d.ts.map +1 -0
  760. package/dist/select/select-popover.js +59 -0
  761. package/dist/select/select-popover.js.map +1 -0
  762. package/dist/select/select-provider.d.ts +30 -0
  763. package/dist/select/select-provider.d.ts.map +1 -0
  764. package/dist/select/select-provider.js +15 -0
  765. package/dist/select/select-provider.js.map +1 -0
  766. package/dist/select/select-renderer.d.ts +44 -0
  767. package/dist/select/select-renderer.d.ts.map +1 -0
  768. package/dist/select/select-renderer.js +61 -0
  769. package/dist/select/select-renderer.js.map +1 -0
  770. package/dist/select/select-row.d.ts +63 -0
  771. package/dist/select/select-row.d.ts.map +1 -0
  772. package/dist/select/select-row.js +67 -0
  773. package/dist/select/select-row.js.map +1 -0
  774. package/dist/select/select-separator.d.ts +60 -0
  775. package/dist/select/select-separator.d.ts.map +1 -0
  776. package/dist/select/select-separator.js +57 -0
  777. package/dist/select/select-separator.js.map +1 -0
  778. package/dist/select/select-store.d.ts +2 -0
  779. package/dist/select/select-store.js +31 -0
  780. package/dist/select/select-store.js.map +1 -0
  781. package/dist/select/select-value.d.ts +84 -0
  782. package/dist/select/select-value.d.ts.map +1 -0
  783. package/dist/select/select-value.js +18 -0
  784. package/dist/select/select-value.js.map +1 -0
  785. package/dist/select/select.d.ts +89 -0
  786. package/dist/select/select.d.ts.map +1 -0
  787. package/dist/select/select.js +211 -0
  788. package/dist/select/select.js.map +1 -0
  789. package/dist/select-store-BsLTAyKh.d.ts +68 -0
  790. package/dist/select-store-BsLTAyKh.d.ts.map +1 -0
  791. package/dist/separator/separator.d.ts +2 -0
  792. package/dist/separator/separator.js +36 -0
  793. package/dist/separator/separator.js.map +1 -0
  794. package/dist/separator--ozQfMcK.d.ts +36 -0
  795. package/dist/separator--ozQfMcK.d.ts.map +1 -0
  796. package/dist/store.d.ts +1 -0
  797. package/dist/store.js +2 -0
  798. package/dist/tab/tab-context.d.ts +24 -0
  799. package/dist/tab/tab-context.d.ts.map +1 -0
  800. package/dist/tab/tab-context.js +27 -0
  801. package/dist/tab/tab-context.js.map +1 -0
  802. package/dist/tab/tab-list.d.ts +55 -0
  803. package/dist/tab/tab-list.d.ts.map +1 -0
  804. package/dist/tab/tab-list.js +71 -0
  805. package/dist/tab/tab-list.js.map +1 -0
  806. package/dist/tab/tab-panel.d.ts +122 -0
  807. package/dist/tab/tab-panel.d.ts.map +1 -0
  808. package/dist/tab/tab-panel.js +169 -0
  809. package/dist/tab/tab-panel.js.map +1 -0
  810. package/dist/tab/tab-provider.d.ts +26 -0
  811. package/dist/tab/tab-provider.d.ts.map +1 -0
  812. package/dist/tab/tab-provider.js +30 -0
  813. package/dist/tab/tab-provider.js.map +1 -0
  814. package/dist/tab/tab-store.d.ts +77 -0
  815. package/dist/tab/tab-store.d.ts.map +1 -0
  816. package/dist/tab/tab-store.js +55 -0
  817. package/dist/tab/tab-store.js.map +1 -0
  818. package/dist/tab/tab.d.ts +56 -0
  819. package/dist/tab/tab.d.ts.map +1 -0
  820. package/dist/tab/tab.js +115 -0
  821. package/dist/tab/tab.js.map +1 -0
  822. package/dist/tag/tag-context.d.ts +26 -0
  823. package/dist/tag/tag-context.d.ts.map +1 -0
  824. package/dist/tag/tag-context.js +30 -0
  825. package/dist/tag/tag-context.js.map +1 -0
  826. package/dist/tag/tag-input.d.ts +126 -0
  827. package/dist/tag/tag-input.d.ts.map +1 -0
  828. package/dist/tag/tag-input.js +162 -0
  829. package/dist/tag/tag-input.js.map +1 -0
  830. package/dist/tag/tag-list-label.d.ts +59 -0
  831. package/dist/tag/tag-list-label.d.ts.map +1 -0
  832. package/dist/tag/tag-list-label.js +62 -0
  833. package/dist/tag/tag-list-label.js.map +1 -0
  834. package/dist/tag/tag-list.d.ts +62 -0
  835. package/dist/tag/tag-list.d.ts.map +1 -0
  836. package/dist/tag/tag-list.js +127 -0
  837. package/dist/tag/tag-list.js.map +1 -0
  838. package/dist/tag/tag-provider.d.ts +34 -0
  839. package/dist/tag/tag-provider.d.ts.map +1 -0
  840. package/dist/tag/tag-provider.js +38 -0
  841. package/dist/tag/tag-provider.js.map +1 -0
  842. package/dist/tag/tag-remove.d.ts +71 -0
  843. package/dist/tag/tag-remove.d.ts.map +1 -0
  844. package/dist/tag/tag-remove.js +102 -0
  845. package/dist/tag/tag-remove.js.map +1 -0
  846. package/dist/tag/tag-store.d.ts +2 -0
  847. package/dist/tag/tag-store.js +38 -0
  848. package/dist/tag/tag-store.js.map +1 -0
  849. package/dist/tag/tag-value.d.ts +49 -0
  850. package/dist/tag/tag-value.d.ts.map +1 -0
  851. package/dist/tag/tag-value.js +40 -0
  852. package/dist/tag/tag-value.js.map +1 -0
  853. package/dist/tag/tag-values.d.ts +60 -0
  854. package/dist/tag/tag-values.d.ts.map +1 -0
  855. package/dist/tag/tag-values.js +50 -0
  856. package/dist/tag/tag-values.js.map +1 -0
  857. package/dist/tag/tag.d.ts +78 -0
  858. package/dist/tag/tag.d.ts.map +1 -0
  859. package/dist/tag/tag.js +114 -0
  860. package/dist/tag/tag.js.map +1 -0
  861. package/dist/tag/utils.d.ts +5 -0
  862. package/dist/tag/utils.d.ts.map +1 -0
  863. package/dist/tag/utils.js +15 -0
  864. package/dist/tag/utils.js.map +1 -0
  865. package/dist/tag-store-xANOvuGo.d.ts +49 -0
  866. package/dist/tag-store-xANOvuGo.d.ts.map +1 -0
  867. package/dist/toolbar/toolbar-container.d.ts +41 -0
  868. package/dist/toolbar/toolbar-container.d.ts.map +1 -0
  869. package/dist/toolbar/toolbar-container.js +53 -0
  870. package/dist/toolbar/toolbar-container.js.map +1 -0
  871. package/dist/toolbar/toolbar-context.d.ts +24 -0
  872. package/dist/toolbar/toolbar-context.d.ts.map +1 -0
  873. package/dist/toolbar/toolbar-context.js +27 -0
  874. package/dist/toolbar/toolbar-context.js.map +1 -0
  875. package/dist/toolbar/toolbar-input.d.ts +39 -0
  876. package/dist/toolbar/toolbar-input.d.ts.map +1 -0
  877. package/dist/toolbar/toolbar-input.js +47 -0
  878. package/dist/toolbar/toolbar-input.js.map +1 -0
  879. package/dist/toolbar/toolbar-item.d.ts +47 -0
  880. package/dist/toolbar/toolbar-item.d.ts.map +1 -0
  881. package/dist/toolbar/toolbar-item.js +45 -0
  882. package/dist/toolbar/toolbar-item.js.map +1 -0
  883. package/dist/toolbar/toolbar-provider.d.ts +26 -0
  884. package/dist/toolbar/toolbar-provider.d.ts.map +1 -0
  885. package/dist/toolbar/toolbar-provider.js +30 -0
  886. package/dist/toolbar/toolbar-provider.js.map +1 -0
  887. package/dist/toolbar/toolbar-separator.d.ts +51 -0
  888. package/dist/toolbar/toolbar-separator.d.ts.map +1 -0
  889. package/dist/toolbar/toolbar-separator.js +49 -0
  890. package/dist/toolbar/toolbar-separator.js.map +1 -0
  891. package/dist/toolbar/toolbar-store.d.ts +2 -0
  892. package/dist/toolbar/toolbar-store.js +31 -0
  893. package/dist/toolbar/toolbar-store.js.map +1 -0
  894. package/dist/toolbar/toolbar.d.ts +50 -0
  895. package/dist/toolbar/toolbar.d.ts.map +1 -0
  896. package/dist/toolbar/toolbar.js +66 -0
  897. package/dist/toolbar/toolbar.js.map +1 -0
  898. package/dist/toolbar-store-Cs-9cGHx.d.ts +30 -0
  899. package/dist/toolbar-store-Cs-9cGHx.d.ts.map +1 -0
  900. package/dist/tooltip/tooltip-anchor.d.ts +53 -0
  901. package/dist/tooltip/tooltip-anchor.d.ts.map +1 -0
  902. package/dist/tooltip/tooltip-anchor.js +121 -0
  903. package/dist/tooltip/tooltip-anchor.js.map +1 -0
  904. package/dist/tooltip/tooltip-arrow.d.ts +54 -0
  905. package/dist/tooltip/tooltip-arrow.d.ts.map +1 -0
  906. package/dist/tooltip/tooltip-arrow.js +54 -0
  907. package/dist/tooltip/tooltip-arrow.js.map +1 -0
  908. package/dist/tooltip/tooltip-context.d.ts +24 -0
  909. package/dist/tooltip/tooltip-context.d.ts.map +1 -0
  910. package/dist/tooltip/tooltip-context.js +27 -0
  911. package/dist/tooltip/tooltip-context.js.map +1 -0
  912. package/dist/tooltip/tooltip-provider.d.ts +23 -0
  913. package/dist/tooltip/tooltip-provider.d.ts.map +1 -0
  914. package/dist/tooltip/tooltip-provider.js +27 -0
  915. package/dist/tooltip/tooltip-provider.js.map +1 -0
  916. package/dist/tooltip/tooltip-store.d.ts +30 -0
  917. package/dist/tooltip/tooltip-store.d.ts.map +1 -0
  918. package/dist/tooltip/tooltip-store.js +30 -0
  919. package/dist/tooltip/tooltip-store.js.map +1 -0
  920. package/dist/tooltip/tooltip.d.ts +61 -0
  921. package/dist/tooltip/tooltip.d.ts.map +1 -0
  922. package/dist/tooltip/tooltip.js +81 -0
  923. package/dist/tooltip/tooltip.js.map +1 -0
  924. package/dist/utils-DUF1aMov.d.ts +5 -0
  925. package/dist/utils-DUF1aMov.d.ts.map +1 -0
  926. package/dist/visually-hidden/visually-hidden.d.ts +37 -0
  927. package/dist/visually-hidden/visually-hidden.d.ts.map +1 -0
  928. package/dist/visually-hidden/visually-hidden.js +53 -0
  929. package/dist/visually-hidden/visually-hidden.js.map +1 -0
  930. package/license +21 -0
  931. package/package.json +936 -0
  932. package/readme.md +19 -0
  933. package/src/button/button.tsx +76 -0
  934. package/src/checkbox/checkbox-check.tsx +116 -0
  935. package/src/checkbox/checkbox-checked-context.tsx +3 -0
  936. package/src/checkbox/checkbox-context.tsx +27 -0
  937. package/src/checkbox/checkbox-provider.tsx +53 -0
  938. package/src/checkbox/checkbox-store.ts +76 -0
  939. package/src/checkbox/checkbox.tsx +271 -0
  940. package/src/collection/collection-context.tsx +27 -0
  941. package/src/collection/collection-item-offscreen.tsx +157 -0
  942. package/src/collection/collection-item.tsx +136 -0
  943. package/src/collection/collection-provider.tsx +47 -0
  944. package/src/collection/collection-renderer.tsx +994 -0
  945. package/src/collection/collection-store.ts +84 -0
  946. package/src/collection/collection.tsx +93 -0
  947. package/src/combobox/combobox-cancel.tsx +153 -0
  948. package/src/combobox/combobox-context.tsx +49 -0
  949. package/src/combobox/combobox-disclosure.tsx +162 -0
  950. package/src/combobox/combobox-group-label.tsx +74 -0
  951. package/src/combobox/combobox-group.tsx +100 -0
  952. package/src/combobox/combobox-item-check.tsx +83 -0
  953. package/src/combobox/combobox-item-offscreen.tsx +87 -0
  954. package/src/combobox/combobox-item-value.tsx +231 -0
  955. package/src/combobox/combobox-item.tsx +363 -0
  956. package/src/combobox/combobox-label.tsx +89 -0
  957. package/src/combobox/combobox-list.tsx +176 -0
  958. package/src/combobox/combobox-popover.tsx +179 -0
  959. package/src/combobox/combobox-provider.tsx +50 -0
  960. package/src/combobox/combobox-row.tsx +102 -0
  961. package/src/combobox/combobox-separator.tsx +90 -0
  962. package/src/combobox/combobox-store.ts +168 -0
  963. package/src/combobox/combobox-value.tsx +63 -0
  964. package/src/combobox/combobox.tsx +900 -0
  965. package/src/command/command.tsx +215 -0
  966. package/src/composite/composite-container.tsx +278 -0
  967. package/src/composite/composite-context.tsx +53 -0
  968. package/src/composite/composite-group-label.tsx +73 -0
  969. package/src/composite/composite-group.tsx +77 -0
  970. package/src/composite/composite-hover.tsx +230 -0
  971. package/src/composite/composite-input.tsx +147 -0
  972. package/src/composite/composite-item-offscreen.tsx +112 -0
  973. package/src/composite/composite-item.tsx +567 -0
  974. package/src/composite/composite-overflow-disclosure.ts +117 -0
  975. package/src/composite/composite-overflow-store.ts +61 -0
  976. package/src/composite/composite-overflow.tsx +123 -0
  977. package/src/composite/composite-provider.tsx +47 -0
  978. package/src/composite/composite-renderer.tsx +231 -0
  979. package/src/composite/composite-row.tsx +133 -0
  980. package/src/composite/composite-separator.tsx +96 -0
  981. package/src/composite/composite-store.ts +101 -0
  982. package/src/composite/composite-typeahead.tsx +246 -0
  983. package/src/composite/composite.tsx +592 -0
  984. package/src/composite/utils.ts +121 -0
  985. package/src/dialog/dialog-backdrop.tsx +71 -0
  986. package/src/dialog/dialog-context.tsx +43 -0
  987. package/src/dialog/dialog-description.tsx +86 -0
  988. package/src/dialog/dialog-disclosure.tsx +84 -0
  989. package/src/dialog/dialog-dismiss.tsx +113 -0
  990. package/src/dialog/dialog-heading.tsx +88 -0
  991. package/src/dialog/dialog-provider.tsx +28 -0
  992. package/src/dialog/dialog-store.ts +51 -0
  993. package/src/dialog/dialog.tsx +866 -0
  994. package/src/dialog/utils/disable-accessibility-tree-outside.ts +30 -0
  995. package/src/dialog/utils/disable-tree.ts +81 -0
  996. package/src/dialog/utils/is-backdrop.ts +12 -0
  997. package/src/dialog/utils/is-focus-trap.ts +11 -0
  998. package/src/dialog/utils/mark-tree-outside.ts +67 -0
  999. package/src/dialog/utils/orchestrate.ts +123 -0
  1000. package/src/dialog/utils/prepend-hidden-dismiss.ts +35 -0
  1001. package/src/dialog/utils/supports-inert.ts +5 -0
  1002. package/src/dialog/utils/use-hide-on-interact-outside.ts +181 -0
  1003. package/src/dialog/utils/use-nested-dialogs.tsx +55 -0
  1004. package/src/dialog/utils/use-prevent-body-scroll.ts +86 -0
  1005. package/src/dialog/utils/use-previous-mouse-down-ref.ts +19 -0
  1006. package/src/dialog/utils/use-root-dialog.ts +49 -0
  1007. package/src/dialog/utils/walk-tree-outside.ts +85 -0
  1008. package/src/disclosure/disclosure-content.tsx +344 -0
  1009. package/src/disclosure/disclosure-context.tsx +27 -0
  1010. package/src/disclosure/disclosure-provider.tsx +29 -0
  1011. package/src/disclosure/disclosure-store.ts +85 -0
  1012. package/src/disclosure/disclosure.tsx +144 -0
  1013. package/src/focus-trap/focus-trap-region.tsx +112 -0
  1014. package/src/focus-trap/focus-trap.tsx +60 -0
  1015. package/src/focusable/focusable-container.tsx +75 -0
  1016. package/src/focusable/focusable-context.tsx +3 -0
  1017. package/src/focusable/focusable.tsx +559 -0
  1018. package/src/form/form-checkbox.tsx +106 -0
  1019. package/src/form/form-context.tsx +34 -0
  1020. package/src/form/form-control.tsx +227 -0
  1021. package/src/form/form-description.tsx +142 -0
  1022. package/src/form/form-error.tsx +156 -0
  1023. package/src/form/form-field.tsx +94 -0
  1024. package/src/form/form-group-label.tsx +79 -0
  1025. package/src/form/form-group.tsx +79 -0
  1026. package/src/form/form-input.tsx +104 -0
  1027. package/src/form/form-label.tsx +192 -0
  1028. package/src/form/form-provider.tsx +49 -0
  1029. package/src/form/form-push.tsx +200 -0
  1030. package/src/form/form-radio-group.tsx +93 -0
  1031. package/src/form/form-radio.tsx +122 -0
  1032. package/src/form/form-remove.tsx +198 -0
  1033. package/src/form/form-reset.tsx +85 -0
  1034. package/src/form/form-store.ts +195 -0
  1035. package/src/form/form-submit.tsx +93 -0
  1036. package/src/form/form.tsx +249 -0
  1037. package/src/group/group-label-context.tsx +6 -0
  1038. package/src/group/group-label.tsx +75 -0
  1039. package/src/group/group.tsx +69 -0
  1040. package/src/heading/heading-context.tsx +4 -0
  1041. package/src/heading/heading-level.tsx +42 -0
  1042. package/src/heading/heading.tsx +81 -0
  1043. package/src/heading/utils.ts +1 -0
  1044. package/src/hovercard/hovercard-anchor.tsx +195 -0
  1045. package/src/hovercard/hovercard-arrow.tsx +74 -0
  1046. package/src/hovercard/hovercard-context.tsx +34 -0
  1047. package/src/hovercard/hovercard-description.tsx +69 -0
  1048. package/src/hovercard/hovercard-disclosure.tsx +196 -0
  1049. package/src/hovercard/hovercard-dismiss.tsx +70 -0
  1050. package/src/hovercard/hovercard-heading.tsx +68 -0
  1051. package/src/hovercard/hovercard-provider.tsx +29 -0
  1052. package/src/hovercard/hovercard-store.ts +58 -0
  1053. package/src/hovercard/hovercard.tsx +445 -0
  1054. package/src/hovercard/utils/__tests__/polygon-test.ts +66 -0
  1055. package/src/hovercard/utils/debug-polygon.ts +37 -0
  1056. package/src/hovercard/utils/polygon.ts +96 -0
  1057. package/src/index.ts +1 -0
  1058. package/src/menu/menu-arrow.tsx +69 -0
  1059. package/src/menu/menu-bar-provider.tsx +44 -0
  1060. package/src/menu/menu-bar-store.ts +54 -0
  1061. package/src/menu/menu-bar.tsx +84 -0
  1062. package/src/menu/menu-button-arrow.tsx +85 -0
  1063. package/src/menu/menu-button.tsx +338 -0
  1064. package/src/menu/menu-context.tsx +76 -0
  1065. package/src/menu/menu-description.tsx +67 -0
  1066. package/src/menu/menu-dismiss.tsx +69 -0
  1067. package/src/menu/menu-group-label.tsx +72 -0
  1068. package/src/menu/menu-group.tsx +76 -0
  1069. package/src/menu/menu-heading.tsx +67 -0
  1070. package/src/menu/menu-item-check.tsx +79 -0
  1071. package/src/menu/menu-item-checkbox.tsx +227 -0
  1072. package/src/menu/menu-item-radio.tsx +198 -0
  1073. package/src/menu/menu-item.tsx +223 -0
  1074. package/src/menu/menu-list.tsx +230 -0
  1075. package/src/menu/menu-provider.tsx +42 -0
  1076. package/src/menu/menu-separator.tsx +79 -0
  1077. package/src/menu/menu-store.ts +155 -0
  1078. package/src/menu/menu.tsx +274 -0
  1079. package/src/menubar/menubar-context.tsx +39 -0
  1080. package/src/menubar/menubar-provider.tsx +43 -0
  1081. package/src/menubar/menubar-store.ts +48 -0
  1082. package/src/menubar/menubar.tsx +145 -0
  1083. package/src/popover/popover-anchor.tsx +74 -0
  1084. package/src/popover/popover-arrow-path.ts +21 -0
  1085. package/src/popover/popover-arrow.tsx +228 -0
  1086. package/src/popover/popover-context.tsx +34 -0
  1087. package/src/popover/popover-description.tsx +69 -0
  1088. package/src/popover/popover-disclosure-arrow.tsx +135 -0
  1089. package/src/popover/popover-disclosure.tsx +101 -0
  1090. package/src/popover/popover-dismiss.tsx +70 -0
  1091. package/src/popover/popover-heading.tsx +68 -0
  1092. package/src/popover/popover-provider.tsx +29 -0
  1093. package/src/popover/popover-store.ts +53 -0
  1094. package/src/popover/popover.tsx +649 -0
  1095. package/src/portal/portal-context.tsx +19 -0
  1096. package/src/portal/portal.tsx +493 -0
  1097. package/src/radio/radio-context.tsx +34 -0
  1098. package/src/radio/radio-group.tsx +103 -0
  1099. package/src/radio/radio-provider.tsx +29 -0
  1100. package/src/radio/radio-store.ts +64 -0
  1101. package/src/radio/radio.tsx +242 -0
  1102. package/src/role/role.tsx +88 -0
  1103. package/src/select/select-arrow.tsx +80 -0
  1104. package/src/select/select-context.tsx +46 -0
  1105. package/src/select/select-dismiss.tsx +79 -0
  1106. package/src/select/select-group-label.tsx +78 -0
  1107. package/src/select/select-group.tsx +79 -0
  1108. package/src/select/select-heading.tsx +98 -0
  1109. package/src/select/select-item-check.tsx +80 -0
  1110. package/src/select/select-item-offscreen.tsx +59 -0
  1111. package/src/select/select-item.tsx +294 -0
  1112. package/src/select/select-label.tsx +117 -0
  1113. package/src/select/select-list.tsx +251 -0
  1114. package/src/select/select-popover.tsx +67 -0
  1115. package/src/select/select-provider.tsx +45 -0
  1116. package/src/select/select-renderer.tsx +160 -0
  1117. package/src/select/select-row.tsx +97 -0
  1118. package/src/select/select-separator.tsx +80 -0
  1119. package/src/select/select-store.ts +139 -0
  1120. package/src/select/select-value.tsx +108 -0
  1121. package/src/select/select.tsx +371 -0
  1122. package/src/separator/separator.tsx +54 -0
  1123. package/src/store.ts +1 -0
  1124. package/src/tab/tab-context.tsx +34 -0
  1125. package/src/tab/tab-list.tsx +120 -0
  1126. package/src/tab/tab-panel.tsx +314 -0
  1127. package/src/tab/tab-provider.tsx +30 -0
  1128. package/src/tab/tab-store.ts +124 -0
  1129. package/src/tab/tab.tsx +208 -0
  1130. package/src/tag/tag-context.tsx +40 -0
  1131. package/src/tag/tag-input.tsx +321 -0
  1132. package/src/tag/tag-list-label.tsx +102 -0
  1133. package/src/tag/tag-list.tsx +210 -0
  1134. package/src/tag/tag-provider.tsx +38 -0
  1135. package/src/tag/tag-remove.tsx +174 -0
  1136. package/src/tag/tag-store.ts +72 -0
  1137. package/src/tag/tag-value.tsx +63 -0
  1138. package/src/tag/tag-values.tsx +74 -0
  1139. package/src/tag/tag.tsx +199 -0
  1140. package/src/tag/utils.ts +12 -0
  1141. package/src/toolbar/toolbar-container.tsx +67 -0
  1142. package/src/toolbar/toolbar-context.tsx +34 -0
  1143. package/src/toolbar/toolbar-input.tsx +64 -0
  1144. package/src/toolbar/toolbar-item.tsx +72 -0
  1145. package/src/toolbar/toolbar-provider.tsx +32 -0
  1146. package/src/toolbar/toolbar-separator.tsx +71 -0
  1147. package/src/toolbar/toolbar-store.ts +52 -0
  1148. package/src/toolbar/toolbar.tsx +119 -0
  1149. package/src/tooltip/tooltip-anchor.tsx +210 -0
  1150. package/src/tooltip/tooltip-arrow.tsx +84 -0
  1151. package/src/tooltip/tooltip-context.tsx +34 -0
  1152. package/src/tooltip/tooltip-provider.tsx +29 -0
  1153. package/src/tooltip/tooltip-store.ts +53 -0
  1154. package/src/tooltip/tooltip.tsx +153 -0
  1155. package/src/visually-hidden/visually-hidden.tsx +67 -0
@@ -0,0 +1,273 @@
1
+ "use client";
2
+ import { FocusableContext } from "./focusable-context.js";
3
+ import { createElement, createHook, forwardRef, useEvent, useMergeRefs, useMetadataProps, useTagName } from "@ariakit/react-utils";
4
+ import { addGlobalEventListener, disabledFromProps, hasFocus, isFocusEventOutside, isFocusable, isSafari, isSelfTarget, queueBeforeEvent, removeUndefinedValues } from "@ariakit/utils";
5
+ import { useContext, useEffect, useMemo, useRef, useState } from "react";
6
+ //#region src/focusable/focusable.tsx
7
+ const TagName = "div";
8
+ const accessibleWhenDisabledSymbol = Symbol("accessibleWhenDisabled");
9
+ const isSafariBrowser = isSafari();
10
+ const alwaysFocusVisibleInputTypes = [
11
+ "text",
12
+ "search",
13
+ "url",
14
+ "tel",
15
+ "email",
16
+ "password",
17
+ "number",
18
+ "date",
19
+ "month",
20
+ "week",
21
+ "time",
22
+ "datetime",
23
+ "datetime-local"
24
+ ];
25
+ function isAlwaysFocusVisible(element) {
26
+ const { tagName, readOnly, type } = element;
27
+ if (tagName === "TEXTAREA" && !readOnly) return true;
28
+ if (tagName === "SELECT" && !readOnly) return true;
29
+ if (tagName === "INPUT" && !readOnly) return alwaysFocusVisibleInputTypes.includes(type);
30
+ if (element.isContentEditable) return true;
31
+ if (element.getAttribute("role") === "combobox" && element.dataset.name) return true;
32
+ return false;
33
+ }
34
+ function isNativeTabbable(tagName) {
35
+ if (!tagName) return true;
36
+ return tagName === "button" || tagName === "summary" || tagName === "input" || tagName === "select" || tagName === "textarea" || tagName === "a";
37
+ }
38
+ function supportsDisabledAttribute(tagName) {
39
+ if (!tagName) return true;
40
+ return tagName === "button" || tagName === "input" || tagName === "select" || tagName === "textarea";
41
+ }
42
+ const buttonInputTypes = [
43
+ "button",
44
+ "color",
45
+ "file",
46
+ "image",
47
+ "reset",
48
+ "submit"
49
+ ];
50
+ function needsSafariTabIndex(tagName, inputType) {
51
+ if (tagName === "button") return true;
52
+ if (tagName === "input" && inputType) {
53
+ if (inputType === "checkbox" || inputType === "radio") return true;
54
+ return buttonInputTypes.includes(inputType);
55
+ }
56
+ return false;
57
+ }
58
+ function getTabIndex({ focusable, trulyDisabled, nativeTabbable, supportsDisabled, safariTabIndex, tabIndexProp }) {
59
+ if (!focusable) return tabIndexProp;
60
+ if (trulyDisabled) {
61
+ if (nativeTabbable && !supportsDisabled) return -1;
62
+ return;
63
+ }
64
+ if (nativeTabbable) {
65
+ if (safariTabIndex && tabIndexProp == null) return 0;
66
+ return tabIndexProp;
67
+ }
68
+ return tabIndexProp ?? 0;
69
+ }
70
+ function useDisableEvent(onEvent, disabled) {
71
+ return useEvent((event) => {
72
+ onEvent?.(event);
73
+ if (event.defaultPrevented) return;
74
+ if (disabled) {
75
+ event.stopPropagation();
76
+ event.preventDefault();
77
+ }
78
+ });
79
+ }
80
+ let hasInstalledGlobalEventListeners = false;
81
+ let isKeyboardModality = true;
82
+ function onGlobalMouseDown(event) {
83
+ const target = event.target;
84
+ if (target && "hasAttribute" in target) {
85
+ if (!target.hasAttribute("data-focus-visible")) isKeyboardModality = false;
86
+ }
87
+ }
88
+ function onGlobalKeyDown(event) {
89
+ if (event.metaKey) return;
90
+ if (event.ctrlKey) return;
91
+ if (event.altKey) return;
92
+ isKeyboardModality = true;
93
+ }
94
+ /**
95
+ * Returns props to create a `Focusable` component.
96
+ * @see https://ariakit.com/components/focusable
97
+ * @example
98
+ * ```jsx
99
+ * const props = useFocusable();
100
+ * <Role {...props}>Focusable</Role>
101
+ * ```
102
+ */
103
+ const useFocusable = createHook(function useFocusable({ focusable = true, accessibleWhenDisabled, autoFocus, onFocusVisible, ...props }) {
104
+ const ref = useRef(null);
105
+ const [parentAccessibleWhenDisabled, metadataProps] = useMetadataProps(props, accessibleWhenDisabledSymbol, accessibleWhenDisabled);
106
+ accessibleWhenDisabled ??= parentAccessibleWhenDisabled;
107
+ useEffect(() => {
108
+ if (!focusable) return;
109
+ if (hasInstalledGlobalEventListeners) return;
110
+ addGlobalEventListener("mousedown", onGlobalMouseDown, true);
111
+ addGlobalEventListener("keydown", onGlobalKeyDown, true);
112
+ hasInstalledGlobalEventListeners = true;
113
+ }, [focusable]);
114
+ const disabled = focusable && disabledFromProps(props);
115
+ const trulyDisabled = disabled && !accessibleWhenDisabled;
116
+ const [focusVisible, setFocusVisible] = useState(false);
117
+ useEffect(() => {
118
+ if (!focusable) return;
119
+ if (trulyDisabled && focusVisible) setFocusVisible(false);
120
+ }, [
121
+ focusable,
122
+ trulyDisabled,
123
+ focusVisible
124
+ ]);
125
+ useEffect(() => {
126
+ if (!focusable) return;
127
+ if (!focusVisible) return;
128
+ const element = ref.current;
129
+ if (!element) return;
130
+ if (typeof IntersectionObserver === "undefined") return;
131
+ const observer = new IntersectionObserver(() => {
132
+ if (!isFocusable(element)) setFocusVisible(false);
133
+ });
134
+ observer.observe(element);
135
+ return () => observer.disconnect();
136
+ }, [focusable, focusVisible]);
137
+ const onKeyPressCapture = useDisableEvent(props.onKeyPressCapture, disabled);
138
+ const onMouseDownCapture = useDisableEvent(props.onMouseDownCapture, disabled);
139
+ const onClickCapture = useDisableEvent(props.onClickCapture, disabled);
140
+ const handleFocusVisible = (event, currentTarget) => {
141
+ if (currentTarget) event.currentTarget = currentTarget;
142
+ if (!focusable) return;
143
+ const element = event.currentTarget;
144
+ if (!element) return;
145
+ if (!hasFocus(element)) return;
146
+ onFocusVisible?.(event);
147
+ if (event.defaultPrevented) return;
148
+ element.dataset.focusVisible = "true";
149
+ setFocusVisible(true);
150
+ };
151
+ const onKeyDownCaptureProp = props.onKeyDownCapture;
152
+ const onKeyDownCapture = useEvent((event) => {
153
+ onKeyDownCaptureProp?.(event);
154
+ if (event.defaultPrevented) return;
155
+ if (!focusable) return;
156
+ if (focusVisible) return;
157
+ if (event.metaKey) return;
158
+ if (event.altKey) return;
159
+ if (event.ctrlKey) return;
160
+ if (!isSelfTarget(event)) return;
161
+ const element = event.currentTarget;
162
+ const applyFocusVisible = () => handleFocusVisible(event, element);
163
+ queueBeforeEvent(element, "focusout", applyFocusVisible);
164
+ });
165
+ const onFocusCaptureProp = props.onFocusCapture;
166
+ const onFocusCapture = useEvent((event) => {
167
+ onFocusCaptureProp?.(event);
168
+ if (event.defaultPrevented) return;
169
+ if (!focusable) return;
170
+ if (!isSelfTarget(event)) {
171
+ setFocusVisible(false);
172
+ return;
173
+ }
174
+ const element = event.currentTarget;
175
+ const applyFocusVisible = () => handleFocusVisible(event, element);
176
+ if (isKeyboardModality || isAlwaysFocusVisible(event.target)) queueBeforeEvent(event.target, "focusout", applyFocusVisible);
177
+ else setFocusVisible(false);
178
+ });
179
+ const onBlurProp = props.onBlur;
180
+ const onBlur = useEvent((event) => {
181
+ onBlurProp?.(event);
182
+ if (!focusable) return;
183
+ if (!isFocusEventOutside(event)) return;
184
+ event.currentTarget.removeAttribute("data-focus-visible");
185
+ setFocusVisible(false);
186
+ });
187
+ const autoFocusOnShow = useContext(FocusableContext);
188
+ const autoFocusRef = useEvent((element) => {
189
+ if (!focusable) return;
190
+ if (!autoFocus) return;
191
+ if (!element) return;
192
+ if (!autoFocusOnShow) return;
193
+ queueMicrotask(() => {
194
+ if (hasFocus(element)) return;
195
+ if (!isFocusable(element)) return;
196
+ element.focus();
197
+ });
198
+ });
199
+ const tagName = useTagName(ref);
200
+ const nativeTabbable = focusable && isNativeTabbable(tagName);
201
+ const supportsDisabled = focusable && supportsDisabledAttribute(tagName);
202
+ const [safariTabIndex, setSafariTabIndex] = useState(false);
203
+ if (isSafariBrowser) useEffect(() => {
204
+ if (!focusable) return;
205
+ const element = ref.current;
206
+ if (!element) return;
207
+ const tag = element.tagName.toLowerCase();
208
+ const type = element.type;
209
+ setSafariTabIndex(needsSafariTabIndex(tag, type));
210
+ }, [focusable]);
211
+ const styleProp = props.style;
212
+ const style = useMemo(() => {
213
+ if (trulyDisabled) return {
214
+ pointerEvents: "none",
215
+ ...styleProp
216
+ };
217
+ return styleProp;
218
+ }, [trulyDisabled, styleProp]);
219
+ props = {
220
+ "data-focus-visible": focusable && focusVisible || void 0,
221
+ "data-autofocus": autoFocus || void 0,
222
+ "aria-disabled": disabled || void 0,
223
+ ...props,
224
+ ...metadataProps,
225
+ ref: useMergeRefs(ref, autoFocusRef, props.ref),
226
+ style,
227
+ tabIndex: getTabIndex({
228
+ focusable,
229
+ trulyDisabled,
230
+ nativeTabbable,
231
+ supportsDisabled,
232
+ safariTabIndex,
233
+ tabIndexProp: props.tabIndex
234
+ }),
235
+ disabled: supportsDisabled && trulyDisabled ? true : void 0,
236
+ contentEditable: disabled ? void 0 : props.contentEditable,
237
+ onKeyPressCapture,
238
+ onClickCapture,
239
+ onMouseDownCapture,
240
+ onKeyDownCapture,
241
+ onFocusCapture,
242
+ onBlur
243
+ };
244
+ return removeUndefinedValues(props);
245
+ });
246
+ /**
247
+ * Renders a focusable element. When this element gains keyboard focus, it gets
248
+ * a
249
+ * [`data-focus-visible`](https://ariakit.com/guide/styling#data-focus-visible)
250
+ * attribute and triggers the
251
+ * [`onFocusVisible`](https://ariakit.com/reference/focusable#onfocusvisible)
252
+ * prop.
253
+ *
254
+ * The `Focusable` component supports the
255
+ * [`disabled`](https://ariakit.com/reference/focusable#disabled) prop for all
256
+ * elements, even those not supporting the native `disabled` attribute. Disabled
257
+ * elements using the `Focusable` component may be still accessible via keyboard
258
+ * by using the the
259
+ * [`accessibleWhenDisabled`](https://ariakit.com/reference/focusable#accessiblewhendisabled)
260
+ * prop.
261
+ * @see https://ariakit.com/components/focusable
262
+ * @example
263
+ * ```jsx
264
+ * <Focusable>Focusable</Focusable>
265
+ * ```
266
+ */
267
+ const Focusable = forwardRef(function Focusable(props) {
268
+ return createElement(TagName, useFocusable(props));
269
+ });
270
+ //#endregion
271
+ export { Focusable, useFocusable };
272
+
273
+ //# sourceMappingURL=focusable.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"focusable.js","names":[],"sources":["../../src/focusable/focusable.tsx"],"sourcesContent":["import {\n useEvent,\n useMergeRefs,\n useMetadataProps,\n useTagName,\n createElement,\n createHook,\n forwardRef,\n} from \"@ariakit/react-utils\";\nimport type { Options, Props } from \"@ariakit/react-utils\";\nimport {\n addGlobalEventListener,\n isFocusEventOutside,\n isSelfTarget,\n queueBeforeEvent,\n hasFocus,\n isFocusable,\n disabledFromProps,\n removeUndefinedValues,\n isSafari,\n} from \"@ariakit/utils\";\nimport type { BivariantCallback } from \"@ariakit/utils\";\nimport type {\n ElementType,\n EventHandler,\n FocusEvent,\n KeyboardEvent as ReactKeyboardEvent,\n SyntheticEvent,\n} from \"react\";\nimport { useContext, useEffect, useMemo, useRef, useState } from \"react\";\nimport { FocusableContext } from \"./focusable-context.tsx\";\n\nconst TagName = \"div\" satisfies ElementType;\ntype TagName = typeof TagName;\ntype HTMLType = HTMLElementTagNameMap[TagName];\n\nconst accessibleWhenDisabledSymbol = Symbol(\"accessibleWhenDisabled\");\n\nconst isSafariBrowser = isSafari();\n\nconst alwaysFocusVisibleInputTypes = [\n \"text\",\n \"search\",\n \"url\",\n \"tel\",\n \"email\",\n \"password\",\n \"number\",\n \"date\",\n \"month\",\n \"week\",\n \"time\",\n \"datetime\",\n \"datetime-local\",\n];\n\nfunction isAlwaysFocusVisible(element: HTMLElement) {\n const { tagName, readOnly, type } = element as HTMLInputElement;\n if (tagName === \"TEXTAREA\" && !readOnly) return true;\n if (tagName === \"SELECT\" && !readOnly) return true;\n if (tagName === \"INPUT\" && !readOnly) {\n return alwaysFocusVisibleInputTypes.includes(type);\n }\n if (element.isContentEditable) return true;\n // Take into account custom Ariakit Select within a form.\n const role = element.getAttribute(\"role\");\n if (role === \"combobox\" && element.dataset.name) {\n return true;\n }\n return false;\n}\n\nfunction isNativeTabbable(tagName?: string) {\n if (!tagName) return true;\n return (\n tagName === \"button\" ||\n tagName === \"summary\" ||\n tagName === \"input\" ||\n tagName === \"select\" ||\n tagName === \"textarea\" ||\n tagName === \"a\"\n );\n}\n\nfunction supportsDisabledAttribute(tagName?: string) {\n if (!tagName) return true;\n return (\n tagName === \"button\" ||\n tagName === \"input\" ||\n tagName === \"select\" ||\n tagName === \"textarea\"\n );\n}\n\ninterface GetTabIndexParams {\n focusable: boolean;\n trulyDisabled: boolean;\n nativeTabbable: boolean;\n supportsDisabled: boolean;\n safariTabIndex: boolean;\n tabIndexProp?: number;\n}\n\nconst buttonInputTypes = [\n \"button\",\n \"color\",\n \"file\",\n \"image\",\n \"reset\",\n \"submit\",\n];\n\nfunction needsSafariTabIndex(tagName?: string, inputType?: string) {\n if (tagName === \"button\") return true;\n if (tagName === \"input\" && inputType) {\n if (inputType === \"checkbox\" || inputType === \"radio\") return true;\n return buttonInputTypes.includes(inputType);\n }\n return false;\n}\n\nfunction getTabIndex({\n focusable,\n trulyDisabled,\n nativeTabbable,\n supportsDisabled,\n safariTabIndex,\n tabIndexProp,\n}: GetTabIndexParams) {\n if (!focusable) return tabIndexProp;\n if (trulyDisabled) {\n if (nativeTabbable && !supportsDisabled) {\n // Anchor, audio and video tags don't support the `disabled` attribute.\n // We must pass tabIndex={-1} so they don't receive focus on tab.\n return -1;\n }\n // Elements that support the `disabled` attribute don't need tabIndex.\n return;\n }\n if (nativeTabbable) {\n // On Safari, buttons and button-like inputs (checkboxes, radios, submit,\n // reset, etc.) require an explicit tabIndex to receive focus on mousedown.\n if (safariTabIndex && tabIndexProp == null) {\n return 0;\n }\n return tabIndexProp;\n }\n // If the element is enabled and is not natively tabbable, we have to\n // fallback tabIndex={0}.\n return tabIndexProp ?? 0;\n}\n\nfunction useDisableEvent(\n onEvent?: EventHandler<SyntheticEvent>,\n disabled?: boolean,\n) {\n return useEvent((event: SyntheticEvent) => {\n onEvent?.(event);\n if (event.defaultPrevented) return;\n if (disabled) {\n event.stopPropagation();\n event.preventDefault();\n }\n });\n}\n\nlet hasInstalledGlobalEventListeners = false;\n\n// isKeyboardModality should be true by default.\nlet isKeyboardModality = true;\n\nfunction onGlobalMouseDown(event: MouseEvent) {\n const target = event.target as HTMLElement | EventTarget | null;\n if (target && \"hasAttribute\" in target) {\n // If the target element is already focus-visible, we keep the keyboard\n // modality.\n if (!target.hasAttribute(\"data-focus-visible\")) {\n isKeyboardModality = false;\n }\n }\n}\n\nfunction onGlobalKeyDown(event: KeyboardEvent) {\n if (event.metaKey) return;\n if (event.ctrlKey) return;\n if (event.altKey) return;\n isKeyboardModality = true;\n}\n\n/**\n * Returns props to create a `Focusable` component.\n * @see https://ariakit.com/components/focusable\n * @example\n * ```jsx\n * const props = useFocusable();\n * <Role {...props}>Focusable</Role>\n * ```\n */\nexport const useFocusable = createHook<TagName, FocusableOptions>(\n function useFocusable({\n focusable = true,\n accessibleWhenDisabled,\n autoFocus,\n onFocusVisible,\n ...props\n }) {\n const ref = useRef<HTMLType>(null);\n const [parentAccessibleWhenDisabled, metadataProps] = useMetadataProps(\n props,\n accessibleWhenDisabledSymbol,\n accessibleWhenDisabled,\n );\n accessibleWhenDisabled ??= parentAccessibleWhenDisabled;\n\n // Add global event listeners to determine whether the user is using a\n // keyboard to navigate the site or not.\n useEffect(() => {\n if (!focusable) return;\n if (hasInstalledGlobalEventListeners) return;\n addGlobalEventListener(\"mousedown\", onGlobalMouseDown, true);\n addGlobalEventListener(\"keydown\", onGlobalKeyDown, true);\n hasInstalledGlobalEventListeners = true;\n }, [focusable]);\n\n const disabled = focusable && disabledFromProps(props);\n const trulyDisabled = disabled && !accessibleWhenDisabled;\n const [focusVisible, setFocusVisible] = useState(false);\n\n // When the focusable element is disabled, it doesn't trigger a blur event\n // so we can't set focusVisible to false there. Instead, we have to do it\n // here by checking the element's disabled attribute.\n useEffect(() => {\n if (!focusable) return;\n if (trulyDisabled && focusVisible) {\n setFocusVisible(false);\n }\n }, [focusable, trulyDisabled, focusVisible]);\n\n // When an element that has focus becomes hidden, it doesn't trigger a blur\n // event so we can't set focusVisible to false there. We observe the element\n // and check if it's still focusable. Otherwise, we set focusVisible to\n // false.\n useEffect(() => {\n if (!focusable) return;\n if (!focusVisible) return;\n const element = ref.current;\n if (!element) return;\n if (typeof IntersectionObserver === \"undefined\") return;\n const observer = new IntersectionObserver(() => {\n if (!isFocusable(element)) {\n setFocusVisible(false);\n }\n });\n observer.observe(element);\n return () => observer.disconnect();\n }, [focusable, focusVisible]);\n\n // Disable events when the element is disabled.\n const onKeyPressCapture = useDisableEvent(\n props.onKeyPressCapture,\n disabled,\n );\n const onMouseDownCapture = useDisableEvent(\n props.onMouseDownCapture,\n disabled,\n );\n const onClickCapture = useDisableEvent(props.onClickCapture, disabled);\n\n const handleFocusVisible = (\n event: SyntheticEvent<HTMLType>,\n currentTarget?: HTMLType,\n ) => {\n if (currentTarget) {\n event.currentTarget = currentTarget;\n }\n if (!focusable) return;\n const element = event.currentTarget;\n if (!element) return;\n // Some extensions like 1password dispatches some keydown events on\n // autofill and immediately moves focus to the next field. That's why we\n // need to check if the current element is still focused.\n if (!hasFocus(element)) return;\n onFocusVisible?.(event);\n if (event.defaultPrevented) return;\n // Make sure data-focus-visible is applied visually at the same time as\n // other data attributes like data-active-item. See\n // https://github.com/ariakit/ariakit/issues/4083\n element.dataset.focusVisible = \"true\";\n setFocusVisible(true);\n };\n\n const onKeyDownCaptureProp = props.onKeyDownCapture;\n\n const onKeyDownCapture = useEvent((event: ReactKeyboardEvent<HTMLType>) => {\n onKeyDownCaptureProp?.(event);\n if (event.defaultPrevented) return;\n if (!focusable) return;\n if (focusVisible) return;\n if (event.metaKey) return;\n if (event.altKey) return;\n if (event.ctrlKey) return;\n if (!isSelfTarget(event)) return;\n const element = event.currentTarget;\n const applyFocusVisible = () => handleFocusVisible(event, element);\n queueBeforeEvent(element, \"focusout\", applyFocusVisible);\n });\n\n const onFocusCaptureProp = props.onFocusCapture;\n\n const onFocusCapture = useEvent((event: FocusEvent<HTMLType>) => {\n onFocusCaptureProp?.(event);\n if (event.defaultPrevented) return;\n if (!focusable) return;\n if (!isSelfTarget(event)) {\n setFocusVisible(false);\n return;\n }\n const element = event.currentTarget;\n const applyFocusVisible = () => handleFocusVisible(event, element);\n if (isKeyboardModality || isAlwaysFocusVisible(event.target)) {\n queueBeforeEvent(event.target, \"focusout\", applyFocusVisible);\n } else {\n setFocusVisible(false);\n }\n });\n\n const onBlurProp = props.onBlur;\n\n // Note: Can't use onBlurCapture here otherwise it will not work with\n // CompositeItem's with the virtualFocus state set to true.\n const onBlur = useEvent((event: FocusEvent<HTMLType>) => {\n onBlurProp?.(event);\n if (!focusable) return;\n if (!isFocusEventOutside(event)) return;\n // Since we set the data-focus-visible attribute on the element in the\n // handleFocusVisible function, we remove it directly here. Otherwise, the\n // attribute might not be removed on lower-end devices.\n event.currentTarget.removeAttribute(\"data-focus-visible\");\n setFocusVisible(false);\n });\n\n const autoFocusOnShow = useContext(FocusableContext);\n\n // The native autoFocus prop is problematic in many ways. For example, when\n // an element has the native autofocus attribute, the focus event will be\n // triggered before React effects (even layout effects) and before refs are\n // assigned. This means we won't have access to the element's ref or\n // anything else that's set up by React effects on the onFocus event. So we\n // don't pass the autoFocus prop to the element and instead manually focus\n // the element when it's mounted. The order in which this effect runs also\n // matters. See\n // https://x.com/diegohaz/status/1408180632933388289\n const autoFocusRef = useEvent((element: HTMLElement | null) => {\n if (!focusable) return;\n if (!autoFocus) return;\n if (!element) return;\n if (!autoFocusOnShow) return;\n // We have to queue focus so other effects and refs can be applied first.\n // See select-animated example.\n queueMicrotask(() => {\n if (hasFocus(element)) return;\n if (!isFocusable(element)) return;\n element.focus();\n });\n });\n\n const tagName = useTagName(ref);\n const nativeTabbable = focusable && isNativeTabbable(tagName);\n const supportsDisabled = focusable && supportsDisabledAttribute(tagName);\n\n // On Safari, buttons and button-like inputs don't receive focus on\n // mousedown. We detect this from the DOM element (not props) so it works\n // with render={<input type=\"submit\" />} and custom components.\n const [safariTabIndex, setSafariTabIndex] = useState(false);\n\n if (isSafariBrowser) {\n useEffect(() => {\n if (!focusable) return;\n const element = ref.current;\n if (!element) return;\n const tag = element.tagName.toLowerCase();\n const type = (element as HTMLInputElement).type;\n setSafariTabIndex(needsSafariTabIndex(tag, type));\n }, [focusable]);\n }\n\n const styleProp = props.style;\n const style = useMemo(() => {\n if (trulyDisabled) {\n return { pointerEvents: \"none\" as const, ...styleProp };\n }\n return styleProp;\n }, [trulyDisabled, styleProp]);\n\n props = {\n \"data-focus-visible\": (focusable && focusVisible) || undefined,\n \"data-autofocus\": autoFocus || undefined,\n \"aria-disabled\": disabled || undefined,\n ...props,\n ...metadataProps,\n ref: useMergeRefs(ref, autoFocusRef, props.ref),\n style,\n tabIndex: getTabIndex({\n focusable,\n trulyDisabled,\n nativeTabbable,\n supportsDisabled,\n safariTabIndex,\n tabIndexProp: props.tabIndex,\n }),\n disabled: supportsDisabled && trulyDisabled ? true : undefined,\n // TODO: Test Focusable contentEditable.\n contentEditable: disabled ? undefined : props.contentEditable,\n onKeyPressCapture,\n onClickCapture,\n onMouseDownCapture,\n onKeyDownCapture,\n onFocusCapture,\n onBlur,\n };\n\n return removeUndefinedValues(props);\n },\n);\n\n/**\n * Renders a focusable element. When this element gains keyboard focus, it gets\n * a\n * [`data-focus-visible`](https://ariakit.com/guide/styling#data-focus-visible)\n * attribute and triggers the\n * [`onFocusVisible`](https://ariakit.com/reference/focusable#onfocusvisible)\n * prop.\n *\n * The `Focusable` component supports the\n * [`disabled`](https://ariakit.com/reference/focusable#disabled) prop for all\n * elements, even those not supporting the native `disabled` attribute. Disabled\n * elements using the `Focusable` component may be still accessible via keyboard\n * by using the the\n * [`accessibleWhenDisabled`](https://ariakit.com/reference/focusable#accessiblewhendisabled)\n * prop.\n * @see https://ariakit.com/components/focusable\n * @example\n * ```jsx\n * <Focusable>Focusable</Focusable>\n * ```\n */\nexport const Focusable = forwardRef(function Focusable(props: FocusableProps) {\n const htmlProps = useFocusable(props);\n return createElement(TagName, htmlProps);\n});\n\nexport interface FocusableOptions<\n _T extends ElementType = TagName,\n> extends Options {\n /**\n * Determines if the element is disabled. This sets the `aria-disabled`\n * attribute accordingly, enabling support for all elements, including those\n * that don't support the native `disabled` attribute.\n *\n * This feature can be combined with the\n * [`accessibleWhenDisabled`](https://ariakit.com/reference/focusable#accessiblewhendisabled)\n * prop to make disabled elements still accessible via keyboard.\n *\n * **Note**: For this prop to work, the\n * [`focusable`](https://ariakit.com/reference/command#focusable) prop must be\n * set to `true`, if it's not set by default.\n *\n * Live examples:\n * - [Submenu](https://ariakit.com/examples/menu-nested)\n * - [Combobox with Tabs](https://ariakit.com/examples/combobox-tabs)\n * - [Context Menu](https://ariakit.com/examples/menu-context-menu)\n * @default false\n */\n disabled?: boolean;\n /**\n * Automatically focuses the element upon mounting, similar to the native\n * `autoFocus` prop. This addresses an issue where the element with the native\n * `autoFocus` attribute might receive focus before React effects are\n * executed.\n *\n * The `autoFocus` prop can also be used with\n * [Focusable](https://ariakit.com/components/focusable) elements within a\n * [Dialog](https://ariakit.com/components/dialog) component, establishing the\n * initial focus as the dialog opens.\n *\n * **Note**: For this prop to work, the\n * [`focusable`](https://ariakit.com/reference/command#focusable) prop must be\n * set to `true`, if it's not set by default.\n *\n * Live examples:\n * - [Warning on Dialog\n * hide](https://ariakit.com/examples/dialog-hide-warning)\n * - [Dialog with React\n * Router](https://ariakit.com/examples/dialog-react-router)\n * - [Nested Dialog](https://ariakit.com/examples/dialog-nested)\n * @default false\n */\n autoFocus?: boolean;\n /**\n * Determines if [Focusable](https://ariakit.com/components/focusable)\n * features should be active on non-native focusable elements.\n *\n * **Note**: This prop only turns off the additional features provided by the\n * [`Focusable`](https://ariakit.com/reference/focusable) component.\n * Non-native focusable elements will lose their focusability entirely.\n * However, native focusable elements will retain their inherent focusability,\n * but without added features such as improved\n * [`autoFocus`](https://ariakit.com/reference/focusable#autofocus),\n * [`accessibleWhenDisabled`](https://ariakit.com/reference/focusable#accessiblewhendisabled),\n * [`onFocusVisible`](https://ariakit.com/reference/focusable#onfocusvisible),\n * etc.\n * @default true\n */\n focusable?: boolean;\n /**\n * Indicates whether the element should be focusable even when it is\n * [`disabled`](https://ariakit.com/reference/focusable#disabled).\n *\n * This is important when discoverability is a concern. For example:\n *\n * > A toolbar in an editor contains a set of special smart paste functions\n * that are disabled when the clipboard is empty or when the function is not\n * applicable to the current content of the clipboard. It could be helpful to\n * keep the disabled buttons focusable if the ability to discover their\n * functionality is primarily via their presence on the toolbar.\n *\n * Learn more on [Focusability of disabled\n * controls](https://www.w3.org/WAI/ARIA/apg/practices/keyboard-interface/#focusabilityofdisabledcontrols).\n *\n * Live examples:\n * - [Combobox with Tabs](https://ariakit.com/examples/combobox-tabs)\n * - [Command Menu with\n * Tabs](https://ariakit.com/examples/dialog-combobox-tab-command-menu)\n */\n accessibleWhenDisabled?: boolean;\n /**\n * Custom event handler invoked when the element gains focus through keyboard\n * interaction or a key press occurs while the element is in focus. This is\n * the programmatic equivalent of the\n * [`data-focus-visible`](https://ariakit.com/guide/styling#data-focus-visible)\n * attribute.\n *\n * **Note**: For this prop to work, the\n * [`focusable`](https://ariakit.com/reference/command#focusable) prop must be\n * set to `true`, if it's not set by default.\n *\n * Live examples:\n * - [Navigation Menubar](https://ariakit.com/examples/menubar-navigation)\n * - [Custom Checkbox](https://ariakit.com/examples/checkbox-custom)\n */\n onFocusVisible?: BivariantCallback<\n (event: SyntheticEvent<HTMLElement>) => void\n >;\n}\n\nexport type FocusableProps<T extends ElementType = TagName> = Props<\n T,\n FocusableOptions<T>\n>;\n"],"mappings":";;;;;;AAoCA,MAAM,UAAA;AAEN,MAAM,+BAA2B,OAAA,wBAAA;AAEjC,MAAM,kBAAA,SAAA;MACJ,+BAAA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACF;AAEA;SACU,qBAAmB,SAAS;CACpC,MAAI,EAAA,SAAY,UAAA,SAAe;CAC/B,IAAI,YAAY,cAAa,CAAA,UAAU,OAAO;CAC9C,IAAI,YAAY,YAAY,CAAA,UAC1B,OAAO;CAET,IAAI,YAAQ,WAAA,CAAA,UAA0B,OAAA,6BAAA,SAAA,IAAA;CAGtC,IADa,QAAQ,mBACd,OAAM;CAGb,IAAA,QAAO,aAAA,MAAA,MAAA,cAAA,QAAA,QAAA,MAAA,OAAA;CACT,OAAA;AAEA;SACO,iBAAgB,SAAA;CACrB,IAAA,CAAA,SACE,OAAY;CAOhB,OAAA,YAAA,YAAA,YAAA,aAAA,YAAA,WAAA,YAAA,YAAA,YAAA,cAAA,YAAA;AAEA;SACO,0BAAgB,SAAA;CACrB,IAAA,CAAA,SACE,OAAY;CAKhB,OAAA,YAAA,YAAA,YAAA,WAAA,YAAA,YAAA,YAAA;AAWA;MACE,mBAAA;CACA;CACA;CACA;CACA;CACA;CACF;AAEA;SACM,oBAAsB,SAAO,WAAA;CACjC,IAAI,YAAY,UAAA,OAAW;KACzB,YAAI,WAAc,WAAc;EAChC,IAAA,cAAO,cAAiB,cAAkB,SAAA,OAAA;EAC5C,OAAA,iBAAA,SAAA,SAAA;CACA;CACF,OAAA;AAEA;SAQO,YAAW,EAAA,WAAO,eAAA,gBAAA,kBAAA,gBAAA,gBAAA;CACvB,IAAI,CAAA,WAAA,OAAe;KACjB,eAAI;EAMJ,IAAA,kBAAA,CAAA,kBAAA,OAAA;EACF;CACA;KAGE,gBAAI;EAGJ,IAAA,kBAAO,gBAAA,MAAA,OAAA;EACT,OAAA;CAGA;CACF,OAAA,gBAAA;AAEA;SAIS,gBAAU,SAA0B,UAAA;QACzC,UAAe,UAAA;EACf,UAAU,KAAA;EACV,IAAI,MAAA,kBAAU;MACZ,UAAM;GACN,MAAM,gBAAe;GACvB,MAAA,eAAA;EACD;CACH,CAAA;AAEA;AAGA,IAAI,mCAAqB;AAEzB,IAAA,qBAAS;SACD,kBAAe,OAAA;CACrB,MAAI,SAAU,MAAA;eAGA,kBAAa,QAEzB;MAAA,CAAA,OAAA,aAAA,oBAAA,GAAA,qBAAA;CAAA;AAIJ;SACM,gBAAe,OAAA;CACnB,IAAI,MAAM,SAAS;CACnB,IAAI,MAAM,SAAQ;CAClB,IAAA,MAAA,QAAA;CACF,qBAAA;;;;;;;;;;;MAmBI,eAA6B,WAAI,SAAA,aAAA,EAAA,YAAA,MAAA,wBAAA,WAAA,gBAAA,GAAA,SAAA;CACjC,MAAM,MAAC,OAAA,IAAA;CAKP,MAAA,CAAA,8BAA2B,iBAAA,iBAAA,OAAA,8BAAA,sBAAA;CAI3B,2BAAgB;iBACT;EACL,IAAI,CAAA,WAAA;EACJ,IAAA,kCAAoC;EACpC,uBAAuB,aAAW,mBAAqB,IAAA;EACvD,uBAAA,WAAA,iBAAmC,IAAA;EACrC,mCAAc;CAEd,GAAA,CAAA,SAAM,CAAA;CACN,MAAM,WAAA,aAAgB,kBAAa,KAAA;CACnC,MAAM,gBAAe,YAAA,CAAA;CAKrB,MAAA,CAAA,cAAgB,mBAAA,SAAA,KAAA;iBACT;EACL,IAAI,CAAA,WAAA;EAGN,IAAG,iBAAA,cAAA,gBAAA,KAAA;IAAC;EAAW;EAAe;EAAa;CAM3C,CAAA;iBACO;EACL,IAAI,CAAC,WAAA;EACL,IAAA,CAAA,cAAgB;EAChB,MAAK,UAAS,IAAA;EACd,IAAI,CAAA,SAAO;EACX,IAAA,OAAM,yBAAe,aAA2B;QACzC,WAAA,IAAY,2BACC;GAEnB,IAAA,CAAA,YAAA,OAAA,GAAA,gBAAA,KAAA;EACD,CAAA;EACA,SAAA,QAAa,OAAS;EACxB,aAAI,SAAW,WAAa;CAG5B,GAAA,CAAA,WAAM,YAAoB,CAAA;CAI1B,MAAM,oBAAA,gBAAqB,MACzB,mBAAM,QACN;CAEF,MAAM,qBAAiB,gBAAgB,MAAM,oBAAwB,QAAA;CAErE,MAAM,iBAAA,gBAEJ,MAAA,gBACG,QAAA;OACC,sBACI,OAAA,kBAAgB;EAExB,IAAI,eAAY,MAAA,gBAAA;EAChB,IAAA,CAAA,WAAgB;EAChB,MAAK,UAAS,MAAA;EAId,IAAI,CAAC,SAAS;EACd,IAAA,CAAA,SAAA,OAAiB,GAAK;EACtB,iBAAU,KAAA;EAIV,IAAA,MAAQ,kBAAQ;EAChB,QAAA,QAAgB,eAAI;EACtB,gBAAA,IAAA;CAEA;CAEA,MAAM,uBAAmB,MAAU;OACjC,mBAAuB,UAAK,UAAA;EAC5B,uBAAU,KAAkB;EAC5B,IAAI,MAAC,kBAAW;EAChB,IAAI,CAAA,WAAA;EACJ,IAAI,cAAM;EACV,IAAI,MAAM,SAAQ;EAClB,IAAI,MAAM,QAAA;EACV,IAAI,MAAC,SAAa;EAClB,IAAA,CAAA,aAAgB,KAAM,GAAA;EACtB,MAAM,UAAA,MAAA;EACN,MAAA,0BAA0B,mBAAY,OAAiB,OAAA;EACxD,iBAAA,SAAA,YAAA,iBAAA;CAED,CAAA;CAEA,MAAM,qBAAiB,MAAU;OAC/B,iBAAqB,UAAK,UAAA;EAC1B,qBAAU,KAAA;EACV,IAAI,MAAC,kBAAW;EAChB,IAAI,CAAC,WAAA;MACH,CAAA,aAAgB,KAAK,GAAA;GACrB,gBAAA,KAAA;GACF;EACA;EACA,MAAM,UAAA,MAAA;EACN,MAAI,0BAAsB,mBAAqB,OAAM,OACnD;4BAEqB,qBAAA,MAAA,MAAA,GAAA,iBAAA,MAAA,QAAA,YAAA,iBAAA;OAExB,gBAAA,KAAA;CAED,CAAA;CAIA,MAAM,aAAS,MAAU;OACvB,SAAa,UAAK,UAAA;EAClB,aAAK,KAAW;EAChB,IAAI,CAAC,WAAA;EAIL,IAAA,CAAA,oBAAoB,KAAA,GAAA;EACpB,MAAA,cAAgB,gBAAK,oBAAA;EACtB,gBAAA,KAAA;CAED,CAAA;CAWA,MAAM,kBAAe,WAAU,gBAAgC;OACxD,eAAW,UAAA,YAAA;EAChB,IAAI,CAAC,WAAW;EAChB,IAAI,CAAC,WAAS;EACd,IAAI,CAAC,SAAA;EAGL,IAAA,CAAA,iBAAqB;uBACC;GACpB,IAAI,SAAC,OAAY,GAAA;GACjB,IAAA,CAAA,YAAc,OAAA,GAAA;GACf,QAAA,MAAA;EACF,CAAA;CAED,CAAA;CACA,MAAM,UAAA,WAAiB,GAAA;CACvB,MAAM,iBAAA,aAAmB,iBAAa,OAAA;CAKtC,MAAM,mBAAiB,aAAA,0BAAmC,OAAA;CAE1D,MAAI,CAAA,gBACF,qBAAgB,SAAA,KAAA;KACd,iBAAgB,gBAAA;EAChB,IAAA,CAAA,WAAgB;EAChB,MAAK,UAAS,IAAA;EACd,IAAA,CAAA,SAAY;EACZ,MAAM,MAAA,QAAQ,QAA6B,YAAA;EAC3C,MAAA,OAAA,QAAkB;EACpB,kBAAc,oBAAA,KAAA,IAAA,CAAA;CAGhB,GAAA,CAAA,SAAM,CAAA;CACN,MAAM,YAAQ,MAAA;OACR,QAAA,cACK;MAAE,eAAe,OAAA;GAAiB,eAAG;GAAU,GAAA;EAExD;EACF,OAAI;CAEJ,GAAA,CAAA,eAAQ,SAAA,CAAA;SACN;EACA,sBAAkB,aAAa,gBAAA,KAAA;EAC/B,kBAAiB,aAAY,KAAA;EAC7B,iBAAG,YAAA,KAAA;EACH,GAAG;EACH,GAAA;EACA,KAAA,aAAA,KAAA,cAAA,MAAA,GAAA;EACA;YACE,YAAA;GACA;GACA;GACA;GACA;GACA;GACD,cAAA,MAAA;EACD,CAAA;EAEA,UAAA,oBAA4B,gBAAkB,OAAA,KAAA;EAC9C,iBAAA,WAAA,KAAA,IAAA,MAAA;EACA;EACA;EACA;EACA;EACA;EACF;CAEA;CAEJ,OAAA,sBAAA,KAAA;;;;;;;;;;;;;;;;;;;;;;;MAyBE,YAAO,WAAc,SADH,UAAa,OACQ;CACxC,OAAA,cAAA,SAAA,aAAA,KAAA,CAAA"}
@@ -0,0 +1,142 @@
1
+ import { Options, Props } from "@ariakit/react-utils";
2
+ import { ElementType, SyntheticEvent } from "react";
3
+ import { BivariantCallback } from "@ariakit/utils";
4
+
5
+ //#region src/focusable/focusable.d.ts
6
+ declare const TagName = "div";
7
+ type TagName = typeof TagName;
8
+ /**
9
+ * Returns props to create a `Focusable` component.
10
+ * @see https://ariakit.com/components/focusable
11
+ * @example
12
+ * ```jsx
13
+ * const props = useFocusable();
14
+ * <Role {...props}>Focusable</Role>
15
+ * ```
16
+ */
17
+ declare const useFocusable: import("@ariakit/react-utils").Hook<"div", FocusableOptions<"div">>;
18
+ /**
19
+ * Renders a focusable element. When this element gains keyboard focus, it gets
20
+ * a
21
+ * [`data-focus-visible`](https://ariakit.com/guide/styling#data-focus-visible)
22
+ * attribute and triggers the
23
+ * [`onFocusVisible`](https://ariakit.com/reference/focusable#onfocusvisible)
24
+ * prop.
25
+ *
26
+ * The `Focusable` component supports the
27
+ * [`disabled`](https://ariakit.com/reference/focusable#disabled) prop for all
28
+ * elements, even those not supporting the native `disabled` attribute. Disabled
29
+ * elements using the `Focusable` component may be still accessible via keyboard
30
+ * by using the the
31
+ * [`accessibleWhenDisabled`](https://ariakit.com/reference/focusable#accessiblewhendisabled)
32
+ * prop.
33
+ * @see https://ariakit.com/components/focusable
34
+ * @example
35
+ * ```jsx
36
+ * <Focusable>Focusable</Focusable>
37
+ * ```
38
+ */
39
+ declare const Focusable: (props: FocusableProps) => import("react").ReactElement<any, string | import("react").JSXElementConstructor<any>>;
40
+ interface FocusableOptions<_T extends ElementType = TagName> extends Options {
41
+ /**
42
+ * Determines if the element is disabled. This sets the `aria-disabled`
43
+ * attribute accordingly, enabling support for all elements, including those
44
+ * that don't support the native `disabled` attribute.
45
+ *
46
+ * This feature can be combined with the
47
+ * [`accessibleWhenDisabled`](https://ariakit.com/reference/focusable#accessiblewhendisabled)
48
+ * prop to make disabled elements still accessible via keyboard.
49
+ *
50
+ * **Note**: For this prop to work, the
51
+ * [`focusable`](https://ariakit.com/reference/command#focusable) prop must be
52
+ * set to `true`, if it's not set by default.
53
+ *
54
+ * Live examples:
55
+ * - [Submenu](https://ariakit.com/examples/menu-nested)
56
+ * - [Combobox with Tabs](https://ariakit.com/examples/combobox-tabs)
57
+ * - [Context Menu](https://ariakit.com/examples/menu-context-menu)
58
+ * @default false
59
+ */
60
+ disabled?: boolean;
61
+ /**
62
+ * Automatically focuses the element upon mounting, similar to the native
63
+ * `autoFocus` prop. This addresses an issue where the element with the native
64
+ * `autoFocus` attribute might receive focus before React effects are
65
+ * executed.
66
+ *
67
+ * The `autoFocus` prop can also be used with
68
+ * [Focusable](https://ariakit.com/components/focusable) elements within a
69
+ * [Dialog](https://ariakit.com/components/dialog) component, establishing the
70
+ * initial focus as the dialog opens.
71
+ *
72
+ * **Note**: For this prop to work, the
73
+ * [`focusable`](https://ariakit.com/reference/command#focusable) prop must be
74
+ * set to `true`, if it's not set by default.
75
+ *
76
+ * Live examples:
77
+ * - [Warning on Dialog
78
+ * hide](https://ariakit.com/examples/dialog-hide-warning)
79
+ * - [Dialog with React
80
+ * Router](https://ariakit.com/examples/dialog-react-router)
81
+ * - [Nested Dialog](https://ariakit.com/examples/dialog-nested)
82
+ * @default false
83
+ */
84
+ autoFocus?: boolean;
85
+ /**
86
+ * Determines if [Focusable](https://ariakit.com/components/focusable)
87
+ * features should be active on non-native focusable elements.
88
+ *
89
+ * **Note**: This prop only turns off the additional features provided by the
90
+ * [`Focusable`](https://ariakit.com/reference/focusable) component.
91
+ * Non-native focusable elements will lose their focusability entirely.
92
+ * However, native focusable elements will retain their inherent focusability,
93
+ * but without added features such as improved
94
+ * [`autoFocus`](https://ariakit.com/reference/focusable#autofocus),
95
+ * [`accessibleWhenDisabled`](https://ariakit.com/reference/focusable#accessiblewhendisabled),
96
+ * [`onFocusVisible`](https://ariakit.com/reference/focusable#onfocusvisible),
97
+ * etc.
98
+ * @default true
99
+ */
100
+ focusable?: boolean;
101
+ /**
102
+ * Indicates whether the element should be focusable even when it is
103
+ * [`disabled`](https://ariakit.com/reference/focusable#disabled).
104
+ *
105
+ * This is important when discoverability is a concern. For example:
106
+ *
107
+ * > A toolbar in an editor contains a set of special smart paste functions
108
+ * that are disabled when the clipboard is empty or when the function is not
109
+ * applicable to the current content of the clipboard. It could be helpful to
110
+ * keep the disabled buttons focusable if the ability to discover their
111
+ * functionality is primarily via their presence on the toolbar.
112
+ *
113
+ * Learn more on [Focusability of disabled
114
+ * controls](https://www.w3.org/WAI/ARIA/apg/practices/keyboard-interface/#focusabilityofdisabledcontrols).
115
+ *
116
+ * Live examples:
117
+ * - [Combobox with Tabs](https://ariakit.com/examples/combobox-tabs)
118
+ * - [Command Menu with
119
+ * Tabs](https://ariakit.com/examples/dialog-combobox-tab-command-menu)
120
+ */
121
+ accessibleWhenDisabled?: boolean;
122
+ /**
123
+ * Custom event handler invoked when the element gains focus through keyboard
124
+ * interaction or a key press occurs while the element is in focus. This is
125
+ * the programmatic equivalent of the
126
+ * [`data-focus-visible`](https://ariakit.com/guide/styling#data-focus-visible)
127
+ * attribute.
128
+ *
129
+ * **Note**: For this prop to work, the
130
+ * [`focusable`](https://ariakit.com/reference/command#focusable) prop must be
131
+ * set to `true`, if it's not set by default.
132
+ *
133
+ * Live examples:
134
+ * - [Navigation Menubar](https://ariakit.com/examples/menubar-navigation)
135
+ * - [Custom Checkbox](https://ariakit.com/examples/checkbox-custom)
136
+ */
137
+ onFocusVisible?: BivariantCallback<(event: SyntheticEvent<HTMLElement>) => void>;
138
+ }
139
+ type FocusableProps<T extends ElementType = TagName> = Props<T, FocusableOptions<T>>;
140
+ //#endregion
141
+ export { useFocusable as i, FocusableOptions as n, FocusableProps as r, Focusable as t };
142
+ //# sourceMappingURL=focusable-B00tOxtB.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"focusable-B00tOxtB.d.ts","names":["Options","Props","BivariantCallback","ElementType","SyntheticEvent","TagName","useFocusable","FocusableOptions","Hook","Focusable","FocusableProps","props","ReactElement","JSXElementConstructor","_T","HTMLElement","disabled","autoFocus","focusable","accessibleWhenDisabled","onFocusVisible","event","T"],"sources":["../src/focusable/focusable.d.ts"],"mappings":";;;;;cAGcK,OAAAA;AAAAA,KACTA,OAAAA,UAAiBA,OAAO;AAF4B;;;;AACpC;AAAA;;;;AADoC,cAYpCC,YAAAA,iCAA6CE,IAAAA,QAAYD,gBAAgB;AAA9F;;;;AAA8F;AAsB9F;;;;;;;;;AAA2I;AAC3I;;;;;;AAvBA,cAsBqBE,SAAAA,GAAYE,KAAAA,EAAOD,cAAc,qBAAqBE,YAAAA,+BAA2CC,qBAAAA;AAAAA,UACrGN,gBAAAA,YAA4BJ,WAAAA,GAAcE,OAAAA,UAAiBL,OAAAA;EAAAA;;;;;;;;;;;;;;;;;AAiGF;AAE1E;EA/EIgB,QAAAA;EA+EsBM;;;;;;;;;;;;;;;;;AAA+D;;;;;;EAvDrFL,SAAAA;;;;;;;;;;;;;;;;EAgBAC,SAAAA;;;;;;;;;;;;;;;;;;;;;EAqBAC,sBAAAA;;;;;;;;;;;;;;;;EAgBAC,cAAAA,GAAiBlB,iBAAAA,EAAmBmB,KAAAA,EAAOjB,cAAAA,CAAeW,WAAAA;AAAAA;AAAAA,KAElDL,cAAAA,WAAyBP,WAAAA,GAAcE,OAAAA,IAAWJ,KAAAA,CAAMqB,CAAAA,EAAGf,gBAAAA,CAAiBe,CAAAA"}
@@ -0,0 +1,50 @@
1
+ import { CheckboxOptions } from "../checkbox/checkbox.js";
2
+ import { FormControlOptions } from "./form-control.js";
3
+ import { Props } from "@ariakit/react-utils";
4
+ import { ElementType } from "react";
5
+
6
+ //#region src/form/form-checkbox.d.ts
7
+ declare const TagName = "input";
8
+ type TagName = typeof TagName;
9
+ /**
10
+ * Returns props to create a `FormCheckbox` component.
11
+ * @see https://ariakit.com/components/form
12
+ * @example
13
+ * ```jsx
14
+ * const store = useFormStore({ defaultValues: { acceptTerms: false } });
15
+ * const props = useFormCheckbox({ store, name: store.names.acceptTerms });
16
+ * <Form store={store}>
17
+ * <label>
18
+ * <Role {...props} />
19
+ * Accept terms
20
+ * </label>
21
+ * </Form>
22
+ * ```
23
+ */
24
+ declare const useFormCheckbox: import("@ariakit/react-utils").Hook<"input", FormCheckboxOptions<"input">>;
25
+ /**
26
+ * Renders a checkbox input as a form control, representing a boolean, string,
27
+ * number, or array value.
28
+ * @see https://ariakit.com/components/form
29
+ * @example
30
+ * ```jsx {9}
31
+ * const form = useFormStore({
32
+ * defaultValues: {
33
+ * acceptTerms: false,
34
+ * },
35
+ * });
36
+ *
37
+ * <Form store={form}>
38
+ * <label>
39
+ * <FormCheckbox name={form.names.acceptTerms} />
40
+ * Accept terms
41
+ * </label>
42
+ * </Form>
43
+ * ```
44
+ */
45
+ declare const FormCheckbox: (props: FormCheckboxProps) => import("react").ReactElement<any, string | import("react").JSXElementConstructor<any>>;
46
+ interface FormCheckboxOptions<T extends ElementType = TagName> extends FormControlOptions<T>, Omit<CheckboxOptions<T>, "store" | "name"> {}
47
+ type FormCheckboxProps<T extends ElementType = TagName> = Props<T, FormCheckboxOptions<T>>;
48
+ //#endregion
49
+ export { FormCheckbox, FormCheckboxOptions, FormCheckboxProps, useFormCheckbox };
50
+ //# sourceMappingURL=form-checkbox.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"form-checkbox.d.ts","names":["Props","ElementType","CheckboxOptions","FormControlOptions","TagName","useFormCheckbox","FormCheckboxOptions","Hook","FormCheckbox","FormCheckboxProps","props","ReactElement","JSXElementConstructor","T","Omit"],"sources":["../../src/form/form-checkbox.d.ts"],"mappings":";;;;;;cAIcI,OAAAA;AAAAA,KACTA,OAAAA,UAAiBA,OAAO;AAFgC;;;;AACxC;AAAA;;;;AACQ;AAgB7B;;;;AAAsG;AAlBzC,cAkBxCC,eAAAA,iCAAgDE,IAAAA,UAAcD,mBAAmB;;;;;;;;;AAqB2C;AACjJ;;;;;;;;;;;cADqBE,YAAAA,GAAeE,KAAAA,EAAOD,iBAAiB,qBAAqBE,YAAAA,+BAA2CC,qBAAAA;AAAAA,UAC3GN,mBAAAA,WAA8BL,WAAAA,GAAcG,OAAAA,UAAiBD,kBAAAA,CAAmBU,CAAAA,GAAIC,IAAAA,CAAKZ,eAAAA,CAAgBW,CAAAA;AAAAA,KAE9GJ,iBAAAA,WAA4BR,WAAAA,GAAcG,OAAAA,IAAWJ,KAAAA,CAAMa,CAAAA,EAAGP,mBAAAA,CAAoBO,CAAAA"}
@@ -0,0 +1,73 @@
1
+ "use client";
2
+ import { useCheckboxStore } from "../checkbox/checkbox-store.js";
3
+ import { useCheckbox } from "../checkbox/checkbox.js";
4
+ import { useFormContext } from "./form-context.js";
5
+ import { useFormControl } from "./form-control.js";
6
+ import { createElement, createHook, forwardRef, memo } from "@ariakit/react-utils";
7
+ import { invariant } from "@ariakit/utils";
8
+ //#region src/form/form-checkbox.tsx
9
+ const TagName = "input";
10
+ /**
11
+ * Returns props to create a `FormCheckbox` component.
12
+ * @see https://ariakit.com/components/form
13
+ * @example
14
+ * ```jsx
15
+ * const store = useFormStore({ defaultValues: { acceptTerms: false } });
16
+ * const props = useFormCheckbox({ store, name: store.names.acceptTerms });
17
+ * <Form store={store}>
18
+ * <label>
19
+ * <Role {...props} />
20
+ * Accept terms
21
+ * </label>
22
+ * </Form>
23
+ * ```
24
+ */
25
+ const useFormCheckbox = createHook(function useFormCheckbox({ store, name: nameProp, value, checked, defaultChecked, ...props }) {
26
+ const context = useFormContext();
27
+ store = store || context;
28
+ invariant(store, "FormCheckbox must be wrapped in a Form component.");
29
+ const name = String(nameProp);
30
+ props = useCheckbox({
31
+ store: useCheckboxStore({
32
+ value: store.useValue(name),
33
+ setValue: (value) => store?.setValue(name, value)
34
+ }),
35
+ value,
36
+ checked,
37
+ ...props
38
+ });
39
+ props = useFormControl({
40
+ store,
41
+ name,
42
+ "aria-labelledby": void 0,
43
+ ...props
44
+ });
45
+ return props;
46
+ });
47
+ /**
48
+ * Renders a checkbox input as a form control, representing a boolean, string,
49
+ * number, or array value.
50
+ * @see https://ariakit.com/components/form
51
+ * @example
52
+ * ```jsx {9}
53
+ * const form = useFormStore({
54
+ * defaultValues: {
55
+ * acceptTerms: false,
56
+ * },
57
+ * });
58
+ *
59
+ * <Form store={form}>
60
+ * <label>
61
+ * <FormCheckbox name={form.names.acceptTerms} />
62
+ * Accept terms
63
+ * </label>
64
+ * </Form>
65
+ * ```
66
+ */
67
+ const FormCheckbox = memo(forwardRef(function FormCheckbox(props) {
68
+ return createElement(TagName, useFormCheckbox(props));
69
+ }));
70
+ //#endregion
71
+ export { FormCheckbox, useFormCheckbox };
72
+
73
+ //# sourceMappingURL=form-checkbox.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"form-checkbox.js","names":[],"sources":["../../src/form/form-checkbox.tsx"],"sourcesContent":["import {\n createElement,\n createHook,\n forwardRef,\n memo,\n} from \"@ariakit/react-utils\";\nimport type { Props } from \"@ariakit/react-utils\";\nimport { invariant } from \"@ariakit/utils\";\nimport type { ElementType } from \"react\";\nimport { useCheckboxStore } from \"../checkbox/checkbox-store.ts\";\nimport type { CheckboxOptions } from \"../checkbox/checkbox.tsx\";\nimport { useCheckbox } from \"../checkbox/checkbox.tsx\";\nimport { useFormContext } from \"./form-context.tsx\";\nimport type { FormControlOptions } from \"./form-control.tsx\";\nimport { useFormControl } from \"./form-control.tsx\";\n\nconst TagName = \"input\" satisfies ElementType;\ntype TagName = typeof TagName;\n\n/**\n * Returns props to create a `FormCheckbox` component.\n * @see https://ariakit.com/components/form\n * @example\n * ```jsx\n * const store = useFormStore({ defaultValues: { acceptTerms: false } });\n * const props = useFormCheckbox({ store, name: store.names.acceptTerms });\n * <Form store={store}>\n * <label>\n * <Role {...props} />\n * Accept terms\n * </label>\n * </Form>\n * ```\n */\nexport const useFormCheckbox = createHook<TagName, FormCheckboxOptions>(\n function useFormCheckbox({\n store,\n name: nameProp,\n value,\n checked,\n defaultChecked,\n ...props\n }) {\n const context = useFormContext();\n store = store || context;\n\n invariant(\n store,\n process.env.NODE_ENV !== \"production\" &&\n \"FormCheckbox must be wrapped in a Form component.\",\n );\n\n const name = String(nameProp);\n\n const checkboxStore = useCheckboxStore({\n value: store.useValue(name),\n setValue: (value) => store?.setValue(name, value),\n });\n\n props = useCheckbox({ store: checkboxStore, value, checked, ...props });\n\n props = useFormControl({\n store,\n name,\n \"aria-labelledby\": undefined,\n ...props,\n });\n\n return props;\n },\n);\n\n/**\n * Renders a checkbox input as a form control, representing a boolean, string,\n * number, or array value.\n * @see https://ariakit.com/components/form\n * @example\n * ```jsx {9}\n * const form = useFormStore({\n * defaultValues: {\n * acceptTerms: false,\n * },\n * });\n *\n * <Form store={form}>\n * <label>\n * <FormCheckbox name={form.names.acceptTerms} />\n * Accept terms\n * </label>\n * </Form>\n * ```\n */\nexport const FormCheckbox = memo(\n forwardRef(function FormCheckbox(props: FormCheckboxProps) {\n const htmlProps = useFormCheckbox(props);\n return createElement(TagName, htmlProps);\n }),\n);\n\nexport interface FormCheckboxOptions<T extends ElementType = TagName>\n extends FormControlOptions<T>, Omit<CheckboxOptions<T>, \"store\" | \"name\"> {}\n\nexport type FormCheckboxProps<T extends ElementType = TagName> = Props<\n T,\n FormCheckboxOptions<T>\n>;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;MA2CI,kBAAgB,WAAe,SAAA,gBAAA,EAAA,OAAA,MAAA,UAAA,OAAA,SAAA,gBAAA,GAAA,SAAA;CAC/B,MAAA,UAAQ,eAAS;CAEjB,QAAA,SAGI;CAGJ,UAAM,OAAO,mDAAe;CAO5B,MAAA,OAAQ,OAAY,QAAA;SALE,YAAA;SACpB,iBAAsB;GACtB,OAAA,MAAW,SAAU,IAAA;GAGkB,WAAA,UAAA,OAAA,SAAA,MAAA,KAAA;EAAG,CAAA;EAAO;EAAS;EAAU,GAAA;CAEtE,CAAA;SACE,eAAA;EACA;EACA;EACA,mBAAG,KAAA;EACJ,GAAA;CAED,CAAA;CAEJ,OAAA;;;;;;;;;;;;;;;;;;;;;;MAyBI,eAAO,KAAc,WADH,SAAA,aACqB,OAAA;CACxC,OACH,cAAA,SAAA,gBAAA,KAAA,CAAA"}
@@ -0,0 +1,24 @@
1
+ import { s as FormStoreValues, t as FormStore } from "../form-store-C4Kf5QHm.js";
2
+
3
+ //#region src/form/form-context.d.ts
4
+ /**
5
+ * Returns the form store from the nearest form container.
6
+ * @example
7
+ * function FormInput() {
8
+ * const store = useFormContext();
9
+ *
10
+ * if (!store) {
11
+ * throw new Error("FormInput must be wrapped in FormProvider");
12
+ * }
13
+ *
14
+ * // Use the store...
15
+ * }
16
+ */
17
+ declare const useFormContext: () => FormStore<FormStoreValues> | undefined;
18
+ declare const useFormScopedContext: (onlyScoped?: boolean) => FormStore<FormStoreValues> | undefined;
19
+ declare const useFormProviderContext: () => FormStore<FormStoreValues> | undefined;
20
+ declare const FormContextProvider: (props: import("react").ProviderProps<FormStore<FormStoreValues> | undefined>) => import("react/jsx-runtime").JSX.Element;
21
+ declare const FormScopedContextProvider: (props: import("react").ProviderProps<FormStore<FormStoreValues> | undefined>) => import("react/jsx-runtime").JSX.Element;
22
+ //#endregion
23
+ export { FormContextProvider, FormScopedContextProvider, useFormContext, useFormProviderContext, useFormScopedContext };
24
+ //# sourceMappingURL=form-context.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"form-context.d.ts","names":["FormStore","useFormContext","_$__form_store_ts0","FormStoreValues","useFormScopedContext","onlyScoped","useFormProviderContext","FormContextProvider","ProviderProps","props","JSX","Element","FormScopedContextProvider"],"sources":["../../src/form/form-context.d.ts"],"mappings":";;;;;AAcA;;;;AAAoD;AACpD;;;;;;cADqBC,cAAAA,QAAsBD,SAAS,CAAuDE,eAAAA;AAAAA,cACtFE,oBAAAA,GAAuBC,UAAAA,eAAyBL,SAAS,CAAuDE,eAAAA;AAAAA,cAChHI,sBAAAA,QAA8BN,SAAS,CAAuDE,eAAAA;AAAAA,cAC9FK,mBAAAA,GAAsBE,KAAAA,kBAAuBD,aAAAA,CAAcR,SAAS,CAAoGE,eAAAA,+CAAXQ,GAAAA,CAAIC,OAAAA;AAAAA,cACjKC,yBAAAA,GAA4BH,KAAAA,kBAAuBD,aAAAA,CAAcR,SAAS,CAAoGE,eAAAA,+CAAXQ,GAAAA,CAAIC,OAAAA"}