@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,452 @@
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 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-muted", 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, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 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, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 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, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 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, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 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-RQBXZKTH.js.map
452
+ //# sourceMappingURL=chunk-RQBXZKTH.js.map
@@ -0,0 +1 @@
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,qBAAA,EAAuB,QAAA,EAAA,KAAA,EAAM,CAAA,mBAE5C,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,qLAAA;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,qLAAA;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,qLAAA;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,qLAAA;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-RQBXZKTH.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-muted\">{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, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 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, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 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, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 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, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 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"]}
@@ -0,0 +1,178 @@
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 tableVariants = cva("w-full border-separate border-spacing-0", {
7
+ variants: {
8
+ bordered: {
9
+ true: "border border-border",
10
+ false: ""
11
+ },
12
+ rounded: {
13
+ true: "rounded-lg",
14
+ false: ""
15
+ }
16
+ },
17
+ compoundVariants: [
18
+ { bordered: true, rounded: true, class: "overflow-hidden" }
19
+ ],
20
+ defaultVariants: {
21
+ bordered: true,
22
+ rounded: true
23
+ }
24
+ });
25
+ var labelCellVariants = cva(
26
+ "font-semibold text-text-primary border-b border-r border-border",
27
+ {
28
+ variants: {
29
+ size: {
30
+ xs: "py-1 px-2 text-[10px]",
31
+ sm: "py-2 px-3 text-xs",
32
+ md: "py-3 px-4 text-sm",
33
+ lg: "py-4 px-5 text-base"
34
+ },
35
+ color: {
36
+ default: "bg-surface",
37
+ primary: "bg-primary/10",
38
+ secondary: "bg-secondary/10",
39
+ accent: "bg-accent/10",
40
+ success: "bg-success/10",
41
+ error: "bg-error/10",
42
+ warning: "bg-warning/10",
43
+ info: "bg-info/10"
44
+ }
45
+ },
46
+ defaultVariants: {
47
+ size: "md",
48
+ color: "default"
49
+ }
50
+ }
51
+ );
52
+ var valueCellVariants = cva(
53
+ "text-text-primary border-b border-r border-border bg-background",
54
+ {
55
+ variants: {
56
+ size: {
57
+ xs: "py-1 px-2 text-[10px]",
58
+ sm: "py-2 px-3 text-xs",
59
+ md: "py-3 px-4 text-sm",
60
+ lg: "py-4 px-5 text-base"
61
+ }
62
+ },
63
+ defaultVariants: {
64
+ size: "md"
65
+ }
66
+ }
67
+ );
68
+ var Descriptions = React.memo(
69
+ ({
70
+ items,
71
+ column = 3,
72
+ color = "default",
73
+ size = "md",
74
+ layout = "horizontal",
75
+ bordered = true,
76
+ rounded = true,
77
+ className
78
+ }) => {
79
+ const rows = [];
80
+ let currentRow = [];
81
+ let currentSpan = 0;
82
+ items.forEach((item) => {
83
+ const itemSpan = item.span || 1;
84
+ if (currentSpan + itemSpan > column) {
85
+ rows.push(currentRow);
86
+ currentRow = [item];
87
+ currentSpan = itemSpan;
88
+ } else {
89
+ currentRow.push(item);
90
+ currentSpan += itemSpan;
91
+ }
92
+ });
93
+ if (currentRow.length > 0) {
94
+ rows.push(currentRow);
95
+ }
96
+ if (layout === "vertical") {
97
+ return /* @__PURE__ */ jsx("table", { className: cn(tableVariants({ bordered, rounded }), className), children: /* @__PURE__ */ jsx("tbody", { children: rows.map((row, rowIndex) => {
98
+ const isLastRow = rowIndex === rows.length - 1;
99
+ let colPosition = 0;
100
+ const itemsAtRightEdge = row.map((item) => {
101
+ const span = item.span || 1;
102
+ colPosition += span;
103
+ return colPosition >= column;
104
+ });
105
+ return /* @__PURE__ */ jsxs(React.Fragment, { children: [
106
+ /* @__PURE__ */ jsx("tr", { children: row.map((item, itemIndex) => /* @__PURE__ */ jsx(
107
+ "th",
108
+ {
109
+ colSpan: item.span || 1,
110
+ className: cn(
111
+ labelCellVariants({ size, color }),
112
+ itemsAtRightEdge[itemIndex] && "border-r-0"
113
+ ),
114
+ children: item.label
115
+ },
116
+ `${item.key}-label`
117
+ )) }),
118
+ /* @__PURE__ */ jsx("tr", { children: row.map((item, itemIndex) => /* @__PURE__ */ jsx(
119
+ "td",
120
+ {
121
+ colSpan: item.span || 1,
122
+ className: cn(
123
+ valueCellVariants({ size }),
124
+ itemsAtRightEdge[itemIndex] && "border-r-0",
125
+ isLastRow && "border-b-0"
126
+ ),
127
+ children: item.children
128
+ },
129
+ `${item.key}-value`
130
+ )) })
131
+ ] }, rowIndex);
132
+ }) }) });
133
+ }
134
+ return /* @__PURE__ */ jsx("table", { className: cn(tableVariants({ bordered, rounded }), className), children: /* @__PURE__ */ jsx("tbody", { children: rows.map((row, rowIndex) => {
135
+ const isLastRow = rowIndex === rows.length - 1;
136
+ let colPosition = 0;
137
+ const valueAtRightEdge = row.map((item) => {
138
+ const span = item.span || 1;
139
+ colPosition += span * 2;
140
+ return colPosition >= column * 2;
141
+ });
142
+ return /* @__PURE__ */ jsx("tr", { children: row.map((item, itemIndex) => {
143
+ const itemSpan = item.span || 1;
144
+ const valueColSpan = itemSpan * 2 - 1;
145
+ return /* @__PURE__ */ jsxs(React.Fragment, { children: [
146
+ /* @__PURE__ */ jsx(
147
+ "th",
148
+ {
149
+ className: cn(
150
+ labelCellVariants({ size, color }),
151
+ isLastRow && "border-b-0"
152
+ ),
153
+ children: item.label
154
+ }
155
+ ),
156
+ /* @__PURE__ */ jsx(
157
+ "td",
158
+ {
159
+ colSpan: valueColSpan,
160
+ className: cn(
161
+ valueCellVariants({ size }),
162
+ valueAtRightEdge[itemIndex] && "border-r-0",
163
+ isLastRow && "border-b-0"
164
+ ),
165
+ children: item.children
166
+ }
167
+ )
168
+ ] }, item.key);
169
+ }) }, rowIndex);
170
+ }) }) });
171
+ }
172
+ );
173
+ Descriptions.displayName = "Descriptions";
174
+ var descriptions_default = Descriptions;
175
+
176
+ export { descriptions_default };
177
+ //# sourceMappingURL=chunk-S5XJXU52.js.map
178
+ //# sourceMappingURL=chunk-S5XJXU52.js.map