@mdigital_ui/ui 0.2.6 → 0.2.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +1023 -341
- package/dist/accordion/index.js +3 -3
- package/dist/avatar/index.js +4 -0
- package/dist/avatar/index.js.map +1 -0
- package/dist/badge/index.js +3 -3
- package/dist/breadcrumbs/index.js +5 -5
- package/dist/button/index.js +4 -4
- package/dist/button-group/index.js +2 -2
- package/dist/card/index.js +2 -2
- package/dist/carousel/index.js +2 -2
- package/dist/cascader/index.js +2 -2
- package/dist/chart/index.js +2 -2
- package/dist/checkbox/index.js +3 -3
- package/dist/checkbox-group/index.js +2 -2
- package/dist/{chunk-23BPDLT4.js → chunk-27QEPVKU.js} +42 -22
- package/dist/chunk-27QEPVKU.js.map +1 -0
- package/dist/{chunk-IRNJZ754.js → chunk-2J57G7XG.js} +76 -18
- package/dist/chunk-2J57G7XG.js.map +1 -0
- package/dist/{chunk-SOIF4SHB.js → chunk-2NYVRAG4.js} +24 -15
- package/dist/chunk-2NYVRAG4.js.map +1 -0
- package/dist/{chunk-3WVJE5MF.js → chunk-2OUGJBXK.js} +19 -12
- package/dist/chunk-2OUGJBXK.js.map +1 -0
- package/dist/{chunk-YII4K64U.js → chunk-2WZVD7P3.js} +36 -10
- package/dist/chunk-2WZVD7P3.js.map +1 -0
- package/dist/{chunk-7ODPSHIQ.js → chunk-3UCZ4GMN.js} +10 -4
- package/dist/chunk-3UCZ4GMN.js.map +1 -0
- package/dist/{chunk-7YPX6NJK.js → chunk-4LSKRZOT.js} +12 -7
- package/dist/chunk-4LSKRZOT.js.map +1 -0
- package/dist/{chunk-R2FZO7AM.js → chunk-4SQOFZ3N.js} +26 -9
- package/dist/chunk-4SQOFZ3N.js.map +1 -0
- package/dist/chunk-5PUATOLR.js +127 -0
- package/dist/chunk-5PUATOLR.js.map +1 -0
- package/dist/{chunk-555KXZRK.js → chunk-6TMOKYR7.js} +6 -4
- package/dist/chunk-6TMOKYR7.js.map +1 -0
- package/dist/{chunk-6IPISGTP.js → chunk-7UCNBMCV.js} +102 -27
- package/dist/chunk-7UCNBMCV.js.map +1 -0
- package/dist/{chunk-JFGLDCAK.js → chunk-AQYOVYPS.js} +19 -7
- package/dist/chunk-AQYOVYPS.js.map +1 -0
- package/dist/{chunk-Y2CXG3PT.js → chunk-C5YO5VZS.js} +8 -8
- package/dist/chunk-C5YO5VZS.js.map +1 -0
- package/dist/{chunk-7TN4PGYF.js → chunk-CHGJX5F2.js} +49 -33
- package/dist/chunk-CHGJX5F2.js.map +1 -0
- package/dist/{chunk-22FIGRGO.js → chunk-CK6A2R66.js} +31 -7
- package/dist/chunk-CK6A2R66.js.map +1 -0
- package/dist/{chunk-INH7KYCK.js → chunk-CMGCJXE5.js} +275 -95
- package/dist/chunk-CMGCJXE5.js.map +1 -0
- package/dist/{chunk-6MYKJE6A.js → chunk-CSRMVLPR.js} +109 -27
- package/dist/chunk-CSRMVLPR.js.map +1 -0
- package/dist/{chunk-EFMKUCGX.js → chunk-DH7R6NBG.js} +8 -5
- package/dist/chunk-DH7R6NBG.js.map +1 -0
- package/dist/{chunk-7BUNJYZO.js → chunk-FEMHXG2P.js} +22 -6
- package/dist/chunk-FEMHXG2P.js.map +1 -0
- package/dist/chunk-FIGSNRWY.js +382 -0
- package/dist/chunk-FIGSNRWY.js.map +1 -0
- package/dist/{chunk-JGQOEAWL.js → chunk-FVTMKQUE.js} +5 -3
- package/dist/chunk-FVTMKQUE.js.map +1 -0
- package/dist/{chunk-QVCGNOBE.js → chunk-GBVIACYQ.js} +78 -31
- package/dist/chunk-GBVIACYQ.js.map +1 -0
- package/dist/chunk-H47C2ENJ.js +215 -0
- package/dist/chunk-H47C2ENJ.js.map +1 -0
- package/dist/chunk-HWFI4GJE.js +130 -0
- package/dist/chunk-HWFI4GJE.js.map +1 -0
- package/dist/chunk-IA42ELUP.js +72 -0
- package/dist/chunk-IA42ELUP.js.map +1 -0
- package/dist/{chunk-SGMIDNPI.js → chunk-INQI3UUI.js} +73 -19
- package/dist/chunk-INQI3UUI.js.map +1 -0
- package/dist/{chunk-IHKPZOE5.js → chunk-J525ROGL.js} +6 -4
- package/dist/chunk-J525ROGL.js.map +1 -0
- package/dist/{chunk-AVPPV5OM.js → chunk-JLS4MBHN.js} +6 -4
- package/dist/chunk-JLS4MBHN.js.map +1 -0
- package/dist/{chunk-GGREAJO5.js → chunk-KTHWXHDN.js} +10 -5
- package/dist/chunk-KTHWXHDN.js.map +1 -0
- package/dist/{chunk-35K7N4JT.js → chunk-LMR7TKDJ.js} +17 -6
- package/dist/chunk-LMR7TKDJ.js.map +1 -0
- package/dist/{chunk-BYWYC7RC.js → chunk-MRFCITKK.js} +19 -10
- package/dist/chunk-MRFCITKK.js.map +1 -0
- package/dist/{chunk-TG2AECIN.js → chunk-MXDTUN3V.js} +22 -9
- package/dist/chunk-MXDTUN3V.js.map +1 -0
- package/dist/{chunk-2OGZENFC.js → chunk-NGYLRX6F.js} +2 -16
- package/dist/chunk-NGYLRX6F.js.map +1 -0
- package/dist/{chunk-TUTOU4X6.js → chunk-NTPWR57C.js} +6 -135
- package/dist/chunk-NTPWR57C.js.map +1 -0
- package/dist/{chunk-GFQXGLFD.js → chunk-OWXQ45GS.js} +82 -62
- package/dist/chunk-OWXQ45GS.js.map +1 -0
- package/dist/{chunk-L6EVOPWH.js → chunk-P6A75RAH.js} +6 -4
- package/dist/chunk-P6A75RAH.js.map +1 -0
- package/dist/{chunk-SYDNDYZJ.js → chunk-PXOHJJBE.js} +22 -9
- package/dist/chunk-PXOHJJBE.js.map +1 -0
- package/dist/{chunk-HWSLJGT7.js → chunk-Q57THXIU.js} +28 -10
- package/dist/chunk-Q57THXIU.js.map +1 -0
- package/dist/{chunk-NQB4V5P7.js → chunk-QDHGE7IF.js} +5 -5
- package/dist/chunk-QDHGE7IF.js.map +1 -0
- package/dist/{chunk-CPPFXCNB.js → chunk-QKSDVYKF.js} +4 -4
- package/dist/chunk-QKSDVYKF.js.map +1 -0
- package/dist/{chunk-DP6AWUH5.js → chunk-ROA7BYGB.js} +49 -19
- package/dist/chunk-ROA7BYGB.js.map +1 -0
- package/dist/{chunk-XG3KLPPS.js → chunk-RPIJ2KY7.js} +9 -4
- package/dist/chunk-RPIJ2KY7.js.map +1 -0
- package/dist/{chunk-C2MZL644.js → chunk-RW4RW4DV.js} +80 -30
- package/dist/chunk-RW4RW4DV.js.map +1 -0
- package/dist/chunk-RYKVZFGB.js +607 -0
- package/dist/chunk-RYKVZFGB.js.map +1 -0
- package/dist/chunk-SAVEKACZ.js +552 -0
- package/dist/chunk-SAVEKACZ.js.map +1 -0
- package/dist/chunk-SDNT2JGC.js +143 -0
- package/dist/chunk-SDNT2JGC.js.map +1 -0
- package/dist/{chunk-SMVVCZNM.js → chunk-SGRACNBP.js} +12 -7
- package/dist/chunk-SGRACNBP.js.map +1 -0
- package/dist/{chunk-PQZB43VJ.js → chunk-TTEBZZ3T.js} +28 -11
- package/dist/chunk-TTEBZZ3T.js.map +1 -0
- package/dist/{chunk-HBEJ4S2Y.js → chunk-US4ZCMNU.js} +19 -13
- package/dist/chunk-US4ZCMNU.js.map +1 -0
- package/dist/chunk-UUP7YGOS.js +299 -0
- package/dist/chunk-UUP7YGOS.js.map +1 -0
- package/dist/{chunk-MDY3HCRC.js → chunk-VUBU7Y4F.js} +47 -18
- package/dist/chunk-VUBU7Y4F.js.map +1 -0
- package/dist/chunk-WUBMNJGC.js +141 -0
- package/dist/chunk-WUBMNJGC.js.map +1 -0
- package/dist/{chunk-TWZ5LXLL.js → chunk-WVG3QQDN.js} +45 -16
- package/dist/chunk-WVG3QQDN.js.map +1 -0
- package/dist/{chunk-NZA526GC.js → chunk-WZ2KDHFP.js} +16 -13
- package/dist/chunk-WZ2KDHFP.js.map +1 -0
- package/dist/{chunk-O2VJ6KP4.js → chunk-X5SCI7KH.js} +190 -142
- package/dist/chunk-X5SCI7KH.js.map +1 -0
- package/dist/{chunk-DV5J5NLI.js → chunk-XJCWPPMM.js} +8 -5
- package/dist/chunk-XJCWPPMM.js.map +1 -0
- package/dist/{chunk-ARK3EROZ.js → chunk-YAAV7FQG.js} +20 -12
- package/dist/chunk-YAAV7FQG.js.map +1 -0
- package/dist/{chunk-MLNIKNLI.js → chunk-YOG5GXIC.js} +57 -11
- package/dist/chunk-YOG5GXIC.js.map +1 -0
- package/dist/chunk-Z5VJ6MJP.js +234 -0
- package/dist/chunk-Z5VJ6MJP.js.map +1 -0
- package/dist/{chunk-77YTCM7G.js → chunk-ZC3E3PWH.js} +75 -32
- package/dist/chunk-ZC3E3PWH.js.map +1 -0
- package/dist/clipboard/index.js +2 -2
- package/dist/collapse/index.js +2 -2
- package/dist/command/index.js +3 -3
- package/dist/context-menu/index.js +4 -0
- package/dist/context-menu/index.js.map +1 -0
- package/dist/date-picker/index.js +4 -4
- package/dist/descriptions/index.js +2 -2
- package/dist/divider/index.js +4 -0
- package/dist/divider/index.js.map +1 -0
- package/dist/drawer/index.js +2 -2
- package/dist/dropdown/index.js +4 -4
- package/dist/empty/index.js +2 -2
- package/dist/fetching-overlay/index.js +4 -4
- package/dist/grid/index.js +2 -2
- package/dist/image/index.js +2 -2
- package/dist/index.d.ts +1242 -161
- package/dist/index.js +63 -883
- package/dist/index.js.map +1 -1
- package/dist/input/index.js +4 -4
- package/dist/input-group/index.js +2 -2
- package/dist/input-otp/index.js +2 -2
- package/dist/input-password/index.js +5 -5
- package/dist/kbd/index.js +3 -3
- package/dist/modal/index.js +2 -2
- package/dist/multi-select/index.js +4 -4
- package/dist/notification/index.js +3 -3
- package/dist/pagination/index.js +2 -2
- package/dist/popover/index.js +3 -3
- package/dist/progress/index.js +2 -2
- package/dist/radio/index.js +3 -3
- package/dist/radio-group/index.js +2 -2
- package/dist/rating/index.js +2 -2
- package/dist/ribbon/index.js +2 -2
- package/dist/select/index.js +5 -5
- package/dist/skeleton/index.js +3 -3
- package/dist/slider/index.js +2 -2
- package/dist/spinner/index.js +3 -3
- package/dist/stepper/index.js +2 -2
- package/dist/styles/base.css +169 -99
- package/dist/styles/global.css +1295 -721
- package/dist/styles/themes/dark.css +3 -1
- package/dist/styles/themes/light.css +3 -1
- package/dist/styles/themes/presets/corporate.css +126 -0
- package/dist/styles/themes/presets/minimal.css +126 -0
- package/dist/styles/themes/presets/vibrant.css +126 -0
- package/dist/switch/index.js +3 -3
- package/dist/table/index.js +10 -10
- package/dist/tabs/index.js +3 -3
- package/dist/tag/index.js +5 -0
- package/dist/tag/index.js.map +1 -0
- package/dist/textarea/index.js +2 -2
- package/dist/theme/index.js +3 -0
- package/dist/theme/index.js.map +1 -0
- package/dist/toggle/index.js +2 -2
- package/dist/toggle-group/index.js +2 -2
- package/dist/tooltip/index.js +3 -3
- package/dist/transfer/index.js +4 -4
- package/dist/tree/index.js +2 -2
- package/dist/tree-select/index.js +5 -5
- package/dist/upload/index.js +2 -2
- package/package.json +460 -72
- package/dist/chunk-22FIGRGO.js.map +0 -1
- package/dist/chunk-23BPDLT4.js.map +0 -1
- package/dist/chunk-2OGZENFC.js.map +0 -1
- package/dist/chunk-35K7N4JT.js.map +0 -1
- package/dist/chunk-3QKPSJTV.js +0 -120
- package/dist/chunk-3QKPSJTV.js.map +0 -1
- package/dist/chunk-3WVJE5MF.js.map +0 -1
- package/dist/chunk-555KXZRK.js.map +0 -1
- package/dist/chunk-6IPISGTP.js.map +0 -1
- package/dist/chunk-6MYKJE6A.js.map +0 -1
- package/dist/chunk-6PFBSVLK.js +0 -39
- package/dist/chunk-6PFBSVLK.js.map +0 -1
- package/dist/chunk-77YTCM7G.js.map +0 -1
- package/dist/chunk-7BUNJYZO.js.map +0 -1
- package/dist/chunk-7ODPSHIQ.js.map +0 -1
- package/dist/chunk-7TN4PGYF.js.map +0 -1
- package/dist/chunk-7YPX6NJK.js.map +0 -1
- package/dist/chunk-ARK3EROZ.js.map +0 -1
- package/dist/chunk-AVPPV5OM.js.map +0 -1
- package/dist/chunk-BYWYC7RC.js.map +0 -1
- package/dist/chunk-C2MZL644.js.map +0 -1
- package/dist/chunk-CPPFXCNB.js.map +0 -1
- package/dist/chunk-DP6AWUH5.js.map +0 -1
- package/dist/chunk-DV5J5NLI.js.map +0 -1
- package/dist/chunk-EFMKUCGX.js.map +0 -1
- package/dist/chunk-GFQXGLFD.js.map +0 -1
- package/dist/chunk-GGREAJO5.js.map +0 -1
- package/dist/chunk-GH3CNX5N.js +0 -178
- package/dist/chunk-GH3CNX5N.js.map +0 -1
- package/dist/chunk-HBEJ4S2Y.js.map +0 -1
- package/dist/chunk-HWSLJGT7.js.map +0 -1
- package/dist/chunk-IHKPZOE5.js.map +0 -1
- package/dist/chunk-INH7KYCK.js.map +0 -1
- package/dist/chunk-IRNJZ754.js.map +0 -1
- package/dist/chunk-IUUEYOMN.js +0 -470
- package/dist/chunk-IUUEYOMN.js.map +0 -1
- package/dist/chunk-JFGLDCAK.js.map +0 -1
- package/dist/chunk-JGQOEAWL.js.map +0 -1
- package/dist/chunk-L6EVOPWH.js.map +0 -1
- package/dist/chunk-LSQLUYTD.js +0 -192
- package/dist/chunk-LSQLUYTD.js.map +0 -1
- package/dist/chunk-MDY3HCRC.js.map +0 -1
- package/dist/chunk-MLNIKNLI.js.map +0 -1
- package/dist/chunk-NQB4V5P7.js.map +0 -1
- package/dist/chunk-NZA526GC.js.map +0 -1
- package/dist/chunk-O2VJ6KP4.js.map +0 -1
- package/dist/chunk-PQZB43VJ.js.map +0 -1
- package/dist/chunk-QVCGNOBE.js.map +0 -1
- package/dist/chunk-R2FZO7AM.js.map +0 -1
- package/dist/chunk-SGMIDNPI.js.map +0 -1
- package/dist/chunk-SMVVCZNM.js.map +0 -1
- package/dist/chunk-SOIF4SHB.js.map +0 -1
- package/dist/chunk-SYDNDYZJ.js.map +0 -1
- package/dist/chunk-TG2AECIN.js.map +0 -1
- package/dist/chunk-TIMRHEKH.js +0 -452
- package/dist/chunk-TIMRHEKH.js.map +0 -1
- package/dist/chunk-TUTOU4X6.js.map +0 -1
- package/dist/chunk-TWZ5LXLL.js.map +0 -1
- package/dist/chunk-XG3KLPPS.js.map +0 -1
- package/dist/chunk-Y2CXG3PT.js.map +0 -1
- package/dist/chunk-YII4K64U.js.map +0 -1
package/dist/chunk-TIMRHEKH.js
DELETED
|
@@ -1,452 +0,0 @@
|
|
|
1
|
-
import { cn } from './chunk-2OGZENFC.js';
|
|
2
|
-
import { cva } from 'class-variance-authority';
|
|
3
|
-
import React from 'react';
|
|
4
|
-
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
5
|
-
|
|
6
|
-
var circleSizes = {
|
|
7
|
-
xs: { size: 60, strokeWidth: 4 },
|
|
8
|
-
sm: { size: 80, strokeWidth: 6 },
|
|
9
|
-
md: { size: 120, strokeWidth: 8 },
|
|
10
|
-
lg: { size: 160, strokeWidth: 10 }
|
|
11
|
-
};
|
|
12
|
-
var progressContainerVariants = cva("w-full rounded-full overflow-hidden", {
|
|
13
|
-
variants: {
|
|
14
|
-
size: {
|
|
15
|
-
xs: "h-1",
|
|
16
|
-
sm: "h-2",
|
|
17
|
-
md: "h-3",
|
|
18
|
-
lg: "h-4"
|
|
19
|
-
}
|
|
20
|
-
},
|
|
21
|
-
defaultVariants: {
|
|
22
|
-
size: "md"
|
|
23
|
-
}
|
|
24
|
-
});
|
|
25
|
-
var progressBarVariants = cva(
|
|
26
|
-
"h-full transition-all duration-300 ease-in-out rounded-full",
|
|
27
|
-
{
|
|
28
|
-
variants: {
|
|
29
|
-
size: {
|
|
30
|
-
xs: "",
|
|
31
|
-
sm: "",
|
|
32
|
-
md: "",
|
|
33
|
-
lg: ""
|
|
34
|
-
}
|
|
35
|
-
},
|
|
36
|
-
defaultVariants: {
|
|
37
|
-
size: "md"
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
);
|
|
41
|
-
var backgroundColorStyles = {
|
|
42
|
-
default: {
|
|
43
|
-
default: "bg-surface",
|
|
44
|
-
solid: "bg-surface",
|
|
45
|
-
soft: "bg-surface/50"
|
|
46
|
-
},
|
|
47
|
-
primary: {
|
|
48
|
-
default: "bg-primary/10",
|
|
49
|
-
solid: "bg-primary/20",
|
|
50
|
-
soft: "bg-primary/10"
|
|
51
|
-
},
|
|
52
|
-
secondary: {
|
|
53
|
-
default: "bg-secondary/10",
|
|
54
|
-
solid: "bg-secondary/20",
|
|
55
|
-
soft: "bg-secondary/10"
|
|
56
|
-
},
|
|
57
|
-
accent: {
|
|
58
|
-
default: "bg-accent/10",
|
|
59
|
-
solid: "bg-accent/20",
|
|
60
|
-
soft: "bg-accent/10"
|
|
61
|
-
},
|
|
62
|
-
success: {
|
|
63
|
-
default: "bg-success/10",
|
|
64
|
-
solid: "bg-success/20",
|
|
65
|
-
soft: "bg-success/10"
|
|
66
|
-
},
|
|
67
|
-
error: {
|
|
68
|
-
default: "bg-error/10",
|
|
69
|
-
solid: "bg-error/20",
|
|
70
|
-
soft: "bg-error/10"
|
|
71
|
-
},
|
|
72
|
-
warning: {
|
|
73
|
-
default: "bg-warning/10",
|
|
74
|
-
solid: "bg-warning/20",
|
|
75
|
-
soft: "bg-warning/10"
|
|
76
|
-
},
|
|
77
|
-
info: {
|
|
78
|
-
default: "bg-info/10",
|
|
79
|
-
solid: "bg-info/20",
|
|
80
|
-
soft: "bg-info/10"
|
|
81
|
-
}
|
|
82
|
-
};
|
|
83
|
-
var barColorStyles = {
|
|
84
|
-
default: {
|
|
85
|
-
default: "bg-surface border border-border",
|
|
86
|
-
solid: "bg-surface",
|
|
87
|
-
soft: "bg-surface/80"
|
|
88
|
-
},
|
|
89
|
-
primary: {
|
|
90
|
-
default: "bg-primary/20 border border-primary",
|
|
91
|
-
solid: "bg-primary",
|
|
92
|
-
soft: "bg-primary/60"
|
|
93
|
-
},
|
|
94
|
-
secondary: {
|
|
95
|
-
default: "bg-secondary/20 border border-secondary",
|
|
96
|
-
solid: "bg-secondary",
|
|
97
|
-
soft: "bg-secondary/60"
|
|
98
|
-
},
|
|
99
|
-
accent: {
|
|
100
|
-
default: "bg-accent/20 border border-accent",
|
|
101
|
-
solid: "bg-accent",
|
|
102
|
-
soft: "bg-accent/60"
|
|
103
|
-
},
|
|
104
|
-
success: {
|
|
105
|
-
default: "bg-success/20 border border-success",
|
|
106
|
-
solid: "bg-success",
|
|
107
|
-
soft: "bg-success/60"
|
|
108
|
-
},
|
|
109
|
-
error: {
|
|
110
|
-
default: "bg-error/20 border border-error",
|
|
111
|
-
solid: "bg-error",
|
|
112
|
-
soft: "bg-error/60"
|
|
113
|
-
},
|
|
114
|
-
warning: {
|
|
115
|
-
default: "bg-warning/20 border border-warning",
|
|
116
|
-
solid: "bg-warning",
|
|
117
|
-
soft: "bg-warning/60"
|
|
118
|
-
},
|
|
119
|
-
info: {
|
|
120
|
-
default: "bg-info/20 border border-info",
|
|
121
|
-
solid: "bg-info",
|
|
122
|
-
soft: "bg-info/60"
|
|
123
|
-
}
|
|
124
|
-
};
|
|
125
|
-
var circleStrokeColors = {
|
|
126
|
-
default: {
|
|
127
|
-
default: "stroke-surface",
|
|
128
|
-
solid: "stroke-surface",
|
|
129
|
-
soft: "stroke-surface/80"
|
|
130
|
-
},
|
|
131
|
-
primary: {
|
|
132
|
-
default: "stroke-primary",
|
|
133
|
-
solid: "stroke-primary",
|
|
134
|
-
soft: "stroke-primary/60"
|
|
135
|
-
},
|
|
136
|
-
secondary: {
|
|
137
|
-
default: "stroke-secondary",
|
|
138
|
-
solid: "stroke-secondary",
|
|
139
|
-
soft: "stroke-secondary/60"
|
|
140
|
-
},
|
|
141
|
-
accent: {
|
|
142
|
-
default: "stroke-accent",
|
|
143
|
-
solid: "stroke-accent",
|
|
144
|
-
soft: "stroke-accent/60"
|
|
145
|
-
},
|
|
146
|
-
success: {
|
|
147
|
-
default: "stroke-success",
|
|
148
|
-
solid: "stroke-success",
|
|
149
|
-
soft: "stroke-success/60"
|
|
150
|
-
},
|
|
151
|
-
error: {
|
|
152
|
-
default: "stroke-error",
|
|
153
|
-
solid: "stroke-error",
|
|
154
|
-
soft: "stroke-error/60"
|
|
155
|
-
},
|
|
156
|
-
warning: {
|
|
157
|
-
default: "stroke-warning",
|
|
158
|
-
solid: "stroke-warning",
|
|
159
|
-
soft: "stroke-warning/60"
|
|
160
|
-
},
|
|
161
|
-
info: {
|
|
162
|
-
default: "stroke-info",
|
|
163
|
-
solid: "stroke-info",
|
|
164
|
-
soft: "stroke-info/60"
|
|
165
|
-
}
|
|
166
|
-
};
|
|
167
|
-
var circleTrailColors = {
|
|
168
|
-
default: {
|
|
169
|
-
default: "stroke-surface",
|
|
170
|
-
solid: "stroke-surface",
|
|
171
|
-
soft: "stroke-surface/50"
|
|
172
|
-
},
|
|
173
|
-
primary: {
|
|
174
|
-
default: "stroke-primary/10",
|
|
175
|
-
solid: "stroke-primary/20",
|
|
176
|
-
soft: "stroke-primary/10"
|
|
177
|
-
},
|
|
178
|
-
secondary: {
|
|
179
|
-
default: "stroke-secondary/10",
|
|
180
|
-
solid: "stroke-secondary/20",
|
|
181
|
-
soft: "stroke-secondary/10"
|
|
182
|
-
},
|
|
183
|
-
accent: {
|
|
184
|
-
default: "stroke-accent/10",
|
|
185
|
-
solid: "stroke-accent/20",
|
|
186
|
-
soft: "stroke-accent/10"
|
|
187
|
-
},
|
|
188
|
-
success: {
|
|
189
|
-
default: "stroke-success/10",
|
|
190
|
-
solid: "stroke-success/20",
|
|
191
|
-
soft: "stroke-success/10"
|
|
192
|
-
},
|
|
193
|
-
error: {
|
|
194
|
-
default: "stroke-error/10",
|
|
195
|
-
solid: "stroke-error/20",
|
|
196
|
-
soft: "stroke-error/10"
|
|
197
|
-
},
|
|
198
|
-
warning: {
|
|
199
|
-
default: "stroke-warning/10",
|
|
200
|
-
solid: "stroke-warning/20",
|
|
201
|
-
soft: "stroke-warning/10"
|
|
202
|
-
},
|
|
203
|
-
info: {
|
|
204
|
-
default: "stroke-info/10",
|
|
205
|
-
solid: "stroke-info/20",
|
|
206
|
-
soft: "stroke-info/10"
|
|
207
|
-
}
|
|
208
|
-
};
|
|
209
|
-
var Progress = React.memo(
|
|
210
|
-
({
|
|
211
|
-
value,
|
|
212
|
-
color = "primary",
|
|
213
|
-
size = "md",
|
|
214
|
-
variant = "default",
|
|
215
|
-
type = "line",
|
|
216
|
-
orientation = "horizontal",
|
|
217
|
-
showProgress = false,
|
|
218
|
-
label,
|
|
219
|
-
striped = false,
|
|
220
|
-
animated = false,
|
|
221
|
-
className,
|
|
222
|
-
totalSteps = 5
|
|
223
|
-
}) => {
|
|
224
|
-
const clampedValue = Math.min(Math.max(value, 0), 100);
|
|
225
|
-
if (type === "circle") {
|
|
226
|
-
const { size: circleSize, strokeWidth } = circleSizes[size];
|
|
227
|
-
const radius = (circleSize - strokeWidth) / 2;
|
|
228
|
-
const circumference = 2 * Math.PI * radius;
|
|
229
|
-
const offset = circumference - clampedValue / 100 * circumference;
|
|
230
|
-
return /* @__PURE__ */ jsx("div", { className: cn("inline-flex flex-col items-center", className), children: /* @__PURE__ */ jsxs(
|
|
231
|
-
"div",
|
|
232
|
-
{
|
|
233
|
-
className: "relative",
|
|
234
|
-
style: { width: circleSize, height: circleSize },
|
|
235
|
-
children: [
|
|
236
|
-
/* @__PURE__ */ jsxs(
|
|
237
|
-
"svg",
|
|
238
|
-
{
|
|
239
|
-
width: circleSize,
|
|
240
|
-
height: circleSize,
|
|
241
|
-
className: "transform -rotate-90",
|
|
242
|
-
children: [
|
|
243
|
-
/* @__PURE__ */ jsx(
|
|
244
|
-
"circle",
|
|
245
|
-
{
|
|
246
|
-
cx: circleSize / 2,
|
|
247
|
-
cy: circleSize / 2,
|
|
248
|
-
r: radius,
|
|
249
|
-
fill: "none",
|
|
250
|
-
strokeWidth,
|
|
251
|
-
className: circleTrailColors[color][variant]
|
|
252
|
-
}
|
|
253
|
-
),
|
|
254
|
-
/* @__PURE__ */ jsx(
|
|
255
|
-
"circle",
|
|
256
|
-
{
|
|
257
|
-
cx: circleSize / 2,
|
|
258
|
-
cy: circleSize / 2,
|
|
259
|
-
r: radius,
|
|
260
|
-
fill: "none",
|
|
261
|
-
strokeWidth,
|
|
262
|
-
strokeDasharray: circumference,
|
|
263
|
-
strokeDashoffset: offset,
|
|
264
|
-
strokeLinecap: "round",
|
|
265
|
-
className: cn(
|
|
266
|
-
circleStrokeColors[color][variant],
|
|
267
|
-
"transition-all duration-300 ease-in-out"
|
|
268
|
-
)
|
|
269
|
-
}
|
|
270
|
-
)
|
|
271
|
-
]
|
|
272
|
-
}
|
|
273
|
-
),
|
|
274
|
-
/* @__PURE__ */ jsx("div", { className: "absolute inset-0 flex flex-col items-center justify-center", children: label ? /* @__PURE__ */ jsx("div", { className: "p-2 text-text-secondary", children: label }) : /* @__PURE__ */ jsxs(
|
|
275
|
-
"span",
|
|
276
|
-
{
|
|
277
|
-
className: "text-text-primary font-semibold",
|
|
278
|
-
style: { fontSize: circleSize / 7 },
|
|
279
|
-
children: [
|
|
280
|
-
clampedValue,
|
|
281
|
-
"%"
|
|
282
|
-
]
|
|
283
|
-
}
|
|
284
|
-
) })
|
|
285
|
-
]
|
|
286
|
-
}
|
|
287
|
-
) });
|
|
288
|
-
}
|
|
289
|
-
if (type === "step") {
|
|
290
|
-
const currentStep = Math.ceil(clampedValue / 100 * totalSteps);
|
|
291
|
-
if (orientation === "vertical") {
|
|
292
|
-
return /* @__PURE__ */ jsxs("div", { className: cn("h-full flex flex-col", className), children: [
|
|
293
|
-
label && /* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between mb-2 text-sm text-text-primary", children: [
|
|
294
|
-
/* @__PURE__ */ jsx("span", { children: label || "" }),
|
|
295
|
-
showProgress && /* @__PURE__ */ jsxs("span", { className: "font-medium", children: [
|
|
296
|
-
clampedValue,
|
|
297
|
-
"%"
|
|
298
|
-
] })
|
|
299
|
-
] }),
|
|
300
|
-
/* @__PURE__ */ jsx(
|
|
301
|
-
"div",
|
|
302
|
-
{
|
|
303
|
-
className: cn(
|
|
304
|
-
"flex-1 rounded-full overflow-hidden flex flex-col-reverse gap-1",
|
|
305
|
-
size === "xs" ? "w-1" : size === "sm" ? "w-2" : size === "md" ? "w-3" : "w-4"
|
|
306
|
-
),
|
|
307
|
-
children: Array.from({ length: totalSteps }, (_, index) => {
|
|
308
|
-
const stepNumber = index + 1;
|
|
309
|
-
const isCompleted = stepNumber <= currentStep;
|
|
310
|
-
return /* @__PURE__ */ jsx(
|
|
311
|
-
"div",
|
|
312
|
-
{
|
|
313
|
-
className: cn(
|
|
314
|
-
"w-full rounded-full transition-all flex-1",
|
|
315
|
-
isCompleted ? barColorStyles[color][variant] : backgroundColorStyles[color][variant],
|
|
316
|
-
animated && striped && "progress-shimmer"
|
|
317
|
-
),
|
|
318
|
-
style: {
|
|
319
|
-
...striped && isCompleted && {
|
|
320
|
-
backgroundImage: "linear-gradient(45deg, var(--overlay-stripe) 25%, transparent 25%, transparent 50%, var(--overlay-stripe) 50%, var(--overlay-stripe) 75%, transparent 75%, transparent)",
|
|
321
|
-
backgroundSize: "1rem 1rem"
|
|
322
|
-
}
|
|
323
|
-
}
|
|
324
|
-
},
|
|
325
|
-
index
|
|
326
|
-
);
|
|
327
|
-
})
|
|
328
|
-
}
|
|
329
|
-
)
|
|
330
|
-
] });
|
|
331
|
-
}
|
|
332
|
-
return /* @__PURE__ */ jsxs("div", { className: cn("w-full", className), children: [
|
|
333
|
-
label && /* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between mb-2 text-sm text-text-primary", children: [
|
|
334
|
-
/* @__PURE__ */ jsx("span", { children: label || "" }),
|
|
335
|
-
showProgress && /* @__PURE__ */ jsxs("span", { className: "font-medium", children: [
|
|
336
|
-
clampedValue,
|
|
337
|
-
"%"
|
|
338
|
-
] })
|
|
339
|
-
] }),
|
|
340
|
-
/* @__PURE__ */ jsx(
|
|
341
|
-
"div",
|
|
342
|
-
{
|
|
343
|
-
className: cn(
|
|
344
|
-
"w-full rounded-full overflow-hidden flex gap-1",
|
|
345
|
-
progressContainerVariants({ size })
|
|
346
|
-
),
|
|
347
|
-
children: Array.from({ length: totalSteps }, (_, index) => {
|
|
348
|
-
const stepNumber = index + 1;
|
|
349
|
-
const isCompleted = stepNumber <= currentStep;
|
|
350
|
-
return /* @__PURE__ */ jsx(
|
|
351
|
-
"div",
|
|
352
|
-
{
|
|
353
|
-
className: cn(
|
|
354
|
-
"h-full rounded-full transition-all flex-1",
|
|
355
|
-
isCompleted ? barColorStyles[color][variant] : backgroundColorStyles[color][variant],
|
|
356
|
-
animated && striped && "progress-shimmer"
|
|
357
|
-
),
|
|
358
|
-
style: {
|
|
359
|
-
...striped && isCompleted && {
|
|
360
|
-
backgroundImage: "linear-gradient(45deg, var(--overlay-stripe) 25%, transparent 25%, transparent 50%, var(--overlay-stripe) 50%, var(--overlay-stripe) 75%, transparent 75%, transparent)",
|
|
361
|
-
backgroundSize: "1rem 1rem"
|
|
362
|
-
}
|
|
363
|
-
}
|
|
364
|
-
},
|
|
365
|
-
index
|
|
366
|
-
);
|
|
367
|
-
})
|
|
368
|
-
}
|
|
369
|
-
)
|
|
370
|
-
] });
|
|
371
|
-
}
|
|
372
|
-
if (orientation === "vertical") {
|
|
373
|
-
return /* @__PURE__ */ jsxs("div", { className: cn("h-full flex flex-col", className), children: [
|
|
374
|
-
label && /* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between mb-2 text-sm text-text-primary", children: [
|
|
375
|
-
/* @__PURE__ */ jsx("span", { children: label || "" }),
|
|
376
|
-
showProgress && /* @__PURE__ */ jsxs("span", { className: "font-medium", children: [
|
|
377
|
-
clampedValue,
|
|
378
|
-
"%"
|
|
379
|
-
] })
|
|
380
|
-
] }),
|
|
381
|
-
/* @__PURE__ */ jsx(
|
|
382
|
-
"div",
|
|
383
|
-
{
|
|
384
|
-
className: cn(
|
|
385
|
-
"flex-1 rounded-full overflow-hidden flex flex-col justify-end",
|
|
386
|
-
size === "xs" ? "w-1" : size === "sm" ? "w-2" : size === "md" ? "w-3" : "w-4",
|
|
387
|
-
backgroundColorStyles[color][variant]
|
|
388
|
-
),
|
|
389
|
-
children: /* @__PURE__ */ jsx(
|
|
390
|
-
"div",
|
|
391
|
-
{
|
|
392
|
-
className: cn(
|
|
393
|
-
"w-full transition-all duration-300 ease-in-out rounded-full",
|
|
394
|
-
barColorStyles[color][variant],
|
|
395
|
-
animated && striped && "progress-shimmer"
|
|
396
|
-
),
|
|
397
|
-
style: {
|
|
398
|
-
height: `${clampedValue}%`,
|
|
399
|
-
...striped && {
|
|
400
|
-
backgroundImage: "linear-gradient(45deg, var(--overlay-stripe) 25%, transparent 25%, transparent 50%, var(--overlay-stripe) 50%, var(--overlay-stripe) 75%, transparent 75%, transparent)",
|
|
401
|
-
backgroundSize: "1rem 1rem"
|
|
402
|
-
}
|
|
403
|
-
}
|
|
404
|
-
}
|
|
405
|
-
)
|
|
406
|
-
}
|
|
407
|
-
)
|
|
408
|
-
] });
|
|
409
|
-
}
|
|
410
|
-
return /* @__PURE__ */ jsxs("div", { className: cn("w-full", className), children: [
|
|
411
|
-
label && /* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between mb-2 text-sm text-text-primary", children: [
|
|
412
|
-
/* @__PURE__ */ jsx("span", { children: label || "" }),
|
|
413
|
-
showProgress && /* @__PURE__ */ jsxs("span", { className: "font-medium", children: [
|
|
414
|
-
clampedValue,
|
|
415
|
-
"%"
|
|
416
|
-
] })
|
|
417
|
-
] }),
|
|
418
|
-
/* @__PURE__ */ jsx(
|
|
419
|
-
"div",
|
|
420
|
-
{
|
|
421
|
-
className: cn(
|
|
422
|
-
progressContainerVariants({ size }),
|
|
423
|
-
backgroundColorStyles[color][variant]
|
|
424
|
-
),
|
|
425
|
-
children: /* @__PURE__ */ jsx(
|
|
426
|
-
"div",
|
|
427
|
-
{
|
|
428
|
-
className: cn(
|
|
429
|
-
progressBarVariants({ size }),
|
|
430
|
-
barColorStyles[color][variant],
|
|
431
|
-
animated && striped && "progress-shimmer"
|
|
432
|
-
),
|
|
433
|
-
style: {
|
|
434
|
-
width: `${clampedValue}%`,
|
|
435
|
-
...striped && {
|
|
436
|
-
backgroundImage: "linear-gradient(45deg, var(--overlay-stripe) 25%, transparent 25%, transparent 50%, var(--overlay-stripe) 50%, var(--overlay-stripe) 75%, transparent 75%, transparent)",
|
|
437
|
-
backgroundSize: "1rem 1rem"
|
|
438
|
-
}
|
|
439
|
-
}
|
|
440
|
-
}
|
|
441
|
-
)
|
|
442
|
-
}
|
|
443
|
-
)
|
|
444
|
-
] });
|
|
445
|
-
}
|
|
446
|
-
);
|
|
447
|
-
Progress.displayName = "Progress";
|
|
448
|
-
var progress_default = Progress;
|
|
449
|
-
|
|
450
|
-
export { progress_default };
|
|
451
|
-
//# sourceMappingURL=chunk-TIMRHEKH.js.map
|
|
452
|
-
//# sourceMappingURL=chunk-TIMRHEKH.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/progress/index.tsx"],"names":[],"mappings":";;;;;AAMA,IAAM,WAAA,GAAc;AAAA,EAClB,EAAA,EAAI,EAAE,IAAA,EAAM,EAAA,EAAI,aAAa,CAAA,EAAE;AAAA,EAC/B,EAAA,EAAI,EAAE,IAAA,EAAM,EAAA,EAAI,aAAa,CAAA,EAAE;AAAA,EAC/B,EAAA,EAAI,EAAE,IAAA,EAAM,GAAA,EAAK,aAAa,CAAA,EAAE;AAAA,EAChC,EAAA,EAAI,EAAE,IAAA,EAAM,GAAA,EAAK,aAAa,EAAA;AAChC,CAAA;AAEA,IAAM,yBAAA,GAA4B,IAAI,qCAAA,EAAuC;AAAA,EAC3E,QAAA,EAAU;AAAA,IACR,IAAA,EAAM;AAAA,MACJ,EAAA,EAAI,KAAA;AAAA,MACJ,EAAA,EAAI,KAAA;AAAA,MACJ,EAAA,EAAI,KAAA;AAAA,MACJ,EAAA,EAAI;AAAA;AACN,GACF;AAAA,EACA,eAAA,EAAiB;AAAA,IACf,IAAA,EAAM;AAAA;AAEV,CAAC,CAAA;AAED,IAAM,mBAAA,GAAsB,GAAA;AAAA,EAC1B,6DAAA;AAAA,EACA;AAAA,IACE,QAAA,EAAU;AAAA,MACR,IAAA,EAAM;AAAA,QACJ,EAAA,EAAI,EAAA;AAAA,QACJ,EAAA,EAAI,EAAA;AAAA,QACJ,EAAA,EAAI,EAAA;AAAA,QACJ,EAAA,EAAI;AAAA;AACN,KACF;AAAA,IACA,eAAA,EAAiB;AAAA,MACf,IAAA,EAAM;AAAA;AACR;AAEJ,CAAA;AAEA,IAAM,qBAAA,GAAwB;AAAA,EAC5B,OAAA,EAAS;AAAA,IACP,OAAA,EAAS,YAAA;AAAA,IACT,KAAA,EAAO,YAAA;AAAA,IACP,IAAA,EAAM;AAAA,GACR;AAAA,EACA,OAAA,EAAS;AAAA,IACP,OAAA,EAAS,eAAA;AAAA,IACT,KAAA,EAAO,eAAA;AAAA,IACP,IAAA,EAAM;AAAA,GACR;AAAA,EACA,SAAA,EAAW;AAAA,IACT,OAAA,EAAS,iBAAA;AAAA,IACT,KAAA,EAAO,iBAAA;AAAA,IACP,IAAA,EAAM;AAAA,GACR;AAAA,EACA,MAAA,EAAQ;AAAA,IACN,OAAA,EAAS,cAAA;AAAA,IACT,KAAA,EAAO,cAAA;AAAA,IACP,IAAA,EAAM;AAAA,GACR;AAAA,EACA,OAAA,EAAS;AAAA,IACP,OAAA,EAAS,eAAA;AAAA,IACT,KAAA,EAAO,eAAA;AAAA,IACP,IAAA,EAAM;AAAA,GACR;AAAA,EACA,KAAA,EAAO;AAAA,IACL,OAAA,EAAS,aAAA;AAAA,IACT,KAAA,EAAO,aAAA;AAAA,IACP,IAAA,EAAM;AAAA,GACR;AAAA,EACA,OAAA,EAAS;AAAA,IACP,OAAA,EAAS,eAAA;AAAA,IACT,KAAA,EAAO,eAAA;AAAA,IACP,IAAA,EAAM;AAAA,GACR;AAAA,EACA,IAAA,EAAM;AAAA,IACJ,OAAA,EAAS,YAAA;AAAA,IACT,KAAA,EAAO,YAAA;AAAA,IACP,IAAA,EAAM;AAAA;AAEV,CAAA;AAEA,IAAM,cAAA,GAAiB;AAAA,EACrB,OAAA,EAAS;AAAA,IACP,OAAA,EAAS,iCAAA;AAAA,IACT,KAAA,EAAO,YAAA;AAAA,IACP,IAAA,EAAM;AAAA,GACR;AAAA,EACA,OAAA,EAAS;AAAA,IACP,OAAA,EAAS,qCAAA;AAAA,IACT,KAAA,EAAO,YAAA;AAAA,IACP,IAAA,EAAM;AAAA,GACR;AAAA,EACA,SAAA,EAAW;AAAA,IACT,OAAA,EAAS,yCAAA;AAAA,IACT,KAAA,EAAO,cAAA;AAAA,IACP,IAAA,EAAM;AAAA,GACR;AAAA,EACA,MAAA,EAAQ;AAAA,IACN,OAAA,EAAS,mCAAA;AAAA,IACT,KAAA,EAAO,WAAA;AAAA,IACP,IAAA,EAAM;AAAA,GACR;AAAA,EACA,OAAA,EAAS;AAAA,IACP,OAAA,EAAS,qCAAA;AAAA,IACT,KAAA,EAAO,YAAA;AAAA,IACP,IAAA,EAAM;AAAA,GACR;AAAA,EACA,KAAA,EAAO;AAAA,IACL,OAAA,EAAS,iCAAA;AAAA,IACT,KAAA,EAAO,UAAA;AAAA,IACP,IAAA,EAAM;AAAA,GACR;AAAA,EACA,OAAA,EAAS;AAAA,IACP,OAAA,EAAS,qCAAA;AAAA,IACT,KAAA,EAAO,YAAA;AAAA,IACP,IAAA,EAAM;AAAA,GACR;AAAA,EACA,IAAA,EAAM;AAAA,IACJ,OAAA,EAAS,+BAAA;AAAA,IACT,KAAA,EAAO,SAAA;AAAA,IACP,IAAA,EAAM;AAAA;AAEV,CAAA;AAEA,IAAM,kBAAA,GAAqB;AAAA,EACzB,OAAA,EAAS;AAAA,IACP,OAAA,EAAS,gBAAA;AAAA,IACT,KAAA,EAAO,gBAAA;AAAA,IACP,IAAA,EAAM;AAAA,GACR;AAAA,EACA,OAAA,EAAS;AAAA,IACP,OAAA,EAAS,gBAAA;AAAA,IACT,KAAA,EAAO,gBAAA;AAAA,IACP,IAAA,EAAM;AAAA,GACR;AAAA,EACA,SAAA,EAAW;AAAA,IACT,OAAA,EAAS,kBAAA;AAAA,IACT,KAAA,EAAO,kBAAA;AAAA,IACP,IAAA,EAAM;AAAA,GACR;AAAA,EACA,MAAA,EAAQ;AAAA,IACN,OAAA,EAAS,eAAA;AAAA,IACT,KAAA,EAAO,eAAA;AAAA,IACP,IAAA,EAAM;AAAA,GACR;AAAA,EACA,OAAA,EAAS;AAAA,IACP,OAAA,EAAS,gBAAA;AAAA,IACT,KAAA,EAAO,gBAAA;AAAA,IACP,IAAA,EAAM;AAAA,GACR;AAAA,EACA,KAAA,EAAO;AAAA,IACL,OAAA,EAAS,cAAA;AAAA,IACT,KAAA,EAAO,cAAA;AAAA,IACP,IAAA,EAAM;AAAA,GACR;AAAA,EACA,OAAA,EAAS;AAAA,IACP,OAAA,EAAS,gBAAA;AAAA,IACT,KAAA,EAAO,gBAAA;AAAA,IACP,IAAA,EAAM;AAAA,GACR;AAAA,EACA,IAAA,EAAM;AAAA,IACJ,OAAA,EAAS,aAAA;AAAA,IACT,KAAA,EAAO,aAAA;AAAA,IACP,IAAA,EAAM;AAAA;AAEV,CAAA;AAEA,IAAM,iBAAA,GAAoB;AAAA,EACxB,OAAA,EAAS;AAAA,IACP,OAAA,EAAS,gBAAA;AAAA,IACT,KAAA,EAAO,gBAAA;AAAA,IACP,IAAA,EAAM;AAAA,GACR;AAAA,EACA,OAAA,EAAS;AAAA,IACP,OAAA,EAAS,mBAAA;AAAA,IACT,KAAA,EAAO,mBAAA;AAAA,IACP,IAAA,EAAM;AAAA,GACR;AAAA,EACA,SAAA,EAAW;AAAA,IACT,OAAA,EAAS,qBAAA;AAAA,IACT,KAAA,EAAO,qBAAA;AAAA,IACP,IAAA,EAAM;AAAA,GACR;AAAA,EACA,MAAA,EAAQ;AAAA,IACN,OAAA,EAAS,kBAAA;AAAA,IACT,KAAA,EAAO,kBAAA;AAAA,IACP,IAAA,EAAM;AAAA,GACR;AAAA,EACA,OAAA,EAAS;AAAA,IACP,OAAA,EAAS,mBAAA;AAAA,IACT,KAAA,EAAO,mBAAA;AAAA,IACP,IAAA,EAAM;AAAA,GACR;AAAA,EACA,KAAA,EAAO;AAAA,IACL,OAAA,EAAS,iBAAA;AAAA,IACT,KAAA,EAAO,iBAAA;AAAA,IACP,IAAA,EAAM;AAAA,GACR;AAAA,EACA,OAAA,EAAS;AAAA,IACP,OAAA,EAAS,mBAAA;AAAA,IACT,KAAA,EAAO,mBAAA;AAAA,IACP,IAAA,EAAM;AAAA,GACR;AAAA,EACA,IAAA,EAAM;AAAA,IACJ,OAAA,EAAS,gBAAA;AAAA,IACT,KAAA,EAAO,gBAAA;AAAA,IACP,IAAA,EAAM;AAAA;AAEV,CAAA;AAEA,IAAM,WAAW,KAAA,CAAM,IAAA;AAAA,EACrB,CAAC;AAAA,IACC,KAAA;AAAA,IACA,KAAA,GAAQ,SAAA;AAAA,IACR,IAAA,GAAO,IAAA;AAAA,IACP,OAAA,GAAU,SAAA;AAAA,IACV,IAAA,GAAO,MAAA;AAAA,IACP,WAAA,GAAc,YAAA;AAAA,IACd,YAAA,GAAe,KAAA;AAAA,IACf,KAAA;AAAA,IACA,OAAA,GAAU,KAAA;AAAA,IACV,QAAA,GAAW,KAAA;AAAA,IACX,SAAA;AAAA,IACA,UAAA,GAAa;AAAA,GACf,KAAM;AACJ,IAAA,MAAM,YAAA,GAAe,KAAK,GAAA,CAAI,IAAA,CAAK,IAAI,KAAA,EAAO,CAAC,GAAG,GAAG,CAAA;AAErD,IAAA,IAAI,SAAS,QAAA,EAAU;AACrB,MAAA,MAAM,EAAE,IAAA,EAAM,UAAA,EAAY,WAAA,EAAY,GAAI,YAAY,IAAI,CAAA;AAC1D,MAAA,MAAM,MAAA,GAAA,CAAU,aAAa,WAAA,IAAe,CAAA;AAC5C,MAAA,MAAM,aAAA,GAAgB,CAAA,GAAI,IAAA,CAAK,EAAA,GAAK,MAAA;AACpC,MAAA,MAAM,MAAA,GAAS,aAAA,GAAiB,YAAA,GAAe,GAAA,GAAO,aAAA;AAEtD,MAAA,2BACG,KAAA,EAAA,EAAI,SAAA,EAAW,EAAA,CAAG,mCAAA,EAAqC,SAAS,CAAA,EAC/D,QAAA,kBAAA,IAAA;AAAA,QAAC,KAAA;AAAA,QAAA;AAAA,UACC,SAAA,EAAU,UAAA;AAAA,UACV,KAAA,EAAO,EAAE,KAAA,EAAO,UAAA,EAAY,QAAQ,UAAA,EAAW;AAAA,UAE/C,QAAA,EAAA;AAAA,4BAAA,IAAA;AAAA,cAAC,KAAA;AAAA,cAAA;AAAA,gBACC,KAAA,EAAO,UAAA;AAAA,gBACP,MAAA,EAAQ,UAAA;AAAA,gBACR,SAAA,EAAU,sBAAA;AAAA,gBAGV,QAAA,EAAA;AAAA,kCAAA,GAAA;AAAA,oBAAC,QAAA;AAAA,oBAAA;AAAA,sBACC,IAAI,UAAA,GAAa,CAAA;AAAA,sBACjB,IAAI,UAAA,GAAa,CAAA;AAAA,sBACjB,CAAA,EAAG,MAAA;AAAA,sBACH,IAAA,EAAK,MAAA;AAAA,sBACL,WAAA;AAAA,sBACA,SAAA,EAAW,iBAAA,CAAkB,KAAK,CAAA,CAAE,OAAO;AAAA;AAAA,mBAC7C;AAAA,kCACA,GAAA;AAAA,oBAAC,QAAA;AAAA,oBAAA;AAAA,sBACC,IAAI,UAAA,GAAa,CAAA;AAAA,sBACjB,IAAI,UAAA,GAAa,CAAA;AAAA,sBACjB,CAAA,EAAG,MAAA;AAAA,sBACH,IAAA,EAAK,MAAA;AAAA,sBACL,WAAA;AAAA,sBACA,eAAA,EAAiB,aAAA;AAAA,sBACjB,gBAAA,EAAkB,MAAA;AAAA,sBAClB,aAAA,EAAc,OAAA;AAAA,sBACd,SAAA,EAAW,EAAA;AAAA,wBACT,kBAAA,CAAmB,KAAK,CAAA,CAAE,OAAO,CAAA;AAAA,wBACjC;AAAA;AACF;AAAA;AACF;AAAA;AAAA,aACF;AAAA,4BAEA,GAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,4DAAA,EACZ,QAAA,EAAA,KAAA,uBACE,KAAA,EAAA,EAAI,SAAA,EAAU,yBAAA,EAA2B,QAAA,EAAA,KAAA,EAAM,CAAA,mBAEhD,IAAA;AAAA,cAAC,MAAA;AAAA,cAAA;AAAA,gBACC,SAAA,EAAU,iCAAA;AAAA,gBACV,KAAA,EAAO,EAAE,QAAA,EAAU,UAAA,GAAa,CAAA,EAAE;AAAA,gBAEjC,QAAA,EAAA;AAAA,kBAAA,YAAA;AAAA,kBAAa;AAAA;AAAA;AAAA,aAChB,EAEJ;AAAA;AAAA;AAAA,OACF,EACF,CAAA;AAAA,IAEJ;AAEA,IAAA,IAAI,SAAS,MAAA,EAAQ;AACnB,MAAA,MAAM,WAAA,GAAc,IAAA,CAAK,IAAA,CAAM,YAAA,GAAe,MAAO,UAAU,CAAA;AAE/D,MAAA,IAAI,gBAAgB,UAAA,EAAY;AAC9B,QAAA,4BACG,KAAA,EAAA,EAAI,SAAA,EAAW,EAAA,CAAG,sBAAA,EAAwB,SAAS,CAAA,EACjD,QAAA,EAAA;AAAA,UAAA,KAAA,oBACC,IAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,kEAAA,EACb,QAAA,EAAA;AAAA,4BAAA,GAAA,CAAC,MAAA,EAAA,EAAM,mBAAS,EAAA,EAAG,CAAA;AAAA,YAClB,YAAA,oBACC,IAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,aAAA,EAAe,QAAA,EAAA;AAAA,cAAA,YAAA;AAAA,cAAa;AAAA,aAAA,EAAC;AAAA,WAAA,EAEjD,CAAA;AAAA,0BAEF,GAAA;AAAA,YAAC,KAAA;AAAA,YAAA;AAAA,cACC,SAAA,EAAW,EAAA;AAAA,gBACT,iEAAA;AAAA,gBACA,IAAA,KAAS,OACL,KAAA,GACA,IAAA,KAAS,OACP,KAAA,GACA,IAAA,KAAS,OACP,KAAA,GACA;AAAA,eACV;AAAA,cAEC,QAAA,EAAA,KAAA,CAAM,KAAK,EAAE,MAAA,EAAQ,YAAW,EAAG,CAAC,GAAG,KAAA,KAAU;AAChD,gBAAA,MAAM,aAAa,KAAA,GAAQ,CAAA;AAC3B,gBAAA,MAAM,cAAc,UAAA,IAAc,WAAA;AAElC,gBAAA,uBACE,GAAA;AAAA,kBAAC,KAAA;AAAA,kBAAA;AAAA,oBAEC,SAAA,EAAW,EAAA;AAAA,sBACT,2CAAA;AAAA,sBACA,WAAA,GACI,eAAe,KAAK,CAAA,CAAE,OAAO,CAAA,GAC7B,qBAAA,CAAsB,KAAK,CAAA,CAAE,OAAO,CAAA;AAAA,sBACxC,YAAY,OAAA,IAAW;AAAA,qBACzB;AAAA,oBACA,KAAA,EAAO;AAAA,sBACL,GAAI,WACF,WAAA,IAAe;AAAA,wBACb,eAAA,EACE,yKAAA;AAAA,wBACF,cAAA,EAAgB;AAAA;AAClB;AACJ,mBAAA;AAAA,kBAfK;AAAA,iBAgBP;AAAA,cAEJ,CAAC;AAAA;AAAA;AACH,SAAA,EACF,CAAA;AAAA,MAEJ;AAGA,MAAA,4BACG,KAAA,EAAA,EAAI,SAAA,EAAW,EAAA,CAAG,QAAA,EAAU,SAAS,CAAA,EACnC,QAAA,EAAA;AAAA,QAAA,KAAA,oBACC,IAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,kEAAA,EACb,QAAA,EAAA;AAAA,0BAAA,GAAA,CAAC,MAAA,EAAA,EAAM,mBAAS,EAAA,EAAG,CAAA;AAAA,UAClB,YAAA,oBACC,IAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,aAAA,EAAe,QAAA,EAAA;AAAA,YAAA,YAAA;AAAA,YAAa;AAAA,WAAA,EAAC;AAAA,SAAA,EAEjD,CAAA;AAAA,wBAEF,GAAA;AAAA,UAAC,KAAA;AAAA,UAAA;AAAA,YACC,SAAA,EAAW,EAAA;AAAA,cACT,gDAAA;AAAA,cACA,yBAAA,CAA0B,EAAE,IAAA,EAAM;AAAA,aACpC;AAAA,YAEC,QAAA,EAAA,KAAA,CAAM,KAAK,EAAE,MAAA,EAAQ,YAAW,EAAG,CAAC,GAAG,KAAA,KAAU;AAChD,cAAA,MAAM,aAAa,KAAA,GAAQ,CAAA;AAC3B,cAAA,MAAM,cAAc,UAAA,IAAc,WAAA;AAElC,cAAA,uBACE,GAAA;AAAA,gBAAC,KAAA;AAAA,gBAAA;AAAA,kBAEC,SAAA,EAAW,EAAA;AAAA,oBACT,2CAAA;AAAA,oBACA,WAAA,GACI,eAAe,KAAK,CAAA,CAAE,OAAO,CAAA,GAC7B,qBAAA,CAAsB,KAAK,CAAA,CAAE,OAAO,CAAA;AAAA,oBACxC,YAAY,OAAA,IAAW;AAAA,mBACzB;AAAA,kBACA,KAAA,EAAO;AAAA,oBACL,GAAI,WACF,WAAA,IAAe;AAAA,sBACb,eAAA,EACE,yKAAA;AAAA,sBACF,cAAA,EAAgB;AAAA;AAClB;AACJ,iBAAA;AAAA,gBAfK;AAAA,eAgBP;AAAA,YAEJ,CAAC;AAAA;AAAA;AACH,OAAA,EACF,CAAA;AAAA,IAEJ;AAGA,IAAA,IAAI,gBAAgB,UAAA,EAAY;AAC9B,MAAA,4BACG,KAAA,EAAA,EAAI,SAAA,EAAW,EAAA,CAAG,sBAAA,EAAwB,SAAS,CAAA,EACjD,QAAA,EAAA;AAAA,QAAA,KAAA,oBACC,IAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,kEAAA,EACb,QAAA,EAAA;AAAA,0BAAA,GAAA,CAAC,MAAA,EAAA,EAAM,mBAAS,EAAA,EAAG,CAAA;AAAA,UAClB,YAAA,oBACC,IAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,aAAA,EAAe,QAAA,EAAA;AAAA,YAAA,YAAA;AAAA,YAAa;AAAA,WAAA,EAAC;AAAA,SAAA,EAEjD,CAAA;AAAA,wBAEF,GAAA;AAAA,UAAC,KAAA;AAAA,UAAA;AAAA,YACC,SAAA,EAAW,EAAA;AAAA,cACT,+DAAA;AAAA,cACA,IAAA,KAAS,OACL,KAAA,GACA,IAAA,KAAS,OACP,KAAA,GACA,IAAA,KAAS,OACP,KAAA,GACA,KAAA;AAAA,cACR,qBAAA,CAAsB,KAAK,CAAA,CAAE,OAAO;AAAA,aACtC;AAAA,YAEA,QAAA,kBAAA,GAAA;AAAA,cAAC,KAAA;AAAA,cAAA;AAAA,gBACC,SAAA,EAAW,EAAA;AAAA,kBACT,6DAAA;AAAA,kBACA,cAAA,CAAe,KAAK,CAAA,CAAE,OAAO,CAAA;AAAA,kBAC7B,YAAY,OAAA,IAAW;AAAA,iBACzB;AAAA,gBACA,KAAA,EAAO;AAAA,kBACL,MAAA,EAAQ,GAAG,YAAY,CAAA,CAAA,CAAA;AAAA,kBACvB,GAAI,OAAA,IAAW;AAAA,oBACb,eAAA,EACE,yKAAA;AAAA,oBACF,cAAA,EAAgB;AAAA;AAClB;AACF;AAAA;AACF;AAAA;AACF,OAAA,EACF,CAAA;AAAA,IAEJ;AAEA,IAAA,4BACG,KAAA,EAAA,EAAI,SAAA,EAAW,EAAA,CAAG,QAAA,EAAU,SAAS,CAAA,EACnC,QAAA,EAAA;AAAA,MAAA,KAAA,oBACC,IAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,kEAAA,EACb,QAAA,EAAA;AAAA,wBAAA,GAAA,CAAC,MAAA,EAAA,EAAM,mBAAS,EAAA,EAAG,CAAA;AAAA,QAClB,YAAA,oBACC,IAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,aAAA,EAAe,QAAA,EAAA;AAAA,UAAA,YAAA;AAAA,UAAa;AAAA,SAAA,EAAC;AAAA,OAAA,EAEjD,CAAA;AAAA,sBAEF,GAAA;AAAA,QAAC,KAAA;AAAA,QAAA;AAAA,UACC,SAAA,EAAW,EAAA;AAAA,YACT,yBAAA,CAA0B,EAAE,IAAA,EAAM,CAAA;AAAA,YAClC,qBAAA,CAAsB,KAAK,CAAA,CAAE,OAAO;AAAA,WACtC;AAAA,UAEA,QAAA,kBAAA,GAAA;AAAA,YAAC,KAAA;AAAA,YAAA;AAAA,cACC,SAAA,EAAW,EAAA;AAAA,gBACT,mBAAA,CAAoB,EAAE,IAAA,EAAM,CAAA;AAAA,gBAC5B,cAAA,CAAe,KAAK,CAAA,CAAE,OAAO,CAAA;AAAA,gBAC7B,YAAY,OAAA,IAAW;AAAA,eACzB;AAAA,cACA,KAAA,EAAO;AAAA,gBACL,KAAA,EAAO,GAAG,YAAY,CAAA,CAAA,CAAA;AAAA,gBACtB,GAAI,OAAA,IAAW;AAAA,kBACb,eAAA,EACE,yKAAA;AAAA,kBACF,cAAA,EAAgB;AAAA;AAClB;AACF;AAAA;AACF;AAAA;AACF,KAAA,EACF,CAAA;AAAA,EAEJ;AACF,CAAA;AAEA,QAAA,CAAS,WAAA,GAAc,UAAA;AAGvB,IAAO,gBAAA,GAAQ","file":"chunk-TIMRHEKH.js","sourcesContent":["import { cva } from 'class-variance-authority'\nimport React from 'react'\n\nimport { cn } from '../utils'\nimport type { ProgressProps } from './types'\n\nconst circleSizes = {\n xs: { size: 60, strokeWidth: 4 },\n sm: { size: 80, strokeWidth: 6 },\n md: { size: 120, strokeWidth: 8 },\n lg: { size: 160, strokeWidth: 10 },\n}\n\nconst progressContainerVariants = cva('w-full rounded-full overflow-hidden', {\n variants: {\n size: {\n xs: 'h-1',\n sm: 'h-2',\n md: 'h-3',\n lg: 'h-4',\n },\n },\n defaultVariants: {\n size: 'md',\n },\n})\n\nconst progressBarVariants = cva(\n 'h-full transition-all duration-300 ease-in-out rounded-full',\n {\n variants: {\n size: {\n xs: '',\n sm: '',\n md: '',\n lg: '',\n },\n },\n defaultVariants: {\n size: 'md',\n },\n },\n)\n\nconst backgroundColorStyles = {\n default: {\n default: 'bg-surface',\n solid: 'bg-surface',\n soft: 'bg-surface/50',\n },\n primary: {\n default: 'bg-primary/10',\n solid: 'bg-primary/20',\n soft: 'bg-primary/10',\n },\n secondary: {\n default: 'bg-secondary/10',\n solid: 'bg-secondary/20',\n soft: 'bg-secondary/10',\n },\n accent: {\n default: 'bg-accent/10',\n solid: 'bg-accent/20',\n soft: 'bg-accent/10',\n },\n success: {\n default: 'bg-success/10',\n solid: 'bg-success/20',\n soft: 'bg-success/10',\n },\n error: {\n default: 'bg-error/10',\n solid: 'bg-error/20',\n soft: 'bg-error/10',\n },\n warning: {\n default: 'bg-warning/10',\n solid: 'bg-warning/20',\n soft: 'bg-warning/10',\n },\n info: {\n default: 'bg-info/10',\n solid: 'bg-info/20',\n soft: 'bg-info/10',\n },\n}\n\nconst barColorStyles = {\n default: {\n default: 'bg-surface border border-border',\n solid: 'bg-surface',\n soft: 'bg-surface/80',\n },\n primary: {\n default: 'bg-primary/20 border border-primary',\n solid: 'bg-primary',\n soft: 'bg-primary/60',\n },\n secondary: {\n default: 'bg-secondary/20 border border-secondary',\n solid: 'bg-secondary',\n soft: 'bg-secondary/60',\n },\n accent: {\n default: 'bg-accent/20 border border-accent',\n solid: 'bg-accent',\n soft: 'bg-accent/60',\n },\n success: {\n default: 'bg-success/20 border border-success',\n solid: 'bg-success',\n soft: 'bg-success/60',\n },\n error: {\n default: 'bg-error/20 border border-error',\n solid: 'bg-error',\n soft: 'bg-error/60',\n },\n warning: {\n default: 'bg-warning/20 border border-warning',\n solid: 'bg-warning',\n soft: 'bg-warning/60',\n },\n info: {\n default: 'bg-info/20 border border-info',\n solid: 'bg-info',\n soft: 'bg-info/60',\n },\n}\n\nconst circleStrokeColors = {\n default: {\n default: 'stroke-surface',\n solid: 'stroke-surface',\n soft: 'stroke-surface/80',\n },\n primary: {\n default: 'stroke-primary',\n solid: 'stroke-primary',\n soft: 'stroke-primary/60',\n },\n secondary: {\n default: 'stroke-secondary',\n solid: 'stroke-secondary',\n soft: 'stroke-secondary/60',\n },\n accent: {\n default: 'stroke-accent',\n solid: 'stroke-accent',\n soft: 'stroke-accent/60',\n },\n success: {\n default: 'stroke-success',\n solid: 'stroke-success',\n soft: 'stroke-success/60',\n },\n error: {\n default: 'stroke-error',\n solid: 'stroke-error',\n soft: 'stroke-error/60',\n },\n warning: {\n default: 'stroke-warning',\n solid: 'stroke-warning',\n soft: 'stroke-warning/60',\n },\n info: {\n default: 'stroke-info',\n solid: 'stroke-info',\n soft: 'stroke-info/60',\n },\n}\n\nconst circleTrailColors = {\n default: {\n default: 'stroke-surface',\n solid: 'stroke-surface',\n soft: 'stroke-surface/50',\n },\n primary: {\n default: 'stroke-primary/10',\n solid: 'stroke-primary/20',\n soft: 'stroke-primary/10',\n },\n secondary: {\n default: 'stroke-secondary/10',\n solid: 'stroke-secondary/20',\n soft: 'stroke-secondary/10',\n },\n accent: {\n default: 'stroke-accent/10',\n solid: 'stroke-accent/20',\n soft: 'stroke-accent/10',\n },\n success: {\n default: 'stroke-success/10',\n solid: 'stroke-success/20',\n soft: 'stroke-success/10',\n },\n error: {\n default: 'stroke-error/10',\n solid: 'stroke-error/20',\n soft: 'stroke-error/10',\n },\n warning: {\n default: 'stroke-warning/10',\n solid: 'stroke-warning/20',\n soft: 'stroke-warning/10',\n },\n info: {\n default: 'stroke-info/10',\n solid: 'stroke-info/20',\n soft: 'stroke-info/10',\n },\n}\n\nconst Progress = React.memo<ProgressProps>(\n ({\n value,\n color = 'primary',\n size = 'md',\n variant = 'default',\n type = 'line',\n orientation = 'horizontal',\n showProgress = false,\n label,\n striped = false,\n animated = false,\n className,\n totalSteps = 5,\n }) => {\n const clampedValue = Math.min(Math.max(value, 0), 100)\n\n if (type === 'circle') {\n const { size: circleSize, strokeWidth } = circleSizes[size]\n const radius = (circleSize - strokeWidth) / 2\n const circumference = 2 * Math.PI * radius\n const offset = circumference - (clampedValue / 100) * circumference\n\n return (\n <div className={cn('inline-flex flex-col items-center', className)}>\n <div\n className=\"relative\"\n style={{ width: circleSize, height: circleSize }}\n >\n <svg\n width={circleSize}\n height={circleSize}\n className=\"transform -rotate-90\"\n >\n {/* Background circle */}\n <circle\n cx={circleSize / 2}\n cy={circleSize / 2}\n r={radius}\n fill=\"none\"\n strokeWidth={strokeWidth}\n className={circleTrailColors[color][variant]}\n />\n <circle\n cx={circleSize / 2}\n cy={circleSize / 2}\n r={radius}\n fill=\"none\"\n strokeWidth={strokeWidth}\n strokeDasharray={circumference}\n strokeDashoffset={offset}\n strokeLinecap=\"round\"\n className={cn(\n circleStrokeColors[color][variant],\n 'transition-all duration-300 ease-in-out',\n )}\n />\n </svg>\n {/* Center text */}\n <div className=\"absolute inset-0 flex flex-col items-center justify-center\">\n {label ? (\n <div className=\"p-2 text-text-secondary\">{label}</div>\n ) : (\n <span\n className=\"text-text-primary font-semibold\"\n style={{ fontSize: circleSize / 7 }}\n >\n {clampedValue}%\n </span>\n )}\n </div>\n </div>\n </div>\n )\n }\n\n if (type === 'step') {\n const currentStep = Math.ceil((clampedValue / 100) * totalSteps)\n\n if (orientation === 'vertical') {\n return (\n <div className={cn('h-full flex flex-col', className)}>\n {label && (\n <div className=\"flex items-center justify-between mb-2 text-sm text-text-primary\">\n <span>{label || ''}</span>\n {showProgress && (\n <span className=\"font-medium\">{clampedValue}%</span>\n )}\n </div>\n )}\n <div\n className={cn(\n 'flex-1 rounded-full overflow-hidden flex flex-col-reverse gap-1',\n size === 'xs'\n ? 'w-1'\n : size === 'sm'\n ? 'w-2'\n : size === 'md'\n ? 'w-3'\n : 'w-4',\n )}\n >\n {Array.from({ length: totalSteps }, (_, index) => {\n const stepNumber = index + 1\n const isCompleted = stepNumber <= currentStep\n\n return (\n <div\n key={index}\n className={cn(\n 'w-full rounded-full transition-all flex-1',\n isCompleted\n ? barColorStyles[color][variant]\n : backgroundColorStyles[color][variant],\n animated && striped && 'progress-shimmer',\n )}\n style={{\n ...(striped &&\n isCompleted && {\n backgroundImage:\n 'linear-gradient(45deg, var(--overlay-stripe) 25%, transparent 25%, transparent 50%, var(--overlay-stripe) 50%, var(--overlay-stripe) 75%, transparent 75%, transparent)',\n backgroundSize: '1rem 1rem',\n }),\n }}\n />\n )\n })}\n </div>\n </div>\n )\n }\n\n // Horizontal step progress\n return (\n <div className={cn('w-full', className)}>\n {label && (\n <div className=\"flex items-center justify-between mb-2 text-sm text-text-primary\">\n <span>{label || ''}</span>\n {showProgress && (\n <span className=\"font-medium\">{clampedValue}%</span>\n )}\n </div>\n )}\n <div\n className={cn(\n 'w-full rounded-full overflow-hidden flex gap-1',\n progressContainerVariants({ size }),\n )}\n >\n {Array.from({ length: totalSteps }, (_, index) => {\n const stepNumber = index + 1\n const isCompleted = stepNumber <= currentStep\n\n return (\n <div\n key={index}\n className={cn(\n 'h-full rounded-full transition-all flex-1',\n isCompleted\n ? barColorStyles[color][variant]\n : backgroundColorStyles[color][variant],\n animated && striped && 'progress-shimmer',\n )}\n style={{\n ...(striped &&\n isCompleted && {\n backgroundImage:\n 'linear-gradient(45deg, var(--overlay-stripe) 25%, transparent 25%, transparent 50%, var(--overlay-stripe) 50%, var(--overlay-stripe) 75%, transparent 75%, transparent)',\n backgroundSize: '1rem 1rem',\n }),\n }}\n />\n )\n })}\n </div>\n </div>\n )\n }\n\n // Line progress (horizontal or vertical)\n if (orientation === 'vertical') {\n return (\n <div className={cn('h-full flex flex-col', className)}>\n {label && (\n <div className=\"flex items-center justify-between mb-2 text-sm text-text-primary\">\n <span>{label || ''}</span>\n {showProgress && (\n <span className=\"font-medium\">{clampedValue}%</span>\n )}\n </div>\n )}\n <div\n className={cn(\n 'flex-1 rounded-full overflow-hidden flex flex-col justify-end',\n size === 'xs'\n ? 'w-1'\n : size === 'sm'\n ? 'w-2'\n : size === 'md'\n ? 'w-3'\n : 'w-4',\n backgroundColorStyles[color][variant],\n )}\n >\n <div\n className={cn(\n 'w-full transition-all duration-300 ease-in-out rounded-full',\n barColorStyles[color][variant],\n animated && striped && 'progress-shimmer',\n )}\n style={{\n height: `${clampedValue}%`,\n ...(striped && {\n backgroundImage:\n 'linear-gradient(45deg, var(--overlay-stripe) 25%, transparent 25%, transparent 50%, var(--overlay-stripe) 50%, var(--overlay-stripe) 75%, transparent 75%, transparent)',\n backgroundSize: '1rem 1rem',\n }),\n }}\n />\n </div>\n </div>\n )\n }\n\n return (\n <div className={cn('w-full', className)}>\n {label && (\n <div className=\"flex items-center justify-between mb-2 text-sm text-text-primary\">\n <span>{label || ''}</span>\n {showProgress && (\n <span className=\"font-medium\">{clampedValue}%</span>\n )}\n </div>\n )}\n <div\n className={cn(\n progressContainerVariants({ size }),\n backgroundColorStyles[color][variant],\n )}\n >\n <div\n className={cn(\n progressBarVariants({ size }),\n barColorStyles[color][variant],\n animated && striped && 'progress-shimmer',\n )}\n style={{\n width: `${clampedValue}%`,\n ...(striped && {\n backgroundImage:\n 'linear-gradient(45deg, var(--overlay-stripe) 25%, transparent 25%, transparent 50%, var(--overlay-stripe) 50%, var(--overlay-stripe) 75%, transparent 75%, transparent)',\n backgroundSize: '1rem 1rem',\n }),\n }}\n />\n </div>\n </div>\n )\n },\n)\n\nProgress.displayName = 'Progress'\n\nexport type * from './types'\nexport default Progress\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/variants.ts"],"names":[],"mappings":"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","file":"chunk-TUTOU4X6.js","sourcesContent":["import { cva, type VariantProps } from 'class-variance-authority'\n\nimport type { ButtonColor, ComponentColor } from './types'\n\n// ============================================================================\n// Color Variant Generators\n// ============================================================================\n\n/**\n * Color palette for component variants\n * Maps to Tailwind CSS v4 theme variables (--color-primary, --color-secondary, etc.)\n */\nexport const componentColors = [\n 'default',\n 'primary',\n 'secondary',\n 'accent',\n 'success',\n 'error',\n 'warning',\n 'info',\n] as const\n\nexport const buttonColors = [\n 'primary',\n 'secondary',\n 'accent',\n 'success',\n 'error',\n 'warning',\n 'info',\n] as const\n\n/**\n * Static class maps for Tailwind JIT compatibility\n * Template literals like `bg-${color}` don't work with Tailwind's JIT compiler\n */\nconst defaultVariantClasses: Record<ComponentColor, string> = {\n default: 'bg-background border border-border text-text-primary',\n primary: 'bg-background border border-primary text-text-primary',\n secondary: 'bg-background border border-secondary text-text-primary',\n accent: 'bg-background border border-accent text-text-primary',\n success: 'bg-background border border-success text-text-primary',\n error: 'bg-background border border-error text-text-primary',\n warning: 'bg-background border border-warning text-text-primary',\n info: 'bg-background border border-info text-text-primary',\n}\n\n/**\n * Generates compound variants for default style\n * Used by: Badge, Toast, and other components\n *\n * @param colors - Array of color names to generate variants for\n * @returns Array of compound variant objects for cva\n */\nexport function createDefaultColorVariants(colors: readonly string[]) {\n return colors.map((color) => ({\n variant: 'default' as const,\n color: color as ComponentColor | ButtonColor,\n class: defaultVariantClasses[color as ComponentColor],\n }))\n}\n\nconst solidVariantClasses: Record<ComponentColor, string> = {\n default: 'bg-surface border border-border text-text-primary',\n primary: 'bg-primary text-background hover:bg-primary/90',\n secondary: 'bg-secondary text-background hover:bg-secondary/90',\n accent: 'bg-accent text-background hover:bg-accent/90',\n success: 'bg-success text-background hover:bg-success/90',\n error: 'bg-error text-background hover:bg-error/90',\n warning: 'bg-warning text-background hover:bg-warning/90',\n info: 'bg-info text-background hover:bg-info/90',\n}\n\n/**\n * Generates compound variants for solid color style\n * Used by: Button, Badge, Accordion, Toast\n *\n * @param colors - Array of color names to generate variants for\n * @returns Array of compound variant objects for cva\n */\nexport function createSolidColorVariants(colors: readonly string[]) {\n return colors.map((color) => ({\n variant: 'solid' as const,\n color: color as ComponentColor | ButtonColor,\n class: solidVariantClasses[color as ComponentColor],\n }))\n}\n\nconst outlineVariantClasses: Record<ComponentColor, string> = {\n default: 'border border-border text-text-primary',\n primary: 'border border-primary text-primary hover:bg-primary/10',\n secondary: 'border border-secondary text-secondary hover:bg-secondary/10',\n accent: 'border border-accent text-accent hover:bg-accent/10',\n success: 'border border-success text-success hover:bg-success/10',\n error: 'border border-error text-error hover:bg-error/10',\n warning: 'border border-warning text-warning hover:bg-warning/10',\n info: 'border border-info text-info hover:bg-info/10',\n}\n\n/**\n * Generates compound variants for outline color style\n * Used by: Button, Badge, Accordion\n *\n * @param colors - Array of color names to generate variants for\n * @returns Array of compound variant objects for cva\n */\nexport function createOutlineColorVariants(colors: readonly string[]) {\n return colors.map((color) => ({\n variant: 'outline' as const,\n color: color as ComponentColor | ButtonColor,\n class: outlineVariantClasses[color as ComponentColor],\n }))\n}\n\nconst softVariantClasses: Record<ComponentColor, string> = {\n default: 'bg-surface border border-border text-text-primary',\n primary: 'bg-primary/10 text-primary',\n secondary: 'bg-secondary/10 text-secondary',\n accent: 'bg-accent/10 text-accent',\n success: 'bg-success/10 text-success',\n error: 'bg-error/10 text-error',\n warning: 'bg-warning/10 text-warning',\n info: 'bg-info/10 text-info',\n}\n\n/**\n * Generates compound variants for soft/subtle color style\n * Used by: Badge, Accordion, Toast\n *\n * @param colors - Array of color names to generate variants for\n * @returns Array of compound variant objects for cva\n */\nexport function createSoftColorVariants(colors: readonly string[]) {\n return colors.map((color) => ({\n variant: 'soft' as const,\n color: color as ComponentColor | ButtonColor,\n class: softVariantClasses[color as ComponentColor],\n }))\n}\n\nconst dashedVariantClasses: Record<ComponentColor, string> = {\n default: 'border-dashed border-border text-text-primary',\n primary: 'border-dashed border-primary text-primary hover:bg-primary/10',\n secondary: 'border-dashed border-secondary text-secondary hover:bg-secondary/10',\n accent: 'border-dashed border-accent text-accent hover:bg-accent/10',\n success: 'border-dashed border-success text-success hover:bg-success/10',\n error: 'border-dashed border-error text-error hover:bg-error/10',\n warning: 'border-dashed border-warning text-warning hover:bg-warning/10',\n info: 'border-dashed border-info text-info hover:bg-info/10',\n}\n\n/**\n * Generates compound variants for dashed border color style\n * Used by: Button\n *\n * @param colors - Array of color names to generate variants for\n * @returns Array of compound variant objects for cva\n */\nexport function createDashedColorVariants(colors: readonly string[]) {\n return colors.map((color) => ({\n variant: 'dashed' as const,\n color: color as ComponentColor | ButtonColor,\n class: dashedVariantClasses[color as ComponentColor],\n }))\n}\n\nconst linkVariantClasses: Record<ComponentColor, string> = {\n default: 'text-text-primary hover:text-text-primary/80',\n primary: 'text-primary hover:text-primary/80',\n secondary: 'text-secondary hover:text-secondary/80',\n accent: 'text-accent hover:text-accent/80',\n success: 'text-success hover:text-success/80',\n error: 'text-error hover:text-error/80',\n warning: 'text-warning hover:text-warning/80',\n info: 'text-info hover:text-info/80',\n}\n\n/**\n * Generates compound variants for link/text-only color style\n * Used by: Button, Breadcrumbs\n *\n * @param colors - Array of color names to generate variants for\n * @returns Array of compound variant objects for cva\n */\nexport function createLinkColorVariants(colors: readonly string[]) {\n return colors.map((color) => ({\n variant: 'link' as const,\n color: color as ComponentColor | ButtonColor,\n class: linkVariantClasses[color as ComponentColor],\n }))\n}\n\nconst ghostVariantClasses: Record<ComponentColor, string> = {\n default: 'text-text-primary hover:bg-surface',\n primary: 'text-primary hover:bg-primary/10',\n secondary: 'text-secondary hover:bg-secondary/10',\n accent: 'text-accent hover:bg-accent/10',\n success: 'text-success hover:bg-success/10',\n error: 'text-error hover:bg-error/10',\n warning: 'text-warning hover:bg-warning/10',\n info: 'text-info hover:bg-info/10',\n}\n\n/**\n * Generates compound variants for ghost (borderless) color style\n * Used by: Button, Table\n *\n * @param colors - Array of color names to generate variants for\n * @returns Array of compound variant objects for cva\n */\nexport function createGhostColorVariants(colors: readonly string[]) {\n return colors.map((color) => ({\n variant: 'ghost' as const,\n color: color as ComponentColor | ButtonColor,\n class: ghostVariantClasses[color as ComponentColor],\n }))\n}\n\n/**\n * Complete color variant generator for components with multiple style variants\n * Combines all color variant generators into a single array\n *\n * @example\n * const buttonVariants = cva(\"base-classes\", {\n * variants: {\n * variant: { solid: \"\", outline: \"\", ghost: \"\" },\n * color: { primary: \"\", secondary: \"\", ... }\n * },\n * compoundVariants: createAllColorVariants(buttonColors, ['solid', 'outline', 'ghost'])\n * })\n */\n/**\n * Supported variant types for compound variant generation\n */\nexport type StyleVariantType = 'default' | 'solid' | 'outline' | 'soft' | 'dashed' | 'link' | 'ghost'\n\n/**\n * Shape of a generated compound variant object\n * Uses 'any' for CVA compatibility - CVA's compound variants type is complex\n * and using specific types causes type inference issues\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function createAllColorVariants<V extends StyleVariantType>(\n colors: readonly string[],\n variants: V[],\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n): any[] {\n const variantGenerators = {\n default: createDefaultColorVariants,\n solid: createSolidColorVariants,\n outline: createOutlineColorVariants,\n soft: createSoftColorVariants,\n dashed: createDashedColorVariants,\n link: createLinkColorVariants,\n ghost: createGhostColorVariants,\n } as const\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return variants.flatMap((variant) => variantGenerators[variant](colors) as any[])\n}\n\n// ============================================================================\n// Shared Color Classes\n// ============================================================================\n\n/**\n * Text color classes for all component colors\n * Used by: Checkbox icons, Spinner, text elements\n */\nexport const textColorClasses = {\n default: 'text-text-primary',\n primary: 'text-primary',\n secondary: 'text-secondary',\n accent: 'text-accent',\n success: 'text-success',\n error: 'text-error',\n warning: 'text-warning',\n info: 'text-info',\n} as const\n\n/**\n * Foreground text color classes for solid backgrounds (contrast colors)\n * Used by: Solid buttons, badges, notifications - text that sits on colored backgrounds\n * Note: Uses 'text-background' for semantic colors as they typically have white/light foreground\n */\nexport const textForegroundColorClasses = {\n default: 'text-text-primary',\n primary: 'text-background',\n secondary: 'text-background',\n accent: 'text-background',\n success: 'text-background',\n error: 'text-background',\n warning: 'text-background',\n info: 'text-background',\n} as const\n\n/**\n * Background color classes (solid)\n * Used by: Solid buttons, badges, checked states\n */\nexport const bgColorClasses = {\n default: 'bg-surface',\n primary: 'bg-primary',\n secondary: 'bg-secondary',\n accent: 'bg-accent',\n success: 'bg-success',\n error: 'bg-error',\n warning: 'bg-warning',\n info: 'bg-info',\n} as const\n\n/**\n * Background color classes (soft/muted - 10% opacity)\n * Used by: Soft variants, hover states\n */\nexport const bgSoftColorClasses = {\n default: 'bg-surface',\n primary: 'bg-primary/10',\n secondary: 'bg-secondary/10',\n accent: 'bg-accent/10',\n success: 'bg-success/10',\n error: 'bg-error/10',\n warning: 'bg-warning/10',\n info: 'bg-info/10',\n} as const\n\n/**\n * Background color classes for skeleton/placeholder (50% opacity)\n * Used by: Skeleton component\n */\nexport const bgSkeletonColorClasses = {\n default: 'bg-surface',\n primary: 'bg-primary/50',\n secondary: 'bg-secondary/50',\n accent: 'bg-accent/50',\n success: 'bg-success/50',\n error: 'bg-error/50',\n warning: 'bg-warning/50',\n info: 'bg-info/50',\n} as const\n\n/**\n * Border color classes\n * Used by: Checkbox, Radio, Input borders\n */\nexport const borderColorClasses = {\n default: 'border-border',\n primary: 'border-primary',\n secondary: 'border-secondary',\n accent: 'border-accent',\n success: 'border-success',\n error: 'border-error',\n warning: 'border-warning',\n info: 'border-info',\n} as const\n\n/**\n * Focus ring color classes\n * Used by: Button, Switch, form elements\n */\nexport const focusRingColorClasses = {\n default: 'focus-visible:ring-border',\n primary: 'focus-visible:ring-primary',\n secondary: 'focus-visible:ring-secondary',\n accent: 'focus-visible:ring-accent',\n success: 'focus-visible:ring-success',\n error: 'focus-visible:ring-error',\n warning: 'focus-visible:ring-warning',\n info: 'focus-visible:ring-info',\n} as const\n\n/**\n * Combined background + border for checked/selected state\n * Used by: Checkbox, Radio checked states\n */\nexport const checkedColorClasses = {\n primary: 'bg-primary border-primary',\n secondary: 'bg-secondary border-secondary',\n accent: 'bg-accent border-accent',\n success: 'bg-success border-success',\n error: 'bg-error border-error',\n warning: 'bg-warning border-warning',\n info: 'bg-info border-info',\n} as const\n\n/**\n * Switch track colors (unchecked -> checked)\n * Used by: Switch component\n */\nexport const switchTrackColorClasses = {\n primary: 'bg-border peer-checked:bg-primary peer-focus-visible:ring-primary',\n secondary: 'bg-border peer-checked:bg-secondary peer-focus-visible:ring-secondary',\n accent: 'bg-border peer-checked:bg-accent peer-focus-visible:ring-accent',\n success: 'bg-border peer-checked:bg-success peer-focus-visible:ring-success',\n error: 'bg-border peer-checked:bg-error peer-focus-visible:ring-error',\n warning: 'bg-border peer-checked:bg-warning peer-focus-visible:ring-warning',\n info: 'bg-border peer-checked:bg-info peer-focus-visible:ring-info',\n} as const\n\n/**\n * Checkbox border colors (default -> checked)\n * Used by: Checkbox component\n */\nexport const checkboxBorderColorClasses = {\n primary: 'border-border checked:border-primary',\n secondary: 'border-border checked:border-secondary',\n accent: 'border-border checked:border-accent',\n success: 'border-border checked:border-success',\n error: 'border-border checked:border-error',\n warning: 'border-border checked:border-warning',\n info: 'border-border checked:border-info',\n} as const\n\n/**\n * Radio button inset shadow colors for checked state\n * Used by: Radio component\n */\nexport const radioCheckedColorClasses = {\n primary: 'checked:border-primary checked:shadow-[inset_0_0_0_2px_var(--color-background),inset_0_0_0_13px_var(--color-primary)]',\n secondary: 'checked:border-secondary checked:shadow-[inset_0_0_0_2px_var(--color-background),inset_0_0_0_13px_var(--color-secondary)]',\n accent: 'checked:border-accent checked:shadow-[inset_0_0_0_2px_var(--color-background),inset_0_0_0_13px_var(--color-accent)]',\n success: 'checked:border-success checked:shadow-[inset_0_0_0_2px_var(--color-background),inset_0_0_0_13px_var(--color-success)]',\n error: 'checked:border-error checked:shadow-[inset_0_0_0_2px_var(--color-background),inset_0_0_0_13px_var(--color-error)]',\n warning: 'checked:border-warning checked:shadow-[inset_0_0_0_2px_var(--color-background),inset_0_0_0_13px_var(--color-warning)]',\n info: 'checked:border-info checked:shadow-[inset_0_0_0_2px_var(--color-background),inset_0_0_0_13px_var(--color-info)]',\n} as const\n\n// ============================================================================\n// Shared Icon Variants (Legacy - use textColorClasses instead)\n// ============================================================================\n\n/**\n * Icon color variants mapped to component colors\n * @deprecated Use textColorClasses instead\n */\nexport const iconColorClasses = textColorClasses\n\n/**\n * Helper to get icon color class for a given color\n * @deprecated Use textColorClasses[color] instead\n */\nexport function getIconColorClass(color: ButtonColor): string {\n return textColorClasses[color]\n}\n\n// ============================================================================\n// Shared Text Color Variants\n// ============================================================================\n\n/**\n * Text-only color variants (no background)\n * Used by: Breadcrumbs, Text components, Labels\n */\nexport const textColorVariants = cva('', {\n variants: {\n color: {\n default: 'text-text-primary',\n primary: 'text-primary',\n secondary: 'text-secondary',\n accent: 'text-accent',\n success: 'text-success',\n error: 'text-error',\n warning: 'text-warning',\n info: 'text-info',\n },\n },\n defaultVariants: {\n color: 'default',\n },\n})\n\nexport type TextColorVariants = VariantProps<typeof textColorVariants>\n\n// ============================================================================\n// Shared Size Variants\n// ============================================================================\n\n/**\n * Standard component size scale (4 sizes: xs, sm, md, lg)\n * Used by: All components - this is the standardized size scale\n */\nexport const componentSizeVariants = {\n xs: 'xs',\n sm: 'sm',\n md: 'md',\n lg: 'lg',\n} as const\n\n// ============================================================================\n// Shared Spacing Utilities\n// ============================================================================\n\n/**\n * Common spacing values for consistent gaps, padding, and margins\n * Maps to Tailwind spacing scale\n *\n * Note: These are standard Tailwind values. For component-specific spacing,\n * use CSS custom properties defined in index.css (e.g., --button-padding-x-sm)\n */\nexport const commonSpacing = {\n '0.5': '0.125rem', // 2px\n '1': '0.25rem', // 4px\n '1.5': '0.375rem', // 6px\n '2': '0.5rem', // 8px\n '2.5': '0.625rem', // 10px\n '3': '0.75rem', // 12px\n '4': '1rem', // 16px\n '5': '1.25rem', // 20px\n '6': '1.5rem', // 24px\n '8': '2rem', // 32px\n} as const\n\n// ============================================================================\n// Component-Specific Variant Generators\n// ============================================================================\n\n/**\n * Accordion color style generator\n * Generates variant, color, and hover state combinations\n *\n * @param color - Component color\n * @param variant - Style variant (default, solid, soft)\n * @returns Combined class string\n */\nexport function getAccordionColorClass(\n color: ComponentColor,\n variant: 'default' | 'solid' | 'soft',\n): string {\n const colorMap = {\n default: {\n default: 'border-border bg-background text-text-primary hover:bg-surface',\n solid: 'border-border bg-surface text-text-primary hover:bg-surface/80',\n soft: 'border-border bg-surface/50 text-text-primary hover:bg-surface/70',\n },\n primary: {\n default:\n 'border-primary bg-background text-text-primary hover:bg-primary/5',\n solid: 'border-primary bg-primary text-background hover:bg-primary/90',\n soft: 'border-primary bg-primary/10 text-text-primary hover:bg-primary/20',\n },\n secondary: {\n default:\n 'border-secondary bg-background text-text-primary hover:bg-secondary/5',\n solid:\n 'border-secondary bg-secondary text-background hover:bg-secondary/90',\n soft: 'border-secondary bg-secondary/10 text-text-primary hover:bg-secondary/20',\n },\n accent: {\n default:\n 'border-accent bg-background text-text-primary hover:bg-accent/5',\n solid: 'border-accent bg-accent text-background hover:bg-accent/90',\n soft: 'border-accent bg-accent/10 text-text-primary hover:bg-accent/20',\n },\n success: {\n default:\n 'border-success bg-background text-text-primary hover:bg-success/5',\n solid: 'border-success bg-success text-background hover:bg-success/90',\n soft: 'border-success bg-success/10 text-text-primary hover:bg-success/20',\n },\n error: {\n default: 'border-error bg-background text-text-primary hover:bg-error/5',\n solid: 'border-error bg-error text-background hover:bg-error/90',\n soft: 'border-error bg-error/10 text-text-primary hover:bg-error/20',\n },\n warning: {\n default:\n 'border-warning bg-background text-text-primary hover:bg-warning/5',\n solid: 'border-warning bg-warning text-background hover:bg-warning/90',\n soft: 'border-warning bg-warning/10 text-text-primary hover:bg-warning/20',\n },\n info: {\n default: 'border-info bg-background text-text-primary hover:bg-info/5',\n solid: 'border-info bg-info text-background hover:bg-info/90',\n soft: 'border-info bg-info/10 text-text-primary hover:bg-info/20',\n },\n }\n\n return colorMap[color][variant]\n}\n\n/**\n * Checkbox/Radio indeterminate/checked state color generator\n * Generates background color for checked state with proper contrast\n *\n * @param color - Component color\n * @returns Background class string\n */\nexport function getCheckboxColorClass(color: ButtonColor): string {\n const colorMap = {\n primary: 'bg-primary border-primary',\n secondary: 'bg-secondary border-secondary',\n accent: 'bg-accent border-accent',\n success: 'bg-success border-success',\n error: 'bg-error border-error',\n warning: 'bg-warning border-warning',\n info: 'bg-info border-info',\n }\n\n return colorMap[color]\n}\n\n// ============================================================================\n// Notification/Alert Variant Generators\n// ============================================================================\n\nconst notificationSolidClasses: Record<ComponentColor, string> = {\n default: 'bg-surface text-text-primary',\n primary: 'bg-primary text-background',\n secondary: 'bg-secondary text-background',\n accent: 'bg-accent text-background',\n success: 'bg-success text-background',\n error: 'bg-error text-background',\n warning: 'bg-warning text-background',\n info: 'bg-info text-background',\n}\n\nconst notificationOutlinedClasses: Record<ComponentColor, string> = {\n default: 'bg-background border-border border-l-border text-text-primary',\n primary: 'bg-background border-primary border-l-primary text-primary',\n secondary: 'bg-background border-secondary border-l-secondary text-secondary',\n accent: 'bg-background border-accent border-l-accent text-accent',\n success: 'bg-background border-success border-l-success text-success',\n error: 'bg-background border-error border-l-error text-error',\n warning: 'bg-background border-warning border-l-warning text-warning',\n info: 'bg-background border-info border-l-info text-info',\n}\n\nconst notificationSoftClasses: Record<ComponentColor, string> = {\n default: 'bg-surface/50 text-text-primary border-l-border',\n primary: 'bg-primary/10 text-primary border-l-primary',\n secondary: 'bg-secondary/10 text-secondary border-l-secondary',\n accent: 'bg-accent/10 text-accent border-l-accent',\n success: 'bg-success/10 text-success border-l-success',\n error: 'bg-error/10 text-error border-l-error',\n warning: 'bg-warning/10 text-warning border-l-warning',\n info: 'bg-info/10 text-info border-l-info',\n}\n\n/**\n * Generates compound variants for notification solid style (with foreground text)\n * Used by: Notification, Alert components\n */\nexport function createNotificationSolidColorVariants(colors: readonly string[]) {\n return colors.map((color) => ({\n variant: 'solid' as const,\n color: color as ComponentColor,\n class: notificationSolidClasses[color as ComponentColor],\n }))\n}\n\n/**\n * Generates compound variants for notification outlined style (border with thick left border)\n * Used by: Notification, Alert components\n */\nexport function createNotificationOutlinedColorVariants(colors: readonly string[]) {\n return colors.map((color) => ({\n variant: 'outlined' as const,\n color: color as ComponentColor,\n class: notificationOutlinedClasses[color as ComponentColor],\n }))\n}\n\n/**\n * Generates compound variants for notification soft style (subtle bg with left border)\n * Used by: Notification, Alert components\n */\nexport function createNotificationSoftColorVariants(colors: readonly string[]) {\n return colors.map((color) => ({\n variant: 'soft' as const,\n color: color as ComponentColor,\n class: notificationSoftClasses[color as ComponentColor],\n }))\n}\n\n/**\n * Notification variant type\n */\nexport type NotificationVariantType = 'default' | 'solid' | 'outlined' | 'soft'\n\n/**\n * Complete notification color variant generator\n */\nexport function createNotificationColorVariants(\n colors: readonly string[],\n variants: NotificationVariantType[],\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n): any[] {\n const variantGenerators = {\n default: createDefaultColorVariants,\n solid: createNotificationSolidColorVariants,\n outlined: createNotificationOutlinedColorVariants,\n soft: createNotificationSoftColorVariants,\n } as const\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return variants.flatMap((variant) => variantGenerators[variant](colors) as any[])\n}\n\n// ============================================================================\n// Tooltip Variant Generators\n// ============================================================================\n\n/**\n * Tooltip solid color classes (background with contrasting text)\n * Used by: Tooltip component solid variant\n */\nexport const tooltipSolidColorClasses = {\n default: 'bg-text-primary text-background',\n primary: 'bg-primary text-background',\n secondary: 'bg-secondary text-background',\n accent: 'bg-accent text-background',\n success: 'bg-success text-background',\n error: 'bg-error text-background',\n warning: 'bg-warning text-background',\n info: 'bg-info text-background',\n} as const\n\nconst tooltipSoftClasses: Record<ComponentColor, string> = {\n default: 'bg-surface text-text-primary border-border',\n primary: 'bg-primary/20 text-primary border-primary/30',\n secondary: 'bg-secondary/20 text-secondary border-secondary/30',\n accent: 'bg-accent/20 text-accent border-accent/30',\n success: 'bg-success/20 text-success border-success/30',\n error: 'bg-error/20 text-error border-error/30',\n warning: 'bg-warning/20 text-warning border-warning/30',\n info: 'bg-info/20 text-info border-info/30',\n}\n\n/**\n * Generates compound variants for tooltip soft style\n * Used by: Tooltip component soft variant\n */\nexport function createTooltipSoftColorVariants(colors: readonly string[]) {\n return colors.map((color) => ({\n variant: 'soft' as const,\n color: color as ComponentColor,\n className: tooltipSoftClasses[color as ComponentColor],\n }))\n}\n\n// ============================================================================\n// Kbd Variant Generators\n// ============================================================================\n\nconst kbdSolidClasses: Record<ComponentColor, string> = {\n default: 'bg-text-secondary border-text-secondary text-background',\n primary: 'bg-primary border-primary text-background',\n secondary: 'bg-secondary border-secondary text-background',\n accent: 'bg-accent border-accent text-background',\n success: 'bg-success border-success text-background',\n error: 'bg-error border-error text-background',\n warning: 'bg-warning border-warning text-background',\n info: 'bg-info border-info text-background',\n}\n\nconst kbdOutlineClasses: Record<ComponentColor, string> = {\n default: 'bg-background border-border text-text-secondary',\n primary: 'bg-background border-primary text-primary',\n secondary: 'bg-background border-secondary text-secondary',\n accent: 'bg-background border-accent text-accent',\n success: 'bg-background border-success text-success',\n error: 'bg-background border-error text-error',\n warning: 'bg-background border-warning text-warning',\n info: 'bg-background border-info text-info',\n}\n\nconst kbdSoftClasses: Record<ComponentColor, string> = {\n default: 'bg-surface border-border text-text-secondary',\n primary: 'bg-primary/10 border-primary/20 text-primary',\n secondary: 'bg-secondary/10 border-secondary/20 text-secondary',\n accent: 'bg-accent/10 border-accent/20 text-accent',\n success: 'bg-success/10 border-success/20 text-success',\n error: 'bg-error/10 border-error/20 text-error',\n warning: 'bg-warning/10 border-warning/20 text-warning',\n info: 'bg-info/10 border-info/20 text-info',\n}\n\n/**\n * Generates compound variants for Kbd solid style\n * Used by: Kbd component\n */\nexport function createKbdSolidColorVariants(colors: readonly string[]) {\n return colors.map((color) => ({\n variant: 'solid' as const,\n color: color as ComponentColor,\n class: kbdSolidClasses[color as ComponentColor],\n }))\n}\n\n/**\n * Generates compound variants for Kbd outline style\n * Used by: Kbd component\n */\nexport function createKbdOutlineColorVariants(colors: readonly string[]) {\n return colors.map((color) => ({\n variant: 'outline' as const,\n color: color as ComponentColor,\n class: kbdOutlineClasses[color as ComponentColor],\n }))\n}\n\n/**\n * Generates compound variants for Kbd soft style\n * Used by: Kbd component\n */\nexport function createKbdSoftColorVariants(colors: readonly string[]) {\n return colors.map((color) => ({\n variant: 'soft' as const,\n color: color as ComponentColor,\n class: kbdSoftClasses[color as ComponentColor],\n }))\n}\n\n/**\n * Kbd variant type\n */\nexport type KbdVariantType = 'solid' | 'outline' | 'soft'\n\n/**\n * Complete Kbd color variant generator\n */\nexport function createKbdColorVariants(\n colors: readonly string[],\n variants: KbdVariantType[],\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n): any[] {\n const variantGenerators = {\n solid: createKbdSolidColorVariants,\n outline: createKbdOutlineColorVariants,\n soft: createKbdSoftColorVariants,\n } as const\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return variants.flatMap((variant) => variantGenerators[variant](colors) as any[])\n}\n\n// ============================================================================\n// Popover Variant Generators\n// ============================================================================\n\nconst popoverDefaultClasses: Record<ComponentColor, string> = {\n default: 'bg-background border-border text-text-primary',\n primary: 'bg-background border-primary text-text-primary',\n secondary: 'bg-background border-secondary text-text-primary',\n accent: 'bg-background border-accent text-text-primary',\n success: 'bg-background border-success text-text-primary',\n error: 'bg-background border-error text-text-primary',\n warning: 'bg-background border-warning text-text-primary',\n info: 'bg-background border-info text-text-primary',\n}\n\nconst popoverSolidClasses: Record<ComponentColor, string> = {\n default: 'bg-surface border-border text-text-primary',\n primary: 'bg-primary border-primary text-background',\n secondary: 'bg-secondary border-secondary text-background',\n accent: 'bg-accent border-accent text-background',\n success: 'bg-success border-success text-background',\n error: 'bg-error border-error text-background',\n warning: 'bg-warning border-warning text-background',\n info: 'bg-info border-info text-background',\n}\n\nconst popoverSoftClasses: Record<ComponentColor, string> = {\n default: 'backdrop-blur-sm bg-surface/80 border-border text-text-primary',\n primary: 'backdrop-blur-sm bg-primary/10 border-primary/30 text-primary',\n secondary: 'backdrop-blur-sm bg-secondary/10 border-secondary/30 text-secondary',\n accent: 'backdrop-blur-sm bg-accent/10 border-accent/30 text-accent',\n success: 'backdrop-blur-sm bg-success/10 border-success/30 text-success',\n error: 'backdrop-blur-sm bg-error/10 border-error/30 text-error',\n warning: 'backdrop-blur-sm bg-warning/10 border-warning/30 text-warning',\n info: 'backdrop-blur-sm bg-info/10 border-info/30 text-info',\n}\n\n/**\n * Generates compound variants for Popover default style\n * Used by: Popover component\n */\nexport function createPopoverDefaultColorVariants(colors: readonly string[]) {\n return colors.map((color) => ({\n variant: 'default' as const,\n color: color as ComponentColor,\n class: popoverDefaultClasses[color as ComponentColor],\n }))\n}\n\n/**\n * Generates compound variants for Popover solid style\n * Used by: Popover component\n */\nexport function createPopoverSolidColorVariants(colors: readonly string[]) {\n return colors.map((color) => ({\n variant: 'solid' as const,\n color: color as ComponentColor,\n class: popoverSolidClasses[color as ComponentColor],\n }))\n}\n\n/**\n * Generates compound variants for Popover soft style (with backdrop blur)\n * Used by: Popover component\n */\nexport function createPopoverSoftColorVariants(colors: readonly string[]) {\n return colors.map((color) => ({\n variant: 'soft' as const,\n color: color as ComponentColor,\n class: popoverSoftClasses[color as ComponentColor],\n }))\n}\n\n/**\n * Popover variant type\n */\nexport type PopoverVariantType = 'default' | 'solid' | 'soft'\n\n/**\n * Complete Popover color variant generator\n */\nexport function createPopoverColorVariants(\n colors: readonly string[],\n variants: PopoverVariantType[],\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n): any[] {\n const variantGenerators = {\n default: createPopoverDefaultColorVariants,\n solid: createPopoverSolidColorVariants,\n soft: createPopoverSoftColorVariants,\n } as const\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return variants.flatMap((variant) => variantGenerators[variant](colors) as any[])\n}\n\n// ============================================================================\n// Export Usage Note\n// ============================================================================\n\n/**\n * To use these utilities in your components:\n *\n * @example Button component\n * import { createAllColorVariants, buttonColors } from \"../variants\";\n * compoundVariants: createAllColorVariants(buttonColors, ['solid', 'outline', 'dashed', 'link', 'ghost'])\n *\n * @example Badge component\n * import { createAllColorVariants, componentColors } from \"../variants\";\n * compoundVariants: createAllColorVariants(componentColors, ['solid', 'outline', 'soft'])\n *\n * @example Notification component\n * import { createNotificationColorVariants, componentColors } from \"../variants\";\n * compoundVariants: createNotificationColorVariants(componentColors, ['default', 'solid', 'outlined', 'soft'])\n *\n * @example Tooltip component\n * import { tooltipSolidColorClasses, createTooltipSoftColorVariants, componentColors } from \"../variants\";\n * color: tooltipSolidColorClasses,\n * compoundVariants: createTooltipSoftColorVariants(componentColors)\n *\n * @example Kbd component\n * import { createKbdColorVariants, componentColors } from \"../variants\";\n * compoundVariants: createKbdColorVariants(componentColors, ['solid', 'outline', 'soft'])\n *\n * @example Popover component\n * import { createPopoverColorVariants, componentColors } from \"../variants\";\n * compoundVariants: createPopoverColorVariants(componentColors, ['default', 'solid', 'soft'])\n */\n"]}
|