@chassis-ui/react 0.1.3 → 0.3.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 (721) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +56 -23
  3. package/dist/accordion.d.ts +2 -0
  4. package/dist/accordion.js +1 -0
  5. package/dist/alert.d.ts +2 -0
  6. package/dist/alert.js +1 -0
  7. package/dist/autocomplete.d.ts +2 -0
  8. package/dist/autocomplete.js +1 -0
  9. package/dist/avatar.d.ts +2 -0
  10. package/dist/avatar.js +1 -0
  11. package/dist/badge.d.ts +2 -0
  12. package/dist/badge.js +1 -0
  13. package/dist/breadcrumb.d.ts +2 -0
  14. package/dist/breadcrumb.js +1 -0
  15. package/dist/button-group.d.ts +2 -0
  16. package/dist/button-group.js +1 -0
  17. package/dist/button.d.ts +3 -0
  18. package/dist/button.js +1 -0
  19. package/dist/calendar.d.ts +3 -0
  20. package/dist/calendar.js +1 -0
  21. package/dist/card.d.ts +2 -0
  22. package/dist/card.js +1 -0
  23. package/dist/carousel.d.ts +2 -0
  24. package/dist/carousel.js +1 -0
  25. package/dist/checkbox.d.ts +3 -0
  26. package/dist/checkbox.js +1 -0
  27. package/dist/chip-input.d.ts +2 -0
  28. package/dist/chip-input.js +1 -0
  29. package/dist/chip.d.ts +2 -0
  30. package/dist/chip.js +1 -0
  31. package/dist/chunks/Button-BoymWE-L.js +2 -0
  32. package/dist/chunks/Button-BoymWE-L.js.map +1 -0
  33. package/dist/chunks/Button-Cptd4Yk7.d.ts +66 -0
  34. package/dist/chunks/Chip-DCaWaBqo.js +2 -0
  35. package/dist/chunks/Chip-DCaWaBqo.js.map +1 -0
  36. package/dist/chunks/CloseButton-DPgQztE0.js +2 -0
  37. package/dist/chunks/CloseButton-DPgQztE0.js.map +1 -0
  38. package/dist/chunks/ComboboxItem-C9TpoJOI.d.ts +55 -0
  39. package/dist/chunks/ComboboxListBox-Cm3L1ULl.js +2 -0
  40. package/dist/chunks/ComboboxListBox-Cm3L1ULl.js.map +1 -0
  41. package/dist/chunks/DateSegment-2agXAd0f.js +2 -0
  42. package/dist/chunks/DateSegment-2agXAd0f.js.map +1 -0
  43. package/dist/chunks/FormHelp-AE6_iSLJ.js +2 -0
  44. package/dist/chunks/FormHelp-AE6_iSLJ.js.map +1 -0
  45. package/dist/chunks/FormLabel-CYcQiFUI.js +2 -0
  46. package/dist/chunks/FormLabel-CYcQiFUI.js.map +1 -0
  47. package/dist/chunks/Icon-CioraWLF.d.ts +37 -0
  48. package/dist/chunks/Icon-DLB1f88W.js +2 -0
  49. package/dist/chunks/Icon-DLB1f88W.js.map +1 -0
  50. package/dist/chunks/Link-CZsWCnQb.js +2 -0
  51. package/dist/chunks/Link-CZsWCnQb.js.map +1 -0
  52. package/dist/chunks/Link-nrd0JWlO.d.ts +71 -0
  53. package/dist/chunks/Menu-CSBg2Zmc.js +2 -0
  54. package/dist/chunks/Menu-CSBg2Zmc.js.map +1 -0
  55. package/dist/chunks/Menu-QeYOzrUL.d.ts +95 -0
  56. package/{src/components/menu/MenuItemDef.ts → dist/chunks/MenuItemDef-D0VDtYIQ.d.ts} +25 -25
  57. package/dist/chunks/MenuToggle-BdQtF7FV.js +2 -0
  58. package/dist/chunks/MenuToggle-BdQtF7FV.js.map +1 -0
  59. package/dist/chunks/Portal-CgeR1WXV.js +2 -0
  60. package/dist/chunks/Portal-CgeR1WXV.js.map +1 -0
  61. package/dist/chunks/RangeCalendar-BJl-j4W2.js +2 -0
  62. package/dist/chunks/RangeCalendar-BJl-j4W2.js.map +1 -0
  63. package/dist/chunks/VisuallyHidden-C2dM7HhC.js +2 -0
  64. package/dist/chunks/VisuallyHidden-C2dM7HhC.js.map +1 -0
  65. package/dist/chunks/accordion-B8UWyvQB.js +2 -0
  66. package/dist/chunks/accordion-B8UWyvQB.js.map +1 -0
  67. package/dist/chunks/alert-BXI-_qlt.js +2 -0
  68. package/dist/chunks/alert-BXI-_qlt.js.map +1 -0
  69. package/dist/chunks/autocomplete-Baf9VSHN.js +2 -0
  70. package/dist/chunks/autocomplete-Baf9VSHN.js.map +1 -0
  71. package/dist/chunks/avatar-S3dGy6Qc.js +2 -0
  72. package/dist/chunks/avatar-S3dGy6Qc.js.map +1 -0
  73. package/dist/chunks/badge-D2oztCvs.js +2 -0
  74. package/dist/chunks/badge-D2oztCvs.js.map +1 -0
  75. package/dist/chunks/breadcrumb-s6J9itez.js +2 -0
  76. package/dist/chunks/breadcrumb-s6J9itez.js.map +1 -0
  77. package/dist/chunks/breakpoints-CJ-498B7.d.ts +7 -0
  78. package/dist/chunks/breakpoints-o_2Ev7ir.js +2 -0
  79. package/dist/chunks/breakpoints-o_2Ev7ir.js.map +1 -0
  80. package/dist/chunks/button-group-BGppPrIv.js +2 -0
  81. package/dist/chunks/button-group-BGppPrIv.js.map +1 -0
  82. package/dist/chunks/card-YXn3bj_d.js +2 -0
  83. package/dist/chunks/card-YXn3bj_d.js.map +1 -0
  84. package/dist/chunks/carousel-fTVPqnSV.js +2 -0
  85. package/dist/chunks/carousel-fTVPqnSV.js.map +1 -0
  86. package/dist/chunks/checkbox-ChACalAw.js +2 -0
  87. package/dist/chunks/checkbox-ChACalAw.js.map +1 -0
  88. package/dist/chunks/chip-input-BpVDRERg.js +2 -0
  89. package/dist/chunks/chip-input-BpVDRERg.js.map +1 -0
  90. package/dist/chunks/collapse--Go2Y73B.js +2 -0
  91. package/dist/chunks/collapse--Go2Y73B.js.map +1 -0
  92. package/dist/chunks/color-input-Bwl5ef5B.js +2 -0
  93. package/dist/chunks/color-input-Bwl5ef5B.js.map +1 -0
  94. package/dist/chunks/combobox-Bp1tIaiW.js +2 -0
  95. package/dist/chunks/combobox-Bp1tIaiW.js.map +1 -0
  96. package/dist/chunks/context-menu-B4a0tS-h.js +2 -0
  97. package/dist/chunks/context-menu-B4a0tS-h.js.map +1 -0
  98. package/dist/chunks/datagrid-CH3Cy-q7.js +3 -0
  99. package/dist/chunks/datagrid-CH3Cy-q7.js.map +1 -0
  100. package/dist/chunks/dateRangePresets-R1FtA1zp.d.ts +42 -0
  101. package/dist/chunks/datepicker-bOiM_zhJ.js +2 -0
  102. package/dist/chunks/datepicker-bOiM_zhJ.js.map +1 -0
  103. package/dist/chunks/dialogTransition-i9vw0i2Z.js +2 -0
  104. package/dist/chunks/dialogTransition-i9vw0i2Z.js.map +1 -0
  105. package/dist/chunks/direction-LN6uwsK5.js +2 -0
  106. package/dist/chunks/direction-LN6uwsK5.js.map +1 -0
  107. package/dist/chunks/divider-CjbF4OfA.js +2 -0
  108. package/dist/chunks/divider-CjbF4OfA.js.map +1 -0
  109. package/dist/chunks/drawer-C7Tz4XU_.js +2 -0
  110. package/dist/chunks/drawer-C7Tz4XU_.js.map +1 -0
  111. package/dist/chunks/file-input-CDM6qrmV.js +2 -0
  112. package/dist/chunks/file-input-CDM6qrmV.js.map +1 -0
  113. package/dist/chunks/flex-CmlJbKVj.js +2 -0
  114. package/dist/chunks/flex-CmlJbKVj.js.map +1 -0
  115. package/dist/chunks/floating-input-DmSZZc27.js +2 -0
  116. package/dist/chunks/floating-input-DmSZZc27.js.map +1 -0
  117. package/dist/chunks/focus-ring-SR_LwaN7.js +2 -0
  118. package/dist/chunks/focus-ring-SR_LwaN7.js.map +1 -0
  119. package/dist/chunks/focusRedirect-BrvK3U_o.js +2 -0
  120. package/dist/chunks/focusRedirect-BrvK3U_o.js.map +1 -0
  121. package/dist/chunks/form-GpdAyWWi.js +2 -0
  122. package/dist/chunks/form-GpdAyWWi.js.map +1 -0
  123. package/dist/chunks/form-field-CNPGTMiW.js +2 -0
  124. package/dist/chunks/form-field-CNPGTMiW.js.map +1 -0
  125. package/dist/chunks/grid-DK_vxz-4.js +2 -0
  126. package/dist/chunks/grid-DK_vxz-4.js.map +1 -0
  127. package/dist/chunks/icon-BQsT6YtE.js +2 -0
  128. package/dist/chunks/icon-BQsT6YtE.js.map +1 -0
  129. package/dist/chunks/iconConfig-C6gbYhsD.d.ts +71 -0
  130. package/dist/chunks/iconSlot-BNu2MrFI.js +2 -0
  131. package/dist/chunks/iconSlot-BNu2MrFI.js.map +1 -0
  132. package/dist/chunks/index-4cKG9KWB.d.ts +85 -0
  133. package/dist/chunks/index-6uob77s9.d.ts +81 -0
  134. package/dist/chunks/index-91YA-jkp.d.ts +127 -0
  135. package/dist/chunks/index-9rQeMqVI.d.ts +42 -0
  136. package/dist/chunks/index-B0-8n-Gs.d.ts +106 -0
  137. package/dist/chunks/index-B2K-O9kl.d.ts +59 -0
  138. package/dist/chunks/index-B8uaSJA9.d.ts +96 -0
  139. package/dist/chunks/index-BA-raEMm.d.ts +29 -0
  140. package/dist/chunks/index-BAsbRx5n.d.ts +54 -0
  141. package/dist/chunks/index-BF3OWUVc.d.ts +66 -0
  142. package/dist/chunks/index-BNf0jIIL.d.ts +213 -0
  143. package/dist/chunks/index-BO9jLOIb.d.ts +59 -0
  144. package/dist/chunks/index-BTTeKpiE.d.ts +364 -0
  145. package/dist/chunks/index-BVGGIaPX.d.ts +111 -0
  146. package/dist/chunks/index-B_UzbGOa.d.ts +195 -0
  147. package/dist/chunks/index-Bi8FFadV.d.ts +99 -0
  148. package/dist/chunks/index-Bkj17NEQ.d.ts +51 -0
  149. package/dist/chunks/index-Bm2NpgND.d.ts +82 -0
  150. package/dist/chunks/index-BnR7wjax.d.ts +68 -0
  151. package/dist/chunks/index-BxROljJI.d.ts +18 -0
  152. package/dist/chunks/index-Bz8MDq0H.d.ts +85 -0
  153. package/dist/chunks/index-C4Dks__B.d.ts +139 -0
  154. package/dist/chunks/index-CCXJXToc.d.ts +53 -0
  155. package/dist/chunks/index-CFnQubsV.d.ts +123 -0
  156. package/dist/chunks/index-CJXKl97l.d.ts +120 -0
  157. package/dist/chunks/index-CJzKu7QI.d.ts +41 -0
  158. package/dist/chunks/index-CKx1KHED.d.ts +303 -0
  159. package/dist/chunks/index-COsIPd8L.d.ts +63 -0
  160. package/dist/chunks/index-CRfm7W6C.d.ts +231 -0
  161. package/dist/chunks/index-CTpwB1yR.d.ts +236 -0
  162. package/dist/chunks/index-CVUMS0x7.d.ts +74 -0
  163. package/dist/chunks/index-CYgBmZ8w.d.ts +271 -0
  164. package/dist/chunks/index-Cc4SSslb.d.ts +205 -0
  165. package/dist/chunks/index-CftERHnE.d.ts +25 -0
  166. package/dist/chunks/index-Ci7AEgEc.d.ts +47 -0
  167. package/dist/chunks/index-CqZ68Z8R.d.ts +415 -0
  168. package/dist/chunks/index-CsARGAzD.d.ts +50 -0
  169. package/dist/chunks/index-CsMIgBsd.d.ts +40 -0
  170. package/dist/chunks/index-D9PZHY_I.d.ts +136 -0
  171. package/dist/chunks/index-DAoPg59I.d.ts +81 -0
  172. package/dist/chunks/index-DHGgezXU.d.ts +59 -0
  173. package/dist/chunks/index-DHOG_rjE.d.ts +121 -0
  174. package/dist/chunks/index-DJfga0Ce.d.ts +57 -0
  175. package/dist/chunks/index-DJr_ZK4b.d.ts +110 -0
  176. package/dist/chunks/index-DMbdEm__.d.ts +119 -0
  177. package/dist/chunks/index-DXjbI7Yv.d.ts +133 -0
  178. package/dist/chunks/index-DaHQdNul.d.ts +182 -0
  179. package/dist/chunks/index-Dcc_W6Kv.d.ts +147 -0
  180. package/dist/chunks/index-DceCODH9.d.ts +138 -0
  181. package/dist/chunks/index-Ddd7iWfm.d.ts +32 -0
  182. package/dist/chunks/index-Dfg4Ftb8.d.ts +69 -0
  183. package/dist/chunks/index-Dfy1YW5j.d.ts +74 -0
  184. package/dist/chunks/index-DgHvXzVh.d.ts +208 -0
  185. package/dist/chunks/index-Dh5CaHTP.d.ts +45 -0
  186. package/dist/chunks/index-DjXRq-n3.d.ts +98 -0
  187. package/dist/chunks/index-DjrEvKd-.d.ts +193 -0
  188. package/dist/chunks/index-DtbUXxjz.d.ts +54 -0
  189. package/dist/chunks/index-Du9fBqkT.d.ts +56 -0
  190. package/dist/chunks/index-FKh7iFQE.d.ts +95 -0
  191. package/dist/chunks/index-HrKN6s8z.d.ts +67 -0
  192. package/dist/chunks/index-I-H3VJ-L.d.ts +229 -0
  193. package/dist/chunks/index-RHJhkSY-.d.ts +273 -0
  194. package/dist/chunks/index-e7SJkI_m.d.ts +102 -0
  195. package/dist/chunks/index-g74gO0pc.d.ts +36 -0
  196. package/dist/chunks/index-qMq_-GY2.d.ts +105 -0
  197. package/dist/chunks/index-t_x6jj7l.d.ts +97 -0
  198. package/dist/chunks/input-adorn-DwdX-jxA.js +2 -0
  199. package/dist/chunks/input-adorn-DwdX-jxA.js.map +1 -0
  200. package/dist/chunks/input-group-Cuiuf4Dl.js +2 -0
  201. package/dist/chunks/input-group-Cuiuf4Dl.js.map +1 -0
  202. package/dist/chunks/lazyElement-tfMG21pZ.js +2 -0
  203. package/dist/chunks/lazyElement-tfMG21pZ.js.map +1 -0
  204. package/dist/chunks/list-BQCkwWjF.js +2 -0
  205. package/dist/chunks/list-BQCkwWjF.js.map +1 -0
  206. package/dist/chunks/menu-98EAD9nj.js +2 -0
  207. package/dist/chunks/menu-98EAD9nj.js.map +1 -0
  208. package/dist/chunks/modal-bgDR29Jh.js +2 -0
  209. package/dist/chunks/modal-bgDR29Jh.js.map +1 -0
  210. package/dist/chunks/nav-TiZuTHC6.js +2 -0
  211. package/dist/chunks/nav-TiZuTHC6.js.map +1 -0
  212. package/dist/chunks/nav-overflow-Ay5mM5Gc.js +2 -0
  213. package/dist/chunks/nav-overflow-Ay5mM5Gc.js.map +1 -0
  214. package/dist/chunks/navOverflow-B5krZe6D.js +2 -0
  215. package/dist/chunks/navOverflow-B5krZe6D.js.map +1 -0
  216. package/dist/chunks/navVariant-CnD21GBS.d.ts +5 -0
  217. package/dist/chunks/navVariant-DeGTk9B7.js +2 -0
  218. package/dist/chunks/navVariant-DeGTk9B7.js.map +1 -0
  219. package/dist/chunks/navbar-DxIwt0sc.js +2 -0
  220. package/dist/chunks/navbar-DxIwt0sc.js.map +1 -0
  221. package/dist/chunks/notification-Ds24wnPq.js +2 -0
  222. package/dist/chunks/notification-Ds24wnPq.js.map +1 -0
  223. package/dist/chunks/number-field-IBIX2IWH.js +2 -0
  224. package/dist/chunks/number-field-IBIX2IWH.js.map +1 -0
  225. package/dist/chunks/otp-input-ws393uPB.js +2 -0
  226. package/dist/chunks/otp-input-ws393uPB.js.map +1 -0
  227. package/dist/chunks/overlayPlacement-BtS90IVf.js +2 -0
  228. package/dist/chunks/overlayPlacement-BtS90IVf.js.map +1 -0
  229. package/dist/chunks/overlayPlacement-CIsLpycT.d.ts +7 -0
  230. package/dist/chunks/pagination-BkOquk-x.js +2 -0
  231. package/dist/chunks/pagination-BkOquk-x.js.map +1 -0
  232. package/dist/chunks/password-strength-DDK8pHRq.js +2 -0
  233. package/dist/chunks/password-strength-DDK8pHRq.js.map +1 -0
  234. package/dist/chunks/placeholder-BCr83sUn.js +2 -0
  235. package/dist/chunks/placeholder-BCr83sUn.js.map +1 -0
  236. package/dist/chunks/polymorphic-BhGNZQja.js +2 -0
  237. package/dist/chunks/polymorphic-BhGNZQja.js.map +1 -0
  238. package/dist/chunks/polymorphic-CVHbTHSN.d.ts +41 -0
  239. package/dist/chunks/popover-Bdg8D4sm.js +2 -0
  240. package/dist/chunks/popover-Bdg8D4sm.js.map +1 -0
  241. package/dist/chunks/progress-zWkTltor.js +2 -0
  242. package/dist/chunks/progress-zWkTltor.js.map +1 -0
  243. package/dist/chunks/radio-DOFYCfJi.js +2 -0
  244. package/dist/chunks/radio-DOFYCfJi.js.map +1 -0
  245. package/dist/chunks/range-input-CT_8TKL7.js +2 -0
  246. package/dist/chunks/range-input-CT_8TKL7.js.map +1 -0
  247. package/dist/chunks/renderFormCheck-DN_-V62U.js +2 -0
  248. package/dist/chunks/renderFormCheck-DN_-V62U.js.map +1 -0
  249. package/dist/chunks/renderFormCheck-DZh_5Df8.d.ts +24 -0
  250. package/dist/chunks/renderFormField-Brkw1yA6.js +2 -0
  251. package/dist/chunks/renderFormField-Brkw1yA6.js.map +1 -0
  252. package/dist/chunks/renderFormField-ChNagAFN.d.ts +15 -0
  253. package/dist/chunks/renderMenuItemContent-DUezZrpj.js +2 -0
  254. package/dist/chunks/renderMenuItemContent-DUezZrpj.js.map +1 -0
  255. package/dist/chunks/scrollspy-C2HmrnZ4.js +2 -0
  256. package/dist/chunks/scrollspy-C2HmrnZ4.js.map +1 -0
  257. package/dist/chunks/scrollspy-D_lPjb92.js +2 -0
  258. package/dist/chunks/scrollspy-D_lPjb92.js.map +1 -0
  259. package/dist/chunks/search-field--nDoCI_E.js +2 -0
  260. package/dist/chunks/search-field--nDoCI_E.js.map +1 -0
  261. package/dist/chunks/select-BwJIfv9f.js +2 -0
  262. package/dist/chunks/select-BwJIfv9f.js.map +1 -0
  263. package/dist/chunks/skeleton-BrD2JwNx.js +2 -0
  264. package/dist/chunks/skeleton-BrD2JwNx.js.map +1 -0
  265. package/dist/chunks/slot-CNhFZdHF.js +2 -0
  266. package/dist/chunks/slot-CNhFZdHF.js.map +1 -0
  267. package/dist/chunks/spacingClassName-DVhk8m3P.js +2 -0
  268. package/dist/chunks/spacingClassName-DVhk8m3P.js.map +1 -0
  269. package/dist/chunks/spinner-DblhvrHL.js +2 -0
  270. package/dist/chunks/spinner-DblhvrHL.js.map +1 -0
  271. package/dist/chunks/stack-CsMiQbpq.js +2 -0
  272. package/dist/chunks/stack-CsMiQbpq.js.map +1 -0
  273. package/dist/chunks/static-table-D0M4oc_t.js +2 -0
  274. package/dist/chunks/static-table-D0M4oc_t.js.map +1 -0
  275. package/dist/chunks/stepper-CVXMJ2yg.js +2 -0
  276. package/dist/chunks/stepper-CVXMJ2yg.js.map +1 -0
  277. package/dist/chunks/switch-C6s3LxEv.js +2 -0
  278. package/dist/chunks/switch-C6s3LxEv.js.map +1 -0
  279. package/dist/chunks/table-Cy6uEuEP.js +2 -0
  280. package/dist/chunks/table-Cy6uEuEP.js.map +1 -0
  281. package/dist/chunks/tableClassName-CZA2Bse8.js +2 -0
  282. package/dist/chunks/tableClassName-CZA2Bse8.js.map +1 -0
  283. package/dist/chunks/tabs-91T7-8qq.js +2 -0
  284. package/dist/chunks/tabs-91T7-8qq.js.map +1 -0
  285. package/dist/chunks/text-input-B4pTv6SU.js +2 -0
  286. package/dist/chunks/text-input-B4pTv6SU.js.map +1 -0
  287. package/dist/chunks/textarea-1A1nABQE.js +2 -0
  288. package/dist/chunks/textarea-1A1nABQE.js.map +1 -0
  289. package/dist/chunks/time-field-B3MA7ED_.js +2 -0
  290. package/dist/chunks/time-field-B3MA7ED_.js.map +1 -0
  291. package/dist/chunks/toast-CGHl3-oU.js +2 -0
  292. package/dist/chunks/toast-CGHl3-oU.js.map +1 -0
  293. package/dist/chunks/tooltip-Bc-u6nIW.js +2 -0
  294. package/dist/chunks/tooltip-Bc-u6nIW.js.map +1 -0
  295. package/dist/chunks/tree-Cql1veeZ.js +2 -0
  296. package/dist/chunks/tree-Cql1veeZ.js.map +1 -0
  297. package/dist/chunks/types-CS_40Txv.d.ts +35 -0
  298. package/dist/chunks/unhandledProps-9Kdj7WVf.js +2 -0
  299. package/dist/chunks/unhandledProps-9Kdj7WVf.js.map +1 -0
  300. package/dist/chunks/useButtonSemantics-CILM_lhi.js +2 -0
  301. package/dist/chunks/useButtonSemantics-CILM_lhi.js.map +1 -0
  302. package/dist/chunks/useControllableState-CPUJxfKW.js +2 -0
  303. package/dist/chunks/useControllableState-CPUJxfKW.js.map +1 -0
  304. package/dist/chunks/useDialogElement-CgOnJAzu.js +2 -0
  305. package/dist/chunks/useDialogElement-CgOnJAzu.js.map +1 -0
  306. package/dist/chunks/useDisabledAnchorGuard-Cz58UCXy.js +2 -0
  307. package/dist/chunks/useDisabledAnchorGuard-Cz58UCXy.js.map +1 -0
  308. package/dist/chunks/useFloatingOverlay-DLIvwx-8.js +2 -0
  309. package/dist/chunks/useFloatingOverlay-DLIvwx-8.js.map +1 -0
  310. package/dist/chunks/useForkedRef-DVEfT-KI.js +2 -0
  311. package/dist/chunks/useForkedRef-DVEfT-KI.js.map +1 -0
  312. package/dist/chunks/useFormField-BOqmBTC4.js +2 -0
  313. package/dist/chunks/useFormField-BOqmBTC4.js.map +1 -0
  314. package/dist/chunks/useIsomorphicLayoutEffect-BbqRwuqn.js +2 -0
  315. package/dist/chunks/useIsomorphicLayoutEffect-BbqRwuqn.js.map +1 -0
  316. package/dist/chunks/useOpenStateProps-DykUbnPJ.js +2 -0
  317. package/dist/chunks/useOpenStateProps-DykUbnPJ.js.map +1 -0
  318. package/dist/chunks/useToastRegionQueue-CIV5SdiE.js +2 -0
  319. package/dist/chunks/useToastRegionQueue-CIV5SdiE.js.map +1 -0
  320. package/dist/chunks/useTransitionState-e5ToY7eX.js +2 -0
  321. package/dist/chunks/useTransitionState-e5ToY7eX.js.map +1 -0
  322. package/dist/chunks/validationClassName-gRGs4KBm.js +2 -0
  323. package/dist/chunks/validationClassName-gRGs4KBm.js.map +1 -0
  324. package/dist/chunks/visibleState-B_i1zHu2.js +2 -0
  325. package/dist/chunks/visibleState-B_i1zHu2.js.map +1 -0
  326. package/dist/close-button.d.ts +2 -0
  327. package/dist/close-button.js +1 -0
  328. package/dist/collapse.d.ts +2 -0
  329. package/dist/collapse.js +1 -0
  330. package/dist/color-input.d.ts +2 -0
  331. package/dist/color-input.js +1 -0
  332. package/dist/combobox.d.ts +3 -0
  333. package/dist/combobox.js +1 -0
  334. package/dist/context-menu.d.ts +2 -0
  335. package/dist/context-menu.js +1 -0
  336. package/dist/datagrid.d.ts +2 -0
  337. package/dist/datagrid.js +1 -0
  338. package/dist/datepicker.d.ts +2 -0
  339. package/dist/datepicker.js +1 -0
  340. package/dist/divider.d.ts +2 -0
  341. package/dist/divider.js +1 -0
  342. package/dist/drawer.d.ts +2 -0
  343. package/dist/drawer.js +1 -0
  344. package/dist/file-input.d.ts +2 -0
  345. package/dist/file-input.js +1 -0
  346. package/dist/flex.d.ts +2 -0
  347. package/dist/flex.js +1 -0
  348. package/dist/floating-input.d.ts +2 -0
  349. package/dist/floating-input.js +1 -0
  350. package/dist/form-field.d.ts +2 -0
  351. package/dist/form-field.js +1 -0
  352. package/dist/form.d.ts +2 -0
  353. package/dist/form.js +1 -0
  354. package/dist/grid.d.ts +2 -0
  355. package/dist/grid.js +1 -0
  356. package/dist/icon.d.ts +4 -0
  357. package/dist/icon.js +1 -0
  358. package/dist/index.d.ts +84 -6369
  359. package/dist/index.js +1 -2
  360. package/dist/input-adorn.d.ts +2 -0
  361. package/dist/input-adorn.js +1 -0
  362. package/dist/input-group.d.ts +2 -0
  363. package/dist/input-group.js +1 -0
  364. package/dist/link.d.ts +3 -0
  365. package/dist/link.js +1 -0
  366. package/dist/list.d.ts +2 -0
  367. package/dist/list.js +1 -0
  368. package/dist/menu.d.ts +4 -0
  369. package/dist/menu.js +1 -0
  370. package/dist/modal.d.ts +2 -0
  371. package/dist/modal.js +1 -0
  372. package/dist/nav-overflow.d.ts +2 -0
  373. package/dist/nav-overflow.js +1 -0
  374. package/dist/nav.d.ts +2 -0
  375. package/dist/nav.js +1 -0
  376. package/dist/navbar.d.ts +2 -0
  377. package/dist/navbar.js +1 -0
  378. package/dist/notification.d.ts +2 -0
  379. package/dist/notification.js +1 -0
  380. package/dist/number-field.d.ts +2 -0
  381. package/dist/number-field.js +1 -0
  382. package/dist/otp-input.d.ts +2 -0
  383. package/dist/otp-input.js +1 -0
  384. package/dist/pagination.d.ts +2 -0
  385. package/dist/pagination.js +1 -0
  386. package/dist/password-strength.d.ts +2 -0
  387. package/dist/password-strength.js +1 -0
  388. package/dist/placeholder.d.ts +2 -0
  389. package/dist/placeholder.js +1 -0
  390. package/dist/popover.d.ts +2 -0
  391. package/dist/popover.js +1 -0
  392. package/dist/portal.d.ts +2 -0
  393. package/dist/portal.js +1 -0
  394. package/dist/progress.d.ts +2 -0
  395. package/dist/progress.js +1 -0
  396. package/dist/radio.d.ts +2 -0
  397. package/dist/radio.js +1 -0
  398. package/dist/range-input.d.ts +2 -0
  399. package/dist/range-input.js +1 -0
  400. package/dist/scrollspy.d.ts +2 -0
  401. package/dist/scrollspy.js +1 -0
  402. package/dist/search-field.d.ts +2 -0
  403. package/dist/search-field.js +1 -0
  404. package/dist/select.d.ts +2 -0
  405. package/dist/select.js +1 -0
  406. package/dist/skeleton.d.ts +2 -0
  407. package/dist/skeleton.js +1 -0
  408. package/dist/spinner.d.ts +2 -0
  409. package/dist/spinner.js +1 -0
  410. package/dist/stack.d.ts +2 -0
  411. package/dist/stack.js +1 -0
  412. package/dist/static-table.d.ts +2 -0
  413. package/dist/static-table.js +1 -0
  414. package/dist/stepper.d.ts +2 -0
  415. package/dist/stepper.js +1 -0
  416. package/dist/style.css +1 -1
  417. package/dist/switch.d.ts +2 -0
  418. package/dist/switch.js +1 -0
  419. package/dist/table.d.ts +2 -0
  420. package/dist/table.js +1 -0
  421. package/dist/tabs.d.ts +2 -0
  422. package/dist/tabs.js +1 -0
  423. package/dist/text-input.d.ts +2 -0
  424. package/dist/text-input.js +1 -0
  425. package/dist/textarea.d.ts +2 -0
  426. package/dist/textarea.js +1 -0
  427. package/dist/time-field.d.ts +2 -0
  428. package/dist/time-field.js +1 -0
  429. package/dist/toast.d.ts +2 -0
  430. package/dist/toast.js +1 -0
  431. package/dist/tooltip.d.ts +2 -0
  432. package/dist/tooltip.js +1 -0
  433. package/dist/tree.d.ts +2 -0
  434. package/dist/tree.js +1 -0
  435. package/dist/visually-hidden.d.ts +2 -0
  436. package/dist/visually-hidden.js +1 -0
  437. package/package.json +120 -53
  438. package/src/components/accordion/Accordion.tsx +0 -190
  439. package/src/components/accordion/AccordionBody.tsx +0 -46
  440. package/src/components/accordion/AccordionHeader.tsx +0 -21
  441. package/src/components/accordion/AccordionItem.tsx +0 -59
  442. package/src/components/accordion/context.ts +0 -8
  443. package/src/components/accordion/index.ts +0 -8
  444. package/src/components/autocomplete/Autocomplete.tsx +0 -464
  445. package/src/components/autocomplete/AutocompleteGroup.tsx +0 -20
  446. package/src/components/autocomplete/AutocompleteItem.tsx +0 -18
  447. package/src/components/autocomplete/index.ts +0 -6
  448. package/src/components/avatar/Avatar.tsx +0 -137
  449. package/src/components/avatar/AvatarImage.tsx +0 -19
  450. package/src/components/avatar/AvatarStack.tsx +0 -98
  451. package/src/components/avatar/index.ts +0 -6
  452. package/src/components/badge/Badge.tsx +0 -94
  453. package/src/components/badge/index.ts +0 -2
  454. package/src/components/breadcrumb/Breadcrumb.tsx +0 -68
  455. package/src/components/breadcrumb/BreadcrumbItem.tsx +0 -38
  456. package/src/components/breadcrumb/index.ts +0 -4
  457. package/src/components/button/Button.tsx +0 -232
  458. package/src/components/button/index.ts +0 -2
  459. package/src/components/button-group/ButtonGroup.tsx +0 -55
  460. package/src/components/button-group/ButtonToolbar.tsx +0 -47
  461. package/src/components/button-group/index.ts +0 -4
  462. package/src/components/calendar/Calendar.scss +0 -57
  463. package/src/components/calendar/Calendar.tsx +0 -338
  464. package/src/components/calendar/CalendarMonthBlock.tsx +0 -57
  465. package/src/components/calendar/CalendarMonthGrid.tsx +0 -94
  466. package/src/components/calendar/CalendarMonthYearPicker.tsx +0 -164
  467. package/src/components/calendar/CalendarNavButton.tsx +0 -24
  468. package/src/components/calendar/CalendarWeekGrid.tsx +0 -58
  469. package/src/components/calendar/CalendarYearGrid.tsx +0 -128
  470. package/src/components/calendar/RangeCalendar.scss +0 -95
  471. package/src/components/calendar/RangeCalendar.tsx +0 -373
  472. package/src/components/calendar/index.ts +0 -6
  473. package/src/components/calendar/labels.tsx +0 -71
  474. package/src/components/card/Card.tsx +0 -173
  475. package/src/components/card/CardBody.tsx +0 -75
  476. package/src/components/card/CardFooter.tsx +0 -47
  477. package/src/components/card/CardGroup.tsx +0 -51
  478. package/src/components/card/CardHeader.tsx +0 -47
  479. package/src/components/card/CardImage.tsx +0 -70
  480. package/src/components/card/CardImageOverlay.tsx +0 -47
  481. package/src/components/card/CardLink.tsx +0 -40
  482. package/src/components/card/CardSubtitle.tsx +0 -47
  483. package/src/components/card/CardText.tsx +0 -47
  484. package/src/components/card/CardTitle.tsx +0 -47
  485. package/src/components/card/index.ts +0 -22
  486. package/src/components/carousel/Carousel.tsx +0 -753
  487. package/src/components/carousel/CarouselControlButton.tsx +0 -74
  488. package/src/components/carousel/CarouselControlNext.tsx +0 -22
  489. package/src/components/carousel/CarouselControlPrev.tsx +0 -22
  490. package/src/components/carousel/CarouselIndicators.tsx +0 -44
  491. package/src/components/carousel/CarouselInner.tsx +0 -56
  492. package/src/components/carousel/CarouselItem.tsx +0 -51
  493. package/src/components/carousel/CarouselOverlay.tsx +0 -51
  494. package/src/components/carousel/CarouselPlayPause.tsx +0 -61
  495. package/src/components/carousel/carouselEngine.ts +0 -170
  496. package/src/components/carousel/context.ts +0 -29
  497. package/src/components/carousel/index.ts +0 -21
  498. package/src/components/checkbox/Checkbox.tsx +0 -252
  499. package/src/components/checkbox/CheckboxGroup.tsx +0 -145
  500. package/src/components/checkbox/context.ts +0 -14
  501. package/src/components/checkbox/index.ts +0 -4
  502. package/src/components/chip/Chip.tsx +0 -184
  503. package/src/components/chip/index.ts +0 -2
  504. package/src/components/chip-input/ChipInput.tsx +0 -371
  505. package/src/components/chip-input/ChipList.tsx +0 -95
  506. package/src/components/chip-input/index.ts +0 -2
  507. package/src/components/close-button/CloseButton.tsx +0 -205
  508. package/src/components/close-button/index.ts +0 -2
  509. package/src/components/collapse/Collapse.tsx +0 -128
  510. package/src/components/collapse/index.ts +0 -2
  511. package/src/components/color-input/ColorInput.tsx +0 -106
  512. package/src/components/color-input/index.ts +0 -2
  513. package/src/components/combobox/Combobox.tsx +0 -320
  514. package/src/components/combobox/ComboboxGroup.tsx +0 -27
  515. package/src/components/combobox/ComboboxItem.tsx +0 -44
  516. package/src/components/combobox/ComboboxListBox.tsx +0 -98
  517. package/src/components/combobox/index.ts +0 -6
  518. package/src/components/datagrid/DataGrid.scss +0 -203
  519. package/src/components/datagrid/DataGrid.tsx +0 -259
  520. package/src/components/datagrid/DataGridBody.tsx +0 -162
  521. package/src/components/datagrid/DataGridCell.tsx +0 -47
  522. package/src/components/datagrid/DataGridColumn.tsx +0 -109
  523. package/src/components/datagrid/DataGridHeader.tsx +0 -47
  524. package/src/components/datagrid/DataGridPinBehavior.tsx +0 -225
  525. package/src/components/datagrid/DataGridRow.tsx +0 -48
  526. package/src/components/datagrid/DataGridSelectionCell.tsx +0 -74
  527. package/src/components/datagrid/DataGridTableLayout.ts +0 -30
  528. package/src/components/datagrid/index.ts +0 -14
  529. package/src/components/datagrid/useColumnGeometry.ts +0 -161
  530. package/src/components/datepicker/CalendarToggleButton.tsx +0 -58
  531. package/src/components/datepicker/ClearButton.tsx +0 -38
  532. package/src/components/datepicker/DateField.tsx +0 -54
  533. package/src/components/datepicker/DatePicker.scss +0 -51
  534. package/src/components/datepicker/DatePicker.tsx +0 -606
  535. package/src/components/datepicker/DateRangePicker.scss +0 -11
  536. package/src/components/datepicker/DateRangePicker.tsx +0 -361
  537. package/src/components/datepicker/index.ts +0 -4
  538. package/src/components/datepicker/renderDatePickerShell.tsx +0 -104
  539. package/src/components/drawer/Drawer.tsx +0 -213
  540. package/src/components/drawer/DrawerBody.tsx +0 -47
  541. package/src/components/drawer/DrawerFooter.tsx +0 -51
  542. package/src/components/drawer/DrawerHeader.tsx +0 -60
  543. package/src/components/drawer/DrawerTitle.tsx +0 -49
  544. package/src/components/drawer/index.ts +0 -10
  545. package/src/components/file-input/FileInput.tsx +0 -100
  546. package/src/components/file-input/index.ts +0 -2
  547. package/src/components/flex/Flex.tsx +0 -134
  548. package/src/components/flex/index.ts +0 -2
  549. package/src/components/floating-input/FloatingInput.tsx +0 -94
  550. package/src/components/floating-input/index.ts +0 -2
  551. package/src/components/form/Form.tsx +0 -26
  552. package/src/components/form/FormFeedback.tsx +0 -64
  553. package/src/components/form/FormHelp.tsx +0 -46
  554. package/src/components/form/FormLabel.tsx +0 -26
  555. package/src/components/form/index.ts +0 -8
  556. package/src/components/form/renderFormCheck.tsx +0 -86
  557. package/src/components/form-field/FormField.tsx +0 -84
  558. package/src/components/form-field/index.ts +0 -2
  559. package/src/components/form-field/renderFormField.tsx +0 -85
  560. package/src/components/grid/Col.tsx +0 -69
  561. package/src/components/grid/Container.tsx +0 -59
  562. package/src/components/grid/Grid.tsx +0 -86
  563. package/src/components/grid/GridItem.tsx +0 -123
  564. package/src/components/grid/Row.tsx +0 -71
  565. package/src/components/grid/gap.ts +0 -8
  566. package/src/components/grid/index.ts +0 -10
  567. package/src/components/icon/Icon.tsx +0 -74
  568. package/src/components/icon/index.ts +0 -2
  569. package/src/components/input-adorn/InputAdorn.tsx +0 -55
  570. package/src/components/input-adorn/index.ts +0 -2
  571. package/src/components/input-group/InputGroup.tsx +0 -50
  572. package/src/components/input-group/InputGroupAddon.tsx +0 -50
  573. package/src/components/input-group/index.ts +0 -4
  574. package/src/components/link/Link.tsx +0 -148
  575. package/src/components/link/index.ts +0 -2
  576. package/src/components/list/List.tsx +0 -193
  577. package/src/components/list/ListItem.tsx +0 -91
  578. package/src/components/list/index.ts +0 -4
  579. package/src/components/menu/Menu.tsx +0 -408
  580. package/src/components/menu/MenuDivider.tsx +0 -19
  581. package/src/components/menu/MenuHeader.tsx +0 -55
  582. package/src/components/menu/MenuItem.tsx +0 -85
  583. package/src/components/menu/MenuList.tsx +0 -142
  584. package/src/components/menu/MenuSubmenu.tsx +0 -284
  585. package/src/components/menu/MenuSubmenuBack.tsx +0 -39
  586. package/src/components/menu/MenuText.tsx +0 -47
  587. package/src/components/menu/MenuToggle.tsx +0 -148
  588. package/src/components/menu/index.ts +0 -19
  589. package/src/components/menu/menuNavigation.ts +0 -106
  590. package/src/components/menu/submenuGroup.ts +0 -43
  591. package/src/components/modal/Modal.tsx +0 -164
  592. package/src/components/modal/ModalBody.tsx +0 -47
  593. package/src/components/modal/ModalFooter.tsx +0 -51
  594. package/src/components/modal/ModalHeader.tsx +0 -60
  595. package/src/components/modal/ModalTitle.tsx +0 -49
  596. package/src/components/modal/index.ts +0 -10
  597. package/src/components/nav/Nav.tsx +0 -97
  598. package/src/components/nav/NavItem.tsx +0 -42
  599. package/src/components/nav/NavLink.tsx +0 -48
  600. package/src/components/nav/NavTitle.tsx +0 -22
  601. package/src/components/nav/index.ts +0 -7
  602. package/src/components/navbar/Navbar.tsx +0 -112
  603. package/src/components/navbar/NavbarBrand.tsx +0 -58
  604. package/src/components/navbar/NavbarNav.tsx +0 -47
  605. package/src/components/navbar/NavbarText.tsx +0 -47
  606. package/src/components/navbar/NavbarToggler.tsx +0 -34
  607. package/src/components/navbar/index.ts +0 -10
  608. package/src/components/notification/Notification.scss +0 -15
  609. package/src/components/notification/Notification.tsx +0 -187
  610. package/src/components/notification/NotificationIcon.tsx +0 -21
  611. package/src/components/notification/NotificationStack.tsx +0 -66
  612. package/src/components/notification/NotificationText.tsx +0 -47
  613. package/src/components/notification/NotificationTitle.tsx +0 -47
  614. package/src/components/notification/context.ts +0 -14
  615. package/src/components/notification/index.ts +0 -17
  616. package/src/components/notification/notificationQueue.ts +0 -48
  617. package/src/components/otp-input/OtpBox.tsx +0 -68
  618. package/src/components/otp-input/OtpInput.tsx +0 -342
  619. package/src/components/otp-input/index.ts +0 -2
  620. package/src/components/pagination/Pagination.tsx +0 -199
  621. package/src/components/pagination/PaginationItem.tsx +0 -152
  622. package/src/components/pagination/index.ts +0 -4
  623. package/src/components/password-strength/PasswordStrength.tsx +0 -155
  624. package/src/components/password-strength/index.ts +0 -2
  625. package/src/components/password-strength/strengthScore.ts +0 -79
  626. package/src/components/placeholder/Placeholder.tsx +0 -178
  627. package/src/components/placeholder/index.ts +0 -2
  628. package/src/components/popover/Popover.tsx +0 -269
  629. package/src/components/popover/index.ts +0 -2
  630. package/src/components/progress/Progress.tsx +0 -154
  631. package/src/components/progress/ProgressBar.tsx +0 -88
  632. package/src/components/progress/index.ts +0 -4
  633. package/src/components/radio/Radio.tsx +0 -98
  634. package/src/components/radio/RadioGroup.tsx +0 -142
  635. package/src/components/radio/context.ts +0 -14
  636. package/src/components/radio/index.ts +0 -4
  637. package/src/components/range-input/RangeInput.tsx +0 -109
  638. package/src/components/range-input/index.ts +0 -2
  639. package/src/components/select/Select.tsx +0 -277
  640. package/src/components/select/index.ts +0 -2
  641. package/src/components/skeleton/Skeleton.tsx +0 -89
  642. package/src/components/skeleton/SkeletonLoader.tsx +0 -91
  643. package/src/components/skeleton/index.ts +0 -4
  644. package/src/components/spinner/Spinner.tsx +0 -77
  645. package/src/components/spinner/index.ts +0 -2
  646. package/src/components/stack/Stack.tsx +0 -81
  647. package/src/components/stack/index.ts +0 -2
  648. package/src/components/stepper/Stepper.tsx +0 -172
  649. package/src/components/stepper/StepperItem.tsx +0 -66
  650. package/src/components/stepper/index.ts +0 -4
  651. package/src/components/switch/Switch.tsx +0 -259
  652. package/src/components/switch/index.ts +0 -2
  653. package/src/components/table/Table.css +0 -39
  654. package/src/components/table/Table.tsx +0 -413
  655. package/src/components/table/TableBody.tsx +0 -25
  656. package/src/components/table/TableCell.tsx +0 -27
  657. package/src/components/table/TableColumn.tsx +0 -31
  658. package/src/components/table/TableHeader.tsx +0 -26
  659. package/src/components/table/TableRow.tsx +0 -24
  660. package/src/components/table/index.ts +0 -12
  661. package/src/components/tabs/Tab.tsx +0 -36
  662. package/src/components/tabs/TabList.tsx +0 -76
  663. package/src/components/tabs/TabPanel.tsx +0 -68
  664. package/src/components/tabs/Tabs.tsx +0 -136
  665. package/src/components/tabs/context.ts +0 -24
  666. package/src/components/tabs/index.ts +0 -8
  667. package/src/components/text-input/TextInput.tsx +0 -188
  668. package/src/components/text-input/index.ts +0 -2
  669. package/src/components/textarea/Textarea.tsx +0 -145
  670. package/src/components/textarea/index.ts +0 -2
  671. package/src/components/toast/Toast.tsx +0 -219
  672. package/src/components/toast/ToastBody.tsx +0 -64
  673. package/src/components/toast/ToastFooter.tsx +0 -47
  674. package/src/components/toast/ToastHeader.tsx +0 -104
  675. package/src/components/toast/ToastIcon.tsx +0 -21
  676. package/src/components/toast/Toaster.tsx +0 -87
  677. package/src/components/toast/context.ts +0 -14
  678. package/src/components/toast/index.ts +0 -18
  679. package/src/components/toast/toastQueue.ts +0 -56
  680. package/src/components/tooltip/Tooltip.tsx +0 -171
  681. package/src/components/tooltip/index.ts +0 -2
  682. package/src/global.d.ts +0 -2
  683. package/src/hooks/index.ts +0 -57
  684. package/src/hooks/useAutoDismiss.ts +0 -91
  685. package/src/hooks/useButtonSemantics.ts +0 -33
  686. package/src/hooks/useControllableState.ts +0 -24
  687. package/src/hooks/useDialogElement.ts +0 -226
  688. package/src/hooks/useDisabledAnchorGuard.ts +0 -22
  689. package/src/hooks/useDismissibleTransition.ts +0 -126
  690. package/src/hooks/useDrawer.ts +0 -9
  691. package/src/hooks/useFloatingOverlay.ts +0 -125
  692. package/src/hooks/useForkedRef.ts +0 -50
  693. package/src/hooks/useFormField.ts +0 -89
  694. package/src/hooks/useIsomorphicLayoutEffect.ts +0 -9
  695. package/src/hooks/useModal.ts +0 -9
  696. package/src/hooks/useNotification.ts +0 -10
  697. package/src/hooks/useOverlayPlacement.ts +0 -93
  698. package/src/hooks/usePagination.ts +0 -89
  699. package/src/hooks/useToast.ts +0 -9
  700. package/src/hooks/useToastRegionQueue.ts +0 -27
  701. package/src/index.ts +0 -502
  702. package/src/types.ts +0 -133
  703. package/src/utils/breakpoints.ts +0 -43
  704. package/src/utils/comboboxCollection.tsx +0 -152
  705. package/src/utils/dateRangePresets.ts +0 -6
  706. package/src/utils/devWarning.ts +0 -58
  707. package/src/utils/dialogTransition.ts +0 -39
  708. package/src/utils/direction.ts +0 -14
  709. package/src/utils/focusRedirect.ts +0 -23
  710. package/src/utils/isWholeUnitDisabled.ts +0 -17
  711. package/src/utils/mergeIsDateUnavailable.ts +0 -15
  712. package/src/utils/overlayPlacement.ts +0 -93
  713. package/src/utils/pointerInteraction.ts +0 -21
  714. package/src/utils/polymorphic.ts +0 -53
  715. package/src/utils/renderMenuItemContent.tsx +0 -62
  716. package/src/utils/setVisibleRangeStart.ts +0 -64
  717. package/src/utils/spacingClassName.ts +0 -14
  718. package/src/utils/suppressFocusRingGlobally.ts +0 -84
  719. package/src/utils/triggerElement.ts +0 -25
  720. package/src/utils/validationClassName.ts +0 -8
  721. package/src/utils/virtualFocusStyle.ts +0 -16
@@ -1,126 +0,0 @@
1
- import { ForwardedRef, RefObject, useCallback, useEffect, useId, useRef, useState } from 'react'
2
-
3
- import { useForkedRef } from './useForkedRef'
4
-
5
- export interface UseDismissibleTransitionOptions {
6
- /**
7
- * Callback fired once the exit transition completes and the component is fully hidden.
8
- */
9
- onClose?: () => void
10
- /**
11
- * Callback fired when the component starts to show.
12
- */
13
- onShow?: () => void
14
- ref: ForwardedRef<HTMLDivElement>
15
- /**
16
- * Toggle the visibility of the component.
17
- */
18
- visible?: boolean
19
- }
20
-
21
- export interface UseDismissibleTransitionTransitionProps {
22
- appear: true
23
- in: boolean
24
- nodeRef: RefObject<HTMLDivElement | null>
25
- onEnter: () => void
26
- onEntered: () => void
27
- onExit: () => void
28
- onExited: () => void
29
- unmountOnExit: true
30
- }
31
-
32
- export interface UseDismissibleTransitionResult {
33
- /**
34
- * Requests the component be closed — sets the internal visible state to `false`, which kicks
35
- * off the exit transition; `onClose` fires once it finishes. Stable across re-renders (see the
36
- * hook's own doc comment for why that matters).
37
- */
38
- close: () => void
39
- /**
40
- * Whether the entrance transition has actually finished — `false` while still fading/sliding
41
- * in, even though `visible` is already `true`. Gate anything that should only start once the
42
- * component is fully, visibly present (e.g. an autohide timer) on this rather than `visible`
43
- * alone.
44
- */
45
- entered: boolean
46
- forkedRef: ReturnType<typeof useForkedRef<HTMLDivElement>>
47
- getTransitionClass: (state: string) => string | undefined
48
- textId: string
49
- titleId: string
50
- /**
51
- * Spread directly onto `<Transition>`. Each caller still supplies its own `timeout` (and any
52
- * extra props, e.g. `mountOnEnter`) on top of this.
53
- */
54
- transitionProps: UseDismissibleTransitionTransitionProps
55
- /**
56
- * The internal, transition-driving visible state — distinct from the `visible` prop, since a
57
- * `close()` call (or the exit transition itself) needs to flip this independently of whatever
58
- * the caller is currently passing in.
59
- */
60
- visible: boolean
61
- }
62
-
63
- // Shared dismiss/transition machinery for `Toast` and `Notification` — both otherwise duplicated
64
- // this near-verbatim: visible-state + prop-sync effect, a forked ref, `getTransitionClass`,
65
- // `titleId`/`textId` via `useId()`, and the `Transition` entry/exit callback wiring.
66
- //
67
- // `close` is memoized once here with `useCallback` (empty deps — it only ever calls
68
- // `setVisible(false)`, whose setter identity is itself stable) specifically so it has a stable
69
- // identity across re-renders. Previously each component built its own unmemoized
70
- // `() => setVisible(false)` inline and passed it straight into `useAutoDismiss`, whose scheduling
71
- // effect depends on that closure's identity — since `Toaster`/`NotificationStack` re-render every
72
- // mounted item whenever the shared queue changes (`ToastQueue.add()`/`.close()` notify all
73
- // subscribers synchronously), that meant adding or dismissing any one toast/notification silently
74
- // restarted every other visible one's autohide countdown, with no code change needed to trigger
75
- // it beyond normal multi-item usage.
76
- //
77
- // `entered` similarly gates "has the entrance transition actually finished" uniformly for both —
78
- // `Toast` already had this (gating on `visible` alone would start the autohide timer the instant
79
- // `visible` flips true, while still fading/sliding in); `Notification` didn't, so this extraction
80
- // gives it the same fix for free.
81
- export function useDismissibleTransition({
82
- onClose,
83
- onShow,
84
- ref,
85
- visible = false
86
- }: UseDismissibleTransitionOptions): UseDismissibleTransitionResult {
87
- const [_visible, setVisible] = useState(visible)
88
- const [entered, setEntered] = useState(false)
89
- const nodeRef = useRef<HTMLDivElement>(null)
90
- const forkedRef = useForkedRef(ref, nodeRef)
91
- const titleId = useId()
92
- const textId = useId()
93
-
94
- useEffect(() => {
95
- setVisible(visible)
96
- }, [visible])
97
-
98
- const close = useCallback(() => setVisible(false), [])
99
-
100
- const getTransitionClass = (state: string) =>
101
- state === 'entering' || state === 'exiting'
102
- ? 'show showing'
103
- : state === 'entered'
104
- ? 'show'
105
- : undefined
106
-
107
- return {
108
- close,
109
- entered,
110
- forkedRef,
111
- getTransitionClass,
112
- textId,
113
- titleId,
114
- transitionProps: {
115
- appear: true,
116
- in: _visible,
117
- nodeRef,
118
- onEnter: () => onShow?.(),
119
- onEntered: () => setEntered(true),
120
- onExit: () => setEntered(false),
121
- onExited: () => onClose?.(),
122
- unmountOnExit: true
123
- },
124
- visible: _visible
125
- }
126
- }
@@ -1,9 +0,0 @@
1
- import { useContext } from 'react'
2
- import { DrawerContext, DrawerContextProps } from '../components/drawer/Drawer'
3
-
4
- export type UseDrawerResult = DrawerContextProps
5
-
6
- // Reach the enclosing `Drawer`'s close handler from anywhere in its composed markup — e.g. to
7
- // close it from a plain `Button` placed in a `DrawerFooter`. Only meaningful inside a `Drawer`;
8
- // outside one it returns a no-op `close`.
9
- export const useDrawer = (): UseDrawerResult => useContext(DrawerContext)
@@ -1,125 +0,0 @@
1
- import { CSSProperties, HTMLAttributes, RefObject, useEffect, useRef, useState } from 'react'
2
-
3
- export interface UseFloatingOverlayOptions {
4
- /**
5
- * Imperatively closes the overlay — called when `visible` syncs to `false` and when the
6
- * containing `<dialog>` fires its native `close` event. Pass a stable callback (e.g. the
7
- * trigger state's own `close`) where possible; an inline arrow is fine too, since only its
8
- * latest value is ever invoked.
9
- */
10
- close: () => void
11
- /**
12
- * Whether the overlay is currently open — drives `onShow`/`onHide` and portal-container
13
- * resolution.
14
- */
15
- isOpen: boolean
16
- /**
17
- * Imperatively opens the overlay — called when `visible` syncs to `true`.
18
- */
19
- open: () => void
20
- onHide?: () => void
21
- onShow?: () => void
22
- /**
23
- * Ref to the element that triggers the overlay, used to resolve which `<dialog>` (if any) it
24
- * lives inside.
25
- */
26
- triggerRef: RefObject<HTMLElement | null>
27
- /**
28
- * Controlled visibility prop from the consuming component; `undefined` means uncontrolled.
29
- */
30
- visible?: boolean
31
- }
32
-
33
- /**
34
- * Shared portal-container/visibility wiring for `Popover` and `Tooltip`: resolves the `<dialog>`
35
- * a trigger lives inside (if any), syncs an uncontrolled-by-default `visible` prop to the
36
- * trigger state, fires `onShow`/`onHide`, and resets on the containing dialog's native `close`
37
- * event. Positioning-specific concerns (placement, arrow, escape/outside-click dismissal) stay
38
- * in each component — only this ~80% overlap is shared.
39
- */
40
- export function useFloatingOverlay({
41
- close,
42
- isOpen,
43
- open,
44
- onHide,
45
- onShow,
46
- triggerRef,
47
- visible
48
- }: UseFloatingOverlayOptions) {
49
- const [portalContainer, setPortalContainer] = useState<Element | null>(null)
50
-
51
- // Overlays inside an open `<dialog>` are appended to that dialog instead of `document.body`,
52
- // so they render in its top layer and close with it automatically.
53
- const resolvePortalContainer = () => triggerRef.current?.closest('dialog[open]') ?? document.body
54
-
55
- // Sync-on-change, not strictly controlled — matches `Menu`'s `visible` semantics.
56
- useEffect(() => {
57
- if (visible === undefined) return
58
- setPortalContainer(resolvePortalContainer())
59
- if (visible) open()
60
- else close()
61
- }, [visible])
62
-
63
- // `onShow`/`onHide` report *transitions*, so neither fires for the initial commit — mounting
64
- // closed is not a hide. Without this guard the `else` branch ran on mount and every
65
- // `<Popover onHide>`/`<Tooltip onHide>` on the page reported a close that never happened,
66
- // before `onShow` had ever fired once. The portal container still resolves on mount, since
67
- // an overlay mounted already-open needs one immediately.
68
- const mountedRef = useRef(false)
69
-
70
- useEffect(() => {
71
- const isInitialCommit = !mountedRef.current
72
- mountedRef.current = true
73
-
74
- if (isOpen) {
75
- setPortalContainer(resolvePortalContainer())
76
- if (!isInitialCommit) onShow?.()
77
- } else if (!isInitialCommit) {
78
- onHide?.()
79
- }
80
- }, [isOpen])
81
-
82
- // `close` is read through a ref so this effect only re-subscribes when `isOpen`/
83
- // `portalContainer` actually change, regardless of whether the caller passes a stable
84
- // callback or a fresh inline arrow each render.
85
- const closeRef = useRef(close)
86
- closeRef.current = close
87
-
88
- // A dialog fires a native `close` event on ESC, backdrop click, or `.close()`, so resetting
89
- // on it keeps a reopened dialog from showing a stale, already-open overlay.
90
- useEffect(() => {
91
- const dialog = portalContainer?.closest('dialog')
92
- if (!isOpen || !dialog) return
93
-
94
- const handleClose = () => closeRef.current()
95
- dialog.addEventListener('close', handleClose)
96
- return () => dialog.removeEventListener('close', handleClose)
97
- }, [isOpen, portalContainer])
98
-
99
- return portalContainer
100
- }
101
-
102
- // `useOverlayPosition`'s `arrowProps.style` sets a single cross-axis offset (`top` for a
103
- // left/right overlay, `left` for a top/bottom one) to the trigger's center point, not the arrow
104
- // element's top-left corner — so it must be recentered by half the arrow's own size on that
105
- // axis. Chassis-css's JS plugin never has this problem since Floating UI's `arrow` middleware
106
- // returns a top-left-corner coordinate directly; react-aria's is center-based. Unlike the
107
- // chassis-css JS plugin, react-aria also never sets `position: absolute` on the arrow element
108
- // itself, so without it the offset has no effect and the arrow renders in normal document flow.
109
- export function getOverlayArrowStyle(arrowProps: HTMLAttributes<HTMLDivElement>): CSSProperties {
110
- return {
111
- position: 'absolute',
112
- ...arrowProps.style,
113
- transform: arrowProps.style?.top !== undefined ? 'translateY(-50%)' : 'translateX(-50%)'
114
- }
115
- }
116
-
117
- export function getOverlayTransitionClass(transitionState: string): string {
118
- return transitionState === 'entering'
119
- ? 'fade'
120
- : transitionState === 'entered'
121
- ? 'fade show'
122
- : transitionState === 'exiting'
123
- ? 'fade'
124
- : 'fade'
125
- }
@@ -1,50 +0,0 @@
1
- // code borrowed from https://github.com/reach/reach-ui
2
- // problem described https://github.com/facebook/react/issues/13029
3
-
4
- import { useMemo } from 'react'
5
-
6
- export type AssignableRef<ValueType> =
7
- | {
8
- bivarianceHack(instance: ValueType | null): void
9
- }['bivarianceHack']
10
- | React.MutableRefObject<ValueType | null>
11
-
12
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
13
- export function useForkedRef<RefValueType = any>(
14
- ...refs: (AssignableRef<RefValueType> | null | undefined)[]
15
- ) {
16
- return useMemo(() => {
17
- if (refs.every((ref) => ref == null)) {
18
- return null
19
- }
20
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
21
- return (node: any) => {
22
- refs.forEach((ref) => {
23
- assignRef(ref, node)
24
- })
25
- }
26
- }, refs)
27
- }
28
-
29
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
30
- export function assignRef<RefValueType = any>(
31
- ref: AssignableRef<RefValueType> | null | undefined,
32
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
33
- value: any
34
- ) {
35
- if (ref == null) return
36
- if (isFunction(ref)) {
37
- ref(value)
38
- } else {
39
- try {
40
- ref.current = value
41
- } catch (error) {
42
- throw new Error(`Cannot assign value "${value}" to ref "${ref}"`, { cause: error })
43
- }
44
- }
45
- }
46
-
47
- // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/no-unsafe-function-type
48
- export function isFunction(value: any): value is Function {
49
- return !!(value && {}.toString.call(value) == '[object Function]')
50
- }
@@ -1,89 +0,0 @@
1
- import { ReactNode, useId } from 'react'
2
-
3
- export interface UseFormFieldOptions {
4
- /**
5
- * A caller-supplied `aria-describedby` to merge in alongside the generated help/feedback ids
6
- * (e.g. `rest['aria-describedby']`).
7
- */
8
- ariaDescribedBy?: string
9
- /**
10
- * A caller-supplied `aria-labelledby` to merge in alongside `labelId` (e.g.
11
- * `rest['aria-labelledby']`). Relevant for the `role="group"` shape and for any single-input
12
- * component backed by a react-aria hook — see `labelledBy`.
13
- */
14
- ariaLabelledBy?: string
15
- help?: ReactNode
16
- id?: string
17
- invalid?: boolean
18
- invalidFeedback?: ReactNode
19
- label?: ReactNode
20
- valid?: boolean
21
- validFeedback?: ReactNode
22
- }
23
-
24
- export interface UseFormFieldResult {
25
- /**
26
- * Merged `aria-describedby` value (help id + feedback id, if shown + `ariaDescribedBy`), or
27
- * `undefined` when none apply. Safe to spread straight onto the real control:
28
- * `aria-describedby={describedBy}`.
29
- */
30
- describedBy?: string
31
- feedbackId: string
32
- helpId: string
33
- /**
34
- * Id for the one real focusable control — pair with `<FormLabel htmlFor={inputId}>` (via
35
- * `ids.input`). Ignore this and use `labelId`/`labelledBy` instead for a `role="group"` wrapper
36
- * with no single input to target — see FORMS.md's "`htmlFor` vs `aria-labelledby`" section.
37
- */
38
- inputId: string
39
- /**
40
- * This field's own label id, for a control to reference via its own `aria-labelledby` (via
41
- * `ids.label`) instead of `htmlFor`.
42
- */
43
- labelId: string
44
- /**
45
- * Merged `aria-labelledby` value (`labelId`, only when `label` is set + `ariaLabelledBy`), or
46
- * `undefined` when neither applies. Feed this into the underlying react-aria hook's own
47
- * `aria-labelledby` (in addition to any `htmlFor`-based association) so its own dev-mode
48
- * "no accessible label" warning knows about a visible `label` it can't otherwise see.
49
- */
50
- labelledBy?: string
51
- }
52
-
53
- // Shared id-generation and aria-describedby/aria-labelledby merge logic behind every
54
- // renderFormField-based component (see FORMS.md's "The two engines" section). Every id is
55
- // generated with React's own useId(), not react-aria's — see FORMS.md for why that's deliberate.
56
- //
57
- // If you spread the result of a react-aria hook via mergeProps(hookProps, rest) instead of
58
- // directly onto the control, re-apply `describedBy`/`labelledBy` as explicit props *after* that
59
- // spread — mergeProps lets the later argument win, so rest's raw (un-merged) aria-describedby/
60
- // aria-labelledby can silently overwrite these otherwise. See FORMS.md gotcha #4.
61
- export const useFormField = ({
62
- ariaDescribedBy,
63
- ariaLabelledBy,
64
- help,
65
- id,
66
- invalid,
67
- invalidFeedback,
68
- label,
69
- valid,
70
- validFeedback
71
- }: UseFormFieldOptions): UseFormFieldResult => {
72
- const generatedId = useId()
73
- const inputId = id ?? generatedId
74
- const labelId = `${generatedId}-label`
75
- const helpId = `${generatedId}-help`
76
- const feedbackId = `${generatedId}-feedback`
77
-
78
- const showInvalidFeedback = invalid && invalidFeedback
79
- const showValidFeedback = valid && validFeedback
80
-
81
- const describedBy =
82
- [help && helpId, (showInvalidFeedback || showValidFeedback) && feedbackId, ariaDescribedBy]
83
- .filter(Boolean)
84
- .join(' ') || undefined
85
-
86
- const labelledBy = [label && labelId, ariaLabelledBy].filter(Boolean).join(' ') || undefined
87
-
88
- return { describedBy, feedbackId, helpId, inputId, labelId, labelledBy }
89
- }
@@ -1,9 +0,0 @@
1
- import { useEffect, useLayoutEffect } from 'react'
2
-
3
- // `useLayoutEffect` logs a console warning ("does nothing on the server") whenever it's called
4
- // during SSR, even though no effect — layout or otherwise — ever actually runs server-side;
5
- // React only cares that the hook itself was invoked under `renderToString`/
6
- // `renderToPipeableStream`. Swapping to `useEffect` in that environment silences the warning with
7
- // no behavior change, since neither hook runs server-side anyway — this only picks which one
8
- // no-ops there.
9
- export const useIsomorphicLayoutEffect = typeof window === 'undefined' ? useEffect : useLayoutEffect
@@ -1,9 +0,0 @@
1
- import { useContext } from 'react'
2
- import { ModalContext, ModalContextProps } from '../components/modal/Modal'
3
-
4
- export type UseModalResult = ModalContextProps
5
-
6
- // Reach the enclosing `Modal`'s close handler from anywhere in its composed markup — e.g. to
7
- // close it from a plain `Button` placed in a `ModalFooter`. Only meaningful inside a `Modal`;
8
- // outside one it returns a no-op `close`.
9
- export const useModal = (): UseModalResult => useContext(ModalContext)
@@ -1,10 +0,0 @@
1
- import { useContext } from 'react'
2
- import { NotificationContext, NotificationContextProps } from '../components/notification/context'
3
-
4
- export type UseNotificationResult = NotificationContextProps
5
-
6
- // Reach the enclosing `Notification`'s dismiss handler from anywhere in its composed markup —
7
- // e.g. to close it from a plain `Button` placed alongside other `actions`, instead of the
8
- // built-in `dismissible` close button. Only meaningful inside a `Notification`; outside one it
9
- // returns a no-op `close`.
10
- export const useNotification = (): UseNotificationResult => useContext(NotificationContext)
@@ -1,93 +0,0 @@
1
- import { CSSProperties, HTMLAttributes, RefObject } from 'react'
2
- import { mergeProps, useOverlay, useOverlayPosition } from 'react-aria'
3
- import { OverlayTriggerState } from 'react-stately'
4
-
5
- import { resolveDataPlacement, toAriaPlacement } from '../utils/overlayPlacement'
6
-
7
- interface UseOverlayPlacementProps {
8
- overlayRef: RefObject<HTMLElement | null>
9
- state: OverlayTriggerState
10
- triggerRef: RefObject<HTMLElement | null>
11
- }
12
-
13
- interface UseOverlayPlacementResult {
14
- overlayStyle: CSSProperties
15
- placementAttr: string
16
- // Re-typed as plain HTML attributes for the same `rollup-plugin-dts` portability reason as
17
- // before (see git history) — react-aria's own return type pulls in a `FocusableElement`
18
- // reference the bundled `.d.ts` can't always resolve a portable name for.
19
- overlayDismissProps: HTMLAttributes<HTMLElement>
20
- }
21
-
22
- // Shared by `DatePicker` and `DateRangePicker` — both position their calendar overlay the same
23
- // way (`bottom-start`, 2px offset, closing on Escape, on any click outside it, or when focus leaves
24
- // the trigger group). Lives in `hooks/` rather than `components/datepicker/` like every other hook
25
- // in this library, regardless of how many components use it — see `useFormField` for the same
26
- // treatment despite having many more callers.
27
- //
28
- // Built directly on `useOverlay` + `useOverlayPosition` rather than the higher-level `usePopover`
29
- // combo hook. `usePopover` computes its own internal `onClose` for `useOverlayPosition` from
30
- // `isNonModal` (`isNonModal && !isSubmenu ? state.close : null`, neither overridable by a caller),
31
- // and `isNonModal: true` — needed so the calendar doesn't lock page scroll or aria-hide the rest of
32
- // the page, since it was never meant to be modal — unconditionally arms `useOverlayPosition`'s
33
- // close-on-any-window-scroll listener (`useCloseOnScroll`, keyed off `onClose !== null`) as a side
34
- // effect. That's wrong here: the calendar should reposition with its trigger when the page scrolls,
35
- // not disappear. Calling the two lower-level hooks directly, with `onClose: null` passed to
36
- // `useOverlayPosition` alone, gets the positioning and Escape/blur dismissal this calendar needs
37
- // without arming that listener — the same fix already applied to `Autocomplete`/`Combobox`/
38
- // `Menu`/`MenuSubmenu`/`Popover`, none of which use `usePopover` either, all for this same reason.
39
- export const useOverlayPlacement = ({
40
- overlayRef,
41
- state,
42
- triggerRef
43
- }: UseOverlayPlacementProps): UseOverlayPlacementResult => {
44
- // The trigger's own toggle button lives inside `triggerRef`, not `overlayRef` — without this,
45
- // focus moving there when the button is pressed would count as an "outside" interaction and
46
- // close the overlay, which the button's own `onPress` then immediately reopens on click.
47
- const shouldCloseOnInteractOutside = (element: Element) => !triggerRef.current?.contains(element)
48
-
49
- // Escape key + outside-interaction dismissal — the two pieces of `usePopover`'s bundled behavior
50
- // this calendar still needs. `isDismissable: true` — *not* `usePopover`'s own default of `false`
51
- // whenever `isNonModal` is true — is required to actually get outside-*click* dismissal:
52
- // `useOverlay`'s `shouldCloseOnBlur` only closes on a focus-based blur, and explicitly bails when
53
- // the click target isn't focusable (`relatedTarget` is `null`, i.e. focus lands on `document.body`,
54
- // as it does for an ordinary click on plain page content) — its own source comments that this case
55
- // is intentionally left to the separate pointerdown-outside listener `useOverlay` only wires up
56
- // when `isDismissable` is true. Leaving it at the `usePopover`-matching default therefore silently
57
- // drops the single most common way users try to dismiss a popover.
58
- const { overlayProps } = useOverlay(
59
- {
60
- isDismissable: true,
61
- isOpen: state.isOpen,
62
- onClose: state.close,
63
- shouldCloseOnBlur: true,
64
- shouldCloseOnInteractOutside
65
- },
66
- overlayRef
67
- )
68
-
69
- const { overlayProps: positionProps, placement: resolvedPlacement } = useOverlayPosition({
70
- isOpen: state.isOpen,
71
- offset: 2,
72
- // Opts out of `useOverlayPosition`'s own close-on-any-window-scroll listener — see this hook's
73
- // own comment above. Leaving this `undefined` would NOT disable it: `useCloseOnScroll` only
74
- // early-returns on `onClose === null`, not merely falsy.
75
- onClose: null,
76
- overlayRef,
77
- placement: toAriaPlacement('bottom-start'),
78
- targetRef: triggerRef
79
- })
80
-
81
- const { style: overlayPositionStyle, ...overlayDismissProps } = mergeProps(
82
- overlayProps,
83
- positionProps
84
- )
85
- const overlayStyle: CSSProperties = {
86
- position: overlayPositionStyle?.position as CSSProperties['position'],
87
- top: overlayPositionStyle?.top,
88
- left: overlayPositionStyle?.left
89
- }
90
- const placementAttr = resolveDataPlacement('bottom-start', resolvedPlacement)
91
-
92
- return { overlayStyle, placementAttr, overlayDismissProps }
93
- }
@@ -1,89 +0,0 @@
1
- import { MouseEvent, RefObject, useEffect, useRef } from 'react'
2
-
3
- import { focusRedirect } from '../utils/focusRedirect'
4
-
5
- export interface UsePaginationOptions {
6
- /**
7
- * Whether the Previous control is currently disabled.
8
- */
9
- prevDisabled: boolean
10
- /**
11
- * Whether the Next control is currently disabled.
12
- */
13
- nextDisabled: boolean
14
- /**
15
- * Called when Previous is clicked, before the state change that may disable it.
16
- */
17
- onPrev: () => void
18
- /**
19
- * Called when Next is clicked, before the state change that may disable it.
20
- */
21
- onNext: () => void
22
- }
23
-
24
- export interface UsePaginationResult<T extends HTMLElement = HTMLButtonElement> {
25
- // `RefObject<T | null>`, not `RefObject<T>`: these come from `useRef<T>(null)`, so `.current`
26
- // really is null before mount (and whenever the control isn't rendered — a hand-composed
27
- // pagination may omit Prev/Next entirely). Declaring the non-null form let a consumer write
28
- // `prevRef.current.focus()` with no type error and crash at runtime.
29
- prevRef: RefObject<T | null>
30
- nextRef: RefObject<T | null>
31
- handlePrevClick: (event: MouseEvent<T>) => void
32
- handleNextClick: (event: MouseEvent<T>) => void
33
- }
34
-
35
- interface Pending {
36
- from: 'prev' | 'next'
37
- // A `click` fired by real pointer activation has `detail >= 1`; one fired by keyboard
38
- // activation (Enter/Space on a focused button) has `detail === 0`.
39
- viaPointer: boolean
40
- }
41
-
42
- // Native `disabled` buttons are blurred by the browser the instant they're disabled. Clicking a
43
- // Prev/Next control into the first/last page disables that very control, silently dropping focus
44
- // to `<body>`. Wire `handlePrevClick`/`handleNextClick` up as each control's `onClick` — they call
45
- // `onPrev`/`onNext` and redirect focus to the still-enabled sibling in one step, so callers don't
46
- // hand-wrap their own click handler around a separate mark-then-focus call.
47
- // Works for `Pagination`'s built-in smart mode and for hand-composed Prev/Next controls alike —
48
- // pass the element type of whatever you're attaching the refs to (`PaginationItem` defaults to
49
- // an `HTMLButtonElement`, but renders an `HTMLAnchorElement` when given `href` or `component`).
50
- export function usePagination<T extends HTMLElement = HTMLButtonElement>({
51
- prevDisabled,
52
- nextDisabled,
53
- onPrev,
54
- onNext
55
- }: UsePaginationOptions): UsePaginationResult<T> {
56
- const prevRef = useRef<T>(null)
57
- const nextRef = useRef<T>(null)
58
- const pending = useRef<Pending | null>(null)
59
-
60
- // Deliberately no dependency array: this must run after every render, not just ones where
61
- // prevDisabled/nextDisabled change value. A Prev/Next click that doesn't cross a boundary
62
- // (e.g. moving between two enabled middle pages) leaves both booleans unchanged, so a
63
- // dependency-gated effect would skip and leave `pending` stale — a later, unrelated render
64
- // that does flip one of the booleans (e.g. jumping straight to the first/last page via a
65
- // page-number click) would then wrongly consume that stale mark and redirect focus.
66
- useEffect(() => {
67
- const from = pending.current
68
- pending.current = null
69
- if (!from) return
70
- if (from.from === 'prev' && prevDisabled) {
71
- focusRedirect(nextRef.current, from.viaPointer)
72
- } else if (from.from === 'next' && nextDisabled) {
73
- focusRedirect(prevRef.current, from.viaPointer)
74
- }
75
- })
76
-
77
- return {
78
- prevRef,
79
- nextRef,
80
- handlePrevClick: (event) => {
81
- pending.current = { from: 'prev', viaPointer: event.detail !== 0 }
82
- onPrev()
83
- },
84
- handleNextClick: (event) => {
85
- pending.current = { from: 'next', viaPointer: event.detail !== 0 }
86
- onNext()
87
- }
88
- }
89
- }
@@ -1,9 +0,0 @@
1
- import { useContext } from 'react'
2
- import { ToastContext, ToastContextProps } from '../components/toast/context'
3
-
4
- export type UseToastResult = ToastContextProps
5
-
6
- // Reach the enclosing `Toast`'s dismiss handler from anywhere in its composed markup — e.g. to
7
- // close it from a plain `Button` placed in a `ToastFooter`, instead of a dedicated close
8
- // component. Only meaningful inside a `Toast`; outside one it returns a no-op `close`.
9
- export const useToast = (): UseToastResult => useContext(ToastContext)
@@ -1,27 +0,0 @@
1
- import { ForwardedRef, useRef } from 'react'
2
- import { ToastRegionAria, useToastRegion } from 'react-aria'
3
- import { ToastQueue, ToastState, useToastQueue } from 'react-stately'
4
-
5
- import { useForkedRef } from './useForkedRef'
6
-
7
- export interface UseToastRegionQueueResult<T> {
8
- forkedRef: ReturnType<typeof useForkedRef<HTMLDivElement>>
9
- regionProps: ToastRegionAria['regionProps']
10
- state: ToastState<T>
11
- }
12
-
13
- // Shared setup for `Toaster`/`NotificationStack` — both otherwise duplicated this near-verbatim:
14
- // subscribe to a `ToastQueue` singleton, wire up react-aria's toast-region accessibility
15
- // plumbing, and fork the caller's ref onto the same node the region hook needs. Differs only in
16
- // which queue is passed.
17
- export function useToastRegionQueue<T>(
18
- queue: ToastQueue<T>,
19
- ref: ForwardedRef<HTMLDivElement>
20
- ): UseToastRegionQueueResult<T> {
21
- const state = useToastQueue(queue)
22
- const regionRef = useRef<HTMLDivElement>(null)
23
- const { regionProps } = useToastRegion({}, state, regionRef)
24
- const forkedRef = useForkedRef(ref, regionRef)
25
-
26
- return { forkedRef, regionProps, state }
27
- }