@ledgerhq/lumen-ui-react 0.1.55 → 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 (268) hide show
  1. package/ai-rules/RULES.md +5 -4
  2. package/dist/lib/Components/core/Card/Card.d.ts.map +1 -1
  3. package/dist/lib/Components/core/Card/Card.js +29 -25
  4. package/dist/lib/Components/core/SearchInput/types.d.ts +2 -2
  5. package/dist/lib/Components/core/SearchInput/types.d.ts.map +1 -1
  6. package/dist/lib/Components/core/TextInput/types.d.ts +1 -2
  7. package/dist/lib/Components/core/TextInput/types.d.ts.map +1 -1
  8. package/dist/lib/Components/internal/BaseInput/BaseInput.d.ts +2 -16
  9. package/dist/lib/Components/internal/BaseInput/BaseInput.d.ts.map +1 -1
  10. package/dist/lib/Components/internal/BaseInput/BaseInput.js +141 -168
  11. package/dist/lib/Components/internal/BaseInput/BaseInputCounter.d.ts +8 -0
  12. package/dist/lib/Components/internal/BaseInput/BaseInputCounter.d.ts.map +1 -0
  13. package/dist/lib/Components/internal/BaseInput/BaseInputCounter.js +8 -0
  14. package/dist/lib/Components/internal/BaseInput/BaseInputHelperText.d.ts +8 -0
  15. package/dist/lib/Components/internal/BaseInput/BaseInputHelperText.d.ts.map +1 -0
  16. package/dist/lib/Components/internal/BaseInput/BaseInputHelperText.js +37 -0
  17. package/dist/lib/Components/internal/BaseInput/BaseInputLabel.d.ts +8 -0
  18. package/dist/lib/Components/internal/BaseInput/BaseInputLabel.d.ts.map +1 -0
  19. package/dist/lib/Components/internal/BaseInput/BaseInputLabel.js +48 -0
  20. package/dist/lib/Components/internal/BaseInput/BaseInputMultiline.d.ts +9 -0
  21. package/dist/lib/Components/internal/BaseInput/BaseInputMultiline.d.ts.map +1 -0
  22. package/dist/lib/Components/internal/BaseInput/BaseInputMultiline.js +88 -0
  23. package/dist/lib/Components/internal/BaseInput/BaseInputSingleLine.d.ts +8 -0
  24. package/dist/lib/Components/internal/BaseInput/BaseInputSingleLine.d.ts.map +1 -0
  25. package/dist/lib/Components/internal/BaseInput/BaseInputSingleLine.js +25 -0
  26. package/dist/lib/Components/internal/BaseInput/types.d.ts +72 -1
  27. package/dist/lib/Components/internal/BaseInput/types.d.ts.map +1 -1
  28. package/dist/lib/Components/internal/BaseInput/useAutosizeTextarea/index.d.ts +2 -0
  29. package/dist/lib/Components/internal/BaseInput/useAutosizeTextarea/index.d.ts.map +1 -0
  30. package/dist/lib/Components/internal/BaseInput/useAutosizeTextarea/useAutosizeTextarea.d.ts +20 -0
  31. package/dist/lib/Components/internal/BaseInput/useAutosizeTextarea/useAutosizeTextarea.d.ts.map +1 -0
  32. package/dist/lib/Components/internal/BaseInput/useAutosizeTextarea/useAutosizeTextarea.js +49 -0
  33. package/dist/lib/Components/internal/BaseInput/useBaseInputValue/useBaseInputValue.d.ts +26 -0
  34. package/dist/lib/Components/internal/BaseInput/useBaseInputValue/useBaseInputValue.d.ts.map +1 -0
  35. package/dist/lib/Components/internal/BaseInput/useBaseInputValue/useBaseInputValue.js +35 -0
  36. package/dist/lib/Components/visualization/Axis/XAxis/XAxis.d.ts +3 -0
  37. package/dist/lib/Components/visualization/Axis/XAxis/XAxis.d.ts.map +1 -0
  38. package/dist/lib/Components/visualization/Axis/XAxis/XAxis.js +85 -0
  39. package/dist/lib/Components/visualization/Axis/XAxis/index.d.ts +3 -0
  40. package/dist/lib/Components/visualization/Axis/XAxis/index.d.ts.map +1 -0
  41. package/dist/lib/Components/visualization/Axis/XAxis/types.d.ts +9 -0
  42. package/dist/lib/Components/visualization/Axis/XAxis/types.d.ts.map +1 -0
  43. package/dist/lib/Components/visualization/Axis/YAxis/YAxis.d.ts +3 -0
  44. package/dist/lib/Components/visualization/Axis/YAxis/YAxis.d.ts.map +1 -0
  45. package/dist/lib/Components/visualization/Axis/YAxis/YAxis.js +85 -0
  46. package/dist/lib/Components/visualization/Axis/YAxis/index.d.ts +3 -0
  47. package/dist/lib/Components/visualization/Axis/YAxis/index.d.ts.map +1 -0
  48. package/dist/lib/Components/visualization/Axis/YAxis/types.d.ts +14 -0
  49. package/dist/lib/Components/visualization/Axis/YAxis/types.d.ts.map +1 -0
  50. package/dist/lib/Components/visualization/Axis/index.d.ts +2 -0
  51. package/dist/lib/Components/visualization/Axis/index.d.ts.map +1 -0
  52. package/dist/lib/Components/visualization/Axis/types.d.ts +80 -0
  53. package/dist/lib/Components/visualization/Axis/types.d.ts.map +1 -0
  54. package/dist/lib/Components/visualization/CartesianChart/CartesianChart.d.ts +3 -0
  55. package/dist/lib/Components/visualization/CartesianChart/CartesianChart.d.ts.map +1 -0
  56. package/dist/lib/Components/visualization/CartesianChart/CartesianChart.js +107 -0
  57. package/dist/lib/Components/visualization/CartesianChart/ChartEmptyLabel/ChartEmptyLabel.d.ts +11 -0
  58. package/dist/lib/Components/visualization/CartesianChart/ChartEmptyLabel/ChartEmptyLabel.d.ts.map +1 -0
  59. package/dist/lib/Components/visualization/CartesianChart/ChartEmptyLabel/ChartEmptyLabel.js +21 -0
  60. package/dist/lib/Components/visualization/CartesianChart/RevealAnimation/RevealAnimationProvider.d.ts +3 -0
  61. package/dist/lib/Components/visualization/CartesianChart/RevealAnimation/RevealAnimationProvider.d.ts.map +1 -0
  62. package/dist/lib/Components/visualization/CartesianChart/RevealAnimation/RevealAnimationProvider.js +41 -0
  63. package/dist/lib/Components/visualization/CartesianChart/RevealAnimation/context.d.ts +15 -0
  64. package/dist/lib/Components/visualization/CartesianChart/RevealAnimation/context.d.ts.map +1 -0
  65. package/dist/lib/Components/visualization/CartesianChart/RevealAnimation/context.js +10 -0
  66. package/dist/lib/Components/visualization/CartesianChart/RevealAnimation/index.d.ts +3 -0
  67. package/dist/lib/Components/visualization/CartesianChart/RevealAnimation/index.d.ts.map +1 -0
  68. package/dist/lib/Components/visualization/CartesianChart/RevealAnimation/types.d.ts +57 -0
  69. package/dist/lib/Components/visualization/CartesianChart/RevealAnimation/types.d.ts.map +1 -0
  70. package/dist/lib/Components/visualization/CartesianChart/RevealAnimation/utils.d.ts +35 -0
  71. package/dist/lib/Components/visualization/CartesianChart/RevealAnimation/utils.d.ts.map +1 -0
  72. package/dist/lib/Components/visualization/CartesianChart/RevealAnimation/utils.js +69 -0
  73. package/dist/lib/Components/visualization/CartesianChart/context/cartesianChartContext.d.ts +8 -0
  74. package/dist/lib/Components/visualization/CartesianChart/context/cartesianChartContext.d.ts.map +1 -0
  75. package/dist/lib/Components/visualization/CartesianChart/context/cartesianChartContext.js +9 -0
  76. package/dist/lib/Components/visualization/CartesianChart/context/index.d.ts +3 -0
  77. package/dist/lib/Components/visualization/CartesianChart/context/index.d.ts.map +1 -0
  78. package/dist/lib/Components/visualization/CartesianChart/context/useBuildChartContext.d.ts +25 -0
  79. package/dist/lib/Components/visualization/CartesianChart/context/useBuildChartContext.d.ts.map +1 -0
  80. package/dist/lib/Components/visualization/CartesianChart/context/useBuildChartContext.js +61 -0
  81. package/dist/lib/Components/visualization/CartesianChart/hooks/useShimmerAnimation.d.ts +18 -0
  82. package/dist/lib/Components/visualization/CartesianChart/hooks/useShimmerAnimation.d.ts.map +1 -0
  83. package/dist/lib/Components/visualization/CartesianChart/hooks/useShimmerAnimation.js +15 -0
  84. package/dist/lib/Components/visualization/CartesianChart/index.d.ts +4 -0
  85. package/dist/lib/Components/visualization/CartesianChart/index.d.ts.map +1 -0
  86. package/dist/lib/Components/visualization/CartesianChart/types.d.ts +127 -0
  87. package/dist/lib/Components/visualization/CartesianChart/types.d.ts.map +1 -0
  88. package/dist/lib/Components/visualization/CartesianChart/utils.d.ts +5 -0
  89. package/dist/lib/Components/visualization/CartesianChart/utils.d.ts.map +1 -0
  90. package/dist/lib/Components/visualization/CartesianChart/utils.js +24 -0
  91. package/dist/lib/Components/visualization/DonutChart/DonutChart.d.ts +3 -0
  92. package/dist/lib/Components/visualization/DonutChart/DonutChart.d.ts.map +1 -0
  93. package/dist/lib/Components/visualization/DonutChart/DonutChart.js +90 -0
  94. package/dist/lib/Components/visualization/DonutChart/DonutChartAnimatedCenter.d.ts +10 -0
  95. package/dist/lib/Components/visualization/DonutChart/DonutChartAnimatedCenter.d.ts.map +1 -0
  96. package/dist/lib/Components/visualization/DonutChart/DonutChartAnimatedCenter.js +61 -0
  97. package/dist/lib/Components/visualization/DonutChart/DonutChartCenter.d.ts +9 -0
  98. package/dist/lib/Components/visualization/DonutChart/DonutChartCenter.d.ts.map +1 -0
  99. package/dist/lib/Components/visualization/DonutChart/DonutChartCenter.js +20 -0
  100. package/dist/lib/Components/visualization/DonutChart/DonutChartDescription.d.ts +3 -0
  101. package/dist/lib/Components/visualization/DonutChart/DonutChartDescription.d.ts.map +1 -0
  102. package/dist/lib/Components/visualization/DonutChart/DonutChartDescription.js +49 -0
  103. package/dist/lib/Components/visualization/DonutChart/DonutChartTitle.d.ts +3 -0
  104. package/dist/lib/Components/visualization/DonutChart/DonutChartTitle.d.ts.map +1 -0
  105. package/dist/lib/Components/visualization/DonutChart/DonutChartTitle.js +55 -0
  106. package/dist/lib/Components/visualization/DonutChart/DonutRing.d.ts +12 -0
  107. package/dist/lib/Components/visualization/DonutChart/DonutRing.d.ts.map +1 -0
  108. package/dist/lib/Components/visualization/DonutChart/DonutRing.js +110 -0
  109. package/dist/lib/Components/visualization/DonutChart/RevealAnimation.d.ts +7 -0
  110. package/dist/lib/Components/visualization/DonutChart/RevealAnimation.d.ts.map +1 -0
  111. package/dist/lib/Components/visualization/DonutChart/RevealAnimation.js +28 -0
  112. package/dist/lib/Components/visualization/DonutChart/donutSizeContext.d.ts +18 -0
  113. package/dist/lib/Components/visualization/DonutChart/donutSizeContext.d.ts.map +1 -0
  114. package/dist/lib/Components/visualization/DonutChart/donutSizeContext.js +6 -0
  115. package/dist/lib/Components/visualization/DonutChart/hooks/useContrastSafeSeries.d.ts +12 -0
  116. package/dist/lib/Components/visualization/DonutChart/hooks/useContrastSafeSeries.d.ts.map +1 -0
  117. package/dist/lib/Components/visualization/DonutChart/hooks/useContrastSafeSeries.js +13 -0
  118. package/dist/lib/Components/visualization/DonutChart/hooks/useDonutLoadingAnimation.d.ts +8 -0
  119. package/dist/lib/Components/visualization/DonutChart/hooks/useDonutLoadingAnimation.d.ts.map +1 -0
  120. package/dist/lib/Components/visualization/DonutChart/hooks/useDonutLoadingAnimation.js +16 -0
  121. package/dist/lib/Components/visualization/DonutChart/index.d.ts +7 -0
  122. package/dist/lib/Components/visualization/DonutChart/index.d.ts.map +1 -0
  123. package/dist/lib/Components/visualization/DonutChart/types.d.ts +172 -0
  124. package/dist/lib/Components/visualization/DonutChart/types.d.ts.map +1 -0
  125. package/dist/lib/Components/visualization/DonutChart/useDonutSeries/index.d.ts +3 -0
  126. package/dist/lib/Components/visualization/DonutChart/useDonutSeries/index.d.ts.map +1 -0
  127. package/dist/lib/Components/visualization/DonutChart/useDonutSeries/useDonutSeries.d.ts +10 -0
  128. package/dist/lib/Components/visualization/DonutChart/useDonutSeries/useDonutSeries.d.ts.map +1 -0
  129. package/dist/lib/Components/visualization/DonutChart/useDonutSeries/useDonutSeries.js +16 -0
  130. package/dist/lib/Components/visualization/DonutChart/useDonutSeries/utils.d.ts +9 -0
  131. package/dist/lib/Components/visualization/DonutChart/useDonutSeries/utils.d.ts.map +1 -0
  132. package/dist/lib/Components/visualization/DonutChart/useDonutSeries/utils.js +46 -0
  133. package/dist/lib/Components/visualization/DonutChart/utils.d.ts +37 -0
  134. package/dist/lib/Components/visualization/DonutChart/utils.d.ts.map +1 -0
  135. package/dist/lib/Components/visualization/DonutChart/utils.js +83 -0
  136. package/dist/lib/Components/visualization/Legend/Legend.d.ts +3 -0
  137. package/dist/lib/Components/visualization/Legend/Legend.d.ts.map +1 -0
  138. package/dist/lib/Components/visualization/Legend/Legend.js +23 -0
  139. package/dist/lib/Components/visualization/Legend/LegendItem.d.ts +7 -0
  140. package/dist/lib/Components/visualization/Legend/LegendItem.d.ts.map +1 -0
  141. package/dist/lib/Components/visualization/Legend/LegendItem.js +19 -0
  142. package/dist/lib/Components/visualization/Legend/index.d.ts +3 -0
  143. package/dist/lib/Components/visualization/Legend/index.d.ts.map +1 -0
  144. package/dist/lib/Components/visualization/Legend/types.d.ts +32 -0
  145. package/dist/lib/Components/visualization/Legend/types.d.ts.map +1 -0
  146. package/dist/lib/Components/visualization/Line/Line.d.ts +3 -0
  147. package/dist/lib/Components/visualization/Line/Line.d.ts.map +1 -0
  148. package/dist/lib/Components/visualization/Line/Line.js +82 -0
  149. package/dist/lib/Components/visualization/Line/index.d.ts +3 -0
  150. package/dist/lib/Components/visualization/Line/index.d.ts.map +1 -0
  151. package/dist/lib/Components/visualization/Line/types.d.ts +45 -0
  152. package/dist/lib/Components/visualization/Line/types.d.ts.map +1 -0
  153. package/dist/lib/Components/visualization/Line/utils.d.ts +28 -0
  154. package/dist/lib/Components/visualization/Line/utils.d.ts.map +1 -0
  155. package/dist/lib/Components/visualization/Line/utils.js +34 -0
  156. package/dist/lib/Components/visualization/LineChart/LineChart.d.ts +3 -0
  157. package/dist/lib/Components/visualization/LineChart/LineChart.d.ts.map +1 -0
  158. package/dist/lib/Components/visualization/LineChart/LineChart.js +181 -0
  159. package/dist/lib/Components/visualization/LineChart/LineChartEmptyState/LineChartEmptyState.d.ts +9 -0
  160. package/dist/lib/Components/visualization/LineChart/LineChartEmptyState/LineChartEmptyState.d.ts.map +1 -0
  161. package/dist/lib/Components/visualization/LineChart/LineChartEmptyState/LineChartEmptyState.js +51 -0
  162. package/dist/lib/Components/visualization/LineChart/LineChartEmptyState/index.d.ts +3 -0
  163. package/dist/lib/Components/visualization/LineChart/LineChartEmptyState/index.d.ts.map +1 -0
  164. package/dist/lib/Components/visualization/LineChart/LineChartEmptyState/types.d.ts +3 -0
  165. package/dist/lib/Components/visualization/LineChart/LineChartEmptyState/types.d.ts.map +1 -0
  166. package/dist/lib/Components/visualization/LineChart/LineChartEmptyState/utils.d.ts +8 -0
  167. package/dist/lib/Components/visualization/LineChart/LineChartEmptyState/utils.d.ts.map +1 -0
  168. package/dist/lib/Components/visualization/LineChart/LineChartEmptyState/utils.js +8 -0
  169. package/dist/lib/Components/visualization/LineChart/index.d.ts +3 -0
  170. package/dist/lib/Components/visualization/LineChart/index.d.ts.map +1 -0
  171. package/dist/lib/Components/visualization/LineChart/types.d.ts +82 -0
  172. package/dist/lib/Components/visualization/LineChart/types.d.ts.map +1 -0
  173. package/dist/lib/Components/visualization/LineChart/utils.d.ts +56 -0
  174. package/dist/lib/Components/visualization/LineChart/utils.d.ts.map +1 -0
  175. package/dist/lib/Components/visualization/LineChart/utils.js +57 -0
  176. package/dist/lib/Components/visualization/Point/Point.d.ts +4 -0
  177. package/dist/lib/Components/visualization/Point/Point.d.ts.map +1 -0
  178. package/dist/lib/Components/visualization/Point/Point.js +122 -0
  179. package/dist/lib/Components/visualization/Point/index.d.ts +3 -0
  180. package/dist/lib/Components/visualization/Point/index.d.ts.map +1 -0
  181. package/dist/lib/Components/visualization/Point/pointContext/MagneticPointsProvider.d.ts +7 -0
  182. package/dist/lib/Components/visualization/Point/pointContext/MagneticPointsProvider.d.ts.map +1 -0
  183. package/dist/lib/Components/visualization/Point/pointContext/MagneticPointsProvider.js +22 -0
  184. package/dist/lib/Components/visualization/Point/pointContext/index.d.ts +3 -0
  185. package/dist/lib/Components/visualization/Point/pointContext/index.d.ts.map +1 -0
  186. package/dist/lib/Components/visualization/Point/pointContext/magneticPointsContext.d.ts +30 -0
  187. package/dist/lib/Components/visualization/Point/pointContext/magneticPointsContext.d.ts.map +1 -0
  188. package/dist/lib/Components/visualization/Point/pointContext/magneticPointsContext.js +14 -0
  189. package/dist/lib/Components/visualization/Point/types.d.ts +110 -0
  190. package/dist/lib/Components/visualization/Point/types.d.ts.map +1 -0
  191. package/dist/lib/Components/visualization/Point/usePointGeometry.d.ts +33 -0
  192. package/dist/lib/Components/visualization/Point/usePointGeometry.d.ts.map +1 -0
  193. package/dist/lib/Components/visualization/Point/usePointGeometry.js +30 -0
  194. package/dist/lib/Components/visualization/Point/utils.d.ts +51 -0
  195. package/dist/lib/Components/visualization/Point/utils.d.ts.map +1 -0
  196. package/dist/lib/Components/visualization/Point/utils.js +54 -0
  197. package/dist/lib/Components/visualization/ReferenceLine/ReferenceLine.d.ts +3 -0
  198. package/dist/lib/Components/visualization/ReferenceLine/ReferenceLine.d.ts.map +1 -0
  199. package/dist/lib/Components/visualization/ReferenceLine/ReferenceLine.js +42 -0
  200. package/dist/lib/Components/visualization/ReferenceLine/index.d.ts +3 -0
  201. package/dist/lib/Components/visualization/ReferenceLine/index.d.ts.map +1 -0
  202. package/dist/lib/Components/visualization/ReferenceLine/types.d.ts +74 -0
  203. package/dist/lib/Components/visualization/ReferenceLine/types.d.ts.map +1 -0
  204. package/dist/lib/Components/visualization/ReferenceLine/useReferenceLineGeometry.d.ts +21 -0
  205. package/dist/lib/Components/visualization/ReferenceLine/useReferenceLineGeometry.d.ts.map +1 -0
  206. package/dist/lib/Components/visualization/ReferenceLine/useReferenceLineGeometry.js +49 -0
  207. package/dist/lib/Components/visualization/ReferenceLine/utils.d.ts +50 -0
  208. package/dist/lib/Components/visualization/ReferenceLine/utils.d.ts.map +1 -0
  209. package/dist/lib/Components/visualization/ReferenceLine/utils.js +66 -0
  210. package/dist/lib/Components/visualization/Scrubber/DefaultScrubberTooltip/ChartTooltipItem.d.ts +9 -0
  211. package/dist/lib/Components/visualization/Scrubber/DefaultScrubberTooltip/ChartTooltipItem.d.ts.map +1 -0
  212. package/dist/lib/Components/visualization/Scrubber/DefaultScrubberTooltip/ChartTooltipItem.js +50 -0
  213. package/dist/lib/Components/visualization/Scrubber/DefaultScrubberTooltip/DefaultScrubberTooltip.d.ts +12 -0
  214. package/dist/lib/Components/visualization/Scrubber/DefaultScrubberTooltip/DefaultScrubberTooltip.d.ts.map +1 -0
  215. package/dist/lib/Components/visualization/Scrubber/DefaultScrubberTooltip/DefaultScrubberTooltip.js +82 -0
  216. package/dist/lib/Components/visualization/Scrubber/DefaultScrubberTooltip/utils.d.ts +58 -0
  217. package/dist/lib/Components/visualization/Scrubber/DefaultScrubberTooltip/utils.d.ts.map +1 -0
  218. package/dist/lib/Components/visualization/Scrubber/DefaultScrubberTooltip/utils.js +80 -0
  219. package/dist/lib/Components/visualization/Scrubber/Scrubber.d.ts +29 -0
  220. package/dist/lib/Components/visualization/Scrubber/Scrubber.d.ts.map +1 -0
  221. package/dist/lib/Components/visualization/Scrubber/Scrubber.js +114 -0
  222. package/dist/lib/Components/visualization/Scrubber/ScrubberProvider.d.ts +3 -0
  223. package/dist/lib/Components/visualization/Scrubber/ScrubberProvider.d.ts.map +1 -0
  224. package/dist/lib/Components/visualization/Scrubber/ScrubberProvider.js +154 -0
  225. package/dist/lib/Components/visualization/Scrubber/context/index.d.ts +2 -0
  226. package/dist/lib/Components/visualization/Scrubber/context/index.d.ts.map +1 -0
  227. package/dist/lib/Components/visualization/Scrubber/context/scrubberContext.d.ts +8 -0
  228. package/dist/lib/Components/visualization/Scrubber/context/scrubberContext.d.ts.map +1 -0
  229. package/dist/lib/Components/visualization/Scrubber/context/scrubberContext.js +9 -0
  230. package/dist/lib/Components/visualization/Scrubber/index.d.ts +4 -0
  231. package/dist/lib/Components/visualization/Scrubber/index.d.ts.map +1 -0
  232. package/dist/lib/Components/visualization/Scrubber/types.d.ts +130 -0
  233. package/dist/lib/Components/visualization/Scrubber/types.d.ts.map +1 -0
  234. package/dist/lib/Components/visualization/Scrubber/useScrubberGeometry.d.ts +29 -0
  235. package/dist/lib/Components/visualization/Scrubber/useScrubberGeometry.d.ts.map +1 -0
  236. package/dist/lib/Components/visualization/Scrubber/useScrubberGeometry.js +37 -0
  237. package/dist/lib/Components/visualization/Scrubber/utils.d.ts +79 -0
  238. package/dist/lib/Components/visualization/Scrubber/utils.d.ts.map +1 -0
  239. package/dist/lib/Components/visualization/Scrubber/utils.js +104 -0
  240. package/dist/lib/Components/visualization/config.d.ts +162 -0
  241. package/dist/lib/Components/visualization/config.d.ts.map +1 -0
  242. package/dist/lib/Components/visualization/config.js +156 -0
  243. package/dist/lib/Components/visualization/index.d.ts +8 -0
  244. package/dist/lib/Components/visualization/index.d.ts.map +1 -0
  245. package/dist/lib/Components/visualization/index.js +27 -0
  246. package/dist/lib/Components/visualization/utils/domain/domain.d.ts +18 -0
  247. package/dist/lib/Components/visualization/utils/domain/domain.d.ts.map +1 -0
  248. package/dist/lib/Components/visualization/utils/domain/domain.js +35 -0
  249. package/dist/lib/Components/visualization/utils/index.d.ts +2 -0
  250. package/dist/lib/Components/visualization/utils/index.d.ts.map +1 -0
  251. package/dist/lib/Components/visualization/utils/numbers.d.ts +13 -0
  252. package/dist/lib/Components/visualization/utils/numbers.d.ts.map +1 -0
  253. package/dist/lib/Components/visualization/utils/numbers.js +5 -0
  254. package/dist/lib/Components/visualization/utils/scales/scales.d.ts +47 -0
  255. package/dist/lib/Components/visualization/utils/scales/scales.d.ts.map +1 -0
  256. package/dist/lib/Components/visualization/utils/scales/scales.js +32 -0
  257. package/dist/lib/Components/visualization/utils/ticks/ticks.d.ts +35 -0
  258. package/dist/lib/Components/visualization/utils/ticks/ticks.d.ts.map +1 -0
  259. package/dist/lib/Components/visualization/utils/ticks/ticks.js +23 -0
  260. package/dist/lib/Components/visualization/utils/types.d.ts +63 -0
  261. package/dist/lib/Components/visualization/utils/types.d.ts.map +1 -0
  262. package/dist/libs/design-core/dist/lib/colorContrast/colorContrast.js +15 -0
  263. package/dist/libs/design-core/dist/lib/colorContrast/hexToHsl.js +14 -0
  264. package/dist/libs/design-core/dist/lib/colorContrast/hslToHex.js +10 -0
  265. package/dist/libs/design-core/dist/lib/themes/js/primitives/primitive.colors.js +15 -0
  266. package/dist/libs/utils-shared/dist/index.js +115 -113
  267. package/dist/package.json +11 -3
  268. package/package.json +12 -4
@@ -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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/lib/Components/visualization/DonutChart/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export { useDonutSeries } from './useDonutSeries';
2
+ export { prepareDonutSeries } from './utils';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/lib/Components/visualization/DonutChart/useDonutSeries/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC"}
@@ -0,0 +1,10 @@
1
+ import { DonutSegment, DonutSeriesOptions, DonutSeriesResult } from '../types';
2
+ /**
3
+ * Prepares a raw series for the ring: sorts by value descending and folds the
4
+ * long tail into a single aggregate segment.
5
+ *
6
+ * The result is memoized on `segments` identity, so hoist or memoize the array
7
+ * you pass in if you rely on a stable `segments` reference downstream.
8
+ */
9
+ export declare const useDonutSeries: (segments: DonutSegment[], options: DonutSeriesOptions) => DonutSeriesResult;
10
+ //# sourceMappingURL=useDonutSeries.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useDonutSeries.d.ts","sourceRoot":"","sources":["../../../../../../src/lib/Components/visualization/DonutChart/useDonutSeries/useDonutSeries.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,YAAY,EACZ,kBAAkB,EAClB,iBAAiB,EAClB,MAAM,UAAU,CAAC;AAIlB;;;;;;GAMG;AACH,eAAO,MAAM,cAAc,GACzB,UAAU,YAAY,EAAE,EACxB,SAAS,kBAAkB,KAC1B,iBAeF,CAAC"}
@@ -0,0 +1,16 @@
1
+ import { useMemo as u } from "react";
2
+ import { prepareDonutSeries as i } from "./utils.js";
3
+ const l = (o, p) => {
4
+ const { groupBelowShare: e, maxSegments: r, other: s } = p, { id: t, label: m, color: n } = s;
5
+ return u(
6
+ () => i(o, {
7
+ groupBelowShare: e,
8
+ maxSegments: r,
9
+ other: { id: t, label: m, color: n }
10
+ }),
11
+ [o, e, r, t, m, n]
12
+ );
13
+ };
14
+ export {
15
+ l as useDonutSeries
16
+ };
@@ -0,0 +1,9 @@
1
+ import { DonutSegment, DonutSeriesOptions, DonutSeriesResult } from '../types';
2
+ /**
3
+ * Sorts a raw series by value descending and folds its long tail into a single
4
+ * aggregate segment. Pure counterpart of `useDonutSeries`. The aggregate keeps
5
+ * its color unset unless `other.color` is given, so the ring paints it with the
6
+ * neutral default like any colorless segment.
7
+ */
8
+ export declare const prepareDonutSeries: (segments: DonutSegment[], options: DonutSeriesOptions) => DonutSeriesResult;
9
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../../../src/lib/Components/visualization/DonutChart/useDonutSeries/utils.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,YAAY,EACZ,kBAAkB,EAClB,iBAAiB,EAClB,MAAM,UAAU,CAAC;AA4ClB;;;;;GAKG;AACH,eAAO,MAAM,kBAAkB,GAC7B,UAAU,YAAY,EAAE,EACxB,SAAS,kBAAkB,KAC1B,iBAsCF,CAAC"}
@@ -0,0 +1,46 @@
1
+ import { chartConfig as g } from "../../config.js";
2
+ const {
3
+ maxSegments: d,
4
+ otherId: x,
5
+ minGroupedSegments: S,
6
+ minKeptSegments: f
7
+ } = g.donut.series, p = (t) => t.reduce((n, s) => n + Math.max(s.value, 0), 0), v = (t, n, s) => {
8
+ const a = p(t), r = n > 0 && a > 0 ? n * a : 0, e = r > 0 ? t.findIndex((o) => Math.max(o.value, 0) < r) : -1;
9
+ return Math.max(
10
+ f,
11
+ Math.min(
12
+ s,
13
+ e === -1 ? t.length : e
14
+ )
15
+ );
16
+ }, I = (t, n) => {
17
+ const {
18
+ groupBelowShare: s = 0,
19
+ maxSegments: a = d,
20
+ other: r
21
+ } = n, e = [...t].sort((m, c) => c.value - m.value);
22
+ if (a <= 0)
23
+ return { segments: e, others: [] };
24
+ const o = v(e, s, a), l = e.slice(o);
25
+ if (l.length < S)
26
+ return { segments: e, others: [] };
27
+ const { id: u = x, label: i, color: h } = r;
28
+ return {
29
+ segments: [
30
+ ...e.slice(0, o),
31
+ {
32
+ id: u,
33
+ label: i,
34
+ color: h,
35
+ value: l.reduce(
36
+ (m, c) => m + Math.max(c.value, 0),
37
+ 0
38
+ )
39
+ }
40
+ ],
41
+ others: l
42
+ };
43
+ };
44
+ export {
45
+ I as prepareDonutSeries
46
+ };
@@ -0,0 +1,37 @@
1
+ import { DonutGeometry, DonutPlaceholderSegment, DonutRingSegment, DonutSegment, DonutSize } from './types';
2
+ export declare const DONUT_GEOMETRY: Readonly<Record<DonutSize, DonutGeometry>>;
3
+ export declare const resolveSegmentColor: (segment: DonutSegment) => string;
4
+ export declare const getDonutViewBox: (geometry: DonutGeometry) => string;
5
+ export declare const getCenterContentInset: (size: DonutSize) => number;
6
+ /** Max width (px) for center content, inner diameter minus inset on both sides. */
7
+ export declare const getCenterMaxWidth: (size: DonutSize) => number;
8
+ /** Round a percent to at most 1 decimal. */
9
+ export declare const roundPercent: (percent: number) => number;
10
+ /**
11
+ * Display-ready percent, e.g. `7%`, `7.3%` or `<0.1%`. Rounding here keeps
12
+ * float artifacts — `7 / 100 * 100` is `7.000000000000001` — out of labels
13
+ * while leaving the exact `percent` intact for consumers who compute with it.
14
+ */
15
+ export declare const formatPercentLabel: (percent: number) => string;
16
+ /** Percent (0–100) of the total per segment. Negatives count as 0; a zero total yields all zeros. */
17
+ export declare const getSegmentPercents: (series: DonutSegment[]) => number[];
18
+ /**
19
+ * Drawing weights summing to 1, none below `minShare`, so a value too small to
20
+ * see still gets a visible sliver. The room comes out of the segments above the
21
+ * minimum, which shrinks them and can push another under it — hence the loop.
22
+ */
23
+ export declare const applyMinSegmentShare: (values: number[], minShare: number) => number[];
24
+ /**
25
+ * One ring segment per drawable series entry, in series order, clockwise from
26
+ * 12 o'clock. Zero and negative segments are dropped so they don't emit
27
+ * degenerate paths; percents are still computed against the full series total,
28
+ * and what survives is drawn at `minSegmentArc` or wider.
29
+ */
30
+ export declare const buildRingSegments: (series: DonutSegment[], geometry: DonutGeometry) => DonutRingSegment[];
31
+ /**
32
+ * Fixed placeholder segments shared by the empty ring and the loading wave: a
33
+ * full ring (values sum to 100) of unequal segments separated only by the
34
+ * same small `padAngle` gaps as real segments — no missing segment.
35
+ */
36
+ export declare const buildPlaceholderSegments: (geometry: DonutGeometry) => DonutPlaceholderSegment[];
37
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../../src/lib/Components/visualization/DonutChart/utils.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,aAAa,EACb,uBAAuB,EACvB,gBAAgB,EAChB,YAAY,EACZ,SAAS,EACV,MAAM,SAAS,CAAC;AAEjB,eAAO,MAAM,cAAc,EAAE,QAAQ,CAAC,MAAM,CAAC,SAAS,EAAE,aAAa,CAAC,CAC9C,CAAC;AAEzB,eAAO,MAAM,mBAAmB,GAAI,SAAS,YAAY,KAAG,MACJ,CAAC;AAEzD,eAAO,MAAM,eAAe,GAAI,UAAU,aAAa,KAAG,MAIzD,CAAC;AAEF,eAAO,MAAM,qBAAqB,GAAI,MAAM,SAAS,KAAG,MACZ,CAAC;AAE7C,mFAAmF;AACnF,eAAO,MAAM,iBAAiB,GAAI,MAAM,SAAS,KAAG,MACoB,CAAC;AAEzE,4CAA4C;AAC5C,eAAO,MAAM,YAAY,GAAI,SAAS,MAAM,KAAG,MAChB,CAAC;AAEhC;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,GAAI,SAAS,MAAM,KAAG,MAMpD,CAAC;AAEF,qGAAqG;AACrG,eAAO,MAAM,kBAAkB,GAAI,QAAQ,YAAY,EAAE,KAAG,MAAM,EAMjE,CAAC;AAeF;;;;GAIG;AACH,eAAO,MAAM,oBAAoB,GAC/B,QAAQ,MAAM,EAAE,EAChB,UAAU,MAAM,KACf,MAAM,EAuBR,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,iBAAiB,GAC5B,QAAQ,YAAY,EAAE,EACtB,UAAU,aAAa,KACtB,gBAAgB,EAkDlB,CAAC;AAiBF;;;;GAIG;AACH,eAAO,MAAM,wBAAwB,GACnC,UAAU,aAAa,KACtB,uBAAuB,EA6BzB,CAAC"}