@mdigital_ui/ui 0.1.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 +296 -0
- package/dist/accordion/index.js +5 -0
- package/dist/accordion/index.js.map +1 -0
- package/dist/badge/index.js +5 -0
- package/dist/badge/index.js.map +1 -0
- package/dist/button/index.js +6 -0
- package/dist/button/index.js.map +1 -0
- package/dist/card/index.js +4 -0
- package/dist/card/index.js.map +1 -0
- package/dist/carousel/index.js +3 -0
- package/dist/carousel/index.js.map +1 -0
- package/dist/cascader/index.js +4 -0
- package/dist/cascader/index.js.map +1 -0
- package/dist/chart/index.js +4 -0
- package/dist/chart/index.js.map +1 -0
- package/dist/checkbox/index.js +5 -0
- package/dist/checkbox/index.js.map +1 -0
- package/dist/checkbox-group/index.js +4 -0
- package/dist/checkbox-group/index.js.map +1 -0
- package/dist/chunk-2JGAYDZR.js +181 -0
- package/dist/chunk-2JGAYDZR.js.map +1 -0
- package/dist/chunk-3PFA3YG6.js +228 -0
- package/dist/chunk-3PFA3YG6.js.map +1 -0
- package/dist/chunk-4OMLQCUV.js +96 -0
- package/dist/chunk-4OMLQCUV.js.map +1 -0
- package/dist/chunk-4P5EMRFI.js +298 -0
- package/dist/chunk-4P5EMRFI.js.map +1 -0
- package/dist/chunk-5UEWVFF6.js +212 -0
- package/dist/chunk-5UEWVFF6.js.map +1 -0
- package/dist/chunk-5VCGW53O.js +332 -0
- package/dist/chunk-5VCGW53O.js.map +1 -0
- package/dist/chunk-75XESYGN.js +49 -0
- package/dist/chunk-75XESYGN.js.map +1 -0
- package/dist/chunk-7AEGBABZ.js +1102 -0
- package/dist/chunk-7AEGBABZ.js.map +1 -0
- package/dist/chunk-AOITJRSV.js +134 -0
- package/dist/chunk-AOITJRSV.js.map +1 -0
- package/dist/chunk-AWPKZYHT.js +152 -0
- package/dist/chunk-AWPKZYHT.js.map +1 -0
- package/dist/chunk-BNILRB4T.js +37 -0
- package/dist/chunk-BNILRB4T.js.map +1 -0
- package/dist/chunk-BP434VYV.js +448 -0
- package/dist/chunk-BP434VYV.js.map +1 -0
- package/dist/chunk-C7SXY3ZV.js +65 -0
- package/dist/chunk-C7SXY3ZV.js.map +1 -0
- package/dist/chunk-CLLQDCDR.js +560 -0
- package/dist/chunk-CLLQDCDR.js.map +1 -0
- package/dist/chunk-CWHFK7ZC.js +128 -0
- package/dist/chunk-CWHFK7ZC.js.map +1 -0
- package/dist/chunk-D3JWPGCA.js +123 -0
- package/dist/chunk-D3JWPGCA.js.map +1 -0
- package/dist/chunk-DOKTHDG3.js +55 -0
- package/dist/chunk-DOKTHDG3.js.map +1 -0
- package/dist/chunk-DPOSWW22.js +126 -0
- package/dist/chunk-DPOSWW22.js.map +1 -0
- package/dist/chunk-E2CYDDYC.js +39 -0
- package/dist/chunk-E2CYDDYC.js.map +1 -0
- package/dist/chunk-EYTOKUBM.js +401 -0
- package/dist/chunk-EYTOKUBM.js.map +1 -0
- package/dist/chunk-FGWSUPVW.js +356 -0
- package/dist/chunk-FGWSUPVW.js.map +1 -0
- package/dist/chunk-FPOXTCYV.js +166 -0
- package/dist/chunk-FPOXTCYV.js.map +1 -0
- package/dist/chunk-FTJOSVTY.js +104 -0
- package/dist/chunk-FTJOSVTY.js.map +1 -0
- package/dist/chunk-FYHQDFKE.js +164 -0
- package/dist/chunk-FYHQDFKE.js.map +1 -0
- package/dist/chunk-H2HIBD5Y.js +158 -0
- package/dist/chunk-H2HIBD5Y.js.map +1 -0
- package/dist/chunk-J3G5WWGR.js +53 -0
- package/dist/chunk-J3G5WWGR.js.map +1 -0
- package/dist/chunk-JZCHZ4B3.js +487 -0
- package/dist/chunk-JZCHZ4B3.js.map +1 -0
- package/dist/chunk-KBCBVH7B.js +51 -0
- package/dist/chunk-KBCBVH7B.js.map +1 -0
- package/dist/chunk-KNQ7UQ2W.js +143 -0
- package/dist/chunk-KNQ7UQ2W.js.map +1 -0
- package/dist/chunk-KTBPIEP2.js +102 -0
- package/dist/chunk-KTBPIEP2.js.map +1 -0
- package/dist/chunk-L3SP7GHC.js +1023 -0
- package/dist/chunk-L3SP7GHC.js.map +1 -0
- package/dist/chunk-LBJG2UWT.js +100 -0
- package/dist/chunk-LBJG2UWT.js.map +1 -0
- package/dist/chunk-MLDX3Z67.js +470 -0
- package/dist/chunk-MLDX3Z67.js.map +1 -0
- package/dist/chunk-NNSS366W.js +331 -0
- package/dist/chunk-NNSS366W.js.map +1 -0
- package/dist/chunk-OQANRZPV.js +197 -0
- package/dist/chunk-OQANRZPV.js.map +1 -0
- package/dist/chunk-OW5A5IIF.js +175 -0
- package/dist/chunk-OW5A5IIF.js.map +1 -0
- package/dist/chunk-R225A5II.js +187 -0
- package/dist/chunk-R225A5II.js.map +1 -0
- package/dist/chunk-ROR4E6IE.js +119 -0
- package/dist/chunk-ROR4E6IE.js.map +1 -0
- package/dist/chunk-RPAQAZTI.js +54 -0
- package/dist/chunk-RPAQAZTI.js.map +1 -0
- package/dist/chunk-RQBXZKTH.js +452 -0
- package/dist/chunk-RQBXZKTH.js.map +1 -0
- package/dist/chunk-S5XJXU52.js +178 -0
- package/dist/chunk-S5XJXU52.js.map +1 -0
- package/dist/chunk-SAVE5ACL.js +324 -0
- package/dist/chunk-SAVE5ACL.js.map +1 -0
- package/dist/chunk-SERJ3TZE.js +640 -0
- package/dist/chunk-SERJ3TZE.js.map +1 -0
- package/dist/chunk-SK5ECBBK.js +175 -0
- package/dist/chunk-SK5ECBBK.js.map +1 -0
- package/dist/chunk-SOV4PE3P.js +218 -0
- package/dist/chunk-SOV4PE3P.js.map +1 -0
- package/dist/chunk-W7BQYIXF.js +687 -0
- package/dist/chunk-W7BQYIXF.js.map +1 -0
- package/dist/chunk-XMAH5PDW.js +59 -0
- package/dist/chunk-XMAH5PDW.js.map +1 -0
- package/dist/chunk-XOBGEMQY.js +94 -0
- package/dist/chunk-XOBGEMQY.js.map +1 -0
- package/dist/chunk-YNNAOXU5.js +57 -0
- package/dist/chunk-YNNAOXU5.js.map +1 -0
- package/dist/chunk-YZVSDRJD.js +253 -0
- package/dist/chunk-YZVSDRJD.js.map +1 -0
- package/dist/collapse/index.js +4 -0
- package/dist/collapse/index.js.map +1 -0
- package/dist/command/index.js +5 -0
- package/dist/command/index.js.map +1 -0
- package/dist/date-picker/index.js +5 -0
- package/dist/date-picker/index.js.map +1 -0
- package/dist/descriptions/index.js +4 -0
- package/dist/descriptions/index.js.map +1 -0
- package/dist/drawer/index.js +4 -0
- package/dist/drawer/index.js.map +1 -0
- package/dist/dropdown/index.js +5 -0
- package/dist/dropdown/index.js.map +1 -0
- package/dist/empty/index.js +4 -0
- package/dist/empty/index.js.map +1 -0
- package/dist/fetching-overlay/index.js +5 -0
- package/dist/fetching-overlay/index.js.map +1 -0
- package/dist/image/index.js +4 -0
- package/dist/image/index.js.map +1 -0
- package/dist/index.d.ts +2672 -0
- package/dist/index.js +976 -0
- package/dist/index.js.map +1 -0
- package/dist/input/index.js +5 -0
- package/dist/input/index.js.map +1 -0
- package/dist/input-group/index.js +4 -0
- package/dist/input-group/index.js.map +1 -0
- package/dist/input-otp/index.js +4 -0
- package/dist/input-otp/index.js.map +1 -0
- package/dist/input-password/index.js +6 -0
- package/dist/input-password/index.js.map +1 -0
- package/dist/kbd/index.js +4 -0
- package/dist/kbd/index.js.map +1 -0
- package/dist/modal/index.js +4 -0
- package/dist/modal/index.js.map +1 -0
- package/dist/multi-select/index.js +5 -0
- package/dist/multi-select/index.js.map +1 -0
- package/dist/notification/index.js +4 -0
- package/dist/notification/index.js.map +1 -0
- package/dist/pagination/index.js +4 -0
- package/dist/pagination/index.js.map +1 -0
- package/dist/popover/index.js +4 -0
- package/dist/popover/index.js.map +1 -0
- package/dist/progress/index.js +4 -0
- package/dist/progress/index.js.map +1 -0
- package/dist/radio/index.js +4 -0
- package/dist/radio/index.js.map +1 -0
- package/dist/radio-group/index.js +4 -0
- package/dist/radio-group/index.js.map +1 -0
- package/dist/rating/index.js +4 -0
- package/dist/rating/index.js.map +1 -0
- package/dist/ribbon/index.js +4 -0
- package/dist/ribbon/index.js.map +1 -0
- package/dist/select/index.js +6 -0
- package/dist/select/index.js.map +1 -0
- package/dist/skeleton/index.js +4 -0
- package/dist/skeleton/index.js.map +1 -0
- package/dist/slider/index.js +4 -0
- package/dist/slider/index.js.map +1 -0
- package/dist/spinner/index.js +4 -0
- package/dist/spinner/index.js.map +1 -0
- package/dist/stepper/index.js +4 -0
- package/dist/stepper/index.js.map +1 -0
- package/dist/styles/base.css +161 -0
- package/dist/styles/global.css +633 -0
- package/dist/styles/themes/dark.css +84 -0
- package/dist/styles/themes/light.css +84 -0
- package/dist/switch/index.js +4 -0
- package/dist/switch/index.js.map +1 -0
- package/dist/table/index.js +12 -0
- package/dist/table/index.js.map +1 -0
- package/dist/tabs/index.js +5 -0
- package/dist/tabs/index.js.map +1 -0
- package/dist/textarea/index.js +4 -0
- package/dist/textarea/index.js.map +1 -0
- package/dist/toggle/index.js +4 -0
- package/dist/toggle/index.js.map +1 -0
- package/dist/toggle-group/index.js +4 -0
- package/dist/toggle-group/index.js.map +1 -0
- package/dist/tooltip/index.js +4 -0
- package/dist/tooltip/index.js.map +1 -0
- package/dist/transfer/index.js +6 -0
- package/dist/transfer/index.js.map +1 -0
- package/dist/tree/index.js +4 -0
- package/dist/tree/index.js.map +1 -0
- package/dist/tree-select/index.js +6 -0
- package/dist/tree-select/index.js.map +1 -0
- package/package.json +107 -0
|
@@ -0,0 +1,470 @@
|
|
|
1
|
+
import { cn } from './chunk-YNNAOXU5.js';
|
|
2
|
+
import { cva } from 'class-variance-authority';
|
|
3
|
+
import React from 'react';
|
|
4
|
+
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
5
|
+
|
|
6
|
+
var stepCircleVariants = cva(
|
|
7
|
+
"rounded-full flex items-center justify-center font-medium transition-all",
|
|
8
|
+
{
|
|
9
|
+
variants: {
|
|
10
|
+
size: {
|
|
11
|
+
xs: "w-6 h-6 text-xs",
|
|
12
|
+
sm: "w-8 h-8 text-sm",
|
|
13
|
+
md: "w-10 h-10 text-base",
|
|
14
|
+
lg: "w-12 h-12 text-lg"
|
|
15
|
+
}
|
|
16
|
+
},
|
|
17
|
+
defaultVariants: {
|
|
18
|
+
size: "md"
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
);
|
|
22
|
+
var stepDotVariants = cva("rounded-full transition-all", {
|
|
23
|
+
variants: {
|
|
24
|
+
size: {
|
|
25
|
+
xs: "w-2 h-2",
|
|
26
|
+
sm: "w-3 h-3",
|
|
27
|
+
md: "w-4 h-4",
|
|
28
|
+
lg: "w-5 h-5"
|
|
29
|
+
}
|
|
30
|
+
},
|
|
31
|
+
defaultVariants: {
|
|
32
|
+
size: "md"
|
|
33
|
+
}
|
|
34
|
+
});
|
|
35
|
+
var stepLabelVariants = cva("font-medium", {
|
|
36
|
+
variants: {
|
|
37
|
+
size: {
|
|
38
|
+
xs: "text-xs",
|
|
39
|
+
sm: "text-sm",
|
|
40
|
+
md: "text-base",
|
|
41
|
+
lg: "text-lg"
|
|
42
|
+
}
|
|
43
|
+
},
|
|
44
|
+
defaultVariants: {
|
|
45
|
+
size: "md"
|
|
46
|
+
}
|
|
47
|
+
});
|
|
48
|
+
var stepDescriptionVariants = cva("text-text-secondary", {
|
|
49
|
+
variants: {
|
|
50
|
+
size: {
|
|
51
|
+
xs: "text-xs",
|
|
52
|
+
sm: "text-xs",
|
|
53
|
+
md: "text-sm",
|
|
54
|
+
lg: "text-sm"
|
|
55
|
+
}
|
|
56
|
+
},
|
|
57
|
+
defaultVariants: {
|
|
58
|
+
size: "md"
|
|
59
|
+
}
|
|
60
|
+
});
|
|
61
|
+
var connectorVariants = cva("bg-border", {
|
|
62
|
+
variants: {
|
|
63
|
+
size: {
|
|
64
|
+
xs: "h-0.5",
|
|
65
|
+
sm: "h-0.5",
|
|
66
|
+
md: "h-1",
|
|
67
|
+
lg: "h-1"
|
|
68
|
+
}
|
|
69
|
+
},
|
|
70
|
+
defaultVariants: {
|
|
71
|
+
size: "md"
|
|
72
|
+
}
|
|
73
|
+
});
|
|
74
|
+
var getStepCircleClasses = (color, variant, state) => {
|
|
75
|
+
const isError = state === "error";
|
|
76
|
+
const isWait = state === "wait";
|
|
77
|
+
if (isError) {
|
|
78
|
+
if (variant === "solid")
|
|
79
|
+
return "bg-error text-error-foreground border-2 border-error";
|
|
80
|
+
if (variant === "soft")
|
|
81
|
+
return "bg-error/10 border-2 border-error/50 text-error";
|
|
82
|
+
return "bg-error/20 border-2 border-error text-error";
|
|
83
|
+
}
|
|
84
|
+
if (isWait) {
|
|
85
|
+
if (variant === "solid") {
|
|
86
|
+
const solidWaitClasses = {
|
|
87
|
+
default: "bg-border/50 text-text-secondary",
|
|
88
|
+
primary: "bg-primary/30 text-primary-foreground/50",
|
|
89
|
+
secondary: "bg-secondary/30 text-secondary-foreground/50",
|
|
90
|
+
accent: "bg-accent/30 text-accent-foreground/50",
|
|
91
|
+
success: "bg-success/30 text-success-foreground/50",
|
|
92
|
+
error: "bg-error/30 text-error-foreground/50",
|
|
93
|
+
warning: "bg-warning/30 text-warning-foreground/50",
|
|
94
|
+
info: "bg-info/30 text-info-foreground/50"
|
|
95
|
+
};
|
|
96
|
+
return solidWaitClasses[color];
|
|
97
|
+
}
|
|
98
|
+
if (variant === "soft") {
|
|
99
|
+
const softWaitClasses = {
|
|
100
|
+
default: "bg-surface/30 border-2 border-border/30 text-text-secondary",
|
|
101
|
+
primary: "bg-primary/5 border-2 border-primary/20 text-text-secondary",
|
|
102
|
+
secondary: "bg-secondary/5 border-2 border-secondary/20 text-text-secondary",
|
|
103
|
+
accent: "bg-accent/5 border-2 border-accent/20 text-text-secondary",
|
|
104
|
+
success: "bg-success/5 border-2 border-success/20 text-text-secondary",
|
|
105
|
+
error: "bg-error/5 border-2 border-error/20 text-text-secondary",
|
|
106
|
+
warning: "bg-warning/5 border-2 border-warning/20 text-text-secondary",
|
|
107
|
+
info: "bg-info/5 border-2 border-info/20 text-text-secondary"
|
|
108
|
+
};
|
|
109
|
+
return softWaitClasses[color];
|
|
110
|
+
}
|
|
111
|
+
const defaultWaitClasses = {
|
|
112
|
+
default: "bg-surface border-2 border-border/50 text-text-secondary",
|
|
113
|
+
primary: "bg-primary/5 border-2 border-primary/30 text-text-secondary",
|
|
114
|
+
secondary: "bg-secondary/5 border-2 border-secondary/30 text-text-secondary",
|
|
115
|
+
accent: "bg-accent/5 border-2 border-accent/30 text-text-secondary",
|
|
116
|
+
success: "bg-success/5 border-2 border-success/30 text-text-secondary",
|
|
117
|
+
error: "bg-error/5 border-2 border-error/30 text-text-secondary",
|
|
118
|
+
warning: "bg-warning/5 border-2 border-warning/30 text-text-secondary",
|
|
119
|
+
info: "bg-info/5 border-2 border-info/30 text-text-secondary"
|
|
120
|
+
};
|
|
121
|
+
return defaultWaitClasses[color];
|
|
122
|
+
}
|
|
123
|
+
if (variant === "solid") {
|
|
124
|
+
const solidActiveClasses = {
|
|
125
|
+
default: "bg-border text-text-primary border-2 border-border",
|
|
126
|
+
primary: "bg-primary text-primary-foreground border-2 border-primary",
|
|
127
|
+
secondary: "bg-secondary text-secondary-foreground border-2 border-secondary",
|
|
128
|
+
accent: "bg-accent text-accent-foreground border-2 border-accent",
|
|
129
|
+
success: "bg-success text-success-foreground border-2 border-success",
|
|
130
|
+
error: "bg-error text-error-foreground border-2 border-error",
|
|
131
|
+
warning: "bg-warning text-warning-foreground border-2 border-warning",
|
|
132
|
+
info: "bg-info text-info-foreground border-2 border-info"
|
|
133
|
+
};
|
|
134
|
+
return solidActiveClasses[color];
|
|
135
|
+
}
|
|
136
|
+
if (variant === "soft") {
|
|
137
|
+
const softActiveClasses = {
|
|
138
|
+
default: "bg-surface/50 border-2 border-border text-text-primary",
|
|
139
|
+
primary: "bg-primary/10 border-2 border-primary/50 text-primary",
|
|
140
|
+
secondary: "bg-secondary/10 border-2 border-secondary/50 text-secondary",
|
|
141
|
+
accent: "bg-accent/10 border-2 border-accent/50 text-accent",
|
|
142
|
+
success: "bg-success/10 border-2 border-success/50 text-success",
|
|
143
|
+
error: "bg-error/10 border-2 border-error/50 text-error",
|
|
144
|
+
warning: "bg-warning/10 border-2 border-warning/50 text-warning",
|
|
145
|
+
info: "bg-info/10 border-2 border-info/50 text-info"
|
|
146
|
+
};
|
|
147
|
+
return softActiveClasses[color];
|
|
148
|
+
}
|
|
149
|
+
const defaultActiveClasses = {
|
|
150
|
+
default: "bg-surface border-2 border-border text-text-primary",
|
|
151
|
+
primary: "bg-primary/20 border-2 border-primary text-primary",
|
|
152
|
+
secondary: "bg-secondary/20 border-2 border-secondary text-secondary",
|
|
153
|
+
accent: "bg-accent/20 border-2 border-accent text-accent",
|
|
154
|
+
success: "bg-success/20 border-2 border-success text-success",
|
|
155
|
+
error: "bg-error/20 border-2 border-error text-error",
|
|
156
|
+
warning: "bg-warning/20 border-2 border-warning text-warning",
|
|
157
|
+
info: "bg-info/20 border-2 border-info text-info"
|
|
158
|
+
};
|
|
159
|
+
return defaultActiveClasses[color];
|
|
160
|
+
};
|
|
161
|
+
var getConnectorClasses = (color, variant, isFinished) => {
|
|
162
|
+
if (!isFinished) return "bg-border/50";
|
|
163
|
+
if (variant === "soft") {
|
|
164
|
+
const softConnectorClasses = {
|
|
165
|
+
default: "bg-border/50",
|
|
166
|
+
primary: "bg-primary/50",
|
|
167
|
+
secondary: "bg-secondary/50",
|
|
168
|
+
accent: "bg-accent/50",
|
|
169
|
+
success: "bg-success/50",
|
|
170
|
+
error: "bg-error/50",
|
|
171
|
+
warning: "bg-warning/50",
|
|
172
|
+
info: "bg-info/50"
|
|
173
|
+
};
|
|
174
|
+
return softConnectorClasses[color];
|
|
175
|
+
}
|
|
176
|
+
const connectorClasses = {
|
|
177
|
+
default: "bg-border",
|
|
178
|
+
primary: "bg-primary",
|
|
179
|
+
secondary: "bg-secondary",
|
|
180
|
+
accent: "bg-accent",
|
|
181
|
+
success: "bg-success",
|
|
182
|
+
error: "bg-error",
|
|
183
|
+
warning: "bg-warning",
|
|
184
|
+
info: "bg-info"
|
|
185
|
+
};
|
|
186
|
+
return connectorClasses[color];
|
|
187
|
+
};
|
|
188
|
+
var Stepper = React.memo(
|
|
189
|
+
({
|
|
190
|
+
steps,
|
|
191
|
+
currentStep,
|
|
192
|
+
color = "primary",
|
|
193
|
+
size = "md",
|
|
194
|
+
variant = "default",
|
|
195
|
+
orientation = "horizontal",
|
|
196
|
+
type = "numbered",
|
|
197
|
+
status,
|
|
198
|
+
onStepClick,
|
|
199
|
+
className
|
|
200
|
+
}) => {
|
|
201
|
+
const getStepState = (index, step) => {
|
|
202
|
+
if (step.status) return step.status;
|
|
203
|
+
if (index === currentStep && status === "error") return "error";
|
|
204
|
+
if (index < currentStep) return "finish";
|
|
205
|
+
if (index === currentStep) return status || "process";
|
|
206
|
+
return "wait";
|
|
207
|
+
};
|
|
208
|
+
const handleStepClick = (index, disabled) => {
|
|
209
|
+
if (disabled) return;
|
|
210
|
+
onStepClick?.(index);
|
|
211
|
+
};
|
|
212
|
+
if (orientation === "vertical") {
|
|
213
|
+
return /* @__PURE__ */ jsx("div", { className: cn("flex flex-col", className), children: steps.map((step, index) => {
|
|
214
|
+
const state = getStepState(index, step);
|
|
215
|
+
const isClickable = !step.disabled && onStepClick;
|
|
216
|
+
return /* @__PURE__ */ jsxs(
|
|
217
|
+
"div",
|
|
218
|
+
{
|
|
219
|
+
className: "flex",
|
|
220
|
+
children: [
|
|
221
|
+
/* @__PURE__ */ jsxs("div", { className: "flex flex-col items-center mr-4", children: [
|
|
222
|
+
/* @__PURE__ */ jsx(
|
|
223
|
+
"div",
|
|
224
|
+
{
|
|
225
|
+
className: cn(
|
|
226
|
+
stepCircleVariants({ size }),
|
|
227
|
+
getStepCircleClasses(color, variant, state),
|
|
228
|
+
isClickable && "cursor-pointer hover:scale-105",
|
|
229
|
+
step.disabled && "opacity-50 cursor-not-allowed"
|
|
230
|
+
),
|
|
231
|
+
onClick: () => handleStepClick(index, step.disabled),
|
|
232
|
+
children: step.icon || index + 1
|
|
233
|
+
}
|
|
234
|
+
),
|
|
235
|
+
index < steps.length - 1 && /* @__PURE__ */ jsx(
|
|
236
|
+
"div",
|
|
237
|
+
{
|
|
238
|
+
className: cn(
|
|
239
|
+
"w-0.5 flex-1 my-2",
|
|
240
|
+
getConnectorClasses(color, variant, state === "finish")
|
|
241
|
+
)
|
|
242
|
+
}
|
|
243
|
+
)
|
|
244
|
+
] }),
|
|
245
|
+
/* @__PURE__ */ jsxs(
|
|
246
|
+
"div",
|
|
247
|
+
{
|
|
248
|
+
className: cn("pb-8", index === steps.length - 1 && "pb-0"),
|
|
249
|
+
children: [
|
|
250
|
+
/* @__PURE__ */ jsx(
|
|
251
|
+
"div",
|
|
252
|
+
{
|
|
253
|
+
className: cn(
|
|
254
|
+
stepLabelVariants({ size }),
|
|
255
|
+
state === "wait" ? "text-text-secondary" : "text-text-primary",
|
|
256
|
+
state === "error" && "text-error"
|
|
257
|
+
),
|
|
258
|
+
children: step.label
|
|
259
|
+
}
|
|
260
|
+
),
|
|
261
|
+
step.description && /* @__PURE__ */ jsx(
|
|
262
|
+
"div",
|
|
263
|
+
{
|
|
264
|
+
className: cn(stepDescriptionVariants({ size }), "mt-1"),
|
|
265
|
+
children: step.description
|
|
266
|
+
}
|
|
267
|
+
)
|
|
268
|
+
]
|
|
269
|
+
}
|
|
270
|
+
)
|
|
271
|
+
]
|
|
272
|
+
},
|
|
273
|
+
index
|
|
274
|
+
);
|
|
275
|
+
}) });
|
|
276
|
+
}
|
|
277
|
+
if (type === "dots") {
|
|
278
|
+
return /* @__PURE__ */ jsx("div", { className: cn("flex items-start", className), children: steps.map((step, index) => {
|
|
279
|
+
const state = getStepState(index, step);
|
|
280
|
+
const isClickable = !step.disabled && onStepClick;
|
|
281
|
+
const prevStep = steps[index - 1];
|
|
282
|
+
const prevState = index > 0 && prevStep ? getStepState(index - 1, prevStep) : "wait";
|
|
283
|
+
return /* @__PURE__ */ jsx(React.Fragment, { children: /* @__PURE__ */ jsxs(
|
|
284
|
+
"div",
|
|
285
|
+
{
|
|
286
|
+
className: cn(
|
|
287
|
+
"flex flex-col items-center flex-1",
|
|
288
|
+
index === 0 && "items-start",
|
|
289
|
+
index === steps.length - 1 && "items-end"
|
|
290
|
+
),
|
|
291
|
+
children: [
|
|
292
|
+
/* @__PURE__ */ jsxs("div", { className: "flex items-center w-full", children: [
|
|
293
|
+
index > 0 && /* @__PURE__ */ jsx(
|
|
294
|
+
"div",
|
|
295
|
+
{
|
|
296
|
+
className: cn(
|
|
297
|
+
"flex-1",
|
|
298
|
+
connectorVariants({ size }),
|
|
299
|
+
getConnectorClasses(
|
|
300
|
+
color,
|
|
301
|
+
variant,
|
|
302
|
+
prevState === "finish"
|
|
303
|
+
)
|
|
304
|
+
)
|
|
305
|
+
}
|
|
306
|
+
),
|
|
307
|
+
/* @__PURE__ */ jsx(
|
|
308
|
+
"div",
|
|
309
|
+
{
|
|
310
|
+
className: cn(
|
|
311
|
+
stepDotVariants({ size }),
|
|
312
|
+
getStepCircleClasses(color, variant, state),
|
|
313
|
+
isClickable && "cursor-pointer hover:scale-105",
|
|
314
|
+
step.disabled && "opacity-50 cursor-not-allowed",
|
|
315
|
+
"flex-shrink-0"
|
|
316
|
+
),
|
|
317
|
+
onClick: () => handleStepClick(index, step.disabled)
|
|
318
|
+
}
|
|
319
|
+
),
|
|
320
|
+
index < steps.length - 1 && /* @__PURE__ */ jsx(
|
|
321
|
+
"div",
|
|
322
|
+
{
|
|
323
|
+
className: cn(
|
|
324
|
+
"flex-1",
|
|
325
|
+
connectorVariants({ size }),
|
|
326
|
+
getConnectorClasses(
|
|
327
|
+
color,
|
|
328
|
+
variant,
|
|
329
|
+
state === "finish"
|
|
330
|
+
)
|
|
331
|
+
)
|
|
332
|
+
}
|
|
333
|
+
)
|
|
334
|
+
] }),
|
|
335
|
+
/* @__PURE__ */ jsxs(
|
|
336
|
+
"div",
|
|
337
|
+
{
|
|
338
|
+
className: cn(
|
|
339
|
+
"mt-2 px-2",
|
|
340
|
+
index === 0 && "text-left",
|
|
341
|
+
index === steps.length - 1 && "text-right",
|
|
342
|
+
index > 0 && index < steps.length - 1 && "text-center"
|
|
343
|
+
),
|
|
344
|
+
children: [
|
|
345
|
+
/* @__PURE__ */ jsx(
|
|
346
|
+
"div",
|
|
347
|
+
{
|
|
348
|
+
className: cn(
|
|
349
|
+
stepLabelVariants({ size }),
|
|
350
|
+
state === "wait" ? "text-text-secondary" : "text-text-primary",
|
|
351
|
+
state === "error" && "text-error"
|
|
352
|
+
),
|
|
353
|
+
children: step.label
|
|
354
|
+
}
|
|
355
|
+
),
|
|
356
|
+
step.description && /* @__PURE__ */ jsx(
|
|
357
|
+
"div",
|
|
358
|
+
{
|
|
359
|
+
className: cn(
|
|
360
|
+
stepDescriptionVariants({ size }),
|
|
361
|
+
"mt-1"
|
|
362
|
+
),
|
|
363
|
+
children: step.description
|
|
364
|
+
}
|
|
365
|
+
)
|
|
366
|
+
]
|
|
367
|
+
}
|
|
368
|
+
)
|
|
369
|
+
]
|
|
370
|
+
}
|
|
371
|
+
) }, index);
|
|
372
|
+
}) });
|
|
373
|
+
}
|
|
374
|
+
return /* @__PURE__ */ jsx("div", { className: cn("flex items-start", className), children: steps.map((step, index) => {
|
|
375
|
+
const state = getStepState(index, step);
|
|
376
|
+
const isClickable = !step.disabled && onStepClick;
|
|
377
|
+
const prevStep = steps[index - 1];
|
|
378
|
+
const prevState = index > 0 && prevStep ? getStepState(index - 1, prevStep) : "wait";
|
|
379
|
+
return /* @__PURE__ */ jsx(React.Fragment, { children: /* @__PURE__ */ jsxs(
|
|
380
|
+
"div",
|
|
381
|
+
{
|
|
382
|
+
className: cn(
|
|
383
|
+
"flex flex-col items-center flex-1",
|
|
384
|
+
index === 0 && "items-start",
|
|
385
|
+
index === steps.length - 1 && "items-end"
|
|
386
|
+
),
|
|
387
|
+
children: [
|
|
388
|
+
/* @__PURE__ */ jsxs("div", { className: "flex items-center w-full", children: [
|
|
389
|
+
index > 0 && /* @__PURE__ */ jsx(
|
|
390
|
+
"div",
|
|
391
|
+
{
|
|
392
|
+
className: cn(
|
|
393
|
+
"flex-1",
|
|
394
|
+
connectorVariants({ size }),
|
|
395
|
+
getConnectorClasses(
|
|
396
|
+
color,
|
|
397
|
+
variant,
|
|
398
|
+
prevState === "finish"
|
|
399
|
+
)
|
|
400
|
+
)
|
|
401
|
+
}
|
|
402
|
+
),
|
|
403
|
+
/* @__PURE__ */ jsx(
|
|
404
|
+
"div",
|
|
405
|
+
{
|
|
406
|
+
className: cn(
|
|
407
|
+
stepCircleVariants({ size }),
|
|
408
|
+
getStepCircleClasses(color, variant, state),
|
|
409
|
+
isClickable && "cursor-pointer hover:scale-105",
|
|
410
|
+
step.disabled && "opacity-50 cursor-not-allowed",
|
|
411
|
+
"flex-shrink-0"
|
|
412
|
+
),
|
|
413
|
+
onClick: () => handleStepClick(index, step.disabled),
|
|
414
|
+
children: step.icon || index + 1
|
|
415
|
+
}
|
|
416
|
+
),
|
|
417
|
+
index < steps.length - 1 && /* @__PURE__ */ jsx(
|
|
418
|
+
"div",
|
|
419
|
+
{
|
|
420
|
+
className: cn(
|
|
421
|
+
"flex-1",
|
|
422
|
+
connectorVariants({ size }),
|
|
423
|
+
getConnectorClasses(color, variant, state === "finish")
|
|
424
|
+
)
|
|
425
|
+
}
|
|
426
|
+
)
|
|
427
|
+
] }),
|
|
428
|
+
/* @__PURE__ */ jsxs(
|
|
429
|
+
"div",
|
|
430
|
+
{
|
|
431
|
+
className: cn(
|
|
432
|
+
"mt-2 px-2",
|
|
433
|
+
index === 0 && "text-left",
|
|
434
|
+
index === steps.length - 1 && "text-right",
|
|
435
|
+
index > 0 && index < steps.length - 1 && "text-center"
|
|
436
|
+
),
|
|
437
|
+
children: [
|
|
438
|
+
/* @__PURE__ */ jsx(
|
|
439
|
+
"div",
|
|
440
|
+
{
|
|
441
|
+
className: cn(
|
|
442
|
+
stepLabelVariants({ size }),
|
|
443
|
+
state === "wait" ? "text-text-secondary" : "text-text-primary",
|
|
444
|
+
state === "error" && "text-error"
|
|
445
|
+
),
|
|
446
|
+
children: step.label
|
|
447
|
+
}
|
|
448
|
+
),
|
|
449
|
+
step.description && /* @__PURE__ */ jsx(
|
|
450
|
+
"div",
|
|
451
|
+
{
|
|
452
|
+
className: cn(stepDescriptionVariants({ size }), "mt-1"),
|
|
453
|
+
children: step.description
|
|
454
|
+
}
|
|
455
|
+
)
|
|
456
|
+
]
|
|
457
|
+
}
|
|
458
|
+
)
|
|
459
|
+
]
|
|
460
|
+
}
|
|
461
|
+
) }, index);
|
|
462
|
+
}) });
|
|
463
|
+
}
|
|
464
|
+
);
|
|
465
|
+
Stepper.displayName = "Stepper";
|
|
466
|
+
var stepper_default = Stepper;
|
|
467
|
+
|
|
468
|
+
export { stepper_default };
|
|
469
|
+
//# sourceMappingURL=chunk-MLDX3Z67.js.map
|
|
470
|
+
//# sourceMappingURL=chunk-MLDX3Z67.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/stepper/index.tsx"],"names":[],"mappings":"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","file":"chunk-MLDX3Z67.js","sourcesContent":["import { cva } from 'class-variance-authority'\nimport React from 'react'\n\nimport { cn } from '../utils'\nimport type {\n StepItem,\n StepperColor,\n StepperProps,\n StepperVariant,\n} from './types'\n\nconst stepCircleVariants = cva(\n 'rounded-full flex items-center justify-center font-medium transition-all',\n {\n variants: {\n size: {\n xs: 'w-6 h-6 text-xs',\n sm: 'w-8 h-8 text-sm',\n md: 'w-10 h-10 text-base',\n lg: 'w-12 h-12 text-lg',\n },\n },\n defaultVariants: {\n size: 'md',\n },\n },\n)\n\nconst stepDotVariants = cva('rounded-full transition-all', {\n variants: {\n size: {\n xs: 'w-2 h-2',\n sm: 'w-3 h-3',\n md: 'w-4 h-4',\n lg: 'w-5 h-5',\n },\n },\n defaultVariants: {\n size: 'md',\n },\n})\n\nconst stepLabelVariants = cva('font-medium', {\n variants: {\n size: {\n xs: 'text-xs',\n sm: 'text-sm',\n md: 'text-base',\n lg: 'text-lg',\n },\n },\n defaultVariants: {\n size: 'md',\n },\n})\n\nconst stepDescriptionVariants = cva('text-text-secondary', {\n variants: {\n size: {\n xs: 'text-xs',\n sm: 'text-xs',\n md: 'text-sm',\n lg: 'text-sm',\n },\n },\n defaultVariants: {\n size: 'md',\n },\n})\n\nconst connectorVariants = cva('bg-border', {\n variants: {\n size: {\n xs: 'h-0.5',\n sm: 'h-0.5',\n md: 'h-1',\n lg: 'h-1',\n },\n },\n defaultVariants: {\n size: 'md',\n },\n})\n\nconst getStepCircleClasses = (\n color: StepperColor,\n variant: StepperVariant,\n state: 'wait' | 'process' | 'finish' | 'error',\n) => {\n const isError = state === 'error'\n const isWait = state === 'wait'\n\n if (isError) {\n if (variant === 'solid')\n return 'bg-error text-error-foreground border-2 border-error'\n if (variant === 'soft')\n return 'bg-error/10 border-2 border-error/50 text-error'\n return 'bg-error/20 border-2 border-error text-error'\n }\n\n if (isWait) {\n if (variant === 'solid') {\n const solidWaitClasses = {\n default: 'bg-border/50 text-text-secondary',\n primary: 'bg-primary/30 text-primary-foreground/50',\n secondary: 'bg-secondary/30 text-secondary-foreground/50',\n accent: 'bg-accent/30 text-accent-foreground/50',\n success: 'bg-success/30 text-success-foreground/50',\n error: 'bg-error/30 text-error-foreground/50',\n warning: 'bg-warning/30 text-warning-foreground/50',\n info: 'bg-info/30 text-info-foreground/50',\n }\n return solidWaitClasses[color]\n }\n if (variant === 'soft') {\n const softWaitClasses = {\n default: 'bg-surface/30 border-2 border-border/30 text-text-secondary',\n primary: 'bg-primary/5 border-2 border-primary/20 text-text-secondary',\n secondary:\n 'bg-secondary/5 border-2 border-secondary/20 text-text-secondary',\n accent: 'bg-accent/5 border-2 border-accent/20 text-text-secondary',\n success: 'bg-success/5 border-2 border-success/20 text-text-secondary',\n error: 'bg-error/5 border-2 border-error/20 text-text-secondary',\n warning: 'bg-warning/5 border-2 border-warning/20 text-text-secondary',\n info: 'bg-info/5 border-2 border-info/20 text-text-secondary',\n }\n return softWaitClasses[color]\n }\n const defaultWaitClasses = {\n default: 'bg-surface border-2 border-border/50 text-text-secondary',\n primary: 'bg-primary/5 border-2 border-primary/30 text-text-secondary',\n secondary:\n 'bg-secondary/5 border-2 border-secondary/30 text-text-secondary',\n accent: 'bg-accent/5 border-2 border-accent/30 text-text-secondary',\n success: 'bg-success/5 border-2 border-success/30 text-text-secondary',\n error: 'bg-error/5 border-2 border-error/30 text-text-secondary',\n warning: 'bg-warning/5 border-2 border-warning/30 text-text-secondary',\n info: 'bg-info/5 border-2 border-info/30 text-text-secondary',\n }\n return defaultWaitClasses[color]\n }\n\n // process or finish states\n if (variant === 'solid') {\n const solidActiveClasses = {\n default: 'bg-border text-text-primary border-2 border-border',\n primary: 'bg-primary text-primary-foreground border-2 border-primary',\n secondary:\n 'bg-secondary text-secondary-foreground border-2 border-secondary',\n accent: 'bg-accent text-accent-foreground border-2 border-accent',\n success: 'bg-success text-success-foreground border-2 border-success',\n error: 'bg-error text-error-foreground border-2 border-error',\n warning: 'bg-warning text-warning-foreground border-2 border-warning',\n info: 'bg-info text-info-foreground border-2 border-info',\n }\n return solidActiveClasses[color]\n }\n if (variant === 'soft') {\n const softActiveClasses = {\n default: 'bg-surface/50 border-2 border-border text-text-primary',\n primary: 'bg-primary/10 border-2 border-primary/50 text-primary',\n secondary: 'bg-secondary/10 border-2 border-secondary/50 text-secondary',\n accent: 'bg-accent/10 border-2 border-accent/50 text-accent',\n success: 'bg-success/10 border-2 border-success/50 text-success',\n error: 'bg-error/10 border-2 border-error/50 text-error',\n warning: 'bg-warning/10 border-2 border-warning/50 text-warning',\n info: 'bg-info/10 border-2 border-info/50 text-info',\n }\n return softActiveClasses[color]\n }\n const defaultActiveClasses = {\n default: 'bg-surface border-2 border-border text-text-primary',\n primary: 'bg-primary/20 border-2 border-primary text-primary',\n secondary: 'bg-secondary/20 border-2 border-secondary text-secondary',\n accent: 'bg-accent/20 border-2 border-accent text-accent',\n success: 'bg-success/20 border-2 border-success text-success',\n error: 'bg-error/20 border-2 border-error text-error',\n warning: 'bg-warning/20 border-2 border-warning text-warning',\n info: 'bg-info/20 border-2 border-info text-info',\n }\n return defaultActiveClasses[color]\n}\n\nconst getConnectorClasses = (\n color: StepperColor,\n variant: StepperVariant,\n isFinished: boolean,\n) => {\n if (!isFinished) return 'bg-border/50'\n\n if (variant === 'soft') {\n const softConnectorClasses = {\n default: 'bg-border/50',\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 }\n return softConnectorClasses[color]\n }\n const connectorClasses = {\n default: 'bg-border',\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 }\n return connectorClasses[color]\n}\n\nconst Stepper = React.memo<StepperProps>(\n ({\n steps,\n currentStep,\n color = 'primary',\n size = 'md',\n variant = 'default',\n orientation = 'horizontal',\n type = 'numbered',\n status,\n onStepClick,\n className,\n }) => {\n const getStepState = (\n index: number,\n step: StepItem,\n ): 'wait' | 'process' | 'finish' | 'error' => {\n if (step.status) return step.status\n if (index === currentStep && status === 'error') return 'error'\n if (index < currentStep) return 'finish'\n if (index === currentStep) return status || 'process'\n return 'wait'\n }\n\n const handleStepClick = (index: number, disabled?: boolean) => {\n if (disabled) return\n onStepClick?.(index)\n }\n\n if (orientation === 'vertical') {\n return (\n <div className={cn('flex flex-col', className)}>\n {steps.map((step, index) => {\n const state = getStepState(index, step)\n const isClickable = !step.disabled && onStepClick\n\n return (\n <div\n key={index}\n className=\"flex\"\n >\n <div className=\"flex flex-col items-center mr-4\">\n <div\n className={cn(\n stepCircleVariants({ size }),\n getStepCircleClasses(color, variant, state),\n isClickable && 'cursor-pointer hover:scale-105',\n step.disabled && 'opacity-50 cursor-not-allowed',\n )}\n onClick={() => handleStepClick(index, step.disabled)}\n >\n {step.icon || index + 1}\n </div>\n {index < steps.length - 1 && (\n <div\n className={cn(\n 'w-0.5 flex-1 my-2',\n getConnectorClasses(color, variant, state === 'finish'),\n )}\n />\n )}\n </div>\n <div\n className={cn('pb-8', index === steps.length - 1 && 'pb-0')}\n >\n <div\n className={cn(\n stepLabelVariants({ size }),\n state === 'wait'\n ? 'text-text-secondary'\n : 'text-text-primary',\n state === 'error' && 'text-error',\n )}\n >\n {step.label}\n </div>\n {step.description && (\n <div\n className={cn(stepDescriptionVariants({ size }), 'mt-1')}\n >\n {step.description}\n </div>\n )}\n </div>\n </div>\n )\n })}\n </div>\n )\n }\n\n if (type === 'dots') {\n return (\n <div className={cn('flex items-start', className)}>\n {steps.map((step, index) => {\n const state = getStepState(index, step)\n const isClickable = !step.disabled && onStepClick\n const prevStep = steps[index - 1]\n const prevState =\n index > 0 && prevStep ? getStepState(index - 1, prevStep) : 'wait'\n\n return (\n <React.Fragment key={index}>\n <div\n className={cn(\n 'flex flex-col items-center flex-1',\n index === 0 && 'items-start',\n index === steps.length - 1 && 'items-end',\n )}\n >\n <div className=\"flex items-center w-full\">\n {index > 0 && (\n <div\n className={cn(\n 'flex-1',\n connectorVariants({ size }),\n getConnectorClasses(\n color,\n variant,\n prevState === 'finish',\n ),\n )}\n />\n )}\n <div\n className={cn(\n stepDotVariants({ size }),\n getStepCircleClasses(color, variant, state),\n isClickable && 'cursor-pointer hover:scale-105',\n step.disabled && 'opacity-50 cursor-not-allowed',\n 'flex-shrink-0',\n )}\n onClick={() => handleStepClick(index, step.disabled)}\n />\n {index < steps.length - 1 && (\n <div\n className={cn(\n 'flex-1',\n connectorVariants({ size }),\n getConnectorClasses(\n color,\n variant,\n state === 'finish',\n ),\n )}\n />\n )}\n </div>\n <div\n className={cn(\n 'mt-2 px-2',\n index === 0 && 'text-left',\n index === steps.length - 1 && 'text-right',\n index > 0 && index < steps.length - 1 && 'text-center',\n )}\n >\n <div\n className={cn(\n stepLabelVariants({ size }),\n state === 'wait'\n ? 'text-text-secondary'\n : 'text-text-primary',\n state === 'error' && 'text-error',\n )}\n >\n {step.label}\n </div>\n {step.description && (\n <div\n className={cn(\n stepDescriptionVariants({ size }),\n 'mt-1',\n )}\n >\n {step.description}\n </div>\n )}\n </div>\n </div>\n </React.Fragment>\n )\n })}\n </div>\n )\n }\n\n return (\n <div className={cn('flex items-start', className)}>\n {steps.map((step, index) => {\n const state = getStepState(index, step)\n const isClickable = !step.disabled && onStepClick\n const prevStep = steps[index - 1]\n const prevState =\n index > 0 && prevStep ? getStepState(index - 1, prevStep) : 'wait'\n\n return (\n <React.Fragment key={index}>\n <div\n className={cn(\n 'flex flex-col items-center flex-1',\n index === 0 && 'items-start',\n index === steps.length - 1 && 'items-end',\n )}\n >\n <div className=\"flex items-center w-full\">\n {index > 0 && (\n <div\n className={cn(\n 'flex-1',\n connectorVariants({ size }),\n getConnectorClasses(\n color,\n variant,\n prevState === 'finish',\n ),\n )}\n />\n )}\n <div\n className={cn(\n stepCircleVariants({ size }),\n getStepCircleClasses(color, variant, state),\n isClickable && 'cursor-pointer hover:scale-105',\n step.disabled && 'opacity-50 cursor-not-allowed',\n 'flex-shrink-0',\n )}\n onClick={() => handleStepClick(index, step.disabled)}\n >\n {step.icon || index + 1}\n </div>\n {index < steps.length - 1 && (\n <div\n className={cn(\n 'flex-1',\n connectorVariants({ size }),\n getConnectorClasses(color, variant, state === 'finish'),\n )}\n />\n )}\n </div>\n <div\n className={cn(\n 'mt-2 px-2',\n index === 0 && 'text-left',\n index === steps.length - 1 && 'text-right',\n index > 0 && index < steps.length - 1 && 'text-center',\n )}\n >\n <div\n className={cn(\n stepLabelVariants({ size }),\n state === 'wait'\n ? 'text-text-secondary'\n : 'text-text-primary',\n state === 'error' && 'text-error',\n )}\n >\n {step.label}\n </div>\n {step.description && (\n <div\n className={cn(stepDescriptionVariants({ size }), 'mt-1')}\n >\n {step.description}\n </div>\n )}\n </div>\n </div>\n </React.Fragment>\n )\n })}\n </div>\n )\n },\n)\n\nStepper.displayName = 'Stepper'\n\nexport type * from './types'\nexport default Stepper\n"]}
|