@chassis-ui/react 0.2.0 → 0.4.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 (777) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +56 -23
  3. package/dist/accordion.js +1 -1
  4. package/dist/alert.d.ts +2 -0
  5. package/dist/alert.js +1 -0
  6. package/dist/autocomplete.d.ts +1 -1
  7. package/dist/autocomplete.js +1 -1
  8. package/dist/avatar.d.ts +1 -1
  9. package/dist/avatar.js +1 -1
  10. package/dist/badge.d.ts +1 -1
  11. package/dist/badge.js +1 -1
  12. package/dist/breadcrumb.js +1 -1
  13. package/dist/button-group.d.ts +1 -1
  14. package/dist/button-group.js +1 -1
  15. package/dist/button.d.ts +1 -1
  16. package/dist/button.js +1 -1
  17. package/dist/calendar.d.ts +1 -1
  18. package/dist/calendar.js +1 -1
  19. package/dist/card.d.ts +1 -1
  20. package/dist/card.js +1 -1
  21. package/dist/carousel.d.ts +1 -1
  22. package/dist/carousel.js +1 -1
  23. package/dist/checkbox.d.ts +2 -2
  24. package/dist/checkbox.js +1 -1
  25. package/dist/chip-input.js +1 -1
  26. package/dist/chip.d.ts +1 -1
  27. package/dist/chip.js +1 -1
  28. package/dist/chunks/Button-BoymWE-L.js +2 -0
  29. package/dist/chunks/Button-BoymWE-L.js.map +1 -0
  30. package/dist/chunks/{Button-Cptd4Yk7.d.ts → Button-BuZ_GOHS.d.ts} +3 -2
  31. package/dist/chunks/Chip-DCaWaBqo.js +2 -0
  32. package/dist/chunks/Chip-DCaWaBqo.js.map +1 -0
  33. package/dist/chunks/CloseButton-DPgQztE0.js +2 -0
  34. package/dist/chunks/CloseButton-DPgQztE0.js.map +1 -0
  35. package/dist/chunks/ComboboxItem-C9TpoJOI.d.ts +2 -1
  36. package/dist/chunks/ComboboxListBox-Cm3L1ULl.js +2 -0
  37. package/dist/chunks/ComboboxListBox-Cm3L1ULl.js.map +1 -0
  38. package/dist/chunks/DateSegment-2agXAd0f.js +2 -0
  39. package/dist/chunks/DateSegment-2agXAd0f.js.map +1 -0
  40. package/dist/chunks/{FormHelp-Be2PQL0y.js → FormHelp-AE6_iSLJ.js} +2 -1
  41. package/dist/chunks/FormHelp-AE6_iSLJ.js.map +1 -0
  42. package/dist/chunks/FormLabel-CYcQiFUI.js +2 -1
  43. package/dist/chunks/FormLabel-CYcQiFUI.js.map +1 -0
  44. package/dist/chunks/Icon-CioraWLF.d.ts +2 -1
  45. package/dist/chunks/Icon-DLB1f88W.js +2 -0
  46. package/dist/chunks/Icon-DLB1f88W.js.map +1 -0
  47. package/dist/chunks/{Link-B0Y1xgYi.d.ts → Link-CKymd2ru.d.ts} +8 -6
  48. package/dist/chunks/Link-CZsWCnQb.js +2 -0
  49. package/dist/chunks/Link-CZsWCnQb.js.map +1 -0
  50. package/dist/chunks/Menu-CSBg2Zmc.js +2 -0
  51. package/dist/chunks/Menu-CSBg2Zmc.js.map +1 -0
  52. package/dist/chunks/Menu-QeYOzrUL.d.ts +95 -0
  53. package/dist/chunks/MenuItemDef-D0VDtYIQ.d.ts +2 -1
  54. package/dist/chunks/MenuToggle-BdQtF7FV.js +2 -0
  55. package/dist/chunks/MenuToggle-BdQtF7FV.js.map +1 -0
  56. package/dist/chunks/Portal-CgeR1WXV.js +2 -0
  57. package/dist/chunks/Portal-CgeR1WXV.js.map +1 -0
  58. package/dist/chunks/RangeCalendar-BJl-j4W2.js +2 -0
  59. package/dist/chunks/RangeCalendar-BJl-j4W2.js.map +1 -0
  60. package/dist/chunks/VisuallyHidden-C2dM7HhC.js +2 -0
  61. package/dist/chunks/VisuallyHidden-C2dM7HhC.js.map +1 -0
  62. package/dist/chunks/accordion-B8UWyvQB.js +2 -0
  63. package/dist/chunks/accordion-B8UWyvQB.js.map +1 -0
  64. package/dist/chunks/alert-BXI-_qlt.js +2 -0
  65. package/dist/chunks/alert-BXI-_qlt.js.map +1 -0
  66. package/dist/chunks/autocomplete-Baf9VSHN.js +2 -0
  67. package/dist/chunks/autocomplete-Baf9VSHN.js.map +1 -0
  68. package/dist/chunks/avatar-S3dGy6Qc.js +2 -0
  69. package/dist/chunks/avatar-S3dGy6Qc.js.map +1 -0
  70. package/dist/chunks/{badge-Bj8mf8lu.js → badge-D2oztCvs.js} +2 -1
  71. package/dist/chunks/badge-D2oztCvs.js.map +1 -0
  72. package/dist/chunks/{breadcrumb-DDxnx_iS.js → breadcrumb-s6J9itez.js} +2 -1
  73. package/dist/chunks/breadcrumb-s6J9itez.js.map +1 -0
  74. package/dist/chunks/breakpoints-CGk8szzR.js +2 -0
  75. package/dist/chunks/breakpoints-CGk8szzR.js.map +1 -0
  76. package/dist/chunks/breakpoints-ECy4lKQT.d.ts +6 -0
  77. package/dist/chunks/button-group-BGppPrIv.js +2 -0
  78. package/dist/chunks/button-group-BGppPrIv.js.map +1 -0
  79. package/dist/chunks/card-CobeDpf1.js +2 -0
  80. package/dist/chunks/card-CobeDpf1.js.map +1 -0
  81. package/dist/chunks/carousel-fTVPqnSV.js +2 -0
  82. package/dist/chunks/carousel-fTVPqnSV.js.map +1 -0
  83. package/dist/chunks/checkbox-ZyQn5Ku5.js +2 -0
  84. package/dist/chunks/checkbox-ZyQn5Ku5.js.map +1 -0
  85. package/dist/chunks/chip-input-BpVDRERg.js +2 -0
  86. package/dist/chunks/chip-input-BpVDRERg.js.map +1 -0
  87. package/dist/chunks/collapse--Go2Y73B.js +2 -0
  88. package/dist/chunks/collapse--Go2Y73B.js.map +1 -0
  89. package/dist/chunks/{color-input-CyRaLR_G.js → color-input-Bwl5ef5B.js} +2 -1
  90. package/dist/chunks/color-input-Bwl5ef5B.js.map +1 -0
  91. package/dist/chunks/combobox-Bp1tIaiW.js +2 -0
  92. package/dist/chunks/combobox-Bp1tIaiW.js.map +1 -0
  93. package/dist/chunks/context-menu-B4a0tS-h.js +2 -0
  94. package/dist/chunks/context-menu-B4a0tS-h.js.map +1 -0
  95. package/dist/chunks/datagrid-CH3Cy-q7.js +3 -0
  96. package/dist/chunks/datagrid-CH3Cy-q7.js.map +1 -0
  97. package/dist/chunks/dateRangePresets-R1FtA1zp.d.ts +2 -1
  98. package/dist/chunks/datepicker-bOiM_zhJ.js +2 -0
  99. package/dist/chunks/datepicker-bOiM_zhJ.js.map +1 -0
  100. package/dist/chunks/dialogTransition-i9vw0i2Z.js +2 -1
  101. package/dist/chunks/dialogTransition-i9vw0i2Z.js.map +1 -0
  102. package/dist/chunks/direction-LN6uwsK5.js +2 -0
  103. package/dist/chunks/direction-LN6uwsK5.js.map +1 -0
  104. package/dist/chunks/divider-CjbF4OfA.js +2 -0
  105. package/dist/chunks/divider-CjbF4OfA.js.map +1 -0
  106. package/dist/chunks/drawer-C7Tz4XU_.js +2 -0
  107. package/dist/chunks/drawer-C7Tz4XU_.js.map +1 -0
  108. package/dist/chunks/{file-input-RRqZSzjH.js → file-input-CDM6qrmV.js} +2 -1
  109. package/dist/chunks/file-input-CDM6qrmV.js.map +1 -0
  110. package/dist/chunks/flex-B52oLCCC.js +2 -0
  111. package/dist/chunks/flex-B52oLCCC.js.map +1 -0
  112. package/dist/chunks/floating-input-DmSZZc27.js +2 -0
  113. package/dist/chunks/floating-input-DmSZZc27.js.map +1 -0
  114. package/dist/chunks/focus-ring-SR_LwaN7.js +2 -1
  115. package/dist/chunks/focus-ring-SR_LwaN7.js.map +1 -0
  116. package/dist/chunks/focusRedirect-BrvK3U_o.js +2 -1
  117. package/dist/chunks/focusRedirect-BrvK3U_o.js.map +1 -0
  118. package/dist/chunks/form-GpdAyWWi.js +2 -1
  119. package/dist/chunks/form-GpdAyWWi.js.map +1 -0
  120. package/dist/chunks/form-field-CNPGTMiW.js +2 -0
  121. package/dist/chunks/form-field-CNPGTMiW.js.map +1 -0
  122. package/dist/chunks/grid-C7tO-ppc.js +2 -0
  123. package/dist/chunks/grid-C7tO-ppc.js.map +1 -0
  124. package/dist/chunks/{icon-mxYpL5nL.js → icon-BQsT6YtE.js} +2 -1
  125. package/dist/chunks/icon-BQsT6YtE.js.map +1 -0
  126. package/dist/chunks/{iconConfig-Bu6Pt9o3.d.ts → iconConfig-C6gbYhsD.d.ts} +5 -3
  127. package/dist/chunks/iconSlot-BNu2MrFI.js +2 -0
  128. package/dist/chunks/iconSlot-BNu2MrFI.js.map +1 -0
  129. package/dist/chunks/{index-BKMW0rkw.d.ts → index-0jbACjYQ.d.ts} +5 -3
  130. package/dist/chunks/{index-BO_1MN66.d.ts → index-4cKG9KWB.d.ts} +3 -5
  131. package/dist/chunks/index-6uob77s9.d.ts +2 -1
  132. package/dist/chunks/{index-tOodmT36.d.ts → index-91YA-jkp.d.ts} +4 -6
  133. package/dist/chunks/index-9rQeMqVI.d.ts +42 -0
  134. package/dist/chunks/index-B0-8n-Gs.d.ts +2 -1
  135. package/dist/chunks/{index-D9PZHY_I.d.ts → index-B19ZH3fm.d.ts} +3 -2
  136. package/dist/chunks/{index-COsIPd8L.d.ts → index-B1kw0jzM.d.ts} +3 -2
  137. package/dist/chunks/index-B2K-O9kl.d.ts +59 -0
  138. package/dist/chunks/{index-CJzKu7QI.d.ts → index-B5bF1JxF.d.ts} +3 -2
  139. package/dist/chunks/index-B8uaSJA9.d.ts +2 -1
  140. package/dist/chunks/index-BA-raEMm.d.ts +2 -1
  141. package/dist/chunks/{index-C61tPIJ-.d.ts → index-BAsbRx5n.d.ts} +6 -2
  142. package/dist/chunks/index-BF3OWUVc.d.ts +66 -0
  143. package/dist/chunks/{index-Ctuk1xBU.d.ts → index-BLS1jhSJ.d.ts} +10 -7
  144. package/dist/chunks/{index-JllMXhVx.d.ts → index-BMkbJVHg.d.ts} +22 -5
  145. package/dist/chunks/{index-DB_ToPdz.d.ts → index-BNf0jIIL.d.ts} +12 -1
  146. package/dist/chunks/{index-t_x6jj7l.d.ts → index-BOx8v-oT.d.ts} +3 -2
  147. package/dist/chunks/index-BSLneLYu.d.ts +79 -0
  148. package/dist/chunks/index-BVGGIaPX.d.ts +2 -1
  149. package/dist/chunks/{index-qgZ5VGmc.d.ts → index-B_UzbGOa.d.ts} +20 -2
  150. package/dist/chunks/{index-XjLvaH4G.d.ts → index-BfEJYF4c.d.ts} +7 -6
  151. package/dist/chunks/index-Bi8FFadV.d.ts +2 -1
  152. package/dist/chunks/index-Bkj17NEQ.d.ts +2 -1
  153. package/dist/chunks/{index--0_IpTDT.d.ts → index-BxROljJI.d.ts} +3 -2
  154. package/dist/chunks/index-Bz8MDq0H.d.ts +85 -0
  155. package/dist/chunks/{index-Cf2n0l0U.d.ts → index-C4Dks__B.d.ts} +3 -2
  156. package/dist/chunks/{index-CRfm7W6C.d.ts → index-C9gzVqwX.d.ts} +3 -2
  157. package/dist/chunks/index-CCXJXToc.d.ts +2 -1
  158. package/dist/chunks/{index-COsYSDrz.d.ts → index-CFnQubsV.d.ts} +17 -3
  159. package/dist/chunks/{index-8PhBSbNQ.d.ts → index-CHQR8x8_.d.ts} +16 -17
  160. package/dist/chunks/{index-BTTeKpiE.d.ts → index-CIwzgZJi.d.ts} +3 -2
  161. package/dist/chunks/{index-dh3TKanY.d.ts → index-CTpwB1yR.d.ts} +3 -2
  162. package/dist/chunks/{index-DR8sYtvd.d.ts → index-CYvVmTPR.d.ts} +20 -87
  163. package/dist/chunks/{index-Dum6Y9XR.d.ts → index-Cc4SSslb.d.ts} +20 -2
  164. package/dist/chunks/index-CftERHnE.d.ts +2 -1
  165. package/dist/chunks/{index-CaQ1JY5D.d.ts → index-Ci7AEgEc.d.ts} +4 -6
  166. package/dist/chunks/{index-DKma0jQw.d.ts → index-CjT_4IZx.d.ts} +4 -3
  167. package/dist/chunks/{index-BxTlIaZu.d.ts → index-CqZ68Z8R.d.ts} +125 -11
  168. package/dist/chunks/{index-D2VVO8rx.d.ts → index-CsARGAzD.d.ts} +3 -2
  169. package/dist/chunks/index-CxjNw4ss.d.ts +216 -0
  170. package/dist/chunks/index-DAoPg59I.d.ts +2 -1
  171. package/dist/chunks/index-DHGgezXU.d.ts +2 -1
  172. package/dist/chunks/index-DHOG_rjE.d.ts +121 -0
  173. package/dist/chunks/index-DHcztR18.d.ts +208 -0
  174. package/dist/chunks/index-DJfga0Ce.d.ts +57 -0
  175. package/dist/chunks/{index-DJJocp_q.d.ts → index-DM01FX3a.d.ts} +4 -3
  176. package/dist/chunks/index-DMbdEm__.d.ts +119 -0
  177. package/dist/chunks/{index-BlgkO3dn.d.ts → index-DP5xugE-.d.ts} +25 -34
  178. package/dist/chunks/index-DPCwFiJL.d.ts +95 -0
  179. package/dist/chunks/{index-BTDgfLxK.d.ts → index-DQImhbhy.d.ts} +21 -5
  180. package/dist/chunks/index-DaHQdNul.d.ts +182 -0
  181. package/dist/chunks/index-Dcc_W6Kv.d.ts +2 -1
  182. package/dist/chunks/index-Ddd7iWfm.d.ts +32 -0
  183. package/dist/chunks/index-Dfg4Ftb8.d.ts +2 -1
  184. package/dist/chunks/index-DtbUXxjz.d.ts +2 -1
  185. package/dist/chunks/{index-DPV62IdF.d.ts → index-DtvHH_Mb.d.ts} +12 -10
  186. package/dist/chunks/index-Du9fBqkT.d.ts +56 -0
  187. package/dist/chunks/index-HrKN6s8z.d.ts +2 -1
  188. package/dist/chunks/{index-ClT3E_hv.d.ts → index-NGgDkhyn.d.ts} +19 -25
  189. package/dist/chunks/{index-Dfy1YW5j.d.ts → index-U27Ar174.d.ts} +3 -2
  190. package/dist/chunks/{index-CsMIgBsd.d.ts → index-YJ9QdBuq.d.ts} +10 -10
  191. package/dist/chunks/{index-Dh5CaHTP.d.ts → index-aRdgpeRb.d.ts} +3 -2
  192. package/dist/chunks/index-g74gO0pc.d.ts +36 -0
  193. package/dist/chunks/{index-BO9jLOIb.d.ts → index-lSPcxiii.d.ts} +3 -2
  194. package/dist/chunks/{index-nklPDKlC.d.ts → index-x0vZRyoU.d.ts} +4 -3
  195. package/dist/chunks/{input-adorn-C_EHML68.js → input-adorn-DwdX-jxA.js} +2 -1
  196. package/dist/chunks/input-adorn-DwdX-jxA.js.map +1 -0
  197. package/dist/chunks/{input-group-iI7azfvE.js → input-group-Cuiuf4Dl.js} +2 -1
  198. package/dist/chunks/input-group-Cuiuf4Dl.js.map +1 -0
  199. package/dist/chunks/lazyElement-tfMG21pZ.js +2 -0
  200. package/dist/chunks/lazyElement-tfMG21pZ.js.map +1 -0
  201. package/dist/chunks/list-BQCkwWjF.js +2 -0
  202. package/dist/chunks/list-BQCkwWjF.js.map +1 -0
  203. package/dist/chunks/menu-98EAD9nj.js +2 -0
  204. package/dist/chunks/menu-98EAD9nj.js.map +1 -0
  205. package/dist/chunks/modal-bgDR29Jh.js +2 -0
  206. package/dist/chunks/modal-bgDR29Jh.js.map +1 -0
  207. package/dist/chunks/nav-TiZuTHC6.js +2 -0
  208. package/dist/chunks/nav-TiZuTHC6.js.map +1 -0
  209. package/dist/chunks/nav-overflow-Ay5mM5Gc.js +2 -0
  210. package/dist/chunks/nav-overflow-Ay5mM5Gc.js.map +1 -0
  211. package/dist/chunks/navOverflow-B5krZe6D.js +2 -0
  212. package/dist/chunks/navOverflow-B5krZe6D.js.map +1 -0
  213. package/dist/chunks/navVariant-CnD21GBS.d.ts +5 -0
  214. package/dist/chunks/navVariant-DeGTk9B7.js +2 -0
  215. package/dist/chunks/navVariant-DeGTk9B7.js.map +1 -0
  216. package/dist/chunks/navbar-DxIwt0sc.js +2 -0
  217. package/dist/chunks/navbar-DxIwt0sc.js.map +1 -0
  218. package/dist/chunks/notification-Dbci5Ka3.js +2 -0
  219. package/dist/chunks/notification-Dbci5Ka3.js.map +1 -0
  220. package/dist/chunks/number-field-IBIX2IWH.js +2 -0
  221. package/dist/chunks/number-field-IBIX2IWH.js.map +1 -0
  222. package/dist/chunks/otp-input-ws393uPB.js +2 -0
  223. package/dist/chunks/otp-input-ws393uPB.js.map +1 -0
  224. package/dist/chunks/overlayPlacement-BtS90IVf.js +2 -1
  225. package/dist/chunks/overlayPlacement-BtS90IVf.js.map +1 -0
  226. package/dist/chunks/{overlayPlacement-B7843a-Q.d.ts → overlayPlacement-CIsLpycT.d.ts} +3 -2
  227. package/dist/chunks/pagination-BkOquk-x.js +2 -0
  228. package/dist/chunks/pagination-BkOquk-x.js.map +1 -0
  229. package/dist/chunks/password-strength-DDK8pHRq.js +2 -0
  230. package/dist/chunks/password-strength-DDK8pHRq.js.map +1 -0
  231. package/dist/chunks/placeholder-BCr83sUn.js +2 -0
  232. package/dist/chunks/placeholder-BCr83sUn.js.map +1 -0
  233. package/dist/chunks/polymorphic-BhGNZQja.js +2 -0
  234. package/dist/chunks/polymorphic-BhGNZQja.js.map +1 -0
  235. package/dist/chunks/polymorphic-CVHbTHSN.d.ts +2 -1
  236. package/dist/chunks/popover-Bdg8D4sm.js +2 -0
  237. package/dist/chunks/popover-Bdg8D4sm.js.map +1 -0
  238. package/dist/chunks/{progress-DlrZ71aV.js → progress-zWkTltor.js} +2 -1
  239. package/dist/chunks/progress-zWkTltor.js.map +1 -0
  240. package/dist/chunks/radio-B6gJdtoN.js +2 -0
  241. package/dist/chunks/radio-B6gJdtoN.js.map +1 -0
  242. package/dist/chunks/{range-input-BN3430j-.js → range-input-CT_8TKL7.js} +2 -1
  243. package/dist/chunks/range-input-CT_8TKL7.js.map +1 -0
  244. package/dist/chunks/renderFormCheck-DN_-V62U.js +2 -0
  245. package/dist/chunks/renderFormCheck-DN_-V62U.js.map +1 -0
  246. package/dist/chunks/{renderFormCheck-CYWG-Rbt.d.ts → renderFormCheck-nKgpa_a3.d.ts} +4 -3
  247. package/dist/chunks/renderFormField-Brkw1yA6.js +2 -0
  248. package/dist/chunks/renderFormField-Brkw1yA6.js.map +1 -0
  249. package/dist/chunks/{renderFormField-fBEny6JV.d.ts → renderFormField-ChNagAFN.d.ts} +3 -2
  250. package/dist/chunks/{renderMenuItemContent-CmqT3YUQ.js → renderMenuItemContent-DUezZrpj.js} +2 -1
  251. package/dist/chunks/renderMenuItemContent-DUezZrpj.js.map +1 -0
  252. package/dist/chunks/scrollspy-C2HmrnZ4.js +2 -0
  253. package/dist/chunks/scrollspy-C2HmrnZ4.js.map +1 -0
  254. package/dist/chunks/scrollspy-D_lPjb92.js +2 -0
  255. package/dist/chunks/scrollspy-D_lPjb92.js.map +1 -0
  256. package/dist/chunks/search-field--nDoCI_E.js +2 -0
  257. package/dist/chunks/search-field--nDoCI_E.js.map +1 -0
  258. package/dist/chunks/select-BwJIfv9f.js +2 -0
  259. package/dist/chunks/select-BwJIfv9f.js.map +1 -0
  260. package/dist/chunks/skeleton-CmZBLJwp.js +2 -0
  261. package/dist/chunks/skeleton-CmZBLJwp.js.map +1 -0
  262. package/dist/chunks/slot-CNhFZdHF.js +2 -0
  263. package/dist/chunks/slot-CNhFZdHF.js.map +1 -0
  264. package/dist/chunks/spacingClassName-DVhk8m3P.js +2 -1
  265. package/dist/chunks/spacingClassName-DVhk8m3P.js.map +1 -0
  266. package/dist/chunks/spinner-DblhvrHL.js +2 -0
  267. package/dist/chunks/spinner-DblhvrHL.js.map +1 -0
  268. package/dist/chunks/stack-DK5F53VT.js +2 -0
  269. package/dist/chunks/stack-DK5F53VT.js.map +1 -0
  270. package/dist/chunks/static-table-D0M4oc_t.js +2 -1
  271. package/dist/chunks/static-table-D0M4oc_t.js.map +1 -0
  272. package/dist/chunks/stepper-CVXMJ2yg.js +2 -0
  273. package/dist/chunks/stepper-CVXMJ2yg.js.map +1 -0
  274. package/dist/chunks/switch-C6s3LxEv.js +2 -0
  275. package/dist/chunks/switch-C6s3LxEv.js.map +1 -0
  276. package/dist/chunks/table-Cy6uEuEP.js +2 -0
  277. package/dist/chunks/table-Cy6uEuEP.js.map +1 -0
  278. package/dist/chunks/tableClassName-CZA2Bse8.js +2 -1
  279. package/dist/chunks/tableClassName-CZA2Bse8.js.map +1 -0
  280. package/dist/chunks/tabs-91T7-8qq.js +2 -0
  281. package/dist/chunks/tabs-91T7-8qq.js.map +1 -0
  282. package/dist/chunks/text-input-B4pTv6SU.js +2 -0
  283. package/dist/chunks/text-input-B4pTv6SU.js.map +1 -0
  284. package/dist/chunks/textarea-1A1nABQE.js +2 -0
  285. package/dist/chunks/textarea-1A1nABQE.js.map +1 -0
  286. package/dist/chunks/time-field-B3MA7ED_.js +2 -0
  287. package/dist/chunks/time-field-B3MA7ED_.js.map +1 -0
  288. package/dist/chunks/toast-CGHl3-oU.js +2 -0
  289. package/dist/chunks/toast-CGHl3-oU.js.map +1 -0
  290. package/dist/chunks/tooltip-Bc-u6nIW.js +2 -0
  291. package/dist/chunks/tooltip-Bc-u6nIW.js.map +1 -0
  292. package/dist/chunks/tree-Cql1veeZ.js +2 -0
  293. package/dist/chunks/tree-Cql1veeZ.js.map +1 -0
  294. package/dist/chunks/{types-CS_40Txv.d.ts → types-D6FM7bYR.d.ts} +16 -1
  295. package/dist/chunks/unhandledProps-9Kdj7WVf.js +2 -0
  296. package/dist/chunks/unhandledProps-9Kdj7WVf.js.map +1 -0
  297. package/dist/chunks/useButtonSemantics-CILM_lhi.js +2 -1
  298. package/dist/chunks/useButtonSemantics-CILM_lhi.js.map +1 -0
  299. package/dist/chunks/useControllableState-CPUJxfKW.js +2 -0
  300. package/dist/chunks/useControllableState-CPUJxfKW.js.map +1 -0
  301. package/dist/chunks/useDialogElement-CgOnJAzu.js +2 -0
  302. package/dist/chunks/useDialogElement-CgOnJAzu.js.map +1 -0
  303. package/dist/chunks/useDisabledAnchorGuard-Cz58UCXy.js +2 -1
  304. package/dist/chunks/useDisabledAnchorGuard-Cz58UCXy.js.map +1 -0
  305. package/dist/chunks/useFloatingOverlay-DLIvwx-8.js +2 -0
  306. package/dist/chunks/useFloatingOverlay-DLIvwx-8.js.map +1 -0
  307. package/dist/chunks/useForkedRef-DVEfT-KI.js +2 -1
  308. package/dist/chunks/useForkedRef-DVEfT-KI.js.map +1 -0
  309. package/dist/chunks/useFormField-BOqmBTC4.js +2 -1
  310. package/dist/chunks/useFormField-BOqmBTC4.js.map +1 -0
  311. package/dist/chunks/useIsomorphicLayoutEffect-BbqRwuqn.js +2 -1
  312. package/dist/chunks/useIsomorphicLayoutEffect-BbqRwuqn.js.map +1 -0
  313. package/dist/chunks/useOpenStateProps-DykUbnPJ.js +2 -0
  314. package/dist/chunks/useOpenStateProps-DykUbnPJ.js.map +1 -0
  315. package/dist/chunks/useToastRegionQueue-CIV5SdiE.js +2 -0
  316. package/dist/chunks/useToastRegionQueue-CIV5SdiE.js.map +1 -0
  317. package/dist/chunks/useTransitionState-e5ToY7eX.js +2 -0
  318. package/dist/chunks/useTransitionState-e5ToY7eX.js.map +1 -0
  319. package/dist/chunks/validationClassName-gRGs4KBm.js +2 -1
  320. package/dist/chunks/validationClassName-gRGs4KBm.js.map +1 -0
  321. package/dist/chunks/visibleState-B_i1zHu2.js +2 -0
  322. package/dist/chunks/visibleState-B_i1zHu2.js.map +1 -0
  323. package/dist/close-button.d.ts +1 -1
  324. package/dist/close-button.js +1 -1
  325. package/dist/collapse.js +1 -1
  326. package/dist/color-input.js +1 -1
  327. package/dist/combobox.js +1 -1
  328. package/dist/context-menu.d.ts +2 -0
  329. package/dist/context-menu.js +1 -0
  330. package/dist/datagrid.d.ts +1 -1
  331. package/dist/datagrid.js +1 -1
  332. package/dist/datepicker.d.ts +1 -1
  333. package/dist/datepicker.js +1 -1
  334. package/dist/divider.d.ts +2 -0
  335. package/dist/divider.js +1 -0
  336. package/dist/drawer.d.ts +1 -1
  337. package/dist/drawer.js +1 -1
  338. package/dist/file-input.js +1 -1
  339. package/dist/flex.d.ts +1 -1
  340. package/dist/flex.js +1 -1
  341. package/dist/floating-input.d.ts +1 -1
  342. package/dist/floating-input.js +1 -1
  343. package/dist/form-field.d.ts +1 -1
  344. package/dist/form-field.js +1 -1
  345. package/dist/form.js +1 -1
  346. package/dist/grid.d.ts +2 -2
  347. package/dist/grid.js +1 -1
  348. package/dist/icon.d.ts +2 -2
  349. package/dist/icon.js +1 -1
  350. package/dist/index.d.ts +61 -49
  351. package/dist/index.js +1 -1
  352. package/dist/input-adorn.js +1 -1
  353. package/dist/input-group.js +1 -1
  354. package/dist/link.d.ts +1 -1
  355. package/dist/link.js +1 -1
  356. package/dist/list.d.ts +1 -1
  357. package/dist/list.js +1 -1
  358. package/dist/menu.d.ts +2 -1
  359. package/dist/menu.js +1 -1
  360. package/dist/modal.d.ts +1 -1
  361. package/dist/modal.js +1 -1
  362. package/dist/nav-overflow.d.ts +2 -0
  363. package/dist/nav-overflow.js +1 -0
  364. package/dist/nav.d.ts +2 -2
  365. package/dist/nav.js +1 -1
  366. package/dist/navbar.d.ts +1 -1
  367. package/dist/navbar.js +1 -1
  368. package/dist/notification.d.ts +1 -1
  369. package/dist/notification.js +1 -1
  370. package/dist/number-field.d.ts +2 -0
  371. package/dist/number-field.js +1 -0
  372. package/dist/otp-input.js +1 -1
  373. package/dist/pagination.d.ts +1 -1
  374. package/dist/pagination.js +1 -1
  375. package/dist/password-strength.d.ts +1 -1
  376. package/dist/password-strength.js +1 -1
  377. package/dist/placeholder.d.ts +1 -1
  378. package/dist/placeholder.js +1 -1
  379. package/dist/popover.d.ts +1 -1
  380. package/dist/popover.js +1 -1
  381. package/dist/portal.d.ts +2 -0
  382. package/dist/portal.js +1 -0
  383. package/dist/progress.d.ts +1 -1
  384. package/dist/progress.js +1 -1
  385. package/dist/radio.d.ts +1 -1
  386. package/dist/radio.js +1 -1
  387. package/dist/range-input.js +1 -1
  388. package/dist/scrollspy.d.ts +2 -0
  389. package/dist/scrollspy.js +1 -0
  390. package/dist/search-field.d.ts +2 -0
  391. package/dist/search-field.js +1 -0
  392. package/dist/select.js +1 -1
  393. package/dist/skeleton.d.ts +1 -1
  394. package/dist/skeleton.js +1 -1
  395. package/dist/spinner.d.ts +1 -1
  396. package/dist/spinner.js +1 -1
  397. package/dist/stack.d.ts +1 -1
  398. package/dist/stack.js +1 -1
  399. package/dist/static-table.d.ts +1 -1
  400. package/dist/stepper.d.ts +1 -1
  401. package/dist/stepper.js +1 -1
  402. package/dist/style.css +1 -1
  403. package/dist/switch.d.ts +1 -1
  404. package/dist/switch.js +1 -1
  405. package/dist/table.d.ts +1 -1
  406. package/dist/table.js +1 -1
  407. package/dist/tabs.d.ts +1 -1
  408. package/dist/tabs.js +1 -1
  409. package/dist/text-input.js +1 -1
  410. package/dist/textarea.js +1 -1
  411. package/dist/time-field.d.ts +2 -0
  412. package/dist/time-field.js +1 -0
  413. package/dist/toast.d.ts +1 -1
  414. package/dist/toast.js +1 -1
  415. package/dist/tooltip.d.ts +1 -1
  416. package/dist/tooltip.js +1 -1
  417. package/dist/tree.d.ts +2 -0
  418. package/dist/tree.js +1 -0
  419. package/dist/visually-hidden.d.ts +2 -0
  420. package/dist/visually-hidden.js +1 -0
  421. package/package.json +61 -52
  422. package/dist/chunks/Button-I0aUy5h-.js +0 -1
  423. package/dist/chunks/Chip-D0Cw0mAr.js +0 -1
  424. package/dist/chunks/CloseButton-DJM7FRKh.js +0 -1
  425. package/dist/chunks/ComboboxListBox-BhO8uRNg.js +0 -1
  426. package/dist/chunks/Icon-BIwkD-kx.js +0 -1
  427. package/dist/chunks/Link-Cq7FNWpm.js +0 -1
  428. package/dist/chunks/RangeCalendar-COnSfurr.js +0 -1
  429. package/dist/chunks/accordion-okRicuG5.js +0 -1
  430. package/dist/chunks/autocomplete-B0xTc6kg.js +0 -1
  431. package/dist/chunks/avatar-Bjm0DlPO.js +0 -1
  432. package/dist/chunks/breakpoints-SLMTNHF9.d.ts +0 -5
  433. package/dist/chunks/breakpoints-o_2Ev7ir.js +0 -1
  434. package/dist/chunks/button-group-CPZYA6aZ.js +0 -1
  435. package/dist/chunks/card-DfF2K_5p.js +0 -1
  436. package/dist/chunks/carousel-DEvwcA7H.js +0 -1
  437. package/dist/chunks/checkbox-BFPS0pD6.js +0 -1
  438. package/dist/chunks/chip-input-CB1lE6vP.js +0 -1
  439. package/dist/chunks/collapse-WifcChO8.js +0 -1
  440. package/dist/chunks/combobox-DWEj-Sv7.js +0 -1
  441. package/dist/chunks/datagrid-nbnNThsT.js +0 -2
  442. package/dist/chunks/datepicker-CslLKMm1.js +0 -1
  443. package/dist/chunks/direction-CPhdeL3A.js +0 -1
  444. package/dist/chunks/drawer-zReFjoJG.js +0 -1
  445. package/dist/chunks/flex-BTvpgaRv.js +0 -1
  446. package/dist/chunks/floating-input-CIC9Lm2a.js +0 -1
  447. package/dist/chunks/form-field-BjQ9SIjx.js +0 -1
  448. package/dist/chunks/grid-CuFw89yV.js +0 -1
  449. package/dist/chunks/iconSlot-BmWxJh27.js +0 -1
  450. package/dist/chunks/index-BDfh8YBc.d.ts +0 -39
  451. package/dist/chunks/index-CVUMS0x7.d.ts +0 -73
  452. package/dist/chunks/index-D949AidR.d.ts +0 -40
  453. package/dist/chunks/index-DEb9zXlC.d.ts +0 -210
  454. package/dist/chunks/list-CMr-wB9d.js +0 -1
  455. package/dist/chunks/menu-CXUc-Gva.js +0 -1
  456. package/dist/chunks/modal-ByIj71Mq.js +0 -1
  457. package/dist/chunks/nav-BldxFo_B.js +0 -1
  458. package/dist/chunks/navbar-BwcsQuBk.js +0 -1
  459. package/dist/chunks/notification-DdqigVB1.js +0 -1
  460. package/dist/chunks/otp-input-CXe_wkII.js +0 -1
  461. package/dist/chunks/pagination-BOpEAYW2.js +0 -1
  462. package/dist/chunks/password-strength-BfLiYiGj.js +0 -1
  463. package/dist/chunks/placeholder-pg95KELl.js +0 -1
  464. package/dist/chunks/polymorphic-CACPOv1_.js +0 -1
  465. package/dist/chunks/popover-BpSfnZzk.js +0 -1
  466. package/dist/chunks/radio-BV7Sq6D1.js +0 -1
  467. package/dist/chunks/renderFormCheck-BXBs6_ov.js +0 -1
  468. package/dist/chunks/renderFormField-wiaxvvLG.js +0 -1
  469. package/dist/chunks/select-CclIIux8.js +0 -1
  470. package/dist/chunks/skeleton-CKq76sE_.js +0 -1
  471. package/dist/chunks/spinner-BEq4PAlu.js +0 -1
  472. package/dist/chunks/stack-D3retZ-W.js +0 -1
  473. package/dist/chunks/stepper-CTa6e8uv.js +0 -1
  474. package/dist/chunks/switch-BmHpq4tL.js +0 -1
  475. package/dist/chunks/table-Fme9GbAR.js +0 -1
  476. package/dist/chunks/tabs-BnbMJM_b.js +0 -1
  477. package/dist/chunks/text-input-DD3d08Yf.js +0 -1
  478. package/dist/chunks/textarea-C0qQdCcu.js +0 -1
  479. package/dist/chunks/toast-BQhZ2pv5.js +0 -1
  480. package/dist/chunks/tooltip-DHtVAYUo.js +0 -1
  481. package/dist/chunks/triggerElement-BIqA4KqZ.js +0 -1
  482. package/dist/chunks/useDialogElement-BRIU60cT.js +0 -1
  483. package/dist/chunks/useFloatingOverlay-CcmDZKMK.js +0 -1
  484. package/dist/chunks/useToastRegionQueue-BH6bWZ73.js +0 -1
  485. package/src/components/accordion/Accordion.tsx +0 -190
  486. package/src/components/accordion/AccordionBody.tsx +0 -46
  487. package/src/components/accordion/AccordionHeader.tsx +0 -21
  488. package/src/components/accordion/AccordionItem.tsx +0 -59
  489. package/src/components/accordion/context.ts +0 -8
  490. package/src/components/accordion/index.ts +0 -12
  491. package/src/components/autocomplete/Autocomplete.tsx +0 -464
  492. package/src/components/autocomplete/AutocompleteGroup.tsx +0 -20
  493. package/src/components/autocomplete/AutocompleteItem.tsx +0 -18
  494. package/src/components/autocomplete/index.ts +0 -10
  495. package/src/components/avatar/Avatar.tsx +0 -137
  496. package/src/components/avatar/AvatarImage.tsx +0 -19
  497. package/src/components/avatar/AvatarStack.tsx +0 -98
  498. package/src/components/avatar/index.ts +0 -10
  499. package/src/components/badge/Badge.tsx +0 -94
  500. package/src/components/badge/index.ts +0 -6
  501. package/src/components/breadcrumb/Breadcrumb.tsx +0 -68
  502. package/src/components/breadcrumb/BreadcrumbItem.tsx +0 -38
  503. package/src/components/breadcrumb/index.ts +0 -8
  504. package/src/components/button/Button.tsx +0 -232
  505. package/src/components/button/index.ts +0 -6
  506. package/src/components/button-group/ButtonGroup.tsx +0 -55
  507. package/src/components/button-group/ButtonToolbar.tsx +0 -47
  508. package/src/components/button-group/index.ts +0 -8
  509. package/src/components/calendar/Calendar.scss +0 -57
  510. package/src/components/calendar/Calendar.tsx +0 -338
  511. package/src/components/calendar/CalendarMonthBlock.tsx +0 -57
  512. package/src/components/calendar/CalendarMonthGrid.tsx +0 -94
  513. package/src/components/calendar/CalendarMonthYearPicker.tsx +0 -164
  514. package/src/components/calendar/CalendarNavButton.tsx +0 -24
  515. package/src/components/calendar/CalendarWeekGrid.tsx +0 -58
  516. package/src/components/calendar/CalendarYearGrid.tsx +0 -128
  517. package/src/components/calendar/RangeCalendar.scss +0 -95
  518. package/src/components/calendar/RangeCalendar.tsx +0 -373
  519. package/src/components/calendar/index.ts +0 -10
  520. package/src/components/calendar/labels.tsx +0 -71
  521. package/src/components/card/Card.tsx +0 -173
  522. package/src/components/card/CardBody.tsx +0 -75
  523. package/src/components/card/CardFooter.tsx +0 -47
  524. package/src/components/card/CardGroup.tsx +0 -51
  525. package/src/components/card/CardHeader.tsx +0 -47
  526. package/src/components/card/CardImage.tsx +0 -70
  527. package/src/components/card/CardImageOverlay.tsx +0 -47
  528. package/src/components/card/CardLink.tsx +0 -40
  529. package/src/components/card/CardSubtitle.tsx +0 -47
  530. package/src/components/card/CardText.tsx +0 -47
  531. package/src/components/card/CardTitle.tsx +0 -47
  532. package/src/components/card/index.ts +0 -26
  533. package/src/components/carousel/Carousel.tsx +0 -753
  534. package/src/components/carousel/CarouselControlButton.tsx +0 -81
  535. package/src/components/carousel/CarouselControlNext.tsx +0 -28
  536. package/src/components/carousel/CarouselControlPrev.tsx +0 -28
  537. package/src/components/carousel/CarouselIndicators.tsx +0 -44
  538. package/src/components/carousel/CarouselInner.tsx +0 -56
  539. package/src/components/carousel/CarouselItem.tsx +0 -51
  540. package/src/components/carousel/CarouselOverlay.tsx +0 -51
  541. package/src/components/carousel/CarouselPlayPause.tsx +0 -84
  542. package/src/components/carousel/carouselEngine.ts +0 -170
  543. package/src/components/carousel/context.ts +0 -29
  544. package/src/components/carousel/index.ts +0 -25
  545. package/src/components/checkbox/Checkbox.tsx +0 -252
  546. package/src/components/checkbox/CheckboxGroup.tsx +0 -145
  547. package/src/components/checkbox/context.ts +0 -14
  548. package/src/components/checkbox/index.ts +0 -8
  549. package/src/components/chip/Chip.tsx +0 -184
  550. package/src/components/chip/index.ts +0 -6
  551. package/src/components/chip-input/ChipInput.tsx +0 -371
  552. package/src/components/chip-input/ChipList.tsx +0 -95
  553. package/src/components/chip-input/index.ts +0 -6
  554. package/src/components/close-button/CloseButton.tsx +0 -205
  555. package/src/components/close-button/index.ts +0 -6
  556. package/src/components/collapse/Collapse.tsx +0 -128
  557. package/src/components/collapse/index.ts +0 -6
  558. package/src/components/color-input/ColorInput.tsx +0 -106
  559. package/src/components/color-input/index.ts +0 -6
  560. package/src/components/combobox/Combobox.tsx +0 -320
  561. package/src/components/combobox/ComboboxGroup.tsx +0 -27
  562. package/src/components/combobox/ComboboxItem.tsx +0 -44
  563. package/src/components/combobox/ComboboxListBox.tsx +0 -98
  564. package/src/components/combobox/index.ts +0 -10
  565. package/src/components/datagrid/DataGrid.scss +0 -203
  566. package/src/components/datagrid/DataGrid.tsx +0 -259
  567. package/src/components/datagrid/DataGridBody.tsx +0 -162
  568. package/src/components/datagrid/DataGridCell.tsx +0 -47
  569. package/src/components/datagrid/DataGridColumn.tsx +0 -109
  570. package/src/components/datagrid/DataGridHeader.tsx +0 -47
  571. package/src/components/datagrid/DataGridPinBehavior.tsx +0 -225
  572. package/src/components/datagrid/DataGridRow.tsx +0 -48
  573. package/src/components/datagrid/DataGridSelectionCell.tsx +0 -74
  574. package/src/components/datagrid/DataGridTableLayout.ts +0 -30
  575. package/src/components/datagrid/index.ts +0 -18
  576. package/src/components/datagrid/useColumnGeometry.ts +0 -161
  577. package/src/components/datepicker/CalendarToggleButton.tsx +0 -58
  578. package/src/components/datepicker/ClearButton.tsx +0 -38
  579. package/src/components/datepicker/DateField.tsx +0 -54
  580. package/src/components/datepicker/DatePicker.scss +0 -51
  581. package/src/components/datepicker/DatePicker.tsx +0 -606
  582. package/src/components/datepicker/DateRangePicker.scss +0 -11
  583. package/src/components/datepicker/DateRangePicker.tsx +0 -361
  584. package/src/components/datepicker/index.ts +0 -8
  585. package/src/components/datepicker/renderDatePickerShell.tsx +0 -104
  586. package/src/components/drawer/Drawer.tsx +0 -213
  587. package/src/components/drawer/DrawerBody.tsx +0 -47
  588. package/src/components/drawer/DrawerFooter.tsx +0 -51
  589. package/src/components/drawer/DrawerHeader.tsx +0 -60
  590. package/src/components/drawer/DrawerTitle.tsx +0 -49
  591. package/src/components/drawer/index.ts +0 -18
  592. package/src/components/file-input/FileInput.tsx +0 -100
  593. package/src/components/file-input/index.ts +0 -6
  594. package/src/components/flex/Flex.tsx +0 -134
  595. package/src/components/flex/index.ts +0 -6
  596. package/src/components/floating-input/FloatingInput.tsx +0 -94
  597. package/src/components/floating-input/index.ts +0 -6
  598. package/src/components/form/Form.tsx +0 -26
  599. package/src/components/form/FormFeedback.tsx +0 -64
  600. package/src/components/form/FormHelp.tsx +0 -46
  601. package/src/components/form/FormLabel.tsx +0 -26
  602. package/src/components/form/index.ts +0 -12
  603. package/src/components/form/renderFormCheck.tsx +0 -86
  604. package/src/components/form-field/FormField.tsx +0 -84
  605. package/src/components/form-field/index.ts +0 -6
  606. package/src/components/form-field/renderFormField.tsx +0 -85
  607. package/src/components/grid/Col.tsx +0 -69
  608. package/src/components/grid/Container.tsx +0 -59
  609. package/src/components/grid/Grid.tsx +0 -86
  610. package/src/components/grid/GridItem.tsx +0 -123
  611. package/src/components/grid/Row.tsx +0 -71
  612. package/src/components/grid/gap.ts +0 -8
  613. package/src/components/grid/index.ts +0 -14
  614. package/src/components/icon/Icon.tsx +0 -105
  615. package/src/components/icon/IconProvider.tsx +0 -40
  616. package/src/components/icon/index.ts +0 -9
  617. package/src/components/input-adorn/InputAdorn.tsx +0 -55
  618. package/src/components/input-adorn/index.ts +0 -6
  619. package/src/components/input-group/InputGroup.tsx +0 -50
  620. package/src/components/input-group/InputGroupAddon.tsx +0 -50
  621. package/src/components/input-group/index.ts +0 -8
  622. package/src/components/link/Link.tsx +0 -148
  623. package/src/components/link/index.ts +0 -6
  624. package/src/components/list/List.tsx +0 -193
  625. package/src/components/list/ListItem.tsx +0 -91
  626. package/src/components/list/index.ts +0 -8
  627. package/src/components/menu/Menu.tsx +0 -408
  628. package/src/components/menu/MenuDivider.tsx +0 -19
  629. package/src/components/menu/MenuHeader.tsx +0 -55
  630. package/src/components/menu/MenuItem.tsx +0 -85
  631. package/src/components/menu/MenuItemDef.ts +0 -83
  632. package/src/components/menu/MenuList.tsx +0 -142
  633. package/src/components/menu/MenuSubmenu.tsx +0 -284
  634. package/src/components/menu/MenuSubmenuBack.tsx +0 -39
  635. package/src/components/menu/MenuText.tsx +0 -47
  636. package/src/components/menu/MenuToggle.tsx +0 -148
  637. package/src/components/menu/index.ts +0 -23
  638. package/src/components/menu/menuNavigation.ts +0 -106
  639. package/src/components/menu/submenuGroup.ts +0 -43
  640. package/src/components/modal/Modal.tsx +0 -164
  641. package/src/components/modal/ModalBody.tsx +0 -47
  642. package/src/components/modal/ModalFooter.tsx +0 -51
  643. package/src/components/modal/ModalHeader.tsx +0 -60
  644. package/src/components/modal/ModalTitle.tsx +0 -49
  645. package/src/components/modal/index.ts +0 -18
  646. package/src/components/nav/Nav.tsx +0 -97
  647. package/src/components/nav/NavItem.tsx +0 -42
  648. package/src/components/nav/NavLink.tsx +0 -48
  649. package/src/components/nav/NavTitle.tsx +0 -22
  650. package/src/components/nav/index.ts +0 -11
  651. package/src/components/navbar/Navbar.tsx +0 -112
  652. package/src/components/navbar/NavbarBrand.tsx +0 -58
  653. package/src/components/navbar/NavbarNav.tsx +0 -47
  654. package/src/components/navbar/NavbarText.tsx +0 -47
  655. package/src/components/navbar/NavbarToggler.tsx +0 -40
  656. package/src/components/navbar/index.ts +0 -14
  657. package/src/components/notification/Notification.scss +0 -15
  658. package/src/components/notification/Notification.tsx +0 -188
  659. package/src/components/notification/NotificationIcon.tsx +0 -21
  660. package/src/components/notification/NotificationStack.tsx +0 -66
  661. package/src/components/notification/NotificationText.tsx +0 -47
  662. package/src/components/notification/NotificationTitle.tsx +0 -47
  663. package/src/components/notification/context.ts +0 -14
  664. package/src/components/notification/index.ts +0 -25
  665. package/src/components/notification/notificationQueue.ts +0 -48
  666. package/src/components/otp-input/OtpBox.tsx +0 -68
  667. package/src/components/otp-input/OtpInput.tsx +0 -342
  668. package/src/components/otp-input/index.ts +0 -6
  669. package/src/components/pagination/Pagination.tsx +0 -212
  670. package/src/components/pagination/PaginationItem.tsx +0 -152
  671. package/src/components/pagination/index.ts +0 -12
  672. package/src/components/password-strength/PasswordStrength.tsx +0 -155
  673. package/src/components/password-strength/index.ts +0 -6
  674. package/src/components/password-strength/strengthScore.ts +0 -79
  675. package/src/components/placeholder/Placeholder.tsx +0 -178
  676. package/src/components/placeholder/index.ts +0 -6
  677. package/src/components/popover/Popover.tsx +0 -269
  678. package/src/components/popover/index.ts +0 -6
  679. package/src/components/progress/Progress.tsx +0 -154
  680. package/src/components/progress/ProgressBar.tsx +0 -88
  681. package/src/components/progress/index.ts +0 -8
  682. package/src/components/radio/Radio.tsx +0 -98
  683. package/src/components/radio/RadioGroup.tsx +0 -142
  684. package/src/components/radio/context.ts +0 -14
  685. package/src/components/radio/index.ts +0 -8
  686. package/src/components/range-input/RangeInput.tsx +0 -109
  687. package/src/components/range-input/index.ts +0 -6
  688. package/src/components/select/Select.tsx +0 -277
  689. package/src/components/select/index.ts +0 -6
  690. package/src/components/skeleton/Skeleton.tsx +0 -89
  691. package/src/components/skeleton/SkeletonLoader.tsx +0 -98
  692. package/src/components/skeleton/index.ts +0 -8
  693. package/src/components/spinner/Spinner.tsx +0 -77
  694. package/src/components/spinner/index.ts +0 -6
  695. package/src/components/stack/Stack.tsx +0 -81
  696. package/src/components/stack/index.ts +0 -6
  697. package/src/components/static-table/StaticTable.tsx +0 -78
  698. package/src/components/static-table/index.ts +0 -8
  699. package/src/components/stepper/Stepper.tsx +0 -172
  700. package/src/components/stepper/StepperItem.tsx +0 -66
  701. package/src/components/stepper/index.ts +0 -8
  702. package/src/components/switch/Switch.tsx +0 -259
  703. package/src/components/switch/index.ts +0 -6
  704. package/src/components/table/Table.css +0 -39
  705. package/src/components/table/Table.tsx +0 -405
  706. package/src/components/table/TableBody.tsx +0 -25
  707. package/src/components/table/TableCell.tsx +0 -27
  708. package/src/components/table/TableColumn.tsx +0 -31
  709. package/src/components/table/TableHeader.tsx +0 -26
  710. package/src/components/table/TableRow.tsx +0 -24
  711. package/src/components/table/index.ts +0 -16
  712. package/src/components/tabs/Tab.tsx +0 -36
  713. package/src/components/tabs/TabList.tsx +0 -76
  714. package/src/components/tabs/TabPanel.tsx +0 -68
  715. package/src/components/tabs/Tabs.tsx +0 -136
  716. package/src/components/tabs/context.ts +0 -24
  717. package/src/components/tabs/index.ts +0 -12
  718. package/src/components/text-input/TextInput.tsx +0 -188
  719. package/src/components/text-input/index.ts +0 -6
  720. package/src/components/textarea/Textarea.tsx +0 -145
  721. package/src/components/textarea/index.ts +0 -6
  722. package/src/components/toast/Toast.tsx +0 -220
  723. package/src/components/toast/ToastBody.tsx +0 -64
  724. package/src/components/toast/ToastFooter.tsx +0 -47
  725. package/src/components/toast/ToastHeader.tsx +0 -105
  726. package/src/components/toast/ToastIcon.tsx +0 -21
  727. package/src/components/toast/Toaster.tsx +0 -87
  728. package/src/components/toast/context.ts +0 -14
  729. package/src/components/toast/index.ts +0 -26
  730. package/src/components/toast/toastQueue.ts +0 -56
  731. package/src/components/tooltip/Tooltip.tsx +0 -171
  732. package/src/components/tooltip/index.ts +0 -6
  733. package/src/global.d.ts +0 -2
  734. package/src/hooks/index.ts +0 -57
  735. package/src/hooks/useAutoDismiss.ts +0 -91
  736. package/src/hooks/useButtonSemantics.ts +0 -33
  737. package/src/hooks/useControllableState.ts +0 -24
  738. package/src/hooks/useDialogElement.ts +0 -226
  739. package/src/hooks/useDisabledAnchorGuard.ts +0 -22
  740. package/src/hooks/useDismissibleTransition.ts +0 -126
  741. package/src/hooks/useDrawer.ts +0 -9
  742. package/src/hooks/useFloatingOverlay.ts +0 -125
  743. package/src/hooks/useForkedRef.ts +0 -50
  744. package/src/hooks/useFormField.ts +0 -89
  745. package/src/hooks/useIconConfig.ts +0 -6
  746. package/src/hooks/useIsomorphicLayoutEffect.ts +0 -9
  747. package/src/hooks/useModal.ts +0 -9
  748. package/src/hooks/useNotification.ts +0 -10
  749. package/src/hooks/useOverlayPlacement.ts +0 -93
  750. package/src/hooks/usePagination.ts +0 -89
  751. package/src/hooks/useToast.ts +0 -9
  752. package/src/hooks/useToastRegionQueue.ts +0 -27
  753. package/src/index.ts +0 -522
  754. package/src/types.ts +0 -133
  755. package/src/utils/breakpoints.ts +0 -43
  756. package/src/utils/comboboxCollection.tsx +0 -152
  757. package/src/utils/dateRangePresets.ts +0 -6
  758. package/src/utils/devWarning.ts +0 -58
  759. package/src/utils/dialogTransition.ts +0 -39
  760. package/src/utils/direction.ts +0 -14
  761. package/src/utils/focusRedirect.ts +0 -23
  762. package/src/utils/iconConfig.ts +0 -88
  763. package/src/utils/iconSlot.tsx +0 -41
  764. package/src/utils/isWholeUnitDisabled.ts +0 -17
  765. package/src/utils/mergeIsDateUnavailable.ts +0 -15
  766. package/src/utils/overlayPlacement.ts +0 -93
  767. package/src/utils/pointerInteraction.ts +0 -21
  768. package/src/utils/polymorphic.ts +0 -100
  769. package/src/utils/renderMenuItemContent.tsx +0 -57
  770. package/src/utils/setVisibleRangeStart.ts +0 -64
  771. package/src/utils/slot.tsx +0 -78
  772. package/src/utils/spacingClassName.ts +0 -14
  773. package/src/utils/suppressFocusRingGlobally.ts +0 -84
  774. package/src/utils/tableClassName.ts +0 -93
  775. package/src/utils/triggerElement.ts +0 -25
  776. package/src/utils/validationClassName.ts +0 -8
  777. package/src/utils/virtualFocusStyle.ts +0 -16
@@ -1,753 +0,0 @@
1
- import React, {
2
- CSSProperties,
3
- forwardRef,
4
- HTMLAttributes,
5
- useCallback,
6
- useEffect,
7
- useRef,
8
- useState
9
- } from 'react'
10
- import classNames from 'classnames'
11
-
12
- import { useControllableState, useForkedRef, useIsomorphicLayoutEffect } from '../../hooks'
13
- import { focusRedirect } from '../../utils/focusRedirect'
14
- import { consumePointerClick } from '../../utils/pointerInteraction'
15
- import { CarouselContext, CarouselContextProps, CarouselEnds } from './context'
16
- import {
17
- animateScrollTo,
18
- canLoop,
19
- directionBetween,
20
- getCarouselItems,
21
- isElementVisible,
22
- isRTL,
23
- isViewportScrollable,
24
- loopDirection,
25
- normalizeIndex,
26
- prefersReducedMotion,
27
- scrollDeltaFor
28
- } from './carouselEngine'
29
- import { devWarning } from '../../utils/devWarning'
30
-
31
- export type { CarouselEnds }
32
- export type CarouselTransition = 'scroll' | 'fade'
33
-
34
- export interface CarouselSlideDetail {
35
- /**
36
- * Direction of travel, mirrored in RTL.
37
- */
38
- direction: 'left' | 'right'
39
- /**
40
- * Index of the outgoing slide.
41
- */
42
- from: number
43
- /**
44
- * Index of the incoming slide.
45
- */
46
- to: number
47
- }
48
-
49
- export interface CarouselProps extends HTMLAttributes<HTMLDivElement> {
50
- /**
51
- * The active slide's index, for controlled usage. Pair with `onSlide` or `onSlid` to feed the
52
- * new index back — they're the only way a controlled carousel's `activeIndex` gets updated.
53
- */
54
- activeIndex?: number
55
- /**
56
- * Let each CarouselItem size itself instead of dividing the track evenly; snap points still land on every slide.
57
- */
58
- auto?: boolean
59
- /**
60
- * Cycle through slides automatically on mount.
61
- */
62
- autoplay?: boolean
63
- /**
64
- * Snap the active slide to the center of the viewport instead of its start.
65
- */
66
- center?: boolean
67
- /**
68
- * A string of all className you want applied to the base component.
69
- */
70
- className?: string
71
- /**
72
- * The active slide's index, for uncontrolled usage.
73
- */
74
- defaultActiveIndex?: number
75
- /**
76
- * Behavior at the first/last slide. `loop` continues seamlessly past the ends for a single-slide layout, falling back to `wrap` for multi-item, peek, centered, or variable-width layouts, and under reduced motion. `wrap` jumps from the last slide back to the first, and vice versa. `stop` hard-stops and disables the previous/next controls at each end.
77
- */
78
- ends?: CarouselEnds
79
- /**
80
- * Milliseconds to wait before automatically advancing to the next slide. Override per slide with CarouselItem's own `interval` prop.
81
- */
82
- interval?: number
83
- /**
84
- * Number of whole slides visible per view, applied as the `--cx-carousel-items` custom property.
85
- */
86
- items?: number
87
- /**
88
- * Space between slides, applied as the `--cx-carousel-items-gap` custom property.
89
- */
90
- itemsGap?: string
91
- /**
92
- * How much of the neighboring slides to reveal, applied as the `--cx-carousel-items-peek` custom property.
93
- */
94
- itemsPeek?: string
95
- /**
96
- * Move to the previous/next slide with the Left/Right arrow keys while focus is inside the carousel.
97
- */
98
- keyboard?: boolean
99
- /**
100
- * Callback fired once a slide transition completes.
101
- */
102
- onSlid?: (detail: CarouselSlideDetail) => void
103
- /**
104
- * Callback fired when a slide transition begins.
105
- */
106
- onSlide?: (detail: CarouselSlideDetail) => void
107
- /**
108
- * Pause autoplay on `mouseenter`, resuming on `mouseleave`. Set to `false` to disable pause-on-hover.
109
- */
110
- pause?: 'hover' | false
111
- /**
112
- * Replace the scroll transition with a crossfade.
113
- */
114
- transition?: CarouselTransition
115
- }
116
-
117
- const ACTIVE_RATIO_TOLERANCE = 0.05
118
-
119
- export const Carousel = forwardRef<HTMLDivElement, CarouselProps>(
120
- (
121
- {
122
- children,
123
- activeIndex: activeIndexProp,
124
- auto,
125
- autoplay = false,
126
- center,
127
- className,
128
- defaultActiveIndex = 0,
129
- ends = 'loop',
130
- interval = 5000,
131
- items,
132
- itemsGap,
133
- itemsPeek,
134
- keyboard = true,
135
- onKeyDown,
136
- onMouseEnter,
137
- onMouseLeave,
138
- onSlid,
139
- onSlide,
140
- pause = 'hover',
141
- style,
142
- transition = 'scroll',
143
- ...rest
144
- },
145
- ref
146
- ) => {
147
- // `onSlide`/`onSlid` — not a dedicated `onChange` — are the only way a controlled
148
- // `activeIndex` gets fed back (see the CarouselProps `activeIndex` doc and carousel.mdx's
149
- // "Controlled usage" section). Missing both means every click/swipe/autoplay advance updates
150
- // internal state that `useControllableState` immediately discards (controlled mode always
151
- // mirrors the prop), so the carousel silently freezes instead of erroring.
152
- devWarning(
153
- activeIndexProp !== undefined && !onSlide && !onSlid,
154
- 'Carousel: `activeIndex` is set (controlled) but neither `onSlide` nor `onSlid` is — ' +
155
- 'nothing feeds the new index back to your state, so the carousel will visually freeze ' +
156
- 'on click/swipe/autoplay. Pass `onSlide` or `onSlid` and update `activeIndex` from it.'
157
- )
158
-
159
- const carouselRef = useRef<HTMLDivElement>(null)
160
- const forkedRef = useForkedRef(ref, carouselRef)
161
-
162
- const [viewportEl, setViewportEl] = useState<HTMLDivElement | null>(null)
163
- // Stable identity: this goes into `contextValue` and on to `useForkedRef` in `CarouselInner`,
164
- // whose memo is keyed on the refs array — a fresh closure every render would keep detaching
165
- // and reattaching the viewport ref instead of running once per mount.
166
- const registerViewport = useCallback((node: HTMLDivElement | null) => setViewportEl(node), [])
167
-
168
- const [activeIndex, setActiveIndex] = useControllableState(activeIndexProp, defaultActiveIndex)
169
- const activeIndexRef = useRef(activeIndex)
170
- useIsomorphicLayoutEffect(() => {
171
- activeIndexRef.current = activeIndex
172
- }, [activeIndex])
173
-
174
- const [itemCount, setItemCount] = useState(0)
175
- const itemCountRef = useRef(itemCount)
176
- useIsomorphicLayoutEffect(() => {
177
- itemCountRef.current = itemCount
178
- }, [itemCount])
179
-
180
- const [playing, setPlaying] = useState(autoplay)
181
- const [cycling, setCycling] = useState(false)
182
- const [atStart, setAtStart] = useState(true)
183
- const [atEnd, setAtEnd] = useState(false)
184
-
185
- const loopingRef = useRef(false)
186
- // True while a programmatic scroll-sync animation is in flight, so the IntersectionObserver
187
- // doesn't treat a slide passing through mid-scroll (e.g. slide 2 on the way from 1 to 3) as
188
- // the new active slide and hijack the navigation before it reaches its real target.
189
- const syncingScrollRef = useRef(false)
190
- // Set right before an `activeIndex` change originates from the IntersectionObserver (i.e. the
191
- // user physically scrolled/swiped there) so the scroll-sync effect below can skip it. Without
192
- // this, every threshold the observer crosses mid-gesture — before the browser's own
193
- // scroll-snap has actually settled the position — would make that effect "correct" the
194
- // still-in-progress native scroll, fighting the user's own touch/wheel input.
195
- const skipScrollSyncRef = useRef(false)
196
- const cancelScrollSyncRef = useRef<(() => void) | null>(null)
197
- const observerRef = useRef<IntersectionObserver | null>(null)
198
- const visibilityRef = useRef(new Map<Element, number>())
199
- const timeoutRef = useRef<ReturnType<typeof setTimeout> | null>(null)
200
- const scrollSyncedRef = useRef(false)
201
- const mountedForSlidRef = useRef(false)
202
- const mountedForLiveRegionRef = useRef(false)
203
- const [liveMessage, setLiveMessage] = useState('')
204
- // Set while the scroll-sync effect below owns firing `onSlid` for the in-flight
205
- // `animateScrollTo` animation, so the generic effect doesn't fire it early — before the slide
206
- // has actually finished sliding into place.
207
- const deferOnSlidRef = useRef(false)
208
- const lastTransitionRef = useRef<CarouselSlideDetail>({
209
- from: activeIndex,
210
- to: activeIndex,
211
- direction: 'left'
212
- })
213
- const prevControlsRef = useRef<Set<HTMLButtonElement>>(new Set())
214
- const nextControlsRef = useRef<Set<HTMLButtonElement>>(new Set())
215
-
216
- const isFade = transition === 'fade'
217
- const itemsVisible = Math.max(1, items ?? 1)
218
- const wraps = ends !== 'stop'
219
-
220
- const setActiveIndexInternal = (next: number) => {
221
- // Update the ref synchronously, not just via the layout effect below — that effect only
222
- // runs after React re-renders and commits, so two `next()` calls fired back-to-back in the
223
- // same tick (a fast double-click, or any rapid programmatic call) would both read the same
224
- // stale `activeIndexRef.current` and target the same index instead of advancing twice.
225
- activeIndexRef.current = next
226
- setActiveIndex(next)
227
- }
228
-
229
- // Index math alone (not real geometry) drives `atStart`/`atEnd` so end-control state and
230
- // navigation clamping are correct even before layout exists (SSR, jsdom tests). The scroll
231
- // listener below refines it further for peek/variable-width layouts, where a whole number of
232
- // "visible items" can't be derived from `items` alone.
233
- useIsomorphicLayoutEffect(() => {
234
- const maxIndex = Math.max(0, itemCount - itemsVisible)
235
- setAtStart(activeIndex <= 0)
236
- setAtEnd(activeIndex >= maxIndex)
237
- }, [activeIndex, itemCount, itemsVisible])
238
-
239
- useEffect(() => {
240
- if (!viewportEl) return undefined
241
-
242
- const handleScroll = () => {
243
- if (loopingRef.current || !isViewportScrollable(viewportEl)) return
244
- const maxScroll = viewportEl.scrollWidth - viewportEl.clientWidth
245
- // Elastic overscroll (iOS Safari/macOS trackpad rubber-banding) can push `scrollLeft`
246
- // slightly past either edge mid-gesture. Clamp to the real [0, maxScroll] range (mirrored
247
- // for RTL's negative `scrollLeft` convention) before the RTL-normalizing `abs()` below, so
248
- // a bounce at the start edge doesn't briefly read as "away from start" - which flickered
249
- // `ends="stop"` controls enabled while still at the first/last slide.
250
- const rawScrollLeft = viewportEl.scrollLeft
251
- const clampedScrollLeft = isRTL(viewportEl)
252
- ? Math.max(-maxScroll, Math.min(0, rawScrollLeft))
253
- : Math.max(0, Math.min(maxScroll, rawScrollLeft))
254
- const scrollLeft = Math.abs(clampedScrollLeft)
255
- setAtStart(scrollLeft <= 1)
256
- setAtEnd(scrollLeft >= maxScroll - 1)
257
- }
258
-
259
- viewportEl.addEventListener('scroll', handleScroll, { passive: true })
260
- return () => viewportEl.removeEventListener('scroll', handleScroll)
261
- }, [viewportEl])
262
-
263
- // A layout effect, not a plain effect: `itemCount` must be measured before paint so the
264
- // atStart/atEnd layout effect above (which runs first, in declaration order) sees the real
265
- // count once React re-renders to flush this effect's `setItemCount` — otherwise the first
266
- // paint briefly shows `atEnd=true` (itemCount still 0) even on a carousel with many slides.
267
- useIsomorphicLayoutEffect(() => {
268
- if (!viewportEl) return undefined
269
-
270
- const syncItems = () => {
271
- const nodes = getCarouselItems(viewportEl)
272
- setItemCount(nodes.length)
273
-
274
- observerRef.current?.disconnect()
275
- observerRef.current = null
276
- visibilityRef.current = new Map()
277
-
278
- if (isFade || typeof IntersectionObserver === 'undefined') return
279
-
280
- observerRef.current = new IntersectionObserver(
281
- (entries) => {
282
- // Always merge entries so `visibilityRef` tracks reality even mid-animation —
283
- // dropping them here would leave the outgoing slide's last-known ratio stale (e.g.
284
- // still 1.0 from before the scroll started), which the comparison below would then
285
- // wrongly treat as still the most-visible slide once the animation completes. Only
286
- // acting on the result is guarded, so a slide passing through mid-programmatic-scroll
287
- // can't hijack the navigation before it reaches its real target.
288
- for (const entry of entries) {
289
- visibilityRef.current.set(
290
- entry.target,
291
- entry.isIntersecting ? entry.intersectionRatio : 0
292
- )
293
- }
294
-
295
- if (loopingRef.current || syncingScrollRef.current) return
296
-
297
- const currentNodes = getCarouselItems(viewportEl)
298
- const ratios = currentNodes.map((node) => visibilityRef.current.get(node) ?? 0)
299
- const maxRatio = Math.max(0, ...ratios)
300
- let bestIndex = activeIndexRef.current
301
-
302
- if (maxRatio > 0) {
303
- const found = ratios.findIndex((ratio) => ratio >= maxRatio - ACTIVE_RATIO_TOLERANCE)
304
- if (found !== -1) bestIndex = found
305
- }
306
-
307
- if (bestIndex !== activeIndexRef.current) {
308
- const from = activeIndexRef.current
309
- const detail = {
310
- from,
311
- to: bestIndex,
312
- direction: directionBetween(from, bestIndex, isRTL(viewportEl))
313
- }
314
- lastTransitionRef.current = detail
315
- onSlide?.(detail)
316
- skipScrollSyncRef.current = true
317
- setActiveIndexInternal(bestIndex)
318
- }
319
- },
320
- { root: viewportEl, threshold: [0, 0.25, 0.5, 0.75, 1] }
321
- )
322
-
323
- for (const node of nodes) observerRef.current.observe(node)
324
- }
325
-
326
- syncItems()
327
- const mutationObserver = new MutationObserver(syncItems)
328
- mutationObserver.observe(viewportEl, { childList: true })
329
-
330
- return () => {
331
- mutationObserver.disconnect()
332
- observerRef.current?.disconnect()
333
- }
334
- // eslint-disable-next-line react-hooks/exhaustive-deps
335
- }, [viewportEl, isFade])
336
-
337
- // `activeIndex` is the source of truth for which slide is active — applied directly to the
338
- // DOM here rather than through per-item props, so it stays correct even when there's no real
339
- // layout to scroll (SSR, jsdom tests). Fade mode's crossfade is driven entirely by this class.
340
- // The WAI-ARIA carousel pattern's per-slide `aria-roledescription`/positional `aria-label` are
341
- // applied the same imperative way, for the same reason — `CarouselItem` itself has no idea
342
- // where it sits among its siblings or how many there are.
343
- useIsomorphicLayoutEffect(() => {
344
- if (!viewportEl) return
345
- const nodes = getCarouselItems(viewportEl)
346
- for (const [index, node] of nodes.entries()) {
347
- node.classList.toggle('active', index === activeIndex)
348
- node.setAttribute('aria-roledescription', 'slide')
349
- node.setAttribute('aria-label', `${index + 1} of ${nodes.length}`)
350
- }
351
- }, [viewportEl, activeIndex, itemCount])
352
-
353
- // Best-effort visual sync: scrolls the real DOM position to match `activeIndex` after a
354
- // programmatic navigation. A user-driven drag/swipe goes the other way (observer above), which
355
- // sets `skipScrollSyncRef` so this effect no-ops for it instead of fighting a gesture that's
356
- // still physically in progress — see the ref's own comment for why that matters.
357
- useIsomorphicLayoutEffect(() => {
358
- if (skipScrollSyncRef.current) {
359
- skipScrollSyncRef.current = false
360
- return
361
- }
362
- if (!viewportEl || loopingRef.current || isFade) return
363
- const nodes = getCarouselItems(viewportEl)
364
- const target = nodes[activeIndex]
365
- if (!target || !isViewportScrollable(viewportEl)) return
366
-
367
- // Marked as soon as this effect has a real viewport to sync against — on mount, even if
368
- // there's nothing to scroll (delta below is ~0). Otherwise the mount pass never sets it
369
- // (it returns early below without scrolling), and the *first real navigation* ends up
370
- // mistaken for the initial sync and forced instant instead of animated.
371
- const instant = !scrollSyncedRef.current
372
- scrollSyncedRef.current = true
373
-
374
- const delta = scrollDeltaFor(viewportEl, target, !!center)
375
- if (Math.abs(delta) < 1) return
376
-
377
- // Cancel any previous scroll-sync still animating so it can't finish later and clobber
378
- // this newer target, and so `syncingScrollRef` isn't cleared early while this one runs.
379
- cancelScrollSyncRef.current?.()
380
-
381
- syncingScrollRef.current = true
382
- viewportEl.style.scrollSnapType = 'none'
383
-
384
- if (instant) {
385
- viewportEl.scrollTo({ left: viewportEl.scrollLeft + delta, behavior: 'instant' })
386
- viewportEl.style.scrollSnapType = ''
387
- syncingScrollRef.current = false
388
- cancelScrollSyncRef.current = null
389
- } else {
390
- deferOnSlidRef.current = true
391
- cancelScrollSyncRef.current = animateScrollTo(
392
- viewportEl,
393
- viewportEl.scrollLeft + delta,
394
- () => {
395
- viewportEl.style.scrollSnapType = ''
396
- syncingScrollRef.current = false
397
- cancelScrollSyncRef.current = null
398
- deferOnSlidRef.current = false
399
- onSlid?.(lastTransitionRef.current)
400
- }
401
- )
402
- }
403
- // eslint-disable-next-line react-hooks/exhaustive-deps
404
- }, [viewportEl, activeIndex, itemCount, center, isFade])
405
-
406
- useEffect(() => {
407
- if (!mountedForSlidRef.current) {
408
- mountedForSlidRef.current = true
409
- return
410
- }
411
- if (deferOnSlidRef.current) return
412
- onSlid?.(lastTransitionRef.current)
413
- // eslint-disable-next-line react-hooks/exhaustive-deps
414
- }, [activeIndex])
415
-
416
- // Announces the active slide's position to assistive tech, per the WAI-ARIA carousel pattern.
417
- // Gated the same way as the `onSlid` effect above so mounting with a non-zero
418
- // `defaultActiveIndex`/`activeIndex` doesn't announce anything before the user has interacted.
419
- useEffect(() => {
420
- if (!mountedForLiveRegionRef.current) {
421
- mountedForLiveRegionRef.current = true
422
- return
423
- }
424
- setLiveMessage(`Slide ${activeIndex + 1} of ${itemCount}`)
425
- // eslint-disable-next-line react-hooks/exhaustive-deps
426
- }, [activeIndex])
427
-
428
- useEffect(() => {
429
- return () => {
430
- if (timeoutRef.current) clearTimeout(timeoutRef.current)
431
- observerRef.current?.disconnect()
432
- cancelScrollSyncRef.current?.()
433
- }
434
- }, [])
435
-
436
- const performLoopTransition = (isNext: boolean) => {
437
- const viewport = viewportEl
438
- if (!viewport) return
439
-
440
- // Drop any in-flight regular scroll-sync (e.g. a fast second navigation crossing the loop
441
- // boundary) so its stale onSettled can't fire mid-loop or after this transition completes.
442
- cancelScrollSyncRef.current?.()
443
- syncingScrollRef.current = false
444
-
445
- const nodes = getCarouselItems(viewport)
446
- const last = nodes.length - 1
447
- const from = activeIndexRef.current
448
- const to = isNext ? 0 : last
449
- const direction = loopDirection(isNext, isRTL(viewport))
450
-
451
- onSlide?.({ from, to, direction })
452
- loopingRef.current = true
453
-
454
- const finish = () => {
455
- lastTransitionRef.current = { from, to, direction }
456
- setActiveIndexInternal(to)
457
- loopingRef.current = false
458
- }
459
-
460
- const source = isNext ? nodes[0] : nodes[last]
461
- const fromItem = nodes[from]
462
- const toItem = nodes[to]
463
-
464
- if (!isViewportScrollable(viewport) || !source || !fromItem || !toItem) {
465
- finish()
466
- return
467
- }
468
-
469
- const clone = source.cloneNode(true) as HTMLElement
470
- clone.classList.add('carousel-item-clone')
471
- clone.classList.remove('active')
472
- clone.removeAttribute('id')
473
- for (const node of Array.from(clone.querySelectorAll('[id]'))) node.removeAttribute('id')
474
- clone.setAttribute('aria-hidden', 'true')
475
- clone.setAttribute('inert', '')
476
-
477
- viewport.style.scrollSnapType = 'none'
478
-
479
- if (isNext) {
480
- viewport.append(clone)
481
- } else {
482
- viewport.prepend(clone)
483
- // Prepending shifts the real slides right; realign instantly so the insertion doesn't
484
- // flash. `scrollTo(..., 'instant')` rather than a raw `scrollLeft +=` — the compound
485
- // assignment's read/write isn't reliably observed by the browser right after a DOM
486
- // mutation changes `scrollWidth` (see the matching note by the final jump below).
487
- viewport.scrollTo({
488
- left: viewport.scrollLeft + scrollDeltaFor(viewport, fromItem, !!center),
489
- behavior: 'instant'
490
- })
491
- }
492
-
493
- const targetDelta = scrollDeltaFor(viewport, clone, !!center)
494
- animateScrollTo(viewport, viewport.scrollLeft + targetDelta, () => {
495
- clone.remove()
496
-
497
- // `clone.remove()` shrinks `scrollWidth`, and the browser clamps `scrollLeft` to the new
498
- // max as a side effect — sometimes before a subsequent `scrollLeft +=` on the same tick
499
- // observes it, landing short of the real target. `scrollTo(..., 'instant')` with the full
500
- // absolute target doesn't have that race.
501
- const finalDelta = scrollDeltaFor(viewport, toItem, !!center)
502
- viewport.scrollTo({ left: viewport.scrollLeft + finalDelta, behavior: 'instant' })
503
-
504
- viewport.style.scrollSnapType = ''
505
- finish()
506
- })
507
- }
508
-
509
- const navigate = (rawTarget: number) => {
510
- if (loopingRef.current) return
511
- const length = itemCountRef.current
512
- if (length === 0) return
513
-
514
- const effectiveLast = Math.max(0, length - itemsVisible)
515
-
516
- if (
517
- ends === 'loop' &&
518
- !isFade &&
519
- !prefersReducedMotion() &&
520
- carouselRef.current &&
521
- canLoop(carouselRef.current, length, isFade, !!center, !!auto)
522
- ) {
523
- if (rawTarget > effectiveLast) {
524
- performLoopTransition(true)
525
- return
526
- }
527
- if (rawTarget < 0) {
528
- performLoopTransition(false)
529
- return
530
- }
531
- }
532
-
533
- const target = normalizeIndex(rawTarget, effectiveLast + 1, wraps)
534
- const from = activeIndexRef.current
535
- if (target === null || target === from) return
536
-
537
- // `rawTarget`, not the post-wrap `target`, so a wrap-around still reports the direction the
538
- // caller actually asked for (e.g. Next wrapping last -> 0 stays "next", not "previous").
539
- const direction = directionBetween(from, rawTarget, viewportEl ? isRTL(viewportEl) : false)
540
- onSlide?.({ from, to: target, direction })
541
- lastTransitionRef.current = { from, to: target, direction }
542
- setActiveIndexInternal(target)
543
- }
544
-
545
- const goNext = () => navigate(activeIndexRef.current + 1)
546
- const goPrev = () => navigate(activeIndexRef.current - 1)
547
- const goTo = (index: number) => navigate(index)
548
-
549
- const pauseCycle = () => {
550
- if (timeoutRef.current) clearTimeout(timeoutRef.current)
551
- timeoutRef.current = null
552
- setCycling(false)
553
- }
554
-
555
- const scheduleAutoplay = (fromIndex: number = activeIndexRef.current) => {
556
- if (timeoutRef.current) clearTimeout(timeoutRef.current)
557
-
558
- const nodes = viewportEl ? getCarouselItems(viewportEl) : []
559
- const attr = nodes[fromIndex]?.dataset.interval
560
- const ms = attr && !Number.isNaN(Number(attr)) ? Number(attr) : interval
561
- carouselRef.current?.style.setProperty('--cx-carousel-interval', `${ms}ms`)
562
-
563
- timeoutRef.current = setTimeout(() => {
564
- const length = itemCountRef.current
565
- const effectiveLast = Math.max(0, length - itemsVisible)
566
- const upcoming = normalizeIndex(activeIndexRef.current + 1, effectiveLast + 1, wraps)
567
- const canAdvance =
568
- typeof document === 'undefined' ||
569
- (document.visibilityState === 'visible' && isElementVisible(carouselRef.current))
570
-
571
- if (!canAdvance) {
572
- scheduleAutoplay(fromIndex)
573
- return
574
- }
575
-
576
- goNext()
577
-
578
- if (upcoming === null) {
579
- pauseCycle()
580
- return
581
- }
582
-
583
- scheduleAutoplay(upcoming)
584
- }, ms)
585
- }
586
-
587
- const startCycle = () => {
588
- scheduleAutoplay()
589
- setCycling(true)
590
- }
591
-
592
- const stopPlayingForGood = () => {
593
- setPlaying(false)
594
- pauseCycle()
595
- }
596
-
597
- const togglePlayPause = () => {
598
- if (playing) {
599
- stopPlayingForGood()
600
- return
601
- }
602
- setPlaying(true)
603
- startCycle()
604
- }
605
-
606
- useEffect(() => {
607
- if (!viewportEl) return undefined
608
- if (playing) startCycle()
609
- return () => pauseCycle()
610
- // eslint-disable-next-line react-hooks/exhaustive-deps
611
- }, [viewportEl])
612
-
613
- useEffect(() => {
614
- if (!viewportEl) return undefined
615
- const handlePointerDown = () => stopPlayingForGood()
616
- viewportEl.addEventListener('pointerdown', handlePointerDown)
617
- return () => viewportEl.removeEventListener('pointerdown', handlePointerDown)
618
- // eslint-disable-next-line react-hooks/exhaustive-deps
619
- }, [viewportEl])
620
-
621
- // a11y: when a control at a disabled end is focused, move focus to the opposite control (if
622
- // it stays enabled) or the viewport, so focus never lands on nothing.
623
- useEffect(() => {
624
- if (ends !== 'stop') return
625
- const focused = document.activeElement as HTMLButtonElement | null
626
- const focusedIsPrev = atStart && !!focused && prevControlsRef.current.has(focused)
627
- const focusedIsNext = atEnd && !!focused && nextControlsRef.current.has(focused)
628
- if (!focusedIsPrev && !focusedIsNext) return
629
-
630
- const oppositeSet = focusedIsPrev ? nextControlsRef.current : prevControlsRef.current
631
- const oppositeStaysEnabled = focusedIsPrev ? !atEnd : !atStart
632
- const fallback = oppositeStaysEnabled ? Array.from(oppositeSet)[0] : null
633
- // `focused` is the control whose click (if any) just drove this redirect — `consumePointerClick`
634
- // reads (and clears) the pointer-vs-keyboard mark left on it, if `CarouselControlPrev`/
635
- // `CarouselControlNext` left one, so a stale mark from an earlier, unrelated interaction can't
636
- // leak into this one. See `focusRedirect`'s own comment for why this distinction matters
637
- // (Safari-only: a script-focused element still shows a ring there, unlike Chromium/Firefox).
638
- const viaPointer = consumePointerClick(focused)
639
-
640
- if (fallback) {
641
- focusRedirect(fallback, viaPointer, { preventScroll: true })
642
- return
643
- }
644
-
645
- if (viewportEl) {
646
- if (!viewportEl.hasAttribute('tabindex')) viewportEl.setAttribute('tabindex', '-1')
647
- focusRedirect(viewportEl, viaPointer, { preventScroll: true })
648
- }
649
- }, [atStart, atEnd, ends, viewportEl])
650
-
651
- // Stable identity for the same reason as `registerViewport` above — the controls' own
652
- // registration effect depends on it.
653
- const registerControl = useCallback((kind: 'prev' | 'next', element: HTMLButtonElement) => {
654
- const set = kind === 'prev' ? prevControlsRef.current : nextControlsRef.current
655
- set.add(element)
656
- return () => {
657
- set.delete(element)
658
- }
659
- }, [])
660
-
661
- // Compose rather than let a caller's handler silently replace the carousel's own — same rule
662
- // `CarouselControlButton`/`CarouselPlayPause` follow for `onClick`. These three sit on the
663
- // root element, so before this they were simply overwritten by the `{...rest}` spread below:
664
- // passing `onKeyDown` turned off arrow-key navigation and passing `onMouseEnter`/
665
- // `onMouseLeave` turned off pause-on-hover, both silently.
666
- const handleKeyDown = (event: React.KeyboardEvent<HTMLDivElement>) => {
667
- onKeyDown?.(event)
668
- if (!keyboard) return
669
- const target = event.target as HTMLElement
670
- if (target.closest('input, textarea, select, [contenteditable="true"]')) return
671
- if (event.key !== 'ArrowLeft' && event.key !== 'ArrowRight') return
672
-
673
- event.preventDefault()
674
- stopPlayingForGood()
675
- if (event.key === 'ArrowLeft') goPrev()
676
- else goNext()
677
- }
678
-
679
- const handleMouseEnter = (event: React.MouseEvent<HTMLDivElement>) => {
680
- onMouseEnter?.(event)
681
- if (pause === 'hover') pauseCycle()
682
- }
683
-
684
- const handleMouseLeave = (event: React.MouseEvent<HTMLDivElement>) => {
685
- onMouseLeave?.(event)
686
- if (pause === 'hover' && playing) startCycle()
687
- }
688
-
689
- const contextValue: CarouselContextProps = {
690
- activeIndex,
691
- atEnd,
692
- atStart,
693
- ends,
694
- itemCount,
695
- itemsVisible,
696
- next: () => {
697
- stopPlayingForGood()
698
- goNext()
699
- },
700
- playing,
701
- prev: () => {
702
- stopPlayingForGood()
703
- goPrev()
704
- },
705
- registerControl,
706
- registerViewport,
707
- to: (index: number) => {
708
- stopPlayingForGood()
709
- goTo(index)
710
- },
711
- togglePlayPause
712
- }
713
-
714
- const _className = classNames(
715
- 'carousel',
716
- {
717
- 'carousel-fade': isFade,
718
- 'carousel-center': center,
719
- 'carousel-auto': auto,
720
- 'carousel-playing': cycling
721
- },
722
- className
723
- )
724
-
725
- const _style = {
726
- ...style,
727
- ...(items != null && { '--cx-carousel-items': items }),
728
- ...(itemsGap != null && { '--cx-carousel-items-gap': itemsGap }),
729
- ...(itemsPeek != null && { '--cx-carousel-items-peek': itemsPeek })
730
- } as CSSProperties
731
-
732
- return (
733
- <div
734
- role="region"
735
- aria-roledescription="carousel"
736
- className={_className}
737
- style={_style}
738
- onKeyDown={handleKeyDown}
739
- onMouseEnter={handleMouseEnter}
740
- onMouseLeave={handleMouseLeave}
741
- {...rest}
742
- ref={forkedRef}
743
- >
744
- <CarouselContext.Provider value={contextValue}>{children}</CarouselContext.Provider>
745
- <span role="status" className="visually-hidden">
746
- {liveMessage}
747
- </span>
748
- </div>
749
- )
750
- }
751
- )
752
-
753
- Carousel.displayName = 'Carousel'