@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,824 @@
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/radio-group/index.ts
21
+ var radio_group_exports = {};
22
+ __export(radio_group_exports, {
23
+ RadioGroup: () => RadioGroup2
24
+ });
25
+ module.exports = __toCommonJS(radio_group_exports);
26
+
27
+ // src/radio-group/Radio.tsx
28
+ var import_class_variance_authority14 = require("class-variance-authority");
29
+ var import_react9 = require("react");
30
+
31
+ // src/radio-group/RadioGroupContext.tsx
32
+ var import_react = require("react");
33
+ var RadioGroupContext = (0, import_react.createContext)(null);
34
+ var useRadioGroup = () => {
35
+ const context = (0, import_react.useContext)(RadioGroupContext);
36
+ if (!context) {
37
+ throw Error("useRadioGroup must be used within a RadioGroup provider");
38
+ }
39
+ return context;
40
+ };
41
+
42
+ // src/radio-group/RadioInput.tsx
43
+ var import_radix_ui4 = require("radix-ui");
44
+
45
+ // src/form-field/FormField.tsx
46
+ var import_class_variance_authority = require("class-variance-authority");
47
+ var import_react5 = require("react");
48
+
49
+ // src/slot/Slot.tsx
50
+ var import_radix_ui = require("radix-ui");
51
+ var import_react2 = require("react");
52
+ var import_jsx_runtime = require("react/jsx-runtime");
53
+ var Slottable = import_radix_ui.Slot.Slottable;
54
+ var Slot = ({ ref, ...props }) => {
55
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_radix_ui.Slot.Root, { ref, ...props });
56
+ };
57
+
58
+ // src/form-field/FormFieldContext.tsx
59
+ var import_react3 = require("react");
60
+ var FormFieldContext = (0, import_react3.createContext)(null);
61
+ var ID_PREFIX = ":form-field";
62
+ var useFormField = () => {
63
+ const context = (0, import_react3.useContext)(FormFieldContext);
64
+ if (!context) {
65
+ throw Error("useFormField must be used within a FormField provider");
66
+ }
67
+ return context;
68
+ };
69
+
70
+ // src/form-field/FormFieldProvider.tsx
71
+ var import_react4 = require("react");
72
+ var import_jsx_runtime2 = require("react/jsx-runtime");
73
+ var FormFieldProvider = ({
74
+ id,
75
+ name,
76
+ disabled = false,
77
+ readOnly = false,
78
+ state,
79
+ isRequired,
80
+ children
81
+ }) => {
82
+ const labelId = `${ID_PREFIX}-label-${(0, import_react4.useId)()}`;
83
+ const [messageIds, setMessageIds] = (0, import_react4.useState)([]);
84
+ const description = messageIds.length > 0 ? messageIds.join(" ") : void 0;
85
+ const handleMessageIdAdd = (0, import_react4.useCallback)((msgId) => {
86
+ setMessageIds((ids) => [...ids, msgId]);
87
+ }, []);
88
+ const handleMessageIdRemove = (0, import_react4.useCallback)((msgId) => {
89
+ setMessageIds((ids) => ids.filter((current) => current !== msgId));
90
+ }, []);
91
+ const value = (0, import_react4.useMemo)(() => {
92
+ const isInvalid = state === "error";
93
+ return {
94
+ id,
95
+ labelId,
96
+ name,
97
+ disabled,
98
+ readOnly,
99
+ state,
100
+ isRequired,
101
+ isInvalid,
102
+ description,
103
+ onMessageIdAdd: handleMessageIdAdd,
104
+ onMessageIdRemove: handleMessageIdRemove
105
+ };
106
+ }, [
107
+ id,
108
+ labelId,
109
+ name,
110
+ disabled,
111
+ readOnly,
112
+ description,
113
+ state,
114
+ isRequired,
115
+ handleMessageIdAdd,
116
+ handleMessageIdRemove
117
+ ]);
118
+ return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(FormFieldContext.Provider, { value, children });
119
+ };
120
+ FormFieldProvider.displayName = "FormFieldProvider";
121
+
122
+ // src/form-field/FormField.tsx
123
+ var import_jsx_runtime3 = require("react/jsx-runtime");
124
+ var FormField = ({
125
+ className,
126
+ disabled = false,
127
+ readOnly = false,
128
+ name,
129
+ state,
130
+ isRequired = false,
131
+ asChild = false,
132
+ ref,
133
+ ...others
134
+ }) => {
135
+ const id = `${ID_PREFIX}-${(0, import_react5.useId)()}`;
136
+ const Component = asChild ? Slot : "div";
137
+ return /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
138
+ FormFieldProvider,
139
+ {
140
+ id,
141
+ name,
142
+ isRequired,
143
+ disabled,
144
+ readOnly,
145
+ state,
146
+ children: /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
147
+ Component,
148
+ {
149
+ ref,
150
+ "data-spark-component": "form-field",
151
+ className: (0, import_class_variance_authority.cx)(className, "gap-sm flex flex-col"),
152
+ ...others
153
+ }
154
+ )
155
+ }
156
+ );
157
+ };
158
+ FormField.displayName = "FormField";
159
+
160
+ // src/form-field/FormFieldStateMessage.tsx
161
+ var import_AlertOutline = require("@spark-ui/icons/AlertOutline");
162
+ var import_Check = require("@spark-ui/icons/Check");
163
+ var import_WarningOutline = require("@spark-ui/icons/WarningOutline");
164
+ var import_class_variance_authority4 = require("class-variance-authority");
165
+
166
+ // src/icon/Icon.tsx
167
+ var import_react6 = require("react");
168
+
169
+ // src/visually-hidden/VisuallyHidden.tsx
170
+ var import_jsx_runtime4 = require("react/jsx-runtime");
171
+ var VisuallyHidden = ({ asChild = false, ref, ...props }) => {
172
+ const Component = asChild ? Slot : "span";
173
+ return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
174
+ Component,
175
+ {
176
+ ...props,
177
+ ref,
178
+ style: {
179
+ // See: https://github.com/twbs/bootstrap/blob/main/scss/mixins/_visually-hidden.scss
180
+ position: "absolute",
181
+ border: 0,
182
+ width: 1,
183
+ height: 1,
184
+ padding: 0,
185
+ margin: -1,
186
+ overflow: "hidden",
187
+ clip: "rect(0, 0, 0, 0)",
188
+ whiteSpace: "nowrap",
189
+ wordWrap: "normal",
190
+ ...props.style
191
+ }
192
+ }
193
+ );
194
+ };
195
+ VisuallyHidden.displayName = "VisuallyHidden";
196
+
197
+ // src/icon/Icon.styles.tsx
198
+ var import_internal_utils = require("@spark-ui/internal-utils");
199
+ var import_class_variance_authority2 = require("class-variance-authority");
200
+ var iconStyles = (0, import_class_variance_authority2.cva)(["fill-current shrink-0"], {
201
+ variants: {
202
+ /**
203
+ * Color scheme of the icon.
204
+ */
205
+ intent: (0, import_internal_utils.makeVariants)({
206
+ current: ["text-current"],
207
+ main: ["text-main"],
208
+ support: ["text-support"],
209
+ accent: ["text-accent"],
210
+ basic: ["text-basic"],
211
+ success: ["text-success"],
212
+ alert: ["text-alert"],
213
+ error: ["text-error"],
214
+ info: ["text-info"],
215
+ neutral: ["text-neutral"]
216
+ }),
217
+ /**
218
+ * Sets the size of the icon.
219
+ */
220
+ size: (0, import_internal_utils.makeVariants)({
221
+ current: ["u-current-font-size"],
222
+ sm: ["w-sz-16", "h-sz-16"],
223
+ md: ["w-sz-24", "h-sz-24"],
224
+ lg: ["w-sz-32", "h-sz-32"],
225
+ xl: ["w-sz-40", "h-sz-40"]
226
+ })
227
+ }
228
+ });
229
+
230
+ // src/icon/Icon.tsx
231
+ var import_jsx_runtime5 = require("react/jsx-runtime");
232
+ var Icon = ({
233
+ label,
234
+ className,
235
+ size = "current",
236
+ intent = "current",
237
+ children,
238
+ ...others
239
+ }) => {
240
+ const child = import_react6.Children.only(children);
241
+ return /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)(import_jsx_runtime5.Fragment, { children: [
242
+ (0, import_react6.cloneElement)(child, {
243
+ className: iconStyles({ className, size, intent }),
244
+ "data-spark-component": "icon",
245
+ "aria-hidden": "true",
246
+ focusable: "false",
247
+ ...others
248
+ }),
249
+ label && /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(VisuallyHidden, { children: label })
250
+ ] });
251
+ };
252
+ Icon.displayName = "Icon";
253
+
254
+ // src/form-field/FormFieldMessage.tsx
255
+ var import_class_variance_authority3 = require("class-variance-authority");
256
+ var import_react7 = require("react");
257
+ var import_jsx_runtime6 = require("react/jsx-runtime");
258
+ var FormFieldMessage = ({
259
+ id: idProp,
260
+ className,
261
+ ref,
262
+ ...others
263
+ }) => {
264
+ const { onMessageIdAdd, onMessageIdRemove } = useFormField();
265
+ const currentId = `${ID_PREFIX}-message-${(0, import_react7.useId)()}`;
266
+ const id = idProp || currentId;
267
+ (0, import_react7.useEffect)(() => {
268
+ onMessageIdAdd(id);
269
+ return () => {
270
+ onMessageIdRemove(id);
271
+ };
272
+ }, [id, onMessageIdAdd, onMessageIdRemove]);
273
+ return /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
274
+ "span",
275
+ {
276
+ ref,
277
+ id,
278
+ "data-spark-component": "form-field-message",
279
+ className: (0, import_class_variance_authority3.cx)(className, "text-caption"),
280
+ ...others
281
+ }
282
+ );
283
+ };
284
+ FormFieldMessage.displayName = "FormField.Message";
285
+
286
+ // src/form-field/FormFieldStateMessage.tsx
287
+ var import_jsx_runtime7 = require("react/jsx-runtime");
288
+ var FormFieldStateMessage = ({
289
+ className,
290
+ state,
291
+ children,
292
+ ref,
293
+ ...others
294
+ }) => {
295
+ const field = useFormField();
296
+ if (field.state !== state) {
297
+ return null;
298
+ }
299
+ return /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)(
300
+ FormFieldMessage,
301
+ {
302
+ ref,
303
+ "data-spark-component": "form-field-state-message",
304
+ "aria-live": "polite",
305
+ className: (0, import_class_variance_authority4.cx)(
306
+ "gap-sm flex items-center",
307
+ state === "error" ? "text-error" : "text-on-surface/dim-1",
308
+ className
309
+ ),
310
+ ...others,
311
+ children: [
312
+ state === "alert" && /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(Icon, { size: "sm", children: /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(import_WarningOutline.WarningOutline, {}) }),
313
+ state === "error" && /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(Icon, { size: "sm", intent: "error", children: /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(import_AlertOutline.AlertOutline, {}) }),
314
+ state === "success" && /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(Icon, { size: "sm", children: /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(import_Check.Check, {}) }),
315
+ children
316
+ ]
317
+ }
318
+ );
319
+ };
320
+ FormFieldStateMessage.displayName = "FormField.StateMessage";
321
+
322
+ // src/form-field/FormFieldAlertMessage.tsx
323
+ var import_jsx_runtime8 = require("react/jsx-runtime");
324
+ var FormFieldAlertMessage = ({ ref, ...props }) => {
325
+ return /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
326
+ FormFieldStateMessage,
327
+ {
328
+ ref,
329
+ "data-spark-component": "form-field-alert-message",
330
+ state: "alert",
331
+ ...props
332
+ }
333
+ );
334
+ };
335
+ FormFieldAlertMessage.displayName = "FormField.AlertMessage";
336
+
337
+ // src/form-field/FormFieldCharactersCount.tsx
338
+ var import_class_variance_authority5 = require("class-variance-authority");
339
+ var import_jsx_runtime9 = require("react/jsx-runtime");
340
+ var FormFieldCharactersCount = ({
341
+ className,
342
+ value = "",
343
+ maxLength,
344
+ ref,
345
+ ...others
346
+ }) => {
347
+ const displayValue = `${value.length}/${maxLength}`;
348
+ return /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
349
+ "span",
350
+ {
351
+ ref,
352
+ "data-spark-component": "form-field-characters-count",
353
+ className: (0, import_class_variance_authority5.cx)(className, "text-caption", "text-neutral"),
354
+ ...others,
355
+ children: displayValue
356
+ }
357
+ );
358
+ };
359
+ FormFieldCharactersCount.displayName = "FormField.CharactersCount";
360
+
361
+ // src/form-field/FormFieldControl.tsx
362
+ var import_react8 = require("react");
363
+ var import_jsx_runtime10 = require("react/jsx-runtime");
364
+ var useFormFieldControl = () => {
365
+ const { id, name, description, disabled, readOnly, state, labelId, isInvalid, isRequired } = (0, import_react8.useContext)(FormFieldContext) || {};
366
+ return {
367
+ id,
368
+ name,
369
+ description,
370
+ disabled,
371
+ readOnly,
372
+ state,
373
+ labelId,
374
+ isInvalid,
375
+ isRequired
376
+ };
377
+ };
378
+ var FormFieldControl = ({ children }) => {
379
+ const props = useFormFieldControl();
380
+ return /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(import_jsx_runtime10.Fragment, { children: children(props) });
381
+ };
382
+ FormFieldControl.displayName = "FormField.Control";
383
+
384
+ // src/form-field/FormFieldErrorMessage.tsx
385
+ var import_jsx_runtime11 = require("react/jsx-runtime");
386
+ var FormFieldErrorMessage = ({ ref, ...props }) => {
387
+ return /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
388
+ FormFieldStateMessage,
389
+ {
390
+ ref,
391
+ "data-spark-component": "form-field-error-message",
392
+ state: "error",
393
+ ...props
394
+ }
395
+ );
396
+ };
397
+ FormFieldErrorMessage.displayName = "FormField.ErrorMessage";
398
+
399
+ // src/form-field/FormFieldHelperMessage.tsx
400
+ var import_class_variance_authority6 = require("class-variance-authority");
401
+ var import_jsx_runtime12 = require("react/jsx-runtime");
402
+ var FormFieldHelperMessage = ({
403
+ className,
404
+ ref,
405
+ ...others
406
+ }) => {
407
+ return /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
408
+ FormFieldMessage,
409
+ {
410
+ ref,
411
+ "data-spark-component": "form-field-helper-message",
412
+ className: (0, import_class_variance_authority6.cx)("text-on-surface/dim-1", className),
413
+ ...others
414
+ }
415
+ );
416
+ };
417
+ FormFieldHelperMessage.displayName = "FormField.HelperMessage";
418
+
419
+ // src/form-field/FormFieldLabel.tsx
420
+ var import_class_variance_authority10 = require("class-variance-authority");
421
+
422
+ // src/label/Label.tsx
423
+ var import_class_variance_authority7 = require("class-variance-authority");
424
+ var import_radix_ui2 = require("radix-ui");
425
+ var import_jsx_runtime13 = require("react/jsx-runtime");
426
+ var Label = ({ className, ref, ...others }) => {
427
+ return /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
428
+ import_radix_ui2.Label.Label,
429
+ {
430
+ ref,
431
+ "data-spark-component": "label",
432
+ className: (0, import_class_variance_authority7.cx)("text-body-1", className),
433
+ ...others
434
+ }
435
+ );
436
+ };
437
+ Label.displayName = "Label";
438
+
439
+ // src/label/LabelRequiredIndicator.tsx
440
+ var import_class_variance_authority8 = require("class-variance-authority");
441
+ var import_jsx_runtime14 = require("react/jsx-runtime");
442
+ var LabelRequiredIndicator = ({
443
+ className,
444
+ children = "*",
445
+ ref,
446
+ ...others
447
+ }) => {
448
+ return /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
449
+ "span",
450
+ {
451
+ ref,
452
+ "data-spark-component": "label-required-indicator",
453
+ role: "presentation",
454
+ "aria-hidden": "true",
455
+ className: (0, import_class_variance_authority8.cx)(className, "text-caption text-on-surface/dim-1"),
456
+ ...others,
457
+ children
458
+ }
459
+ );
460
+ };
461
+ LabelRequiredIndicator.displayName = "Label.RequiredIndicator";
462
+
463
+ // src/label/index.ts
464
+ var Label2 = Object.assign(Label, {
465
+ RequiredIndicator: LabelRequiredIndicator
466
+ });
467
+ Label2.displayName = "Label";
468
+ LabelRequiredIndicator.displayName = "Label.RequiredIndicator";
469
+
470
+ // src/form-field/FormFieldRequiredIndicator.tsx
471
+ var import_class_variance_authority9 = require("class-variance-authority");
472
+ var import_jsx_runtime15 = require("react/jsx-runtime");
473
+ var FormFieldRequiredIndicator = ({
474
+ className,
475
+ ref,
476
+ ...props
477
+ }) => {
478
+ return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(Label2.RequiredIndicator, { ref, className: (0, import_class_variance_authority9.cx)("ml-sm", className), ...props });
479
+ };
480
+ FormFieldRequiredIndicator.displayName = "FormField.RequiredIndicator";
481
+
482
+ // src/form-field/FormFieldLabel.tsx
483
+ var import_jsx_runtime16 = require("react/jsx-runtime");
484
+ var FormFieldLabel = ({
485
+ htmlFor: htmlForProp,
486
+ className,
487
+ children,
488
+ requiredIndicator = /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(FormFieldRequiredIndicator, {}),
489
+ asChild,
490
+ ref,
491
+ ...others
492
+ }) => {
493
+ const control = useFormField();
494
+ const { disabled, labelId, isRequired } = control;
495
+ const htmlFor = asChild ? void 0 : htmlForProp || control.id;
496
+ return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
497
+ Label2,
498
+ {
499
+ ref,
500
+ id: labelId,
501
+ "data-spark-component": "form-field-label",
502
+ htmlFor,
503
+ className: (0, import_class_variance_authority10.cx)(className, disabled ? "text-on-surface/dim-3 pointer-events-none" : void 0),
504
+ asChild,
505
+ ...others,
506
+ children: /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)(import_jsx_runtime16.Fragment, { children: [
507
+ /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(Slottable, { children }),
508
+ isRequired && requiredIndicator
509
+ ] })
510
+ }
511
+ );
512
+ };
513
+ FormFieldLabel.displayName = "FormField.Label";
514
+
515
+ // src/form-field/FormFieldSuccessMessage.tsx
516
+ var import_jsx_runtime17 = require("react/jsx-runtime");
517
+ var FormFieldSuccessMessage = ({ ref, ...props }) => {
518
+ return /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
519
+ FormFieldStateMessage,
520
+ {
521
+ ref,
522
+ "data-spark-component": "form-field-success-message",
523
+ state: "success",
524
+ ...props
525
+ }
526
+ );
527
+ };
528
+ FormFieldSuccessMessage.displayName = "FormField.SuccessMessage";
529
+
530
+ // src/form-field/index.ts
531
+ var FormField2 = Object.assign(FormField, {
532
+ Label: FormFieldLabel,
533
+ Control: FormFieldControl,
534
+ StateMessage: FormFieldStateMessage,
535
+ SuccessMessage: FormFieldSuccessMessage,
536
+ AlertMessage: FormFieldAlertMessage,
537
+ ErrorMessage: FormFieldErrorMessage,
538
+ HelperMessage: FormFieldHelperMessage,
539
+ RequiredIndicator: FormFieldRequiredIndicator,
540
+ CharactersCount: FormFieldCharactersCount
541
+ });
542
+ FormField2.displayName = "FormField";
543
+ FormFieldLabel.displayName = "FormField.Label";
544
+ FormFieldControl.displayName = "FormField.Control";
545
+ FormFieldStateMessage.displayName = "FormField.StateMessage";
546
+ FormFieldSuccessMessage.displayName = "FormField.SuccessMessage";
547
+ FormFieldAlertMessage.displayName = "FormField.AlertMessage";
548
+ FormFieldErrorMessage.displayName = "FormField.ErrorMessage";
549
+ FormFieldHelperMessage.displayName = "FormField.HelperMessage";
550
+ FormFieldRequiredIndicator.displayName = "FormField.RequiredIndicator";
551
+ FormFieldCharactersCount.displayName = "FormField.CharactersCount";
552
+
553
+ // src/radio-group/RadioIndicator.tsx
554
+ var import_radix_ui3 = require("radix-ui");
555
+
556
+ // src/radio-group/RadioIndicator.styles.ts
557
+ var import_internal_utils2 = require("@spark-ui/internal-utils");
558
+ var import_class_variance_authority11 = require("class-variance-authority");
559
+ var radioIndicatorStyles = (0, import_class_variance_authority11.cva)(
560
+ [
561
+ "relative block",
562
+ "size-3/5",
563
+ "after:absolute",
564
+ "after:left-1/2 after:top-1/2 after:-translate-x-1/2 after:-translate-y-1/2",
565
+ "after:h-0",
566
+ "after:w-0",
567
+ "after:block",
568
+ "after:rounded-[50%]",
569
+ "after:content-['']",
570
+ "after:transition-all",
571
+ "data-[state=checked]:after:size-full"
572
+ ],
573
+ {
574
+ variants: {
575
+ intent: (0, import_internal_utils2.makeVariants)({
576
+ main: ["after:bg-main"],
577
+ support: ["after:bg-support"],
578
+ accent: ["after:bg-accent"],
579
+ basic: ["after:bg-basic"],
580
+ neutral: ["after:bg-neutral"],
581
+ success: ["after:bg-success"],
582
+ alert: ["after:bg-alert"],
583
+ error: ["after:bg-error"],
584
+ info: ["after:bg-info"]
585
+ })
586
+ },
587
+ defaultVariants: {
588
+ intent: "basic"
589
+ }
590
+ }
591
+ );
592
+
593
+ // src/radio-group/RadioIndicator.tsx
594
+ var import_jsx_runtime18 = require("react/jsx-runtime");
595
+ var RadioIndicator = ({ intent, className, ref, ...others }) => {
596
+ return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
597
+ import_radix_ui3.RadioGroup.Indicator,
598
+ {
599
+ ref,
600
+ className: radioIndicatorStyles({ intent, className }),
601
+ ...others
602
+ }
603
+ );
604
+ };
605
+ RadioIndicator.displayName = "RadioGroup.RadioIndicator";
606
+
607
+ // src/radio-group/RadioInput.styles.ts
608
+ var import_internal_utils3 = require("@spark-ui/internal-utils");
609
+ var import_class_variance_authority12 = require("class-variance-authority");
610
+ var radioInputVariants = (0, import_class_variance_authority12.cva)(
611
+ [
612
+ "flex shrink-0 items-center justify-center",
613
+ "rounded-full",
614
+ "border-md",
615
+ "outline-hidden",
616
+ "hover:ring-4",
617
+ "focus-visible:u-outline",
618
+ "disabled:cursor-not-allowed disabled:border-outline/dim-2 disabled:hover:ring-transparent",
619
+ "u-shadow-border-transition",
620
+ "size-sz-24"
621
+ ],
622
+ {
623
+ variants: {
624
+ /**
625
+ * Color scheme of the radio input.
626
+ */
627
+ intent: (0, import_internal_utils3.makeVariants)({
628
+ main: ["border-outline", "data-[state=checked]:border-main", "hover:ring-main-container"],
629
+ support: [
630
+ "border-outline",
631
+ "data-[state=checked]:border-support",
632
+ "hover:ring-support-container"
633
+ ],
634
+ accent: [
635
+ "border-outline",
636
+ "data-[state=checked]:border-accent",
637
+ "hover:ring-accent-container"
638
+ ],
639
+ basic: [
640
+ "border-outline",
641
+ "data-[state=checked]:border-basic",
642
+ "hover:ring-basic-container"
643
+ ],
644
+ neutral: [
645
+ "border-outline",
646
+ "data-[state=checked]:border-neutral",
647
+ "hover:ring-neutral-container"
648
+ ],
649
+ info: ["border-outline", "data-[state=checked]:border-info", "hover:ring-info-container"],
650
+ success: [
651
+ "border-outline",
652
+ "data-[state=checked]:border-success",
653
+ "hover:ring-success-container"
654
+ ],
655
+ alert: [
656
+ "border-outline",
657
+ "data-[state=checked]:border-alert",
658
+ "hover:ring-alert-container"
659
+ ],
660
+ error: [
661
+ "border-outline",
662
+ "data-[state=checked]:border-error",
663
+ "hover:ring-error-container"
664
+ ]
665
+ })
666
+ },
667
+ defaultVariants: {
668
+ intent: "basic"
669
+ }
670
+ }
671
+ );
672
+
673
+ // src/radio-group/RadioInput.tsx
674
+ var import_jsx_runtime19 = require("react/jsx-runtime");
675
+ var RadioInput = ({ intent: intentProp, className, ref, ...others }) => {
676
+ const { state } = useFormFieldControl();
677
+ const intent = state ?? intentProp;
678
+ return /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
679
+ import_radix_ui4.RadioGroup.RadioGroupItem,
680
+ {
681
+ ref,
682
+ className: radioInputVariants({ intent, className }),
683
+ ...others,
684
+ children: /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(RadioIndicator, { intent, forceMount: true })
685
+ }
686
+ );
687
+ };
688
+ RadioInput.displayName = "RadioGroup.RadioInput";
689
+
690
+ // src/radio-group/RadioLabel.tsx
691
+ var import_radix_ui5 = require("radix-ui");
692
+
693
+ // src/radio-group/RadioLabel.styles.tsx
694
+ var import_class_variance_authority13 = require("class-variance-authority");
695
+ var radioLabelStyles = (0, import_class_variance_authority13.cva)("grow", {
696
+ variants: {
697
+ disabled: {
698
+ true: ["text-neutral/dim-2", "cursor-not-allowed"],
699
+ false: ["cursor-pointer"]
700
+ }
701
+ },
702
+ defaultVariants: {
703
+ disabled: false
704
+ }
705
+ });
706
+
707
+ // src/radio-group/RadioLabel.tsx
708
+ var import_jsx_runtime20 = require("react/jsx-runtime");
709
+ var RadioLabel = ({ disabled, ...others }) => {
710
+ return /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(import_radix_ui5.Label.Root, { className: radioLabelStyles({ disabled }), ...others });
711
+ };
712
+ RadioLabel.displayName = "RadioGroup.RadioLabel";
713
+
714
+ // src/radio-group/Radio.tsx
715
+ var import_jsx_runtime21 = require("react/jsx-runtime");
716
+ var ID_PREFIX2 = ":radio";
717
+ var Radio = ({
718
+ className,
719
+ children,
720
+ id,
721
+ disabled: disabledProp,
722
+ ref,
723
+ ...others
724
+ }) => {
725
+ const innerId = `${ID_PREFIX2}-input-${(0, import_react9.useId)()}`;
726
+ const innerLabelId = `${ID_PREFIX2}-label-${(0, import_react9.useId)()}`;
727
+ const { intent, disabled, reverse } = useRadioGroup();
728
+ const radioLabel = children && /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(RadioLabel, { disabled: disabledProp || disabled, htmlFor: id || innerId, id: innerLabelId, children });
729
+ const radioInput = /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
730
+ RadioInput,
731
+ {
732
+ ref,
733
+ id: id || innerId,
734
+ intent,
735
+ "aria-labelledby": children ? innerLabelId : void 0,
736
+ ...others,
737
+ disabled: disabledProp
738
+ }
739
+ );
740
+ const content = reverse ? /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(import_jsx_runtime21.Fragment, { children: [
741
+ radioLabel,
742
+ radioInput
743
+ ] }) : /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(import_jsx_runtime21.Fragment, { children: [
744
+ radioInput,
745
+ radioLabel
746
+ ] });
747
+ return /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("div", { className: (0, import_class_variance_authority14.cx)("gap-md text-body-1 flex items-start", className), children: content });
748
+ };
749
+ Radio.displayName = "RadioGroup.Radio";
750
+
751
+ // src/radio-group/RadioGroup.tsx
752
+ var import_radix_ui6 = require("radix-ui");
753
+
754
+ // src/radio-group/RadioGroup.styles.ts
755
+ var import_class_variance_authority15 = require("class-variance-authority");
756
+ var radioGroupStyles = (0, import_class_variance_authority15.cva)(["flex"], {
757
+ variants: {
758
+ orientation: {
759
+ vertical: ["flex-col", "gap-lg"],
760
+ horizontal: ["flex-row", "gap-xl"]
761
+ }
762
+ }
763
+ });
764
+
765
+ // src/radio-group/RadioGroupProvider.tsx
766
+ var import_react10 = require("react");
767
+ var import_jsx_runtime22 = require("react/jsx-runtime");
768
+ var RadioGroupProvider = ({
769
+ intent,
770
+ disabled,
771
+ reverse,
772
+ children
773
+ }) => {
774
+ const value = (0, import_react10.useMemo)(() => ({ intent, disabled, reverse }), [intent, disabled, reverse]);
775
+ return /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(RadioGroupContext.Provider, { value, children });
776
+ };
777
+
778
+ // src/radio-group/RadioGroup.tsx
779
+ var import_jsx_runtime23 = require("react/jsx-runtime");
780
+ var RadioGroup = ({
781
+ orientation = "vertical",
782
+ loop = true,
783
+ intent = "basic",
784
+ disabled,
785
+ className,
786
+ required: requiredProp,
787
+ reverse = false,
788
+ ref,
789
+ ...others
790
+ }) => {
791
+ const { labelId, isInvalid, isRequired, description, name } = useFormFieldControl();
792
+ const required = requiredProp !== void 0 ? requiredProp : isRequired;
793
+ return /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(RadioGroupProvider, { reverse, intent, disabled, children: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
794
+ import_radix_ui6.RadioGroup.RadioGroup,
795
+ {
796
+ "data-spark-component": "radio-group",
797
+ className: radioGroupStyles({ orientation, className }),
798
+ name,
799
+ ref,
800
+ disabled,
801
+ orientation,
802
+ loop,
803
+ required,
804
+ "aria-labelledby": labelId,
805
+ "aria-invalid": isInvalid,
806
+ "aria-required": required,
807
+ "aria-describedby": description,
808
+ ...others
809
+ }
810
+ ) });
811
+ };
812
+ RadioGroup.displayName = "RadioGroup";
813
+
814
+ // src/radio-group/index.ts
815
+ var RadioGroup2 = Object.assign(RadioGroup, {
816
+ Radio
817
+ });
818
+ RadioGroup2.displayName = "RadioGroup";
819
+ Radio.displayName = "RadioGroup.Radio";
820
+ // Annotate the CommonJS export names for ESM import in node:
821
+ 0 && (module.exports = {
822
+ RadioGroup
823
+ });
824
+ //# sourceMappingURL=index.js.map