@chassis-ui/react 0.2.0 → 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +1 -1
- package/README.md +56 -23
- package/dist/accordion.js +1 -1
- package/dist/alert.d.ts +2 -0
- package/dist/alert.js +1 -0
- package/dist/autocomplete.d.ts +1 -1
- package/dist/autocomplete.js +1 -1
- package/dist/avatar.d.ts +1 -1
- package/dist/avatar.js +1 -1
- package/dist/badge.d.ts +1 -1
- package/dist/badge.js +1 -1
- package/dist/breadcrumb.js +1 -1
- package/dist/button-group.d.ts +1 -1
- package/dist/button-group.js +1 -1
- package/dist/button.d.ts +1 -1
- package/dist/button.js +1 -1
- package/dist/calendar.d.ts +1 -1
- package/dist/calendar.js +1 -1
- package/dist/card.d.ts +1 -1
- package/dist/card.js +1 -1
- package/dist/carousel.d.ts +1 -1
- package/dist/carousel.js +1 -1
- package/dist/checkbox.d.ts +2 -2
- package/dist/checkbox.js +1 -1
- package/dist/chip-input.js +1 -1
- package/dist/chip.d.ts +1 -1
- package/dist/chip.js +1 -1
- package/dist/chunks/Button-BoymWE-L.js +2 -0
- package/dist/chunks/Button-BoymWE-L.js.map +1 -0
- package/dist/chunks/{Button-Cptd4Yk7.d.ts → Button-BuZ_GOHS.d.ts} +3 -2
- package/dist/chunks/Chip-DCaWaBqo.js +2 -0
- package/dist/chunks/Chip-DCaWaBqo.js.map +1 -0
- package/dist/chunks/CloseButton-DPgQztE0.js +2 -0
- package/dist/chunks/CloseButton-DPgQztE0.js.map +1 -0
- package/dist/chunks/ComboboxItem-C9TpoJOI.d.ts +2 -1
- package/dist/chunks/ComboboxListBox-Cm3L1ULl.js +2 -0
- package/dist/chunks/ComboboxListBox-Cm3L1ULl.js.map +1 -0
- package/dist/chunks/DateSegment-2agXAd0f.js +2 -0
- package/dist/chunks/DateSegment-2agXAd0f.js.map +1 -0
- package/dist/chunks/{FormHelp-Be2PQL0y.js → FormHelp-AE6_iSLJ.js} +2 -1
- package/dist/chunks/FormHelp-AE6_iSLJ.js.map +1 -0
- package/dist/chunks/FormLabel-CYcQiFUI.js +2 -1
- package/dist/chunks/FormLabel-CYcQiFUI.js.map +1 -0
- package/dist/chunks/Icon-CioraWLF.d.ts +2 -1
- package/dist/chunks/Icon-DLB1f88W.js +2 -0
- package/dist/chunks/Icon-DLB1f88W.js.map +1 -0
- package/dist/chunks/{Link-B0Y1xgYi.d.ts → Link-CKymd2ru.d.ts} +8 -6
- package/dist/chunks/Link-CZsWCnQb.js +2 -0
- package/dist/chunks/Link-CZsWCnQb.js.map +1 -0
- package/dist/chunks/Menu-CSBg2Zmc.js +2 -0
- package/dist/chunks/Menu-CSBg2Zmc.js.map +1 -0
- package/dist/chunks/Menu-QeYOzrUL.d.ts +95 -0
- package/dist/chunks/MenuItemDef-D0VDtYIQ.d.ts +2 -1
- package/dist/chunks/MenuToggle-BdQtF7FV.js +2 -0
- package/dist/chunks/MenuToggle-BdQtF7FV.js.map +1 -0
- package/dist/chunks/Portal-CgeR1WXV.js +2 -0
- package/dist/chunks/Portal-CgeR1WXV.js.map +1 -0
- package/dist/chunks/RangeCalendar-BJl-j4W2.js +2 -0
- package/dist/chunks/RangeCalendar-BJl-j4W2.js.map +1 -0
- package/dist/chunks/VisuallyHidden-C2dM7HhC.js +2 -0
- package/dist/chunks/VisuallyHidden-C2dM7HhC.js.map +1 -0
- package/dist/chunks/accordion-B8UWyvQB.js +2 -0
- package/dist/chunks/accordion-B8UWyvQB.js.map +1 -0
- package/dist/chunks/alert-BXI-_qlt.js +2 -0
- package/dist/chunks/alert-BXI-_qlt.js.map +1 -0
- package/dist/chunks/autocomplete-Baf9VSHN.js +2 -0
- package/dist/chunks/autocomplete-Baf9VSHN.js.map +1 -0
- package/dist/chunks/avatar-S3dGy6Qc.js +2 -0
- package/dist/chunks/avatar-S3dGy6Qc.js.map +1 -0
- package/dist/chunks/{badge-Bj8mf8lu.js → badge-D2oztCvs.js} +2 -1
- package/dist/chunks/badge-D2oztCvs.js.map +1 -0
- package/dist/chunks/{breadcrumb-DDxnx_iS.js → breadcrumb-s6J9itez.js} +2 -1
- package/dist/chunks/breadcrumb-s6J9itez.js.map +1 -0
- package/dist/chunks/breakpoints-CGk8szzR.js +2 -0
- package/dist/chunks/breakpoints-CGk8szzR.js.map +1 -0
- package/dist/chunks/breakpoints-ECy4lKQT.d.ts +6 -0
- package/dist/chunks/button-group-BGppPrIv.js +2 -0
- package/dist/chunks/button-group-BGppPrIv.js.map +1 -0
- package/dist/chunks/card-CobeDpf1.js +2 -0
- package/dist/chunks/card-CobeDpf1.js.map +1 -0
- package/dist/chunks/carousel-fTVPqnSV.js +2 -0
- package/dist/chunks/carousel-fTVPqnSV.js.map +1 -0
- package/dist/chunks/checkbox-ZyQn5Ku5.js +2 -0
- package/dist/chunks/checkbox-ZyQn5Ku5.js.map +1 -0
- package/dist/chunks/chip-input-BpVDRERg.js +2 -0
- package/dist/chunks/chip-input-BpVDRERg.js.map +1 -0
- package/dist/chunks/collapse--Go2Y73B.js +2 -0
- package/dist/chunks/collapse--Go2Y73B.js.map +1 -0
- package/dist/chunks/{color-input-CyRaLR_G.js → color-input-Bwl5ef5B.js} +2 -1
- package/dist/chunks/color-input-Bwl5ef5B.js.map +1 -0
- package/dist/chunks/combobox-Bp1tIaiW.js +2 -0
- package/dist/chunks/combobox-Bp1tIaiW.js.map +1 -0
- package/dist/chunks/context-menu-B4a0tS-h.js +2 -0
- package/dist/chunks/context-menu-B4a0tS-h.js.map +1 -0
- package/dist/chunks/datagrid-CH3Cy-q7.js +3 -0
- package/dist/chunks/datagrid-CH3Cy-q7.js.map +1 -0
- package/dist/chunks/dateRangePresets-R1FtA1zp.d.ts +2 -1
- package/dist/chunks/datepicker-bOiM_zhJ.js +2 -0
- package/dist/chunks/datepicker-bOiM_zhJ.js.map +1 -0
- package/dist/chunks/dialogTransition-i9vw0i2Z.js +2 -1
- package/dist/chunks/dialogTransition-i9vw0i2Z.js.map +1 -0
- package/dist/chunks/direction-LN6uwsK5.js +2 -0
- package/dist/chunks/direction-LN6uwsK5.js.map +1 -0
- package/dist/chunks/divider-CjbF4OfA.js +2 -0
- package/dist/chunks/divider-CjbF4OfA.js.map +1 -0
- package/dist/chunks/drawer-C7Tz4XU_.js +2 -0
- package/dist/chunks/drawer-C7Tz4XU_.js.map +1 -0
- package/dist/chunks/{file-input-RRqZSzjH.js → file-input-CDM6qrmV.js} +2 -1
- package/dist/chunks/file-input-CDM6qrmV.js.map +1 -0
- package/dist/chunks/flex-B52oLCCC.js +2 -0
- package/dist/chunks/flex-B52oLCCC.js.map +1 -0
- package/dist/chunks/floating-input-DmSZZc27.js +2 -0
- package/dist/chunks/floating-input-DmSZZc27.js.map +1 -0
- package/dist/chunks/focus-ring-SR_LwaN7.js +2 -1
- package/dist/chunks/focus-ring-SR_LwaN7.js.map +1 -0
- package/dist/chunks/focusRedirect-BrvK3U_o.js +2 -1
- package/dist/chunks/focusRedirect-BrvK3U_o.js.map +1 -0
- package/dist/chunks/form-GpdAyWWi.js +2 -1
- package/dist/chunks/form-GpdAyWWi.js.map +1 -0
- package/dist/chunks/form-field-CNPGTMiW.js +2 -0
- package/dist/chunks/form-field-CNPGTMiW.js.map +1 -0
- package/dist/chunks/grid-C7tO-ppc.js +2 -0
- package/dist/chunks/grid-C7tO-ppc.js.map +1 -0
- package/dist/chunks/{icon-mxYpL5nL.js → icon-BQsT6YtE.js} +2 -1
- package/dist/chunks/icon-BQsT6YtE.js.map +1 -0
- package/dist/chunks/{iconConfig-Bu6Pt9o3.d.ts → iconConfig-C6gbYhsD.d.ts} +5 -3
- package/dist/chunks/iconSlot-BNu2MrFI.js +2 -0
- package/dist/chunks/iconSlot-BNu2MrFI.js.map +1 -0
- package/dist/chunks/{index-BKMW0rkw.d.ts → index-0jbACjYQ.d.ts} +5 -3
- package/dist/chunks/{index-BO_1MN66.d.ts → index-4cKG9KWB.d.ts} +3 -5
- package/dist/chunks/index-6uob77s9.d.ts +2 -1
- package/dist/chunks/{index-tOodmT36.d.ts → index-91YA-jkp.d.ts} +4 -6
- package/dist/chunks/index-9rQeMqVI.d.ts +42 -0
- package/dist/chunks/index-B0-8n-Gs.d.ts +2 -1
- package/dist/chunks/{index-D9PZHY_I.d.ts → index-B19ZH3fm.d.ts} +3 -2
- package/dist/chunks/{index-COsIPd8L.d.ts → index-B1kw0jzM.d.ts} +3 -2
- package/dist/chunks/index-B2K-O9kl.d.ts +59 -0
- package/dist/chunks/{index-CJzKu7QI.d.ts → index-B5bF1JxF.d.ts} +3 -2
- package/dist/chunks/index-B8uaSJA9.d.ts +2 -1
- package/dist/chunks/index-BA-raEMm.d.ts +2 -1
- package/dist/chunks/{index-C61tPIJ-.d.ts → index-BAsbRx5n.d.ts} +6 -2
- package/dist/chunks/index-BF3OWUVc.d.ts +66 -0
- package/dist/chunks/{index-Ctuk1xBU.d.ts → index-BLS1jhSJ.d.ts} +10 -7
- package/dist/chunks/{index-JllMXhVx.d.ts → index-BMkbJVHg.d.ts} +22 -5
- package/dist/chunks/{index-DB_ToPdz.d.ts → index-BNf0jIIL.d.ts} +12 -1
- package/dist/chunks/{index-t_x6jj7l.d.ts → index-BOx8v-oT.d.ts} +3 -2
- package/dist/chunks/index-BSLneLYu.d.ts +79 -0
- package/dist/chunks/index-BVGGIaPX.d.ts +2 -1
- package/dist/chunks/{index-qgZ5VGmc.d.ts → index-B_UzbGOa.d.ts} +20 -2
- package/dist/chunks/{index-XjLvaH4G.d.ts → index-BfEJYF4c.d.ts} +7 -6
- package/dist/chunks/index-Bi8FFadV.d.ts +2 -1
- package/dist/chunks/index-Bkj17NEQ.d.ts +2 -1
- package/dist/chunks/{index--0_IpTDT.d.ts → index-BxROljJI.d.ts} +3 -2
- package/dist/chunks/index-Bz8MDq0H.d.ts +85 -0
- package/dist/chunks/{index-Cf2n0l0U.d.ts → index-C4Dks__B.d.ts} +3 -2
- package/dist/chunks/{index-CRfm7W6C.d.ts → index-C9gzVqwX.d.ts} +3 -2
- package/dist/chunks/index-CCXJXToc.d.ts +2 -1
- package/dist/chunks/{index-COsYSDrz.d.ts → index-CFnQubsV.d.ts} +17 -3
- package/dist/chunks/{index-8PhBSbNQ.d.ts → index-CHQR8x8_.d.ts} +16 -17
- package/dist/chunks/{index-BTTeKpiE.d.ts → index-CIwzgZJi.d.ts} +3 -2
- package/dist/chunks/{index-dh3TKanY.d.ts → index-CTpwB1yR.d.ts} +3 -2
- package/dist/chunks/{index-DR8sYtvd.d.ts → index-CYvVmTPR.d.ts} +20 -87
- package/dist/chunks/{index-Dum6Y9XR.d.ts → index-Cc4SSslb.d.ts} +20 -2
- package/dist/chunks/index-CftERHnE.d.ts +2 -1
- package/dist/chunks/{index-CaQ1JY5D.d.ts → index-Ci7AEgEc.d.ts} +4 -6
- package/dist/chunks/{index-DKma0jQw.d.ts → index-CjT_4IZx.d.ts} +4 -3
- package/dist/chunks/{index-BxTlIaZu.d.ts → index-CqZ68Z8R.d.ts} +125 -11
- package/dist/chunks/{index-D2VVO8rx.d.ts → index-CsARGAzD.d.ts} +3 -2
- package/dist/chunks/index-CxjNw4ss.d.ts +216 -0
- package/dist/chunks/index-DAoPg59I.d.ts +2 -1
- package/dist/chunks/index-DHGgezXU.d.ts +2 -1
- package/dist/chunks/index-DHOG_rjE.d.ts +121 -0
- package/dist/chunks/index-DHcztR18.d.ts +208 -0
- package/dist/chunks/index-DJfga0Ce.d.ts +57 -0
- package/dist/chunks/{index-DJJocp_q.d.ts → index-DM01FX3a.d.ts} +4 -3
- package/dist/chunks/index-DMbdEm__.d.ts +119 -0
- package/dist/chunks/{index-BlgkO3dn.d.ts → index-DP5xugE-.d.ts} +25 -34
- package/dist/chunks/index-DPCwFiJL.d.ts +95 -0
- package/dist/chunks/{index-BTDgfLxK.d.ts → index-DQImhbhy.d.ts} +21 -5
- package/dist/chunks/index-DaHQdNul.d.ts +182 -0
- package/dist/chunks/index-Dcc_W6Kv.d.ts +2 -1
- package/dist/chunks/index-Ddd7iWfm.d.ts +32 -0
- package/dist/chunks/index-Dfg4Ftb8.d.ts +2 -1
- package/dist/chunks/index-DtbUXxjz.d.ts +2 -1
- package/dist/chunks/{index-DPV62IdF.d.ts → index-DtvHH_Mb.d.ts} +12 -10
- package/dist/chunks/index-Du9fBqkT.d.ts +56 -0
- package/dist/chunks/index-HrKN6s8z.d.ts +2 -1
- package/dist/chunks/{index-ClT3E_hv.d.ts → index-NGgDkhyn.d.ts} +19 -25
- package/dist/chunks/{index-Dfy1YW5j.d.ts → index-U27Ar174.d.ts} +3 -2
- package/dist/chunks/{index-CsMIgBsd.d.ts → index-YJ9QdBuq.d.ts} +10 -10
- package/dist/chunks/{index-Dh5CaHTP.d.ts → index-aRdgpeRb.d.ts} +3 -2
- package/dist/chunks/index-g74gO0pc.d.ts +36 -0
- package/dist/chunks/{index-BO9jLOIb.d.ts → index-lSPcxiii.d.ts} +3 -2
- package/dist/chunks/{index-nklPDKlC.d.ts → index-x0vZRyoU.d.ts} +4 -3
- package/dist/chunks/{input-adorn-C_EHML68.js → input-adorn-DwdX-jxA.js} +2 -1
- package/dist/chunks/input-adorn-DwdX-jxA.js.map +1 -0
- package/dist/chunks/{input-group-iI7azfvE.js → input-group-Cuiuf4Dl.js} +2 -1
- package/dist/chunks/input-group-Cuiuf4Dl.js.map +1 -0
- package/dist/chunks/lazyElement-tfMG21pZ.js +2 -0
- package/dist/chunks/lazyElement-tfMG21pZ.js.map +1 -0
- package/dist/chunks/list-BQCkwWjF.js +2 -0
- package/dist/chunks/list-BQCkwWjF.js.map +1 -0
- package/dist/chunks/menu-98EAD9nj.js +2 -0
- package/dist/chunks/menu-98EAD9nj.js.map +1 -0
- package/dist/chunks/modal-bgDR29Jh.js +2 -0
- package/dist/chunks/modal-bgDR29Jh.js.map +1 -0
- package/dist/chunks/nav-TiZuTHC6.js +2 -0
- package/dist/chunks/nav-TiZuTHC6.js.map +1 -0
- package/dist/chunks/nav-overflow-Ay5mM5Gc.js +2 -0
- package/dist/chunks/nav-overflow-Ay5mM5Gc.js.map +1 -0
- package/dist/chunks/navOverflow-B5krZe6D.js +2 -0
- package/dist/chunks/navOverflow-B5krZe6D.js.map +1 -0
- package/dist/chunks/navVariant-CnD21GBS.d.ts +5 -0
- package/dist/chunks/navVariant-DeGTk9B7.js +2 -0
- package/dist/chunks/navVariant-DeGTk9B7.js.map +1 -0
- package/dist/chunks/navbar-DxIwt0sc.js +2 -0
- package/dist/chunks/navbar-DxIwt0sc.js.map +1 -0
- package/dist/chunks/notification-Dbci5Ka3.js +2 -0
- package/dist/chunks/notification-Dbci5Ka3.js.map +1 -0
- package/dist/chunks/number-field-IBIX2IWH.js +2 -0
- package/dist/chunks/number-field-IBIX2IWH.js.map +1 -0
- package/dist/chunks/otp-input-ws393uPB.js +2 -0
- package/dist/chunks/otp-input-ws393uPB.js.map +1 -0
- package/dist/chunks/overlayPlacement-BtS90IVf.js +2 -1
- package/dist/chunks/overlayPlacement-BtS90IVf.js.map +1 -0
- package/dist/chunks/{overlayPlacement-B7843a-Q.d.ts → overlayPlacement-CIsLpycT.d.ts} +3 -2
- package/dist/chunks/pagination-BkOquk-x.js +2 -0
- package/dist/chunks/pagination-BkOquk-x.js.map +1 -0
- package/dist/chunks/password-strength-DDK8pHRq.js +2 -0
- package/dist/chunks/password-strength-DDK8pHRq.js.map +1 -0
- package/dist/chunks/placeholder-BCr83sUn.js +2 -0
- package/dist/chunks/placeholder-BCr83sUn.js.map +1 -0
- package/dist/chunks/polymorphic-BhGNZQja.js +2 -0
- package/dist/chunks/polymorphic-BhGNZQja.js.map +1 -0
- package/dist/chunks/polymorphic-CVHbTHSN.d.ts +2 -1
- package/dist/chunks/popover-Bdg8D4sm.js +2 -0
- package/dist/chunks/popover-Bdg8D4sm.js.map +1 -0
- package/dist/chunks/{progress-DlrZ71aV.js → progress-zWkTltor.js} +2 -1
- package/dist/chunks/progress-zWkTltor.js.map +1 -0
- package/dist/chunks/radio-B6gJdtoN.js +2 -0
- package/dist/chunks/radio-B6gJdtoN.js.map +1 -0
- package/dist/chunks/{range-input-BN3430j-.js → range-input-CT_8TKL7.js} +2 -1
- package/dist/chunks/range-input-CT_8TKL7.js.map +1 -0
- package/dist/chunks/renderFormCheck-DN_-V62U.js +2 -0
- package/dist/chunks/renderFormCheck-DN_-V62U.js.map +1 -0
- package/dist/chunks/{renderFormCheck-CYWG-Rbt.d.ts → renderFormCheck-nKgpa_a3.d.ts} +4 -3
- package/dist/chunks/renderFormField-Brkw1yA6.js +2 -0
- package/dist/chunks/renderFormField-Brkw1yA6.js.map +1 -0
- package/dist/chunks/{renderFormField-fBEny6JV.d.ts → renderFormField-ChNagAFN.d.ts} +3 -2
- package/dist/chunks/{renderMenuItemContent-CmqT3YUQ.js → renderMenuItemContent-DUezZrpj.js} +2 -1
- package/dist/chunks/renderMenuItemContent-DUezZrpj.js.map +1 -0
- package/dist/chunks/scrollspy-C2HmrnZ4.js +2 -0
- package/dist/chunks/scrollspy-C2HmrnZ4.js.map +1 -0
- package/dist/chunks/scrollspy-D_lPjb92.js +2 -0
- package/dist/chunks/scrollspy-D_lPjb92.js.map +1 -0
- package/dist/chunks/search-field--nDoCI_E.js +2 -0
- package/dist/chunks/search-field--nDoCI_E.js.map +1 -0
- package/dist/chunks/select-BwJIfv9f.js +2 -0
- package/dist/chunks/select-BwJIfv9f.js.map +1 -0
- package/dist/chunks/skeleton-CmZBLJwp.js +2 -0
- package/dist/chunks/skeleton-CmZBLJwp.js.map +1 -0
- package/dist/chunks/slot-CNhFZdHF.js +2 -0
- package/dist/chunks/slot-CNhFZdHF.js.map +1 -0
- package/dist/chunks/spacingClassName-DVhk8m3P.js +2 -1
- package/dist/chunks/spacingClassName-DVhk8m3P.js.map +1 -0
- package/dist/chunks/spinner-DblhvrHL.js +2 -0
- package/dist/chunks/spinner-DblhvrHL.js.map +1 -0
- package/dist/chunks/stack-DK5F53VT.js +2 -0
- package/dist/chunks/stack-DK5F53VT.js.map +1 -0
- package/dist/chunks/static-table-D0M4oc_t.js +2 -1
- package/dist/chunks/static-table-D0M4oc_t.js.map +1 -0
- package/dist/chunks/stepper-CVXMJ2yg.js +2 -0
- package/dist/chunks/stepper-CVXMJ2yg.js.map +1 -0
- package/dist/chunks/switch-C6s3LxEv.js +2 -0
- package/dist/chunks/switch-C6s3LxEv.js.map +1 -0
- package/dist/chunks/table-Cy6uEuEP.js +2 -0
- package/dist/chunks/table-Cy6uEuEP.js.map +1 -0
- package/dist/chunks/tableClassName-CZA2Bse8.js +2 -1
- package/dist/chunks/tableClassName-CZA2Bse8.js.map +1 -0
- package/dist/chunks/tabs-91T7-8qq.js +2 -0
- package/dist/chunks/tabs-91T7-8qq.js.map +1 -0
- package/dist/chunks/text-input-B4pTv6SU.js +2 -0
- package/dist/chunks/text-input-B4pTv6SU.js.map +1 -0
- package/dist/chunks/textarea-1A1nABQE.js +2 -0
- package/dist/chunks/textarea-1A1nABQE.js.map +1 -0
- package/dist/chunks/time-field-B3MA7ED_.js +2 -0
- package/dist/chunks/time-field-B3MA7ED_.js.map +1 -0
- package/dist/chunks/toast-CGHl3-oU.js +2 -0
- package/dist/chunks/toast-CGHl3-oU.js.map +1 -0
- package/dist/chunks/tooltip-Bc-u6nIW.js +2 -0
- package/dist/chunks/tooltip-Bc-u6nIW.js.map +1 -0
- package/dist/chunks/tree-Cql1veeZ.js +2 -0
- package/dist/chunks/tree-Cql1veeZ.js.map +1 -0
- package/dist/chunks/{types-CS_40Txv.d.ts → types-D6FM7bYR.d.ts} +16 -1
- package/dist/chunks/unhandledProps-9Kdj7WVf.js +2 -0
- package/dist/chunks/unhandledProps-9Kdj7WVf.js.map +1 -0
- package/dist/chunks/useButtonSemantics-CILM_lhi.js +2 -1
- package/dist/chunks/useButtonSemantics-CILM_lhi.js.map +1 -0
- package/dist/chunks/useControllableState-CPUJxfKW.js +2 -0
- package/dist/chunks/useControllableState-CPUJxfKW.js.map +1 -0
- package/dist/chunks/useDialogElement-CgOnJAzu.js +2 -0
- package/dist/chunks/useDialogElement-CgOnJAzu.js.map +1 -0
- package/dist/chunks/useDisabledAnchorGuard-Cz58UCXy.js +2 -1
- package/dist/chunks/useDisabledAnchorGuard-Cz58UCXy.js.map +1 -0
- package/dist/chunks/useFloatingOverlay-DLIvwx-8.js +2 -0
- package/dist/chunks/useFloatingOverlay-DLIvwx-8.js.map +1 -0
- package/dist/chunks/useForkedRef-DVEfT-KI.js +2 -1
- package/dist/chunks/useForkedRef-DVEfT-KI.js.map +1 -0
- package/dist/chunks/useFormField-BOqmBTC4.js +2 -1
- package/dist/chunks/useFormField-BOqmBTC4.js.map +1 -0
- package/dist/chunks/useIsomorphicLayoutEffect-BbqRwuqn.js +2 -1
- package/dist/chunks/useIsomorphicLayoutEffect-BbqRwuqn.js.map +1 -0
- package/dist/chunks/useOpenStateProps-DykUbnPJ.js +2 -0
- package/dist/chunks/useOpenStateProps-DykUbnPJ.js.map +1 -0
- package/dist/chunks/useToastRegionQueue-CIV5SdiE.js +2 -0
- package/dist/chunks/useToastRegionQueue-CIV5SdiE.js.map +1 -0
- package/dist/chunks/useTransitionState-e5ToY7eX.js +2 -0
- package/dist/chunks/useTransitionState-e5ToY7eX.js.map +1 -0
- package/dist/chunks/validationClassName-gRGs4KBm.js +2 -1
- package/dist/chunks/validationClassName-gRGs4KBm.js.map +1 -0
- package/dist/chunks/visibleState-B_i1zHu2.js +2 -0
- package/dist/chunks/visibleState-B_i1zHu2.js.map +1 -0
- package/dist/close-button.d.ts +1 -1
- package/dist/close-button.js +1 -1
- package/dist/collapse.js +1 -1
- package/dist/color-input.js +1 -1
- package/dist/combobox.js +1 -1
- package/dist/context-menu.d.ts +2 -0
- package/dist/context-menu.js +1 -0
- package/dist/datagrid.d.ts +1 -1
- package/dist/datagrid.js +1 -1
- package/dist/datepicker.d.ts +1 -1
- package/dist/datepicker.js +1 -1
- package/dist/divider.d.ts +2 -0
- package/dist/divider.js +1 -0
- package/dist/drawer.d.ts +1 -1
- package/dist/drawer.js +1 -1
- package/dist/file-input.js +1 -1
- package/dist/flex.d.ts +1 -1
- package/dist/flex.js +1 -1
- package/dist/floating-input.d.ts +1 -1
- package/dist/floating-input.js +1 -1
- package/dist/form-field.d.ts +1 -1
- package/dist/form-field.js +1 -1
- package/dist/form.js +1 -1
- package/dist/grid.d.ts +2 -2
- package/dist/grid.js +1 -1
- package/dist/icon.d.ts +2 -2
- package/dist/icon.js +1 -1
- package/dist/index.d.ts +61 -49
- package/dist/index.js +1 -1
- package/dist/input-adorn.js +1 -1
- package/dist/input-group.js +1 -1
- package/dist/link.d.ts +1 -1
- package/dist/link.js +1 -1
- package/dist/list.d.ts +1 -1
- package/dist/list.js +1 -1
- package/dist/menu.d.ts +2 -1
- package/dist/menu.js +1 -1
- package/dist/modal.d.ts +1 -1
- package/dist/modal.js +1 -1
- package/dist/nav-overflow.d.ts +2 -0
- package/dist/nav-overflow.js +1 -0
- package/dist/nav.d.ts +2 -2
- package/dist/nav.js +1 -1
- package/dist/navbar.d.ts +1 -1
- package/dist/navbar.js +1 -1
- package/dist/notification.d.ts +1 -1
- package/dist/notification.js +1 -1
- package/dist/number-field.d.ts +2 -0
- package/dist/number-field.js +1 -0
- package/dist/otp-input.js +1 -1
- package/dist/pagination.d.ts +1 -1
- package/dist/pagination.js +1 -1
- package/dist/password-strength.d.ts +1 -1
- package/dist/password-strength.js +1 -1
- package/dist/placeholder.d.ts +1 -1
- package/dist/placeholder.js +1 -1
- package/dist/popover.d.ts +1 -1
- package/dist/popover.js +1 -1
- package/dist/portal.d.ts +2 -0
- package/dist/portal.js +1 -0
- package/dist/progress.d.ts +1 -1
- package/dist/progress.js +1 -1
- package/dist/radio.d.ts +1 -1
- package/dist/radio.js +1 -1
- package/dist/range-input.js +1 -1
- package/dist/scrollspy.d.ts +2 -0
- package/dist/scrollspy.js +1 -0
- package/dist/search-field.d.ts +2 -0
- package/dist/search-field.js +1 -0
- package/dist/select.js +1 -1
- package/dist/skeleton.d.ts +1 -1
- package/dist/skeleton.js +1 -1
- package/dist/spinner.d.ts +1 -1
- package/dist/spinner.js +1 -1
- package/dist/stack.d.ts +1 -1
- package/dist/stack.js +1 -1
- package/dist/static-table.d.ts +1 -1
- package/dist/stepper.d.ts +1 -1
- package/dist/stepper.js +1 -1
- package/dist/style.css +1 -1
- package/dist/switch.d.ts +1 -1
- package/dist/switch.js +1 -1
- package/dist/table.d.ts +1 -1
- package/dist/table.js +1 -1
- package/dist/tabs.d.ts +1 -1
- package/dist/tabs.js +1 -1
- package/dist/text-input.js +1 -1
- package/dist/textarea.js +1 -1
- package/dist/time-field.d.ts +2 -0
- package/dist/time-field.js +1 -0
- package/dist/toast.d.ts +1 -1
- package/dist/toast.js +1 -1
- package/dist/tooltip.d.ts +1 -1
- package/dist/tooltip.js +1 -1
- package/dist/tree.d.ts +2 -0
- package/dist/tree.js +1 -0
- package/dist/visually-hidden.d.ts +2 -0
- package/dist/visually-hidden.js +1 -0
- package/package.json +61 -52
- package/dist/chunks/Button-I0aUy5h-.js +0 -1
- package/dist/chunks/Chip-D0Cw0mAr.js +0 -1
- package/dist/chunks/CloseButton-DJM7FRKh.js +0 -1
- package/dist/chunks/ComboboxListBox-BhO8uRNg.js +0 -1
- package/dist/chunks/Icon-BIwkD-kx.js +0 -1
- package/dist/chunks/Link-Cq7FNWpm.js +0 -1
- package/dist/chunks/RangeCalendar-COnSfurr.js +0 -1
- package/dist/chunks/accordion-okRicuG5.js +0 -1
- package/dist/chunks/autocomplete-B0xTc6kg.js +0 -1
- package/dist/chunks/avatar-Bjm0DlPO.js +0 -1
- package/dist/chunks/breakpoints-SLMTNHF9.d.ts +0 -5
- package/dist/chunks/breakpoints-o_2Ev7ir.js +0 -1
- package/dist/chunks/button-group-CPZYA6aZ.js +0 -1
- package/dist/chunks/card-DfF2K_5p.js +0 -1
- package/dist/chunks/carousel-DEvwcA7H.js +0 -1
- package/dist/chunks/checkbox-BFPS0pD6.js +0 -1
- package/dist/chunks/chip-input-CB1lE6vP.js +0 -1
- package/dist/chunks/collapse-WifcChO8.js +0 -1
- package/dist/chunks/combobox-DWEj-Sv7.js +0 -1
- package/dist/chunks/datagrid-nbnNThsT.js +0 -2
- package/dist/chunks/datepicker-CslLKMm1.js +0 -1
- package/dist/chunks/direction-CPhdeL3A.js +0 -1
- package/dist/chunks/drawer-zReFjoJG.js +0 -1
- package/dist/chunks/flex-BTvpgaRv.js +0 -1
- package/dist/chunks/floating-input-CIC9Lm2a.js +0 -1
- package/dist/chunks/form-field-BjQ9SIjx.js +0 -1
- package/dist/chunks/grid-CuFw89yV.js +0 -1
- package/dist/chunks/iconSlot-BmWxJh27.js +0 -1
- package/dist/chunks/index-BDfh8YBc.d.ts +0 -39
- package/dist/chunks/index-CVUMS0x7.d.ts +0 -73
- package/dist/chunks/index-D949AidR.d.ts +0 -40
- package/dist/chunks/index-DEb9zXlC.d.ts +0 -210
- package/dist/chunks/list-CMr-wB9d.js +0 -1
- package/dist/chunks/menu-CXUc-Gva.js +0 -1
- package/dist/chunks/modal-ByIj71Mq.js +0 -1
- package/dist/chunks/nav-BldxFo_B.js +0 -1
- package/dist/chunks/navbar-BwcsQuBk.js +0 -1
- package/dist/chunks/notification-DdqigVB1.js +0 -1
- package/dist/chunks/otp-input-CXe_wkII.js +0 -1
- package/dist/chunks/pagination-BOpEAYW2.js +0 -1
- package/dist/chunks/password-strength-BfLiYiGj.js +0 -1
- package/dist/chunks/placeholder-pg95KELl.js +0 -1
- package/dist/chunks/polymorphic-CACPOv1_.js +0 -1
- package/dist/chunks/popover-BpSfnZzk.js +0 -1
- package/dist/chunks/radio-BV7Sq6D1.js +0 -1
- package/dist/chunks/renderFormCheck-BXBs6_ov.js +0 -1
- package/dist/chunks/renderFormField-wiaxvvLG.js +0 -1
- package/dist/chunks/select-CclIIux8.js +0 -1
- package/dist/chunks/skeleton-CKq76sE_.js +0 -1
- package/dist/chunks/spinner-BEq4PAlu.js +0 -1
- package/dist/chunks/stack-D3retZ-W.js +0 -1
- package/dist/chunks/stepper-CTa6e8uv.js +0 -1
- package/dist/chunks/switch-BmHpq4tL.js +0 -1
- package/dist/chunks/table-Fme9GbAR.js +0 -1
- package/dist/chunks/tabs-BnbMJM_b.js +0 -1
- package/dist/chunks/text-input-DD3d08Yf.js +0 -1
- package/dist/chunks/textarea-C0qQdCcu.js +0 -1
- package/dist/chunks/toast-BQhZ2pv5.js +0 -1
- package/dist/chunks/tooltip-DHtVAYUo.js +0 -1
- package/dist/chunks/triggerElement-BIqA4KqZ.js +0 -1
- package/dist/chunks/useDialogElement-BRIU60cT.js +0 -1
- package/dist/chunks/useFloatingOverlay-CcmDZKMK.js +0 -1
- package/dist/chunks/useToastRegionQueue-BH6bWZ73.js +0 -1
- package/src/components/accordion/Accordion.tsx +0 -190
- package/src/components/accordion/AccordionBody.tsx +0 -46
- package/src/components/accordion/AccordionHeader.tsx +0 -21
- package/src/components/accordion/AccordionItem.tsx +0 -59
- package/src/components/accordion/context.ts +0 -8
- package/src/components/accordion/index.ts +0 -12
- package/src/components/autocomplete/Autocomplete.tsx +0 -464
- package/src/components/autocomplete/AutocompleteGroup.tsx +0 -20
- package/src/components/autocomplete/AutocompleteItem.tsx +0 -18
- package/src/components/autocomplete/index.ts +0 -10
- package/src/components/avatar/Avatar.tsx +0 -137
- package/src/components/avatar/AvatarImage.tsx +0 -19
- package/src/components/avatar/AvatarStack.tsx +0 -98
- package/src/components/avatar/index.ts +0 -10
- package/src/components/badge/Badge.tsx +0 -94
- package/src/components/badge/index.ts +0 -6
- package/src/components/breadcrumb/Breadcrumb.tsx +0 -68
- package/src/components/breadcrumb/BreadcrumbItem.tsx +0 -38
- package/src/components/breadcrumb/index.ts +0 -8
- package/src/components/button/Button.tsx +0 -232
- package/src/components/button/index.ts +0 -6
- package/src/components/button-group/ButtonGroup.tsx +0 -55
- package/src/components/button-group/ButtonToolbar.tsx +0 -47
- package/src/components/button-group/index.ts +0 -8
- package/src/components/calendar/Calendar.scss +0 -57
- package/src/components/calendar/Calendar.tsx +0 -338
- package/src/components/calendar/CalendarMonthBlock.tsx +0 -57
- package/src/components/calendar/CalendarMonthGrid.tsx +0 -94
- package/src/components/calendar/CalendarMonthYearPicker.tsx +0 -164
- package/src/components/calendar/CalendarNavButton.tsx +0 -24
- package/src/components/calendar/CalendarWeekGrid.tsx +0 -58
- package/src/components/calendar/CalendarYearGrid.tsx +0 -128
- package/src/components/calendar/RangeCalendar.scss +0 -95
- package/src/components/calendar/RangeCalendar.tsx +0 -373
- package/src/components/calendar/index.ts +0 -10
- package/src/components/calendar/labels.tsx +0 -71
- package/src/components/card/Card.tsx +0 -173
- package/src/components/card/CardBody.tsx +0 -75
- package/src/components/card/CardFooter.tsx +0 -47
- package/src/components/card/CardGroup.tsx +0 -51
- package/src/components/card/CardHeader.tsx +0 -47
- package/src/components/card/CardImage.tsx +0 -70
- package/src/components/card/CardImageOverlay.tsx +0 -47
- package/src/components/card/CardLink.tsx +0 -40
- package/src/components/card/CardSubtitle.tsx +0 -47
- package/src/components/card/CardText.tsx +0 -47
- package/src/components/card/CardTitle.tsx +0 -47
- package/src/components/card/index.ts +0 -26
- package/src/components/carousel/Carousel.tsx +0 -753
- package/src/components/carousel/CarouselControlButton.tsx +0 -81
- package/src/components/carousel/CarouselControlNext.tsx +0 -28
- package/src/components/carousel/CarouselControlPrev.tsx +0 -28
- package/src/components/carousel/CarouselIndicators.tsx +0 -44
- package/src/components/carousel/CarouselInner.tsx +0 -56
- package/src/components/carousel/CarouselItem.tsx +0 -51
- package/src/components/carousel/CarouselOverlay.tsx +0 -51
- package/src/components/carousel/CarouselPlayPause.tsx +0 -84
- package/src/components/carousel/carouselEngine.ts +0 -170
- package/src/components/carousel/context.ts +0 -29
- package/src/components/carousel/index.ts +0 -25
- package/src/components/checkbox/Checkbox.tsx +0 -252
- package/src/components/checkbox/CheckboxGroup.tsx +0 -145
- package/src/components/checkbox/context.ts +0 -14
- package/src/components/checkbox/index.ts +0 -8
- package/src/components/chip/Chip.tsx +0 -184
- package/src/components/chip/index.ts +0 -6
- package/src/components/chip-input/ChipInput.tsx +0 -371
- package/src/components/chip-input/ChipList.tsx +0 -95
- package/src/components/chip-input/index.ts +0 -6
- package/src/components/close-button/CloseButton.tsx +0 -205
- package/src/components/close-button/index.ts +0 -6
- package/src/components/collapse/Collapse.tsx +0 -128
- package/src/components/collapse/index.ts +0 -6
- package/src/components/color-input/ColorInput.tsx +0 -106
- package/src/components/color-input/index.ts +0 -6
- package/src/components/combobox/Combobox.tsx +0 -320
- package/src/components/combobox/ComboboxGroup.tsx +0 -27
- package/src/components/combobox/ComboboxItem.tsx +0 -44
- package/src/components/combobox/ComboboxListBox.tsx +0 -98
- package/src/components/combobox/index.ts +0 -10
- package/src/components/datagrid/DataGrid.scss +0 -203
- package/src/components/datagrid/DataGrid.tsx +0 -259
- package/src/components/datagrid/DataGridBody.tsx +0 -162
- package/src/components/datagrid/DataGridCell.tsx +0 -47
- package/src/components/datagrid/DataGridColumn.tsx +0 -109
- package/src/components/datagrid/DataGridHeader.tsx +0 -47
- package/src/components/datagrid/DataGridPinBehavior.tsx +0 -225
- package/src/components/datagrid/DataGridRow.tsx +0 -48
- package/src/components/datagrid/DataGridSelectionCell.tsx +0 -74
- package/src/components/datagrid/DataGridTableLayout.ts +0 -30
- package/src/components/datagrid/index.ts +0 -18
- package/src/components/datagrid/useColumnGeometry.ts +0 -161
- package/src/components/datepicker/CalendarToggleButton.tsx +0 -58
- package/src/components/datepicker/ClearButton.tsx +0 -38
- package/src/components/datepicker/DateField.tsx +0 -54
- package/src/components/datepicker/DatePicker.scss +0 -51
- package/src/components/datepicker/DatePicker.tsx +0 -606
- package/src/components/datepicker/DateRangePicker.scss +0 -11
- package/src/components/datepicker/DateRangePicker.tsx +0 -361
- package/src/components/datepicker/index.ts +0 -8
- package/src/components/datepicker/renderDatePickerShell.tsx +0 -104
- package/src/components/drawer/Drawer.tsx +0 -213
- package/src/components/drawer/DrawerBody.tsx +0 -47
- package/src/components/drawer/DrawerFooter.tsx +0 -51
- package/src/components/drawer/DrawerHeader.tsx +0 -60
- package/src/components/drawer/DrawerTitle.tsx +0 -49
- package/src/components/drawer/index.ts +0 -18
- package/src/components/file-input/FileInput.tsx +0 -100
- package/src/components/file-input/index.ts +0 -6
- package/src/components/flex/Flex.tsx +0 -134
- package/src/components/flex/index.ts +0 -6
- package/src/components/floating-input/FloatingInput.tsx +0 -94
- package/src/components/floating-input/index.ts +0 -6
- package/src/components/form/Form.tsx +0 -26
- package/src/components/form/FormFeedback.tsx +0 -64
- package/src/components/form/FormHelp.tsx +0 -46
- package/src/components/form/FormLabel.tsx +0 -26
- package/src/components/form/index.ts +0 -12
- package/src/components/form/renderFormCheck.tsx +0 -86
- package/src/components/form-field/FormField.tsx +0 -84
- package/src/components/form-field/index.ts +0 -6
- package/src/components/form-field/renderFormField.tsx +0 -85
- package/src/components/grid/Col.tsx +0 -69
- package/src/components/grid/Container.tsx +0 -59
- package/src/components/grid/Grid.tsx +0 -86
- package/src/components/grid/GridItem.tsx +0 -123
- package/src/components/grid/Row.tsx +0 -71
- package/src/components/grid/gap.ts +0 -8
- package/src/components/grid/index.ts +0 -14
- package/src/components/icon/Icon.tsx +0 -105
- package/src/components/icon/IconProvider.tsx +0 -40
- package/src/components/icon/index.ts +0 -9
- package/src/components/input-adorn/InputAdorn.tsx +0 -55
- package/src/components/input-adorn/index.ts +0 -6
- package/src/components/input-group/InputGroup.tsx +0 -50
- package/src/components/input-group/InputGroupAddon.tsx +0 -50
- package/src/components/input-group/index.ts +0 -8
- package/src/components/link/Link.tsx +0 -148
- package/src/components/link/index.ts +0 -6
- package/src/components/list/List.tsx +0 -193
- package/src/components/list/ListItem.tsx +0 -91
- package/src/components/list/index.ts +0 -8
- package/src/components/menu/Menu.tsx +0 -408
- package/src/components/menu/MenuDivider.tsx +0 -19
- package/src/components/menu/MenuHeader.tsx +0 -55
- package/src/components/menu/MenuItem.tsx +0 -85
- package/src/components/menu/MenuItemDef.ts +0 -83
- package/src/components/menu/MenuList.tsx +0 -142
- package/src/components/menu/MenuSubmenu.tsx +0 -284
- package/src/components/menu/MenuSubmenuBack.tsx +0 -39
- package/src/components/menu/MenuText.tsx +0 -47
- package/src/components/menu/MenuToggle.tsx +0 -148
- package/src/components/menu/index.ts +0 -23
- package/src/components/menu/menuNavigation.ts +0 -106
- package/src/components/menu/submenuGroup.ts +0 -43
- package/src/components/modal/Modal.tsx +0 -164
- package/src/components/modal/ModalBody.tsx +0 -47
- package/src/components/modal/ModalFooter.tsx +0 -51
- package/src/components/modal/ModalHeader.tsx +0 -60
- package/src/components/modal/ModalTitle.tsx +0 -49
- package/src/components/modal/index.ts +0 -18
- package/src/components/nav/Nav.tsx +0 -97
- package/src/components/nav/NavItem.tsx +0 -42
- package/src/components/nav/NavLink.tsx +0 -48
- package/src/components/nav/NavTitle.tsx +0 -22
- package/src/components/nav/index.ts +0 -11
- package/src/components/navbar/Navbar.tsx +0 -112
- package/src/components/navbar/NavbarBrand.tsx +0 -58
- package/src/components/navbar/NavbarNav.tsx +0 -47
- package/src/components/navbar/NavbarText.tsx +0 -47
- package/src/components/navbar/NavbarToggler.tsx +0 -40
- package/src/components/navbar/index.ts +0 -14
- package/src/components/notification/Notification.scss +0 -15
- package/src/components/notification/Notification.tsx +0 -188
- package/src/components/notification/NotificationIcon.tsx +0 -21
- package/src/components/notification/NotificationStack.tsx +0 -66
- package/src/components/notification/NotificationText.tsx +0 -47
- package/src/components/notification/NotificationTitle.tsx +0 -47
- package/src/components/notification/context.ts +0 -14
- package/src/components/notification/index.ts +0 -25
- package/src/components/notification/notificationQueue.ts +0 -48
- package/src/components/otp-input/OtpBox.tsx +0 -68
- package/src/components/otp-input/OtpInput.tsx +0 -342
- package/src/components/otp-input/index.ts +0 -6
- package/src/components/pagination/Pagination.tsx +0 -212
- package/src/components/pagination/PaginationItem.tsx +0 -152
- package/src/components/pagination/index.ts +0 -12
- package/src/components/password-strength/PasswordStrength.tsx +0 -155
- package/src/components/password-strength/index.ts +0 -6
- package/src/components/password-strength/strengthScore.ts +0 -79
- package/src/components/placeholder/Placeholder.tsx +0 -178
- package/src/components/placeholder/index.ts +0 -6
- package/src/components/popover/Popover.tsx +0 -269
- package/src/components/popover/index.ts +0 -6
- package/src/components/progress/Progress.tsx +0 -154
- package/src/components/progress/ProgressBar.tsx +0 -88
- package/src/components/progress/index.ts +0 -8
- package/src/components/radio/Radio.tsx +0 -98
- package/src/components/radio/RadioGroup.tsx +0 -142
- package/src/components/radio/context.ts +0 -14
- package/src/components/radio/index.ts +0 -8
- package/src/components/range-input/RangeInput.tsx +0 -109
- package/src/components/range-input/index.ts +0 -6
- package/src/components/select/Select.tsx +0 -277
- package/src/components/select/index.ts +0 -6
- package/src/components/skeleton/Skeleton.tsx +0 -89
- package/src/components/skeleton/SkeletonLoader.tsx +0 -98
- package/src/components/skeleton/index.ts +0 -8
- package/src/components/spinner/Spinner.tsx +0 -77
- package/src/components/spinner/index.ts +0 -6
- package/src/components/stack/Stack.tsx +0 -81
- package/src/components/stack/index.ts +0 -6
- package/src/components/static-table/StaticTable.tsx +0 -78
- package/src/components/static-table/index.ts +0 -8
- package/src/components/stepper/Stepper.tsx +0 -172
- package/src/components/stepper/StepperItem.tsx +0 -66
- package/src/components/stepper/index.ts +0 -8
- package/src/components/switch/Switch.tsx +0 -259
- package/src/components/switch/index.ts +0 -6
- package/src/components/table/Table.css +0 -39
- package/src/components/table/Table.tsx +0 -405
- package/src/components/table/TableBody.tsx +0 -25
- package/src/components/table/TableCell.tsx +0 -27
- package/src/components/table/TableColumn.tsx +0 -31
- package/src/components/table/TableHeader.tsx +0 -26
- package/src/components/table/TableRow.tsx +0 -24
- package/src/components/table/index.ts +0 -16
- package/src/components/tabs/Tab.tsx +0 -36
- package/src/components/tabs/TabList.tsx +0 -76
- package/src/components/tabs/TabPanel.tsx +0 -68
- package/src/components/tabs/Tabs.tsx +0 -136
- package/src/components/tabs/context.ts +0 -24
- package/src/components/tabs/index.ts +0 -12
- package/src/components/text-input/TextInput.tsx +0 -188
- package/src/components/text-input/index.ts +0 -6
- package/src/components/textarea/Textarea.tsx +0 -145
- package/src/components/textarea/index.ts +0 -6
- package/src/components/toast/Toast.tsx +0 -220
- package/src/components/toast/ToastBody.tsx +0 -64
- package/src/components/toast/ToastFooter.tsx +0 -47
- package/src/components/toast/ToastHeader.tsx +0 -105
- package/src/components/toast/ToastIcon.tsx +0 -21
- package/src/components/toast/Toaster.tsx +0 -87
- package/src/components/toast/context.ts +0 -14
- package/src/components/toast/index.ts +0 -26
- package/src/components/toast/toastQueue.ts +0 -56
- package/src/components/tooltip/Tooltip.tsx +0 -171
- package/src/components/tooltip/index.ts +0 -6
- package/src/global.d.ts +0 -2
- package/src/hooks/index.ts +0 -57
- package/src/hooks/useAutoDismiss.ts +0 -91
- package/src/hooks/useButtonSemantics.ts +0 -33
- package/src/hooks/useControllableState.ts +0 -24
- package/src/hooks/useDialogElement.ts +0 -226
- package/src/hooks/useDisabledAnchorGuard.ts +0 -22
- package/src/hooks/useDismissibleTransition.ts +0 -126
- package/src/hooks/useDrawer.ts +0 -9
- package/src/hooks/useFloatingOverlay.ts +0 -125
- package/src/hooks/useForkedRef.ts +0 -50
- package/src/hooks/useFormField.ts +0 -89
- package/src/hooks/useIconConfig.ts +0 -6
- package/src/hooks/useIsomorphicLayoutEffect.ts +0 -9
- package/src/hooks/useModal.ts +0 -9
- package/src/hooks/useNotification.ts +0 -10
- package/src/hooks/useOverlayPlacement.ts +0 -93
- package/src/hooks/usePagination.ts +0 -89
- package/src/hooks/useToast.ts +0 -9
- package/src/hooks/useToastRegionQueue.ts +0 -27
- package/src/index.ts +0 -522
- package/src/types.ts +0 -133
- package/src/utils/breakpoints.ts +0 -43
- package/src/utils/comboboxCollection.tsx +0 -152
- package/src/utils/dateRangePresets.ts +0 -6
- package/src/utils/devWarning.ts +0 -58
- package/src/utils/dialogTransition.ts +0 -39
- package/src/utils/direction.ts +0 -14
- package/src/utils/focusRedirect.ts +0 -23
- package/src/utils/iconConfig.ts +0 -88
- package/src/utils/iconSlot.tsx +0 -41
- package/src/utils/isWholeUnitDisabled.ts +0 -17
- package/src/utils/mergeIsDateUnavailable.ts +0 -15
- package/src/utils/overlayPlacement.ts +0 -93
- package/src/utils/pointerInteraction.ts +0 -21
- package/src/utils/polymorphic.ts +0 -100
- package/src/utils/renderMenuItemContent.tsx +0 -57
- package/src/utils/setVisibleRangeStart.ts +0 -64
- package/src/utils/slot.tsx +0 -78
- package/src/utils/spacingClassName.ts +0 -14
- package/src/utils/suppressFocusRingGlobally.ts +0 -84
- package/src/utils/tableClassName.ts +0 -93
- package/src/utils/triggerElement.ts +0 -25
- package/src/utils/validationClassName.ts +0 -8
- package/src/utils/virtualFocusStyle.ts +0 -16
|
@@ -1,464 +0,0 @@
|
|
|
1
|
-
import React, {
|
|
2
|
-
HTMLAttributes,
|
|
3
|
-
InputHTMLAttributes,
|
|
4
|
-
ReactNode,
|
|
5
|
-
useEffect,
|
|
6
|
-
useMemo,
|
|
7
|
-
useRef
|
|
8
|
-
} from 'react'
|
|
9
|
-
import { createPortal } from 'react-dom'
|
|
10
|
-
import classNames from 'classnames'
|
|
11
|
-
import { mergeProps, useButton, useComboBox, useFilter, useOverlayPosition } from 'react-aria'
|
|
12
|
-
import { Key, useComboBoxState } from 'react-stately'
|
|
13
|
-
|
|
14
|
-
import { useFloatingOverlay, useFormField } from '../../hooks'
|
|
15
|
-
import {
|
|
16
|
-
buildEntriesFromChildren,
|
|
17
|
-
buildEntriesFromItemsDef,
|
|
18
|
-
ComboboxEntry,
|
|
19
|
-
comboboxCollectionChildren,
|
|
20
|
-
getDisabledKeys
|
|
21
|
-
} from '../../utils/comboboxCollection'
|
|
22
|
-
import {
|
|
23
|
-
COMBOBOX_MENU_OVERLAY_STYLE,
|
|
24
|
-
resolveMenuOverlayPositioning,
|
|
25
|
-
toAriaPlacement
|
|
26
|
-
} from '../../utils/overlayPlacement'
|
|
27
|
-
import { ComboboxListBox } from '../combobox/ComboboxListBox'
|
|
28
|
-
import { renderFormField } from '../form-field/renderFormField'
|
|
29
|
-
import { MenuItemsDef } from '../menu/MenuItemDef'
|
|
30
|
-
import { AutocompleteGroup } from './AutocompleteGroup'
|
|
31
|
-
import { AutocompleteItem } from './AutocompleteItem'
|
|
32
|
-
|
|
33
|
-
// `useComboBoxState`/`useComboBox` are generic over a `SelectionMode` ('single' | 'multiple')
|
|
34
|
-
// that only affects *types* — actual runtime behavior (whether a selection closes the menu,
|
|
35
|
-
// disallows an empty selection, *and* whether `state.value`/`onChange`'s callback argument come
|
|
36
|
-
// through as a bare `Key` or a `Key[]`) is driven entirely by the `selectionMode` *string* passed
|
|
37
|
-
// at the call site below, not by this type parameter. Fixing the parameter at `'multiple'` here
|
|
38
|
-
// (the more permissive of the two shapes) lets one component serve both modes without a full
|
|
39
|
-
// code fork, but it means the type system's claim that `state.value`/`onChange`'s argument are
|
|
40
|
-
// always `Key[]` is untrustworthy for single-select at runtime — confirmed by testing (the
|
|
41
|
-
// naive `keys[0]` on a bare string key silently returned its first *character*). `asKeyArray`
|
|
42
|
-
// normalizes either shape; every read of `state.value` or `onChange`'s argument goes through it.
|
|
43
|
-
const toMultiValue = (value: Key | Key[] | null | undefined): Key[] | undefined => {
|
|
44
|
-
if (value === undefined) return undefined
|
|
45
|
-
if (value === null) return []
|
|
46
|
-
return Array.isArray(value) ? value : [value]
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
const asKeyArray = (value: unknown): Key[] => {
|
|
50
|
-
if (value == null) return []
|
|
51
|
-
return Array.isArray(value) ? value : [value as Key]
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
export interface AutocompleteProps extends Omit<
|
|
55
|
-
HTMLAttributes<HTMLDivElement>,
|
|
56
|
-
'onChange' | 'defaultValue'
|
|
57
|
-
> {
|
|
58
|
-
/**
|
|
59
|
-
* An accessible label for the autocomplete, used when there's no visible `<label>`.
|
|
60
|
-
*/
|
|
61
|
-
'aria-label'?: string
|
|
62
|
-
/**
|
|
63
|
-
* Identifies a visible `<label>` element for the autocomplete.
|
|
64
|
-
*/
|
|
65
|
-
'aria-labelledby'?: string
|
|
66
|
-
/**
|
|
67
|
-
* `AutocompleteItem` elements, optionally wrapped in `AutocompleteGroup` — read as data by
|
|
68
|
-
* `Autocomplete` to build the option list. Not rendered directly. Ignored when `items` is set.
|
|
69
|
-
*/
|
|
70
|
-
children?: ReactNode
|
|
71
|
-
/**
|
|
72
|
-
* A string of all className you want applied to the base component.
|
|
73
|
-
*/
|
|
74
|
-
className?: string
|
|
75
|
-
/**
|
|
76
|
-
* The initial selected option's id(s) (uncontrolled). An array when `multiple` is set.
|
|
77
|
-
*/
|
|
78
|
-
defaultValue?: Key | Key[] | null
|
|
79
|
-
/**
|
|
80
|
-
* Prevents the autocomplete from being focused or interacted with.
|
|
81
|
-
*/
|
|
82
|
-
disabled?: boolean
|
|
83
|
-
/**
|
|
84
|
-
* A description for the field, rendered below the autocomplete.
|
|
85
|
-
*/
|
|
86
|
-
help?: ReactNode
|
|
87
|
-
/**
|
|
88
|
-
* `id` forwarded to the search input inside the popover. The toggle — the field's real,
|
|
89
|
-
* always-focusable surface — has no single labelable element `<label for>` can target (it's a
|
|
90
|
-
* `role="button"` `<div>`, and the search input itself is hidden until open), so `label` is
|
|
91
|
-
* associated via `aria-labelledby` on the toggle instead. See FORMS.md's "role=group" pattern.
|
|
92
|
-
*/
|
|
93
|
-
id?: string
|
|
94
|
-
/**
|
|
95
|
-
* Set component validation state to invalid.
|
|
96
|
-
*/
|
|
97
|
-
invalid?: boolean
|
|
98
|
-
/**
|
|
99
|
-
* An error message for the field, rendered below the autocomplete when `invalid` is set.
|
|
100
|
-
*/
|
|
101
|
-
invalidFeedback?: ReactNode
|
|
102
|
-
/**
|
|
103
|
-
* Array of item/header/divider definitions for data-driven rendering. When provided, children
|
|
104
|
-
* are ignored. A `'header'` entry starts a group that all following items join until the next
|
|
105
|
-
* header or the end of the array. `'divider'` entries are a no-op here — use
|
|
106
|
-
* `AutocompleteGroup` composition instead if you need finer control over grouping. An entry's
|
|
107
|
-
* `href`/`onClick` are `Menu`-only and are not read here — use `onChange` to react to the
|
|
108
|
-
* selection instead.
|
|
109
|
-
*/
|
|
110
|
-
items?: MenuItemsDef
|
|
111
|
-
/**
|
|
112
|
-
* The field's caption, rendered as a `FormLabel` associated with the toggle.
|
|
113
|
-
*/
|
|
114
|
-
label?: ReactNode
|
|
115
|
-
/**
|
|
116
|
-
* Allows more than one option to be selected. The toggle shows the single selection's label,
|
|
117
|
-
* or an "N selected" count once more than one is picked. The menu stays open after each
|
|
118
|
-
* selection, and `Backspace` in the empty search field removes the last selected option.
|
|
119
|
-
*/
|
|
120
|
-
multiple?: boolean
|
|
121
|
-
/**
|
|
122
|
-
* `name` of auto-created hidden input(s), kept in sync with the selection, for native form
|
|
123
|
-
* submission. Single-select renders one; `multiple` renders one per selected key. Omit to skip
|
|
124
|
-
* hidden-input creation.
|
|
125
|
-
*/
|
|
126
|
-
name?: string
|
|
127
|
-
/**
|
|
128
|
-
* Text shown in the listbox when no options match the current query.
|
|
129
|
-
*/
|
|
130
|
-
noResultsText?: ReactNode
|
|
131
|
-
/**
|
|
132
|
-
* Callback fired when the selection changes. Receives an array of keys when `multiple` is set.
|
|
133
|
-
*/
|
|
134
|
-
onChange?: (value: Key | Key[] | null) => void
|
|
135
|
-
/**
|
|
136
|
-
* Text shown on the toggle when nothing is selected.
|
|
137
|
-
*/
|
|
138
|
-
placeholder?: string
|
|
139
|
-
/**
|
|
140
|
-
* Placeholder for the search field inside the dropdown.
|
|
141
|
-
*/
|
|
142
|
-
searchPlaceholder?: string
|
|
143
|
-
/**
|
|
144
|
-
* Size the component sm or lg.
|
|
145
|
-
*/
|
|
146
|
-
size?: 'sm' | 'lg'
|
|
147
|
-
/**
|
|
148
|
-
* Set component validation state to valid.
|
|
149
|
-
*/
|
|
150
|
-
valid?: boolean
|
|
151
|
-
/**
|
|
152
|
-
* A success message for the field, rendered below the autocomplete when `valid` is set.
|
|
153
|
-
*/
|
|
154
|
-
validFeedback?: ReactNode
|
|
155
|
-
/**
|
|
156
|
-
* The selected option's id(s) (controlled). An array when `multiple` is set.
|
|
157
|
-
*/
|
|
158
|
-
value?: Key | Key[] | null
|
|
159
|
-
}
|
|
160
|
-
|
|
161
|
-
// `Autocomplete` implements chassis-css's button-trigger combobox — a display-only toggle
|
|
162
|
-
// (not a text input) that opens a `.menu` containing its own search field, matching
|
|
163
|
-
// https://chassis-ui.com/css/docs/forms/combobox/#search-field. This is deliberately NOT the
|
|
164
|
-
// same composition as `Combobox` (whose text input *is* the trigger): here, react-aria's
|
|
165
|
-
// `useComboBox` is given a separate `buttonRef` — a first-class option the hook supports
|
|
166
|
-
// specifically for this "button opens a listbox with its own input" shape — so the real
|
|
167
|
-
// `role="combobox"` input lives inside the popover (styled as `.combobox-search-input`) while a
|
|
168
|
-
// toggle serves as the always-visible, always-focusable trigger. The toggle is a `<div
|
|
169
|
-
// role="button">` (via `useButton`'s `elementType: 'div'`, the same pattern `Button.tsx` uses
|
|
170
|
-
// for a non-native trigger) rather than a real `<button>` — an earlier version rendered
|
|
171
|
-
// removable chips inside it for `multiple` mode, which a real (or ARIA) button can't legally
|
|
172
|
-
// contain per axe's `nested-interactive` check; that's now plain "N selected" text instead (see
|
|
173
|
-
// `triggerText` below), but the `<div>` stays since reverting buys little and this is proven.
|
|
174
|
-
// `useComboBox`'s own `buttonProps` also sets `excludeFromTabOrder: true` by default — correct
|
|
175
|
-
// for its usual "auxiliary button beside an always-visible input" composition, wrong here since
|
|
176
|
-
// the toggle is the *only* focusable surface before opening; overridden back to reachable below.
|
|
177
|
-
export const Autocomplete = ({
|
|
178
|
-
children,
|
|
179
|
-
className,
|
|
180
|
-
defaultValue,
|
|
181
|
-
disabled,
|
|
182
|
-
help,
|
|
183
|
-
id,
|
|
184
|
-
invalid,
|
|
185
|
-
invalidFeedback,
|
|
186
|
-
items,
|
|
187
|
-
label,
|
|
188
|
-
multiple = false,
|
|
189
|
-
name,
|
|
190
|
-
noResultsText = 'No results found',
|
|
191
|
-
onChange,
|
|
192
|
-
placeholder,
|
|
193
|
-
searchPlaceholder,
|
|
194
|
-
size,
|
|
195
|
-
valid,
|
|
196
|
-
validFeedback,
|
|
197
|
-
value,
|
|
198
|
-
...rest
|
|
199
|
-
}: AutocompleteProps): ReactNode => {
|
|
200
|
-
// `entries`/`disabledKeys` only need to change when the data driving them does — without this,
|
|
201
|
-
// both re-derive from scratch on every render, including every keystroke while typing.
|
|
202
|
-
const entries = useMemo(
|
|
203
|
-
() =>
|
|
204
|
-
items
|
|
205
|
-
? buildEntriesFromItemsDef(items)
|
|
206
|
-
: buildEntriesFromChildren(children, { Group: AutocompleteGroup, Item: AutocompleteItem }),
|
|
207
|
-
[items, children]
|
|
208
|
-
)
|
|
209
|
-
const disabledKeys = useMemo(() => getDisabledKeys(entries), [entries])
|
|
210
|
-
|
|
211
|
-
// Case- and accent-insensitive substring matching, mirroring chassis-css's own
|
|
212
|
-
// always-case-insensitive combobox.js filtering.
|
|
213
|
-
const { contains } = useFilter({ sensitivity: 'base' })
|
|
214
|
-
|
|
215
|
-
const state = useComboBoxState<ComboboxEntry, 'multiple'>({
|
|
216
|
-
children: comboboxCollectionChildren,
|
|
217
|
-
defaultItems: entries,
|
|
218
|
-
disabledKeys,
|
|
219
|
-
defaultFilter: contains,
|
|
220
|
-
// Cast: the actual runtime string ('single' or 'multiple') is what drives behavior — see the
|
|
221
|
-
// `toMultiValue` comment above for why the *type* parameter above is fixed at 'multiple'.
|
|
222
|
-
selectionMode: (multiple ? 'multiple' : 'single') as 'multiple',
|
|
223
|
-
defaultValue: toMultiValue(defaultValue),
|
|
224
|
-
value: toMultiValue(value),
|
|
225
|
-
onChange: (keys) => {
|
|
226
|
-
const keyArray = asKeyArray(keys)
|
|
227
|
-
onChange?.(multiple ? keyArray : (keyArray[0] ?? null))
|
|
228
|
-
},
|
|
229
|
-
allowsEmptyCollection: true,
|
|
230
|
-
// Opening is driven only by the toggle (see `buttonProps` below) — there's no input to focus
|
|
231
|
-
// or type into until the panel is already open, so 'input'/'focus' triggers (the hook's
|
|
232
|
-
// defaults, meant for `Combobox`'s text-input trigger) don't apply here.
|
|
233
|
-
menuTrigger: 'manual'
|
|
234
|
-
})
|
|
235
|
-
|
|
236
|
-
const triggerRef = useRef<HTMLDivElement>(null)
|
|
237
|
-
const inputRef = useRef<HTMLInputElement>(null)
|
|
238
|
-
const listBoxRef = useRef<HTMLElement>(null)
|
|
239
|
-
const popoverRef = useRef<HTMLDivElement>(null)
|
|
240
|
-
|
|
241
|
-
const { describedBy, feedbackId, helpId, inputId, labelId, labelledBy } = useFormField({
|
|
242
|
-
ariaDescribedBy: rest['aria-describedby'],
|
|
243
|
-
ariaLabelledBy: rest['aria-labelledby'],
|
|
244
|
-
help,
|
|
245
|
-
id,
|
|
246
|
-
invalid,
|
|
247
|
-
invalidFeedback,
|
|
248
|
-
label,
|
|
249
|
-
valid,
|
|
250
|
-
validFeedback
|
|
251
|
-
})
|
|
252
|
-
|
|
253
|
-
const { buttonProps, inputProps, listBoxProps } = useComboBox<ComboboxEntry, 'multiple'>(
|
|
254
|
-
{
|
|
255
|
-
'aria-label': rest['aria-label'],
|
|
256
|
-
'aria-labelledby': labelledBy,
|
|
257
|
-
buttonRef: triggerRef,
|
|
258
|
-
id: inputId,
|
|
259
|
-
inputRef,
|
|
260
|
-
listBoxRef,
|
|
261
|
-
popoverRef,
|
|
262
|
-
isDisabled: disabled,
|
|
263
|
-
placeholder: searchPlaceholder
|
|
264
|
-
},
|
|
265
|
-
state
|
|
266
|
-
)
|
|
267
|
-
|
|
268
|
-
// `useComboBox`'s own `buttonProps` sets `excludeFromTabOrder: true` — correct for its
|
|
269
|
-
// intended composition (an auxiliary icon button *next to* an already-focusable, always-
|
|
270
|
-
// visible input, e.g. a date picker's calendar-icon trigger), where the input is expected to
|
|
271
|
-
// be the primary tab stop. That doesn't hold here: the input lives inside the popover, `hidden`
|
|
272
|
-
// (and so untabbable) until opened, and this toggle is the *only* focusable surface before
|
|
273
|
-
// that — leaving `excludeFromTabOrder` in place would make the whole control unreachable by
|
|
274
|
-
// keyboard. Overriding it back to `false` is what actually makes the toggle the tab stop.
|
|
275
|
-
const { buttonProps: triggerButtonProps } = useButton(
|
|
276
|
-
{ ...buttonProps, elementType: 'div', isDisabled: disabled, excludeFromTabOrder: false },
|
|
277
|
-
triggerRef
|
|
278
|
-
)
|
|
279
|
-
|
|
280
|
-
// The search field autofocuses once the panel is actually open (chassis-css docs: "When the
|
|
281
|
-
// menu opens, focus jumps to the search field"), and focus returns to the toggle once it
|
|
282
|
-
// closes — `useComboBox` only knows about `inputRef` as its focus target, and that input is
|
|
283
|
-
// `hidden` (via the panel) while closed, so without this, closing (via Escape, selection, or
|
|
284
|
-
// outside click) would drop focus entirely instead of landing back on the toggle.
|
|
285
|
-
const wasOpen = useRef(state.isOpen)
|
|
286
|
-
useEffect(() => {
|
|
287
|
-
if (state.isOpen && !wasOpen.current) {
|
|
288
|
-
inputRef.current?.focus()
|
|
289
|
-
} else if (!state.isOpen && wasOpen.current) {
|
|
290
|
-
triggerRef.current?.focus()
|
|
291
|
-
}
|
|
292
|
-
wasOpen.current = state.isOpen
|
|
293
|
-
}, [state.isOpen])
|
|
294
|
-
|
|
295
|
-
// `useComboBox` also runs react-aria's `ariaHideOutside` while open, to keep background
|
|
296
|
-
// content out of screen readers' way — but it only knows to protect `inputRef`/`popoverRef`
|
|
297
|
-
// (the elements it was given), not this separate toggle, so the toggle (and, in `multiple`
|
|
298
|
-
// mode, its chips and their focusable remove buttons) would otherwise get `aria-hidden`
|
|
299
|
-
// applied to it too while the panel is open. Walking up to `document.body` (rather than
|
|
300
|
-
// clearing just `triggerRef.current` itself) matters now that the popover portals there too
|
|
301
|
-
// (see `useFloatingOverlay` below): `ariaHideOutside` hides the *first* ancestor level whose
|
|
302
|
-
// subtree contains no protected element, which — once the toggle and the popover no longer
|
|
303
|
-
// share a common non-`body` container — can land on one of the toggle's own ancestors instead
|
|
304
|
-
// of the toggle element itself. `ariaHideOutside`'s own doc comment says it watches for *new*
|
|
305
|
-
// elements to hide, not attribute changes on existing ones, so removing it here (in an effect
|
|
306
|
-
// that necessarily runs after react-aria's own — declared later in this same component)
|
|
307
|
-
// doesn't get silently re-applied.
|
|
308
|
-
useEffect(() => {
|
|
309
|
-
if (!state.isOpen) return
|
|
310
|
-
let node: HTMLElement | null = triggerRef.current
|
|
311
|
-
while (node && node !== document.body) {
|
|
312
|
-
node.removeAttribute('aria-hidden')
|
|
313
|
-
node = node.parentElement
|
|
314
|
-
}
|
|
315
|
-
}, [state.isOpen])
|
|
316
|
-
|
|
317
|
-
const { overlayProps, placement: resolvedPlacement } = useOverlayPosition({
|
|
318
|
-
targetRef: triggerRef,
|
|
319
|
-
overlayRef: popoverRef,
|
|
320
|
-
placement: toAriaPlacement('bottom-start'),
|
|
321
|
-
offset: 2,
|
|
322
|
-
isOpen: state.isOpen,
|
|
323
|
-
// Leaving `onClose` unset (`undefined`) doesn't actually disable react-aria's close-on-scroll
|
|
324
|
-
// listener — only an explicit `null` does (`useCloseOnScroll` only early-returns on
|
|
325
|
-
// `onClose === null`, not falsy). It happens to be a no-op today only because this toggle is
|
|
326
|
-
// never registered in react-aria's `useOverlayTrigger`/`onCloseMap` backward-compat map (this
|
|
327
|
-
// component calls `useComboBox`, not `useOverlayTrigger`) — an incidental, not guaranteed,
|
|
328
|
-
// safety net. Passing `null` here makes the opt-out explicit, matching `Menu`/`Popover`.
|
|
329
|
-
onClose: null
|
|
330
|
-
})
|
|
331
|
-
|
|
332
|
-
// Portals the panel to `document.body` (or an enclosing open `<dialog>`) instead of rendering
|
|
333
|
-
// it inline, matching `Popover`/`Tooltip`/`Combobox` — an inline-rendered panel gets clipped by
|
|
334
|
-
// any ancestor with `overflow: hidden`/`auto` (a `ModalBody`, a scrollable card, a table cell),
|
|
335
|
-
// and `Autocomplete` is commonly composed inside exactly those. See
|
|
336
|
-
// `COMBOBOX_MENU_OVERLAY_STYLE` for the styling this trades away by leaving the DOM position
|
|
337
|
-
// `.combobox + .menu` relies on.
|
|
338
|
-
const portalContainer = useFloatingOverlay({
|
|
339
|
-
close: state.close,
|
|
340
|
-
isOpen: state.isOpen,
|
|
341
|
-
open: state.open,
|
|
342
|
-
triggerRef
|
|
343
|
-
})
|
|
344
|
-
|
|
345
|
-
const { menuStyle, placementAttr } = resolveMenuOverlayPositioning(
|
|
346
|
-
overlayProps.style,
|
|
347
|
-
'bottom-start',
|
|
348
|
-
resolvedPlacement
|
|
349
|
-
)
|
|
350
|
-
const overlayStyle: React.CSSProperties = { ...COMBOBOX_MENU_OVERLAY_STYLE, ...menuStyle }
|
|
351
|
-
|
|
352
|
-
const removeSelected = (key: Key) => state.selectionManager.toggleSelection(key)
|
|
353
|
-
|
|
354
|
-
// Backspace-removes-last-chip only touches the search field's own keydown handling — no
|
|
355
|
-
// nested interactive element needed for it, unlike a rendered "remove" button would be (see
|
|
356
|
-
// the trigger's `combobox-value` text below for why that path was dropped).
|
|
357
|
-
const handleSearchKeyDown = (event: React.KeyboardEvent<HTMLInputElement>) => {
|
|
358
|
-
if (!multiple || event.key !== 'Backspace' || event.currentTarget.value !== '') return
|
|
359
|
-
const last = state.selectedItems[state.selectedItems.length - 1]
|
|
360
|
-
if (last) removeSelected(last.key)
|
|
361
|
-
}
|
|
362
|
-
|
|
363
|
-
const inputHtmlProps = mergeProps(inputProps, {
|
|
364
|
-
onKeyDown: handleSearchKeyDown
|
|
365
|
-
}) as InputHTMLAttributes<HTMLInputElement>
|
|
366
|
-
|
|
367
|
-
const hasSelection = state.selectedItems.length > 0
|
|
368
|
-
// Matches chassis-css's own vanilla multi-select combobox: the toggle shows the single
|
|
369
|
-
// selected item's label, or "N selected" once more than one is picked — deliberately plain
|
|
370
|
-
// text, not per-item chips with their own remove buttons. An earlier version rendered chips
|
|
371
|
-
// here; that failed a real axe check ("Interactive controls must not be nested") because the
|
|
372
|
-
// toggle is itself `role="button"`, and a button can't correctly contain other focusable
|
|
373
|
-
// controls. Deselecting an option is still possible by clicking it again in the open list
|
|
374
|
-
// (native to `useComboBoxState`'s multiple-selection toggle behavior) or via Backspace in the
|
|
375
|
-
// search field, just not from the toggle itself.
|
|
376
|
-
const triggerText = !hasSelection
|
|
377
|
-
? placeholder
|
|
378
|
-
: state.selectedItems.length === 1
|
|
379
|
-
? (state.selectedItems[0]?.textValue ?? '')
|
|
380
|
-
: `${state.selectedItems.length} selected`
|
|
381
|
-
|
|
382
|
-
return renderFormField({
|
|
383
|
-
children: (
|
|
384
|
-
<>
|
|
385
|
-
<div
|
|
386
|
-
className={classNames(
|
|
387
|
-
'form-input',
|
|
388
|
-
'combobox',
|
|
389
|
-
{ sm: size === 'sm', lg: size === 'lg', disabled },
|
|
390
|
-
{ 'is-invalid': invalid, 'is-valid': valid },
|
|
391
|
-
className
|
|
392
|
-
)}
|
|
393
|
-
{...rest}
|
|
394
|
-
{...triggerButtonProps}
|
|
395
|
-
// `useComboBox`'s own `buttonProps` defaults to a generic "Show suggestions" label,
|
|
396
|
-
// since its primary a11y attention goes to the search input — override with the same
|
|
397
|
-
// label the input gets, so the toggle (the element actually reachable via Tab, since
|
|
398
|
-
// the input is hidden until open) announces the field's real name, matching the
|
|
399
|
-
// vanilla docs' own `aria-label="Select a country"` on the toggle button.
|
|
400
|
-
aria-label={rest['aria-label']}
|
|
401
|
-
aria-labelledby={labelledBy}
|
|
402
|
-
aria-describedby={describedBy}
|
|
403
|
-
aria-invalid={invalid || undefined}
|
|
404
|
-
ref={triggerRef}
|
|
405
|
-
>
|
|
406
|
-
<span className={classNames('combobox-value', { 'combobox-placeholder': !hasSelection })}>
|
|
407
|
-
{triggerText}
|
|
408
|
-
</span>
|
|
409
|
-
</div>
|
|
410
|
-
{typeof window !== 'undefined' &&
|
|
411
|
-
createPortal(
|
|
412
|
-
<div
|
|
413
|
-
className={classNames('menu', { show: state.isOpen })}
|
|
414
|
-
data-cx-placement={placementAttr}
|
|
415
|
-
style={overlayStyle}
|
|
416
|
-
hidden={!state.isOpen}
|
|
417
|
-
ref={popoverRef}
|
|
418
|
-
>
|
|
419
|
-
<div className="combobox-search">
|
|
420
|
-
<input
|
|
421
|
-
autoComplete="off"
|
|
422
|
-
className="form-input combobox-search-input sm"
|
|
423
|
-
{...inputHtmlProps}
|
|
424
|
-
ref={inputRef}
|
|
425
|
-
/>
|
|
426
|
-
</div>
|
|
427
|
-
<ComboboxListBox state={state} listBoxProps={listBoxProps} listBoxRef={listBoxRef} />
|
|
428
|
-
{state.collection.size === 0 && (
|
|
429
|
-
<div className="combobox-no-results">{noResultsText}</div>
|
|
430
|
-
)}
|
|
431
|
-
</div>,
|
|
432
|
-
portalContainer ?? document.body
|
|
433
|
-
)}
|
|
434
|
-
{name &&
|
|
435
|
-
(multiple ? (
|
|
436
|
-
asKeyArray(state.value).map((key) => (
|
|
437
|
-
<input key={key} type="hidden" name={name} value={key} disabled={disabled} />
|
|
438
|
-
))
|
|
439
|
-
) : (
|
|
440
|
-
<input
|
|
441
|
-
type="hidden"
|
|
442
|
-
name={name}
|
|
443
|
-
value={asKeyArray(state.value)[0] ?? ''}
|
|
444
|
-
disabled={disabled}
|
|
445
|
-
/>
|
|
446
|
-
))}
|
|
447
|
-
</>
|
|
448
|
-
),
|
|
449
|
-
help,
|
|
450
|
-
// No `input` id: the toggle is a `role="button"` `<div>`, not a labelable element, so
|
|
451
|
-
// `htmlFor` can't target it — `aria-labelledby={labelledBy}` on the toggle above (fed by
|
|
452
|
-
// `labelId`) is what actually associates the label, matching DatePicker/OtpInput's
|
|
453
|
-
// `role="group"` pattern in FORMS.md. Passing `inputId` here would point `<label for>` at
|
|
454
|
-
// the hidden search input instead, which sits inert until the popover opens.
|
|
455
|
-
ids: { feedback: feedbackId, help: helpId, label: labelId },
|
|
456
|
-
invalid,
|
|
457
|
-
invalidFeedback,
|
|
458
|
-
label,
|
|
459
|
-
valid,
|
|
460
|
-
validFeedback
|
|
461
|
-
})
|
|
462
|
-
}
|
|
463
|
-
|
|
464
|
-
Autocomplete.displayName = 'Autocomplete'
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import { ComboboxGroupProps } from '../combobox/ComboboxGroup'
|
|
2
|
-
|
|
3
|
-
// Same shape as `ComboboxGroupProps` — see `AutocompleteItemProps` for why this is its own
|
|
4
|
-
// named type instead of a re-export.
|
|
5
|
-
export type AutocompleteGroupProps = ComboboxGroupProps
|
|
6
|
-
|
|
7
|
-
// `AutocompleteGroup` is never actually mounted — like `ComboboxGroup`, it's read as data by
|
|
8
|
-
// `Autocomplete`, which splits its top-level children into groups (wrapping react-stately
|
|
9
|
-
// `Section` nodes) and bare items. Groups and bare items can be mixed at the top level:
|
|
10
|
-
//
|
|
11
|
-
// <Autocomplete aria-label="Language">
|
|
12
|
-
// <AutocompleteGroup label="Frontend">
|
|
13
|
-
// <AutocompleteItem id="html">HTML</AutocompleteItem>
|
|
14
|
-
// <AutocompleteItem id="css">CSS</AutocompleteItem>
|
|
15
|
-
// </AutocompleteGroup>
|
|
16
|
-
// <AutocompleteItem id="python">Python</AutocompleteItem>
|
|
17
|
-
// </Autocomplete>
|
|
18
|
-
export const AutocompleteGroup = (_props: AutocompleteGroupProps): null => null
|
|
19
|
-
|
|
20
|
-
AutocompleteGroup.displayName = 'AutocompleteGroup'
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import { ComboboxItemProps } from '../combobox/ComboboxItem'
|
|
2
|
-
|
|
3
|
-
// Same shape as `ComboboxItemProps` — kept as its own named type (rather than re-exporting
|
|
4
|
-
// `ComboboxItemProps` directly) so `Autocomplete`'s public API doesn't leak an unrelated
|
|
5
|
-
// component's prop type, even though the two are structurally identical under the hood.
|
|
6
|
-
export type AutocompleteItemProps = ComboboxItemProps
|
|
7
|
-
|
|
8
|
-
// `AutocompleteItem` is never actually mounted — like `ComboboxItem`, it's read as data by
|
|
9
|
-
// `Autocomplete`, which builds react-aria's listbox collection from each item's `id` and
|
|
10
|
-
// `children`. This keeps the public authoring shape as plain composed JSX:
|
|
11
|
-
//
|
|
12
|
-
// <Autocomplete aria-label="Fruit">
|
|
13
|
-
// <AutocompleteItem id="apple">Apple</AutocompleteItem>
|
|
14
|
-
// <AutocompleteItem id="banana">Banana</AutocompleteItem>
|
|
15
|
-
// </Autocomplete>
|
|
16
|
-
export const AutocompleteItem = (_props: AutocompleteItemProps): null => null
|
|
17
|
-
|
|
18
|
-
AutocompleteItem.displayName = 'AutocompleteItem'
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
'use client'
|
|
2
|
-
|
|
3
|
-
import '../../utils/suppressFocusRingGlobally'
|
|
4
|
-
|
|
5
|
-
export { Autocomplete } from './Autocomplete'
|
|
6
|
-
export type { AutocompleteProps } from './Autocomplete'
|
|
7
|
-
export { AutocompleteGroup } from './AutocompleteGroup'
|
|
8
|
-
export type { AutocompleteGroupProps } from './AutocompleteGroup'
|
|
9
|
-
export { AutocompleteItem } from './AutocompleteItem'
|
|
10
|
-
export type { AutocompleteItemProps } from './AutocompleteItem'
|
|
@@ -1,137 +0,0 @@
|
|
|
1
|
-
import React, { ElementType, ForwardRefRenderFunction, ReactElement } from 'react'
|
|
2
|
-
import classNames from 'classnames'
|
|
3
|
-
|
|
4
|
-
import { ContextColor, ExtendedSizing } from '../../types'
|
|
5
|
-
import {
|
|
6
|
-
createPolymorphicComponent,
|
|
7
|
-
PolymorphicComponentProps,
|
|
8
|
-
PolymorphicRef,
|
|
9
|
-
PolymorphicRefWithFallback
|
|
10
|
-
} from '../../utils/polymorphic'
|
|
11
|
-
import { Link } from '../link/Link'
|
|
12
|
-
import { Badge } from '../badge'
|
|
13
|
-
import { AvatarImage } from './AvatarImage'
|
|
14
|
-
|
|
15
|
-
type AvatarOwnProps<C extends ElementType> = {
|
|
16
|
-
/**
|
|
17
|
-
* A string of all className you want applied to the component.
|
|
18
|
-
*/
|
|
19
|
-
className?: string
|
|
20
|
-
/**
|
|
21
|
-
* Sets the color of the component to one of Chassis context colors.
|
|
22
|
-
*/
|
|
23
|
-
color?: ContextColor
|
|
24
|
-
/**
|
|
25
|
-
* Toggle the disabled state for the component. Only applies when `component` is `a` or `button`.
|
|
26
|
-
*/
|
|
27
|
-
disabled?: boolean
|
|
28
|
-
/**
|
|
29
|
-
* Renders the smooth (tinted background) context variant instead of the solid default.
|
|
30
|
-
*/
|
|
31
|
-
smooth?: boolean
|
|
32
|
-
/**
|
|
33
|
-
* Sets the size of the component to one of Chassis component sizes.
|
|
34
|
-
*/
|
|
35
|
-
size?: ExtendedSizing
|
|
36
|
-
/**
|
|
37
|
-
* Component used for the root node. Either a string to use a HTML element or a component.
|
|
38
|
-
* Defaults to `span`, or `a` when `href` is set. Set explicitly to `button` (or another
|
|
39
|
-
* interactive element/component) to make a non-link avatar focusable and clickable.
|
|
40
|
-
*/
|
|
41
|
-
component?: C
|
|
42
|
-
/**
|
|
43
|
-
* Image source. When set, renders an `AvatarImage` in place of `children`.
|
|
44
|
-
*/
|
|
45
|
-
src?: string
|
|
46
|
-
/**
|
|
47
|
-
* Alt text for the image rendered when `src` is set.
|
|
48
|
-
*/
|
|
49
|
-
alt?: string
|
|
50
|
-
/**
|
|
51
|
-
* Renders the avatar as a link to this URL. Defaults `component` to `a`. Passed through to a
|
|
52
|
-
* custom `component` too, regardless of whether it resolves to a native `a`/`button`.
|
|
53
|
-
*/
|
|
54
|
-
href?: string
|
|
55
|
-
/**
|
|
56
|
-
* Renders a status badge in the bottom-end corner, in one of the Chassis themed colors.
|
|
57
|
-
*/
|
|
58
|
-
status?: ContextColor
|
|
59
|
-
/**
|
|
60
|
-
* Accessible label for the status badge, exposed to assistive tech as visually hidden text.
|
|
61
|
-
* Falls back to the `status` value itself.
|
|
62
|
-
*/
|
|
63
|
-
statusLabel?: string
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
export type AvatarProps<C extends ElementType = 'span'> = PolymorphicComponentProps<
|
|
67
|
-
C,
|
|
68
|
-
AvatarOwnProps<C>
|
|
69
|
-
>
|
|
70
|
-
|
|
71
|
-
type AvatarComponent = (<C extends ElementType = 'span'>(
|
|
72
|
-
props: AvatarProps<C> & {
|
|
73
|
-
ref?: PolymorphicRefWithFallback<C, HTMLSpanElement | HTMLAnchorElement>
|
|
74
|
-
}
|
|
75
|
-
) => ReactElement | null) & { displayName?: string }
|
|
76
|
-
|
|
77
|
-
function AvatarRender<C extends ElementType = 'span'>(
|
|
78
|
-
{
|
|
79
|
-
children,
|
|
80
|
-
className,
|
|
81
|
-
color,
|
|
82
|
-
disabled,
|
|
83
|
-
smooth,
|
|
84
|
-
size,
|
|
85
|
-
component,
|
|
86
|
-
src,
|
|
87
|
-
alt = 'Profile picture',
|
|
88
|
-
href,
|
|
89
|
-
status,
|
|
90
|
-
statusLabel,
|
|
91
|
-
...rest
|
|
92
|
-
}: AvatarProps<C>,
|
|
93
|
-
ref: PolymorphicRef<C>
|
|
94
|
-
) {
|
|
95
|
-
const tag = component ?? (href ? 'a' : 'span')
|
|
96
|
-
const isInteractive = tag === 'a' || tag === 'button'
|
|
97
|
-
|
|
98
|
-
const _className = classNames(
|
|
99
|
-
'avatar',
|
|
100
|
-
color,
|
|
101
|
-
size,
|
|
102
|
-
{ smooth },
|
|
103
|
-
!isInteractive && { disabled },
|
|
104
|
-
className
|
|
105
|
-
)
|
|
106
|
-
|
|
107
|
-
const Component = (isInteractive ? Link : tag) as ElementType
|
|
108
|
-
|
|
109
|
-
return (
|
|
110
|
-
<Component
|
|
111
|
-
className={_className}
|
|
112
|
-
{...(isInteractive && { component: tag })}
|
|
113
|
-
// `disabled`/`href` used to only reach `Component` when `tag` was the native `'a'`/`'button'`
|
|
114
|
-
// string (routed through `Link`, which already forwards them itself) — a custom `component`
|
|
115
|
-
// (e.g. a router `Link`) fell through this `isInteractive` check and silently never received
|
|
116
|
-
// either prop. Passing them unconditionally fixes that; they're harmless no-ops on a plain,
|
|
117
|
-
// non-interactive `'span'`.
|
|
118
|
-
disabled={disabled}
|
|
119
|
-
href={href}
|
|
120
|
-
{...(tag === 'button' && { type: 'button' })}
|
|
121
|
-
{...rest}
|
|
122
|
-
ref={ref}
|
|
123
|
-
>
|
|
124
|
-
{src ? <AvatarImage src={src} alt={alt} /> : children}
|
|
125
|
-
{status && (
|
|
126
|
-
<Badge color={status} circle>
|
|
127
|
-
<span className="visually-hidden">{statusLabel ?? status}</span>
|
|
128
|
-
</Badge>
|
|
129
|
-
)}
|
|
130
|
-
</Component>
|
|
131
|
-
)
|
|
132
|
-
}
|
|
133
|
-
|
|
134
|
-
export const Avatar = createPolymorphicComponent<AvatarComponent>(
|
|
135
|
-
AvatarRender as ForwardRefRenderFunction<Element, AvatarProps<ElementType>>,
|
|
136
|
-
'Avatar'
|
|
137
|
-
)
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
import React, { forwardRef, ImgHTMLAttributes } from 'react'
|
|
2
|
-
import classNames from 'classnames'
|
|
3
|
-
|
|
4
|
-
export interface AvatarImageProps extends ImgHTMLAttributes<HTMLImageElement> {
|
|
5
|
-
/**
|
|
6
|
-
* A string of all className you want applied to the component.
|
|
7
|
-
*/
|
|
8
|
-
className?: string
|
|
9
|
-
}
|
|
10
|
-
|
|
11
|
-
export const AvatarImage = forwardRef<HTMLImageElement, AvatarImageProps>(
|
|
12
|
-
({ className, ...rest }, ref) => {
|
|
13
|
-
const _className = classNames('avatar-image', className)
|
|
14
|
-
|
|
15
|
-
return <img className={_className} {...rest} ref={ref} />
|
|
16
|
-
}
|
|
17
|
-
)
|
|
18
|
-
|
|
19
|
-
AvatarImage.displayName = 'AvatarImage'
|