@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,98 +0,0 @@
|
|
|
1
|
-
import React, { forwardRef, InputHTMLAttributes, ReactNode, useContext, useRef } from 'react'
|
|
2
|
-
import classNames from 'classnames'
|
|
3
|
-
import { AriaRadioProps, useRadio } from 'react-aria'
|
|
4
|
-
|
|
5
|
-
import { useForkedRef } from '../../hooks'
|
|
6
|
-
import { ContextColor } from '../../types'
|
|
7
|
-
import { validationClassName } from '../../utils/validationClassName'
|
|
8
|
-
|
|
9
|
-
import { RadioGroupContext } from './context'
|
|
10
|
-
import { ButtonObject, renderFormCheck } from '../form/renderFormCheck'
|
|
11
|
-
|
|
12
|
-
export interface RadioProps extends Omit<
|
|
13
|
-
InputHTMLAttributes<HTMLInputElement>,
|
|
14
|
-
'checked' | 'defaultChecked' | 'onChange' | 'size'
|
|
15
|
-
> {
|
|
16
|
-
/**
|
|
17
|
-
* Create button-like radios. Combine with `<RadioGroup>` to build radio toggle-button groups.
|
|
18
|
-
*/
|
|
19
|
-
button?: ButtonObject
|
|
20
|
-
/**
|
|
21
|
-
* A string of all className you want applied to the component.
|
|
22
|
-
*/
|
|
23
|
-
className?: string
|
|
24
|
-
/**
|
|
25
|
-
* Sets the color of the radio indicator to one of Chassis context colors. Ignored when `button` is set.
|
|
26
|
-
*/
|
|
27
|
-
color?: ContextColor
|
|
28
|
-
/**
|
|
29
|
-
* The id global attribute defines an identifier (ID) that must be unique in the whole document.
|
|
30
|
-
*/
|
|
31
|
-
id?: string
|
|
32
|
-
/**
|
|
33
|
-
* The element represents a caption for a component.
|
|
34
|
-
*
|
|
35
|
-
* Children are accepted as an alias for this prop — `label` wins when both are given.
|
|
36
|
-
* react-aria, which backs this component, calls the same thing `children`; this package renames
|
|
37
|
-
* it to `label`, and honouring both means the shape React developers reach for first still
|
|
38
|
-
* names the control instead of silently producing an unlabelled one.
|
|
39
|
-
*/
|
|
40
|
-
label?: ReactNode
|
|
41
|
-
/**
|
|
42
|
-
* Size the component sm or lg.
|
|
43
|
-
*/
|
|
44
|
-
size?: 'sm' | 'lg'
|
|
45
|
-
/**
|
|
46
|
-
* The value of the radio button, used to identify it within its `<RadioGroup>`.
|
|
47
|
-
*/
|
|
48
|
-
value: string
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
// `<Radio>` must be rendered inside a `<RadioGroup>` — react-aria has no standalone
|
|
52
|
-
// radio hook, only useRadio(props, RadioGroupState, ref), because a lone radio with no group is
|
|
53
|
-
// not a meaningful accessible control (see https://chassis-ui.com/css/docs/forms/checkbox-radio).
|
|
54
|
-
export const Radio = forwardRef<HTMLInputElement, RadioProps>(
|
|
55
|
-
({ button, children, className, color, disabled, id, label, size, ...rest }, ref) => {
|
|
56
|
-
const group = useContext(RadioGroupContext)
|
|
57
|
-
|
|
58
|
-
if (!group) {
|
|
59
|
-
throw new Error('Radio must be rendered inside a RadioGroup.')
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
const { state: groupState, valid } = group
|
|
63
|
-
const invalid = groupState.isInvalid
|
|
64
|
-
|
|
65
|
-
const inputRef = useRef<HTMLInputElement>(null)
|
|
66
|
-
const forkedRef = useForkedRef(ref, inputRef)
|
|
67
|
-
|
|
68
|
-
// `label` is this package's name for what react-aria calls `children`. Accept either, so the
|
|
69
|
-
// shape React developers reach for first (`<Radio>Label</Radio>`) names the control instead of
|
|
70
|
-
// being silently dropped — see the note on `label` in `RadioProps`.
|
|
71
|
-
const resolvedLabel = label ?? children
|
|
72
|
-
|
|
73
|
-
const { inputProps } = useRadio(
|
|
74
|
-
{
|
|
75
|
-
...rest,
|
|
76
|
-
children: resolvedLabel,
|
|
77
|
-
isDisabled: disabled
|
|
78
|
-
} as AriaRadioProps,
|
|
79
|
-
groupState,
|
|
80
|
-
inputRef
|
|
81
|
-
)
|
|
82
|
-
|
|
83
|
-
const inputClassName = classNames(validationClassName(invalid, valid))
|
|
84
|
-
|
|
85
|
-
return renderFormCheck({
|
|
86
|
-
button,
|
|
87
|
-
className,
|
|
88
|
-
color,
|
|
89
|
-
input: <input {...inputProps} className={inputClassName} id={id} ref={forkedRef} />,
|
|
90
|
-
invalid,
|
|
91
|
-
label: resolvedLabel,
|
|
92
|
-
size,
|
|
93
|
-
valid
|
|
94
|
-
})
|
|
95
|
-
}
|
|
96
|
-
)
|
|
97
|
-
|
|
98
|
-
Radio.displayName = 'Radio'
|
|
@@ -1,142 +0,0 @@
|
|
|
1
|
-
import React, { forwardRef, HTMLAttributes, ReactNode } from 'react'
|
|
2
|
-
import classNames from 'classnames'
|
|
3
|
-
import { AriaRadioGroupProps, useRadioGroup } from 'react-aria'
|
|
4
|
-
import { RadioGroupProps as StatelyRadioGroupProps, useRadioGroupState } from 'react-stately'
|
|
5
|
-
|
|
6
|
-
import { validationClassName } from '../../utils/validationClassName'
|
|
7
|
-
|
|
8
|
-
import { RadioGroupContext } from './context'
|
|
9
|
-
import { FormFeedback } from '../form/FormFeedback'
|
|
10
|
-
import { FormHelp } from '../form/FormHelp'
|
|
11
|
-
import { Flex } from '../flex'
|
|
12
|
-
|
|
13
|
-
export interface RadioGroupProps extends Omit<
|
|
14
|
-
HTMLAttributes<HTMLFieldSetElement>,
|
|
15
|
-
'defaultValue' | 'onChange'
|
|
16
|
-
> {
|
|
17
|
-
/**
|
|
18
|
-
* One or more `<Radio>` elements.
|
|
19
|
-
*/
|
|
20
|
-
children: ReactNode
|
|
21
|
-
/**
|
|
22
|
-
* A string of all className you want applied to the component.
|
|
23
|
-
*/
|
|
24
|
-
className?: string
|
|
25
|
-
/**
|
|
26
|
-
* The selected value, uncontrolled.
|
|
27
|
-
*/
|
|
28
|
-
defaultValue?: string
|
|
29
|
-
/**
|
|
30
|
-
* A description for the group, rendered below the options.
|
|
31
|
-
*/
|
|
32
|
-
description?: ReactNode
|
|
33
|
-
/**
|
|
34
|
-
* Disables every radio in the group.
|
|
35
|
-
*/
|
|
36
|
-
disabled?: boolean
|
|
37
|
-
/**
|
|
38
|
-
* An error message for the group, rendered below the options when `invalid` is set.
|
|
39
|
-
*/
|
|
40
|
-
errorMessage?: ReactNode
|
|
41
|
-
/**
|
|
42
|
-
* Set group validation state to invalid.
|
|
43
|
-
*/
|
|
44
|
-
invalid?: boolean
|
|
45
|
-
/**
|
|
46
|
-
* The group's caption, rendered as a `<legend>`.
|
|
47
|
-
*/
|
|
48
|
-
label?: ReactNode
|
|
49
|
-
/**
|
|
50
|
-
* The name for the group, used for native form submission.
|
|
51
|
-
*/
|
|
52
|
-
name?: string
|
|
53
|
-
/**
|
|
54
|
-
* Callback fired when the selected value changes.
|
|
55
|
-
*/
|
|
56
|
-
onChange?: (value: string) => void
|
|
57
|
-
/**
|
|
58
|
-
* Lay the group's radios out on the same horizontal row instead of stacking them.
|
|
59
|
-
*/
|
|
60
|
-
orientation?: 'horizontal' | 'vertical'
|
|
61
|
-
/**
|
|
62
|
-
* Marks the group as required.
|
|
63
|
-
*/
|
|
64
|
-
required?: boolean
|
|
65
|
-
/**
|
|
66
|
-
* Set group validation state to valid.
|
|
67
|
-
*/
|
|
68
|
-
valid?: boolean
|
|
69
|
-
/**
|
|
70
|
-
* The selected value, controlled.
|
|
71
|
-
*/
|
|
72
|
-
value?: string
|
|
73
|
-
}
|
|
74
|
-
|
|
75
|
-
export const RadioGroup = forwardRef<HTMLFieldSetElement, RadioGroupProps>(
|
|
76
|
-
(
|
|
77
|
-
{
|
|
78
|
-
children,
|
|
79
|
-
className,
|
|
80
|
-
defaultValue,
|
|
81
|
-
description,
|
|
82
|
-
disabled,
|
|
83
|
-
errorMessage,
|
|
84
|
-
invalid,
|
|
85
|
-
label,
|
|
86
|
-
name,
|
|
87
|
-
onChange,
|
|
88
|
-
orientation,
|
|
89
|
-
required,
|
|
90
|
-
valid,
|
|
91
|
-
value,
|
|
92
|
-
...rest
|
|
93
|
-
},
|
|
94
|
-
ref
|
|
95
|
-
) => {
|
|
96
|
-
const groupProps = {
|
|
97
|
-
...rest,
|
|
98
|
-
defaultValue,
|
|
99
|
-
description,
|
|
100
|
-
errorMessage,
|
|
101
|
-
isDisabled: disabled,
|
|
102
|
-
isInvalid: invalid,
|
|
103
|
-
isRequired: required,
|
|
104
|
-
label,
|
|
105
|
-
name,
|
|
106
|
-
onChange,
|
|
107
|
-
orientation,
|
|
108
|
-
value
|
|
109
|
-
}
|
|
110
|
-
|
|
111
|
-
const state = useRadioGroupState(groupProps as StatelyRadioGroupProps)
|
|
112
|
-
const { radioGroupProps, labelProps, descriptionProps, errorMessageProps } = useRadioGroup(
|
|
113
|
-
groupProps as AriaRadioGroupProps,
|
|
114
|
-
state
|
|
115
|
-
)
|
|
116
|
-
|
|
117
|
-
const _className = classNames('form-field', validationClassName(invalid, valid), className)
|
|
118
|
-
|
|
119
|
-
const items = (
|
|
120
|
-
<RadioGroupContext.Provider value={{ state, valid }}>{children}</RadioGroupContext.Provider>
|
|
121
|
-
)
|
|
122
|
-
|
|
123
|
-
return (
|
|
124
|
-
<fieldset {...rest} {...radioGroupProps} className={_className} ref={ref}>
|
|
125
|
-
{label && (
|
|
126
|
-
<legend className="form-label" {...labelProps}>
|
|
127
|
-
{label}
|
|
128
|
-
</legend>
|
|
129
|
-
)}
|
|
130
|
-
{orientation === 'horizontal' ? <Flex gap="md">{items}</Flex> : items}
|
|
131
|
-
{description && <FormHelp {...descriptionProps}>{description}</FormHelp>}
|
|
132
|
-
{invalid && errorMessage && (
|
|
133
|
-
<FormFeedback invalid {...errorMessageProps}>
|
|
134
|
-
{errorMessage}
|
|
135
|
-
</FormFeedback>
|
|
136
|
-
)}
|
|
137
|
-
</fieldset>
|
|
138
|
-
)
|
|
139
|
-
}
|
|
140
|
-
)
|
|
141
|
-
|
|
142
|
-
RadioGroup.displayName = 'RadioGroup'
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import { createContext } from 'react'
|
|
2
|
-
import { RadioGroupState } from 'react-stately'
|
|
3
|
-
|
|
4
|
-
export interface RadioGroupContextValue {
|
|
5
|
-
state: RadioGroupState
|
|
6
|
-
/**
|
|
7
|
-
* `RadioGroup`'s own `valid` prop, mirrored here since it has no react-stately equivalent to
|
|
8
|
-
* read off `state` the way `isInvalid` does — each `Radio` needs it to apply its own
|
|
9
|
-
* `is-valid` class.
|
|
10
|
-
*/
|
|
11
|
-
valid?: boolean
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
export const RadioGroupContext = createContext<RadioGroupContextValue | null>(null)
|
|
@@ -1,109 +0,0 @@
|
|
|
1
|
-
import React, { ChangeEventHandler, forwardRef, InputHTMLAttributes, ReactNode } from 'react'
|
|
2
|
-
import classNames from 'classnames'
|
|
3
|
-
|
|
4
|
-
import { useFormField } from '../../hooks'
|
|
5
|
-
import { validationClassName } from '../../utils/validationClassName'
|
|
6
|
-
import { renderFormField } from '../form-field/renderFormField'
|
|
7
|
-
|
|
8
|
-
export interface RangeInputProps extends InputHTMLAttributes<HTMLInputElement> {
|
|
9
|
-
/**
|
|
10
|
-
* A string of all className you want applied to the component.
|
|
11
|
-
*/
|
|
12
|
-
className?: string
|
|
13
|
-
/**
|
|
14
|
-
* Toggle the disabled state for the component.
|
|
15
|
-
*/
|
|
16
|
-
disabled?: boolean
|
|
17
|
-
/**
|
|
18
|
-
* A description for the field, rendered below the range input.
|
|
19
|
-
*/
|
|
20
|
-
help?: ReactNode
|
|
21
|
-
/**
|
|
22
|
-
* Set component validation state to invalid.
|
|
23
|
-
*/
|
|
24
|
-
invalid?: boolean
|
|
25
|
-
/**
|
|
26
|
-
* An error message for the field, rendered below the range input when `invalid` is set.
|
|
27
|
-
*/
|
|
28
|
-
invalidFeedback?: ReactNode
|
|
29
|
-
/**
|
|
30
|
-
* The field's caption, rendered as a `FormLabel` associated with this range input.
|
|
31
|
-
*/
|
|
32
|
-
label?: ReactNode
|
|
33
|
-
/**
|
|
34
|
-
* Specifies the maximum value for the component.
|
|
35
|
-
*/
|
|
36
|
-
max?: number
|
|
37
|
-
/**
|
|
38
|
-
* Specifies the minimum value for the component.
|
|
39
|
-
*/
|
|
40
|
-
min?: number
|
|
41
|
-
/**
|
|
42
|
-
* Method called immediately after the `value` prop changes.
|
|
43
|
-
*/
|
|
44
|
-
onChange?: ChangeEventHandler<HTMLInputElement>
|
|
45
|
-
/**
|
|
46
|
-
* Toggle the readonly state for the component.
|
|
47
|
-
*/
|
|
48
|
-
readOnly?: boolean
|
|
49
|
-
/**
|
|
50
|
-
* Specifies the interval between legal numbers in the component.
|
|
51
|
-
*/
|
|
52
|
-
step?: number
|
|
53
|
-
/**
|
|
54
|
-
* Set component validation state to valid.
|
|
55
|
-
*/
|
|
56
|
-
valid?: boolean
|
|
57
|
-
/**
|
|
58
|
-
* A success message for the field, rendered below the range input when `valid` is set.
|
|
59
|
-
*/
|
|
60
|
-
validFeedback?: ReactNode
|
|
61
|
-
/**
|
|
62
|
-
* The `value` attribute of component.
|
|
63
|
-
*
|
|
64
|
-
* @controllable onChange
|
|
65
|
-
* */
|
|
66
|
-
value?: string | number
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
export const RangeInput = forwardRef<HTMLInputElement, RangeInputProps>(
|
|
70
|
-
(
|
|
71
|
-
{ className, help, id, invalid, invalidFeedback, label, valid, validFeedback, ...rest },
|
|
72
|
-
ref
|
|
73
|
-
) => {
|
|
74
|
-
const { describedBy, feedbackId, helpId, inputId } = useFormField({
|
|
75
|
-
ariaDescribedBy: rest['aria-describedby'],
|
|
76
|
-
help,
|
|
77
|
-
id,
|
|
78
|
-
invalid,
|
|
79
|
-
invalidFeedback,
|
|
80
|
-
valid,
|
|
81
|
-
validFeedback
|
|
82
|
-
})
|
|
83
|
-
|
|
84
|
-
const _className = classNames('form-range', validationClassName(invalid, valid), className)
|
|
85
|
-
|
|
86
|
-
return renderFormField({
|
|
87
|
-
children: (
|
|
88
|
-
<input
|
|
89
|
-
{...rest}
|
|
90
|
-
aria-describedby={describedBy}
|
|
91
|
-
aria-invalid={invalid || undefined}
|
|
92
|
-
className={_className}
|
|
93
|
-
id={inputId}
|
|
94
|
-
ref={ref}
|
|
95
|
-
type="range"
|
|
96
|
-
/>
|
|
97
|
-
),
|
|
98
|
-
help,
|
|
99
|
-
ids: { feedback: feedbackId, help: helpId, input: inputId },
|
|
100
|
-
invalid,
|
|
101
|
-
invalidFeedback,
|
|
102
|
-
label,
|
|
103
|
-
valid,
|
|
104
|
-
validFeedback
|
|
105
|
-
})
|
|
106
|
-
}
|
|
107
|
-
)
|
|
108
|
-
|
|
109
|
-
RangeInput.displayName = 'RangeInput'
|
|
@@ -1,277 +0,0 @@
|
|
|
1
|
-
import React, {
|
|
2
|
-
ChangeEventHandler,
|
|
3
|
-
forwardRef,
|
|
4
|
-
InputHTMLAttributes,
|
|
5
|
-
MouseEventHandler,
|
|
6
|
-
ReactNode,
|
|
7
|
-
useRef
|
|
8
|
-
} from 'react'
|
|
9
|
-
import classNames from 'classnames'
|
|
10
|
-
|
|
11
|
-
import { useForkedRef, useFormField } from '../../hooks'
|
|
12
|
-
import { validationClassName } from '../../utils/validationClassName'
|
|
13
|
-
import { renderFormField } from '../form-field/renderFormField'
|
|
14
|
-
import { devWarning } from '../../utils/devWarning'
|
|
15
|
-
|
|
16
|
-
export interface SelectOptionDef {
|
|
17
|
-
/**
|
|
18
|
-
* Marks the option as disabled — it can't be clicked or reached via the keyboard.
|
|
19
|
-
*/
|
|
20
|
-
disabled?: boolean
|
|
21
|
-
/**
|
|
22
|
-
* Label text rendered inside the option. Falls back to the browser's default (the `value`,
|
|
23
|
-
* stringified) when omitted.
|
|
24
|
-
*/
|
|
25
|
-
label?: string
|
|
26
|
-
/**
|
|
27
|
-
* Marks the option as selected by default (uncontrolled) — resolved into the select's own
|
|
28
|
-
* `defaultValue`, and ignored when the select's `value`/`defaultValue` is set directly. Set on
|
|
29
|
-
* more than one option only when `multiple` is also set on `Select` — otherwise, matching
|
|
30
|
-
* native `<select>` behavior, only the last option with `selected` set wins.
|
|
31
|
-
*/
|
|
32
|
-
selected?: boolean
|
|
33
|
-
/**
|
|
34
|
-
* The option's value attribute.
|
|
35
|
-
*/
|
|
36
|
-
value?: string | number
|
|
37
|
-
}
|
|
38
|
-
export interface SelectProps extends Omit<InputHTMLAttributes<HTMLSelectElement>, 'size'> {
|
|
39
|
-
/**
|
|
40
|
-
* Content rendered at the select's trailing edge, e.g. a `InputAdorn` icon, text, or button.
|
|
41
|
-
* Setting either `adornStart` or `adornEnd` renders a `.form-input` wrapper around a
|
|
42
|
-
* `.ghost-input`, matching chassis-css's [input help](https://chassis-ui.com/css/docs/forms/input-adorn) pattern.
|
|
43
|
-
* Clicking anywhere in the wrapper (other than an actionable adorn) opens the select, since the
|
|
44
|
-
* native element itself no longer fills the wrapper's full width.
|
|
45
|
-
*/
|
|
46
|
-
adornEnd?: ReactNode
|
|
47
|
-
/**
|
|
48
|
-
* Content rendered at the select's leading edge, e.g. a `InputAdorn` icon, text, or button.
|
|
49
|
-
* Setting either `adornStart` or `adornEnd` renders a `.form-input` wrapper around a
|
|
50
|
-
* `.ghost-input`, matching chassis-css's [input help](https://chassis-ui.com/css/docs/forms/input-adorn) pattern.
|
|
51
|
-
* Clicking anywhere in the wrapper (other than an actionable adorn) opens the select, since the
|
|
52
|
-
* native element itself no longer fills the wrapper's full width.
|
|
53
|
-
*/
|
|
54
|
-
adornStart?: ReactNode
|
|
55
|
-
/**
|
|
56
|
-
* A string of all className you want applied to the component.
|
|
57
|
-
*/
|
|
58
|
-
className?: string
|
|
59
|
-
/**
|
|
60
|
-
* A description for the field, rendered below the select.
|
|
61
|
-
*/
|
|
62
|
-
help?: ReactNode
|
|
63
|
-
/**
|
|
64
|
-
* Specifies the number of visible options in a drop-down list.
|
|
65
|
-
*/
|
|
66
|
-
htmlSize?: number
|
|
67
|
-
/**
|
|
68
|
-
* Set component validation state to invalid.
|
|
69
|
-
*/
|
|
70
|
-
invalid?: boolean
|
|
71
|
-
/**
|
|
72
|
-
* An error message for the field, rendered below the select when `invalid` is set.
|
|
73
|
-
*/
|
|
74
|
-
invalidFeedback?: ReactNode
|
|
75
|
-
/**
|
|
76
|
-
* The field's caption, rendered as a `FormLabel` associated with this select.
|
|
77
|
-
*/
|
|
78
|
-
label?: ReactNode
|
|
79
|
-
/**
|
|
80
|
-
* Allows more than one option to be selected at once. Pass `value` as a string array (or set
|
|
81
|
-
* `selected` on more than one `options` entry) to control the selection.
|
|
82
|
-
*/
|
|
83
|
-
multiple?: boolean
|
|
84
|
-
/**
|
|
85
|
-
* Method called immediately after the `value` prop changes.
|
|
86
|
-
*/
|
|
87
|
-
onChange?: ChangeEventHandler<HTMLSelectElement>
|
|
88
|
-
/**
|
|
89
|
-
* Options list of the select component. Available keys: `label`, `value`, `disabled`,
|
|
90
|
-
* `selected`.
|
|
91
|
-
* Examples:
|
|
92
|
-
* - `options={[{ value: 'js', label: 'JavaScript' }, { value: 'html', label: 'HTML', disabled: true }]}`
|
|
93
|
-
* - `options={['js', 'html']}`
|
|
94
|
-
*/
|
|
95
|
-
options?: SelectOptionDef[] | string[]
|
|
96
|
-
/**
|
|
97
|
-
* Renders a disabled placeholder option as the first item (e.g. `"Select a country…"`).
|
|
98
|
-
* The option has an empty value so it is not selectable once another option is chosen.
|
|
99
|
-
*/
|
|
100
|
-
placeholder?: string
|
|
101
|
-
/**
|
|
102
|
-
* Size the component sm or lg.
|
|
103
|
-
*/
|
|
104
|
-
size?: 'sm' | 'lg'
|
|
105
|
-
/**
|
|
106
|
-
* Set component validation state to valid.
|
|
107
|
-
*/
|
|
108
|
-
valid?: boolean
|
|
109
|
-
/**
|
|
110
|
-
* A success message for the field, rendered below the select when `valid` is set.
|
|
111
|
-
*/
|
|
112
|
-
validFeedback?: ReactNode
|
|
113
|
-
/**
|
|
114
|
-
* The `value` attribute of component.
|
|
115
|
-
*
|
|
116
|
-
* @controllable onChange
|
|
117
|
-
* */
|
|
118
|
-
value?: string | string[] | number
|
|
119
|
-
}
|
|
120
|
-
|
|
121
|
-
export const Select = forwardRef<HTMLSelectElement, SelectProps>(
|
|
122
|
-
(
|
|
123
|
-
{
|
|
124
|
-
adornEnd,
|
|
125
|
-
adornStart,
|
|
126
|
-
children,
|
|
127
|
-
className,
|
|
128
|
-
help,
|
|
129
|
-
htmlSize,
|
|
130
|
-
id,
|
|
131
|
-
invalid,
|
|
132
|
-
invalidFeedback,
|
|
133
|
-
label,
|
|
134
|
-
multiple,
|
|
135
|
-
options,
|
|
136
|
-
placeholder,
|
|
137
|
-
size,
|
|
138
|
-
valid,
|
|
139
|
-
validFeedback,
|
|
140
|
-
...rest
|
|
141
|
-
},
|
|
142
|
-
ref
|
|
143
|
-
) => {
|
|
144
|
-
const selectRef = useRef<HTMLSelectElement>(null)
|
|
145
|
-
const forkedRef = useForkedRef(ref, selectRef)
|
|
146
|
-
|
|
147
|
-
const selectedValues = Array.isArray(options)
|
|
148
|
-
? options
|
|
149
|
-
.filter(
|
|
150
|
-
(option): option is SelectOptionDef => typeof option === 'object' && !!option.selected
|
|
151
|
-
)
|
|
152
|
-
.map((option) => String(option.value ?? ''))
|
|
153
|
-
: []
|
|
154
|
-
|
|
155
|
-
devWarning(
|
|
156
|
-
!multiple && selectedValues.length > 1,
|
|
157
|
-
'Select: more than one option has `selected: true` but `multiple` is not set — only ' +
|
|
158
|
-
'the last one will be selected, matching native <select> behavior.'
|
|
159
|
-
)
|
|
160
|
-
|
|
161
|
-
// React warns against setting `selected` directly on <option>, recommending `defaultValue`/
|
|
162
|
-
// `value` on <select> instead — so `options[].selected` is resolved into a `defaultValue`
|
|
163
|
-
// here rather than rendered as an attribute. Left alone when the caller already controls
|
|
164
|
-
// `value`/`defaultValue` themselves.
|
|
165
|
-
const inferredDefaultValue =
|
|
166
|
-
selectedValues.length && rest.value === undefined && rest.defaultValue === undefined
|
|
167
|
-
? multiple
|
|
168
|
-
? selectedValues
|
|
169
|
-
: selectedValues[selectedValues.length - 1]
|
|
170
|
-
: undefined
|
|
171
|
-
|
|
172
|
-
const { describedBy, feedbackId, helpId, inputId } = useFormField({
|
|
173
|
-
ariaDescribedBy: rest['aria-describedby'],
|
|
174
|
-
help,
|
|
175
|
-
id,
|
|
176
|
-
invalid,
|
|
177
|
-
invalidFeedback,
|
|
178
|
-
valid,
|
|
179
|
-
validFeedback
|
|
180
|
-
})
|
|
181
|
-
|
|
182
|
-
const hasAdorn = adornStart != null || adornEnd != null
|
|
183
|
-
// A caret can only pop the dropdown open when the select actually renders as one - an inline
|
|
184
|
-
// listbox (`multiple`, or a `size` greater than 1) has no picker to show.
|
|
185
|
-
const isDropdown = !multiple && (!htmlSize || htmlSize <= 1)
|
|
186
|
-
|
|
187
|
-
// chassis-css's `.form-input:has(.ghost-input.is-valid)` selector reads validation state off
|
|
188
|
-
// the inner select, not the wrapper, once adorns turn `.form-input` into a flex container -
|
|
189
|
-
// see https://chassis-ui.com/css/docs/forms/input-adorn.
|
|
190
|
-
const selectClassName = classNames(
|
|
191
|
-
hasAdorn ? 'ghost-input' : 'form-input',
|
|
192
|
-
!hasAdorn && size,
|
|
193
|
-
validationClassName(invalid, valid),
|
|
194
|
-
!hasAdorn && className
|
|
195
|
-
)
|
|
196
|
-
|
|
197
|
-
const handleWrapperClick: MouseEventHandler<HTMLDivElement> = (event) => {
|
|
198
|
-
const node = selectRef.current
|
|
199
|
-
const target = event.target as HTMLElement
|
|
200
|
-
if (!node || node.disabled || !isDropdown || target === node || target.closest('button, a'))
|
|
201
|
-
return
|
|
202
|
-
node.focus()
|
|
203
|
-
try {
|
|
204
|
-
// showPicker() opens the native dropdown from a proxy click; unsupported browsers fall
|
|
205
|
-
// back to the focus() above, same as tabbing to a bare select and pressing Space/Down.
|
|
206
|
-
node.showPicker?.()
|
|
207
|
-
} catch {
|
|
208
|
-
// Can throw without a user activation or under a policy-restricted embed - focus() still
|
|
209
|
-
// leaves the select reachable via the keyboard.
|
|
210
|
-
}
|
|
211
|
-
}
|
|
212
|
-
|
|
213
|
-
const select = (
|
|
214
|
-
<select
|
|
215
|
-
{...rest}
|
|
216
|
-
aria-describedby={describedBy}
|
|
217
|
-
aria-invalid={invalid || undefined}
|
|
218
|
-
className={selectClassName}
|
|
219
|
-
id={inputId}
|
|
220
|
-
multiple={multiple}
|
|
221
|
-
ref={forkedRef}
|
|
222
|
-
size={htmlSize}
|
|
223
|
-
{...(inferredDefaultValue !== undefined && { defaultValue: inferredDefaultValue })}
|
|
224
|
-
>
|
|
225
|
-
{placeholder && (
|
|
226
|
-
<option value="" disabled>
|
|
227
|
-
{placeholder}
|
|
228
|
-
</option>
|
|
229
|
-
)}
|
|
230
|
-
{options
|
|
231
|
-
? options.map((option, index) => {
|
|
232
|
-
return (
|
|
233
|
-
<option
|
|
234
|
-
{...(typeof option === 'object' &&
|
|
235
|
-
option.disabled && { disabled: option.disabled })}
|
|
236
|
-
{...(typeof option === 'object' &&
|
|
237
|
-
option.value != null && { value: option.value })}
|
|
238
|
-
// eslint-disable-next-line react/no-array-index-key
|
|
239
|
-
key={index}
|
|
240
|
-
>
|
|
241
|
-
{typeof option === 'string'
|
|
242
|
-
? option
|
|
243
|
-
: (option.label ?? String(option.value ?? ''))}
|
|
244
|
-
</option>
|
|
245
|
-
)
|
|
246
|
-
})
|
|
247
|
-
: children}
|
|
248
|
-
</select>
|
|
249
|
-
)
|
|
250
|
-
|
|
251
|
-
const rendered = hasAdorn ? (
|
|
252
|
-
<div
|
|
253
|
-
className={classNames('form-input', isDropdown && 'form-caret', size, className)}
|
|
254
|
-
onClick={handleWrapperClick}
|
|
255
|
-
>
|
|
256
|
-
{adornStart}
|
|
257
|
-
{select}
|
|
258
|
-
{adornEnd}
|
|
259
|
-
</div>
|
|
260
|
-
) : (
|
|
261
|
-
select
|
|
262
|
-
)
|
|
263
|
-
|
|
264
|
-
return renderFormField({
|
|
265
|
-
children: rendered,
|
|
266
|
-
help,
|
|
267
|
-
ids: { feedback: feedbackId, help: helpId, input: inputId },
|
|
268
|
-
invalid,
|
|
269
|
-
invalidFeedback,
|
|
270
|
-
label,
|
|
271
|
-
valid,
|
|
272
|
-
validFeedback
|
|
273
|
-
})
|
|
274
|
-
}
|
|
275
|
-
)
|
|
276
|
-
|
|
277
|
-
Select.displayName = 'Select'
|