erp-pro-ui 0.1.7 → 0.1.8
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/README.md +102 -0
- package/dist/ascii-text.cjs +1 -1
- package/dist/ascii-text.mjs +1 -1
- package/dist/calendar.cjs +1 -1
- package/dist/calendar.mjs +1 -1
- package/dist/card.cjs +1 -1
- package/dist/card.mjs +1 -1
- package/dist/carousel.cjs +1 -1
- package/dist/carousel.mjs +1 -1
- package/dist/catalog.cjs +6 -0
- package/dist/catalog.cjs.map +1 -1
- package/dist/catalog.d.ts +11 -1
- package/dist/catalog.d.ts.map +1 -1
- package/dist/catalog.mjs +6 -0
- package/dist/catalog.mjs.map +1 -1
- package/dist/checkbox.cjs +1 -1
- package/dist/checkbox.mjs +1 -1
- package/dist/chip.cjs +1 -1
- package/dist/chip.mjs +1 -1
- package/dist/chroma-grid.cjs +1 -1
- package/dist/chroma-grid.mjs +1 -1
- package/dist/chunks/DropdownMenu-C17Zqu_E.mjs +51 -0
- package/dist/chunks/DropdownMenu-C17Zqu_E.mjs.map +1 -0
- package/dist/chunks/DropdownMenu-DOvo5pV_.cjs +57 -0
- package/dist/chunks/DropdownMenu-DOvo5pV_.cjs.map +1 -0
- package/dist/chunks/{sun-to-moon-button-CBbDar4k.mjs → SunToMoonButton-BkEfkElJ.mjs} +2 -115
- package/dist/chunks/SunToMoonButton-BkEfkElJ.mjs.map +1 -0
- package/dist/chunks/{sun-to-moon-button-BOx1n6nk.cjs → SunToMoonButton-jS4BJD9q.cjs} +1 -120
- package/dist/chunks/SunToMoonButton-jS4BJD9q.cjs.map +1 -0
- package/dist/chunks/{ascii-text-RJxX3wCC.mjs → ascii-text-OBwVLFDC.mjs} +1 -1
- package/dist/chunks/{ascii-text-RJxX3wCC.mjs.map → ascii-text-OBwVLFDC.mjs.map} +1 -1
- package/dist/chunks/{ascii-text-BP-BBy0-.cjs → ascii-text-OnPOTd2I.cjs} +1 -1
- package/dist/chunks/{ascii-text-BP-BBy0-.cjs.map → ascii-text-OnPOTd2I.cjs.map} +1 -1
- package/dist/chunks/{calendar-Cp84V2rY.mjs → calendar-BOBm3dFA.mjs} +2 -2
- package/dist/chunks/{calendar-Cp84V2rY.mjs.map → calendar-BOBm3dFA.mjs.map} +1 -1
- package/dist/chunks/{calendar-DuCKr6b7.cjs → calendar-DJkfDhQA.cjs} +2 -2
- package/dist/chunks/{calendar-DuCKr6b7.cjs.map → calendar-DJkfDhQA.cjs.map} +1 -1
- package/dist/chunks/{card-SpHHNB0c.mjs → card-BId1_zHw.mjs} +1 -1
- package/dist/chunks/{card-SpHHNB0c.mjs.map → card-BId1_zHw.mjs.map} +1 -1
- package/dist/chunks/{card-CqPDr6Tt.cjs → card-RrT68nvu.cjs} +1 -1
- package/dist/chunks/{card-CqPDr6Tt.cjs.map → card-RrT68nvu.cjs.map} +1 -1
- package/dist/chunks/{carousel-C1skQ65z.mjs → carousel-DUqOaYvs.mjs} +1 -1
- package/dist/chunks/{carousel-C1skQ65z.mjs.map → carousel-DUqOaYvs.mjs.map} +1 -1
- package/dist/chunks/{carousel-YlRLOGkM.cjs → carousel-F4drTOr6.cjs} +1 -1
- package/dist/chunks/{carousel-YlRLOGkM.cjs.map → carousel-F4drTOr6.cjs.map} +1 -1
- package/dist/chunks/{checkbox-DjGpvMyo.mjs → checkbox-3aB7XC9_.mjs} +2 -2
- package/dist/chunks/checkbox-3aB7XC9_.mjs.map +1 -0
- package/dist/chunks/{checkbox-NM_iPd6S.cjs → checkbox-D8ivRZ1x.cjs} +2 -2
- package/dist/chunks/checkbox-D8ivRZ1x.cjs.map +1 -0
- package/dist/chunks/{chip-CbO8-1lK.mjs → chip-BFg3DJx6.mjs} +1 -1
- package/dist/chunks/{chip-CbO8-1lK.mjs.map → chip-BFg3DJx6.mjs.map} +1 -1
- package/dist/chunks/{chip-BY83_HK7.cjs → chip-CMs73sc5.cjs} +1 -1
- package/dist/chunks/{chip-BY83_HK7.cjs.map → chip-CMs73sc5.cjs.map} +1 -1
- package/dist/chunks/{chroma-grid-CexX28VQ.mjs → chroma-grid-DlY9hIRI.mjs} +1 -1
- package/dist/chunks/{chroma-grid-CexX28VQ.mjs.map → chroma-grid-DlY9hIRI.mjs.map} +1 -1
- package/dist/chunks/{chroma-grid-DP__XtmV.cjs → chroma-grid-tJX7CzCS.cjs} +1 -1
- package/dist/chunks/{chroma-grid-DP__XtmV.cjs.map → chroma-grid-tJX7CzCS.cjs.map} +1 -1
- package/dist/chunks/{color-palette-ThIKMhT1.cjs → color-palette-BmQC14gE.cjs} +1 -1
- package/dist/chunks/{color-palette-ThIKMhT1.cjs.map → color-palette-BmQC14gE.cjs.map} +1 -1
- package/dist/chunks/{color-palette-BU1cI6XP.mjs → color-palette-DnX1sODj.mjs} +1 -1
- package/dist/chunks/{color-palette-BU1cI6XP.mjs.map → color-palette-DnX1sODj.mjs.map} +1 -1
- package/dist/chunks/combobox-Bcwi33Qx.mjs +127 -0
- package/dist/chunks/combobox-Bcwi33Qx.mjs.map +1 -0
- package/dist/chunks/combobox-DRiHHhXL.cjs +134 -0
- package/dist/chunks/combobox-DRiHHhXL.cjs.map +1 -0
- package/dist/chunks/{data-table-B2r5OUFX.mjs → data-table-Biom5rvs.mjs} +189 -159
- package/dist/chunks/data-table-Biom5rvs.mjs.map +1 -0
- package/dist/chunks/{data-table-BLt8DTVy.cjs → data-table-D0BD2sFz.cjs} +189 -159
- package/dist/chunks/data-table-D0BD2sFz.cjs.map +1 -0
- package/dist/chunks/{date-picker-Bh6_p4bD.mjs → date-picker-CXGwnrLr.mjs} +8 -5
- package/dist/chunks/date-picker-CXGwnrLr.mjs.map +1 -0
- package/dist/chunks/{date-picker-CfCvp6Tj.cjs → date-picker-Cw_tZGuk.cjs} +8 -5
- package/dist/chunks/date-picker-Cw_tZGuk.cjs.map +1 -0
- package/dist/chunks/{dialog-BibwiFLY.mjs → dialog-CanVyiAD.mjs} +2 -2
- package/dist/chunks/{dialog-BibwiFLY.mjs.map → dialog-CanVyiAD.mjs.map} +1 -1
- package/dist/chunks/{dialog-I141I0nc.cjs → dialog-fffx1-4D.cjs} +2 -2
- package/dist/chunks/{dialog-I141I0nc.cjs.map → dialog-fffx1-4D.cjs.map} +1 -1
- package/dist/chunks/{drawer-DsE8Pb8e.mjs → drawer-BJsBK6cP.mjs} +2 -2
- package/dist/chunks/{drawer-DsE8Pb8e.mjs.map → drawer-BJsBK6cP.mjs.map} +1 -1
- package/dist/chunks/{drawer-EC9eopGX.cjs → drawer-DTRnKChF.cjs} +2 -2
- package/dist/chunks/{drawer-EC9eopGX.cjs.map → drawer-DTRnKChF.cjs.map} +1 -1
- package/dist/chunks/{form-DaGyqM97.cjs → form-C_JxqsSZ.cjs} +1 -1
- package/dist/chunks/{form-DaGyqM97.cjs.map → form-C_JxqsSZ.cjs.map} +1 -1
- package/dist/chunks/{form-CRwpjFWu.mjs → form-CvNNjA1i.mjs} +1 -1
- package/dist/chunks/{form-CRwpjFWu.mjs.map → form-CvNNjA1i.mjs.map} +1 -1
- package/dist/chunks/{gradual-blur-Di7MBs7M.cjs → gradual-blur-BB-8oKX6.cjs} +1 -1
- package/dist/chunks/{gradual-blur-Di7MBs7M.cjs.map → gradual-blur-BB-8oKX6.cjs.map} +1 -1
- package/dist/chunks/{gradual-blur-pt0UiMEy.mjs → gradual-blur-BR06yO3Y.mjs} +1 -1
- package/dist/chunks/{gradual-blur-pt0UiMEy.mjs.map → gradual-blur-BR06yO3Y.mjs.map} +1 -1
- package/dist/chunks/{hover-card-D78E07hk.cjs → hover-card--rplmsA_.cjs} +1 -1
- package/dist/chunks/{hover-card-D78E07hk.cjs.map → hover-card--rplmsA_.cjs.map} +1 -1
- package/dist/chunks/{hover-card-C3Xa18Ov.mjs → hover-card-C88rU-nW.mjs} +1 -1
- package/dist/chunks/{hover-card-C3Xa18Ov.mjs.map → hover-card-C88rU-nW.mjs.map} +1 -1
- package/dist/chunks/{input-CpARxvFi.mjs → input-Dox16Ozo.mjs} +17 -5
- package/dist/chunks/input-Dox16Ozo.mjs.map +1 -0
- package/dist/chunks/{input-DTW_8EwG.cjs → input-T4OlFhBc.cjs} +17 -5
- package/dist/chunks/input-T4OlFhBc.cjs.map +1 -0
- package/dist/chunks/{label-BVH02Yvq.mjs → label-C1Ekt3j2.mjs} +1 -1
- package/dist/chunks/{label-BVH02Yvq.mjs.map → label-C1Ekt3j2.mjs.map} +1 -1
- package/dist/chunks/{label-DN-Bg5i8.cjs → label-CxmbGh0l.cjs} +1 -1
- package/dist/chunks/{label-DN-Bg5i8.cjs.map → label-CxmbGh0l.cjs.map} +1 -1
- package/dist/chunks/{loading-B1yrR3KX.cjs → loading-BiM4mKh6.cjs} +1 -1
- package/dist/chunks/{loading-B1yrR3KX.cjs.map → loading-BiM4mKh6.cjs.map} +1 -1
- package/dist/chunks/{loading-B2Ron0Fd.mjs → loading-Dtosnb4A.mjs} +1 -1
- package/dist/chunks/{loading-B2Ron0Fd.mjs.map → loading-Dtosnb4A.mjs.map} +1 -1
- package/dist/chunks/multi-select-combobox-BrFtvCrS.mjs +120 -0
- package/dist/chunks/multi-select-combobox-BrFtvCrS.mjs.map +1 -0
- package/dist/chunks/{multi-select-combobox-FEbMAPEg.cjs → multi-select-combobox-BzqYLVpV.cjs} +54 -66
- package/dist/chunks/multi-select-combobox-BzqYLVpV.cjs.map +1 -0
- package/dist/chunks/{otp-input-B6nJC-Fl.cjs → otp-input-CkhV-sGl.cjs} +1 -1
- package/dist/chunks/{otp-input-B6nJC-Fl.cjs.map → otp-input-CkhV-sGl.cjs.map} +1 -1
- package/dist/chunks/{otp-input-B7DhhsMe.mjs → otp-input-JOysxKfD.mjs} +1 -1
- package/dist/chunks/{otp-input-B7DhhsMe.mjs.map → otp-input-JOysxKfD.mjs.map} +1 -1
- package/dist/chunks/{overlay-C58wXorc.mjs → overlay-BzkUmjQ-.mjs} +1 -1
- package/dist/chunks/{overlay-C58wXorc.mjs.map → overlay-BzkUmjQ-.mjs.map} +1 -1
- package/dist/chunks/{overlay-DwJgjJuu.cjs → overlay-DNnZywyR.cjs} +1 -1
- package/dist/chunks/{overlay-DwJgjJuu.cjs.map → overlay-DNnZywyR.cjs.map} +1 -1
- package/dist/chunks/{password-strength-meter-D7gmZNjp.mjs → password-strength-meter-BEx94cfy.mjs} +2 -2
- package/dist/chunks/{password-strength-meter-D7gmZNjp.mjs.map → password-strength-meter-BEx94cfy.mjs.map} +1 -1
- package/dist/chunks/{password-strength-meter-6vNu6p19.cjs → password-strength-meter-BNnmSgLh.cjs} +2 -2
- package/dist/chunks/{password-strength-meter-6vNu6p19.cjs.map → password-strength-meter-BNnmSgLh.cjs.map} +1 -1
- package/dist/chunks/{progress-bar-D6Q9Di7D.mjs → progress-bar-C9O0tuZf.mjs} +1 -1
- package/dist/chunks/{progress-bar-D6Q9Di7D.mjs.map → progress-bar-C9O0tuZf.mjs.map} +1 -1
- package/dist/chunks/{progress-bar-CbsCItvv.cjs → progress-bar-DS8KZ7eO.cjs} +1 -1
- package/dist/chunks/{progress-bar-CbsCItvv.cjs.map → progress-bar-DS8KZ7eO.cjs.map} +1 -1
- package/dist/chunks/{radio-DxakS7iD.cjs → radio-BiD1ofmq.cjs} +2 -2
- package/dist/chunks/radio-BiD1ofmq.cjs.map +1 -0
- package/dist/chunks/{radio-C6Meq2iz.mjs → radio-C7Eg3FEp.mjs} +2 -2
- package/dist/chunks/radio-C7Eg3FEp.mjs.map +1 -0
- package/dist/chunks/{select-SOmIt-BD.cjs → select-CORFYTvs.cjs} +39 -44
- package/dist/chunks/select-CORFYTvs.cjs.map +1 -0
- package/dist/chunks/{select-1rSJeUBQ.mjs → select-D0GOBB-b.mjs} +40 -45
- package/dist/chunks/select-D0GOBB-b.mjs.map +1 -0
- package/dist/chunks/sidebar-BrOLz89T.mjs +508 -0
- package/dist/chunks/sidebar-BrOLz89T.mjs.map +1 -0
- package/dist/chunks/sidebar-D9D651F6.cjs +538 -0
- package/dist/chunks/sidebar-D9D651F6.cjs.map +1 -0
- package/dist/chunks/{skeleton-BRx-80dg.mjs → skeleton-BdijDxP6.mjs} +1 -1
- package/dist/chunks/{skeleton-BRx-80dg.mjs.map → skeleton-BdijDxP6.mjs.map} +1 -1
- package/dist/chunks/{skeleton-o7DlA5yl.cjs → skeleton-wQOE-pRg.cjs} +1 -1
- package/dist/chunks/{skeleton-o7DlA5yl.cjs.map → skeleton-wQOE-pRg.cjs.map} +1 -1
- package/dist/chunks/{spinners-BylPf0uk.cjs → spinners-C9acUulz.cjs} +1 -1
- package/dist/chunks/{spinners-BylPf0uk.cjs.map → spinners-C9acUulz.cjs.map} +1 -1
- package/dist/chunks/{spinners-hJaI_cBH.mjs → spinners-g6_Up5Rb.mjs} +1 -1
- package/dist/chunks/{spinners-hJaI_cBH.mjs.map → spinners-g6_Up5Rb.mjs.map} +1 -1
- package/dist/chunks/{splash-cursor-CmqkSl6m.cjs → splash-cursor-CCi5n3O-.cjs} +1 -1
- package/dist/chunks/{splash-cursor-CmqkSl6m.cjs.map → splash-cursor-CCi5n3O-.cjs.map} +1 -1
- package/dist/chunks/{splash-cursor-Cxouip_h.mjs → splash-cursor-CDHTm5vA.mjs} +1 -1
- package/dist/chunks/{splash-cursor-Cxouip_h.mjs.map → splash-cursor-CDHTm5vA.mjs.map} +1 -1
- package/dist/chunks/{spotlight-card-B3L3K21T.cjs → spotlight-card-Bh7KG0vZ.cjs} +1 -1
- package/dist/chunks/{spotlight-card-B3L3K21T.cjs.map → spotlight-card-Bh7KG0vZ.cjs.map} +1 -1
- package/dist/chunks/{spotlight-card-DIgacTxA.mjs → spotlight-card-D0uTxfPZ.mjs} +1 -1
- package/dist/chunks/{spotlight-card-DIgacTxA.mjs.map → spotlight-card-D0uTxfPZ.mjs.map} +1 -1
- package/dist/chunks/{stepper-JD4ZHT-b.mjs → stepper-BMKxjCdm.mjs} +24 -17
- package/dist/chunks/stepper-BMKxjCdm.mjs.map +1 -0
- package/dist/chunks/{stepper-BpjKyemI.cjs → stepper-Z_7ugZJN.cjs} +24 -17
- package/dist/chunks/stepper-Z_7ugZJN.cjs.map +1 -0
- package/dist/chunks/sun-to-moon-button-DcRX0obV.mjs +118 -0
- package/dist/chunks/sun-to-moon-button-DcRX0obV.mjs.map +1 -0
- package/dist/chunks/sun-to-moon-button-De0_Sf01.cjs +124 -0
- package/dist/chunks/sun-to-moon-button-De0_Sf01.cjs.map +1 -0
- package/dist/chunks/{switch-hd7zTBD_.mjs → switch-C1gKE0m0.mjs} +22 -6
- package/dist/chunks/switch-C1gKE0m0.mjs.map +1 -0
- package/dist/chunks/{switch-C9suGEWg.cjs → switch-DPyzVrNh.cjs} +22 -6
- package/dist/chunks/switch-DPyzVrNh.cjs.map +1 -0
- package/dist/chunks/{textarea-Cu26uKqq.mjs → textarea-BY5-J9No.mjs} +1 -1
- package/dist/chunks/{textarea-Cu26uKqq.mjs.map → textarea-BY5-J9No.mjs.map} +1 -1
- package/dist/chunks/{textarea-cXgKzluG.cjs → textarea-D-oBQ3IZ.cjs} +1 -1
- package/dist/chunks/{textarea-cXgKzluG.cjs.map → textarea-D-oBQ3IZ.cjs.map} +1 -1
- package/dist/chunks/{toast-CpX-22n2.mjs → toast-BcBidy5n.mjs} +1 -1
- package/dist/chunks/{toast-CpX-22n2.mjs.map → toast-BcBidy5n.mjs.map} +1 -1
- package/dist/chunks/{toast-REa6FRBc.cjs → toast-DiFgv3IL.cjs} +1 -1
- package/dist/chunks/{toast-REa6FRBc.cjs.map → toast-DiFgv3IL.cjs.map} +1 -1
- package/dist/chunks/{tooltip-CASvQiFQ.mjs → tooltip-CmB8xKOF.mjs} +1 -1
- package/dist/chunks/{tooltip-CASvQiFQ.mjs.map → tooltip-CmB8xKOF.mjs.map} +1 -1
- package/dist/chunks/{tooltip-CKF78rni.cjs → tooltip-PJaQa8_l.cjs} +1 -1
- package/dist/chunks/{tooltip-CKF78rni.cjs.map → tooltip-PJaQa8_l.cjs.map} +1 -1
- package/dist/chunks/{typography-KxLf6Td8.mjs → typography-C_IanU4b.mjs} +1 -1
- package/dist/chunks/{typography-KxLf6Td8.mjs.map → typography-C_IanU4b.mjs.map} +1 -1
- package/dist/chunks/{typography-sGmh0gZ_.cjs → typography-DUD6Dzd5.cjs} +1 -1
- package/dist/chunks/{typography-sGmh0gZ_.cjs.map → typography-DUD6Dzd5.cjs.map} +1 -1
- package/dist/color-palette.cjs +1 -1
- package/dist/color-palette.mjs +1 -1
- package/dist/combobox.cjs +1 -1
- package/dist/combobox.mjs +1 -1
- package/dist/components/data-display/data-table/DataTable.d.ts +6 -1
- package/dist/components/data-display/data-table/DataTable.d.ts.map +1 -1
- package/dist/components/data-display/data-table/DataTableControls.d.ts +3 -2
- package/dist/components/data-display/data-table/DataTableControls.d.ts.map +1 -1
- package/dist/components/data-display/data-table/DataTableFilters.d.ts +2 -1
- package/dist/components/data-display/data-table/DataTableFilters.d.ts.map +1 -1
- package/dist/components/data-display/data-table/DataTableRows.d.ts +6 -1
- package/dist/components/data-display/data-table/DataTableRows.d.ts.map +1 -1
- package/dist/components/data-display/data-table/DataTableToolbar.d.ts.map +1 -1
- package/dist/components/forms/combobox/Combobox.d.ts +2 -0
- package/dist/components/forms/combobox/Combobox.d.ts.map +1 -1
- package/dist/components/forms/date-picker/DatePicker.d.ts.map +1 -1
- package/dist/components/forms/input/Input.d.ts.map +1 -1
- package/dist/components/forms/multi-select-combobox/MultiSelectCombobox.d.ts +2 -0
- package/dist/components/forms/multi-select-combobox/MultiSelectCombobox.d.ts.map +1 -1
- package/dist/components/forms/select/Select.d.ts.map +1 -1
- package/dist/components/forms/select/types.d.ts +1 -0
- package/dist/components/forms/select/types.d.ts.map +1 -1
- package/dist/components/forms/switch/Switch.d.ts.map +1 -1
- package/dist/components/navigation/index.d.ts +1 -0
- package/dist/components/navigation/index.d.ts.map +1 -1
- package/dist/components/navigation/sidebar/DashboardSidebarShell.d.ts +27 -0
- package/dist/components/navigation/sidebar/DashboardSidebarShell.d.ts.map +1 -0
- package/dist/components/navigation/sidebar/HamburgerIcon.d.ts +6 -0
- package/dist/components/navigation/sidebar/HamburgerIcon.d.ts.map +1 -0
- package/dist/components/navigation/sidebar/NavLink.d.ts +3 -0
- package/dist/components/navigation/sidebar/NavLink.d.ts.map +1 -0
- package/dist/components/navigation/sidebar/Sidebar.d.ts +3 -0
- package/dist/components/navigation/sidebar/Sidebar.d.ts.map +1 -0
- package/dist/components/navigation/sidebar/SidebarLinks.d.ts +3 -0
- package/dist/components/navigation/sidebar/SidebarLinks.d.ts.map +1 -0
- package/dist/components/navigation/sidebar/index.d.ts +8 -0
- package/dist/components/navigation/sidebar/index.d.ts.map +1 -0
- package/dist/components/navigation/sidebar/types.d.ts +53 -0
- package/dist/components/navigation/sidebar/types.d.ts.map +1 -0
- package/dist/components/navigation/stepper/Stepper.d.ts +1 -1
- package/dist/components/navigation/stepper/Stepper.d.ts.map +1 -1
- package/dist/components/navigation/stepper/index.d.ts +1 -1
- package/dist/components/navigation/stepper/index.d.ts.map +1 -1
- package/dist/components/navigation/stepper/types.d.ts +5 -0
- package/dist/components/navigation/stepper/types.d.ts.map +1 -1
- package/dist/components/overlays/dropdown-menu/DropdownMenu.d.ts +3 -0
- package/dist/components/overlays/dropdown-menu/DropdownMenu.d.ts.map +1 -0
- package/dist/components/overlays/dropdown-menu/index.d.ts +3 -0
- package/dist/components/overlays/dropdown-menu/index.d.ts.map +1 -0
- package/dist/components/overlays/dropdown-menu/types.d.ts +12 -0
- package/dist/components/overlays/dropdown-menu/types.d.ts.map +1 -0
- package/dist/components/overlays/index.d.ts +1 -0
- package/dist/components/overlays/index.d.ts.map +1 -1
- package/dist/data-table.cjs +1 -1
- package/dist/data-table.mjs +1 -1
- package/dist/date-picker.cjs +1 -1
- package/dist/date-picker.mjs +1 -1
- package/dist/dialog.cjs +1 -1
- package/dist/dialog.mjs +1 -1
- package/dist/docs.cjs +12 -0
- package/dist/docs.cjs.map +1 -1
- package/dist/docs.d.ts.map +1 -1
- package/dist/docs.mjs +12 -0
- package/dist/docs.mjs.map +1 -1
- package/dist/drawer.cjs +1 -1
- package/dist/drawer.mjs +1 -1
- package/dist/form.cjs +1 -1
- package/dist/form.mjs +1 -1
- package/dist/gradual-blur.cjs +1 -1
- package/dist/gradual-blur.mjs +1 -1
- package/dist/hover-card.cjs +1 -1
- package/dist/hover-card.mjs +1 -1
- package/dist/index.cjs +46 -37
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +4 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.mjs +40 -37
- package/dist/index.mjs.map +1 -1
- package/dist/input.cjs +1 -1
- package/dist/input.mjs +1 -1
- package/dist/label.cjs +1 -1
- package/dist/label.mjs +1 -1
- package/dist/loading.cjs +1 -1
- package/dist/loading.mjs +1 -1
- package/dist/multi-select-combobox.cjs +1 -1
- package/dist/multi-select-combobox.mjs +1 -1
- package/dist/otp-input.cjs +1 -1
- package/dist/otp-input.mjs +1 -1
- package/dist/password-strength-meter.cjs +1 -1
- package/dist/password-strength-meter.mjs +1 -1
- package/dist/progress-bar.cjs +1 -1
- package/dist/progress-bar.mjs +1 -1
- package/dist/radio.cjs +1 -1
- package/dist/radio.mjs +1 -1
- package/dist/select.cjs +1 -1
- package/dist/select.mjs +1 -1
- package/dist/sidebar.cjs +7 -0
- package/dist/sidebar.d.ts +2 -0
- package/dist/sidebar.mjs +2 -0
- package/dist/skeleton.cjs +1 -1
- package/dist/skeleton.mjs +1 -1
- package/dist/spinners.cjs +1 -1
- package/dist/spinners.mjs +1 -1
- package/dist/splash-cursor.cjs +1 -1
- package/dist/splash-cursor.mjs +1 -1
- package/dist/spotlight-card.cjs +1 -1
- package/dist/spotlight-card.mjs +1 -1
- package/dist/stepper.cjs +1 -1
- package/dist/stepper.mjs +1 -1
- package/dist/sun-to-moon-button.cjs +3 -2
- package/dist/sun-to-moon-button.mjs +2 -1
- package/dist/switch.cjs +1 -1
- package/dist/switch.mjs +1 -1
- package/dist/textarea.cjs +1 -1
- package/dist/textarea.mjs +1 -1
- package/dist/toast.cjs +1 -1
- package/dist/toast.mjs +1 -1
- package/dist/tokens.css +9 -9
- package/dist/tooltip.cjs +1 -1
- package/dist/tooltip.mjs +1 -1
- package/dist/typography.cjs +1 -1
- package/dist/typography.mjs +1 -1
- package/package.json +7 -1
- package/dist/chunks/checkbox-DjGpvMyo.mjs.map +0 -1
- package/dist/chunks/checkbox-NM_iPd6S.cjs.map +0 -1
- package/dist/chunks/combobox-B7UIcjsI.cjs +0 -147
- package/dist/chunks/combobox-B7UIcjsI.cjs.map +0 -1
- package/dist/chunks/combobox-D6WnThIQ.mjs +0 -140
- package/dist/chunks/combobox-D6WnThIQ.mjs.map +0 -1
- package/dist/chunks/data-table-B2r5OUFX.mjs.map +0 -1
- package/dist/chunks/data-table-BLt8DTVy.cjs.map +0 -1
- package/dist/chunks/date-picker-Bh6_p4bD.mjs.map +0 -1
- package/dist/chunks/date-picker-CfCvp6Tj.cjs.map +0 -1
- package/dist/chunks/input-CpARxvFi.mjs.map +0 -1
- package/dist/chunks/input-DTW_8EwG.cjs.map +0 -1
- package/dist/chunks/multi-select-combobox-CMhAXEGZ.mjs +0 -132
- package/dist/chunks/multi-select-combobox-CMhAXEGZ.mjs.map +0 -1
- package/dist/chunks/multi-select-combobox-FEbMAPEg.cjs.map +0 -1
- package/dist/chunks/radio-C6Meq2iz.mjs.map +0 -1
- package/dist/chunks/radio-DxakS7iD.cjs.map +0 -1
- package/dist/chunks/select-1rSJeUBQ.mjs.map +0 -1
- package/dist/chunks/select-SOmIt-BD.cjs.map +0 -1
- package/dist/chunks/stepper-BpjKyemI.cjs.map +0 -1
- package/dist/chunks/stepper-JD4ZHT-b.mjs.map +0 -1
- package/dist/chunks/sun-to-moon-button-BOx1n6nk.cjs.map +0 -1
- package/dist/chunks/sun-to-moon-button-CBbDar4k.mjs.map +0 -1
- package/dist/chunks/switch-C9suGEWg.cjs.map +0 -1
- package/dist/chunks/switch-hd7zTBD_.mjs.map +0 -1
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
import { n as mergeClassNames } from "./utils-ati1KkDb.mjs";
|
|
2
|
+
import { t as TruncatedText } from "./truncated-text-DTgks5yS.mjs";
|
|
3
|
+
import { J as CheckIcon, N as ChevronDownIcon } from "./icons-bx3nrxNv.mjs";
|
|
4
|
+
import { t as DropdownMenu } from "./DropdownMenu-C17Zqu_E.mjs";
|
|
5
|
+
import { useState } from "react";
|
|
6
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
7
|
+
import { motion, useMotionTemplate, useMotionValue } from "framer-motion";
|
|
8
|
+
//#region src/components/forms/combobox/Combobox.tsx
|
|
9
|
+
var Combobox = ({ options, value, onChange, placeholder = "Select...", searchPlaceholder = "Type to search...", noOptionsText = "No options", className, bgClassName = "bg-ds-surface-1", createOptionLabel, onCreateOption }) => {
|
|
10
|
+
const [open, setOpen] = useState(false);
|
|
11
|
+
const [search, setSearch] = useState("");
|
|
12
|
+
const [visible, setVisible] = useState(false);
|
|
13
|
+
const mouseX = useMotionValue(0);
|
|
14
|
+
const mouseY = useMotionValue(0);
|
|
15
|
+
const radius = 100;
|
|
16
|
+
const filteredOptions = options.filter((opt) => opt.label.toLowerCase().includes(search.toLowerCase()));
|
|
17
|
+
const handleMouseMove = (event) => {
|
|
18
|
+
const { left, top } = event.currentTarget.getBoundingClientRect();
|
|
19
|
+
mouseX.set(event.clientX - left);
|
|
20
|
+
mouseY.set(event.clientY - top);
|
|
21
|
+
};
|
|
22
|
+
return /* @__PURE__ */ jsxs(DropdownMenu, {
|
|
23
|
+
className: mergeClassNames("w-full", className),
|
|
24
|
+
open,
|
|
25
|
+
onOpenChange: (nextOpen) => {
|
|
26
|
+
setOpen(nextOpen);
|
|
27
|
+
if (!nextOpen) setSearch("");
|
|
28
|
+
},
|
|
29
|
+
animationClassName: "origin-top-left",
|
|
30
|
+
panelClassName: " left-0 top-[40px] z-20 mt-1 flex max-h-60 flex-col rounded-lg border border-ds-border-2 bg-ds-surface-1 shadow-3 backdrop-blur-xl transition",
|
|
31
|
+
trigger: /* @__PURE__ */ jsx(motion.div, {
|
|
32
|
+
style: { backgroundImage: useMotionTemplate`
|
|
33
|
+
radial-gradient(
|
|
34
|
+
${visible ? `${radius}px` : "0px"} circle at ${mouseX}px ${mouseY}px,
|
|
35
|
+
var(--ds-color-accent),
|
|
36
|
+
transparent 90%
|
|
37
|
+
)
|
|
38
|
+
` },
|
|
39
|
+
onMouseMove: handleMouseMove,
|
|
40
|
+
onMouseEnter: () => setVisible(true),
|
|
41
|
+
onMouseLeave: () => setVisible(false),
|
|
42
|
+
className: "group/combobox w-full rounded-lg border-ds-border-2 p-[2px] transition duration-300 hover:border-ds-border-accent",
|
|
43
|
+
children: /* @__PURE__ */ jsxs("div", {
|
|
44
|
+
className: mergeClassNames("flex h-10 w-full cursor-pointer items-center justify-between rounded-md border border-ds-border-field px-3 py-2 text-sm text-ds-1 transition duration-400 ease-in-out focus-visible:ring-2 focus-visible:ring-ds-focus focus-visible:outline-none", bgClassName),
|
|
45
|
+
children: [value ? /* @__PURE__ */ jsx(TruncatedText, {
|
|
46
|
+
as: "span",
|
|
47
|
+
showTitleOnHover: true,
|
|
48
|
+
className: "flex-1 text-ds-1",
|
|
49
|
+
children: options.find((opt) => opt.value === value)?.label
|
|
50
|
+
}) : /* @__PURE__ */ jsx(TruncatedText, {
|
|
51
|
+
as: "span",
|
|
52
|
+
className: "flex-1 text-ds-2",
|
|
53
|
+
children: placeholder
|
|
54
|
+
}), /* @__PURE__ */ jsx("span", {
|
|
55
|
+
className: mergeClassNames("ml-2 text-ds-2 transition-transform duration-300", open ? "rotate-180" : "rotate-0"),
|
|
56
|
+
children: /* @__PURE__ */ jsx(ChevronDownIcon, {
|
|
57
|
+
width: 24,
|
|
58
|
+
height: 24,
|
|
59
|
+
color: "currentColor",
|
|
60
|
+
className: "h-5 w-5"
|
|
61
|
+
})
|
|
62
|
+
})]
|
|
63
|
+
})
|
|
64
|
+
}),
|
|
65
|
+
children: [
|
|
66
|
+
/* @__PURE__ */ jsx("div", {
|
|
67
|
+
className: "sticky top-0 z-10 rounded-t-lg border-b border-ds-border-2/30 bg-ds-surface-1/95 backdrop-blur-sm",
|
|
68
|
+
children: /* @__PURE__ */ jsx("input", {
|
|
69
|
+
autoFocus: true,
|
|
70
|
+
className: "w-full bg-transparent px-3 py-2 text-sm text-ds-1 outline-none placeholder:text-ds-2 focus-visible:ring-2 focus-visible:ring-ds-focus/30 rounded-t-lg",
|
|
71
|
+
placeholder: searchPlaceholder,
|
|
72
|
+
value: search,
|
|
73
|
+
onChange: (e) => setSearch(e.target.value),
|
|
74
|
+
onClick: (e) => e.stopPropagation()
|
|
75
|
+
})
|
|
76
|
+
}),
|
|
77
|
+
/* @__PURE__ */ jsxs("div", {
|
|
78
|
+
className: "max-h-80 flex-1 overflow-auto",
|
|
79
|
+
children: [filteredOptions.length === 0 && !createOptionLabel && /* @__PURE__ */ jsx("div", {
|
|
80
|
+
className: "px-3 py-2 text-ds-2",
|
|
81
|
+
children: noOptionsText
|
|
82
|
+
}), filteredOptions.map((opt) => /* @__PURE__ */ jsxs("div", {
|
|
83
|
+
className: mergeClassNames("mx-1 my-1 flex cursor-pointer items-center gap-2 rounded-md px-3 py-2 text-sm text-ds-1 transition", opt.value === value ? "bg-ds-accent-subtle text-ds-1 font-semibold" : "", "hover:bg-ds-accent hover:text-ds-on-accent"),
|
|
84
|
+
onClick: () => {
|
|
85
|
+
onChange(opt.value);
|
|
86
|
+
setSearch("");
|
|
87
|
+
setOpen(false);
|
|
88
|
+
},
|
|
89
|
+
children: [/* @__PURE__ */ jsx("span", {
|
|
90
|
+
className: "flex w-5 items-center justify-center",
|
|
91
|
+
children: opt.value === value && /* @__PURE__ */ jsx(CheckIcon, {
|
|
92
|
+
className: "text-ds-1",
|
|
93
|
+
width: 18,
|
|
94
|
+
height: 18
|
|
95
|
+
})
|
|
96
|
+
}), /* @__PURE__ */ jsx(TruncatedText, {
|
|
97
|
+
as: "span",
|
|
98
|
+
showTitleOnHover: true,
|
|
99
|
+
className: "flex-1",
|
|
100
|
+
children: opt.label
|
|
101
|
+
})]
|
|
102
|
+
}, opt.value))]
|
|
103
|
+
}),
|
|
104
|
+
createOptionLabel && onCreateOption && /* @__PURE__ */ jsx("div", {
|
|
105
|
+
className: "sticky bottom-0 z-10 rounded-b-lg border-t border-ds-border-3 bg-ds-surface-1/95 backdrop-blur-sm",
|
|
106
|
+
children: /* @__PURE__ */ jsxs("div", {
|
|
107
|
+
className: "mx-1 my-1 flex cursor-pointer items-center gap-2 rounded-md px-3 py-2 text-sm font-semibold text-ds-1 transition hover:bg-ds-accent hover:text-ds-on-accent",
|
|
108
|
+
onClick: () => {
|
|
109
|
+
onCreateOption();
|
|
110
|
+
setSearch("");
|
|
111
|
+
setOpen(false);
|
|
112
|
+
},
|
|
113
|
+
children: [/* @__PURE__ */ jsx("span", { className: "flex w-5 items-center justify-center" }), /* @__PURE__ */ jsx(TruncatedText, {
|
|
114
|
+
as: "span",
|
|
115
|
+
showTitleOnHover: true,
|
|
116
|
+
className: "flex-1",
|
|
117
|
+
children: createOptionLabel
|
|
118
|
+
})]
|
|
119
|
+
})
|
|
120
|
+
})
|
|
121
|
+
]
|
|
122
|
+
});
|
|
123
|
+
};
|
|
124
|
+
//#endregion
|
|
125
|
+
export { Combobox as t };
|
|
126
|
+
|
|
127
|
+
//# sourceMappingURL=combobox-Bcwi33Qx.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"combobox-Bcwi33Qx.mjs","names":[],"sources":["../../src/components/forms/combobox/Combobox.tsx"],"sourcesContent":["import React, { useState } from \"react\";\nimport { motion, useMotionTemplate, useMotionValue } from \"framer-motion\";\n\nimport { CheckIcon, ChevronDownIcon } from \"../../icons\";\nimport { DropdownMenu } from \"../../overlays/dropdown-menu\";\nimport { TruncatedText } from \"../../typography/truncated-text\";\nimport { mergeClassNames } from \"../../../utils\";\n\nexport interface ComboboxOption {\n label: string;\n value: string;\n}\n\nexport interface ComboboxProps {\n options: ComboboxOption[];\n value: string;\n onChange: (value: string) => void;\n placeholder?: string;\n searchPlaceholder?: string;\n noOptionsText?: string;\n className?: string;\n bgClassName?: string;\n createOptionLabel?: string;\n onCreateOption?: () => void;\n}\n\nconst Combobox: React.FC<ComboboxProps> = ({\n options,\n value,\n onChange,\n placeholder = \"Select...\",\n searchPlaceholder = \"Type to search...\",\n noOptionsText = \"No options\",\n className,\n bgClassName = \"bg-ds-surface-1\",\n createOptionLabel,\n onCreateOption,\n}) => {\n const [open, setOpen] = useState(false);\n const [search, setSearch] = useState(\"\");\n const [visible, setVisible] = useState(false);\n const mouseX = useMotionValue(0);\n const mouseY = useMotionValue(0);\n const radius = 100;\n\n // Filter options by search\n const filteredOptions = options.filter((opt) =>\n opt.label.toLowerCase().includes(search.toLowerCase()),\n );\n\n const handleMouseMove = (event: React.MouseEvent<HTMLDivElement>) => {\n const { left, top } = event.currentTarget.getBoundingClientRect();\n mouseX.set(event.clientX - left);\n mouseY.set(event.clientY - top);\n };\n\n return (\n <DropdownMenu\n className={mergeClassNames(\"w-full\", className)}\n open={open}\n onOpenChange={(nextOpen) => {\n setOpen(nextOpen);\n if (!nextOpen) {\n setSearch(\"\");\n }\n }}\n animationClassName=\"origin-top-left\"\n panelClassName=\" left-0 top-[40px] z-20 mt-1 flex max-h-60 flex-col rounded-lg border border-ds-border-2 bg-ds-surface-1 shadow-3 backdrop-blur-xl transition\"\n trigger={\n <motion.div\n style={{\n backgroundImage: useMotionTemplate`\n radial-gradient(\n ${visible ? `${radius}px` : \"0px\"} circle at ${mouseX}px ${mouseY}px,\n var(--ds-color-accent),\n transparent 90%\n )\n `,\n }}\n onMouseMove={handleMouseMove}\n onMouseEnter={() => setVisible(true)}\n onMouseLeave={() => setVisible(false)}\n className=\"group/combobox w-full rounded-lg border-ds-border-2 p-[2px] transition duration-300 hover:border-ds-border-accent\"\n >\n <div\n className={mergeClassNames(\n \"flex h-10 w-full cursor-pointer items-center justify-between rounded-md border border-ds-border-field px-3 py-2 text-sm text-ds-1 transition duration-400 ease-in-out focus-visible:ring-2 focus-visible:ring-ds-focus focus-visible:outline-none\",\n bgClassName,\n )}\n >\n {value ? (\n <TruncatedText\n as=\"span\"\n showTitleOnHover\n className=\"flex-1 text-ds-1\"\n >\n {options.find((opt) => opt.value === value)?.label}\n </TruncatedText>\n ) : (\n <TruncatedText as=\"span\" className=\"flex-1 text-ds-2\">\n {placeholder}\n </TruncatedText>\n )}\n <span\n className={mergeClassNames(\n \"ml-2 text-ds-2 transition-transform duration-300\",\n open ? \"rotate-180\" : \"rotate-0\",\n )}\n >\n <ChevronDownIcon\n width={24}\n height={24}\n color=\"currentColor\"\n className=\"h-5 w-5\"\n />\n </span>\n </div>\n </motion.div>\n }\n >\n {/* Sticky search input */}\n <div className=\"sticky top-0 z-10 rounded-t-lg border-b border-ds-border-2/30 bg-ds-surface-1/95 backdrop-blur-sm\">\n <input\n autoFocus\n className=\"w-full bg-transparent px-3 py-2 text-sm text-ds-1 outline-none placeholder:text-ds-2 focus-visible:ring-2 focus-visible:ring-ds-focus/30 rounded-t-lg\"\n placeholder={searchPlaceholder}\n value={search}\n onChange={(e) => setSearch(e.target.value)}\n onClick={(e) => e.stopPropagation()}\n />\n </div>\n {/* Scrollable options */}\n <div className=\"max-h-80 flex-1 overflow-auto\">\n {filteredOptions.length === 0 && !createOptionLabel && (\n <div className=\"px-3 py-2 text-ds-2\">{noOptionsText}</div>\n )}\n {filteredOptions.map((opt) => (\n <div\n key={opt.value}\n className={mergeClassNames(\n \"mx-1 my-1 flex cursor-pointer items-center gap-2 rounded-md px-3 py-2 text-sm text-ds-1 transition\",\n opt.value === value\n ? \"bg-ds-accent-subtle text-ds-1 font-semibold\"\n : \"\",\n \"hover:bg-ds-accent hover:text-ds-on-accent\",\n )}\n onClick={() => {\n onChange(opt.value);\n setSearch(\"\");\n setOpen(false);\n }}\n >\n <span className=\"flex w-5 items-center justify-center\">\n {opt.value === value && (\n <CheckIcon className=\"text-ds-1\" width={18} height={18} />\n )}\n </span>\n <TruncatedText as=\"span\" showTitleOnHover className=\"flex-1\">\n {opt.label}\n </TruncatedText>\n </div>\n ))}\n </div>\n {/* Sticky create option */}\n {createOptionLabel && onCreateOption && (\n <div className=\"sticky bottom-0 z-10 rounded-b-lg border-t border-ds-border-3 bg-ds-surface-1/95 backdrop-blur-sm\">\n <div\n className=\"mx-1 my-1 flex cursor-pointer items-center gap-2 rounded-md px-3 py-2 text-sm font-semibold text-ds-1 transition hover:bg-ds-accent hover:text-ds-on-accent\"\n onClick={() => {\n onCreateOption();\n setSearch(\"\");\n setOpen(false);\n }}\n >\n <span className=\"flex w-5 items-center justify-center\">\n {/* Optionally add an icon here */}\n </span>\n <TruncatedText as=\"span\" showTitleOnHover className=\"flex-1\">\n {createOptionLabel}\n </TruncatedText>\n </div>\n </div>\n )}\n </DropdownMenu>\n );\n};\n\nexport default Combobox;\n"],"mappings":";;;;;;;;AA0BA,IAAM,YAAqC,EACzC,SACA,OACA,UACA,cAAc,aACd,oBAAoB,qBACpB,gBAAgB,cAChB,WACA,cAAc,mBACd,mBACA,qBACI;CACJ,MAAM,CAAC,MAAM,WAAW,SAAS,MAAM;CACvC,MAAM,CAAC,QAAQ,aAAa,SAAS,GAAG;CACxC,MAAM,CAAC,SAAS,cAAc,SAAS,MAAM;CAC7C,MAAM,SAAS,eAAe,EAAE;CAChC,MAAM,SAAS,eAAe,EAAE;CAChC,MAAM,SAAS;CAGf,MAAM,kBAAkB,QAAQ,QAAQ,QACtC,IAAI,MAAM,aAAa,CAAC,SAAS,OAAO,aAAa,CAAC,CACvD;CAED,MAAM,mBAAmB,UAA4C;EACnE,MAAM,EAAE,MAAM,QAAQ,MAAM,cAAc,uBAAuB;AACjE,SAAO,IAAI,MAAM,UAAU,KAAK;AAChC,SAAO,IAAI,MAAM,UAAU,IAAI;;AAGjC,QACE,qBAAC,cAAD;EACE,WAAW,gBAAgB,UAAU,UAAU;EACzC;EACN,eAAe,aAAa;AAC1B,WAAQ,SAAS;AACjB,OAAI,CAAC,SACH,WAAU,GAAG;;EAGjB,oBAAmB;EACnB,gBAAe;EACf,SACE,oBAAC,OAAO,KAAR;GACE,OAAO,EACL,iBAAiB,iBAAiB;;kBAE5B,UAAU,GAAG,OAAO,MAAM,MAAM,aAAa,OAAO,KAAK,OAAO;;;;eAKvE;GACD,aAAa;GACb,oBAAoB,WAAW,KAAK;GACpC,oBAAoB,WAAW,MAAM;GACrC,WAAU;aAEV,qBAAC,OAAD;IACE,WAAW,gBACT,qPACA,YACD;cAJH,CAMG,QACC,oBAAC,eAAD;KACE,IAAG;KACH,kBAAA;KACA,WAAU;eAET,QAAQ,MAAM,QAAQ,IAAI,UAAU,MAAM,EAAE;KAC/B,CAAA,GAEhB,oBAAC,eAAD;KAAe,IAAG;KAAO,WAAU;eAChC;KACa,CAAA,EAElB,oBAAC,QAAD;KACE,WAAW,gBACT,oDACA,OAAO,eAAe,WACvB;eAED,oBAAC,iBAAD;MACE,OAAO;MACP,QAAQ;MACR,OAAM;MACN,WAAU;MACV,CAAA;KACG,CAAA,CACH;;GACK,CAAA;YA5DjB;GAgEE,oBAAC,OAAD;IAAK,WAAU;cACb,oBAAC,SAAD;KACE,WAAA;KACA,WAAU;KACV,aAAa;KACb,OAAO;KACP,WAAW,MAAM,UAAU,EAAE,OAAO,MAAM;KAC1C,UAAU,MAAM,EAAE,iBAAiB;KACnC,CAAA;IACE,CAAA;GAEN,qBAAC,OAAD;IAAK,WAAU;cAAf,CACG,gBAAgB,WAAW,KAAK,CAAC,qBAChC,oBAAC,OAAD;KAAK,WAAU;eAAuB;KAAoB,CAAA,EAE3D,gBAAgB,KAAK,QACpB,qBAAC,OAAD;KAEE,WAAW,gBACT,sGACA,IAAI,UAAU,QACV,gDACA,IACJ,6CACD;KACD,eAAe;AACb,eAAS,IAAI,MAAM;AACnB,gBAAU,GAAG;AACb,cAAQ,MAAM;;eAZlB,CAeE,oBAAC,QAAD;MAAM,WAAU;gBACb,IAAI,UAAU,SACb,oBAAC,WAAD;OAAW,WAAU;OAAY,OAAO;OAAI,QAAQ;OAAM,CAAA;MAEvD,CAAA,EACP,oBAAC,eAAD;MAAe,IAAG;MAAO,kBAAA;MAAiB,WAAU;gBACjD,IAAI;MACS,CAAA,CACZ;OAtBC,IAAI,MAsBL,CACN,CACE;;GAEL,qBAAqB,kBACpB,oBAAC,OAAD;IAAK,WAAU;cACb,qBAAC,OAAD;KACE,WAAU;KACV,eAAe;AACb,sBAAgB;AAChB,gBAAU,GAAG;AACb,cAAQ,MAAM;;eALlB,CAQE,oBAAC,QAAD,EAAM,WAAU,wCAET,CAAA,EACP,oBAAC,eAAD;MAAe,IAAG;MAAO,kBAAA;MAAiB,WAAU;gBACjD;MACa,CAAA,CACZ;;IACF,CAAA;GAEK"}
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
const require_chunk = require("./chunk-B_GkZjkl.cjs");
|
|
2
|
+
const require_utils = require("./utils-B4SmmY4J.cjs");
|
|
3
|
+
const require_truncated_text = require("./truncated-text-istgJRUq.cjs");
|
|
4
|
+
const require_icons = require("./icons-CRanVZB1.cjs");
|
|
5
|
+
const require_DropdownMenu = require("./DropdownMenu-DOvo5pV_.cjs");
|
|
6
|
+
let react = require("react");
|
|
7
|
+
react = require_chunk.__toESM(react, 1);
|
|
8
|
+
let react_jsx_runtime = require("react/jsx-runtime");
|
|
9
|
+
let framer_motion = require("framer-motion");
|
|
10
|
+
//#region src/components/forms/combobox/Combobox.tsx
|
|
11
|
+
var Combobox = ({ options, value, onChange, placeholder = "Select...", searchPlaceholder = "Type to search...", noOptionsText = "No options", className, bgClassName = "bg-ds-surface-1", createOptionLabel, onCreateOption }) => {
|
|
12
|
+
const [open, setOpen] = (0, react.useState)(false);
|
|
13
|
+
const [search, setSearch] = (0, react.useState)("");
|
|
14
|
+
const [visible, setVisible] = (0, react.useState)(false);
|
|
15
|
+
const mouseX = (0, framer_motion.useMotionValue)(0);
|
|
16
|
+
const mouseY = (0, framer_motion.useMotionValue)(0);
|
|
17
|
+
const radius = 100;
|
|
18
|
+
const filteredOptions = options.filter((opt) => opt.label.toLowerCase().includes(search.toLowerCase()));
|
|
19
|
+
const handleMouseMove = (event) => {
|
|
20
|
+
const { left, top } = event.currentTarget.getBoundingClientRect();
|
|
21
|
+
mouseX.set(event.clientX - left);
|
|
22
|
+
mouseY.set(event.clientY - top);
|
|
23
|
+
};
|
|
24
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(require_DropdownMenu.DropdownMenu, {
|
|
25
|
+
className: require_utils.mergeClassNames("w-full", className),
|
|
26
|
+
open,
|
|
27
|
+
onOpenChange: (nextOpen) => {
|
|
28
|
+
setOpen(nextOpen);
|
|
29
|
+
if (!nextOpen) setSearch("");
|
|
30
|
+
},
|
|
31
|
+
animationClassName: "origin-top-left",
|
|
32
|
+
panelClassName: " left-0 top-[40px] z-20 mt-1 flex max-h-60 flex-col rounded-lg border border-ds-border-2 bg-ds-surface-1 shadow-3 backdrop-blur-xl transition",
|
|
33
|
+
trigger: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(framer_motion.motion.div, {
|
|
34
|
+
style: { backgroundImage: framer_motion.useMotionTemplate`
|
|
35
|
+
radial-gradient(
|
|
36
|
+
${visible ? `${radius}px` : "0px"} circle at ${mouseX}px ${mouseY}px,
|
|
37
|
+
var(--ds-color-accent),
|
|
38
|
+
transparent 90%
|
|
39
|
+
)
|
|
40
|
+
` },
|
|
41
|
+
onMouseMove: handleMouseMove,
|
|
42
|
+
onMouseEnter: () => setVisible(true),
|
|
43
|
+
onMouseLeave: () => setVisible(false),
|
|
44
|
+
className: "group/combobox w-full rounded-lg border-ds-border-2 p-[2px] transition duration-300 hover:border-ds-border-accent",
|
|
45
|
+
children: /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
46
|
+
className: require_utils.mergeClassNames("flex h-10 w-full cursor-pointer items-center justify-between rounded-md border border-ds-border-field px-3 py-2 text-sm text-ds-1 transition duration-400 ease-in-out focus-visible:ring-2 focus-visible:ring-ds-focus focus-visible:outline-none", bgClassName),
|
|
47
|
+
children: [value ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_truncated_text.TruncatedText, {
|
|
48
|
+
as: "span",
|
|
49
|
+
showTitleOnHover: true,
|
|
50
|
+
className: "flex-1 text-ds-1",
|
|
51
|
+
children: options.find((opt) => opt.value === value)?.label
|
|
52
|
+
}) : /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_truncated_text.TruncatedText, {
|
|
53
|
+
as: "span",
|
|
54
|
+
className: "flex-1 text-ds-2",
|
|
55
|
+
children: placeholder
|
|
56
|
+
}), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
57
|
+
className: require_utils.mergeClassNames("ml-2 text-ds-2 transition-transform duration-300", open ? "rotate-180" : "rotate-0"),
|
|
58
|
+
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_icons.ChevronDownIcon, {
|
|
59
|
+
width: 24,
|
|
60
|
+
height: 24,
|
|
61
|
+
color: "currentColor",
|
|
62
|
+
className: "h-5 w-5"
|
|
63
|
+
})
|
|
64
|
+
})]
|
|
65
|
+
})
|
|
66
|
+
}),
|
|
67
|
+
children: [
|
|
68
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
69
|
+
className: "sticky top-0 z-10 rounded-t-lg border-b border-ds-border-2/30 bg-ds-surface-1/95 backdrop-blur-sm",
|
|
70
|
+
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)("input", {
|
|
71
|
+
autoFocus: true,
|
|
72
|
+
className: "w-full bg-transparent px-3 py-2 text-sm text-ds-1 outline-none placeholder:text-ds-2 focus-visible:ring-2 focus-visible:ring-ds-focus/30 rounded-t-lg",
|
|
73
|
+
placeholder: searchPlaceholder,
|
|
74
|
+
value: search,
|
|
75
|
+
onChange: (e) => setSearch(e.target.value),
|
|
76
|
+
onClick: (e) => e.stopPropagation()
|
|
77
|
+
})
|
|
78
|
+
}),
|
|
79
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
80
|
+
className: "max-h-80 flex-1 overflow-auto",
|
|
81
|
+
children: [filteredOptions.length === 0 && !createOptionLabel && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
82
|
+
className: "px-3 py-2 text-ds-2",
|
|
83
|
+
children: noOptionsText
|
|
84
|
+
}), filteredOptions.map((opt) => /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
85
|
+
className: require_utils.mergeClassNames("mx-1 my-1 flex cursor-pointer items-center gap-2 rounded-md px-3 py-2 text-sm text-ds-1 transition", opt.value === value ? "bg-ds-accent-subtle text-ds-1 font-semibold" : "", "hover:bg-ds-accent hover:text-ds-on-accent"),
|
|
86
|
+
onClick: () => {
|
|
87
|
+
onChange(opt.value);
|
|
88
|
+
setSearch("");
|
|
89
|
+
setOpen(false);
|
|
90
|
+
},
|
|
91
|
+
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
92
|
+
className: "flex w-5 items-center justify-center",
|
|
93
|
+
children: opt.value === value && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_icons.CheckIcon, {
|
|
94
|
+
className: "text-ds-1",
|
|
95
|
+
width: 18,
|
|
96
|
+
height: 18
|
|
97
|
+
})
|
|
98
|
+
}), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_truncated_text.TruncatedText, {
|
|
99
|
+
as: "span",
|
|
100
|
+
showTitleOnHover: true,
|
|
101
|
+
className: "flex-1",
|
|
102
|
+
children: opt.label
|
|
103
|
+
})]
|
|
104
|
+
}, opt.value))]
|
|
105
|
+
}),
|
|
106
|
+
createOptionLabel && onCreateOption && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
107
|
+
className: "sticky bottom-0 z-10 rounded-b-lg border-t border-ds-border-3 bg-ds-surface-1/95 backdrop-blur-sm",
|
|
108
|
+
children: /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
109
|
+
className: "mx-1 my-1 flex cursor-pointer items-center gap-2 rounded-md px-3 py-2 text-sm font-semibold text-ds-1 transition hover:bg-ds-accent hover:text-ds-on-accent",
|
|
110
|
+
onClick: () => {
|
|
111
|
+
onCreateOption();
|
|
112
|
+
setSearch("");
|
|
113
|
+
setOpen(false);
|
|
114
|
+
},
|
|
115
|
+
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", { className: "flex w-5 items-center justify-center" }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_truncated_text.TruncatedText, {
|
|
116
|
+
as: "span",
|
|
117
|
+
showTitleOnHover: true,
|
|
118
|
+
className: "flex-1",
|
|
119
|
+
children: createOptionLabel
|
|
120
|
+
})]
|
|
121
|
+
})
|
|
122
|
+
})
|
|
123
|
+
]
|
|
124
|
+
});
|
|
125
|
+
};
|
|
126
|
+
//#endregion
|
|
127
|
+
Object.defineProperty(exports, "Combobox", {
|
|
128
|
+
enumerable: true,
|
|
129
|
+
get: function() {
|
|
130
|
+
return Combobox;
|
|
131
|
+
}
|
|
132
|
+
});
|
|
133
|
+
|
|
134
|
+
//# sourceMappingURL=combobox-DRiHHhXL.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"combobox-DRiHHhXL.cjs","names":[],"sources":["../../src/components/forms/combobox/Combobox.tsx"],"sourcesContent":["import React, { useState } from \"react\";\nimport { motion, useMotionTemplate, useMotionValue } from \"framer-motion\";\n\nimport { CheckIcon, ChevronDownIcon } from \"../../icons\";\nimport { DropdownMenu } from \"../../overlays/dropdown-menu\";\nimport { TruncatedText } from \"../../typography/truncated-text\";\nimport { mergeClassNames } from \"../../../utils\";\n\nexport interface ComboboxOption {\n label: string;\n value: string;\n}\n\nexport interface ComboboxProps {\n options: ComboboxOption[];\n value: string;\n onChange: (value: string) => void;\n placeholder?: string;\n searchPlaceholder?: string;\n noOptionsText?: string;\n className?: string;\n bgClassName?: string;\n createOptionLabel?: string;\n onCreateOption?: () => void;\n}\n\nconst Combobox: React.FC<ComboboxProps> = ({\n options,\n value,\n onChange,\n placeholder = \"Select...\",\n searchPlaceholder = \"Type to search...\",\n noOptionsText = \"No options\",\n className,\n bgClassName = \"bg-ds-surface-1\",\n createOptionLabel,\n onCreateOption,\n}) => {\n const [open, setOpen] = useState(false);\n const [search, setSearch] = useState(\"\");\n const [visible, setVisible] = useState(false);\n const mouseX = useMotionValue(0);\n const mouseY = useMotionValue(0);\n const radius = 100;\n\n // Filter options by search\n const filteredOptions = options.filter((opt) =>\n opt.label.toLowerCase().includes(search.toLowerCase()),\n );\n\n const handleMouseMove = (event: React.MouseEvent<HTMLDivElement>) => {\n const { left, top } = event.currentTarget.getBoundingClientRect();\n mouseX.set(event.clientX - left);\n mouseY.set(event.clientY - top);\n };\n\n return (\n <DropdownMenu\n className={mergeClassNames(\"w-full\", className)}\n open={open}\n onOpenChange={(nextOpen) => {\n setOpen(nextOpen);\n if (!nextOpen) {\n setSearch(\"\");\n }\n }}\n animationClassName=\"origin-top-left\"\n panelClassName=\" left-0 top-[40px] z-20 mt-1 flex max-h-60 flex-col rounded-lg border border-ds-border-2 bg-ds-surface-1 shadow-3 backdrop-blur-xl transition\"\n trigger={\n <motion.div\n style={{\n backgroundImage: useMotionTemplate`\n radial-gradient(\n ${visible ? `${radius}px` : \"0px\"} circle at ${mouseX}px ${mouseY}px,\n var(--ds-color-accent),\n transparent 90%\n )\n `,\n }}\n onMouseMove={handleMouseMove}\n onMouseEnter={() => setVisible(true)}\n onMouseLeave={() => setVisible(false)}\n className=\"group/combobox w-full rounded-lg border-ds-border-2 p-[2px] transition duration-300 hover:border-ds-border-accent\"\n >\n <div\n className={mergeClassNames(\n \"flex h-10 w-full cursor-pointer items-center justify-between rounded-md border border-ds-border-field px-3 py-2 text-sm text-ds-1 transition duration-400 ease-in-out focus-visible:ring-2 focus-visible:ring-ds-focus focus-visible:outline-none\",\n bgClassName,\n )}\n >\n {value ? (\n <TruncatedText\n as=\"span\"\n showTitleOnHover\n className=\"flex-1 text-ds-1\"\n >\n {options.find((opt) => opt.value === value)?.label}\n </TruncatedText>\n ) : (\n <TruncatedText as=\"span\" className=\"flex-1 text-ds-2\">\n {placeholder}\n </TruncatedText>\n )}\n <span\n className={mergeClassNames(\n \"ml-2 text-ds-2 transition-transform duration-300\",\n open ? \"rotate-180\" : \"rotate-0\",\n )}\n >\n <ChevronDownIcon\n width={24}\n height={24}\n color=\"currentColor\"\n className=\"h-5 w-5\"\n />\n </span>\n </div>\n </motion.div>\n }\n >\n {/* Sticky search input */}\n <div className=\"sticky top-0 z-10 rounded-t-lg border-b border-ds-border-2/30 bg-ds-surface-1/95 backdrop-blur-sm\">\n <input\n autoFocus\n className=\"w-full bg-transparent px-3 py-2 text-sm text-ds-1 outline-none placeholder:text-ds-2 focus-visible:ring-2 focus-visible:ring-ds-focus/30 rounded-t-lg\"\n placeholder={searchPlaceholder}\n value={search}\n onChange={(e) => setSearch(e.target.value)}\n onClick={(e) => e.stopPropagation()}\n />\n </div>\n {/* Scrollable options */}\n <div className=\"max-h-80 flex-1 overflow-auto\">\n {filteredOptions.length === 0 && !createOptionLabel && (\n <div className=\"px-3 py-2 text-ds-2\">{noOptionsText}</div>\n )}\n {filteredOptions.map((opt) => (\n <div\n key={opt.value}\n className={mergeClassNames(\n \"mx-1 my-1 flex cursor-pointer items-center gap-2 rounded-md px-3 py-2 text-sm text-ds-1 transition\",\n opt.value === value\n ? \"bg-ds-accent-subtle text-ds-1 font-semibold\"\n : \"\",\n \"hover:bg-ds-accent hover:text-ds-on-accent\",\n )}\n onClick={() => {\n onChange(opt.value);\n setSearch(\"\");\n setOpen(false);\n }}\n >\n <span className=\"flex w-5 items-center justify-center\">\n {opt.value === value && (\n <CheckIcon className=\"text-ds-1\" width={18} height={18} />\n )}\n </span>\n <TruncatedText as=\"span\" showTitleOnHover className=\"flex-1\">\n {opt.label}\n </TruncatedText>\n </div>\n ))}\n </div>\n {/* Sticky create option */}\n {createOptionLabel && onCreateOption && (\n <div className=\"sticky bottom-0 z-10 rounded-b-lg border-t border-ds-border-3 bg-ds-surface-1/95 backdrop-blur-sm\">\n <div\n className=\"mx-1 my-1 flex cursor-pointer items-center gap-2 rounded-md px-3 py-2 text-sm font-semibold text-ds-1 transition hover:bg-ds-accent hover:text-ds-on-accent\"\n onClick={() => {\n onCreateOption();\n setSearch(\"\");\n setOpen(false);\n }}\n >\n <span className=\"flex w-5 items-center justify-center\">\n {/* Optionally add an icon here */}\n </span>\n <TruncatedText as=\"span\" showTitleOnHover className=\"flex-1\">\n {createOptionLabel}\n </TruncatedText>\n </div>\n </div>\n )}\n </DropdownMenu>\n );\n};\n\nexport default Combobox;\n"],"mappings":"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"}
|