@spark-ui/components 17.2.3 → 17.2.4

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 (302) hide show
  1. package/dist/DialogContent.styles-BSxCCi-u.mjs +62 -0
  2. package/dist/DialogContent.styles-BSxCCi-u.mjs.map +1 -0
  3. package/dist/DialogContent.styles-CAhJtUud.js +2 -0
  4. package/dist/DialogContent.styles-CAhJtUud.js.map +1 -0
  5. package/dist/FormFieldRequiredIndicator-CtgkvPZo.js +2 -0
  6. package/dist/FormFieldRequiredIndicator-CtgkvPZo.js.map +1 -0
  7. package/dist/FormFieldRequiredIndicator-DOGQ_HxO.mjs +14 -0
  8. package/dist/FormFieldRequiredIndicator-DOGQ_HxO.mjs.map +1 -0
  9. package/dist/accordion/index.js +2 -2
  10. package/dist/accordion/index.js.map +1 -1
  11. package/dist/accordion/index.mjs +99 -161
  12. package/dist/accordion/index.mjs.map +1 -1
  13. package/dist/alert-dialog/index.js +2 -2
  14. package/dist/alert-dialog/index.js.map +1 -1
  15. package/dist/alert-dialog/index.mjs +169 -235
  16. package/dist/alert-dialog/index.mjs.map +1 -1
  17. package/dist/avatar/index.js +2 -2
  18. package/dist/avatar/index.js.map +1 -1
  19. package/dist/avatar/index.mjs +187 -224
  20. package/dist/avatar/index.mjs.map +1 -1
  21. package/dist/badge/index.js +2 -2
  22. package/dist/badge/index.js.map +1 -1
  23. package/dist/badge/index.mjs +115 -81
  24. package/dist/badge/index.mjs.map +1 -1
  25. package/dist/breadcrumb/index.js +2 -2
  26. package/dist/breadcrumb/index.js.map +1 -1
  27. package/dist/breadcrumb/index.mjs +73 -106
  28. package/dist/breadcrumb/index.mjs.map +1 -1
  29. package/dist/button/index.js +1 -2
  30. package/dist/button/index.mjs +2 -5
  31. package/dist/button-BTDRzvpB.js +2 -0
  32. package/dist/button-BTDRzvpB.js.map +1 -0
  33. package/dist/button-_YZ_4J42.mjs +643 -0
  34. package/dist/button-_YZ_4J42.mjs.map +1 -0
  35. package/dist/card/index.js +2 -2
  36. package/dist/card/index.js.map +1 -1
  37. package/dist/card/index.mjs +327 -394
  38. package/dist/card/index.mjs.map +1 -1
  39. package/dist/carousel/index.js +2 -2
  40. package/dist/carousel/index.js.map +1 -1
  41. package/dist/carousel/index.mjs +515 -618
  42. package/dist/carousel/index.mjs.map +1 -1
  43. package/dist/checkbox/index.js +2 -2
  44. package/dist/checkbox/index.js.map +1 -1
  45. package/dist/checkbox/index.mjs +213 -246
  46. package/dist/checkbox/index.mjs.map +1 -1
  47. package/dist/chip/index.js +2 -2
  48. package/dist/chip/index.js.map +1 -1
  49. package/dist/chip/index.mjs +601 -652
  50. package/dist/chip/index.mjs.map +1 -1
  51. package/dist/chunk-C91j1N6u.js +1 -0
  52. package/dist/circular-meter/index.js +2 -2
  53. package/dist/circular-meter/index.js.map +1 -1
  54. package/dist/circular-meter/index.mjs +354 -309
  55. package/dist/circular-meter/index.mjs.map +1 -1
  56. package/dist/collapsible/index.js +2 -2
  57. package/dist/collapsible/index.js.map +1 -1
  58. package/dist/collapsible/index.mjs +53 -53
  59. package/dist/collapsible/index.mjs.map +1 -1
  60. package/dist/combobox/index.js +2 -2
  61. package/dist/combobox/index.js.map +1 -1
  62. package/dist/combobox/index.mjs +721 -876
  63. package/dist/combobox/index.mjs.map +1 -1
  64. package/dist/dialog/index.js +2 -2
  65. package/dist/dialog/index.js.map +1 -1
  66. package/dist/dialog/index.mjs +181 -206
  67. package/dist/dialog/index.mjs.map +1 -1
  68. package/dist/divider/index.js +2 -2
  69. package/dist/divider/index.js.map +1 -1
  70. package/dist/divider/index.mjs +178 -183
  71. package/dist/divider/index.mjs.map +1 -1
  72. package/dist/drawer/index.js +2 -2
  73. package/dist/drawer/index.js.map +1 -1
  74. package/dist/drawer/index.mjs +277 -309
  75. package/dist/drawer/index.mjs.map +1 -1
  76. package/dist/dropdown/index.js +2 -2
  77. package/dist/dropdown/index.js.map +1 -1
  78. package/dist/dropdown/index.mjs +429 -492
  79. package/dist/dropdown/index.mjs.map +1 -1
  80. package/dist/file-upload/index.js +2 -2
  81. package/dist/file-upload/index.js.map +1 -1
  82. package/dist/file-upload/index.mjs +540 -677
  83. package/dist/file-upload/index.mjs.map +1 -1
  84. package/dist/form-field/index.js +1 -2
  85. package/dist/form-field/index.mjs +2 -284
  86. package/dist/form-field-B8QzM655.mjs +231 -0
  87. package/dist/form-field-B8QzM655.mjs.map +1 -0
  88. package/dist/form-field-Bu_0E9tb.js +2 -0
  89. package/dist/form-field-Bu_0E9tb.js.map +1 -0
  90. package/dist/icon/index.js +1 -2
  91. package/dist/icon/index.mjs +2 -5
  92. package/dist/icon-CRPcdgYp.js +2 -0
  93. package/dist/icon-CRPcdgYp.js.map +1 -0
  94. package/dist/icon-D05Uqh8_.mjs +41 -0
  95. package/dist/icon-D05Uqh8_.mjs.map +1 -0
  96. package/dist/icon-button/index.js +1 -2
  97. package/dist/icon-button/index.mjs +2 -5
  98. package/dist/icon-button-6p3O7NIm.mjs +28 -0
  99. package/dist/icon-button-6p3O7NIm.mjs.map +1 -0
  100. package/dist/icon-button-CykysbgJ.js +2 -0
  101. package/dist/icon-button-CykysbgJ.js.map +1 -0
  102. package/dist/input/index.js +1 -2
  103. package/dist/input/index.mjs +2 -455
  104. package/dist/input-CmYeHYWQ.mjs +355 -0
  105. package/dist/input-CmYeHYWQ.mjs.map +1 -0
  106. package/dist/input-DNr40G2Z.js +2 -0
  107. package/dist/input-DNr40G2Z.js.map +1 -0
  108. package/dist/input-otp/index.js +2 -2
  109. package/dist/input-otp/index.js.map +1 -1
  110. package/dist/input-otp/index.mjs +344 -407
  111. package/dist/input-otp/index.mjs.map +1 -1
  112. package/dist/kbd/index.js +2 -2
  113. package/dist/kbd/index.js.map +1 -1
  114. package/dist/kbd/index.mjs +12 -17
  115. package/dist/kbd/index.mjs.map +1 -1
  116. package/dist/label/index.js +1 -2
  117. package/dist/label/index.mjs +2 -40
  118. package/dist/label-BqRlrca0.mjs +31 -0
  119. package/dist/label-BqRlrca0.mjs.map +1 -0
  120. package/dist/label-DU0p0d-f.js +2 -0
  121. package/dist/label-DU0p0d-f.js.map +1 -0
  122. package/dist/link-box/index.js +2 -2
  123. package/dist/link-box/index.js.map +1 -1
  124. package/dist/link-box/index.mjs +36 -34
  125. package/dist/link-box/index.mjs.map +1 -1
  126. package/dist/meter/index.js +2 -2
  127. package/dist/meter/index.js.map +1 -1
  128. package/dist/meter/index.mjs +149 -171
  129. package/dist/meter/index.mjs.map +1 -1
  130. package/dist/pagination/index.js +2 -2
  131. package/dist/pagination/index.js.map +1 -1
  132. package/dist/pagination/index.mjs +253 -214
  133. package/dist/pagination/index.mjs.map +1 -1
  134. package/dist/popover/index.js +1 -2
  135. package/dist/popover/index.mjs +2 -239
  136. package/dist/popover-CxZAQmw6.mjs +211 -0
  137. package/dist/popover-CxZAQmw6.mjs.map +1 -0
  138. package/dist/popover-GOovJ27J.js +2 -0
  139. package/dist/popover-GOovJ27J.js.map +1 -0
  140. package/dist/portal/index.js +2 -2
  141. package/dist/portal/index.js.map +1 -1
  142. package/dist/portal/index.mjs +8 -7
  143. package/dist/portal/index.mjs.map +1 -1
  144. package/dist/progress/index.js +1 -2
  145. package/dist/progress/index.mjs +2 -178
  146. package/dist/progress-cEf3tFbn.mjs +132 -0
  147. package/dist/progress-cEf3tFbn.mjs.map +1 -0
  148. package/dist/progress-rJZcPJsZ.js +2 -0
  149. package/dist/progress-rJZcPJsZ.js.map +1 -0
  150. package/dist/progress-tracker/index.js +2 -2
  151. package/dist/progress-tracker/index.js.map +1 -1
  152. package/dist/progress-tracker/index.mjs +303 -380
  153. package/dist/progress-tracker/index.mjs.map +1 -1
  154. package/dist/radio-group/index.js +2 -2
  155. package/dist/radio-group/index.js.map +1 -1
  156. package/dist/radio-group/index.mjs +204 -213
  157. package/dist/radio-group/index.mjs.map +1 -1
  158. package/dist/rating/index.js +2 -2
  159. package/dist/rating/index.js.map +1 -1
  160. package/dist/rating/index.mjs +189 -244
  161. package/dist/rating/index.mjs.map +1 -1
  162. package/dist/rating-display/index.js +2 -2
  163. package/dist/rating-display/index.js.map +1 -1
  164. package/dist/rating-display/index.mjs +165 -166
  165. package/dist/rating-display/index.mjs.map +1 -1
  166. package/dist/scrolling-list/index.js +2 -2
  167. package/dist/scrolling-list/index.js.map +1 -1
  168. package/dist/scrolling-list/index.mjs +216 -273
  169. package/dist/scrolling-list/index.mjs.map +1 -1
  170. package/dist/segmented-control/index.js +2 -2
  171. package/dist/segmented-control/index.js.map +1 -1
  172. package/dist/segmented-control/index.mjs +146 -180
  173. package/dist/segmented-control/index.mjs.map +1 -1
  174. package/dist/segmented-gauge/index.js +2 -2
  175. package/dist/segmented-gauge/index.js.map +1 -1
  176. package/dist/segmented-gauge/index.mjs +146 -195
  177. package/dist/segmented-gauge/index.mjs.map +1 -1
  178. package/dist/select/index.js +2 -2
  179. package/dist/select/index.js.map +1 -1
  180. package/dist/select/index.mjs +279 -327
  181. package/dist/select/index.mjs.map +1 -1
  182. package/dist/skeleton/index.js +2 -2
  183. package/dist/skeleton/index.js.map +1 -1
  184. package/dist/skeleton/index.mjs +92 -114
  185. package/dist/skeleton/index.mjs.map +1 -1
  186. package/dist/slider/index.js +2 -2
  187. package/dist/slider/index.js.map +1 -1
  188. package/dist/slider/index.mjs +259 -326
  189. package/dist/slider/index.mjs.map +1 -1
  190. package/dist/slot/index.js +2 -2
  191. package/dist/slot/index.js.map +1 -1
  192. package/dist/slot/index.mjs +12 -7
  193. package/dist/slot/index.mjs.map +1 -1
  194. package/dist/snackbar/index.js +2 -2
  195. package/dist/snackbar/index.js.map +1 -1
  196. package/dist/snackbar/index.mjs +404 -529
  197. package/dist/snackbar/index.mjs.map +1 -1
  198. package/dist/spinner/index.js +1 -2
  199. package/dist/spinner/index.mjs +2 -5
  200. package/dist/spinner-DFUoYvmm.js +2 -0
  201. package/dist/spinner-DFUoYvmm.js.map +1 -0
  202. package/dist/spinner-DULLiM6a.mjs +56 -0
  203. package/dist/spinner-DULLiM6a.mjs.map +1 -0
  204. package/dist/src/avatar/index.d.mts +2 -2
  205. package/dist/src/avatar/index.d.ts +2 -2
  206. package/dist/src/file-upload/index.d.mts +1 -1
  207. package/dist/src/file-upload/index.d.ts +1 -1
  208. package/dist/stepper/index.js +2 -2
  209. package/dist/stepper/index.js.map +1 -1
  210. package/dist/stepper/index.mjs +139 -176
  211. package/dist/stepper/index.mjs.map +1 -1
  212. package/dist/switch/index.js +2 -2
  213. package/dist/switch/index.js.map +1 -1
  214. package/dist/switch/index.mjs +194 -197
  215. package/dist/switch/index.mjs.map +1 -1
  216. package/dist/tabs/index.js +2 -2
  217. package/dist/tabs/index.js.map +1 -1
  218. package/dist/tabs/index.mjs +337 -389
  219. package/dist/tabs/index.mjs.map +1 -1
  220. package/dist/tag/index.js +2 -2
  221. package/dist/tag/index.js.map +1 -1
  222. package/dist/tag/index.mjs +192 -211
  223. package/dist/tag/index.mjs.map +1 -1
  224. package/dist/text-link/index.js +2 -2
  225. package/dist/text-link/index.js.map +1 -1
  226. package/dist/text-link/index.mjs +44 -5
  227. package/dist/text-link/index.mjs.map +1 -1
  228. package/dist/textarea/index.js +2 -2
  229. package/dist/textarea/index.js.map +1 -1
  230. package/dist/textarea/index.mjs +51 -50
  231. package/dist/textarea/index.mjs.map +1 -1
  232. package/dist/toast/index.js +2 -2
  233. package/dist/toast/index.js.map +1 -1
  234. package/dist/toast/index.mjs +314 -367
  235. package/dist/toast/index.mjs.map +1 -1
  236. package/dist/useRenderSlot-DP4fYerF.mjs +11 -0
  237. package/dist/useRenderSlot-DP4fYerF.mjs.map +1 -0
  238. package/dist/useRenderSlot-Xxf_s88b.js +2 -0
  239. package/dist/useRenderSlot-Xxf_s88b.js.map +1 -0
  240. package/dist/visually-hidden/index.js +2 -2
  241. package/dist/visually-hidden/index.js.map +1 -1
  242. package/dist/visually-hidden/index.mjs +25 -5
  243. package/dist/visually-hidden/index.mjs.map +1 -1
  244. package/package.json +4 -4
  245. package/dist/Button-1M9DcZl0.mjs +0 -704
  246. package/dist/Button-1M9DcZl0.mjs.map +0 -1
  247. package/dist/Button-FZceRWG2.js +0 -2
  248. package/dist/Button-FZceRWG2.js.map +0 -1
  249. package/dist/DialogContent.styles-CziMQtYr.js +0 -2
  250. package/dist/DialogContent.styles-CziMQtYr.js.map +0 -1
  251. package/dist/DialogContent.styles-Du7_Dkde.mjs +0 -60
  252. package/dist/DialogContent.styles-Du7_Dkde.mjs.map +0 -1
  253. package/dist/FormFieldRequiredIndicator-CHfcoT2y.js +0 -2
  254. package/dist/FormFieldRequiredIndicator-CHfcoT2y.js.map +0 -1
  255. package/dist/FormFieldRequiredIndicator-DTnCGiX2.mjs +0 -13
  256. package/dist/FormFieldRequiredIndicator-DTnCGiX2.mjs.map +0 -1
  257. package/dist/Icon-BO327oHU.mjs +0 -57
  258. package/dist/Icon-BO327oHU.mjs.map +0 -1
  259. package/dist/Icon-C-cNTnzd.js +0 -2
  260. package/dist/Icon-C-cNTnzd.js.map +0 -1
  261. package/dist/IconButton-BR1bJSQA.js +0 -2
  262. package/dist/IconButton-BR1bJSQA.js.map +0 -1
  263. package/dist/IconButton-DdB3Pq13.mjs +0 -43
  264. package/dist/IconButton-DdB3Pq13.mjs.map +0 -1
  265. package/dist/Slot-DLY1rJrG.mjs +0 -14
  266. package/dist/Slot-DLY1rJrG.mjs.map +0 -1
  267. package/dist/Slot-DQ8z2zsy.js +0 -2
  268. package/dist/Slot-DQ8z2zsy.js.map +0 -1
  269. package/dist/Spinner-Br4Rp9V2.js +0 -2
  270. package/dist/Spinner-Br4Rp9V2.js.map +0 -1
  271. package/dist/Spinner-Co3AjkQV.mjs +0 -68
  272. package/dist/Spinner-Co3AjkQV.mjs.map +0 -1
  273. package/dist/TextLink-5MvP0P8D.js +0 -2
  274. package/dist/TextLink-5MvP0P8D.js.map +0 -1
  275. package/dist/TextLink-Cc_LeVcx.mjs +0 -57
  276. package/dist/TextLink-Cc_LeVcx.mjs.map +0 -1
  277. package/dist/VisuallyHidden-CB6Nx76j.js +0 -2
  278. package/dist/VisuallyHidden-CB6Nx76j.js.map +0 -1
  279. package/dist/VisuallyHidden-DjlV0-CW.mjs +0 -28
  280. package/dist/VisuallyHidden-DjlV0-CW.mjs.map +0 -1
  281. package/dist/button/index.js.map +0 -1
  282. package/dist/button/index.mjs.map +0 -1
  283. package/dist/form-field/index.js.map +0 -1
  284. package/dist/form-field/index.mjs.map +0 -1
  285. package/dist/icon/index.js.map +0 -1
  286. package/dist/icon/index.mjs.map +0 -1
  287. package/dist/icon-button/index.js.map +0 -1
  288. package/dist/icon-button/index.mjs.map +0 -1
  289. package/dist/input/index.js.map +0 -1
  290. package/dist/input/index.mjs.map +0 -1
  291. package/dist/label/index.js.map +0 -1
  292. package/dist/label/index.mjs.map +0 -1
  293. package/dist/popover/index.js.map +0 -1
  294. package/dist/popover/index.mjs.map +0 -1
  295. package/dist/progress/index.js.map +0 -1
  296. package/dist/progress/index.mjs.map +0 -1
  297. package/dist/spinner/index.js.map +0 -1
  298. package/dist/spinner/index.mjs.map +0 -1
  299. package/dist/useRenderSlot-Bta2kdp4.mjs +0 -10
  300. package/dist/useRenderSlot-Bta2kdp4.mjs.map +0 -1
  301. package/dist/useRenderSlot-DATwjgpo.js +0 -2
  302. package/dist/useRenderSlot-DATwjgpo.js.map +0 -1
@@ -1,316 +1,361 @@
1
- import { jsx as o, jsxs as V } from "react/jsx-runtime";
2
- import { Meter as C } from "@base-ui/react/meter";
3
- import { cva as b, cx as k } from "class-variance-authority";
4
- import { createContext as L, useContext as R, useState as T, useMemo as A, useRef as g, useEffect as w, useId as O, useCallback as $ } from "react";
5
- import { useMergeRefs as D } from "@spark-ui/hooks/use-merge-refs";
6
- const P = b(["focus-visible:u-outline gap-md flex items-center"], {
7
- variants: {
8
- orientation: {
9
- vertical: ["default:flex-col"],
10
- horizontal: ["default:flex-row"]
11
- }
12
- },
13
- defaultVariants: {
14
- orientation: "vertical"
15
- }
16
- }), E = L(null), _ = ":circular-meter", h = () => {
17
- const r = R(E);
18
- if (!r)
19
- throw new Error("useCircularMeter must be used within a CircularMeter provider");
20
- return r;
21
- }, F = {
22
- sm: { diameter: 24, strokeWidth: 4 },
23
- md: { diameter: 64, strokeWidth: 8 },
24
- lg: { diameter: 96, strokeWidth: 8 },
25
- xl: { diameter: 128, strokeWidth: 8 }
26
- }, S = ({
27
- className: r,
28
- value: t,
29
- max: a = 100,
30
- min: s = 0,
31
- size: n = "lg",
32
- intent: i = "support",
33
- orientation: l = "vertical",
34
- children: e,
35
- ref: d,
36
- ...c
37
- }) => {
38
- const [u, m] = T(), { diameter: f, strokeWidth: p } = F[n], x = f / 2 - p / 2, y = 2 * Math.PI * x, M = A(() => ({
39
- value: t ?? 0,
40
- max: a,
41
- min: s,
42
- intent: i,
43
- onLabelId: m,
44
- sizeProp: n,
45
- orientation: l,
46
- size: f,
47
- radius: x,
48
- circumference: y,
49
- strokeWidth: p
50
- }), [
51
- a,
52
- s,
53
- t,
54
- i,
55
- m,
56
- n,
57
- l,
58
- f,
59
- x,
60
- y,
61
- p
62
- ]);
63
- return /* @__PURE__ */ o(E.Provider, { value: M, children: /* @__PURE__ */ o(
64
- C.Root,
65
- {
66
- "data-spark-component": "circular-meter",
67
- ref: d,
68
- className: k(P({ orientation: l }), r),
69
- style: c.style,
70
- value: t,
71
- max: a,
72
- min: s,
73
- "aria-labelledby": u,
74
- ...c,
75
- children: e
76
- }
77
- ) });
1
+ import { cva as e, cx as t } from "class-variance-authority";
2
+ import { createContext as n, useCallback as r, useContext as i, useEffect as a, useId as o, useMemo as s, useRef as c, useState as l } from "react";
3
+ import { jsx as u, jsxs as d } from "react/jsx-runtime";
4
+ import { useMergeRefs as f } from "@spark-ui/hooks/use-merge-refs";
5
+ import { Meter as p } from "@base-ui/react/meter";
6
+ //#region src/circular-meter/CircularMeter.styles.ts
7
+ var m = e(["focus-visible:u-outline gap-md flex items-center"], {
8
+ variants: { orientation: {
9
+ vertical: ["default:flex-col"],
10
+ horizontal: ["default:flex-row"]
11
+ } },
12
+ defaultVariants: { orientation: "vertical" }
13
+ }), h = n(null), g = ":circular-meter", _ = () => {
14
+ let e = i(h);
15
+ if (!e) throw Error("useCircularMeter must be used within a CircularMeter provider");
16
+ return e;
17
+ }, v = {
18
+ sm: {
19
+ diameter: 24,
20
+ strokeWidth: 4
21
+ },
22
+ md: {
23
+ diameter: 64,
24
+ strokeWidth: 8
25
+ },
26
+ lg: {
27
+ diameter: 96,
28
+ strokeWidth: 8
29
+ },
30
+ xl: {
31
+ diameter: 128,
32
+ strokeWidth: 8
33
+ }
34
+ }, y = ({ className: e, value: n, max: r = 100, min: i = 0, size: a = "lg", intent: o = "support", orientation: c = "vertical", children: d, ref: f, ...g }) => {
35
+ let [_, y] = l(), { diameter: b, strokeWidth: x } = v[a], S = b / 2 - x / 2, C = 2 * Math.PI * S, w = s(() => ({
36
+ value: n ?? 0,
37
+ max: r,
38
+ min: i,
39
+ intent: o,
40
+ onLabelId: y,
41
+ sizeProp: a,
42
+ orientation: c,
43
+ size: b,
44
+ radius: S,
45
+ circumference: C,
46
+ strokeWidth: x
47
+ }), [
48
+ r,
49
+ i,
50
+ n,
51
+ o,
52
+ y,
53
+ a,
54
+ c,
55
+ b,
56
+ S,
57
+ C,
58
+ x
59
+ ]);
60
+ return /* @__PURE__ */ u(h.Provider, {
61
+ value: w,
62
+ children: /* @__PURE__ */ u(p.Root, {
63
+ "data-spark-component": "circular-meter",
64
+ ref: f,
65
+ className: t(m({ orientation: c }), e),
66
+ style: g.style,
67
+ value: n,
68
+ max: r,
69
+ min: i,
70
+ "aria-labelledby": _,
71
+ ...g,
72
+ children: d
73
+ })
74
+ });
78
75
  };
79
- S.displayName = "CircularMeter";
80
- const v = ({
81
- className: r,
82
- children: t,
83
- ...a
84
- }) => {
85
- const { orientation: s } = h();
86
- return /* @__PURE__ */ o(
87
- "div",
88
- {
89
- "data-spark-component": "circular-meter-content",
90
- className: k(
91
- "gap-xs flex default:flex-col",
92
- s === "vertical" && "default:text-center",
93
- r
94
- ),
95
- ...a,
96
- children: t
97
- }
98
- );
76
+ y.displayName = "CircularMeter";
77
+ //#endregion
78
+ //#region src/circular-meter/CircularMeterContent.tsx
79
+ var b = ({ className: e, children: n, ...r }) => {
80
+ let { orientation: i } = _();
81
+ return /* @__PURE__ */ u("div", {
82
+ "data-spark-component": "circular-meter-content",
83
+ className: t("gap-xs flex default:flex-col", i === "vertical" && "default:text-center", e),
84
+ ...r,
85
+ children: n
86
+ });
99
87
  };
100
- v.displayName = "CircularMeter.Content";
101
- function q(r, t, a = {}) {
102
- const { threshold: s = 0.1, rootMargin: n } = a, i = g(!1), l = g(t);
103
- return w(() => {
104
- l.current = t;
105
- }, [t]), w(() => {
106
- const e = r.current;
107
- if (!e || i.current) return;
108
- const d = new IntersectionObserver(
109
- (c) => {
110
- c.forEach((u) => {
111
- u.isIntersecting && !i.current && requestAnimationFrame(() => {
112
- i.current || (i.current = !0, l.current(), d.disconnect());
113
- });
114
- });
115
- },
116
- {
117
- threshold: s,
118
- rootMargin: n
119
- }
120
- );
121
- return d.observe(e), () => {
122
- d.disconnect();
123
- };
124
- }, [r, s, n]), i.current;
88
+ b.displayName = "CircularMeter.Content";
89
+ //#endregion
90
+ //#region src/circular-meter/useIntersectionAnimation.ts
91
+ function x(e, t, n = {}) {
92
+ let { threshold: r = .1, rootMargin: i } = n, o = c(!1), s = c(t);
93
+ return a(() => {
94
+ s.current = t;
95
+ }, [t]), a(() => {
96
+ let t = e.current;
97
+ if (!t || o.current) return;
98
+ let n = new IntersectionObserver((e) => {
99
+ e.forEach((e) => {
100
+ e.isIntersecting && !o.current && requestAnimationFrame(() => {
101
+ o.current || (o.current = !0, s.current(), n.disconnect());
102
+ });
103
+ });
104
+ }, {
105
+ threshold: r,
106
+ rootMargin: i
107
+ });
108
+ return n.observe(t), () => {
109
+ n.disconnect();
110
+ };
111
+ }, [
112
+ e,
113
+ r,
114
+ i
115
+ ]), o.current;
125
116
  }
126
- const W = L(!1), j = () => R(W), B = b([], {
127
- variants: {
128
- intent: {
129
- main: ["text-main/dim-4"],
130
- support: ["text-support/dim-4"],
131
- success: ["text-success/dim-4"],
132
- alert: ["text-alert/dim-4"],
133
- danger: ["text-error/dim-4"],
134
- info: ["text-info/dim-4"]
135
- }
136
- }
137
- }), G = b([], {
138
- variants: {
139
- intent: {
140
- main: ["text-main"],
141
- support: ["text-support"],
142
- success: ["text-success"],
143
- alert: ["text-alert"],
144
- danger: ["text-error"],
145
- info: ["text-info"]
146
- }
147
- }
148
- }), z = ({ className: r, children: t, ...a }) => {
149
- const { value: s, max: n, min: i, intent: l, size: e, radius: d, circumference: c, strokeWidth: u } = h(), m = (s - i) / (n - i) * 100, f = c - m / 100 * c, p = G({ intent: l }), x = g(null), [y, M] = T(!1);
150
- return q(x, () => {
151
- M(!0);
152
- }), /* @__PURE__ */ o(C.Track, { "data-spark-component": "circular-meter-track", className: r, ...a, children: /* @__PURE__ */ o(W.Provider, { value: !0, children: /* @__PURE__ */ V("svg", { ref: x, width: e, height: e, viewBox: `0 0 ${e} ${e}`, children: [
153
- /* @__PURE__ */ V("g", { style: { transform: "rotate(-90deg)", transformOrigin: "center" }, children: [
154
- /* @__PURE__ */ o(
155
- "circle",
156
- {
157
- cx: e / 2,
158
- cy: e / 2,
159
- r: d,
160
- fill: "none",
161
- stroke: "currentColor",
162
- strokeWidth: u,
163
- className: B({ intent: l })
164
- }
165
- ),
166
- /* @__PURE__ */ o(
167
- "circle",
168
- {
169
- "data-spark-component": "circular-meter-indicator",
170
- cx: e / 2,
171
- cy: e / 2,
172
- r: d,
173
- fill: "none",
174
- stroke: "currentColor",
175
- strokeWidth: u,
176
- strokeLinecap: "round",
177
- className: k(
178
- p,
179
- "ease-standard transition-[stroke-dashoffset] duration-700",
180
- "motion-reduce:transition-none"
181
- ),
182
- style: {
183
- strokeDasharray: c,
184
- // Start at circumference (0% filled) for initial animation, then use offset for subsequent changes
185
- strokeDashoffset: y ? f : c
186
- }
187
- }
188
- )
189
- ] }),
190
- t && /* @__PURE__ */ o("foreignObject", { x: 8, y: 8, width: e - 16, height: e - 16, children: /* @__PURE__ */ o(
191
- "div",
192
- {
193
- className: "p-md flex h-full w-full flex-col items-center justify-center rounded-full text-center",
194
- style: { width: e - 16, height: e - 16 },
195
- children: t
196
- }
197
- ) })
198
- ] }) }) });
117
+ //#endregion
118
+ //#region src/circular-meter/CircularMeterTrack.tsx
119
+ var S = n(!1), C = () => i(S), w = e([], { variants: { intent: {
120
+ main: ["text-main/dim-4"],
121
+ support: ["text-support/dim-4"],
122
+ success: ["text-success/dim-4"],
123
+ alert: ["text-alert/dim-4"],
124
+ danger: ["text-error/dim-4"],
125
+ info: ["text-info/dim-4"]
126
+ } } }), T = e([], { variants: { intent: {
127
+ main: ["text-main"],
128
+ support: ["text-support"],
129
+ success: ["text-success"],
130
+ alert: ["text-alert"],
131
+ danger: ["text-error"],
132
+ info: ["text-info"]
133
+ } } }), E = ({ className: e, children: n, ...r }) => {
134
+ let { value: i, max: a, min: o, intent: s, size: f, radius: m, circumference: h, strokeWidth: g } = _(), v = h - (i - o) / (a - o) * 100 / 100 * h, y = T({ intent: s }), b = c(null), [C, E] = l(!1);
135
+ return x(b, () => {
136
+ E(!0);
137
+ }), /* @__PURE__ */ u(p.Track, {
138
+ "data-spark-component": "circular-meter-track",
139
+ className: e,
140
+ ...r,
141
+ children: /* @__PURE__ */ u(S.Provider, {
142
+ value: !0,
143
+ children: /* @__PURE__ */ d("svg", {
144
+ ref: b,
145
+ width: f,
146
+ height: f,
147
+ viewBox: `0 0 ${f} ${f}`,
148
+ children: [/* @__PURE__ */ d("g", {
149
+ style: {
150
+ transform: "rotate(-90deg)",
151
+ transformOrigin: "center"
152
+ },
153
+ children: [/* @__PURE__ */ u("circle", {
154
+ cx: f / 2,
155
+ cy: f / 2,
156
+ r: m,
157
+ fill: "none",
158
+ stroke: "currentColor",
159
+ strokeWidth: g,
160
+ className: w({ intent: s })
161
+ }), /* @__PURE__ */ u("circle", {
162
+ "data-spark-component": "circular-meter-indicator",
163
+ cx: f / 2,
164
+ cy: f / 2,
165
+ r: m,
166
+ fill: "none",
167
+ stroke: "currentColor",
168
+ strokeWidth: g,
169
+ strokeLinecap: "round",
170
+ className: t(y, "ease-standard transition-[stroke-dashoffset] duration-700", "motion-reduce:transition-none"),
171
+ style: {
172
+ strokeDasharray: h,
173
+ strokeDashoffset: C ? v : h
174
+ }
175
+ })]
176
+ }), n && /* @__PURE__ */ u("foreignObject", {
177
+ x: 8,
178
+ y: 8,
179
+ width: f - 16,
180
+ height: f - 16,
181
+ children: /* @__PURE__ */ u("div", {
182
+ className: "p-md flex h-full w-full flex-col items-center justify-center rounded-full text-center",
183
+ style: {
184
+ width: f - 16,
185
+ height: f - 16
186
+ },
187
+ children: n
188
+ })
189
+ })]
190
+ })
191
+ })
192
+ });
199
193
  };
200
- z.displayName = "CircularMeter.Track";
201
- const H = b([], {
202
- variants: {
203
- size: {
204
- sm: "",
205
- md: "",
206
- lg: "",
207
- xl: ""
208
- },
209
- inside: {
210
- true: ["default:text-on-surface/dim-1"],
211
- false: ["default:text-on-surface"]
212
- }
213
- },
214
- compoundVariants: [
215
- // Inside the track
216
- { size: "sm", inside: !0, class: "default:text-small" },
217
- { size: "md", inside: !0, class: "default:text-small " },
218
- { size: "lg", inside: !0, class: "default:text-caption" },
219
- { size: "xl", inside: !0, class: "default:text-body-2" },
220
- // Outside the track
221
- { size: "sm", inside: !1, class: "default:text-body-1" },
222
- { size: "md", inside: !1, class: "default:text-body-1" },
223
- { size: "lg", inside: !1, class: "default:text-body-1" },
224
- { size: "xl", inside: !1, class: "default:text-body-1" }
225
- ],
226
- defaultVariants: {
227
- size: "lg",
228
- inside: !0
229
- }
230
- }), N = ({
231
- id: r,
232
- children: t,
233
- className: a,
234
- ref: s,
235
- ...n
236
- }) => {
237
- const i = `${_}-label-${O()}`, l = r || i, { onLabelId: e, sizeProp: d } = h(), c = j(), u = $(
238
- (f) => {
239
- e(f ? l : void 0);
240
- },
241
- [l, e]
242
- ), m = D(s, u);
243
- return /* @__PURE__ */ o(
244
- C.Label,
245
- {
246
- "data-spark-component": "circular-meter-label",
247
- id: l,
248
- className: H({ size: d, inside: c, className: a }),
249
- ref: m,
250
- ...n,
251
- children: t
252
- }
253
- );
194
+ E.displayName = "CircularMeter.Track";
195
+ //#endregion
196
+ //#region src/circular-meter/CircularMeterLabel.tsx
197
+ var D = e([], {
198
+ variants: {
199
+ size: {
200
+ sm: "",
201
+ md: "",
202
+ lg: "",
203
+ xl: ""
204
+ },
205
+ inside: {
206
+ true: ["default:text-on-surface/dim-1"],
207
+ false: ["default:text-on-surface"]
208
+ }
209
+ },
210
+ compoundVariants: [
211
+ {
212
+ size: "sm",
213
+ inside: !0,
214
+ class: "default:text-small"
215
+ },
216
+ {
217
+ size: "md",
218
+ inside: !0,
219
+ class: "default:text-small "
220
+ },
221
+ {
222
+ size: "lg",
223
+ inside: !0,
224
+ class: "default:text-caption"
225
+ },
226
+ {
227
+ size: "xl",
228
+ inside: !0,
229
+ class: "default:text-body-2"
230
+ },
231
+ {
232
+ size: "sm",
233
+ inside: !1,
234
+ class: "default:text-body-1"
235
+ },
236
+ {
237
+ size: "md",
238
+ inside: !1,
239
+ class: "default:text-body-1"
240
+ },
241
+ {
242
+ size: "lg",
243
+ inside: !1,
244
+ class: "default:text-body-1"
245
+ },
246
+ {
247
+ size: "xl",
248
+ inside: !1,
249
+ class: "default:text-body-1"
250
+ }
251
+ ],
252
+ defaultVariants: {
253
+ size: "lg",
254
+ inside: !0
255
+ }
256
+ }), O = ({ id: e, children: t, className: n, ref: i, ...a }) => {
257
+ let s = `${g}-label-${o()}`, c = e || s, { onLabelId: l, sizeProp: d } = _(), m = C(), h = f(i, r((e) => {
258
+ l(e ? c : void 0);
259
+ }, [c, l]));
260
+ return /* @__PURE__ */ u(p.Label, {
261
+ "data-spark-component": "circular-meter-label",
262
+ id: c,
263
+ className: D({
264
+ size: d,
265
+ inside: m,
266
+ className: n
267
+ }),
268
+ ref: h,
269
+ ...a,
270
+ children: t
271
+ });
254
272
  };
255
- N.displayName = "CircularMeter.Label";
256
- const U = b(["default:text-on-surface default:font-bold"], {
257
- variants: {
258
- size: {
259
- sm: "",
260
- md: "",
261
- lg: "",
262
- xl: ""
263
- },
264
- inside: {
265
- true: [],
266
- false: []
267
- }
268
- },
269
- compoundVariants: [
270
- // Inside the track
271
- { size: "sm", inside: !0, class: "default:text-body-2 default:font-bold" },
272
- { size: "md", inside: !0, class: "default:text-body-2 default:font-bold" },
273
- { size: "lg", inside: !0, class: "default:text-body-1 default:font-bold" },
274
- { size: "xl", inside: !0, class: "default:text-display-3" },
275
- // Outside the track
276
- { size: "sm", inside: !1, class: "default:text-body-1 default:font-bold" },
277
- { size: "md", inside: !1, class: "default:text-headline-2" },
278
- { size: "lg", inside: !1, class: "default:text-headline-2" },
279
- { size: "xl", inside: !1, class: "default:text-display-3" }
280
- ],
281
- defaultVariants: {
282
- size: "lg",
283
- inside: !0
284
- }
285
- }), I = ({
286
- className: r,
287
- children: t,
288
- ...a
289
- }) => {
290
- const { sizeProp: s } = h(), n = j();
291
- return /* @__PURE__ */ o(
292
- C.Value,
293
- {
294
- "data-spark-component": "circular-meter-value",
295
- className: U({ size: s, inside: n, className: r }),
296
- ...a,
297
- children: t
298
- }
299
- );
273
+ O.displayName = "CircularMeter.Label";
274
+ //#endregion
275
+ //#region src/circular-meter/CircularMeterValue.tsx
276
+ var k = e(["default:text-on-surface default:font-bold"], {
277
+ variants: {
278
+ size: {
279
+ sm: "",
280
+ md: "",
281
+ lg: "",
282
+ xl: ""
283
+ },
284
+ inside: {
285
+ true: [],
286
+ false: []
287
+ }
288
+ },
289
+ compoundVariants: [
290
+ {
291
+ size: "sm",
292
+ inside: !0,
293
+ class: "default:text-body-2 default:font-bold"
294
+ },
295
+ {
296
+ size: "md",
297
+ inside: !0,
298
+ class: "default:text-body-2 default:font-bold"
299
+ },
300
+ {
301
+ size: "lg",
302
+ inside: !0,
303
+ class: "default:text-body-1 default:font-bold"
304
+ },
305
+ {
306
+ size: "xl",
307
+ inside: !0,
308
+ class: "default:text-display-3"
309
+ },
310
+ {
311
+ size: "sm",
312
+ inside: !1,
313
+ class: "default:text-body-1 default:font-bold"
314
+ },
315
+ {
316
+ size: "md",
317
+ inside: !1,
318
+ class: "default:text-headline-2"
319
+ },
320
+ {
321
+ size: "lg",
322
+ inside: !1,
323
+ class: "default:text-headline-2"
324
+ },
325
+ {
326
+ size: "xl",
327
+ inside: !1,
328
+ class: "default:text-display-3"
329
+ }
330
+ ],
331
+ defaultVariants: {
332
+ size: "lg",
333
+ inside: !0
334
+ }
335
+ }), A = ({ className: e, children: t, ...n }) => {
336
+ let { sizeProp: r } = _(), i = C();
337
+ return /* @__PURE__ */ u(p.Value, {
338
+ "data-spark-component": "circular-meter-value",
339
+ className: k({
340
+ size: r,
341
+ inside: i,
342
+ className: e
343
+ }),
344
+ ...n,
345
+ children: t
346
+ });
300
347
  };
301
- I.displayName = "CircularMeter.Value";
302
- const X = Object.assign(S, {
303
- Content: v,
304
- Label: N,
305
- Track: z,
306
- Value: I
348
+ A.displayName = "CircularMeter.Value";
349
+ //#endregion
350
+ //#region src/circular-meter/index.ts
351
+ var j = Object.assign(y, {
352
+ Content: b,
353
+ Label: O,
354
+ Track: E,
355
+ Value: A
307
356
  });
308
- X.displayName = "CircularMeter";
309
- v.displayName = "CircularMeter.Content";
310
- N.displayName = "CircularMeter.Label";
311
- z.displayName = "CircularMeter.Track";
312
- I.displayName = "CircularMeter.Value";
313
- export {
314
- X as CircularMeter
315
- };
316
- //# sourceMappingURL=index.mjs.map
357
+ j.displayName = "CircularMeter", b.displayName = "CircularMeter.Content", O.displayName = "CircularMeter.Label", E.displayName = "CircularMeter.Track", A.displayName = "CircularMeter.Value";
358
+ //#endregion
359
+ export { j as CircularMeter };
360
+
361
+ //# sourceMappingURL=index.mjs.map