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