@chassis-ui/react 0.2.0 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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.js +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.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.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 +2 -1
- 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-CZsWCnQb.js +2 -0
- package/dist/chunks/Link-CZsWCnQb.js.map +1 -0
- package/dist/chunks/{Link-B0Y1xgYi.d.ts → Link-nrd0JWlO.d.ts} +7 -5
- 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-CJ-498B7.d.ts +7 -0
- package/dist/chunks/breakpoints-o_2Ev7ir.js +2 -1
- package/dist/chunks/breakpoints-o_2Ev7ir.js.map +1 -0
- package/dist/chunks/button-group-BGppPrIv.js +2 -0
- package/dist/chunks/button-group-BGppPrIv.js.map +1 -0
- package/dist/chunks/{card-DfF2K_5p.js → card-YXn3bj_d.js} +2 -1
- package/dist/chunks/card-YXn3bj_d.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-ChACalAw.js +2 -0
- package/dist/chunks/checkbox-ChACalAw.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-BTvpgaRv.js → flex-CmlJbKVj.js} +2 -1
- package/dist/chunks/flex-CmlJbKVj.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-DK_vxz-4.js +2 -0
- package/dist/chunks/grid-DK_vxz-4.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-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-B2K-O9kl.d.ts +59 -0
- 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-DB_ToPdz.d.ts → index-BNf0jIIL.d.ts} +12 -1
- package/dist/chunks/index-BO9jLOIb.d.ts +2 -1
- package/dist/chunks/index-BTTeKpiE.d.ts +2 -1
- 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-Bi8FFadV.d.ts +2 -1
- package/dist/chunks/index-Bkj17NEQ.d.ts +2 -1
- package/dist/chunks/{index-BKMW0rkw.d.ts → index-Bm2NpgND.d.ts} +4 -2
- package/dist/chunks/{index-XjLvaH4G.d.ts → index-BnR7wjax.d.ts} +6 -5
- 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-CCXJXToc.d.ts +2 -1
- package/dist/chunks/{index-COsYSDrz.d.ts → index-CFnQubsV.d.ts} +17 -3
- package/dist/chunks/{index-DPV62IdF.d.ts → index-CJXKl97l.d.ts} +11 -9
- package/dist/chunks/index-CJzKu7QI.d.ts +2 -1
- package/dist/chunks/{index-ClT3E_hv.d.ts → index-CKx1KHED.d.ts} +4 -3
- package/dist/chunks/index-COsIPd8L.d.ts +2 -1
- package/dist/chunks/index-CRfm7W6C.d.ts +2 -1
- package/dist/chunks/{index-dh3TKanY.d.ts → index-CTpwB1yR.d.ts} +3 -2
- package/dist/chunks/index-CVUMS0x7.d.ts +2 -1
- package/dist/chunks/{index-BlgkO3dn.d.ts → index-CYgBmZ8w.d.ts} +24 -33
- 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-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-CsMIgBsd.d.ts +2 -1
- package/dist/chunks/index-D9PZHY_I.d.ts +2 -1
- 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-DJfga0Ce.d.ts +57 -0
- package/dist/chunks/{index-BTDgfLxK.d.ts → index-DJr_ZK4b.d.ts} +21 -5
- package/dist/chunks/index-DMbdEm__.d.ts +119 -0
- package/dist/chunks/{index-DJJocp_q.d.ts → index-DXjbI7Yv.d.ts} +3 -2
- package/dist/chunks/index-DaHQdNul.d.ts +182 -0
- package/dist/chunks/index-Dcc_W6Kv.d.ts +2 -1
- package/dist/chunks/{index-nklPDKlC.d.ts → index-DceCODH9.d.ts} +3 -2
- package/dist/chunks/index-Ddd7iWfm.d.ts +32 -0
- package/dist/chunks/index-Dfg4Ftb8.d.ts +2 -1
- package/dist/chunks/index-Dfy1YW5j.d.ts +2 -1
- package/dist/chunks/index-DgHvXzVh.d.ts +208 -0
- package/dist/chunks/index-Dh5CaHTP.d.ts +2 -1
- package/dist/chunks/{index-8PhBSbNQ.d.ts → index-DjXRq-n3.d.ts} +15 -10
- package/dist/chunks/{index-JllMXhVx.d.ts → index-DjrEvKd-.d.ts} +21 -4
- package/dist/chunks/index-DtbUXxjz.d.ts +2 -1
- package/dist/chunks/index-Du9fBqkT.d.ts +56 -0
- package/dist/chunks/index-FKh7iFQE.d.ts +95 -0
- package/dist/chunks/index-HrKN6s8z.d.ts +2 -1
- package/dist/chunks/{index-DR8sYtvd.d.ts → index-I-H3VJ-L.d.ts} +20 -87
- package/dist/chunks/{index-DEb9zXlC.d.ts → index-RHJhkSY-.d.ts} +79 -16
- package/dist/chunks/{index-Ctuk1xBU.d.ts → index-e7SJkI_m.d.ts} +9 -6
- package/dist/chunks/index-g74gO0pc.d.ts +36 -0
- package/dist/chunks/{index-DKma0jQw.d.ts → index-qMq_-GY2.d.ts} +3 -2
- package/dist/chunks/index-t_x6jj7l.d.ts +2 -1
- 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-Ds24wnPq.js +2 -0
- package/dist/chunks/notification-Ds24wnPq.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-DOFYCfJi.js +2 -0
- package/dist/chunks/radio-DOFYCfJi.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-DZh_5Df8.d.ts} +3 -2
- 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-BrD2JwNx.js +2 -0
- package/dist/chunks/skeleton-BrD2JwNx.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-D3retZ-W.js → stack-CsMiQbpq.js} +2 -1
- package/dist/chunks/stack-CsMiQbpq.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 +2 -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.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.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 +50 -38
- 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.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.js +1 -1
- package/dist/stack.js +1 -1
- package/dist/stepper.d.ts +1 -1
- package/dist/stepper.js +1 -1
- package/dist/style.css +1 -1
- package/dist/switch.js +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/button-group-CPZYA6aZ.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/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-D949AidR.d.ts +0 -40
- 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/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,193 +0,0 @@
|
|
|
1
|
-
import React, {
|
|
2
|
-
Children,
|
|
3
|
-
ElementType,
|
|
4
|
-
ForwardRefRenderFunction,
|
|
5
|
-
isValidElement,
|
|
6
|
-
ReactElement
|
|
7
|
-
} from 'react'
|
|
8
|
-
import classNames from 'classnames'
|
|
9
|
-
|
|
10
|
-
import { ContextColor, ContextStyle } from '../../types'
|
|
11
|
-
import {
|
|
12
|
-
createPolymorphicComponent,
|
|
13
|
-
PolymorphicComponentProps,
|
|
14
|
-
PolymorphicRef
|
|
15
|
-
} from '../../utils/polymorphic'
|
|
16
|
-
import { ListItem } from './ListItem'
|
|
17
|
-
|
|
18
|
-
export interface ListItemDef {
|
|
19
|
-
/**
|
|
20
|
-
* Stable key for the rendered item. Falls back to the item's index in `items`.
|
|
21
|
-
*/
|
|
22
|
-
id?: number | string
|
|
23
|
-
/**
|
|
24
|
-
* Item label content.
|
|
25
|
-
*/
|
|
26
|
-
label: React.ReactNode
|
|
27
|
-
/**
|
|
28
|
-
* Makes the item a link.
|
|
29
|
-
*/
|
|
30
|
-
href?: string
|
|
31
|
-
/**
|
|
32
|
-
* Sets the color of the item.
|
|
33
|
-
*/
|
|
34
|
-
color?: ContextColor
|
|
35
|
-
/**
|
|
36
|
-
* Marks the item as active.
|
|
37
|
-
*/
|
|
38
|
-
active?: boolean
|
|
39
|
-
/**
|
|
40
|
-
* Marks the item as disabled.
|
|
41
|
-
*/
|
|
42
|
-
disabled?: boolean
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
type ListOwnProps<C extends ElementType> = {
|
|
46
|
-
/**
|
|
47
|
-
* A string of all className you want applied to the component.
|
|
48
|
-
*/
|
|
49
|
-
className?: string
|
|
50
|
-
/**
|
|
51
|
-
* Component used for the root node. Either a string to use a HTML element or a component.
|
|
52
|
-
* Defaults to `'ul'`, unless an item (a data-driven item with `href`, or a `<ListItem
|
|
53
|
-
* component="a">`/`<ListItem component="button">` child) is interactive — a bare `<a>`/
|
|
54
|
-
* `<button>` isn't a valid direct child of `<ul>`/`<ol>`, so the default switches to `'div'`
|
|
55
|
-
* instead. Pass `component` explicitly to opt out of this.
|
|
56
|
-
*/
|
|
57
|
-
component?: C
|
|
58
|
-
/**
|
|
59
|
-
* Sets the color of the component to one of Chassis context colors.
|
|
60
|
-
*/
|
|
61
|
-
color?: ContextColor
|
|
62
|
-
/**
|
|
63
|
-
* Remove outer borders and rounded corners to render list items edge-to-edge in a parent component (e.g., `<Card>`).
|
|
64
|
-
*/
|
|
65
|
-
flush?: boolean
|
|
66
|
-
/**
|
|
67
|
-
* Array of item definitions for data-driven rendering. When provided, children are ignored.
|
|
68
|
-
*/
|
|
69
|
-
items?: ListItemDef[]
|
|
70
|
-
/**
|
|
71
|
-
* Specify a layout type.
|
|
72
|
-
*/
|
|
73
|
-
layout?:
|
|
74
|
-
| 'horizontal'
|
|
75
|
-
| 'sm:horizontal'
|
|
76
|
-
| 'md:horizontal'
|
|
77
|
-
| 'lg:horizontal'
|
|
78
|
-
| 'xl:horizontal'
|
|
79
|
-
| '2xl:horizontal'
|
|
80
|
-
/**
|
|
81
|
-
* Number list items sequentially using CSS counters. Pair with `component="ol"` for semantic correctness.
|
|
82
|
-
*/
|
|
83
|
-
numbered?: boolean
|
|
84
|
-
/**
|
|
85
|
-
* Remove outer borders, rounded corners, and horizontal padding for a minimal, edge-to-edge appearance.
|
|
86
|
-
*/
|
|
87
|
-
plain?: boolean
|
|
88
|
-
/**
|
|
89
|
-
* Applies a `.solid`, `.outline`, or `.smooth` context style. Only meaningful together with `color`.
|
|
90
|
-
*/
|
|
91
|
-
variant?: ContextStyle
|
|
92
|
-
}
|
|
93
|
-
|
|
94
|
-
export type ListProps<C extends ElementType = 'ul'> = PolymorphicComponentProps<C, ListOwnProps<C>>
|
|
95
|
-
|
|
96
|
-
type ListComponent = (<C extends ElementType = 'ul'>(
|
|
97
|
-
props: ListProps<C> & { ref?: PolymorphicRef<C> }
|
|
98
|
-
) => ReactElement | null) & { displayName?: string }
|
|
99
|
-
|
|
100
|
-
function ListRender<C extends ElementType = 'ul'>(
|
|
101
|
-
{
|
|
102
|
-
children,
|
|
103
|
-
className,
|
|
104
|
-
component,
|
|
105
|
-
color,
|
|
106
|
-
variant,
|
|
107
|
-
flush,
|
|
108
|
-
items,
|
|
109
|
-
layout,
|
|
110
|
-
numbered,
|
|
111
|
-
plain,
|
|
112
|
-
...rest
|
|
113
|
-
}: ListProps<C>,
|
|
114
|
-
ref: PolymorphicRef<C>
|
|
115
|
-
) {
|
|
116
|
-
// A linked item (data-driven `href`, or a `<ListItem component="a"|"button">` child) can't
|
|
117
|
-
// render as a bare `<a>`/`<button>` inside the default `<ul>`/`<ol>` root — only `<li>`/
|
|
118
|
-
// `script`/`template` are valid children there. Default to `<div>` instead when that's the
|
|
119
|
-
// case (unless the caller already chose their own `component`), matching the same
|
|
120
|
-
// `component="div"` pattern already documented for `Stepper`'s composed interactive usage.
|
|
121
|
-
const hasInteractiveItem = items
|
|
122
|
-
? items.some((item) => !!item.href)
|
|
123
|
-
: Children.toArray(children).some(
|
|
124
|
-
(child) =>
|
|
125
|
-
isValidElement<{ component?: string | ElementType }>(child) &&
|
|
126
|
-
child.type === ListItem &&
|
|
127
|
-
(child.props.component === 'a' || child.props.component === 'button')
|
|
128
|
-
)
|
|
129
|
-
const Component = (component ?? (hasInteractiveItem ? 'div' : 'ul')) as ElementType
|
|
130
|
-
const isListSemantic = Component === 'ul' || Component === 'ol'
|
|
131
|
-
|
|
132
|
-
const _className = classNames(
|
|
133
|
-
'list',
|
|
134
|
-
color && 'context',
|
|
135
|
-
color,
|
|
136
|
-
variant,
|
|
137
|
-
layout,
|
|
138
|
-
{
|
|
139
|
-
flush,
|
|
140
|
-
plain,
|
|
141
|
-
numbered
|
|
142
|
-
},
|
|
143
|
-
className
|
|
144
|
-
)
|
|
145
|
-
|
|
146
|
-
const autoContent = items
|
|
147
|
-
? items.map((item, idx) => {
|
|
148
|
-
const itemClass = classNames('list-item', item.color && 'context', item.color, {
|
|
149
|
-
'list-action': !!item.href,
|
|
150
|
-
active: item.active,
|
|
151
|
-
disabled: item.disabled
|
|
152
|
-
})
|
|
153
|
-
const Tag = item.href ? 'a' : isListSemantic ? 'li' : 'div'
|
|
154
|
-
return (
|
|
155
|
-
<Tag
|
|
156
|
-
key={item.id ?? idx}
|
|
157
|
-
className={itemClass}
|
|
158
|
-
{...(item.href ? { href: item.href } : {})}
|
|
159
|
-
{...(item.active ? { 'aria-current': 'page' } : {})}
|
|
160
|
-
{...(item.disabled ? { 'aria-disabled': true } : {})}
|
|
161
|
-
>
|
|
162
|
-
{item.label}
|
|
163
|
-
</Tag>
|
|
164
|
-
)
|
|
165
|
-
})
|
|
166
|
-
: null
|
|
167
|
-
|
|
168
|
-
// When the root switched to `div` because of an interactive child, every plain `<ListItem>`
|
|
169
|
-
// sibling defaulting to `<li>` would be just as invalid (only valid inside `<ul>`/`<ol>`/
|
|
170
|
-
// `<menu>`) — so give each `ListItem` child the same `div` treatment the auto-generated items
|
|
171
|
-
// above already get, unless it set its own `component`. Other child types are left untouched
|
|
172
|
-
// — this is only meaningful for `List`'s own list items.
|
|
173
|
-
const renderedChildren =
|
|
174
|
-
autoContent ??
|
|
175
|
-
(isListSemantic
|
|
176
|
-
? children
|
|
177
|
-
: Children.map(children, (child) =>
|
|
178
|
-
isValidElement<{ component?: string | ElementType }>(child) && child.type === ListItem
|
|
179
|
-
? React.cloneElement(child, { component: child.props.component ?? 'div' })
|
|
180
|
-
: child
|
|
181
|
-
))
|
|
182
|
-
|
|
183
|
-
return (
|
|
184
|
-
<Component className={_className} {...rest} ref={ref}>
|
|
185
|
-
{renderedChildren}
|
|
186
|
-
</Component>
|
|
187
|
-
)
|
|
188
|
-
}
|
|
189
|
-
|
|
190
|
-
export const List = createPolymorphicComponent<ListComponent>(
|
|
191
|
-
ListRender as ForwardRefRenderFunction<Element, ListProps<ElementType>>,
|
|
192
|
-
'List'
|
|
193
|
-
)
|
|
@@ -1,91 +0,0 @@
|
|
|
1
|
-
import React, { ElementType, ForwardRefRenderFunction, ReactElement } from 'react'
|
|
2
|
-
import classNames from 'classnames'
|
|
3
|
-
|
|
4
|
-
import { ContextColor } from '../../types'
|
|
5
|
-
import {
|
|
6
|
-
createPolymorphicComponent,
|
|
7
|
-
PolymorphicComponentProps,
|
|
8
|
-
PolymorphicRef
|
|
9
|
-
} from '../../utils/polymorphic'
|
|
10
|
-
import { Link } from '../link/Link'
|
|
11
|
-
|
|
12
|
-
type ListItemOwnProps<C extends ElementType> = {
|
|
13
|
-
/**
|
|
14
|
-
* Toggle the active state for the component.
|
|
15
|
-
*/
|
|
16
|
-
active?: boolean
|
|
17
|
-
/**
|
|
18
|
-
* A string of all className you want applied to the component.
|
|
19
|
-
*/
|
|
20
|
-
className?: string
|
|
21
|
-
/**
|
|
22
|
-
* Sets the color of the component to one of Chassis context colors.
|
|
23
|
-
*/
|
|
24
|
-
color?: ContextColor
|
|
25
|
-
/**
|
|
26
|
-
* Toggle the disabled state for the component.
|
|
27
|
-
*/
|
|
28
|
-
disabled?: boolean
|
|
29
|
-
/**
|
|
30
|
-
* Component used for the root node. Either a string to use a HTML element or a component.
|
|
31
|
-
*/
|
|
32
|
-
component?: C
|
|
33
|
-
/**
|
|
34
|
-
* The href attribute specifies the URL of the page the link goes to. Only applicable when
|
|
35
|
-
* `component` is `"a"`.
|
|
36
|
-
*/
|
|
37
|
-
href?: string
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
export type ListItemProps<C extends ElementType = 'li'> = PolymorphicComponentProps<
|
|
41
|
-
C,
|
|
42
|
-
ListItemOwnProps<C>
|
|
43
|
-
>
|
|
44
|
-
|
|
45
|
-
type ListItemComponent = (<C extends ElementType = 'li'>(
|
|
46
|
-
props: ListItemProps<C> & { ref?: PolymorphicRef<C> }
|
|
47
|
-
) => ReactElement | null) & { displayName?: string }
|
|
48
|
-
|
|
49
|
-
function ListItemRender<C extends ElementType = 'li'>(
|
|
50
|
-
{ children, active, className, disabled, color, component, ...rest }: ListItemProps<C>,
|
|
51
|
-
ref: PolymorphicRef<C>
|
|
52
|
-
) {
|
|
53
|
-
const tag = component ?? 'li'
|
|
54
|
-
const isInteractive = tag === 'a' || tag === 'button'
|
|
55
|
-
|
|
56
|
-
const _className = classNames(
|
|
57
|
-
'list-item',
|
|
58
|
-
color && 'context',
|
|
59
|
-
color,
|
|
60
|
-
{
|
|
61
|
-
'list-action': isInteractive,
|
|
62
|
-
active,
|
|
63
|
-
disabled
|
|
64
|
-
},
|
|
65
|
-
className
|
|
66
|
-
)
|
|
67
|
-
|
|
68
|
-
const Component = (isInteractive ? Link : tag) as ElementType
|
|
69
|
-
|
|
70
|
-
const finalRest = {
|
|
71
|
-
...(isInteractive && {
|
|
72
|
-
active,
|
|
73
|
-
disabled,
|
|
74
|
-
component: tag
|
|
75
|
-
}),
|
|
76
|
-
...(active && { 'aria-current': 'page' }),
|
|
77
|
-
...(disabled && { 'aria-disabled': true }),
|
|
78
|
-
...rest
|
|
79
|
-
}
|
|
80
|
-
|
|
81
|
-
return (
|
|
82
|
-
<Component className={_className} {...finalRest} ref={ref}>
|
|
83
|
-
{children}
|
|
84
|
-
</Component>
|
|
85
|
-
)
|
|
86
|
-
}
|
|
87
|
-
|
|
88
|
-
export const ListItem = createPolymorphicComponent<ListItemComponent>(
|
|
89
|
-
ListItemRender as ForwardRefRenderFunction<Element, ListItemProps<ElementType>>,
|
|
90
|
-
'ListItem'
|
|
91
|
-
)
|
|
@@ -1,408 +0,0 @@
|
|
|
1
|
-
import React, {
|
|
2
|
-
createContext,
|
|
3
|
-
ElementType,
|
|
4
|
-
ForwardRefRenderFunction,
|
|
5
|
-
Fragment,
|
|
6
|
-
ReactElement,
|
|
7
|
-
useEffect,
|
|
8
|
-
useMemo,
|
|
9
|
-
useRef
|
|
10
|
-
} from 'react'
|
|
11
|
-
import classNames from 'classnames'
|
|
12
|
-
import { AriaButtonProps, useMenuTrigger, useOverlayPosition } from 'react-aria'
|
|
13
|
-
import { useMenuTriggerState } from 'react-stately'
|
|
14
|
-
|
|
15
|
-
import { useForkedRef, useIsomorphicLayoutEffect } from '../../hooks'
|
|
16
|
-
import { executeAfterTransition } from '../../utils/dialogTransition'
|
|
17
|
-
import {
|
|
18
|
-
Placement,
|
|
19
|
-
resolveMenuOverlayPositioning,
|
|
20
|
-
toAriaPlacement
|
|
21
|
-
} from '../../utils/overlayPlacement'
|
|
22
|
-
import {
|
|
23
|
-
createPolymorphicComponent,
|
|
24
|
-
PolymorphicComponentProps,
|
|
25
|
-
PolymorphicRef
|
|
26
|
-
} from '../../utils/polymorphic'
|
|
27
|
-
|
|
28
|
-
export type { Placement }
|
|
29
|
-
export type MenuFocusStrategy = 'first' | 'last'
|
|
30
|
-
|
|
31
|
-
export type MenuAutoClose = boolean | 'inside' | 'outside'
|
|
32
|
-
|
|
33
|
-
type MenuOwnProps<C extends ElementType> = {
|
|
34
|
-
/**
|
|
35
|
-
* Controls which clicks close the menu. `true` closes on any click inside or outside.
|
|
36
|
-
* `false` requires a programmatic `visible` change. `'inside'` closes only on click inside
|
|
37
|
-
* the menu. `'outside'` closes only on click outside the menu.
|
|
38
|
-
*/
|
|
39
|
-
autoClose?: MenuAutoClose
|
|
40
|
-
/**
|
|
41
|
-
* A string of all className you want applied to the base component.
|
|
42
|
-
*/
|
|
43
|
-
className?: string
|
|
44
|
-
/**
|
|
45
|
-
* Component used for the root node. Either a string to use a HTML element or a component.
|
|
46
|
-
* Defaults to `Fragment` — `MenuToggle`/`MenuList` render with no wrapping element, so
|
|
47
|
-
* they land as direct children of whatever contains the `Menu`. This matters inside
|
|
48
|
-
* `ButtonGroup`/`InputGroup`, whose CSS expects the toggle button and menu panel as direct
|
|
49
|
-
* children rather than nested inside an intermediate node.
|
|
50
|
-
*
|
|
51
|
-
* Pass an actual element (e.g. `"div"`, or `"li"` for a navbar item) to opt back into a
|
|
52
|
-
* wrapper — needed if you want to apply `className`/`style`/other rest props to a container
|
|
53
|
-
* around the whole menu, for semantic wrapping like a nav `<li>`, or for `reference="parent"`,
|
|
54
|
-
* which positions off this wrapper and has nothing to measure against without one.
|
|
55
|
-
*/
|
|
56
|
-
component?: C
|
|
57
|
-
/**
|
|
58
|
-
* Teleports the menu panel to a container element on open. Accepts an element reference, or
|
|
59
|
-
* `true` to append to `document.body`.
|
|
60
|
-
*/
|
|
61
|
-
container?: boolean | Element
|
|
62
|
-
/**
|
|
63
|
-
* Distance between the menu and its reference element, as `[skidding, distance]` in pixels.
|
|
64
|
-
*/
|
|
65
|
-
offset?: [number, number]
|
|
66
|
-
/**
|
|
67
|
-
* Callback fired when the menu requests to be hidden.
|
|
68
|
-
*/
|
|
69
|
-
onHide?: () => void
|
|
70
|
-
/**
|
|
71
|
-
* Callback fired after the menu finishes hiding.
|
|
72
|
-
*/
|
|
73
|
-
onHidden?: () => void
|
|
74
|
-
/**
|
|
75
|
-
* Callback fired when the menu requests to be shown.
|
|
76
|
-
*/
|
|
77
|
-
onShow?: () => void
|
|
78
|
-
/**
|
|
79
|
-
* Callback fired after the menu finishes showing.
|
|
80
|
-
*/
|
|
81
|
-
onShown?: () => void
|
|
82
|
-
/**
|
|
83
|
-
* Initial placement. Chassis will flip it to keep the menu in view.
|
|
84
|
-
*
|
|
85
|
-
* @type 'top' | 'top-start' | 'top-end' | 'bottom' | 'bottom-start' | 'bottom-end' | 'left' | 'left-start' | 'left-end' | 'right' | 'right-start' | 'right-end'
|
|
86
|
-
*/
|
|
87
|
-
placement?: Placement
|
|
88
|
-
/**
|
|
89
|
-
* Reference element used for positioning. `'toggle'` uses the trigger. `'parent'` uses this
|
|
90
|
-
* component's own rendered element, useful for split buttons and button groups.
|
|
91
|
-
*/
|
|
92
|
-
reference?: 'toggle' | 'parent'
|
|
93
|
-
/**
|
|
94
|
-
* Toggle the visibility of the menu component.
|
|
95
|
-
*/
|
|
96
|
-
visible?: boolean
|
|
97
|
-
}
|
|
98
|
-
|
|
99
|
-
export type MenuProps<C extends ElementType = typeof Fragment> = PolymorphicComponentProps<
|
|
100
|
-
C,
|
|
101
|
-
MenuOwnProps<C>
|
|
102
|
-
>
|
|
103
|
-
|
|
104
|
-
type MenuComponent = (<C extends ElementType = typeof Fragment>(
|
|
105
|
-
props: MenuProps<C> & { ref?: PolymorphicRef<C> }
|
|
106
|
-
) => ReactElement | null) & { displayName?: string }
|
|
107
|
-
|
|
108
|
-
export interface MenuContextProps {
|
|
109
|
-
autoClose: MenuAutoClose
|
|
110
|
-
close: () => void
|
|
111
|
-
container?: boolean | Element
|
|
112
|
-
focusStrategy: MenuFocusStrategy | null
|
|
113
|
-
hide: () => void
|
|
114
|
-
menuId: string
|
|
115
|
-
menuStyle: React.CSSProperties
|
|
116
|
-
menuTriggerProps: AriaButtonProps
|
|
117
|
-
overlayRef: React.MutableRefObject<HTMLElement | null>
|
|
118
|
-
placementAttr: string
|
|
119
|
-
reference: 'toggle' | 'parent'
|
|
120
|
-
/**
|
|
121
|
-
* Registers (or, passing `null`, unregisters) a nested `MenuSubmenu`'s own portaled panel
|
|
122
|
-
* element, so this `Menu`'s outside/inside click-dismiss logic recognizes clicks landing in it
|
|
123
|
-
* as "inside" the menu — see `MenuSubmenu`'s own use for why this is necessary: its panel
|
|
124
|
-
* portals straight to `document.body`, structurally detached from this menu's own DOM subtree.
|
|
125
|
-
*/
|
|
126
|
-
registerOverlay: (id: string, node: HTMLElement | null) => void
|
|
127
|
-
show: (focusStrategy?: MenuFocusStrategy | null) => void
|
|
128
|
-
targetRef: React.MutableRefObject<HTMLElement | null>
|
|
129
|
-
toggle: (focusStrategy?: MenuFocusStrategy | null) => void
|
|
130
|
-
toggleNodeRef: React.MutableRefObject<HTMLElement | null>
|
|
131
|
-
triggerId: string
|
|
132
|
-
visible: boolean
|
|
133
|
-
}
|
|
134
|
-
|
|
135
|
-
// A fully-shaped no-op default so a `MenuToggle`/`MenuList`/`MenuSubmenu` rendered without a
|
|
136
|
-
// `Menu` ancestor (or in an environment where context can't cross a component boundary, e.g.
|
|
137
|
-
// some static-site prerenderers) degrades to an inert, always-closed menu instead of throwing.
|
|
138
|
-
const noop = () => undefined
|
|
139
|
-
|
|
140
|
-
const defaultMenuContext: MenuContextProps = {
|
|
141
|
-
autoClose: true,
|
|
142
|
-
close: noop,
|
|
143
|
-
focusStrategy: null,
|
|
144
|
-
hide: noop,
|
|
145
|
-
menuId: '',
|
|
146
|
-
menuStyle: {},
|
|
147
|
-
menuTriggerProps: {},
|
|
148
|
-
overlayRef: { current: null },
|
|
149
|
-
placementAttr: 'bottom-start',
|
|
150
|
-
reference: 'toggle',
|
|
151
|
-
registerOverlay: noop,
|
|
152
|
-
show: noop,
|
|
153
|
-
targetRef: { current: null },
|
|
154
|
-
toggle: noop,
|
|
155
|
-
toggleNodeRef: { current: null },
|
|
156
|
-
triggerId: '',
|
|
157
|
-
visible: false
|
|
158
|
-
}
|
|
159
|
-
|
|
160
|
-
export const MenuContext = createContext(defaultMenuContext)
|
|
161
|
-
|
|
162
|
-
function MenuRender<C extends ElementType = typeof Fragment>(
|
|
163
|
-
{
|
|
164
|
-
children,
|
|
165
|
-
autoClose = true,
|
|
166
|
-
className,
|
|
167
|
-
component,
|
|
168
|
-
container,
|
|
169
|
-
offset: offsetProp = [0, 2],
|
|
170
|
-
onHide,
|
|
171
|
-
onHidden,
|
|
172
|
-
onShow,
|
|
173
|
-
onShown,
|
|
174
|
-
placement = 'bottom-start',
|
|
175
|
-
reference = 'toggle',
|
|
176
|
-
visible,
|
|
177
|
-
...rest
|
|
178
|
-
}: MenuProps<C>,
|
|
179
|
-
ref: PolymorphicRef<C>
|
|
180
|
-
) {
|
|
181
|
-
const Component = component ?? (Fragment as ElementType)
|
|
182
|
-
const wrapperRef = useRef<HTMLElement>(null)
|
|
183
|
-
const forkedRef = useForkedRef(ref, wrapperRef)
|
|
184
|
-
const toggleNodeRef = useRef<HTMLElement | null>(null)
|
|
185
|
-
const targetRef = useRef<HTMLElement | null>(null)
|
|
186
|
-
const overlayRef = useRef<HTMLElement | null>(null)
|
|
187
|
-
// Portaled `MenuSubmenu` panels register themselves here (see `registerOverlay` below and
|
|
188
|
-
// `MenuSubmenu`'s own ref callback) so `handleDismiss` can recognize clicks inside them as
|
|
189
|
-
// "inside" this menu despite living outside `overlayRef.current`'s own DOM subtree.
|
|
190
|
-
const submenuOverlaysRef = useRef<Map<string, HTMLElement>>(new Map())
|
|
191
|
-
const registerOverlay = (id: string, node: HTMLElement | null) => {
|
|
192
|
-
if (node) submenuOverlaysRef.current.set(id, node)
|
|
193
|
-
else submenuOverlaysRef.current.delete(id)
|
|
194
|
-
}
|
|
195
|
-
|
|
196
|
-
const state = useMenuTriggerState({ defaultOpen: !!visible })
|
|
197
|
-
const { menuTriggerProps, menuProps } = useMenuTrigger<unknown>({}, state, toggleNodeRef)
|
|
198
|
-
|
|
199
|
-
// Sync-on-change, not strictly controlled — matches `Modal`'s `visible` semantics.
|
|
200
|
-
// Internal `show`/`hide`/`toggle` calls (from `MenuToggle`, autoClose dismissal, etc.)
|
|
201
|
-
// still work freely between prop changes; `visible` only re-asserts the open state when
|
|
202
|
-
// its own value actually changes.
|
|
203
|
-
useEffect(() => {
|
|
204
|
-
if (visible === undefined) return
|
|
205
|
-
if (visible) state.open()
|
|
206
|
-
else state.close()
|
|
207
|
-
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
208
|
-
}, [visible])
|
|
209
|
-
|
|
210
|
-
useIsomorphicLayoutEffect(() => {
|
|
211
|
-
if (reference === 'parent') {
|
|
212
|
-
targetRef.current = wrapperRef.current
|
|
213
|
-
}
|
|
214
|
-
}, [reference])
|
|
215
|
-
|
|
216
|
-
// `onShown`/`onHidden` wait for chassis-css's own opacity/transform transition on `.menu`
|
|
217
|
-
// (see `_menu.scss`) to actually finish, matching `Modal`'s identically-worded "requests to
|
|
218
|
-
// be shown" vs "finishes showing" contract (`Modal.tsx`'s own `executeAfterTransition` use).
|
|
219
|
-
// `overlayRef.current` is `MenuList`'s root element — already in the DOM and already
|
|
220
|
-
// reflecting the new `.show` class by the time this effect runs, since React commits the
|
|
221
|
-
// render before passive effects execute. Falls back to firing synchronously when no
|
|
222
|
-
// `MenuList` is mounted to measure (nothing to transition, so nothing to wait for).
|
|
223
|
-
//
|
|
224
|
-
// All four report *transitions*, so none fires for the initial commit — mounting closed is not
|
|
225
|
-
// a hide. Without this guard, mounting fired `onHide` (and scheduled `onHidden`) for every menu
|
|
226
|
-
// on the page before `onShow` had ever fired once, which `Menu.spec.tsx` used to have to
|
|
227
|
-
// `mockClear()` past.
|
|
228
|
-
const mountedRef = useRef(false)
|
|
229
|
-
|
|
230
|
-
useEffect(() => {
|
|
231
|
-
const overlay = overlayRef.current
|
|
232
|
-
const isInitialCommit = !mountedRef.current
|
|
233
|
-
mountedRef.current = true
|
|
234
|
-
if (isInitialCommit) return undefined
|
|
235
|
-
|
|
236
|
-
if (state.isOpen) {
|
|
237
|
-
onShow?.()
|
|
238
|
-
if (!overlay) {
|
|
239
|
-
onShown?.()
|
|
240
|
-
return undefined
|
|
241
|
-
}
|
|
242
|
-
return executeAfterTransition(overlay, () => onShown?.(), true)
|
|
243
|
-
}
|
|
244
|
-
|
|
245
|
-
onHide?.()
|
|
246
|
-
if (!overlay) {
|
|
247
|
-
onHidden?.()
|
|
248
|
-
return undefined
|
|
249
|
-
}
|
|
250
|
-
return executeAfterTransition(overlay, () => onHidden?.(), true)
|
|
251
|
-
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
252
|
-
}, [state.isOpen])
|
|
253
|
-
|
|
254
|
-
const { overlayProps, placement: resolvedPlacement } = useOverlayPosition({
|
|
255
|
-
targetRef,
|
|
256
|
-
overlayRef,
|
|
257
|
-
placement: toAriaPlacement(placement),
|
|
258
|
-
offset: offsetProp[1],
|
|
259
|
-
crossOffset: offsetProp[0],
|
|
260
|
-
containerPadding: 8,
|
|
261
|
-
isOpen: state.isOpen,
|
|
262
|
-
// `useOverlayPosition` closes on any window scroll via a backward-compat `WeakMap` that
|
|
263
|
-
// `useMenuTrigger` populates for `targetRef.current` (see `MenuToggle`'s `setRefs`).
|
|
264
|
-
// Passing `null` opts out so the menu repositions with its trigger instead of vanishing —
|
|
265
|
-
// matching `Autocomplete`/`Combobox`, neither of which is wired into that map.
|
|
266
|
-
onClose: null
|
|
267
|
-
})
|
|
268
|
-
|
|
269
|
-
const { menuStyle, placementAttr } = resolveMenuOverlayPositioning(
|
|
270
|
-
overlayProps.style,
|
|
271
|
-
placement,
|
|
272
|
-
resolvedPlacement
|
|
273
|
-
)
|
|
274
|
-
|
|
275
|
-
const show = (focusStrategy?: MenuFocusStrategy | null) => state.open(focusStrategy)
|
|
276
|
-
const hide = () => state.close()
|
|
277
|
-
const toggleVisible = (focusStrategy?: MenuFocusStrategy | null) => state.toggle(focusStrategy)
|
|
278
|
-
const close = () => {
|
|
279
|
-
state.close()
|
|
280
|
-
toggleNodeRef.current?.focus()
|
|
281
|
-
}
|
|
282
|
-
|
|
283
|
-
// Deferred so the click that opened the menu doesn't immediately close it, and scoped
|
|
284
|
-
// to match menu.js's `clearMenus`: skip the toggle itself, honor `inside`/`outside`
|
|
285
|
-
// modes, and let Tab or clicks on form controls inside the menu pass through untouched.
|
|
286
|
-
useEffect(() => {
|
|
287
|
-
if (!state.isOpen || autoClose === false) return undefined
|
|
288
|
-
|
|
289
|
-
const handleDismiss = (event: MouseEvent | KeyboardEvent) => {
|
|
290
|
-
if (event instanceof KeyboardEvent && event.key !== 'Tab') return
|
|
291
|
-
|
|
292
|
-
const target = event.target as Node
|
|
293
|
-
const toggleNode = toggleNodeRef.current
|
|
294
|
-
const menuNode = overlayRef.current
|
|
295
|
-
|
|
296
|
-
if (toggleNode?.contains(target)) return
|
|
297
|
-
|
|
298
|
-
const isMenuTarget =
|
|
299
|
-
!!menuNode?.contains(target) ||
|
|
300
|
-
Array.from(submenuOverlaysRef.current.values()).some((node) => node.contains(target))
|
|
301
|
-
|
|
302
|
-
if (autoClose === 'inside' && !isMenuTarget) return
|
|
303
|
-
if (autoClose === 'outside' && isMenuTarget) return
|
|
304
|
-
|
|
305
|
-
if (
|
|
306
|
-
isMenuTarget &&
|
|
307
|
-
((event instanceof KeyboardEvent && event.key === 'Tab') ||
|
|
308
|
-
/input|select|option|textarea|form/i.test((target as HTMLElement).tagName ?? ''))
|
|
309
|
-
) {
|
|
310
|
-
return
|
|
311
|
-
}
|
|
312
|
-
|
|
313
|
-
hide()
|
|
314
|
-
}
|
|
315
|
-
|
|
316
|
-
const id = window.setTimeout(() => {
|
|
317
|
-
window.addEventListener('click', handleDismiss)
|
|
318
|
-
window.addEventListener('keyup', handleDismiss)
|
|
319
|
-
})
|
|
320
|
-
|
|
321
|
-
return () => {
|
|
322
|
-
window.clearTimeout(id)
|
|
323
|
-
window.removeEventListener('click', handleDismiss)
|
|
324
|
-
window.removeEventListener('keyup', handleDismiss)
|
|
325
|
-
}
|
|
326
|
-
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
327
|
-
}, [state.isOpen, autoClose])
|
|
328
|
-
|
|
329
|
-
// Escape should always close the menu, independent of `autoClose`'s inside/outside/false
|
|
330
|
-
// modes. `MenuList`'s own `onKeyDown` handling only fires when focus is already inside the
|
|
331
|
-
// panel (e.g. opened via ArrowDown) — a mouse-press open via `useMenuTrigger` leaves focus on
|
|
332
|
-
// the trigger button, where that handler is unreachable. Listening on `window` catches Escape
|
|
333
|
-
// regardless of where focus currently is.
|
|
334
|
-
useEffect(() => {
|
|
335
|
-
if (!state.isOpen) return undefined
|
|
336
|
-
|
|
337
|
-
const handleEscape = (event: KeyboardEvent) => {
|
|
338
|
-
if (event.key !== 'Escape') return
|
|
339
|
-
close()
|
|
340
|
-
}
|
|
341
|
-
|
|
342
|
-
window.addEventListener('keydown', handleEscape)
|
|
343
|
-
|
|
344
|
-
return () => {
|
|
345
|
-
window.removeEventListener('keydown', handleEscape)
|
|
346
|
-
}
|
|
347
|
-
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
348
|
-
}, [state.isOpen])
|
|
349
|
-
|
|
350
|
-
const contextValue: MenuContextProps = useMemo(
|
|
351
|
-
() => ({
|
|
352
|
-
autoClose,
|
|
353
|
-
close,
|
|
354
|
-
container,
|
|
355
|
-
focusStrategy: state.focusStrategy as MenuFocusStrategy | null,
|
|
356
|
-
hide,
|
|
357
|
-
menuId: menuProps.id ?? '',
|
|
358
|
-
menuStyle,
|
|
359
|
-
menuTriggerProps,
|
|
360
|
-
overlayRef,
|
|
361
|
-
placementAttr,
|
|
362
|
-
reference,
|
|
363
|
-
registerOverlay,
|
|
364
|
-
show,
|
|
365
|
-
targetRef,
|
|
366
|
-
toggle: toggleVisible,
|
|
367
|
-
toggleNodeRef,
|
|
368
|
-
triggerId: menuTriggerProps.id ?? '',
|
|
369
|
-
visible: state.isOpen
|
|
370
|
-
}),
|
|
371
|
-
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
372
|
-
[
|
|
373
|
-
autoClose,
|
|
374
|
-
container,
|
|
375
|
-
state.focusStrategy,
|
|
376
|
-
menuProps.id,
|
|
377
|
-
menuStyle,
|
|
378
|
-
menuTriggerProps,
|
|
379
|
-
placementAttr,
|
|
380
|
-
reference,
|
|
381
|
-
state.isOpen
|
|
382
|
-
]
|
|
383
|
-
)
|
|
384
|
-
|
|
385
|
-
return (
|
|
386
|
-
<MenuContext.Provider value={contextValue}>
|
|
387
|
-
{Component === Fragment ? (
|
|
388
|
-
children
|
|
389
|
-
) : (
|
|
390
|
-
// `show` mirrors vanilla menu.js's `this._parent.classList.add('show')` — needed for
|
|
391
|
-
// e.g. `.nav-item.show .nav-link` to put a `NavLink`-rooted `MenuToggle` into its
|
|
392
|
-
// pressed look while open, since a bare `.nav-link.show` has no styling of its own.
|
|
393
|
-
<Component
|
|
394
|
-
className={classNames(className, { show: state.isOpen })}
|
|
395
|
-
{...rest}
|
|
396
|
-
ref={forkedRef}
|
|
397
|
-
>
|
|
398
|
-
{children}
|
|
399
|
-
</Component>
|
|
400
|
-
)}
|
|
401
|
-
</MenuContext.Provider>
|
|
402
|
-
)
|
|
403
|
-
}
|
|
404
|
-
|
|
405
|
-
export const Menu = createPolymorphicComponent<MenuComponent>(
|
|
406
|
-
MenuRender as ForwardRefRenderFunction<Element, MenuProps<ElementType>>,
|
|
407
|
-
'Menu'
|
|
408
|
-
)
|