@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,308 @@
1
+ import {
2
+ IconButton
3
+ } from "./chunk-2KPFQEAA.mjs";
4
+ import {
5
+ Icon
6
+ } from "./chunk-AESXFMCC.mjs";
7
+
8
+ // src/popover/Popover.tsx
9
+ import { Popover as RadixPopover } from "radix-ui";
10
+
11
+ // src/popover/PopoverContext.tsx
12
+ import { createContext, useContext, useState } from "react";
13
+ import { jsx } from "react/jsx-runtime";
14
+ var PopoverContext = createContext(null);
15
+ var ID_PREFIX = ":popover";
16
+ var PopoverProvider = ({
17
+ children,
18
+ intent
19
+ }) => {
20
+ const [headerId, setHeaderId] = useState(null);
21
+ return /* @__PURE__ */ jsx(
22
+ PopoverContext.Provider,
23
+ {
24
+ value: {
25
+ headerId,
26
+ setHeaderId,
27
+ intent
28
+ },
29
+ children
30
+ }
31
+ );
32
+ };
33
+ var usePopover = () => {
34
+ const context = useContext(PopoverContext);
35
+ if (!context) {
36
+ throw Error("usePopover must be used within a Popover provider");
37
+ }
38
+ return context;
39
+ };
40
+
41
+ // src/popover/Popover.tsx
42
+ import { jsx as jsx2 } from "react/jsx-runtime";
43
+ var Popover = ({ children, intent = "surface", modal = false, ...rest }) => {
44
+ return /* @__PURE__ */ jsx2(PopoverProvider, { intent, children: /* @__PURE__ */ jsx2(RadixPopover.Root, { "data-spark-component": "popover", modal, ...rest, children }) });
45
+ };
46
+ Popover.displayName = "Popover";
47
+
48
+ // src/popover/PopoverAnchor.tsx
49
+ import { Popover as RadixPopover2 } from "radix-ui";
50
+ import { jsx as jsx3 } from "react/jsx-runtime";
51
+ var Anchor = ({ asChild = false, children, ref, ...rest }) => /* @__PURE__ */ jsx3(RadixPopover2.Anchor, { "data-spark-component": "popover-anchor", ref, asChild, ...rest, children });
52
+ Anchor.displayName = "Popover.Anchor";
53
+
54
+ // src/popover/PopoverArrow.tsx
55
+ import { cva } from "class-variance-authority";
56
+ import { Popover as RadixPopover3 } from "radix-ui";
57
+ import { jsx as jsx4 } from "react/jsx-runtime";
58
+ var Arrow = ({
59
+ asChild = false,
60
+ width = 16,
61
+ height = 8,
62
+ className,
63
+ ref,
64
+ ...rest
65
+ }) => {
66
+ const { intent } = usePopover();
67
+ const styles2 = cva("visible", {
68
+ variants: {
69
+ intent: {
70
+ surface: "fill-surface",
71
+ main: "fill-main-container",
72
+ support: "fill-support-container",
73
+ accent: "fill-accent-container",
74
+ basic: "fill-basic-container",
75
+ success: "fill-success-container",
76
+ alert: "fill-alert-container",
77
+ danger: "fill-error-container",
78
+ info: "fill-info-container",
79
+ neutral: "fill-neutral-container"
80
+ }
81
+ },
82
+ defaultVariants: {
83
+ intent: "surface"
84
+ }
85
+ });
86
+ return /* @__PURE__ */ jsx4(
87
+ RadixPopover3.Arrow,
88
+ {
89
+ "data-spark-component": "popover-arrow",
90
+ ref,
91
+ className: styles2({ intent, className }),
92
+ asChild,
93
+ width,
94
+ height,
95
+ ...rest
96
+ }
97
+ );
98
+ };
99
+ Arrow.displayName = "Popover.Arrow";
100
+
101
+ // src/popover/PopoverCloseButton.tsx
102
+ import { Close as CloseSVG } from "@spark-ui/icons/Close";
103
+ import { cx } from "class-variance-authority";
104
+ import { Popover as RadixPopover4 } from "radix-ui";
105
+ import { jsx as jsx5 } from "react/jsx-runtime";
106
+ var CloseButton = ({
107
+ "aria-label": ariaLabel,
108
+ className,
109
+ ref,
110
+ ...rest
111
+ }) => {
112
+ return /* @__PURE__ */ jsx5(
113
+ RadixPopover4.Close,
114
+ {
115
+ "data-spark-component": "popover-close-button",
116
+ ref,
117
+ className: cx("right-md top-md absolute", className),
118
+ asChild: true,
119
+ ...rest,
120
+ children: /* @__PURE__ */ jsx5(IconButton, { size: "sm", intent: "neutral", design: "ghost", "aria-label": ariaLabel, children: /* @__PURE__ */ jsx5(Icon, { children: /* @__PURE__ */ jsx5(CloseSVG, {}) }) })
121
+ }
122
+ );
123
+ };
124
+ CloseButton.displayName = "Popover.CloseButton";
125
+
126
+ // src/popover/PopoverContent.tsx
127
+ import { Popover as RadixPopover5 } from "radix-ui";
128
+
129
+ // src/popover/PopoverContent.styles.ts
130
+ import { cva as cva2 } from "class-variance-authority";
131
+ var styles = cva2(
132
+ [
133
+ "rounded-md",
134
+ "shadow-sm",
135
+ "focus-visible:outline-hidden focus-visible:u-outline",
136
+ "max-h-(--radix-popper-available-height) overflow-y-auto"
137
+ ],
138
+ {
139
+ variants: {
140
+ intent: {
141
+ surface: "bg-surface text-on-surface",
142
+ main: "bg-main-container text-on-main-container",
143
+ support: "bg-support-container text-on-support-container",
144
+ accent: "bg-accent-container text-on-accent-container",
145
+ basic: "bg-basic-container text-on-basic-container",
146
+ success: "bg-success-container text-on-success-container",
147
+ alert: "bg-alert-container text-on-alert-container",
148
+ danger: "bg-error-container text-on-error-container",
149
+ info: "bg-info-container text-on-info-container",
150
+ neutral: "bg-neutral-container text-on-neutral-container"
151
+ },
152
+ matchTriggerWidth: {
153
+ true: "w-(--radix-popper-anchor-width)"
154
+ },
155
+ enforceBoundaries: {
156
+ true: ["max-w-(--radix-popper-available-width)"]
157
+ },
158
+ inset: {
159
+ true: "overflow-hidden",
160
+ false: "p-lg"
161
+ },
162
+ elevation: {
163
+ dropdown: "z-dropdown",
164
+ popover: "z-popover"
165
+ }
166
+ },
167
+ compoundVariants: [
168
+ {
169
+ inset: false,
170
+ /**
171
+ * When there is a close button, padding to the right side must be adjusted to avoid content overlapping with it.
172
+ */
173
+ class: "has-data-[spark-component=popover-close-button]:pr-3xl"
174
+ },
175
+ {
176
+ enforceBoundaries: false,
177
+ matchTriggerWidth: false,
178
+ class: "max-w-[min(var(--spacing-sz-384),100vw)]"
179
+ }
180
+ ],
181
+ defaultVariants: {
182
+ matchTriggerWidth: false,
183
+ enforceBoundaries: false,
184
+ inset: false,
185
+ intent: "surface",
186
+ elevation: "popover"
187
+ }
188
+ }
189
+ );
190
+
191
+ // src/popover/PopoverContent.tsx
192
+ import { jsx as jsx6 } from "react/jsx-runtime";
193
+ var Content = ({
194
+ // Spark props
195
+ className,
196
+ children,
197
+ matchTriggerWidth = false,
198
+ // Radix props
199
+ align = "center",
200
+ arrowPadding = 16,
201
+ // In order not to overlap the arrow on the rounded corners of the popover.
202
+ asChild = false,
203
+ avoidCollisions = true,
204
+ "aria-labelledby": ariaLabelledBy,
205
+ collisionBoundary,
206
+ collisionPadding = 0,
207
+ hideWhenDetached = false,
208
+ side = "bottom",
209
+ sideOffset = 8,
210
+ sticky = "partial",
211
+ inset = false,
212
+ elevation = "popover",
213
+ ref,
214
+ ...rest
215
+ }) => {
216
+ const { headerId, intent } = usePopover();
217
+ return /* @__PURE__ */ jsx6(
218
+ RadixPopover5.Content,
219
+ {
220
+ "aria-labelledby": headerId || ariaLabelledBy,
221
+ className: styles({
222
+ enforceBoundaries: !!collisionBoundary,
223
+ matchTriggerWidth,
224
+ inset,
225
+ elevation,
226
+ intent,
227
+ className
228
+ }),
229
+ "data-spark-component": "popover-content",
230
+ ref,
231
+ ...{
232
+ align,
233
+ arrowPadding,
234
+ asChild,
235
+ avoidCollisions,
236
+ collisionBoundary,
237
+ collisionPadding,
238
+ hideWhenDetached,
239
+ side,
240
+ sideOffset,
241
+ sticky
242
+ },
243
+ ...rest,
244
+ children
245
+ }
246
+ );
247
+ };
248
+ Content.displayName = "Popover.Content";
249
+
250
+ // src/popover/PopoverHeader.tsx
251
+ import { cx as cx2 } from "class-variance-authority";
252
+ import { useId, useLayoutEffect } from "react";
253
+ import { jsx as jsx7 } from "react/jsx-runtime";
254
+ var Header = ({ children, className, ref, ...rest }) => {
255
+ const id = `${ID_PREFIX}-header-${useId()}`;
256
+ const { setHeaderId } = usePopover();
257
+ useLayoutEffect(() => {
258
+ setHeaderId(id);
259
+ return () => setHeaderId(null);
260
+ }, [id, setHeaderId]);
261
+ return /* @__PURE__ */ jsx7("header", { id, ref, className: cx2("mb-md text-headline-2", className), ...rest, children });
262
+ };
263
+ Header.displayName = "Popover.Header";
264
+
265
+ // src/popover/PopoverPortal.tsx
266
+ import { Popover as RadixPopover6 } from "radix-ui";
267
+ import { jsx as jsx8 } from "react/jsx-runtime";
268
+ var Portal = ({ children, ...rest }) => /* @__PURE__ */ jsx8(RadixPopover6.Portal, { ...rest, children });
269
+ Portal.displayName = "Popover.Portal";
270
+
271
+ // src/popover/PopoverTrigger.tsx
272
+ import { Popover as RadixPopover7 } from "radix-ui";
273
+ import { jsx as jsx9 } from "react/jsx-runtime";
274
+ var Trigger = ({ asChild = false, children, ref, ...rest }) => /* @__PURE__ */ jsx9(
275
+ RadixPopover7.Trigger,
276
+ {
277
+ "data-spark-component": "popover-trigger",
278
+ ref,
279
+ asChild,
280
+ ...rest,
281
+ children
282
+ }
283
+ );
284
+ Trigger.displayName = "Popover.Trigger";
285
+
286
+ // src/popover/index.ts
287
+ var Popover2 = Object.assign(Popover, {
288
+ Anchor,
289
+ Arrow,
290
+ CloseButton,
291
+ Content,
292
+ Header,
293
+ Portal,
294
+ Trigger
295
+ });
296
+ Popover2.displayName = "Popover";
297
+ Anchor.displayName = "Popover.Anchor";
298
+ Arrow.displayName = "Popover.Arrow";
299
+ CloseButton.displayName = "Popover.CloseButton";
300
+ Content.displayName = "Popover.Content";
301
+ Header.displayName = "Popover.Header";
302
+ Portal.displayName = "Popover.Portal";
303
+ Trigger.displayName = "Popover.Trigger";
304
+
305
+ export {
306
+ Popover2 as Popover
307
+ };
308
+ //# sourceMappingURL=chunk-B42LOFIZ.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/popover/Popover.tsx","../src/popover/PopoverContext.tsx","../src/popover/PopoverAnchor.tsx","../src/popover/PopoverArrow.tsx","../src/popover/PopoverCloseButton.tsx","../src/popover/PopoverContent.tsx","../src/popover/PopoverContent.styles.ts","../src/popover/PopoverHeader.tsx","../src/popover/PopoverPortal.tsx","../src/popover/PopoverTrigger.tsx","../src/popover/index.ts"],"sourcesContent":["import { Popover as RadixPopover } from 'radix-ui'\n\nimport { type PopoverIntent, PopoverProvider } from './PopoverContext'\n\nexport type PopoverProps = RadixPopover.PopoverProps & {\n intent?: PopoverIntent\n}\n\nexport const Popover = ({ children, intent = 'surface', modal = false, ...rest }: PopoverProps) => {\n return (\n <PopoverProvider intent={intent}>\n <RadixPopover.Root data-spark-component=\"popover\" modal={modal} {...rest}>\n {children}\n </RadixPopover.Root>\n </PopoverProvider>\n )\n}\n\nPopover.displayName = 'Popover'\n","import { createContext, type ReactNode, useContext, useState } from 'react'\n\ntype HeaderId = string | null\n\nexport type PopoverIntent =\n | 'surface'\n | 'main'\n | 'support'\n | 'accent'\n | 'basic'\n | 'success'\n | 'alert'\n | 'danger'\n | 'info'\n | 'neutral'\nexport interface PopoverContextState {\n headerId: HeaderId\n setHeaderId: (id: HeaderId) => void\n intent: PopoverIntent\n}\n\nconst PopoverContext = createContext<PopoverContextState | null>(null)\n\nexport const ID_PREFIX = ':popover'\n\nexport const PopoverProvider = ({\n children,\n intent,\n}: {\n children: ReactNode\n intent: PopoverIntent\n}) => {\n const [headerId, setHeaderId] = useState<HeaderId>(null)\n\n return (\n <PopoverContext.Provider\n value={{\n headerId,\n setHeaderId,\n intent,\n }}\n >\n {children}\n </PopoverContext.Provider>\n )\n}\n\nexport const usePopover = () => {\n const context = useContext(PopoverContext)\n\n if (!context) {\n throw Error('usePopover must be used within a Popover provider')\n }\n\n return context\n}\n","import { Popover as RadixPopover } from 'radix-ui'\nimport { Ref } from 'react'\n\nexport type AnchorProps = RadixPopover.PopoverAnchorProps & {\n ref?: Ref<HTMLDivElement>\n}\n\nexport const Anchor = ({ asChild = false, children, ref, ...rest }: AnchorProps) => (\n <RadixPopover.Anchor data-spark-component=\"popover-anchor\" ref={ref} asChild={asChild} {...rest}>\n {children}\n </RadixPopover.Anchor>\n)\n\nAnchor.displayName = 'Popover.Anchor'\n","import { cva } from 'class-variance-authority'\nimport { Popover as RadixPopover } from 'radix-ui'\nimport { Ref } from 'react'\n\nimport { usePopover } from './PopoverContext'\n\nexport type ArrowProps = RadixPopover.PopoverArrowProps & {\n ref?: Ref<SVGSVGElement>\n}\n\nexport const Arrow = ({\n asChild = false,\n width = 16,\n height = 8,\n className,\n ref,\n ...rest\n}: ArrowProps) => {\n const { intent } = usePopover()\n\n /**\n * This is necessary to override a Radix UI behaviour.\n * Radix hides the arrow when the Popover is too misaligned from its trigger element.\n */\n const styles = cva('visible', {\n variants: {\n intent: {\n surface: 'fill-surface',\n main: 'fill-main-container',\n support: 'fill-support-container',\n accent: 'fill-accent-container',\n basic: 'fill-basic-container',\n success: 'fill-success-container',\n alert: 'fill-alert-container',\n danger: 'fill-error-container',\n info: 'fill-info-container',\n neutral: 'fill-neutral-container',\n },\n },\n defaultVariants: {\n intent: 'surface',\n },\n })\n\n return (\n <RadixPopover.Arrow\n data-spark-component=\"popover-arrow\"\n ref={ref}\n className={styles({ intent, className })}\n asChild={asChild}\n width={width}\n height={height}\n {...rest}\n />\n )\n}\n\nArrow.displayName = 'Popover.Arrow'\n","import { Close as CloseSVG } from '@spark-ui/icons/Close'\nimport { cx } from 'class-variance-authority'\nimport { Popover as RadixPopover } from 'radix-ui'\nimport { Ref } from 'react'\n\nimport { Icon } from '../icon'\nimport { IconButton } from '../icon-button'\n\nexport type CloseButtonProps = RadixPopover.PopoverCloseProps & {\n 'aria-label': string\n ref?: Ref<HTMLButtonElement>\n}\n\nexport const CloseButton = ({\n 'aria-label': ariaLabel,\n className,\n ref,\n ...rest\n}: CloseButtonProps) => {\n return (\n <RadixPopover.Close\n data-spark-component=\"popover-close-button\"\n ref={ref}\n className={cx('right-md top-md absolute', className)}\n asChild\n {...rest}\n >\n <IconButton size=\"sm\" intent=\"neutral\" design=\"ghost\" aria-label={ariaLabel}>\n <Icon>\n <CloseSVG />\n </Icon>\n </IconButton>\n </RadixPopover.Close>\n )\n}\n\nCloseButton.displayName = 'Popover.CloseButton'\n","import { Popover as RadixPopover } from 'radix-ui'\nimport { Ref } from 'react'\n\nimport { styles, type StylesProps } from './PopoverContent.styles'\nimport { usePopover } from './PopoverContext'\n\nexport type ContentProps = RadixPopover.PopoverContentProps &\n StylesProps & {\n ref?: Ref<HTMLDivElement>\n }\n\nexport const Content = ({\n // Spark props\n className,\n children,\n matchTriggerWidth = false,\n // Radix props\n align = 'center',\n arrowPadding = 16, // In order not to overlap the arrow on the rounded corners of the popover.\n asChild = false,\n avoidCollisions = true,\n 'aria-labelledby': ariaLabelledBy,\n collisionBoundary,\n collisionPadding = 0,\n hideWhenDetached = false,\n side = 'bottom',\n sideOffset = 8,\n sticky = 'partial',\n inset = false,\n elevation = 'popover',\n ref,\n ...rest\n}: ContentProps) => {\n const { headerId, intent } = usePopover()\n\n return (\n <RadixPopover.Content\n aria-labelledby={headerId || ariaLabelledBy}\n className={styles({\n enforceBoundaries: !!collisionBoundary,\n matchTriggerWidth,\n inset,\n elevation,\n intent,\n className,\n })}\n data-spark-component=\"popover-content\"\n ref={ref}\n {...{\n align,\n arrowPadding,\n asChild,\n avoidCollisions,\n collisionBoundary,\n collisionPadding,\n hideWhenDetached,\n side,\n sideOffset,\n sticky,\n }}\n {...rest}\n >\n {children}\n </RadixPopover.Content>\n )\n}\n\nContent.displayName = 'Popover.Content'\n","import { cva, type VariantProps } from 'class-variance-authority'\n\nexport const styles = cva(\n [\n 'rounded-md',\n 'shadow-sm',\n 'focus-visible:outline-hidden focus-visible:u-outline',\n 'max-h-(--radix-popper-available-height) overflow-y-auto',\n ],\n {\n variants: {\n intent: {\n surface: 'bg-surface text-on-surface',\n main: 'bg-main-container text-on-main-container',\n support: 'bg-support-container text-on-support-container',\n accent: 'bg-accent-container text-on-accent-container',\n basic: 'bg-basic-container text-on-basic-container',\n success: 'bg-success-container text-on-success-container',\n alert: 'bg-alert-container text-on-alert-container',\n danger: 'bg-error-container text-on-error-container',\n info: 'bg-info-container text-on-info-container',\n neutral: 'bg-neutral-container text-on-neutral-container',\n },\n matchTriggerWidth: {\n true: 'w-(--radix-popper-anchor-width)',\n },\n enforceBoundaries: {\n true: ['max-w-(--radix-popper-available-width)'],\n },\n\n inset: {\n true: 'overflow-hidden',\n false: 'p-lg',\n },\n elevation: {\n dropdown: 'z-dropdown',\n popover: 'z-popover',\n },\n },\n compoundVariants: [\n {\n inset: false,\n /**\n * When there is a close button, padding to the right side must be adjusted to avoid content overlapping with it.\n */\n class: 'has-data-[spark-component=popover-close-button]:pr-3xl',\n },\n {\n enforceBoundaries: false,\n matchTriggerWidth: false,\n class: 'max-w-[min(var(--spacing-sz-384),100vw)]',\n },\n ],\n defaultVariants: {\n matchTriggerWidth: false,\n enforceBoundaries: false,\n inset: false,\n intent: 'surface',\n elevation: 'popover',\n },\n }\n)\n\nexport type StylesProps = VariantProps<typeof styles>\n","import { cx } from 'class-variance-authority'\nimport { type ReactNode, Ref, useId, useLayoutEffect } from 'react'\n\nimport { ID_PREFIX, usePopover } from './PopoverContext'\n\nexport interface HeaderProps {\n children: ReactNode\n className?: string\n ref?: Ref<HTMLDivElement>\n}\n\nexport const Header = ({ children, className, ref, ...rest }: HeaderProps) => {\n const id = `${ID_PREFIX}-header-${useId()}`\n const { setHeaderId } = usePopover()\n\n useLayoutEffect(() => {\n setHeaderId(id)\n\n return () => setHeaderId(null)\n }, [id, setHeaderId])\n\n return (\n <header id={id} ref={ref} className={cx('mb-md text-headline-2', className)} {...rest}>\n {children}\n </header>\n )\n}\n\nHeader.displayName = 'Popover.Header'\n","import { Popover as RadixPopover } from 'radix-ui'\nimport { ReactElement } from 'react'\n\nexport type PortalProps = RadixPopover.PopoverPortalProps\n\nexport const Portal = ({ children, ...rest }: PortalProps): ReactElement => (\n <RadixPopover.Portal {...rest}>{children}</RadixPopover.Portal>\n)\n\nPortal.displayName = 'Popover.Portal'\n","import { Popover as RadixPopover } from 'radix-ui'\nimport { Ref } from 'react'\n\nexport type TriggerProps = RadixPopover.PopoverTriggerProps & {\n ref?: Ref<HTMLButtonElement>\n}\n\nexport const Trigger = ({ asChild = false, children, ref, ...rest }: TriggerProps) => (\n <RadixPopover.Trigger\n data-spark-component=\"popover-trigger\"\n ref={ref}\n asChild={asChild}\n {...rest}\n >\n {children}\n </RadixPopover.Trigger>\n)\n\nTrigger.displayName = 'Popover.Trigger'\n","import { Popover as Root } from './Popover'\nimport { Anchor } from './PopoverAnchor'\nimport { Arrow } from './PopoverArrow'\nimport { CloseButton } from './PopoverCloseButton'\nimport { Content } from './PopoverContent'\nimport { Header } from './PopoverHeader'\nimport { Portal } from './PopoverPortal'\nimport { Trigger } from './PopoverTrigger'\n\nexport const Popover: typeof Root & {\n Anchor: typeof Anchor\n Arrow: typeof Arrow\n CloseButton: typeof CloseButton\n Content: typeof Content\n Header: typeof Header\n Portal: typeof Portal\n Trigger: typeof Trigger\n} = Object.assign(Root, {\n Anchor,\n Arrow,\n CloseButton,\n Content,\n Header,\n Portal,\n Trigger,\n})\n\nPopover.displayName = 'Popover'\nAnchor.displayName = 'Popover.Anchor'\nArrow.displayName = 'Popover.Arrow'\nCloseButton.displayName = 'Popover.CloseButton'\nContent.displayName = 'Popover.Content'\nHeader.displayName = 'Popover.Header'\nPortal.displayName = 'Popover.Portal'\nTrigger.displayName = 'Popover.Trigger'\n"],"mappings":"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","names":["jsx","RadixPopover","jsx","RadixPopover","jsx","styles","RadixPopover","RadixPopover","jsx","RadixPopover","RadixPopover","cva","jsx","RadixPopover","cx","jsx","cx","RadixPopover","jsx","RadixPopover","jsx","Popover"]}
@@ -0,0 +1,97 @@
1
+ import {
2
+ Slot
3
+ } from "./chunk-4F5DOL57.mjs";
4
+
5
+ // src/collapsible/Collapsible.tsx
6
+ import * as collapsible from "@zag-js/collapsible";
7
+ import { mergeProps, normalizeProps, useMachine } from "@zag-js/react";
8
+ import { createContext, useContext, useId } from "react";
9
+ import { jsx } from "react/jsx-runtime";
10
+ var CollapsibleContext = createContext(null);
11
+ var Collapsible = ({
12
+ asChild = false,
13
+ children,
14
+ defaultOpen = false,
15
+ disabled = false,
16
+ onOpenChange,
17
+ open,
18
+ ids,
19
+ ref,
20
+ ...props
21
+ }) => {
22
+ const service = useMachine(collapsible.machine, {
23
+ open,
24
+ defaultOpen,
25
+ disabled,
26
+ id: useId(),
27
+ ids,
28
+ onOpenChange(details) {
29
+ onOpenChange?.(details.open);
30
+ }
31
+ });
32
+ const api = collapsible.connect(service, normalizeProps);
33
+ const Component = asChild ? Slot : "div";
34
+ const mergedProps = mergeProps(api.getRootProps(), props);
35
+ return /* @__PURE__ */ jsx(CollapsibleContext.Provider, { value: api, children: /* @__PURE__ */ jsx(Component, { "data-spark-component": "collapsible", ref, ...mergedProps, children }) });
36
+ };
37
+ Collapsible.displayName = "Collapsible";
38
+ var useCollapsibleContext = () => {
39
+ const context = useContext(CollapsibleContext);
40
+ if (!context) {
41
+ throw Error("useCollapsibleContext must be used within a Collapsible provider");
42
+ }
43
+ return context;
44
+ };
45
+
46
+ // src/collapsible/CollapsibleContent.tsx
47
+ import { mergeProps as mergeProps2 } from "@zag-js/react";
48
+ import { cx } from "class-variance-authority";
49
+ import { jsx as jsx2 } from "react/jsx-runtime";
50
+ var Content = ({
51
+ asChild = false,
52
+ className,
53
+ children,
54
+ ref,
55
+ ...props
56
+ }) => {
57
+ const { getContentProps } = useCollapsibleContext();
58
+ const Component = asChild ? Slot : "div";
59
+ const contentProps = getContentProps();
60
+ const mergedProps = mergeProps2(contentProps, {
61
+ className: cx(
62
+ "overflow-hidden",
63
+ "motion-reduce:animate-none!",
64
+ "[&[hidden]]:hidden",
65
+ "data-[state=open]:animate-standalone-collapse-in data-[state=closed]:animate-standalone-collapse-out",
66
+ className
67
+ ),
68
+ ...props
69
+ });
70
+ return /* @__PURE__ */ jsx2(Component, { ref, "data-spark-component": "collapsible-content", ...mergedProps, children });
71
+ };
72
+ Content.displayName = "Collapsible.Content";
73
+
74
+ // src/collapsible/CollapsibleTrigger.tsx
75
+ import { mergeProps as mergeProps3 } from "@zag-js/react";
76
+ import { jsx as jsx3 } from "react/jsx-runtime";
77
+ var Trigger = ({ asChild = false, children, ref, ...props }) => {
78
+ const collapsibleContext = useCollapsibleContext();
79
+ const Component = asChild ? Slot : "button";
80
+ const mergedProps = mergeProps3(collapsibleContext.getTriggerProps(), props);
81
+ return /* @__PURE__ */ jsx3(Component, { ref, "data-spark-component": "collapsible-trigger", ...mergedProps, children });
82
+ };
83
+ Trigger.displayName = "Collapsible.Trigger";
84
+
85
+ // src/collapsible/index.ts
86
+ var Collapsible2 = Object.assign(Collapsible, {
87
+ Trigger,
88
+ Content
89
+ });
90
+ Collapsible2.displayName = "Collapsible";
91
+ Trigger.displayName = "Collapsible.Trigger";
92
+ Content.displayName = "Collapsible.Content";
93
+
94
+ export {
95
+ Collapsible2 as Collapsible
96
+ };
97
+ //# sourceMappingURL=chunk-FGOZHKBT.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/collapsible/Collapsible.tsx","../src/collapsible/CollapsibleContent.tsx","../src/collapsible/CollapsibleTrigger.tsx","../src/collapsible/index.ts"],"sourcesContent":["import * as collapsible from '@zag-js/collapsible'\nimport { mergeProps, normalizeProps, type PropTypes, useMachine } from '@zag-js/react'\nimport { type ComponentProps, createContext, Ref, useContext, useId } from 'react'\n\nimport { Slot } from '../slot'\n\nexport interface CollapsibleProps extends ComponentProps<'div'> {\n /**\n * Change the default rendered element for the one passed as a child, merging their props and behavior.\n */\n asChild?: boolean\n /**\n * The open state of the collapsible when it is initially rendered. Use when you do not need to control its open state.\n */\n defaultOpen?: boolean\n /**\n * When `true`, prevents the user from interacting with the collapsible.\n */\n disabled?: boolean\n /**\n * Event handler called when the open state of the collapsible changes.\n */\n onOpenChange?: (open: boolean) => void\n /**\n * The controlled open state of the collapsible. Must be used in conjunction with `onOpenChange`.\n */\n open?: boolean\n /**\n * The ids of the elements in the collapsible. Useful for composition\n */\n ids?: collapsible.Props['ids']\n ref?: Ref<HTMLDivElement>\n}\n\nconst CollapsibleContext = createContext<collapsible.Api<PropTypes> | null>(null)\n\nexport const Collapsible = ({\n asChild = false,\n children,\n defaultOpen = false,\n disabled = false,\n onOpenChange,\n open,\n ids,\n ref,\n ...props\n}: CollapsibleProps) => {\n const service = useMachine(collapsible.machine, {\n open,\n defaultOpen,\n disabled,\n id: useId(),\n ids,\n onOpenChange(details) {\n onOpenChange?.(details.open)\n },\n })\n const api = collapsible.connect(service, normalizeProps)\n const Component = asChild ? Slot : 'div'\n\n const mergedProps = mergeProps(api.getRootProps(), props)\n\n return (\n <CollapsibleContext.Provider value={api}>\n <Component data-spark-component=\"collapsible\" ref={ref} {...mergedProps}>\n {children}\n </Component>\n </CollapsibleContext.Provider>\n )\n}\n\nCollapsible.displayName = 'Collapsible'\n\nexport const useCollapsibleContext = () => {\n const context = useContext(CollapsibleContext)\n\n if (!context) {\n throw Error('useCollapsibleContext must be used within a Collapsible provider')\n }\n\n return context\n}\n","import { mergeProps } from '@zag-js/react'\nimport { cx } from 'class-variance-authority'\nimport { type ComponentPropsWithoutRef, Ref } from 'react'\n\nimport { Slot } from '../slot'\nimport { useCollapsibleContext } from './Collapsible'\n\nexport interface CollapsibleContentProps extends ComponentPropsWithoutRef<'div'> {\n asChild?: boolean\n ref?: Ref<HTMLDivElement>\n}\n\nexport const Content = ({\n asChild = false,\n className,\n children,\n ref,\n ...props\n}: CollapsibleContentProps) => {\n const { getContentProps } = useCollapsibleContext()\n\n const Component = asChild ? Slot : 'div'\n const contentProps = getContentProps()\n const mergedProps = mergeProps(contentProps, {\n className: cx(\n 'overflow-hidden',\n 'motion-reduce:animate-none!',\n '[&[hidden]]:hidden',\n 'data-[state=open]:animate-standalone-collapse-in data-[state=closed]:animate-standalone-collapse-out',\n className\n ),\n ...props,\n })\n\n return (\n <Component ref={ref} data-spark-component=\"collapsible-content\" {...mergedProps}>\n {children}\n </Component>\n )\n}\n\nContent.displayName = 'Collapsible.Content'\n","import { mergeProps } from '@zag-js/react'\nimport { type ComponentPropsWithoutRef, Ref } from 'react'\n\nimport { Slot } from '../slot'\nimport { useCollapsibleContext } from './Collapsible'\n\nexport interface CollapsibleTriggerProps extends ComponentPropsWithoutRef<'button'> {\n asChild?: boolean\n ref?: Ref<HTMLButtonElement>\n}\n\nexport const Trigger = ({ asChild = false, children, ref, ...props }: CollapsibleTriggerProps) => {\n const collapsibleContext = useCollapsibleContext()\n const Component = asChild ? Slot : 'button'\n const mergedProps = mergeProps(collapsibleContext.getTriggerProps(), props)\n\n return (\n <Component ref={ref} data-spark-component=\"collapsible-trigger\" {...mergedProps}>\n {children}\n </Component>\n )\n}\n\nTrigger.displayName = 'Collapsible.Trigger'\n","import { Collapsible as Root } from './Collapsible'\nimport { Content } from './CollapsibleContent'\nimport { Trigger } from './CollapsibleTrigger'\n\nexport const Collapsible: typeof Root & {\n Trigger: typeof Trigger\n Content: typeof Content\n} = Object.assign(Root, {\n Trigger,\n Content,\n})\n\nCollapsible.displayName = 'Collapsible'\nTrigger.displayName = 'Collapsible.Trigger'\nContent.displayName = 'Collapsible.Content'\n\nexport { type CollapsibleProps } from './Collapsible'\nexport { type CollapsibleContentProps } from './CollapsibleContent'\nexport { type CollapsibleTriggerProps } from './CollapsibleTrigger'\n"],"mappings":";;;;;AAAA,YAAY,iBAAiB;AAC7B,SAAS,YAAY,gBAAgC,kBAAkB;AACvE,SAA8B,eAAoB,YAAY,aAAa;AA8DrE;AA9BN,IAAM,qBAAqB,cAAiD,IAAI;AAEzE,IAAM,cAAc,CAAC;AAAA,EAC1B,UAAU;AAAA,EACV;AAAA,EACA,cAAc;AAAA,EACd,WAAW;AAAA,EACX;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,GAAG;AACL,MAAwB;AACtB,QAAM,UAAU,WAAuB,qBAAS;AAAA,IAC9C;AAAA,IACA;AAAA,IACA;AAAA,IACA,IAAI,MAAM;AAAA,IACV;AAAA,IACA,aAAa,SAAS;AACpB,qBAAe,QAAQ,IAAI;AAAA,IAC7B;AAAA,EACF,CAAC;AACD,QAAM,MAAkB,oBAAQ,SAAS,cAAc;AACvD,QAAM,YAAY,UAAU,OAAO;AAEnC,QAAM,cAAc,WAAW,IAAI,aAAa,GAAG,KAAK;AAExD,SACE,oBAAC,mBAAmB,UAAnB,EAA4B,OAAO,KAClC,8BAAC,aAAU,wBAAqB,eAAc,KAAW,GAAG,aACzD,UACH,GACF;AAEJ;AAEA,YAAY,cAAc;AAEnB,IAAM,wBAAwB,MAAM;AACzC,QAAM,UAAU,WAAW,kBAAkB;AAE7C,MAAI,CAAC,SAAS;AACZ,UAAM,MAAM,kEAAkE;AAAA,EAChF;AAEA,SAAO;AACT;;;ACjFA,SAAS,cAAAA,mBAAkB;AAC3B,SAAS,UAAU;AAkCf,gBAAAC,YAAA;AAvBG,IAAM,UAAU,CAAC;AAAA,EACtB,UAAU;AAAA,EACV;AAAA,EACA;AAAA,EACA;AAAA,EACA,GAAG;AACL,MAA+B;AAC7B,QAAM,EAAE,gBAAgB,IAAI,sBAAsB;AAElD,QAAM,YAAY,UAAU,OAAO;AACnC,QAAM,eAAe,gBAAgB;AACrC,QAAM,cAAcC,YAAW,cAAc;AAAA,IAC3C,WAAW;AAAA,MACT;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,IACA,GAAG;AAAA,EACL,CAAC;AAED,SACE,gBAAAD,KAAC,aAAU,KAAU,wBAAqB,uBAAuB,GAAG,aACjE,UACH;AAEJ;AAEA,QAAQ,cAAc;;;ACzCtB,SAAS,cAAAE,mBAAkB;AAiBvB,gBAAAC,YAAA;AANG,IAAM,UAAU,CAAC,EAAE,UAAU,OAAO,UAAU,KAAK,GAAG,MAAM,MAA+B;AAChG,QAAM,qBAAqB,sBAAsB;AACjD,QAAM,YAAY,UAAU,OAAO;AACnC,QAAM,cAAcC,YAAW,mBAAmB,gBAAgB,GAAG,KAAK;AAE1E,SACE,gBAAAD,KAAC,aAAU,KAAU,wBAAqB,uBAAuB,GAAG,aACjE,UACH;AAEJ;AAEA,QAAQ,cAAc;;;ACnBf,IAAME,eAGT,OAAO,OAAO,aAAM;AAAA,EACtB;AAAA,EACA;AACF,CAAC;AAEDA,aAAY,cAAc;AAC1B,QAAQ,cAAc;AACtB,QAAQ,cAAc;","names":["mergeProps","jsx","mergeProps","mergeProps","jsx","mergeProps","Collapsible"]}
@@ -0,0 +1,52 @@
1
+ // src/label/Label.tsx
2
+ import { cx } from "class-variance-authority";
3
+ import { Label as RadixLabel } from "radix-ui";
4
+ import { jsx } from "react/jsx-runtime";
5
+ var Label = ({ className, ref, ...others }) => {
6
+ return /* @__PURE__ */ jsx(
7
+ RadixLabel.Label,
8
+ {
9
+ ref,
10
+ "data-spark-component": "label",
11
+ className: cx("text-body-1", className),
12
+ ...others
13
+ }
14
+ );
15
+ };
16
+ Label.displayName = "Label";
17
+
18
+ // src/label/LabelRequiredIndicator.tsx
19
+ import { cx as cx2 } from "class-variance-authority";
20
+ import { jsx as jsx2 } from "react/jsx-runtime";
21
+ var LabelRequiredIndicator = ({
22
+ className,
23
+ children = "*",
24
+ ref,
25
+ ...others
26
+ }) => {
27
+ return /* @__PURE__ */ jsx2(
28
+ "span",
29
+ {
30
+ ref,
31
+ "data-spark-component": "label-required-indicator",
32
+ role: "presentation",
33
+ "aria-hidden": "true",
34
+ className: cx2(className, "text-caption text-on-surface/dim-1"),
35
+ ...others,
36
+ children
37
+ }
38
+ );
39
+ };
40
+ LabelRequiredIndicator.displayName = "Label.RequiredIndicator";
41
+
42
+ // src/label/index.ts
43
+ var Label2 = Object.assign(Label, {
44
+ RequiredIndicator: LabelRequiredIndicator
45
+ });
46
+ Label2.displayName = "Label";
47
+ LabelRequiredIndicator.displayName = "Label.RequiredIndicator";
48
+
49
+ export {
50
+ Label2 as Label
51
+ };
52
+ //# sourceMappingURL=chunk-HLXYG643.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/label/Label.tsx","../src/label/LabelRequiredIndicator.tsx","../src/label/index.ts"],"sourcesContent":["import { cx } from 'class-variance-authority'\nimport { Label as RadixLabel } from 'radix-ui'\nimport { Ref } from 'react'\n\nexport type LabelProps = RadixLabel.LabelProps & {\n ref?: Ref<HTMLLabelElement>\n}\n\nexport const Label = ({ className, ref, ...others }: LabelProps) => {\n return (\n <RadixLabel.Label\n ref={ref}\n data-spark-component=\"label\"\n className={cx('text-body-1', className)}\n {...others}\n />\n )\n}\n\nLabel.displayName = 'Label'\n","import { cx } from 'class-variance-authority'\nimport { ComponentPropsWithRef } from 'react'\n\nexport type LabelRequiredIndicatorProps = ComponentPropsWithRef<'span'>\n\nexport const LabelRequiredIndicator = ({\n className,\n children = '*',\n ref,\n ...others\n}: LabelRequiredIndicatorProps) => {\n return (\n <span\n ref={ref}\n data-spark-component=\"label-required-indicator\"\n role=\"presentation\"\n aria-hidden=\"true\"\n className={cx(className, 'text-caption text-on-surface/dim-1')}\n {...others}\n >\n {children}\n </span>\n )\n}\n\nLabelRequiredIndicator.displayName = 'Label.RequiredIndicator'\n","import { Label as Root } from './Label'\nimport { LabelRequiredIndicator } from './LabelRequiredIndicator'\n\nexport const Label: typeof Root & {\n RequiredIndicator: typeof LabelRequiredIndicator\n} = Object.assign(Root, {\n RequiredIndicator: LabelRequiredIndicator,\n})\n\nLabel.displayName = 'Label'\nLabelRequiredIndicator.displayName = 'Label.RequiredIndicator'\n\nexport type { LabelProps } from './Label'\nexport type { LabelRequiredIndicatorProps } from './LabelRequiredIndicator'\n"],"mappings":";AAAA,SAAS,UAAU;AACnB,SAAS,SAAS,kBAAkB;AAShC;AAFG,IAAM,QAAQ,CAAC,EAAE,WAAW,KAAK,GAAG,OAAO,MAAkB;AAClE,SACE;AAAA,IAAC,WAAW;AAAA,IAAX;AAAA,MACC;AAAA,MACA,wBAAqB;AAAA,MACrB,WAAW,GAAG,eAAe,SAAS;AAAA,MACrC,GAAG;AAAA;AAAA,EACN;AAEJ;AAEA,MAAM,cAAc;;;ACnBpB,SAAS,MAAAA,WAAU;AAYf,gBAAAC,YAAA;AAPG,IAAM,yBAAyB,CAAC;AAAA,EACrC;AAAA,EACA,WAAW;AAAA,EACX;AAAA,EACA,GAAG;AACL,MAAmC;AACjC,SACE,gBAAAA;AAAA,IAAC;AAAA;AAAA,MACC;AAAA,MACA,wBAAqB;AAAA,MACrB,MAAK;AAAA,MACL,eAAY;AAAA,MACZ,WAAWD,IAAG,WAAW,oCAAoC;AAAA,MAC5D,GAAG;AAAA,MAEH;AAAA;AAAA,EACH;AAEJ;AAEA,uBAAuB,cAAc;;;ACtB9B,IAAME,SAET,OAAO,OAAO,OAAM;AAAA,EACtB,mBAAmB;AACrB,CAAC;AAEDA,OAAM,cAAc;AACpB,uBAAuB,cAAc;","names":["cx","jsx","Label"]}