erp-pro-ui 0.1.8 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +94 -0
- package/dist/ascii-text.cjs +1 -1
- package/dist/ascii-text.mjs +1 -1
- package/dist/background-gradient-animation.cjs +1 -1
- package/dist/background-gradient-animation.mjs +1 -1
- package/dist/button-hover-border-gradient.cjs +1 -1
- package/dist/button-hover-border-gradient.mjs +1 -1
- package/dist/button.cjs +1 -1
- package/dist/button.mjs +1 -1
- package/dist/calendar.cjs +1 -1
- package/dist/calendar.mjs +1 -1
- package/dist/carousel.cjs +1 -1
- package/dist/carousel.mjs +1 -1
- package/dist/charts.cjs +1 -1
- package/dist/charts.mjs +1 -1
- package/dist/chip.cjs +1 -1
- package/dist/chip.mjs +1 -1
- package/dist/chroma-grid.cjs +1 -1
- package/dist/chroma-grid.mjs +1 -1
- package/dist/chunks/{DropdownMenu-DOvo5pV_.cjs → DropdownMenu-BDrNYO-D.cjs} +6 -5
- package/dist/chunks/DropdownMenu-BDrNYO-D.cjs.map +1 -0
- package/dist/chunks/{DropdownMenu-C17Zqu_E.mjs → DropdownMenu-BtTOri-A.mjs} +6 -5
- package/dist/chunks/DropdownMenu-BtTOri-A.mjs.map +1 -0
- package/dist/chunks/{HoverBorderGradient-C5D6lGg0.cjs → HoverBorderGradient-9pfvBoHR.cjs} +2 -2
- package/dist/chunks/{HoverBorderGradient-C5D6lGg0.cjs.map → HoverBorderGradient-9pfvBoHR.cjs.map} +1 -1
- package/dist/chunks/{HoverBorderGradient-CduqqQgX.mjs → HoverBorderGradient-NbdXeLgC.mjs} +2 -2
- package/dist/chunks/{HoverBorderGradient-CduqqQgX.mjs.map → HoverBorderGradient-NbdXeLgC.mjs.map} +1 -1
- package/dist/chunks/SunToMoonButton-BkEfkElJ.mjs.map +1 -1
- package/dist/chunks/SunToMoonButton-jS4BJD9q.cjs.map +1 -1
- package/dist/chunks/{tooltip-PJaQa8_l.cjs → Tooltip-DD30yj3A.cjs} +1 -1
- package/dist/chunks/{tooltip-PJaQa8_l.cjs.map → Tooltip-DD30yj3A.cjs.map} +1 -1
- package/dist/chunks/{tooltip-CmB8xKOF.mjs → Tooltip-DK3B879v.mjs} +1 -1
- package/dist/chunks/{tooltip-CmB8xKOF.mjs.map → Tooltip-DK3B879v.mjs.map} +1 -1
- package/dist/chunks/animated-content-CLsFnjgr.cjs.map +1 -1
- package/dist/chunks/animated-content-bK6xp-vc.mjs.map +1 -1
- package/dist/chunks/{ascii-text-OnPOTd2I.cjs → ascii-text-BFnpVur6.cjs} +5 -3
- package/dist/chunks/{ascii-text-OnPOTd2I.cjs.map → ascii-text-BFnpVur6.cjs.map} +1 -1
- package/dist/chunks/{ascii-text-OBwVLFDC.mjs → ascii-text-Bdy4C5rU.mjs} +5 -3
- package/dist/chunks/{ascii-text-OBwVLFDC.mjs.map → ascii-text-Bdy4C5rU.mjs.map} +1 -1
- package/dist/chunks/{background-gradient-animation-DpKJ3ecq.mjs → background-gradient-animation-BR9wx6Z8.mjs} +2 -2
- package/dist/chunks/{background-gradient-animation-DpKJ3ecq.mjs.map → background-gradient-animation-BR9wx6Z8.mjs.map} +1 -1
- package/dist/chunks/{background-gradient-animation-II9hdrgB.cjs → background-gradient-animation-CiNdmA61.cjs} +2 -2
- package/dist/chunks/{background-gradient-animation-II9hdrgB.cjs.map → background-gradient-animation-CiNdmA61.cjs.map} +1 -1
- package/dist/chunks/{button-DddUhuR-.mjs → button-A6UTvrOu.mjs} +2 -2
- package/dist/chunks/{button-DddUhuR-.mjs.map → button-A6UTvrOu.mjs.map} +1 -1
- package/dist/chunks/{button-xqernofO.cjs → button-C4MXPxsC.cjs} +2 -2
- package/dist/chunks/{button-xqernofO.cjs.map → button-C4MXPxsC.cjs.map} +1 -1
- package/dist/chunks/{button-hover-border-gradient-DFppVRI4.mjs → button-hover-border-gradient-DnFvjNNw.mjs} +2 -2
- package/dist/chunks/{button-hover-border-gradient-DFppVRI4.mjs.map → button-hover-border-gradient-DnFvjNNw.mjs.map} +1 -1
- package/dist/chunks/{button-hover-border-gradient-DX2lBG5C.cjs → button-hover-border-gradient-ssmwU5-U.cjs} +2 -2
- package/dist/chunks/{button-hover-border-gradient-DX2lBG5C.cjs.map → button-hover-border-gradient-ssmwU5-U.cjs.map} +1 -1
- package/dist/chunks/{calendar-BOBm3dFA.mjs → calendar-5XzPqKbE.mjs} +4 -4
- package/dist/chunks/calendar-5XzPqKbE.mjs.map +1 -0
- package/dist/chunks/{calendar-DJkfDhQA.cjs → calendar-CQJgQ5H_.cjs} +4 -4
- package/dist/chunks/calendar-CQJgQ5H_.cjs.map +1 -0
- package/dist/chunks/{carousel-F4drTOr6.cjs → carousel-Cv0m1Pp5.cjs} +2 -2
- package/dist/chunks/{carousel-DUqOaYvs.mjs.map → carousel-Cv0m1Pp5.cjs.map} +1 -1
- package/dist/chunks/{carousel-DUqOaYvs.mjs → carousel-Dd4rp-jr.mjs} +2 -2
- package/dist/chunks/{carousel-F4drTOr6.cjs.map → carousel-Dd4rp-jr.mjs.map} +1 -1
- package/dist/chunks/{charts-CZEYcr6X.cjs → charts-BmIV-mJy.cjs} +41 -10
- package/dist/chunks/charts-BmIV-mJy.cjs.map +1 -0
- package/dist/chunks/{charts-C-Qee_JY.mjs → charts-DkVu0rFc.mjs} +41 -10
- package/dist/chunks/charts-DkVu0rFc.mjs.map +1 -0
- package/dist/chunks/{chip-CMs73sc5.cjs → chip-B0YzBwkz.cjs} +10 -7
- package/dist/chunks/chip-B0YzBwkz.cjs.map +1 -0
- package/dist/chunks/{chip-BFg3DJx6.mjs → chip-CqcdcSs2.mjs} +10 -7
- package/dist/chunks/chip-CqcdcSs2.mjs.map +1 -0
- package/dist/chunks/{chroma-grid-tJX7CzCS.cjs → chroma-grid-DcZ9f4Ui.cjs} +2 -2
- package/dist/chunks/{chroma-grid-tJX7CzCS.cjs.map → chroma-grid-DcZ9f4Ui.cjs.map} +1 -1
- package/dist/chunks/{chroma-grid-DlY9hIRI.mjs → chroma-grid-opB2DBtS.mjs} +2 -2
- package/dist/chunks/{chroma-grid-DlY9hIRI.mjs.map → chroma-grid-opB2DBtS.mjs.map} +1 -1
- package/dist/chunks/color-palette-C3lesasJ.mjs +329 -0
- package/dist/chunks/color-palette-C3lesasJ.mjs.map +1 -0
- package/dist/chunks/color-palette-pLh6En3n.cjs +384 -0
- package/dist/chunks/color-palette-pLh6En3n.cjs.map +1 -0
- package/dist/chunks/{combobox-Bcwi33Qx.mjs → combobox-B6yk5U82.mjs} +6 -6
- package/dist/chunks/combobox-B6yk5U82.mjs.map +1 -0
- package/dist/chunks/{combobox-DRiHHhXL.cjs → combobox-CtNrGmuR.cjs} +6 -6
- package/dist/chunks/combobox-CtNrGmuR.cjs.map +1 -0
- package/dist/chunks/{data-table-Biom5rvs.mjs → data-table-Dtf6lKpp.mjs} +19 -19
- package/dist/chunks/data-table-Dtf6lKpp.mjs.map +1 -0
- package/dist/chunks/{data-table-D0BD2sFz.cjs → data-table-fAEuevPn.cjs} +20 -20
- package/dist/chunks/data-table-fAEuevPn.cjs.map +1 -0
- package/dist/chunks/{date-picker-CXGwnrLr.mjs → date-picker-BmQ0rgwH.mjs} +2 -2
- package/dist/chunks/{date-picker-CXGwnrLr.mjs.map → date-picker-BmQ0rgwH.mjs.map} +1 -1
- package/dist/chunks/{date-picker-Cw_tZGuk.cjs → date-picker-qpUZMtZC.cjs} +2 -2
- package/dist/chunks/{date-picker-Cw_tZGuk.cjs.map → date-picker-qpUZMtZC.cjs.map} +1 -1
- package/dist/chunks/dialog-CanVyiAD.mjs.map +1 -1
- package/dist/chunks/dialog-fffx1-4D.cjs.map +1 -1
- package/dist/chunks/{drawer-DTRnKChF.cjs → drawer-D07dGN6R.cjs} +6 -6
- package/dist/chunks/drawer-D07dGN6R.cjs.map +1 -0
- package/dist/chunks/{drawer-BJsBK6cP.mjs → drawer-DaoAXL-w.mjs} +6 -6
- package/dist/chunks/drawer-DaoAXL-w.mjs.map +1 -0
- package/dist/chunks/{form-CvNNjA1i.mjs → form-CtZ6U-_B.mjs} +2 -2
- package/dist/chunks/{form-CvNNjA1i.mjs.map → form-CtZ6U-_B.mjs.map} +1 -1
- package/dist/chunks/{form-C_JxqsSZ.cjs → form-X6Vyaavl.cjs} +2 -2
- package/dist/chunks/{form-C_JxqsSZ.cjs.map → form-X6Vyaavl.cjs.map} +1 -1
- package/dist/chunks/{gradual-blur-BB-8oKX6.cjs → gradual-blur-C6NOnjTw.cjs} +2 -2
- package/dist/chunks/{gradual-blur-BB-8oKX6.cjs.map → gradual-blur-C6NOnjTw.cjs.map} +1 -1
- package/dist/chunks/{gradual-blur-BR06yO3Y.mjs → gradual-blur-DXfxpCdB.mjs} +2 -2
- package/dist/chunks/{gradual-blur-BR06yO3Y.mjs.map → gradual-blur-DXfxpCdB.mjs.map} +1 -1
- package/dist/chunks/{input-Dox16Ozo.mjs → input-Bqo9Q5zF.mjs} +34 -13
- package/dist/chunks/input-Bqo9Q5zF.mjs.map +1 -0
- package/dist/chunks/{input-T4OlFhBc.cjs → input-DkCPyWXi.cjs} +34 -13
- package/dist/chunks/input-DkCPyWXi.cjs.map +1 -0
- package/dist/chunks/{label-CxmbGh0l.cjs → label-BKzqfAAq.cjs} +2 -2
- package/dist/chunks/{label-CxmbGh0l.cjs.map → label-BKzqfAAq.cjs.map} +1 -1
- package/dist/chunks/{label-C1Ekt3j2.mjs → label-Drxg0cG2.mjs} +2 -2
- package/dist/chunks/{label-C1Ekt3j2.mjs.map → label-Drxg0cG2.mjs.map} +1 -1
- package/dist/chunks/loading-BiM4mKh6.cjs.map +1 -1
- package/dist/chunks/loading-Dtosnb4A.mjs.map +1 -1
- package/dist/chunks/{multi-select-combobox-BzqYLVpV.cjs → multi-select-combobox-C0DoDzxQ.cjs} +6 -6
- package/dist/chunks/multi-select-combobox-C0DoDzxQ.cjs.map +1 -0
- package/dist/chunks/{multi-select-combobox-BrFtvCrS.mjs → multi-select-combobox-Do23ZfOQ.mjs} +6 -6
- package/dist/chunks/multi-select-combobox-Do23ZfOQ.mjs.map +1 -0
- package/dist/chunks/otp-input-CkhV-sGl.cjs.map +1 -1
- package/dist/chunks/otp-input-JOysxKfD.mjs.map +1 -1
- package/dist/chunks/{password-strength-meter-BEx94cfy.mjs → password-strength-meter-BsvqQBAg.mjs} +3 -3
- package/dist/chunks/{password-strength-meter-BEx94cfy.mjs.map → password-strength-meter-BsvqQBAg.mjs.map} +1 -1
- package/dist/chunks/{password-strength-meter-BNnmSgLh.cjs → password-strength-meter-DCi_BP7e.cjs} +3 -3
- package/dist/chunks/{password-strength-meter-BNnmSgLh.cjs.map → password-strength-meter-DCi_BP7e.cjs.map} +1 -1
- package/dist/chunks/{progress-bar-DS8KZ7eO.cjs → progress-bar-CYaBO_lS.cjs} +2 -2
- package/dist/chunks/{progress-bar-DS8KZ7eO.cjs.map → progress-bar-CYaBO_lS.cjs.map} +1 -1
- package/dist/chunks/{progress-bar-C9O0tuZf.mjs → progress-bar-DQ5ZKk2Y.mjs} +2 -2
- package/dist/chunks/{progress-bar-C9O0tuZf.mjs.map → progress-bar-DQ5ZKk2Y.mjs.map} +1 -1
- package/dist/chunks/radio-CuiM_gDv.mjs +50 -0
- package/dist/chunks/radio-CuiM_gDv.mjs.map +1 -0
- package/dist/chunks/radio-zx9xEW_C.cjs +56 -0
- package/dist/chunks/radio-zx9xEW_C.cjs.map +1 -0
- package/dist/chunks/{select-D0GOBB-b.mjs → select-CUaSNR09.mjs} +6 -6
- package/dist/chunks/select-CUaSNR09.mjs.map +1 -0
- package/dist/chunks/{select-CORFYTvs.cjs → select-bZ9WqLOc.cjs} +6 -6
- package/dist/chunks/select-bZ9WqLOc.cjs.map +1 -0
- package/dist/chunks/{sidebar-BrOLz89T.mjs → sidebar-DYEDFV2u.mjs} +242 -231
- package/dist/chunks/sidebar-DYEDFV2u.mjs.map +1 -0
- package/dist/chunks/{sidebar-D9D651F6.cjs → sidebar-Kkr45nuN.cjs} +241 -230
- package/dist/chunks/sidebar-Kkr45nuN.cjs.map +1 -0
- package/dist/chunks/{skeleton-wQOE-pRg.cjs → skeleton-DCBGLNAZ.cjs} +2 -2
- package/dist/chunks/{skeleton-wQOE-pRg.cjs.map → skeleton-DCBGLNAZ.cjs.map} +1 -1
- package/dist/chunks/{skeleton-BdijDxP6.mjs → skeleton-nH1eAN96.mjs} +2 -2
- package/dist/chunks/{skeleton-BdijDxP6.mjs.map → skeleton-nH1eAN96.mjs.map} +1 -1
- package/dist/chunks/{splash-cursor-CCi5n3O-.cjs → splash-cursor-BqG7ClsJ.cjs} +2 -2
- package/dist/chunks/{splash-cursor-CCi5n3O-.cjs.map → splash-cursor-BqG7ClsJ.cjs.map} +1 -1
- package/dist/chunks/{splash-cursor-CDHTm5vA.mjs → splash-cursor-N4FdnkOa.mjs} +2 -2
- package/dist/chunks/{splash-cursor-CDHTm5vA.mjs.map → splash-cursor-N4FdnkOa.mjs.map} +1 -1
- package/dist/chunks/{spotlight-card-Bh7KG0vZ.cjs → spotlight-card-BmsqC7wm.cjs} +2 -2
- package/dist/chunks/{spotlight-card-Bh7KG0vZ.cjs.map → spotlight-card-BmsqC7wm.cjs.map} +1 -1
- package/dist/chunks/{spotlight-card-D0uTxfPZ.mjs → spotlight-card-D9Z3nTmb.mjs} +2 -2
- package/dist/chunks/{spotlight-card-D0uTxfPZ.mjs.map → spotlight-card-D9Z3nTmb.mjs.map} +1 -1
- package/dist/chunks/{stepper-Z_7ugZJN.cjs → stepper-DepvEGfr.cjs} +4 -4
- package/dist/chunks/{stepper-Z_7ugZJN.cjs.map → stepper-DepvEGfr.cjs.map} +1 -1
- package/dist/chunks/{stepper-BMKxjCdm.mjs → stepper-Jv5OS1nY.mjs} +4 -4
- package/dist/chunks/{stepper-BMKxjCdm.mjs.map → stepper-Jv5OS1nY.mjs.map} +1 -1
- package/dist/chunks/{sun-to-moon-button-DcRX0obV.mjs → sun-to-moon-button-BJtBEaa3.mjs} +70 -51
- package/dist/chunks/sun-to-moon-button-BJtBEaa3.mjs.map +1 -0
- package/dist/chunks/{sun-to-moon-button-De0_Sf01.cjs → sun-to-moon-button-PwgTPsTW.cjs} +70 -51
- package/dist/chunks/sun-to-moon-button-PwgTPsTW.cjs.map +1 -0
- package/dist/chunks/{switch-DPyzVrNh.cjs → switch-X3l8xnle.cjs} +10 -29
- package/dist/chunks/switch-X3l8xnle.cjs.map +1 -0
- package/dist/chunks/{switch-C1gKE0m0.mjs → switch-iPsN1NS2.mjs} +10 -29
- package/dist/chunks/switch-iPsN1NS2.mjs.map +1 -0
- package/dist/chunks/{textarea-BY5-J9No.mjs → textarea-Bdo-Trvi.mjs} +2 -2
- package/dist/chunks/{textarea-BY5-J9No.mjs.map → textarea-Bdo-Trvi.mjs.map} +1 -1
- package/dist/chunks/{textarea-D-oBQ3IZ.cjs → textarea-CGRl2hrM.cjs} +2 -2
- package/dist/chunks/{textarea-D-oBQ3IZ.cjs.map → textarea-CGRl2hrM.cjs.map} +1 -1
- package/dist/chunks/toast-BcBidy5n.mjs.map +1 -1
- package/dist/chunks/toast-DiFgv3IL.cjs.map +1 -1
- package/dist/chunks/{truncated-text-istgJRUq.cjs → truncated-text-BIXqNfOL.cjs} +2 -2
- package/dist/chunks/{truncated-text-istgJRUq.cjs.map → truncated-text-BIXqNfOL.cjs.map} +1 -1
- package/dist/chunks/{truncated-text-DTgks5yS.mjs → truncated-text-C9t9o9IA.mjs} +2 -2
- package/dist/chunks/{truncated-text-DTgks5yS.mjs.map → truncated-text-C9t9o9IA.mjs.map} +1 -1
- package/dist/chunks/{typography-C_IanU4b.mjs → typography-Ct-jDJP3.mjs} +2 -2
- package/dist/chunks/{typography-C_IanU4b.mjs.map → typography-Ct-jDJP3.mjs.map} +1 -1
- package/dist/chunks/{typography-DUD6Dzd5.cjs → typography-LwwY_MOy.cjs} +2 -2
- package/dist/chunks/{typography-DUD6Dzd5.cjs.map → typography-LwwY_MOy.cjs.map} +1 -1
- package/dist/chunks/{utils-ati1KkDb.mjs → utils-7S0u48mU.mjs} +1339 -1
- package/dist/chunks/{utils-B4SmmY4J.cjs.map → utils-7S0u48mU.mjs.map} +1 -1
- package/dist/chunks/{utils-B4SmmY4J.cjs → utils-LRbEQHYs.cjs} +1339 -1
- package/dist/chunks/{utils-ati1KkDb.mjs.map → utils-LRbEQHYs.cjs.map} +1 -1
- package/dist/color-palette.cjs +9 -1
- package/dist/color-palette.mjs +2 -2
- package/dist/combobox.cjs +1 -1
- package/dist/combobox.mjs +1 -1
- package/dist/components/data-display/charts/BarChart.d.ts +5 -0
- package/dist/components/data-display/charts/BarChart.d.ts.map +1 -1
- package/dist/components/data-display/chip/Chip.d.ts +1 -1
- package/dist/components/data-display/chip/Chip.d.ts.map +1 -1
- package/dist/components/data-display/color-palette/ColorPalette.d.ts +24 -16
- package/dist/components/data-display/color-palette/ColorPalette.d.ts.map +1 -1
- package/dist/components/data-display/color-palette/index.d.ts +2 -1
- package/dist/components/data-display/color-palette/index.d.ts.map +1 -1
- package/dist/components/data-display/dashboard-cards/ChartCard.d.ts +15 -0
- package/dist/components/data-display/dashboard-cards/ChartCard.d.ts.map +1 -0
- package/dist/components/data-display/dashboard-cards/StatCard.d.ts +42 -0
- package/dist/components/data-display/dashboard-cards/StatCard.d.ts.map +1 -0
- package/dist/components/data-display/dashboard-cards/TopProductsCard.d.ts +17 -0
- package/dist/components/data-display/dashboard-cards/TopProductsCard.d.ts.map +1 -0
- package/dist/components/data-display/dashboard-cards/index.d.ts +7 -0
- package/dist/components/data-display/dashboard-cards/index.d.ts.map +1 -0
- package/dist/components/effects/sun-to-moon-button/ThemeSwitcherButtons.d.ts +16 -1
- package/dist/components/effects/sun-to-moon-button/ThemeSwitcherButtons.d.ts.map +1 -1
- package/dist/components/effects/sun-to-moon-button/index.d.ts +1 -1
- package/dist/components/effects/sun-to-moon-button/index.d.ts.map +1 -1
- package/dist/components/forms/input/Input.d.ts.map +1 -1
- package/dist/components/forms/input/types.d.ts +2 -0
- package/dist/components/forms/input/types.d.ts.map +1 -1
- package/dist/components/forms/radio/Radio.d.ts.map +1 -1
- package/dist/components/forms/switch/Switch.d.ts.map +1 -1
- package/dist/components/navigation/sidebar/DashboardSidebarShell.d.ts +26 -6
- package/dist/components/navigation/sidebar/DashboardSidebarShell.d.ts.map +1 -1
- package/dist/components/navigation/sidebar/index.d.ts +1 -0
- package/dist/components/navigation/sidebar/index.d.ts.map +1 -1
- package/dist/components/overlays/dropdown-menu/DropdownMenu.d.ts +1 -1
- package/dist/components/overlays/dropdown-menu/DropdownMenu.d.ts.map +1 -1
- package/dist/components/overlays/dropdown-menu/types.d.ts +1 -0
- package/dist/components/overlays/dropdown-menu/types.d.ts.map +1 -1
- package/dist/data-table.cjs +1 -1
- package/dist/data-table.mjs +1 -1
- package/dist/date-picker.cjs +1 -1
- package/dist/date-picker.mjs +1 -1
- package/dist/docs.cjs.map +1 -1
- package/dist/docs.mjs.map +1 -1
- package/dist/drawer.cjs +1 -1
- package/dist/drawer.mjs +1 -1
- package/dist/form.cjs +1 -1
- package/dist/form.mjs +1 -1
- package/dist/gradual-blur.cjs +1 -1
- package/dist/gradual-blur.mjs +1 -1
- package/dist/hover-border-gradient.cjs +1 -1
- package/dist/hover-border-gradient.mjs +1 -1
- package/dist/index.cjs +325 -38
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +5 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.mjs +315 -39
- package/dist/index.mjs.map +1 -1
- package/dist/input.cjs +1 -1
- package/dist/input.mjs +1 -1
- package/dist/label.cjs +1 -1
- package/dist/label.mjs +1 -1
- package/dist/multi-select-combobox.cjs +1 -1
- package/dist/multi-select-combobox.mjs +1 -1
- package/dist/password-strength-meter.cjs +1 -1
- package/dist/password-strength-meter.mjs +1 -1
- package/dist/progress-bar.cjs +1 -1
- package/dist/progress-bar.mjs +1 -1
- package/dist/radio.cjs +1 -1
- package/dist/radio.mjs +1 -1
- package/dist/select.cjs +1 -1
- package/dist/select.mjs +1 -1
- package/dist/sidebar.cjs +1 -1
- package/dist/sidebar.mjs +1 -1
- package/dist/skeleton.cjs +1 -1
- package/dist/skeleton.mjs +1 -1
- package/dist/splash-cursor.cjs +1 -1
- package/dist/splash-cursor.mjs +1 -1
- package/dist/spotlight-card.cjs +1 -1
- package/dist/spotlight-card.mjs +1 -1
- package/dist/stepper.cjs +1 -1
- package/dist/stepper.mjs +1 -1
- package/dist/sun-to-moon-button.cjs +1 -1
- package/dist/sun-to-moon-button.mjs +1 -1
- package/dist/switch.cjs +1 -1
- package/dist/switch.mjs +1 -1
- package/dist/textarea.cjs +1 -1
- package/dist/textarea.mjs +1 -1
- package/dist/tooltip.cjs +2 -2
- package/dist/tooltip.mjs +1 -1
- package/dist/truncated-text.cjs +1 -1
- package/dist/truncated-text.mjs +1 -1
- package/dist/typography.cjs +1 -1
- package/dist/typography.mjs +1 -1
- package/dist/utils.cjs +1 -1
- package/dist/utils.mjs +1 -1
- package/package.json +8 -8
- package/dist/chunks/DropdownMenu-C17Zqu_E.mjs.map +0 -1
- package/dist/chunks/DropdownMenu-DOvo5pV_.cjs.map +0 -1
- package/dist/chunks/calendar-BOBm3dFA.mjs.map +0 -1
- package/dist/chunks/calendar-DJkfDhQA.cjs.map +0 -1
- package/dist/chunks/charts-C-Qee_JY.mjs.map +0 -1
- package/dist/chunks/charts-CZEYcr6X.cjs.map +0 -1
- package/dist/chunks/chip-BFg3DJx6.mjs.map +0 -1
- package/dist/chunks/chip-CMs73sc5.cjs.map +0 -1
- package/dist/chunks/color-palette-BmQC14gE.cjs +0 -789
- package/dist/chunks/color-palette-BmQC14gE.cjs.map +0 -1
- package/dist/chunks/color-palette-DnX1sODj.mjs +0 -782
- package/dist/chunks/color-palette-DnX1sODj.mjs.map +0 -1
- package/dist/chunks/combobox-Bcwi33Qx.mjs.map +0 -1
- package/dist/chunks/combobox-DRiHHhXL.cjs.map +0 -1
- package/dist/chunks/data-table-Biom5rvs.mjs.map +0 -1
- package/dist/chunks/data-table-D0BD2sFz.cjs.map +0 -1
- package/dist/chunks/drawer-BJsBK6cP.mjs.map +0 -1
- package/dist/chunks/drawer-DTRnKChF.cjs.map +0 -1
- package/dist/chunks/input-Dox16Ozo.mjs.map +0 -1
- package/dist/chunks/input-T4OlFhBc.cjs.map +0 -1
- package/dist/chunks/multi-select-combobox-BrFtvCrS.mjs.map +0 -1
- package/dist/chunks/multi-select-combobox-BzqYLVpV.cjs.map +0 -1
- package/dist/chunks/radio-BiD1ofmq.cjs +0 -50
- package/dist/chunks/radio-BiD1ofmq.cjs.map +0 -1
- package/dist/chunks/radio-C7Eg3FEp.mjs +0 -44
- package/dist/chunks/radio-C7Eg3FEp.mjs.map +0 -1
- package/dist/chunks/select-CORFYTvs.cjs.map +0 -1
- package/dist/chunks/select-D0GOBB-b.mjs.map +0 -1
- package/dist/chunks/sidebar-BrOLz89T.mjs.map +0 -1
- package/dist/chunks/sidebar-D9D651F6.cjs.map +0 -1
- package/dist/chunks/sun-to-moon-button-DcRX0obV.mjs.map +0 -1
- package/dist/chunks/sun-to-moon-button-De0_Sf01.cjs.map +0 -1
- package/dist/chunks/switch-C1gKE0m0.mjs.map +0 -1
- package/dist/chunks/switch-DPyzVrNh.cjs.map +0 -1
package/dist/index.mjs
CHANGED
|
@@ -1,57 +1,57 @@
|
|
|
1
1
|
import { n as useThemeContext, t as ThemeProvider } from "./chunks/theme-koPrLKQv.mjs";
|
|
2
|
-
import { n as mergeClassNames, r as generateUniqueKey, t as validateEmail } from "./chunks/utils-
|
|
3
|
-
import { a as ThinBreakdownBar, c as NeonLineChart, d as getChartPalette, i as AreaChart, l as chartColorTokens, n as PositiveNegativeBarChart, o as StackedBarChart, r as BarChart, s as MiniNeonSparkline, t as PieChart, u as getChartColorVar } from "./chunks/charts-
|
|
4
|
-
import { t as TruncatedText } from "./chunks/truncated-text-
|
|
2
|
+
import { n as mergeClassNames, r as generateUniqueKey, t as validateEmail } from "./chunks/utils-7S0u48mU.mjs";
|
|
3
|
+
import { a as ThinBreakdownBar, c as NeonLineChart, d as getChartPalette, i as AreaChart, l as chartColorTokens, n as PositiveNegativeBarChart, o as StackedBarChart, r as BarChart, s as MiniNeonSparkline, t as PieChart, u as getChartColorVar } from "./chunks/charts-DkVu0rFc.mjs";
|
|
4
|
+
import { t as TruncatedText } from "./chunks/truncated-text-C9t9o9IA.mjs";
|
|
5
5
|
import { A as ChevronUpIcon, B as BriefcaseBusinessIcon, C as EyeOffIcon, D as ArrowUpDownIcon, E as EllipsisIcon, F as ArrowLeftIcon, G as ShoppingCartIcon, H as SearchIcon, I as ArrowUpIcon, J as CheckIcon, K as HomeIcon, L as ArrowDownIcon, M as ChevronLeftIcon, N as ChevronDownIcon, O as ChevronsRightIcon, P as ArrowRightIcon, R as TrashIcon, S as BellIcon, T as EllipsisVerticalIcon, U as PackageIcon, V as UserIcon, W as SettingsIcon, _ as AlertTriangleIcon, a as RefreshIcon, b as DragIcon, c as MailIcon, d as FilterXIcon, f as FilterProfileIcon, g as AudioWaveIcon, h as CheckCircleIcon, i as RingLoaderIcon, j as ChevronRightIcon, k as ChevronsLeftIcon, l as LoaderIcon, m as ColumnsIcon, n as XCircleIcon, o as QuestionCircleIcon, p as FilterIcon, q as CloseIcon, r as SelectionIcon, s as PlayIcon, t as ZapIcon, u as InfoCircleIcon, v as AlertCircleIcon, w as EyeIcon, x as FullScreenIcon, y as CircleIcon, z as ActivityIcon } from "./chunks/icons-bx3nrxNv.mjs";
|
|
6
6
|
import { t as Accordion } from "./chunks/accordion-6zxJUYXr.mjs";
|
|
7
7
|
import { t as Alert } from "./chunks/alert-XVmYJgds.mjs";
|
|
8
8
|
import { t as AnimatedContent } from "./chunks/animated-content-bK6xp-vc.mjs";
|
|
9
|
-
import { n as BackgroundGradientAnimation } from "./chunks/background-gradient-animation-
|
|
10
|
-
import { t as Button } from "./chunks/button-
|
|
11
|
-
import { t as HoverBorderGradient } from "./chunks/HoverBorderGradient-
|
|
12
|
-
import { t as ButtonHoverBorderGradient } from "./chunks/button-hover-border-gradient-
|
|
13
|
-
import { t as DropdownMenu } from "./chunks/DropdownMenu-
|
|
14
|
-
import { t as Select } from "./chunks/select-
|
|
15
|
-
import { t as Calendar } from "./chunks/calendar-
|
|
9
|
+
import { n as BackgroundGradientAnimation } from "./chunks/background-gradient-animation-BR9wx6Z8.mjs";
|
|
10
|
+
import { t as Button } from "./chunks/button-A6UTvrOu.mjs";
|
|
11
|
+
import { t as HoverBorderGradient } from "./chunks/HoverBorderGradient-NbdXeLgC.mjs";
|
|
12
|
+
import { t as ButtonHoverBorderGradient } from "./chunks/button-hover-border-gradient-DnFvjNNw.mjs";
|
|
13
|
+
import { t as DropdownMenu } from "./chunks/DropdownMenu-BtTOri-A.mjs";
|
|
14
|
+
import { t as Select } from "./chunks/select-CUaSNR09.mjs";
|
|
15
|
+
import { t as Calendar } from "./chunks/calendar-5XzPqKbE.mjs";
|
|
16
16
|
import { t as Card } from "./chunks/card-BId1_zHw.mjs";
|
|
17
|
-
import { t as Carousel } from "./chunks/carousel-
|
|
18
|
-
import { a as HamburgerIcon, i as NavLink, n as Sidebar, r as SidebarLinks, t as DashboardSidebarShell } from "./chunks/sidebar-
|
|
19
|
-
import { t as Typography } from "./chunks/typography-
|
|
20
|
-
import { t as ASCIIText } from "./chunks/ascii-text-
|
|
21
|
-
import { t as ChromaGrid } from "./chunks/chroma-grid-
|
|
22
|
-
import { t as GradualBlur } from "./chunks/gradual-blur-
|
|
17
|
+
import { t as Carousel } from "./chunks/carousel-Dd4rp-jr.mjs";
|
|
18
|
+
import { a as HamburgerIcon, i as NavLink, n as Sidebar, r as SidebarLinks, t as DashboardSidebarShell } from "./chunks/sidebar-DYEDFV2u.mjs";
|
|
19
|
+
import { t as Typography } from "./chunks/typography-Ct-jDJP3.mjs";
|
|
20
|
+
import { t as ASCIIText } from "./chunks/ascii-text-Bdy4C5rU.mjs";
|
|
21
|
+
import { t as ChromaGrid } from "./chunks/chroma-grid-opB2DBtS.mjs";
|
|
22
|
+
import { t as GradualBlur } from "./chunks/gradual-blur-DXfxpCdB.mjs";
|
|
23
23
|
import "./hover-border-gradient.mjs";
|
|
24
|
-
import { t as SplashCursor } from "./chunks/splash-cursor-
|
|
25
|
-
import { t as SpotlightCard } from "./chunks/spotlight-card-
|
|
24
|
+
import { t as SplashCursor } from "./chunks/splash-cursor-N4FdnkOa.mjs";
|
|
25
|
+
import { t as SpotlightCard } from "./chunks/spotlight-card-D9Z3nTmb.mjs";
|
|
26
26
|
import { t as SunToMoonButton } from "./chunks/SunToMoonButton-BkEfkElJ.mjs";
|
|
27
|
-
import { t as ThemeSwitcherButtons } from "./chunks/sun-to-moon-button-
|
|
27
|
+
import { t as ThemeSwitcherButtons } from "./chunks/sun-to-moon-button-BJtBEaa3.mjs";
|
|
28
28
|
import { t as Checkbox } from "./chunks/checkbox-3aB7XC9_.mjs";
|
|
29
|
-
import { n as StatusDotChip, r as Chip, t as SplitChip } from "./chunks/chip-
|
|
30
|
-
import { n as ProgressBar, t as CircularProgress } from "./chunks/progress-bar-
|
|
31
|
-
import { t as ColorPalette } from "./chunks/color-palette-
|
|
32
|
-
import { t as Combobox } from "./chunks/combobox-
|
|
33
|
-
import { n as InputState, t as Input } from "./chunks/input-
|
|
34
|
-
import {
|
|
35
|
-
import { t as
|
|
36
|
-
import { t as MultiSelectCombobox } from "./chunks/multi-select-combobox-
|
|
37
|
-
import { t as Switch } from "./chunks/switch-
|
|
38
|
-
import { t as DatePicker } from "./chunks/date-picker-
|
|
29
|
+
import { n as StatusDotChip, r as Chip, t as SplitChip } from "./chunks/chip-CqcdcSs2.mjs";
|
|
30
|
+
import { n as ProgressBar, t as CircularProgress } from "./chunks/progress-bar-DQ5ZKk2Y.mjs";
|
|
31
|
+
import { a as brandGroup, c as surfaceGroup, i as borderGroup, l as textGroup, n as accentGroup, o as defaultGroups, r as accentScaleGroup, s as statusGroup, t as ColorPalette } from "./chunks/color-palette-C3lesasJ.mjs";
|
|
32
|
+
import { t as Combobox } from "./chunks/combobox-B6yk5U82.mjs";
|
|
33
|
+
import { n as InputState, t as Input } from "./chunks/input-Bqo9Q5zF.mjs";
|
|
34
|
+
import { t as Tooltip } from "./chunks/Tooltip-DK3B879v.mjs";
|
|
35
|
+
import { a as FilterButton, c as TableBody, d as TableContainer, f as TableFooter, h as TableRow, i as ColumnToggle, l as TableCaption, m as TableHeader, n as FilterProfile, o as FilterDropdown, p as TableHead, s as Table, t as DataTable, u as TableCell } from "./chunks/data-table-Dtf6lKpp.mjs";
|
|
36
|
+
import { t as MultiSelectCombobox } from "./chunks/multi-select-combobox-Do23ZfOQ.mjs";
|
|
37
|
+
import { t as Switch } from "./chunks/switch-iPsN1NS2.mjs";
|
|
38
|
+
import { t as DatePicker } from "./chunks/date-picker-BmQ0rgwH.mjs";
|
|
39
39
|
import { t as Dialog } from "./chunks/dialog-CanVyiAD.mjs";
|
|
40
|
-
import { t as Drawer } from "./chunks/drawer-
|
|
41
|
-
import { i as FormField, n as FormActions, o as FormSection, s as InputGroup, t as Form } from "./chunks/form-
|
|
40
|
+
import { t as Drawer } from "./chunks/drawer-DaoAXL-w.mjs";
|
|
41
|
+
import { i as FormField, n as FormActions, o as FormSection, s as InputGroup, t as Form } from "./chunks/form-CtZ6U-_B.mjs";
|
|
42
42
|
import { t as HoverCard } from "./chunks/hover-card-C88rU-nW.mjs";
|
|
43
|
-
import { t as Label } from "./chunks/label-
|
|
43
|
+
import { t as Label } from "./chunks/label-Drxg0cG2.mjs";
|
|
44
44
|
import { a as Pulse, c as Spinner, i as Loading, l as Wave, n as Bounce, o as Ring, r as Dots, s as Skeleton, t as Bars } from "./chunks/loading-Dtosnb4A.mjs";
|
|
45
45
|
import { t as OTPInput } from "./chunks/otp-input-JOysxKfD.mjs";
|
|
46
|
-
import { t as PasswordStrengthMeter } from "./chunks/password-strength-meter-
|
|
47
|
-
import { t as Radio } from "./chunks/radio-
|
|
48
|
-
import { a as SkeletonImage, c as SkeletonTableRow, i as SkeletonCard, l as SkeletonText, n as SkeletonAvatar, o as SkeletonListItem, r as SkeletonButton, s as SkeletonMetricCard, t as Skeleton$1 } from "./chunks/skeleton-
|
|
49
|
-
import { i as Stepper, n as StepperWizardStep, r as StepperSteps, t as StepperWizard } from "./chunks/stepper-
|
|
50
|
-
import { t as Textarea } from "./chunks/textarea-
|
|
46
|
+
import { t as PasswordStrengthMeter } from "./chunks/password-strength-meter-BsvqQBAg.mjs";
|
|
47
|
+
import { t as Radio } from "./chunks/radio-CuiM_gDv.mjs";
|
|
48
|
+
import { a as SkeletonImage, c as SkeletonTableRow, i as SkeletonCard, l as SkeletonText, n as SkeletonAvatar, o as SkeletonListItem, r as SkeletonButton, s as SkeletonMetricCard, t as Skeleton$1 } from "./chunks/skeleton-nH1eAN96.mjs";
|
|
49
|
+
import { i as Stepper, n as StepperWizardStep, r as StepperSteps, t as StepperWizard } from "./chunks/stepper-Jv5OS1nY.mjs";
|
|
50
|
+
import { t as Textarea } from "./chunks/textarea-Bdo-Trvi.mjs";
|
|
51
51
|
import { a as useToast, n as ToastProvider, t as ToastItem } from "./chunks/toast-BcBidy5n.mjs";
|
|
52
52
|
import { t as Audio } from "./chunks/spinners-g6_Up5Rb.mjs";
|
|
53
53
|
import { useCallback, useEffect, useLayoutEffect, useMemo, useRef, useState } from "react";
|
|
54
|
-
import { jsx, jsxs } from "react/jsx-runtime";
|
|
54
|
+
import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
|
|
55
55
|
//#region src/components/effects/border-beam/BorderBeam.tsx
|
|
56
56
|
function BorderBeam({ className = "", size = 200, duration = 15, anchor = 90, borderWidth = .5, colorFrom = "var(--ds-color-accent)", colorTo = "var(--ds-color-accent-hover)", delay = 0 }) {
|
|
57
57
|
return /* @__PURE__ */ jsx("div", {
|
|
@@ -68,6 +68,282 @@ function BorderBeam({ className = "", size = 200, duration = 15, anchor = 90, bo
|
|
|
68
68
|
});
|
|
69
69
|
}
|
|
70
70
|
//#endregion
|
|
71
|
+
//#region src/components/data-display/dashboard-cards/StatCard.tsx
|
|
72
|
+
var TrendBadge = ({ value, direction }) => {
|
|
73
|
+
const isUp = direction === "up";
|
|
74
|
+
const color = isUp ? "var(--ds-color-success)" : "var(--ds-color-danger)";
|
|
75
|
+
return /* @__PURE__ */ jsxs("span", {
|
|
76
|
+
className: "inline-flex items-center gap-1 rounded-sm border px-1 py-0.5 text-[11px] font-semibold leading-none",
|
|
77
|
+
style: {
|
|
78
|
+
color,
|
|
79
|
+
borderColor: color,
|
|
80
|
+
backgroundColor: isUp ? "var(--ds-color-success-subtle)" : "var(--ds-color-danger-subtle)"
|
|
81
|
+
},
|
|
82
|
+
"aria-label": `${value} ${isUp ? "increase" : "decrease"}`,
|
|
83
|
+
children: [value, /* @__PURE__ */ jsx("svg", {
|
|
84
|
+
width: "10",
|
|
85
|
+
height: "10",
|
|
86
|
+
viewBox: "0 0 10 10",
|
|
87
|
+
fill: "none",
|
|
88
|
+
"aria-hidden": "true",
|
|
89
|
+
children: isUp ? /* @__PURE__ */ jsx("path", {
|
|
90
|
+
d: "M5 8V2M5 2L2 5M5 2L8 5",
|
|
91
|
+
stroke: "currentColor",
|
|
92
|
+
strokeWidth: "1.5",
|
|
93
|
+
strokeLinecap: "round",
|
|
94
|
+
strokeLinejoin: "round"
|
|
95
|
+
}) : /* @__PURE__ */ jsx("path", {
|
|
96
|
+
d: "M5 2V8M5 8L2 5M5 8L8 5",
|
|
97
|
+
stroke: "currentColor",
|
|
98
|
+
strokeWidth: "1.5",
|
|
99
|
+
strokeLinecap: "round",
|
|
100
|
+
strokeLinejoin: "round"
|
|
101
|
+
})
|
|
102
|
+
})]
|
|
103
|
+
});
|
|
104
|
+
};
|
|
105
|
+
var MenuButton = ({ onClick }) => /* @__PURE__ */ jsx(Button, {
|
|
106
|
+
variant: "tertiary",
|
|
107
|
+
size: "small",
|
|
108
|
+
className: "shrink-0 p-0.5! text-ds-3",
|
|
109
|
+
"aria-label": "More options",
|
|
110
|
+
onClick,
|
|
111
|
+
children: /* @__PURE__ */ jsx(EllipsisVerticalIcon, {
|
|
112
|
+
width: 18,
|
|
113
|
+
height: 18
|
|
114
|
+
})
|
|
115
|
+
});
|
|
116
|
+
var LegendDots = ({ items }) => /* @__PURE__ */ jsx("div", {
|
|
117
|
+
className: "flex items-center gap-3",
|
|
118
|
+
children: items.map((item) => /* @__PURE__ */ jsxs("span", {
|
|
119
|
+
className: "flex items-center gap-1.5 text-xs text-ds-2",
|
|
120
|
+
children: [/* @__PURE__ */ jsx("span", {
|
|
121
|
+
className: "inline-block h-2.5 w-2.5 shrink-0 rounded-full",
|
|
122
|
+
style: { backgroundColor: item.color },
|
|
123
|
+
"aria-hidden": "true"
|
|
124
|
+
}), item.label]
|
|
125
|
+
}, item.label))
|
|
126
|
+
});
|
|
127
|
+
var StatCard = ({ size = "md", title, badge, value, dateRange, chart, chartPosition = "side", chartClassName, legend, className, onMenuClick }) => {
|
|
128
|
+
const base = mergeClassNames("rounded-lg border border-ds-border-3/80 bg-ds-surface-1", className);
|
|
129
|
+
if (size === "sm") return /* @__PURE__ */ jsxs("div", {
|
|
130
|
+
className: mergeClassNames(base, "flex flex-col gap-7 p-5"),
|
|
131
|
+
children: [/* @__PURE__ */ jsxs("div", {
|
|
132
|
+
className: "flex items-start justify-between gap-2",
|
|
133
|
+
children: [/* @__PURE__ */ jsxs("div", {
|
|
134
|
+
className: "flex flex-wrap items-center gap-2",
|
|
135
|
+
children: [/* @__PURE__ */ jsx("span", {
|
|
136
|
+
className: "text-sm font-semibold text-ds-1",
|
|
137
|
+
children: title
|
|
138
|
+
}), badge && /* @__PURE__ */ jsx(TrendBadge, {
|
|
139
|
+
value: badge.value,
|
|
140
|
+
direction: badge.direction
|
|
141
|
+
})]
|
|
142
|
+
}), /* @__PURE__ */ jsx(MenuButton, { onClick: onMenuClick })]
|
|
143
|
+
}), /* @__PURE__ */ jsxs("div", {
|
|
144
|
+
className: "flex flex-col gap-1",
|
|
145
|
+
children: [/* @__PURE__ */ jsx("p", {
|
|
146
|
+
className: "text-2xl font-bold tracking-tight text-ds-1 leading-none",
|
|
147
|
+
children: value
|
|
148
|
+
}), /* @__PURE__ */ jsx("p", {
|
|
149
|
+
className: "text-[10px] text-ds-3 mt-1",
|
|
150
|
+
children: dateRange
|
|
151
|
+
})]
|
|
152
|
+
})]
|
|
153
|
+
});
|
|
154
|
+
if (size === "md") {
|
|
155
|
+
const metricBlock = /* @__PURE__ */ jsxs("div", {
|
|
156
|
+
className: "flex flex-col gap-1 min-w-0",
|
|
157
|
+
children: [/* @__PURE__ */ jsx("p", {
|
|
158
|
+
className: "text-3xl font-bold tracking-tight text-ds-1 leading-none",
|
|
159
|
+
children: value
|
|
160
|
+
}), /* @__PURE__ */ jsx("p", {
|
|
161
|
+
className: "text-[10px] text-ds-3 mt-1",
|
|
162
|
+
children: dateRange
|
|
163
|
+
})]
|
|
164
|
+
});
|
|
165
|
+
return /* @__PURE__ */ jsxs("div", {
|
|
166
|
+
className: mergeClassNames(base, "flex flex-col gap-3 p-5"),
|
|
167
|
+
children: [/* @__PURE__ */ jsxs("div", {
|
|
168
|
+
className: "flex items-start justify-between gap-2",
|
|
169
|
+
children: [/* @__PURE__ */ jsxs("div", {
|
|
170
|
+
className: "flex flex-wrap items-center gap-2",
|
|
171
|
+
children: [/* @__PURE__ */ jsx("span", {
|
|
172
|
+
className: "text-sm font-semibold text-ds-1",
|
|
173
|
+
children: title
|
|
174
|
+
}), badge && /* @__PURE__ */ jsx(TrendBadge, {
|
|
175
|
+
value: badge.value,
|
|
176
|
+
direction: badge.direction
|
|
177
|
+
})]
|
|
178
|
+
}), /* @__PURE__ */ jsx(MenuButton, { onClick: onMenuClick })]
|
|
179
|
+
}), chartPosition === "bottom" ? /* @__PURE__ */ jsxs(Fragment$1, { children: [metricBlock, chart && /* @__PURE__ */ jsx("div", {
|
|
180
|
+
className: mergeClassNames("w-full pt-3", chartClassName),
|
|
181
|
+
children: chart
|
|
182
|
+
})] }) : /* @__PURE__ */ jsxs("div", {
|
|
183
|
+
className: "flex items-end justify-between gap-3",
|
|
184
|
+
children: [metricBlock, chart && /* @__PURE__ */ jsx("div", {
|
|
185
|
+
className: mergeClassNames("h-[46px] w-[155px] shrink-0 overflow-hidden", chartClassName),
|
|
186
|
+
children: chart
|
|
187
|
+
})]
|
|
188
|
+
})]
|
|
189
|
+
});
|
|
190
|
+
}
|
|
191
|
+
return /* @__PURE__ */ jsxs("div", {
|
|
192
|
+
className: mergeClassNames(base, "flex flex-col p-5"),
|
|
193
|
+
children: [/* @__PURE__ */ jsxs("div", {
|
|
194
|
+
className: "flex flex-wrap items-start justify-between gap-x-6 gap-y-2 mb-4",
|
|
195
|
+
children: [/* @__PURE__ */ jsxs("div", {
|
|
196
|
+
className: "flex flex-col gap-1.5",
|
|
197
|
+
children: [
|
|
198
|
+
/* @__PURE__ */ jsxs("div", {
|
|
199
|
+
className: "flex flex-wrap items-center gap-2",
|
|
200
|
+
children: [/* @__PURE__ */ jsx("span", {
|
|
201
|
+
className: "text-sm font-semibold text-ds-1",
|
|
202
|
+
children: title
|
|
203
|
+
}), badge && /* @__PURE__ */ jsx(TrendBadge, {
|
|
204
|
+
value: badge.value,
|
|
205
|
+
direction: badge.direction
|
|
206
|
+
})]
|
|
207
|
+
}),
|
|
208
|
+
/* @__PURE__ */ jsx("p", {
|
|
209
|
+
className: "text-3xl font-bold tracking-tight text-ds-1 leading-none",
|
|
210
|
+
children: value
|
|
211
|
+
}),
|
|
212
|
+
/* @__PURE__ */ jsx("p", {
|
|
213
|
+
className: "text-xs text-ds-3",
|
|
214
|
+
children: dateRange
|
|
215
|
+
})
|
|
216
|
+
]
|
|
217
|
+
}), /* @__PURE__ */ jsxs("div", {
|
|
218
|
+
className: "flex items-center gap-4 ms-auto",
|
|
219
|
+
children: [legend && legend.length > 0 && /* @__PURE__ */ jsx(LegendDots, { items: legend }), /* @__PURE__ */ jsx(MenuButton, { onClick: onMenuClick })]
|
|
220
|
+
})]
|
|
221
|
+
}), chart && /* @__PURE__ */ jsx("div", {
|
|
222
|
+
className: mergeClassNames("border-t border-ds-border-2 pt-4 w-full", chartClassName),
|
|
223
|
+
children: chart
|
|
224
|
+
})]
|
|
225
|
+
});
|
|
226
|
+
};
|
|
227
|
+
//#endregion
|
|
228
|
+
//#region src/components/data-display/dashboard-cards/ChartCard.tsx
|
|
229
|
+
var ChartCard = ({ title, dateRange, legend, className, onMenuClick, children }) => {
|
|
230
|
+
return /* @__PURE__ */ jsxs("div", {
|
|
231
|
+
className: mergeClassNames("flex flex-col gap-4 rounded-2xl border border-ds-border-2 bg-ds-surface-1 p-5", className),
|
|
232
|
+
children: [/* @__PURE__ */ jsxs("div", {
|
|
233
|
+
className: "flex flex-wrap items-start justify-between gap-x-6 gap-y-2",
|
|
234
|
+
children: [/* @__PURE__ */ jsxs("div", {
|
|
235
|
+
className: "flex flex-col gap-0.5",
|
|
236
|
+
children: [/* @__PURE__ */ jsx("span", {
|
|
237
|
+
className: "text-sm font-semibold text-ds-color-fg",
|
|
238
|
+
children: title
|
|
239
|
+
}), dateRange && /* @__PURE__ */ jsx("span", {
|
|
240
|
+
className: "text-xs text-ds-color-fg-subtle",
|
|
241
|
+
children: dateRange
|
|
242
|
+
})]
|
|
243
|
+
}), /* @__PURE__ */ jsxs("div", {
|
|
244
|
+
className: "flex items-center gap-4 ms-auto",
|
|
245
|
+
children: [legend && legend.length > 0 && /* @__PURE__ */ jsx("div", {
|
|
246
|
+
className: "flex items-center gap-3",
|
|
247
|
+
children: legend.map((item) => /* @__PURE__ */ jsxs("span", {
|
|
248
|
+
className: "flex items-center gap-1.5 text-xs text-ds-color-fg-muted",
|
|
249
|
+
children: [/* @__PURE__ */ jsx("span", {
|
|
250
|
+
className: "inline-block h-2.5 w-2.5 rounded-full shrink-0",
|
|
251
|
+
style: { backgroundColor: item.color },
|
|
252
|
+
"aria-hidden": "true"
|
|
253
|
+
}), item.label]
|
|
254
|
+
}, item.label))
|
|
255
|
+
}), /* @__PURE__ */ jsx(Button, {
|
|
256
|
+
variant: "tertiary",
|
|
257
|
+
size: "small",
|
|
258
|
+
className: "shrink-0 p-0.5! text-ds-color-fg-subtle",
|
|
259
|
+
"aria-label": "More options",
|
|
260
|
+
onClick: onMenuClick,
|
|
261
|
+
children: /* @__PURE__ */ jsx(EllipsisVerticalIcon, {
|
|
262
|
+
width: 18,
|
|
263
|
+
height: 18
|
|
264
|
+
})
|
|
265
|
+
})]
|
|
266
|
+
})]
|
|
267
|
+
}), /* @__PURE__ */ jsx("div", {
|
|
268
|
+
className: "w-full",
|
|
269
|
+
children
|
|
270
|
+
})]
|
|
271
|
+
});
|
|
272
|
+
};
|
|
273
|
+
//#endregion
|
|
274
|
+
//#region src/components/data-display/dashboard-cards/TopProductsCard.tsx
|
|
275
|
+
var RankBadge = ({ rank }) => /* @__PURE__ */ jsx("span", {
|
|
276
|
+
className: "inline-flex h-7 w-7 shrink-0 items-center justify-center rounded-md border text-xs font-semibold border-ds-border-3/80 ",
|
|
277
|
+
style: {
|
|
278
|
+
borderColor: "var(--ds-color-accent)",
|
|
279
|
+
color: "var(--ds-color-accent)"
|
|
280
|
+
},
|
|
281
|
+
"aria-label": `Rank ${rank}`,
|
|
282
|
+
children: rank
|
|
283
|
+
});
|
|
284
|
+
var ProductImage = ({ src, alt }) => {
|
|
285
|
+
if (src) return /* @__PURE__ */ jsx("img", {
|
|
286
|
+
src,
|
|
287
|
+
alt,
|
|
288
|
+
className: "h-11 w-11 shrink-0 rounded-md object-contain bg-ds-color-bg-utility p-1"
|
|
289
|
+
});
|
|
290
|
+
return /* @__PURE__ */ jsx("div", {
|
|
291
|
+
className: "flex h-11 w-11 shrink-0 items-center justify-center rounded-md bg-ds-color-bg-utility text-ds-color-fg-subtle text-lg",
|
|
292
|
+
"aria-hidden": "true",
|
|
293
|
+
children: "□"
|
|
294
|
+
});
|
|
295
|
+
};
|
|
296
|
+
var TopProductsCard = ({ title = "Top Products", items, className, onMenuClick }) => {
|
|
297
|
+
return /* @__PURE__ */ jsxs("div", {
|
|
298
|
+
className: mergeClassNames("flex flex-col rounded-lg border border-ds-border-3/80 bg-ds-surface-1 p-5", className),
|
|
299
|
+
children: [/* @__PURE__ */ jsxs("div", {
|
|
300
|
+
className: "mb-4 flex items-center justify-between",
|
|
301
|
+
children: [/* @__PURE__ */ jsx("span", {
|
|
302
|
+
className: "text-sm font-semibold text-ds-color-fg",
|
|
303
|
+
children: title
|
|
304
|
+
}), /* @__PURE__ */ jsx(Button, {
|
|
305
|
+
variant: "tertiary",
|
|
306
|
+
size: "small",
|
|
307
|
+
className: "shrink-0 p-0.5! text-ds-color-fg-subtle",
|
|
308
|
+
"aria-label": "More options",
|
|
309
|
+
onClick: onMenuClick,
|
|
310
|
+
children: /* @__PURE__ */ jsx(EllipsisVerticalIcon, {
|
|
311
|
+
width: 18,
|
|
312
|
+
height: 18
|
|
313
|
+
})
|
|
314
|
+
})]
|
|
315
|
+
}), /* @__PURE__ */ jsx("ul", {
|
|
316
|
+
className: "flex flex-col divide-y divide-ds-border-2",
|
|
317
|
+
role: "list",
|
|
318
|
+
children: items.map((item) => /* @__PURE__ */ jsxs("li", {
|
|
319
|
+
className: "flex items-center gap-3 py-3 first:pt-0 last:pb-0",
|
|
320
|
+
children: [
|
|
321
|
+
/* @__PURE__ */ jsx(ProductImage, {
|
|
322
|
+
src: item.image,
|
|
323
|
+
alt: item.name
|
|
324
|
+
}),
|
|
325
|
+
/* @__PURE__ */ jsxs("div", {
|
|
326
|
+
className: "flex min-w-0 flex-1 flex-col gap-0.5",
|
|
327
|
+
children: [/* @__PURE__ */ jsx("span", {
|
|
328
|
+
className: "truncate text-sm font-semibold text-ds-color-fg",
|
|
329
|
+
children: item.name
|
|
330
|
+
}), /* @__PURE__ */ jsxs("span", {
|
|
331
|
+
className: "truncate text-xs text-ds-color-fg-subtle",
|
|
332
|
+
children: [
|
|
333
|
+
item.category,
|
|
334
|
+
" · ",
|
|
335
|
+
item.soldCount.toLocaleString(),
|
|
336
|
+
" sold"
|
|
337
|
+
]
|
|
338
|
+
})]
|
|
339
|
+
}),
|
|
340
|
+
/* @__PURE__ */ jsx(RankBadge, { rank: item.rank })
|
|
341
|
+
]
|
|
342
|
+
}, item.id))
|
|
343
|
+
})]
|
|
344
|
+
});
|
|
345
|
+
};
|
|
346
|
+
//#endregion
|
|
71
347
|
//#region src/components/navigation/tabs/Tabs.tsx
|
|
72
348
|
var rtlLanguages = /^(ar|fa|ur|he)(-|$)/i;
|
|
73
349
|
function resolveDirection(direction) {
|
|
@@ -233,6 +509,6 @@ function Tabs({ items, value, defaultValue, onValueChange, dir = "auto", classNa
|
|
|
233
509
|
});
|
|
234
510
|
}
|
|
235
511
|
//#endregion
|
|
236
|
-
export { ASCIIText, Accordion, ActivityIcon, Alert, AlertCircleIcon, AlertTriangleIcon, AnimatedContent, AreaChart, ArrowDownIcon, ArrowLeftIcon, ArrowRightIcon, ArrowUpDownIcon, ArrowUpIcon, Audio, AudioWaveIcon, BackgroundGradientAnimation, BarChart, Bars, BellIcon, BorderBeam, Bounce, BriefcaseBusinessIcon, Button, ButtonHoverBorderGradient, Calendar, Card, Carousel, CheckCircleIcon, CheckIcon, Checkbox, ChevronDownIcon, ChevronLeftIcon, ChevronRightIcon, ChevronUpIcon, ChevronsLeftIcon, ChevronsRightIcon, Chip, ChromaGrid, CircleIcon, CircularProgress, CloseIcon, ColorPalette, ColumnToggle, ColumnsIcon, Combobox, DashboardSidebarShell, DataTable, DatePicker, Dialog, Dots, DragIcon, Drawer, DropdownMenu, EllipsisIcon, EllipsisVerticalIcon, EyeIcon, EyeOffIcon, FilterButton, FilterDropdown, FilterIcon, FilterProfile, FilterProfileIcon, FilterXIcon, Form, FormActions, FormField, FormSection, FullScreenIcon, GradualBlur, HamburgerIcon, HomeIcon, HoverBorderGradient, HoverCard, InfoCircleIcon, Input, InputGroup, InputState, Label, LoaderIcon, Loading, MailIcon, MiniNeonSparkline, MultiSelectCombobox, NavLink, NeonLineChart, OTPInput, PackageIcon, PasswordStrengthMeter, PieChart, PlayIcon, PositiveNegativeBarChart, ProgressBar, Pulse, QuestionCircleIcon, Radio, RefreshIcon, Ring, RingLoaderIcon, SearchIcon, Select, SelectionIcon, SettingsIcon, ShoppingCartIcon, Sidebar, SidebarLinks, Skeleton, SkeletonAvatar, SkeletonButton, SkeletonCard, Skeleton$1 as SkeletonComponent, SkeletonImage, SkeletonListItem, SkeletonMetricCard, SkeletonTableRow, SkeletonText, Spinner, SplashCursor, SplitChip, SpotlightCard, StackedBarChart, StatusDotChip, Stepper, StepperSteps, StepperSteps as StepperStepsNavigation, StepperWizard, StepperWizardStep, SunToMoonButton, Switch, Table, TableBody, TableCaption, TableCell, TableContainer, TableFooter, TableHead, TableHeader, TableRow, Tabs, Textarea, ThemeProvider, ThemeSwitcherButtons, ThinBreakdownBar, ToastItem, ToastProvider, Tooltip, TrashIcon, TruncatedText, Typography, UserIcon, Wave, XCircleIcon, ZapIcon, chartColorTokens, generateUniqueKey, getChartColorVar, getChartPalette, mergeClassNames, useThemeContext, useToast, validateEmail };
|
|
512
|
+
export { ASCIIText, Accordion, ActivityIcon, Alert, AlertCircleIcon, AlertTriangleIcon, AnimatedContent, AreaChart, ArrowDownIcon, ArrowLeftIcon, ArrowRightIcon, ArrowUpDownIcon, ArrowUpIcon, Audio, AudioWaveIcon, BackgroundGradientAnimation, BarChart, Bars, BellIcon, BorderBeam, Bounce, BriefcaseBusinessIcon, Button, ButtonHoverBorderGradient, Calendar, Card, Carousel, ChartCard, CheckCircleIcon, CheckIcon, Checkbox, ChevronDownIcon, ChevronLeftIcon, ChevronRightIcon, ChevronUpIcon, ChevronsLeftIcon, ChevronsRightIcon, Chip, ChromaGrid, CircleIcon, CircularProgress, CloseIcon, ColorPalette, ColumnToggle, ColumnsIcon, Combobox, DashboardSidebarShell, DataTable, DatePicker, Dialog, Dots, DragIcon, Drawer, DropdownMenu, EllipsisIcon, EllipsisVerticalIcon, EyeIcon, EyeOffIcon, FilterButton, FilterDropdown, FilterIcon, FilterProfile, FilterProfileIcon, FilterXIcon, Form, FormActions, FormField, FormSection, FullScreenIcon, GradualBlur, HamburgerIcon, HomeIcon, HoverBorderGradient, HoverCard, InfoCircleIcon, Input, InputGroup, InputState, Label, LoaderIcon, Loading, MailIcon, MiniNeonSparkline, MultiSelectCombobox, NavLink, NeonLineChart, OTPInput, PackageIcon, PasswordStrengthMeter, PieChart, PlayIcon, PositiveNegativeBarChart, ProgressBar, Pulse, QuestionCircleIcon, Radio, RefreshIcon, Ring, RingLoaderIcon, SearchIcon, Select, SelectionIcon, SettingsIcon, ShoppingCartIcon, Sidebar, SidebarLinks, Skeleton, SkeletonAvatar, SkeletonButton, SkeletonCard, Skeleton$1 as SkeletonComponent, SkeletonImage, SkeletonListItem, SkeletonMetricCard, SkeletonTableRow, SkeletonText, Spinner, SplashCursor, SplitChip, SpotlightCard, StackedBarChart, StatCard, StatusDotChip, Stepper, StepperSteps, StepperSteps as StepperStepsNavigation, StepperWizard, StepperWizardStep, SunToMoonButton, Switch, Table, TableBody, TableCaption, TableCell, TableContainer, TableFooter, TableHead, TableHeader, TableRow, Tabs, Textarea, ThemeProvider, ThemeSwitcherButtons, ThinBreakdownBar, ToastItem, ToastProvider, Tooltip, TopProductsCard, TrashIcon, TruncatedText, Typography, UserIcon, Wave, XCircleIcon, ZapIcon, accentGroup, accentScaleGroup, borderGroup, brandGroup, chartColorTokens, defaultGroups, generateUniqueKey, getChartColorVar, getChartPalette, mergeClassNames, statusGroup, surfaceGroup, textGroup, useThemeContext, useToast, validateEmail };
|
|
237
513
|
|
|
238
514
|
//# sourceMappingURL=index.mjs.map
|
package/dist/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","names":[],"sources":["../src/components/effects/border-beam/BorderBeam.tsx","../src/components/navigation/tabs/Tabs.tsx"],"sourcesContent":["import type { CSSProperties } from \"react\";\n\nexport interface BorderBeamProps {\n className?: string;\n size?: number;\n duration?: number;\n borderWidth?: number;\n anchor?: number;\n colorFrom?: string;\n colorTo?: string;\n delay?: number;\n}\n\nexport function BorderBeam({\n className = \"\",\n size = 200,\n duration = 15,\n anchor = 90,\n borderWidth = 0.5,\n colorFrom = \"var(--ds-color-accent)\",\n colorTo = \"var(--ds-color-accent-hover)\",\n delay = 0,\n}: BorderBeamProps) {\n return (\n <div\n style={\n {\n \"--size\": `${size}px`,\n \"--duration\": `${duration}s`,\n \"--anchor\": `${anchor}`,\n \"--border-width\": `${borderWidth}px`,\n \"--beam-color-from\": colorFrom,\n \"--beam-color-to\": colorTo,\n \"--delay\": `-${delay}s`,\n } as CSSProperties\n }\n className={`border-beam ${className}`}\n />\n );\n}\n","import {\n useCallback,\n useEffect,\n useLayoutEffect,\n useMemo,\n useRef,\n useState,\n} from \"react\";\n\nimport { Button } from \"../../forms/button\";\nimport { mergeClassNames } from \"../../../utils\";\nimport type { TabsDirection, TabsItem, TabsProps } from \"./types\";\n\nconst rtlLanguages = /^(ar|fa|ur|he)(-|$)/i;\n\nfunction resolveDirection(\n direction: TabsDirection,\n): Exclude<TabsDirection, \"auto\"> {\n if (direction !== \"auto\") {\n return direction;\n }\n\n if (typeof document === \"undefined\") {\n return \"ltr\";\n }\n\n const explicitDirection =\n document.documentElement.getAttribute(\"dir\") ?? undefined;\n\n if (explicitDirection === \"rtl\" || explicitDirection === \"ltr\") {\n return explicitDirection;\n }\n\n if (\n typeof navigator !== \"undefined\" &&\n rtlLanguages.test(navigator.language)\n ) {\n return \"rtl\";\n }\n\n return \"ltr\";\n}\n\nfunction getFirstEnabledId(items: readonly TabsItem[]): string {\n const fallback = items.find((item) => !item.disabled) ?? items[0];\n return fallback?.id ?? \"\";\n}\n\nexport function Tabs({\n items,\n value,\n defaultValue,\n onValueChange,\n dir = \"auto\",\n className,\n listClassName,\n triggerClassName,\n panelClassName,\n animationDurationMs = 220,\n}: TabsProps) {\n const rootRef = useRef<HTMLDivElement>(null);\n const listRef = useRef<HTMLDivElement>(null);\n const tabSlotRefs = useRef<Record<string, HTMLDivElement | null>>({});\n const panelRef = useRef<HTMLDivElement>(null);\n const isControlled = value !== undefined;\n\n const fallbackId = useMemo(() => getFirstEnabledId(items), [items]);\n const [internalValue, setInternalValue] = useState<string>(\n defaultValue ?? fallbackId,\n );\n const rawActiveId = isControlled ? value : internalValue;\n const activeId = items.some((item) => item.id === rawActiveId)\n ? rawActiveId\n : fallbackId;\n\n const activeIndex = useMemo(\n () =>\n Math.max(\n items.findIndex((item) => item.id === activeId),\n 0,\n ),\n [items, activeId],\n );\n\n const previousIndexRef = useRef(activeIndex);\n const [indicator, setIndicator] = useState<{\n left: number;\n width: number;\n } | null>(null);\n\n const getEffectiveDirection = useCallback(() => {\n if (dir !== \"auto\") {\n return dir;\n }\n\n if (typeof window !== \"undefined\" && listRef.current) {\n const cssDirection = window.getComputedStyle(listRef.current).direction;\n if (cssDirection === \"rtl\" || cssDirection === \"ltr\") {\n return cssDirection;\n }\n }\n\n return resolveDirection(\"auto\");\n }, [dir]);\n\n useEffect(() => {\n const previousIndex = previousIndexRef.current;\n if (activeIndex === previousIndex) {\n return;\n }\n\n const panel = panelRef.current;\n if (!panel) {\n previousIndexRef.current = activeIndex;\n return;\n }\n\n const indexDelta = activeIndex - previousIndex;\n const logicalDirection = indexDelta >= 0 ? 1 : -1;\n const visualDirection =\n getEffectiveDirection() === \"rtl\" ? -logicalDirection : logicalDirection;\n const fromX = visualDirection > 0 ? -14 : 14;\n\n panel.animate(\n [\n { opacity: 0, transform: `translateX(${fromX}px)` },\n { opacity: 1, transform: \"translateX(0px)\" },\n ],\n {\n duration: animationDurationMs,\n easing: \"cubic-bezier(0.22, 1, 0.36, 1)\",\n },\n );\n\n previousIndexRef.current = activeIndex;\n }, [activeIndex, animationDurationMs, getEffectiveDirection]);\n\n const activeItem = items[activeIndex] ?? items[0];\n\n useLayoutEffect(() => {\n const updateIndicator = () => {\n const selectedSlot = tabSlotRefs.current[activeItem?.id ?? \"\"];\n if (!selectedSlot) {\n setIndicator(null);\n return;\n }\n\n setIndicator({\n left: selectedSlot.offsetLeft,\n width: selectedSlot.offsetWidth,\n });\n };\n\n updateIndicator();\n window.addEventListener(\"resize\", updateIndicator);\n return () => window.removeEventListener(\"resize\", updateIndicator);\n }, [activeItem?.id, items.length]);\n\n const setValue = (nextValue: string) => {\n if (!isControlled) {\n setInternalValue(nextValue);\n }\n onValueChange?.(nextValue);\n };\n\n const moveBy = (delta: number) => {\n if (items.length === 0) {\n return;\n }\n\n let probe = activeIndex;\n for (let step = 0; step < items.length; step++) {\n probe = (probe + delta + items.length) % items.length;\n const candidate = items[probe];\n if (!candidate?.disabled) {\n setValue(candidate.id);\n return;\n }\n }\n };\n\n return (\n <div\n ref={rootRef}\n dir={dir === \"auto\" ? undefined : dir}\n className={mergeClassNames(\"w-full\", className)}\n >\n <div\n ref={listRef}\n role=\"tablist\"\n aria-orientation=\"horizontal\"\n className={mergeClassNames(\n \"relative flex h-9 w-full items-center gap-0 overflow-hidden rounded-lg border border-ds-border-3 bg-ds-surface-2 p-1\",\n listClassName,\n )}\n >\n {items.length > 0 && indicator ? (\n <span\n aria-hidden=\"true\"\n className=\"pointer-events-none absolute bottom-1 top-1 rounded-md border border-ds-border-accent/45 bg-ds-accent shadow-[0_1px_3px_rgba(0,0,0,0.1),0_1px_2px_rgba(0,0,0,0.06)] transition-transform duration-300 ease-out\"\n style={{\n width: `${indicator.width}px`,\n transform: `translateX(${indicator.left}px)`,\n left: 0,\n }}\n />\n ) : null}\n {items.map((item) => {\n const selected = item.id === activeItem?.id;\n return (\n <div\n key={item.id}\n ref={(node) => {\n tabSlotRefs.current[item.id] = node;\n }}\n className=\"relative z-10 h-full min-w-0 flex-1\"\n >\n <Button\n role=\"tab\"\n id={`tab-${item.id}`}\n aria-selected={selected}\n aria-controls={`tabpanel-${item.id}`}\n tabIndex={selected ? 0 : -1}\n disabled={item.disabled}\n variant=\"tertiary\"\n size=\"small\"\n className={mergeClassNames(\n \"h-full w-full rounded-md px-3 py-1 text-base font-normal leading-[22px] transition-colors duration-200\",\n \"outline-none focus-visible:ring-2 focus-visible:ring-ds-focus/60\",\n selected ? \"text-ds-on-accent\" : \"text-ds-2 hover:text-ds-1\",\n item.disabled && \"cursor-not-allowed opacity-55\",\n triggerClassName,\n )}\n onClick={() => {\n if (!item.disabled) {\n setValue(item.id);\n }\n }}\n onKeyDown={(event) => {\n if (event.key === \"ArrowRight\") {\n event.preventDefault();\n moveBy(getEffectiveDirection() === \"rtl\" ? -1 : 1);\n }\n\n if (event.key === \"ArrowLeft\") {\n event.preventDefault();\n moveBy(getEffectiveDirection() === \"rtl\" ? 1 : -1);\n }\n\n if (event.key === \"Home\") {\n event.preventDefault();\n const first = items.find((candidate) => !candidate.disabled);\n if (first) {\n setValue(first.id);\n }\n }\n\n if (event.key === \"End\") {\n event.preventDefault();\n const reversed = [...items].reverse();\n const last = reversed.find(\n (candidate) => !candidate.disabled,\n );\n if (last) {\n setValue(last.id);\n }\n }\n }}\n >\n {item.label}\n </Button>\n </div>\n );\n })}\n </div>\n\n <div\n ref={panelRef}\n role=\"tabpanel\"\n id={`tabpanel-${activeItem?.id ?? \"\"}`}\n aria-labelledby={`tab-${activeItem?.id ?? \"\"}`}\n className={mergeClassNames(\"mt-2 w-full\", panelClassName)}\n >\n {activeItem?.content}\n </div>\n </div>\n );\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.mjs","names":[],"sources":["../src/components/effects/border-beam/BorderBeam.tsx","../src/components/data-display/dashboard-cards/StatCard.tsx","../src/components/data-display/dashboard-cards/ChartCard.tsx","../src/components/data-display/dashboard-cards/TopProductsCard.tsx","../src/components/navigation/tabs/Tabs.tsx"],"sourcesContent":["import type { CSSProperties } from \"react\";\n\nexport interface BorderBeamProps {\n className?: string;\n size?: number;\n duration?: number;\n borderWidth?: number;\n anchor?: number;\n colorFrom?: string;\n colorTo?: string;\n delay?: number;\n}\n\nexport function BorderBeam({\n className = \"\",\n size = 200,\n duration = 15,\n anchor = 90,\n borderWidth = 0.5,\n colorFrom = \"var(--ds-color-accent)\",\n colorTo = \"var(--ds-color-accent-hover)\",\n delay = 0,\n}: BorderBeamProps) {\n return (\n <div\n style={\n {\n \"--size\": `${size}px`,\n \"--duration\": `${duration}s`,\n \"--anchor\": `${anchor}`,\n \"--border-width\": `${borderWidth}px`,\n \"--beam-color-from\": colorFrom,\n \"--beam-color-to\": colorTo,\n \"--delay\": `-${delay}s`,\n } as CSSProperties\n }\n className={`border-beam ${className}`}\n />\n );\n}\n","\"use client\";\n\nimport type { FC, ReactNode } from \"react\";\n\nimport { Button } from \"../../forms/button\";\nimport { EllipsisVerticalIcon } from \"../../icons/EllipsisVerticalIcon\";\nimport { mergeClassNames } from \"../../../utils\";\n\n// ---------------------------------------------------------------------------\n// Internal: TrendBadge\n// ---------------------------------------------------------------------------\n\ninterface TrendBadgeProps {\n value: string;\n direction: \"up\" | \"down\";\n}\n\nconst TrendBadge: FC<TrendBadgeProps> = ({ value, direction }) => {\n const isUp = direction === \"up\";\n const color = isUp ? \"var(--ds-color-success)\" : \"var(--ds-color-danger)\";\n const bg = isUp ? \"var(--ds-color-success-subtle)\" : \"var(--ds-color-danger-subtle)\";\n\n return (\n <span\n className=\"inline-flex items-center gap-1 rounded-sm border px-1 py-0.5 text-[11px] font-semibold leading-none\"\n style={{ color, borderColor: color, backgroundColor: bg }}\n aria-label={`${value} ${isUp ? \"increase\" : \"decrease\"}`}\n >\n {value}\n <svg width=\"10\" height=\"10\" viewBox=\"0 0 10 10\" fill=\"none\" aria-hidden=\"true\">\n {isUp ? (\n <path d=\"M5 8V2M5 2L2 5M5 2L8 5\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n ) : (\n <path d=\"M5 2V8M5 8L2 5M5 8L8 5\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n )}\n </svg>\n \n </span>\n );\n};\n\n// ---------------------------------------------------------------------------\n// Internal: MenuButton\n// ---------------------------------------------------------------------------\n\nconst MenuButton: FC<{ onClick?: () => void }> = ({ onClick }) => (\n <Button\n variant=\"tertiary\"\n size=\"small\"\n className=\"shrink-0 p-0.5! text-ds-3\"\n aria-label=\"More options\"\n onClick={onClick}\n >\n <EllipsisVerticalIcon width={18} height={18} />\n </Button>\n);\n\n// ---------------------------------------------------------------------------\n// Internal: LegendDot\n// ---------------------------------------------------------------------------\n\nconst LegendDots: FC<{ items: { label: string; color: string }[] }> = ({ items }) => (\n <div className=\"flex items-center gap-3\">\n {items.map((item) => (\n <span key={item.label} className=\"flex items-center gap-1.5 text-xs text-ds-2\">\n <span\n className=\"inline-block h-2.5 w-2.5 shrink-0 rounded-full\"\n style={{ backgroundColor: item.color }}\n aria-hidden=\"true\"\n />\n {item.label}\n </span>\n ))}\n </div>\n);\n\n// ---------------------------------------------------------------------------\n// Public types\n// ---------------------------------------------------------------------------\n\nexport type StatCardSize = \"sm\" | \"md\" | \"lg\";\n\nexport interface StatCardLegendItem {\n label: string;\n color: string;\n}\n\nexport interface StatCardProps {\n /** Layout size:\n * - \"sm\" → 2-col — metric only, no chart\n * - \"md\" → 4-col — metric + compact chart on the right (default)\n * - \"lg\" → 12-col — metric header + full-width chart below\n */\n size?: StatCardSize;\n title: string;\n badge?: TrendBadgeProps;\n value: ReactNode;\n dateRange: string;\n /** Chart content (any chart component). Ignored when size=\"sm\".\n * For \"md\" position is controlled by chartPosition.\n * For \"lg\" the chart spans full card width below a divider. */\n chart?: ReactNode;\n /** Controls where the chart renders in size=\"md\".\n * - \"side\" (default) — compact chart to the right of the metric.\n * - \"bottom\" — full-width chart below the metric (good for bar/line/area charts). */\n chartPosition?: \"side\" | \"bottom\";\n /** Override the chart container's size/style.\n * \"md\" side: overrides the side-zone div (default: h-[68px] w-[180px] shrink-0 overflow-hidden).\n * \"md\" bottom: overrides the bottom chart div (default: w-full pt-3).\n * \"lg\": overrides the chart wrapper div (default: border-t border-ds-border-2 pt-4 w-full). */\n chartClassName?: string;\n /** Legend items shown in the header. Only visible when size=\"lg\". */\n legend?: StatCardLegendItem[];\n className?: string;\n onMenuClick?: () => void;\n}\n\n// ---------------------------------------------------------------------------\n// StatCard\n// ---------------------------------------------------------------------------\n\nexport const StatCard: FC<StatCardProps> = ({\n size = \"md\",\n title,\n badge,\n value,\n dateRange,\n chart,\n chartPosition = \"side\",\n chartClassName,\n legend,\n className,\n onMenuClick,\n}) => {\n const base = mergeClassNames(\n \"rounded-lg border border-ds-border-3/80 bg-ds-surface-1\",\n className,\n );\n\n // ── sm: 2-col, metric only ───────────────────────────────────────────────\n if (size === \"sm\") {\n return (\n <div className={mergeClassNames(base, \"flex flex-col gap-7 p-5\")}>\n <div className=\"flex items-start justify-between gap-2\">\n <div className=\"flex flex-wrap items-center gap-2\">\n <span className=\"text-sm font-semibold text-ds-1\">{title}</span>\n {badge && <TrendBadge value={badge.value} direction={badge.direction} />}\n </div>\n <MenuButton onClick={onMenuClick} />\n </div>\n <div className=\"flex flex-col gap-1\">\n <p className=\"text-2xl font-bold tracking-tight text-ds-1 leading-none\">\n {value}\n </p>\n <p className=\"text-[10px] text-ds-3 mt-1\">{dateRange}</p>\n </div>\n </div>\n );\n }\n\n // ── md: 4-col, metric + chart ────────────────────────────────────────────\n if (size === \"md\") {\n const metricBlock = (\n <div className=\"flex flex-col gap-1 min-w-0\">\n <p className=\"text-3xl font-bold tracking-tight text-ds-1 leading-none\">\n {value}\n </p>\n <p className=\"text-[10px] text-ds-3 mt-1\">{dateRange}</p>\n </div>\n );\n\n return (\n <div className={mergeClassNames(base, \"flex flex-col gap-3 p-5\")}>\n <div className=\"flex items-start justify-between gap-2\">\n <div className=\"flex flex-wrap items-center gap-2\">\n <span className=\"text-sm font-semibold text-ds-1\">{title}</span>\n {badge && <TrendBadge value={badge.value} direction={badge.direction} />}\n </div>\n <MenuButton onClick={onMenuClick} />\n </div>\n\n {chartPosition === \"bottom\" ? (\n <>\n {metricBlock}\n {chart && (\n <div className={mergeClassNames(\"w-full pt-3\", chartClassName)}>\n {chart}\n </div>\n )}\n </>\n ) : (\n <div className=\"flex items-end justify-between gap-3\">\n {metricBlock}\n {chart && (\n <div className={mergeClassNames(\"h-[46px] w-[155px] shrink-0 overflow-hidden\", chartClassName)}>\n {chart}\n </div>\n )}\n </div>\n )}\n </div>\n );\n }\n\n // ── lg: 12-col, header + full-width chart ────────────────────────────────\n return (\n <div className={mergeClassNames(base, \"flex flex-col p-5\")}>\n {/* Header row */}\n <div className=\"flex flex-wrap items-start justify-between gap-x-6 gap-y-2 mb-4\">\n <div className=\"flex flex-col gap-1.5\">\n <div className=\"flex flex-wrap items-center gap-2\">\n <span className=\"text-sm font-semibold text-ds-1\">{title}</span>\n {badge && <TrendBadge value={badge.value} direction={badge.direction} />}\n </div>\n <p className=\"text-3xl font-bold tracking-tight text-ds-1 leading-none\">\n {value}\n </p>\n <p className=\"text-xs text-ds-3\">{dateRange}</p>\n </div>\n <div className=\"flex items-center gap-4 ms-auto\">\n {legend && legend.length > 0 && <LegendDots items={legend} />}\n <MenuButton onClick={onMenuClick} />\n </div>\n </div>\n\n {/* Chart area */}\n {chart && (\n <div className={mergeClassNames(\"border-t border-ds-border-2 pt-4 w-full\", chartClassName)}>\n {chart}\n </div>\n )}\n </div>\n );\n};\n","\"use client\";\n\nimport type { FC, ReactNode } from \"react\";\n\nimport { Button } from \"../../forms/button\";\nimport { EllipsisVerticalIcon } from \"../../icons/EllipsisVerticalIcon\";\nimport { mergeClassNames } from \"../../../utils\";\n\nexport interface ChartCardLegendItem {\n label: string;\n color: string;\n}\n\nexport interface ChartCardProps {\n title: string;\n dateRange?: string;\n legend?: ChartCardLegendItem[];\n className?: string;\n onMenuClick?: () => void;\n children: ReactNode;\n}\n\nexport const ChartCard: FC<ChartCardProps> = ({\n title,\n dateRange,\n legend,\n className,\n onMenuClick,\n children,\n}) => {\n return (\n <div\n className={mergeClassNames(\n \"flex flex-col gap-4 rounded-2xl border border-ds-border-2 bg-ds-surface-1 p-5\",\n className,\n )}\n >\n <div className=\"flex flex-wrap items-start justify-between gap-x-6 gap-y-2\">\n <div className=\"flex flex-col gap-0.5\">\n <span className=\"text-sm font-semibold text-ds-color-fg\">\n {title}\n </span>\n {dateRange && (\n <span className=\"text-xs text-ds-color-fg-subtle\">{dateRange}</span>\n )}\n </div>\n\n <div className=\"flex items-center gap-4 ms-auto\">\n {legend && legend.length > 0 && (\n <div className=\"flex items-center gap-3\">\n {legend.map((item) => (\n <span\n key={item.label}\n className=\"flex items-center gap-1.5 text-xs text-ds-color-fg-muted\"\n >\n <span\n className=\"inline-block h-2.5 w-2.5 rounded-full shrink-0\"\n style={{ backgroundColor: item.color }}\n aria-hidden=\"true\"\n />\n {item.label}\n </span>\n ))}\n </div>\n )}\n <Button\n variant=\"tertiary\"\n size=\"small\"\n className=\"shrink-0 p-0.5! text-ds-color-fg-subtle\"\n aria-label=\"More options\"\n onClick={onMenuClick}\n >\n <EllipsisVerticalIcon width={18} height={18} />\n </Button>\n </div>\n </div>\n\n <div className=\"w-full\">{children}</div>\n </div>\n );\n};\n","\"use client\";\n\nimport type { FC } from \"react\";\n\nimport { Button } from \"../../forms/button\";\nimport { EllipsisVerticalIcon } from \"../../icons/EllipsisVerticalIcon\";\nimport { mergeClassNames } from \"../../../utils\";\n\nexport interface TopProductItem {\n id: string | number;\n name: string;\n category: string;\n soldCount: number;\n image?: string;\n rank: number;\n}\n\nexport interface TopProductsCardProps {\n title?: string;\n items: TopProductItem[];\n className?: string;\n onMenuClick?: () => void;\n}\n\nconst RankBadge: FC<{ rank: number }> = ({ rank }) => (\n <span\n className=\"inline-flex h-7 w-7 shrink-0 items-center justify-center rounded-md border text-xs font-semibold border-ds-border-3/80 \"\n style={{\n borderColor: \"var(--ds-color-accent)\",\n color: \"var(--ds-color-accent)\",\n }}\n aria-label={`Rank ${rank}`}\n >\n {rank}\n </span>\n);\n\nconst ProductImage: FC<{ src?: string; alt: string }> = ({ src, alt }) => {\n if (src) {\n return (\n <img\n src={src}\n alt={alt}\n className=\"h-11 w-11 shrink-0 rounded-md object-contain bg-ds-color-bg-utility p-1\"\n />\n );\n }\n return (\n <div\n className=\"flex h-11 w-11 shrink-0 items-center justify-center rounded-md bg-ds-color-bg-utility text-ds-color-fg-subtle text-lg\"\n aria-hidden=\"true\"\n >\n □\n </div>\n );\n};\n\nexport const TopProductsCard: FC<TopProductsCardProps> = ({\n title = \"Top Products\",\n items,\n className,\n onMenuClick,\n}) => {\n return (\n <div\n className={mergeClassNames(\n \"flex flex-col rounded-lg border border-ds-border-3/80 bg-ds-surface-1 p-5\",\n className,\n )}\n >\n <div className=\"mb-4 flex items-center justify-between\">\n <span className=\"text-sm font-semibold text-ds-color-fg\">{title}</span>\n <Button\n variant=\"tertiary\"\n size=\"small\"\n className=\"shrink-0 p-0.5! text-ds-color-fg-subtle\"\n aria-label=\"More options\"\n onClick={onMenuClick}\n >\n <EllipsisVerticalIcon width={18} height={18} />\n </Button>\n </div>\n\n <ul className=\"flex flex-col divide-y divide-ds-border-2\" role=\"list\">\n {items.map((item) => (\n <li\n key={item.id}\n className=\"flex items-center gap-3 py-3 first:pt-0 last:pb-0\"\n >\n <ProductImage src={item.image} alt={item.name} />\n\n <div className=\"flex min-w-0 flex-1 flex-col gap-0.5\">\n <span className=\"truncate text-sm font-semibold text-ds-color-fg\">\n {item.name}\n </span>\n <span className=\"truncate text-xs text-ds-color-fg-subtle\">\n {item.category} · {item.soldCount.toLocaleString()} sold\n </span>\n </div>\n\n <RankBadge rank={item.rank} />\n </li>\n ))}\n </ul>\n </div>\n );\n};\n","import {\n useCallback,\n useEffect,\n useLayoutEffect,\n useMemo,\n useRef,\n useState,\n} from \"react\";\n\nimport { Button } from \"../../forms/button\";\nimport { mergeClassNames } from \"../../../utils\";\nimport type { TabsDirection, TabsItem, TabsProps } from \"./types\";\n\nconst rtlLanguages = /^(ar|fa|ur|he)(-|$)/i;\n\nfunction resolveDirection(\n direction: TabsDirection,\n): Exclude<TabsDirection, \"auto\"> {\n if (direction !== \"auto\") {\n return direction;\n }\n\n if (typeof document === \"undefined\") {\n return \"ltr\";\n }\n\n const explicitDirection =\n document.documentElement.getAttribute(\"dir\") ?? undefined;\n\n if (explicitDirection === \"rtl\" || explicitDirection === \"ltr\") {\n return explicitDirection;\n }\n\n if (\n typeof navigator !== \"undefined\" &&\n rtlLanguages.test(navigator.language)\n ) {\n return \"rtl\";\n }\n\n return \"ltr\";\n}\n\nfunction getFirstEnabledId(items: readonly TabsItem[]): string {\n const fallback = items.find((item) => !item.disabled) ?? items[0];\n return fallback?.id ?? \"\";\n}\n\nexport function Tabs({\n items,\n value,\n defaultValue,\n onValueChange,\n dir = \"auto\",\n className,\n listClassName,\n triggerClassName,\n panelClassName,\n animationDurationMs = 220,\n}: TabsProps) {\n const rootRef = useRef<HTMLDivElement>(null);\n const listRef = useRef<HTMLDivElement>(null);\n const tabSlotRefs = useRef<Record<string, HTMLDivElement | null>>({});\n const panelRef = useRef<HTMLDivElement>(null);\n const isControlled = value !== undefined;\n\n const fallbackId = useMemo(() => getFirstEnabledId(items), [items]);\n const [internalValue, setInternalValue] = useState<string>(\n defaultValue ?? fallbackId,\n );\n const rawActiveId = isControlled ? value : internalValue;\n const activeId = items.some((item) => item.id === rawActiveId)\n ? rawActiveId\n : fallbackId;\n\n const activeIndex = useMemo(\n () =>\n Math.max(\n items.findIndex((item) => item.id === activeId),\n 0,\n ),\n [items, activeId],\n );\n\n const previousIndexRef = useRef(activeIndex);\n const [indicator, setIndicator] = useState<{\n left: number;\n width: number;\n } | null>(null);\n\n const getEffectiveDirection = useCallback(() => {\n if (dir !== \"auto\") {\n return dir;\n }\n\n if (typeof window !== \"undefined\" && listRef.current) {\n const cssDirection = window.getComputedStyle(listRef.current).direction;\n if (cssDirection === \"rtl\" || cssDirection === \"ltr\") {\n return cssDirection;\n }\n }\n\n return resolveDirection(\"auto\");\n }, [dir]);\n\n useEffect(() => {\n const previousIndex = previousIndexRef.current;\n if (activeIndex === previousIndex) {\n return;\n }\n\n const panel = panelRef.current;\n if (!panel) {\n previousIndexRef.current = activeIndex;\n return;\n }\n\n const indexDelta = activeIndex - previousIndex;\n const logicalDirection = indexDelta >= 0 ? 1 : -1;\n const visualDirection =\n getEffectiveDirection() === \"rtl\" ? -logicalDirection : logicalDirection;\n const fromX = visualDirection > 0 ? -14 : 14;\n\n panel.animate(\n [\n { opacity: 0, transform: `translateX(${fromX}px)` },\n { opacity: 1, transform: \"translateX(0px)\" },\n ],\n {\n duration: animationDurationMs,\n easing: \"cubic-bezier(0.22, 1, 0.36, 1)\",\n },\n );\n\n previousIndexRef.current = activeIndex;\n }, [activeIndex, animationDurationMs, getEffectiveDirection]);\n\n const activeItem = items[activeIndex] ?? items[0];\n\n useLayoutEffect(() => {\n const updateIndicator = () => {\n const selectedSlot = tabSlotRefs.current[activeItem?.id ?? \"\"];\n if (!selectedSlot) {\n setIndicator(null);\n return;\n }\n\n setIndicator({\n left: selectedSlot.offsetLeft,\n width: selectedSlot.offsetWidth,\n });\n };\n\n updateIndicator();\n window.addEventListener(\"resize\", updateIndicator);\n return () => window.removeEventListener(\"resize\", updateIndicator);\n }, [activeItem?.id, items.length]);\n\n const setValue = (nextValue: string) => {\n if (!isControlled) {\n setInternalValue(nextValue);\n }\n onValueChange?.(nextValue);\n };\n\n const moveBy = (delta: number) => {\n if (items.length === 0) {\n return;\n }\n\n let probe = activeIndex;\n for (let step = 0; step < items.length; step++) {\n probe = (probe + delta + items.length) % items.length;\n const candidate = items[probe];\n if (!candidate?.disabled) {\n setValue(candidate.id);\n return;\n }\n }\n };\n\n return (\n <div\n ref={rootRef}\n dir={dir === \"auto\" ? undefined : dir}\n className={mergeClassNames(\"w-full\", className)}\n >\n <div\n ref={listRef}\n role=\"tablist\"\n aria-orientation=\"horizontal\"\n className={mergeClassNames(\n \"relative flex h-9 w-full items-center gap-0 overflow-hidden rounded-lg border border-ds-border-3 bg-ds-surface-2 p-1\",\n listClassName,\n )}\n >\n {items.length > 0 && indicator ? (\n <span\n aria-hidden=\"true\"\n className=\"pointer-events-none absolute bottom-1 top-1 rounded-md border border-ds-border-accent/45 bg-ds-accent shadow-[0_1px_3px_rgba(0,0,0,0.1),0_1px_2px_rgba(0,0,0,0.06)] transition-transform duration-300 ease-out\"\n style={{\n width: `${indicator.width}px`,\n transform: `translateX(${indicator.left}px)`,\n left: 0,\n }}\n />\n ) : null}\n {items.map((item) => {\n const selected = item.id === activeItem?.id;\n return (\n <div\n key={item.id}\n ref={(node) => {\n tabSlotRefs.current[item.id] = node;\n }}\n className=\"relative z-10 h-full min-w-0 flex-1\"\n >\n <Button\n role=\"tab\"\n id={`tab-${item.id}`}\n aria-selected={selected}\n aria-controls={`tabpanel-${item.id}`}\n tabIndex={selected ? 0 : -1}\n disabled={item.disabled}\n variant=\"tertiary\"\n size=\"small\"\n className={mergeClassNames(\n \"h-full w-full rounded-md px-3 py-1 text-base font-normal leading-[22px] transition-colors duration-200\",\n \"outline-none focus-visible:ring-2 focus-visible:ring-ds-focus/60\",\n selected ? \"text-ds-on-accent\" : \"text-ds-2 hover:text-ds-1\",\n item.disabled && \"cursor-not-allowed opacity-55\",\n triggerClassName,\n )}\n onClick={() => {\n if (!item.disabled) {\n setValue(item.id);\n }\n }}\n onKeyDown={(event) => {\n if (event.key === \"ArrowRight\") {\n event.preventDefault();\n moveBy(getEffectiveDirection() === \"rtl\" ? -1 : 1);\n }\n\n if (event.key === \"ArrowLeft\") {\n event.preventDefault();\n moveBy(getEffectiveDirection() === \"rtl\" ? 1 : -1);\n }\n\n if (event.key === \"Home\") {\n event.preventDefault();\n const first = items.find((candidate) => !candidate.disabled);\n if (first) {\n setValue(first.id);\n }\n }\n\n if (event.key === \"End\") {\n event.preventDefault();\n const reversed = [...items].reverse();\n const last = reversed.find(\n (candidate) => !candidate.disabled,\n );\n if (last) {\n setValue(last.id);\n }\n }\n }}\n >\n {item.label}\n </Button>\n </div>\n );\n })}\n </div>\n\n <div\n ref={panelRef}\n role=\"tabpanel\"\n id={`tabpanel-${activeItem?.id ?? \"\"}`}\n aria-labelledby={`tab-${activeItem?.id ?? \"\"}`}\n className={mergeClassNames(\"mt-2 w-full\", panelClassName)}\n >\n {activeItem?.content}\n </div>\n </div>\n );\n}\n"],"mappings":"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"}
|
package/dist/input.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
-
const require_input = require("./chunks/input-
|
|
2
|
+
const require_input = require("./chunks/input-DkCPyWXi.cjs");
|
|
3
3
|
exports.Input = require_input.Input;
|
|
4
4
|
exports.InputState = require_input.InputState;
|
package/dist/input.mjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { n as InputState, t as Input } from "./chunks/input-
|
|
1
|
+
import { n as InputState, t as Input } from "./chunks/input-Bqo9Q5zF.mjs";
|
|
2
2
|
export { Input, InputState };
|
package/dist/label.cjs
CHANGED
package/dist/label.mjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { t as Label } from "./chunks/label-
|
|
1
|
+
import { t as Label } from "./chunks/label-Drxg0cG2.mjs";
|
|
2
2
|
export { Label };
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
-
const require_multi_select_combobox = require("./chunks/multi-select-combobox-
|
|
2
|
+
const require_multi_select_combobox = require("./chunks/multi-select-combobox-C0DoDzxQ.cjs");
|
|
3
3
|
exports.MultiSelectCombobox = require_multi_select_combobox.MultiSelectCombobox;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { t as MultiSelectCombobox } from "./chunks/multi-select-combobox-
|
|
1
|
+
import { t as MultiSelectCombobox } from "./chunks/multi-select-combobox-Do23ZfOQ.mjs";
|
|
2
2
|
export { MultiSelectCombobox };
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
-
const require_password_strength_meter = require("./chunks/password-strength-meter-
|
|
2
|
+
const require_password_strength_meter = require("./chunks/password-strength-meter-DCi_BP7e.cjs");
|
|
3
3
|
exports.PasswordStrengthMeter = require_password_strength_meter.PasswordStrengthMeter;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { t as PasswordStrengthMeter } from "./chunks/password-strength-meter-
|
|
1
|
+
import { t as PasswordStrengthMeter } from "./chunks/password-strength-meter-BsvqQBAg.mjs";
|
|
2
2
|
export { PasswordStrengthMeter };
|
package/dist/progress-bar.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
-
const require_progress_bar = require("./chunks/progress-bar-
|
|
2
|
+
const require_progress_bar = require("./chunks/progress-bar-CYaBO_lS.cjs");
|
|
3
3
|
exports.CircularProgress = require_progress_bar.CircularProgress;
|
|
4
4
|
exports.ProgressBar = require_progress_bar.ProgressBar;
|
package/dist/progress-bar.mjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { n as ProgressBar, t as CircularProgress } from "./chunks/progress-bar-
|
|
1
|
+
import { n as ProgressBar, t as CircularProgress } from "./chunks/progress-bar-DQ5ZKk2Y.mjs";
|
|
2
2
|
export { CircularProgress, ProgressBar };
|
package/dist/radio.cjs
CHANGED
package/dist/radio.mjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { t as Radio } from "./chunks/radio-
|
|
1
|
+
import { t as Radio } from "./chunks/radio-CuiM_gDv.mjs";
|
|
2
2
|
export { Radio };
|
package/dist/select.cjs
CHANGED
package/dist/select.mjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { t as Select } from "./chunks/select-
|
|
1
|
+
import { t as Select } from "./chunks/select-CUaSNR09.mjs";
|
|
2
2
|
export { Select };
|
package/dist/sidebar.cjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
-
const require_sidebar = require("./chunks/sidebar-
|
|
2
|
+
const require_sidebar = require("./chunks/sidebar-Kkr45nuN.cjs");
|
|
3
3
|
exports.DashboardSidebarShell = require_sidebar.DashboardSidebarShell;
|
|
4
4
|
exports.HamburgerIcon = require_sidebar.HamburgerIcon;
|
|
5
5
|
exports.NavLink = require_sidebar.NavLink;
|
package/dist/sidebar.mjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { a as HamburgerIcon, i as NavLink, n as Sidebar, r as SidebarLinks, t as DashboardSidebarShell } from "./chunks/sidebar-
|
|
1
|
+
import { a as HamburgerIcon, i as NavLink, n as Sidebar, r as SidebarLinks, t as DashboardSidebarShell } from "./chunks/sidebar-DYEDFV2u.mjs";
|
|
2
2
|
export { DashboardSidebarShell, HamburgerIcon, NavLink, Sidebar, SidebarLinks };
|
package/dist/skeleton.cjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
-
const require_skeleton = require("./chunks/skeleton-
|
|
2
|
+
const require_skeleton = require("./chunks/skeleton-DCBGLNAZ.cjs");
|
|
3
3
|
exports.Skeleton = require_skeleton.Skeleton;
|
|
4
4
|
exports.SkeletonAvatar = require_skeleton.SkeletonAvatar;
|
|
5
5
|
exports.SkeletonButton = require_skeleton.SkeletonButton;
|