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
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
require("./chunk-B_GkZjkl.cjs");
|
|
2
|
-
const require_utils = require("./utils-
|
|
2
|
+
const require_utils = require("./utils-LRbEQHYs.cjs");
|
|
3
3
|
let react = require("react");
|
|
4
4
|
let react_jsx_runtime = require("react/jsx-runtime");
|
|
5
5
|
let framer_motion = require("framer-motion");
|
|
@@ -218,4 +218,4 @@ Object.defineProperty(exports, "ChromaGrid", {
|
|
|
218
218
|
}
|
|
219
219
|
});
|
|
220
220
|
|
|
221
|
-
//# sourceMappingURL=chroma-grid-
|
|
221
|
+
//# sourceMappingURL=chroma-grid-DcZ9f4Ui.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chroma-grid-tJX7CzCS.cjs","names":[],"sources":["../../src/components/effects/chroma-grid/ChromaGrid.tsx"],"sourcesContent":["import { useState, useRef } from \"react\";\nimport { motion } from \"framer-motion\";\nimport { mergeClassNames } from \"../../../utils\";\nimport type { ChromaGridProps, ChromaGridItem } from \"./types\";\n\nconst borderRadiusMap = {\n sm: \"rounded-sm\",\n md: \"rounded-md\",\n lg: \"rounded-lg\",\n xl: \"rounded-xl\",\n \"2xl\": \"rounded-2xl\",\n};\n\nconst defaultColors = [\n \"linear-gradient(135deg, var(--ds-color-accent) 0%, var(--ds-color-accent-hover) 100%)\",\n \"linear-gradient(135deg, var(--ds-color-accent) 0%, var(--ds-color-info) 100%)\",\n \"linear-gradient(135deg, var(--ds-color-info) 0%, var(--ds-color-accent-hover) 100%)\",\n \"linear-gradient(135deg, var(--ds-color-success) 0%, var(--ds-color-accent) 100%)\",\n \"linear-gradient(135deg, var(--ds-color-warning) 0%, var(--ds-color-accent) 100%)\",\n \"linear-gradient(135deg, var(--ds-color-danger) 0%, var(--ds-color-warning) 100%)\",\n \"linear-gradient(135deg, var(--ds-color-accent-hover) 0%, var(--ds-color-success) 100%)\",\n \"linear-gradient(135deg, var(--ds-color-info) 0%, var(--ds-color-success) 100%)\",\n];\n\nconst getAnimation = (\n animation: string,\n index: number,\n staggerDelay: number,\n) => {\n const delay = (index * staggerDelay) / 1000;\n\n switch (animation) {\n case \"wave\":\n return {\n initial: { opacity: 0, y: 30, rotateX: -15 },\n animate: { opacity: 1, y: 0, rotateX: 0 },\n transition: { delay, duration: 0.6, ease: [0.23, 1, 0.32, 1] as const },\n };\n case \"pulse\":\n return {\n initial: { scale: 0.8, opacity: 0 },\n animate: { scale: 1, opacity: 1 },\n transition: {\n delay,\n duration: 0.5,\n type: \"spring\" as const,\n stiffness: 200,\n },\n };\n case \"fadeIn\":\n return {\n initial: { opacity: 0 },\n animate: { opacity: 1 },\n transition: { delay, duration: 0.4 },\n };\n case \"scale\":\n return {\n initial: { scale: 0, opacity: 0 },\n animate: { scale: 1, opacity: 1 },\n transition: {\n delay,\n duration: 0.5,\n type: \"spring\" as const,\n stiffness: 300,\n damping: 20,\n },\n };\n default:\n return {};\n }\n};\n\nconst getHoverEffect = (effect: string) => {\n switch (effect) {\n case \"lift\":\n return { y: -8, transition: { duration: 0.3 } };\n case \"glow\":\n return {\n boxShadow:\n \"0 0 30px color-mix(in srgb, var(--ds-color-accent) 45%, transparent)\",\n transition: { duration: 0.3 },\n };\n case \"scale\":\n return { scale: 1.05, transition: { duration: 0.3 } };\n case \"tilt\":\n return { rotateY: 5, rotateX: 5, transition: { duration: 0.3 } };\n default:\n return {};\n }\n};\n\ninterface GridItemProps {\n item: ChromaGridItem;\n index: number;\n animation: string;\n staggerDelay: number;\n hoverEffect: string;\n variant: string;\n borderRadius: string;\n minHeight: number;\n spotlight: boolean;\n}\n\nconst GridItem = ({\n item,\n index,\n animation,\n staggerDelay,\n hoverEffect,\n variant,\n borderRadius,\n minHeight,\n spotlight,\n}: GridItemProps) => {\n const itemRef = useRef<HTMLDivElement>(null);\n const [mousePosition, setMousePosition] = useState({ x: 0, y: 0 });\n const [isHovered, setIsHovered] = useState(false);\n\n const color = item.color || defaultColors[index % defaultColors.length];\n const animationProps = getAnimation(animation, index, staggerDelay);\n const hoverProps = getHoverEffect(hoverEffect);\n\n const handleMouseMove = (e: React.MouseEvent) => {\n if (!itemRef.current || !spotlight) return;\n const rect = itemRef.current.getBoundingClientRect();\n setMousePosition({\n x: e.clientX - rect.left,\n y: e.clientY - rect.top,\n });\n };\n\n const gridSpan =\n item.size && item.size > 1\n ? { gridColumn: `span ${item.size}`, gridRow: `span ${item.size}` }\n : {};\n\n const variantStyles = {\n glass: {\n backgroundColor: \"rgba(255, 255, 255, 0.1)\",\n backdropFilter: \"blur(20px)\",\n WebkitBackdropFilter: \"blur(20px)\",\n },\n solid: {},\n gradient: { background: color },\n };\n\n return (\n <motion.div\n ref={itemRef}\n className={mergeClassNames(\n \"relative overflow-hidden cursor-pointer transition-shadow\",\n borderRadiusMap[borderRadius as keyof typeof borderRadiusMap],\n variant === \"glass\" && \"border border-ds-border-2/50\",\n item.className,\n )}\n style={{\n minHeight:\n item.size && item.size > 1 ? minHeight * item.size : minHeight,\n ...gridSpan,\n ...variantStyles[variant as keyof typeof variantStyles],\n ...(variant !== \"glass\" && { background: color }),\n }}\n onMouseMove={handleMouseMove}\n onMouseEnter={() => setIsHovered(true)}\n onMouseLeave={() => setIsHovered(false)}\n onClick={item.onClick}\n {...animationProps}\n whileHover={hoverProps}\n >\n {/* Spotlight effect */}\n {spotlight && isHovered && (\n <motion.div\n className=\"pointer-events-none absolute inset-0 z-0\"\n style={{\n background: `radial-gradient(300px circle at ${mousePosition.x}px ${mousePosition.y}px, rgba(255,255,255,0.2), transparent 70%)`,\n }}\n initial={{ opacity: 0 }}\n animate={{ opacity: 1 }}\n transition={{ duration: 0.2 }}\n />\n )}\n\n {/* Glass overlay for gradient variant */}\n {variant === \"gradient\" && (\n <div className=\"absolute inset-0 bg-ds-canvas/15\" />\n )}\n\n {/* Content */}\n <div className=\"relative z-10 h-full flex flex-col justify-center items-center p-6 text-center\">\n {item.icon && (\n <div className=\"text-4xl text-ds-on-accent mb-3 drop-shadow-lg\">\n {item.icon}\n </div>\n )}\n {item.title && (\n <h3 className=\"text-lg font-bold text-ds-on-accent mb-1 drop-shadow-md\">\n {item.title}\n </h3>\n )}\n {item.description && (\n <p className=\"text-sm text-ds-on-accent/80 drop-shadow-sm\">\n {item.description}\n </p>\n )}\n {item.content}\n </div>\n </motion.div>\n );\n};\n\nexport const ChromaGrid = ({\n items,\n className,\n columns = 3,\n gap = 16,\n minHeight = 200,\n animation = \"wave\",\n staggerDelay = 100,\n hoverEffect = \"lift\",\n variant = \"gradient\",\n borderRadius = \"xl\",\n spotlight = true,\n style,\n}: ChromaGridProps) => {\n return (\n <div\n className={mergeClassNames(\"grid w-full\", className)}\n style={{\n gridTemplateColumns: `repeat(${columns}, 1fr)`,\n gap: `${gap}px`,\n ...style,\n }}\n >\n {items.map((item, index) => (\n <GridItem\n key={item.id}\n item={item}\n index={index}\n animation={animation}\n staggerDelay={staggerDelay}\n hoverEffect={hoverEffect}\n variant={variant}\n borderRadius={borderRadius}\n minHeight={minHeight}\n spotlight={spotlight}\n />\n ))}\n </div>\n );\n};\n\nChromaGrid.displayName = \"ChromaGrid\";\n\nexport default ChromaGrid;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"chroma-grid-DcZ9f4Ui.cjs","names":[],"sources":["../../src/components/effects/chroma-grid/ChromaGrid.tsx"],"sourcesContent":["import { useState, useRef } from \"react\";\nimport { motion } from \"framer-motion\";\nimport { mergeClassNames } from \"../../../utils\";\nimport type { ChromaGridProps, ChromaGridItem } from \"./types\";\n\nconst borderRadiusMap = {\n sm: \"rounded-sm\",\n md: \"rounded-md\",\n lg: \"rounded-lg\",\n xl: \"rounded-xl\",\n \"2xl\": \"rounded-2xl\",\n};\n\nconst defaultColors = [\n \"linear-gradient(135deg, var(--ds-color-accent) 0%, var(--ds-color-accent-hover) 100%)\",\n \"linear-gradient(135deg, var(--ds-color-accent) 0%, var(--ds-color-info) 100%)\",\n \"linear-gradient(135deg, var(--ds-color-info) 0%, var(--ds-color-accent-hover) 100%)\",\n \"linear-gradient(135deg, var(--ds-color-success) 0%, var(--ds-color-accent) 100%)\",\n \"linear-gradient(135deg, var(--ds-color-warning) 0%, var(--ds-color-accent) 100%)\",\n \"linear-gradient(135deg, var(--ds-color-danger) 0%, var(--ds-color-warning) 100%)\",\n \"linear-gradient(135deg, var(--ds-color-accent-hover) 0%, var(--ds-color-success) 100%)\",\n \"linear-gradient(135deg, var(--ds-color-info) 0%, var(--ds-color-success) 100%)\",\n];\n\nconst getAnimation = (\n animation: string,\n index: number,\n staggerDelay: number,\n) => {\n const delay = (index * staggerDelay) / 1000;\n\n switch (animation) {\n case \"wave\":\n return {\n initial: { opacity: 0, y: 30, rotateX: -15 },\n animate: { opacity: 1, y: 0, rotateX: 0 },\n transition: { delay, duration: 0.6, ease: [0.23, 1, 0.32, 1] as const },\n };\n case \"pulse\":\n return {\n initial: { scale: 0.8, opacity: 0 },\n animate: { scale: 1, opacity: 1 },\n transition: {\n delay,\n duration: 0.5,\n type: \"spring\" as const,\n stiffness: 200,\n },\n };\n case \"fadeIn\":\n return {\n initial: { opacity: 0 },\n animate: { opacity: 1 },\n transition: { delay, duration: 0.4 },\n };\n case \"scale\":\n return {\n initial: { scale: 0, opacity: 0 },\n animate: { scale: 1, opacity: 1 },\n transition: {\n delay,\n duration: 0.5,\n type: \"spring\" as const,\n stiffness: 300,\n damping: 20,\n },\n };\n default:\n return {};\n }\n};\n\nconst getHoverEffect = (effect: string) => {\n switch (effect) {\n case \"lift\":\n return { y: -8, transition: { duration: 0.3 } };\n case \"glow\":\n return {\n boxShadow:\n \"0 0 30px color-mix(in srgb, var(--ds-color-accent) 45%, transparent)\",\n transition: { duration: 0.3 },\n };\n case \"scale\":\n return { scale: 1.05, transition: { duration: 0.3 } };\n case \"tilt\":\n return { rotateY: 5, rotateX: 5, transition: { duration: 0.3 } };\n default:\n return {};\n }\n};\n\ninterface GridItemProps {\n item: ChromaGridItem;\n index: number;\n animation: string;\n staggerDelay: number;\n hoverEffect: string;\n variant: string;\n borderRadius: string;\n minHeight: number;\n spotlight: boolean;\n}\n\nconst GridItem = ({\n item,\n index,\n animation,\n staggerDelay,\n hoverEffect,\n variant,\n borderRadius,\n minHeight,\n spotlight,\n}: GridItemProps) => {\n const itemRef = useRef<HTMLDivElement>(null);\n const [mousePosition, setMousePosition] = useState({ x: 0, y: 0 });\n const [isHovered, setIsHovered] = useState(false);\n\n const color = item.color || defaultColors[index % defaultColors.length];\n const animationProps = getAnimation(animation, index, staggerDelay);\n const hoverProps = getHoverEffect(hoverEffect);\n\n const handleMouseMove = (e: React.MouseEvent) => {\n if (!itemRef.current || !spotlight) return;\n const rect = itemRef.current.getBoundingClientRect();\n setMousePosition({\n x: e.clientX - rect.left,\n y: e.clientY - rect.top,\n });\n };\n\n const gridSpan =\n item.size && item.size > 1\n ? { gridColumn: `span ${item.size}`, gridRow: `span ${item.size}` }\n : {};\n\n const variantStyles = {\n glass: {\n backgroundColor: \"rgba(255, 255, 255, 0.1)\",\n backdropFilter: \"blur(20px)\",\n WebkitBackdropFilter: \"blur(20px)\",\n },\n solid: {},\n gradient: { background: color },\n };\n\n return (\n <motion.div\n ref={itemRef}\n className={mergeClassNames(\n \"relative overflow-hidden cursor-pointer transition-shadow\",\n borderRadiusMap[borderRadius as keyof typeof borderRadiusMap],\n variant === \"glass\" && \"border border-ds-border-2/50\",\n item.className,\n )}\n style={{\n minHeight:\n item.size && item.size > 1 ? minHeight * item.size : minHeight,\n ...gridSpan,\n ...variantStyles[variant as keyof typeof variantStyles],\n ...(variant !== \"glass\" && { background: color }),\n }}\n onMouseMove={handleMouseMove}\n onMouseEnter={() => setIsHovered(true)}\n onMouseLeave={() => setIsHovered(false)}\n onClick={item.onClick}\n {...animationProps}\n whileHover={hoverProps}\n >\n {/* Spotlight effect */}\n {spotlight && isHovered && (\n <motion.div\n className=\"pointer-events-none absolute inset-0 z-0\"\n style={{\n background: `radial-gradient(300px circle at ${mousePosition.x}px ${mousePosition.y}px, rgba(255,255,255,0.2), transparent 70%)`,\n }}\n initial={{ opacity: 0 }}\n animate={{ opacity: 1 }}\n transition={{ duration: 0.2 }}\n />\n )}\n\n {/* Glass overlay for gradient variant */}\n {variant === \"gradient\" && (\n <div className=\"absolute inset-0 bg-ds-canvas/15\" />\n )}\n\n {/* Content */}\n <div className=\"relative z-10 h-full flex flex-col justify-center items-center p-6 text-center\">\n {item.icon && (\n <div className=\"text-4xl text-ds-on-accent mb-3 drop-shadow-lg\">\n {item.icon}\n </div>\n )}\n {item.title && (\n <h3 className=\"text-lg font-bold text-ds-on-accent mb-1 drop-shadow-md\">\n {item.title}\n </h3>\n )}\n {item.description && (\n <p className=\"text-sm text-ds-on-accent/80 drop-shadow-sm\">\n {item.description}\n </p>\n )}\n {item.content}\n </div>\n </motion.div>\n );\n};\n\nexport const ChromaGrid = ({\n items,\n className,\n columns = 3,\n gap = 16,\n minHeight = 200,\n animation = \"wave\",\n staggerDelay = 100,\n hoverEffect = \"lift\",\n variant = \"gradient\",\n borderRadius = \"xl\",\n spotlight = true,\n style,\n}: ChromaGridProps) => {\n return (\n <div\n className={mergeClassNames(\"grid w-full\", className)}\n style={{\n gridTemplateColumns: `repeat(${columns}, 1fr)`,\n gap: `${gap}px`,\n ...style,\n }}\n >\n {items.map((item, index) => (\n <GridItem\n key={item.id}\n item={item}\n index={index}\n animation={animation}\n staggerDelay={staggerDelay}\n hoverEffect={hoverEffect}\n variant={variant}\n borderRadius={borderRadius}\n minHeight={minHeight}\n spotlight={spotlight}\n />\n ))}\n </div>\n );\n};\n\nChromaGrid.displayName = \"ChromaGrid\";\n\nexport default ChromaGrid;\n"],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { n as mergeClassNames } from "./utils-
|
|
1
|
+
import { n as mergeClassNames } from "./utils-7S0u48mU.mjs";
|
|
2
2
|
import { useRef, useState } from "react";
|
|
3
3
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
4
4
|
import { motion } from "framer-motion";
|
|
@@ -212,4 +212,4 @@ ChromaGrid.displayName = "ChromaGrid";
|
|
|
212
212
|
//#endregion
|
|
213
213
|
export { ChromaGrid as t };
|
|
214
214
|
|
|
215
|
-
//# sourceMappingURL=chroma-grid-
|
|
215
|
+
//# sourceMappingURL=chroma-grid-opB2DBtS.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chroma-grid-DlY9hIRI.mjs","names":[],"sources":["../../src/components/effects/chroma-grid/ChromaGrid.tsx"],"sourcesContent":["import { useState, useRef } from \"react\";\nimport { motion } from \"framer-motion\";\nimport { mergeClassNames } from \"../../../utils\";\nimport type { ChromaGridProps, ChromaGridItem } from \"./types\";\n\nconst borderRadiusMap = {\n sm: \"rounded-sm\",\n md: \"rounded-md\",\n lg: \"rounded-lg\",\n xl: \"rounded-xl\",\n \"2xl\": \"rounded-2xl\",\n};\n\nconst defaultColors = [\n \"linear-gradient(135deg, var(--ds-color-accent) 0%, var(--ds-color-accent-hover) 100%)\",\n \"linear-gradient(135deg, var(--ds-color-accent) 0%, var(--ds-color-info) 100%)\",\n \"linear-gradient(135deg, var(--ds-color-info) 0%, var(--ds-color-accent-hover) 100%)\",\n \"linear-gradient(135deg, var(--ds-color-success) 0%, var(--ds-color-accent) 100%)\",\n \"linear-gradient(135deg, var(--ds-color-warning) 0%, var(--ds-color-accent) 100%)\",\n \"linear-gradient(135deg, var(--ds-color-danger) 0%, var(--ds-color-warning) 100%)\",\n \"linear-gradient(135deg, var(--ds-color-accent-hover) 0%, var(--ds-color-success) 100%)\",\n \"linear-gradient(135deg, var(--ds-color-info) 0%, var(--ds-color-success) 100%)\",\n];\n\nconst getAnimation = (\n animation: string,\n index: number,\n staggerDelay: number,\n) => {\n const delay = (index * staggerDelay) / 1000;\n\n switch (animation) {\n case \"wave\":\n return {\n initial: { opacity: 0, y: 30, rotateX: -15 },\n animate: { opacity: 1, y: 0, rotateX: 0 },\n transition: { delay, duration: 0.6, ease: [0.23, 1, 0.32, 1] as const },\n };\n case \"pulse\":\n return {\n initial: { scale: 0.8, opacity: 0 },\n animate: { scale: 1, opacity: 1 },\n transition: {\n delay,\n duration: 0.5,\n type: \"spring\" as const,\n stiffness: 200,\n },\n };\n case \"fadeIn\":\n return {\n initial: { opacity: 0 },\n animate: { opacity: 1 },\n transition: { delay, duration: 0.4 },\n };\n case \"scale\":\n return {\n initial: { scale: 0, opacity: 0 },\n animate: { scale: 1, opacity: 1 },\n transition: {\n delay,\n duration: 0.5,\n type: \"spring\" as const,\n stiffness: 300,\n damping: 20,\n },\n };\n default:\n return {};\n }\n};\n\nconst getHoverEffect = (effect: string) => {\n switch (effect) {\n case \"lift\":\n return { y: -8, transition: { duration: 0.3 } };\n case \"glow\":\n return {\n boxShadow:\n \"0 0 30px color-mix(in srgb, var(--ds-color-accent) 45%, transparent)\",\n transition: { duration: 0.3 },\n };\n case \"scale\":\n return { scale: 1.05, transition: { duration: 0.3 } };\n case \"tilt\":\n return { rotateY: 5, rotateX: 5, transition: { duration: 0.3 } };\n default:\n return {};\n }\n};\n\ninterface GridItemProps {\n item: ChromaGridItem;\n index: number;\n animation: string;\n staggerDelay: number;\n hoverEffect: string;\n variant: string;\n borderRadius: string;\n minHeight: number;\n spotlight: boolean;\n}\n\nconst GridItem = ({\n item,\n index,\n animation,\n staggerDelay,\n hoverEffect,\n variant,\n borderRadius,\n minHeight,\n spotlight,\n}: GridItemProps) => {\n const itemRef = useRef<HTMLDivElement>(null);\n const [mousePosition, setMousePosition] = useState({ x: 0, y: 0 });\n const [isHovered, setIsHovered] = useState(false);\n\n const color = item.color || defaultColors[index % defaultColors.length];\n const animationProps = getAnimation(animation, index, staggerDelay);\n const hoverProps = getHoverEffect(hoverEffect);\n\n const handleMouseMove = (e: React.MouseEvent) => {\n if (!itemRef.current || !spotlight) return;\n const rect = itemRef.current.getBoundingClientRect();\n setMousePosition({\n x: e.clientX - rect.left,\n y: e.clientY - rect.top,\n });\n };\n\n const gridSpan =\n item.size && item.size > 1\n ? { gridColumn: `span ${item.size}`, gridRow: `span ${item.size}` }\n : {};\n\n const variantStyles = {\n glass: {\n backgroundColor: \"rgba(255, 255, 255, 0.1)\",\n backdropFilter: \"blur(20px)\",\n WebkitBackdropFilter: \"blur(20px)\",\n },\n solid: {},\n gradient: { background: color },\n };\n\n return (\n <motion.div\n ref={itemRef}\n className={mergeClassNames(\n \"relative overflow-hidden cursor-pointer transition-shadow\",\n borderRadiusMap[borderRadius as keyof typeof borderRadiusMap],\n variant === \"glass\" && \"border border-ds-border-2/50\",\n item.className,\n )}\n style={{\n minHeight:\n item.size && item.size > 1 ? minHeight * item.size : minHeight,\n ...gridSpan,\n ...variantStyles[variant as keyof typeof variantStyles],\n ...(variant !== \"glass\" && { background: color }),\n }}\n onMouseMove={handleMouseMove}\n onMouseEnter={() => setIsHovered(true)}\n onMouseLeave={() => setIsHovered(false)}\n onClick={item.onClick}\n {...animationProps}\n whileHover={hoverProps}\n >\n {/* Spotlight effect */}\n {spotlight && isHovered && (\n <motion.div\n className=\"pointer-events-none absolute inset-0 z-0\"\n style={{\n background: `radial-gradient(300px circle at ${mousePosition.x}px ${mousePosition.y}px, rgba(255,255,255,0.2), transparent 70%)`,\n }}\n initial={{ opacity: 0 }}\n animate={{ opacity: 1 }}\n transition={{ duration: 0.2 }}\n />\n )}\n\n {/* Glass overlay for gradient variant */}\n {variant === \"gradient\" && (\n <div className=\"absolute inset-0 bg-ds-canvas/15\" />\n )}\n\n {/* Content */}\n <div className=\"relative z-10 h-full flex flex-col justify-center items-center p-6 text-center\">\n {item.icon && (\n <div className=\"text-4xl text-ds-on-accent mb-3 drop-shadow-lg\">\n {item.icon}\n </div>\n )}\n {item.title && (\n <h3 className=\"text-lg font-bold text-ds-on-accent mb-1 drop-shadow-md\">\n {item.title}\n </h3>\n )}\n {item.description && (\n <p className=\"text-sm text-ds-on-accent/80 drop-shadow-sm\">\n {item.description}\n </p>\n )}\n {item.content}\n </div>\n </motion.div>\n );\n};\n\nexport const ChromaGrid = ({\n items,\n className,\n columns = 3,\n gap = 16,\n minHeight = 200,\n animation = \"wave\",\n staggerDelay = 100,\n hoverEffect = \"lift\",\n variant = \"gradient\",\n borderRadius = \"xl\",\n spotlight = true,\n style,\n}: ChromaGridProps) => {\n return (\n <div\n className={mergeClassNames(\"grid w-full\", className)}\n style={{\n gridTemplateColumns: `repeat(${columns}, 1fr)`,\n gap: `${gap}px`,\n ...style,\n }}\n >\n {items.map((item, index) => (\n <GridItem\n key={item.id}\n item={item}\n index={index}\n animation={animation}\n staggerDelay={staggerDelay}\n hoverEffect={hoverEffect}\n variant={variant}\n borderRadius={borderRadius}\n minHeight={minHeight}\n spotlight={spotlight}\n />\n ))}\n </div>\n );\n};\n\nChromaGrid.displayName = \"ChromaGrid\";\n\nexport default ChromaGrid;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"chroma-grid-opB2DBtS.mjs","names":[],"sources":["../../src/components/effects/chroma-grid/ChromaGrid.tsx"],"sourcesContent":["import { useState, useRef } from \"react\";\nimport { motion } from \"framer-motion\";\nimport { mergeClassNames } from \"../../../utils\";\nimport type { ChromaGridProps, ChromaGridItem } from \"./types\";\n\nconst borderRadiusMap = {\n sm: \"rounded-sm\",\n md: \"rounded-md\",\n lg: \"rounded-lg\",\n xl: \"rounded-xl\",\n \"2xl\": \"rounded-2xl\",\n};\n\nconst defaultColors = [\n \"linear-gradient(135deg, var(--ds-color-accent) 0%, var(--ds-color-accent-hover) 100%)\",\n \"linear-gradient(135deg, var(--ds-color-accent) 0%, var(--ds-color-info) 100%)\",\n \"linear-gradient(135deg, var(--ds-color-info) 0%, var(--ds-color-accent-hover) 100%)\",\n \"linear-gradient(135deg, var(--ds-color-success) 0%, var(--ds-color-accent) 100%)\",\n \"linear-gradient(135deg, var(--ds-color-warning) 0%, var(--ds-color-accent) 100%)\",\n \"linear-gradient(135deg, var(--ds-color-danger) 0%, var(--ds-color-warning) 100%)\",\n \"linear-gradient(135deg, var(--ds-color-accent-hover) 0%, var(--ds-color-success) 100%)\",\n \"linear-gradient(135deg, var(--ds-color-info) 0%, var(--ds-color-success) 100%)\",\n];\n\nconst getAnimation = (\n animation: string,\n index: number,\n staggerDelay: number,\n) => {\n const delay = (index * staggerDelay) / 1000;\n\n switch (animation) {\n case \"wave\":\n return {\n initial: { opacity: 0, y: 30, rotateX: -15 },\n animate: { opacity: 1, y: 0, rotateX: 0 },\n transition: { delay, duration: 0.6, ease: [0.23, 1, 0.32, 1] as const },\n };\n case \"pulse\":\n return {\n initial: { scale: 0.8, opacity: 0 },\n animate: { scale: 1, opacity: 1 },\n transition: {\n delay,\n duration: 0.5,\n type: \"spring\" as const,\n stiffness: 200,\n },\n };\n case \"fadeIn\":\n return {\n initial: { opacity: 0 },\n animate: { opacity: 1 },\n transition: { delay, duration: 0.4 },\n };\n case \"scale\":\n return {\n initial: { scale: 0, opacity: 0 },\n animate: { scale: 1, opacity: 1 },\n transition: {\n delay,\n duration: 0.5,\n type: \"spring\" as const,\n stiffness: 300,\n damping: 20,\n },\n };\n default:\n return {};\n }\n};\n\nconst getHoverEffect = (effect: string) => {\n switch (effect) {\n case \"lift\":\n return { y: -8, transition: { duration: 0.3 } };\n case \"glow\":\n return {\n boxShadow:\n \"0 0 30px color-mix(in srgb, var(--ds-color-accent) 45%, transparent)\",\n transition: { duration: 0.3 },\n };\n case \"scale\":\n return { scale: 1.05, transition: { duration: 0.3 } };\n case \"tilt\":\n return { rotateY: 5, rotateX: 5, transition: { duration: 0.3 } };\n default:\n return {};\n }\n};\n\ninterface GridItemProps {\n item: ChromaGridItem;\n index: number;\n animation: string;\n staggerDelay: number;\n hoverEffect: string;\n variant: string;\n borderRadius: string;\n minHeight: number;\n spotlight: boolean;\n}\n\nconst GridItem = ({\n item,\n index,\n animation,\n staggerDelay,\n hoverEffect,\n variant,\n borderRadius,\n minHeight,\n spotlight,\n}: GridItemProps) => {\n const itemRef = useRef<HTMLDivElement>(null);\n const [mousePosition, setMousePosition] = useState({ x: 0, y: 0 });\n const [isHovered, setIsHovered] = useState(false);\n\n const color = item.color || defaultColors[index % defaultColors.length];\n const animationProps = getAnimation(animation, index, staggerDelay);\n const hoverProps = getHoverEffect(hoverEffect);\n\n const handleMouseMove = (e: React.MouseEvent) => {\n if (!itemRef.current || !spotlight) return;\n const rect = itemRef.current.getBoundingClientRect();\n setMousePosition({\n x: e.clientX - rect.left,\n y: e.clientY - rect.top,\n });\n };\n\n const gridSpan =\n item.size && item.size > 1\n ? { gridColumn: `span ${item.size}`, gridRow: `span ${item.size}` }\n : {};\n\n const variantStyles = {\n glass: {\n backgroundColor: \"rgba(255, 255, 255, 0.1)\",\n backdropFilter: \"blur(20px)\",\n WebkitBackdropFilter: \"blur(20px)\",\n },\n solid: {},\n gradient: { background: color },\n };\n\n return (\n <motion.div\n ref={itemRef}\n className={mergeClassNames(\n \"relative overflow-hidden cursor-pointer transition-shadow\",\n borderRadiusMap[borderRadius as keyof typeof borderRadiusMap],\n variant === \"glass\" && \"border border-ds-border-2/50\",\n item.className,\n )}\n style={{\n minHeight:\n item.size && item.size > 1 ? minHeight * item.size : minHeight,\n ...gridSpan,\n ...variantStyles[variant as keyof typeof variantStyles],\n ...(variant !== \"glass\" && { background: color }),\n }}\n onMouseMove={handleMouseMove}\n onMouseEnter={() => setIsHovered(true)}\n onMouseLeave={() => setIsHovered(false)}\n onClick={item.onClick}\n {...animationProps}\n whileHover={hoverProps}\n >\n {/* Spotlight effect */}\n {spotlight && isHovered && (\n <motion.div\n className=\"pointer-events-none absolute inset-0 z-0\"\n style={{\n background: `radial-gradient(300px circle at ${mousePosition.x}px ${mousePosition.y}px, rgba(255,255,255,0.2), transparent 70%)`,\n }}\n initial={{ opacity: 0 }}\n animate={{ opacity: 1 }}\n transition={{ duration: 0.2 }}\n />\n )}\n\n {/* Glass overlay for gradient variant */}\n {variant === \"gradient\" && (\n <div className=\"absolute inset-0 bg-ds-canvas/15\" />\n )}\n\n {/* Content */}\n <div className=\"relative z-10 h-full flex flex-col justify-center items-center p-6 text-center\">\n {item.icon && (\n <div className=\"text-4xl text-ds-on-accent mb-3 drop-shadow-lg\">\n {item.icon}\n </div>\n )}\n {item.title && (\n <h3 className=\"text-lg font-bold text-ds-on-accent mb-1 drop-shadow-md\">\n {item.title}\n </h3>\n )}\n {item.description && (\n <p className=\"text-sm text-ds-on-accent/80 drop-shadow-sm\">\n {item.description}\n </p>\n )}\n {item.content}\n </div>\n </motion.div>\n );\n};\n\nexport const ChromaGrid = ({\n items,\n className,\n columns = 3,\n gap = 16,\n minHeight = 200,\n animation = \"wave\",\n staggerDelay = 100,\n hoverEffect = \"lift\",\n variant = \"gradient\",\n borderRadius = \"xl\",\n spotlight = true,\n style,\n}: ChromaGridProps) => {\n return (\n <div\n className={mergeClassNames(\"grid w-full\", className)}\n style={{\n gridTemplateColumns: `repeat(${columns}, 1fr)`,\n gap: `${gap}px`,\n ...style,\n }}\n >\n {items.map((item, index) => (\n <GridItem\n key={item.id}\n item={item}\n index={index}\n animation={animation}\n staggerDelay={staggerDelay}\n hoverEffect={hoverEffect}\n variant={variant}\n borderRadius={borderRadius}\n minHeight={minHeight}\n spotlight={spotlight}\n />\n ))}\n </div>\n );\n};\n\nChromaGrid.displayName = \"ChromaGrid\";\n\nexport default ChromaGrid;\n"],"mappings":"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"}
|
|
@@ -0,0 +1,329 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
3
|
+
//#region src/components/data-display/color-palette/ColorPalette.tsx
|
|
4
|
+
var surfaceGroup = {
|
|
5
|
+
name: "Surfaces",
|
|
6
|
+
swatches: [
|
|
7
|
+
{
|
|
8
|
+
twClass: "bg-ds-canvas",
|
|
9
|
+
cssVar: "var(--ds-surface-canvas)",
|
|
10
|
+
role: "Page / app canvas",
|
|
11
|
+
textOnColor: "dark"
|
|
12
|
+
},
|
|
13
|
+
{
|
|
14
|
+
twClass: "bg-ds-surface-1",
|
|
15
|
+
cssVar: "var(--ds-surface-1)",
|
|
16
|
+
role: "Card / panel",
|
|
17
|
+
textOnColor: "dark"
|
|
18
|
+
},
|
|
19
|
+
{
|
|
20
|
+
twClass: "bg-ds-surface-2",
|
|
21
|
+
cssVar: "var(--ds-surface-2)",
|
|
22
|
+
role: "Elevated (modal/popover)",
|
|
23
|
+
textOnColor: "dark"
|
|
24
|
+
},
|
|
25
|
+
{
|
|
26
|
+
twClass: "bg-ds-surface-3",
|
|
27
|
+
cssVar: "var(--ds-surface-3)",
|
|
28
|
+
role: "Highest elevated",
|
|
29
|
+
textOnColor: "dark"
|
|
30
|
+
},
|
|
31
|
+
{
|
|
32
|
+
twClass: "bg-ds-accent-subtle",
|
|
33
|
+
cssVar: "var(--ds-color-accent-subtle)",
|
|
34
|
+
role: "Accent tinted surface",
|
|
35
|
+
textOnColor: "dark"
|
|
36
|
+
}
|
|
37
|
+
]
|
|
38
|
+
};
|
|
39
|
+
var textGroup = {
|
|
40
|
+
name: "Text",
|
|
41
|
+
swatches: [
|
|
42
|
+
{
|
|
43
|
+
twClass: "text-ds-1",
|
|
44
|
+
cssVar: "var(--ds-text-1)",
|
|
45
|
+
role: "Primary text",
|
|
46
|
+
textOnColor: "light"
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
twClass: "text-ds-2",
|
|
50
|
+
cssVar: "var(--ds-text-2)",
|
|
51
|
+
role: "Secondary / labels",
|
|
52
|
+
textOnColor: "light"
|
|
53
|
+
},
|
|
54
|
+
{
|
|
55
|
+
twClass: "text-ds-3",
|
|
56
|
+
cssVar: "var(--ds-text-3)",
|
|
57
|
+
role: "Muted / hints",
|
|
58
|
+
textOnColor: "light"
|
|
59
|
+
},
|
|
60
|
+
{
|
|
61
|
+
twClass: "text-ds-on-accent",
|
|
62
|
+
cssVar: "var(--ds-color-on-accent)",
|
|
63
|
+
role: "On accent bg",
|
|
64
|
+
textOnColor: "dark"
|
|
65
|
+
}
|
|
66
|
+
]
|
|
67
|
+
};
|
|
68
|
+
var borderGroup = {
|
|
69
|
+
name: "Borders",
|
|
70
|
+
swatches: [
|
|
71
|
+
{
|
|
72
|
+
twClass: "border-ds-border-1",
|
|
73
|
+
cssVar: "var(--ds-border-1)",
|
|
74
|
+
role: "Strong border",
|
|
75
|
+
textOnColor: "dark"
|
|
76
|
+
},
|
|
77
|
+
{
|
|
78
|
+
twClass: "border-ds-border-2",
|
|
79
|
+
cssVar: "var(--ds-border-2)",
|
|
80
|
+
role: "Default border",
|
|
81
|
+
textOnColor: "dark"
|
|
82
|
+
},
|
|
83
|
+
{
|
|
84
|
+
twClass: "border-ds-border-3",
|
|
85
|
+
cssVar: "var(--ds-border-3)",
|
|
86
|
+
role: "Subtle divider",
|
|
87
|
+
textOnColor: "dark"
|
|
88
|
+
},
|
|
89
|
+
{
|
|
90
|
+
twClass: "border-ds-border-4",
|
|
91
|
+
cssVar: "var(--ds-border-4)",
|
|
92
|
+
role: "Faintest border",
|
|
93
|
+
textOnColor: "dark"
|
|
94
|
+
},
|
|
95
|
+
{
|
|
96
|
+
twClass: "border-ds-border-field",
|
|
97
|
+
cssVar: "var(--ds-border-field)",
|
|
98
|
+
role: "Input field border",
|
|
99
|
+
textOnColor: "dark"
|
|
100
|
+
}
|
|
101
|
+
]
|
|
102
|
+
};
|
|
103
|
+
var accentGroup = {
|
|
104
|
+
name: "Accent",
|
|
105
|
+
swatches: [
|
|
106
|
+
{
|
|
107
|
+
twClass: "bg-ds-accent",
|
|
108
|
+
cssVar: "var(--ds-color-accent)",
|
|
109
|
+
role: "Brand / interactive",
|
|
110
|
+
textOnColor: "light"
|
|
111
|
+
},
|
|
112
|
+
{
|
|
113
|
+
twClass: "bg-ds-accent-hover",
|
|
114
|
+
cssVar: "var(--ds-color-accent-hover)",
|
|
115
|
+
role: "Hover state",
|
|
116
|
+
textOnColor: "light"
|
|
117
|
+
},
|
|
118
|
+
{
|
|
119
|
+
twClass: "ring-ds-focus",
|
|
120
|
+
cssVar: "var(--ds-color-focus-ring)",
|
|
121
|
+
role: "Focus ring",
|
|
122
|
+
textOnColor: "light"
|
|
123
|
+
}
|
|
124
|
+
]
|
|
125
|
+
};
|
|
126
|
+
var accentScaleGroup = {
|
|
127
|
+
name: "Accent Scale",
|
|
128
|
+
swatches: [
|
|
129
|
+
{
|
|
130
|
+
twClass: "--ds-accent-50",
|
|
131
|
+
cssVar: "var(--ds-accent-50)",
|
|
132
|
+
role: "Lightest",
|
|
133
|
+
textOnColor: "dark"
|
|
134
|
+
},
|
|
135
|
+
{
|
|
136
|
+
twClass: "--ds-accent-100",
|
|
137
|
+
cssVar: "var(--ds-accent-100)",
|
|
138
|
+
role: "100",
|
|
139
|
+
textOnColor: "dark"
|
|
140
|
+
},
|
|
141
|
+
{
|
|
142
|
+
twClass: "--ds-accent-200",
|
|
143
|
+
cssVar: "var(--ds-accent-200)",
|
|
144
|
+
role: "200",
|
|
145
|
+
textOnColor: "dark"
|
|
146
|
+
},
|
|
147
|
+
{
|
|
148
|
+
twClass: "--ds-accent-300",
|
|
149
|
+
cssVar: "var(--ds-accent-300)",
|
|
150
|
+
role: "300",
|
|
151
|
+
textOnColor: "dark"
|
|
152
|
+
},
|
|
153
|
+
{
|
|
154
|
+
twClass: "--ds-accent-400",
|
|
155
|
+
cssVar: "var(--ds-accent-400)",
|
|
156
|
+
role: "400",
|
|
157
|
+
textOnColor: "light"
|
|
158
|
+
},
|
|
159
|
+
{
|
|
160
|
+
twClass: "--ds-accent-500",
|
|
161
|
+
cssVar: "var(--ds-accent-500)",
|
|
162
|
+
role: "Base (500)",
|
|
163
|
+
textOnColor: "light"
|
|
164
|
+
},
|
|
165
|
+
{
|
|
166
|
+
twClass: "--ds-accent-600",
|
|
167
|
+
cssVar: "var(--ds-accent-600)",
|
|
168
|
+
role: "600",
|
|
169
|
+
textOnColor: "light"
|
|
170
|
+
},
|
|
171
|
+
{
|
|
172
|
+
twClass: "--ds-accent-700",
|
|
173
|
+
cssVar: "var(--ds-accent-700)",
|
|
174
|
+
role: "700",
|
|
175
|
+
textOnColor: "light"
|
|
176
|
+
},
|
|
177
|
+
{
|
|
178
|
+
twClass: "--ds-accent-800",
|
|
179
|
+
cssVar: "var(--ds-accent-800)",
|
|
180
|
+
role: "800",
|
|
181
|
+
textOnColor: "light"
|
|
182
|
+
},
|
|
183
|
+
{
|
|
184
|
+
twClass: "--ds-accent-900",
|
|
185
|
+
cssVar: "var(--ds-accent-900)",
|
|
186
|
+
role: "Darkest",
|
|
187
|
+
textOnColor: "light"
|
|
188
|
+
}
|
|
189
|
+
]
|
|
190
|
+
};
|
|
191
|
+
var brandGroup = {
|
|
192
|
+
name: "Brand Themes",
|
|
193
|
+
swatches: [
|
|
194
|
+
{
|
|
195
|
+
twClass: "bg-ds-brand-purple",
|
|
196
|
+
cssVar: "var(--ds-brand-purple)",
|
|
197
|
+
role: "Purple (default)",
|
|
198
|
+
textOnColor: "light"
|
|
199
|
+
},
|
|
200
|
+
{
|
|
201
|
+
twClass: "bg-ds-brand-teal",
|
|
202
|
+
cssVar: "var(--ds-brand-teal)",
|
|
203
|
+
role: "Teal",
|
|
204
|
+
textOnColor: "light"
|
|
205
|
+
},
|
|
206
|
+
{
|
|
207
|
+
twClass: "bg-ds-brand-yellow",
|
|
208
|
+
cssVar: "var(--ds-brand-yellow)",
|
|
209
|
+
role: "Yellow",
|
|
210
|
+
textOnColor: "dark"
|
|
211
|
+
},
|
|
212
|
+
{
|
|
213
|
+
twClass: "bg-ds-brand-green",
|
|
214
|
+
cssVar: "var(--ds-brand-green)",
|
|
215
|
+
role: "Green",
|
|
216
|
+
textOnColor: "light"
|
|
217
|
+
}
|
|
218
|
+
]
|
|
219
|
+
};
|
|
220
|
+
var statusGroup = {
|
|
221
|
+
name: "Status",
|
|
222
|
+
swatches: [
|
|
223
|
+
{
|
|
224
|
+
twClass: "bg-ds-state-success",
|
|
225
|
+
cssVar: "var(--ds-color-success)",
|
|
226
|
+
role: "Success",
|
|
227
|
+
textOnColor: "light"
|
|
228
|
+
},
|
|
229
|
+
{
|
|
230
|
+
twClass: "bg-ds-state-warning",
|
|
231
|
+
cssVar: "var(--ds-color-warning)",
|
|
232
|
+
role: "Warning",
|
|
233
|
+
textOnColor: "dark"
|
|
234
|
+
},
|
|
235
|
+
{
|
|
236
|
+
twClass: "bg-ds-state-danger",
|
|
237
|
+
cssVar: "var(--ds-color-danger)",
|
|
238
|
+
role: "Danger",
|
|
239
|
+
textOnColor: "light"
|
|
240
|
+
},
|
|
241
|
+
{
|
|
242
|
+
twClass: "bg-ds-state-info",
|
|
243
|
+
cssVar: "var(--ds-color-info)",
|
|
244
|
+
role: "Info",
|
|
245
|
+
textOnColor: "light"
|
|
246
|
+
}
|
|
247
|
+
]
|
|
248
|
+
};
|
|
249
|
+
var defaultGroups = [
|
|
250
|
+
surfaceGroup,
|
|
251
|
+
textGroup,
|
|
252
|
+
borderGroup,
|
|
253
|
+
accentGroup,
|
|
254
|
+
accentScaleGroup,
|
|
255
|
+
brandGroup,
|
|
256
|
+
statusGroup
|
|
257
|
+
];
|
|
258
|
+
function SwatchCard({ swatch }) {
|
|
259
|
+
const swatchRef = React.useRef(null);
|
|
260
|
+
const [hex, setHex] = React.useState("");
|
|
261
|
+
const [copied, setCopied] = React.useState(false);
|
|
262
|
+
React.useEffect(() => {
|
|
263
|
+
const el = swatchRef.current;
|
|
264
|
+
if (!el) return;
|
|
265
|
+
const bg = getComputedStyle(el).backgroundColor;
|
|
266
|
+
setHex(bg || "");
|
|
267
|
+
}, [swatch.cssVar]);
|
|
268
|
+
const handleCopy = () => {
|
|
269
|
+
navigator.clipboard.writeText(swatch.twClass).catch(() => {});
|
|
270
|
+
setCopied(true);
|
|
271
|
+
setTimeout(() => setCopied(false), 1500);
|
|
272
|
+
};
|
|
273
|
+
return /* @__PURE__ */ jsxs("div", {
|
|
274
|
+
role: "button",
|
|
275
|
+
tabIndex: 0,
|
|
276
|
+
onClick: handleCopy,
|
|
277
|
+
onKeyDown: (e) => {
|
|
278
|
+
if (e.key === "Enter" || e.key === " ") handleCopy();
|
|
279
|
+
},
|
|
280
|
+
title: `Copy ${swatch.twClass}`,
|
|
281
|
+
className: "group flex flex-col gap-0 rounded-xl border border-ds-border-2 overflow-hidden text-start cursor-pointer transition hover:shadow-md hover:border-ds-border-1 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ds-focus",
|
|
282
|
+
children: [/* @__PURE__ */ jsxs("div", {
|
|
283
|
+
ref: swatchRef,
|
|
284
|
+
className: "relative h-16 w-full flex items-end px-2 pb-1.5",
|
|
285
|
+
style: { backgroundColor: swatch.cssVar },
|
|
286
|
+
children: [copied && /* @__PURE__ */ jsx("span", {
|
|
287
|
+
className: "absolute inset-0 flex items-center justify-center text-xs font-semibold bg-black/30 text-white rounded-t-xl",
|
|
288
|
+
children: "Copied!"
|
|
289
|
+
}), /* @__PURE__ */ jsx("span", {
|
|
290
|
+
className: "font-mono text-[9px] leading-none opacity-70",
|
|
291
|
+
style: { color: swatch.textOnColor === "light" ? "#fff" : "#000" },
|
|
292
|
+
children: hex || "LIVE"
|
|
293
|
+
})]
|
|
294
|
+
}), /* @__PURE__ */ jsxs("div", {
|
|
295
|
+
className: "flex flex-col gap-0.5 px-3 py-2.5 bg-ds-surface-1",
|
|
296
|
+
children: [
|
|
297
|
+
/* @__PURE__ */ jsx("span", {
|
|
298
|
+
className: "text-[11px] font-semibold font-mono text-ds-1 truncate",
|
|
299
|
+
children: swatch.twClass
|
|
300
|
+
}),
|
|
301
|
+
/* @__PURE__ */ jsx("span", {
|
|
302
|
+
className: "text-[10px] font-mono text-ds-3 truncate",
|
|
303
|
+
children: swatch.cssVar
|
|
304
|
+
}),
|
|
305
|
+
/* @__PURE__ */ jsx("span", {
|
|
306
|
+
className: "text-[10px] text-ds-2 mt-0.5",
|
|
307
|
+
children: swatch.role
|
|
308
|
+
})
|
|
309
|
+
]
|
|
310
|
+
})]
|
|
311
|
+
});
|
|
312
|
+
}
|
|
313
|
+
function ColorPalette({ groups, className }) {
|
|
314
|
+
const displayGroups = groups ?? defaultGroups;
|
|
315
|
+
return /* @__PURE__ */ jsx("div", {
|
|
316
|
+
className: `space-y-8 ${className ?? ""}`,
|
|
317
|
+
children: displayGroups.map((group) => /* @__PURE__ */ jsxs("section", { children: [/* @__PURE__ */ jsx("h3", {
|
|
318
|
+
className: "mb-3 text-sm font-semibold uppercase tracking-widest text-ds-2",
|
|
319
|
+
children: group.name
|
|
320
|
+
}), /* @__PURE__ */ jsx("div", {
|
|
321
|
+
className: "grid grid-cols-2 gap-3 sm:grid-cols-3 md:grid-cols-4 lg:grid-cols-5 xl:grid-cols-6",
|
|
322
|
+
children: group.swatches.map((swatch) => /* @__PURE__ */ jsx(SwatchCard, { swatch }, swatch.twClass))
|
|
323
|
+
})] }, group.name))
|
|
324
|
+
});
|
|
325
|
+
}
|
|
326
|
+
//#endregion
|
|
327
|
+
export { brandGroup as a, surfaceGroup as c, borderGroup as i, textGroup as l, accentGroup as n, defaultGroups as o, accentScaleGroup as r, statusGroup as s, ColorPalette as t };
|
|
328
|
+
|
|
329
|
+
//# sourceMappingURL=color-palette-C3lesasJ.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"color-palette-C3lesasJ.mjs","names":[],"sources":["../../src/components/data-display/color-palette/ColorPalette.tsx"],"sourcesContent":["\"use client\";\n\nimport React from \"react\";\n\n// ---------------------------------------------------------------------------\n// Types\n// ---------------------------------------------------------------------------\n\nexport interface TokenSwatch {\n /** Tailwind class displayed as the main label, e.g. \"bg-ds-surface-1\" */\n twClass: string;\n /** Underlying CSS variable, e.g. \"var(--ds-surface-1)\" */\n cssVar: string;\n /** Short role description */\n role: string;\n /** Hint for readable label on the swatch itself */\n textOnColor?: \"light\" | \"dark\" | \"auto\";\n}\n\nexport interface TokenGroup {\n /** Section heading */\n name: string;\n swatches: TokenSwatch[];\n}\n\nexport interface ColorPaletteProps {\n /** Override the built-in groups with custom data */\n groups?: TokenGroup[];\n className?: string;\n}\n\n// ---------------------------------------------------------------------------\n// Canonical token groups (correct --ds-* CSS variables)\n// ---------------------------------------------------------------------------\n\nexport const surfaceGroup: TokenGroup = {\n name: \"Surfaces\",\n swatches: [\n { twClass: \"bg-ds-canvas\", cssVar: \"var(--ds-surface-canvas)\", role: \"Page / app canvas\", textOnColor: \"dark\" },\n { twClass: \"bg-ds-surface-1\", cssVar: \"var(--ds-surface-1)\", role: \"Card / panel\", textOnColor: \"dark\" },\n { twClass: \"bg-ds-surface-2\", cssVar: \"var(--ds-surface-2)\", role: \"Elevated (modal/popover)\", textOnColor: \"dark\" },\n { twClass: \"bg-ds-surface-3\", cssVar: \"var(--ds-surface-3)\", role: \"Highest elevated\", textOnColor: \"dark\" },\n { twClass: \"bg-ds-accent-subtle\", cssVar: \"var(--ds-color-accent-subtle)\", role: \"Accent tinted surface\", textOnColor: \"dark\" },\n ],\n};\n\nexport const textGroup: TokenGroup = {\n name: \"Text\",\n swatches: [\n { twClass: \"text-ds-1\", cssVar: \"var(--ds-text-1)\", role: \"Primary text\", textOnColor: \"light\" },\n { twClass: \"text-ds-2\", cssVar: \"var(--ds-text-2)\", role: \"Secondary / labels\", textOnColor: \"light\" },\n { twClass: \"text-ds-3\", cssVar: \"var(--ds-text-3)\", role: \"Muted / hints\", textOnColor: \"light\" },\n { twClass: \"text-ds-on-accent\", cssVar: \"var(--ds-color-on-accent)\", role: \"On accent bg\", textOnColor: \"dark\" },\n ],\n};\n\nexport const borderGroup: TokenGroup = {\n name: \"Borders\",\n swatches: [\n { twClass: \"border-ds-border-1\", cssVar: \"var(--ds-border-1)\", role: \"Strong border\", textOnColor: \"dark\" },\n { twClass: \"border-ds-border-2\", cssVar: \"var(--ds-border-2)\", role: \"Default border\", textOnColor: \"dark\" },\n { twClass: \"border-ds-border-3\", cssVar: \"var(--ds-border-3)\", role: \"Subtle divider\", textOnColor: \"dark\" },\n { twClass: \"border-ds-border-4\", cssVar: \"var(--ds-border-4)\", role: \"Faintest border\", textOnColor: \"dark\" },\n { twClass: \"border-ds-border-field\", cssVar: \"var(--ds-border-field)\", role: \"Input field border\", textOnColor: \"dark\" },\n ],\n};\n\nexport const accentGroup: TokenGroup = {\n name: \"Accent\",\n swatches: [\n { twClass: \"bg-ds-accent\", cssVar: \"var(--ds-color-accent)\", role: \"Brand / interactive\", textOnColor: \"light\" },\n { twClass: \"bg-ds-accent-hover\", cssVar: \"var(--ds-color-accent-hover)\", role: \"Hover state\", textOnColor: \"light\" },\n { twClass: \"ring-ds-focus\", cssVar: \"var(--ds-color-focus-ring)\", role: \"Focus ring\", textOnColor: \"light\" },\n ],\n};\n\nexport const accentScaleGroup: TokenGroup = {\n name: \"Accent Scale\",\n swatches: [\n { twClass: \"--ds-accent-50\", cssVar: \"var(--ds-accent-50)\", role: \"Lightest\", textOnColor: \"dark\" },\n { twClass: \"--ds-accent-100\", cssVar: \"var(--ds-accent-100)\", role: \"100\", textOnColor: \"dark\" },\n { twClass: \"--ds-accent-200\", cssVar: \"var(--ds-accent-200)\", role: \"200\", textOnColor: \"dark\" },\n { twClass: \"--ds-accent-300\", cssVar: \"var(--ds-accent-300)\", role: \"300\", textOnColor: \"dark\" },\n { twClass: \"--ds-accent-400\", cssVar: \"var(--ds-accent-400)\", role: \"400\", textOnColor: \"light\" },\n { twClass: \"--ds-accent-500\", cssVar: \"var(--ds-accent-500)\", role: \"Base (500)\", textOnColor: \"light\" },\n { twClass: \"--ds-accent-600\", cssVar: \"var(--ds-accent-600)\", role: \"600\", textOnColor: \"light\" },\n { twClass: \"--ds-accent-700\", cssVar: \"var(--ds-accent-700)\", role: \"700\", textOnColor: \"light\" },\n { twClass: \"--ds-accent-800\", cssVar: \"var(--ds-accent-800)\", role: \"800\", textOnColor: \"light\" },\n { twClass: \"--ds-accent-900\", cssVar: \"var(--ds-accent-900)\", role: \"Darkest\", textOnColor: \"light\" },\n ],\n};\n\nexport const brandGroup: TokenGroup = {\n name: \"Brand Themes\",\n swatches: [\n { twClass: \"bg-ds-brand-purple\", cssVar: \"var(--ds-brand-purple)\", role: \"Purple (default)\", textOnColor: \"light\" },\n { twClass: \"bg-ds-brand-teal\", cssVar: \"var(--ds-brand-teal)\", role: \"Teal\", textOnColor: \"light\" },\n { twClass: \"bg-ds-brand-yellow\", cssVar: \"var(--ds-brand-yellow)\", role: \"Yellow\", textOnColor: \"dark\" },\n { twClass: \"bg-ds-brand-green\", cssVar: \"var(--ds-brand-green)\", role: \"Green\", textOnColor: \"light\" },\n ],\n};\n\nexport const statusGroup: TokenGroup = {\n name: \"Status\",\n swatches: [\n { twClass: \"bg-ds-state-success\", cssVar: \"var(--ds-color-success)\", role: \"Success\", textOnColor: \"light\" },\n { twClass: \"bg-ds-state-warning\", cssVar: \"var(--ds-color-warning)\", role: \"Warning\", textOnColor: \"dark\" },\n { twClass: \"bg-ds-state-danger\", cssVar: \"var(--ds-color-danger)\", role: \"Danger\", textOnColor: \"light\" },\n { twClass: \"bg-ds-state-info\", cssVar: \"var(--ds-color-info)\", role: \"Info\", textOnColor: \"light\" },\n ],\n};\n\nexport const defaultGroups: TokenGroup[] = [\n surfaceGroup,\n textGroup,\n borderGroup,\n accentGroup,\n accentScaleGroup,\n brandGroup,\n statusGroup,\n];\n\n// ---------------------------------------------------------------------------\n// SwatchCard\n// ---------------------------------------------------------------------------\n\nfunction SwatchCard({ swatch }: { swatch: TokenSwatch }) {\n const swatchRef = React.useRef<HTMLDivElement>(null);\n const [hex, setHex] = React.useState<string>(\"\");\n const [copied, setCopied] = React.useState(false);\n\n React.useEffect(() => {\n const el = swatchRef.current;\n if (!el) return;\n const bg = getComputedStyle(el).backgroundColor;\n setHex(bg || \"\");\n }, [swatch.cssVar]);\n\n const handleCopy = () => {\n navigator.clipboard.writeText(swatch.twClass).catch(() => {});\n setCopied(true);\n setTimeout(() => setCopied(false), 1500);\n };\n\n return (\n <div\n role=\"button\"\n tabIndex={0}\n onClick={handleCopy}\n onKeyDown={(e) => { if (e.key === \"Enter\" || e.key === \" \") handleCopy(); }}\n title={`Copy ${swatch.twClass}`}\n className=\"group flex flex-col gap-0 rounded-xl border border-ds-border-2 overflow-hidden text-start cursor-pointer transition hover:shadow-md hover:border-ds-border-1 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ds-focus\"\n >\n {/* Color preview */}\n <div\n ref={swatchRef}\n className=\"relative h-16 w-full flex items-end px-2 pb-1.5\"\n style={{ backgroundColor: swatch.cssVar }}\n >\n {copied && (\n <span className=\"absolute inset-0 flex items-center justify-center text-xs font-semibold bg-black/30 text-white rounded-t-xl\">\n Copied!\n </span>\n )}\n <span\n className=\"font-mono text-[9px] leading-none opacity-70\"\n style={{ color: swatch.textOnColor === \"light\" ? \"#fff\" : \"#000\" }}\n >\n {hex || \"LIVE\"}\n </span>\n </div>\n\n {/* Meta */}\n <div className=\"flex flex-col gap-0.5 px-3 py-2.5 bg-ds-surface-1\">\n <span className=\"text-[11px] font-semibold font-mono text-ds-1 truncate\">\n {swatch.twClass}\n </span>\n <span className=\"text-[10px] font-mono text-ds-3 truncate\">\n {swatch.cssVar}\n </span>\n <span className=\"text-[10px] text-ds-2 mt-0.5\">{swatch.role}</span>\n </div>\n </div>\n );\n}\n\n// ---------------------------------------------------------------------------\n// ColorPalette\n// ---------------------------------------------------------------------------\n\nexport default function ColorPalette({ groups, className }: ColorPaletteProps) {\n const displayGroups = groups ?? defaultGroups;\n\n return (\n <div className={`space-y-8 ${className ?? \"\"}`}>\n {displayGroups.map((group) => (\n <section key={group.name}>\n <h3 className=\"mb-3 text-sm font-semibold uppercase tracking-widest text-ds-2\">\n {group.name}\n </h3>\n <div className=\"grid grid-cols-2 gap-3 sm:grid-cols-3 md:grid-cols-4 lg:grid-cols-5 xl:grid-cols-6\">\n {group.swatches.map((swatch) => (\n <SwatchCard key={swatch.twClass} swatch={swatch} />\n ))}\n </div>\n </section>\n ))}\n </div>\n );\n}\n\nexport { ColorPalette };\n"],"mappings":"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"}
|