@spark-ui/components 10.0.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 (296) hide show
  1. package/CHANGELOG.md +15 -0
  2. package/LICENSE.md +21 -0
  3. package/README.md +19 -0
  4. package/dist/DialogTrigger-5SI4dvpK.d.mts +142 -0
  5. package/dist/DialogTrigger-5SI4dvpK.d.ts +142 -0
  6. package/dist/Input-g0LpWuv0.d.mts +17 -0
  7. package/dist/Input-g0LpWuv0.d.ts +17 -0
  8. package/dist/InputGroup-aoaZxCLk.d.mts +28 -0
  9. package/dist/InputGroup-aoaZxCLk.d.ts +28 -0
  10. package/dist/InputTrailingIcon-BBp7sE6D.d.mts +20 -0
  11. package/dist/InputTrailingIcon-ZZx8PoJy.d.ts +20 -0
  12. package/dist/LabelRequiredIndicator-DRnCzHMU.d.mts +19 -0
  13. package/dist/LabelRequiredIndicator-DRnCzHMU.d.ts +19 -0
  14. package/dist/accordion/index.d.mts +85 -0
  15. package/dist/accordion/index.d.ts +85 -0
  16. package/dist/accordion/index.js +461 -0
  17. package/dist/accordion/index.js.map +1 -0
  18. package/dist/accordion/index.mjs +249 -0
  19. package/dist/accordion/index.mjs.map +1 -0
  20. package/dist/alert-dialog/index.d.mts +119 -0
  21. package/dist/alert-dialog/index.d.ts +119 -0
  22. package/dist/alert-dialog/index.js +1451 -0
  23. package/dist/alert-dialog/index.js.map +1 -0
  24. package/dist/alert-dialog/index.mjs +177 -0
  25. package/dist/alert-dialog/index.mjs.map +1 -0
  26. package/dist/badge/index.d.mts +47 -0
  27. package/dist/badge/index.d.ts +47 -0
  28. package/dist/badge/index.js +122 -0
  29. package/dist/badge/index.js.map +1 -0
  30. package/dist/badge/index.mjs +95 -0
  31. package/dist/badge/index.mjs.map +1 -0
  32. package/dist/breadcrumb/index.d.mts +64 -0
  33. package/dist/breadcrumb/index.d.ts +64 -0
  34. package/dist/breadcrumb/index.js +326 -0
  35. package/dist/breadcrumb/index.js.map +1 -0
  36. package/dist/breadcrumb/index.mjs +149 -0
  37. package/dist/breadcrumb/index.mjs.map +1 -0
  38. package/dist/button/index.d.mts +40 -0
  39. package/dist/button/index.d.ts +40 -0
  40. package/dist/button/index.js +877 -0
  41. package/dist/button/index.js.map +1 -0
  42. package/dist/button/index.mjs +10 -0
  43. package/dist/button/index.mjs.map +1 -0
  44. package/dist/carousel/index.d.mts +253 -0
  45. package/dist/carousel/index.d.ts +253 -0
  46. package/dist/carousel/index.js +1678 -0
  47. package/dist/carousel/index.js.map +1 -0
  48. package/dist/carousel/index.mjs +716 -0
  49. package/dist/carousel/index.mjs.map +1 -0
  50. package/dist/checkbox/index.d.mts +120 -0
  51. package/dist/checkbox/index.d.ts +120 -0
  52. package/dist/checkbox/index.js +873 -0
  53. package/dist/checkbox/index.js.map +1 -0
  54. package/dist/checkbox/index.mjs +349 -0
  55. package/dist/checkbox/index.mjs.map +1 -0
  56. package/dist/chip/index.d.mts +97 -0
  57. package/dist/chip/index.d.ts +97 -0
  58. package/dist/chip/index.js +905 -0
  59. package/dist/chip/index.js.map +1 -0
  60. package/dist/chip/index.mjs +793 -0
  61. package/dist/chip/index.mjs.map +1 -0
  62. package/dist/chunk-2KPFQEAA.mjs +52 -0
  63. package/dist/chunk-2KPFQEAA.mjs.map +1 -0
  64. package/dist/chunk-4F5DOL57.mjs +26 -0
  65. package/dist/chunk-4F5DOL57.mjs.map +1 -0
  66. package/dist/chunk-6JOA37TZ.mjs +742 -0
  67. package/dist/chunk-6JOA37TZ.mjs.map +1 -0
  68. package/dist/chunk-7PMPYEHJ.mjs +379 -0
  69. package/dist/chunk-7PMPYEHJ.mjs.map +1 -0
  70. package/dist/chunk-AESXFMCC.mjs +68 -0
  71. package/dist/chunk-AESXFMCC.mjs.map +1 -0
  72. package/dist/chunk-B42LOFIZ.mjs +308 -0
  73. package/dist/chunk-B42LOFIZ.mjs.map +1 -0
  74. package/dist/chunk-FGOZHKBT.mjs +97 -0
  75. package/dist/chunk-FGOZHKBT.mjs.map +1 -0
  76. package/dist/chunk-HLXYG643.mjs +52 -0
  77. package/dist/chunk-HLXYG643.mjs.map +1 -0
  78. package/dist/chunk-JKNBJHD5.mjs +601 -0
  79. package/dist/chunk-JKNBJHD5.mjs.map +1 -0
  80. package/dist/chunk-K7VP7DH3.mjs +66 -0
  81. package/dist/chunk-K7VP7DH3.mjs.map +1 -0
  82. package/dist/chunk-MUNDKRAE.mjs +80 -0
  83. package/dist/chunk-MUNDKRAE.mjs.map +1 -0
  84. package/dist/chunk-NBZKMCHF.mjs +36 -0
  85. package/dist/chunk-NBZKMCHF.mjs.map +1 -0
  86. package/dist/chunk-PZWESKAR.mjs +314 -0
  87. package/dist/chunk-PZWESKAR.mjs.map +1 -0
  88. package/dist/collapsible/index.d.mts +60 -0
  89. package/dist/collapsible/index.d.ts +60 -0
  90. package/dist/collapsible/index.js +140 -0
  91. package/dist/collapsible/index.js.map +1 -0
  92. package/dist/collapsible/index.mjs +8 -0
  93. package/dist/collapsible/index.mjs.map +1 -0
  94. package/dist/combobox/index.d.mts +285 -0
  95. package/dist/combobox/index.d.ts +285 -0
  96. package/dist/combobox/index.js +2920 -0
  97. package/dist/combobox/index.js.map +1 -0
  98. package/dist/combobox/index.mjs +1267 -0
  99. package/dist/combobox/index.mjs.map +1 -0
  100. package/dist/dialog/index.d.mts +33 -0
  101. package/dist/dialog/index.d.ts +33 -0
  102. package/dist/dialog/index.js +1286 -0
  103. package/dist/dialog/index.js.map +1 -0
  104. package/dist/dialog/index.mjs +13 -0
  105. package/dist/dialog/index.mjs.map +1 -0
  106. package/dist/divider/index.d.mts +61 -0
  107. package/dist/divider/index.d.ts +61 -0
  108. package/dist/divider/index.js +223 -0
  109. package/dist/divider/index.js.map +1 -0
  110. package/dist/divider/index.mjs +196 -0
  111. package/dist/divider/index.mjs.map +1 -0
  112. package/dist/drawer/index.d.mts +148 -0
  113. package/dist/drawer/index.d.ts +148 -0
  114. package/dist/drawer/index.js +1266 -0
  115. package/dist/drawer/index.js.map +1 -0
  116. package/dist/drawer/index.mjs +299 -0
  117. package/dist/drawer/index.mjs.map +1 -0
  118. package/dist/dropdown/index.d.mts +233 -0
  119. package/dist/dropdown/index.d.ts +233 -0
  120. package/dist/dropdown/index.js +2402 -0
  121. package/dist/dropdown/index.js.map +1 -0
  122. package/dist/dropdown/index.mjs +741 -0
  123. package/dist/dropdown/index.mjs.map +1 -0
  124. package/dist/form-field/index.d.mts +176 -0
  125. package/dist/form-field/index.d.ts +176 -0
  126. package/dist/form-field/index.js +540 -0
  127. package/dist/form-field/index.js.map +1 -0
  128. package/dist/form-field/index.mjs +13 -0
  129. package/dist/form-field/index.mjs.map +1 -0
  130. package/dist/icon/index.d.mts +28 -0
  131. package/dist/icon/index.d.ts +28 -0
  132. package/dist/icon/index.js +127 -0
  133. package/dist/icon/index.js.map +1 -0
  134. package/dist/icon/index.mjs +9 -0
  135. package/dist/icon/index.mjs.map +1 -0
  136. package/dist/icon-button/index.d.mts +16 -0
  137. package/dist/icon-button/index.d.ts +16 -0
  138. package/dist/icon-button/index.js +921 -0
  139. package/dist/icon-button/index.js.map +1 -0
  140. package/dist/icon-button/index.mjs +11 -0
  141. package/dist/icon-button/index.mjs.map +1 -0
  142. package/dist/input/index.d.mts +78 -0
  143. package/dist/input/index.d.ts +78 -0
  144. package/dist/input/index.js +1119 -0
  145. package/dist/input/index.js.map +1 -0
  146. package/dist/input/index.mjs +16 -0
  147. package/dist/input/index.mjs.map +1 -0
  148. package/dist/kbd/index.d.mts +9 -0
  149. package/dist/kbd/index.d.ts +9 -0
  150. package/dist/kbd/index.js +46 -0
  151. package/dist/kbd/index.js.map +1 -0
  152. package/dist/kbd/index.mjs +19 -0
  153. package/dist/kbd/index.mjs.map +1 -0
  154. package/dist/label/index.d.mts +11 -0
  155. package/dist/label/index.d.ts +11 -0
  156. package/dist/label/index.js +78 -0
  157. package/dist/label/index.js.map +1 -0
  158. package/dist/label/index.mjs +7 -0
  159. package/dist/label/index.mjs.map +1 -0
  160. package/dist/link-box/index.d.mts +34 -0
  161. package/dist/link-box/index.d.ts +34 -0
  162. package/dist/link-box/index.js +92 -0
  163. package/dist/link-box/index.js.map +1 -0
  164. package/dist/link-box/index.mjs +58 -0
  165. package/dist/link-box/index.mjs.map +1 -0
  166. package/dist/pagination/index.d.mts +143 -0
  167. package/dist/pagination/index.d.ts +143 -0
  168. package/dist/pagination/index.js +1303 -0
  169. package/dist/pagination/index.js.map +1 -0
  170. package/dist/pagination/index.mjs +326 -0
  171. package/dist/pagination/index.mjs.map +1 -0
  172. package/dist/popover/index.d.mts +93 -0
  173. package/dist/popover/index.d.ts +93 -0
  174. package/dist/popover/index.js +1280 -0
  175. package/dist/popover/index.js.map +1 -0
  176. package/dist/popover/index.mjs +13 -0
  177. package/dist/popover/index.mjs.map +1 -0
  178. package/dist/portal/index.d.mts +13 -0
  179. package/dist/portal/index.d.ts +13 -0
  180. package/dist/portal/index.js +37 -0
  181. package/dist/portal/index.js.map +1 -0
  182. package/dist/portal/index.mjs +10 -0
  183. package/dist/portal/index.mjs.map +1 -0
  184. package/dist/progress/index.d.mts +48 -0
  185. package/dist/progress/index.d.ts +48 -0
  186. package/dist/progress/index.js +201 -0
  187. package/dist/progress/index.js.map +1 -0
  188. package/dist/progress/index.mjs +174 -0
  189. package/dist/progress/index.mjs.map +1 -0
  190. package/dist/progress-tracker/index.d.mts +81 -0
  191. package/dist/progress-tracker/index.d.ts +81 -0
  192. package/dist/progress-tracker/index.js +834 -0
  193. package/dist/progress-tracker/index.js.map +1 -0
  194. package/dist/progress-tracker/index.mjs +716 -0
  195. package/dist/progress-tracker/index.mjs.map +1 -0
  196. package/dist/radio-group/index.d.mts +100 -0
  197. package/dist/radio-group/index.d.ts +100 -0
  198. package/dist/radio-group/index.js +824 -0
  199. package/dist/radio-group/index.js.map +1 -0
  200. package/dist/radio-group/index.mjs +297 -0
  201. package/dist/radio-group/index.mjs.map +1 -0
  202. package/dist/rating/index.d.mts +78 -0
  203. package/dist/rating/index.d.ts +78 -0
  204. package/dist/rating/index.js +362 -0
  205. package/dist/rating/index.js.map +1 -0
  206. package/dist/rating/index.mjs +247 -0
  207. package/dist/rating/index.mjs.map +1 -0
  208. package/dist/scrolling-list/index.d.mts +105 -0
  209. package/dist/scrolling-list/index.d.ts +105 -0
  210. package/dist/scrolling-list/index.js +1367 -0
  211. package/dist/scrolling-list/index.js.map +1 -0
  212. package/dist/scrolling-list/index.mjs +407 -0
  213. package/dist/scrolling-list/index.mjs.map +1 -0
  214. package/dist/select/index.d.mts +167 -0
  215. package/dist/select/index.d.ts +167 -0
  216. package/dist/select/index.js +991 -0
  217. package/dist/select/index.js.map +1 -0
  218. package/dist/select/index.mjs +470 -0
  219. package/dist/select/index.mjs.map +1 -0
  220. package/dist/skeleton/index.d.mts +67 -0
  221. package/dist/skeleton/index.d.ts +67 -0
  222. package/dist/skeleton/index.js +206 -0
  223. package/dist/skeleton/index.js.map +1 -0
  224. package/dist/skeleton/index.mjs +147 -0
  225. package/dist/skeleton/index.mjs.map +1 -0
  226. package/dist/slider/index.d.mts +97 -0
  227. package/dist/slider/index.d.ts +97 -0
  228. package/dist/slider/index.js +209 -0
  229. package/dist/slider/index.js.map +1 -0
  230. package/dist/slider/index.mjs +182 -0
  231. package/dist/slider/index.mjs.map +1 -0
  232. package/dist/slot/index.d.mts +17 -0
  233. package/dist/slot/index.d.ts +17 -0
  234. package/dist/slot/index.js +51 -0
  235. package/dist/slot/index.js.map +1 -0
  236. package/dist/slot/index.mjs +11 -0
  237. package/dist/slot/index.mjs.map +1 -0
  238. package/dist/snackbar/index.d.mts +158 -0
  239. package/dist/snackbar/index.d.ts +158 -0
  240. package/dist/snackbar/index.js +1693 -0
  241. package/dist/snackbar/index.js.map +1 -0
  242. package/dist/snackbar/index.mjs +733 -0
  243. package/dist/snackbar/index.mjs.map +1 -0
  244. package/dist/spinner/index.d.mts +21 -0
  245. package/dist/spinner/index.d.ts +21 -0
  246. package/dist/spinner/index.js +139 -0
  247. package/dist/spinner/index.js.map +1 -0
  248. package/dist/spinner/index.mjs +9 -0
  249. package/dist/spinner/index.mjs.map +1 -0
  250. package/dist/stepper/index.d.mts +82 -0
  251. package/dist/stepper/index.d.ts +82 -0
  252. package/dist/stepper/index.js +2178 -0
  253. package/dist/stepper/index.js.map +1 -0
  254. package/dist/stepper/index.mjs +229 -0
  255. package/dist/stepper/index.mjs.map +1 -0
  256. package/dist/switch/index.d.mts +64 -0
  257. package/dist/switch/index.d.ts +64 -0
  258. package/dist/switch/index.js +768 -0
  259. package/dist/switch/index.js.map +1 -0
  260. package/dist/switch/index.mjs +245 -0
  261. package/dist/switch/index.mjs.map +1 -0
  262. package/dist/tabs/index.d.mts +103 -0
  263. package/dist/tabs/index.d.ts +103 -0
  264. package/dist/tabs/index.js +1315 -0
  265. package/dist/tabs/index.js.map +1 -0
  266. package/dist/tabs/index.mjs +391 -0
  267. package/dist/tabs/index.mjs.map +1 -0
  268. package/dist/tag/index.d.mts +27 -0
  269. package/dist/tag/index.d.ts +27 -0
  270. package/dist/tag/index.js +269 -0
  271. package/dist/tag/index.js.map +1 -0
  272. package/dist/tag/index.mjs +237 -0
  273. package/dist/tag/index.mjs.map +1 -0
  274. package/dist/text-link/index.d.mts +20 -0
  275. package/dist/text-link/index.d.ts +20 -0
  276. package/dist/text-link/index.js +99 -0
  277. package/dist/text-link/index.js.map +1 -0
  278. package/dist/text-link/index.mjs +8 -0
  279. package/dist/text-link/index.mjs.map +1 -0
  280. package/dist/textarea/index.d.mts +47 -0
  281. package/dist/textarea/index.d.ts +47 -0
  282. package/dist/textarea/index.js +1180 -0
  283. package/dist/textarea/index.js.map +1 -0
  284. package/dist/textarea/index.mjs +77 -0
  285. package/dist/textarea/index.mjs.map +1 -0
  286. package/dist/visually-hidden/index.d.mts +16 -0
  287. package/dist/visually-hidden/index.d.ts +16 -0
  288. package/dist/visually-hidden/index.js +67 -0
  289. package/dist/visually-hidden/index.js.map +1 -0
  290. package/dist/visually-hidden/index.mjs +8 -0
  291. package/dist/visually-hidden/index.mjs.map +1 -0
  292. package/global.d.ts +12 -0
  293. package/package.json +75 -0
  294. package/tsconfig.build.json +9 -0
  295. package/tsconfig.json +9 -0
  296. package/tsup.config.ts +11 -0
@@ -0,0 +1,716 @@
1
+ import {
2
+ Icon
3
+ } from "../chunk-AESXFMCC.mjs";
4
+ import "../chunk-NBZKMCHF.mjs";
5
+ import "../chunk-4F5DOL57.mjs";
6
+
7
+ // src/progress-tracker/ProgressTracker.tsx
8
+ import { cx as cx2 } from "class-variance-authority";
9
+ import { useState } from "react";
10
+
11
+ // src/progress-tracker/ProgressTracker.styles.ts
12
+ import { cx } from "class-variance-authority";
13
+ var progressList = cx([
14
+ "flex flex-nowrap items-start group/list",
15
+ "data-[orientation=horizontal]:flex-row data-[orientation=horizontal]:w-full",
16
+ "data-[orientation=vertical]:flex-col"
17
+ ]);
18
+
19
+ // src/progress-tracker/ProgressTrackerContext.ts
20
+ import { createContext, useContext } from "react";
21
+ var ProgressTrackerContext = createContext(
22
+ {}
23
+ );
24
+ var ProgressTrackerStepContext = createContext(
25
+ {}
26
+ );
27
+ var useProgressTrackerContext = () => useContext(ProgressTrackerContext);
28
+ var useProgressTrackerStepContext = () => useContext(ProgressTrackerStepContext);
29
+ var ID_PREFIX = ":progress-tracker";
30
+
31
+ // src/progress-tracker/ProgressTracker.tsx
32
+ import { jsx } from "react/jsx-runtime";
33
+ var ProgressTracker = ({
34
+ stepIndex = 0,
35
+ onStepClick,
36
+ readOnly = false,
37
+ intent = "basic",
38
+ size = "lg",
39
+ design = "outline",
40
+ orientation = "horizontal",
41
+ children,
42
+ className,
43
+ ref,
44
+ ...rest
45
+ }) => {
46
+ const [steps, setSteps] = useState(/* @__PURE__ */ new Map());
47
+ const Component = readOnly ? "div" : "nav";
48
+ return /* @__PURE__ */ jsx(
49
+ ProgressTrackerContext.Provider,
50
+ {
51
+ value: { stepIndex, onStepClick, steps, setSteps, size, intent, design, readOnly },
52
+ children: /* @__PURE__ */ jsx(
53
+ Component,
54
+ {
55
+ ref,
56
+ "data-spark-component": "progress-tracker",
57
+ className: cx2("inline-flex", className),
58
+ ...rest,
59
+ children: /* @__PURE__ */ jsx(
60
+ "ol",
61
+ {
62
+ "data-orientation": orientation,
63
+ className: progressList,
64
+ style: { counterReset: "step" },
65
+ children
66
+ }
67
+ )
68
+ }
69
+ )
70
+ }
71
+ );
72
+ };
73
+ ProgressTracker.displayName = "ProgressTracker";
74
+
75
+ // src/progress-tracker/ProgressTrackerStep.tsx
76
+ import { useEffect, useId } from "react";
77
+
78
+ // src/progress-tracker/ProgressTrackerStep.styles.ts
79
+ import { cva } from "class-variance-authority";
80
+ var stepItemVariant = cva(
81
+ [
82
+ "relative inline-flex items-start flex-auto first:grow-0 justify-center group/item",
83
+ // Progress Track
84
+ "after:absolute after:z-base",
85
+ "last:after:content-none",
86
+ // Horizontal orientation
87
+ "group-data-[orientation=horizontal]/list:px-[1px]",
88
+ "group-data-[orientation=horizontal]/list:before:absolute group-data-[orientation=horizontal]/list:before:z-base",
89
+ "group-data-[orientation=horizontal]/list:before:left-0 group-data-[orientation=horizontal]/list:after:right-0",
90
+ "group-data-[orientation=horizontal]/list:before:h-[1px] group-data-[orientation=horizontal]/list:after:h-[1px]",
91
+ "first:group-data-[orientation=horizontal]/list:before:content-none",
92
+ // Vertical orientation
93
+ "group-data-[orientation=vertical]/list:py-[1px]",
94
+ "group-data-[orientation=vertical]/list:items-start",
95
+ "group-data-[orientation=vertical]/list:after:w-[1px] group-data-[orientation=vertical]/list:after:bottom-[-1px]"
96
+ ],
97
+ {
98
+ variants: {
99
+ size: {
100
+ sm: [
101
+ // Horizontal orientation
102
+ "group-data-[orientation=horizontal]/list:before:top-[8px] group-data-[orientation=horizontal]/list:after:top-[8px]",
103
+ "group-data-[orientation=horizontal]/list:before:right-[calc(50%+12px)] group-data-[orientation=horizontal]/list:after:left-[calc(50%+12px)]",
104
+ "first:group-data-[orientation=horizontal]/list:after:left-[calc(50%+10px)]",
105
+ "last:group-data-[orientation=horizontal]/list:before:right-[calc(50%+10px)]",
106
+ // Vertical orientation
107
+ "group-data-[orientation=vertical]/list:after:left-[8px]",
108
+ "group-data-[orientation=vertical]/list:after:top-[25px]",
109
+ "first:group-data-[orientation=vertical]/list:after:top-[21px]"
110
+ ],
111
+ md: [
112
+ // Horizontal orientation
113
+ "group-data-[orientation=horizontal]/list:before:top-[12px] group-data-[orientation=horizontal]/list:after:top-[12px]",
114
+ "group-data-[orientation=horizontal]/list:before:right-[calc(50%+16px)] group-data-[orientation=horizontal]/list:after:left-[calc(50%+16px)]",
115
+ "first:group-data-[orientation=horizontal]/list:after:left-[calc(50%+14px)]",
116
+ "last:group-data-[orientation=horizontal]/list:before:right-[calc(50%+14px)]",
117
+ // Vertical orientation
118
+ "group-data-[orientation=vertical]/list:after:left-[12px]",
119
+ "group-data-[orientation=vertical]/list:after:top-[33px]",
120
+ "first:group-data-[orientation=vertical]/list:after:top-[29px]"
121
+ ],
122
+ lg: [
123
+ // Horizontal orientation
124
+ "group-data-[orientation=horizontal]/list:before:top-[16px] group-data-[orientation=horizontal]/list:after:top-[16px]",
125
+ "group-data-[orientation=horizontal]/list:before:right-[calc(50%+20px)] group-data-[orientation=horizontal]/list:after:left-[calc(50%+20px)]",
126
+ "first:group-data-[orientation=horizontal]/list:after:left-[calc(50%+18px)]",
127
+ "last:group-data-[orientation=horizontal]/list:before:right-[calc(50%+18px)]",
128
+ // Vertical orientation
129
+ "group-data-[orientation=vertical]/list:after:left-[16px]",
130
+ "group-data-[orientation=vertical]/list:after:top-[41px]",
131
+ "first:group-data-[orientation=vertical]/list:after:top-[37px]"
132
+ ]
133
+ },
134
+ intent: {
135
+ basic: ["after:bg-basic", "group-data-[orientation=horizontal]/list:before:bg-basic"],
136
+ support: ["after:bg-support", "group-data-[orientation=horizontal]/list:before:bg-support"],
137
+ main: ["after:bg-main", "group-data-[orientation=horizontal]/list:before:bg-main"],
138
+ neutral: ["after:bg-neutral", "group-data-[orientation=horizontal]/list:before:bg-neutral"],
139
+ info: ["after:bg-info", "group-data-[orientation=horizontal]/list:before:bg-info"],
140
+ accent: ["after:bg-accent", "group-data-[orientation=horizontal]/list:before:bg-accent"],
141
+ danger: ["after:bg-error", "group-data-[orientation=horizontal]/list:before:bg-error"],
142
+ alert: ["after:bg-alert", "group-data-[orientation=horizontal]/list:before:bg-alert"],
143
+ success: ["after:bg-success", "group-data-[orientation=horizontal]/list:before:bg-success"]
144
+ },
145
+ disabled: {
146
+ true: "before:opacity-dim-3",
147
+ false: ""
148
+ },
149
+ disabledAfter: {
150
+ true: "after:opacity-dim-3",
151
+ false: ""
152
+ }
153
+ },
154
+ defaultVariants: {
155
+ disabled: false,
156
+ disabledAfter: false,
157
+ size: "lg",
158
+ intent: "basic"
159
+ }
160
+ }
161
+ );
162
+ var stepButtonVariant = cva(
163
+ [
164
+ "relative flex group/btn disabled:cursor-default",
165
+ // Horizontal orientation
166
+ "group-data-[orientation=horizontal]/list:flex-col group-data-[orientation=horizontal]/list:items-center",
167
+ "group-data-[orientation=horizontal]/list:text-center group-data-[orientation=horizontal]/list:mx-sm",
168
+ "group-first/item:group-data-[orientation=horizontal]/list:ml-0 group-last/item:group-data-[orientation=horizontal]/list:mr-0",
169
+ // Vertical orientation
170
+ "group-data-[orientation=vertical]/list:flex-row group-data-[orientation=vertical]/list:items-start",
171
+ "group-data-[orientation=vertical]/list:text-left group-data-[orientation=vertical]/list:my-sm",
172
+ "group-first/item:group-data-[orientation=vertical]/list:mt-0 group-last/item:group-data-[orientation=vertical]/list:mb-0"
173
+ ],
174
+ {
175
+ variants: {
176
+ size: {
177
+ sm: [
178
+ "group-data-[orientation=horizontal]/list:min-w-sz-16 group-data-[orientation=horizontal]/list:mt-[16px]",
179
+ "group-data-[orientation=vertical]/list:min-h-sz-16 group-data-[orientation=vertical]/list:ml-[16px]"
180
+ ],
181
+ md: [
182
+ "group-data-[orientation=horizontal]/list:min-w-sz-24 group-data-[orientation=horizontal]/list:mt-[24px]",
183
+ "group-data-[orientation=vertical]/list:min-h-sz-24 group-data-[orientation=vertical]/list:ml-[24px]"
184
+ ],
185
+ lg: [
186
+ "group-data-[orientation=horizontal]/list:min-w-sz-32 group-data-[orientation=horizontal]/list:mt-[32px]",
187
+ "group-data-[orientation=vertical]/list:min-h-sz-32 group-data-[orientation=vertical]/list:ml-[32px]"
188
+ ]
189
+ },
190
+ readOnly: {
191
+ true: "cursor-default",
192
+ false: "cursor-pointer"
193
+ }
194
+ },
195
+ defaultVariants: {
196
+ size: "lg",
197
+ readOnly: false
198
+ }
199
+ }
200
+ );
201
+
202
+ // src/progress-tracker/ProgressTrackerStepIndicator.tsx
203
+ import { Check } from "@spark-ui/icons/Check";
204
+
205
+ // src/progress-tracker/ProgressTrackerStepIndicator.styles.ts
206
+ import { cva as cva2 } from "class-variance-authority";
207
+
208
+ // src/progress-tracker/stepIndicatorVariants/outline.ts
209
+ var outlineVariants = [
210
+ {
211
+ design: "outline",
212
+ intent: "basic",
213
+ state: ["complete", "incomplete"],
214
+ class: [
215
+ "text-on-basic-container bg-transparent",
216
+ "group-hover/btn:group-data-[interactive=true]/btn:bg-basic-container-hovered",
217
+ "group-hover/btn:group-data-[interactive=false]/btn:bg-transparent"
218
+ ]
219
+ },
220
+ {
221
+ design: "outline",
222
+ intent: "basic",
223
+ state: "active",
224
+ class: "text-on-basic-container bg-basic-container"
225
+ },
226
+ {
227
+ design: "outline",
228
+ intent: "support",
229
+ state: ["complete", "incomplete"],
230
+ class: [
231
+ "text-on-support-container bg-transparent",
232
+ "group-hover/btn:group-data-[interactive=true]/btn:bg-support-container-hovered",
233
+ "group-hover/btn:group-data-[interactive=false]/btn:bg-transparent"
234
+ ]
235
+ },
236
+ {
237
+ design: "outline",
238
+ intent: "support",
239
+ state: "active",
240
+ class: "text-on-support-container bg-support-container"
241
+ },
242
+ {
243
+ design: "outline",
244
+ intent: "main",
245
+ state: ["complete", "incomplete"],
246
+ class: [
247
+ "text-on-main-container bg-transparent",
248
+ "group-hover/btn:group-data-[interactive=true]/btn:bg-main-container-hovered",
249
+ "group-hover/btn:group-data-[interactive=false]/btn:bg-transparent"
250
+ ]
251
+ },
252
+ {
253
+ design: "outline",
254
+ intent: "main",
255
+ state: "active",
256
+ class: "text-on-main-container bg-main-container"
257
+ },
258
+ {
259
+ design: "outline",
260
+ intent: "neutral",
261
+ state: ["complete", "incomplete"],
262
+ class: [
263
+ "text-on-neutral-container bg-transparent",
264
+ "group-hover/btn:group-data-[interactive=true]/btn:bg-neutral-container-hovered",
265
+ "group-hover/btn:group-data-[interactive=false]/btn:bg-transparent"
266
+ ]
267
+ },
268
+ {
269
+ design: "outline",
270
+ intent: "neutral",
271
+ state: "active",
272
+ class: "text-on-neutral-container bg-neutral-container"
273
+ },
274
+ {
275
+ design: "outline",
276
+ intent: "info",
277
+ state: ["complete", "incomplete"],
278
+ class: [
279
+ "text-on-info-container bg-transparent",
280
+ "group-hover/btn:group-data-[interactive=true]/btn:bg-info-container-hovered",
281
+ "group-hover/btn:group-data-[interactive=false]/btn:bg-transparent"
282
+ ]
283
+ },
284
+ {
285
+ design: "outline",
286
+ intent: "info",
287
+ state: "active",
288
+ class: "text-on-info-container bg-info-container"
289
+ },
290
+ {
291
+ design: "outline",
292
+ intent: "accent",
293
+ state: ["complete", "incomplete"],
294
+ class: [
295
+ "text-on-accent-container bg-transparent",
296
+ "group-hover/btn:group-data-[interactive=true]/btn:bg-accent-container-hovered",
297
+ "group-hover/btn:group-data-[interactive=false]/btn:bg-transparent"
298
+ ]
299
+ },
300
+ {
301
+ design: "outline",
302
+ intent: "accent",
303
+ state: "active",
304
+ class: "text-on-accent-container bg-accent-container"
305
+ },
306
+ {
307
+ design: "outline",
308
+ intent: "danger",
309
+ state: ["complete", "incomplete"],
310
+ class: [
311
+ "text-on-error-container bg-transparent",
312
+ "group-hover/btn:group-data-[interactive=true]/btn:bg-error-container-hovered",
313
+ "group-hover/btn:group-data-[interactive=false]/btn:bg-transparent"
314
+ ]
315
+ },
316
+ {
317
+ design: "outline",
318
+ intent: "danger",
319
+ state: "active",
320
+ class: "text-on-error-container bg-error-container"
321
+ },
322
+ {
323
+ design: "outline",
324
+ intent: "alert",
325
+ state: ["complete", "incomplete"],
326
+ class: [
327
+ "text-on-alert-container bg-transparent",
328
+ "group-hover/btn:group-data-[interactive=true]/btn:bg-alert-container-hovered",
329
+ "group-hover/btn:group-data-[interactive=false]/btn:bg-transparent"
330
+ ]
331
+ },
332
+ {
333
+ design: "outline",
334
+ intent: "alert",
335
+ state: "active",
336
+ class: "text-on-alert-container bg-alert-container"
337
+ },
338
+ {
339
+ design: "outline",
340
+ intent: "success",
341
+ state: ["complete", "incomplete"],
342
+ class: [
343
+ "text-on-success-container bg-transparent",
344
+ "group-hover/btn:group-data-[interactive=true]/btn:bg-success-container-hovered",
345
+ "group-hover/btn:group-data-[interactive=false]/btn:bg-transparent"
346
+ ]
347
+ },
348
+ {
349
+ design: "outline",
350
+ intent: "success",
351
+ state: "active",
352
+ class: "text-on-success-container bg-success-container"
353
+ }
354
+ ];
355
+
356
+ // src/progress-tracker/stepIndicatorVariants/tinted.ts
357
+ var tintedVariants = [
358
+ {
359
+ design: "tinted",
360
+ intent: "basic",
361
+ state: ["complete", "incomplete"],
362
+ class: [
363
+ "text-on-basic-container bg-basic-container",
364
+ "group-hover/btn:group-data-[interactive=true]/btn:bg-basic-container-hovered",
365
+ "group-hover/btn:group-data-[interactive=false]/btn:bg-basic-container"
366
+ ]
367
+ },
368
+ {
369
+ design: "tinted",
370
+ intent: "basic",
371
+ state: "active",
372
+ class: "text-on-basic bg-basic"
373
+ },
374
+ {
375
+ design: "tinted",
376
+ intent: "support",
377
+ state: ["complete", "incomplete"],
378
+ class: [
379
+ "text-on-support-container bg-support-container",
380
+ "group-hover/btn:group-data-[interactive=true]/btn:bg-support-container-hovered",
381
+ "group-hover/btn:group-data-[interactive=false]/btn:bg-support-container"
382
+ ]
383
+ },
384
+ {
385
+ design: "tinted",
386
+ intent: "support",
387
+ state: "active",
388
+ class: "text-on-support bg-support"
389
+ },
390
+ {
391
+ design: "tinted",
392
+ intent: "main",
393
+ state: ["complete", "incomplete"],
394
+ class: [
395
+ "text-on-main-container bg-main-container",
396
+ "group-hover/btn:group-data-[interactive=true]/btn:bg-main-container-hovered",
397
+ "group-hover/btn:group-data-[interactive=false]/btn:bg-main-container"
398
+ ]
399
+ },
400
+ {
401
+ design: "tinted",
402
+ intent: "main",
403
+ state: "active",
404
+ class: "text-on-main bg-main"
405
+ },
406
+ {
407
+ design: "tinted",
408
+ intent: "neutral",
409
+ state: ["complete", "incomplete"],
410
+ class: [
411
+ "text-on-neutral-container bg-neutral-container",
412
+ "group-hover/btn:group-data-[interactive=true]/btn:bg-neutral-container-hovered",
413
+ "group-hover/btn:group-data-[interactive=false]/btn:bg-neutral-container"
414
+ ]
415
+ },
416
+ {
417
+ design: "tinted",
418
+ intent: "neutral",
419
+ state: "active",
420
+ class: "text-on-neutral bg-neutral"
421
+ },
422
+ {
423
+ design: "tinted",
424
+ intent: "info",
425
+ state: ["complete", "incomplete"],
426
+ class: [
427
+ "text-on-info-container bg-info-container",
428
+ "group-hover/btn:group-data-[interactive=true]/btn:bg-info-container-hovered",
429
+ "group-hover/btn:group-data-[interactive=false]/btn:bg-info-container"
430
+ ]
431
+ },
432
+ {
433
+ design: "tinted",
434
+ intent: "info",
435
+ state: "active",
436
+ class: "text-on-info bg-info"
437
+ },
438
+ {
439
+ design: "tinted",
440
+ intent: "accent",
441
+ state: ["complete", "incomplete"],
442
+ class: [
443
+ "text-on-accent-container bg-accent-container",
444
+ "group-hover/btn:group-data-[interactive=true]/btn:bg-accent-container-hovered",
445
+ "group-hover/btn:group-data-[interactive=false]/btn:bg-accent-container"
446
+ ]
447
+ },
448
+ {
449
+ design: "tinted",
450
+ intent: "accent",
451
+ state: "active",
452
+ class: "text-on-accent bg-accent"
453
+ },
454
+ {
455
+ design: "tinted",
456
+ intent: "danger",
457
+ state: ["complete", "incomplete"],
458
+ class: [
459
+ "text-on-error-container bg-error-container",
460
+ "group-hover/btn:group-data-[interactive=true]/btn:bg-error-container-hovered",
461
+ "group-hover/btn:group-data-[interactive=false]/btn:bg-error-container"
462
+ ]
463
+ },
464
+ {
465
+ design: "tinted",
466
+ intent: "danger",
467
+ state: "active",
468
+ class: "text-on-error bg-error"
469
+ },
470
+ {
471
+ design: "tinted",
472
+ intent: "alert",
473
+ state: ["complete", "incomplete"],
474
+ class: [
475
+ "text-on-alert-container bg-alert-container",
476
+ "group-hover/btn:group-data-[interactive=true]/btn:bg-alert-container-hovered",
477
+ "group-hover/btn:group-data-[interactive=false]/btn:bg-alert-container"
478
+ ]
479
+ },
480
+ {
481
+ design: "tinted",
482
+ intent: "alert",
483
+ state: "active",
484
+ class: "text-on-alert bg-alert"
485
+ },
486
+ {
487
+ design: "tinted",
488
+ intent: "success",
489
+ state: ["complete", "incomplete"],
490
+ class: [
491
+ "text-on-success-container bg-success-container",
492
+ "group-hover/btn:group-data-[interactive=true]/btn:bg-success-container-hovered",
493
+ "group-hover/btn:group-data-[interactive=false]/btn:bg-success-container"
494
+ ]
495
+ },
496
+ {
497
+ design: "tinted",
498
+ intent: "success",
499
+ state: "active",
500
+ class: "text-on-success bg-success"
501
+ }
502
+ ];
503
+
504
+ // src/progress-tracker/ProgressTrackerStepIndicator.styles.ts
505
+ var stepIndicatorVariant = cva2(
506
+ [
507
+ "relative flex shrink-0 justify-center items-center",
508
+ "rounded-full",
509
+ "text-body-2 font-bold",
510
+ "group-disabled/btn:opacity-dim-3"
511
+ ],
512
+ {
513
+ variants: {
514
+ size: {
515
+ sm: [
516
+ "w-sz-16 h-sz-16",
517
+ "group-data-[orientation=horizontal]/list:mt-[-16px]",
518
+ "group-data-[orientation=vertical]/list:ml-[-16px]"
519
+ ],
520
+ md: [
521
+ "w-sz-24 h-sz-24",
522
+ "group-data-[orientation=horizontal]/list:mt-[-24px]",
523
+ "group-data-[orientation=vertical]/list:ml-[-24px]"
524
+ ],
525
+ lg: [
526
+ "w-sz-32 h-sz-32",
527
+ "group-data-[orientation=horizontal]/list:mt-[-32px]",
528
+ "group-data-[orientation=vertical]/list:ml-[-32px]"
529
+ ]
530
+ },
531
+ intent: {
532
+ basic: "",
533
+ support: "",
534
+ main: "",
535
+ neutral: "",
536
+ info: "",
537
+ accent: "",
538
+ danger: "",
539
+ alert: "",
540
+ success: ""
541
+ },
542
+ design: {
543
+ outline: "border-sm",
544
+ tinted: ""
545
+ },
546
+ state: {
547
+ complete: "",
548
+ incomplete: "",
549
+ active: ""
550
+ }
551
+ },
552
+ /**
553
+ * Known type issue with CVA compoundVariants and VS Code/Intellisense:
554
+ * https://github.com/joe-bell/cva/discussions/195#discussioncomment-6750163
555
+ * */
556
+ /* eslint-disable-next-line @typescript-eslint/ban-ts-comment */
557
+ /* @ts-ignore */
558
+ compoundVariants: [...outlineVariants, ...tintedVariants],
559
+ defaultVariants: {
560
+ size: "lg",
561
+ state: "incomplete",
562
+ intent: "basic",
563
+ design: "outline"
564
+ }
565
+ }
566
+ );
567
+
568
+ // src/progress-tracker/ProgressTrackerStepIndicator.tsx
569
+ import { Fragment, jsx as jsx2, jsxs } from "react/jsx-runtime";
570
+ var CompleteIndicator = () => /* @__PURE__ */ jsx2(Icon, { size: "sm", children: /* @__PURE__ */ jsx2(Check, {}) });
571
+ var ProgressTrackerStepIndicator = ({
572
+ complete,
573
+ incomplete,
574
+ className
575
+ }) => {
576
+ const { size, intent, design } = useProgressTrackerContext();
577
+ const { index, state } = useProgressTrackerStepContext();
578
+ return /* @__PURE__ */ jsx2(
579
+ "span",
580
+ {
581
+ className: stepIndicatorVariant({ size, intent, design, state, className }),
582
+ "aria-hidden": "true",
583
+ children: size !== "sm" && /* @__PURE__ */ jsxs(Fragment, { children: [
584
+ state === "complete" && (complete === void 0 ? /* @__PURE__ */ jsx2(CompleteIndicator, {}) : complete),
585
+ state !== "complete" && (incomplete === void 0 ? `${index + 1}` : incomplete)
586
+ ] })
587
+ }
588
+ );
589
+ };
590
+ ProgressTrackerStepIndicator.displayName = "ProgressTracker.StepIndicator";
591
+
592
+ // src/progress-tracker/ProgressTrackerStep.tsx
593
+ import { jsx as jsx3 } from "react/jsx-runtime";
594
+ var ProgressTrackerStep = ({
595
+ disabled = false,
596
+ children,
597
+ "aria-label": ariaLabel,
598
+ className,
599
+ ref,
600
+ ...rest
601
+ }) => {
602
+ const {
603
+ stepIndex: currentStepIndex,
604
+ steps,
605
+ onStepClick,
606
+ setSteps,
607
+ size,
608
+ intent,
609
+ readOnly
610
+ } = useProgressTrackerContext();
611
+ const stepId = `${ID_PREFIX}-step-${useId()}`;
612
+ const stepIndex = [...steps.keys()].indexOf(stepId);
613
+ const disabledAfter = (() => {
614
+ const nextStepId = [...steps.keys()][stepIndex + 1];
615
+ return !!(nextStepId && steps.get(nextStepId)?.includes("disabled"));
616
+ })();
617
+ const progressState = (() => {
618
+ if (stepIndex === currentStepIndex) return "active";
619
+ else if (stepIndex < currentStepIndex) return "complete";
620
+ else return "incomplete";
621
+ })();
622
+ useEffect(() => {
623
+ setSteps((steps2) => {
624
+ const newSteps = new Map(steps2);
625
+ return newSteps.set(
626
+ stepId,
627
+ [progressState, disabled ? "disabled" : ""].filter((v) => !!v)
628
+ );
629
+ });
630
+ return () => {
631
+ setSteps((steps2) => {
632
+ steps2.delete(stepId);
633
+ return steps2;
634
+ });
635
+ };
636
+ }, []);
637
+ return /* @__PURE__ */ jsx3(
638
+ "li",
639
+ {
640
+ id: stepId,
641
+ ref,
642
+ "data-state": progressState,
643
+ ...progressState === "active" && {
644
+ "aria-current": "step"
645
+ },
646
+ className: stepItemVariant({
647
+ size,
648
+ intent,
649
+ disabled,
650
+ disabledAfter
651
+ }),
652
+ ...rest,
653
+ children: /* @__PURE__ */ jsx3(
654
+ "button",
655
+ {
656
+ type: "button",
657
+ "aria-label": ariaLabel,
658
+ "data-interactive": !disabled && !readOnly,
659
+ ...!disabled && !readOnly && {
660
+ onClick: () => onStepClick?.(stepIndex)
661
+ },
662
+ disabled,
663
+ className: stepButtonVariant({
664
+ size,
665
+ readOnly,
666
+ className
667
+ }),
668
+ children: /* @__PURE__ */ jsx3(
669
+ ProgressTrackerStepContext.Provider,
670
+ {
671
+ value: {
672
+ index: stepIndex,
673
+ state: progressState
674
+ },
675
+ children: children || /* @__PURE__ */ jsx3(ProgressTrackerStepIndicator, {})
676
+ }
677
+ )
678
+ }
679
+ )
680
+ }
681
+ );
682
+ };
683
+ ProgressTrackerStep.displayName = "ProgressTracker.Step";
684
+
685
+ // src/progress-tracker/ProgressTrackerStepLabel.styles.ts
686
+ import { cva as cva3 } from "class-variance-authority";
687
+ var stepLabel = cva3([
688
+ "flex text-body-2 font-bold",
689
+ "text-on-surface group-disabled/btn:text-on-surface/dim-1",
690
+ "group-data-[orientation=horizontal]/list:mt-md",
691
+ "group-data-[orientation=vertical]/list:ml-md",
692
+ "group-data-[orientation=vertical]/list:my-auto"
693
+ ]);
694
+
695
+ // src/progress-tracker/ProgressTrackerStepLabel.tsx
696
+ import { jsx as jsx4 } from "react/jsx-runtime";
697
+ var ProgressTrackerStepLabel = ({
698
+ className,
699
+ children
700
+ }) => /* @__PURE__ */ jsx4("span", { className: stepLabel({ className }), children });
701
+ ProgressTrackerStepLabel.displayName = "ProgressTracker.StepLabel";
702
+
703
+ // src/progress-tracker/index.ts
704
+ var ProgressTracker2 = Object.assign(ProgressTracker, {
705
+ Step: ProgressTrackerStep,
706
+ StepLabel: ProgressTrackerStepLabel,
707
+ StepIndicator: ProgressTrackerStepIndicator
708
+ });
709
+ ProgressTracker2.displayName = "ProgressTracker";
710
+ ProgressTrackerStep.displayName = "ProgressTracker.Step";
711
+ ProgressTrackerStepLabel.displayName = "ProgressTracker.StepLabel";
712
+ ProgressTrackerStepIndicator.displayName = "ProgressTracker.StepIndicator";
713
+ export {
714
+ ProgressTracker2 as ProgressTracker
715
+ };
716
+ //# sourceMappingURL=index.mjs.map