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