@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.
Files changed (205) hide show
  1. package/README.md +296 -0
  2. package/dist/accordion/index.js +5 -0
  3. package/dist/accordion/index.js.map +1 -0
  4. package/dist/badge/index.js +5 -0
  5. package/dist/badge/index.js.map +1 -0
  6. package/dist/button/index.js +6 -0
  7. package/dist/button/index.js.map +1 -0
  8. package/dist/card/index.js +4 -0
  9. package/dist/card/index.js.map +1 -0
  10. package/dist/carousel/index.js +3 -0
  11. package/dist/carousel/index.js.map +1 -0
  12. package/dist/cascader/index.js +4 -0
  13. package/dist/cascader/index.js.map +1 -0
  14. package/dist/chart/index.js +4 -0
  15. package/dist/chart/index.js.map +1 -0
  16. package/dist/checkbox/index.js +5 -0
  17. package/dist/checkbox/index.js.map +1 -0
  18. package/dist/checkbox-group/index.js +4 -0
  19. package/dist/checkbox-group/index.js.map +1 -0
  20. package/dist/chunk-2JGAYDZR.js +181 -0
  21. package/dist/chunk-2JGAYDZR.js.map +1 -0
  22. package/dist/chunk-3PFA3YG6.js +228 -0
  23. package/dist/chunk-3PFA3YG6.js.map +1 -0
  24. package/dist/chunk-4OMLQCUV.js +96 -0
  25. package/dist/chunk-4OMLQCUV.js.map +1 -0
  26. package/dist/chunk-4P5EMRFI.js +298 -0
  27. package/dist/chunk-4P5EMRFI.js.map +1 -0
  28. package/dist/chunk-5UEWVFF6.js +212 -0
  29. package/dist/chunk-5UEWVFF6.js.map +1 -0
  30. package/dist/chunk-5VCGW53O.js +332 -0
  31. package/dist/chunk-5VCGW53O.js.map +1 -0
  32. package/dist/chunk-75XESYGN.js +49 -0
  33. package/dist/chunk-75XESYGN.js.map +1 -0
  34. package/dist/chunk-7AEGBABZ.js +1102 -0
  35. package/dist/chunk-7AEGBABZ.js.map +1 -0
  36. package/dist/chunk-AOITJRSV.js +134 -0
  37. package/dist/chunk-AOITJRSV.js.map +1 -0
  38. package/dist/chunk-AWPKZYHT.js +152 -0
  39. package/dist/chunk-AWPKZYHT.js.map +1 -0
  40. package/dist/chunk-BNILRB4T.js +37 -0
  41. package/dist/chunk-BNILRB4T.js.map +1 -0
  42. package/dist/chunk-BP434VYV.js +448 -0
  43. package/dist/chunk-BP434VYV.js.map +1 -0
  44. package/dist/chunk-C7SXY3ZV.js +65 -0
  45. package/dist/chunk-C7SXY3ZV.js.map +1 -0
  46. package/dist/chunk-CLLQDCDR.js +560 -0
  47. package/dist/chunk-CLLQDCDR.js.map +1 -0
  48. package/dist/chunk-CWHFK7ZC.js +128 -0
  49. package/dist/chunk-CWHFK7ZC.js.map +1 -0
  50. package/dist/chunk-D3JWPGCA.js +123 -0
  51. package/dist/chunk-D3JWPGCA.js.map +1 -0
  52. package/dist/chunk-DOKTHDG3.js +55 -0
  53. package/dist/chunk-DOKTHDG3.js.map +1 -0
  54. package/dist/chunk-DPOSWW22.js +126 -0
  55. package/dist/chunk-DPOSWW22.js.map +1 -0
  56. package/dist/chunk-E2CYDDYC.js +39 -0
  57. package/dist/chunk-E2CYDDYC.js.map +1 -0
  58. package/dist/chunk-EYTOKUBM.js +401 -0
  59. package/dist/chunk-EYTOKUBM.js.map +1 -0
  60. package/dist/chunk-FGWSUPVW.js +356 -0
  61. package/dist/chunk-FGWSUPVW.js.map +1 -0
  62. package/dist/chunk-FPOXTCYV.js +166 -0
  63. package/dist/chunk-FPOXTCYV.js.map +1 -0
  64. package/dist/chunk-FTJOSVTY.js +104 -0
  65. package/dist/chunk-FTJOSVTY.js.map +1 -0
  66. package/dist/chunk-FYHQDFKE.js +164 -0
  67. package/dist/chunk-FYHQDFKE.js.map +1 -0
  68. package/dist/chunk-H2HIBD5Y.js +158 -0
  69. package/dist/chunk-H2HIBD5Y.js.map +1 -0
  70. package/dist/chunk-J3G5WWGR.js +53 -0
  71. package/dist/chunk-J3G5WWGR.js.map +1 -0
  72. package/dist/chunk-JZCHZ4B3.js +487 -0
  73. package/dist/chunk-JZCHZ4B3.js.map +1 -0
  74. package/dist/chunk-KBCBVH7B.js +51 -0
  75. package/dist/chunk-KBCBVH7B.js.map +1 -0
  76. package/dist/chunk-KNQ7UQ2W.js +143 -0
  77. package/dist/chunk-KNQ7UQ2W.js.map +1 -0
  78. package/dist/chunk-KTBPIEP2.js +102 -0
  79. package/dist/chunk-KTBPIEP2.js.map +1 -0
  80. package/dist/chunk-L3SP7GHC.js +1023 -0
  81. package/dist/chunk-L3SP7GHC.js.map +1 -0
  82. package/dist/chunk-LBJG2UWT.js +100 -0
  83. package/dist/chunk-LBJG2UWT.js.map +1 -0
  84. package/dist/chunk-MLDX3Z67.js +470 -0
  85. package/dist/chunk-MLDX3Z67.js.map +1 -0
  86. package/dist/chunk-NNSS366W.js +331 -0
  87. package/dist/chunk-NNSS366W.js.map +1 -0
  88. package/dist/chunk-OQANRZPV.js +197 -0
  89. package/dist/chunk-OQANRZPV.js.map +1 -0
  90. package/dist/chunk-OW5A5IIF.js +175 -0
  91. package/dist/chunk-OW5A5IIF.js.map +1 -0
  92. package/dist/chunk-R225A5II.js +187 -0
  93. package/dist/chunk-R225A5II.js.map +1 -0
  94. package/dist/chunk-ROR4E6IE.js +119 -0
  95. package/dist/chunk-ROR4E6IE.js.map +1 -0
  96. package/dist/chunk-RPAQAZTI.js +54 -0
  97. package/dist/chunk-RPAQAZTI.js.map +1 -0
  98. package/dist/chunk-RQBXZKTH.js +452 -0
  99. package/dist/chunk-RQBXZKTH.js.map +1 -0
  100. package/dist/chunk-S5XJXU52.js +178 -0
  101. package/dist/chunk-S5XJXU52.js.map +1 -0
  102. package/dist/chunk-SAVE5ACL.js +324 -0
  103. package/dist/chunk-SAVE5ACL.js.map +1 -0
  104. package/dist/chunk-SERJ3TZE.js +640 -0
  105. package/dist/chunk-SERJ3TZE.js.map +1 -0
  106. package/dist/chunk-SK5ECBBK.js +175 -0
  107. package/dist/chunk-SK5ECBBK.js.map +1 -0
  108. package/dist/chunk-SOV4PE3P.js +218 -0
  109. package/dist/chunk-SOV4PE3P.js.map +1 -0
  110. package/dist/chunk-W7BQYIXF.js +687 -0
  111. package/dist/chunk-W7BQYIXF.js.map +1 -0
  112. package/dist/chunk-XMAH5PDW.js +59 -0
  113. package/dist/chunk-XMAH5PDW.js.map +1 -0
  114. package/dist/chunk-XOBGEMQY.js +94 -0
  115. package/dist/chunk-XOBGEMQY.js.map +1 -0
  116. package/dist/chunk-YNNAOXU5.js +57 -0
  117. package/dist/chunk-YNNAOXU5.js.map +1 -0
  118. package/dist/chunk-YZVSDRJD.js +253 -0
  119. package/dist/chunk-YZVSDRJD.js.map +1 -0
  120. package/dist/collapse/index.js +4 -0
  121. package/dist/collapse/index.js.map +1 -0
  122. package/dist/command/index.js +5 -0
  123. package/dist/command/index.js.map +1 -0
  124. package/dist/date-picker/index.js +5 -0
  125. package/dist/date-picker/index.js.map +1 -0
  126. package/dist/descriptions/index.js +4 -0
  127. package/dist/descriptions/index.js.map +1 -0
  128. package/dist/drawer/index.js +4 -0
  129. package/dist/drawer/index.js.map +1 -0
  130. package/dist/dropdown/index.js +5 -0
  131. package/dist/dropdown/index.js.map +1 -0
  132. package/dist/empty/index.js +4 -0
  133. package/dist/empty/index.js.map +1 -0
  134. package/dist/fetching-overlay/index.js +5 -0
  135. package/dist/fetching-overlay/index.js.map +1 -0
  136. package/dist/image/index.js +4 -0
  137. package/dist/image/index.js.map +1 -0
  138. package/dist/index.d.ts +2672 -0
  139. package/dist/index.js +976 -0
  140. package/dist/index.js.map +1 -0
  141. package/dist/input/index.js +5 -0
  142. package/dist/input/index.js.map +1 -0
  143. package/dist/input-group/index.js +4 -0
  144. package/dist/input-group/index.js.map +1 -0
  145. package/dist/input-otp/index.js +4 -0
  146. package/dist/input-otp/index.js.map +1 -0
  147. package/dist/input-password/index.js +6 -0
  148. package/dist/input-password/index.js.map +1 -0
  149. package/dist/kbd/index.js +4 -0
  150. package/dist/kbd/index.js.map +1 -0
  151. package/dist/modal/index.js +4 -0
  152. package/dist/modal/index.js.map +1 -0
  153. package/dist/multi-select/index.js +5 -0
  154. package/dist/multi-select/index.js.map +1 -0
  155. package/dist/notification/index.js +4 -0
  156. package/dist/notification/index.js.map +1 -0
  157. package/dist/pagination/index.js +4 -0
  158. package/dist/pagination/index.js.map +1 -0
  159. package/dist/popover/index.js +4 -0
  160. package/dist/popover/index.js.map +1 -0
  161. package/dist/progress/index.js +4 -0
  162. package/dist/progress/index.js.map +1 -0
  163. package/dist/radio/index.js +4 -0
  164. package/dist/radio/index.js.map +1 -0
  165. package/dist/radio-group/index.js +4 -0
  166. package/dist/radio-group/index.js.map +1 -0
  167. package/dist/rating/index.js +4 -0
  168. package/dist/rating/index.js.map +1 -0
  169. package/dist/ribbon/index.js +4 -0
  170. package/dist/ribbon/index.js.map +1 -0
  171. package/dist/select/index.js +6 -0
  172. package/dist/select/index.js.map +1 -0
  173. package/dist/skeleton/index.js +4 -0
  174. package/dist/skeleton/index.js.map +1 -0
  175. package/dist/slider/index.js +4 -0
  176. package/dist/slider/index.js.map +1 -0
  177. package/dist/spinner/index.js +4 -0
  178. package/dist/spinner/index.js.map +1 -0
  179. package/dist/stepper/index.js +4 -0
  180. package/dist/stepper/index.js.map +1 -0
  181. package/dist/styles/base.css +161 -0
  182. package/dist/styles/global.css +633 -0
  183. package/dist/styles/themes/dark.css +84 -0
  184. package/dist/styles/themes/light.css +84 -0
  185. package/dist/switch/index.js +4 -0
  186. package/dist/switch/index.js.map +1 -0
  187. package/dist/table/index.js +12 -0
  188. package/dist/table/index.js.map +1 -0
  189. package/dist/tabs/index.js +5 -0
  190. package/dist/tabs/index.js.map +1 -0
  191. package/dist/textarea/index.js +4 -0
  192. package/dist/textarea/index.js.map +1 -0
  193. package/dist/toggle/index.js +4 -0
  194. package/dist/toggle/index.js.map +1 -0
  195. package/dist/toggle-group/index.js +4 -0
  196. package/dist/toggle-group/index.js.map +1 -0
  197. package/dist/tooltip/index.js +4 -0
  198. package/dist/tooltip/index.js.map +1 -0
  199. package/dist/transfer/index.js +6 -0
  200. package/dist/transfer/index.js.map +1 -0
  201. package/dist/tree/index.js +4 -0
  202. package/dist/tree/index.js.map +1 -0
  203. package/dist/tree-select/index.js +6 -0
  204. package/dist/tree-select/index.js.map +1 -0
  205. 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":";;;;;AAWA,IAAM,kBAAA,GAAqB,GAAA;AAAA,EACzB,0EAAA;AAAA,EACA;AAAA,IACE,QAAA,EAAU;AAAA,MACR,IAAA,EAAM;AAAA,QACJ,EAAA,EAAI,iBAAA;AAAA,QACJ,EAAA,EAAI,iBAAA;AAAA,QACJ,EAAA,EAAI,qBAAA;AAAA,QACJ,EAAA,EAAI;AAAA;AACN,KACF;AAAA,IACA,eAAA,EAAiB;AAAA,MACf,IAAA,EAAM;AAAA;AACR;AAEJ,CAAA;AAEA,IAAM,eAAA,GAAkB,IAAI,6BAAA,EAA+B;AAAA,EACzD,QAAA,EAAU;AAAA,IACR,IAAA,EAAM;AAAA,MACJ,EAAA,EAAI,SAAA;AAAA,MACJ,EAAA,EAAI,SAAA;AAAA,MACJ,EAAA,EAAI,SAAA;AAAA,MACJ,EAAA,EAAI;AAAA;AACN,GACF;AAAA,EACA,eAAA,EAAiB;AAAA,IACf,IAAA,EAAM;AAAA;AAEV,CAAC,CAAA;AAED,IAAM,iBAAA,GAAoB,IAAI,aAAA,EAAe;AAAA,EAC3C,QAAA,EAAU;AAAA,IACR,IAAA,EAAM;AAAA,MACJ,EAAA,EAAI,SAAA;AAAA,MACJ,EAAA,EAAI,SAAA;AAAA,MACJ,EAAA,EAAI,WAAA;AAAA,MACJ,EAAA,EAAI;AAAA;AACN,GACF;AAAA,EACA,eAAA,EAAiB;AAAA,IACf,IAAA,EAAM;AAAA;AAEV,CAAC,CAAA;AAED,IAAM,uBAAA,GAA0B,IAAI,qBAAA,EAAuB;AAAA,EACzD,QAAA,EAAU;AAAA,IACR,IAAA,EAAM;AAAA,MACJ,EAAA,EAAI,SAAA;AAAA,MACJ,EAAA,EAAI,SAAA;AAAA,MACJ,EAAA,EAAI,SAAA;AAAA,MACJ,EAAA,EAAI;AAAA;AACN,GACF;AAAA,EACA,eAAA,EAAiB;AAAA,IACf,IAAA,EAAM;AAAA;AAEV,CAAC,CAAA;AAED,IAAM,iBAAA,GAAoB,IAAI,WAAA,EAAa;AAAA,EACzC,QAAA,EAAU;AAAA,IACR,IAAA,EAAM;AAAA,MACJ,EAAA,EAAI,OAAA;AAAA,MACJ,EAAA,EAAI,OAAA;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,oBAAA,GAAuB,CAC3B,KAAA,EACA,OAAA,EACA,KAAA,KACG;AACH,EAAA,MAAM,UAAU,KAAA,KAAU,OAAA;AAC1B,EAAA,MAAM,SAAS,KAAA,KAAU,MAAA;AAEzB,EAAA,IAAI,OAAA,EAAS;AACX,IAAA,IAAI,OAAA,KAAY,OAAA;AACd,MAAA,OAAO,sDAAA;AACT,IAAA,IAAI,OAAA,KAAY,MAAA;AACd,MAAA,OAAO,iDAAA;AACT,IAAA,OAAO,8CAAA;AAAA,EACT;AAEA,EAAA,IAAI,MAAA,EAAQ;AACV,IAAA,IAAI,YAAY,OAAA,EAAS;AACvB,MAAA,MAAM,gBAAA,GAAmB;AAAA,QACvB,OAAA,EAAS,kCAAA;AAAA,QACT,OAAA,EAAS,0CAAA;AAAA,QACT,SAAA,EAAW,8CAAA;AAAA,QACX,MAAA,EAAQ,wCAAA;AAAA,QACR,OAAA,EAAS,0CAAA;AAAA,QACT,KAAA,EAAO,sCAAA;AAAA,QACP,OAAA,EAAS,0CAAA;AAAA,QACT,IAAA,EAAM;AAAA,OACR;AACA,MAAA,OAAO,iBAAiB,KAAK,CAAA;AAAA,IAC/B;AACA,IAAA,IAAI,YAAY,MAAA,EAAQ;AACtB,MAAA,MAAM,eAAA,GAAkB;AAAA,QACtB,OAAA,EAAS,6DAAA;AAAA,QACT,OAAA,EAAS,6DAAA;AAAA,QACT,SAAA,EACE,iEAAA;AAAA,QACF,MAAA,EAAQ,2DAAA;AAAA,QACR,OAAA,EAAS,6DAAA;AAAA,QACT,KAAA,EAAO,yDAAA;AAAA,QACP,OAAA,EAAS,6DAAA;AAAA,QACT,IAAA,EAAM;AAAA,OACR;AACA,MAAA,OAAO,gBAAgB,KAAK,CAAA;AAAA,IAC9B;AACA,IAAA,MAAM,kBAAA,GAAqB;AAAA,MACzB,OAAA,EAAS,0DAAA;AAAA,MACT,OAAA,EAAS,6DAAA;AAAA,MACT,SAAA,EACE,iEAAA;AAAA,MACF,MAAA,EAAQ,2DAAA;AAAA,MACR,OAAA,EAAS,6DAAA;AAAA,MACT,KAAA,EAAO,yDAAA;AAAA,MACP,OAAA,EAAS,6DAAA;AAAA,MACT,IAAA,EAAM;AAAA,KACR;AACA,IAAA,OAAO,mBAAmB,KAAK,CAAA;AAAA,EACjC;AAGA,EAAA,IAAI,YAAY,OAAA,EAAS;AACvB,IAAA,MAAM,kBAAA,GAAqB;AAAA,MACzB,OAAA,EAAS,oDAAA;AAAA,MACT,OAAA,EAAS,4DAAA;AAAA,MACT,SAAA,EACE,kEAAA;AAAA,MACF,MAAA,EAAQ,yDAAA;AAAA,MACR,OAAA,EAAS,4DAAA;AAAA,MACT,KAAA,EAAO,sDAAA;AAAA,MACP,OAAA,EAAS,4DAAA;AAAA,MACT,IAAA,EAAM;AAAA,KACR;AACA,IAAA,OAAO,mBAAmB,KAAK,CAAA;AAAA,EACjC;AACA,EAAA,IAAI,YAAY,MAAA,EAAQ;AACtB,IAAA,MAAM,iBAAA,GAAoB;AAAA,MACxB,OAAA,EAAS,wDAAA;AAAA,MACT,OAAA,EAAS,uDAAA;AAAA,MACT,SAAA,EAAW,6DAAA;AAAA,MACX,MAAA,EAAQ,oDAAA;AAAA,MACR,OAAA,EAAS,uDAAA;AAAA,MACT,KAAA,EAAO,iDAAA;AAAA,MACP,OAAA,EAAS,uDAAA;AAAA,MACT,IAAA,EAAM;AAAA,KACR;AACA,IAAA,OAAO,kBAAkB,KAAK,CAAA;AAAA,EAChC;AACA,EAAA,MAAM,oBAAA,GAAuB;AAAA,IAC3B,OAAA,EAAS,qDAAA;AAAA,IACT,OAAA,EAAS,oDAAA;AAAA,IACT,SAAA,EAAW,0DAAA;AAAA,IACX,MAAA,EAAQ,iDAAA;AAAA,IACR,OAAA,EAAS,oDAAA;AAAA,IACT,KAAA,EAAO,8CAAA;AAAA,IACP,OAAA,EAAS,oDAAA;AAAA,IACT,IAAA,EAAM;AAAA,GACR;AACA,EAAA,OAAO,qBAAqB,KAAK,CAAA;AACnC,CAAA;AAEA,IAAM,mBAAA,GAAsB,CAC1B,KAAA,EACA,OAAA,EACA,UAAA,KACG;AACH,EAAA,IAAI,CAAC,YAAY,OAAO,cAAA;AAExB,EAAA,IAAI,YAAY,MAAA,EAAQ;AACtB,IAAA,MAAM,oBAAA,GAAuB;AAAA,MAC3B,OAAA,EAAS,cAAA;AAAA,MACT,OAAA,EAAS,eAAA;AAAA,MACT,SAAA,EAAW,iBAAA;AAAA,MACX,MAAA,EAAQ,cAAA;AAAA,MACR,OAAA,EAAS,eAAA;AAAA,MACT,KAAA,EAAO,aAAA;AAAA,MACP,OAAA,EAAS,eAAA;AAAA,MACT,IAAA,EAAM;AAAA,KACR;AACA,IAAA,OAAO,qBAAqB,KAAK,CAAA;AAAA,EACnC;AACA,EAAA,MAAM,gBAAA,GAAmB;AAAA,IACvB,OAAA,EAAS,WAAA;AAAA,IACT,OAAA,EAAS,YAAA;AAAA,IACT,SAAA,EAAW,cAAA;AAAA,IACX,MAAA,EAAQ,WAAA;AAAA,IACR,OAAA,EAAS,YAAA;AAAA,IACT,KAAA,EAAO,UAAA;AAAA,IACP,OAAA,EAAS,YAAA;AAAA,IACT,IAAA,EAAM;AAAA,GACR;AACA,EAAA,OAAO,iBAAiB,KAAK,CAAA;AAC/B,CAAA;AAEA,IAAM,UAAU,KAAA,CAAM,IAAA;AAAA,EACpB,CAAC;AAAA,IACC,KAAA;AAAA,IACA,WAAA;AAAA,IACA,KAAA,GAAQ,SAAA;AAAA,IACR,IAAA,GAAO,IAAA;AAAA,IACP,OAAA,GAAU,SAAA;AAAA,IACV,WAAA,GAAc,YAAA;AAAA,IACd,IAAA,GAAO,UAAA;AAAA,IACP,MAAA;AAAA,IACA,WAAA;AAAA,IACA;AAAA,GACF,KAAM;AACJ,IAAA,MAAM,YAAA,GAAe,CACnB,KAAA,EACA,IAAA,KAC4C;AAC5C,MAAA,IAAI,IAAA,CAAK,MAAA,EAAQ,OAAO,IAAA,CAAK,MAAA;AAC7B,MAAA,IAAI,KAAA,KAAU,WAAA,IAAe,MAAA,KAAW,OAAA,EAAS,OAAO,OAAA;AACxD,MAAA,IAAI,KAAA,GAAQ,aAAa,OAAO,QAAA;AAChC,MAAA,IAAI,KAAA,KAAU,WAAA,EAAa,OAAO,MAAA,IAAU,SAAA;AAC5C,MAAA,OAAO,MAAA;AAAA,IACT,CAAA;AAEA,IAAA,MAAM,eAAA,GAAkB,CAAC,KAAA,EAAe,QAAA,KAAuB;AAC7D,MAAA,IAAI,QAAA,EAAU;AACd,MAAA,WAAA,GAAc,KAAK,CAAA;AAAA,IACrB,CAAA;AAEA,IAAA,IAAI,gBAAgB,UAAA,EAAY;AAC9B,MAAA,uBACE,GAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAW,EAAA,CAAG,eAAA,EAAiB,SAAS,CAAA,EAC1C,QAAA,EAAA,KAAA,CAAM,GAAA,CAAI,CAAC,IAAA,EAAM,KAAA,KAAU;AAC1B,QAAA,MAAM,KAAA,GAAQ,YAAA,CAAa,KAAA,EAAO,IAAI,CAAA;AACtC,QAAA,MAAM,WAAA,GAAc,CAAC,IAAA,CAAK,QAAA,IAAY,WAAA;AAEtC,QAAA,uBACE,IAAA;AAAA,UAAC,KAAA;AAAA,UAAA;AAAA,YAEC,SAAA,EAAU,MAAA;AAAA,YAEV,QAAA,EAAA;AAAA,8BAAA,IAAA,CAAC,KAAA,EAAA,EAAI,WAAU,iCAAA,EACb,QAAA,EAAA;AAAA,gCAAA,GAAA;AAAA,kBAAC,KAAA;AAAA,kBAAA;AAAA,oBACC,SAAA,EAAW,EAAA;AAAA,sBACT,kBAAA,CAAmB,EAAE,IAAA,EAAM,CAAA;AAAA,sBAC3B,oBAAA,CAAqB,KAAA,EAAO,OAAA,EAAS,KAAK,CAAA;AAAA,sBAC1C,WAAA,IAAe,gCAAA;AAAA,sBACf,KAAK,QAAA,IAAY;AAAA,qBACnB;AAAA,oBACA,OAAA,EAAS,MAAM,eAAA,CAAgB,KAAA,EAAO,KAAK,QAAQ,CAAA;AAAA,oBAElD,QAAA,EAAA,IAAA,CAAK,QAAQ,KAAA,GAAQ;AAAA;AAAA,iBACxB;AAAA,gBACC,KAAA,GAAQ,KAAA,CAAM,MAAA,GAAS,CAAA,oBACtB,GAAA;AAAA,kBAAC,KAAA;AAAA,kBAAA;AAAA,oBACC,SAAA,EAAW,EAAA;AAAA,sBACT,mBAAA;AAAA,sBACA,mBAAA,CAAoB,KAAA,EAAO,OAAA,EAAS,KAAA,KAAU,QAAQ;AAAA;AACxD;AAAA;AACF,eAAA,EAEJ,CAAA;AAAA,8BACA,IAAA;AAAA,gBAAC,KAAA;AAAA,gBAAA;AAAA,kBACC,WAAW,EAAA,CAAG,MAAA,EAAQ,UAAU,KAAA,CAAM,MAAA,GAAS,KAAK,MAAM,CAAA;AAAA,kBAE1D,QAAA,EAAA;AAAA,oCAAA,GAAA;AAAA,sBAAC,KAAA;AAAA,sBAAA;AAAA,wBACC,SAAA,EAAW,EAAA;AAAA,0BACT,iBAAA,CAAkB,EAAE,IAAA,EAAM,CAAA;AAAA,0BAC1B,KAAA,KAAU,SACN,qBAAA,GACA,mBAAA;AAAA,0BACJ,UAAU,OAAA,IAAW;AAAA,yBACvB;AAAA,wBAEC,QAAA,EAAA,IAAA,CAAK;AAAA;AAAA,qBACR;AAAA,oBACC,KAAK,WAAA,oBACJ,GAAA;AAAA,sBAAC,KAAA;AAAA,sBAAA;AAAA,wBACC,WAAW,EAAA,CAAG,uBAAA,CAAwB,EAAE,IAAA,EAAM,GAAG,MAAM,CAAA;AAAA,wBAEtD,QAAA,EAAA,IAAA,CAAK;AAAA;AAAA;AACR;AAAA;AAAA;AAEJ;AAAA,WAAA;AAAA,UA7CK;AAAA,SA8CP;AAAA,MAEJ,CAAC,CAAA,EACH,CAAA;AAAA,IAEJ;AAEA,IAAA,IAAI,SAAS,MAAA,EAAQ;AACnB,MAAA,uBACE,GAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAW,EAAA,CAAG,kBAAA,EAAoB,SAAS,CAAA,EAC7C,QAAA,EAAA,KAAA,CAAM,GAAA,CAAI,CAAC,IAAA,EAAM,KAAA,KAAU;AAC1B,QAAA,MAAM,KAAA,GAAQ,YAAA,CAAa,KAAA,EAAO,IAAI,CAAA;AACtC,QAAA,MAAM,WAAA,GAAc,CAAC,IAAA,CAAK,QAAA,IAAY,WAAA;AACtC,QAAA,MAAM,QAAA,GAAW,KAAA,CAAM,KAAA,GAAQ,CAAC,CAAA;AAChC,QAAA,MAAM,SAAA,GACJ,QAAQ,CAAA,IAAK,QAAA,GAAW,aAAa,KAAA,GAAQ,CAAA,EAAG,QAAQ,CAAA,GAAI,MAAA;AAE9D,QAAA,uBACE,GAAA,CAAC,KAAA,CAAM,QAAA,EAAN,EACC,QAAA,kBAAA,IAAA;AAAA,UAAC,KAAA;AAAA,UAAA;AAAA,YACC,SAAA,EAAW,EAAA;AAAA,cACT,mCAAA;AAAA,cACA,UAAU,CAAA,IAAK,aAAA;AAAA,cACf,KAAA,KAAU,KAAA,CAAM,MAAA,GAAS,CAAA,IAAK;AAAA,aAChC;AAAA,YAEA,QAAA,EAAA;AAAA,8BAAA,IAAA,CAAC,KAAA,EAAA,EAAI,WAAU,0BAAA,EACZ,QAAA,EAAA;AAAA,gBAAA,KAAA,GAAQ,CAAA,oBACP,GAAA;AAAA,kBAAC,KAAA;AAAA,kBAAA;AAAA,oBACC,SAAA,EAAW,EAAA;AAAA,sBACT,QAAA;AAAA,sBACA,iBAAA,CAAkB,EAAE,IAAA,EAAM,CAAA;AAAA,sBAC1B,mBAAA;AAAA,wBACE,KAAA;AAAA,wBACA,OAAA;AAAA,wBACA,SAAA,KAAc;AAAA;AAChB;AACF;AAAA,iBACF;AAAA,gCAEF,GAAA;AAAA,kBAAC,KAAA;AAAA,kBAAA;AAAA,oBACC,SAAA,EAAW,EAAA;AAAA,sBACT,eAAA,CAAgB,EAAE,IAAA,EAAM,CAAA;AAAA,sBACxB,oBAAA,CAAqB,KAAA,EAAO,OAAA,EAAS,KAAK,CAAA;AAAA,sBAC1C,WAAA,IAAe,gCAAA;AAAA,sBACf,KAAK,QAAA,IAAY,+BAAA;AAAA,sBACjB;AAAA,qBACF;AAAA,oBACA,OAAA,EAAS,MAAM,eAAA,CAAgB,KAAA,EAAO,KAAK,QAAQ;AAAA;AAAA,iBACrD;AAAA,gBACC,KAAA,GAAQ,KAAA,CAAM,MAAA,GAAS,CAAA,oBACtB,GAAA;AAAA,kBAAC,KAAA;AAAA,kBAAA;AAAA,oBACC,SAAA,EAAW,EAAA;AAAA,sBACT,QAAA;AAAA,sBACA,iBAAA,CAAkB,EAAE,IAAA,EAAM,CAAA;AAAA,sBAC1B,mBAAA;AAAA,wBACE,KAAA;AAAA,wBACA,OAAA;AAAA,wBACA,KAAA,KAAU;AAAA;AACZ;AACF;AAAA;AACF,eAAA,EAEJ,CAAA;AAAA,8BACA,IAAA;AAAA,gBAAC,KAAA;AAAA,gBAAA;AAAA,kBACC,SAAA,EAAW,EAAA;AAAA,oBACT,WAAA;AAAA,oBACA,UAAU,CAAA,IAAK,WAAA;AAAA,oBACf,KAAA,KAAU,KAAA,CAAM,MAAA,GAAS,CAAA,IAAK,YAAA;AAAA,oBAC9B,KAAA,GAAQ,CAAA,IAAK,KAAA,GAAQ,KAAA,CAAM,SAAS,CAAA,IAAK;AAAA,mBAC3C;AAAA,kBAEA,QAAA,EAAA;AAAA,oCAAA,GAAA;AAAA,sBAAC,KAAA;AAAA,sBAAA;AAAA,wBACC,SAAA,EAAW,EAAA;AAAA,0BACT,iBAAA,CAAkB,EAAE,IAAA,EAAM,CAAA;AAAA,0BAC1B,KAAA,KAAU,SACN,qBAAA,GACA,mBAAA;AAAA,0BACJ,UAAU,OAAA,IAAW;AAAA,yBACvB;AAAA,wBAEC,QAAA,EAAA,IAAA,CAAK;AAAA;AAAA,qBACR;AAAA,oBACC,KAAK,WAAA,oBACJ,GAAA;AAAA,sBAAC,KAAA;AAAA,sBAAA;AAAA,wBACC,SAAA,EAAW,EAAA;AAAA,0BACT,uBAAA,CAAwB,EAAE,IAAA,EAAM,CAAA;AAAA,0BAChC;AAAA,yBACF;AAAA,wBAEC,QAAA,EAAA,IAAA,CAAK;AAAA;AAAA;AACR;AAAA;AAAA;AAEJ;AAAA;AAAA,aA3EiB,KA6ErB,CAAA;AAAA,MAEJ,CAAC,CAAA,EACH,CAAA;AAAA,IAEJ;AAEA,IAAA,uBACE,GAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAW,EAAA,CAAG,kBAAA,EAAoB,SAAS,CAAA,EAC7C,QAAA,EAAA,KAAA,CAAM,GAAA,CAAI,CAAC,IAAA,EAAM,KAAA,KAAU;AAC1B,MAAA,MAAM,KAAA,GAAQ,YAAA,CAAa,KAAA,EAAO,IAAI,CAAA;AACtC,MAAA,MAAM,WAAA,GAAc,CAAC,IAAA,CAAK,QAAA,IAAY,WAAA;AACtC,MAAA,MAAM,QAAA,GAAW,KAAA,CAAM,KAAA,GAAQ,CAAC,CAAA;AAChC,MAAA,MAAM,SAAA,GACJ,QAAQ,CAAA,IAAK,QAAA,GAAW,aAAa,KAAA,GAAQ,CAAA,EAAG,QAAQ,CAAA,GAAI,MAAA;AAE9D,MAAA,uBACE,GAAA,CAAC,KAAA,CAAM,QAAA,EAAN,EACC,QAAA,kBAAA,IAAA;AAAA,QAAC,KAAA;AAAA,QAAA;AAAA,UACC,SAAA,EAAW,EAAA;AAAA,YACT,mCAAA;AAAA,YACA,UAAU,CAAA,IAAK,aAAA;AAAA,YACf,KAAA,KAAU,KAAA,CAAM,MAAA,GAAS,CAAA,IAAK;AAAA,WAChC;AAAA,UAEA,QAAA,EAAA;AAAA,4BAAA,IAAA,CAAC,KAAA,EAAA,EAAI,WAAU,0BAAA,EACZ,QAAA,EAAA;AAAA,cAAA,KAAA,GAAQ,CAAA,oBACP,GAAA;AAAA,gBAAC,KAAA;AAAA,gBAAA;AAAA,kBACC,SAAA,EAAW,EAAA;AAAA,oBACT,QAAA;AAAA,oBACA,iBAAA,CAAkB,EAAE,IAAA,EAAM,CAAA;AAAA,oBAC1B,mBAAA;AAAA,sBACE,KAAA;AAAA,sBACA,OAAA;AAAA,sBACA,SAAA,KAAc;AAAA;AAChB;AACF;AAAA,eACF;AAAA,8BAEF,GAAA;AAAA,gBAAC,KAAA;AAAA,gBAAA;AAAA,kBACC,SAAA,EAAW,EAAA;AAAA,oBACT,kBAAA,CAAmB,EAAE,IAAA,EAAM,CAAA;AAAA,oBAC3B,oBAAA,CAAqB,KAAA,EAAO,OAAA,EAAS,KAAK,CAAA;AAAA,oBAC1C,WAAA,IAAe,gCAAA;AAAA,oBACf,KAAK,QAAA,IAAY,+BAAA;AAAA,oBACjB;AAAA,mBACF;AAAA,kBACA,OAAA,EAAS,MAAM,eAAA,CAAgB,KAAA,EAAO,KAAK,QAAQ,CAAA;AAAA,kBAElD,QAAA,EAAA,IAAA,CAAK,QAAQ,KAAA,GAAQ;AAAA;AAAA,eACxB;AAAA,cACC,KAAA,GAAQ,KAAA,CAAM,MAAA,GAAS,CAAA,oBACtB,GAAA;AAAA,gBAAC,KAAA;AAAA,gBAAA;AAAA,kBACC,SAAA,EAAW,EAAA;AAAA,oBACT,QAAA;AAAA,oBACA,iBAAA,CAAkB,EAAE,IAAA,EAAM,CAAA;AAAA,oBAC1B,mBAAA,CAAoB,KAAA,EAAO,OAAA,EAAS,KAAA,KAAU,QAAQ;AAAA;AACxD;AAAA;AACF,aAAA,EAEJ,CAAA;AAAA,4BACA,IAAA;AAAA,cAAC,KAAA;AAAA,cAAA;AAAA,gBACC,SAAA,EAAW,EAAA;AAAA,kBACT,WAAA;AAAA,kBACA,UAAU,CAAA,IAAK,WAAA;AAAA,kBACf,KAAA,KAAU,KAAA,CAAM,MAAA,GAAS,CAAA,IAAK,YAAA;AAAA,kBAC9B,KAAA,GAAQ,CAAA,IAAK,KAAA,GAAQ,KAAA,CAAM,SAAS,CAAA,IAAK;AAAA,iBAC3C;AAAA,gBAEA,QAAA,EAAA;AAAA,kCAAA,GAAA;AAAA,oBAAC,KAAA;AAAA,oBAAA;AAAA,sBACC,SAAA,EAAW,EAAA;AAAA,wBACT,iBAAA,CAAkB,EAAE,IAAA,EAAM,CAAA;AAAA,wBAC1B,KAAA,KAAU,SACN,qBAAA,GACA,mBAAA;AAAA,wBACJ,UAAU,OAAA,IAAW;AAAA,uBACvB;AAAA,sBAEC,QAAA,EAAA,IAAA,CAAK;AAAA;AAAA,mBACR;AAAA,kBACC,KAAK,WAAA,oBACJ,GAAA;AAAA,oBAAC,KAAA;AAAA,oBAAA;AAAA,sBACC,WAAW,EAAA,CAAG,uBAAA,CAAwB,EAAE,IAAA,EAAM,GAAG,MAAM,CAAA;AAAA,sBAEtD,QAAA,EAAA,IAAA,CAAK;AAAA;AAAA;AACR;AAAA;AAAA;AAEJ;AAAA;AAAA,WAtEiB,KAwErB,CAAA;AAAA,IAEJ,CAAC,CAAA,EACH,CAAA;AAAA,EAEJ;AACF,CAAA;AAEA,OAAA,CAAQ,WAAA,GAAc,SAAA;AAGtB,IAAO,eAAA,GAAQ","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"]}