@customafk/lunas-ui 0.0.7 → 0.0.9
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/dist/{add-new-BaABbnol.js → add-new-BaTjxsdU.js} +1 -1
- package/dist/{add-new-BaABbnol.js.map → add-new-BaTjxsdU.js.map} +1 -1
- package/dist/{add-new-DUoS_-n2.cjs → add-new-aIL8RwI8.cjs} +2 -2
- package/dist/{add-new-DUoS_-n2.cjs.map → add-new-aIL8RwI8.cjs.map} +1 -1
- package/dist/alert-dialog-0KwdjY-6.js.map +1 -1
- package/dist/{alert-dialog-D5ZqgIiC.cjs → alert-dialog-BQv-ZvW9.cjs} +2 -2
- package/dist/{alert-dialog-D5ZqgIiC.cjs.map → alert-dialog-BQv-ZvW9.cjs.map} +1 -1
- package/dist/badge-D_qEoSL8.js.map +1 -1
- package/dist/{badge-CRXT2dH_.cjs → badge-DfSj5nwV.cjs} +2 -2
- package/dist/{badge-CRXT2dH_.cjs.map → badge-DfSj5nwV.cjs.map} +1 -1
- package/dist/button-Bku3bKv9.js.map +1 -1
- package/dist/button-Blg2XhHo.d.ts +23 -0
- package/dist/{button-Dzv_nos1.cjs → button-CycE0WzB.cjs} +2 -2
- package/dist/{button-Dzv_nos1.cjs.map → button-CycE0WzB.cjs.map} +1 -1
- package/dist/button-DThtZ8g0.d.cts +23 -0
- package/dist/calendar-5D53vIAn.js +2 -0
- package/dist/calendar-5D53vIAn.js.map +1 -0
- package/dist/calendar-CPFb8F_s.cjs +2 -0
- package/dist/calendar-CPFb8F_s.cjs.map +1 -0
- package/dist/{card-Dta5eW8u.cjs → card-D7C05tvk.cjs} +2 -2
- package/dist/{card-Dta5eW8u.cjs.map → card-D7C05tvk.cjs.map} +1 -1
- package/dist/card-D8cxRC5y.js.map +1 -1
- package/dist/cards/simple-card.cjs +1 -1
- package/dist/cards/simple-card.cjs.map +1 -1
- package/dist/cards/simple-card.d.cts +2 -1
- package/dist/cards/simple-card.d.ts +2 -1
- package/dist/cards/simple-card.js.map +1 -1
- package/dist/chunk-hhQzssFb.cjs +1 -0
- package/dist/command-ByvjNMyq.d.cts +53 -0
- package/dist/{command-CsntVmEz.cjs → command-D8k85t1c.cjs} +2 -2
- package/dist/{command-CsntVmEz.cjs.map → command-D8k85t1c.cjs.map} +1 -1
- package/dist/command-DXhsKiMq.d.ts +53 -0
- package/dist/{command-_L9bD9a-.js → command-DieInaEN.js} +1 -1
- package/dist/{command-_L9bD9a-.js.map → command-DieInaEN.js.map} +1 -1
- package/dist/data-display/country.cjs +1 -1
- package/dist/data-display/country.cjs.map +1 -1
- package/dist/data-display/country.d.ts +1 -1
- package/dist/data-display/country.js.map +1 -1
- package/dist/data-display/data-list.cjs +1 -1
- package/dist/data-display/data-list.cjs.map +1 -1
- package/dist/data-display/data-list.js.map +1 -1
- package/dist/data-display/date.cjs +1 -1
- package/dist/data-display/empty.cjs +1 -1
- package/dist/data-display/empty.d.cts +3 -1
- package/dist/data-display/empty.d.ts +3 -1
- package/dist/data-display/name.cjs +1 -1
- package/dist/data-display/name.cjs.map +1 -1
- package/dist/data-display/name.js.map +1 -1
- package/dist/data-display/phone-number.cjs +1 -1
- package/dist/data-display/phone-number.cjs.map +1 -1
- package/dist/data-display/phone-number.js.map +1 -1
- package/dist/data-display/role-badge.cjs +1 -1
- package/dist/data-display/role-badge.cjs.map +1 -1
- package/dist/data-display/role-badge.d.ts +1 -1
- package/dist/data-display/role-badge.js.map +1 -1
- package/dist/data-display/statistic.cjs +1 -1
- package/dist/data-display/statistic.cjs.map +1 -1
- package/dist/data-display/statistic.d.cts +25 -1
- package/dist/data-display/statistic.d.ts +25 -1
- package/dist/data-display/statistic.js +1 -1
- package/dist/data-display/statistic.js.map +1 -1
- package/dist/date-BMq_DNsv.js.map +1 -1
- package/dist/{date-nd8WkPlx.cjs → date-ByLOGsKl.cjs} +2 -2
- package/dist/{date-nd8WkPlx.cjs.map → date-ByLOGsKl.cjs.map} +1 -1
- package/dist/{dialog-MLCAvDJH.d.ts → dialog-B3V9xxdD.d.cts} +12 -11
- package/dist/dialog-C4hf-Puw.js.map +1 -1
- package/dist/{dialog-W-DmDMEE.cjs → dialog-Cn8cFeu-.cjs} +2 -2
- package/dist/{dialog-W-DmDMEE.cjs.map → dialog-Cn8cFeu-.cjs.map} +1 -1
- package/dist/{dialog-D3VF5qxy.d.cts → dialog-Dlozd6qY.d.ts} +12 -11
- package/dist/dialogs/confirm-dialog.cjs +1 -1
- package/dist/dialogs/confirm-dialog.cjs.map +1 -1
- package/dist/dialogs/confirm-dialog.js.map +1 -1
- package/dist/dialogs/detail-dialog/index.cjs +1 -1
- package/dist/dialogs/detail-dialog/index.cjs.map +1 -1
- package/dist/dialogs/detail-dialog/index.js +1 -1
- package/dist/dialogs/detail-dialog/index.js.map +1 -1
- package/dist/dialogs/error-dialog.cjs +1 -1
- package/dist/dialogs/form-dialog.cjs +1 -1
- package/dist/dialogs/form-dialog.cjs.map +1 -1
- package/dist/dialogs/form-dialog.d.cts +2 -1
- package/dist/dialogs/form-dialog.d.ts +2 -1
- package/dist/dialogs/form-dialog.js.map +1 -1
- package/dist/dialogs/loading-dialog.cjs +1 -1
- package/dist/dialogs/loading-dialog.cjs.map +1 -1
- package/dist/dialogs/loading-dialog.js.map +1 -1
- package/dist/{dropdown-menu-Bv18S56o.cjs → dropdown-menu-D2Kh77uw.cjs} +2 -2
- package/dist/{dropdown-menu-Bv18S56o.cjs.map → dropdown-menu-D2Kh77uw.cjs.map} +1 -1
- package/dist/{dropdown-menu-jCQwh2rG.js → dropdown-menu-DTFOCPH_.js} +1 -1
- package/dist/{dropdown-menu-jCQwh2rG.js.map → dropdown-menu-DTFOCPH_.js.map} +1 -1
- package/dist/{error-dialog-DpQgL5Hy.cjs → error-dialog-DO0Bb-pi.cjs} +2 -2
- package/dist/{error-dialog-DpQgL5Hy.cjs.map → error-dialog-DO0Bb-pi.cjs.map} +1 -1
- package/dist/error-dialog-D_4WL-Hj.js.map +1 -1
- package/dist/flex-ILvQrYMJ.js.map +1 -1
- package/dist/{flex-CNA_SId-.cjs → flex-yTyoLpgH.cjs} +2 -2
- package/dist/{flex-CNA_SId-.cjs.map → flex-yTyoLpgH.cjs.map} +1 -1
- package/dist/form-CA4hhSV5.js.map +1 -1
- package/dist/{form-CYZkgobJ.cjs → form-C_PCHrpx.cjs} +2 -2
- package/dist/{form-CYZkgobJ.cjs.map → form-C_PCHrpx.cjs.map} +1 -1
- package/dist/form-wrapper-D-2Uz518.js.map +1 -1
- package/dist/{form-wrapper-BYbwt1zC.cjs → form-wrapper-FYiHHas7.cjs} +2 -2
- package/dist/{form-wrapper-BYbwt1zC.cjs.map → form-wrapper-FYiHHas7.cjs.map} +1 -1
- package/dist/forms/combobox-field.cjs +42 -0
- package/dist/forms/combobox-field.cjs.map +1 -0
- package/dist/forms/combobox-field.d.cts +28 -0
- package/dist/forms/combobox-field.d.ts +28 -0
- package/dist/forms/combobox-field.js +42 -0
- package/dist/forms/combobox-field.js.map +1 -0
- package/dist/forms/date-field.cjs +2 -0
- package/dist/forms/date-field.cjs.map +1 -0
- package/dist/forms/date-field.d.cts +22 -0
- package/dist/forms/date-field.d.ts +22 -0
- package/dist/forms/date-field.js +2 -0
- package/dist/forms/date-field.js.map +1 -0
- package/dist/forms/form-wrapper.cjs +1 -1
- package/dist/forms/form-wrapper.d.cts +2 -1
- package/dist/forms/form-wrapper.d.ts +2 -1
- package/dist/forms/multi-select-field.cjs +2 -0
- package/dist/forms/multi-select-field.cjs.map +1 -0
- package/dist/forms/multi-select-field.d.cts +30 -0
- package/dist/forms/multi-select-field.d.ts +30 -0
- package/dist/forms/multi-select-field.js +2 -0
- package/dist/forms/multi-select-field.js.map +1 -0
- package/dist/forms/number-field.cjs +2 -0
- package/dist/forms/number-field.cjs.map +1 -0
- package/dist/forms/number-field.d.cts +28 -0
- package/dist/forms/number-field.d.ts +28 -0
- package/dist/forms/number-field.js +2 -0
- package/dist/forms/number-field.js.map +1 -0
- package/dist/forms/password-field.cjs +2 -0
- package/dist/forms/password-field.cjs.map +1 -0
- package/dist/forms/password-field.d.cts +23 -0
- package/dist/forms/password-field.d.ts +23 -0
- package/dist/forms/password-field.js +2 -0
- package/dist/forms/password-field.js.map +1 -0
- package/dist/forms/select-field.cjs +2 -0
- package/dist/forms/select-field.cjs.map +1 -0
- package/dist/forms/select-field.d.cts +33 -0
- package/dist/forms/select-field.d.ts +33 -0
- package/dist/forms/select-field.js +2 -0
- package/dist/forms/select-field.js.map +1 -0
- package/dist/forms/switch-field.cjs +2 -0
- package/dist/forms/switch-field.cjs.map +1 -0
- package/dist/forms/switch-field.d.cts +19 -0
- package/dist/forms/switch-field.d.ts +19 -0
- package/dist/forms/switch-field.js +2 -0
- package/dist/forms/switch-field.js.map +1 -0
- package/dist/forms/text-field.cjs +2 -0
- package/dist/forms/text-field.cjs.map +1 -0
- package/dist/forms/text-field.d.cts +31 -0
- package/dist/forms/text-field.d.ts +31 -0
- package/dist/forms/text-field.js +2 -0
- package/dist/forms/text-field.js.map +1 -0
- package/dist/forms/textarea-field.cjs +2 -0
- package/dist/forms/textarea-field.cjs.map +1 -0
- package/dist/forms/textarea-field.d.cts +27 -0
- package/dist/forms/textarea-field.d.ts +27 -0
- package/dist/forms/textarea-field.js +2 -0
- package/dist/forms/textarea-field.js.map +1 -0
- package/dist/{input-DXEBB91E.cjs → input-C8Sebaue.cjs} +2 -2
- package/dist/{input-DXEBB91E.cjs.map → input-C8Sebaue.cjs.map} +1 -1
- package/dist/{input-D0Phuz25.d.cts → input-DlRU8OGl.d.cts} +3 -2
- package/dist/{input-FzKbxUq2.js → input-Dmaq3fzf.js} +1 -1
- package/dist/{input-FzKbxUq2.js.map → input-Dmaq3fzf.js.map} +1 -1
- package/dist/{input-tHIKXxVS.d.ts → input-yduNlg8y.d.ts} +3 -2
- package/dist/label-Cxbctr6x.js.map +1 -1
- package/dist/{label-CunjD1rx.cjs → label-i858Jr98.cjs} +2 -2
- package/dist/{label-CunjD1rx.cjs.map → label-i858Jr98.cjs.map} +1 -1
- package/dist/layouts/flex.cjs +1 -1
- package/dist/layouts/flex.d.cts +13 -2
- package/dist/layouts/flex.d.ts +13 -2
- package/dist/layouts/main/index.cjs +1 -1
- package/dist/layouts/main/index.cjs.map +1 -1
- package/dist/layouts/main/index.d.cts +14 -4
- package/dist/layouts/main/index.d.ts +14 -4
- package/dist/layouts/main/index.js +1 -1
- package/dist/layouts/main/index.js.map +1 -1
- package/dist/multi-select-Bbv0Z0TP.js +2 -0
- package/dist/multi-select-Bbv0Z0TP.js.map +1 -0
- package/dist/multi-select-EqlnkO5V.cjs +2 -0
- package/dist/multi-select-EqlnkO5V.cjs.map +1 -0
- package/dist/paragraph-Bey03JkA.js.map +1 -1
- package/dist/{paragraph-ZxI8zxuf.cjs → paragraph-DWQ0PZt_.cjs} +2 -2
- package/dist/{paragraph-ZxI8zxuf.cjs.map → paragraph-DWQ0PZt_.cjs.map} +1 -1
- package/dist/popover-B8j86VQv.js +2 -0
- package/dist/popover-B8j86VQv.js.map +1 -0
- package/dist/popover-CAokgoc_.cjs +2 -0
- package/dist/popover-CAokgoc_.cjs.map +1 -0
- package/dist/{progress-BnnOfAZN.cjs → progress-CHh9eRZi.cjs} +2 -2
- package/dist/{progress-BnnOfAZN.cjs.map → progress-CHh9eRZi.cjs.map} +1 -1
- package/dist/{progress-CBccqUUJ.js → progress-CeXKNvJc.js} +1 -1
- package/dist/{progress-CBccqUUJ.js.map → progress-CeXKNvJc.js.map} +1 -1
- package/dist/{refresh-BHt_h3N_.js → refresh-B__T7OFC.js} +1 -1
- package/dist/{refresh-BHt_h3N_.js.map → refresh-B__T7OFC.js.map} +1 -1
- package/dist/{refresh-DrolZxuC.cjs → refresh-BuL5nDf9.cjs} +2 -2
- package/dist/{refresh-DrolZxuC.cjs.map → refresh-BuL5nDf9.cjs.map} +1 -1
- package/dist/{scroll-area-Bdb_LSFF.js → scroll-area-C0KQbcG0.js} +1 -1
- package/dist/{scroll-area-Bdb_LSFF.js.map → scroll-area-C0KQbcG0.js.map} +1 -1
- package/dist/{scroll-area-DWWpaz5j.cjs → scroll-area-fNeFxa8L.cjs} +2 -2
- package/dist/{scroll-area-DWWpaz5j.cjs.map → scroll-area-fNeFxa8L.cjs.map} +1 -1
- package/dist/{search-input-L2sq0eB0.js → search-input-BGmx8sXy.js} +2 -2
- package/dist/{search-input-L2sq0eB0.js.map → search-input-BGmx8sXy.js.map} +1 -1
- package/dist/{search-input-Bf4-FeWu.cjs → search-input-CWCcWgmA.cjs} +2 -2
- package/dist/{search-input-Bf4-FeWu.cjs.map → search-input-CWCcWgmA.cjs.map} +1 -1
- package/dist/{select-CWUsisI0.js → select-4IO3vAjO.js} +1 -1
- package/dist/{select-CWUsisI0.js.map → select-4IO3vAjO.js.map} +1 -1
- package/dist/{select-ZSyt5zCe.cjs → select-UsiicIRo.cjs} +2 -2
- package/dist/{select-ZSyt5zCe.cjs.map → select-UsiicIRo.cjs.map} +1 -1
- package/dist/{separator-2cwfp8qT.d.ts → separator-C4XPc_2Y.d.cts} +3 -2
- package/dist/{separator-DTB3sDNG.cjs → separator-D4iTmsID.cjs} +2 -2
- package/dist/{separator-DTB3sDNG.cjs.map → separator-D4iTmsID.cjs.map} +1 -1
- package/dist/{separator-BpsL0PlX.js → separator-DMdqEz29.js} +1 -1
- package/dist/{separator-BpsL0PlX.js.map → separator-DMdqEz29.js.map} +1 -1
- package/dist/{separator-COXs-I-Q.d.cts → separator-o7tKOtGF.d.ts} +3 -2
- package/dist/{sheet-C8r2QGpq.js → sheet-2JqHfdYi.js} +1 -1
- package/dist/{sheet-C8r2QGpq.js.map → sheet-2JqHfdYi.js.map} +1 -1
- package/dist/{sheet-CCwbAaA6.cjs → sheet-Dr-a3-o2.cjs} +2 -2
- package/dist/{sheet-CCwbAaA6.cjs.map → sheet-Dr-a3-o2.cjs.map} +1 -1
- package/dist/{sidebar-C166f_9B.js → sidebar-COBzB7S8.js} +2 -2
- package/dist/{sidebar-C166f_9B.js.map → sidebar-COBzB7S8.js.map} +1 -1
- package/dist/{sidebar-BLPMNltJ.cjs → sidebar-gXuaHBie.cjs} +2 -2
- package/dist/{sidebar-BLPMNltJ.cjs.map → sidebar-gXuaHBie.cjs.map} +1 -1
- package/dist/{skeleton-m3giaF4T.cjs → skeleton-BTQm_mtV.cjs} +2 -2
- package/dist/{skeleton-m3giaF4T.cjs.map → skeleton-BTQm_mtV.cjs.map} +1 -1
- package/dist/{skeleton-DYmX0k94.js → skeleton-D1_Brnl9.js} +1 -1
- package/dist/{skeleton-DYmX0k94.js.map → skeleton-D1_Brnl9.js.map} +1 -1
- package/dist/switch-BlK-TC1h.js +2 -0
- package/dist/switch-BlK-TC1h.js.map +1 -0
- package/dist/switch-CoP3UwNk.cjs +2 -0
- package/dist/switch-CoP3UwNk.cjs.map +1 -0
- package/dist/table/index.cjs +1 -1
- package/dist/table/index.cjs.map +1 -1
- package/dist/table/index.d.cts +2 -1
- package/dist/table/index.d.ts +2 -1
- package/dist/table/index.js +1 -1
- package/dist/table/index.js.map +1 -1
- package/dist/{table-BSeev7T0.cjs → table-CFqnfTKO.cjs} +2 -2
- package/dist/{table-BSeev7T0.cjs.map → table-CFqnfTKO.cjs.map} +1 -1
- package/dist/{table-BvA64mE8.js → table-DrnU8YJP.js} +1 -1
- package/dist/{table-BvA64mE8.js.map → table-DrnU8YJP.js.map} +1 -1
- package/dist/textarea-Dz6npuI4.cjs +2 -0
- package/dist/textarea-Dz6npuI4.cjs.map +1 -0
- package/dist/textarea-dM1DYNfF.js +2 -0
- package/dist/textarea-dM1DYNfF.js.map +1 -0
- package/dist/{title-DTkABsIG.js → title-CA6PvqiD.js} +1 -1
- package/dist/{title-DTkABsIG.js.map → title-CA6PvqiD.js.map} +1 -1
- package/dist/{title-xsPZpQpb.cjs → title-CIQdEGOd.cjs} +2 -2
- package/dist/{title-xsPZpQpb.cjs.map → title-CIQdEGOd.cjs.map} +1 -1
- package/dist/toggle-BCSHdzP0.d.cts +20 -0
- package/dist/{toggle-D_MDMruK.js → toggle-CHJ2edke.js} +1 -1
- package/dist/{toggle-D_MDMruK.js.map → toggle-CHJ2edke.js.map} +1 -1
- package/dist/{toggle-CfL3GVe2.cjs → toggle-CzMYdDvC.cjs} +2 -2
- package/dist/{toggle-CfL3GVe2.cjs.map → toggle-CzMYdDvC.cjs.map} +1 -1
- package/dist/toggle-D42pqCTD.d.ts +20 -0
- package/dist/tooltip-DZ2Shzgg.d.ts +24 -0
- package/dist/tooltip-Dn8AOhc4.d.cts +24 -0
- package/dist/tooltip-Dzyf5smh.js.map +1 -1
- package/dist/{tooltip-Beb-_EPp.cjs → tooltip-MgToVOzy.cjs} +2 -2
- package/dist/{tooltip-Beb-_EPp.cjs.map → tooltip-MgToVOzy.cjs.map} +1 -1
- package/dist/{types-DLrIc2fL.d.ts → types-CmcNT14g.d.ts} +1 -1
- package/dist/types-CrbWxjnp.cjs.map +1 -1
- package/dist/types-DaIHddx7.js.map +1 -1
- package/dist/typography/paragraph.cjs +1 -1
- package/dist/typography/paragraph.d.cts +2 -1
- package/dist/typography/paragraph.d.ts +2 -1
- package/dist/typography/title.cjs +1 -1
- package/dist/typography/title.d.cts +3 -1
- package/dist/typography/title.d.ts +3 -1
- package/dist/typography/title.js +1 -1
- package/dist/ui/alert-dialog.cjs +1 -1
- package/dist/ui/alert-dialog.d.cts +12 -11
- package/dist/ui/alert-dialog.d.ts +12 -11
- package/dist/ui/alert.cjs +1 -1
- package/dist/ui/alert.cjs.map +1 -1
- package/dist/ui/alert.d.cts +8 -4
- package/dist/ui/alert.d.ts +8 -4
- package/dist/ui/alert.js.map +1 -1
- package/dist/ui/aspect-ratio.cjs +1 -1
- package/dist/ui/aspect-ratio.cjs.map +1 -1
- package/dist/ui/aspect-ratio.d.cts +2 -1
- package/dist/ui/aspect-ratio.d.ts +2 -1
- package/dist/ui/aspect-ratio.js.map +1 -1
- package/dist/ui/avatar.cjs +1 -1
- package/dist/ui/avatar.cjs.map +1 -1
- package/dist/ui/avatar.d.cts +4 -3
- package/dist/ui/avatar.d.ts +4 -3
- package/dist/ui/avatar.js.map +1 -1
- package/dist/ui/badge.cjs +1 -1
- package/dist/ui/badge.d.cts +8 -2
- package/dist/ui/badge.d.ts +8 -2
- package/dist/ui/breadcrumb.cjs +1 -1
- package/dist/ui/breadcrumb.cjs.map +1 -1
- package/dist/ui/breadcrumb.d.cts +8 -7
- package/dist/ui/breadcrumb.d.ts +8 -7
- package/dist/ui/breadcrumb.js.map +1 -1
- package/dist/ui/button.cjs +1 -1
- package/dist/ui/button.d.cts +1 -1
- package/dist/ui/button.d.ts +1 -1
- package/dist/ui/buttons/add-new.cjs +1 -1
- package/dist/ui/buttons/add-new.js +1 -1
- package/dist/ui/buttons/refresh.cjs +1 -1
- package/dist/ui/buttons/refresh.js +1 -1
- package/dist/ui/calendar.cjs +1 -2
- package/dist/ui/calendar.d.cts +4 -3
- package/dist/ui/calendar.d.ts +4 -3
- package/dist/ui/calendar.js +1 -2
- package/dist/ui/card.cjs +1 -1
- package/dist/ui/card.d.cts +8 -7
- package/dist/ui/card.d.ts +8 -7
- package/dist/ui/carousel.cjs +1 -1
- package/dist/ui/carousel.cjs.map +1 -1
- package/dist/ui/carousel.d.cts +7 -6
- package/dist/ui/carousel.d.ts +7 -6
- package/dist/ui/carousel.js.map +1 -1
- package/dist/ui/collapsible.cjs +1 -1
- package/dist/ui/collapsible.cjs.map +1 -1
- package/dist/ui/collapsible.d.cts +4 -3
- package/dist/ui/collapsible.d.ts +4 -3
- package/dist/ui/collapsible.js.map +1 -1
- package/dist/ui/command.cjs +1 -1
- package/dist/ui/command.d.cts +3 -52
- package/dist/ui/command.d.ts +3 -52
- package/dist/ui/command.js +1 -1
- package/dist/ui/context-menu.cjs +1 -1
- package/dist/ui/context-menu.cjs.map +1 -1
- package/dist/ui/context-menu.d.cts +16 -15
- package/dist/ui/context-menu.d.ts +16 -15
- package/dist/ui/context-menu.js.map +1 -1
- package/dist/ui/dialog.cjs +1 -1
- package/dist/ui/dialog.d.cts +1 -1
- package/dist/ui/dialog.d.ts +1 -1
- package/dist/ui/dropdown-menu.cjs +1 -1
- package/dist/ui/dropdown-menu.d.cts +16 -15
- package/dist/ui/dropdown-menu.d.ts +16 -15
- package/dist/ui/dropdown-menu.js +1 -1
- package/dist/ui/file-uploader.cjs +1 -1
- package/dist/ui/file-uploader.cjs.map +1 -1
- package/dist/ui/file-uploader.d.cts +2 -1
- package/dist/ui/file-uploader.d.ts +2 -1
- package/dist/ui/file-uploader.js +1 -1
- package/dist/ui/file-uploader.js.map +1 -1
- package/dist/ui/form.cjs +1 -1
- package/dist/ui/form.d.cts +23 -8
- package/dist/ui/form.d.ts +23 -8
- package/dist/ui/hover-card.cjs +1 -1
- package/dist/ui/hover-card.cjs.map +1 -1
- package/dist/ui/hover-card.d.cts +4 -3
- package/dist/ui/hover-card.d.ts +4 -3
- package/dist/ui/hover-card.js.map +1 -1
- package/dist/ui/input-otp.cjs +1 -1
- package/dist/ui/input-otp.cjs.map +1 -1
- package/dist/ui/input-otp.d.cts +5 -4
- package/dist/ui/input-otp.d.ts +5 -4
- package/dist/ui/input-otp.js.map +1 -1
- package/dist/ui/input.cjs +1 -1
- package/dist/ui/input.d.cts +1 -1
- package/dist/ui/input.d.ts +1 -1
- package/dist/ui/input.js +1 -1
- package/dist/ui/inputs/search-input.cjs +1 -1
- package/dist/ui/inputs/search-input.d.cts +3 -2
- package/dist/ui/inputs/search-input.d.ts +3 -2
- package/dist/ui/inputs/search-input.js +1 -1
- package/dist/ui/label.cjs +1 -1
- package/dist/ui/label.d.cts +2 -1
- package/dist/ui/label.d.ts +2 -1
- package/dist/ui/menubar.cjs +1 -1
- package/dist/ui/menubar.cjs.map +1 -1
- package/dist/ui/menubar.d.cts +17 -16
- package/dist/ui/menubar.d.ts +17 -16
- package/dist/ui/menubar.js.map +1 -1
- package/dist/ui/multi-select.cjs +1 -2
- package/dist/ui/multi-select.d.cts +61 -1
- package/dist/ui/multi-select.d.ts +61 -1
- package/dist/ui/multi-select.js +1 -2
- package/dist/ui/navigation-menu.cjs +1 -1
- package/dist/ui/navigation-menu.cjs.map +1 -1
- package/dist/ui/navigation-menu.d.cts +11 -9
- package/dist/ui/navigation-menu.d.ts +11 -9
- package/dist/ui/navigation-menu.js.map +1 -1
- package/dist/ui/pagination.cjs +1 -1
- package/dist/ui/pagination.cjs.map +1 -1
- package/dist/ui/pagination.d.cts +9 -8
- package/dist/ui/pagination.d.ts +9 -8
- package/dist/ui/pagination.js.map +1 -1
- package/dist/ui/popover.cjs +1 -2
- package/dist/ui/popover.d.cts +5 -4
- package/dist/ui/popover.d.ts +5 -4
- package/dist/ui/popover.js +1 -2
- package/dist/ui/progress.cjs +1 -1
- package/dist/ui/progress.d.cts +2 -1
- package/dist/ui/progress.d.ts +2 -1
- package/dist/ui/progress.js +1 -1
- package/dist/ui/radio-group.cjs +1 -1
- package/dist/ui/radio-group.cjs.map +1 -1
- package/dist/ui/radio-group.d.cts +3 -2
- package/dist/ui/radio-group.d.ts +3 -2
- package/dist/ui/radio-group.js.map +1 -1
- package/dist/ui/resizable.cjs +1 -1
- package/dist/ui/resizable.cjs.map +1 -1
- package/dist/ui/resizable.d.cts +4 -3
- package/dist/ui/resizable.d.ts +4 -3
- package/dist/ui/resizable.js.map +1 -1
- package/dist/ui/scroll-area.cjs +1 -1
- package/dist/ui/scroll-area.d.cts +3 -2
- package/dist/ui/scroll-area.d.ts +3 -2
- package/dist/ui/scroll-area.js +1 -1
- package/dist/ui/select.cjs +1 -1
- package/dist/ui/select.d.cts +11 -10
- package/dist/ui/select.d.ts +11 -10
- package/dist/ui/select.js +1 -1
- package/dist/ui/separator.cjs +1 -1
- package/dist/ui/separator.d.cts +1 -1
- package/dist/ui/separator.d.ts +1 -1
- package/dist/ui/separator.js +1 -1
- package/dist/ui/sheet.cjs +1 -1
- package/dist/ui/sheet.d.cts +9 -8
- package/dist/ui/sheet.d.ts +9 -8
- package/dist/ui/sheet.js +1 -1
- package/dist/ui/sidebar.cjs +1 -1
- package/dist/ui/sidebar.d.cts +43 -29
- package/dist/ui/sidebar.d.ts +43 -29
- package/dist/ui/sidebar.js +1 -1
- package/dist/ui/skeleton.cjs +1 -1
- package/dist/ui/skeleton.d.cts +2 -1
- package/dist/ui/skeleton.d.ts +2 -1
- package/dist/ui/skeleton.js +1 -1
- package/dist/ui/slider.cjs +1 -1
- package/dist/ui/slider.cjs.map +1 -1
- package/dist/ui/slider.d.cts +2 -1
- package/dist/ui/slider.d.ts +2 -1
- package/dist/ui/slider.js.map +1 -1
- package/dist/ui/sonner.cjs +1 -1
- package/dist/ui/sonner.cjs.map +1 -1
- package/dist/ui/sonner.d.cts +3 -1
- package/dist/ui/sonner.d.ts +3 -1
- package/dist/ui/sonner.js.map +1 -1
- package/dist/ui/switch.cjs +1 -2
- package/dist/ui/switch.d.cts +2 -1
- package/dist/ui/switch.d.ts +2 -1
- package/dist/ui/switch.js +1 -2
- package/dist/ui/table.cjs +1 -1
- package/dist/ui/table.d.cts +9 -8
- package/dist/ui/table.d.ts +9 -8
- package/dist/ui/table.js +1 -1
- package/dist/ui/tabs.cjs +1 -1
- package/dist/ui/tabs.cjs.map +1 -1
- package/dist/ui/tabs.d.cts +5 -4
- package/dist/ui/tabs.d.ts +5 -4
- package/dist/ui/tabs.js.map +1 -1
- package/dist/ui/textarea.cjs +1 -2
- package/dist/ui/textarea.d.cts +2 -1
- package/dist/ui/textarea.d.ts +2 -1
- package/dist/ui/textarea.js +1 -2
- package/dist/ui/toggle-group.cjs +1 -1
- package/dist/ui/toggle-group.cjs.map +1 -1
- package/dist/ui/toggle-group.d.cts +4 -3
- package/dist/ui/toggle-group.d.ts +4 -3
- package/dist/ui/toggle-group.js +1 -1
- package/dist/ui/toggle-group.js.map +1 -1
- package/dist/ui/toggle.cjs +1 -1
- package/dist/ui/toggle.d.cts +1 -1
- package/dist/ui/toggle.d.ts +1 -1
- package/dist/ui/toggle.js +1 -1
- package/dist/ui/tooltip.cjs +1 -1
- package/dist/ui/tooltip.d.cts +1 -1
- package/dist/ui/tooltip.d.ts +1 -1
- package/dist/utils-D9AH0PUV.js +1 -1
- package/dist/utils-D9AH0PUV.js.map +1 -1
- package/dist/utils-DaJ1XZgX.cjs +2 -0
- package/dist/{utils-BsjVK5EW.cjs.map → utils-DaJ1XZgX.cjs.map} +1 -1
- package/package.json +51 -4
- package/packages/components/cards/simple-card.tsx +37 -0
- package/packages/components/data-display/country.tsx +59 -0
- package/packages/components/data-display/data-list.tsx +38 -0
- package/packages/components/data-display/date.tsx +215 -0
- package/packages/components/data-display/empty.tsx +25 -0
- package/packages/components/data-display/name.tsx +25 -0
- package/packages/components/data-display/phone-number.tsx +22 -0
- package/packages/components/data-display/role-badge.tsx +33 -0
- package/packages/components/data-display/statistic.tsx +141 -0
- package/packages/components/dialogs/confirm-dialog.tsx +51 -0
- package/packages/components/dialogs/detail-dialog/component/header.tsx +14 -0
- package/packages/components/dialogs/detail-dialog/component/main.tsx +39 -0
- package/packages/components/dialogs/detail-dialog/component/sidebar.tsx +747 -0
- package/packages/components/dialogs/detail-dialog/component/wrapper.tsx +17 -0
- package/packages/components/dialogs/detail-dialog/index.tsx +100 -0
- package/packages/components/dialogs/error-dialog.tsx +48 -0
- package/packages/components/dialogs/form-dialog.tsx +106 -0
- package/packages/components/dialogs/loading-dialog.tsx +23 -0
- package/packages/components/forms/combobox-field.tsx +113 -0
- package/packages/components/forms/date-field.tsx +65 -0
- package/packages/components/forms/form-wrapper.tsx +146 -0
- package/packages/components/forms/multi-select-field.tsx +56 -0
- package/packages/components/forms/number-field.tsx +56 -0
- package/packages/components/forms/password-field.tsx +38 -0
- package/packages/components/forms/select-field.tsx +58 -0
- package/packages/components/forms/switch-field.tsx +42 -0
- package/packages/components/forms/text-field.tsx +80 -0
- package/packages/components/forms/textarea-field.tsx +53 -0
- package/packages/components/index.tsx +0 -0
- package/packages/components/layouts/flex.tsx +110 -0
- package/packages/components/layouts/main/content.tsx +11 -0
- package/packages/components/layouts/main/header.tsx +53 -0
- package/packages/components/layouts/main/index.tsx +3 -0
- package/packages/components/layouts/main/wrapper.tsx +5 -0
- package/packages/components/table/data-table-pagination.tsx +99 -0
- package/packages/components/table/data-table.tsx +328 -0
- package/packages/components/table/index.tsx +126 -0
- package/packages/components/typography/paragraph.tsx +32 -0
- package/packages/components/typography/title.tsx +36 -0
- package/packages/components/ui/alert-dialog.tsx +173 -0
- package/packages/components/ui/alert.tsx +71 -0
- package/packages/components/ui/aspect-ratio.tsx +20 -0
- package/packages/components/ui/avatar.tsx +52 -0
- package/packages/components/ui/badge.tsx +63 -0
- package/packages/components/ui/breadcrumb.tsx +110 -0
- package/packages/components/ui/button.tsx +88 -0
- package/packages/components/ui/buttons/add-new.tsx +26 -0
- package/packages/components/ui/buttons/refresh.tsx +30 -0
- package/packages/components/ui/calendar.tsx +209 -0
- package/packages/components/ui/card.tsx +95 -0
- package/packages/components/ui/carousel.tsx +241 -0
- package/packages/components/ui/checkbox.tsx +44 -0
- package/packages/components/ui/collapsible.tsx +33 -0
- package/packages/components/ui/command.tsx +217 -0
- package/packages/components/ui/context-menu.tsx +258 -0
- package/packages/components/ui/dialog.tsx +174 -0
- package/packages/components/ui/dropdown-menu.tsx +318 -0
- package/packages/components/ui/file-uploader.tsx +372 -0
- package/packages/components/ui/form.tsx +168 -0
- package/packages/components/ui/hover-card.tsx +43 -0
- package/packages/components/ui/input-otp.tsx +76 -0
- package/packages/components/ui/input.tsx +59 -0
- package/packages/components/ui/inputs/number-input.tsx +325 -0
- package/packages/components/ui/inputs/password-input.tsx +35 -0
- package/packages/components/ui/inputs/search-input.tsx +24 -0
- package/packages/components/ui/label.tsx +29 -0
- package/packages/components/ui/menubar.tsx +275 -0
- package/packages/components/ui/multi-select.tsx +693 -0
- package/packages/components/ui/navigation-menu.tsx +170 -0
- package/packages/components/ui/pagination.tsx +128 -0
- package/packages/components/ui/popover.tsx +64 -0
- package/packages/components/ui/progress.tsx +30 -0
- package/packages/components/ui/radio-group.tsx +53 -0
- package/packages/components/ui/resizable.tsx +55 -0
- package/packages/components/ui/scroll-area.tsx +51 -0
- package/packages/components/ui/select.tsx +246 -0
- package/packages/components/ui/separator.tsx +27 -0
- package/packages/components/ui/sheet.tsx +155 -0
- package/packages/components/ui/sidebar.tsx +751 -0
- package/packages/components/ui/skeleton.tsx +15 -0
- package/packages/components/ui/slider.tsx +62 -0
- package/packages/components/ui/sonner.tsx +43 -0
- package/packages/components/ui/switch.tsx +52 -0
- package/packages/components/ui/table.tsx +118 -0
- package/packages/components/ui/tabs.tsx +85 -0
- package/packages/components/ui/textarea.tsx +47 -0
- package/packages/components/ui/toggle-group.tsx +72 -0
- package/packages/components/ui/toggle.tsx +47 -0
- package/packages/components/ui/tooltip.tsx +71 -0
- package/packages/constants.tsx +79 -0
- package/packages/hooks/use-callback-ref.ts +27 -0
- package/packages/hooks/use-controllable-state.ts +67 -0
- package/packages/hooks/use-mobile.ts +21 -0
- package/packages/index.css +392 -0
- package/packages/lib/utils.ts +28 -0
- package/packages/types.ts +50 -0
- package/dist/button-D_E_bNRb.d.ts +0 -18
- package/dist/button-YHI7I64h.d.cts +0 -18
- package/dist/chunk-CUT6urMc.cjs +0 -1
- package/dist/toggle-BVkMTVAz.d.ts +0 -15
- package/dist/toggle-CW-ZnYMy.d.cts +0 -15
- package/dist/tooltip-Cjuu_Ld4.d.ts +0 -23
- package/dist/tooltip-Dk4HsZVR.d.cts +0 -23
- package/dist/ui/calendar.cjs.map +0 -1
- package/dist/ui/calendar.js.map +0 -1
- package/dist/ui/multi-select.cjs.map +0 -1
- package/dist/ui/multi-select.js.map +0 -1
- package/dist/ui/popover.cjs.map +0 -1
- package/dist/ui/popover.js.map +0 -1
- package/dist/ui/switch.cjs.map +0 -1
- package/dist/ui/switch.js.map +0 -1
- package/dist/ui/textarea.cjs.map +0 -1
- package/dist/ui/textarea.js.map +0 -1
- package/dist/utils-BsjVK5EW.cjs +0 -2
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
import React from "react";
|
|
2
|
-
import { Tooltip } from "radix-ui";
|
|
3
|
-
|
|
4
|
-
//#region packages/components/ui/tooltip.d.ts
|
|
5
|
-
declare function TooltipProvider({
|
|
6
|
-
delayDuration,
|
|
7
|
-
...props
|
|
8
|
-
}: React.ComponentProps<typeof Tooltip.Provider>): any;
|
|
9
|
-
declare function Tooltip$1({
|
|
10
|
-
...props
|
|
11
|
-
}: React.ComponentProps<typeof Tooltip.Root>): any;
|
|
12
|
-
declare function TooltipTrigger({
|
|
13
|
-
...props
|
|
14
|
-
}: React.ComponentProps<typeof Tooltip.Trigger>): any;
|
|
15
|
-
declare function TooltipContent({
|
|
16
|
-
className,
|
|
17
|
-
sideOffset,
|
|
18
|
-
children,
|
|
19
|
-
...props
|
|
20
|
-
}: React.ComponentProps<typeof Tooltip.Content>): any;
|
|
21
|
-
//#endregion
|
|
22
|
-
export { Tooltip$1 as Tooltip, TooltipContent, TooltipProvider, TooltipTrigger };
|
|
23
|
-
//# sourceMappingURL=tooltip-Dk4HsZVR.d.cts.map
|
package/dist/ui/calendar.cjs.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"calendar.cjs","names":["DayPicker","cn","buttonVariants","props","className","ChevronLeftIcon","ChevronRightIcon","ChevronDownIcon","React","Button"],"sources":["../../packages/components/ui/calendar.tsx"],"sourcesContent":["\"use client\";\nimport React from \"react\";\nimport {\n ChevronDownIcon,\n ChevronLeftIcon,\n ChevronRightIcon,\n} from \"lucide-react\";\nimport { DayButton, DayPicker, getDefaultClassNames } from \"react-day-picker\";\n\nimport { Button, buttonVariants } from \"@/components/ui/button\";\nimport { cn } from \"@/lib/utils\";\n\nfunction Calendar({\n className,\n classNames,\n showOutsideDays = true,\n captionLayout = \"label\",\n buttonVariant = \"ghost\",\n formatters,\n components,\n ...props\n}: React.ComponentProps<typeof DayPicker> & {\n buttonVariant?: React.ComponentProps<typeof Button>[\"variant\"];\n}) {\n const defaultClassNames = getDefaultClassNames();\n\n return (\n <DayPicker\n showOutsideDays={showOutsideDays}\n className={cn(\n \"bg-background group/calendar p-3 [--cell-size:--spacing(8)] [[data-slot=card-content]_&]:bg-transparent [[data-slot=popover-content]_&]:bg-transparent\",\n String.raw`rtl:**:[.rdp-button\\_next>svg]:rotate-180`,\n String.raw`rtl:**:[.rdp-button\\_previous>svg]:rotate-180`,\n className,\n )}\n captionLayout={captionLayout}\n formatters={{\n formatMonthDropdown: (date) =>\n date.toLocaleString(\"default\", { month: \"short\" }),\n ...formatters,\n }}\n classNames={{\n root: cn(\"w-fit\", defaultClassNames.root),\n months: cn(\n \"flex gap-4 flex-col md:flex-row relative\",\n defaultClassNames.months,\n ),\n month: cn(\"flex flex-col w-full gap-4\", defaultClassNames.month),\n nav: cn(\n \"flex items-center gap-1 w-full absolute top-0 inset-x-0 justify-between\",\n defaultClassNames.nav,\n ),\n button_previous: cn(\n buttonVariants({ variant: buttonVariant }),\n \"size-(--cell-size) aria-disabled:opacity-50 p-0 select-none\",\n defaultClassNames.button_previous,\n ),\n button_next: cn(\n buttonVariants({ variant: buttonVariant }),\n \"size-(--cell-size) aria-disabled:opacity-50 p-0 select-none\",\n defaultClassNames.button_next,\n ),\n month_caption: cn(\n \"flex items-center justify-center h-(--cell-size) w-full px-(--cell-size)\",\n defaultClassNames.month_caption,\n ),\n dropdowns: cn(\n \"w-full flex items-center text-sm font-medium justify-center h-(--cell-size) gap-1.5\",\n defaultClassNames.dropdowns,\n ),\n dropdown_root: cn(\n \"relative has-focus:border-ring border border-input shadow-xs has-focus:ring-ring/50 has-focus:ring-[3px] rounded-md\",\n defaultClassNames.dropdown_root,\n ),\n dropdown: cn(\"absolute inset-0 opacity-0\", defaultClassNames.dropdown),\n caption_label: cn(\n \"select-none font-medium\",\n captionLayout === \"label\"\n ? \"text-sm\"\n : \"rounded-md pl-2 pr-1 flex items-center gap-1 text-sm h-8 [&>svg]:text-muted-foreground [&>svg]:size-3.5\",\n defaultClassNames.caption_label,\n ),\n table: \"w-full border-collapse\",\n weekdays: cn(\"flex\", defaultClassNames.weekdays),\n weekday: cn(\n \"text-muted-foreground rounded-md flex-1 font-normal text-[0.8rem] select-none\",\n defaultClassNames.weekday,\n ),\n week: cn(\"flex w-full mt-2\", defaultClassNames.week),\n week_number_header: cn(\n \"select-none w-(--cell-size)\",\n defaultClassNames.week_number_header,\n ),\n week_number: cn(\n \"text-[0.8rem] select-none text-muted-foreground\",\n defaultClassNames.week_number,\n ),\n day: cn(\n \"relative w-full h-full p-0 text-center [&:first-child[data-selected=true]_button]:rounded-l-md [&:last-child[data-selected=true]_button]:rounded-r-md group/day aspect-square select-none\",\n defaultClassNames.day,\n ),\n range_start: cn(\n \"rounded-l-md bg-accent\",\n defaultClassNames.range_start,\n ),\n range_middle: cn(\"rounded-none\", defaultClassNames.range_middle),\n range_end: cn(\"rounded-r-md bg-accent\", defaultClassNames.range_end),\n today: cn(\n \"bg-accent text-accent-foreground rounded-md data-[selected=true]:rounded-none\",\n defaultClassNames.today,\n ),\n outside: cn(\n \"text-muted-foreground aria-selected:text-muted-foreground\",\n defaultClassNames.outside,\n ),\n disabled: cn(\n \"text-muted-foreground opacity-50\",\n defaultClassNames.disabled,\n ),\n hidden: cn(\"invisible\", defaultClassNames.hidden),\n ...classNames,\n }}\n components={{\n Root: ({ className, rootRef, ...props }) => {\n return (\n <div\n data-slot=\"calendar\"\n ref={rootRef}\n className={cn(className)}\n {...props}\n />\n );\n },\n Chevron: ({ className, orientation, ...props }) => {\n if (orientation === \"left\") {\n return (\n <ChevronLeftIcon className={cn(\"size-4\", className)} {...props} />\n );\n }\n\n if (orientation === \"right\") {\n return (\n <ChevronRightIcon\n className={cn(\"size-4\", className)}\n {...props}\n />\n );\n }\n\n return (\n <ChevronDownIcon className={cn(\"size-4\", className)} {...props} />\n );\n },\n DayButton: CalendarDayButton,\n WeekNumber: ({ children, ...props }) => {\n return (\n <td {...props}>\n <div className=\"flex size-(--cell-size) items-center justify-center text-center\">\n {children}\n </div>\n </td>\n );\n },\n ...components,\n }}\n {...props}\n />\n );\n}\n\nfunction CalendarDayButton({\n className,\n day,\n modifiers,\n ...props\n}: React.ComponentProps<typeof DayButton>) {\n const defaultClassNames = getDefaultClassNames();\n\n const ref = React.useRef<HTMLButtonElement>(null);\n React.useEffect(() => {\n if (modifiers.focused) ref.current?.focus();\n }, [modifiers.focused]);\n\n return (\n <Button\n ref={ref}\n variant=\"ghost\"\n size=\"icon\"\n data-day={day.date.toLocaleDateString()}\n data-selected-single={\n modifiers.selected &&\n !modifiers.range_start &&\n !modifiers.range_end &&\n !modifiers.range_middle\n }\n data-range-start={modifiers.range_start}\n data-range-end={modifiers.range_end}\n data-range-middle={modifiers.range_middle}\n className={cn(\n \"data-[selected-single=true]:bg-primary data-[selected-single=true]:text-primary-foreground data-[range-middle=true]:bg-accent data-[range-middle=true]:text-accent-foreground data-[range-start=true]:bg-primary data-[range-start=true]:text-primary-foreground data-[range-end=true]:bg-primary data-[range-end=true]:text-primary-foreground group-data-[focused=true]/day:border-ring group-data-[focused=true]/day:ring-ring/50 dark:hover:text-accent-foreground flex aspect-square size-auto w-full min-w-(--cell-size) flex-col gap-1 leading-none font-normal group-data-[focused=true]/day:relative group-data-[focused=true]/day:z-10 group-data-[focused=true]/day:ring-[3px] data-[range-end=true]:rounded-md data-[range-end=true]:rounded-r-md data-[range-middle=true]:rounded-none data-[range-start=true]:rounded-md data-[range-start=true]:rounded-l-md [&>span]:text-xs [&>span]:opacity-70\",\n defaultClassNames.day,\n className,\n )}\n {...props}\n />\n );\n}\n\nexport { Calendar, CalendarDayButton };\n"],"mappings":"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"}
|
package/dist/ui/calendar.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"calendar.js","names":["props","className"],"sources":["../../packages/components/ui/calendar.tsx"],"sourcesContent":["\"use client\";\nimport React from \"react\";\nimport {\n ChevronDownIcon,\n ChevronLeftIcon,\n ChevronRightIcon,\n} from \"lucide-react\";\nimport { DayButton, DayPicker, getDefaultClassNames } from \"react-day-picker\";\n\nimport { Button, buttonVariants } from \"@/components/ui/button\";\nimport { cn } from \"@/lib/utils\";\n\nfunction Calendar({\n className,\n classNames,\n showOutsideDays = true,\n captionLayout = \"label\",\n buttonVariant = \"ghost\",\n formatters,\n components,\n ...props\n}: React.ComponentProps<typeof DayPicker> & {\n buttonVariant?: React.ComponentProps<typeof Button>[\"variant\"];\n}) {\n const defaultClassNames = getDefaultClassNames();\n\n return (\n <DayPicker\n showOutsideDays={showOutsideDays}\n className={cn(\n \"bg-background group/calendar p-3 [--cell-size:--spacing(8)] [[data-slot=card-content]_&]:bg-transparent [[data-slot=popover-content]_&]:bg-transparent\",\n String.raw`rtl:**:[.rdp-button\\_next>svg]:rotate-180`,\n String.raw`rtl:**:[.rdp-button\\_previous>svg]:rotate-180`,\n className,\n )}\n captionLayout={captionLayout}\n formatters={{\n formatMonthDropdown: (date) =>\n date.toLocaleString(\"default\", { month: \"short\" }),\n ...formatters,\n }}\n classNames={{\n root: cn(\"w-fit\", defaultClassNames.root),\n months: cn(\n \"flex gap-4 flex-col md:flex-row relative\",\n defaultClassNames.months,\n ),\n month: cn(\"flex flex-col w-full gap-4\", defaultClassNames.month),\n nav: cn(\n \"flex items-center gap-1 w-full absolute top-0 inset-x-0 justify-between\",\n defaultClassNames.nav,\n ),\n button_previous: cn(\n buttonVariants({ variant: buttonVariant }),\n \"size-(--cell-size) aria-disabled:opacity-50 p-0 select-none\",\n defaultClassNames.button_previous,\n ),\n button_next: cn(\n buttonVariants({ variant: buttonVariant }),\n \"size-(--cell-size) aria-disabled:opacity-50 p-0 select-none\",\n defaultClassNames.button_next,\n ),\n month_caption: cn(\n \"flex items-center justify-center h-(--cell-size) w-full px-(--cell-size)\",\n defaultClassNames.month_caption,\n ),\n dropdowns: cn(\n \"w-full flex items-center text-sm font-medium justify-center h-(--cell-size) gap-1.5\",\n defaultClassNames.dropdowns,\n ),\n dropdown_root: cn(\n \"relative has-focus:border-ring border border-input shadow-xs has-focus:ring-ring/50 has-focus:ring-[3px] rounded-md\",\n defaultClassNames.dropdown_root,\n ),\n dropdown: cn(\"absolute inset-0 opacity-0\", defaultClassNames.dropdown),\n caption_label: cn(\n \"select-none font-medium\",\n captionLayout === \"label\"\n ? \"text-sm\"\n : \"rounded-md pl-2 pr-1 flex items-center gap-1 text-sm h-8 [&>svg]:text-muted-foreground [&>svg]:size-3.5\",\n defaultClassNames.caption_label,\n ),\n table: \"w-full border-collapse\",\n weekdays: cn(\"flex\", defaultClassNames.weekdays),\n weekday: cn(\n \"text-muted-foreground rounded-md flex-1 font-normal text-[0.8rem] select-none\",\n defaultClassNames.weekday,\n ),\n week: cn(\"flex w-full mt-2\", defaultClassNames.week),\n week_number_header: cn(\n \"select-none w-(--cell-size)\",\n defaultClassNames.week_number_header,\n ),\n week_number: cn(\n \"text-[0.8rem] select-none text-muted-foreground\",\n defaultClassNames.week_number,\n ),\n day: cn(\n \"relative w-full h-full p-0 text-center [&:first-child[data-selected=true]_button]:rounded-l-md [&:last-child[data-selected=true]_button]:rounded-r-md group/day aspect-square select-none\",\n defaultClassNames.day,\n ),\n range_start: cn(\n \"rounded-l-md bg-accent\",\n defaultClassNames.range_start,\n ),\n range_middle: cn(\"rounded-none\", defaultClassNames.range_middle),\n range_end: cn(\"rounded-r-md bg-accent\", defaultClassNames.range_end),\n today: cn(\n \"bg-accent text-accent-foreground rounded-md data-[selected=true]:rounded-none\",\n defaultClassNames.today,\n ),\n outside: cn(\n \"text-muted-foreground aria-selected:text-muted-foreground\",\n defaultClassNames.outside,\n ),\n disabled: cn(\n \"text-muted-foreground opacity-50\",\n defaultClassNames.disabled,\n ),\n hidden: cn(\"invisible\", defaultClassNames.hidden),\n ...classNames,\n }}\n components={{\n Root: ({ className, rootRef, ...props }) => {\n return (\n <div\n data-slot=\"calendar\"\n ref={rootRef}\n className={cn(className)}\n {...props}\n />\n );\n },\n Chevron: ({ className, orientation, ...props }) => {\n if (orientation === \"left\") {\n return (\n <ChevronLeftIcon className={cn(\"size-4\", className)} {...props} />\n );\n }\n\n if (orientation === \"right\") {\n return (\n <ChevronRightIcon\n className={cn(\"size-4\", className)}\n {...props}\n />\n );\n }\n\n return (\n <ChevronDownIcon className={cn(\"size-4\", className)} {...props} />\n );\n },\n DayButton: CalendarDayButton,\n WeekNumber: ({ children, ...props }) => {\n return (\n <td {...props}>\n <div className=\"flex size-(--cell-size) items-center justify-center text-center\">\n {children}\n </div>\n </td>\n );\n },\n ...components,\n }}\n {...props}\n />\n );\n}\n\nfunction CalendarDayButton({\n className,\n day,\n modifiers,\n ...props\n}: React.ComponentProps<typeof DayButton>) {\n const defaultClassNames = getDefaultClassNames();\n\n const ref = React.useRef<HTMLButtonElement>(null);\n React.useEffect(() => {\n if (modifiers.focused) ref.current?.focus();\n }, [modifiers.focused]);\n\n return (\n <Button\n ref={ref}\n variant=\"ghost\"\n size=\"icon\"\n data-day={day.date.toLocaleDateString()}\n data-selected-single={\n modifiers.selected &&\n !modifiers.range_start &&\n !modifiers.range_end &&\n !modifiers.range_middle\n }\n data-range-start={modifiers.range_start}\n data-range-end={modifiers.range_end}\n data-range-middle={modifiers.range_middle}\n className={cn(\n \"data-[selected-single=true]:bg-primary data-[selected-single=true]:text-primary-foreground data-[range-middle=true]:bg-accent data-[range-middle=true]:text-accent-foreground data-[range-start=true]:bg-primary data-[range-start=true]:text-primary-foreground data-[range-end=true]:bg-primary data-[range-end=true]:text-primary-foreground group-data-[focused=true]/day:border-ring group-data-[focused=true]/day:ring-ring/50 dark:hover:text-accent-foreground flex aspect-square size-auto w-full min-w-(--cell-size) flex-col gap-1 leading-none font-normal group-data-[focused=true]/day:relative group-data-[focused=true]/day:z-10 group-data-[focused=true]/day:ring-[3px] data-[range-end=true]:rounded-md data-[range-end=true]:rounded-r-md data-[range-middle=true]:rounded-none data-[range-start=true]:rounded-md data-[range-start=true]:rounded-l-md [&>span]:text-xs [&>span]:opacity-70\",\n defaultClassNames.day,\n className,\n )}\n {...props}\n />\n );\n}\n\nexport { Calendar, CalendarDayButton };\n"],"mappings":"uWAYA,SAAS,EAAS,CAChB,YACA,aACA,kBAAkB,GAClB,gBAAgB,QAChB,gBAAgB,QAChB,aACA,aACA,GAAG,EAGJ,CAAE,CACD,IAAM,EAAoB,IAE1B,OACE,EAAC,EAAA,CACkB,kBACjB,UAAW,EACT,yJACA,OAAO,GAAG,4CACV,OAAO,GAAG,gDACV,GAEa,gBACf,WAAY,CACV,oBAAsB,GACpB,EAAK,eAAe,UAAW,CAAE,MAAO,QAAS,EACnD,GAAG,EACJ,CACD,WAAY,CACV,KAAM,EAAG,QAAS,EAAkB,MACpC,OAAQ,EACN,2CACA,EAAkB,QAEpB,MAAO,EAAG,6BAA8B,EAAkB,OAC1D,IAAK,EACH,0EACA,EAAkB,KAEpB,gBAAiB,EACf,EAAe,CAAE,QAAS,EAAe,EACzC,8DACA,EAAkB,iBAEpB,YAAa,EACX,EAAe,CAAE,QAAS,EAAe,EACzC,8DACA,EAAkB,aAEpB,cAAe,EACb,2EACA,EAAkB,eAEpB,UAAW,EACT,sFACA,EAAkB,WAEpB,cAAe,EACb,sHACA,EAAkB,eAEpB,SAAU,EAAG,6BAA8B,EAAkB,UAC7D,cAAe,EACb,0BACA,IAAkB,QACd,UACA,0GACJ,EAAkB,eAEpB,MAAO,yBACP,SAAU,EAAG,OAAQ,EAAkB,UACvC,QAAS,EACP,gFACA,EAAkB,SAEpB,KAAM,EAAG,mBAAoB,EAAkB,MAC/C,mBAAoB,EAClB,8BACA,EAAkB,oBAEpB,YAAa,EACX,kDACA,EAAkB,aAEpB,IAAK,EACH,4LACA,EAAkB,KAEpB,YAAa,EACX,yBACA,EAAkB,aAEpB,aAAc,EAAG,eAAgB,EAAkB,cACnD,UAAW,EAAG,yBAA0B,EAAkB,WAC1D,MAAO,EACL,gFACA,EAAkB,OAEpB,QAAS,EACP,4DACA,EAAkB,SAEpB,SAAU,EACR,mCACA,EAAkB,UAEpB,OAAQ,EAAG,YAAa,EAAkB,QAC1C,GAAG,EACJ,CACD,WAAY,CACV,MAAO,CAAE,UAAA,EAAW,UAAS,GAAGA,EAAO,GAEnC,EAAC,MAAA,CACC,YAAU,WACV,IAAK,EACL,UAAW,EAAGC,GACd,GAAID,IAIV,SAAU,CAAE,UAAA,EAAW,cAAa,GAAGA,EAAO,GAGxC,EAFA,IAAgB,OAEf,EAID,IAAgB,QAEf,EAQF,EAdE,CAAgB,UAAW,EAAG,SAAUC,GAAY,GAAID,IAiB/D,UAAW,EACX,YAAa,CAAE,WAAU,GAAGA,EAAO,GAE/B,EAAC,KAAA,CAAG,GAAIA,WACN,EAAC,MAAA,CAAI,UAAU,kEACZ,eAKT,GAAG,EACJ,CACD,GAAI,GAGT,CAED,SAAS,EAAkB,CACzB,YACA,MACA,YACA,GAAG,EACoC,CAAE,CACzC,IAAM,EAAoB,IAEpB,EAAM,EAAM,OAA0B,MAK5C,OAJA,EAAM,cAAgB,CAChB,EAAU,SAAS,EAAI,SAAS,OACrC,EAAE,CAAC,EAAU,QAAQ,EAGpB,EAAC,EAAA,CACM,MACL,QAAQ,QACR,KAAK,OACL,WAAU,EAAI,KAAK,qBACnB,uBACE,EAAU,UACV,CAAC,EAAU,aACX,CAAC,EAAU,WACX,CAAC,EAAU,aAEb,mBAAkB,EAAU,YAC5B,iBAAgB,EAAU,UAC1B,oBAAmB,EAAU,aAC7B,UAAW,EACT,m3BACA,EAAkB,IAClB,GAEF,GAAI,GAGT"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"multi-select.cjs","names":["React","groupOption: GroupOption","cn","CommandItem","value","Command","X","CommandPrimitive","CommandList","CommandSeparator","CommandGroup","Button","PlusIcon"],"sources":["../../packages/components/ui/multi-select.tsx"],"sourcesContent":["\"use client\";\nimport React from \"react\";\nimport { Command as CommandPrimitive, useCommandState } from \"cmdk\";\nimport { PlusIcon, X } from \"lucide-react\";\n\nimport {\n Command,\n CommandGroup,\n CommandItem,\n CommandList,\n CommandSeparator,\n} from \"@/components/ui/command\";\nimport { cn } from \"@/lib/utils\";\n\nimport { Button } from \"./button\";\n\nexport interface Option {\n value: string;\n label: string;\n disable?: boolean;\n /** fixed option that can‘t be removed. */\n fixed?: boolean;\n /** Group the options by providing key. */\n [key: string]: string | boolean | undefined;\n}\ninterface GroupOption {\n [key: string]: Option[];\n}\n\ninterface MultipleSelectorProps {\n value?: Option[];\n defaultOptions?: Option[];\n /** manually controlled options */\n options?: Option[];\n placeholder?: string;\n /** Loading component. */\n loadingIndicator?: React.ReactNode;\n /** Empty component. */\n emptyIndicator?: React.ReactNode;\n /** Debounce time for async search. Only work with `onSearch`. */\n delay?: number;\n /**\n * Only work with `onSearch` prop. Trigger search when `onFocus`.\n * For example, when user click on the input, it will trigger the search to get initial options.\n **/\n triggerSearchOnFocus?: boolean;\n /** async search */\n onSearch?: (value: string) => Promise<Option[]>;\n /**\n * sync search. This search will not showing loadingIndicator.\n * The rest props are the same as async search.\n * i.e.: creatable, groupBy, delay.\n **/\n onSearchSync?: (value: string) => Option[];\n onChange?: (options: Option[]) => void;\n /** Limit the maximum number of selected options. */\n maxSelected?: number;\n /** When the number of selected options exceeds the limit, the onMaxSelected will be called. */\n onMaxSelected?: (maxLimit: number) => void;\n /** Hide the placeholder when there are options selected. */\n hidePlaceholderWhenSelected?: boolean;\n disabled?: boolean;\n /** Group the options base on provided key. */\n groupBy?: string;\n className?: string;\n badgeClassName?: string;\n /**\n * First item selected is a default behavior by cmdk. That is why the default is true.\n * This is a workaround solution by add a dummy item.\n *\n * @reference: https://github.com/pacocoursey/cmdk/issues/171\n */\n selectFirstItem?: boolean;\n /** Allow user to create option when there is no option matched. */\n creatable?: boolean;\n /** Props of `Command` */\n commandProps?: React.ComponentPropsWithoutRef<typeof Command>;\n /** Props of `CommandInput` */\n inputProps?: Omit<\n React.ComponentPropsWithoutRef<typeof CommandPrimitive.Input>,\n \"value\" | \"placeholder\" | \"disabled\"\n >;\n /** hide the clear all button. */\n hideClearAllButton?: boolean;\n\n /** Add new item event for select with search */\n onAddNewItem?: () => void;\n}\n\nexport interface MultipleSelectorRef {\n selectedValue: Option[];\n input: HTMLInputElement;\n focus: () => void;\n reset: () => void;\n}\n\n// eslint-disable-next-line react-refresh/only-export-components\nexport function useDebounce<T>(value: T, delay?: number): T {\n const [debouncedValue, setDebouncedValue] = React.useState<T>(value);\n\n React.useEffect(() => {\n const timer = setTimeout(() => setDebouncedValue(value), delay || 500);\n\n return () => {\n clearTimeout(timer);\n };\n }, [value, delay]);\n\n return debouncedValue;\n}\n\nfunction transToGroupOption(options: Option[], groupBy?: string) {\n if (options.length === 0) {\n return {};\n }\n if (!groupBy) {\n return {\n \"\": options,\n };\n }\n\n const groupOption: GroupOption = {};\n options.forEach((option) => {\n const key = (option[groupBy] as string) || \"\";\n if (!groupOption[key]) {\n groupOption[key] = [];\n }\n groupOption[key].push(option);\n });\n return groupOption;\n}\n\nfunction removePickedOption(groupOption: GroupOption, picked: Option[]) {\n const cloneOption = JSON.parse(JSON.stringify(groupOption)) as GroupOption;\n\n for (const [key, value] of Object.entries(cloneOption)) {\n cloneOption[key] = value.filter(\n (val) => !picked.find((p) => p.value === val.value),\n );\n }\n return cloneOption;\n}\n\nfunction isOptionsExist(groupOption: GroupOption, targetOption: Option[]) {\n for (const [, value] of Object.entries(groupOption)) {\n if (\n value.some((option) => targetOption.find((p) => p.value === option.value))\n ) {\n return true;\n }\n }\n return false;\n}\n\n/**\n * The `CommandEmpty` of shadcn/ui will cause the cmdk empty not rendering correctly.\n * So we create one and copy the `Empty` implementation from `cmdk`.\n *\n * @reference: https://github.com/hsuanyi-chou/shadcn-ui-expansions/issues/34#issuecomment-1949561607\n **/\nconst CommandEmpty = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<typeof CommandPrimitive.Empty>\n>(({ className, ...props }, forwardedRef) => {\n const render = useCommandState((state) => state.filtered.count === 0);\n\n if (!render) return null;\n\n return (\n <div\n ref={forwardedRef}\n className={cn(\"px-2 py-4 text-center text-sm\", className)}\n cmdk-empty=\"\"\n role=\"presentation\"\n {...props}\n />\n );\n});\n\nCommandEmpty.displayName = \"CommandEmpty\";\n\nconst MultipleSelector = React.forwardRef<\n MultipleSelectorRef,\n MultipleSelectorProps\n>(\n (\n {\n value,\n onChange,\n placeholder,\n defaultOptions: arrayDefaultOptions = [],\n options: arrayOptions,\n delay,\n onSearch,\n onSearchSync,\n loadingIndicator: LoadingIndicator,\n emptyIndicator,\n maxSelected = Number.MAX_SAFE_INTEGER,\n onMaxSelected,\n hidePlaceholderWhenSelected,\n disabled,\n groupBy,\n className,\n badgeClassName,\n selectFirstItem = true,\n creatable = false,\n triggerSearchOnFocus = false,\n commandProps,\n inputProps,\n hideClearAllButton = false,\n onAddNewItem,\n }: MultipleSelectorProps,\n ref: React.Ref<MultipleSelectorRef>,\n ) => {\n const inputRef = React.useRef<HTMLInputElement>(null);\n const dropdownRef = React.useRef<HTMLDivElement>(null); // Added this\n\n const [open, setOpen] = React.useState(false);\n const [onScrollbar, setOnScrollbar] = React.useState(false);\n const [isLoading, setIsLoading] = React.useState(false);\n\n const [selected, setSelected] = React.useState<Option[]>(value || []);\n const [options, setOptions] = React.useState<GroupOption>(\n transToGroupOption(arrayDefaultOptions, groupBy),\n );\n const [inputValue, setInputValue] = React.useState(\"\");\n\n const debouncedSearchTerm = useDebounce(inputValue, delay || 500);\n\n React.useImperativeHandle(\n ref,\n () => ({\n selectedValue: [...selected],\n input: inputRef.current as HTMLInputElement,\n focus: () => inputRef?.current?.focus(),\n reset: () => setSelected([]),\n }),\n [selected],\n );\n\n const handleClickOutside = React.useCallback(\n (event: MouseEvent | TouchEvent) => {\n if (\n dropdownRef.current &&\n !dropdownRef.current.contains(event.target as Node) &&\n inputRef.current &&\n !inputRef.current.contains(event.target as Node)\n ) {\n setOpen(false);\n inputRef.current.blur();\n }\n },\n [],\n );\n\n const handleUnselect = React.useCallback(\n (option: Option) => {\n const newOptions = selected.filter((s) => s.value !== option.value);\n setSelected(newOptions);\n onChange?.(newOptions);\n },\n [onChange, selected],\n );\n\n const handleKeyDown = React.useCallback(\n (e: React.KeyboardEvent<HTMLDivElement>) => {\n const input = inputRef.current;\n if (!input) return;\n\n if (e.key === \"Delete\" || e.key === \"Backspace\") {\n if (input.value === \"\" && selected.length > 0) {\n const lastSelectOption = selected[selected.length - 1];\n // If last item is fixed, we should not remove it.\n if (!lastSelectOption.fixed) {\n handleUnselect(selected[selected.length - 1]);\n }\n }\n }\n\n // This is not a default behavior of the <input /> field\n if (e.key === \"Escape\") {\n input.blur();\n }\n },\n [handleUnselect, selected],\n );\n\n React.useEffect(() => {\n if (open) {\n document.addEventListener(\"mousedown\", handleClickOutside);\n document.addEventListener(\"touchend\", handleClickOutside);\n } else {\n document.removeEventListener(\"mousedown\", handleClickOutside);\n document.removeEventListener(\"touchend\", handleClickOutside);\n }\n\n return () => {\n document.removeEventListener(\"mousedown\", handleClickOutside);\n document.removeEventListener(\"touchend\", handleClickOutside);\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [open]);\n\n React.useEffect(() => {\n if (value) {\n setSelected(value);\n }\n }, [value]);\n\n React.useEffect(() => {\n /** If `onSearch` is provided, do not trigger options updated. */\n if (!arrayOptions || onSearch) {\n return;\n }\n const newOption = transToGroupOption(arrayOptions || [], groupBy);\n if (JSON.stringify(newOption) !== JSON.stringify(options)) {\n setOptions(newOption);\n }\n }, [arrayDefaultOptions, arrayOptions, groupBy, onSearch, options]);\n\n React.useEffect(() => {\n /** sync search */\n\n const doSearchSync = () => {\n const res = onSearchSync?.(debouncedSearchTerm);\n setOptions(transToGroupOption(res || [], groupBy));\n };\n\n const exec = async () => {\n if (!onSearchSync || !open) return;\n\n if (triggerSearchOnFocus) {\n doSearchSync();\n }\n\n if (debouncedSearchTerm) {\n doSearchSync();\n }\n };\n\n void exec();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [debouncedSearchTerm, groupBy, open, triggerSearchOnFocus]);\n\n React.useEffect(() => {\n /** async search */\n\n const doSearch = async () => {\n setIsLoading(true);\n const res = await onSearch?.(debouncedSearchTerm);\n setOptions(transToGroupOption(res || [], groupBy));\n setIsLoading(false);\n };\n\n const exec = async () => {\n if (!onSearch || !open) return;\n\n if (triggerSearchOnFocus) {\n await doSearch();\n }\n\n if (debouncedSearchTerm) {\n await doSearch();\n }\n };\n\n void exec();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [debouncedSearchTerm, groupBy, open, triggerSearchOnFocus]);\n\n const CreatableItem = () => {\n if (!creatable) return undefined;\n if (\n isOptionsExist(options, [{ value: inputValue, label: inputValue }]) ||\n selected.find((s) => s.value === inputValue)\n ) {\n return undefined;\n }\n\n const Item = (\n <CommandItem\n value={inputValue}\n className=\"cursor-pointer\"\n onMouseDown={(e) => {\n e.preventDefault();\n e.stopPropagation();\n }}\n onSelect={(value: string) => {\n if (selected.length >= maxSelected) {\n onMaxSelected?.(selected.length);\n return;\n }\n setInputValue(\"\");\n const newOptions = [...selected, { value, label: value }];\n setSelected(newOptions);\n onChange?.(newOptions);\n }}\n >\n {`Create \"${inputValue}\"`}\n </CommandItem>\n );\n\n // For normal creatable\n if (!onSearch && inputValue.length > 0) {\n return Item;\n }\n\n // For async search creatable. avoid showing creatable item before loading at first.\n if (onSearch && debouncedSearchTerm.length > 0 && !isLoading) {\n return Item;\n }\n\n return undefined;\n };\n\n const EmptyItem = React.useCallback(() => {\n if (!emptyIndicator) return undefined;\n\n // For async search that showing emptyIndicator\n if (onSearch && !creatable && Object.keys(options).length === 0) {\n return (\n <CommandItem value=\"-\" disabled>\n {emptyIndicator}\n </CommandItem>\n );\n }\n\n return <CommandEmpty>{emptyIndicator}</CommandEmpty>;\n }, [creatable, emptyIndicator, onSearch, options]);\n\n const selectables = React.useMemo<GroupOption>(\n () => removePickedOption(options, selected),\n [options, selected],\n );\n\n /** Avoid Creatable Selector freezing or lagging when paste a long string. */\n const commandFilter = React.useCallback(() => {\n if (commandProps?.filter) {\n return commandProps.filter;\n }\n\n if (creatable) {\n return (value: string, search: string) => {\n return value.toLowerCase().includes(search.toLowerCase()) ? 1 : -1;\n };\n }\n // Using default filter in `cmdk`. We don‘t have to provide it.\n return undefined;\n }, [creatable, commandProps?.filter]);\n\n return (\n <Command\n ref={dropdownRef}\n {...commandProps}\n onKeyDown={(e) => {\n handleKeyDown(e);\n commandProps?.onKeyDown?.(e);\n }}\n className={cn(\n \"h-auto overflow-visible bg-transparent\",\n commandProps?.className,\n )}\n shouldFilter={\n commandProps?.shouldFilter !== undefined\n ? commandProps.shouldFilter\n : !onSearch\n } // When onSearch is provided, we don‘t want to filter the options. You can still override it.\n filter={commandFilter()}\n >\n <div\n className={cn(\n \"border-input focus-within:border-primary focus-within:ring-ring relative rounded-md border text-sm transition-shadow focus-within:ring-4 focus-within:outline-hidden\",\n \"has-disabled:bg-muted\",\n \"has-disabled:text-muted-foreground\",\n {\n \"p-1\": selected.length !== 0,\n \"cursor-text\": !disabled && selected.length !== 0,\n },\n !hideClearAllButton && \"pe-9\",\n className,\n )}\n onClick={() => {\n if (disabled) return;\n inputRef?.current?.focus();\n }}\n >\n <div className=\"flex flex-wrap gap-1\">\n {selected.map((option) => {\n return (\n <div\n key={option.value}\n className={cn(\n \"animate-fadeIn bg-background text-secondary-foreground hover:bg-background relative inline-flex h-7 cursor-default items-center rounded-md border border-solid ps-2 pe-7 pl-2 text-xs font-medium transition-all disabled:cursor-not-allowed disabled:opacity-50 data-fixed:pe-2\",\n badgeClassName,\n )}\n data-fixed={option.fixed}\n data-disabled={disabled || undefined}\n >\n {option.label}\n <button\n type=\"button\"\n disabled={disabled || option.fixed}\n className={cn(\n \"text-muted-foreground/80 absolute -inset-y-px -end-px flex size-7 items-center justify-center rounded-e-lg border border-transparent p-0 outline-0 transition-colors\",\n \"hover:text-foreground\",\n \"focus-visible:outline\",\n \"focus-visible:outline-2\",\n \"focus-visible:outline-ring/70\",\n \"disabled:hover:text-muted-foreground disabled:cursor-not-allowed disabled:opacity-50\",\n )}\n onKeyDown={(e) => {\n if (e.key === \"Enter\") {\n handleUnselect(option);\n }\n }}\n onMouseDown={(e) => {\n e.preventDefault();\n e.stopPropagation();\n }}\n onClick={() => handleUnselect(option)}\n aria-label=\"Remove\"\n >\n <X size={14} strokeWidth={2} aria-hidden=\"true\" />\n </button>\n </div>\n );\n })}\n {/* Avoid having the \"Search\" Icon */}\n <CommandPrimitive.Input\n {...inputProps}\n ref={inputRef}\n value={inputValue}\n disabled={disabled}\n onValueChange={(value) => {\n setInputValue(value);\n inputProps?.onValueChange?.(value);\n }}\n onBlur={(event) => {\n if (!onScrollbar) {\n setOpen(false);\n }\n inputProps?.onBlur?.(event);\n }}\n onFocus={(event) => {\n setOpen(true);\n if (triggerSearchOnFocus) {\n onSearch?.(debouncedSearchTerm);\n }\n inputProps?.onFocus?.(event);\n }}\n placeholder={\n hidePlaceholderWhenSelected && selected.length !== 0\n ? \"\"\n : placeholder\n }\n className={cn(\n \"placeholder:text-muted-foreground flex-1 bg-transparent outline-hidden\",\n \"disabled:placeholder:text-transparent\",\n {\n \"w-full\": hidePlaceholderWhenSelected,\n \"px-3 py-2\": selected.length === 0,\n \"ml-1\": selected.length !== 0,\n },\n inputProps?.className,\n )}\n />\n <button\n type=\"button\"\n onClick={() => {\n setSelected(selected.filter((s) => s.fixed));\n onChange?.(selected.filter((s) => s.fixed));\n }}\n className={cn(\n \"text-muted-foreground/80\",\n \"absolute end-0 top-0 flex size-9 items-center justify-center rounded-lg border border-transparent transition-colors\",\n \"focus-visible:outline-2\",\n \"hover:text-foreground\",\n \"focus-visible:outline-ring/70\",\n (hideClearAllButton ||\n disabled ||\n selected.length < 1 ||\n selected.filter(({ fixed }) => fixed).length ===\n selected.length) &&\n \"hidden\",\n )}\n aria-label=\"Clear all\"\n >\n <X size={16} strokeWidth={2} aria-hidden=\"true\" />\n </button>\n </div>\n </div>\n <div className=\"relative\">\n <div\n className={cn(\n \"border-input absolute top-2 z-10 w-full overflow-hidden rounded-lg border shadow-sm\",\n \"data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95\",\n !open && \"hidden\",\n )}\n data-state={open ? \"open\" : \"closed\"}\n >\n {open && (\n <CommandList\n className=\"bg-popover text-popover-foreground shadow-lg outline-hidden\"\n onMouseLeave={() => {\n setOnScrollbar(false);\n }}\n onMouseEnter={() => {\n setOnScrollbar(true);\n }}\n onMouseUp={() => {\n inputRef?.current?.focus();\n }}\n >\n {onAddNewItem && (\n <>\n <CommandSeparator />\n <CommandGroup>\n <Button\n type=\"button\"\n variant=\"ghost\"\n className=\"w-full font-normal [&_div]:justify-start\"\n onClick={onAddNewItem}\n >\n <PlusIcon\n size={14}\n className=\"-ms-2 opacity-60\"\n aria-hidden=\"true\"\n />\n Thêm mới\n </Button>\n </CommandGroup>\n </>\n )}\n {isLoading ? (\n LoadingIndicator\n ) : (\n <React.Fragment>\n {EmptyItem()}\n {CreatableItem()}\n {!selectFirstItem && (\n <CommandItem value=\"-\" className=\"hidden\" />\n )}\n {Object.entries(selectables).map(([key, dropdowns]) => (\n <CommandGroup\n key={key}\n heading={key}\n className=\"h-full overflow-auto\"\n >\n {dropdowns.map((option) => {\n return (\n <CommandItem\n key={option.value}\n value={option.value}\n disabled={option.disable}\n onMouseDown={(e) => {\n e.preventDefault();\n e.stopPropagation();\n }}\n onSelect={() => {\n if (selected.length >= maxSelected) {\n onMaxSelected?.(selected.length);\n return;\n }\n setInputValue(\"\");\n const newOptions = [...selected, option];\n setSelected(newOptions);\n onChange?.(newOptions);\n }}\n className={cn(\n \"cursor-pointer\",\n option.disable &&\n \"cursor-not-allowed opacity-50\",\n )}\n >\n {option.label}\n </CommandItem>\n );\n })}\n </CommandGroup>\n ))}\n </React.Fragment>\n )}\n </CommandList>\n )}\n </div>\n </div>\n </Command>\n );\n },\n);\n\nMultipleSelector.displayName = \"MultipleSelector\";\nexport default MultipleSelector;\n"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"multi-select.js","names":["groupOption: GroupOption","value","Command","CommandPrimitive"],"sources":["../../packages/components/ui/multi-select.tsx"],"sourcesContent":["\"use client\";\nimport React from \"react\";\nimport { Command as CommandPrimitive, useCommandState } from \"cmdk\";\nimport { PlusIcon, X } from \"lucide-react\";\n\nimport {\n Command,\n CommandGroup,\n CommandItem,\n CommandList,\n CommandSeparator,\n} from \"@/components/ui/command\";\nimport { cn } from \"@/lib/utils\";\n\nimport { Button } from \"./button\";\n\nexport interface Option {\n value: string;\n label: string;\n disable?: boolean;\n /** fixed option that can‘t be removed. */\n fixed?: boolean;\n /** Group the options by providing key. */\n [key: string]: string | boolean | undefined;\n}\ninterface GroupOption {\n [key: string]: Option[];\n}\n\ninterface MultipleSelectorProps {\n value?: Option[];\n defaultOptions?: Option[];\n /** manually controlled options */\n options?: Option[];\n placeholder?: string;\n /** Loading component. */\n loadingIndicator?: React.ReactNode;\n /** Empty component. */\n emptyIndicator?: React.ReactNode;\n /** Debounce time for async search. Only work with `onSearch`. */\n delay?: number;\n /**\n * Only work with `onSearch` prop. Trigger search when `onFocus`.\n * For example, when user click on the input, it will trigger the search to get initial options.\n **/\n triggerSearchOnFocus?: boolean;\n /** async search */\n onSearch?: (value: string) => Promise<Option[]>;\n /**\n * sync search. This search will not showing loadingIndicator.\n * The rest props are the same as async search.\n * i.e.: creatable, groupBy, delay.\n **/\n onSearchSync?: (value: string) => Option[];\n onChange?: (options: Option[]) => void;\n /** Limit the maximum number of selected options. */\n maxSelected?: number;\n /** When the number of selected options exceeds the limit, the onMaxSelected will be called. */\n onMaxSelected?: (maxLimit: number) => void;\n /** Hide the placeholder when there are options selected. */\n hidePlaceholderWhenSelected?: boolean;\n disabled?: boolean;\n /** Group the options base on provided key. */\n groupBy?: string;\n className?: string;\n badgeClassName?: string;\n /**\n * First item selected is a default behavior by cmdk. That is why the default is true.\n * This is a workaround solution by add a dummy item.\n *\n * @reference: https://github.com/pacocoursey/cmdk/issues/171\n */\n selectFirstItem?: boolean;\n /** Allow user to create option when there is no option matched. */\n creatable?: boolean;\n /** Props of `Command` */\n commandProps?: React.ComponentPropsWithoutRef<typeof Command>;\n /** Props of `CommandInput` */\n inputProps?: Omit<\n React.ComponentPropsWithoutRef<typeof CommandPrimitive.Input>,\n \"value\" | \"placeholder\" | \"disabled\"\n >;\n /** hide the clear all button. */\n hideClearAllButton?: boolean;\n\n /** Add new item event for select with search */\n onAddNewItem?: () => void;\n}\n\nexport interface MultipleSelectorRef {\n selectedValue: Option[];\n input: HTMLInputElement;\n focus: () => void;\n reset: () => void;\n}\n\n// eslint-disable-next-line react-refresh/only-export-components\nexport function useDebounce<T>(value: T, delay?: number): T {\n const [debouncedValue, setDebouncedValue] = React.useState<T>(value);\n\n React.useEffect(() => {\n const timer = setTimeout(() => setDebouncedValue(value), delay || 500);\n\n return () => {\n clearTimeout(timer);\n };\n }, [value, delay]);\n\n return debouncedValue;\n}\n\nfunction transToGroupOption(options: Option[], groupBy?: string) {\n if (options.length === 0) {\n return {};\n }\n if (!groupBy) {\n return {\n \"\": options,\n };\n }\n\n const groupOption: GroupOption = {};\n options.forEach((option) => {\n const key = (option[groupBy] as string) || \"\";\n if (!groupOption[key]) {\n groupOption[key] = [];\n }\n groupOption[key].push(option);\n });\n return groupOption;\n}\n\nfunction removePickedOption(groupOption: GroupOption, picked: Option[]) {\n const cloneOption = JSON.parse(JSON.stringify(groupOption)) as GroupOption;\n\n for (const [key, value] of Object.entries(cloneOption)) {\n cloneOption[key] = value.filter(\n (val) => !picked.find((p) => p.value === val.value),\n );\n }\n return cloneOption;\n}\n\nfunction isOptionsExist(groupOption: GroupOption, targetOption: Option[]) {\n for (const [, value] of Object.entries(groupOption)) {\n if (\n value.some((option) => targetOption.find((p) => p.value === option.value))\n ) {\n return true;\n }\n }\n return false;\n}\n\n/**\n * The `CommandEmpty` of shadcn/ui will cause the cmdk empty not rendering correctly.\n * So we create one and copy the `Empty` implementation from `cmdk`.\n *\n * @reference: https://github.com/hsuanyi-chou/shadcn-ui-expansions/issues/34#issuecomment-1949561607\n **/\nconst CommandEmpty = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<typeof CommandPrimitive.Empty>\n>(({ className, ...props }, forwardedRef) => {\n const render = useCommandState((state) => state.filtered.count === 0);\n\n if (!render) return null;\n\n return (\n <div\n ref={forwardedRef}\n className={cn(\"px-2 py-4 text-center text-sm\", className)}\n cmdk-empty=\"\"\n role=\"presentation\"\n {...props}\n />\n );\n});\n\nCommandEmpty.displayName = \"CommandEmpty\";\n\nconst MultipleSelector = React.forwardRef<\n MultipleSelectorRef,\n MultipleSelectorProps\n>(\n (\n {\n value,\n onChange,\n placeholder,\n defaultOptions: arrayDefaultOptions = [],\n options: arrayOptions,\n delay,\n onSearch,\n onSearchSync,\n loadingIndicator: LoadingIndicator,\n emptyIndicator,\n maxSelected = Number.MAX_SAFE_INTEGER,\n onMaxSelected,\n hidePlaceholderWhenSelected,\n disabled,\n groupBy,\n className,\n badgeClassName,\n selectFirstItem = true,\n creatable = false,\n triggerSearchOnFocus = false,\n commandProps,\n inputProps,\n hideClearAllButton = false,\n onAddNewItem,\n }: MultipleSelectorProps,\n ref: React.Ref<MultipleSelectorRef>,\n ) => {\n const inputRef = React.useRef<HTMLInputElement>(null);\n const dropdownRef = React.useRef<HTMLDivElement>(null); // Added this\n\n const [open, setOpen] = React.useState(false);\n const [onScrollbar, setOnScrollbar] = React.useState(false);\n const [isLoading, setIsLoading] = React.useState(false);\n\n const [selected, setSelected] = React.useState<Option[]>(value || []);\n const [options, setOptions] = React.useState<GroupOption>(\n transToGroupOption(arrayDefaultOptions, groupBy),\n );\n const [inputValue, setInputValue] = React.useState(\"\");\n\n const debouncedSearchTerm = useDebounce(inputValue, delay || 500);\n\n React.useImperativeHandle(\n ref,\n () => ({\n selectedValue: [...selected],\n input: inputRef.current as HTMLInputElement,\n focus: () => inputRef?.current?.focus(),\n reset: () => setSelected([]),\n }),\n [selected],\n );\n\n const handleClickOutside = React.useCallback(\n (event: MouseEvent | TouchEvent) => {\n if (\n dropdownRef.current &&\n !dropdownRef.current.contains(event.target as Node) &&\n inputRef.current &&\n !inputRef.current.contains(event.target as Node)\n ) {\n setOpen(false);\n inputRef.current.blur();\n }\n },\n [],\n );\n\n const handleUnselect = React.useCallback(\n (option: Option) => {\n const newOptions = selected.filter((s) => s.value !== option.value);\n setSelected(newOptions);\n onChange?.(newOptions);\n },\n [onChange, selected],\n );\n\n const handleKeyDown = React.useCallback(\n (e: React.KeyboardEvent<HTMLDivElement>) => {\n const input = inputRef.current;\n if (!input) return;\n\n if (e.key === \"Delete\" || e.key === \"Backspace\") {\n if (input.value === \"\" && selected.length > 0) {\n const lastSelectOption = selected[selected.length - 1];\n // If last item is fixed, we should not remove it.\n if (!lastSelectOption.fixed) {\n handleUnselect(selected[selected.length - 1]);\n }\n }\n }\n\n // This is not a default behavior of the <input /> field\n if (e.key === \"Escape\") {\n input.blur();\n }\n },\n [handleUnselect, selected],\n );\n\n React.useEffect(() => {\n if (open) {\n document.addEventListener(\"mousedown\", handleClickOutside);\n document.addEventListener(\"touchend\", handleClickOutside);\n } else {\n document.removeEventListener(\"mousedown\", handleClickOutside);\n document.removeEventListener(\"touchend\", handleClickOutside);\n }\n\n return () => {\n document.removeEventListener(\"mousedown\", handleClickOutside);\n document.removeEventListener(\"touchend\", handleClickOutside);\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [open]);\n\n React.useEffect(() => {\n if (value) {\n setSelected(value);\n }\n }, [value]);\n\n React.useEffect(() => {\n /** If `onSearch` is provided, do not trigger options updated. */\n if (!arrayOptions || onSearch) {\n return;\n }\n const newOption = transToGroupOption(arrayOptions || [], groupBy);\n if (JSON.stringify(newOption) !== JSON.stringify(options)) {\n setOptions(newOption);\n }\n }, [arrayDefaultOptions, arrayOptions, groupBy, onSearch, options]);\n\n React.useEffect(() => {\n /** sync search */\n\n const doSearchSync = () => {\n const res = onSearchSync?.(debouncedSearchTerm);\n setOptions(transToGroupOption(res || [], groupBy));\n };\n\n const exec = async () => {\n if (!onSearchSync || !open) return;\n\n if (triggerSearchOnFocus) {\n doSearchSync();\n }\n\n if (debouncedSearchTerm) {\n doSearchSync();\n }\n };\n\n void exec();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [debouncedSearchTerm, groupBy, open, triggerSearchOnFocus]);\n\n React.useEffect(() => {\n /** async search */\n\n const doSearch = async () => {\n setIsLoading(true);\n const res = await onSearch?.(debouncedSearchTerm);\n setOptions(transToGroupOption(res || [], groupBy));\n setIsLoading(false);\n };\n\n const exec = async () => {\n if (!onSearch || !open) return;\n\n if (triggerSearchOnFocus) {\n await doSearch();\n }\n\n if (debouncedSearchTerm) {\n await doSearch();\n }\n };\n\n void exec();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [debouncedSearchTerm, groupBy, open, triggerSearchOnFocus]);\n\n const CreatableItem = () => {\n if (!creatable) return undefined;\n if (\n isOptionsExist(options, [{ value: inputValue, label: inputValue }]) ||\n selected.find((s) => s.value === inputValue)\n ) {\n return undefined;\n }\n\n const Item = (\n <CommandItem\n value={inputValue}\n className=\"cursor-pointer\"\n onMouseDown={(e) => {\n e.preventDefault();\n e.stopPropagation();\n }}\n onSelect={(value: string) => {\n if (selected.length >= maxSelected) {\n onMaxSelected?.(selected.length);\n return;\n }\n setInputValue(\"\");\n const newOptions = [...selected, { value, label: value }];\n setSelected(newOptions);\n onChange?.(newOptions);\n }}\n >\n {`Create \"${inputValue}\"`}\n </CommandItem>\n );\n\n // For normal creatable\n if (!onSearch && inputValue.length > 0) {\n return Item;\n }\n\n // For async search creatable. avoid showing creatable item before loading at first.\n if (onSearch && debouncedSearchTerm.length > 0 && !isLoading) {\n return Item;\n }\n\n return undefined;\n };\n\n const EmptyItem = React.useCallback(() => {\n if (!emptyIndicator) return undefined;\n\n // For async search that showing emptyIndicator\n if (onSearch && !creatable && Object.keys(options).length === 0) {\n return (\n <CommandItem value=\"-\" disabled>\n {emptyIndicator}\n </CommandItem>\n );\n }\n\n return <CommandEmpty>{emptyIndicator}</CommandEmpty>;\n }, [creatable, emptyIndicator, onSearch, options]);\n\n const selectables = React.useMemo<GroupOption>(\n () => removePickedOption(options, selected),\n [options, selected],\n );\n\n /** Avoid Creatable Selector freezing or lagging when paste a long string. */\n const commandFilter = React.useCallback(() => {\n if (commandProps?.filter) {\n return commandProps.filter;\n }\n\n if (creatable) {\n return (value: string, search: string) => {\n return value.toLowerCase().includes(search.toLowerCase()) ? 1 : -1;\n };\n }\n // Using default filter in `cmdk`. We don‘t have to provide it.\n return undefined;\n }, [creatable, commandProps?.filter]);\n\n return (\n <Command\n ref={dropdownRef}\n {...commandProps}\n onKeyDown={(e) => {\n handleKeyDown(e);\n commandProps?.onKeyDown?.(e);\n }}\n className={cn(\n \"h-auto overflow-visible bg-transparent\",\n commandProps?.className,\n )}\n shouldFilter={\n commandProps?.shouldFilter !== undefined\n ? commandProps.shouldFilter\n : !onSearch\n } // When onSearch is provided, we don‘t want to filter the options. You can still override it.\n filter={commandFilter()}\n >\n <div\n className={cn(\n \"border-input focus-within:border-primary focus-within:ring-ring relative rounded-md border text-sm transition-shadow focus-within:ring-4 focus-within:outline-hidden\",\n \"has-disabled:bg-muted\",\n \"has-disabled:text-muted-foreground\",\n {\n \"p-1\": selected.length !== 0,\n \"cursor-text\": !disabled && selected.length !== 0,\n },\n !hideClearAllButton && \"pe-9\",\n className,\n )}\n onClick={() => {\n if (disabled) return;\n inputRef?.current?.focus();\n }}\n >\n <div className=\"flex flex-wrap gap-1\">\n {selected.map((option) => {\n return (\n <div\n key={option.value}\n className={cn(\n \"animate-fadeIn bg-background text-secondary-foreground hover:bg-background relative inline-flex h-7 cursor-default items-center rounded-md border border-solid ps-2 pe-7 pl-2 text-xs font-medium transition-all disabled:cursor-not-allowed disabled:opacity-50 data-fixed:pe-2\",\n badgeClassName,\n )}\n data-fixed={option.fixed}\n data-disabled={disabled || undefined}\n >\n {option.label}\n <button\n type=\"button\"\n disabled={disabled || option.fixed}\n className={cn(\n \"text-muted-foreground/80 absolute -inset-y-px -end-px flex size-7 items-center justify-center rounded-e-lg border border-transparent p-0 outline-0 transition-colors\",\n \"hover:text-foreground\",\n \"focus-visible:outline\",\n \"focus-visible:outline-2\",\n \"focus-visible:outline-ring/70\",\n \"disabled:hover:text-muted-foreground disabled:cursor-not-allowed disabled:opacity-50\",\n )}\n onKeyDown={(e) => {\n if (e.key === \"Enter\") {\n handleUnselect(option);\n }\n }}\n onMouseDown={(e) => {\n e.preventDefault();\n e.stopPropagation();\n }}\n onClick={() => handleUnselect(option)}\n aria-label=\"Remove\"\n >\n <X size={14} strokeWidth={2} aria-hidden=\"true\" />\n </button>\n </div>\n );\n })}\n {/* Avoid having the \"Search\" Icon */}\n <CommandPrimitive.Input\n {...inputProps}\n ref={inputRef}\n value={inputValue}\n disabled={disabled}\n onValueChange={(value) => {\n setInputValue(value);\n inputProps?.onValueChange?.(value);\n }}\n onBlur={(event) => {\n if (!onScrollbar) {\n setOpen(false);\n }\n inputProps?.onBlur?.(event);\n }}\n onFocus={(event) => {\n setOpen(true);\n if (triggerSearchOnFocus) {\n onSearch?.(debouncedSearchTerm);\n }\n inputProps?.onFocus?.(event);\n }}\n placeholder={\n hidePlaceholderWhenSelected && selected.length !== 0\n ? \"\"\n : placeholder\n }\n className={cn(\n \"placeholder:text-muted-foreground flex-1 bg-transparent outline-hidden\",\n \"disabled:placeholder:text-transparent\",\n {\n \"w-full\": hidePlaceholderWhenSelected,\n \"px-3 py-2\": selected.length === 0,\n \"ml-1\": selected.length !== 0,\n },\n inputProps?.className,\n )}\n />\n <button\n type=\"button\"\n onClick={() => {\n setSelected(selected.filter((s) => s.fixed));\n onChange?.(selected.filter((s) => s.fixed));\n }}\n className={cn(\n \"text-muted-foreground/80\",\n \"absolute end-0 top-0 flex size-9 items-center justify-center rounded-lg border border-transparent transition-colors\",\n \"focus-visible:outline-2\",\n \"hover:text-foreground\",\n \"focus-visible:outline-ring/70\",\n (hideClearAllButton ||\n disabled ||\n selected.length < 1 ||\n selected.filter(({ fixed }) => fixed).length ===\n selected.length) &&\n \"hidden\",\n )}\n aria-label=\"Clear all\"\n >\n <X size={16} strokeWidth={2} aria-hidden=\"true\" />\n </button>\n </div>\n </div>\n <div className=\"relative\">\n <div\n className={cn(\n \"border-input absolute top-2 z-10 w-full overflow-hidden rounded-lg border shadow-sm\",\n \"data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95\",\n !open && \"hidden\",\n )}\n data-state={open ? \"open\" : \"closed\"}\n >\n {open && (\n <CommandList\n className=\"bg-popover text-popover-foreground shadow-lg outline-hidden\"\n onMouseLeave={() => {\n setOnScrollbar(false);\n }}\n onMouseEnter={() => {\n setOnScrollbar(true);\n }}\n onMouseUp={() => {\n inputRef?.current?.focus();\n }}\n >\n {onAddNewItem && (\n <>\n <CommandSeparator />\n <CommandGroup>\n <Button\n type=\"button\"\n variant=\"ghost\"\n className=\"w-full font-normal [&_div]:justify-start\"\n onClick={onAddNewItem}\n >\n <PlusIcon\n size={14}\n className=\"-ms-2 opacity-60\"\n aria-hidden=\"true\"\n />\n Thêm mới\n </Button>\n </CommandGroup>\n </>\n )}\n {isLoading ? (\n LoadingIndicator\n ) : (\n <React.Fragment>\n {EmptyItem()}\n {CreatableItem()}\n {!selectFirstItem && (\n <CommandItem value=\"-\" className=\"hidden\" />\n )}\n {Object.entries(selectables).map(([key, dropdowns]) => (\n <CommandGroup\n key={key}\n heading={key}\n className=\"h-full overflow-auto\"\n >\n {dropdowns.map((option) => {\n return (\n <CommandItem\n key={option.value}\n value={option.value}\n disabled={option.disable}\n onMouseDown={(e) => {\n e.preventDefault();\n e.stopPropagation();\n }}\n onSelect={() => {\n if (selected.length >= maxSelected) {\n onMaxSelected?.(selected.length);\n return;\n }\n setInputValue(\"\");\n const newOptions = [...selected, option];\n setSelected(newOptions);\n onChange?.(newOptions);\n }}\n className={cn(\n \"cursor-pointer\",\n option.disable &&\n \"cursor-not-allowed opacity-50\",\n )}\n >\n {option.label}\n </CommandItem>\n );\n })}\n </CommandGroup>\n ))}\n </React.Fragment>\n )}\n </CommandList>\n )}\n </div>\n </div>\n </Command>\n );\n },\n);\n\nMultipleSelector.displayName = \"MultipleSelector\";\nexport default MultipleSelector;\n"],"mappings":"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"}
|
package/dist/ui/popover.cjs.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"popover.cjs","names":["PopoverPrimitive","cn"],"sources":["../../packages/components/ui/popover.tsx"],"sourcesContent":["\"use client\";\nimport React from \"react\";\nimport { Popover as PopoverPrimitive } from \"radix-ui\";\n\nimport { cn } from \"@/lib/utils\";\n\nfunction Popover({\n ...props\n}: React.ComponentProps<typeof PopoverPrimitive.Root>) {\n return <PopoverPrimitive.Root data-slot=\"popover\" {...props} />;\n}\n\nfunction PopoverTrigger({\n ...props\n}: React.ComponentProps<typeof PopoverPrimitive.Trigger>) {\n return <PopoverPrimitive.Trigger data-slot=\"popover-trigger\" {...props} />;\n}\n\nfunction PopoverContent({\n className,\n align = \"start\",\n sideOffset = 4,\n children,\n ...props\n}: React.ComponentProps<typeof PopoverPrimitive.Content>) {\n return (\n <PopoverPrimitive.Portal>\n <PopoverPrimitive.Content\n data-slot=\"popover-content\"\n align={align}\n sideOffset={sideOffset}\n className={cn(\n \"bg-popover\",\n \"text-popover-foreground\",\n \"z-50 w-72\",\n \"origin-(--radix-popover-content-transform-origin)\",\n \"rounded-md border p-4 shadow-md outline-none\",\n \"data-[state=open]:animate-in\",\n \"data-[state=open]:fade-in-0\",\n \"data-[state=open]:zoom-in-95\",\n \"data-[state=closed]:animate-out\",\n \"data-[state=closed]:fade-out-0\",\n \"data-[state=closed]:zoom-out-95\",\n \"data-[side=bottom]:slide-in-from-top-2\",\n \"data-[side=left]:slide-in-from-right-2\",\n \"data-[side=right]:slide-in-from-left-2\",\n \"data-[side=top]:slide-in-from-bottom-2\",\n className,\n )}\n {...props}\n >\n {children}\n </PopoverPrimitive.Content>\n </PopoverPrimitive.Portal>\n );\n}\n\nfunction PopoverAnchor({\n ...props\n}: React.ComponentProps<typeof PopoverPrimitive.Anchor>) {\n return <PopoverPrimitive.Anchor data-slot=\"popover-anchor\" {...props} />;\n}\n\nexport { Popover, PopoverAnchor, PopoverContent, PopoverTrigger };\n"],"mappings":"kMAMA,SAAS,EAAQ,CACf,GAAG,EACgD,CAAE,CACrD,OAAO,EAAA,EAAA,KAACA,EAAAA,QAAiB,KAAA,CAAK,YAAU,UAAU,GAAI,GACvD,CAED,SAAS,EAAe,CACtB,GAAG,EACmD,CAAE,CACxD,OAAO,EAAA,EAAA,KAACA,EAAAA,QAAiB,QAAA,CAAQ,YAAU,kBAAkB,GAAI,GAClE,CAED,SAAS,EAAe,CACtB,YACA,QAAQ,QACR,aAAa,EACb,WACA,GAAG,EACmD,CAAE,CACxD,OACE,EAAA,EAAA,KAACA,EAAAA,QAAiB,OAAA,CAAA,UAChB,EAAA,EAAA,KAACA,EAAAA,QAAiB,QAAA,CAChB,YAAU,kBACH,QACK,aACZ,UAAWC,EAAAA,GACT,aACA,0BACA,YACA,oDACA,+CACA,+BACA,8BACA,+BACA,kCACA,iCACA,kCACA,yCACA,yCACA,yCACA,yCACA,GAEF,GAAI,EAEH,cAIR,CAED,SAAS,EAAc,CACrB,GAAG,EACkD,CAAE,CACvD,OAAO,EAAA,EAAA,KAACD,EAAAA,QAAiB,OAAA,CAAO,YAAU,iBAAiB,GAAI,GAChE"}
|
package/dist/ui/popover.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"popover.js","names":["PopoverPrimitive"],"sources":["../../packages/components/ui/popover.tsx"],"sourcesContent":["\"use client\";\nimport React from \"react\";\nimport { Popover as PopoverPrimitive } from \"radix-ui\";\n\nimport { cn } from \"@/lib/utils\";\n\nfunction Popover({\n ...props\n}: React.ComponentProps<typeof PopoverPrimitive.Root>) {\n return <PopoverPrimitive.Root data-slot=\"popover\" {...props} />;\n}\n\nfunction PopoverTrigger({\n ...props\n}: React.ComponentProps<typeof PopoverPrimitive.Trigger>) {\n return <PopoverPrimitive.Trigger data-slot=\"popover-trigger\" {...props} />;\n}\n\nfunction PopoverContent({\n className,\n align = \"start\",\n sideOffset = 4,\n children,\n ...props\n}: React.ComponentProps<typeof PopoverPrimitive.Content>) {\n return (\n <PopoverPrimitive.Portal>\n <PopoverPrimitive.Content\n data-slot=\"popover-content\"\n align={align}\n sideOffset={sideOffset}\n className={cn(\n \"bg-popover\",\n \"text-popover-foreground\",\n \"z-50 w-72\",\n \"origin-(--radix-popover-content-transform-origin)\",\n \"rounded-md border p-4 shadow-md outline-none\",\n \"data-[state=open]:animate-in\",\n \"data-[state=open]:fade-in-0\",\n \"data-[state=open]:zoom-in-95\",\n \"data-[state=closed]:animate-out\",\n \"data-[state=closed]:fade-out-0\",\n \"data-[state=closed]:zoom-out-95\",\n \"data-[side=bottom]:slide-in-from-top-2\",\n \"data-[side=left]:slide-in-from-right-2\",\n \"data-[side=right]:slide-in-from-left-2\",\n \"data-[side=top]:slide-in-from-bottom-2\",\n className,\n )}\n {...props}\n >\n {children}\n </PopoverPrimitive.Content>\n </PopoverPrimitive.Portal>\n );\n}\n\nfunction PopoverAnchor({\n ...props\n}: React.ComponentProps<typeof PopoverPrimitive.Anchor>) {\n return <PopoverPrimitive.Anchor data-slot=\"popover-anchor\" {...props} />;\n}\n\nexport { Popover, PopoverAnchor, PopoverContent, PopoverTrigger };\n"],"mappings":"uJAMA,SAAS,EAAQ,CACf,GAAG,EACgD,CAAE,CACrD,OAAO,EAACA,EAAiB,KAAA,CAAK,YAAU,UAAU,GAAI,GACvD,CAED,SAAS,EAAe,CACtB,GAAG,EACmD,CAAE,CACxD,OAAO,EAACA,EAAiB,QAAA,CAAQ,YAAU,kBAAkB,GAAI,GAClE,CAED,SAAS,EAAe,CACtB,YACA,QAAQ,QACR,aAAa,EACb,WACA,GAAG,EACmD,CAAE,CACxD,OACE,EAACA,EAAiB,OAAA,CAAA,SAChB,EAACA,EAAiB,QAAA,CAChB,YAAU,kBACH,QACK,aACZ,UAAW,EACT,aACA,0BACA,YACA,oDACA,+CACA,+BACA,8BACA,+BACA,kCACA,iCACA,kCACA,yCACA,yCACA,yCACA,yCACA,GAEF,GAAI,EAEH,cAIR,CAED,SAAS,EAAc,CACrB,GAAG,EACkD,CAAE,CACvD,OAAO,EAACA,EAAiB,OAAA,CAAO,YAAU,iBAAiB,GAAI,GAChE"}
|
package/dist/ui/switch.cjs.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"switch.cjs","names":["SwitchPrimitive","cn"],"sources":["../../packages/components/ui/switch.tsx"],"sourcesContent":["\"use client\";\nimport React from \"react\";\nimport { Switch as SwitchPrimitive } from \"radix-ui\";\n\nimport { cn } from \"@/lib/utils\";\n\nfunction Switch({\n className,\n ...props\n}: React.ComponentProps<typeof SwitchPrimitive.Root>) {\n return (\n <SwitchPrimitive.Root\n data-slot=\"switch\"\n className={cn(\n \"peer\",\n \"w-8 shrink-0 cursor-pointer items-center rounded-full border border-transparent shadow-xs transition-all outline-none\",\n \"inline-flex h-[20px]\",\n \"data-[state=checked]:bg-primary\",\n \"data-[state=unchecked]:bg-input\",\n \"dark:data-[state=unchecked]:bg-input/80\",\n \"focus-visible:border-ring\",\n \"focus-visible:ring-ring/50\",\n \"focus-visible:ring-4\",\n \"disabled:cursor-not-allowed\",\n \"disabled:opacity-50\",\n \"data-[state=unchecked]:border-input\",\n \"data-[state=unchecked]:[&_span]:bg-input\",\n \"data-[state=unchecked]:bg-transparent\",\n \"data-[state=unchecked]:[&_span]:size-4\",\n \"data-[state=unchecked]:[&_span]:translate-x-0.5\",\n \"data-[state=unchecked]:[&_span]:shadow-none\",\n \"data-[state=unchecked]:[&_span]:rtl:-translate-x-0.5\",\n className,\n )}\n {...props}\n >\n <SwitchPrimitive.Thumb\n data-slot=\"switch-thumb\"\n className={cn(\n \"bg-background\",\n \"pointer-events-none block size-4 rounded-full ring-0 transition-transform\",\n \"data-[state=checked]:translate-x-[calc(100%-3px)]\",\n \"data-[state=unchecked]:translate-x-0\",\n \"dark:data-[state=unchecked]:bg-foreground\",\n \"dark:data-[state=checked]:bg-primary-foreground\",\n )}\n />\n </SwitchPrimitive.Root>\n );\n}\n\nexport { Switch };\n"],"mappings":"kMAMA,SAAS,EAAO,CACd,YACA,GAAG,EAC+C,CAAE,CACpD,OACE,EAAA,EAAA,KAACA,EAAAA,OAAgB,KAAA,CACf,YAAU,SACV,UAAWC,EAAAA,GACT,OACA,wHACA,uBACA,kCACA,kCACA,0CACA,4BACA,6BACA,uBACA,8BACA,sBACA,sCACA,2CACA,wCACA,yCACA,kDACA,8CACA,uDACA,GAEF,GAAI,YAEJ,EAAA,EAAA,KAACD,EAAAA,OAAgB,MAAA,CACf,YAAU,eACV,UAAWC,EAAAA,GACT,gBACA,4EACA,oDACA,uCACA,4CACA,sDAKT"}
|
package/dist/ui/switch.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"switch.js","names":["SwitchPrimitive"],"sources":["../../packages/components/ui/switch.tsx"],"sourcesContent":["\"use client\";\nimport React from \"react\";\nimport { Switch as SwitchPrimitive } from \"radix-ui\";\n\nimport { cn } from \"@/lib/utils\";\n\nfunction Switch({\n className,\n ...props\n}: React.ComponentProps<typeof SwitchPrimitive.Root>) {\n return (\n <SwitchPrimitive.Root\n data-slot=\"switch\"\n className={cn(\n \"peer\",\n \"w-8 shrink-0 cursor-pointer items-center rounded-full border border-transparent shadow-xs transition-all outline-none\",\n \"inline-flex h-[20px]\",\n \"data-[state=checked]:bg-primary\",\n \"data-[state=unchecked]:bg-input\",\n \"dark:data-[state=unchecked]:bg-input/80\",\n \"focus-visible:border-ring\",\n \"focus-visible:ring-ring/50\",\n \"focus-visible:ring-4\",\n \"disabled:cursor-not-allowed\",\n \"disabled:opacity-50\",\n \"data-[state=unchecked]:border-input\",\n \"data-[state=unchecked]:[&_span]:bg-input\",\n \"data-[state=unchecked]:bg-transparent\",\n \"data-[state=unchecked]:[&_span]:size-4\",\n \"data-[state=unchecked]:[&_span]:translate-x-0.5\",\n \"data-[state=unchecked]:[&_span]:shadow-none\",\n \"data-[state=unchecked]:[&_span]:rtl:-translate-x-0.5\",\n className,\n )}\n {...props}\n >\n <SwitchPrimitive.Thumb\n data-slot=\"switch-thumb\"\n className={cn(\n \"bg-background\",\n \"pointer-events-none block size-4 rounded-full ring-0 transition-transform\",\n \"data-[state=checked]:translate-x-[calc(100%-3px)]\",\n \"data-[state=unchecked]:translate-x-0\",\n \"dark:data-[state=unchecked]:bg-foreground\",\n \"dark:data-[state=checked]:bg-primary-foreground\",\n )}\n />\n </SwitchPrimitive.Root>\n );\n}\n\nexport { Switch };\n"],"mappings":"sJAMA,SAAS,EAAO,CACd,YACA,GAAG,EAC+C,CAAE,CACpD,OACE,EAACA,EAAgB,KAAA,CACf,YAAU,SACV,UAAW,EACT,OACA,wHACA,uBACA,kCACA,kCACA,0CACA,4BACA,6BACA,uBACA,8BACA,sBACA,sCACA,2CACA,wCACA,yCACA,kDACA,8CACA,uDACA,GAEF,GAAI,WAEJ,EAACA,EAAgB,MAAA,CACf,YAAU,eACV,UAAW,EACT,gBACA,4EACA,oDACA,uCACA,4CACA,sDAKT"}
|
package/dist/ui/textarea.cjs.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"textarea.cjs","names":["React","cn"],"sources":["../../packages/components/ui/textarea.tsx"],"sourcesContent":["\"use client\";\nimport React from \"react\";\n\nimport { cn } from \"@/lib/utils\";\n\nfunction Textarea({\n className,\n onChange,\n onValueChange,\n ...props\n}: React.ComponentProps<\"textarea\"> & {\n onValueChange?: (value: string) => void;\n}) {\n const handleChange = React.useCallback(\n (e: React.ChangeEvent<HTMLTextAreaElement>) => {\n onChange?.(e);\n onValueChange?.(e.target.value);\n },\n [onChange, onValueChange],\n );\n return (\n <textarea\n data-slot=\"textarea\"\n className={cn(\n \"border-input caret-primary\",\n \"flex\",\n \"field-sizing-content\",\n \"min-h-16 w-full rounded-md border bg-transparent px-3 py-2 text-sm shadow-xs transition outline-none\",\n \"placeholder:text-muted-foreground\",\n \"focus-visible:border-ring\",\n \"focus-visible:ring-ring\",\n \"focus-visible:ring-4\",\n \"aria-invalid:ring-destructive/20\",\n \"aria-invalid:border-destructive\",\n \"dark:aria-invalid:ring-destructive/40\",\n \"dark:bg-input/30\",\n \"disabled:cursor-not-allowed\",\n \"disabled:opacity-50\",\n className,\n )}\n {...props}\n onChange={handleChange}\n />\n );\n}\n\nexport { Textarea };\n"],"mappings":"iKAKA,SAAS,EAAS,CAChB,YACA,WACA,gBACA,GAAG,EAGJ,CAAE,CACD,IAAM,EAAeA,EAAAA,QAAM,YACxB,GAA8C,CAC7C,IAAW,GACX,IAAgB,EAAE,OAAO,MAC1B,EACD,CAAC,EAAU,EAAc,EAE3B,OACE,EAAA,EAAA,KAAC,WAAA,CACC,YAAU,WACV,UAAWC,EAAAA,GACT,6BACA,OACA,uBACA,uGACA,oCACA,4BACA,0BACA,uBACA,mCACA,kCACA,wCACA,mBACA,8BACA,sBACA,GAEF,GAAI,EACJ,SAAU,GAGf"}
|
package/dist/ui/textarea.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"textarea.js","names":[],"sources":["../../packages/components/ui/textarea.tsx"],"sourcesContent":["\"use client\";\nimport React from \"react\";\n\nimport { cn } from \"@/lib/utils\";\n\nfunction Textarea({\n className,\n onChange,\n onValueChange,\n ...props\n}: React.ComponentProps<\"textarea\"> & {\n onValueChange?: (value: string) => void;\n}) {\n const handleChange = React.useCallback(\n (e: React.ChangeEvent<HTMLTextAreaElement>) => {\n onChange?.(e);\n onValueChange?.(e.target.value);\n },\n [onChange, onValueChange],\n );\n return (\n <textarea\n data-slot=\"textarea\"\n className={cn(\n \"border-input caret-primary\",\n \"flex\",\n \"field-sizing-content\",\n \"min-h-16 w-full rounded-md border bg-transparent px-3 py-2 text-sm shadow-xs transition outline-none\",\n \"placeholder:text-muted-foreground\",\n \"focus-visible:border-ring\",\n \"focus-visible:ring-ring\",\n \"focus-visible:ring-4\",\n \"aria-invalid:ring-destructive/20\",\n \"aria-invalid:border-destructive\",\n \"dark:aria-invalid:ring-destructive/40\",\n \"dark:bg-input/30\",\n \"disabled:cursor-not-allowed\",\n \"disabled:opacity-50\",\n className,\n )}\n {...props}\n onChange={handleChange}\n />\n );\n}\n\nexport { Textarea };\n"],"mappings":"oHAKA,SAAS,EAAS,CAChB,YACA,WACA,gBACA,GAAG,EAGJ,CAAE,CACD,IAAM,EAAe,EAAM,YACxB,GAA8C,CAC7C,IAAW,GACX,IAAgB,EAAE,OAAO,MAC1B,EACD,CAAC,EAAU,EAAc,EAE3B,OACE,EAAC,WAAA,CACC,YAAU,WACV,UAAW,EACT,6BACA,OACA,uBACA,uGACA,oCACA,4BACA,0BACA,uBACA,mCACA,kCACA,wCACA,mBACA,8BACA,sBACA,GAEF,GAAI,EACJ,SAAU,GAGf"}
|
package/dist/utils-BsjVK5EW.cjs
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
const e=require(`./chunk-CUT6urMc.cjs`),t=e.__toESM(require(`clsx`)),n=e.__toESM(require(`tailwind-merge`)),r=5*1024*1024;function i(e,t={}){let{decimals:n=0,sizeType:r=`normal`}=t,i=[`Bytes`,`KB`,`MB`,`GB`,`TB`],a=[`Bytes`,`KiB`,`MiB`,`GiB`,`TiB`];if(e===0)return`0 Byte`;let o=Math.floor(Math.log(e)/Math.log(1024));return`${(e/1024**o).toFixed(n)} ${r===`accurate`?a[o]??`Bytes`:i[o]??`Bytes`}`}function a(...e){return(0,n.twMerge)((0,t.clsx)(e))}Object.defineProperty(exports,`cn`,{enumerable:!0,get:function(){return a}}),Object.defineProperty(exports,`formatBytes`,{enumerable:!0,get:function(){return i}});
|
|
2
|
-
//# sourceMappingURL=utils-BsjVK5EW.cjs.map
|