@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,793 @@
1
+ import {
2
+ Icon
3
+ } from "../chunk-AESXFMCC.mjs";
4
+ import "../chunk-NBZKMCHF.mjs";
5
+ import {
6
+ Slot
7
+ } from "../chunk-4F5DOL57.mjs";
8
+
9
+ // src/chip/Chip.styles.tsx
10
+ import { makeVariants } from "@spark-ui/internal-utils";
11
+ import { cva } from "class-variance-authority";
12
+
13
+ // src/chip/variants/outlined.ts
14
+ import { tw } from "@spark-ui/internal-utils";
15
+ var outlinedVariants = [
16
+ /** Intents **/
17
+ {
18
+ design: "outlined",
19
+ intent: "main",
20
+ class: tw([
21
+ "enabled:hover:bg-main/dim-5",
22
+ "enabled:active:bg-main/dim-5",
23
+ "focus-visible:bg-main/dim-5",
24
+ "aria-pressed:bg-main-container aria-pressed:text-on-main-container aria-pressed:enabled:hover:bg-main-container/dim-1",
25
+ "text-main"
26
+ ])
27
+ },
28
+ {
29
+ design: "outlined",
30
+ intent: "support",
31
+ class: tw([
32
+ "enabled:hover:bg-support/dim-5",
33
+ "enabled:active:bg-support/dim-5",
34
+ "focus-visible:bg-support/dim-5",
35
+ "aria-pressed:bg-support-container aria-pressed:text-on-support-container aria-pressed:enabled:hover:bg-support-container/dim-1",
36
+ "text-support"
37
+ ])
38
+ },
39
+ {
40
+ design: "outlined",
41
+ intent: "basic",
42
+ class: tw([
43
+ "enabled:hover:bg-basic/dim-5",
44
+ "enabled:active:bg-basic/dim-5",
45
+ "focus-visible:bg-basic/dim-5",
46
+ "aria-pressed:bg-basic-container aria-pressed:text-on-basic-container aria-pressed:enabled:hover:bg-basic-container/dim-1",
47
+ "text-basic"
48
+ ])
49
+ },
50
+ {
51
+ intent: "accent",
52
+ design: "outlined",
53
+ class: tw([
54
+ "enabled:hover:bg-accent/dim-5",
55
+ "enabled:active:bg-accent/dim-5",
56
+ "focus-visible:bg-accent/dim-5",
57
+ "aria-pressed:bg-accent-container",
58
+ "aria-pressed:bg-accent-container aria-pressed:text-on-accent-container aria-pressed:enabled:hover:bg-accent-container/dim-1",
59
+ "text-accent"
60
+ ])
61
+ },
62
+ {
63
+ design: "outlined",
64
+ intent: "success",
65
+ class: tw([
66
+ "enabled:hover:bg-success/dim-5",
67
+ "enabled:active:bg-success/dim-5",
68
+ "focus-visible:bg-success/dim-5",
69
+ "aria-pressed:bg-success-container aria-pressed:text-on-success-container aria-pressed:enabled:hover:bg-success-container/dim-1",
70
+ "text-success"
71
+ ])
72
+ },
73
+ {
74
+ intent: "alert",
75
+ design: "outlined",
76
+ class: tw([
77
+ "enabled:hover:bg-alert/dim-5",
78
+ "enabled:active:bg-alert/dim-5",
79
+ "focus-visible:bg-alert/dim-5",
80
+ "aria-pressed:bg-alert-container aria-pressed:text-on-alert-container aria-pressed:enabled:hover:bg-alert-container/dim-1",
81
+ "text-alert"
82
+ ])
83
+ },
84
+ {
85
+ design: "outlined",
86
+ intent: "danger",
87
+ class: tw([
88
+ "enabled:hover:bg-error/dim-5",
89
+ "enabled:active:bg-error/dim-5",
90
+ "focus-visible:bg-error/dim-5",
91
+ "aria-pressed:bg-error-container aria-pressed:text-on-error-container aria-pressed:enabled:hover:bg-error-container/dim-1",
92
+ "text-error"
93
+ ])
94
+ },
95
+ {
96
+ design: "outlined",
97
+ intent: "info",
98
+ class: tw([
99
+ "enabled:hover:bg-info/dim-5",
100
+ "enabled:active:bg-info/dim-5",
101
+ "focus-visible:bg-info/dim-5",
102
+ "aria-pressed:bg-info-container aria-pressed:text-on-info-container aria-pressed:enabled:hover:bg-info-container/dim-1",
103
+ "text-info"
104
+ ])
105
+ },
106
+ {
107
+ design: "outlined",
108
+ intent: "neutral",
109
+ class: tw([
110
+ "enabled:hover:bg-neutral/dim-5",
111
+ "enabled:active:bg-neutral/dim-5",
112
+ "focus-visible:bg-neutral/dim-5",
113
+ "aria-pressed:bg-neutral-container aria-pressed:text-on-neutral-container aria-pressed:enabled:hover:bg-neutral-container/dim-1",
114
+ "text-neutral"
115
+ ])
116
+ },
117
+ {
118
+ design: "outlined",
119
+ intent: "surface",
120
+ class: tw([
121
+ "enabled:hover:bg-surface/dim-5",
122
+ "enabled:active:bg-surface/dim-5",
123
+ "focus-visible:bg-surface/dim-5",
124
+ "aria-pressed:bg-surface aria-pressed:text-on-surface aria-pressed:enabled:hover:bg-surface-hovered",
125
+ "text-surface"
126
+ ])
127
+ },
128
+ /** Spacings **/
129
+ {
130
+ design: "outlined",
131
+ hasClearButton: false,
132
+ class: tw(["px-[calc(var(--spacing-md)-var(--border-width-sm))]"])
133
+ },
134
+ {
135
+ design: "outlined",
136
+ hasClearButton: true,
137
+ class: tw(["pl-[calc(var(--spacing-md)-var(--border-width-sm))]"])
138
+ }
139
+ ];
140
+
141
+ // src/chip/variants/tinted.ts
142
+ import { tw as tw2 } from "@spark-ui/internal-utils";
143
+ var tintedVariants = [
144
+ /** Intents **/
145
+ {
146
+ intent: "main",
147
+ design: "tinted",
148
+ class: tw2([
149
+ "bg-main-container",
150
+ "enabled:hover:bg-main-container-hovered",
151
+ "enabled:active:bg-main-container-hovered",
152
+ "focus-visible:bg-main-container-hovered",
153
+ "aria-pressed:bg-main aria-pressed:text-on-main aria-pressed:enabled:hover:bg-main/dim-1",
154
+ "text-on-main-container"
155
+ ])
156
+ },
157
+ {
158
+ intent: "support",
159
+ design: "tinted",
160
+ class: tw2([
161
+ "bg-support-container",
162
+ "enabled:hover:bg-support-container-hovered",
163
+ "enabled:active:bg-support-container-hovered",
164
+ "focus-visible:bg-support-container-hovered",
165
+ "aria-pressed:bg-support aria-pressed:text-on-support aria-pressed:enabled:hover:bg-support/dim-1",
166
+ "text-on-support-container"
167
+ ])
168
+ },
169
+ {
170
+ intent: "basic",
171
+ design: "tinted",
172
+ class: tw2([
173
+ "bg-basic-container",
174
+ "enabled:hover:bg-basic-container-hovered",
175
+ "enabled:active:bg-basic-container-hovered",
176
+ "focus-visible:bg-basic-container-hovered",
177
+ "aria-pressed:bg-basic aria-pressed:text-on-basic aria-pressed:enabled:hover:bg-basic/dim-1",
178
+ "text-on-basic-container"
179
+ ])
180
+ },
181
+ {
182
+ intent: "accent",
183
+ design: "tinted",
184
+ class: tw2([
185
+ "bg-accent-container",
186
+ "enabled:hover:bg-accent-container-hovered",
187
+ "enabled:active:bg-accent-container-hovered",
188
+ "focus-visible:bg-accent-container-hovered",
189
+ "aria-pressed:bg-accent aria-pressed:text-on-accent aria-pressed:enabled:hover:bg-accent/dim-1",
190
+ "text-on-accent-container"
191
+ ])
192
+ },
193
+ {
194
+ intent: "success",
195
+ design: "tinted",
196
+ class: tw2([
197
+ "bg-success-container",
198
+ "enabled:hover:bg-success-container-hovered",
199
+ "enabled:active:bg-success-container-hovered",
200
+ "focus-visible:bg-success-container-hovered",
201
+ "aria-pressed:bg-success aria-pressed:text-on-success aria-pressed:enabled:hover:bg-success/dim-1",
202
+ "text-on-success-container"
203
+ ])
204
+ },
205
+ {
206
+ intent: "alert",
207
+ design: "tinted",
208
+ class: tw2([
209
+ "bg-alert-container",
210
+ "enabled:hover:bg-alert-container-hovered",
211
+ "enabled:active:bg-alert-container-hovered",
212
+ "focus-visible:bg-alert-container-hovered",
213
+ "aria-pressed:bg-alert aria-pressed:text-on-alert aria-pressed:enabled:hover:bg-alert/dim-1",
214
+ "text-on-alert-container"
215
+ ])
216
+ },
217
+ {
218
+ intent: "danger",
219
+ design: "tinted",
220
+ class: tw2([
221
+ "bg-error-container",
222
+ "enabled:hover:bg-error-container-hovered",
223
+ "enabled:active:bg-error-container-hovered",
224
+ "focus-visible:bg-error-container-hovered",
225
+ "aria-pressed:bg-error aria-pressed:text-on-error aria-pressed:enabled:hover:bg-error/dim-1",
226
+ "text-on-error-container"
227
+ ])
228
+ },
229
+ {
230
+ intent: "info",
231
+ design: "tinted",
232
+ class: tw2([
233
+ "bg-info-container",
234
+ "enabled:hover:bg-info-container-hovered",
235
+ "enabled:active:bg-info-container-hovered",
236
+ "focus-visible:bg-info-container-hovered",
237
+ "aria-pressed:bg-info aria-pressed:text-on-info aria-pressed:enabled:hover:bg-info/dim-1",
238
+ "text-on-info-container"
239
+ ])
240
+ },
241
+ {
242
+ intent: "neutral",
243
+ design: "tinted",
244
+ class: tw2([
245
+ "bg-neutral-container",
246
+ "enabled:hover:bg-neutral-container-hovered",
247
+ "enabled:active:bg-neutral-container-hovered",
248
+ "focus-visible:bg-neutral-container-hovered",
249
+ "aria-pressed:bg-neutral aria-pressed:text-on-neutral aria-pressed:enabled:hover:bg-neutral/dim-1",
250
+ "text-on-neutral-container"
251
+ ])
252
+ },
253
+ {
254
+ intent: "surface",
255
+ design: "tinted",
256
+ class: tw2([
257
+ "bg-surface/dim-1",
258
+ "enabled:hover:bg-surface-hovered/dim-1",
259
+ "enabled:active:bg-surface-hovered/dim-1",
260
+ "focus-visible:bg-surface-hovered/dim-1",
261
+ "aria-pressed:bg-surface aria-pressed:text-on-surface aria-pressed:enabled:hover:bg-surface-hovered",
262
+ "text-on-surface/dim-1"
263
+ ])
264
+ },
265
+ /** Spacings **/
266
+ {
267
+ design: "tinted",
268
+ hasClearButton: false,
269
+ class: tw2(["px-md"])
270
+ },
271
+ {
272
+ design: "tinted",
273
+ hasClearButton: true,
274
+ class: tw2(["pl-md"])
275
+ }
276
+ ];
277
+
278
+ // src/chip/variants/dashed.ts
279
+ import { tw as tw3 } from "@spark-ui/internal-utils";
280
+ var dashedVariants = [
281
+ /** Intents **/
282
+ {
283
+ intent: "main",
284
+ design: "dashed",
285
+ class: tw3([
286
+ "enabled:hover:bg-main/dim-5",
287
+ "enabled:active:bg-main/dim-5",
288
+ "focus-visible:bg-main/dim-5",
289
+ "aria-pressed:bg-main-container aria-pressed:text-on-main-container aria-pressed:enabled:hover:bg-main-container/dim-1",
290
+ "text-main"
291
+ ])
292
+ },
293
+ {
294
+ intent: "support",
295
+ design: "dashed",
296
+ class: tw3([
297
+ "enabled:hover:bg-support/dim-5",
298
+ "enabled:active:bg-support/dim-5",
299
+ "focus-visible:bg-support/dim-5",
300
+ "aria-pressed:bg-support-container aria-pressed:text-on-support-container aria-pressed:enabled:hover:bg-support-container/dim-1",
301
+ "text-support"
302
+ ])
303
+ },
304
+ {
305
+ intent: "basic",
306
+ design: "dashed",
307
+ class: tw3([
308
+ "enabled:hover:bg-basic/dim-5",
309
+ "enabled:active:bg-basic/dim-5",
310
+ "focus-visible:bg-basic/dim-5",
311
+ "aria-pressed:bg-basic-container aria-pressed:text-on-basic-container aria-pressed:enabled:hover:bg-basic-container/dim-1",
312
+ "text-basic"
313
+ ])
314
+ },
315
+ {
316
+ intent: "accent",
317
+ design: "dashed",
318
+ class: tw3([
319
+ "enabled:hover:bg-accent/dim-5",
320
+ "enabled:active:bg-accent/dim-5",
321
+ "focus-visible:bg-accent/dim-5",
322
+ "aria-pressed:bg-accent-container aria-pressed:text-on-accent-container aria-pressed:enabled:hover:bg-accent-container/dim-1",
323
+ "text-accent"
324
+ ])
325
+ },
326
+ {
327
+ intent: "success",
328
+ design: "dashed",
329
+ class: tw3([
330
+ "enabled:hover:bg-success/dim-5",
331
+ "enabled:active:bg-success/dim-5",
332
+ "focus-visible:bg-success/dim-5",
333
+ "aria-pressed:bg-success-container aria-pressed:text-on-success-container aria-pressed:enabled:hover:bg-success-container/dim-1",
334
+ "text-success"
335
+ ])
336
+ },
337
+ {
338
+ intent: "alert",
339
+ design: "dashed",
340
+ class: tw3([
341
+ "enabled:hover:bg-alert/dim-5",
342
+ "enabled:active:bg-alert/dim-5",
343
+ "focus-visible:bg-alert/dim-5",
344
+ "aria-pressed:bg-alert-container aria-pressed:text-on-alert-container aria-pressed:enabled:hover:bg-alert-container/dim-1",
345
+ "text-alert"
346
+ ])
347
+ },
348
+ {
349
+ intent: "danger",
350
+ design: "dashed",
351
+ class: tw3([
352
+ "enabled:hover:bg-error/dim-5",
353
+ "enabled:active:bg-error/dim-5",
354
+ "focus-visible:bg-error/dim-5",
355
+ "aria-pressed:bg-error-container aria-pressed:text-on-error-container aria-pressed:enabled:hover:bg-error-container/dim-1",
356
+ "text-error"
357
+ ])
358
+ },
359
+ {
360
+ intent: "info",
361
+ design: "dashed",
362
+ class: tw3([
363
+ "enabled:hover:bg-info/dim-5",
364
+ "enabled:active:bg-info/dim-5",
365
+ "focus-visible:bg-info/dim-5",
366
+ "aria-pressed:bg-info-container aria-pressed:text-on-info-container aria-pressed:enabled:hover:bg-info-container/dim-1",
367
+ "text-info"
368
+ ])
369
+ },
370
+ {
371
+ intent: "neutral",
372
+ design: "dashed",
373
+ class: tw3([
374
+ "enabled:hover:bg-neutral/dim-5",
375
+ "enabled:active:bg-neutral/dim-5",
376
+ "focus-visible:bg-neutral/dim-5",
377
+ "aria-pressed:bg-neutral-container aria-pressed:text-on-neutral-container aria-pressed:enabled:hover:bg-neutral-container/dim-1",
378
+ "text-neutral"
379
+ ])
380
+ },
381
+ {
382
+ intent: "surface",
383
+ design: "dashed",
384
+ class: tw3([
385
+ "enabled:hover:bg-surface/dim-5",
386
+ "enabled:active:bg-surface/dim-5",
387
+ "focus-visible:bg-surface/dim-5",
388
+ "aria-pressed:bg-surface aria-pressed:text-on-surface aria-pressed:enabled:hover:bg-surface-hovered",
389
+ "text-surface"
390
+ ])
391
+ },
392
+ /** Spacings **/
393
+ {
394
+ design: "dashed",
395
+ hasClearButton: false,
396
+ class: tw3(["px-[calc(var(--spacing-md)-var(--border-width-sm))]"])
397
+ },
398
+ {
399
+ design: "dashed",
400
+ hasClearButton: true,
401
+ class: tw3(["pl-[calc(var(--spacing-md)-var(--border-width-sm))]"])
402
+ }
403
+ ];
404
+
405
+ // src/chip/Chip.styles.tsx
406
+ var chipStyles = cva(
407
+ [
408
+ "box-border inline-flex h-sz-32 flex-nowrap items-center justify-center rounded-md text-body-1 font-regular",
409
+ "focus-visible:u-outline",
410
+ "ease-out duration-150"
411
+ ],
412
+ {
413
+ variants: {
414
+ /**
415
+ * Main style of the chip.
416
+ *
417
+ * - `filled`: Chip will be plain.
418
+ *
419
+ * - `outlined`: Chip will be transparent with an outline.
420
+ *
421
+ * - `tinted`: Chip will be filled but using a lighter color scheme.
422
+ *
423
+ * - `dashed`: Chip will be transparent with an outline dashed.
424
+ */
425
+ design: makeVariants({
426
+ outlined: ["bg-transparent border-sm border-solid border-current"],
427
+ tinted: [""],
428
+ dashed: [
429
+ "bg-transparent border-sm border-dashed shadow-none focus-visible:border-outline-high"
430
+ ]
431
+ }),
432
+ /**
433
+ * Color scheme of the chip.
434
+ */
435
+ intent: makeVariants({
436
+ main: [],
437
+ support: [],
438
+ basic: [],
439
+ accent: [],
440
+ success: [],
441
+ alert: [],
442
+ danger: [],
443
+ info: [],
444
+ neutral: [],
445
+ surface: []
446
+ }),
447
+ /**
448
+ * Disable the chip, preventing user interaction and adding opacity.
449
+ */
450
+ disabled: {
451
+ true: ["cursor-not-allowed", "opacity-dim-3"]
452
+ },
453
+ hasClearButton: {
454
+ true: [],
455
+ false: []
456
+ }
457
+ // 'pl-[calc(var(--spacing-md)-(var(--border-width-sm)))]'
458
+ },
459
+ compoundVariants: [...outlinedVariants, ...tintedVariants, ...dashedVariants],
460
+ defaultVariants: {
461
+ design: "outlined",
462
+ intent: "basic"
463
+ }
464
+ }
465
+ );
466
+
467
+ // src/chip/useChipContext.tsx
468
+ import { createContext, useContext } from "react";
469
+ var ChipContext = createContext({});
470
+ var useChipContext = () => useContext(ChipContext) || {};
471
+
472
+ // src/chip/useChipElement.tsx
473
+ import { useCombinedState } from "@spark-ui/use-combined-state";
474
+ import { emulateTab } from "emulate-tab";
475
+ import {
476
+ Children,
477
+ isValidElement
478
+ } from "react";
479
+ import { Fragment, jsx, jsxs } from "react/jsx-runtime";
480
+ var getDisplayName = (element) => {
481
+ return element ? element.type.displayName : "";
482
+ };
483
+ var findElement = (children) => (...values) => {
484
+ const validChildren = Children.toArray(children).filter(isValidElement);
485
+ return validChildren.find((child) => {
486
+ const displayName = getDisplayName(child);
487
+ return values.includes(displayName || "");
488
+ });
489
+ };
490
+ var useChipElement = ({
491
+ onClick,
492
+ asChild,
493
+ pressed,
494
+ defaultPressed,
495
+ disabled,
496
+ value,
497
+ defaultValue,
498
+ children,
499
+ onClear
500
+ }) => {
501
+ const [isPressed, setIsPressed] = useCombinedState(pressed, defaultPressed);
502
+ const [innerValue] = useCombinedState(
503
+ value,
504
+ defaultValue
505
+ );
506
+ const findChipElement = findElement(children);
507
+ const leadingIcon = findChipElement("Chip.LeadingIcon");
508
+ const trailingIcon = findChipElement("Chip.TrailingIcon");
509
+ const content = findChipElement("Chip.Content");
510
+ const clearButton = findChipElement("Chip.ClearButton");
511
+ const isButton = (onClick || isPressed) !== void 0;
512
+ const formattedChildren = [leadingIcon, content, clearButton].every(
513
+ (element) => element === void 0
514
+ ) ? /* @__PURE__ */ jsx("span", { className: "inline-block grow truncate", children }) : /* @__PURE__ */ jsxs(Fragment, { children: [
515
+ leadingIcon,
516
+ content,
517
+ leadingIcon === void 0 ? trailingIcon : null,
518
+ clearButton
519
+ ] });
520
+ const onKeyDown = (event) => {
521
+ if (!!clearButton && !disabled && ["Delete", "Backspace"].includes(event.key)) {
522
+ if (onClear) {
523
+ onClear();
524
+ event.key === "Delete" && emulateTab();
525
+ event.key === "Backspace" && emulateTab.backwards();
526
+ }
527
+ }
528
+ };
529
+ if (isButton) {
530
+ return {
531
+ Element: asChild ? Slot : "button",
532
+ chipProps: {
533
+ type: "button",
534
+ ...isPressed !== void 0 && {
535
+ "aria-pressed": isPressed,
536
+ "data-state": isPressed ? "on" : "off"
537
+ },
538
+ onClick: (event) => {
539
+ isPressed !== void 0 && setIsPressed(!isPressed);
540
+ onClick && onClick(event, { pressed: isPressed, value: innerValue });
541
+ },
542
+ onKeyDown,
543
+ disabled,
544
+ children: formattedChildren
545
+ },
546
+ compoundElements: {
547
+ leadingIcon,
548
+ trailingIcon,
549
+ content,
550
+ clearButton
551
+ }
552
+ };
553
+ }
554
+ return {
555
+ Element: asChild ? Slot : "div",
556
+ chipProps: {
557
+ "aria-disabled": disabled,
558
+ children: formattedChildren,
559
+ onKeyDown
560
+ },
561
+ compoundElements: {
562
+ leadingIcon,
563
+ trailingIcon,
564
+ content,
565
+ clearButton
566
+ }
567
+ };
568
+ };
569
+
570
+ // src/chip/Chip.tsx
571
+ import { jsx as jsx2 } from "react/jsx-runtime";
572
+ var Chip = ({
573
+ design = "outlined",
574
+ disabled,
575
+ children,
576
+ intent = "basic",
577
+ defaultPressed,
578
+ pressed,
579
+ asChild,
580
+ className,
581
+ onClick,
582
+ onClear,
583
+ ref: forwardedRef,
584
+ ...otherProps
585
+ }) => {
586
+ const {
587
+ Element: ChipElement,
588
+ chipProps: { children: formattedChildren, ...chipProps },
589
+ compoundElements
590
+ } = useChipElement({
591
+ asChild,
592
+ pressed,
593
+ defaultPressed,
594
+ onClick,
595
+ disabled: !!disabled,
596
+ value: otherProps.value,
597
+ defaultValue: otherProps.defaultValue,
598
+ children,
599
+ onClear
600
+ });
601
+ const { clearButton } = compoundElements;
602
+ return /* @__PURE__ */ jsx2(ChipContext.Provider, { value: { disabled, design, intent, onClear }, children: /* @__PURE__ */ jsx2(
603
+ ChipElement,
604
+ {
605
+ ref: forwardedRef,
606
+ className: chipStyles({
607
+ className,
608
+ design,
609
+ disabled,
610
+ intent,
611
+ hasClearButton: !!clearButton
612
+ }),
613
+ ...{
614
+ ...chipProps,
615
+ ...otherProps
616
+ },
617
+ "data-spark-component": "chip",
618
+ children: formattedChildren
619
+ }
620
+ ) });
621
+ };
622
+ Chip.displayName = "Chip";
623
+
624
+ // src/chip/ChipClearButton.tsx
625
+ import { Close } from "@spark-ui/icons/Close";
626
+ import {
627
+ cloneElement,
628
+ useCallback
629
+ } from "react";
630
+
631
+ // src/chip/ChipClearButton.styles.tsx
632
+ import { tw as tw4 } from "@spark-ui/internal-utils";
633
+ import { cva as cva2 } from "class-variance-authority";
634
+ var chipClearButtonWrapperStyles = cva2(
635
+ ["ml-md flex h-full items-center justify-center focus-visible:outline-hidden"],
636
+ {
637
+ variants: {
638
+ disabled: {
639
+ false: ["cursor-pointer"],
640
+ true: ["cursor-not-allowed"]
641
+ },
642
+ isBordered: {
643
+ false: ["pr-md"],
644
+ true: ["pr-[7px]"]
645
+ },
646
+ design: {
647
+ outlined: [],
648
+ tinted: [],
649
+ dashed: []
650
+ }
651
+ },
652
+ compoundVariants: [
653
+ {
654
+ design: "outlined",
655
+ disabled: false,
656
+ class: tw4(["hover:opacity-dim-1"])
657
+ },
658
+ {
659
+ design: "outlined",
660
+ disabled: true,
661
+ class: tw4(["opacity-dim-3"])
662
+ },
663
+ {
664
+ design: "tinted",
665
+ disabled: false,
666
+ class: tw4(["hover:opacity-dim-1"])
667
+ },
668
+ {
669
+ design: "tinted",
670
+ disabled: true,
671
+ class: tw4(["opacity-dim-3"])
672
+ },
673
+ {
674
+ design: "dashed",
675
+ disabled: false,
676
+ class: tw4(["hover:opacity-dim-1"])
677
+ },
678
+ {
679
+ design: "dashed",
680
+ disabled: true,
681
+ class: tw4(["opacity-dim-3"])
682
+ }
683
+ ]
684
+ }
685
+ );
686
+ var chipClearButtonStyles = cva2(
687
+ ["rounded-full p-sz-2 [font-size:var(--spacing-sz-8)] border-sm", "focus-visible:u-outline"],
688
+ {
689
+ variants: {
690
+ disabled: {
691
+ true: ["cursor-not-allowed"],
692
+ false: ["cursor-pointer"]
693
+ }
694
+ }
695
+ }
696
+ );
697
+
698
+ // src/chip/ChipClearButton.tsx
699
+ import { jsx as jsx3 } from "react/jsx-runtime";
700
+ var ChipClearButton = ({
701
+ children = /* @__PURE__ */ jsx3(Icon, { children: /* @__PURE__ */ jsx3(Close, {}) }),
702
+ tabIndex = 0,
703
+ label,
704
+ ref: forwardedRef
705
+ }) => {
706
+ const { design, disabled, onClear } = useChipContext();
707
+ const onClearHandler = useCallback(
708
+ (event) => {
709
+ event.stopPropagation();
710
+ !disabled && onClear && onClear(event);
711
+ },
712
+ [disabled, onClear]
713
+ );
714
+ return /* @__PURE__ */ jsx3(
715
+ "span",
716
+ {
717
+ className: chipClearButtonWrapperStyles({
718
+ isBordered: ["outline", "dashed"].includes(`${design}`),
719
+ disabled: !!disabled,
720
+ design
721
+ }),
722
+ onClick: onClearHandler,
723
+ ref: forwardedRef,
724
+ children: /* @__PURE__ */ jsx3(
725
+ "button",
726
+ {
727
+ tabIndex,
728
+ type: "button",
729
+ disabled: !!disabled,
730
+ className: chipClearButtonStyles({ disabled }),
731
+ "aria-label": label,
732
+ children: children && cloneElement(children, { ariaLabel: label })
733
+ }
734
+ )
735
+ }
736
+ );
737
+ };
738
+ ChipClearButton.displayName = "Chip.ClearButton";
739
+
740
+ // src/chip/ChipContent.tsx
741
+ import { cx } from "class-variance-authority";
742
+ import { jsx as jsx4 } from "react/jsx-runtime";
743
+ var ChipContent = ({ children, className, ref: forwardedRef }) => {
744
+ return /* @__PURE__ */ jsx4("span", { className: cx("inline-block grow truncate", className), ref: forwardedRef, children });
745
+ };
746
+ ChipContent.displayName = "Chip.Content";
747
+
748
+ // src/chip/ChipLeadingIcon.tsx
749
+ import { cx as cx3 } from "class-variance-authority";
750
+
751
+ // src/chip/ChipIcon.tsx
752
+ import { cx as cx2 } from "class-variance-authority";
753
+ import { jsx as jsx5 } from "react/jsx-runtime";
754
+ var ChipIcon = ({ children, className, ref: forwardedRef }) => {
755
+ return /* @__PURE__ */ jsx5("span", { className: cx2("flex h-full items-center justify-center", className), ref: forwardedRef, children });
756
+ };
757
+ ChipIcon.displayName = "Chip.Icon";
758
+
759
+ // src/chip/ChipLeadingIcon.tsx
760
+ import { jsx as jsx6 } from "react/jsx-runtime";
761
+ var ChipLeadingIcon = ({
762
+ className,
763
+ ref: forwardedRef,
764
+ ...props
765
+ }) => /* @__PURE__ */ jsx6(ChipIcon, { className: cx3("mr-sm", className), ref: forwardedRef, ...props });
766
+ ChipLeadingIcon.displayName = "Chip.LeadingIcon";
767
+
768
+ // src/chip/ChipTrailingIcon.tsx
769
+ import { cx as cx4 } from "class-variance-authority";
770
+ import { jsx as jsx7 } from "react/jsx-runtime";
771
+ var ChipTrailingIcon = ({
772
+ className,
773
+ ref: forwardedRef,
774
+ ...props
775
+ }) => /* @__PURE__ */ jsx7(ChipIcon, { className: cx4("ml-md", className), ref: forwardedRef, ...props });
776
+ ChipTrailingIcon.displayName = "Chip.TrailingIcon";
777
+
778
+ // src/chip/index.ts
779
+ var Chip2 = Object.assign(Chip, {
780
+ Content: ChipContent,
781
+ LeadingIcon: ChipLeadingIcon,
782
+ TrailingIcon: ChipTrailingIcon,
783
+ ClearButton: ChipClearButton
784
+ });
785
+ Chip2.displayName = "Chip";
786
+ Chip2.ClearButton.displayName = "Chip.ClearButton";
787
+ Chip2.Content.displayName = "Chip.Content";
788
+ Chip2.LeadingIcon.displayName = "Chip.LeadingIcon";
789
+ Chip2.TrailingIcon.displayName = "Chip.TrailingIcon";
790
+ export {
791
+ Chip2 as Chip
792
+ };
793
+ //# sourceMappingURL=index.mjs.map