react-native-chart-kit 7.0.0-next.0 → 7.0.0-next.2

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 (428) hide show
  1. package/README.md +17 -0
  2. package/dist/v2/core/data/index.d.ts +3 -0
  3. package/dist/v2/core/data/index.d.ts.map +1 -0
  4. package/dist/v2/core/data/index.js +1 -0
  5. package/dist/v2/core/data/normalize.d.ts +8 -0
  6. package/dist/v2/core/data/normalize.d.ts.map +1 -0
  7. package/dist/v2/core/data/normalize.js +229 -0
  8. package/dist/v2/core/data/normalizeValues.d.ts +16 -0
  9. package/dist/v2/core/data/normalizeValues.d.ts.map +1 -0
  10. package/dist/v2/core/data/normalizeValues.js +96 -0
  11. package/dist/v2/core/data/types.d.ts +161 -0
  12. package/dist/v2/core/data/types.d.ts.map +1 -0
  13. package/dist/v2/core/data/types.js +1 -0
  14. package/dist/v2/core/geometry/areaPath.d.ts +3 -0
  15. package/dist/v2/core/geometry/areaPath.d.ts.map +1 -0
  16. package/dist/v2/core/geometry/areaPath.js +36 -0
  17. package/dist/v2/core/geometry/barRects.d.ts +44 -0
  18. package/dist/v2/core/geometry/barRects.d.ts.map +1 -0
  19. package/dist/v2/core/geometry/barRects.js +201 -0
  20. package/dist/v2/core/geometry/contributionHeatmap.d.ts +49 -0
  21. package/dist/v2/core/geometry/contributionHeatmap.d.ts.map +1 -0
  22. package/dist/v2/core/geometry/contributionHeatmap.js +107 -0
  23. package/dist/v2/core/geometry/horizontalBarRects.d.ts +27 -0
  24. package/dist/v2/core/geometry/horizontalBarRects.d.ts.map +1 -0
  25. package/dist/v2/core/geometry/horizontalBarRects.js +202 -0
  26. package/dist/v2/core/geometry/index.d.ts +12 -0
  27. package/dist/v2/core/geometry/index.d.ts.map +1 -0
  28. package/dist/v2/core/geometry/index.js +11 -0
  29. package/dist/v2/core/geometry/lineDecimation.d.ts +8 -0
  30. package/dist/v2/core/geometry/lineDecimation.d.ts.map +1 -0
  31. package/dist/v2/core/geometry/lineDecimation.js +110 -0
  32. package/dist/v2/core/geometry/linePath.d.ts +5 -0
  33. package/dist/v2/core/geometry/linePath.d.ts.map +1 -0
  34. package/dist/v2/core/geometry/linePath.js +98 -0
  35. package/dist/v2/core/geometry/lineSeries.d.ts +29 -0
  36. package/dist/v2/core/geometry/lineSeries.d.ts.map +1 -0
  37. package/dist/v2/core/geometry/lineSeries.js +51 -0
  38. package/dist/v2/core/geometry/path.d.ts +6 -0
  39. package/dist/v2/core/geometry/path.d.ts.map +1 -0
  40. package/dist/v2/core/geometry/path.js +24 -0
  41. package/dist/v2/core/geometry/pieArcs.d.ts +29 -0
  42. package/dist/v2/core/geometry/pieArcs.d.ts.map +1 -0
  43. package/dist/v2/core/geometry/pieArcs.js +142 -0
  44. package/dist/v2/core/geometry/progressRings.d.ts +30 -0
  45. package/dist/v2/core/geometry/progressRings.d.ts.map +1 -0
  46. package/dist/v2/core/geometry/progressRings.js +104 -0
  47. package/dist/v2/core/geometry/types.d.ts +32 -0
  48. package/dist/v2/core/geometry/types.d.ts.map +1 -0
  49. package/dist/v2/core/geometry/types.js +1 -0
  50. package/dist/v2/core/index.d.ts +6 -0
  51. package/dist/v2/core/index.d.ts.map +1 -0
  52. package/dist/v2/core/index.js +6 -0
  53. package/dist/v2/core/interaction/index.d.ts +5 -0
  54. package/dist/v2/core/interaction/index.d.ts.map +1 -0
  55. package/dist/v2/core/interaction/index.js +2 -0
  56. package/dist/v2/core/interaction/viewport.d.ts +71 -0
  57. package/dist/v2/core/interaction/viewport.d.ts.map +1 -0
  58. package/dist/v2/core/interaction/viewport.js +216 -0
  59. package/dist/v2/core/interaction/viewportTransform.d.ts +17 -0
  60. package/dist/v2/core/interaction/viewportTransform.d.ts.map +1 -0
  61. package/dist/v2/core/interaction/viewportTransform.js +70 -0
  62. package/dist/v2/core/layout/autoPadding.d.ts +3 -0
  63. package/dist/v2/core/layout/autoPadding.d.ts.map +1 -0
  64. package/dist/v2/core/layout/autoPadding.js +33 -0
  65. package/dist/v2/core/layout/chartBox.d.ts +5 -0
  66. package/dist/v2/core/layout/chartBox.d.ts.map +1 -0
  67. package/dist/v2/core/layout/chartBox.js +22 -0
  68. package/dist/v2/core/layout/debugLayout.d.ts +3 -0
  69. package/dist/v2/core/layout/debugLayout.d.ts.map +1 -0
  70. package/dist/v2/core/layout/debugLayout.js +20 -0
  71. package/dist/v2/core/layout/index.d.ts +8 -0
  72. package/dist/v2/core/layout/index.d.ts.map +1 -0
  73. package/dist/v2/core/layout/index.js +6 -0
  74. package/dist/v2/core/layout/labelCollision.d.ts +3 -0
  75. package/dist/v2/core/layout/labelCollision.d.ts.map +1 -0
  76. package/dist/v2/core/layout/labelCollision.js +90 -0
  77. package/dist/v2/core/layout/legendLayout.d.ts +3 -0
  78. package/dist/v2/core/layout/legendLayout.d.ts.map +1 -0
  79. package/dist/v2/core/layout/legendLayout.js +39 -0
  80. package/dist/v2/core/layout/tooltipPlacement.d.ts +3 -0
  81. package/dist/v2/core/layout/tooltipPlacement.d.ts.map +1 -0
  82. package/dist/v2/core/layout/tooltipPlacement.js +76 -0
  83. package/dist/v2/core/layout/types.d.ts +114 -0
  84. package/dist/v2/core/layout/types.d.ts.map +1 -0
  85. package/dist/v2/core/layout/types.js +1 -0
  86. package/dist/v2/core/scales/band.d.ts +15 -0
  87. package/dist/v2/core/scales/band.d.ts.map +1 -0
  88. package/dist/v2/core/scales/band.js +34 -0
  89. package/dist/v2/core/scales/domain.d.ts +6 -0
  90. package/dist/v2/core/scales/domain.d.ts.map +1 -0
  91. package/dist/v2/core/scales/domain.js +109 -0
  92. package/dist/v2/core/scales/index.d.ts +7 -0
  93. package/dist/v2/core/scales/index.d.ts.map +1 -0
  94. package/dist/v2/core/scales/index.js +5 -0
  95. package/dist/v2/core/scales/linear.d.ts +8 -0
  96. package/dist/v2/core/scales/linear.d.ts.map +1 -0
  97. package/dist/v2/core/scales/linear.js +22 -0
  98. package/dist/v2/core/scales/ticks.d.ts +4 -0
  99. package/dist/v2/core/scales/ticks.d.ts.map +1 -0
  100. package/dist/v2/core/scales/ticks.js +111 -0
  101. package/dist/v2/core/scales/time.d.ts +8 -0
  102. package/dist/v2/core/scales/time.d.ts.map +1 -0
  103. package/dist/v2/core/scales/time.js +23 -0
  104. package/dist/v2/core/scales/types.d.ts +46 -0
  105. package/dist/v2/core/scales/types.d.ts.map +1 -0
  106. package/dist/v2/core/scales/types.js +1 -0
  107. package/dist/v2/index.d.ts +1 -0
  108. package/dist/v2/index.js +1 -0
  109. package/dist/v2/react-native/charts/bar/BarChart.d.ts +6 -0
  110. package/dist/v2/react-native/charts/bar/BarChart.d.ts.map +1 -0
  111. package/dist/v2/react-native/charts/bar/BarChart.js +198 -0
  112. package/dist/v2/react-native/charts/bar/BarChartSurface.d.ts +36 -0
  113. package/dist/v2/react-native/charts/bar/BarChartSurface.d.ts.map +1 -0
  114. package/dist/v2/react-native/charts/bar/BarChartSurface.js +126 -0
  115. package/dist/v2/react-native/charts/bar/StackedBarChart.d.ts +4 -0
  116. package/dist/v2/react-native/charts/bar/StackedBarChart.d.ts.map +1 -0
  117. package/dist/v2/react-native/charts/bar/StackedBarChart.js +9 -0
  118. package/dist/v2/react-native/charts/bar/accessibility.d.ts +31 -0
  119. package/dist/v2/react-native/charts/bar/accessibility.d.ts.map +1 -0
  120. package/dist/v2/react-native/charts/bar/accessibility.js +87 -0
  121. package/dist/v2/react-native/charts/bar/interaction.d.ts +18 -0
  122. package/dist/v2/react-native/charts/bar/interaction.d.ts.map +1 -0
  123. package/dist/v2/react-native/charts/bar/interaction.js +62 -0
  124. package/dist/v2/react-native/charts/bar/model.d.ts +3 -0
  125. package/dist/v2/react-native/charts/bar/model.d.ts.map +1 -0
  126. package/dist/v2/react-native/charts/bar/model.js +326 -0
  127. package/dist/v2/react-native/charts/bar/modelUtils.d.ts +27 -0
  128. package/dist/v2/react-native/charts/bar/modelUtils.d.ts.map +1 -0
  129. package/dist/v2/react-native/charts/bar/modelUtils.js +58 -0
  130. package/dist/v2/react-native/charts/bar/options.d.ts +7 -0
  131. package/dist/v2/react-native/charts/bar/options.d.ts.map +1 -0
  132. package/dist/v2/react-native/charts/bar/options.js +49 -0
  133. package/dist/v2/react-native/charts/bar/rendererSafety.d.ts +12 -0
  134. package/dist/v2/react-native/charts/bar/rendererSafety.d.ts.map +1 -0
  135. package/dist/v2/react-native/charts/bar/rendererSafety.js +31 -0
  136. package/dist/v2/react-native/charts/bar/selectionAnimation.d.ts +42 -0
  137. package/dist/v2/react-native/charts/bar/selectionAnimation.d.ts.map +1 -0
  138. package/dist/v2/react-native/charts/bar/selectionAnimation.js +158 -0
  139. package/dist/v2/react-native/charts/bar/stackedCompat.d.ts +55 -0
  140. package/dist/v2/react-native/charts/bar/stackedCompat.d.ts.map +1 -0
  141. package/dist/v2/react-native/charts/bar/stackedCompat.js +105 -0
  142. package/dist/v2/react-native/charts/bar/tooltip.d.ts +11 -0
  143. package/dist/v2/react-native/charts/bar/tooltip.d.ts.map +1 -0
  144. package/dist/v2/react-native/charts/bar/tooltip.js +15 -0
  145. package/dist/v2/react-native/charts/bar/tooltipModel.d.ts +33 -0
  146. package/dist/v2/react-native/charts/bar/tooltipModel.d.ts.map +1 -0
  147. package/dist/v2/react-native/charts/bar/tooltipModel.js +40 -0
  148. package/dist/v2/react-native/charts/bar/tooltipPlacement.d.ts +9 -0
  149. package/dist/v2/react-native/charts/bar/tooltipPlacement.d.ts.map +1 -0
  150. package/dist/v2/react-native/charts/bar/tooltipPlacement.js +9 -0
  151. package/dist/v2/react-native/charts/bar/types.d.ts +211 -0
  152. package/dist/v2/react-native/charts/bar/types.d.ts.map +1 -0
  153. package/dist/v2/react-native/charts/bar/types.js +1 -0
  154. package/dist/v2/react-native/charts/bar/useAnimatedTooltipModel.d.ts +10 -0
  155. package/dist/v2/react-native/charts/bar/useAnimatedTooltipModel.d.ts.map +1 -0
  156. package/dist/v2/react-native/charts/bar/useAnimatedTooltipModel.js +87 -0
  157. package/dist/v2/react-native/charts/bar/viewport.d.ts +20 -0
  158. package/dist/v2/react-native/charts/bar/viewport.d.ts.map +1 -0
  159. package/dist/v2/react-native/charts/bar/viewport.js +47 -0
  160. package/dist/v2/react-native/charts/contribution/ContributionGraph.d.ts +13 -0
  161. package/dist/v2/react-native/charts/contribution/ContributionGraph.d.ts.map +1 -0
  162. package/dist/v2/react-native/charts/contribution/ContributionGraph.js +65 -0
  163. package/dist/v2/react-native/charts/contribution/accessibility.d.ts +25 -0
  164. package/dist/v2/react-native/charts/contribution/accessibility.d.ts.map +1 -0
  165. package/dist/v2/react-native/charts/contribution/accessibility.js +50 -0
  166. package/dist/v2/react-native/charts/contribution/model.d.ts +17 -0
  167. package/dist/v2/react-native/charts/contribution/model.d.ts.map +1 -0
  168. package/dist/v2/react-native/charts/contribution/model.js +102 -0
  169. package/dist/v2/react-native/charts/contribution/types.d.ts +50 -0
  170. package/dist/v2/react-native/charts/contribution/types.d.ts.map +1 -0
  171. package/dist/v2/react-native/charts/contribution/types.js +1 -0
  172. package/dist/v2/react-native/charts/line/AreaChart.d.ts +3 -0
  173. package/dist/v2/react-native/charts/line/AreaChart.d.ts.map +1 -0
  174. package/dist/v2/react-native/charts/line/AreaChart.js +3 -0
  175. package/dist/v2/react-native/charts/line/ChartSurface.d.ts +16 -0
  176. package/dist/v2/react-native/charts/line/ChartSurface.d.ts.map +1 -0
  177. package/dist/v2/react-native/charts/line/ChartSurface.js +151 -0
  178. package/dist/v2/react-native/charts/line/LineChart.d.ts +6 -0
  179. package/dist/v2/react-native/charts/line/LineChart.d.ts.map +1 -0
  180. package/dist/v2/react-native/charts/line/LineChart.js +294 -0
  181. package/dist/v2/react-native/charts/line/StickyYAxis.d.ts +15 -0
  182. package/dist/v2/react-native/charts/line/StickyYAxis.d.ts.map +1 -0
  183. package/dist/v2/react-native/charts/line/StickyYAxis.js +26 -0
  184. package/dist/v2/react-native/charts/line/accessibility.d.ts +34 -0
  185. package/dist/v2/react-native/charts/line/accessibility.d.ts.map +1 -0
  186. package/dist/v2/react-native/charts/line/accessibility.js +103 -0
  187. package/dist/v2/react-native/charts/line/axisLabels.d.ts +37 -0
  188. package/dist/v2/react-native/charts/line/axisLabels.d.ts.map +1 -0
  189. package/dist/v2/react-native/charts/line/axisLabels.js +55 -0
  190. package/dist/v2/react-native/charts/line/debugLayout.d.ts +26 -0
  191. package/dist/v2/react-native/charts/line/debugLayout.d.ts.map +1 -0
  192. package/dist/v2/react-native/charts/line/debugLayout.js +77 -0
  193. package/dist/v2/react-native/charts/line/debugOverlay.d.ts +9 -0
  194. package/dist/v2/react-native/charts/line/debugOverlay.d.ts.map +1 -0
  195. package/dist/v2/react-native/charts/line/debugOverlay.js +30 -0
  196. package/dist/v2/react-native/charts/line/defaultTooltip.d.ts +3 -0
  197. package/dist/v2/react-native/charts/line/defaultTooltip.d.ts.map +1 -0
  198. package/dist/v2/react-native/charts/line/defaultTooltip.js +17 -0
  199. package/dist/v2/react-native/charts/line/interaction.d.ts +82 -0
  200. package/dist/v2/react-native/charts/line/interaction.d.ts.map +1 -0
  201. package/dist/v2/react-native/charts/line/interaction.js +94 -0
  202. package/dist/v2/react-native/charts/line/legend.d.ts +35 -0
  203. package/dist/v2/react-native/charts/line/legend.d.ts.map +1 -0
  204. package/dist/v2/react-native/charts/line/legend.js +95 -0
  205. package/dist/v2/react-native/charts/line/markers.d.ts +11 -0
  206. package/dist/v2/react-native/charts/line/markers.d.ts.map +1 -0
  207. package/dist/v2/react-native/charts/line/markers.js +52 -0
  208. package/dist/v2/react-native/charts/line/options.d.ts +172 -0
  209. package/dist/v2/react-native/charts/line/options.d.ts.map +1 -0
  210. package/dist/v2/react-native/charts/line/options.js +168 -0
  211. package/dist/v2/react-native/charts/line/outsidePressSurfaces.d.ts +15 -0
  212. package/dist/v2/react-native/charts/line/outsidePressSurfaces.d.ts.map +1 -0
  213. package/dist/v2/react-native/charts/line/outsidePressSurfaces.js +37 -0
  214. package/dist/v2/react-native/charts/line/overviewProps.d.ts +45 -0
  215. package/dist/v2/react-native/charts/line/overviewProps.d.ts.map +1 -0
  216. package/dist/v2/react-native/charts/line/overviewProps.js +4 -0
  217. package/dist/v2/react-native/charts/line/rangeSelector.d.ts +19 -0
  218. package/dist/v2/react-native/charts/line/rangeSelector.d.ts.map +1 -0
  219. package/dist/v2/react-native/charts/line/rangeSelector.js +176 -0
  220. package/dist/v2/react-native/charts/line/rangeSelectorConfig.d.ts +38 -0
  221. package/dist/v2/react-native/charts/line/rangeSelectorConfig.d.ts.map +1 -0
  222. package/dist/v2/react-native/charts/line/rangeSelectorConfig.js +41 -0
  223. package/dist/v2/react-native/charts/line/referenceLabelPlacement.d.ts +21 -0
  224. package/dist/v2/react-native/charts/line/referenceLabelPlacement.d.ts.map +1 -0
  225. package/dist/v2/react-native/charts/line/referenceLabelPlacement.js +113 -0
  226. package/dist/v2/react-native/charts/line/references.d.ts +62 -0
  227. package/dist/v2/react-native/charts/line/references.d.ts.map +1 -0
  228. package/dist/v2/react-native/charts/line/references.js +156 -0
  229. package/dist/v2/react-native/charts/line/renderer.d.ts +4 -0
  230. package/dist/v2/react-native/charts/line/renderer.d.ts.map +1 -0
  231. package/dist/v2/react-native/charts/line/renderer.js +23 -0
  232. package/dist/v2/react-native/charts/line/responders.d.ts +13 -0
  233. package/dist/v2/react-native/charts/line/responders.d.ts.map +1 -0
  234. package/dist/v2/react-native/charts/line/responders.js +59 -0
  235. package/dist/v2/react-native/charts/line/selection.d.ts +31 -0
  236. package/dist/v2/react-native/charts/line/selection.d.ts.map +1 -0
  237. package/dist/v2/react-native/charts/line/selection.js +26 -0
  238. package/dist/v2/react-native/charts/line/seriesInput.d.ts +4 -0
  239. package/dist/v2/react-native/charts/line/seriesInput.d.ts.map +1 -0
  240. package/dist/v2/react-native/charts/line/seriesInput.js +13 -0
  241. package/dist/v2/react-native/charts/line/seriesStyles.d.ts +20 -0
  242. package/dist/v2/react-native/charts/line/seriesStyles.d.ts.map +1 -0
  243. package/dist/v2/react-native/charts/line/seriesStyles.js +33 -0
  244. package/dist/v2/react-native/charts/line/stickyYAxisLayout.d.ts +6 -0
  245. package/dist/v2/react-native/charts/line/stickyYAxisLayout.d.ts.map +1 -0
  246. package/dist/v2/react-native/charts/line/stickyYAxisLayout.js +2 -0
  247. package/dist/v2/react-native/charts/line/text.d.ts +7 -0
  248. package/dist/v2/react-native/charts/line/text.d.ts.map +1 -0
  249. package/dist/v2/react-native/charts/line/text.js +7 -0
  250. package/dist/v2/react-native/charts/line/thresholdRendering.d.ts +28 -0
  251. package/dist/v2/react-native/charts/line/thresholdRendering.d.ts.map +1 -0
  252. package/dist/v2/react-native/charts/line/thresholdRendering.js +145 -0
  253. package/dist/v2/react-native/charts/line/tooltip.d.ts +70 -0
  254. package/dist/v2/react-native/charts/line/tooltip.d.ts.map +1 -0
  255. package/dist/v2/react-native/charts/line/tooltip.js +87 -0
  256. package/dist/v2/react-native/charts/line/types.d.ts +371 -0
  257. package/dist/v2/react-native/charts/line/types.d.ts.map +1 -0
  258. package/dist/v2/react-native/charts/line/types.js +1 -0
  259. package/dist/v2/react-native/charts/line/useAnimatedTooltipModel.d.ts +13 -0
  260. package/dist/v2/react-native/charts/line/useAnimatedTooltipModel.d.ts.map +1 -0
  261. package/dist/v2/react-native/charts/line/useAnimatedTooltipModel.js +84 -0
  262. package/dist/v2/react-native/charts/line/useAnimatedYAxisLabels.d.ts +5 -0
  263. package/dist/v2/react-native/charts/line/useAnimatedYAxisLabels.d.ts.map +1 -0
  264. package/dist/v2/react-native/charts/line/useAnimatedYAxisLabels.js +141 -0
  265. package/dist/v2/react-native/charts/line/useChartModel.d.ts +103 -0
  266. package/dist/v2/react-native/charts/line/useChartModel.d.ts.map +1 -0
  267. package/dist/v2/react-native/charts/line/useChartModel.js +367 -0
  268. package/dist/v2/react-native/charts/line/useDebugLayout.d.ts +16 -0
  269. package/dist/v2/react-native/charts/line/useDebugLayout.d.ts.map +1 -0
  270. package/dist/v2/react-native/charts/line/useDebugLayout.js +35 -0
  271. package/dist/v2/react-native/charts/line/utils.d.ts +10 -0
  272. package/dist/v2/react-native/charts/line/utils.d.ts.map +1 -0
  273. package/dist/v2/react-native/charts/line/utils.js +40 -0
  274. package/dist/v2/react-native/charts/line/viewportInteraction.d.ts +3 -0
  275. package/dist/v2/react-native/charts/line/viewportInteraction.d.ts.map +1 -0
  276. package/dist/v2/react-native/charts/line/viewportInteraction.js +1 -0
  277. package/dist/v2/react-native/charts/line/viewportInteractionConfig.d.ts +3 -0
  278. package/dist/v2/react-native/charts/line/viewportInteractionConfig.d.ts.map +1 -0
  279. package/dist/v2/react-native/charts/line/viewportInteractionConfig.js +1 -0
  280. package/dist/v2/react-native/charts/line/viewportPinchZoom.d.ts +2 -0
  281. package/dist/v2/react-native/charts/line/viewportPinchZoom.d.ts.map +1 -0
  282. package/dist/v2/react-native/charts/line/viewportPinchZoom.js +1 -0
  283. package/dist/v2/react-native/charts/line/xLabelCandidates.d.ts +13 -0
  284. package/dist/v2/react-native/charts/line/xLabelCandidates.d.ts.map +1 -0
  285. package/dist/v2/react-native/charts/line/xLabelCandidates.js +23 -0
  286. package/dist/v2/react-native/charts/line/xLabels.d.ts +39 -0
  287. package/dist/v2/react-native/charts/line/xLabels.d.ts.map +1 -0
  288. package/dist/v2/react-native/charts/line/xLabels.js +289 -0
  289. package/dist/v2/react-native/charts/line/xScale.d.ts +6 -0
  290. package/dist/v2/react-native/charts/line/xScale.d.ts.map +1 -0
  291. package/dist/v2/react-native/charts/line/xScale.js +25 -0
  292. package/dist/v2/react-native/charts/line/yAxisModel.d.ts +29 -0
  293. package/dist/v2/react-native/charts/line/yAxisModel.d.ts.map +1 -0
  294. package/dist/v2/react-native/charts/line/yAxisModel.js +39 -0
  295. package/dist/v2/react-native/charts/pie/PieChart.d.ts +7 -0
  296. package/dist/v2/react-native/charts/pie/PieChart.d.ts.map +1 -0
  297. package/dist/v2/react-native/charts/pie/PieChart.js +244 -0
  298. package/dist/v2/react-native/charts/pie/accessibility.d.ts +28 -0
  299. package/dist/v2/react-native/charts/pie/accessibility.d.ts.map +1 -0
  300. package/dist/v2/react-native/charts/pie/accessibility.js +49 -0
  301. package/dist/v2/react-native/charts/pie/activeSlice.d.ts +15 -0
  302. package/dist/v2/react-native/charts/pie/activeSlice.d.ts.map +1 -0
  303. package/dist/v2/react-native/charts/pie/activeSlice.js +26 -0
  304. package/dist/v2/react-native/charts/pie/arcLabels.d.ts +32 -0
  305. package/dist/v2/react-native/charts/pie/arcLabels.d.ts.map +1 -0
  306. package/dist/v2/react-native/charts/pie/arcLabels.js +191 -0
  307. package/dist/v2/react-native/charts/pie/interaction.d.ts +26 -0
  308. package/dist/v2/react-native/charts/pie/interaction.d.ts.map +1 -0
  309. package/dist/v2/react-native/charts/pie/interaction.js +66 -0
  310. package/dist/v2/react-native/charts/pie/model.d.ts +15 -0
  311. package/dist/v2/react-native/charts/pie/model.d.ts.map +1 -0
  312. package/dist/v2/react-native/charts/pie/model.js +157 -0
  313. package/dist/v2/react-native/charts/pie/selectionAnimation.d.ts +33 -0
  314. package/dist/v2/react-native/charts/pie/selectionAnimation.d.ts.map +1 -0
  315. package/dist/v2/react-native/charts/pie/selectionAnimation.js +121 -0
  316. package/dist/v2/react-native/charts/pie/sliceSeparator.d.ts +7 -0
  317. package/dist/v2/react-native/charts/pie/sliceSeparator.d.ts.map +1 -0
  318. package/dist/v2/react-native/charts/pie/sliceSeparator.js +26 -0
  319. package/dist/v2/react-native/charts/pie/slices.d.ts +20 -0
  320. package/dist/v2/react-native/charts/pie/slices.d.ts.map +1 -0
  321. package/dist/v2/react-native/charts/pie/slices.js +54 -0
  322. package/dist/v2/react-native/charts/pie/types.d.ts +165 -0
  323. package/dist/v2/react-native/charts/pie/types.d.ts.map +1 -0
  324. package/dist/v2/react-native/charts/pie/types.js +1 -0
  325. package/dist/v2/react-native/charts/progress/ProgressChart.d.ts +7 -0
  326. package/dist/v2/react-native/charts/progress/ProgressChart.d.ts.map +1 -0
  327. package/dist/v2/react-native/charts/progress/ProgressChart.js +111 -0
  328. package/dist/v2/react-native/charts/progress/accessibility.d.ts +26 -0
  329. package/dist/v2/react-native/charts/progress/accessibility.d.ts.map +1 -0
  330. package/dist/v2/react-native/charts/progress/accessibility.js +71 -0
  331. package/dist/v2/react-native/charts/progress/animation.d.ts +36 -0
  332. package/dist/v2/react-native/charts/progress/animation.d.ts.map +1 -0
  333. package/dist/v2/react-native/charts/progress/animation.js +103 -0
  334. package/dist/v2/react-native/charts/progress/model.d.ts +14 -0
  335. package/dist/v2/react-native/charts/progress/model.d.ts.map +1 -0
  336. package/dist/v2/react-native/charts/progress/model.js +133 -0
  337. package/dist/v2/react-native/charts/progress/types.d.ts +72 -0
  338. package/dist/v2/react-native/charts/progress/types.d.ts.map +1 -0
  339. package/dist/v2/react-native/charts/progress/types.js +1 -0
  340. package/dist/v2/react-native/index.d.ts +24 -0
  341. package/dist/v2/react-native/index.d.ts.map +1 -0
  342. package/dist/v2/react-native/index.js +14 -0
  343. package/dist/v2/react-native/selection/ChartSelectionProvider.d.ts +27 -0
  344. package/dist/v2/react-native/selection/ChartSelectionProvider.d.ts.map +1 -0
  345. package/dist/v2/react-native/selection/ChartSelectionProvider.js +92 -0
  346. package/dist/v2/react-native/selection/index.d.ts +2 -0
  347. package/dist/v2/react-native/selection/index.d.ts.map +1 -0
  348. package/dist/v2/react-native/selection/index.js +1 -0
  349. package/dist/v2/react-native/selection/scope.d.ts +16 -0
  350. package/dist/v2/react-native/selection/scope.d.ts.map +1 -0
  351. package/dist/v2/react-native/selection/scope.js +18 -0
  352. package/dist/v2/react-native/theme/index.d.ts +4 -0
  353. package/dist/v2/react-native/theme/index.d.ts.map +1 -0
  354. package/dist/v2/react-native/theme/index.js +2 -0
  355. package/dist/v2/react-native/theme/presets.d.ts +84 -0
  356. package/dist/v2/react-native/theme/presets.d.ts.map +1 -0
  357. package/dist/v2/react-native/theme/presets.js +298 -0
  358. package/dist/v2/react-native/theme/provider.d.ts +20 -0
  359. package/dist/v2/react-native/theme/provider.d.ts.map +1 -0
  360. package/dist/v2/react-native/theme/provider.js +27 -0
  361. package/dist/v2/react-native/viewport/bounds.d.ts +7 -0
  362. package/dist/v2/react-native/viewport/bounds.d.ts.map +1 -0
  363. package/dist/v2/react-native/viewport/bounds.js +7 -0
  364. package/dist/v2/react-native/viewport/config.d.ts +13 -0
  365. package/dist/v2/react-native/viewport/config.d.ts.map +1 -0
  366. package/dist/v2/react-native/viewport/config.js +64 -0
  367. package/dist/v2/react-native/viewport/pan.d.ts +23 -0
  368. package/dist/v2/react-native/viewport/pan.d.ts.map +1 -0
  369. package/dist/v2/react-native/viewport/pan.js +110 -0
  370. package/dist/v2/react-native/viewport/panResponder.d.ts +14 -0
  371. package/dist/v2/react-native/viewport/panResponder.d.ts.map +1 -0
  372. package/dist/v2/react-native/viewport/panResponder.js +115 -0
  373. package/dist/v2/react-native/viewport/pinchZoom.d.ts +17 -0
  374. package/dist/v2/react-native/viewport/pinchZoom.d.ts.map +1 -0
  375. package/dist/v2/react-native/viewport/pinchZoom.js +131 -0
  376. package/dist/v2/react-native/viewport/types.d.ts +55 -0
  377. package/dist/v2/react-native/viewport/types.d.ts.map +1 -0
  378. package/dist/v2/react-native/viewport/types.js +1 -0
  379. package/dist/v2/svg-renderer/capabilities.d.ts +3 -0
  380. package/dist/v2/svg-renderer/capabilities.d.ts.map +1 -0
  381. package/dist/v2/svg-renderer/capabilities.js +12 -0
  382. package/dist/v2/svg-renderer/clipPath.d.ts +4 -0
  383. package/dist/v2/svg-renderer/clipPath.d.ts.map +1 -0
  384. package/dist/v2/svg-renderer/clipPath.js +35 -0
  385. package/dist/v2/svg-renderer/defs.d.ts +6 -0
  386. package/dist/v2/svg-renderer/defs.d.ts.map +1 -0
  387. package/dist/v2/svg-renderer/defs.js +18 -0
  388. package/dist/v2/svg-renderer/ensureConsole.d.ts +4 -0
  389. package/dist/v2/svg-renderer/ensureConsole.d.ts.map +1 -0
  390. package/dist/v2/svg-renderer/ensureConsole.js +54 -0
  391. package/dist/v2/svg-renderer/hitRegions.d.ts +3 -0
  392. package/dist/v2/svg-renderer/hitRegions.d.ts.map +1 -0
  393. package/dist/v2/svg-renderer/hitRegions.js +6 -0
  394. package/dist/v2/svg-renderer/index.d.ts +14 -0
  395. package/dist/v2/svg-renderer/index.d.ts.map +1 -0
  396. package/dist/v2/svg-renderer/index.js +13 -0
  397. package/dist/v2/svg-renderer/layerOrder.d.ts +19 -0
  398. package/dist/v2/svg-renderer/layerOrder.d.ts.map +1 -0
  399. package/dist/v2/svg-renderer/layerOrder.js +18 -0
  400. package/dist/v2/svg-renderer/layers.d.ts +3 -0
  401. package/dist/v2/svg-renderer/layers.d.ts.map +1 -0
  402. package/dist/v2/svg-renderer/layers.js +4 -0
  403. package/dist/v2/svg-renderer/primitives.d.ts +12 -0
  404. package/dist/v2/svg-renderer/primitives.d.ts.map +1 -0
  405. package/dist/v2/svg-renderer/primitives.js +13 -0
  406. package/dist/v2/svg-renderer/renderer.d.ts +4 -0
  407. package/dist/v2/svg-renderer/renderer.d.ts.map +1 -0
  408. package/dist/v2/svg-renderer/renderer.js +24 -0
  409. package/dist/v2/svg-renderer/symbolGeometry.d.ts +6 -0
  410. package/dist/v2/svg-renderer/symbolGeometry.d.ts.map +1 -0
  411. package/dist/v2/svg-renderer/symbolGeometry.js +10 -0
  412. package/dist/v2/svg-renderer/symbols.d.ts +3 -0
  413. package/dist/v2/svg-renderer/symbols.d.ts.map +1 -0
  414. package/dist/v2/svg-renderer/symbols.js +23 -0
  415. package/dist/v2/svg-renderer/testIds.d.ts +2 -0
  416. package/dist/v2/svg-renderer/testIds.d.ts.map +1 -0
  417. package/dist/v2/svg-renderer/testIds.js +10 -0
  418. package/dist/v2/svg-renderer/textMeasurement.d.ts +4 -0
  419. package/dist/v2/svg-renderer/textMeasurement.d.ts.map +1 -0
  420. package/dist/v2/svg-renderer/textMeasurement.js +37 -0
  421. package/dist/v2/svg-renderer/types.d.ts +134 -0
  422. package/dist/v2/svg-renderer/types.d.ts.map +1 -0
  423. package/dist/v2/svg-renderer/types.js +1 -0
  424. package/package.json +46 -47
  425. package/v2/index.d.ts +1 -0
  426. package/v2/index.js +1 -0
  427. package/v2/package.json +6 -0
  428. package/scripts/chartkit-codemod.mjs +0 -256
@@ -0,0 +1,165 @@
1
+ import type { ReactNode } from "react";
2
+ import type { ViewStyle } from "react-native";
3
+ import type { PieArcModel } from "../../../core/index";
4
+ import type { CartesianChartPresetValue, CartesianChartTheme, ResolvedCartesianChartTheme } from "../../theme";
5
+ import type { LineChartRenderer } from "../line/types";
6
+ export type PieChartRenderer = LineChartRenderer;
7
+ export type PieChartDeselectEvent = {
8
+ reason: "outsidePress" | "programmatic";
9
+ };
10
+ export type PieChartSelectEvent<TData = unknown> = {
11
+ index: number;
12
+ label: string;
13
+ value: number | null;
14
+ percentage: number;
15
+ color?: string;
16
+ raw?: TData;
17
+ };
18
+ export type PieChartInteractionMode = "none" | "tap";
19
+ export type PieChartInteractionConfig<TData = unknown> = {
20
+ mode?: PieChartInteractionMode;
21
+ deselectOnOutsidePress?: boolean;
22
+ onDeselect?: (event: PieChartDeselectEvent) => void;
23
+ onSelect?: (event: PieChartSelectEvent<TData>) => void;
24
+ };
25
+ export type PieChartInteraction<TData = unknown> = PieChartInteractionMode | PieChartInteractionConfig<TData>;
26
+ export type PieChartActiveSliceConfig = {
27
+ strokeColor?: string;
28
+ strokeWidth?: number;
29
+ activeOpacity?: number;
30
+ inactiveOpacity?: number;
31
+ activeOffset?: number;
32
+ activeScale?: number;
33
+ };
34
+ export type PieChartSliceSeparatorConfig = {
35
+ visible?: boolean;
36
+ color?: string;
37
+ opacity?: number;
38
+ width?: number;
39
+ };
40
+ export type ResolvedPieChartSliceSeparatorConfig = {
41
+ visible: boolean;
42
+ color: string;
43
+ opacity: number;
44
+ width: number;
45
+ };
46
+ export type PieChartSelectionAnimationConfig = {
47
+ duration?: number;
48
+ };
49
+ export type PieChartCenterLabelRenderProps<TData = unknown> = {
50
+ total: number;
51
+ arcs: Array<PieArcModel<TData>>;
52
+ theme: ResolvedCartesianChartTheme;
53
+ selectedArc?: PieArcModel<TData>;
54
+ selectedIndex?: number;
55
+ };
56
+ export type PieChartLegendRenderProps<TData = unknown> = {
57
+ index: number;
58
+ item: PieChartLegendItem<TData>;
59
+ selected: boolean;
60
+ theme: ResolvedCartesianChartTheme;
61
+ };
62
+ export type PieChartArcLabelRenderProps<TData = unknown> = {
63
+ arc: PieArcModel<TData>;
64
+ color: string;
65
+ index: number;
66
+ label: string;
67
+ percentageLabel: string;
68
+ selected: boolean;
69
+ theme: ResolvedCartesianChartTheme;
70
+ valueLabel: string;
71
+ };
72
+ export type PieChartArcLabelsConfig<TData = unknown> = {
73
+ visible?: boolean;
74
+ connectorColor?: string;
75
+ connectorLines?: boolean;
76
+ connectorLength?: number;
77
+ connectorOpacity?: number;
78
+ connectorWidth?: number;
79
+ fontSize?: number;
80
+ minPercentage?: number;
81
+ offset?: number;
82
+ reservedWidth?: number;
83
+ formatLabel?: (props: PieChartArcLabelRenderProps<TData>) => string | null;
84
+ };
85
+ export type PieChartLegendConfig<TData = unknown> = {
86
+ visible?: boolean;
87
+ reservedHeight?: number;
88
+ itemGap?: number;
89
+ maxItemWidth?: ViewStyle["maxWidth"];
90
+ renderItem?: (props: PieChartLegendRenderProps<TData>) => ReactNode;
91
+ };
92
+ export type PieChartProps<TData extends Record<string, unknown>> = {
93
+ data: TData[];
94
+ valueKey: keyof TData & string;
95
+ labelKey?: keyof TData & string;
96
+ colorKey?: keyof TData & string;
97
+ colors?: string[];
98
+ width: number;
99
+ height: number;
100
+ theme?: "light" | "dark" | "system" | CartesianChartTheme;
101
+ preset?: CartesianChartPresetValue;
102
+ innerRadius?: number;
103
+ innerRadiusRatio?: number;
104
+ legend?: boolean | PieChartLegendConfig<TData>;
105
+ arcLabels?: boolean | PieChartArcLabelsConfig<TData>;
106
+ sliceSeparator?: boolean | PieChartSliceSeparatorConfig;
107
+ selectedIndex?: number;
108
+ defaultSelectedIndex?: number;
109
+ activeSlice?: PieChartActiveSliceConfig;
110
+ selectionAnimation?: boolean | PieChartSelectionAnimationConfig;
111
+ interaction?: PieChartInteraction<TData>;
112
+ centerLabel?: string | ReactNode | ((props: PieChartCenterLabelRenderProps<TData>) => ReactNode);
113
+ renderer?: PieChartRenderer;
114
+ accessibilityLabel?: string;
115
+ id?: string;
116
+ testID?: string;
117
+ formatValue?: (value: number) => string;
118
+ formatPercentage?: (percentage: number) => string;
119
+ };
120
+ export type PieChartLegendItem<TData = unknown> = {
121
+ index: number;
122
+ key: string;
123
+ label: string;
124
+ valueLabel: string;
125
+ percentageLabel: string;
126
+ color: string;
127
+ arc: PieArcModel<TData>;
128
+ };
129
+ export type PieChartArcLabelModel<TData = unknown> = {
130
+ index: number;
131
+ key: string;
132
+ text: string;
133
+ color: string;
134
+ fontSize: number;
135
+ textAnchor: "start" | "end";
136
+ x: number;
137
+ y: number;
138
+ connectorStartX: number;
139
+ connectorStartY: number;
140
+ connectorColor: string;
141
+ connectorBendX: number;
142
+ connectorBendY: number;
143
+ connectorEndX: number;
144
+ connectorEndY: number;
145
+ connectorOpacity: number;
146
+ connectorVisible: boolean;
147
+ connectorWidth: number;
148
+ arc: PieArcModel<TData>;
149
+ };
150
+ export type PieChartModel<TData = unknown> = {
151
+ arcLabels: Array<PieChartArcLabelModel<TData>>;
152
+ arcLabelsVisible: boolean;
153
+ arcs: Array<PieArcModel<TData>>;
154
+ centerX: number;
155
+ centerY: number;
156
+ chartHeight: number;
157
+ innerRadius: number;
158
+ legendItems: Array<PieChartLegendItem<TData>>;
159
+ legendVisible: boolean;
160
+ radius: number;
161
+ resolvedTheme: ResolvedCartesianChartTheme;
162
+ sliceSeparator: ResolvedPieChartSliceSeparatorConfig;
163
+ total: number;
164
+ };
165
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/charts/pie/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,7 @@
1
+ import type { ProgressChartProps, ProgressRingDatum, ProgressRingProps } from "./types";
2
+ export type * from "./types";
3
+ export { getProgressChartAccessibilitySummary, getProgressChartDataTable } from "./accessibility";
4
+ export type { ProgressChartDataTable, ProgressChartDataTableRow } from "./accessibility";
5
+ export declare const ProgressChart: <TData extends Record<string, unknown> = ProgressRingDatum>(props: ProgressChartProps<TData>) => import("react/jsx-runtime").JSX.Element;
6
+ export declare const ProgressRing: ({ color, label, value, ...props }: ProgressRingProps) => import("react/jsx-runtime").JSX.Element;
7
+ //# sourceMappingURL=ProgressChart.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ProgressChart.d.ts","sourceRoot":"","sources":["../../../src/charts/progress/ProgressChart.tsx"],"names":[],"mappings":"AAcA,OAAO,KAAK,EACV,kBAAkB,EAClB,iBAAiB,EACjB,iBAAiB,EAClB,MAAM,SAAS,CAAC;AAEjB,mBAAmB,SAAS,CAAC;AAC7B,OAAO,EACL,oCAAoC,EACpC,yBAAyB,EAC1B,MAAM,iBAAiB,CAAC;AACzB,YAAY,EACV,sBAAsB,EACtB,yBAAyB,EAC1B,MAAM,iBAAiB,CAAC;AAWzB,eAAO,MAAM,aAAa,GACxB,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,iBAAiB,EAEzD,OAAO,kBAAkB,CAAC,KAAK,CAAC,4CAyKjC,CAAC;AAEF,eAAO,MAAM,YAAY,GAAI,mCAK1B,iBAAiB,4CAiBnB,CAAC"}
@@ -0,0 +1,111 @@
1
+ import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { useMemo } from "react";
3
+ import { StyleSheet, Text, View } from "react-native";
4
+ import { useChartKitTheme } from "../../theme";
5
+ import { getLineChartRenderer as getProgressChartRenderer } from "../line/renderer";
6
+ import { getProgressChartAccessibilitySummary } from "./accessibility";
7
+ import { getAnimatedProgressRings, getAverageProgress, getProgressChartAnimationTargetKey, useProgressChartAnimation } from "./animation";
8
+ import { buildProgressChartModel } from "./model";
9
+ export { getProgressChartAccessibilitySummary, getProgressChartDataTable } from "./accessibility";
10
+ const defaultStrokeLinecap = "round";
11
+ const RendererLayer = ({ children }) => _jsx(_Fragment, { children: children });
12
+ export const ProgressChart = (props) => {
13
+ const chartKitTheme = useChartKitTheme();
14
+ const model = useMemo(() => buildProgressChartModel({ chartKitTheme, props }), [chartKitTheme, props]);
15
+ const { average, centerX, centerY, chartHeight, legendItems, legendVisible, resolvedTheme, rings } = model;
16
+ const animationTargetKey = useMemo(() => getProgressChartAnimationTargetKey(rings), [rings]);
17
+ const progressAnimation = useProgressChartAnimation({
18
+ animation: props.animation,
19
+ targetKey: animationTargetKey
20
+ });
21
+ const { progress: animationProgress, stagger: animationStagger } = progressAnimation;
22
+ const animatedRings = useMemo(() => getAnimatedProgressRings({
23
+ centerX,
24
+ centerY,
25
+ progress: animationProgress,
26
+ rings,
27
+ stagger: animationStagger
28
+ }), [animationProgress, animationStagger, centerX, centerY, rings]);
29
+ const displayRings = props.animation ? animatedRings : rings;
30
+ const animatedAverage = useMemo(() => getAverageProgress(displayRings), [displayRings]);
31
+ const strokeLinecap = props.strokeLinecap ?? defaultStrokeLinecap;
32
+ const centerLabel = typeof props.centerLabel === "function"
33
+ ? props.centerLabel({
34
+ average: props.animation ? animatedAverage : average,
35
+ rings: displayRings,
36
+ theme: resolvedTheme
37
+ })
38
+ : props.centerLabel;
39
+ const accessibilityLabel = props.accessibilityLabel ??
40
+ getProgressChartAccessibilitySummary({
41
+ colorKey: props.colorKey,
42
+ colors: props.colors,
43
+ data: props.data,
44
+ formatPercentage: props.formatPercentage,
45
+ labelKey: props.labelKey,
46
+ labels: props.labels,
47
+ valueKey: props.valueKey
48
+ });
49
+ const renderer = getProgressChartRenderer(props.renderer ?? chartKitTheme.renderer);
50
+ const Layer = renderer.Layer ?? RendererLayer;
51
+ const Path = renderer.Path;
52
+ const Surface = renderer.Surface;
53
+ const SvgText = renderer.Text;
54
+ const canRenderText = renderer.capabilities?.text !== false;
55
+ return (_jsxs(View, { accessible: true, accessibilityLabel: accessibilityLabel, accessibilityRole: "image", style: [
56
+ styles.container,
57
+ {
58
+ backgroundColor: resolvedTheme.background,
59
+ height: props.height,
60
+ width: props.width
61
+ }
62
+ ], testID: props.testID, children: [_jsxs(Surface, { width: props.width, height: chartHeight, children: [_jsx(Layer, { name: "background", children: rings.map((ring) => ring.backgroundPath.length > 0 ? (_jsx(Path, { d: ring.backgroundPath, fill: "none", stroke: resolvedTheme.grid, strokeLinecap: strokeLinecap, strokeWidth: ring.strokeWidth, testID: `${props.testID ?? "progress-chart"}-background.${ring.index}` }, `progress-background-${ring.index}`)) : null) }), _jsx(Layer, { name: "data", children: displayRings.map((ring) => ring.defined ? (_jsx(Path, { d: ring.path, fill: "none", stroke: ring.color ?? resolvedTheme.text, strokeLinecap: strokeLinecap, strokeLinejoin: "round", strokeWidth: ring.strokeWidth, testID: `${props.testID ?? "progress-chart"}-ring.${ring.index}` }, `progress-ring-${ring.index}`)) : null) }), typeof centerLabel === "string" &&
63
+ centerLabel.length > 0 &&
64
+ canRenderText ? (_jsx(Layer, { name: "overlays", children: _jsx(SvgText, { fill: resolvedTheme.text, fontSize: 18, fontWeight: "800", text: centerLabel, textAnchor: "middle", x: centerX, y: centerY + 6, ...(resolvedTheme.typography.fontFamily
65
+ ? { fontFamily: resolvedTheme.typography.fontFamily }
66
+ : {}), children: centerLabel }) })) : null] }), legendVisible && legendItems.length > 0 ? (_jsx(View, { style: styles.legend, children: legendItems.map((item) => (_jsxs(View, { style: styles.legendItem, children: [_jsx(View, { style: [styles.legendSwatch, { backgroundColor: item.color }] }), _jsx(Text, { numberOfLines: 1, style: [styles.legendText, { color: resolvedTheme.text }], children: item.label }), _jsx(Text, { numberOfLines: 1, style: [styles.legendValue, { color: resolvedTheme.mutedText }], children: item.percentageLabel })] }, item.key))) })) : null] }));
67
+ };
68
+ export const ProgressRing = ({ color, label, value, ...props }) => {
69
+ const row = {
70
+ value,
71
+ ...(label !== undefined ? { label } : {}),
72
+ ...(color !== undefined ? { color } : {})
73
+ };
74
+ return (_jsx(ProgressChart, { ...props, data: [row], labelKey: "label", valueKey: "value", colorKey: "color", legend: props.legend ?? false }));
75
+ };
76
+ const styles = StyleSheet.create({
77
+ container: {
78
+ borderRadius: 8,
79
+ overflow: "hidden"
80
+ },
81
+ legend: {
82
+ alignContent: "center",
83
+ flexDirection: "row",
84
+ flexWrap: "wrap",
85
+ gap: 8,
86
+ justifyContent: "center",
87
+ paddingHorizontal: 8,
88
+ paddingTop: 4
89
+ },
90
+ legendItem: {
91
+ alignItems: "center",
92
+ flexDirection: "row",
93
+ gap: 5,
94
+ maxWidth: "48%",
95
+ minHeight: 18
96
+ },
97
+ legendSwatch: {
98
+ borderRadius: 4,
99
+ height: 8,
100
+ width: 8
101
+ },
102
+ legendText: {
103
+ flexShrink: 1,
104
+ fontSize: 11,
105
+ fontWeight: "700"
106
+ },
107
+ legendValue: {
108
+ fontSize: 10,
109
+ fontWeight: "700"
110
+ }
111
+ });
@@ -0,0 +1,26 @@
1
+ import type { ProgressChartProps } from "./types";
2
+ export type ProgressChartDataTableRow<TData = unknown> = {
3
+ color?: string | undefined;
4
+ formattedValue: string;
5
+ index: number;
6
+ label: string;
7
+ raw?: TData | undefined;
8
+ value: number | null;
9
+ };
10
+ export type ProgressChartDataTable<TData = unknown> = {
11
+ average: number;
12
+ rows: Array<ProgressChartDataTableRow<TData>>;
13
+ };
14
+ type ProgressChartAccessibilityInput<TData extends Record<string, unknown>> = {
15
+ colorKey?: ProgressChartProps<TData>["colorKey"] | undefined;
16
+ colors?: ProgressChartProps<TData>["colors"] | undefined;
17
+ data: ProgressChartProps<TData>["data"];
18
+ formatPercentage?: ProgressChartProps<TData>["formatPercentage"] | undefined;
19
+ labelKey?: ProgressChartProps<TData>["labelKey"] | undefined;
20
+ labels?: ProgressChartProps<TData>["labels"] | undefined;
21
+ valueKey?: ProgressChartProps<TData>["valueKey"] | undefined;
22
+ };
23
+ export declare const getProgressChartDataTable: <TData extends Record<string, unknown>>({ colorKey, colors, data, formatPercentage, labelKey, labels, valueKey }: ProgressChartAccessibilityInput<TData>) => ProgressChartDataTable<TData>;
24
+ export declare const getProgressChartAccessibilitySummary: <TData extends Record<string, unknown>>(input: ProgressChartAccessibilityInput<TData>) => string;
25
+ export {};
26
+ //# sourceMappingURL=accessibility.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"accessibility.d.ts","sourceRoot":"","sources":["../../../src/charts/progress/accessibility.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAElD,MAAM,MAAM,yBAAyB,CAAC,KAAK,GAAG,OAAO,IAAI;IACvD,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,cAAc,EAAE,MAAM,CAAC;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,KAAK,GAAG,SAAS,CAAC;IACxB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,sBAAsB,CAAC,KAAK,GAAG,OAAO,IAAI;IACpD,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,KAAK,CAAC,yBAAyB,CAAC,KAAK,CAAC,CAAC,CAAC;CAC/C,CAAC;AAEF,KAAK,+BAA+B,CAAC,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI;IAC5E,QAAQ,CAAC,EAAE,kBAAkB,CAAC,KAAK,CAAC,CAAC,UAAU,CAAC,GAAG,SAAS,CAAC;IAC7D,MAAM,CAAC,EAAE,kBAAkB,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,GAAG,SAAS,CAAC;IACzD,IAAI,EAAE,kBAAkB,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC;IACxC,gBAAgB,CAAC,EAAE,kBAAkB,CAAC,KAAK,CAAC,CAAC,kBAAkB,CAAC,GAAG,SAAS,CAAC;IAC7E,QAAQ,CAAC,EAAE,kBAAkB,CAAC,KAAK,CAAC,CAAC,UAAU,CAAC,GAAG,SAAS,CAAC;IAC7D,MAAM,CAAC,EAAE,kBAAkB,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,GAAG,SAAS,CAAC;IACzD,QAAQ,CAAC,EAAE,kBAAkB,CAAC,KAAK,CAAC,CAAC,UAAU,CAAC,GAAG,SAAS,CAAC;CAC9D,CAAC;AA+BF,eAAO,MAAM,yBAAyB,GACpC,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACrC,0EAQC,+BAA+B,CAAC,KAAK,CAAC,KAAG,sBAAsB,CAAC,KAAK,CA+DvE,CAAC;AAEF,eAAO,MAAM,oCAAoC,GAC/C,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAErC,OAAO,+BAA+B,CAAC,KAAK,CAAC,WAsB9C,CAAC"}
@@ -0,0 +1,71 @@
1
+ const defaultValueKey = "value";
2
+ const defaultLabelKey = "label";
3
+ const defaultColorKey = "color";
4
+ const defaultFormatPercentage = (value) => `${Math.round(value * 100)}%`;
5
+ const isObjectRecord = (value) => typeof value === "object" && value !== null && !Array.isArray(value);
6
+ const isObjectRowData = (data) => Array.isArray(data) && data.some(isObjectRecord);
7
+ const getStringValue = (value, fallback) => typeof value === "string" && value.length > 0 ? value : fallback;
8
+ const getProgressValue = (value) => {
9
+ if (typeof value === "number" && Number.isFinite(value)) {
10
+ return value;
11
+ }
12
+ return null;
13
+ };
14
+ const clampProgress = (value) => Math.min(Math.max(value, 0), 1);
15
+ const getLegacyRows = (data) => Array.isArray(data) ? { data, labels: undefined, colors: undefined } : data;
16
+ export const getProgressChartDataTable = ({ colorKey, colors, data, formatPercentage = defaultFormatPercentage, labelKey, labels, valueKey }) => {
17
+ const rows = isObjectRowData(data)
18
+ ? data.map((item, index) => {
19
+ const value = getProgressValue(item[valueKey ?? defaultValueKey]);
20
+ const color = getStringValue(item[colorKey ?? defaultColorKey], colors?.[index]);
21
+ const row = {
22
+ formattedValue: value === null
23
+ ? "No value"
24
+ : formatPercentage(clampProgress(value)),
25
+ index,
26
+ label: getStringValue(item[labelKey ?? defaultLabelKey], labels?.[index]) ?? `Ring ${index + 1}`,
27
+ raw: item,
28
+ value
29
+ };
30
+ if (color !== undefined) {
31
+ row.color = color;
32
+ }
33
+ return row;
34
+ })
35
+ : getLegacyRows(data).data.map((rawValue, index) => {
36
+ const value = getProgressValue(rawValue);
37
+ const color = getLegacyRows(data).colors?.[index] ?? colors?.[index];
38
+ const row = {
39
+ formattedValue: value === null
40
+ ? "No value"
41
+ : formatPercentage(clampProgress(value)),
42
+ index,
43
+ label: getLegacyRows(data).labels?.[index] ??
44
+ labels?.[index] ??
45
+ `Ring ${index + 1}`,
46
+ value
47
+ };
48
+ if (color !== undefined) {
49
+ row.color = color;
50
+ }
51
+ return row;
52
+ });
53
+ const definedRows = rows.filter((row) => row.value !== null);
54
+ const average = definedRows.length > 0
55
+ ? definedRows.reduce((sum, row) => sum + clampProgress(row.value ?? 0), 0) / definedRows.length
56
+ : 0;
57
+ return { average, rows };
58
+ };
59
+ export const getProgressChartAccessibilitySummary = (input) => {
60
+ const table = getProgressChartDataTable(input);
61
+ if (table.rows.length === 0) {
62
+ return "Progress chart with no rings.";
63
+ }
64
+ const definedRows = table.rows.filter((row) => row.value !== null);
65
+ if (definedRows.length === 0) {
66
+ return `Progress chart with ${table.rows.length} rings and no defined values.`;
67
+ }
68
+ const currentRow = definedRows[definedRows.length - 1];
69
+ const formatPercentage = input.formatPercentage ?? defaultFormatPercentage;
70
+ return `Progress chart with ${table.rows.length} rings. Average progress ${formatPercentage(table.average)}. Current ring ${currentRow?.label ?? "Ring"} is ${currentRow?.formattedValue ?? "No value"}.`;
71
+ };
@@ -0,0 +1,36 @@
1
+ import type { ProgressRingModel } from "../../../core/index";
2
+ import type { ProgressChartAnimationConfig } from "./types";
3
+ export type ResolvedProgressChartAnimationConfig = {
4
+ duration: number;
5
+ enabled: boolean;
6
+ stagger: number;
7
+ };
8
+ export declare const resolveProgressChartAnimationConfig: (animation: boolean | ProgressChartAnimationConfig | undefined) => ResolvedProgressChartAnimationConfig;
9
+ export declare const getProgressRingAnimationProgress: ({ index, progress, stagger }: {
10
+ index: number;
11
+ progress: number;
12
+ stagger: number;
13
+ }) => number;
14
+ export declare const getAnimatedProgressRing: ({ centerX, centerY, progress, ring }: {
15
+ centerX: number;
16
+ centerY: number;
17
+ progress: number;
18
+ ring: ProgressRingModel;
19
+ }) => ProgressRingModel;
20
+ export declare const getAnimatedProgressRings: ({ centerX, centerY, progress, rings, stagger }: {
21
+ centerX: number;
22
+ centerY: number;
23
+ progress: number;
24
+ rings: ProgressRingModel[];
25
+ stagger: number;
26
+ }) => ProgressRingModel[];
27
+ export declare const getAverageProgress: (rings: ProgressRingModel[]) => number;
28
+ export declare const getProgressChartAnimationTargetKey: (rings: ProgressRingModel[]) => string;
29
+ export declare const useProgressChartAnimation: ({ animation, targetKey }: {
30
+ animation: boolean | ProgressChartAnimationConfig | undefined;
31
+ targetKey: string;
32
+ }) => {
33
+ progress: number;
34
+ stagger: number;
35
+ };
36
+ //# sourceMappingURL=animation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"animation.d.ts","sourceRoot":"","sources":["../../../src/charts/progress/animation.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAEzD,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,SAAS,CAAC;AAK5D,MAAM,MAAM,oCAAoC,GAAG;IACjD,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,eAAO,MAAM,mCAAmC,GAC9C,WAAW,OAAO,GAAG,4BAA4B,GAAG,SAAS,KAC5D,oCAgBF,CAAC;AAUF,eAAO,MAAM,gCAAgC,GAAI,8BAI9C;IACD,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;CACjB,WAIA,CAAC;AAEF,eAAO,MAAM,uBAAuB,GAAI,sCAKrC;IACD,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,iBAAiB,CAAC;CACzB,KAAG,iBAkCH,CAAC;AAEF,eAAO,MAAM,wBAAwB,GAAI,gDAMtC;IACD,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,iBAAiB,EAAE,CAAC;IAC3B,OAAO,EAAE,MAAM,CAAC;CACjB,wBAQE,CAAC;AAEJ,eAAO,MAAM,kBAAkB,GAAI,OAAO,iBAAiB,EAAE,WAO5D,CAAC;AAEF,eAAO,MAAM,kCAAkC,GAC7C,OAAO,iBAAiB,EAAE,WAId,CAAC;AAEf,eAAO,MAAM,yBAAyB,GAAI,0BAGvC;IACD,SAAS,EAAE,OAAO,GAAG,4BAA4B,GAAG,SAAS,CAAC;IAC9D,SAAS,EAAE,MAAM,CAAC;CACnB;;;CAyCA,CAAC"}
@@ -0,0 +1,103 @@
1
+ import { useEffect, useMemo, useState } from "react";
2
+ import { buildProgressRings } from "../../../core/index";
3
+ const defaultProgressAnimationDuration = 1200;
4
+ const defaultProgressAnimationStagger = 0.08;
5
+ export const resolveProgressChartAnimationConfig = (animation) => {
6
+ if (!animation) {
7
+ return { duration: 0, enabled: false, stagger: 0 };
8
+ }
9
+ const config = typeof animation === "object" ? animation : {};
10
+ const duration = typeof config.duration === "number" && Number.isFinite(config.duration)
11
+ ? Math.max(0, config.duration)
12
+ : defaultProgressAnimationDuration;
13
+ const stagger = typeof config.stagger === "number" && Number.isFinite(config.stagger)
14
+ ? Math.max(0, Math.min(0.5, config.stagger))
15
+ : defaultProgressAnimationStagger;
16
+ return { duration, enabled: true, stagger };
17
+ };
18
+ const clamp01 = (value) => Math.max(0, Math.min(1, value));
19
+ const easeOutCubic = (progress) => {
20
+ const clampedProgress = clamp01(progress);
21
+ return 1 - Math.pow(1 - clampedProgress, 3);
22
+ };
23
+ export const getProgressRingAnimationProgress = ({ index, progress, stagger }) => {
24
+ const delay = Math.min(0.92, index * stagger);
25
+ return easeOutCubic((progress - delay) / Math.max(0.01, 1 - delay));
26
+ };
27
+ export const getAnimatedProgressRing = ({ centerX, centerY, progress, ring }) => {
28
+ if (!ring.defined || progress >= 0.999) {
29
+ return ring;
30
+ }
31
+ const animatedValue = ring.clampedValue * clamp01(progress);
32
+ const animatedInput = {
33
+ defined: ring.defined,
34
+ index: ring.index,
35
+ value: animatedValue,
36
+ ...(ring.color !== undefined ? { color: ring.color } : {}),
37
+ ...(ring.label !== undefined ? { label: ring.label } : {})
38
+ };
39
+ const animatedRing = buildProgressRings({
40
+ centerX,
41
+ centerY,
42
+ maxRadius: ring.radius,
43
+ ringGap: 0,
44
+ rings: [animatedInput],
45
+ startAngle: ring.startAngle,
46
+ strokeWidth: ring.strokeWidth
47
+ })[0];
48
+ if (!animatedRing) {
49
+ return ring;
50
+ }
51
+ return {
52
+ ...ring,
53
+ clampedValue: animatedRing.clampedValue,
54
+ defined: animatedRing.defined,
55
+ endAngle: animatedRing.endAngle,
56
+ path: animatedRing.path
57
+ };
58
+ };
59
+ export const getAnimatedProgressRings = ({ centerX, centerY, progress, rings, stagger }) => rings.map((ring, index) => getAnimatedProgressRing({
60
+ centerX,
61
+ centerY,
62
+ progress: getProgressRingAnimationProgress({ index, progress, stagger }),
63
+ ring
64
+ }));
65
+ export const getAverageProgress = (rings) => {
66
+ const definedRings = rings.filter((ring) => ring.value !== null);
67
+ return definedRings.length > 0
68
+ ? definedRings.reduce((sum, ring) => sum + ring.clampedValue, 0) /
69
+ definedRings.length
70
+ : 0;
71
+ };
72
+ export const getProgressChartAnimationTargetKey = (rings) => rings
73
+ .map((ring) => `${ring.index}:${ring.defined}:${ring.clampedValue}`)
74
+ .join("|");
75
+ export const useProgressChartAnimation = ({ animation, targetKey }) => {
76
+ const config = useMemo(() => resolveProgressChartAnimationConfig(animation), [animation]);
77
+ const [progress, setProgress] = useState(config.enabled ? 0 : 1);
78
+ useEffect(() => {
79
+ if (!config.enabled || config.duration <= 0) {
80
+ const frame = requestAnimationFrame(() => setProgress(1));
81
+ return () => cancelAnimationFrame(frame);
82
+ }
83
+ let animationFrame = 0;
84
+ let startTime;
85
+ const tick = (timestamp) => {
86
+ startTime ?? (startTime = timestamp);
87
+ const nextProgress = clamp01((timestamp - startTime) / config.duration);
88
+ setProgress(nextProgress);
89
+ if (nextProgress < 1) {
90
+ animationFrame = requestAnimationFrame(tick);
91
+ }
92
+ };
93
+ animationFrame = requestAnimationFrame((timestamp) => {
94
+ setProgress(0);
95
+ tick(timestamp);
96
+ });
97
+ return () => cancelAnimationFrame(animationFrame);
98
+ }, [config.duration, config.enabled, targetKey]);
99
+ return {
100
+ progress,
101
+ stagger: config.stagger
102
+ };
103
+ };
@@ -0,0 +1,14 @@
1
+ import type { CartesianChartPresetRegistry, CartesianChartPresetValue, CartesianChartTheme, ResolvedChartKitThemeMode } from "../../theme/presets";
2
+ import type { ProgressChartModel, ProgressChartProps } from "./types";
3
+ type ProgressChartThemeContextValue = {
4
+ mode: ResolvedChartKitThemeMode;
5
+ preset: CartesianChartPresetValue;
6
+ presets: CartesianChartPresetRegistry;
7
+ theme: CartesianChartTheme | undefined;
8
+ };
9
+ export declare const buildProgressChartModel: <TData extends Record<string, unknown>>({ chartKitTheme, props }: {
10
+ chartKitTheme: ProgressChartThemeContextValue;
11
+ props: ProgressChartProps<TData>;
12
+ }) => ProgressChartModel;
13
+ export {};
14
+ //# sourceMappingURL=model.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../../../src/charts/progress/model.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EACV,4BAA4B,EAC5B,yBAAyB,EACzB,mBAAmB,EACnB,yBAAyB,EAC1B,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAEtE,KAAK,8BAA8B,GAAG;IACpC,IAAI,EAAE,yBAAyB,CAAC;IAChC,MAAM,EAAE,yBAAyB,CAAC;IAClC,OAAO,EAAE,4BAA4B,CAAC;IACtC,KAAK,EAAE,mBAAmB,GAAG,SAAS,CAAC;CACxC,CAAC;AA4GF,eAAO,MAAM,uBAAuB,GAAI,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,0BAG5E;IACD,aAAa,EAAE,8BAA8B,CAAC;IAC9C,KAAK,EAAE,kBAAkB,CAAC,KAAK,CAAC,CAAC;CAClC,KAAG,kBAwGH,CAAC"}