@ledgerhq/lumen-ui-react 0.1.56 → 0.1.57

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 (234) hide show
  1. package/ai-rules/RULES.md +5 -4
  2. package/dist/lib/Components/visualization/Axis/XAxis/XAxis.d.ts +3 -0
  3. package/dist/lib/Components/visualization/Axis/XAxis/XAxis.d.ts.map +1 -0
  4. package/dist/lib/Components/visualization/Axis/XAxis/XAxis.js +85 -0
  5. package/dist/lib/Components/visualization/Axis/XAxis/index.d.ts +3 -0
  6. package/dist/lib/Components/visualization/Axis/XAxis/index.d.ts.map +1 -0
  7. package/dist/lib/Components/visualization/Axis/XAxis/types.d.ts +9 -0
  8. package/dist/lib/Components/visualization/Axis/XAxis/types.d.ts.map +1 -0
  9. package/dist/lib/Components/visualization/Axis/YAxis/YAxis.d.ts +3 -0
  10. package/dist/lib/Components/visualization/Axis/YAxis/YAxis.d.ts.map +1 -0
  11. package/dist/lib/Components/visualization/Axis/YAxis/YAxis.js +85 -0
  12. package/dist/lib/Components/visualization/Axis/YAxis/index.d.ts +3 -0
  13. package/dist/lib/Components/visualization/Axis/YAxis/index.d.ts.map +1 -0
  14. package/dist/lib/Components/visualization/Axis/YAxis/types.d.ts +14 -0
  15. package/dist/lib/Components/visualization/Axis/YAxis/types.d.ts.map +1 -0
  16. package/dist/lib/Components/visualization/Axis/index.d.ts +2 -0
  17. package/dist/lib/Components/visualization/Axis/index.d.ts.map +1 -0
  18. package/dist/lib/Components/visualization/Axis/types.d.ts +80 -0
  19. package/dist/lib/Components/visualization/Axis/types.d.ts.map +1 -0
  20. package/dist/lib/Components/visualization/CartesianChart/CartesianChart.d.ts +3 -0
  21. package/dist/lib/Components/visualization/CartesianChart/CartesianChart.d.ts.map +1 -0
  22. package/dist/lib/Components/visualization/CartesianChart/CartesianChart.js +107 -0
  23. package/dist/lib/Components/visualization/CartesianChart/ChartEmptyLabel/ChartEmptyLabel.d.ts +11 -0
  24. package/dist/lib/Components/visualization/CartesianChart/ChartEmptyLabel/ChartEmptyLabel.d.ts.map +1 -0
  25. package/dist/lib/Components/visualization/CartesianChart/ChartEmptyLabel/ChartEmptyLabel.js +21 -0
  26. package/dist/lib/Components/visualization/CartesianChart/RevealAnimation/RevealAnimationProvider.d.ts +3 -0
  27. package/dist/lib/Components/visualization/CartesianChart/RevealAnimation/RevealAnimationProvider.d.ts.map +1 -0
  28. package/dist/lib/Components/visualization/CartesianChart/RevealAnimation/RevealAnimationProvider.js +41 -0
  29. package/dist/lib/Components/visualization/CartesianChart/RevealAnimation/context.d.ts +15 -0
  30. package/dist/lib/Components/visualization/CartesianChart/RevealAnimation/context.d.ts.map +1 -0
  31. package/dist/lib/Components/visualization/CartesianChart/RevealAnimation/context.js +10 -0
  32. package/dist/lib/Components/visualization/CartesianChart/RevealAnimation/index.d.ts +3 -0
  33. package/dist/lib/Components/visualization/CartesianChart/RevealAnimation/index.d.ts.map +1 -0
  34. package/dist/lib/Components/visualization/CartesianChart/RevealAnimation/types.d.ts +57 -0
  35. package/dist/lib/Components/visualization/CartesianChart/RevealAnimation/types.d.ts.map +1 -0
  36. package/dist/lib/Components/visualization/CartesianChart/RevealAnimation/utils.d.ts +35 -0
  37. package/dist/lib/Components/visualization/CartesianChart/RevealAnimation/utils.d.ts.map +1 -0
  38. package/dist/lib/Components/visualization/CartesianChart/RevealAnimation/utils.js +69 -0
  39. package/dist/lib/Components/visualization/CartesianChart/context/cartesianChartContext.d.ts +8 -0
  40. package/dist/lib/Components/visualization/CartesianChart/context/cartesianChartContext.d.ts.map +1 -0
  41. package/dist/lib/Components/visualization/CartesianChart/context/cartesianChartContext.js +9 -0
  42. package/dist/lib/Components/visualization/CartesianChart/context/index.d.ts +3 -0
  43. package/dist/lib/Components/visualization/CartesianChart/context/index.d.ts.map +1 -0
  44. package/dist/lib/Components/visualization/CartesianChart/context/useBuildChartContext.d.ts +25 -0
  45. package/dist/lib/Components/visualization/CartesianChart/context/useBuildChartContext.d.ts.map +1 -0
  46. package/dist/lib/Components/visualization/CartesianChart/context/useBuildChartContext.js +61 -0
  47. package/dist/lib/Components/visualization/CartesianChart/hooks/useShimmerAnimation.d.ts +18 -0
  48. package/dist/lib/Components/visualization/CartesianChart/hooks/useShimmerAnimation.d.ts.map +1 -0
  49. package/dist/lib/Components/visualization/CartesianChart/hooks/useShimmerAnimation.js +15 -0
  50. package/dist/lib/Components/visualization/CartesianChart/index.d.ts +4 -0
  51. package/dist/lib/Components/visualization/CartesianChart/index.d.ts.map +1 -0
  52. package/dist/lib/Components/visualization/CartesianChart/types.d.ts +127 -0
  53. package/dist/lib/Components/visualization/CartesianChart/types.d.ts.map +1 -0
  54. package/dist/lib/Components/visualization/CartesianChart/utils.d.ts +5 -0
  55. package/dist/lib/Components/visualization/CartesianChart/utils.d.ts.map +1 -0
  56. package/dist/lib/Components/visualization/CartesianChart/utils.js +24 -0
  57. package/dist/lib/Components/visualization/DonutChart/DonutChart.d.ts +3 -0
  58. package/dist/lib/Components/visualization/DonutChart/DonutChart.d.ts.map +1 -0
  59. package/dist/lib/Components/visualization/DonutChart/DonutChart.js +90 -0
  60. package/dist/lib/Components/visualization/DonutChart/DonutChartAnimatedCenter.d.ts +10 -0
  61. package/dist/lib/Components/visualization/DonutChart/DonutChartAnimatedCenter.d.ts.map +1 -0
  62. package/dist/lib/Components/visualization/DonutChart/DonutChartAnimatedCenter.js +61 -0
  63. package/dist/lib/Components/visualization/DonutChart/DonutChartCenter.d.ts +9 -0
  64. package/dist/lib/Components/visualization/DonutChart/DonutChartCenter.d.ts.map +1 -0
  65. package/dist/lib/Components/visualization/DonutChart/DonutChartCenter.js +20 -0
  66. package/dist/lib/Components/visualization/DonutChart/DonutChartDescription.d.ts +3 -0
  67. package/dist/lib/Components/visualization/DonutChart/DonutChartDescription.d.ts.map +1 -0
  68. package/dist/lib/Components/visualization/DonutChart/DonutChartDescription.js +49 -0
  69. package/dist/lib/Components/visualization/DonutChart/DonutChartTitle.d.ts +3 -0
  70. package/dist/lib/Components/visualization/DonutChart/DonutChartTitle.d.ts.map +1 -0
  71. package/dist/lib/Components/visualization/DonutChart/DonutChartTitle.js +55 -0
  72. package/dist/lib/Components/visualization/DonutChart/DonutRing.d.ts +12 -0
  73. package/dist/lib/Components/visualization/DonutChart/DonutRing.d.ts.map +1 -0
  74. package/dist/lib/Components/visualization/DonutChart/DonutRing.js +110 -0
  75. package/dist/lib/Components/visualization/DonutChart/RevealAnimation.d.ts +7 -0
  76. package/dist/lib/Components/visualization/DonutChart/RevealAnimation.d.ts.map +1 -0
  77. package/dist/lib/Components/visualization/DonutChart/RevealAnimation.js +28 -0
  78. package/dist/lib/Components/visualization/DonutChart/donutSizeContext.d.ts +18 -0
  79. package/dist/lib/Components/visualization/DonutChart/donutSizeContext.d.ts.map +1 -0
  80. package/dist/lib/Components/visualization/DonutChart/donutSizeContext.js +6 -0
  81. package/dist/lib/Components/visualization/DonutChart/hooks/useContrastSafeSeries.d.ts +12 -0
  82. package/dist/lib/Components/visualization/DonutChart/hooks/useContrastSafeSeries.d.ts.map +1 -0
  83. package/dist/lib/Components/visualization/DonutChart/hooks/useContrastSafeSeries.js +13 -0
  84. package/dist/lib/Components/visualization/DonutChart/hooks/useDonutLoadingAnimation.d.ts +8 -0
  85. package/dist/lib/Components/visualization/DonutChart/hooks/useDonutLoadingAnimation.d.ts.map +1 -0
  86. package/dist/lib/Components/visualization/DonutChart/hooks/useDonutLoadingAnimation.js +16 -0
  87. package/dist/lib/Components/visualization/DonutChart/index.d.ts +7 -0
  88. package/dist/lib/Components/visualization/DonutChart/index.d.ts.map +1 -0
  89. package/dist/lib/Components/visualization/DonutChart/types.d.ts +172 -0
  90. package/dist/lib/Components/visualization/DonutChart/types.d.ts.map +1 -0
  91. package/dist/lib/Components/visualization/DonutChart/useDonutSeries/index.d.ts +3 -0
  92. package/dist/lib/Components/visualization/DonutChart/useDonutSeries/index.d.ts.map +1 -0
  93. package/dist/lib/Components/visualization/DonutChart/useDonutSeries/useDonutSeries.d.ts +10 -0
  94. package/dist/lib/Components/visualization/DonutChart/useDonutSeries/useDonutSeries.d.ts.map +1 -0
  95. package/dist/lib/Components/visualization/DonutChart/useDonutSeries/useDonutSeries.js +16 -0
  96. package/dist/lib/Components/visualization/DonutChart/useDonutSeries/utils.d.ts +9 -0
  97. package/dist/lib/Components/visualization/DonutChart/useDonutSeries/utils.d.ts.map +1 -0
  98. package/dist/lib/Components/visualization/DonutChart/useDonutSeries/utils.js +46 -0
  99. package/dist/lib/Components/visualization/DonutChart/utils.d.ts +37 -0
  100. package/dist/lib/Components/visualization/DonutChart/utils.d.ts.map +1 -0
  101. package/dist/lib/Components/visualization/DonutChart/utils.js +83 -0
  102. package/dist/lib/Components/visualization/Legend/Legend.d.ts +3 -0
  103. package/dist/lib/Components/visualization/Legend/Legend.d.ts.map +1 -0
  104. package/dist/lib/Components/visualization/Legend/Legend.js +23 -0
  105. package/dist/lib/Components/visualization/Legend/LegendItem.d.ts +7 -0
  106. package/dist/lib/Components/visualization/Legend/LegendItem.d.ts.map +1 -0
  107. package/dist/lib/Components/visualization/Legend/LegendItem.js +19 -0
  108. package/dist/lib/Components/visualization/Legend/index.d.ts +3 -0
  109. package/dist/lib/Components/visualization/Legend/index.d.ts.map +1 -0
  110. package/dist/lib/Components/visualization/Legend/types.d.ts +32 -0
  111. package/dist/lib/Components/visualization/Legend/types.d.ts.map +1 -0
  112. package/dist/lib/Components/visualization/Line/Line.d.ts +3 -0
  113. package/dist/lib/Components/visualization/Line/Line.d.ts.map +1 -0
  114. package/dist/lib/Components/visualization/Line/Line.js +82 -0
  115. package/dist/lib/Components/visualization/Line/index.d.ts +3 -0
  116. package/dist/lib/Components/visualization/Line/index.d.ts.map +1 -0
  117. package/dist/lib/Components/visualization/Line/types.d.ts +45 -0
  118. package/dist/lib/Components/visualization/Line/types.d.ts.map +1 -0
  119. package/dist/lib/Components/visualization/Line/utils.d.ts +28 -0
  120. package/dist/lib/Components/visualization/Line/utils.d.ts.map +1 -0
  121. package/dist/lib/Components/visualization/Line/utils.js +34 -0
  122. package/dist/lib/Components/visualization/LineChart/LineChart.d.ts +3 -0
  123. package/dist/lib/Components/visualization/LineChart/LineChart.d.ts.map +1 -0
  124. package/dist/lib/Components/visualization/LineChart/LineChart.js +181 -0
  125. package/dist/lib/Components/visualization/LineChart/LineChartEmptyState/LineChartEmptyState.d.ts +9 -0
  126. package/dist/lib/Components/visualization/LineChart/LineChartEmptyState/LineChartEmptyState.d.ts.map +1 -0
  127. package/dist/lib/Components/visualization/LineChart/LineChartEmptyState/LineChartEmptyState.js +51 -0
  128. package/dist/lib/Components/visualization/LineChart/LineChartEmptyState/index.d.ts +3 -0
  129. package/dist/lib/Components/visualization/LineChart/LineChartEmptyState/index.d.ts.map +1 -0
  130. package/dist/lib/Components/visualization/LineChart/LineChartEmptyState/types.d.ts +3 -0
  131. package/dist/lib/Components/visualization/LineChart/LineChartEmptyState/types.d.ts.map +1 -0
  132. package/dist/lib/Components/visualization/LineChart/LineChartEmptyState/utils.d.ts +8 -0
  133. package/dist/lib/Components/visualization/LineChart/LineChartEmptyState/utils.d.ts.map +1 -0
  134. package/dist/lib/Components/visualization/LineChart/LineChartEmptyState/utils.js +8 -0
  135. package/dist/lib/Components/visualization/LineChart/index.d.ts +3 -0
  136. package/dist/lib/Components/visualization/LineChart/index.d.ts.map +1 -0
  137. package/dist/lib/Components/visualization/LineChart/types.d.ts +82 -0
  138. package/dist/lib/Components/visualization/LineChart/types.d.ts.map +1 -0
  139. package/dist/lib/Components/visualization/LineChart/utils.d.ts +56 -0
  140. package/dist/lib/Components/visualization/LineChart/utils.d.ts.map +1 -0
  141. package/dist/lib/Components/visualization/LineChart/utils.js +57 -0
  142. package/dist/lib/Components/visualization/Point/Point.d.ts +4 -0
  143. package/dist/lib/Components/visualization/Point/Point.d.ts.map +1 -0
  144. package/dist/lib/Components/visualization/Point/Point.js +122 -0
  145. package/dist/lib/Components/visualization/Point/index.d.ts +3 -0
  146. package/dist/lib/Components/visualization/Point/index.d.ts.map +1 -0
  147. package/dist/lib/Components/visualization/Point/pointContext/MagneticPointsProvider.d.ts +7 -0
  148. package/dist/lib/Components/visualization/Point/pointContext/MagneticPointsProvider.d.ts.map +1 -0
  149. package/dist/lib/Components/visualization/Point/pointContext/MagneticPointsProvider.js +22 -0
  150. package/dist/lib/Components/visualization/Point/pointContext/index.d.ts +3 -0
  151. package/dist/lib/Components/visualization/Point/pointContext/index.d.ts.map +1 -0
  152. package/dist/lib/Components/visualization/Point/pointContext/magneticPointsContext.d.ts +30 -0
  153. package/dist/lib/Components/visualization/Point/pointContext/magneticPointsContext.d.ts.map +1 -0
  154. package/dist/lib/Components/visualization/Point/pointContext/magneticPointsContext.js +14 -0
  155. package/dist/lib/Components/visualization/Point/types.d.ts +110 -0
  156. package/dist/lib/Components/visualization/Point/types.d.ts.map +1 -0
  157. package/dist/lib/Components/visualization/Point/usePointGeometry.d.ts +33 -0
  158. package/dist/lib/Components/visualization/Point/usePointGeometry.d.ts.map +1 -0
  159. package/dist/lib/Components/visualization/Point/usePointGeometry.js +30 -0
  160. package/dist/lib/Components/visualization/Point/utils.d.ts +51 -0
  161. package/dist/lib/Components/visualization/Point/utils.d.ts.map +1 -0
  162. package/dist/lib/Components/visualization/Point/utils.js +54 -0
  163. package/dist/lib/Components/visualization/ReferenceLine/ReferenceLine.d.ts +3 -0
  164. package/dist/lib/Components/visualization/ReferenceLine/ReferenceLine.d.ts.map +1 -0
  165. package/dist/lib/Components/visualization/ReferenceLine/ReferenceLine.js +42 -0
  166. package/dist/lib/Components/visualization/ReferenceLine/index.d.ts +3 -0
  167. package/dist/lib/Components/visualization/ReferenceLine/index.d.ts.map +1 -0
  168. package/dist/lib/Components/visualization/ReferenceLine/types.d.ts +74 -0
  169. package/dist/lib/Components/visualization/ReferenceLine/types.d.ts.map +1 -0
  170. package/dist/lib/Components/visualization/ReferenceLine/useReferenceLineGeometry.d.ts +21 -0
  171. package/dist/lib/Components/visualization/ReferenceLine/useReferenceLineGeometry.d.ts.map +1 -0
  172. package/dist/lib/Components/visualization/ReferenceLine/useReferenceLineGeometry.js +49 -0
  173. package/dist/lib/Components/visualization/ReferenceLine/utils.d.ts +50 -0
  174. package/dist/lib/Components/visualization/ReferenceLine/utils.d.ts.map +1 -0
  175. package/dist/lib/Components/visualization/ReferenceLine/utils.js +66 -0
  176. package/dist/lib/Components/visualization/Scrubber/DefaultScrubberTooltip/ChartTooltipItem.d.ts +9 -0
  177. package/dist/lib/Components/visualization/Scrubber/DefaultScrubberTooltip/ChartTooltipItem.d.ts.map +1 -0
  178. package/dist/lib/Components/visualization/Scrubber/DefaultScrubberTooltip/ChartTooltipItem.js +50 -0
  179. package/dist/lib/Components/visualization/Scrubber/DefaultScrubberTooltip/DefaultScrubberTooltip.d.ts +12 -0
  180. package/dist/lib/Components/visualization/Scrubber/DefaultScrubberTooltip/DefaultScrubberTooltip.d.ts.map +1 -0
  181. package/dist/lib/Components/visualization/Scrubber/DefaultScrubberTooltip/DefaultScrubberTooltip.js +82 -0
  182. package/dist/lib/Components/visualization/Scrubber/DefaultScrubberTooltip/utils.d.ts +58 -0
  183. package/dist/lib/Components/visualization/Scrubber/DefaultScrubberTooltip/utils.d.ts.map +1 -0
  184. package/dist/lib/Components/visualization/Scrubber/DefaultScrubberTooltip/utils.js +80 -0
  185. package/dist/lib/Components/visualization/Scrubber/Scrubber.d.ts +29 -0
  186. package/dist/lib/Components/visualization/Scrubber/Scrubber.d.ts.map +1 -0
  187. package/dist/lib/Components/visualization/Scrubber/Scrubber.js +114 -0
  188. package/dist/lib/Components/visualization/Scrubber/ScrubberProvider.d.ts +3 -0
  189. package/dist/lib/Components/visualization/Scrubber/ScrubberProvider.d.ts.map +1 -0
  190. package/dist/lib/Components/visualization/Scrubber/ScrubberProvider.js +154 -0
  191. package/dist/lib/Components/visualization/Scrubber/context/index.d.ts +2 -0
  192. package/dist/lib/Components/visualization/Scrubber/context/index.d.ts.map +1 -0
  193. package/dist/lib/Components/visualization/Scrubber/context/scrubberContext.d.ts +8 -0
  194. package/dist/lib/Components/visualization/Scrubber/context/scrubberContext.d.ts.map +1 -0
  195. package/dist/lib/Components/visualization/Scrubber/context/scrubberContext.js +9 -0
  196. package/dist/lib/Components/visualization/Scrubber/index.d.ts +4 -0
  197. package/dist/lib/Components/visualization/Scrubber/index.d.ts.map +1 -0
  198. package/dist/lib/Components/visualization/Scrubber/types.d.ts +130 -0
  199. package/dist/lib/Components/visualization/Scrubber/types.d.ts.map +1 -0
  200. package/dist/lib/Components/visualization/Scrubber/useScrubberGeometry.d.ts +29 -0
  201. package/dist/lib/Components/visualization/Scrubber/useScrubberGeometry.d.ts.map +1 -0
  202. package/dist/lib/Components/visualization/Scrubber/useScrubberGeometry.js +37 -0
  203. package/dist/lib/Components/visualization/Scrubber/utils.d.ts +79 -0
  204. package/dist/lib/Components/visualization/Scrubber/utils.d.ts.map +1 -0
  205. package/dist/lib/Components/visualization/Scrubber/utils.js +104 -0
  206. package/dist/lib/Components/visualization/config.d.ts +162 -0
  207. package/dist/lib/Components/visualization/config.d.ts.map +1 -0
  208. package/dist/lib/Components/visualization/config.js +156 -0
  209. package/dist/lib/Components/visualization/index.d.ts +8 -0
  210. package/dist/lib/Components/visualization/index.d.ts.map +1 -0
  211. package/dist/lib/Components/visualization/index.js +27 -0
  212. package/dist/lib/Components/visualization/utils/domain/domain.d.ts +18 -0
  213. package/dist/lib/Components/visualization/utils/domain/domain.d.ts.map +1 -0
  214. package/dist/lib/Components/visualization/utils/domain/domain.js +35 -0
  215. package/dist/lib/Components/visualization/utils/index.d.ts +2 -0
  216. package/dist/lib/Components/visualization/utils/index.d.ts.map +1 -0
  217. package/dist/lib/Components/visualization/utils/numbers.d.ts +13 -0
  218. package/dist/lib/Components/visualization/utils/numbers.d.ts.map +1 -0
  219. package/dist/lib/Components/visualization/utils/numbers.js +5 -0
  220. package/dist/lib/Components/visualization/utils/scales/scales.d.ts +47 -0
  221. package/dist/lib/Components/visualization/utils/scales/scales.d.ts.map +1 -0
  222. package/dist/lib/Components/visualization/utils/scales/scales.js +32 -0
  223. package/dist/lib/Components/visualization/utils/ticks/ticks.d.ts +35 -0
  224. package/dist/lib/Components/visualization/utils/ticks/ticks.d.ts.map +1 -0
  225. package/dist/lib/Components/visualization/utils/ticks/ticks.js +23 -0
  226. package/dist/lib/Components/visualization/utils/types.d.ts +63 -0
  227. package/dist/lib/Components/visualization/utils/types.d.ts.map +1 -0
  228. package/dist/libs/design-core/dist/lib/colorContrast/colorContrast.js +15 -0
  229. package/dist/libs/design-core/dist/lib/colorContrast/hexToHsl.js +14 -0
  230. package/dist/libs/design-core/dist/lib/colorContrast/hslToHex.js +10 -0
  231. package/dist/libs/design-core/dist/lib/themes/js/primitives/primitive.colors.js +15 -0
  232. package/dist/libs/utils-shared/dist/index.js +115 -113
  233. package/dist/package.json +11 -3
  234. package/package.json +12 -4
@@ -0,0 +1,61 @@
1
+ import { jsxs as u, jsx as s } from "react/jsx-runtime";
2
+ import { useState as p, useEffect as h, useMemo as r } from "react";
3
+ import { chartConfig as v } from "../config.js";
4
+ const { centerTextTransition: i } = v.donut.hover, o = 8, j = ({
5
+ activeSegment: e,
6
+ renderResting: a,
7
+ renderActive: c
8
+ }) => {
9
+ const [l, d] = p(null);
10
+ h(() => {
11
+ e && d(e);
12
+ }, [e]);
13
+ const t = e != null, n = e ?? l, f = r(
14
+ () => ({
15
+ transition: i,
16
+ opacity: t ? 0 : 1,
17
+ transform: `translateY(${t ? -o : 0}px)`
18
+ }),
19
+ [t]
20
+ ), m = r(
21
+ () => ({
22
+ transition: i,
23
+ opacity: t ? 1 : 0,
24
+ transform: `translateY(${t ? 0 : o}px)`
25
+ }),
26
+ [t]
27
+ );
28
+ return /* @__PURE__ */ u("div", { className: "pointer-events-auto grid", children: [
29
+ /* @__PURE__ */ s(
30
+ "div",
31
+ {
32
+ "data-visible": !t,
33
+ "aria-hidden": t,
34
+ style: {
35
+ gridArea: "1 / 1",
36
+ pointerEvents: t ? "none" : "auto",
37
+ ...f
38
+ },
39
+ className: "flex items-center justify-center",
40
+ children: a()
41
+ }
42
+ ),
43
+ n && /* @__PURE__ */ s(
44
+ "div",
45
+ {
46
+ "data-visible": t,
47
+ "aria-hidden": !t,
48
+ style: {
49
+ gridArea: "1 / 1",
50
+ pointerEvents: t ? "auto" : "none",
51
+ ...m
52
+ },
53
+ className: "flex items-center justify-center",
54
+ children: c(n)
55
+ }
56
+ )
57
+ ] });
58
+ };
59
+ export {
60
+ j as DonutChartAnimatedCenter
61
+ };
@@ -0,0 +1,9 @@
1
+ import { DonutChartCenterProps } from './types';
2
+ /**
3
+ * Layout wrapper for the donut center slot: a centered vertical stack for
4
+ * `DonutChartTitle` / `DonutChartDescription`. Rendered via `renderCenter` /
5
+ * `renderCenterActive` as the top-level element.
6
+ * Use `className` to add custom styles.
7
+ */
8
+ export declare const DonutChartCenter: ({ ref, className, ...props }: DonutChartCenterProps) => import("react/jsx-runtime").JSX.Element;
9
+ //# sourceMappingURL=DonutChartCenter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DonutChartCenter.d.ts","sourceRoot":"","sources":["../../../../../src/lib/Components/visualization/DonutChart/DonutChartCenter.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAC;AAErD;;;;;GAKG;AACH,eAAO,MAAM,gBAAgB,GAAI,8BAI9B,qBAAqB,4CAWvB,CAAC"}
@@ -0,0 +1,20 @@
1
+ import { jsx as o } from "react/jsx-runtime";
2
+ import { cn as n } from "../../../../libs/utils-shared/dist/index.js";
3
+ const a = ({
4
+ ref: t,
5
+ className: e,
6
+ ...r
7
+ }) => /* @__PURE__ */ o(
8
+ "div",
9
+ {
10
+ ref: t,
11
+ className: n(
12
+ "pointer-events-auto flex min-w-0 flex-col items-center",
13
+ e
14
+ ),
15
+ ...r
16
+ }
17
+ );
18
+ export {
19
+ a as DonutChartCenter
20
+ };
@@ -0,0 +1,3 @@
1
+ import { DonutChartDescriptionProps } from './types';
2
+ export declare const DonutChartDescription: ({ ref, children, className, style, ...props }: DonutChartDescriptionProps) => import("react/jsx-runtime").JSX.Element;
3
+ //# sourceMappingURL=DonutChartDescription.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DonutChartDescription.d.ts","sourceRoot":"","sources":["../../../../../src/lib/Components/visualization/DonutChart/DonutChartDescription.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,SAAS,CAAC;AAoB1D,eAAO,MAAM,qBAAqB,GAAI,+CAMnC,0BAA0B,4CAsB5B,CAAC"}
@@ -0,0 +1,49 @@
1
+ import { jsx as m } from "react/jsx-runtime";
2
+ import { isTextChildren as u, cn as d } from "../../../../libs/utils-shared/dist/index.js";
3
+ import { cva as c } from "class-variance-authority";
4
+ import { useDonutSizeContext as x } from "./donutSizeContext.js";
5
+ import { getCenterContentInset as l, getCenterMaxWidth as p } from "./utils.js";
6
+ const f = c("min-w-0 text-muted", {
7
+ variants: {
8
+ donutSize: {
9
+ md: "body-3",
10
+ sm: "-mt-4 body-4"
11
+ },
12
+ layout: {
13
+ text: "truncate",
14
+ cluster: "flex items-center gap-2"
15
+ }
16
+ },
17
+ defaultVariants: {
18
+ donutSize: "md",
19
+ layout: "text"
20
+ }
21
+ }), h = ({
22
+ ref: n,
23
+ children: e,
24
+ className: o,
25
+ style: i,
26
+ ...r
27
+ }) => {
28
+ const { size: t = "md" } = x({
29
+ consumerName: "DonutChartDescription",
30
+ contextRequired: !1
31
+ }), s = l(t), a = u(e) ? "text" : "cluster";
32
+ return /* @__PURE__ */ m(
33
+ "div",
34
+ {
35
+ ref: n,
36
+ style: {
37
+ maxWidth: p(t),
38
+ paddingInline: s,
39
+ ...i
40
+ },
41
+ className: d(f({ donutSize: t, layout: a }), o),
42
+ ...r,
43
+ children: e
44
+ }
45
+ );
46
+ };
47
+ export {
48
+ h as DonutChartDescription
49
+ };
@@ -0,0 +1,3 @@
1
+ import { DonutChartTitleProps } from './types';
2
+ export declare const DonutChartTitle: ({ ref, children, className, size, style, ...props }: DonutChartTitleProps) => import("react/jsx-runtime").JSX.Element;
3
+ //# sourceMappingURL=DonutChartTitle.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DonutChartTitle.d.ts","sourceRoot":"","sources":["../../../../../src/lib/Components/visualization/DonutChart/DonutChartTitle.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC;AA0BpD,eAAO,MAAM,eAAe,GAAI,qDAO7B,oBAAoB,4CAqBtB,CAAC"}
@@ -0,0 +1,55 @@
1
+ import { jsx as a } from "react/jsx-runtime";
2
+ import { cva as r } from "class-variance-authority";
3
+ import { useDonutSizeContext as u } from "./donutSizeContext.js";
4
+ import { getCenterContentInset as l, getCenterMaxWidth as z } from "./utils.js";
5
+ const c = r("min-w-0 truncate text-base", {
6
+ variants: {
7
+ donutSize: {
8
+ md: "",
9
+ sm: ""
10
+ },
11
+ size: {
12
+ md: "",
13
+ sm: ""
14
+ }
15
+ },
16
+ compoundVariants: [
17
+ { donutSize: "md", size: "md", class: "heading-1-semi-bold" },
18
+ { donutSize: "md", size: "sm", class: "heading-2-semi-bold" },
19
+ { donutSize: "sm", size: "md", class: "heading-4-semi-bold" },
20
+ { donutSize: "sm", size: "sm", class: "body-2-semi-bold" }
21
+ ],
22
+ defaultVariants: {
23
+ donutSize: "md",
24
+ size: "md"
25
+ }
26
+ }), b = ({
27
+ ref: t,
28
+ children: s,
29
+ className: i,
30
+ size: n = "md",
31
+ style: m,
32
+ ...o
33
+ }) => {
34
+ const { size: e = "md" } = u({
35
+ consumerName: "DonutChartTitle",
36
+ contextRequired: !1
37
+ }), d = l(e);
38
+ return /* @__PURE__ */ a(
39
+ "div",
40
+ {
41
+ ref: t,
42
+ style: {
43
+ maxWidth: z(e),
44
+ paddingInline: d,
45
+ ...m
46
+ },
47
+ className: c({ donutSize: e, size: n, className: i }),
48
+ ...o,
49
+ children: s
50
+ }
51
+ );
52
+ };
53
+ export {
54
+ b as DonutChartTitle
55
+ };
@@ -0,0 +1,12 @@
1
+ import { DonutGeometry, DonutRingSegment } from './types';
2
+ type DonutRingProps = {
3
+ segments: DonutRingSegment[];
4
+ geometry: DonutGeometry;
5
+ ariaLabel?: string;
6
+ activeId: string | null;
7
+ loading?: boolean;
8
+ onSegmentEnter: (id: string) => void;
9
+ };
10
+ export declare const DonutRing: ({ segments, geometry, ariaLabel, activeId, loading, onSegmentEnter, }: DonutRingProps) => import("react/jsx-runtime").JSX.Element;
11
+ export {};
12
+ //# sourceMappingURL=DonutRing.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DonutRing.d.ts","sourceRoot":"","sources":["../../../../../src/lib/Components/visualization/DonutChart/DonutRing.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAoG/D,KAAK,cAAc,GAAG;IACpB,QAAQ,EAAE,gBAAgB,EAAE,CAAC;IAC7B,QAAQ,EAAE,aAAa,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,cAAc,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;CACtC,CAAC;AAaF,eAAO,MAAM,SAAS,GAAI,uEAOvB,cAAc,4CAqChB,CAAC"}
@@ -0,0 +1,110 @@
1
+ import { jsx as i, jsxs as v, Fragment as b } from "react/jsx-runtime";
2
+ import { useRef as h, useMemo as f, useCallback as x } from "react";
3
+ import { chartConfig as c } from "../config.js";
4
+ import { useDonutLoadingAnimation as R } from "./hooks/useDonutLoadingAnimation.js";
5
+ import { RevealAnimation as $ } from "./RevealAnimation.js";
6
+ import { getDonutViewBox as g, buildPlaceholderSegments as m } from "./utils.js";
7
+ const { hover: s } = c.donut, D = ({
8
+ segment: t,
9
+ activeId: o,
10
+ onSegmentEnter: n
11
+ }) => {
12
+ const a = o === t.id, e = !t.hoverEnabled || o == null || a ? 1 : s.dimOpacity, { x: r, y: l } = a ? t.hoverTranslate : { x: 0, y: 0 }, d = x(() => {
13
+ n(t.id);
14
+ }, [t.id, n]);
15
+ return /* @__PURE__ */ i(
16
+ "path",
17
+ {
18
+ "data-testid": "donut-segment",
19
+ "data-segment-id": t.id,
20
+ d: t.path,
21
+ fill: t.color,
22
+ role: "button",
23
+ "aria-label": a ? `${t.id}, selected` : t.id,
24
+ tabIndex: 0,
25
+ className: "outline-none focus-visible:outline-2 focus-visible:outline-focus",
26
+ onMouseEnter: d,
27
+ onFocus: d,
28
+ style: {
29
+ cursor: "pointer",
30
+ opacity: e,
31
+ transform: `translate(${r}px, ${l}px)`,
32
+ transition: t.hoverEnabled ? `${s.opacityTransition}, ${s.popTransition}` : void 0
33
+ }
34
+ }
35
+ );
36
+ }, S = ({ geometry: t }) => {
37
+ const o = f(
38
+ () => m(t),
39
+ [t]
40
+ );
41
+ return /* @__PURE__ */ i("g", { "data-testid": "donut-empty", children: o.map((n) => /* @__PURE__ */ i(
42
+ "path",
43
+ {
44
+ "data-testid": "donut-placeholder",
45
+ d: n.path,
46
+ fill: c.donut.emptyRingColor
47
+ },
48
+ n.id
49
+ )) });
50
+ }, k = ({ geometry: t }) => {
51
+ const o = f(
52
+ () => m(t),
53
+ [t]
54
+ ), { animationStyle: n, keyframe: a, getSegmentDelay: e } = R();
55
+ return /* @__PURE__ */ v(b, { children: [
56
+ /* @__PURE__ */ i("style", { children: a }),
57
+ /* @__PURE__ */ i("g", { "data-testid": "donut-loading", children: o.map((r) => /* @__PURE__ */ i(
58
+ "path",
59
+ {
60
+ "data-testid": "donut-placeholder",
61
+ d: r.path,
62
+ fill: c.donut.emptyRingColor,
63
+ style: {
64
+ animation: n,
65
+ animationDelay: e(r.midAngle)
66
+ }
67
+ },
68
+ r.id
69
+ )) })
70
+ ] });
71
+ };
72
+ function w(t) {
73
+ const o = h(0), n = h(t);
74
+ return n.current && !t && (o.current += 1), n.current = t, o.current;
75
+ }
76
+ const F = ({
77
+ segments: t,
78
+ geometry: o,
79
+ ariaLabel: n,
80
+ activeId: a,
81
+ loading: e = !1,
82
+ onSegmentEnter: r
83
+ }) => {
84
+ const { box: l } = o, d = l / 2, u = t.length > 0, y = w(e);
85
+ return /* @__PURE__ */ i($, { children: /* @__PURE__ */ i(
86
+ "svg",
87
+ {
88
+ "data-testid": "donut-ring",
89
+ width: l,
90
+ height: l,
91
+ viewBox: g(o),
92
+ role: e || !u ? "img" : "group",
93
+ "aria-label": n,
94
+ "aria-busy": e || void 0,
95
+ style: { display: "block", overflow: "visible" },
96
+ children: /* @__PURE__ */ i("g", { transform: `translate(${d}, ${d})`, children: e ? /* @__PURE__ */ i(k, { geometry: o }) : u ? t.map((p) => /* @__PURE__ */ i(
97
+ D,
98
+ {
99
+ segment: p,
100
+ activeId: a,
101
+ onSegmentEnter: r
102
+ },
103
+ p.id
104
+ )) : /* @__PURE__ */ i(S, { geometry: o }) })
105
+ }
106
+ ) }, y);
107
+ };
108
+ export {
109
+ F as DonutRing
110
+ };
@@ -0,0 +1,7 @@
1
+ import { ReactNode } from 'react';
2
+ type RevealAnimationProps = {
3
+ children: ReactNode;
4
+ };
5
+ export declare const RevealAnimation: ({ children }: RevealAnimationProps) => import("react/jsx-runtime").JSX.Element;
6
+ export {};
7
+ //# sourceMappingURL=RevealAnimation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RevealAnimation.d.ts","sourceRoot":"","sources":["../../../../../src/lib/Components/visualization/DonutChart/RevealAnimation.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAqBvC,KAAK,oBAAoB,GAAG;IAAE,QAAQ,EAAE,SAAS,CAAA;CAAE,CAAC;AAEpD,eAAO,MAAM,eAAe,GAAI,cAAc,oBAAoB,4CAMjE,CAAC"}
@@ -0,0 +1,28 @@
1
+ import { jsxs as r, jsx as a } from "react/jsx-runtime";
2
+ const n = `
3
+ @property --donut-reveal {
4
+ syntax: '<percentage>';
5
+ inherits: false;
6
+ initial-value: 100%;
7
+ }
8
+ @keyframes donut-reveal {
9
+ from { --donut-reveal: 0%; }
10
+ to { --donut-reveal: 100%; }
11
+ }
12
+ @media (prefers-reduced-motion: no-preference) {
13
+ .donut-ring-reveal {
14
+ mask-image: conic-gradient(from 0deg, black var(--donut-reveal), transparent var(--donut-reveal));
15
+ -webkit-mask-image: conic-gradient(from 0deg, black var(--donut-reveal), transparent var(--donut-reveal));
16
+ animation: donut-reveal 1000ms ease-out forwards;
17
+ }
18
+ }
19
+ `, o = ({ children: e }) => (
20
+ // eslint-disable-next-line better-tailwindcss/no-unknown-classes
21
+ /* @__PURE__ */ r("div", { className: "donut-ring-reveal", children: [
22
+ /* @__PURE__ */ a("style", { children: n }),
23
+ e
24
+ ] })
25
+ );
26
+ export {
27
+ o as RevealAnimation
28
+ };
@@ -0,0 +1,18 @@
1
+ import { DonutSize } from './types';
2
+ type DonutSizeContextValue = {
3
+ size: DonutSize;
4
+ };
5
+ /**
6
+ * Carries the donut ring's `size` down to `DonutChartTitle` /
7
+ * `DonutChartDescription` (rendered via `renderCenter`), which pick their
8
+ * typography off it.
9
+ */
10
+ export declare const DonutSizeProvider: import('react').FC<{
11
+ children: import('react').ReactNode;
12
+ value: DonutSizeContextValue;
13
+ }>, useDonutSizeContext: <ContextRequired extends boolean = boolean>({ consumerName, contextRequired, }: {
14
+ consumerName: string;
15
+ contextRequired: ContextRequired;
16
+ }) => ContextRequired extends true ? DonutSizeContextValue : Partial<DonutSizeContextValue>;
17
+ export {};
18
+ //# sourceMappingURL=donutSizeContext.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"donutSizeContext.d.ts","sourceRoot":"","sources":["../../../../../src/lib/Components/visualization/DonutChart/donutSizeContext.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAEzC,KAAK,qBAAqB,GAAG;IAC3B,IAAI,EAAE,SAAS,CAAC;CACjB,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAO,iBAAiB;;;IAAE,mBAAmB;;;2FACoB,CAAC"}
@@ -0,0 +1,6 @@
1
+ import { createSafeContext as t } from "../../../../libs/utils-shared/dist/index.js";
2
+ const [o, r] = t("DonutChart", { size: "md" });
3
+ export {
4
+ o as DonutSizeProvider,
5
+ r as useDonutSizeContext
6
+ };
@@ -0,0 +1,12 @@
1
+ import { DonutSegment } from '../types';
2
+ /**
3
+ * The series with each segment `color` nudged away from the surface it is drawn
4
+ * on, so a palette close in lightness to the background stays readable.
5
+ *
6
+ * `grey.050` is the base surface fill in both color schemes, and colorless
7
+ * segments are left alone: the ring paints them with its neutral default, which
8
+ * is already contrast-safe. Returns `series` untouched when `enabled` is false,
9
+ * keeping its identity stable for downstream memos.
10
+ */
11
+ export declare const useContrastSafeSeries: (series: DonutSegment[], enabled: boolean) => DonutSegment[];
12
+ //# sourceMappingURL=useContrastSafeSeries.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useContrastSafeSeries.d.ts","sourceRoot":"","sources":["../../../../../../src/lib/Components/visualization/DonutChart/hooks/useContrastSafeSeries.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAE7C;;;;;;;;GAQG;AACH,eAAO,MAAM,qBAAqB,GAChC,QAAQ,YAAY,EAAE,EACtB,SAAS,OAAO,KACf,YAAY,EAiBd,CAAC"}
@@ -0,0 +1,13 @@
1
+ import { useMemo as i } from "react";
2
+ import { useTheme as f } from "../../../core/ThemeProvider/ThemeProvider.js";
3
+ import { getContrastSafeColor as l } from "../../../../../libs/design-core/dist/lib/colorContrast/colorContrast.js";
4
+ import { primitiveColorTokens as e } from "../../../../../libs/design-core/dist/lib/themes/js/primitives/primitive.colors.js";
5
+ const C = (r, t) => {
6
+ const { colorScheme: c } = f(), m = c === "dark" ? e.dark.grey["050"] : e.light.grey["050"];
7
+ return i(() => t ? r.map(
8
+ (o) => o.color ? { ...o, color: l(o.color, m) } : o
9
+ ) : r, [r, t, m]);
10
+ };
11
+ export {
12
+ C as useContrastSafeSeries
13
+ };
@@ -0,0 +1,8 @@
1
+ type DonutLoadingAnimationResult = {
2
+ animationStyle: string;
3
+ keyframe: string;
4
+ getSegmentDelay: (midAngle: number) => string;
5
+ };
6
+ export declare const useDonutLoadingAnimation: () => DonutLoadingAnimationResult;
7
+ export {};
8
+ //# sourceMappingURL=useDonutLoadingAnimation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useDonutLoadingAnimation.d.ts","sourceRoot":"","sources":["../../../../../../src/lib/Components/visualization/DonutChart/hooks/useDonutLoadingAnimation.ts"],"names":[],"mappings":"AAQA,KAAK,2BAA2B,GAAG;IACjC,cAAc,EAAE,MAAM,CAAC;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,eAAe,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,MAAM,CAAC;CAC/C,CAAC;AAEF,eAAO,MAAM,wBAAwB,QAAO,2BAe3C,CAAC"}
@@ -0,0 +1,16 @@
1
+ import { useId as i, useMemo as a } from "react";
2
+ import { chartConfig as r } from "../../config.js";
3
+ const { loading: n } = r.donut, o = 2 * Math.PI, c = () => {
4
+ const e = `donut-loading-wave-${i().replaceAll(":", "")}`;
5
+ return a(
6
+ () => ({
7
+ animationStyle: `${e} ${n.durationInSeconds}s ${n.easing} infinite`,
8
+ keyframe: `@keyframes ${e} { 0%, 100% { opacity: 1; } 50% { opacity: ${n.minOpacity}; } } @media (prefers-reduced-motion: reduce) { @keyframes ${e} { 0%, 100% { opacity: 1; } } }`,
9
+ getSegmentDelay: (t) => `-${(o - t) / o * n.durationInSeconds}s`
10
+ }),
11
+ [e]
12
+ );
13
+ };
14
+ export {
15
+ c as useDonutLoadingAnimation
16
+ };
@@ -0,0 +1,7 @@
1
+ export { DonutChart } from './DonutChart';
2
+ export { DonutChartCenter } from './DonutChartCenter';
3
+ export { DonutChartDescription } from './DonutChartDescription';
4
+ export { DonutChartTitle } from './DonutChartTitle';
5
+ export type { DonutActiveSegment, DonutChartCenterProps, DonutChartDescriptionProps, DonutChartProps, DonutChartTitleProps, DonutSegment, DonutSeriesOptions, DonutSeriesResult, } from './types';
6
+ export { prepareDonutSeries, useDonutSeries } from './useDonutSeries';
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/lib/Components/visualization/DonutChart/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,YAAY,EACV,kBAAkB,EAClB,qBAAqB,EACrB,0BAA0B,EAC1B,eAAe,EACf,oBAAoB,EACpB,YAAY,EACZ,kBAAkB,EAClB,iBAAiB,GAClB,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC"}
@@ -0,0 +1,172 @@
1
+ import { ComponentPropsWithRef, ReactNode } from 'react';
2
+ import { chartConfig } from '../config';
3
+ export type DonutSize = keyof typeof chartConfig.donut.size;
4
+ /**
5
+ * The title's own typography scale.
6
+ */
7
+ export type DonutTitleSize = 'md' | 'sm';
8
+ /** Ring dimensions for a given size, in SVG user units. */
9
+ export type DonutGeometry = Readonly<{
10
+ box: number;
11
+ innerRadius: number;
12
+ outerRadius: number;
13
+ cornerRadius: number;
14
+ padAngle: number;
15
+ hoverOffset: number;
16
+ /** Shortest arc a segment may be drawn with, measured at the mid-radius. */
17
+ minSegmentArc: number;
18
+ }>;
19
+ /** A placeholder segment for the empty ring and loading wave. */
20
+ export type DonutPlaceholderSegment = {
21
+ id: string;
22
+ path: string;
23
+ midAngle: number;
24
+ };
25
+ /** A segment ready to draw: its path is centered at the origin. */
26
+ export type DonutRingSegment = {
27
+ id: string;
28
+ path: string;
29
+ color: string;
30
+ percent: number;
31
+ midAngle: number;
32
+ hoverTranslate: {
33
+ x: number;
34
+ y: number;
35
+ };
36
+ hoverEnabled: boolean;
37
+ };
38
+ /** A single part-to-whole segment. */
39
+ export type DonutSegment = {
40
+ /**
41
+ * Stable identifier for the segment.
42
+ */
43
+ id: string;
44
+ /**
45
+ * Human-readable label.
46
+ */
47
+ label: string;
48
+ /**
49
+ * Raw value; the percent is computed from the total.
50
+ */
51
+ value: number;
52
+ /**
53
+ * Optional CSS color override; defaults to a neutral grey.
54
+ */
55
+ color?: string;
56
+ };
57
+ /** How `useDonutSeries` folds a raw series' long tail into a single segment. */
58
+ export type DonutSeriesOptions = {
59
+ /**
60
+ * Segments below this share of the total are grouped into the "other" segment.
61
+ * A fraction of the total, not a percentage: pass `0.04` for 4%. `0` groups
62
+ * nothing. The top segment is always kept, so `1` or above groups everything
63
+ * but the largest rather than collapsing the chart.
64
+ * @default 0
65
+ */
66
+ groupBelowShare?: number;
67
+ /**
68
+ * Max segments kept before the tail is grouped; `0` disables grouping. A soft
69
+ * cap: a tail of a single segment is kept as-is, so the result can hold
70
+ * `maxSegments + 1` segments.
71
+ * @default 7
72
+ */
73
+ maxSegments?: number;
74
+ /**
75
+ * Shape of the aggregate segment; `value` is always computed.
76
+ */
77
+ other: {
78
+ /** @default 'other' */
79
+ id?: DonutSegment['id'];
80
+ label: DonutSegment['label'];
81
+ /** Optional color override; defaults to the chart's neutral segment color. */
82
+ color?: DonutSegment['color'];
83
+ };
84
+ };
85
+ export type DonutSeriesResult = {
86
+ /**
87
+ * Kept segments, sorted by value descending, plus the appended `other` segment.
88
+ */
89
+ segments: DonutSegment[];
90
+ /**
91
+ * The raw segments folded into `other`; empty when nothing was grouped.
92
+ */
93
+ others: DonutSegment[];
94
+ };
95
+ /** A segment enriched with its computed share of the series total. */
96
+ export type DonutActiveSegment = DonutSegment & {
97
+ /**
98
+ * Exact share of the total, 0–100. Use it to compute; it is unrounded and can
99
+ * carry float artifacts (`7.000000000000001`), so prefer `percentLabel` to display.
100
+ */
101
+ percent: number;
102
+ /** Display-ready `percent`, rounded to at most 1 decimal and suffixed, e.g. `7%`. */
103
+ percentLabel: string;
104
+ };
105
+ export type DonutChartProps = {
106
+ /**
107
+ * Part-to-whole segments, rendered in order.
108
+ */
109
+ series: DonutSegment[];
110
+ /**
111
+ * Ring size. `md` is 168px, `sm` is 80px.
112
+ * @default 'md'
113
+ */
114
+ size?: DonutSize;
115
+ /**
116
+ * Accessible label describing what the chart represents, exposed to
117
+ * assistive tech via the SVG `role="img"`.
118
+ * @default 'Donut chart'
119
+ */
120
+ ariaLabel?: string;
121
+ /**
122
+ * Whether the chart is loading. When true, renders an animated placeholder
123
+ * wave instead of the real segments, regardless of `series`.
124
+ * @default false
125
+ */
126
+ loading?: boolean;
127
+ /** Controlled active segment id. Active is data-driven, not a state variant. */
128
+ activeId?: string | null;
129
+ /**
130
+ * Default active segment id for uncontrolled mode.
131
+ */
132
+ defaultActiveId?: string | null;
133
+ /**
134
+ * When `true`, each segment's `color` is nudged so its HSL lightness differs
135
+ * from the surface background by at least 20 units.
136
+ *
137
+ * Colors that already meet that minimum are left untouched. Useful when the
138
+ * segment palette includes colors that are close in lightness to the app background.
139
+ * @default false
140
+ */
141
+ enableColorContrast?: boolean;
142
+ /** Fired when the active segment changes (hover or external reset). */
143
+ onActiveIdChange?: (id: string | null) => void;
144
+ /**
145
+ * Renders the resting center content. Return a top-level `DonutChartCenter`
146
+ * wrapping `DonutChartTitle` and/or `DonutChartDescription`. Receives
147
+ * `{ activeSegment, series }`; `activeSegment` is enriched with its computed
148
+ * `percent`/`percentLabel` and is `null` when nothing is active.
149
+ */
150
+ renderCenter?: (params: {
151
+ activeSegment: DonutActiveSegment | null;
152
+ series: DonutSegment[];
153
+ }) => ReactNode;
154
+ /**
155
+ * Optional active center content on segment hover, wrapped in a top-level
156
+ * `DonutChartCenter`. When set, the chart crossfades between the resting
157
+ * slot (`renderCenter`, called with `activeSegment: null`) and this active slot.
158
+ */
159
+ renderCenterActive?: (params: {
160
+ activeSegment: DonutActiveSegment;
161
+ }) => ReactNode;
162
+ };
163
+ export type DonutChartCenterProps = ComponentPropsWithRef<'div'>;
164
+ export type DonutChartTitleProps = ComponentPropsWithRef<'div'> & {
165
+ /**
166
+ * The title's own typography scale.
167
+ * @default 'md'
168
+ */
169
+ size?: DonutTitleSize;
170
+ };
171
+ export type DonutChartDescriptionProps = ComponentPropsWithRef<'div'>;
172
+ //# sourceMappingURL=types.d.ts.map