@chassis-ui/react 0.1.3 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +1 -1
- package/README.md +56 -23
- package/dist/accordion.d.ts +2 -0
- package/dist/accordion.js +1 -0
- package/dist/alert.d.ts +2 -0
- package/dist/alert.js +1 -0
- package/dist/autocomplete.d.ts +2 -0
- package/dist/autocomplete.js +1 -0
- package/dist/avatar.d.ts +2 -0
- package/dist/avatar.js +1 -0
- package/dist/badge.d.ts +2 -0
- package/dist/badge.js +1 -0
- package/dist/breadcrumb.d.ts +2 -0
- package/dist/breadcrumb.js +1 -0
- package/dist/button-group.d.ts +2 -0
- package/dist/button-group.js +1 -0
- package/dist/button.d.ts +3 -0
- package/dist/button.js +1 -0
- package/dist/calendar.d.ts +3 -0
- package/dist/calendar.js +1 -0
- package/dist/card.d.ts +2 -0
- package/dist/card.js +1 -0
- package/dist/carousel.d.ts +2 -0
- package/dist/carousel.js +1 -0
- package/dist/checkbox.d.ts +3 -0
- package/dist/checkbox.js +1 -0
- package/dist/chip-input.d.ts +2 -0
- package/dist/chip-input.js +1 -0
- package/dist/chip.d.ts +2 -0
- package/dist/chip.js +1 -0
- 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 +66 -0
- 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 +55 -0
- 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-AE6_iSLJ.js +2 -0
- package/dist/chunks/FormHelp-AE6_iSLJ.js.map +1 -0
- package/dist/chunks/FormLabel-CYcQiFUI.js +2 -0
- package/dist/chunks/FormLabel-CYcQiFUI.js.map +1 -0
- package/dist/chunks/Icon-CioraWLF.d.ts +37 -0
- 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-nrd0JWlO.d.ts +71 -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/{src/components/menu/MenuItemDef.ts → dist/chunks/MenuItemDef-D0VDtYIQ.d.ts} +25 -25
- 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-D2oztCvs.js +2 -0
- package/dist/chunks/badge-D2oztCvs.js.map +1 -0
- package/dist/chunks/breadcrumb-s6J9itez.js +2 -0
- 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 -0
- 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-YXn3bj_d.js +2 -0
- 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-Bwl5ef5B.js +2 -0
- 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 +42 -0
- 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 -0
- 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-CDM6qrmV.js +2 -0
- package/dist/chunks/file-input-CDM6qrmV.js.map +1 -0
- package/dist/chunks/flex-CmlJbKVj.js +2 -0
- 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 -0
- package/dist/chunks/focus-ring-SR_LwaN7.js.map +1 -0
- package/dist/chunks/focusRedirect-BrvK3U_o.js +2 -0
- package/dist/chunks/focusRedirect-BrvK3U_o.js.map +1 -0
- package/dist/chunks/form-GpdAyWWi.js +2 -0
- 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-BQsT6YtE.js +2 -0
- package/dist/chunks/icon-BQsT6YtE.js.map +1 -0
- package/dist/chunks/iconConfig-C6gbYhsD.d.ts +71 -0
- package/dist/chunks/iconSlot-BNu2MrFI.js +2 -0
- package/dist/chunks/iconSlot-BNu2MrFI.js.map +1 -0
- package/dist/chunks/index-4cKG9KWB.d.ts +85 -0
- package/dist/chunks/index-6uob77s9.d.ts +81 -0
- package/dist/chunks/index-91YA-jkp.d.ts +127 -0
- package/dist/chunks/index-9rQeMqVI.d.ts +42 -0
- package/dist/chunks/index-B0-8n-Gs.d.ts +106 -0
- package/dist/chunks/index-B2K-O9kl.d.ts +59 -0
- package/dist/chunks/index-B8uaSJA9.d.ts +96 -0
- package/dist/chunks/index-BA-raEMm.d.ts +29 -0
- package/dist/chunks/index-BAsbRx5n.d.ts +54 -0
- package/dist/chunks/index-BF3OWUVc.d.ts +66 -0
- package/dist/chunks/index-BNf0jIIL.d.ts +213 -0
- package/dist/chunks/index-BO9jLOIb.d.ts +59 -0
- package/dist/chunks/index-BTTeKpiE.d.ts +364 -0
- package/dist/chunks/index-BVGGIaPX.d.ts +111 -0
- package/dist/chunks/index-B_UzbGOa.d.ts +195 -0
- package/dist/chunks/index-Bi8FFadV.d.ts +99 -0
- package/dist/chunks/index-Bkj17NEQ.d.ts +51 -0
- package/dist/chunks/index-Bm2NpgND.d.ts +82 -0
- package/dist/chunks/index-BnR7wjax.d.ts +68 -0
- package/dist/chunks/index-BxROljJI.d.ts +18 -0
- package/dist/chunks/index-Bz8MDq0H.d.ts +85 -0
- package/dist/chunks/index-C4Dks__B.d.ts +139 -0
- package/dist/chunks/index-CCXJXToc.d.ts +53 -0
- package/dist/chunks/index-CFnQubsV.d.ts +123 -0
- package/dist/chunks/index-CJXKl97l.d.ts +120 -0
- package/dist/chunks/index-CJzKu7QI.d.ts +41 -0
- package/dist/chunks/index-CKx1KHED.d.ts +303 -0
- package/dist/chunks/index-COsIPd8L.d.ts +63 -0
- package/dist/chunks/index-CRfm7W6C.d.ts +231 -0
- package/dist/chunks/index-CTpwB1yR.d.ts +236 -0
- package/dist/chunks/index-CVUMS0x7.d.ts +74 -0
- package/dist/chunks/index-CYgBmZ8w.d.ts +271 -0
- package/dist/chunks/index-Cc4SSslb.d.ts +205 -0
- package/dist/chunks/index-CftERHnE.d.ts +25 -0
- package/dist/chunks/index-Ci7AEgEc.d.ts +47 -0
- package/dist/chunks/index-CqZ68Z8R.d.ts +415 -0
- package/dist/chunks/index-CsARGAzD.d.ts +50 -0
- package/dist/chunks/index-CsMIgBsd.d.ts +40 -0
- package/dist/chunks/index-D9PZHY_I.d.ts +136 -0
- package/dist/chunks/index-DAoPg59I.d.ts +81 -0
- package/dist/chunks/index-DHGgezXU.d.ts +59 -0
- package/dist/chunks/index-DHOG_rjE.d.ts +121 -0
- package/dist/chunks/index-DJfga0Ce.d.ts +57 -0
- package/dist/chunks/index-DJr_ZK4b.d.ts +110 -0
- package/dist/chunks/index-DMbdEm__.d.ts +119 -0
- package/dist/chunks/index-DXjbI7Yv.d.ts +133 -0
- package/dist/chunks/index-DaHQdNul.d.ts +182 -0
- package/dist/chunks/index-Dcc_W6Kv.d.ts +147 -0
- package/dist/chunks/index-DceCODH9.d.ts +138 -0
- package/dist/chunks/index-Ddd7iWfm.d.ts +32 -0
- package/dist/chunks/index-Dfg4Ftb8.d.ts +69 -0
- package/dist/chunks/index-Dfy1YW5j.d.ts +74 -0
- package/dist/chunks/index-DgHvXzVh.d.ts +208 -0
- package/dist/chunks/index-Dh5CaHTP.d.ts +45 -0
- package/dist/chunks/index-DjXRq-n3.d.ts +98 -0
- package/dist/chunks/index-DjrEvKd-.d.ts +193 -0
- package/dist/chunks/index-DtbUXxjz.d.ts +54 -0
- 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 +67 -0
- package/dist/chunks/index-I-H3VJ-L.d.ts +229 -0
- package/dist/chunks/index-RHJhkSY-.d.ts +273 -0
- package/dist/chunks/index-e7SJkI_m.d.ts +102 -0
- package/dist/chunks/index-g74gO0pc.d.ts +36 -0
- package/dist/chunks/index-qMq_-GY2.d.ts +105 -0
- package/dist/chunks/index-t_x6jj7l.d.ts +97 -0
- package/dist/chunks/input-adorn-DwdX-jxA.js +2 -0
- package/dist/chunks/input-adorn-DwdX-jxA.js.map +1 -0
- package/dist/chunks/input-group-Cuiuf4Dl.js +2 -0
- 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 -0
- package/dist/chunks/overlayPlacement-BtS90IVf.js.map +1 -0
- package/dist/chunks/overlayPlacement-CIsLpycT.d.ts +7 -0
- 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 +41 -0
- package/dist/chunks/popover-Bdg8D4sm.js +2 -0
- package/dist/chunks/popover-Bdg8D4sm.js.map +1 -0
- package/dist/chunks/progress-zWkTltor.js +2 -0
- 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-CT_8TKL7.js +2 -0
- 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-DZh_5Df8.d.ts +24 -0
- package/dist/chunks/renderFormField-Brkw1yA6.js +2 -0
- package/dist/chunks/renderFormField-Brkw1yA6.js.map +1 -0
- package/dist/chunks/renderFormField-ChNagAFN.d.ts +15 -0
- package/dist/chunks/renderMenuItemContent-DUezZrpj.js +2 -0
- 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 -0
- 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-CsMiQbpq.js +2 -0
- package/dist/chunks/stack-CsMiQbpq.js.map +1 -0
- package/dist/chunks/static-table-D0M4oc_t.js +2 -0
- 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 -0
- 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 +35 -0
- 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 -0
- 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 -0
- 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 -0
- package/dist/chunks/useForkedRef-DVEfT-KI.js.map +1 -0
- package/dist/chunks/useFormField-BOqmBTC4.js +2 -0
- package/dist/chunks/useFormField-BOqmBTC4.js.map +1 -0
- package/dist/chunks/useIsomorphicLayoutEffect-BbqRwuqn.js +2 -0
- 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 -0
- 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 +2 -0
- package/dist/close-button.js +1 -0
- package/dist/collapse.d.ts +2 -0
- package/dist/collapse.js +1 -0
- package/dist/color-input.d.ts +2 -0
- package/dist/color-input.js +1 -0
- package/dist/combobox.d.ts +3 -0
- package/dist/combobox.js +1 -0
- package/dist/context-menu.d.ts +2 -0
- package/dist/context-menu.js +1 -0
- package/dist/datagrid.d.ts +2 -0
- package/dist/datagrid.js +1 -0
- package/dist/datepicker.d.ts +2 -0
- package/dist/datepicker.js +1 -0
- package/dist/divider.d.ts +2 -0
- package/dist/divider.js +1 -0
- package/dist/drawer.d.ts +2 -0
- package/dist/drawer.js +1 -0
- package/dist/file-input.d.ts +2 -0
- package/dist/file-input.js +1 -0
- package/dist/flex.d.ts +2 -0
- package/dist/flex.js +1 -0
- package/dist/floating-input.d.ts +2 -0
- package/dist/floating-input.js +1 -0
- package/dist/form-field.d.ts +2 -0
- package/dist/form-field.js +1 -0
- package/dist/form.d.ts +2 -0
- package/dist/form.js +1 -0
- package/dist/grid.d.ts +2 -0
- package/dist/grid.js +1 -0
- package/dist/icon.d.ts +4 -0
- package/dist/icon.js +1 -0
- package/dist/index.d.ts +84 -6369
- package/dist/index.js +1 -2
- package/dist/input-adorn.d.ts +2 -0
- package/dist/input-adorn.js +1 -0
- package/dist/input-group.d.ts +2 -0
- package/dist/input-group.js +1 -0
- package/dist/link.d.ts +3 -0
- package/dist/link.js +1 -0
- package/dist/list.d.ts +2 -0
- package/dist/list.js +1 -0
- package/dist/menu.d.ts +4 -0
- package/dist/menu.js +1 -0
- package/dist/modal.d.ts +2 -0
- package/dist/modal.js +1 -0
- package/dist/nav-overflow.d.ts +2 -0
- package/dist/nav-overflow.js +1 -0
- package/dist/nav.d.ts +2 -0
- package/dist/nav.js +1 -0
- package/dist/navbar.d.ts +2 -0
- package/dist/navbar.js +1 -0
- package/dist/notification.d.ts +2 -0
- package/dist/notification.js +1 -0
- package/dist/number-field.d.ts +2 -0
- package/dist/number-field.js +1 -0
- package/dist/otp-input.d.ts +2 -0
- package/dist/otp-input.js +1 -0
- package/dist/pagination.d.ts +2 -0
- package/dist/pagination.js +1 -0
- package/dist/password-strength.d.ts +2 -0
- package/dist/password-strength.js +1 -0
- package/dist/placeholder.d.ts +2 -0
- package/dist/placeholder.js +1 -0
- package/dist/popover.d.ts +2 -0
- package/dist/popover.js +1 -0
- package/dist/portal.d.ts +2 -0
- package/dist/portal.js +1 -0
- package/dist/progress.d.ts +2 -0
- package/dist/progress.js +1 -0
- package/dist/radio.d.ts +2 -0
- package/dist/radio.js +1 -0
- package/dist/range-input.d.ts +2 -0
- package/dist/range-input.js +1 -0
- 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.d.ts +2 -0
- package/dist/select.js +1 -0
- package/dist/skeleton.d.ts +2 -0
- package/dist/skeleton.js +1 -0
- package/dist/spinner.d.ts +2 -0
- package/dist/spinner.js +1 -0
- package/dist/stack.d.ts +2 -0
- package/dist/stack.js +1 -0
- package/dist/static-table.d.ts +2 -0
- package/dist/static-table.js +1 -0
- package/dist/stepper.d.ts +2 -0
- package/dist/stepper.js +1 -0
- package/dist/style.css +1 -1
- package/dist/switch.d.ts +2 -0
- package/dist/switch.js +1 -0
- package/dist/table.d.ts +2 -0
- package/dist/table.js +1 -0
- package/dist/tabs.d.ts +2 -0
- package/dist/tabs.js +1 -0
- package/dist/text-input.d.ts +2 -0
- package/dist/text-input.js +1 -0
- package/dist/textarea.d.ts +2 -0
- package/dist/textarea.js +1 -0
- package/dist/time-field.d.ts +2 -0
- package/dist/time-field.js +1 -0
- package/dist/toast.d.ts +2 -0
- package/dist/toast.js +1 -0
- package/dist/tooltip.d.ts +2 -0
- package/dist/tooltip.js +1 -0
- 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 +120 -53
- 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 -8
- 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 -6
- 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 -6
- package/src/components/badge/Badge.tsx +0 -94
- package/src/components/badge/index.ts +0 -2
- package/src/components/breadcrumb/Breadcrumb.tsx +0 -68
- package/src/components/breadcrumb/BreadcrumbItem.tsx +0 -38
- package/src/components/breadcrumb/index.ts +0 -4
- package/src/components/button/Button.tsx +0 -232
- package/src/components/button/index.ts +0 -2
- 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 -4
- 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 -6
- 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 -22
- package/src/components/carousel/Carousel.tsx +0 -753
- package/src/components/carousel/CarouselControlButton.tsx +0 -74
- package/src/components/carousel/CarouselControlNext.tsx +0 -22
- package/src/components/carousel/CarouselControlPrev.tsx +0 -22
- 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 -61
- package/src/components/carousel/carouselEngine.ts +0 -170
- package/src/components/carousel/context.ts +0 -29
- package/src/components/carousel/index.ts +0 -21
- 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 -4
- package/src/components/chip/Chip.tsx +0 -184
- package/src/components/chip/index.ts +0 -2
- 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 -2
- package/src/components/close-button/CloseButton.tsx +0 -205
- package/src/components/close-button/index.ts +0 -2
- package/src/components/collapse/Collapse.tsx +0 -128
- package/src/components/collapse/index.ts +0 -2
- package/src/components/color-input/ColorInput.tsx +0 -106
- package/src/components/color-input/index.ts +0 -2
- 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 -6
- 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 -14
- 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 -4
- 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 -10
- package/src/components/file-input/FileInput.tsx +0 -100
- package/src/components/file-input/index.ts +0 -2
- package/src/components/flex/Flex.tsx +0 -134
- package/src/components/flex/index.ts +0 -2
- package/src/components/floating-input/FloatingInput.tsx +0 -94
- package/src/components/floating-input/index.ts +0 -2
- 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 -8
- 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 -2
- 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 -10
- package/src/components/icon/Icon.tsx +0 -74
- package/src/components/icon/index.ts +0 -2
- package/src/components/input-adorn/InputAdorn.tsx +0 -55
- package/src/components/input-adorn/index.ts +0 -2
- 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 -4
- package/src/components/link/Link.tsx +0 -148
- package/src/components/link/index.ts +0 -2
- package/src/components/list/List.tsx +0 -193
- package/src/components/list/ListItem.tsx +0 -91
- package/src/components/list/index.ts +0 -4
- 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/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 -19
- 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 -10
- 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 -7
- 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 -34
- package/src/components/navbar/index.ts +0 -10
- package/src/components/notification/Notification.scss +0 -15
- package/src/components/notification/Notification.tsx +0 -187
- 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 -17
- 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 -2
- package/src/components/pagination/Pagination.tsx +0 -199
- package/src/components/pagination/PaginationItem.tsx +0 -152
- package/src/components/pagination/index.ts +0 -4
- package/src/components/password-strength/PasswordStrength.tsx +0 -155
- package/src/components/password-strength/index.ts +0 -2
- package/src/components/password-strength/strengthScore.ts +0 -79
- package/src/components/placeholder/Placeholder.tsx +0 -178
- package/src/components/placeholder/index.ts +0 -2
- package/src/components/popover/Popover.tsx +0 -269
- package/src/components/popover/index.ts +0 -2
- package/src/components/progress/Progress.tsx +0 -154
- package/src/components/progress/ProgressBar.tsx +0 -88
- package/src/components/progress/index.ts +0 -4
- 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 -4
- package/src/components/range-input/RangeInput.tsx +0 -109
- package/src/components/range-input/index.ts +0 -2
- package/src/components/select/Select.tsx +0 -277
- package/src/components/select/index.ts +0 -2
- package/src/components/skeleton/Skeleton.tsx +0 -89
- package/src/components/skeleton/SkeletonLoader.tsx +0 -91
- package/src/components/skeleton/index.ts +0 -4
- package/src/components/spinner/Spinner.tsx +0 -77
- package/src/components/spinner/index.ts +0 -2
- package/src/components/stack/Stack.tsx +0 -81
- package/src/components/stack/index.ts +0 -2
- package/src/components/stepper/Stepper.tsx +0 -172
- package/src/components/stepper/StepperItem.tsx +0 -66
- package/src/components/stepper/index.ts +0 -4
- package/src/components/switch/Switch.tsx +0 -259
- package/src/components/switch/index.ts +0 -2
- package/src/components/table/Table.css +0 -39
- package/src/components/table/Table.tsx +0 -413
- 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 -12
- 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 -8
- package/src/components/text-input/TextInput.tsx +0 -188
- package/src/components/text-input/index.ts +0 -2
- package/src/components/textarea/Textarea.tsx +0 -145
- package/src/components/textarea/index.ts +0 -2
- package/src/components/toast/Toast.tsx +0 -219
- package/src/components/toast/ToastBody.tsx +0 -64
- package/src/components/toast/ToastFooter.tsx +0 -47
- package/src/components/toast/ToastHeader.tsx +0 -104
- 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 -18
- package/src/components/toast/toastQueue.ts +0 -56
- package/src/components/tooltip/Tooltip.tsx +0 -171
- package/src/components/tooltip/index.ts +0 -2
- 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/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 -502
- 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/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 -53
- package/src/utils/renderMenuItemContent.tsx +0 -62
- package/src/utils/setVisibleRangeStart.ts +0 -64
- package/src/utils/spacingClassName.ts +0 -14
- package/src/utils/suppressFocusRingGlobally.ts +0 -84
- package/src/utils/triggerElement.ts +0 -25
- package/src/utils/validationClassName.ts +0 -8
- package/src/utils/virtualFocusStyle.ts +0 -16
|
@@ -1,106 +0,0 @@
|
|
|
1
|
-
import React from 'react'
|
|
2
|
-
|
|
3
|
-
// Mirrors Chassis CSS's menu.js SELECTOR_VISIBLE_ITEMS / SELECTOR_KB_NAV_ITEMS: direct-child
|
|
4
|
-
// menu items and submenu-back buttons, plus submenu trigger items nested one level inside a
|
|
5
|
-
// `.submenu` wrapper (which aren't direct children of the `.menu`).
|
|
6
|
-
//
|
|
7
|
-
// Walks `children` directly rather than a `:scope`-based `querySelectorAll` — jsdom's selector
|
|
8
|
-
// engine (nwsapi) mis-parses `:scope` queries against an element whose `id` contains a colon,
|
|
9
|
-
// which is exactly the shape of React 18's default `useId()` output now that `MenuList`/
|
|
10
|
-
// `MenuSubmenu` set a real `id` for `aria-controls`/`aria-labelledby` linking. Real browsers don't
|
|
11
|
-
// have this bug, but walking children is just as correct and sidesteps it either way.
|
|
12
|
-
const VISIBLE_ITEMS_SELECTOR = ':is(.menu-item, .submenu-back):not(.disabled):not(:disabled)'
|
|
13
|
-
|
|
14
|
-
const isVisible = (element: HTMLElement) =>
|
|
15
|
-
Boolean(element.offsetWidth || element.offsetHeight || element.getClientRects().length)
|
|
16
|
-
|
|
17
|
-
export const getMenuItems = (menu: HTMLElement | null): HTMLElement[] => {
|
|
18
|
-
if (!menu) return []
|
|
19
|
-
const items: HTMLElement[] = []
|
|
20
|
-
for (const child of Array.from(menu.children)) {
|
|
21
|
-
if (child.matches(VISIBLE_ITEMS_SELECTOR)) {
|
|
22
|
-
items.push(child as HTMLElement)
|
|
23
|
-
} else if (child.classList.contains('submenu')) {
|
|
24
|
-
const trigger = Array.from(child.children).find((grandchild) =>
|
|
25
|
-
grandchild.matches(VISIBLE_ITEMS_SELECTOR)
|
|
26
|
-
)
|
|
27
|
-
if (trigger) items.push(trigger as HTMLElement)
|
|
28
|
-
}
|
|
29
|
-
}
|
|
30
|
-
return items.filter(isVisible)
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
export const focusMenuItem = (items: HTMLElement[], target: 'first' | 'last') => {
|
|
34
|
-
if (!items.length) return
|
|
35
|
-
;(target === 'first' ? items[0]! : items[items.length - 1]!).focus()
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
export interface MenuKeyDownOptions {
|
|
39
|
-
onArrowLeft?: () => void
|
|
40
|
-
onArrowRight?: () => void
|
|
41
|
-
onEscape?: () => void
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
// Scoped to `event.currentTarget` (the `.menu` element the handler is bound to), so the same
|
|
45
|
-
// function drives keyboard navigation for both the top-level menu and any nested submenu list.
|
|
46
|
-
// `onArrowLeft`/`onArrowRight` are both optional and independent (rather than a single
|
|
47
|
-
// direction-agnostic "close" callback) so a caller under an RTL locale can wire the one that
|
|
48
|
-
// actually points back toward the trigger — see `MenuSubmenu`, the only current consumer of
|
|
49
|
-
// either.
|
|
50
|
-
export const handleMenuKeyDown = (
|
|
51
|
-
event: React.KeyboardEvent<HTMLElement>,
|
|
52
|
-
{ onArrowLeft, onArrowRight, onEscape }: MenuKeyDownOptions
|
|
53
|
-
): void => {
|
|
54
|
-
const menu = event.currentTarget
|
|
55
|
-
const target = event.target as HTMLElement
|
|
56
|
-
|
|
57
|
-
switch (event.key) {
|
|
58
|
-
case 'ArrowDown':
|
|
59
|
-
case 'ArrowUp': {
|
|
60
|
-
event.preventDefault()
|
|
61
|
-
event.stopPropagation()
|
|
62
|
-
const items = getMenuItems(menu)
|
|
63
|
-
if (!items.length) return
|
|
64
|
-
const currentIndex = items.indexOf(target)
|
|
65
|
-
const nextIndex =
|
|
66
|
-
currentIndex === -1
|
|
67
|
-
? event.key === 'ArrowDown'
|
|
68
|
-
? 0
|
|
69
|
-
: items.length - 1
|
|
70
|
-
: (currentIndex + (event.key === 'ArrowDown' ? 1 : -1) + items.length) % items.length
|
|
71
|
-
// `nextIndex` is always a valid index into `items` here (0, items.length - 1, or a modulo
|
|
72
|
-
// result — the `if (!items.length) return` above already ruled out the empty-array case).
|
|
73
|
-
items[nextIndex]!.focus()
|
|
74
|
-
return
|
|
75
|
-
}
|
|
76
|
-
case 'Home':
|
|
77
|
-
case 'End': {
|
|
78
|
-
event.preventDefault()
|
|
79
|
-
event.stopPropagation()
|
|
80
|
-
focusMenuItem(getMenuItems(menu), event.key === 'Home' ? 'first' : 'last')
|
|
81
|
-
return
|
|
82
|
-
}
|
|
83
|
-
case 'Escape': {
|
|
84
|
-
if (!onEscape) return
|
|
85
|
-
event.preventDefault()
|
|
86
|
-
event.stopPropagation()
|
|
87
|
-
onEscape()
|
|
88
|
-
return
|
|
89
|
-
}
|
|
90
|
-
case 'ArrowLeft': {
|
|
91
|
-
if (!onArrowLeft) return
|
|
92
|
-
event.preventDefault()
|
|
93
|
-
event.stopPropagation()
|
|
94
|
-
onArrowLeft()
|
|
95
|
-
return
|
|
96
|
-
}
|
|
97
|
-
case 'ArrowRight': {
|
|
98
|
-
if (!onArrowRight) return
|
|
99
|
-
event.preventDefault()
|
|
100
|
-
event.stopPropagation()
|
|
101
|
-
onArrowRight()
|
|
102
|
-
return
|
|
103
|
-
}
|
|
104
|
-
default:
|
|
105
|
-
}
|
|
106
|
-
}
|
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
import { createContext, useRef } from 'react'
|
|
2
|
-
|
|
3
|
-
// Lets sibling `.submenu` flyouts at the same menu level close one another when a new one
|
|
4
|
-
// opens, mirroring menu.js's `_closeSiblingSubmenus`. One provider instance is created per
|
|
5
|
-
// menu level (the top-level `.menu` and each `.submenu`'s own nested list) and lives for the
|
|
6
|
-
// lifetime of that level, so registration doesn't churn on every render.
|
|
7
|
-
export interface SubmenuGroupContextValue {
|
|
8
|
-
register: (id: string, close: () => void) => () => void
|
|
9
|
-
notifyOpen: (id: string) => void
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
export const SubmenuGroupContext = createContext<SubmenuGroupContextValue | null>(null)
|
|
13
|
-
|
|
14
|
-
export const useSubmenuGroupProvider = (): SubmenuGroupContextValue => {
|
|
15
|
-
const ref = useRef<SubmenuGroupContextValue | null>(null)
|
|
16
|
-
|
|
17
|
-
if (!ref.current) {
|
|
18
|
-
const closers = new Map<string, () => void>()
|
|
19
|
-
ref.current = {
|
|
20
|
-
register: (id, close) => {
|
|
21
|
-
closers.set(id, close)
|
|
22
|
-
return () => {
|
|
23
|
-
closers.delete(id)
|
|
24
|
-
}
|
|
25
|
-
},
|
|
26
|
-
notifyOpen: (id) => {
|
|
27
|
-
closers.forEach((close, key) => {
|
|
28
|
-
if (key !== id) close()
|
|
29
|
-
})
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
return ref.current
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
// Exposes the current `.submenu`'s own close-and-refocus action to a nested `MenuSubmenuBack`
|
|
38
|
-
// button, without threading it through the sibling-group registry above.
|
|
39
|
-
export interface SubmenuActionsContextValue {
|
|
40
|
-
close: () => void
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
export const SubmenuActionsContext = createContext<SubmenuActionsContextValue | null>(null)
|
|
@@ -1,164 +0,0 @@
|
|
|
1
|
-
import React, { createContext, DialogHTMLAttributes, forwardRef, useId } from 'react'
|
|
2
|
-
import classNames from 'classnames'
|
|
3
|
-
|
|
4
|
-
import { useDialogElement } from '../../hooks'
|
|
5
|
-
|
|
6
|
-
export interface ModalProps extends Omit<
|
|
7
|
-
DialogHTMLAttributes<HTMLDialogElement>,
|
|
8
|
-
'onCancel' | 'onClose'
|
|
9
|
-
> {
|
|
10
|
-
/**
|
|
11
|
-
* Show a backdrop while the modal is open. `'static'` blocks closing on backdrop click
|
|
12
|
-
* (the modal bounces instead). `false` is intentionally not equivalent to `modal={false}` —
|
|
13
|
-
* unlike `Drawer`, whose vanilla chassis-css counterpart derives modality from `backdrop`,
|
|
14
|
-
* chassis-css's vanilla `Dialog` only ever reads `backdrop` to distinguish `'static'` from
|
|
15
|
-
* everything else; `modal` alone decides `showModal()`/`show()`. This mirrors that faithfully
|
|
16
|
-
* rather than reintroducing an inconsistency with the vendored behavior.
|
|
17
|
-
*/
|
|
18
|
-
backdrop?: boolean | 'static'
|
|
19
|
-
/**
|
|
20
|
-
* A string of all className you want applied to the base component.
|
|
21
|
-
*/
|
|
22
|
-
className?: string
|
|
23
|
-
/**
|
|
24
|
-
* Set modal to cover the entire user viewport. A breakpoint value goes fullscreen only
|
|
25
|
-
* below that breakpoint.
|
|
26
|
-
*/
|
|
27
|
-
fullscreen?: boolean | 'sm' | 'md' | 'lg' | 'xl' | '2xl'
|
|
28
|
-
/**
|
|
29
|
-
* Disable the open/close transition entirely.
|
|
30
|
-
*/
|
|
31
|
-
instant?: boolean
|
|
32
|
-
/**
|
|
33
|
-
* Closes the modal when the escape key is pressed.
|
|
34
|
-
*/
|
|
35
|
-
keyboard?: boolean
|
|
36
|
-
/**
|
|
37
|
-
* Open with `showModal()` (top-layer, native backdrop). Set `false` to open with `show()`
|
|
38
|
-
* instead — no backdrop, and the page behind the modal stays interactive.
|
|
39
|
-
*/
|
|
40
|
-
modal?: boolean
|
|
41
|
-
/**
|
|
42
|
-
* Callback fired when the modal requests to be closed (escape, backdrop click, or close button).
|
|
43
|
-
*/
|
|
44
|
-
onClose?: () => void
|
|
45
|
-
/**
|
|
46
|
-
* Callback fired when a close attempt is blocked (static backdrop click, or escape with `keyboard=false`).
|
|
47
|
-
*/
|
|
48
|
-
onClosePrevented?: () => void
|
|
49
|
-
/**
|
|
50
|
-
* Callback fired after the exit transition completes and the modal is fully hidden.
|
|
51
|
-
*/
|
|
52
|
-
onHidden?: () => void
|
|
53
|
-
/**
|
|
54
|
-
* Callback fired when the modal starts to open.
|
|
55
|
-
*/
|
|
56
|
-
onShow?: () => void
|
|
57
|
-
/**
|
|
58
|
-
* Callback fired after the entry transition completes and the modal is fully visible.
|
|
59
|
-
*/
|
|
60
|
-
onShown?: () => void
|
|
61
|
-
/**
|
|
62
|
-
* Create a scrollable modal — the header and footer stay fixed while the body scrolls.
|
|
63
|
-
*/
|
|
64
|
-
scrollable?: boolean
|
|
65
|
-
/**
|
|
66
|
-
* Size the component sm, lg, or extra lg.
|
|
67
|
-
*/
|
|
68
|
-
size?: 'sm' | 'lg' | 'xl'
|
|
69
|
-
/**
|
|
70
|
-
* Toggle the visibility of modal component.
|
|
71
|
-
*/
|
|
72
|
-
visible?: boolean
|
|
73
|
-
}
|
|
74
|
-
|
|
75
|
-
export interface ModalContextProps {
|
|
76
|
-
/**
|
|
77
|
-
* Requests the modal be closed — fires `onClose`. Wire this to any element's `onClick`; see
|
|
78
|
-
* `useModal`.
|
|
79
|
-
*/
|
|
80
|
-
close: () => void
|
|
81
|
-
/**
|
|
82
|
-
* Id generated by `Modal` and applied automatically by `ModalTitle` to itself, so the
|
|
83
|
-
* dialog's `aria-labelledby` resolves to it without any manual wiring.
|
|
84
|
-
*/
|
|
85
|
-
titleId?: string
|
|
86
|
-
}
|
|
87
|
-
|
|
88
|
-
export const ModalContext = createContext<ModalContextProps>({ close: () => {} })
|
|
89
|
-
|
|
90
|
-
export const Modal = forwardRef<HTMLDialogElement, ModalProps>(
|
|
91
|
-
(
|
|
92
|
-
{
|
|
93
|
-
children,
|
|
94
|
-
backdrop = true,
|
|
95
|
-
className,
|
|
96
|
-
fullscreen,
|
|
97
|
-
instant,
|
|
98
|
-
keyboard = true,
|
|
99
|
-
modal = true,
|
|
100
|
-
onClick,
|
|
101
|
-
onClose,
|
|
102
|
-
onClosePrevented,
|
|
103
|
-
onHidden,
|
|
104
|
-
onShow,
|
|
105
|
-
onShown,
|
|
106
|
-
scrollable,
|
|
107
|
-
size,
|
|
108
|
-
visible,
|
|
109
|
-
...rest
|
|
110
|
-
},
|
|
111
|
-
ref
|
|
112
|
-
) => {
|
|
113
|
-
const { close, forkedRef, handleBackdropClick, handleCancel, hiding, staticBounce } =
|
|
114
|
-
useDialogElement({
|
|
115
|
-
backdrop,
|
|
116
|
-
instant,
|
|
117
|
-
isModal: modal,
|
|
118
|
-
keyboard,
|
|
119
|
-
onClick,
|
|
120
|
-
onClose,
|
|
121
|
-
onClosePrevented,
|
|
122
|
-
onHidden,
|
|
123
|
-
onShow,
|
|
124
|
-
onShown,
|
|
125
|
-
ref,
|
|
126
|
-
visible
|
|
127
|
-
})
|
|
128
|
-
|
|
129
|
-
const titleId = useId()
|
|
130
|
-
|
|
131
|
-
const _className = classNames(
|
|
132
|
-
'modal',
|
|
133
|
-
'dialog',
|
|
134
|
-
{
|
|
135
|
-
[typeof fullscreen === 'boolean' ? 'fullscreen' : `max-${fullscreen}:fullscreen`]:
|
|
136
|
-
fullscreen,
|
|
137
|
-
[`${size}`]: size,
|
|
138
|
-
instant,
|
|
139
|
-
nonmodal: !modal,
|
|
140
|
-
scrollable,
|
|
141
|
-
hiding,
|
|
142
|
-
'dialog-static': staticBounce
|
|
143
|
-
},
|
|
144
|
-
className
|
|
145
|
-
)
|
|
146
|
-
|
|
147
|
-
return (
|
|
148
|
-
<ModalContext.Provider value={{ close, titleId }}>
|
|
149
|
-
<dialog
|
|
150
|
-
aria-labelledby={titleId}
|
|
151
|
-
{...rest}
|
|
152
|
-
className={_className}
|
|
153
|
-
onCancel={handleCancel}
|
|
154
|
-
onClick={handleBackdropClick}
|
|
155
|
-
ref={forkedRef}
|
|
156
|
-
>
|
|
157
|
-
{children}
|
|
158
|
-
</dialog>
|
|
159
|
-
</ModalContext.Provider>
|
|
160
|
-
)
|
|
161
|
-
}
|
|
162
|
-
)
|
|
163
|
-
|
|
164
|
-
Modal.displayName = 'Modal'
|
|
@@ -1,47 +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 ModalBodyOwnProps<C extends ElementType> = {
|
|
11
|
-
/**
|
|
12
|
-
* A string of all className you want applied to the base 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
|
-
|
|
21
|
-
export type ModalBodyProps<C extends ElementType = 'div'> = PolymorphicComponentProps<
|
|
22
|
-
C,
|
|
23
|
-
ModalBodyOwnProps<C>
|
|
24
|
-
>
|
|
25
|
-
|
|
26
|
-
type ModalBodyComponent = (<C extends ElementType = 'div'>(
|
|
27
|
-
props: ModalBodyProps<C> & { ref?: PolymorphicRef<C> }
|
|
28
|
-
) => ReactElement | null) & { displayName?: string }
|
|
29
|
-
|
|
30
|
-
function ModalBodyRender<C extends ElementType = 'div'>(
|
|
31
|
-
{ children, className, component, ...rest }: ModalBodyProps<C>,
|
|
32
|
-
ref: PolymorphicRef<C>
|
|
33
|
-
) {
|
|
34
|
-
const Component = component ?? 'div'
|
|
35
|
-
const _className = classNames('modal-body', className)
|
|
36
|
-
|
|
37
|
-
return (
|
|
38
|
-
<Component className={_className} {...rest} ref={ref}>
|
|
39
|
-
{children}
|
|
40
|
-
</Component>
|
|
41
|
-
)
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
export const ModalBody = createPolymorphicComponent<ModalBodyComponent>(
|
|
45
|
-
ModalBodyRender as ForwardRefRenderFunction<Element, ModalBodyProps<ElementType>>,
|
|
46
|
-
'ModalBody'
|
|
47
|
-
)
|
|
@@ -1,51 +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 ModalFooterOwnProps<C extends ElementType> = {
|
|
11
|
-
/**
|
|
12
|
-
* A string of all className you want applied to the base 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
|
-
* Stack the footer actions as full-width columns instead of a right-aligned row.
|
|
21
|
-
*/
|
|
22
|
-
stacked?: boolean
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
export type ModalFooterProps<C extends ElementType = 'div'> = PolymorphicComponentProps<
|
|
26
|
-
C,
|
|
27
|
-
ModalFooterOwnProps<C>
|
|
28
|
-
>
|
|
29
|
-
|
|
30
|
-
type ModalFooterComponent = (<C extends ElementType = 'div'>(
|
|
31
|
-
props: ModalFooterProps<C> & { ref?: PolymorphicRef<C> }
|
|
32
|
-
) => ReactElement | null) & { displayName?: string }
|
|
33
|
-
|
|
34
|
-
function ModalFooterRender<C extends ElementType = 'div'>(
|
|
35
|
-
{ children, className, component, stacked, ...rest }: ModalFooterProps<C>,
|
|
36
|
-
ref: PolymorphicRef<C>
|
|
37
|
-
) {
|
|
38
|
-
const Component = component ?? 'div'
|
|
39
|
-
const _className = classNames('modal-footer', { stacked }, className)
|
|
40
|
-
|
|
41
|
-
return (
|
|
42
|
-
<Component className={_className} {...rest} ref={ref}>
|
|
43
|
-
{children}
|
|
44
|
-
</Component>
|
|
45
|
-
)
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
export const ModalFooter = createPolymorphicComponent<ModalFooterComponent>(
|
|
49
|
-
ModalFooterRender as ForwardRefRenderFunction<Element, ModalFooterProps<ElementType>>,
|
|
50
|
-
'ModalFooter'
|
|
51
|
-
)
|
|
@@ -1,60 +0,0 @@
|
|
|
1
|
-
import React, { ElementType, ForwardRefRenderFunction, ReactElement } from 'react'
|
|
2
|
-
import classNames from 'classnames'
|
|
3
|
-
|
|
4
|
-
import { useModal } from '../../hooks'
|
|
5
|
-
import {
|
|
6
|
-
createPolymorphicComponent,
|
|
7
|
-
PolymorphicComponentProps,
|
|
8
|
-
PolymorphicRef
|
|
9
|
-
} from '../../utils/polymorphic'
|
|
10
|
-
import { CloseButton } from '../close-button/CloseButton'
|
|
11
|
-
|
|
12
|
-
type ModalHeaderOwnProps<C extends ElementType> = {
|
|
13
|
-
/**
|
|
14
|
-
* A string of all className you want applied to the base component.
|
|
15
|
-
*/
|
|
16
|
-
className?: string
|
|
17
|
-
/**
|
|
18
|
-
* Add a close button component to the header.
|
|
19
|
-
*/
|
|
20
|
-
closeButton?: boolean
|
|
21
|
-
/**
|
|
22
|
-
* Overrides the close button's accessible name (defaults to `'Close'`). Set this for
|
|
23
|
-
* non-English UIs.
|
|
24
|
-
*/
|
|
25
|
-
closeLabel?: string
|
|
26
|
-
/**
|
|
27
|
-
* Component used for the root node. Either a string to use a HTML element or a component.
|
|
28
|
-
*/
|
|
29
|
-
component?: C
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
export type ModalHeaderProps<C extends ElementType = 'div'> = PolymorphicComponentProps<
|
|
33
|
-
C,
|
|
34
|
-
ModalHeaderOwnProps<C>
|
|
35
|
-
>
|
|
36
|
-
|
|
37
|
-
type ModalHeaderComponent = (<C extends ElementType = 'div'>(
|
|
38
|
-
props: ModalHeaderProps<C> & { ref?: PolymorphicRef<C> }
|
|
39
|
-
) => ReactElement | null) & { displayName?: string }
|
|
40
|
-
|
|
41
|
-
function ModalHeaderRender<C extends ElementType = 'div'>(
|
|
42
|
-
{ children, className, closeButton = true, closeLabel, component, ...rest }: ModalHeaderProps<C>,
|
|
43
|
-
ref: PolymorphicRef<C>
|
|
44
|
-
) {
|
|
45
|
-
const Component = component ?? 'div'
|
|
46
|
-
const { close } = useModal()
|
|
47
|
-
const _className = classNames('modal-header', className)
|
|
48
|
-
|
|
49
|
-
return (
|
|
50
|
-
<Component className={_className} {...rest} ref={ref}>
|
|
51
|
-
{children}
|
|
52
|
-
{closeButton && <CloseButton label={closeLabel} onClick={close} />}
|
|
53
|
-
</Component>
|
|
54
|
-
)
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
export const ModalHeader = createPolymorphicComponent<ModalHeaderComponent>(
|
|
58
|
-
ModalHeaderRender as ForwardRefRenderFunction<Element, ModalHeaderProps<ElementType>>,
|
|
59
|
-
'ModalHeader'
|
|
60
|
-
)
|
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
import React, { ElementType, ForwardRefRenderFunction, ReactElement } from 'react'
|
|
2
|
-
import classNames from 'classnames'
|
|
3
|
-
|
|
4
|
-
import { useModal } from '../../hooks'
|
|
5
|
-
import {
|
|
6
|
-
createPolymorphicComponent,
|
|
7
|
-
PolymorphicComponentProps,
|
|
8
|
-
PolymorphicRef
|
|
9
|
-
} from '../../utils/polymorphic'
|
|
10
|
-
|
|
11
|
-
type ModalTitleOwnProps<C extends ElementType> = {
|
|
12
|
-
/**
|
|
13
|
-
* A string of all className you want applied to the base component.
|
|
14
|
-
*/
|
|
15
|
-
className?: string
|
|
16
|
-
/**
|
|
17
|
-
* Component used for the root node. Either a string to use a HTML element or a component.
|
|
18
|
-
*/
|
|
19
|
-
component?: C
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
export type ModalTitleProps<C extends ElementType = 'h2'> = PolymorphicComponentProps<
|
|
23
|
-
C,
|
|
24
|
-
ModalTitleOwnProps<C>
|
|
25
|
-
>
|
|
26
|
-
|
|
27
|
-
type ModalTitleComponent = (<C extends ElementType = 'h2'>(
|
|
28
|
-
props: ModalTitleProps<C> & { ref?: PolymorphicRef<C> }
|
|
29
|
-
) => ReactElement | null) & { displayName?: string }
|
|
30
|
-
|
|
31
|
-
function ModalTitleRender<C extends ElementType = 'h2'>(
|
|
32
|
-
{ children, component, className, id, ...rest }: ModalTitleProps<C>,
|
|
33
|
-
ref: PolymorphicRef<C>
|
|
34
|
-
) {
|
|
35
|
-
const { titleId } = useModal()
|
|
36
|
-
const Component = component ?? 'h2'
|
|
37
|
-
const _className = classNames('modal-title', className)
|
|
38
|
-
|
|
39
|
-
return (
|
|
40
|
-
<Component className={_className} id={id ?? titleId} {...rest} ref={ref}>
|
|
41
|
-
{children}
|
|
42
|
-
</Component>
|
|
43
|
-
)
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
export const ModalTitle = createPolymorphicComponent<ModalTitleComponent>(
|
|
47
|
-
ModalTitleRender as ForwardRefRenderFunction<Element, ModalTitleProps<ElementType>>,
|
|
48
|
-
'ModalTitle'
|
|
49
|
-
)
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
export { Modal } from './Modal'
|
|
2
|
-
export type { ModalProps } from './Modal'
|
|
3
|
-
export { ModalBody } from './ModalBody'
|
|
4
|
-
export type { ModalBodyProps } from './ModalBody'
|
|
5
|
-
export { ModalFooter } from './ModalFooter'
|
|
6
|
-
export type { ModalFooterProps } from './ModalFooter'
|
|
7
|
-
export { ModalHeader } from './ModalHeader'
|
|
8
|
-
export type { ModalHeaderProps } from './ModalHeader'
|
|
9
|
-
export { ModalTitle } from './ModalTitle'
|
|
10
|
-
export type { ModalTitleProps } from './ModalTitle'
|
|
@@ -1,97 +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
|
-
import { NavItem } from './NavItem'
|
|
10
|
-
|
|
11
|
-
export interface NavItemDef {
|
|
12
|
-
/**
|
|
13
|
-
* Label content for the nav item.
|
|
14
|
-
*/
|
|
15
|
-
label: React.ReactNode
|
|
16
|
-
/**
|
|
17
|
-
* URL for the nav link.
|
|
18
|
-
*/
|
|
19
|
-
href?: string
|
|
20
|
-
/**
|
|
21
|
-
* Marks the item as active.
|
|
22
|
-
*/
|
|
23
|
-
active?: boolean
|
|
24
|
-
/**
|
|
25
|
-
* Marks the item as disabled.
|
|
26
|
-
*/
|
|
27
|
-
disabled?: boolean
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
type NavOwnProps<C extends ElementType> = {
|
|
31
|
-
/**
|
|
32
|
-
* A string of all className you want applied to the base component.
|
|
33
|
-
*/
|
|
34
|
-
className?: string
|
|
35
|
-
/**
|
|
36
|
-
* Component used for the root node. Either a string to use a HTML element or a component.
|
|
37
|
-
*/
|
|
38
|
-
component?: C
|
|
39
|
-
/**
|
|
40
|
-
* Array of nav item definitions for data-driven rendering. When provided, children are ignored.
|
|
41
|
-
*/
|
|
42
|
-
items?: NavItemDef[]
|
|
43
|
-
/**
|
|
44
|
-
* Specify a layout type for component.
|
|
45
|
-
*/
|
|
46
|
-
layout?: 'fill' | 'justified'
|
|
47
|
-
/**
|
|
48
|
-
* Set the nav variant to tabs or pills.
|
|
49
|
-
*/
|
|
50
|
-
variant?: 'tabs' | 'pills'
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
export type NavProps<C extends ElementType = 'ul'> = PolymorphicComponentProps<C, NavOwnProps<C>>
|
|
54
|
-
|
|
55
|
-
type NavComponent = (<C extends ElementType = 'ul'>(
|
|
56
|
-
props: NavProps<C> & { ref?: PolymorphicRef<C> }
|
|
57
|
-
) => ReactElement | null) & { displayName?: string }
|
|
58
|
-
|
|
59
|
-
function NavRender<C extends ElementType = 'ul'>(
|
|
60
|
-
{ children, className, component, items, layout, variant, ...rest }: NavProps<C>,
|
|
61
|
-
ref: PolymorphicRef<C>
|
|
62
|
-
) {
|
|
63
|
-
const Component = component ?? 'ul'
|
|
64
|
-
const _className = classNames(
|
|
65
|
-
'nav',
|
|
66
|
-
{
|
|
67
|
-
[`nav-${layout}`]: layout,
|
|
68
|
-
[`nav-${variant}`]: variant
|
|
69
|
-
},
|
|
70
|
-
className
|
|
71
|
-
)
|
|
72
|
-
|
|
73
|
-
const autoContent = items
|
|
74
|
-
? items.map((item, idx) => (
|
|
75
|
-
<NavItem
|
|
76
|
-
// eslint-disable-next-line react/no-array-index-key
|
|
77
|
-
key={idx}
|
|
78
|
-
active={item.active}
|
|
79
|
-
disabled={item.disabled}
|
|
80
|
-
href={item.href}
|
|
81
|
-
>
|
|
82
|
-
{item.label}
|
|
83
|
-
</NavItem>
|
|
84
|
-
))
|
|
85
|
-
: null
|
|
86
|
-
|
|
87
|
-
return (
|
|
88
|
-
<Component className={_className} role="navigation" {...rest} ref={ref}>
|
|
89
|
-
{autoContent ?? children}
|
|
90
|
-
</Component>
|
|
91
|
-
)
|
|
92
|
-
}
|
|
93
|
-
|
|
94
|
-
export const Nav = createPolymorphicComponent<NavComponent>(
|
|
95
|
-
NavRender as ForwardRefRenderFunction<Element, NavProps<ElementType>>,
|
|
96
|
-
'Nav'
|
|
97
|
-
)
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
import React, {
|
|
2
|
-
ElementType,
|
|
3
|
-
ForwardRefRenderFunction,
|
|
4
|
-
forwardRef,
|
|
5
|
-
ReactElement,
|
|
6
|
-
ReactNode,
|
|
7
|
-
Ref
|
|
8
|
-
} from 'react'
|
|
9
|
-
import classNames from 'classnames'
|
|
10
|
-
|
|
11
|
-
import { NavLink, NavLinkProps } from './NavLink'
|
|
12
|
-
|
|
13
|
-
type NavItemComponent = (<C extends ElementType = 'a'>(
|
|
14
|
-
props: NavLinkProps<C> & { ref?: Ref<HTMLLIElement> }
|
|
15
|
-
) => ReactElement | null) & { displayName?: string }
|
|
16
|
-
|
|
17
|
-
function NavItemRender<C extends ElementType = 'a'>(
|
|
18
|
-
{ children, className, ...rest }: NavLinkProps<C>,
|
|
19
|
-
ref: Ref<HTMLLIElement>
|
|
20
|
-
) {
|
|
21
|
-
const _className = classNames('nav-item', className)
|
|
22
|
-
const { href } = rest as { href?: string }
|
|
23
|
-
|
|
24
|
-
if (href) {
|
|
25
|
-
return (
|
|
26
|
-
<li className={_className} ref={ref}>
|
|
27
|
-
<NavLink {...(rest as Record<string, unknown>)}>{children as ReactNode}</NavLink>
|
|
28
|
-
</li>
|
|
29
|
-
)
|
|
30
|
-
}
|
|
31
|
-
return (
|
|
32
|
-
<li className={_className} {...(rest as Record<string, unknown>)} ref={ref}>
|
|
33
|
-
{children}
|
|
34
|
-
</li>
|
|
35
|
-
)
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
export const NavItem = forwardRef(
|
|
39
|
-
NavItemRender as ForwardRefRenderFunction<HTMLLIElement, NavLinkProps<ElementType>>
|
|
40
|
-
) as NavItemComponent
|
|
41
|
-
|
|
42
|
-
NavItem.displayName = 'NavItem'
|