@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.
- package/LICENSE +1 -1
- package/README.md +56 -23
- package/dist/accordion.js +1 -1
- package/dist/alert.d.ts +2 -0
- package/dist/alert.js +1 -0
- package/dist/autocomplete.d.ts +1 -1
- package/dist/autocomplete.js +1 -1
- package/dist/avatar.d.ts +1 -1
- package/dist/avatar.js +1 -1
- package/dist/badge.d.ts +1 -1
- package/dist/badge.js +1 -1
- package/dist/breadcrumb.js +1 -1
- package/dist/button-group.d.ts +1 -1
- package/dist/button-group.js +1 -1
- package/dist/button.d.ts +1 -1
- package/dist/button.js +1 -1
- package/dist/calendar.d.ts +1 -1
- package/dist/calendar.js +1 -1
- package/dist/card.d.ts +1 -1
- package/dist/card.js +1 -1
- package/dist/carousel.d.ts +1 -1
- package/dist/carousel.js +1 -1
- package/dist/checkbox.d.ts +2 -2
- package/dist/checkbox.js +1 -1
- package/dist/chip-input.js +1 -1
- package/dist/chip.d.ts +1 -1
- package/dist/chip.js +1 -1
- package/dist/chunks/Button-BoymWE-L.js +2 -0
- package/dist/chunks/Button-BoymWE-L.js.map +1 -0
- package/dist/chunks/{Button-Cptd4Yk7.d.ts → Button-BuZ_GOHS.d.ts} +3 -2
- package/dist/chunks/Chip-DCaWaBqo.js +2 -0
- package/dist/chunks/Chip-DCaWaBqo.js.map +1 -0
- package/dist/chunks/CloseButton-DPgQztE0.js +2 -0
- package/dist/chunks/CloseButton-DPgQztE0.js.map +1 -0
- package/dist/chunks/ComboboxItem-C9TpoJOI.d.ts +2 -1
- package/dist/chunks/ComboboxListBox-Cm3L1ULl.js +2 -0
- package/dist/chunks/ComboboxListBox-Cm3L1ULl.js.map +1 -0
- package/dist/chunks/DateSegment-2agXAd0f.js +2 -0
- package/dist/chunks/DateSegment-2agXAd0f.js.map +1 -0
- package/dist/chunks/{FormHelp-Be2PQL0y.js → FormHelp-AE6_iSLJ.js} +2 -1
- package/dist/chunks/FormHelp-AE6_iSLJ.js.map +1 -0
- package/dist/chunks/FormLabel-CYcQiFUI.js +2 -1
- package/dist/chunks/FormLabel-CYcQiFUI.js.map +1 -0
- package/dist/chunks/Icon-CioraWLF.d.ts +2 -1
- package/dist/chunks/Icon-DLB1f88W.js +2 -0
- package/dist/chunks/Icon-DLB1f88W.js.map +1 -0
- package/dist/chunks/{Link-B0Y1xgYi.d.ts → Link-CKymd2ru.d.ts} +8 -6
- package/dist/chunks/Link-CZsWCnQb.js +2 -0
- package/dist/chunks/Link-CZsWCnQb.js.map +1 -0
- package/dist/chunks/Menu-CSBg2Zmc.js +2 -0
- package/dist/chunks/Menu-CSBg2Zmc.js.map +1 -0
- package/dist/chunks/Menu-QeYOzrUL.d.ts +95 -0
- package/dist/chunks/MenuItemDef-D0VDtYIQ.d.ts +2 -1
- package/dist/chunks/MenuToggle-BdQtF7FV.js +2 -0
- package/dist/chunks/MenuToggle-BdQtF7FV.js.map +1 -0
- package/dist/chunks/Portal-CgeR1WXV.js +2 -0
- package/dist/chunks/Portal-CgeR1WXV.js.map +1 -0
- package/dist/chunks/RangeCalendar-BJl-j4W2.js +2 -0
- package/dist/chunks/RangeCalendar-BJl-j4W2.js.map +1 -0
- package/dist/chunks/VisuallyHidden-C2dM7HhC.js +2 -0
- package/dist/chunks/VisuallyHidden-C2dM7HhC.js.map +1 -0
- package/dist/chunks/accordion-B8UWyvQB.js +2 -0
- package/dist/chunks/accordion-B8UWyvQB.js.map +1 -0
- package/dist/chunks/alert-BXI-_qlt.js +2 -0
- package/dist/chunks/alert-BXI-_qlt.js.map +1 -0
- package/dist/chunks/autocomplete-Baf9VSHN.js +2 -0
- package/dist/chunks/autocomplete-Baf9VSHN.js.map +1 -0
- package/dist/chunks/avatar-S3dGy6Qc.js +2 -0
- package/dist/chunks/avatar-S3dGy6Qc.js.map +1 -0
- package/dist/chunks/{badge-Bj8mf8lu.js → badge-D2oztCvs.js} +2 -1
- package/dist/chunks/badge-D2oztCvs.js.map +1 -0
- package/dist/chunks/{breadcrumb-DDxnx_iS.js → breadcrumb-s6J9itez.js} +2 -1
- package/dist/chunks/breadcrumb-s6J9itez.js.map +1 -0
- package/dist/chunks/breakpoints-CGk8szzR.js +2 -0
- package/dist/chunks/breakpoints-CGk8szzR.js.map +1 -0
- package/dist/chunks/breakpoints-ECy4lKQT.d.ts +6 -0
- package/dist/chunks/button-group-BGppPrIv.js +2 -0
- package/dist/chunks/button-group-BGppPrIv.js.map +1 -0
- package/dist/chunks/card-CobeDpf1.js +2 -0
- package/dist/chunks/card-CobeDpf1.js.map +1 -0
- package/dist/chunks/carousel-fTVPqnSV.js +2 -0
- package/dist/chunks/carousel-fTVPqnSV.js.map +1 -0
- package/dist/chunks/checkbox-ZyQn5Ku5.js +2 -0
- package/dist/chunks/checkbox-ZyQn5Ku5.js.map +1 -0
- package/dist/chunks/chip-input-BpVDRERg.js +2 -0
- package/dist/chunks/chip-input-BpVDRERg.js.map +1 -0
- package/dist/chunks/collapse--Go2Y73B.js +2 -0
- package/dist/chunks/collapse--Go2Y73B.js.map +1 -0
- package/dist/chunks/{color-input-CyRaLR_G.js → color-input-Bwl5ef5B.js} +2 -1
- package/dist/chunks/color-input-Bwl5ef5B.js.map +1 -0
- package/dist/chunks/combobox-Bp1tIaiW.js +2 -0
- package/dist/chunks/combobox-Bp1tIaiW.js.map +1 -0
- package/dist/chunks/context-menu-B4a0tS-h.js +2 -0
- package/dist/chunks/context-menu-B4a0tS-h.js.map +1 -0
- package/dist/chunks/datagrid-CH3Cy-q7.js +3 -0
- package/dist/chunks/datagrid-CH3Cy-q7.js.map +1 -0
- package/dist/chunks/dateRangePresets-R1FtA1zp.d.ts +2 -1
- package/dist/chunks/datepicker-bOiM_zhJ.js +2 -0
- package/dist/chunks/datepicker-bOiM_zhJ.js.map +1 -0
- package/dist/chunks/dialogTransition-i9vw0i2Z.js +2 -1
- package/dist/chunks/dialogTransition-i9vw0i2Z.js.map +1 -0
- package/dist/chunks/direction-LN6uwsK5.js +2 -0
- package/dist/chunks/direction-LN6uwsK5.js.map +1 -0
- package/dist/chunks/divider-CjbF4OfA.js +2 -0
- package/dist/chunks/divider-CjbF4OfA.js.map +1 -0
- package/dist/chunks/drawer-C7Tz4XU_.js +2 -0
- package/dist/chunks/drawer-C7Tz4XU_.js.map +1 -0
- package/dist/chunks/{file-input-RRqZSzjH.js → file-input-CDM6qrmV.js} +2 -1
- package/dist/chunks/file-input-CDM6qrmV.js.map +1 -0
- package/dist/chunks/flex-B52oLCCC.js +2 -0
- package/dist/chunks/flex-B52oLCCC.js.map +1 -0
- package/dist/chunks/floating-input-DmSZZc27.js +2 -0
- package/dist/chunks/floating-input-DmSZZc27.js.map +1 -0
- package/dist/chunks/focus-ring-SR_LwaN7.js +2 -1
- package/dist/chunks/focus-ring-SR_LwaN7.js.map +1 -0
- package/dist/chunks/focusRedirect-BrvK3U_o.js +2 -1
- package/dist/chunks/focusRedirect-BrvK3U_o.js.map +1 -0
- package/dist/chunks/form-GpdAyWWi.js +2 -1
- package/dist/chunks/form-GpdAyWWi.js.map +1 -0
- package/dist/chunks/form-field-CNPGTMiW.js +2 -0
- package/dist/chunks/form-field-CNPGTMiW.js.map +1 -0
- package/dist/chunks/grid-C7tO-ppc.js +2 -0
- package/dist/chunks/grid-C7tO-ppc.js.map +1 -0
- package/dist/chunks/{icon-mxYpL5nL.js → icon-BQsT6YtE.js} +2 -1
- package/dist/chunks/icon-BQsT6YtE.js.map +1 -0
- package/dist/chunks/{iconConfig-Bu6Pt9o3.d.ts → iconConfig-C6gbYhsD.d.ts} +5 -3
- package/dist/chunks/iconSlot-BNu2MrFI.js +2 -0
- package/dist/chunks/iconSlot-BNu2MrFI.js.map +1 -0
- package/dist/chunks/{index-BKMW0rkw.d.ts → index-0jbACjYQ.d.ts} +5 -3
- package/dist/chunks/{index-BO_1MN66.d.ts → index-4cKG9KWB.d.ts} +3 -5
- package/dist/chunks/index-6uob77s9.d.ts +2 -1
- package/dist/chunks/{index-tOodmT36.d.ts → index-91YA-jkp.d.ts} +4 -6
- package/dist/chunks/index-9rQeMqVI.d.ts +42 -0
- package/dist/chunks/index-B0-8n-Gs.d.ts +2 -1
- package/dist/chunks/{index-D9PZHY_I.d.ts → index-B19ZH3fm.d.ts} +3 -2
- package/dist/chunks/{index-COsIPd8L.d.ts → index-B1kw0jzM.d.ts} +3 -2
- package/dist/chunks/index-B2K-O9kl.d.ts +59 -0
- package/dist/chunks/{index-CJzKu7QI.d.ts → index-B5bF1JxF.d.ts} +3 -2
- package/dist/chunks/index-B8uaSJA9.d.ts +2 -1
- package/dist/chunks/index-BA-raEMm.d.ts +2 -1
- package/dist/chunks/{index-C61tPIJ-.d.ts → index-BAsbRx5n.d.ts} +6 -2
- package/dist/chunks/index-BF3OWUVc.d.ts +66 -0
- package/dist/chunks/{index-Ctuk1xBU.d.ts → index-BLS1jhSJ.d.ts} +10 -7
- package/dist/chunks/{index-JllMXhVx.d.ts → index-BMkbJVHg.d.ts} +22 -5
- package/dist/chunks/{index-DB_ToPdz.d.ts → index-BNf0jIIL.d.ts} +12 -1
- package/dist/chunks/{index-t_x6jj7l.d.ts → index-BOx8v-oT.d.ts} +3 -2
- package/dist/chunks/index-BSLneLYu.d.ts +79 -0
- package/dist/chunks/index-BVGGIaPX.d.ts +2 -1
- package/dist/chunks/{index-qgZ5VGmc.d.ts → index-B_UzbGOa.d.ts} +20 -2
- package/dist/chunks/{index-XjLvaH4G.d.ts → index-BfEJYF4c.d.ts} +7 -6
- package/dist/chunks/index-Bi8FFadV.d.ts +2 -1
- package/dist/chunks/index-Bkj17NEQ.d.ts +2 -1
- package/dist/chunks/{index--0_IpTDT.d.ts → index-BxROljJI.d.ts} +3 -2
- package/dist/chunks/index-Bz8MDq0H.d.ts +85 -0
- package/dist/chunks/{index-Cf2n0l0U.d.ts → index-C4Dks__B.d.ts} +3 -2
- package/dist/chunks/{index-CRfm7W6C.d.ts → index-C9gzVqwX.d.ts} +3 -2
- package/dist/chunks/index-CCXJXToc.d.ts +2 -1
- package/dist/chunks/{index-COsYSDrz.d.ts → index-CFnQubsV.d.ts} +17 -3
- package/dist/chunks/{index-8PhBSbNQ.d.ts → index-CHQR8x8_.d.ts} +16 -17
- package/dist/chunks/{index-BTTeKpiE.d.ts → index-CIwzgZJi.d.ts} +3 -2
- package/dist/chunks/{index-dh3TKanY.d.ts → index-CTpwB1yR.d.ts} +3 -2
- package/dist/chunks/{index-DR8sYtvd.d.ts → index-CYvVmTPR.d.ts} +20 -87
- package/dist/chunks/{index-Dum6Y9XR.d.ts → index-Cc4SSslb.d.ts} +20 -2
- package/dist/chunks/index-CftERHnE.d.ts +2 -1
- package/dist/chunks/{index-CaQ1JY5D.d.ts → index-Ci7AEgEc.d.ts} +4 -6
- package/dist/chunks/{index-DKma0jQw.d.ts → index-CjT_4IZx.d.ts} +4 -3
- package/dist/chunks/{index-BxTlIaZu.d.ts → index-CqZ68Z8R.d.ts} +125 -11
- package/dist/chunks/{index-D2VVO8rx.d.ts → index-CsARGAzD.d.ts} +3 -2
- package/dist/chunks/index-CxjNw4ss.d.ts +216 -0
- package/dist/chunks/index-DAoPg59I.d.ts +2 -1
- package/dist/chunks/index-DHGgezXU.d.ts +2 -1
- package/dist/chunks/index-DHOG_rjE.d.ts +121 -0
- package/dist/chunks/index-DHcztR18.d.ts +208 -0
- package/dist/chunks/index-DJfga0Ce.d.ts +57 -0
- package/dist/chunks/{index-DJJocp_q.d.ts → index-DM01FX3a.d.ts} +4 -3
- package/dist/chunks/index-DMbdEm__.d.ts +119 -0
- package/dist/chunks/{index-BlgkO3dn.d.ts → index-DP5xugE-.d.ts} +25 -34
- package/dist/chunks/index-DPCwFiJL.d.ts +95 -0
- package/dist/chunks/{index-BTDgfLxK.d.ts → index-DQImhbhy.d.ts} +21 -5
- package/dist/chunks/index-DaHQdNul.d.ts +182 -0
- package/dist/chunks/index-Dcc_W6Kv.d.ts +2 -1
- package/dist/chunks/index-Ddd7iWfm.d.ts +32 -0
- package/dist/chunks/index-Dfg4Ftb8.d.ts +2 -1
- package/dist/chunks/index-DtbUXxjz.d.ts +2 -1
- package/dist/chunks/{index-DPV62IdF.d.ts → index-DtvHH_Mb.d.ts} +12 -10
- package/dist/chunks/index-Du9fBqkT.d.ts +56 -0
- package/dist/chunks/index-HrKN6s8z.d.ts +2 -1
- package/dist/chunks/{index-ClT3E_hv.d.ts → index-NGgDkhyn.d.ts} +19 -25
- package/dist/chunks/{index-Dfy1YW5j.d.ts → index-U27Ar174.d.ts} +3 -2
- package/dist/chunks/{index-CsMIgBsd.d.ts → index-YJ9QdBuq.d.ts} +10 -10
- package/dist/chunks/{index-Dh5CaHTP.d.ts → index-aRdgpeRb.d.ts} +3 -2
- package/dist/chunks/index-g74gO0pc.d.ts +36 -0
- package/dist/chunks/{index-BO9jLOIb.d.ts → index-lSPcxiii.d.ts} +3 -2
- package/dist/chunks/{index-nklPDKlC.d.ts → index-x0vZRyoU.d.ts} +4 -3
- package/dist/chunks/{input-adorn-C_EHML68.js → input-adorn-DwdX-jxA.js} +2 -1
- package/dist/chunks/input-adorn-DwdX-jxA.js.map +1 -0
- package/dist/chunks/{input-group-iI7azfvE.js → input-group-Cuiuf4Dl.js} +2 -1
- package/dist/chunks/input-group-Cuiuf4Dl.js.map +1 -0
- package/dist/chunks/lazyElement-tfMG21pZ.js +2 -0
- package/dist/chunks/lazyElement-tfMG21pZ.js.map +1 -0
- package/dist/chunks/list-BQCkwWjF.js +2 -0
- package/dist/chunks/list-BQCkwWjF.js.map +1 -0
- package/dist/chunks/menu-98EAD9nj.js +2 -0
- package/dist/chunks/menu-98EAD9nj.js.map +1 -0
- package/dist/chunks/modal-bgDR29Jh.js +2 -0
- package/dist/chunks/modal-bgDR29Jh.js.map +1 -0
- package/dist/chunks/nav-TiZuTHC6.js +2 -0
- package/dist/chunks/nav-TiZuTHC6.js.map +1 -0
- package/dist/chunks/nav-overflow-Ay5mM5Gc.js +2 -0
- package/dist/chunks/nav-overflow-Ay5mM5Gc.js.map +1 -0
- package/dist/chunks/navOverflow-B5krZe6D.js +2 -0
- package/dist/chunks/navOverflow-B5krZe6D.js.map +1 -0
- package/dist/chunks/navVariant-CnD21GBS.d.ts +5 -0
- package/dist/chunks/navVariant-DeGTk9B7.js +2 -0
- package/dist/chunks/navVariant-DeGTk9B7.js.map +1 -0
- package/dist/chunks/navbar-DxIwt0sc.js +2 -0
- package/dist/chunks/navbar-DxIwt0sc.js.map +1 -0
- package/dist/chunks/notification-Dbci5Ka3.js +2 -0
- package/dist/chunks/notification-Dbci5Ka3.js.map +1 -0
- package/dist/chunks/number-field-IBIX2IWH.js +2 -0
- package/dist/chunks/number-field-IBIX2IWH.js.map +1 -0
- package/dist/chunks/otp-input-ws393uPB.js +2 -0
- package/dist/chunks/otp-input-ws393uPB.js.map +1 -0
- package/dist/chunks/overlayPlacement-BtS90IVf.js +2 -1
- package/dist/chunks/overlayPlacement-BtS90IVf.js.map +1 -0
- package/dist/chunks/{overlayPlacement-B7843a-Q.d.ts → overlayPlacement-CIsLpycT.d.ts} +3 -2
- package/dist/chunks/pagination-BkOquk-x.js +2 -0
- package/dist/chunks/pagination-BkOquk-x.js.map +1 -0
- package/dist/chunks/password-strength-DDK8pHRq.js +2 -0
- package/dist/chunks/password-strength-DDK8pHRq.js.map +1 -0
- package/dist/chunks/placeholder-BCr83sUn.js +2 -0
- package/dist/chunks/placeholder-BCr83sUn.js.map +1 -0
- package/dist/chunks/polymorphic-BhGNZQja.js +2 -0
- package/dist/chunks/polymorphic-BhGNZQja.js.map +1 -0
- package/dist/chunks/polymorphic-CVHbTHSN.d.ts +2 -1
- package/dist/chunks/popover-Bdg8D4sm.js +2 -0
- package/dist/chunks/popover-Bdg8D4sm.js.map +1 -0
- package/dist/chunks/{progress-DlrZ71aV.js → progress-zWkTltor.js} +2 -1
- package/dist/chunks/progress-zWkTltor.js.map +1 -0
- package/dist/chunks/radio-B6gJdtoN.js +2 -0
- package/dist/chunks/radio-B6gJdtoN.js.map +1 -0
- package/dist/chunks/{range-input-BN3430j-.js → range-input-CT_8TKL7.js} +2 -1
- package/dist/chunks/range-input-CT_8TKL7.js.map +1 -0
- package/dist/chunks/renderFormCheck-DN_-V62U.js +2 -0
- package/dist/chunks/renderFormCheck-DN_-V62U.js.map +1 -0
- package/dist/chunks/{renderFormCheck-CYWG-Rbt.d.ts → renderFormCheck-nKgpa_a3.d.ts} +4 -3
- package/dist/chunks/renderFormField-Brkw1yA6.js +2 -0
- package/dist/chunks/renderFormField-Brkw1yA6.js.map +1 -0
- package/dist/chunks/{renderFormField-fBEny6JV.d.ts → renderFormField-ChNagAFN.d.ts} +3 -2
- package/dist/chunks/{renderMenuItemContent-CmqT3YUQ.js → renderMenuItemContent-DUezZrpj.js} +2 -1
- package/dist/chunks/renderMenuItemContent-DUezZrpj.js.map +1 -0
- package/dist/chunks/scrollspy-C2HmrnZ4.js +2 -0
- package/dist/chunks/scrollspy-C2HmrnZ4.js.map +1 -0
- package/dist/chunks/scrollspy-D_lPjb92.js +2 -0
- package/dist/chunks/scrollspy-D_lPjb92.js.map +1 -0
- package/dist/chunks/search-field--nDoCI_E.js +2 -0
- package/dist/chunks/search-field--nDoCI_E.js.map +1 -0
- package/dist/chunks/select-BwJIfv9f.js +2 -0
- package/dist/chunks/select-BwJIfv9f.js.map +1 -0
- package/dist/chunks/skeleton-CmZBLJwp.js +2 -0
- package/dist/chunks/skeleton-CmZBLJwp.js.map +1 -0
- package/dist/chunks/slot-CNhFZdHF.js +2 -0
- package/dist/chunks/slot-CNhFZdHF.js.map +1 -0
- package/dist/chunks/spacingClassName-DVhk8m3P.js +2 -1
- package/dist/chunks/spacingClassName-DVhk8m3P.js.map +1 -0
- package/dist/chunks/spinner-DblhvrHL.js +2 -0
- package/dist/chunks/spinner-DblhvrHL.js.map +1 -0
- package/dist/chunks/stack-DK5F53VT.js +2 -0
- package/dist/chunks/stack-DK5F53VT.js.map +1 -0
- package/dist/chunks/static-table-D0M4oc_t.js +2 -1
- package/dist/chunks/static-table-D0M4oc_t.js.map +1 -0
- package/dist/chunks/stepper-CVXMJ2yg.js +2 -0
- package/dist/chunks/stepper-CVXMJ2yg.js.map +1 -0
- package/dist/chunks/switch-C6s3LxEv.js +2 -0
- package/dist/chunks/switch-C6s3LxEv.js.map +1 -0
- package/dist/chunks/table-Cy6uEuEP.js +2 -0
- package/dist/chunks/table-Cy6uEuEP.js.map +1 -0
- package/dist/chunks/tableClassName-CZA2Bse8.js +2 -1
- package/dist/chunks/tableClassName-CZA2Bse8.js.map +1 -0
- package/dist/chunks/tabs-91T7-8qq.js +2 -0
- package/dist/chunks/tabs-91T7-8qq.js.map +1 -0
- package/dist/chunks/text-input-B4pTv6SU.js +2 -0
- package/dist/chunks/text-input-B4pTv6SU.js.map +1 -0
- package/dist/chunks/textarea-1A1nABQE.js +2 -0
- package/dist/chunks/textarea-1A1nABQE.js.map +1 -0
- package/dist/chunks/time-field-B3MA7ED_.js +2 -0
- package/dist/chunks/time-field-B3MA7ED_.js.map +1 -0
- package/dist/chunks/toast-CGHl3-oU.js +2 -0
- package/dist/chunks/toast-CGHl3-oU.js.map +1 -0
- package/dist/chunks/tooltip-Bc-u6nIW.js +2 -0
- package/dist/chunks/tooltip-Bc-u6nIW.js.map +1 -0
- package/dist/chunks/tree-Cql1veeZ.js +2 -0
- package/dist/chunks/tree-Cql1veeZ.js.map +1 -0
- package/dist/chunks/{types-CS_40Txv.d.ts → types-D6FM7bYR.d.ts} +16 -1
- package/dist/chunks/unhandledProps-9Kdj7WVf.js +2 -0
- package/dist/chunks/unhandledProps-9Kdj7WVf.js.map +1 -0
- package/dist/chunks/useButtonSemantics-CILM_lhi.js +2 -1
- package/dist/chunks/useButtonSemantics-CILM_lhi.js.map +1 -0
- package/dist/chunks/useControllableState-CPUJxfKW.js +2 -0
- package/dist/chunks/useControllableState-CPUJxfKW.js.map +1 -0
- package/dist/chunks/useDialogElement-CgOnJAzu.js +2 -0
- package/dist/chunks/useDialogElement-CgOnJAzu.js.map +1 -0
- package/dist/chunks/useDisabledAnchorGuard-Cz58UCXy.js +2 -1
- package/dist/chunks/useDisabledAnchorGuard-Cz58UCXy.js.map +1 -0
- package/dist/chunks/useFloatingOverlay-DLIvwx-8.js +2 -0
- package/dist/chunks/useFloatingOverlay-DLIvwx-8.js.map +1 -0
- package/dist/chunks/useForkedRef-DVEfT-KI.js +2 -1
- package/dist/chunks/useForkedRef-DVEfT-KI.js.map +1 -0
- package/dist/chunks/useFormField-BOqmBTC4.js +2 -1
- package/dist/chunks/useFormField-BOqmBTC4.js.map +1 -0
- package/dist/chunks/useIsomorphicLayoutEffect-BbqRwuqn.js +2 -1
- package/dist/chunks/useIsomorphicLayoutEffect-BbqRwuqn.js.map +1 -0
- package/dist/chunks/useOpenStateProps-DykUbnPJ.js +2 -0
- package/dist/chunks/useOpenStateProps-DykUbnPJ.js.map +1 -0
- package/dist/chunks/useToastRegionQueue-CIV5SdiE.js +2 -0
- package/dist/chunks/useToastRegionQueue-CIV5SdiE.js.map +1 -0
- package/dist/chunks/useTransitionState-e5ToY7eX.js +2 -0
- package/dist/chunks/useTransitionState-e5ToY7eX.js.map +1 -0
- package/dist/chunks/validationClassName-gRGs4KBm.js +2 -1
- package/dist/chunks/validationClassName-gRGs4KBm.js.map +1 -0
- package/dist/chunks/visibleState-B_i1zHu2.js +2 -0
- package/dist/chunks/visibleState-B_i1zHu2.js.map +1 -0
- package/dist/close-button.d.ts +1 -1
- package/dist/close-button.js +1 -1
- package/dist/collapse.js +1 -1
- package/dist/color-input.js +1 -1
- package/dist/combobox.js +1 -1
- package/dist/context-menu.d.ts +2 -0
- package/dist/context-menu.js +1 -0
- package/dist/datagrid.d.ts +1 -1
- package/dist/datagrid.js +1 -1
- package/dist/datepicker.d.ts +1 -1
- package/dist/datepicker.js +1 -1
- package/dist/divider.d.ts +2 -0
- package/dist/divider.js +1 -0
- package/dist/drawer.d.ts +1 -1
- package/dist/drawer.js +1 -1
- package/dist/file-input.js +1 -1
- package/dist/flex.d.ts +1 -1
- package/dist/flex.js +1 -1
- package/dist/floating-input.d.ts +1 -1
- package/dist/floating-input.js +1 -1
- package/dist/form-field.d.ts +1 -1
- package/dist/form-field.js +1 -1
- package/dist/form.js +1 -1
- package/dist/grid.d.ts +2 -2
- package/dist/grid.js +1 -1
- package/dist/icon.d.ts +2 -2
- package/dist/icon.js +1 -1
- package/dist/index.d.ts +61 -49
- package/dist/index.js +1 -1
- package/dist/input-adorn.js +1 -1
- package/dist/input-group.js +1 -1
- package/dist/link.d.ts +1 -1
- package/dist/link.js +1 -1
- package/dist/list.d.ts +1 -1
- package/dist/list.js +1 -1
- package/dist/menu.d.ts +2 -1
- package/dist/menu.js +1 -1
- package/dist/modal.d.ts +1 -1
- package/dist/modal.js +1 -1
- package/dist/nav-overflow.d.ts +2 -0
- package/dist/nav-overflow.js +1 -0
- package/dist/nav.d.ts +2 -2
- package/dist/nav.js +1 -1
- package/dist/navbar.d.ts +1 -1
- package/dist/navbar.js +1 -1
- package/dist/notification.d.ts +1 -1
- package/dist/notification.js +1 -1
- package/dist/number-field.d.ts +2 -0
- package/dist/number-field.js +1 -0
- package/dist/otp-input.js +1 -1
- package/dist/pagination.d.ts +1 -1
- package/dist/pagination.js +1 -1
- package/dist/password-strength.d.ts +1 -1
- package/dist/password-strength.js +1 -1
- package/dist/placeholder.d.ts +1 -1
- package/dist/placeholder.js +1 -1
- package/dist/popover.d.ts +1 -1
- package/dist/popover.js +1 -1
- package/dist/portal.d.ts +2 -0
- package/dist/portal.js +1 -0
- package/dist/progress.d.ts +1 -1
- package/dist/progress.js +1 -1
- package/dist/radio.d.ts +1 -1
- package/dist/radio.js +1 -1
- package/dist/range-input.js +1 -1
- package/dist/scrollspy.d.ts +2 -0
- package/dist/scrollspy.js +1 -0
- package/dist/search-field.d.ts +2 -0
- package/dist/search-field.js +1 -0
- package/dist/select.js +1 -1
- package/dist/skeleton.d.ts +1 -1
- package/dist/skeleton.js +1 -1
- package/dist/spinner.d.ts +1 -1
- package/dist/spinner.js +1 -1
- package/dist/stack.d.ts +1 -1
- package/dist/stack.js +1 -1
- package/dist/static-table.d.ts +1 -1
- package/dist/stepper.d.ts +1 -1
- package/dist/stepper.js +1 -1
- package/dist/style.css +1 -1
- package/dist/switch.d.ts +1 -1
- package/dist/switch.js +1 -1
- package/dist/table.d.ts +1 -1
- package/dist/table.js +1 -1
- package/dist/tabs.d.ts +1 -1
- package/dist/tabs.js +1 -1
- package/dist/text-input.js +1 -1
- package/dist/textarea.js +1 -1
- package/dist/time-field.d.ts +2 -0
- package/dist/time-field.js +1 -0
- package/dist/toast.d.ts +1 -1
- package/dist/toast.js +1 -1
- package/dist/tooltip.d.ts +1 -1
- package/dist/tooltip.js +1 -1
- package/dist/tree.d.ts +2 -0
- package/dist/tree.js +1 -0
- package/dist/visually-hidden.d.ts +2 -0
- package/dist/visually-hidden.js +1 -0
- package/package.json +61 -52
- package/dist/chunks/Button-I0aUy5h-.js +0 -1
- package/dist/chunks/Chip-D0Cw0mAr.js +0 -1
- package/dist/chunks/CloseButton-DJM7FRKh.js +0 -1
- package/dist/chunks/ComboboxListBox-BhO8uRNg.js +0 -1
- package/dist/chunks/Icon-BIwkD-kx.js +0 -1
- package/dist/chunks/Link-Cq7FNWpm.js +0 -1
- package/dist/chunks/RangeCalendar-COnSfurr.js +0 -1
- package/dist/chunks/accordion-okRicuG5.js +0 -1
- package/dist/chunks/autocomplete-B0xTc6kg.js +0 -1
- package/dist/chunks/avatar-Bjm0DlPO.js +0 -1
- package/dist/chunks/breakpoints-SLMTNHF9.d.ts +0 -5
- package/dist/chunks/breakpoints-o_2Ev7ir.js +0 -1
- package/dist/chunks/button-group-CPZYA6aZ.js +0 -1
- package/dist/chunks/card-DfF2K_5p.js +0 -1
- package/dist/chunks/carousel-DEvwcA7H.js +0 -1
- package/dist/chunks/checkbox-BFPS0pD6.js +0 -1
- package/dist/chunks/chip-input-CB1lE6vP.js +0 -1
- package/dist/chunks/collapse-WifcChO8.js +0 -1
- package/dist/chunks/combobox-DWEj-Sv7.js +0 -1
- package/dist/chunks/datagrid-nbnNThsT.js +0 -2
- package/dist/chunks/datepicker-CslLKMm1.js +0 -1
- package/dist/chunks/direction-CPhdeL3A.js +0 -1
- package/dist/chunks/drawer-zReFjoJG.js +0 -1
- package/dist/chunks/flex-BTvpgaRv.js +0 -1
- package/dist/chunks/floating-input-CIC9Lm2a.js +0 -1
- package/dist/chunks/form-field-BjQ9SIjx.js +0 -1
- package/dist/chunks/grid-CuFw89yV.js +0 -1
- package/dist/chunks/iconSlot-BmWxJh27.js +0 -1
- package/dist/chunks/index-BDfh8YBc.d.ts +0 -39
- package/dist/chunks/index-CVUMS0x7.d.ts +0 -73
- package/dist/chunks/index-D949AidR.d.ts +0 -40
- package/dist/chunks/index-DEb9zXlC.d.ts +0 -210
- package/dist/chunks/list-CMr-wB9d.js +0 -1
- package/dist/chunks/menu-CXUc-Gva.js +0 -1
- package/dist/chunks/modal-ByIj71Mq.js +0 -1
- package/dist/chunks/nav-BldxFo_B.js +0 -1
- package/dist/chunks/navbar-BwcsQuBk.js +0 -1
- package/dist/chunks/notification-DdqigVB1.js +0 -1
- package/dist/chunks/otp-input-CXe_wkII.js +0 -1
- package/dist/chunks/pagination-BOpEAYW2.js +0 -1
- package/dist/chunks/password-strength-BfLiYiGj.js +0 -1
- package/dist/chunks/placeholder-pg95KELl.js +0 -1
- package/dist/chunks/polymorphic-CACPOv1_.js +0 -1
- package/dist/chunks/popover-BpSfnZzk.js +0 -1
- package/dist/chunks/radio-BV7Sq6D1.js +0 -1
- package/dist/chunks/renderFormCheck-BXBs6_ov.js +0 -1
- package/dist/chunks/renderFormField-wiaxvvLG.js +0 -1
- package/dist/chunks/select-CclIIux8.js +0 -1
- package/dist/chunks/skeleton-CKq76sE_.js +0 -1
- package/dist/chunks/spinner-BEq4PAlu.js +0 -1
- package/dist/chunks/stack-D3retZ-W.js +0 -1
- package/dist/chunks/stepper-CTa6e8uv.js +0 -1
- package/dist/chunks/switch-BmHpq4tL.js +0 -1
- package/dist/chunks/table-Fme9GbAR.js +0 -1
- package/dist/chunks/tabs-BnbMJM_b.js +0 -1
- package/dist/chunks/text-input-DD3d08Yf.js +0 -1
- package/dist/chunks/textarea-C0qQdCcu.js +0 -1
- package/dist/chunks/toast-BQhZ2pv5.js +0 -1
- package/dist/chunks/tooltip-DHtVAYUo.js +0 -1
- package/dist/chunks/triggerElement-BIqA4KqZ.js +0 -1
- package/dist/chunks/useDialogElement-BRIU60cT.js +0 -1
- package/dist/chunks/useFloatingOverlay-CcmDZKMK.js +0 -1
- package/dist/chunks/useToastRegionQueue-BH6bWZ73.js +0 -1
- package/src/components/accordion/Accordion.tsx +0 -190
- package/src/components/accordion/AccordionBody.tsx +0 -46
- package/src/components/accordion/AccordionHeader.tsx +0 -21
- package/src/components/accordion/AccordionItem.tsx +0 -59
- package/src/components/accordion/context.ts +0 -8
- package/src/components/accordion/index.ts +0 -12
- package/src/components/autocomplete/Autocomplete.tsx +0 -464
- package/src/components/autocomplete/AutocompleteGroup.tsx +0 -20
- package/src/components/autocomplete/AutocompleteItem.tsx +0 -18
- package/src/components/autocomplete/index.ts +0 -10
- package/src/components/avatar/Avatar.tsx +0 -137
- package/src/components/avatar/AvatarImage.tsx +0 -19
- package/src/components/avatar/AvatarStack.tsx +0 -98
- package/src/components/avatar/index.ts +0 -10
- package/src/components/badge/Badge.tsx +0 -94
- package/src/components/badge/index.ts +0 -6
- package/src/components/breadcrumb/Breadcrumb.tsx +0 -68
- package/src/components/breadcrumb/BreadcrumbItem.tsx +0 -38
- package/src/components/breadcrumb/index.ts +0 -8
- package/src/components/button/Button.tsx +0 -232
- package/src/components/button/index.ts +0 -6
- package/src/components/button-group/ButtonGroup.tsx +0 -55
- package/src/components/button-group/ButtonToolbar.tsx +0 -47
- package/src/components/button-group/index.ts +0 -8
- package/src/components/calendar/Calendar.scss +0 -57
- package/src/components/calendar/Calendar.tsx +0 -338
- package/src/components/calendar/CalendarMonthBlock.tsx +0 -57
- package/src/components/calendar/CalendarMonthGrid.tsx +0 -94
- package/src/components/calendar/CalendarMonthYearPicker.tsx +0 -164
- package/src/components/calendar/CalendarNavButton.tsx +0 -24
- package/src/components/calendar/CalendarWeekGrid.tsx +0 -58
- package/src/components/calendar/CalendarYearGrid.tsx +0 -128
- package/src/components/calendar/RangeCalendar.scss +0 -95
- package/src/components/calendar/RangeCalendar.tsx +0 -373
- package/src/components/calendar/index.ts +0 -10
- package/src/components/calendar/labels.tsx +0 -71
- package/src/components/card/Card.tsx +0 -173
- package/src/components/card/CardBody.tsx +0 -75
- package/src/components/card/CardFooter.tsx +0 -47
- package/src/components/card/CardGroup.tsx +0 -51
- package/src/components/card/CardHeader.tsx +0 -47
- package/src/components/card/CardImage.tsx +0 -70
- package/src/components/card/CardImageOverlay.tsx +0 -47
- package/src/components/card/CardLink.tsx +0 -40
- package/src/components/card/CardSubtitle.tsx +0 -47
- package/src/components/card/CardText.tsx +0 -47
- package/src/components/card/CardTitle.tsx +0 -47
- package/src/components/card/index.ts +0 -26
- package/src/components/carousel/Carousel.tsx +0 -753
- package/src/components/carousel/CarouselControlButton.tsx +0 -81
- package/src/components/carousel/CarouselControlNext.tsx +0 -28
- package/src/components/carousel/CarouselControlPrev.tsx +0 -28
- package/src/components/carousel/CarouselIndicators.tsx +0 -44
- package/src/components/carousel/CarouselInner.tsx +0 -56
- package/src/components/carousel/CarouselItem.tsx +0 -51
- package/src/components/carousel/CarouselOverlay.tsx +0 -51
- package/src/components/carousel/CarouselPlayPause.tsx +0 -84
- package/src/components/carousel/carouselEngine.ts +0 -170
- package/src/components/carousel/context.ts +0 -29
- package/src/components/carousel/index.ts +0 -25
- package/src/components/checkbox/Checkbox.tsx +0 -252
- package/src/components/checkbox/CheckboxGroup.tsx +0 -145
- package/src/components/checkbox/context.ts +0 -14
- package/src/components/checkbox/index.ts +0 -8
- package/src/components/chip/Chip.tsx +0 -184
- package/src/components/chip/index.ts +0 -6
- package/src/components/chip-input/ChipInput.tsx +0 -371
- package/src/components/chip-input/ChipList.tsx +0 -95
- package/src/components/chip-input/index.ts +0 -6
- package/src/components/close-button/CloseButton.tsx +0 -205
- package/src/components/close-button/index.ts +0 -6
- package/src/components/collapse/Collapse.tsx +0 -128
- package/src/components/collapse/index.ts +0 -6
- package/src/components/color-input/ColorInput.tsx +0 -106
- package/src/components/color-input/index.ts +0 -6
- package/src/components/combobox/Combobox.tsx +0 -320
- package/src/components/combobox/ComboboxGroup.tsx +0 -27
- package/src/components/combobox/ComboboxItem.tsx +0 -44
- package/src/components/combobox/ComboboxListBox.tsx +0 -98
- package/src/components/combobox/index.ts +0 -10
- package/src/components/datagrid/DataGrid.scss +0 -203
- package/src/components/datagrid/DataGrid.tsx +0 -259
- package/src/components/datagrid/DataGridBody.tsx +0 -162
- package/src/components/datagrid/DataGridCell.tsx +0 -47
- package/src/components/datagrid/DataGridColumn.tsx +0 -109
- package/src/components/datagrid/DataGridHeader.tsx +0 -47
- package/src/components/datagrid/DataGridPinBehavior.tsx +0 -225
- package/src/components/datagrid/DataGridRow.tsx +0 -48
- package/src/components/datagrid/DataGridSelectionCell.tsx +0 -74
- package/src/components/datagrid/DataGridTableLayout.ts +0 -30
- package/src/components/datagrid/index.ts +0 -18
- package/src/components/datagrid/useColumnGeometry.ts +0 -161
- package/src/components/datepicker/CalendarToggleButton.tsx +0 -58
- package/src/components/datepicker/ClearButton.tsx +0 -38
- package/src/components/datepicker/DateField.tsx +0 -54
- package/src/components/datepicker/DatePicker.scss +0 -51
- package/src/components/datepicker/DatePicker.tsx +0 -606
- package/src/components/datepicker/DateRangePicker.scss +0 -11
- package/src/components/datepicker/DateRangePicker.tsx +0 -361
- package/src/components/datepicker/index.ts +0 -8
- package/src/components/datepicker/renderDatePickerShell.tsx +0 -104
- package/src/components/drawer/Drawer.tsx +0 -213
- package/src/components/drawer/DrawerBody.tsx +0 -47
- package/src/components/drawer/DrawerFooter.tsx +0 -51
- package/src/components/drawer/DrawerHeader.tsx +0 -60
- package/src/components/drawer/DrawerTitle.tsx +0 -49
- package/src/components/drawer/index.ts +0 -18
- package/src/components/file-input/FileInput.tsx +0 -100
- package/src/components/file-input/index.ts +0 -6
- package/src/components/flex/Flex.tsx +0 -134
- package/src/components/flex/index.ts +0 -6
- package/src/components/floating-input/FloatingInput.tsx +0 -94
- package/src/components/floating-input/index.ts +0 -6
- package/src/components/form/Form.tsx +0 -26
- package/src/components/form/FormFeedback.tsx +0 -64
- package/src/components/form/FormHelp.tsx +0 -46
- package/src/components/form/FormLabel.tsx +0 -26
- package/src/components/form/index.ts +0 -12
- package/src/components/form/renderFormCheck.tsx +0 -86
- package/src/components/form-field/FormField.tsx +0 -84
- package/src/components/form-field/index.ts +0 -6
- package/src/components/form-field/renderFormField.tsx +0 -85
- package/src/components/grid/Col.tsx +0 -69
- package/src/components/grid/Container.tsx +0 -59
- package/src/components/grid/Grid.tsx +0 -86
- package/src/components/grid/GridItem.tsx +0 -123
- package/src/components/grid/Row.tsx +0 -71
- package/src/components/grid/gap.ts +0 -8
- package/src/components/grid/index.ts +0 -14
- package/src/components/icon/Icon.tsx +0 -105
- package/src/components/icon/IconProvider.tsx +0 -40
- package/src/components/icon/index.ts +0 -9
- package/src/components/input-adorn/InputAdorn.tsx +0 -55
- package/src/components/input-adorn/index.ts +0 -6
- package/src/components/input-group/InputGroup.tsx +0 -50
- package/src/components/input-group/InputGroupAddon.tsx +0 -50
- package/src/components/input-group/index.ts +0 -8
- package/src/components/link/Link.tsx +0 -148
- package/src/components/link/index.ts +0 -6
- package/src/components/list/List.tsx +0 -193
- package/src/components/list/ListItem.tsx +0 -91
- package/src/components/list/index.ts +0 -8
- package/src/components/menu/Menu.tsx +0 -408
- package/src/components/menu/MenuDivider.tsx +0 -19
- package/src/components/menu/MenuHeader.tsx +0 -55
- package/src/components/menu/MenuItem.tsx +0 -85
- package/src/components/menu/MenuItemDef.ts +0 -83
- package/src/components/menu/MenuList.tsx +0 -142
- package/src/components/menu/MenuSubmenu.tsx +0 -284
- package/src/components/menu/MenuSubmenuBack.tsx +0 -39
- package/src/components/menu/MenuText.tsx +0 -47
- package/src/components/menu/MenuToggle.tsx +0 -148
- package/src/components/menu/index.ts +0 -23
- package/src/components/menu/menuNavigation.ts +0 -106
- package/src/components/menu/submenuGroup.ts +0 -43
- package/src/components/modal/Modal.tsx +0 -164
- package/src/components/modal/ModalBody.tsx +0 -47
- package/src/components/modal/ModalFooter.tsx +0 -51
- package/src/components/modal/ModalHeader.tsx +0 -60
- package/src/components/modal/ModalTitle.tsx +0 -49
- package/src/components/modal/index.ts +0 -18
- package/src/components/nav/Nav.tsx +0 -97
- package/src/components/nav/NavItem.tsx +0 -42
- package/src/components/nav/NavLink.tsx +0 -48
- package/src/components/nav/NavTitle.tsx +0 -22
- package/src/components/nav/index.ts +0 -11
- package/src/components/navbar/Navbar.tsx +0 -112
- package/src/components/navbar/NavbarBrand.tsx +0 -58
- package/src/components/navbar/NavbarNav.tsx +0 -47
- package/src/components/navbar/NavbarText.tsx +0 -47
- package/src/components/navbar/NavbarToggler.tsx +0 -40
- package/src/components/navbar/index.ts +0 -14
- package/src/components/notification/Notification.scss +0 -15
- package/src/components/notification/Notification.tsx +0 -188
- package/src/components/notification/NotificationIcon.tsx +0 -21
- package/src/components/notification/NotificationStack.tsx +0 -66
- package/src/components/notification/NotificationText.tsx +0 -47
- package/src/components/notification/NotificationTitle.tsx +0 -47
- package/src/components/notification/context.ts +0 -14
- package/src/components/notification/index.ts +0 -25
- package/src/components/notification/notificationQueue.ts +0 -48
- package/src/components/otp-input/OtpBox.tsx +0 -68
- package/src/components/otp-input/OtpInput.tsx +0 -342
- package/src/components/otp-input/index.ts +0 -6
- package/src/components/pagination/Pagination.tsx +0 -212
- package/src/components/pagination/PaginationItem.tsx +0 -152
- package/src/components/pagination/index.ts +0 -12
- package/src/components/password-strength/PasswordStrength.tsx +0 -155
- package/src/components/password-strength/index.ts +0 -6
- package/src/components/password-strength/strengthScore.ts +0 -79
- package/src/components/placeholder/Placeholder.tsx +0 -178
- package/src/components/placeholder/index.ts +0 -6
- package/src/components/popover/Popover.tsx +0 -269
- package/src/components/popover/index.ts +0 -6
- package/src/components/progress/Progress.tsx +0 -154
- package/src/components/progress/ProgressBar.tsx +0 -88
- package/src/components/progress/index.ts +0 -8
- package/src/components/radio/Radio.tsx +0 -98
- package/src/components/radio/RadioGroup.tsx +0 -142
- package/src/components/radio/context.ts +0 -14
- package/src/components/radio/index.ts +0 -8
- package/src/components/range-input/RangeInput.tsx +0 -109
- package/src/components/range-input/index.ts +0 -6
- package/src/components/select/Select.tsx +0 -277
- package/src/components/select/index.ts +0 -6
- package/src/components/skeleton/Skeleton.tsx +0 -89
- package/src/components/skeleton/SkeletonLoader.tsx +0 -98
- package/src/components/skeleton/index.ts +0 -8
- package/src/components/spinner/Spinner.tsx +0 -77
- package/src/components/spinner/index.ts +0 -6
- package/src/components/stack/Stack.tsx +0 -81
- package/src/components/stack/index.ts +0 -6
- package/src/components/static-table/StaticTable.tsx +0 -78
- package/src/components/static-table/index.ts +0 -8
- package/src/components/stepper/Stepper.tsx +0 -172
- package/src/components/stepper/StepperItem.tsx +0 -66
- package/src/components/stepper/index.ts +0 -8
- package/src/components/switch/Switch.tsx +0 -259
- package/src/components/switch/index.ts +0 -6
- package/src/components/table/Table.css +0 -39
- package/src/components/table/Table.tsx +0 -405
- package/src/components/table/TableBody.tsx +0 -25
- package/src/components/table/TableCell.tsx +0 -27
- package/src/components/table/TableColumn.tsx +0 -31
- package/src/components/table/TableHeader.tsx +0 -26
- package/src/components/table/TableRow.tsx +0 -24
- package/src/components/table/index.ts +0 -16
- package/src/components/tabs/Tab.tsx +0 -36
- package/src/components/tabs/TabList.tsx +0 -76
- package/src/components/tabs/TabPanel.tsx +0 -68
- package/src/components/tabs/Tabs.tsx +0 -136
- package/src/components/tabs/context.ts +0 -24
- package/src/components/tabs/index.ts +0 -12
- package/src/components/text-input/TextInput.tsx +0 -188
- package/src/components/text-input/index.ts +0 -6
- package/src/components/textarea/Textarea.tsx +0 -145
- package/src/components/textarea/index.ts +0 -6
- package/src/components/toast/Toast.tsx +0 -220
- package/src/components/toast/ToastBody.tsx +0 -64
- package/src/components/toast/ToastFooter.tsx +0 -47
- package/src/components/toast/ToastHeader.tsx +0 -105
- package/src/components/toast/ToastIcon.tsx +0 -21
- package/src/components/toast/Toaster.tsx +0 -87
- package/src/components/toast/context.ts +0 -14
- package/src/components/toast/index.ts +0 -26
- package/src/components/toast/toastQueue.ts +0 -56
- package/src/components/tooltip/Tooltip.tsx +0 -171
- package/src/components/tooltip/index.ts +0 -6
- package/src/global.d.ts +0 -2
- package/src/hooks/index.ts +0 -57
- package/src/hooks/useAutoDismiss.ts +0 -91
- package/src/hooks/useButtonSemantics.ts +0 -33
- package/src/hooks/useControllableState.ts +0 -24
- package/src/hooks/useDialogElement.ts +0 -226
- package/src/hooks/useDisabledAnchorGuard.ts +0 -22
- package/src/hooks/useDismissibleTransition.ts +0 -126
- package/src/hooks/useDrawer.ts +0 -9
- package/src/hooks/useFloatingOverlay.ts +0 -125
- package/src/hooks/useForkedRef.ts +0 -50
- package/src/hooks/useFormField.ts +0 -89
- package/src/hooks/useIconConfig.ts +0 -6
- package/src/hooks/useIsomorphicLayoutEffect.ts +0 -9
- package/src/hooks/useModal.ts +0 -9
- package/src/hooks/useNotification.ts +0 -10
- package/src/hooks/useOverlayPlacement.ts +0 -93
- package/src/hooks/usePagination.ts +0 -89
- package/src/hooks/useToast.ts +0 -9
- package/src/hooks/useToastRegionQueue.ts +0 -27
- package/src/index.ts +0 -522
- package/src/types.ts +0 -133
- package/src/utils/breakpoints.ts +0 -43
- package/src/utils/comboboxCollection.tsx +0 -152
- package/src/utils/dateRangePresets.ts +0 -6
- package/src/utils/devWarning.ts +0 -58
- package/src/utils/dialogTransition.ts +0 -39
- package/src/utils/direction.ts +0 -14
- package/src/utils/focusRedirect.ts +0 -23
- package/src/utils/iconConfig.ts +0 -88
- package/src/utils/iconSlot.tsx +0 -41
- package/src/utils/isWholeUnitDisabled.ts +0 -17
- package/src/utils/mergeIsDateUnavailable.ts +0 -15
- package/src/utils/overlayPlacement.ts +0 -93
- package/src/utils/pointerInteraction.ts +0 -21
- package/src/utils/polymorphic.ts +0 -100
- package/src/utils/renderMenuItemContent.tsx +0 -57
- package/src/utils/setVisibleRangeStart.ts +0 -64
- package/src/utils/slot.tsx +0 -78
- package/src/utils/spacingClassName.ts +0 -14
- package/src/utils/suppressFocusRingGlobally.ts +0 -84
- package/src/utils/tableClassName.ts +0 -93
- package/src/utils/triggerElement.ts +0 -25
- package/src/utils/validationClassName.ts +0 -8
- package/src/utils/virtualFocusStyle.ts +0 -16
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
import React, { forwardRef, HTMLAttributes } from 'react'
|
|
2
|
-
import classNames from 'classnames'
|
|
3
|
-
|
|
4
|
-
export interface MenuDividerProps extends HTMLAttributes<HTMLHRElement> {
|
|
5
|
-
/**
|
|
6
|
-
* A string of all className you want applied to the component.
|
|
7
|
-
*/
|
|
8
|
-
className?: string
|
|
9
|
-
}
|
|
10
|
-
|
|
11
|
-
export const MenuDivider = forwardRef<HTMLHRElement, MenuDividerProps>(
|
|
12
|
-
({ className, ...rest }, ref) => {
|
|
13
|
-
const _className = classNames('menu-divider', className)
|
|
14
|
-
|
|
15
|
-
return <hr className={_className} {...rest} ref={ref} />
|
|
16
|
-
}
|
|
17
|
-
)
|
|
18
|
-
|
|
19
|
-
MenuDivider.displayName = 'MenuDivider'
|
|
@@ -1,55 +0,0 @@
|
|
|
1
|
-
import React, { ElementType, ForwardRefRenderFunction, ReactElement } from 'react'
|
|
2
|
-
import classNames from 'classnames'
|
|
3
|
-
|
|
4
|
-
import {
|
|
5
|
-
createPolymorphicComponent,
|
|
6
|
-
PolymorphicComponentProps,
|
|
7
|
-
PolymorphicRef
|
|
8
|
-
} from '../../utils/polymorphic'
|
|
9
|
-
|
|
10
|
-
type MenuHeaderOwnProps<C extends ElementType> = {
|
|
11
|
-
/**
|
|
12
|
-
* A string of all className you want applied to the component.
|
|
13
|
-
*/
|
|
14
|
-
className?: string
|
|
15
|
-
/**
|
|
16
|
-
* Component used for the root node. Either a string to use a HTML element or a component.
|
|
17
|
-
*/
|
|
18
|
-
component?: C
|
|
19
|
-
/**
|
|
20
|
-
* ARIA role applied to the root node. Defaults to `'presentation'` — see the render function
|
|
21
|
-
* for why.
|
|
22
|
-
*/
|
|
23
|
-
role?: React.AriaRole
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
export type MenuHeaderProps<C extends ElementType = 'h4'> = PolymorphicComponentProps<
|
|
27
|
-
C,
|
|
28
|
-
MenuHeaderOwnProps<C>
|
|
29
|
-
>
|
|
30
|
-
|
|
31
|
-
type MenuHeaderComponent = (<C extends ElementType = 'h4'>(
|
|
32
|
-
props: MenuHeaderProps<C> & { ref?: PolymorphicRef<C> }
|
|
33
|
-
) => ReactElement | null) & { displayName?: string }
|
|
34
|
-
|
|
35
|
-
function MenuHeaderRender<C extends ElementType = 'h4'>(
|
|
36
|
-
{ children, className, component, role = 'presentation', ...rest }: MenuHeaderProps<C>,
|
|
37
|
-
ref: PolymorphicRef<C>
|
|
38
|
-
) {
|
|
39
|
-
const Component = component ?? 'h4'
|
|
40
|
-
const _className = classNames('menu-header', className)
|
|
41
|
-
|
|
42
|
-
// Always rendered as a direct child of `role="menu"` (see MenuList) — ARIA's menu role only
|
|
43
|
-
// permits menuitem/group/separator children, so a bare heading fails aria-required-children.
|
|
44
|
-
// `role="presentation"` opts the element itself out without hiding its text content.
|
|
45
|
-
return (
|
|
46
|
-
<Component className={_className} role={role} {...rest} ref={ref}>
|
|
47
|
-
{children}
|
|
48
|
-
</Component>
|
|
49
|
-
)
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
export const MenuHeader = createPolymorphicComponent<MenuHeaderComponent>(
|
|
53
|
-
MenuHeaderRender as ForwardRefRenderFunction<Element, MenuHeaderProps<ElementType>>,
|
|
54
|
-
'MenuHeader'
|
|
55
|
-
)
|
|
@@ -1,85 +0,0 @@
|
|
|
1
|
-
import React, {
|
|
2
|
-
ElementType,
|
|
3
|
-
ForwardRefRenderFunction,
|
|
4
|
-
MouseEvent,
|
|
5
|
-
ReactElement,
|
|
6
|
-
ReactNode
|
|
7
|
-
} from 'react'
|
|
8
|
-
import classNames from 'classnames'
|
|
9
|
-
|
|
10
|
-
import { createPolymorphicComponent, PolymorphicRef } from '../../utils/polymorphic'
|
|
11
|
-
import { renderMenuItemContent } from '../../utils/renderMenuItemContent'
|
|
12
|
-
import { LinkProps, Link } from '../link/Link'
|
|
13
|
-
|
|
14
|
-
type MenuItemOwnProps = {
|
|
15
|
-
/**
|
|
16
|
-
* A string of all className you want applied to the component.
|
|
17
|
-
*/
|
|
18
|
-
className?: string
|
|
19
|
-
/**
|
|
20
|
-
* Secondary line of text rendered below `children` (`.menu-item-description`).
|
|
21
|
-
*/
|
|
22
|
-
description?: ReactNode
|
|
23
|
-
/**
|
|
24
|
-
* Icon rendered at the item's leading edge (`.menu-item-icon`).
|
|
25
|
-
*/
|
|
26
|
-
icon?: ReactNode
|
|
27
|
-
/**
|
|
28
|
-
* Marks the item as the current selection in a choice list. Renders in a heavier font weight.
|
|
29
|
-
* Combine with a manually-composed `.menu-item-check` icon (in `children`, or via `icon` on a
|
|
30
|
-
* plain, non-selection item) to also show a checkmark — this prop alone doesn't add one, so
|
|
31
|
-
* existing font-weight-only usage keeps rendering unchanged.
|
|
32
|
-
*/
|
|
33
|
-
selected?: boolean
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
export type MenuItemProps<C extends ElementType = 'a'> = LinkProps<C> & MenuItemOwnProps
|
|
37
|
-
|
|
38
|
-
type MenuItemComponent = (<C extends ElementType = 'a'>(
|
|
39
|
-
props: MenuItemProps<C> & { ref?: PolymorphicRef<C> }
|
|
40
|
-
) => ReactElement | null) & { displayName?: string }
|
|
41
|
-
|
|
42
|
-
function MenuItemRender<C extends ElementType = 'a'>(
|
|
43
|
-
{
|
|
44
|
-
children,
|
|
45
|
-
className,
|
|
46
|
-
component,
|
|
47
|
-
description,
|
|
48
|
-
href,
|
|
49
|
-
icon,
|
|
50
|
-
onClick,
|
|
51
|
-
selected,
|
|
52
|
-
...rest
|
|
53
|
-
}: MenuItemProps<C>,
|
|
54
|
-
ref: PolymorphicRef<C>
|
|
55
|
-
) {
|
|
56
|
-
const _className = classNames('menu-item', { selected }, className)
|
|
57
|
-
|
|
58
|
-
// `href="#"` is a common placeholder for menu items that act via `onClick` rather than
|
|
59
|
-
// real navigation. Left alone, a plain anchor click still navigates to the empty fragment,
|
|
60
|
-
// which scrolls the page to the top — so we suppress that default for the placeholder case
|
|
61
|
-
// only, leaving real same-page anchors (`href="#some-id"`) free to navigate as expected.
|
|
62
|
-
const handleClick = (event: MouseEvent<HTMLAnchorElement | HTMLButtonElement>) => {
|
|
63
|
-
if (href === '#') event.preventDefault()
|
|
64
|
-
onClick?.(event)
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
return (
|
|
68
|
-
<Link
|
|
69
|
-
role="menuitem"
|
|
70
|
-
component={component as ElementType}
|
|
71
|
-
href={href}
|
|
72
|
-
onClick={handleClick}
|
|
73
|
-
{...(rest as Record<string, unknown>)}
|
|
74
|
-
className={_className}
|
|
75
|
-
ref={ref as PolymorphicRef<ElementType>}
|
|
76
|
-
>
|
|
77
|
-
{renderMenuItemContent({ icon, label: children, description })}
|
|
78
|
-
</Link>
|
|
79
|
-
)
|
|
80
|
-
}
|
|
81
|
-
|
|
82
|
-
export const MenuItem = createPolymorphicComponent<MenuItemComponent>(
|
|
83
|
-
MenuItemRender as ForwardRefRenderFunction<Element, MenuItemProps<ElementType>>,
|
|
84
|
-
'MenuItem'
|
|
85
|
-
)
|
|
@@ -1,83 +0,0 @@
|
|
|
1
|
-
import { ReactNode } from 'react'
|
|
2
|
-
import { Key } from 'react-stately'
|
|
3
|
-
|
|
4
|
-
export interface MenuItemDef {
|
|
5
|
-
/**
|
|
6
|
-
* Discriminates this entry from `MenuHeaderDef`/`MenuDividerDef` in a `MenuItemsDef`
|
|
7
|
-
* array. Omit for a normal item — it's the default.
|
|
8
|
-
*/
|
|
9
|
-
type?: 'item'
|
|
10
|
-
/**
|
|
11
|
-
* React key for this item.
|
|
12
|
-
*/
|
|
13
|
-
id: Key
|
|
14
|
-
/**
|
|
15
|
-
* Label content for the item.
|
|
16
|
-
*/
|
|
17
|
-
label: ReactNode
|
|
18
|
-
/**
|
|
19
|
-
* Text used for filtering/typeahead. Required when `label` isn't a plain string — components
|
|
20
|
-
* that filter (e.g. `Combobox`, `Autocomplete`) can't derive it from rich content.
|
|
21
|
-
*/
|
|
22
|
-
textValue?: string
|
|
23
|
-
/**
|
|
24
|
-
* URL for the item, when it acts as a link.
|
|
25
|
-
*/
|
|
26
|
-
href?: string
|
|
27
|
-
/**
|
|
28
|
-
* Callback fired when the item is activated.
|
|
29
|
-
*/
|
|
30
|
-
onClick?: () => void
|
|
31
|
-
/**
|
|
32
|
-
* Marks the item as disabled — it can't be clicked or reached via the keyboard.
|
|
33
|
-
*/
|
|
34
|
-
disabled?: boolean
|
|
35
|
-
/**
|
|
36
|
-
* Marks the item as the current selection in a choice list.
|
|
37
|
-
*/
|
|
38
|
-
selected?: boolean
|
|
39
|
-
/**
|
|
40
|
-
* Icon rendered at the item's leading edge (`.menu-item-icon`).
|
|
41
|
-
*/
|
|
42
|
-
icon?: ReactNode
|
|
43
|
-
/**
|
|
44
|
-
* Secondary line of text rendered below the label (`.menu-item-description`).
|
|
45
|
-
*/
|
|
46
|
-
description?: ReactNode
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
export interface MenuHeaderDef {
|
|
50
|
-
/**
|
|
51
|
-
* Discriminates this entry as a non-interactive group header.
|
|
52
|
-
*/
|
|
53
|
-
type: 'header'
|
|
54
|
-
/**
|
|
55
|
-
* React key for this entry.
|
|
56
|
-
*/
|
|
57
|
-
id: Key
|
|
58
|
-
/**
|
|
59
|
-
* Header content.
|
|
60
|
-
*/
|
|
61
|
-
label: ReactNode
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
export interface MenuDividerDef {
|
|
65
|
-
/**
|
|
66
|
-
* Discriminates this entry as a divider.
|
|
67
|
-
*/
|
|
68
|
-
type: 'divider'
|
|
69
|
-
/**
|
|
70
|
-
* React key for this entry.
|
|
71
|
-
*/
|
|
72
|
-
id: Key
|
|
73
|
-
}
|
|
74
|
-
|
|
75
|
-
/**
|
|
76
|
-
* A flat array of item/header/divider definitions for data-driven rendering — headers and
|
|
77
|
-
* dividers are interleaved with items in authoring order, matching how chassis-css itself
|
|
78
|
-
* renders grouped items (flat DOM siblings under `.menu`, no wrapping element per group).
|
|
79
|
-
*
|
|
80
|
-
* Covers flat items, headers, and dividers only — nested/recursive submenus aren't
|
|
81
|
-
* representable here. Compose with `children`/`MenuSubmenu` directly for those.
|
|
82
|
-
*/
|
|
83
|
-
export type MenuItemsDef = (MenuItemDef | MenuHeaderDef | MenuDividerDef)[]
|
|
@@ -1,142 +0,0 @@
|
|
|
1
|
-
import React, {
|
|
2
|
-
ElementType,
|
|
3
|
-
ForwardRefRenderFunction,
|
|
4
|
-
ReactElement,
|
|
5
|
-
ReactNode,
|
|
6
|
-
useContext,
|
|
7
|
-
useEffect
|
|
8
|
-
} from 'react'
|
|
9
|
-
import { createPortal } from 'react-dom'
|
|
10
|
-
import classNames from 'classnames'
|
|
11
|
-
|
|
12
|
-
import { useForkedRef } from '../../hooks'
|
|
13
|
-
import { renderMenuItemContent } from '../../utils/renderMenuItemContent'
|
|
14
|
-
import {
|
|
15
|
-
createPolymorphicComponent,
|
|
16
|
-
PolymorphicComponentProps,
|
|
17
|
-
PolymorphicRef
|
|
18
|
-
} from '../../utils/polymorphic'
|
|
19
|
-
import { MenuContext } from './Menu'
|
|
20
|
-
import { MenuDivider } from './MenuDivider'
|
|
21
|
-
import { MenuHeader } from './MenuHeader'
|
|
22
|
-
import { MenuItem } from './MenuItem'
|
|
23
|
-
import { MenuItemsDef } from './MenuItemDef'
|
|
24
|
-
import { focusMenuItem, getMenuItems, handleMenuKeyDown } from './menuNavigation'
|
|
25
|
-
import { SubmenuGroupContext, useSubmenuGroupProvider } from './submenuGroup'
|
|
26
|
-
|
|
27
|
-
type MenuListOwnProps<C extends ElementType> = {
|
|
28
|
-
/**
|
|
29
|
-
* A string of all className you want applied to the base component.
|
|
30
|
-
*/
|
|
31
|
-
className?: string
|
|
32
|
-
/**
|
|
33
|
-
* Component used for the root node. Either a string to use a HTML element or a component.
|
|
34
|
-
*/
|
|
35
|
-
component?: C
|
|
36
|
-
/**
|
|
37
|
-
* Array of item/header/divider definitions for data-driven rendering. When provided, children
|
|
38
|
-
* are ignored. Covers flat items, headers, and dividers only — for nested submenus, compose
|
|
39
|
-
* with `children` and `MenuSubmenu` instead.
|
|
40
|
-
*/
|
|
41
|
-
items?: MenuItemsDef
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
export type MenuListProps<C extends ElementType = 'div'> = PolymorphicComponentProps<
|
|
45
|
-
C,
|
|
46
|
-
MenuListOwnProps<C>
|
|
47
|
-
>
|
|
48
|
-
|
|
49
|
-
type MenuListComponent = (<C extends ElementType = 'div'>(
|
|
50
|
-
props: MenuListProps<C> & { ref?: PolymorphicRef<C> }
|
|
51
|
-
) => ReactElement | null) & { displayName?: string }
|
|
52
|
-
|
|
53
|
-
const renderMenuItemDef = (def: MenuItemsDef[number]): ReactNode => {
|
|
54
|
-
if (def.type === 'header') {
|
|
55
|
-
return <MenuHeader key={def.id}>{def.label}</MenuHeader>
|
|
56
|
-
}
|
|
57
|
-
if (def.type === 'divider') {
|
|
58
|
-
return <MenuDivider key={def.id} />
|
|
59
|
-
}
|
|
60
|
-
return (
|
|
61
|
-
<MenuItem
|
|
62
|
-
key={def.id}
|
|
63
|
-
component={def.href ? 'a' : 'button'}
|
|
64
|
-
href={def.href}
|
|
65
|
-
disabled={def.disabled}
|
|
66
|
-
selected={def.selected}
|
|
67
|
-
onClick={def.onClick}
|
|
68
|
-
>
|
|
69
|
-
{renderMenuItemContent({
|
|
70
|
-
icon: def.icon,
|
|
71
|
-
label: def.label,
|
|
72
|
-
description: def.description,
|
|
73
|
-
selected: def.selected
|
|
74
|
-
})}
|
|
75
|
-
</MenuItem>
|
|
76
|
-
)
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
function MenuListRender<C extends ElementType = 'div'>(
|
|
80
|
-
{ children, className, component, items, onKeyDown, ...rest }: MenuListProps<C>,
|
|
81
|
-
ref: PolymorphicRef<C>
|
|
82
|
-
) {
|
|
83
|
-
const Component = component ?? 'div'
|
|
84
|
-
const {
|
|
85
|
-
close,
|
|
86
|
-
container,
|
|
87
|
-
focusStrategy,
|
|
88
|
-
menuId,
|
|
89
|
-
menuStyle,
|
|
90
|
-
overlayRef,
|
|
91
|
-
placementAttr,
|
|
92
|
-
triggerId,
|
|
93
|
-
visible
|
|
94
|
-
} = useContext(MenuContext)
|
|
95
|
-
const forkedRef = useForkedRef(ref, overlayRef)
|
|
96
|
-
const submenuGroup = useSubmenuGroupProvider()
|
|
97
|
-
|
|
98
|
-
// ArrowDown/ArrowUp on the trigger opens the menu with a focus strategy (see `Menu`'s
|
|
99
|
-
// `useMenuTrigger` wiring) — this is where that intent actually lands, since we're not
|
|
100
|
-
// adopting `useMenu`'s own collection-aware auto-focus.
|
|
101
|
-
useEffect(() => {
|
|
102
|
-
if (!visible || !focusStrategy) return
|
|
103
|
-
focusMenuItem(getMenuItems(overlayRef.current), focusStrategy === 'last' ? 'last' : 'first')
|
|
104
|
-
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
105
|
-
}, [visible, focusStrategy])
|
|
106
|
-
|
|
107
|
-
const handleKeyDown = (event: React.KeyboardEvent<HTMLElement>) => {
|
|
108
|
-
handleMenuKeyDown(event, { onEscape: close })
|
|
109
|
-
onKeyDown?.(event as React.KeyboardEvent<HTMLDivElement>)
|
|
110
|
-
}
|
|
111
|
-
|
|
112
|
-
const content = (
|
|
113
|
-
<Component
|
|
114
|
-
role="menu"
|
|
115
|
-
id={menuId}
|
|
116
|
-
aria-labelledby={triggerId}
|
|
117
|
-
className={classNames('menu', { show: visible }, className)}
|
|
118
|
-
style={menuStyle}
|
|
119
|
-
data-cx-placement={placementAttr}
|
|
120
|
-
aria-hidden={!visible}
|
|
121
|
-
{...rest}
|
|
122
|
-
onKeyDown={handleKeyDown}
|
|
123
|
-
ref={forkedRef}
|
|
124
|
-
>
|
|
125
|
-
<SubmenuGroupContext.Provider value={submenuGroup}>
|
|
126
|
-
{items ? items.map(renderMenuItemDef) : children}
|
|
127
|
-
</SubmenuGroupContext.Provider>
|
|
128
|
-
</Component>
|
|
129
|
-
)
|
|
130
|
-
|
|
131
|
-
if (container) {
|
|
132
|
-
if (typeof window === 'undefined') return null
|
|
133
|
-
return createPortal(content, container === true ? document.body : container)
|
|
134
|
-
}
|
|
135
|
-
|
|
136
|
-
return content
|
|
137
|
-
}
|
|
138
|
-
|
|
139
|
-
export const MenuList = createPolymorphicComponent<MenuListComponent>(
|
|
140
|
-
MenuListRender as ForwardRefRenderFunction<Element, MenuListProps<ElementType>>,
|
|
141
|
-
'MenuList'
|
|
142
|
-
)
|
|
@@ -1,284 +0,0 @@
|
|
|
1
|
-
import React, {
|
|
2
|
-
forwardRef,
|
|
3
|
-
HTMLAttributes,
|
|
4
|
-
ReactNode,
|
|
5
|
-
useCallback,
|
|
6
|
-
useContext,
|
|
7
|
-
useEffect,
|
|
8
|
-
useId,
|
|
9
|
-
useRef,
|
|
10
|
-
useState
|
|
11
|
-
} from 'react'
|
|
12
|
-
import { createPortal } from 'react-dom'
|
|
13
|
-
import classNames from 'classnames'
|
|
14
|
-
import { useLocale, useOverlayPosition } from 'react-aria'
|
|
15
|
-
|
|
16
|
-
import { MenuContext } from './Menu'
|
|
17
|
-
import {
|
|
18
|
-
Placement,
|
|
19
|
-
resolveMenuOverlayPositioning,
|
|
20
|
-
toAriaPlacement
|
|
21
|
-
} from '../../utils/overlayPlacement'
|
|
22
|
-
import { focusMenuItem, getMenuItems, handleMenuKeyDown } from './menuNavigation'
|
|
23
|
-
import { SubmenuActionsContext, SubmenuGroupContext, useSubmenuGroupProvider } from './submenuGroup'
|
|
24
|
-
|
|
25
|
-
export interface MenuSubmenuProps extends Omit<HTMLAttributes<HTMLDivElement>, 'onSelect'> {
|
|
26
|
-
/**
|
|
27
|
-
* MenuSubmenu activation mode on hover-capable devices. `'click'` activates on click only.
|
|
28
|
-
* `'hover'` activates on hover only. `'both'` (the default) activates on both. Touch
|
|
29
|
-
* devices always use tap regardless of this setting.
|
|
30
|
-
*/
|
|
31
|
-
activation?: 'click' | 'hover' | 'both'
|
|
32
|
-
/**
|
|
33
|
-
* A string of all className you want applied to the base component.
|
|
34
|
-
*/
|
|
35
|
-
className?: string
|
|
36
|
-
/**
|
|
37
|
-
* Prevents the submenu from opening.
|
|
38
|
-
*/
|
|
39
|
-
disabled?: boolean
|
|
40
|
-
/**
|
|
41
|
-
* Distance between the nested menu and the trigger, as `[skidding, distance]` in pixels.
|
|
42
|
-
*/
|
|
43
|
-
offset?: [number, number]
|
|
44
|
-
/**
|
|
45
|
-
* Placement of the nested menu relative to the trigger. Defaults to cascading in the reading
|
|
46
|
-
* direction — `'right-start'` under LTR locales, `'left-start'` under RTL ones (see
|
|
47
|
-
* `useLocale`) — matching native OS/browser submenu behavior. An explicit value always wins
|
|
48
|
-
* over that locale-based default.
|
|
49
|
-
*/
|
|
50
|
-
placement?: Placement
|
|
51
|
-
/**
|
|
52
|
-
* Switches to a view-replacement pattern below the `sm` breakpoint. Pair with a
|
|
53
|
-
* `MenuSubmenuBack` as the first item of the nested menu.
|
|
54
|
-
*/
|
|
55
|
-
stacked?: boolean
|
|
56
|
-
/**
|
|
57
|
-
* Milliseconds before closing the submenu when the pointer leaves it.
|
|
58
|
-
*/
|
|
59
|
-
submenuDelay?: number
|
|
60
|
-
/**
|
|
61
|
-
* Content of the `.menu-item` trigger that opens the submenu.
|
|
62
|
-
*/
|
|
63
|
-
trigger: ReactNode
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
export const MenuSubmenu = forwardRef<HTMLDivElement, MenuSubmenuProps>(
|
|
67
|
-
(
|
|
68
|
-
{
|
|
69
|
-
children,
|
|
70
|
-
activation = 'both',
|
|
71
|
-
className,
|
|
72
|
-
disabled,
|
|
73
|
-
offset: offsetProp = [-4, 0],
|
|
74
|
-
placement,
|
|
75
|
-
stacked,
|
|
76
|
-
submenuDelay = 100,
|
|
77
|
-
trigger,
|
|
78
|
-
...rest
|
|
79
|
-
},
|
|
80
|
-
ref
|
|
81
|
-
) => {
|
|
82
|
-
const id = useId()
|
|
83
|
-
const triggerId = `${id}-trigger`
|
|
84
|
-
const menuId = `${id}-menu`
|
|
85
|
-
const [visible, setVisible] = useState(false)
|
|
86
|
-
// Portaling is only safe once mounted on the client: during SSR (and the initial client
|
|
87
|
-
// hydration pass, which must match the server-rendered markup) the panel renders inline next
|
|
88
|
-
// to its trigger, then moves to `document.body` on the next render once this flips to true.
|
|
89
|
-
const [mounted, setMounted] = useState(false)
|
|
90
|
-
const closeTimeoutRef = useRef<number | undefined>(undefined)
|
|
91
|
-
const focusFirstRafRef = useRef<number | undefined>(undefined)
|
|
92
|
-
const triggerRef = useRef<HTMLButtonElement | null>(null)
|
|
93
|
-
const overlayRef = useRef<HTMLElement | null>(null)
|
|
94
|
-
const parentGroup = useContext(SubmenuGroupContext)
|
|
95
|
-
const ownGroup = useSubmenuGroupProvider()
|
|
96
|
-
const { registerOverlay, visible: parentMenuVisible } = useContext(MenuContext)
|
|
97
|
-
const { direction } = useLocale()
|
|
98
|
-
const isRtl = direction === 'rtl'
|
|
99
|
-
const effectivePlacement = placement ?? (isRtl ? 'left-start' : 'right-start')
|
|
100
|
-
|
|
101
|
-
const { overlayProps, placement: resolvedPlacement } = useOverlayPosition({
|
|
102
|
-
targetRef: triggerRef,
|
|
103
|
-
overlayRef,
|
|
104
|
-
// Viewport-relative (matching the portal below): the trigger lives inside the parent
|
|
105
|
-
// menu's own floated panel, and `useOverlayPosition` measures against the overlay's real
|
|
106
|
-
// containing block — since the panel portals straight to `document.body`, that resolves
|
|
107
|
-
// the same way a `fixed`-strategy engine would.
|
|
108
|
-
placement: toAriaPlacement(effectivePlacement),
|
|
109
|
-
offset: offsetProp[1],
|
|
110
|
-
crossOffset: offsetProp[0],
|
|
111
|
-
containerPadding: 8,
|
|
112
|
-
isOpen: visible,
|
|
113
|
-
// See `useOverlayPlacement`'s comment for why this needs to be explicit `null`, not left
|
|
114
|
-
// unset — matches the same fix already applied to `Autocomplete`/`Combobox`/`Menu`/`Popover`.
|
|
115
|
-
onClose: null
|
|
116
|
-
})
|
|
117
|
-
|
|
118
|
-
const { menuStyle, placementAttr } = resolveMenuOverlayPositioning(
|
|
119
|
-
overlayProps.style,
|
|
120
|
-
effectivePlacement,
|
|
121
|
-
resolvedPlacement
|
|
122
|
-
)
|
|
123
|
-
|
|
124
|
-
const clearCloseTimeout = useCallback(() => {
|
|
125
|
-
if (closeTimeoutRef.current !== undefined) {
|
|
126
|
-
window.clearTimeout(closeTimeoutRef.current)
|
|
127
|
-
closeTimeoutRef.current = undefined
|
|
128
|
-
}
|
|
129
|
-
}, [])
|
|
130
|
-
|
|
131
|
-
const cancelFocusFirstRaf = useCallback(() => {
|
|
132
|
-
if (focusFirstRafRef.current !== undefined) {
|
|
133
|
-
cancelAnimationFrame(focusFirstRafRef.current)
|
|
134
|
-
focusFirstRafRef.current = undefined
|
|
135
|
-
}
|
|
136
|
-
}, [])
|
|
137
|
-
|
|
138
|
-
const close = useCallback(() => {
|
|
139
|
-
clearCloseTimeout()
|
|
140
|
-
cancelFocusFirstRaf()
|
|
141
|
-
setVisible(false)
|
|
142
|
-
}, [clearCloseTimeout, cancelFocusFirstRaf])
|
|
143
|
-
|
|
144
|
-
const open = () => {
|
|
145
|
-
if (disabled || visible) return
|
|
146
|
-
clearCloseTimeout()
|
|
147
|
-
parentGroup?.notifyOpen(id)
|
|
148
|
-
setVisible(true)
|
|
149
|
-
}
|
|
150
|
-
|
|
151
|
-
const scheduleClose = () => {
|
|
152
|
-
clearCloseTimeout()
|
|
153
|
-
closeTimeoutRef.current = window.setTimeout(close, submenuDelay)
|
|
154
|
-
}
|
|
155
|
-
|
|
156
|
-
useEffect(() => parentGroup?.register(id, close), [parentGroup, id, close])
|
|
157
|
-
useEffect(() => clearCloseTimeout, [clearCloseTimeout])
|
|
158
|
-
useEffect(() => cancelFocusFirstRaf, [cancelFocusFirstRaf])
|
|
159
|
-
useEffect(() => setMounted(true), [])
|
|
160
|
-
|
|
161
|
-
// The submenu's own open state is local and doesn't otherwise hear about its ancestor
|
|
162
|
-
// `Menu` closing (via Escape, outside click, etc.) — without this it's left open and
|
|
163
|
-
// fully visible (it's portaled to `document.body`, so nothing hides it for free) even
|
|
164
|
-
// after the menu it belongs to has disappeared.
|
|
165
|
-
useEffect(() => {
|
|
166
|
-
if (!parentMenuVisible) close()
|
|
167
|
-
}, [parentMenuVisible, close])
|
|
168
|
-
|
|
169
|
-
const supportsHover =
|
|
170
|
-
typeof window !== 'undefined' &&
|
|
171
|
-
!!window.matchMedia &&
|
|
172
|
-
window.matchMedia('(hover: hover)').matches
|
|
173
|
-
const hoverEnabled = supportsHover && (activation === 'hover' || activation === 'both')
|
|
174
|
-
const clickEnabled = activation === 'click' || activation === 'both'
|
|
175
|
-
|
|
176
|
-
const openAndFocusFirst = () => {
|
|
177
|
-
open()
|
|
178
|
-
cancelFocusFirstRaf()
|
|
179
|
-
focusFirstRafRef.current = requestAnimationFrame(() => {
|
|
180
|
-
focusFirstRafRef.current = undefined
|
|
181
|
-
focusMenuItem(getMenuItems(overlayRef.current), 'first')
|
|
182
|
-
})
|
|
183
|
-
}
|
|
184
|
-
|
|
185
|
-
const closeAndRefocusTrigger = () => {
|
|
186
|
-
close()
|
|
187
|
-
triggerRef.current?.focus()
|
|
188
|
-
}
|
|
189
|
-
|
|
190
|
-
const handleTriggerClick = (event: React.MouseEvent<HTMLButtonElement>) => {
|
|
191
|
-
if (!clickEnabled || disabled) return
|
|
192
|
-
event.preventDefault()
|
|
193
|
-
event.stopPropagation()
|
|
194
|
-
visible ? close() : openAndFocusFirst()
|
|
195
|
-
}
|
|
196
|
-
|
|
197
|
-
// A submenu cascades toward the reading direction, so the arrow key that opens it (and the
|
|
198
|
-
// one its own item list closes on, below) mirror too: ArrowRight/ArrowLeft under LTR,
|
|
199
|
-
// ArrowLeft/ArrowRight under RTL.
|
|
200
|
-
const openKey = isRtl ? 'ArrowLeft' : 'ArrowRight'
|
|
201
|
-
|
|
202
|
-
const handleTriggerKeyDown = (event: React.KeyboardEvent<HTMLButtonElement>) => {
|
|
203
|
-
if (disabled) return
|
|
204
|
-
if (event.key === 'Enter' || event.key === ' ' || event.key === openKey) {
|
|
205
|
-
event.preventDefault()
|
|
206
|
-
event.stopPropagation()
|
|
207
|
-
openAndFocusFirst()
|
|
208
|
-
}
|
|
209
|
-
}
|
|
210
|
-
|
|
211
|
-
const actionsValue = { close: closeAndRefocusTrigger }
|
|
212
|
-
|
|
213
|
-
return (
|
|
214
|
-
<div className={classNames('submenu', { show: visible }, className)} {...rest} ref={ref}>
|
|
215
|
-
<button
|
|
216
|
-
type="button"
|
|
217
|
-
id={triggerId}
|
|
218
|
-
role="menuitem"
|
|
219
|
-
className="menu-item"
|
|
220
|
-
aria-expanded={visible}
|
|
221
|
-
aria-haspopup="true"
|
|
222
|
-
aria-controls={visible ? menuId : undefined}
|
|
223
|
-
disabled={disabled}
|
|
224
|
-
onClick={handleTriggerClick}
|
|
225
|
-
onKeyDown={handleTriggerKeyDown}
|
|
226
|
-
onMouseEnter={hoverEnabled ? open : undefined}
|
|
227
|
-
onMouseLeave={hoverEnabled ? scheduleClose : undefined}
|
|
228
|
-
ref={(node) => {
|
|
229
|
-
triggerRef.current = node
|
|
230
|
-
}}
|
|
231
|
-
>
|
|
232
|
-
{trigger}
|
|
233
|
-
</button>
|
|
234
|
-
{(() => {
|
|
235
|
-
const panel = (
|
|
236
|
-
<div
|
|
237
|
-
role="menu"
|
|
238
|
-
id={menuId}
|
|
239
|
-
aria-labelledby={triggerId}
|
|
240
|
-
className={classNames('menu', { show: visible, 'submenu-stacked': stacked })}
|
|
241
|
-
style={menuStyle}
|
|
242
|
-
data-cx-placement={placementAttr}
|
|
243
|
-
aria-hidden={!visible}
|
|
244
|
-
onKeyDown={(event) =>
|
|
245
|
-
handleMenuKeyDown(event, {
|
|
246
|
-
onEscape: closeAndRefocusTrigger,
|
|
247
|
-
...(isRtl
|
|
248
|
-
? { onArrowRight: closeAndRefocusTrigger }
|
|
249
|
-
: { onArrowLeft: closeAndRefocusTrigger })
|
|
250
|
-
})
|
|
251
|
-
}
|
|
252
|
-
onMouseEnter={hoverEnabled ? clearCloseTimeout : undefined}
|
|
253
|
-
onMouseLeave={hoverEnabled ? scheduleClose : undefined}
|
|
254
|
-
// Registers this panel with the ancestor `Menu` (see `MenuContext.registerOverlay`)
|
|
255
|
-
// so its own click-dismiss logic recognizes clicks here as "inside" the menu — the
|
|
256
|
-
// panel portals straight to `document.body` when not `stacked`, so plain DOM
|
|
257
|
-
// containment against the top-level menu's own element wouldn't otherwise see it.
|
|
258
|
-
ref={(node) => {
|
|
259
|
-
overlayRef.current = node
|
|
260
|
-
registerOverlay(menuId, node)
|
|
261
|
-
}}
|
|
262
|
-
>
|
|
263
|
-
<SubmenuActionsContext.Provider value={actionsValue}>
|
|
264
|
-
<SubmenuGroupContext.Provider value={ownGroup}>
|
|
265
|
-
{children}
|
|
266
|
-
</SubmenuGroupContext.Provider>
|
|
267
|
-
</SubmenuActionsContext.Provider>
|
|
268
|
-
</div>
|
|
269
|
-
)
|
|
270
|
-
|
|
271
|
-
// `stacked`'s sm-breakpoint CSS (`.menu:has(.submenu-stacked.show) ...`) needs the
|
|
272
|
-
// panel to be a real DOM descendant of `.menu`/`.submenu` to match — portaling would
|
|
273
|
-
// break that ancestor relationship, so it renders inline instead. Trade-off: above the
|
|
274
|
-
// `sm` breakpoint a `stacked` submenu no longer escapes ancestor overflow/stacking-
|
|
275
|
-
// context clipping the way a portaled one does; accepted since `stacked` targets mobile
|
|
276
|
-
// nav/drawer usage, not floating dropdowns.
|
|
277
|
-
return mounted && !stacked ? createPortal(panel, document.body) : panel
|
|
278
|
-
})()}
|
|
279
|
-
</div>
|
|
280
|
-
)
|
|
281
|
-
}
|
|
282
|
-
)
|
|
283
|
-
|
|
284
|
-
MenuSubmenu.displayName = 'MenuSubmenu'
|