@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,1280 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+
20
+ // src/popover/index.ts
21
+ var popover_exports = {};
22
+ __export(popover_exports, {
23
+ Popover: () => Popover2
24
+ });
25
+ module.exports = __toCommonJS(popover_exports);
26
+
27
+ // src/popover/Popover.tsx
28
+ var import_radix_ui = require("radix-ui");
29
+
30
+ // src/popover/PopoverContext.tsx
31
+ var import_react = require("react");
32
+ var import_jsx_runtime = require("react/jsx-runtime");
33
+ var PopoverContext = (0, import_react.createContext)(null);
34
+ var ID_PREFIX = ":popover";
35
+ var PopoverProvider = ({
36
+ children,
37
+ intent
38
+ }) => {
39
+ const [headerId, setHeaderId] = (0, import_react.useState)(null);
40
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
41
+ PopoverContext.Provider,
42
+ {
43
+ value: {
44
+ headerId,
45
+ setHeaderId,
46
+ intent
47
+ },
48
+ children
49
+ }
50
+ );
51
+ };
52
+ var usePopover = () => {
53
+ const context = (0, import_react.useContext)(PopoverContext);
54
+ if (!context) {
55
+ throw Error("usePopover must be used within a Popover provider");
56
+ }
57
+ return context;
58
+ };
59
+
60
+ // src/popover/Popover.tsx
61
+ var import_jsx_runtime2 = require("react/jsx-runtime");
62
+ var Popover = ({ children, intent = "surface", modal = false, ...rest }) => {
63
+ return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(PopoverProvider, { intent, children: /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(import_radix_ui.Popover.Root, { "data-spark-component": "popover", modal, ...rest, children }) });
64
+ };
65
+ Popover.displayName = "Popover";
66
+
67
+ // src/popover/PopoverAnchor.tsx
68
+ var import_radix_ui2 = require("radix-ui");
69
+ var import_jsx_runtime3 = require("react/jsx-runtime");
70
+ var Anchor = ({ asChild = false, children, ref, ...rest }) => /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(import_radix_ui2.Popover.Anchor, { "data-spark-component": "popover-anchor", ref, asChild, ...rest, children });
71
+ Anchor.displayName = "Popover.Anchor";
72
+
73
+ // src/popover/PopoverArrow.tsx
74
+ var import_class_variance_authority = require("class-variance-authority");
75
+ var import_radix_ui3 = require("radix-ui");
76
+ var import_jsx_runtime4 = require("react/jsx-runtime");
77
+ var Arrow = ({
78
+ asChild = false,
79
+ width = 16,
80
+ height = 8,
81
+ className,
82
+ ref,
83
+ ...rest
84
+ }) => {
85
+ const { intent } = usePopover();
86
+ const styles2 = (0, import_class_variance_authority.cva)("visible", {
87
+ variants: {
88
+ intent: {
89
+ surface: "fill-surface",
90
+ main: "fill-main-container",
91
+ support: "fill-support-container",
92
+ accent: "fill-accent-container",
93
+ basic: "fill-basic-container",
94
+ success: "fill-success-container",
95
+ alert: "fill-alert-container",
96
+ danger: "fill-error-container",
97
+ info: "fill-info-container",
98
+ neutral: "fill-neutral-container"
99
+ }
100
+ },
101
+ defaultVariants: {
102
+ intent: "surface"
103
+ }
104
+ });
105
+ return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
106
+ import_radix_ui3.Popover.Arrow,
107
+ {
108
+ "data-spark-component": "popover-arrow",
109
+ ref,
110
+ className: styles2({ intent, className }),
111
+ asChild,
112
+ width,
113
+ height,
114
+ ...rest
115
+ }
116
+ );
117
+ };
118
+ Arrow.displayName = "Popover.Arrow";
119
+
120
+ // src/popover/PopoverCloseButton.tsx
121
+ var import_Close = require("@spark-ui/icons/Close");
122
+ var import_class_variance_authority7 = require("class-variance-authority");
123
+ var import_radix_ui5 = require("radix-ui");
124
+
125
+ // src/icon/Icon.tsx
126
+ var import_react3 = require("react");
127
+
128
+ // src/slot/Slot.tsx
129
+ var import_radix_ui4 = require("radix-ui");
130
+ var import_react2 = require("react");
131
+ var import_jsx_runtime5 = require("react/jsx-runtime");
132
+ var Slottable = import_radix_ui4.Slot.Slottable;
133
+ var Slot = ({ ref, ...props }) => {
134
+ return /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(import_radix_ui4.Slot.Root, { ref, ...props });
135
+ };
136
+ var wrapPolymorphicSlot = (asChild, children, callback) => {
137
+ if (!asChild) return callback(children);
138
+ return (0, import_react2.isValidElement)(children) ? (0, import_react2.cloneElement)(
139
+ children,
140
+ void 0,
141
+ callback(children.props.children)
142
+ ) : null;
143
+ };
144
+
145
+ // src/visually-hidden/VisuallyHidden.tsx
146
+ var import_jsx_runtime6 = require("react/jsx-runtime");
147
+ var VisuallyHidden = ({ asChild = false, ref, ...props }) => {
148
+ const Component = asChild ? Slot : "span";
149
+ return /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
150
+ Component,
151
+ {
152
+ ...props,
153
+ ref,
154
+ style: {
155
+ // See: https://github.com/twbs/bootstrap/blob/main/scss/mixins/_visually-hidden.scss
156
+ position: "absolute",
157
+ border: 0,
158
+ width: 1,
159
+ height: 1,
160
+ padding: 0,
161
+ margin: -1,
162
+ overflow: "hidden",
163
+ clip: "rect(0, 0, 0, 0)",
164
+ whiteSpace: "nowrap",
165
+ wordWrap: "normal",
166
+ ...props.style
167
+ }
168
+ }
169
+ );
170
+ };
171
+ VisuallyHidden.displayName = "VisuallyHidden";
172
+
173
+ // src/icon/Icon.styles.tsx
174
+ var import_internal_utils = require("@spark-ui/internal-utils");
175
+ var import_class_variance_authority2 = require("class-variance-authority");
176
+ var iconStyles = (0, import_class_variance_authority2.cva)(["fill-current shrink-0"], {
177
+ variants: {
178
+ /**
179
+ * Color scheme of the icon.
180
+ */
181
+ intent: (0, import_internal_utils.makeVariants)({
182
+ current: ["text-current"],
183
+ main: ["text-main"],
184
+ support: ["text-support"],
185
+ accent: ["text-accent"],
186
+ basic: ["text-basic"],
187
+ success: ["text-success"],
188
+ alert: ["text-alert"],
189
+ error: ["text-error"],
190
+ info: ["text-info"],
191
+ neutral: ["text-neutral"]
192
+ }),
193
+ /**
194
+ * Sets the size of the icon.
195
+ */
196
+ size: (0, import_internal_utils.makeVariants)({
197
+ current: ["u-current-font-size"],
198
+ sm: ["w-sz-16", "h-sz-16"],
199
+ md: ["w-sz-24", "h-sz-24"],
200
+ lg: ["w-sz-32", "h-sz-32"],
201
+ xl: ["w-sz-40", "h-sz-40"]
202
+ })
203
+ }
204
+ });
205
+
206
+ // src/icon/Icon.tsx
207
+ var import_jsx_runtime7 = require("react/jsx-runtime");
208
+ var Icon = ({
209
+ label,
210
+ className,
211
+ size = "current",
212
+ intent = "current",
213
+ children,
214
+ ...others
215
+ }) => {
216
+ const child = import_react3.Children.only(children);
217
+ return /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)(import_jsx_runtime7.Fragment, { children: [
218
+ (0, import_react3.cloneElement)(child, {
219
+ className: iconStyles({ className, size, intent }),
220
+ "data-spark-component": "icon",
221
+ "aria-hidden": "true",
222
+ focusable: "false",
223
+ ...others
224
+ }),
225
+ label && /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(VisuallyHidden, { children: label })
226
+ ] });
227
+ };
228
+ Icon.displayName = "Icon";
229
+
230
+ // src/button/Button.tsx
231
+ var import_class_variance_authority5 = require("class-variance-authority");
232
+ var import_react4 = require("react");
233
+
234
+ // src/spinner/Spinner.styles.tsx
235
+ var import_internal_utils2 = require("@spark-ui/internal-utils");
236
+ var import_class_variance_authority3 = require("class-variance-authority");
237
+ var defaultVariants = {
238
+ intent: "current",
239
+ size: "current",
240
+ isBackgroundVisible: false
241
+ };
242
+ var spinnerStyles = (0, import_class_variance_authority3.cva)(
243
+ ["inline-block", "border-solid", "rounded-full", "border-md", "animate-spin"],
244
+ {
245
+ variants: {
246
+ /**
247
+ * Use `size` prop to set the size of the spinner. If you want to set the full size for the spinner, don't forget to add a wrapping container with its own size.
248
+ */
249
+ size: {
250
+ current: ["u-current-font-size"],
251
+ sm: ["w-sz-20", "h-sz-20"],
252
+ md: ["w-sz-28", "h-sz-28"],
253
+ full: ["w-full", "h-full"]
254
+ },
255
+ /**
256
+ * Color scheme of the spinner.
257
+ */
258
+ intent: (0, import_internal_utils2.makeVariants)({
259
+ current: ["border-current"],
260
+ main: ["border-main"],
261
+ support: ["border-support"],
262
+ accent: ["border-accent"],
263
+ basic: ["border-basic"],
264
+ success: ["border-success"],
265
+ alert: ["border-alert"],
266
+ error: ["border-error"],
267
+ info: ["border-info"],
268
+ neutral: ["border-neutral"]
269
+ }),
270
+ /**
271
+ * Size of the button.
272
+ */
273
+ isBackgroundVisible: {
274
+ true: ["border-b-neutral-container", "border-l-neutral-container"],
275
+ false: ["border-b-transparent", "border-l-transparent"]
276
+ }
277
+ },
278
+ defaultVariants
279
+ }
280
+ );
281
+
282
+ // src/spinner/Spinner.tsx
283
+ var import_jsx_runtime8 = require("react/jsx-runtime");
284
+ var Spinner = ({
285
+ className,
286
+ size = "current",
287
+ intent = "current",
288
+ label,
289
+ isBackgroundVisible,
290
+ ref,
291
+ ...others
292
+ }) => {
293
+ return /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
294
+ "span",
295
+ {
296
+ role: "status",
297
+ "data-spark-component": "spinner",
298
+ ref,
299
+ className: spinnerStyles({ className, size, intent, isBackgroundVisible }),
300
+ ...others,
301
+ children: label && /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(VisuallyHidden, { children: label })
302
+ }
303
+ );
304
+ };
305
+
306
+ // src/button/Button.styles.tsx
307
+ var import_internal_utils8 = require("@spark-ui/internal-utils");
308
+ var import_class_variance_authority4 = require("class-variance-authority");
309
+
310
+ // src/button/variants/filled.ts
311
+ var import_internal_utils3 = require("@spark-ui/internal-utils");
312
+ var filledVariants = [
313
+ // Main
314
+ {
315
+ intent: "main",
316
+ design: "filled",
317
+ class: (0, import_internal_utils3.tw)([
318
+ "bg-main",
319
+ "text-on-main",
320
+ "hover:bg-main-hovered",
321
+ "enabled:active:bg-main-hovered",
322
+ "focus-visible:bg-main-hovered"
323
+ ])
324
+ },
325
+ // Support
326
+ {
327
+ intent: "support",
328
+ design: "filled",
329
+ class: (0, import_internal_utils3.tw)([
330
+ "bg-support",
331
+ "text-on-support",
332
+ "hover:bg-support-hovered",
333
+ "enabled:active:bg-support-hovered",
334
+ "focus-visible:bg-support-hovered"
335
+ ])
336
+ },
337
+ // Accent
338
+ {
339
+ intent: "accent",
340
+ design: "filled",
341
+ class: (0, import_internal_utils3.tw)([
342
+ "bg-accent",
343
+ "text-on-accent",
344
+ "hover:bg-accent-hovered",
345
+ "enabled:active:bg-accent-hovered",
346
+ "focus-visible:bg-accent-hovered"
347
+ ])
348
+ },
349
+ // Basic
350
+ {
351
+ intent: "basic",
352
+ design: "filled",
353
+ class: (0, import_internal_utils3.tw)([
354
+ "bg-basic",
355
+ "text-on-basic",
356
+ "hover:bg-basic-hovered",
357
+ "enabled:active:bg-basic-hovered",
358
+ "focus-visible:bg-basic-hovered"
359
+ ])
360
+ },
361
+ // Success
362
+ {
363
+ intent: "success",
364
+ design: "filled",
365
+ class: (0, import_internal_utils3.tw)([
366
+ "bg-success",
367
+ "text-on-success",
368
+ "hover:bg-success-hovered",
369
+ "enabled:active:bg-success-hovered",
370
+ "focus-visible:bg-success-hovered"
371
+ ])
372
+ },
373
+ // Alert
374
+ {
375
+ intent: "alert",
376
+ design: "filled",
377
+ class: (0, import_internal_utils3.tw)([
378
+ "bg-alert",
379
+ "text-on-alert",
380
+ "hover:bg-alert-hovered",
381
+ "enabled:active:bg-alert-hovered",
382
+ "focus-visible:bg-alert-hovered"
383
+ ])
384
+ },
385
+ // Danger
386
+ {
387
+ intent: "danger",
388
+ design: "filled",
389
+ class: (0, import_internal_utils3.tw)([
390
+ "text-on-error bg-error",
391
+ "hover:bg-error-hovered enabled:active:bg-error-hovered",
392
+ "focus-visible:bg-error-hovered"
393
+ ])
394
+ },
395
+ // Info
396
+ {
397
+ intent: "info",
398
+ design: "filled",
399
+ class: (0, import_internal_utils3.tw)([
400
+ "text-on-error bg-info",
401
+ "hover:bg-info-hovered enabled:active:bg-info-hovered",
402
+ "focus-visible:bg-info-hovered"
403
+ ])
404
+ },
405
+ // Neutral
406
+ {
407
+ intent: "neutral",
408
+ design: "filled",
409
+ class: (0, import_internal_utils3.tw)([
410
+ "bg-neutral",
411
+ "text-on-neutral",
412
+ "hover:bg-neutral-hovered",
413
+ "enabled:active:bg-neutral-hovered",
414
+ "focus-visible:bg-neutral-hovered"
415
+ ])
416
+ },
417
+ // Surface
418
+ {
419
+ intent: "surface",
420
+ design: "filled",
421
+ class: (0, import_internal_utils3.tw)([
422
+ "bg-surface",
423
+ "text-on-surface",
424
+ "hover:bg-surface-hovered",
425
+ "enabled:active:bg-surface-hovered",
426
+ "focus-visible:bg-surface-hovered"
427
+ ])
428
+ }
429
+ ];
430
+
431
+ // src/button/variants/ghost.ts
432
+ var import_internal_utils4 = require("@spark-ui/internal-utils");
433
+ var ghostVariants = [
434
+ {
435
+ intent: "main",
436
+ design: "ghost",
437
+ class: (0, import_internal_utils4.tw)([
438
+ "text-main",
439
+ "hover:bg-main/dim-5",
440
+ "enabled:active:bg-main/dim-5",
441
+ "focus-visible:bg-main/dim-5"
442
+ ])
443
+ },
444
+ {
445
+ intent: "support",
446
+ design: "ghost",
447
+ class: (0, import_internal_utils4.tw)([
448
+ "text-support",
449
+ "hover:bg-support/dim-5",
450
+ "enabled:active:bg-support/dim-5",
451
+ "focus-visible:bg-support/dim-5"
452
+ ])
453
+ },
454
+ {
455
+ intent: "accent",
456
+ design: "ghost",
457
+ class: (0, import_internal_utils4.tw)([
458
+ "text-accent",
459
+ "hover:bg-accent/dim-5",
460
+ "enabled:active:bg-accent/dim-5",
461
+ "focus-visible:bg-accent/dim-5"
462
+ ])
463
+ },
464
+ {
465
+ intent: "basic",
466
+ design: "ghost",
467
+ class: (0, import_internal_utils4.tw)([
468
+ "text-basic",
469
+ "hover:bg-basic/dim-5",
470
+ "enabled:active:bg-basic/dim-5",
471
+ "focus-visible:bg-basic/dim-5"
472
+ ])
473
+ },
474
+ {
475
+ intent: "success",
476
+ design: "ghost",
477
+ class: (0, import_internal_utils4.tw)([
478
+ "text-success",
479
+ "hover:bg-success/dim-5",
480
+ "enabled:active:bg-success/dim-5",
481
+ "focus-visible:bg-success/dim-5"
482
+ ])
483
+ },
484
+ {
485
+ intent: "alert",
486
+ design: "ghost",
487
+ class: (0, import_internal_utils4.tw)([
488
+ "text-alert",
489
+ "hover:bg-alert/dim-5",
490
+ "enabled:active:bg-alert/dim-5",
491
+ "focus-visible:bg-alert/dim-5"
492
+ ])
493
+ },
494
+ {
495
+ intent: "danger",
496
+ design: "ghost",
497
+ class: (0, import_internal_utils4.tw)([
498
+ "text-error",
499
+ "hover:bg-error/dim-5",
500
+ "enabled:active:bg-error/dim-5",
501
+ "focus-visible:bg-error/dim-5"
502
+ ])
503
+ },
504
+ {
505
+ intent: "info",
506
+ design: "ghost",
507
+ class: (0, import_internal_utils4.tw)([
508
+ "text-info",
509
+ "hover:bg-info/dim-5",
510
+ "enabled:active:bg-info/dim-5",
511
+ "focus-visible:bg-info/dim-5"
512
+ ])
513
+ },
514
+ {
515
+ intent: "neutral",
516
+ design: "ghost",
517
+ class: (0, import_internal_utils4.tw)([
518
+ "text-neutral",
519
+ "hover:bg-neutral/dim-5",
520
+ "enabled:active:bg-neutral/dim-5",
521
+ "focus-visible:bg-neutral/dim-5"
522
+ ])
523
+ },
524
+ {
525
+ intent: "surface",
526
+ design: "ghost",
527
+ class: (0, import_internal_utils4.tw)([
528
+ "text-surface",
529
+ "hover:bg-surface/dim-5",
530
+ "enabled:active:bg-surface/dim-5",
531
+ "focus-visible:bg-surface/dim-5"
532
+ ])
533
+ }
534
+ ];
535
+
536
+ // src/button/variants/outlined.ts
537
+ var import_internal_utils5 = require("@spark-ui/internal-utils");
538
+ var outlinedVariants = [
539
+ {
540
+ intent: "main",
541
+ design: "outlined",
542
+ class: (0, import_internal_utils5.tw)([
543
+ "hover:bg-main/dim-5",
544
+ "enabled:active:bg-main/dim-5",
545
+ "focus-visible:bg-main/dim-5",
546
+ "text-main"
547
+ ])
548
+ },
549
+ {
550
+ intent: "support",
551
+ design: "outlined",
552
+ class: (0, import_internal_utils5.tw)([
553
+ "hover:bg-support/dim-5",
554
+ "enabled:active:bg-support/dim-5",
555
+ "focus-visible:bg-support/dim-5",
556
+ "text-support"
557
+ ])
558
+ },
559
+ {
560
+ intent: "accent",
561
+ design: "outlined",
562
+ class: (0, import_internal_utils5.tw)([
563
+ "hover:bg-accent/dim-5",
564
+ "enabled:active:bg-accent/dim-5",
565
+ "focus-visible:bg-accent/dim-5",
566
+ "text-accent"
567
+ ])
568
+ },
569
+ {
570
+ intent: "basic",
571
+ design: "outlined",
572
+ class: (0, import_internal_utils5.tw)([
573
+ "hover:bg-basic/dim-5",
574
+ "enabled:active:bg-basic/dim-5",
575
+ "focus-visible:bg-basic/dim-5",
576
+ "text-basic"
577
+ ])
578
+ },
579
+ {
580
+ intent: "success",
581
+ design: "outlined",
582
+ class: (0, import_internal_utils5.tw)([
583
+ "hover:bg-success/dim-5",
584
+ "enabled:active:bg-success/dim-5",
585
+ "focus-visible:bg-success/dim-5",
586
+ "text-success"
587
+ ])
588
+ },
589
+ {
590
+ intent: "alert",
591
+ design: "outlined",
592
+ class: (0, import_internal_utils5.tw)([
593
+ "hover:bg-alert/dim-5",
594
+ "enabled:active:bg-alert/dim-5",
595
+ "focus-visible:bg-alert/dim-5",
596
+ "text-alert"
597
+ ])
598
+ },
599
+ {
600
+ intent: "danger",
601
+ design: "outlined",
602
+ class: (0, import_internal_utils5.tw)([
603
+ "hover:bg-error/dim-5",
604
+ "enabled:active:bg-error/dim-5",
605
+ "focus-visible:bg-error/dim-5",
606
+ "text-error"
607
+ ])
608
+ },
609
+ {
610
+ intent: "info",
611
+ design: "outlined",
612
+ class: (0, import_internal_utils5.tw)([
613
+ "hover:bg-info/dim-5",
614
+ "enabled:active:bg-info/dim-5",
615
+ "focus-visible:bg-info/dim-5",
616
+ "text-info"
617
+ ])
618
+ },
619
+ {
620
+ intent: "neutral",
621
+ design: "outlined",
622
+ class: (0, import_internal_utils5.tw)([
623
+ "hover:bg-neutral/dim-5",
624
+ "enabled:active:bg-neutral/dim-5",
625
+ "focus-visible:bg-neutral/dim-5",
626
+ "text-neutral"
627
+ ])
628
+ },
629
+ {
630
+ intent: "surface",
631
+ design: "outlined",
632
+ class: (0, import_internal_utils5.tw)([
633
+ "hover:bg-surface/dim-5",
634
+ "enabled:active:bg-surface/dim-5",
635
+ "focus-visible:bg-surface/dim-5",
636
+ "text-surface"
637
+ ])
638
+ }
639
+ ];
640
+
641
+ // src/button/variants/tinted.ts
642
+ var import_internal_utils6 = require("@spark-ui/internal-utils");
643
+ var tintedVariants = [
644
+ {
645
+ intent: "main",
646
+ design: "tinted",
647
+ class: (0, import_internal_utils6.tw)([
648
+ "bg-main-container",
649
+ "text-on-main-container",
650
+ "hover:bg-main-container-hovered",
651
+ "enabled:active:bg-main-container-hovered",
652
+ "focus-visible:bg-main-container-hovered"
653
+ ])
654
+ },
655
+ {
656
+ intent: "support",
657
+ design: "tinted",
658
+ class: (0, import_internal_utils6.tw)([
659
+ "bg-support-container",
660
+ "text-on-support-container",
661
+ "hover:bg-support-container-hovered",
662
+ "enabled:active:bg-support-container-hovered",
663
+ "focus-visible:bg-support-container-hovered"
664
+ ])
665
+ },
666
+ {
667
+ intent: "accent",
668
+ design: "tinted",
669
+ class: (0, import_internal_utils6.tw)([
670
+ "bg-accent-container",
671
+ "text-on-accent-container",
672
+ "hover:bg-accent-container-hovered",
673
+ "enabled:active:bg-accent-container-hovered",
674
+ "focus-visible:bg-accent-container-hovered"
675
+ ])
676
+ },
677
+ {
678
+ intent: "basic",
679
+ design: "tinted",
680
+ class: (0, import_internal_utils6.tw)([
681
+ "bg-basic-container",
682
+ "text-on-basic-container",
683
+ "hover:bg-basic-container-hovered",
684
+ "enabled:active:bg-basic-container-hovered",
685
+ "focus-visible:bg-basic-container-hovered"
686
+ ])
687
+ },
688
+ {
689
+ intent: "success",
690
+ design: "tinted",
691
+ class: (0, import_internal_utils6.tw)([
692
+ "bg-success-container",
693
+ "text-on-success-container",
694
+ "hover:bg-success-container-hovered",
695
+ "enabled:active:bg-success-container-hovered",
696
+ "focus-visible:bg-success-container-hovered"
697
+ ])
698
+ },
699
+ {
700
+ intent: "alert",
701
+ design: "tinted",
702
+ class: (0, import_internal_utils6.tw)([
703
+ "bg-alert-container",
704
+ "text-on-alert-container",
705
+ "hover:bg-alert-container-hovered",
706
+ "enabled:active:bg-alert-container-hovered",
707
+ "focus-visible:bg-alert-container-hovered"
708
+ ])
709
+ },
710
+ {
711
+ intent: "danger",
712
+ design: "tinted",
713
+ class: (0, import_internal_utils6.tw)([
714
+ "bg-error-container",
715
+ "text-on-error-container",
716
+ "hover:bg-error-container-hovered",
717
+ "enabled:active:bg-error-container-hovered",
718
+ "focus-visible:bg-error-container-hovered"
719
+ ])
720
+ },
721
+ {
722
+ intent: "info",
723
+ design: "tinted",
724
+ class: (0, import_internal_utils6.tw)([
725
+ "bg-info-container",
726
+ "text-on-info-container",
727
+ "hover:bg-info-container-hovered",
728
+ "enabled:active:bg-info-container-hovered",
729
+ "focus-visible:bg-info-container-hovered"
730
+ ])
731
+ },
732
+ {
733
+ intent: "neutral",
734
+ design: "tinted",
735
+ class: (0, import_internal_utils6.tw)([
736
+ "bg-neutral-container",
737
+ "text-on-neutral-container",
738
+ "hover:bg-neutral-container-hovered",
739
+ "enabled:active:bg-neutral-container-hovered",
740
+ "focus-visible:bg-neutral-container-hovered"
741
+ ])
742
+ },
743
+ {
744
+ intent: "surface",
745
+ design: "tinted",
746
+ class: (0, import_internal_utils6.tw)([
747
+ "bg-surface",
748
+ "text-on-surface",
749
+ "hover:bg-surface-hovered",
750
+ "enabled:active:bg-surface-hovered",
751
+ "focus-visible:bg-surface-hovered"
752
+ ])
753
+ }
754
+ ];
755
+
756
+ // src/button/variants/contrast.ts
757
+ var import_internal_utils7 = require("@spark-ui/internal-utils");
758
+ var contrastVariants = [
759
+ {
760
+ intent: "main",
761
+ design: "contrast",
762
+ class: (0, import_internal_utils7.tw)([
763
+ "text-main",
764
+ "hover:bg-main-container-hovered",
765
+ "enabled:active:bg-main-container-hovered",
766
+ "focus-visible:bg-main-container-hovered"
767
+ ])
768
+ },
769
+ {
770
+ intent: "support",
771
+ design: "contrast",
772
+ class: (0, import_internal_utils7.tw)([
773
+ "text-support",
774
+ "hover:bg-support-container-hovered",
775
+ "enabled:active:bg-support-container-hovered",
776
+ "focus-visible:bg-support-container-hovered"
777
+ ])
778
+ },
779
+ {
780
+ intent: "accent",
781
+ design: "contrast",
782
+ class: (0, import_internal_utils7.tw)([
783
+ "text-accent",
784
+ "hover:bg-accent-container-hovered",
785
+ "enabled:active:bg-accent-container-hovered",
786
+ "focus-visible:bg-accent-container-hovered"
787
+ ])
788
+ },
789
+ {
790
+ intent: "basic",
791
+ design: "contrast",
792
+ class: (0, import_internal_utils7.tw)([
793
+ "text-basic",
794
+ "hover:bg-basic-container-hovered",
795
+ "enabled:active:bg-basic-container-hovered",
796
+ "focus-visible:bg-basic-container-hovered"
797
+ ])
798
+ },
799
+ {
800
+ intent: "success",
801
+ design: "contrast",
802
+ class: (0, import_internal_utils7.tw)([
803
+ "text-success",
804
+ "hover:bg-success-container-hovered",
805
+ "enabled:active:bg-success-container-hovered",
806
+ "focus-visible:bg-success-container-hovered"
807
+ ])
808
+ },
809
+ {
810
+ intent: "alert",
811
+ design: "contrast",
812
+ class: (0, import_internal_utils7.tw)([
813
+ "text-alert",
814
+ "hover:bg-alert-container-hovered",
815
+ "enabled:active:bg-alert-container-hovered",
816
+ "focus-visible:bg-alert-container-hovered"
817
+ ])
818
+ },
819
+ {
820
+ intent: "danger",
821
+ design: "contrast",
822
+ class: (0, import_internal_utils7.tw)([
823
+ "text-error",
824
+ "hover:bg-error-container-hovered",
825
+ "enabled:active:bg-error-container-hovered",
826
+ "focus-visible:bg-error-container-hovered"
827
+ ])
828
+ },
829
+ {
830
+ intent: "info",
831
+ design: "contrast",
832
+ class: (0, import_internal_utils7.tw)([
833
+ "text-info",
834
+ "hover:bg-info-container-hovered",
835
+ "enabled:active:bg-info-container-hovered",
836
+ "focus-visible:bg-info-container-hovered"
837
+ ])
838
+ },
839
+ {
840
+ intent: "neutral",
841
+ design: "contrast",
842
+ class: (0, import_internal_utils7.tw)([
843
+ "text-neutral",
844
+ "hover:bg-neutral-container-hovered",
845
+ "enabled:active:bg-neutral-container-hovered",
846
+ "focus-visible:bg-neutral-container-hovered"
847
+ ])
848
+ },
849
+ {
850
+ intent: "surface",
851
+ design: "contrast",
852
+ class: (0, import_internal_utils7.tw)([
853
+ "text-on-surface",
854
+ "hover:bg-surface-hovered",
855
+ "enabled:active:bg-surface-hovered",
856
+ "focus-visible:bg-surface-hovered"
857
+ ])
858
+ }
859
+ ];
860
+
861
+ // src/button/Button.styles.tsx
862
+ var buttonStyles = (0, import_class_variance_authority4.cva)(
863
+ [
864
+ "u-shadow-border-transition",
865
+ "box-border inline-flex items-center justify-center gap-md whitespace-nowrap",
866
+ "px-lg",
867
+ "text-body-1 font-bold",
868
+ "focus-visible:u-outline"
869
+ ],
870
+ {
871
+ variants: {
872
+ /**
873
+ * Main style of the button.
874
+ *
875
+ * - `filled`: Button will be plain.
876
+ *
877
+ * - `outlined`: Button will be transparent with an outline.
878
+ *
879
+ * - `tinted`: Button will be filled but using a lighter color scheme.
880
+ *
881
+ * - `ghost`: Button will look like a link. No borders, plain text.
882
+ *
883
+ * - `contrast`: Button will be surface filled. No borders, plain text.
884
+ *
885
+ */
886
+ design: (0, import_internal_utils8.makeVariants)({
887
+ filled: [],
888
+ outlined: ["bg-transparent", "border-sm", "border-current"],
889
+ tinted: [],
890
+ ghost: [],
891
+ contrast: ["bg-surface"]
892
+ }),
893
+ /**
894
+ * Color scheme of the button.
895
+ */
896
+ intent: (0, import_internal_utils8.makeVariants)({
897
+ main: [],
898
+ support: [],
899
+ accent: [],
900
+ basic: [],
901
+ success: [],
902
+ alert: [],
903
+ danger: [],
904
+ info: [],
905
+ neutral: [],
906
+ surface: []
907
+ }),
908
+ /**
909
+ * Size of the button.
910
+ */
911
+ size: (0, import_internal_utils8.makeVariants)({
912
+ sm: ["min-w-sz-32", "h-sz-32"],
913
+ md: ["min-w-sz-44", "h-sz-44"],
914
+ lg: ["min-w-sz-56", "h-sz-56"]
915
+ }),
916
+ /**
917
+ * Shape of the button.
918
+ */
919
+ shape: (0, import_internal_utils8.makeVariants)({
920
+ rounded: ["rounded-lg"],
921
+ square: ["rounded-0"],
922
+ pill: ["rounded-full"]
923
+ }),
924
+ /**
925
+ * Disable the button, preventing user interaction and adding opacity.
926
+ */
927
+ disabled: {
928
+ true: ["cursor-not-allowed", "opacity-dim-3"],
929
+ false: ["cursor-pointer"]
930
+ }
931
+ },
932
+ compoundVariants: [
933
+ ...filledVariants,
934
+ ...outlinedVariants,
935
+ ...tintedVariants,
936
+ ...ghostVariants,
937
+ ...contrastVariants
938
+ ],
939
+ defaultVariants: {
940
+ design: "filled",
941
+ intent: "main",
942
+ size: "md",
943
+ shape: "rounded"
944
+ }
945
+ }
946
+ );
947
+
948
+ // src/button/Button.tsx
949
+ var import_jsx_runtime9 = require("react/jsx-runtime");
950
+ var blockedEventHandlers = [
951
+ "onClick",
952
+ "onMouseDown",
953
+ "onMouseUp",
954
+ "onMouseEnter",
955
+ "onMouseLeave",
956
+ "onMouseOver",
957
+ "onMouseOut",
958
+ "onKeyDown",
959
+ "onKeyPress",
960
+ "onKeyUp",
961
+ "onSubmit"
962
+ ];
963
+ var Button = ({
964
+ children,
965
+ design = "filled",
966
+ disabled = false,
967
+ intent = "main",
968
+ isLoading = false,
969
+ loadingLabel,
970
+ loadingText,
971
+ shape = "rounded",
972
+ size = "md",
973
+ asChild,
974
+ className,
975
+ ref,
976
+ ...others
977
+ }) => {
978
+ const Component = asChild ? Slot : "button";
979
+ const shouldNotInteract = !!disabled || isLoading;
980
+ const disabledEventHandlers = (0, import_react4.useMemo)(() => {
981
+ const result = {};
982
+ if (shouldNotInteract) {
983
+ blockedEventHandlers.forEach((eventHandler) => result[eventHandler] = void 0);
984
+ }
985
+ return result;
986
+ }, [shouldNotInteract]);
987
+ const spinnerProps = {
988
+ size: "current",
989
+ className: loadingText ? "inline-block" : "absolute",
990
+ ...loadingLabel && { "aria-label": loadingLabel }
991
+ };
992
+ return /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
993
+ Component,
994
+ {
995
+ "data-spark-component": "button",
996
+ ...Component === "button" && { type: "button" },
997
+ ref,
998
+ className: buttonStyles({
999
+ className,
1000
+ design,
1001
+ disabled: shouldNotInteract,
1002
+ intent,
1003
+ shape,
1004
+ size
1005
+ }),
1006
+ disabled: !!disabled,
1007
+ "aria-busy": isLoading,
1008
+ "aria-live": isLoading ? "assertive" : "off",
1009
+ ...others,
1010
+ ...disabledEventHandlers,
1011
+ children: wrapPolymorphicSlot(
1012
+ asChild,
1013
+ children,
1014
+ (slotted) => isLoading ? /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)(import_jsx_runtime9.Fragment, { children: [
1015
+ /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(Spinner, { ...spinnerProps }),
1016
+ loadingText && loadingText,
1017
+ /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
1018
+ "div",
1019
+ {
1020
+ "aria-hidden": true,
1021
+ className: (0, import_class_variance_authority5.cx)("gap-md", loadingText ? "hidden" : "inline-flex opacity-0"),
1022
+ children: slotted
1023
+ }
1024
+ )
1025
+ ] }) : slotted
1026
+ )
1027
+ }
1028
+ );
1029
+ };
1030
+ Button.displayName = "Button";
1031
+
1032
+ // src/icon-button/IconButton.styles.tsx
1033
+ var import_internal_utils9 = require("@spark-ui/internal-utils");
1034
+ var import_class_variance_authority6 = require("class-variance-authority");
1035
+ var iconButtonStyles = (0, import_class_variance_authority6.cva)(["pl-0 pr-0"], {
1036
+ variants: {
1037
+ /**
1038
+ * Sets the size of the icon.
1039
+ */
1040
+ size: (0, import_internal_utils9.makeVariants)({
1041
+ sm: ["text-body-1"],
1042
+ md: ["text-body-1"],
1043
+ lg: ["text-display-3"]
1044
+ })
1045
+ }
1046
+ });
1047
+
1048
+ // src/icon-button/IconButton.tsx
1049
+ var import_jsx_runtime10 = require("react/jsx-runtime");
1050
+ var IconButton = ({
1051
+ design = "filled",
1052
+ disabled = false,
1053
+ intent = "main",
1054
+ shape = "rounded",
1055
+ size = "md",
1056
+ className,
1057
+ ref,
1058
+ ...others
1059
+ }) => {
1060
+ return /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
1061
+ Button,
1062
+ {
1063
+ ref,
1064
+ className: iconButtonStyles({ size, className }),
1065
+ design,
1066
+ disabled,
1067
+ intent,
1068
+ shape,
1069
+ size,
1070
+ ...others
1071
+ }
1072
+ );
1073
+ };
1074
+ IconButton.displayName = "IconButton";
1075
+
1076
+ // src/popover/PopoverCloseButton.tsx
1077
+ var import_jsx_runtime11 = require("react/jsx-runtime");
1078
+ var CloseButton = ({
1079
+ "aria-label": ariaLabel,
1080
+ className,
1081
+ ref,
1082
+ ...rest
1083
+ }) => {
1084
+ return /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
1085
+ import_radix_ui5.Popover.Close,
1086
+ {
1087
+ "data-spark-component": "popover-close-button",
1088
+ ref,
1089
+ className: (0, import_class_variance_authority7.cx)("right-md top-md absolute", className),
1090
+ asChild: true,
1091
+ ...rest,
1092
+ children: /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(IconButton, { size: "sm", intent: "neutral", design: "ghost", "aria-label": ariaLabel, children: /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(Icon, { children: /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_Close.Close, {}) }) })
1093
+ }
1094
+ );
1095
+ };
1096
+ CloseButton.displayName = "Popover.CloseButton";
1097
+
1098
+ // src/popover/PopoverContent.tsx
1099
+ var import_radix_ui6 = require("radix-ui");
1100
+
1101
+ // src/popover/PopoverContent.styles.ts
1102
+ var import_class_variance_authority8 = require("class-variance-authority");
1103
+ var styles = (0, import_class_variance_authority8.cva)(
1104
+ [
1105
+ "rounded-md",
1106
+ "shadow-sm",
1107
+ "focus-visible:outline-hidden focus-visible:u-outline",
1108
+ "max-h-(--radix-popper-available-height) overflow-y-auto"
1109
+ ],
1110
+ {
1111
+ variants: {
1112
+ intent: {
1113
+ surface: "bg-surface text-on-surface",
1114
+ main: "bg-main-container text-on-main-container",
1115
+ support: "bg-support-container text-on-support-container",
1116
+ accent: "bg-accent-container text-on-accent-container",
1117
+ basic: "bg-basic-container text-on-basic-container",
1118
+ success: "bg-success-container text-on-success-container",
1119
+ alert: "bg-alert-container text-on-alert-container",
1120
+ danger: "bg-error-container text-on-error-container",
1121
+ info: "bg-info-container text-on-info-container",
1122
+ neutral: "bg-neutral-container text-on-neutral-container"
1123
+ },
1124
+ matchTriggerWidth: {
1125
+ true: "w-(--radix-popper-anchor-width)"
1126
+ },
1127
+ enforceBoundaries: {
1128
+ true: ["max-w-(--radix-popper-available-width)"]
1129
+ },
1130
+ inset: {
1131
+ true: "overflow-hidden",
1132
+ false: "p-lg"
1133
+ },
1134
+ elevation: {
1135
+ dropdown: "z-dropdown",
1136
+ popover: "z-popover"
1137
+ }
1138
+ },
1139
+ compoundVariants: [
1140
+ {
1141
+ inset: false,
1142
+ /**
1143
+ * When there is a close button, padding to the right side must be adjusted to avoid content overlapping with it.
1144
+ */
1145
+ class: "has-data-[spark-component=popover-close-button]:pr-3xl"
1146
+ },
1147
+ {
1148
+ enforceBoundaries: false,
1149
+ matchTriggerWidth: false,
1150
+ class: "max-w-[min(var(--spacing-sz-384),100vw)]"
1151
+ }
1152
+ ],
1153
+ defaultVariants: {
1154
+ matchTriggerWidth: false,
1155
+ enforceBoundaries: false,
1156
+ inset: false,
1157
+ intent: "surface",
1158
+ elevation: "popover"
1159
+ }
1160
+ }
1161
+ );
1162
+
1163
+ // src/popover/PopoverContent.tsx
1164
+ var import_jsx_runtime12 = require("react/jsx-runtime");
1165
+ var Content = ({
1166
+ // Spark props
1167
+ className,
1168
+ children,
1169
+ matchTriggerWidth = false,
1170
+ // Radix props
1171
+ align = "center",
1172
+ arrowPadding = 16,
1173
+ // In order not to overlap the arrow on the rounded corners of the popover.
1174
+ asChild = false,
1175
+ avoidCollisions = true,
1176
+ "aria-labelledby": ariaLabelledBy,
1177
+ collisionBoundary,
1178
+ collisionPadding = 0,
1179
+ hideWhenDetached = false,
1180
+ side = "bottom",
1181
+ sideOffset = 8,
1182
+ sticky = "partial",
1183
+ inset = false,
1184
+ elevation = "popover",
1185
+ ref,
1186
+ ...rest
1187
+ }) => {
1188
+ const { headerId, intent } = usePopover();
1189
+ return /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
1190
+ import_radix_ui6.Popover.Content,
1191
+ {
1192
+ "aria-labelledby": headerId || ariaLabelledBy,
1193
+ className: styles({
1194
+ enforceBoundaries: !!collisionBoundary,
1195
+ matchTriggerWidth,
1196
+ inset,
1197
+ elevation,
1198
+ intent,
1199
+ className
1200
+ }),
1201
+ "data-spark-component": "popover-content",
1202
+ ref,
1203
+ ...{
1204
+ align,
1205
+ arrowPadding,
1206
+ asChild,
1207
+ avoidCollisions,
1208
+ collisionBoundary,
1209
+ collisionPadding,
1210
+ hideWhenDetached,
1211
+ side,
1212
+ sideOffset,
1213
+ sticky
1214
+ },
1215
+ ...rest,
1216
+ children
1217
+ }
1218
+ );
1219
+ };
1220
+ Content.displayName = "Popover.Content";
1221
+
1222
+ // src/popover/PopoverHeader.tsx
1223
+ var import_class_variance_authority9 = require("class-variance-authority");
1224
+ var import_react5 = require("react");
1225
+ var import_jsx_runtime13 = require("react/jsx-runtime");
1226
+ var Header = ({ children, className, ref, ...rest }) => {
1227
+ const id = `${ID_PREFIX}-header-${(0, import_react5.useId)()}`;
1228
+ const { setHeaderId } = usePopover();
1229
+ (0, import_react5.useLayoutEffect)(() => {
1230
+ setHeaderId(id);
1231
+ return () => setHeaderId(null);
1232
+ }, [id, setHeaderId]);
1233
+ return /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("header", { id, ref, className: (0, import_class_variance_authority9.cx)("mb-md text-headline-2", className), ...rest, children });
1234
+ };
1235
+ Header.displayName = "Popover.Header";
1236
+
1237
+ // src/popover/PopoverPortal.tsx
1238
+ var import_radix_ui7 = require("radix-ui");
1239
+ var import_jsx_runtime14 = require("react/jsx-runtime");
1240
+ var Portal = ({ children, ...rest }) => /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(import_radix_ui7.Popover.Portal, { ...rest, children });
1241
+ Portal.displayName = "Popover.Portal";
1242
+
1243
+ // src/popover/PopoverTrigger.tsx
1244
+ var import_radix_ui8 = require("radix-ui");
1245
+ var import_jsx_runtime15 = require("react/jsx-runtime");
1246
+ var Trigger = ({ asChild = false, children, ref, ...rest }) => /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
1247
+ import_radix_ui8.Popover.Trigger,
1248
+ {
1249
+ "data-spark-component": "popover-trigger",
1250
+ ref,
1251
+ asChild,
1252
+ ...rest,
1253
+ children
1254
+ }
1255
+ );
1256
+ Trigger.displayName = "Popover.Trigger";
1257
+
1258
+ // src/popover/index.ts
1259
+ var Popover2 = Object.assign(Popover, {
1260
+ Anchor,
1261
+ Arrow,
1262
+ CloseButton,
1263
+ Content,
1264
+ Header,
1265
+ Portal,
1266
+ Trigger
1267
+ });
1268
+ Popover2.displayName = "Popover";
1269
+ Anchor.displayName = "Popover.Anchor";
1270
+ Arrow.displayName = "Popover.Arrow";
1271
+ CloseButton.displayName = "Popover.CloseButton";
1272
+ Content.displayName = "Popover.Content";
1273
+ Header.displayName = "Popover.Header";
1274
+ Portal.displayName = "Popover.Portal";
1275
+ Trigger.displayName = "Popover.Trigger";
1276
+ // Annotate the CommonJS export names for ESM import in node:
1277
+ 0 && (module.exports = {
1278
+ Popover
1279
+ });
1280
+ //# sourceMappingURL=index.js.map