@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,877 @@
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/button/index.ts
21
+ var button_exports = {};
22
+ __export(button_exports, {
23
+ Button: () => Button
24
+ });
25
+ module.exports = __toCommonJS(button_exports);
26
+
27
+ // src/button/Button.tsx
28
+ var import_class_variance_authority3 = require("class-variance-authority");
29
+ var import_react2 = require("react");
30
+
31
+ // src/slot/Slot.tsx
32
+ var import_radix_ui = require("radix-ui");
33
+ var import_react = require("react");
34
+ var import_jsx_runtime = require("react/jsx-runtime");
35
+ var Slottable = import_radix_ui.Slot.Slottable;
36
+ var Slot = ({ ref, ...props }) => {
37
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_radix_ui.Slot.Root, { ref, ...props });
38
+ };
39
+ var wrapPolymorphicSlot = (asChild, children, callback) => {
40
+ if (!asChild) return callback(children);
41
+ return (0, import_react.isValidElement)(children) ? (0, import_react.cloneElement)(
42
+ children,
43
+ void 0,
44
+ callback(children.props.children)
45
+ ) : null;
46
+ };
47
+
48
+ // src/visually-hidden/VisuallyHidden.tsx
49
+ var import_jsx_runtime2 = require("react/jsx-runtime");
50
+ var VisuallyHidden = ({ asChild = false, ref, ...props }) => {
51
+ const Component = asChild ? Slot : "span";
52
+ return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
53
+ Component,
54
+ {
55
+ ...props,
56
+ ref,
57
+ style: {
58
+ // See: https://github.com/twbs/bootstrap/blob/main/scss/mixins/_visually-hidden.scss
59
+ position: "absolute",
60
+ border: 0,
61
+ width: 1,
62
+ height: 1,
63
+ padding: 0,
64
+ margin: -1,
65
+ overflow: "hidden",
66
+ clip: "rect(0, 0, 0, 0)",
67
+ whiteSpace: "nowrap",
68
+ wordWrap: "normal",
69
+ ...props.style
70
+ }
71
+ }
72
+ );
73
+ };
74
+ VisuallyHidden.displayName = "VisuallyHidden";
75
+
76
+ // src/spinner/Spinner.styles.tsx
77
+ var import_internal_utils = require("@spark-ui/internal-utils");
78
+ var import_class_variance_authority = require("class-variance-authority");
79
+ var defaultVariants = {
80
+ intent: "current",
81
+ size: "current",
82
+ isBackgroundVisible: false
83
+ };
84
+ var spinnerStyles = (0, import_class_variance_authority.cva)(
85
+ ["inline-block", "border-solid", "rounded-full", "border-md", "animate-spin"],
86
+ {
87
+ variants: {
88
+ /**
89
+ * 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.
90
+ */
91
+ size: {
92
+ current: ["u-current-font-size"],
93
+ sm: ["w-sz-20", "h-sz-20"],
94
+ md: ["w-sz-28", "h-sz-28"],
95
+ full: ["w-full", "h-full"]
96
+ },
97
+ /**
98
+ * Color scheme of the spinner.
99
+ */
100
+ intent: (0, import_internal_utils.makeVariants)({
101
+ current: ["border-current"],
102
+ main: ["border-main"],
103
+ support: ["border-support"],
104
+ accent: ["border-accent"],
105
+ basic: ["border-basic"],
106
+ success: ["border-success"],
107
+ alert: ["border-alert"],
108
+ error: ["border-error"],
109
+ info: ["border-info"],
110
+ neutral: ["border-neutral"]
111
+ }),
112
+ /**
113
+ * Size of the button.
114
+ */
115
+ isBackgroundVisible: {
116
+ true: ["border-b-neutral-container", "border-l-neutral-container"],
117
+ false: ["border-b-transparent", "border-l-transparent"]
118
+ }
119
+ },
120
+ defaultVariants
121
+ }
122
+ );
123
+
124
+ // src/spinner/Spinner.tsx
125
+ var import_jsx_runtime3 = require("react/jsx-runtime");
126
+ var Spinner = ({
127
+ className,
128
+ size = "current",
129
+ intent = "current",
130
+ label,
131
+ isBackgroundVisible,
132
+ ref,
133
+ ...others
134
+ }) => {
135
+ return /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
136
+ "span",
137
+ {
138
+ role: "status",
139
+ "data-spark-component": "spinner",
140
+ ref,
141
+ className: spinnerStyles({ className, size, intent, isBackgroundVisible }),
142
+ ...others,
143
+ children: label && /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(VisuallyHidden, { children: label })
144
+ }
145
+ );
146
+ };
147
+
148
+ // src/button/Button.styles.tsx
149
+ var import_internal_utils7 = require("@spark-ui/internal-utils");
150
+ var import_class_variance_authority2 = require("class-variance-authority");
151
+
152
+ // src/button/variants/filled.ts
153
+ var import_internal_utils2 = require("@spark-ui/internal-utils");
154
+ var filledVariants = [
155
+ // Main
156
+ {
157
+ intent: "main",
158
+ design: "filled",
159
+ class: (0, import_internal_utils2.tw)([
160
+ "bg-main",
161
+ "text-on-main",
162
+ "hover:bg-main-hovered",
163
+ "enabled:active:bg-main-hovered",
164
+ "focus-visible:bg-main-hovered"
165
+ ])
166
+ },
167
+ // Support
168
+ {
169
+ intent: "support",
170
+ design: "filled",
171
+ class: (0, import_internal_utils2.tw)([
172
+ "bg-support",
173
+ "text-on-support",
174
+ "hover:bg-support-hovered",
175
+ "enabled:active:bg-support-hovered",
176
+ "focus-visible:bg-support-hovered"
177
+ ])
178
+ },
179
+ // Accent
180
+ {
181
+ intent: "accent",
182
+ design: "filled",
183
+ class: (0, import_internal_utils2.tw)([
184
+ "bg-accent",
185
+ "text-on-accent",
186
+ "hover:bg-accent-hovered",
187
+ "enabled:active:bg-accent-hovered",
188
+ "focus-visible:bg-accent-hovered"
189
+ ])
190
+ },
191
+ // Basic
192
+ {
193
+ intent: "basic",
194
+ design: "filled",
195
+ class: (0, import_internal_utils2.tw)([
196
+ "bg-basic",
197
+ "text-on-basic",
198
+ "hover:bg-basic-hovered",
199
+ "enabled:active:bg-basic-hovered",
200
+ "focus-visible:bg-basic-hovered"
201
+ ])
202
+ },
203
+ // Success
204
+ {
205
+ intent: "success",
206
+ design: "filled",
207
+ class: (0, import_internal_utils2.tw)([
208
+ "bg-success",
209
+ "text-on-success",
210
+ "hover:bg-success-hovered",
211
+ "enabled:active:bg-success-hovered",
212
+ "focus-visible:bg-success-hovered"
213
+ ])
214
+ },
215
+ // Alert
216
+ {
217
+ intent: "alert",
218
+ design: "filled",
219
+ class: (0, import_internal_utils2.tw)([
220
+ "bg-alert",
221
+ "text-on-alert",
222
+ "hover:bg-alert-hovered",
223
+ "enabled:active:bg-alert-hovered",
224
+ "focus-visible:bg-alert-hovered"
225
+ ])
226
+ },
227
+ // Danger
228
+ {
229
+ intent: "danger",
230
+ design: "filled",
231
+ class: (0, import_internal_utils2.tw)([
232
+ "text-on-error bg-error",
233
+ "hover:bg-error-hovered enabled:active:bg-error-hovered",
234
+ "focus-visible:bg-error-hovered"
235
+ ])
236
+ },
237
+ // Info
238
+ {
239
+ intent: "info",
240
+ design: "filled",
241
+ class: (0, import_internal_utils2.tw)([
242
+ "text-on-error bg-info",
243
+ "hover:bg-info-hovered enabled:active:bg-info-hovered",
244
+ "focus-visible:bg-info-hovered"
245
+ ])
246
+ },
247
+ // Neutral
248
+ {
249
+ intent: "neutral",
250
+ design: "filled",
251
+ class: (0, import_internal_utils2.tw)([
252
+ "bg-neutral",
253
+ "text-on-neutral",
254
+ "hover:bg-neutral-hovered",
255
+ "enabled:active:bg-neutral-hovered",
256
+ "focus-visible:bg-neutral-hovered"
257
+ ])
258
+ },
259
+ // Surface
260
+ {
261
+ intent: "surface",
262
+ design: "filled",
263
+ class: (0, import_internal_utils2.tw)([
264
+ "bg-surface",
265
+ "text-on-surface",
266
+ "hover:bg-surface-hovered",
267
+ "enabled:active:bg-surface-hovered",
268
+ "focus-visible:bg-surface-hovered"
269
+ ])
270
+ }
271
+ ];
272
+
273
+ // src/button/variants/ghost.ts
274
+ var import_internal_utils3 = require("@spark-ui/internal-utils");
275
+ var ghostVariants = [
276
+ {
277
+ intent: "main",
278
+ design: "ghost",
279
+ class: (0, import_internal_utils3.tw)([
280
+ "text-main",
281
+ "hover:bg-main/dim-5",
282
+ "enabled:active:bg-main/dim-5",
283
+ "focus-visible:bg-main/dim-5"
284
+ ])
285
+ },
286
+ {
287
+ intent: "support",
288
+ design: "ghost",
289
+ class: (0, import_internal_utils3.tw)([
290
+ "text-support",
291
+ "hover:bg-support/dim-5",
292
+ "enabled:active:bg-support/dim-5",
293
+ "focus-visible:bg-support/dim-5"
294
+ ])
295
+ },
296
+ {
297
+ intent: "accent",
298
+ design: "ghost",
299
+ class: (0, import_internal_utils3.tw)([
300
+ "text-accent",
301
+ "hover:bg-accent/dim-5",
302
+ "enabled:active:bg-accent/dim-5",
303
+ "focus-visible:bg-accent/dim-5"
304
+ ])
305
+ },
306
+ {
307
+ intent: "basic",
308
+ design: "ghost",
309
+ class: (0, import_internal_utils3.tw)([
310
+ "text-basic",
311
+ "hover:bg-basic/dim-5",
312
+ "enabled:active:bg-basic/dim-5",
313
+ "focus-visible:bg-basic/dim-5"
314
+ ])
315
+ },
316
+ {
317
+ intent: "success",
318
+ design: "ghost",
319
+ class: (0, import_internal_utils3.tw)([
320
+ "text-success",
321
+ "hover:bg-success/dim-5",
322
+ "enabled:active:bg-success/dim-5",
323
+ "focus-visible:bg-success/dim-5"
324
+ ])
325
+ },
326
+ {
327
+ intent: "alert",
328
+ design: "ghost",
329
+ class: (0, import_internal_utils3.tw)([
330
+ "text-alert",
331
+ "hover:bg-alert/dim-5",
332
+ "enabled:active:bg-alert/dim-5",
333
+ "focus-visible:bg-alert/dim-5"
334
+ ])
335
+ },
336
+ {
337
+ intent: "danger",
338
+ design: "ghost",
339
+ class: (0, import_internal_utils3.tw)([
340
+ "text-error",
341
+ "hover:bg-error/dim-5",
342
+ "enabled:active:bg-error/dim-5",
343
+ "focus-visible:bg-error/dim-5"
344
+ ])
345
+ },
346
+ {
347
+ intent: "info",
348
+ design: "ghost",
349
+ class: (0, import_internal_utils3.tw)([
350
+ "text-info",
351
+ "hover:bg-info/dim-5",
352
+ "enabled:active:bg-info/dim-5",
353
+ "focus-visible:bg-info/dim-5"
354
+ ])
355
+ },
356
+ {
357
+ intent: "neutral",
358
+ design: "ghost",
359
+ class: (0, import_internal_utils3.tw)([
360
+ "text-neutral",
361
+ "hover:bg-neutral/dim-5",
362
+ "enabled:active:bg-neutral/dim-5",
363
+ "focus-visible:bg-neutral/dim-5"
364
+ ])
365
+ },
366
+ {
367
+ intent: "surface",
368
+ design: "ghost",
369
+ class: (0, import_internal_utils3.tw)([
370
+ "text-surface",
371
+ "hover:bg-surface/dim-5",
372
+ "enabled:active:bg-surface/dim-5",
373
+ "focus-visible:bg-surface/dim-5"
374
+ ])
375
+ }
376
+ ];
377
+
378
+ // src/button/variants/outlined.ts
379
+ var import_internal_utils4 = require("@spark-ui/internal-utils");
380
+ var outlinedVariants = [
381
+ {
382
+ intent: "main",
383
+ design: "outlined",
384
+ class: (0, import_internal_utils4.tw)([
385
+ "hover:bg-main/dim-5",
386
+ "enabled:active:bg-main/dim-5",
387
+ "focus-visible:bg-main/dim-5",
388
+ "text-main"
389
+ ])
390
+ },
391
+ {
392
+ intent: "support",
393
+ design: "outlined",
394
+ class: (0, import_internal_utils4.tw)([
395
+ "hover:bg-support/dim-5",
396
+ "enabled:active:bg-support/dim-5",
397
+ "focus-visible:bg-support/dim-5",
398
+ "text-support"
399
+ ])
400
+ },
401
+ {
402
+ intent: "accent",
403
+ design: "outlined",
404
+ class: (0, import_internal_utils4.tw)([
405
+ "hover:bg-accent/dim-5",
406
+ "enabled:active:bg-accent/dim-5",
407
+ "focus-visible:bg-accent/dim-5",
408
+ "text-accent"
409
+ ])
410
+ },
411
+ {
412
+ intent: "basic",
413
+ design: "outlined",
414
+ class: (0, import_internal_utils4.tw)([
415
+ "hover:bg-basic/dim-5",
416
+ "enabled:active:bg-basic/dim-5",
417
+ "focus-visible:bg-basic/dim-5",
418
+ "text-basic"
419
+ ])
420
+ },
421
+ {
422
+ intent: "success",
423
+ design: "outlined",
424
+ class: (0, import_internal_utils4.tw)([
425
+ "hover:bg-success/dim-5",
426
+ "enabled:active:bg-success/dim-5",
427
+ "focus-visible:bg-success/dim-5",
428
+ "text-success"
429
+ ])
430
+ },
431
+ {
432
+ intent: "alert",
433
+ design: "outlined",
434
+ class: (0, import_internal_utils4.tw)([
435
+ "hover:bg-alert/dim-5",
436
+ "enabled:active:bg-alert/dim-5",
437
+ "focus-visible:bg-alert/dim-5",
438
+ "text-alert"
439
+ ])
440
+ },
441
+ {
442
+ intent: "danger",
443
+ design: "outlined",
444
+ class: (0, import_internal_utils4.tw)([
445
+ "hover:bg-error/dim-5",
446
+ "enabled:active:bg-error/dim-5",
447
+ "focus-visible:bg-error/dim-5",
448
+ "text-error"
449
+ ])
450
+ },
451
+ {
452
+ intent: "info",
453
+ design: "outlined",
454
+ class: (0, import_internal_utils4.tw)([
455
+ "hover:bg-info/dim-5",
456
+ "enabled:active:bg-info/dim-5",
457
+ "focus-visible:bg-info/dim-5",
458
+ "text-info"
459
+ ])
460
+ },
461
+ {
462
+ intent: "neutral",
463
+ design: "outlined",
464
+ class: (0, import_internal_utils4.tw)([
465
+ "hover:bg-neutral/dim-5",
466
+ "enabled:active:bg-neutral/dim-5",
467
+ "focus-visible:bg-neutral/dim-5",
468
+ "text-neutral"
469
+ ])
470
+ },
471
+ {
472
+ intent: "surface",
473
+ design: "outlined",
474
+ class: (0, import_internal_utils4.tw)([
475
+ "hover:bg-surface/dim-5",
476
+ "enabled:active:bg-surface/dim-5",
477
+ "focus-visible:bg-surface/dim-5",
478
+ "text-surface"
479
+ ])
480
+ }
481
+ ];
482
+
483
+ // src/button/variants/tinted.ts
484
+ var import_internal_utils5 = require("@spark-ui/internal-utils");
485
+ var tintedVariants = [
486
+ {
487
+ intent: "main",
488
+ design: "tinted",
489
+ class: (0, import_internal_utils5.tw)([
490
+ "bg-main-container",
491
+ "text-on-main-container",
492
+ "hover:bg-main-container-hovered",
493
+ "enabled:active:bg-main-container-hovered",
494
+ "focus-visible:bg-main-container-hovered"
495
+ ])
496
+ },
497
+ {
498
+ intent: "support",
499
+ design: "tinted",
500
+ class: (0, import_internal_utils5.tw)([
501
+ "bg-support-container",
502
+ "text-on-support-container",
503
+ "hover:bg-support-container-hovered",
504
+ "enabled:active:bg-support-container-hovered",
505
+ "focus-visible:bg-support-container-hovered"
506
+ ])
507
+ },
508
+ {
509
+ intent: "accent",
510
+ design: "tinted",
511
+ class: (0, import_internal_utils5.tw)([
512
+ "bg-accent-container",
513
+ "text-on-accent-container",
514
+ "hover:bg-accent-container-hovered",
515
+ "enabled:active:bg-accent-container-hovered",
516
+ "focus-visible:bg-accent-container-hovered"
517
+ ])
518
+ },
519
+ {
520
+ intent: "basic",
521
+ design: "tinted",
522
+ class: (0, import_internal_utils5.tw)([
523
+ "bg-basic-container",
524
+ "text-on-basic-container",
525
+ "hover:bg-basic-container-hovered",
526
+ "enabled:active:bg-basic-container-hovered",
527
+ "focus-visible:bg-basic-container-hovered"
528
+ ])
529
+ },
530
+ {
531
+ intent: "success",
532
+ design: "tinted",
533
+ class: (0, import_internal_utils5.tw)([
534
+ "bg-success-container",
535
+ "text-on-success-container",
536
+ "hover:bg-success-container-hovered",
537
+ "enabled:active:bg-success-container-hovered",
538
+ "focus-visible:bg-success-container-hovered"
539
+ ])
540
+ },
541
+ {
542
+ intent: "alert",
543
+ design: "tinted",
544
+ class: (0, import_internal_utils5.tw)([
545
+ "bg-alert-container",
546
+ "text-on-alert-container",
547
+ "hover:bg-alert-container-hovered",
548
+ "enabled:active:bg-alert-container-hovered",
549
+ "focus-visible:bg-alert-container-hovered"
550
+ ])
551
+ },
552
+ {
553
+ intent: "danger",
554
+ design: "tinted",
555
+ class: (0, import_internal_utils5.tw)([
556
+ "bg-error-container",
557
+ "text-on-error-container",
558
+ "hover:bg-error-container-hovered",
559
+ "enabled:active:bg-error-container-hovered",
560
+ "focus-visible:bg-error-container-hovered"
561
+ ])
562
+ },
563
+ {
564
+ intent: "info",
565
+ design: "tinted",
566
+ class: (0, import_internal_utils5.tw)([
567
+ "bg-info-container",
568
+ "text-on-info-container",
569
+ "hover:bg-info-container-hovered",
570
+ "enabled:active:bg-info-container-hovered",
571
+ "focus-visible:bg-info-container-hovered"
572
+ ])
573
+ },
574
+ {
575
+ intent: "neutral",
576
+ design: "tinted",
577
+ class: (0, import_internal_utils5.tw)([
578
+ "bg-neutral-container",
579
+ "text-on-neutral-container",
580
+ "hover:bg-neutral-container-hovered",
581
+ "enabled:active:bg-neutral-container-hovered",
582
+ "focus-visible:bg-neutral-container-hovered"
583
+ ])
584
+ },
585
+ {
586
+ intent: "surface",
587
+ design: "tinted",
588
+ class: (0, import_internal_utils5.tw)([
589
+ "bg-surface",
590
+ "text-on-surface",
591
+ "hover:bg-surface-hovered",
592
+ "enabled:active:bg-surface-hovered",
593
+ "focus-visible:bg-surface-hovered"
594
+ ])
595
+ }
596
+ ];
597
+
598
+ // src/button/variants/contrast.ts
599
+ var import_internal_utils6 = require("@spark-ui/internal-utils");
600
+ var contrastVariants = [
601
+ {
602
+ intent: "main",
603
+ design: "contrast",
604
+ class: (0, import_internal_utils6.tw)([
605
+ "text-main",
606
+ "hover:bg-main-container-hovered",
607
+ "enabled:active:bg-main-container-hovered",
608
+ "focus-visible:bg-main-container-hovered"
609
+ ])
610
+ },
611
+ {
612
+ intent: "support",
613
+ design: "contrast",
614
+ class: (0, import_internal_utils6.tw)([
615
+ "text-support",
616
+ "hover:bg-support-container-hovered",
617
+ "enabled:active:bg-support-container-hovered",
618
+ "focus-visible:bg-support-container-hovered"
619
+ ])
620
+ },
621
+ {
622
+ intent: "accent",
623
+ design: "contrast",
624
+ class: (0, import_internal_utils6.tw)([
625
+ "text-accent",
626
+ "hover:bg-accent-container-hovered",
627
+ "enabled:active:bg-accent-container-hovered",
628
+ "focus-visible:bg-accent-container-hovered"
629
+ ])
630
+ },
631
+ {
632
+ intent: "basic",
633
+ design: "contrast",
634
+ class: (0, import_internal_utils6.tw)([
635
+ "text-basic",
636
+ "hover:bg-basic-container-hovered",
637
+ "enabled:active:bg-basic-container-hovered",
638
+ "focus-visible:bg-basic-container-hovered"
639
+ ])
640
+ },
641
+ {
642
+ intent: "success",
643
+ design: "contrast",
644
+ class: (0, import_internal_utils6.tw)([
645
+ "text-success",
646
+ "hover:bg-success-container-hovered",
647
+ "enabled:active:bg-success-container-hovered",
648
+ "focus-visible:bg-success-container-hovered"
649
+ ])
650
+ },
651
+ {
652
+ intent: "alert",
653
+ design: "contrast",
654
+ class: (0, import_internal_utils6.tw)([
655
+ "text-alert",
656
+ "hover:bg-alert-container-hovered",
657
+ "enabled:active:bg-alert-container-hovered",
658
+ "focus-visible:bg-alert-container-hovered"
659
+ ])
660
+ },
661
+ {
662
+ intent: "danger",
663
+ design: "contrast",
664
+ class: (0, import_internal_utils6.tw)([
665
+ "text-error",
666
+ "hover:bg-error-container-hovered",
667
+ "enabled:active:bg-error-container-hovered",
668
+ "focus-visible:bg-error-container-hovered"
669
+ ])
670
+ },
671
+ {
672
+ intent: "info",
673
+ design: "contrast",
674
+ class: (0, import_internal_utils6.tw)([
675
+ "text-info",
676
+ "hover:bg-info-container-hovered",
677
+ "enabled:active:bg-info-container-hovered",
678
+ "focus-visible:bg-info-container-hovered"
679
+ ])
680
+ },
681
+ {
682
+ intent: "neutral",
683
+ design: "contrast",
684
+ class: (0, import_internal_utils6.tw)([
685
+ "text-neutral",
686
+ "hover:bg-neutral-container-hovered",
687
+ "enabled:active:bg-neutral-container-hovered",
688
+ "focus-visible:bg-neutral-container-hovered"
689
+ ])
690
+ },
691
+ {
692
+ intent: "surface",
693
+ design: "contrast",
694
+ class: (0, import_internal_utils6.tw)([
695
+ "text-on-surface",
696
+ "hover:bg-surface-hovered",
697
+ "enabled:active:bg-surface-hovered",
698
+ "focus-visible:bg-surface-hovered"
699
+ ])
700
+ }
701
+ ];
702
+
703
+ // src/button/Button.styles.tsx
704
+ var buttonStyles = (0, import_class_variance_authority2.cva)(
705
+ [
706
+ "u-shadow-border-transition",
707
+ "box-border inline-flex items-center justify-center gap-md whitespace-nowrap",
708
+ "px-lg",
709
+ "text-body-1 font-bold",
710
+ "focus-visible:u-outline"
711
+ ],
712
+ {
713
+ variants: {
714
+ /**
715
+ * Main style of the button.
716
+ *
717
+ * - `filled`: Button will be plain.
718
+ *
719
+ * - `outlined`: Button will be transparent with an outline.
720
+ *
721
+ * - `tinted`: Button will be filled but using a lighter color scheme.
722
+ *
723
+ * - `ghost`: Button will look like a link. No borders, plain text.
724
+ *
725
+ * - `contrast`: Button will be surface filled. No borders, plain text.
726
+ *
727
+ */
728
+ design: (0, import_internal_utils7.makeVariants)({
729
+ filled: [],
730
+ outlined: ["bg-transparent", "border-sm", "border-current"],
731
+ tinted: [],
732
+ ghost: [],
733
+ contrast: ["bg-surface"]
734
+ }),
735
+ /**
736
+ * Color scheme of the button.
737
+ */
738
+ intent: (0, import_internal_utils7.makeVariants)({
739
+ main: [],
740
+ support: [],
741
+ accent: [],
742
+ basic: [],
743
+ success: [],
744
+ alert: [],
745
+ danger: [],
746
+ info: [],
747
+ neutral: [],
748
+ surface: []
749
+ }),
750
+ /**
751
+ * Size of the button.
752
+ */
753
+ size: (0, import_internal_utils7.makeVariants)({
754
+ sm: ["min-w-sz-32", "h-sz-32"],
755
+ md: ["min-w-sz-44", "h-sz-44"],
756
+ lg: ["min-w-sz-56", "h-sz-56"]
757
+ }),
758
+ /**
759
+ * Shape of the button.
760
+ */
761
+ shape: (0, import_internal_utils7.makeVariants)({
762
+ rounded: ["rounded-lg"],
763
+ square: ["rounded-0"],
764
+ pill: ["rounded-full"]
765
+ }),
766
+ /**
767
+ * Disable the button, preventing user interaction and adding opacity.
768
+ */
769
+ disabled: {
770
+ true: ["cursor-not-allowed", "opacity-dim-3"],
771
+ false: ["cursor-pointer"]
772
+ }
773
+ },
774
+ compoundVariants: [
775
+ ...filledVariants,
776
+ ...outlinedVariants,
777
+ ...tintedVariants,
778
+ ...ghostVariants,
779
+ ...contrastVariants
780
+ ],
781
+ defaultVariants: {
782
+ design: "filled",
783
+ intent: "main",
784
+ size: "md",
785
+ shape: "rounded"
786
+ }
787
+ }
788
+ );
789
+
790
+ // src/button/Button.tsx
791
+ var import_jsx_runtime4 = require("react/jsx-runtime");
792
+ var blockedEventHandlers = [
793
+ "onClick",
794
+ "onMouseDown",
795
+ "onMouseUp",
796
+ "onMouseEnter",
797
+ "onMouseLeave",
798
+ "onMouseOver",
799
+ "onMouseOut",
800
+ "onKeyDown",
801
+ "onKeyPress",
802
+ "onKeyUp",
803
+ "onSubmit"
804
+ ];
805
+ var Button = ({
806
+ children,
807
+ design = "filled",
808
+ disabled = false,
809
+ intent = "main",
810
+ isLoading = false,
811
+ loadingLabel,
812
+ loadingText,
813
+ shape = "rounded",
814
+ size = "md",
815
+ asChild,
816
+ className,
817
+ ref,
818
+ ...others
819
+ }) => {
820
+ const Component = asChild ? Slot : "button";
821
+ const shouldNotInteract = !!disabled || isLoading;
822
+ const disabledEventHandlers = (0, import_react2.useMemo)(() => {
823
+ const result = {};
824
+ if (shouldNotInteract) {
825
+ blockedEventHandlers.forEach((eventHandler) => result[eventHandler] = void 0);
826
+ }
827
+ return result;
828
+ }, [shouldNotInteract]);
829
+ const spinnerProps = {
830
+ size: "current",
831
+ className: loadingText ? "inline-block" : "absolute",
832
+ ...loadingLabel && { "aria-label": loadingLabel }
833
+ };
834
+ return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
835
+ Component,
836
+ {
837
+ "data-spark-component": "button",
838
+ ...Component === "button" && { type: "button" },
839
+ ref,
840
+ className: buttonStyles({
841
+ className,
842
+ design,
843
+ disabled: shouldNotInteract,
844
+ intent,
845
+ shape,
846
+ size
847
+ }),
848
+ disabled: !!disabled,
849
+ "aria-busy": isLoading,
850
+ "aria-live": isLoading ? "assertive" : "off",
851
+ ...others,
852
+ ...disabledEventHandlers,
853
+ children: wrapPolymorphicSlot(
854
+ asChild,
855
+ children,
856
+ (slotted) => isLoading ? /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)(import_jsx_runtime4.Fragment, { children: [
857
+ /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(Spinner, { ...spinnerProps }),
858
+ loadingText && loadingText,
859
+ /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
860
+ "div",
861
+ {
862
+ "aria-hidden": true,
863
+ className: (0, import_class_variance_authority3.cx)("gap-md", loadingText ? "hidden" : "inline-flex opacity-0"),
864
+ children: slotted
865
+ }
866
+ )
867
+ ] }) : slotted
868
+ )
869
+ }
870
+ );
871
+ };
872
+ Button.displayName = "Button";
873
+ // Annotate the CommonJS export names for ESM import in node:
874
+ 0 && (module.exports = {
875
+ Button
876
+ });
877
+ //# sourceMappingURL=index.js.map