@chipmobilesdk/rn-chart 0.3.0 → 0.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (373) hide show
  1. package/CHANGELOG.md +129 -0
  2. package/README.md +45 -3
  3. package/lib/commonjs/a11y/summary.js +190 -0
  4. package/lib/commonjs/a11y/summary.js.map +1 -0
  5. package/lib/commonjs/contract/datasource.js +64 -0
  6. package/lib/commonjs/contract/datasource.js.map +1 -0
  7. package/lib/commonjs/contract/distribution.js +45 -0
  8. package/lib/commonjs/contract/distribution.js.map +1 -0
  9. package/lib/commonjs/contract/errors.js +88 -0
  10. package/lib/commonjs/contract/errors.js.map +1 -0
  11. package/lib/commonjs/contract/format.js +133 -0
  12. package/lib/commonjs/contract/format.js.map +1 -0
  13. package/lib/commonjs/contract/interaction.js +24 -0
  14. package/lib/commonjs/contract/interaction.js.map +1 -0
  15. package/lib/commonjs/contract/marker.js +55 -0
  16. package/lib/commonjs/contract/marker.js.map +1 -0
  17. package/lib/commonjs/contract/props.js +6 -0
  18. package/lib/commonjs/contract/props.js.map +1 -0
  19. package/lib/commonjs/contract/state.js +68 -0
  20. package/lib/commonjs/contract/state.js.map +1 -0
  21. package/lib/commonjs/contract/strings.js +54 -0
  22. package/lib/commonjs/contract/strings.js.map +1 -0
  23. package/lib/commonjs/contract/theme.js +116 -0
  24. package/lib/commonjs/contract/theme.js.map +1 -0
  25. package/lib/commonjs/contract/value.js +112 -0
  26. package/lib/commonjs/contract/value.js.map +1 -0
  27. package/lib/commonjs/geometry/bar.js +257 -0
  28. package/lib/commonjs/geometry/bar.js.map +1 -0
  29. package/lib/commonjs/geometry/distribution.js +197 -0
  30. package/lib/commonjs/geometry/distribution.js.map +1 -0
  31. package/lib/commonjs/geometry/heatmap.js +186 -0
  32. package/lib/commonjs/geometry/heatmap.js.map +1 -0
  33. package/lib/commonjs/geometry/hitTest.js +117 -0
  34. package/lib/commonjs/geometry/hitTest.js.map +1 -0
  35. package/lib/commonjs/geometry/layout.js +134 -0
  36. package/lib/commonjs/geometry/layout.js.map +1 -0
  37. package/lib/commonjs/geometry/markers.js +59 -0
  38. package/lib/commonjs/geometry/markers.js.map +1 -0
  39. package/lib/commonjs/geometry/path.js +166 -0
  40. package/lib/commonjs/geometry/path.js.map +1 -0
  41. package/lib/commonjs/geometry/progress.js +203 -0
  42. package/lib/commonjs/geometry/progress.js.map +1 -0
  43. package/lib/commonjs/geometry/scale.js +127 -0
  44. package/lib/commonjs/geometry/scale.js.map +1 -0
  45. package/lib/commonjs/geometry/ticks.js +120 -0
  46. package/lib/commonjs/geometry/ticks.js.map +1 -0
  47. package/lib/commonjs/geometry/timeSeries.js +157 -0
  48. package/lib/commonjs/geometry/timeSeries.js.map +1 -0
  49. package/lib/commonjs/geometry/types.js +43 -0
  50. package/lib/commonjs/geometry/types.js.map +1 -0
  51. package/lib/commonjs/index.js +284 -0
  52. package/lib/commonjs/index.js.map +1 -0
  53. package/lib/commonjs/package.json +1 -0
  54. package/lib/commonjs/react/ChartBoundary.js +82 -0
  55. package/lib/commonjs/react/ChartBoundary.js.map +1 -0
  56. package/lib/commonjs/react/ChartFrame.js +270 -0
  57. package/lib/commonjs/react/ChartFrame.js.map +1 -0
  58. package/lib/commonjs/react/ChartLegend.js +242 -0
  59. package/lib/commonjs/react/ChartLegend.js.map +1 -0
  60. package/lib/commonjs/react/ChartPlot.js +62 -0
  61. package/lib/commonjs/react/ChartPlot.js.map +1 -0
  62. package/lib/commonjs/react/ChartStateOverlay.js +89 -0
  63. package/lib/commonjs/react/ChartStateOverlay.js.map +1 -0
  64. package/lib/commonjs/react/ChartThemeProvider.js +51 -0
  65. package/lib/commonjs/react/ChartThemeProvider.js.map +1 -0
  66. package/lib/commonjs/react/charts.js +108 -0
  67. package/lib/commonjs/react/charts.js.map +1 -0
  68. package/lib/commonjs/react/pointEvent.js +35 -0
  69. package/lib/commonjs/react/pointEvent.js.map +1 -0
  70. package/lib/commonjs/react/useChartA11y.js +97 -0
  71. package/lib/commonjs/react/useChartA11y.js.map +1 -0
  72. package/lib/commonjs/react/useChartFormatters.js +66 -0
  73. package/lib/commonjs/react/useChartFormatters.js.map +1 -0
  74. package/lib/commonjs/react/useChartLayout.js +100 -0
  75. package/lib/commonjs/react/useChartLayout.js.map +1 -0
  76. package/lib/commonjs/react/useChartSelection.js +131 -0
  77. package/lib/commonjs/react/useChartSelection.js.map +1 -0
  78. package/lib/commonjs/react/useChartStatus.js +74 -0
  79. package/lib/commonjs/react/useChartStatus.js.map +1 -0
  80. package/lib/commonjs/render/Axis.js +88 -0
  81. package/lib/commonjs/render/Axis.js.map +1 -0
  82. package/lib/commonjs/render/Marks.js +184 -0
  83. package/lib/commonjs/render/Marks.js.map +1 -0
  84. package/lib/commonjs/validation/budgets.js +106 -0
  85. package/lib/commonjs/validation/budgets.js.map +1 -0
  86. package/lib/commonjs/validation/validateDatasource.js +189 -0
  87. package/lib/commonjs/validation/validateDatasource.js.map +1 -0
  88. package/lib/module/a11y/summary.js +184 -0
  89. package/lib/module/a11y/summary.js.map +1 -0
  90. package/lib/module/contract/datasource.js +57 -0
  91. package/lib/module/contract/datasource.js.map +1 -0
  92. package/lib/module/contract/distribution.js +40 -0
  93. package/lib/module/contract/distribution.js.map +1 -0
  94. package/lib/module/contract/errors.js +80 -0
  95. package/lib/module/contract/errors.js.map +1 -0
  96. package/lib/module/contract/format.js +123 -0
  97. package/lib/module/contract/format.js.map +1 -0
  98. package/lib/module/contract/interaction.js +20 -0
  99. package/lib/module/contract/interaction.js.map +1 -0
  100. package/lib/module/contract/marker.js +49 -0
  101. package/lib/module/contract/marker.js.map +1 -0
  102. package/lib/module/contract/props.js +4 -0
  103. package/lib/module/contract/props.js.map +1 -0
  104. package/lib/module/contract/state.js +61 -0
  105. package/lib/module/contract/state.js.map +1 -0
  106. package/lib/module/contract/strings.js +49 -0
  107. package/lib/module/contract/strings.js.map +1 -0
  108. package/lib/module/contract/theme.js +109 -0
  109. package/lib/module/contract/theme.js.map +1 -0
  110. package/lib/module/contract/value.js +101 -0
  111. package/lib/module/contract/value.js.map +1 -0
  112. package/lib/module/geometry/bar.js +253 -0
  113. package/lib/module/geometry/bar.js.map +1 -0
  114. package/lib/module/geometry/distribution.js +193 -0
  115. package/lib/module/geometry/distribution.js.map +1 -0
  116. package/lib/module/geometry/heatmap.js +182 -0
  117. package/lib/module/geometry/heatmap.js.map +1 -0
  118. package/lib/module/geometry/hitTest.js +110 -0
  119. package/lib/module/geometry/hitTest.js.map +1 -0
  120. package/lib/module/geometry/layout.js +122 -0
  121. package/lib/module/geometry/layout.js.map +1 -0
  122. package/lib/module/geometry/markers.js +53 -0
  123. package/lib/module/geometry/markers.js.map +1 -0
  124. package/lib/module/geometry/path.js +157 -0
  125. package/lib/module/geometry/path.js.map +1 -0
  126. package/lib/module/geometry/progress.js +199 -0
  127. package/lib/module/geometry/progress.js.map +1 -0
  128. package/lib/module/geometry/scale.js +119 -0
  129. package/lib/module/geometry/scale.js.map +1 -0
  130. package/lib/module/geometry/ticks.js +112 -0
  131. package/lib/module/geometry/ticks.js.map +1 -0
  132. package/lib/module/geometry/timeSeries.js +153 -0
  133. package/lib/module/geometry/timeSeries.js.map +1 -0
  134. package/lib/module/geometry/types.js +39 -0
  135. package/lib/module/geometry/types.js.map +1 -0
  136. package/lib/module/index.js +85 -0
  137. package/lib/module/index.js.map +1 -0
  138. package/lib/module/package.json +1 -0
  139. package/lib/module/react/ChartBoundary.js +75 -0
  140. package/lib/module/react/ChartBoundary.js.map +1 -0
  141. package/lib/module/react/ChartFrame.js +263 -0
  142. package/lib/module/react/ChartFrame.js.map +1 -0
  143. package/lib/module/react/ChartLegend.js +234 -0
  144. package/lib/module/react/ChartLegend.js.map +1 -0
  145. package/lib/module/react/ChartPlot.js +56 -0
  146. package/lib/module/react/ChartPlot.js.map +1 -0
  147. package/lib/module/react/ChartStateOverlay.js +82 -0
  148. package/lib/module/react/ChartStateOverlay.js.map +1 -0
  149. package/lib/module/react/ChartThemeProvider.js +44 -0
  150. package/lib/module/react/ChartThemeProvider.js.map +1 -0
  151. package/lib/module/react/charts.js +102 -0
  152. package/lib/module/react/charts.js.map +1 -0
  153. package/lib/module/react/pointEvent.js +30 -0
  154. package/lib/module/react/pointEvent.js.map +1 -0
  155. package/lib/module/react/useChartA11y.js +92 -0
  156. package/lib/module/react/useChartA11y.js.map +1 -0
  157. package/lib/module/react/useChartFormatters.js +61 -0
  158. package/lib/module/react/useChartFormatters.js.map +1 -0
  159. package/lib/module/react/useChartLayout.js +95 -0
  160. package/lib/module/react/useChartLayout.js.map +1 -0
  161. package/lib/module/react/useChartSelection.js +125 -0
  162. package/lib/module/react/useChartSelection.js.map +1 -0
  163. package/lib/module/react/useChartStatus.js +69 -0
  164. package/lib/module/react/useChartStatus.js.map +1 -0
  165. package/lib/module/render/Axis.js +80 -0
  166. package/lib/module/render/Axis.js.map +1 -0
  167. package/lib/module/render/Marks.js +173 -0
  168. package/lib/module/render/Marks.js.map +1 -0
  169. package/lib/module/validation/budgets.js +97 -0
  170. package/lib/module/validation/budgets.js.map +1 -0
  171. package/lib/module/validation/validateDatasource.js +184 -0
  172. package/lib/module/validation/validateDatasource.js.map +1 -0
  173. package/lib/typescript/commonjs/a11y/summary.d.ts +38 -0
  174. package/lib/typescript/commonjs/a11y/summary.d.ts.map +1 -0
  175. package/lib/typescript/commonjs/contract/datasource.d.ts +94 -0
  176. package/lib/typescript/commonjs/contract/datasource.d.ts.map +1 -0
  177. package/lib/typescript/commonjs/contract/distribution.d.ts +17 -0
  178. package/lib/typescript/commonjs/contract/distribution.d.ts.map +1 -0
  179. package/lib/typescript/commonjs/contract/errors.d.ts +53 -0
  180. package/lib/typescript/commonjs/contract/errors.d.ts.map +1 -0
  181. package/lib/typescript/commonjs/contract/format.d.ts +63 -0
  182. package/lib/typescript/commonjs/contract/format.d.ts.map +1 -0
  183. package/lib/typescript/commonjs/contract/interaction.d.ts +53 -0
  184. package/lib/typescript/commonjs/contract/interaction.d.ts.map +1 -0
  185. package/lib/typescript/commonjs/contract/marker.d.ts +39 -0
  186. package/lib/typescript/commonjs/contract/marker.d.ts.map +1 -0
  187. package/lib/typescript/commonjs/contract/props.d.ts +58 -0
  188. package/lib/typescript/commonjs/contract/props.d.ts.map +1 -0
  189. package/lib/typescript/commonjs/contract/state.d.ts +45 -0
  190. package/lib/typescript/commonjs/contract/state.d.ts.map +1 -0
  191. package/lib/typescript/commonjs/contract/strings.d.ts +39 -0
  192. package/lib/typescript/commonjs/contract/strings.d.ts.map +1 -0
  193. package/lib/typescript/commonjs/contract/theme.d.ts +85 -0
  194. package/lib/typescript/commonjs/contract/theme.d.ts.map +1 -0
  195. package/lib/typescript/commonjs/contract/value.d.ts +69 -0
  196. package/lib/typescript/commonjs/contract/value.d.ts.map +1 -0
  197. package/lib/typescript/commonjs/geometry/bar.d.ts +18 -0
  198. package/lib/typescript/commonjs/geometry/bar.d.ts.map +1 -0
  199. package/lib/typescript/commonjs/geometry/distribution.d.ts +23 -0
  200. package/lib/typescript/commonjs/geometry/distribution.d.ts.map +1 -0
  201. package/lib/typescript/commonjs/geometry/heatmap.d.ts +24 -0
  202. package/lib/typescript/commonjs/geometry/heatmap.d.ts.map +1 -0
  203. package/lib/typescript/commonjs/geometry/hitTest.d.ts +68 -0
  204. package/lib/typescript/commonjs/geometry/hitTest.d.ts.map +1 -0
  205. package/lib/typescript/commonjs/geometry/layout.d.ts +67 -0
  206. package/lib/typescript/commonjs/geometry/layout.d.ts.map +1 -0
  207. package/lib/typescript/commonjs/geometry/markers.d.ts +29 -0
  208. package/lib/typescript/commonjs/geometry/markers.d.ts.map +1 -0
  209. package/lib/typescript/commonjs/geometry/path.d.ts +66 -0
  210. package/lib/typescript/commonjs/geometry/path.d.ts.map +1 -0
  211. package/lib/typescript/commonjs/geometry/progress.d.ts +17 -0
  212. package/lib/typescript/commonjs/geometry/progress.d.ts.map +1 -0
  213. package/lib/typescript/commonjs/geometry/scale.d.ts +55 -0
  214. package/lib/typescript/commonjs/geometry/scale.d.ts.map +1 -0
  215. package/lib/typescript/commonjs/geometry/ticks.d.ts +48 -0
  216. package/lib/typescript/commonjs/geometry/ticks.d.ts.map +1 -0
  217. package/lib/typescript/commonjs/geometry/timeSeries.d.ts +20 -0
  218. package/lib/typescript/commonjs/geometry/timeSeries.d.ts.map +1 -0
  219. package/lib/typescript/commonjs/geometry/types.d.ts +91 -0
  220. package/lib/typescript/commonjs/geometry/types.d.ts.map +1 -0
  221. package/lib/typescript/commonjs/index.d.ts +47 -0
  222. package/lib/typescript/commonjs/index.d.ts.map +1 -0
  223. package/lib/typescript/commonjs/package.json +1 -0
  224. package/lib/typescript/commonjs/react/ChartBoundary.d.ts +47 -0
  225. package/lib/typescript/commonjs/react/ChartBoundary.d.ts.map +1 -0
  226. package/lib/typescript/commonjs/react/ChartFrame.d.ts +31 -0
  227. package/lib/typescript/commonjs/react/ChartFrame.d.ts.map +1 -0
  228. package/lib/typescript/commonjs/react/ChartLegend.d.ts +31 -0
  229. package/lib/typescript/commonjs/react/ChartLegend.d.ts.map +1 -0
  230. package/lib/typescript/commonjs/react/ChartPlot.d.ts +19 -0
  231. package/lib/typescript/commonjs/react/ChartPlot.d.ts.map +1 -0
  232. package/lib/typescript/commonjs/react/ChartStateOverlay.d.ts +25 -0
  233. package/lib/typescript/commonjs/react/ChartStateOverlay.d.ts.map +1 -0
  234. package/lib/typescript/commonjs/react/ChartThemeProvider.d.ts +21 -0
  235. package/lib/typescript/commonjs/react/ChartThemeProvider.d.ts.map +1 -0
  236. package/lib/typescript/commonjs/react/charts.d.ts +51 -0
  237. package/lib/typescript/commonjs/react/charts.d.ts.map +1 -0
  238. package/lib/typescript/commonjs/react/pointEvent.d.ts +13 -0
  239. package/lib/typescript/commonjs/react/pointEvent.d.ts.map +1 -0
  240. package/lib/typescript/commonjs/react/useChartA11y.d.ts +37 -0
  241. package/lib/typescript/commonjs/react/useChartA11y.d.ts.map +1 -0
  242. package/lib/typescript/commonjs/react/useChartFormatters.d.ts +21 -0
  243. package/lib/typescript/commonjs/react/useChartFormatters.d.ts.map +1 -0
  244. package/lib/typescript/commonjs/react/useChartLayout.d.ts +27 -0
  245. package/lib/typescript/commonjs/react/useChartLayout.d.ts.map +1 -0
  246. package/lib/typescript/commonjs/react/useChartSelection.d.ts +52 -0
  247. package/lib/typescript/commonjs/react/useChartSelection.d.ts.map +1 -0
  248. package/lib/typescript/commonjs/react/useChartStatus.d.ts +22 -0
  249. package/lib/typescript/commonjs/react/useChartStatus.d.ts.map +1 -0
  250. package/lib/typescript/commonjs/render/Axis.d.ts +31 -0
  251. package/lib/typescript/commonjs/render/Axis.d.ts.map +1 -0
  252. package/lib/typescript/commonjs/render/Marks.d.ts +44 -0
  253. package/lib/typescript/commonjs/render/Marks.d.ts.map +1 -0
  254. package/lib/typescript/commonjs/validation/budgets.d.ts +24 -0
  255. package/lib/typescript/commonjs/validation/budgets.d.ts.map +1 -0
  256. package/lib/typescript/commonjs/validation/validateDatasource.d.ts +26 -0
  257. package/lib/typescript/commonjs/validation/validateDatasource.d.ts.map +1 -0
  258. package/lib/typescript/module/a11y/summary.d.ts +38 -0
  259. package/lib/typescript/module/a11y/summary.d.ts.map +1 -0
  260. package/lib/typescript/module/contract/datasource.d.ts +94 -0
  261. package/lib/typescript/module/contract/datasource.d.ts.map +1 -0
  262. package/lib/typescript/module/contract/distribution.d.ts +17 -0
  263. package/lib/typescript/module/contract/distribution.d.ts.map +1 -0
  264. package/lib/typescript/module/contract/errors.d.ts +53 -0
  265. package/lib/typescript/module/contract/errors.d.ts.map +1 -0
  266. package/lib/typescript/module/contract/format.d.ts +63 -0
  267. package/lib/typescript/module/contract/format.d.ts.map +1 -0
  268. package/lib/typescript/module/contract/interaction.d.ts +53 -0
  269. package/lib/typescript/module/contract/interaction.d.ts.map +1 -0
  270. package/lib/typescript/module/contract/marker.d.ts +39 -0
  271. package/lib/typescript/module/contract/marker.d.ts.map +1 -0
  272. package/lib/typescript/module/contract/props.d.ts +58 -0
  273. package/lib/typescript/module/contract/props.d.ts.map +1 -0
  274. package/lib/typescript/module/contract/state.d.ts +45 -0
  275. package/lib/typescript/module/contract/state.d.ts.map +1 -0
  276. package/lib/typescript/module/contract/strings.d.ts +39 -0
  277. package/lib/typescript/module/contract/strings.d.ts.map +1 -0
  278. package/lib/typescript/module/contract/theme.d.ts +85 -0
  279. package/lib/typescript/module/contract/theme.d.ts.map +1 -0
  280. package/lib/typescript/module/contract/value.d.ts +69 -0
  281. package/lib/typescript/module/contract/value.d.ts.map +1 -0
  282. package/lib/typescript/module/geometry/bar.d.ts +18 -0
  283. package/lib/typescript/module/geometry/bar.d.ts.map +1 -0
  284. package/lib/typescript/module/geometry/distribution.d.ts +23 -0
  285. package/lib/typescript/module/geometry/distribution.d.ts.map +1 -0
  286. package/lib/typescript/module/geometry/heatmap.d.ts +24 -0
  287. package/lib/typescript/module/geometry/heatmap.d.ts.map +1 -0
  288. package/lib/typescript/module/geometry/hitTest.d.ts +68 -0
  289. package/lib/typescript/module/geometry/hitTest.d.ts.map +1 -0
  290. package/lib/typescript/module/geometry/layout.d.ts +67 -0
  291. package/lib/typescript/module/geometry/layout.d.ts.map +1 -0
  292. package/lib/typescript/module/geometry/markers.d.ts +29 -0
  293. package/lib/typescript/module/geometry/markers.d.ts.map +1 -0
  294. package/lib/typescript/module/geometry/path.d.ts +66 -0
  295. package/lib/typescript/module/geometry/path.d.ts.map +1 -0
  296. package/lib/typescript/module/geometry/progress.d.ts +17 -0
  297. package/lib/typescript/module/geometry/progress.d.ts.map +1 -0
  298. package/lib/typescript/module/geometry/scale.d.ts +55 -0
  299. package/lib/typescript/module/geometry/scale.d.ts.map +1 -0
  300. package/lib/typescript/module/geometry/ticks.d.ts +48 -0
  301. package/lib/typescript/module/geometry/ticks.d.ts.map +1 -0
  302. package/lib/typescript/module/geometry/timeSeries.d.ts +20 -0
  303. package/lib/typescript/module/geometry/timeSeries.d.ts.map +1 -0
  304. package/lib/typescript/module/geometry/types.d.ts +91 -0
  305. package/lib/typescript/module/geometry/types.d.ts.map +1 -0
  306. package/lib/typescript/module/index.d.ts +47 -0
  307. package/lib/typescript/module/index.d.ts.map +1 -0
  308. package/lib/typescript/module/package.json +1 -0
  309. package/lib/typescript/module/react/ChartBoundary.d.ts +47 -0
  310. package/lib/typescript/module/react/ChartBoundary.d.ts.map +1 -0
  311. package/lib/typescript/module/react/ChartFrame.d.ts +31 -0
  312. package/lib/typescript/module/react/ChartFrame.d.ts.map +1 -0
  313. package/lib/typescript/module/react/ChartLegend.d.ts +31 -0
  314. package/lib/typescript/module/react/ChartLegend.d.ts.map +1 -0
  315. package/lib/typescript/module/react/ChartPlot.d.ts +19 -0
  316. package/lib/typescript/module/react/ChartPlot.d.ts.map +1 -0
  317. package/lib/typescript/module/react/ChartStateOverlay.d.ts +25 -0
  318. package/lib/typescript/module/react/ChartStateOverlay.d.ts.map +1 -0
  319. package/lib/typescript/module/react/ChartThemeProvider.d.ts +21 -0
  320. package/lib/typescript/module/react/ChartThemeProvider.d.ts.map +1 -0
  321. package/lib/typescript/module/react/charts.d.ts +51 -0
  322. package/lib/typescript/module/react/charts.d.ts.map +1 -0
  323. package/lib/typescript/module/react/pointEvent.d.ts +13 -0
  324. package/lib/typescript/module/react/pointEvent.d.ts.map +1 -0
  325. package/lib/typescript/module/react/useChartA11y.d.ts +37 -0
  326. package/lib/typescript/module/react/useChartA11y.d.ts.map +1 -0
  327. package/lib/typescript/module/react/useChartFormatters.d.ts +21 -0
  328. package/lib/typescript/module/react/useChartFormatters.d.ts.map +1 -0
  329. package/lib/typescript/module/react/useChartLayout.d.ts +27 -0
  330. package/lib/typescript/module/react/useChartLayout.d.ts.map +1 -0
  331. package/lib/typescript/module/react/useChartSelection.d.ts +52 -0
  332. package/lib/typescript/module/react/useChartSelection.d.ts.map +1 -0
  333. package/lib/typescript/module/react/useChartStatus.d.ts +22 -0
  334. package/lib/typescript/module/react/useChartStatus.d.ts.map +1 -0
  335. package/lib/typescript/module/render/Axis.d.ts +31 -0
  336. package/lib/typescript/module/render/Axis.d.ts.map +1 -0
  337. package/lib/typescript/module/render/Marks.d.ts +44 -0
  338. package/lib/typescript/module/render/Marks.d.ts.map +1 -0
  339. package/lib/typescript/module/validation/budgets.d.ts +24 -0
  340. package/lib/typescript/module/validation/budgets.d.ts.map +1 -0
  341. package/lib/typescript/module/validation/validateDatasource.d.ts +26 -0
  342. package/lib/typescript/module/validation/validateDatasource.d.ts.map +1 -0
  343. package/package.json +40 -15
  344. package/skills/sdk-rn-chart/SKILL.md +49 -14
  345. package/src/a11y/summary.ts +34 -15
  346. package/src/contract/distribution.ts +44 -0
  347. package/src/contract/errors.ts +6 -0
  348. package/src/contract/interaction.ts +2 -2
  349. package/src/contract/strings.ts +2 -0
  350. package/src/geometry/bar.ts +27 -16
  351. package/src/geometry/distribution.ts +11 -6
  352. package/src/geometry/heatmap.ts +34 -17
  353. package/src/geometry/hitTest.ts +35 -0
  354. package/src/geometry/progress.ts +0 -1
  355. package/src/geometry/ticks.ts +0 -13
  356. package/src/geometry/timeSeries.ts +7 -2
  357. package/src/geometry/types.ts +11 -0
  358. package/src/index.ts +4 -1
  359. package/src/react/ChartFrame.tsx +126 -373
  360. package/src/react/ChartLegend.tsx +60 -3
  361. package/src/react/ChartPlot.tsx +57 -0
  362. package/src/react/ChartStateOverlay.tsx +94 -0
  363. package/src/react/charts.tsx +27 -12
  364. package/src/react/pointEvent.ts +40 -0
  365. package/src/react/useChartA11y.ts +113 -0
  366. package/src/react/useChartFormatters.ts +105 -0
  367. package/src/react/useChartLayout.ts +5 -2
  368. package/src/react/useChartSelection.ts +77 -40
  369. package/src/react/useChartStatus.ts +85 -0
  370. package/src/render/Axis.tsx +26 -22
  371. package/src/render/Marks.tsx +2 -9
  372. package/src/validation/budgets.ts +6 -4
  373. package/src/validation/validateDatasource.ts +38 -14
@@ -0,0 +1,184 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.GeometryLabels = GeometryLabels;
7
+ exports.MarkerLines = MarkerLines;
8
+ exports.Marks = Marks;
9
+ exports.NonValueTextures = NonValueTextures;
10
+ exports.SelectionHighlight = SelectionHighlight;
11
+ exports.dashArrayFor = dashArrayFor;
12
+ var _react = _interopRequireDefault(require("react"));
13
+ var _reactNativeSvg = require("react-native-svg");
14
+ var _jsxRuntime = require("react/jsx-runtime");
15
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
16
+ /**
17
+ * Private SVG adapter for resolved geometry.
18
+ *
19
+ * Everything here consumes plain data produced by `geometry/`. Swapping the
20
+ * drawing substrate means rewriting this directory and nothing else.
21
+ */
22
+
23
+ /**
24
+ * Dash patterns give series a second, non-colour identity (FR-064). `undefined`
25
+ * means a solid stroke.
26
+ */
27
+ function dashArrayFor(pattern) {
28
+ switch (pattern) {
29
+ case 'dashed':
30
+ return '6,4';
31
+ case 'dotted':
32
+ return '1,4';
33
+ case 'dashDot':
34
+ return '8,3,1,3';
35
+ default:
36
+ return undefined;
37
+ }
38
+ }
39
+ const TEXTURE_IDS = {
40
+ gap: 'rnchart-texture-gap',
41
+ hatch: 'rnchart-texture-hatch',
42
+ lockedHatch: 'rnchart-texture-locked'
43
+ };
44
+
45
+ /**
46
+ * Texture definitions for the three non-value classes.
47
+ *
48
+ * Deliberately shape-based rather than colour-based: a reader in greyscale, or
49
+ * with reduced colour perception, must still tell a gap from a hatch from a
50
+ * locked cell (FR-064, SC-012).
51
+ */
52
+ function NonValueTextures({
53
+ theme
54
+ }) {
55
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNativeSvg.Defs, {
56
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNativeSvg.Pattern, {
57
+ id: TEXTURE_IDS.gap,
58
+ patternUnits: "userSpaceOnUse",
59
+ width: "6",
60
+ height: "6",
61
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNativeSvg.Rect, {
62
+ width: "6",
63
+ height: "6",
64
+ fill: theme.surface
65
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNativeSvg.Rect, {
66
+ x: "2",
67
+ y: "2",
68
+ width: "1.5",
69
+ height: "1.5",
70
+ fill: theme.muted
71
+ })]
72
+ }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNativeSvg.Pattern, {
73
+ id: TEXTURE_IDS.hatch,
74
+ patternUnits: "userSpaceOnUse",
75
+ width: "8",
76
+ height: "8",
77
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNativeSvg.Rect, {
78
+ width: "8",
79
+ height: "8",
80
+ fill: theme.surface
81
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNativeSvg.Path, {
82
+ d: "M0 8L8 0",
83
+ stroke: theme.muted,
84
+ strokeWidth: "1"
85
+ })]
86
+ }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNativeSvg.Pattern, {
87
+ id: TEXTURE_IDS.lockedHatch,
88
+ patternUnits: "userSpaceOnUse",
89
+ width: "8",
90
+ height: "8",
91
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNativeSvg.Rect, {
92
+ width: "8",
93
+ height: "8",
94
+ fill: theme.surface
95
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNativeSvg.Path, {
96
+ d: "M0 8L8 0M0 0L8 8",
97
+ stroke: theme.muted,
98
+ strokeWidth: "1"
99
+ })]
100
+ })]
101
+ });
102
+ }
103
+ function fillFor(mark) {
104
+ if (mark.texture) {
105
+ return `url(#${TEXTURE_IDS[mark.texture]})`;
106
+ }
107
+ return mark.filled ? mark.color : 'none';
108
+ }
109
+ function Marks({
110
+ paths
111
+ }) {
112
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNativeSvg.G, {
113
+ children: paths.map(mark => {
114
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNativeSvg.Path, {
115
+ d: mark.d,
116
+ fill: fillFor(mark),
117
+ stroke: mark.filled ? 'none' : mark.color,
118
+ strokeWidth: mark.filled ? 0 : 2,
119
+ strokeDasharray: mark.filled ? undefined : dashArrayFor(mark.pattern),
120
+ strokeLinejoin: "round",
121
+ strokeLinecap: "round",
122
+ opacity: mark.opacity ?? 1
123
+ }, mark.key);
124
+ })
125
+ });
126
+ }
127
+ function MarkerLines({
128
+ markers,
129
+ theme
130
+ }) {
131
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNativeSvg.G, {
132
+ children: markers.map(marker => /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNativeSvg.Path, {
133
+ d: marker.d,
134
+ stroke: theme.onSurface,
135
+ strokeWidth: 1,
136
+ strokeDasharray: "4,3",
137
+ fill: "none"
138
+ }, marker.id))
139
+ });
140
+ }
141
+ function GeometryLabels({
142
+ labels,
143
+ theme,
144
+ fontSize
145
+ }) {
146
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNativeSvg.G, {
147
+ children: labels.filter(label => !label.muted).map(label => /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNativeSvg.Text, {
148
+ x: label.x,
149
+ y: label.y,
150
+ fill: theme.typography.valueLabel.color,
151
+ fontSize: fontSize,
152
+ fontWeight: theme.typography.valueLabel.fontWeight,
153
+ textAnchor: label.anchor,
154
+ children: label.text
155
+ }, label.key))
156
+ });
157
+ }
158
+
159
+ /** Marks the currently selected point, when it still resolves. */
160
+ function SelectionHighlight({
161
+ x,
162
+ y,
163
+ color
164
+ }) {
165
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNativeSvg.G, {
166
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNativeSvg.Rect, {
167
+ x: x - 6,
168
+ y: y - 6,
169
+ width: 12,
170
+ height: 12,
171
+ rx: 6,
172
+ fill: color,
173
+ opacity: 0.25
174
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNativeSvg.Rect, {
175
+ x: x - 3,
176
+ y: y - 3,
177
+ width: 6,
178
+ height: 6,
179
+ rx: 3,
180
+ fill: color
181
+ })]
182
+ });
183
+ }
184
+ //# sourceMappingURL=Marks.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_react","_interopRequireDefault","require","_reactNativeSvg","_jsxRuntime","e","__esModule","default","dashArrayFor","pattern","undefined","TEXTURE_IDS","gap","hatch","lockedHatch","NonValueTextures","theme","jsxs","Defs","children","Pattern","id","patternUnits","width","height","jsx","Rect","fill","surface","x","y","muted","Path","d","stroke","strokeWidth","fillFor","mark","texture","filled","color","Marks","paths","G","map","strokeDasharray","strokeLinejoin","strokeLinecap","opacity","key","MarkerLines","markers","marker","onSurface","GeometryLabels","labels","fontSize","filter","label","Text","typography","valueLabel","fontWeight","textAnchor","anchor","text","SelectionHighlight","rx"],"sourceRoot":"../../../src","sources":["render/Marks.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,106 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.DATASET_BUDGETS = void 0;
7
+ exports.__resetBudgetWarnings = __resetBudgetWarnings;
8
+ exports.checkBudget = checkBudget;
9
+ exports.releaseBudgetWarning = releaseBudgetWarning;
10
+ exports.warnIfOverBudget = warnIfOverBudget;
11
+ var _rnCore = require("@chipmobilesdk/rn-core");
12
+ /**
13
+ * Dataset budgets (FR-074, FR-075, FR-076).
14
+ *
15
+ * Over budget, the chart **still renders**. Degrading silently would break the
16
+ * "never present a reduced picture as complete" rule, and refusing to draw
17
+ * would turn a performance hint into an outage. Instead we warn the developer
18
+ * once, in dev builds only.
19
+ *
20
+ * The `__DEV__` gate matters: it makes the check dead code that Metro strips
21
+ * from release bundles, which is what makes "never in production" verifiable
22
+ * rather than merely intended.
23
+ *
24
+ * The figures were validated against emitted element counts in
25
+ * specs/007-rn-chart-package/research.md R2 — element count scales with series,
26
+ * not with points, so these budgets are about JS work rather than view count.
27
+ */
28
+
29
+ const DATASET_BUDGETS = exports.DATASET_BUDGETS = {
30
+ timeSeries: {
31
+ maxSeries: 5,
32
+ maxPointsPerSeries: 500
33
+ },
34
+ bar: {
35
+ maxSeries: 5,
36
+ maxPointsPerSeries: 60
37
+ },
38
+ distribution: {
39
+ maxSeries: 1,
40
+ maxPointsPerSeries: 12
41
+ },
42
+ progress: {
43
+ maxSeries: 1,
44
+ maxPointsPerSeries: 8
45
+ },
46
+ heatmap: {
47
+ maxSeries: 1,
48
+ maxCells: 1000
49
+ }
50
+ };
51
+ function checkBudget(datasource, family) {
52
+ const budget = DATASET_BUDGETS[family];
53
+ const seriesCount = datasource.series.length;
54
+ let maxPoints = 0;
55
+ let totalPoints = 0;
56
+ for (const series of datasource.series) {
57
+ maxPoints = Math.max(maxPoints, series.points.length);
58
+ totalPoints += series.points.length;
59
+ }
60
+ const overSeries = seriesCount > budget.maxSeries;
61
+ const overPoints = budget.maxPointsPerSeries !== undefined && maxPoints > budget.maxPointsPerSeries;
62
+ const overCells = budget.maxCells !== undefined && totalPoints > budget.maxCells;
63
+ return {
64
+ withinBudget: !overSeries && !overPoints && !overCells,
65
+ seriesCount,
66
+ maxPointsInAnySeries: maxPoints,
67
+ totalPoints
68
+ };
69
+ }
70
+ const warnedCharts = new Set();
71
+
72
+ /** Chart diagnostics also reach the app's SDK sinks (`installSdkSink`, CORE-08). */
73
+ const channel = (0, _rnCore.createDiagnosticChannel)('rn-chart');
74
+
75
+ /**
76
+ * Warns once per chart instance per mount. De-duplicating matters: a scrolling
77
+ * dashboard would otherwise flood the console on every frame.
78
+ */
79
+ function warnIfOverBudget(datasource, family, instanceKey) {
80
+ // Counting the dataset is dev work too: a release build skips it entirely.
81
+ if (!__DEV__ || warnedCharts.has(instanceKey)) {
82
+ return;
83
+ }
84
+ const check = checkBudget(datasource, family);
85
+ if (!check.withinBudget) {
86
+ warnedCharts.add(instanceKey);
87
+ channel.emit('over_budget', 'warn', {
88
+ family,
89
+ series: check.seriesCount,
90
+ maxPoints: check.maxPointsInAnySeries
91
+ });
92
+ const budget = DATASET_BUDGETS[family];
93
+ console.warn(`[rn-chart] ${family} chart "${instanceKey}" exceeds its documented dataset budget ` + `(${check.seriesCount} series x up to ${check.maxPointsInAnySeries} points; ` + `budget is ${budget.maxSeries} series` + (budget.maxPointsPerSeries ? ` x ${budget.maxPointsPerSeries} points` : '') + (budget.maxCells ? `, ${budget.maxCells} cells` : '') + '). The chart still renders and drops nothing — aggregate or downsample ' + 'upstream if it feels slow. This warning appears once per chart and never ' + 'in production builds.');
94
+ }
95
+ }
96
+
97
+ /** Called on unmount so a remounted chart can warn again. */
98
+ function releaseBudgetWarning(instanceKey) {
99
+ warnedCharts.delete(instanceKey);
100
+ }
101
+
102
+ /** Test-only reset. */
103
+ function __resetBudgetWarnings() {
104
+ warnedCharts.clear();
105
+ }
106
+ //# sourceMappingURL=budgets.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_rnCore","require","DATASET_BUDGETS","exports","timeSeries","maxSeries","maxPointsPerSeries","bar","distribution","progress","heatmap","maxCells","checkBudget","datasource","family","budget","seriesCount","series","length","maxPoints","totalPoints","Math","max","points","overSeries","overPoints","undefined","overCells","withinBudget","maxPointsInAnySeries","warnedCharts","Set","channel","createDiagnosticChannel","warnIfOverBudget","instanceKey","__DEV__","has","check","add","emit","console","warn","releaseBudgetWarning","delete","__resetBudgetWarnings","clear"],"sourceRoot":"../../../src","sources":["validation/budgets.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,189 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.validateDatasource = validateDatasource;
7
+ var _datasource = require("../contract/datasource.js");
8
+ var _distribution = require("../contract/distribution.js");
9
+ var _errors = require("../contract/errors.js");
10
+ var _value = require("../contract/value.js");
11
+ /**
12
+ * Datasource validation (FR-015, FR-017, FR-007a).
13
+ *
14
+ * Rules V1-V8 from specs/007-rn-chart-package/data-model.md §6. Every failure
15
+ * returns a `ChartError` built from the fixed message catalogue, so validation
16
+ * output can never carry a data value or a series label.
17
+ *
18
+ * Note V8: an empty datasource is **not** an error. It resolves to the empty
19
+ * state, which is a first-class outcome rather than a failure.
20
+ */
21
+
22
+ function validateDatasource(datasource, family, chartId, /** What a distribution's values mean, when the app says; inferred otherwise. */
23
+ distributionValues) {
24
+ const base = {
25
+ isEmpty: true,
26
+ isPartial: false,
27
+ totalIncomplete: false
28
+ };
29
+
30
+ // V4 — the receiving family must accept the declared position kind. Checked
31
+ // first because a mismatch here makes everything downstream meaningless.
32
+ if (!(0, _datasource.familyAcceptsPositionKind)(family, datasource.positionKind)) {
33
+ return {
34
+ ...base,
35
+ isEmpty: false,
36
+ error: (0, _errors.validationError)('familyPositionKindUnsupported', {
37
+ chartId,
38
+ family,
39
+ detail: {
40
+ actualKind: datasource.positionKind
41
+ }
42
+ })
43
+ };
44
+ }
45
+
46
+ // V1 — series ids unique.
47
+ const seenSeriesIds = new Set();
48
+ for (const series of datasource.series) {
49
+ if (seenSeriesIds.has(series.id)) {
50
+ return {
51
+ ...base,
52
+ isEmpty: false,
53
+ error: (0, _errors.validationError)('duplicateSeriesId', {
54
+ chartId,
55
+ family,
56
+ detail: {
57
+ occurrences: seenSeriesIds.size
58
+ }
59
+ })
60
+ };
61
+ }
62
+ seenSeriesIds.add(series.id);
63
+ }
64
+ let totalPoints = 0;
65
+ let knownPoints = 0;
66
+ const matrixRows = new Set();
67
+ const matrixColumns = new Set();
68
+ for (const series of datasource.series) {
69
+ // V2 — point ids unique within their series.
70
+ const seenPointIds = new Set();
71
+ for (const point of series.points) {
72
+ if (seenPointIds.has(point.id)) {
73
+ return {
74
+ ...base,
75
+ isEmpty: false,
76
+ error: (0, _errors.validationError)('duplicatePointId', {
77
+ chartId,
78
+ family,
79
+ detail: {
80
+ occurrences: seenPointIds.size
81
+ }
82
+ })
83
+ };
84
+ }
85
+ seenPointIds.add(point.id);
86
+
87
+ // V3 — every point matches the declared position kind.
88
+ if (point.position.kind !== datasource.positionKind) {
89
+ return {
90
+ ...base,
91
+ isEmpty: false,
92
+ error: (0, _errors.validationError)('positionKindMismatch', {
93
+ chartId,
94
+ family,
95
+ detail: {
96
+ expectedKind: datasource.positionKind,
97
+ actualKind: point.position.kind
98
+ }
99
+ })
100
+ };
101
+ }
102
+ if (point.position.kind === 'matrix') {
103
+ matrixRows.add(point.position.row);
104
+ matrixColumns.add(point.position.column);
105
+ }
106
+
107
+ // V9 — a known value is a finite number, and so is an instant. NaN or
108
+ // Infinity used to be drawn at the origin without a word (CHT-10).
109
+ const finite = (!(0, _value.isKnown)(point.value) || Number.isFinite(point.value.value)) && (point.position.kind !== 'instant' || Number.isFinite(point.position.at));
110
+ if (!finite) {
111
+ return {
112
+ ...base,
113
+ isEmpty: false,
114
+ error: (0, _errors.validationError)('nonFiniteValue', {
115
+ chartId,
116
+ family
117
+ })
118
+ };
119
+ }
120
+ // V10 — a share of a whole cannot be negative.
121
+ if (family === 'distribution' && (0, _value.isKnown)(point.value) && point.value.value < 0) {
122
+ return {
123
+ ...base,
124
+ isEmpty: false,
125
+ error: (0, _errors.validationError)('negativeDistributionValue', {
126
+ chartId,
127
+ family
128
+ })
129
+ };
130
+ }
131
+ totalPoints += 1;
132
+ if ((0, _value.isKnown)(point.value)) {
133
+ knownPoints += 1;
134
+ }
135
+ }
136
+ }
137
+
138
+ // V5 — a matrix must be rectangular: every row/column pair accounted for.
139
+ if (datasource.positionKind === 'matrix' && totalPoints > 0) {
140
+ const expected = matrixRows.size * matrixColumns.size;
141
+ if (totalPoints !== expected) {
142
+ return {
143
+ ...base,
144
+ isEmpty: false,
145
+ error: (0, _errors.validationError)('inconsistentMatrix', {
146
+ chartId,
147
+ family,
148
+ detail: {
149
+ occurrences: Math.abs(expected - totalPoints)
150
+ }
151
+ })
152
+ };
153
+ }
154
+ }
155
+
156
+ // V6 — distribution segments that do not sum to the whole are flagged, never
157
+ // rescaled. This is a flag rather than a rejection: the chart still renders
158
+ // and marks the total incomplete.
159
+ let totalIncomplete = knownPoints < totalPoints;
160
+ if (family === 'distribution' && totalPoints > 0) {
161
+ totalIncomplete = totalIncomplete || !distributionSumsToWhole(datasource, distributionValues);
162
+ }
163
+ return {
164
+ isEmpty: totalPoints === 0,
165
+ isPartial: totalPoints > 0 && knownPoints > 0 && knownPoints < totalPoints,
166
+ totalIncomplete
167
+ };
168
+ }
169
+
170
+ /**
171
+ * Only proportions can be checked for wholeness, and only when every point is
172
+ * known. Absolute values are a whole by definition once they sum to something.
173
+ */
174
+ function distributionSumsToWhole(datasource, declared) {
175
+ let sum = 0;
176
+ for (const series of datasource.series) {
177
+ for (const point of series.points) {
178
+ if (!(0, _value.isKnown)(point.value)) {
179
+ return false;
180
+ }
181
+ sum += point.value.value;
182
+ }
183
+ }
184
+ if ((0, _distribution.resolveDistributionValues)(datasource, declared) === 'absolute') {
185
+ return sum > 0;
186
+ }
187
+ return Math.abs(sum - 1) <= _distribution.DISTRIBUTION_SUM_TOLERANCE;
188
+ }
189
+ //# sourceMappingURL=validateDatasource.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_datasource","require","_distribution","_errors","_value","validateDatasource","datasource","family","chartId","distributionValues","base","isEmpty","isPartial","totalIncomplete","familyAcceptsPositionKind","positionKind","error","validationError","detail","actualKind","seenSeriesIds","Set","series","has","id","occurrences","size","add","totalPoints","knownPoints","matrixRows","matrixColumns","seenPointIds","point","points","position","kind","expectedKind","row","column","finite","isKnown","value","Number","isFinite","at","expected","Math","abs","distributionSumsToWhole","declared","sum","resolveDistributionValues","DISTRIBUTION_SUM_TOLERANCE"],"sourceRoot":"../../../src","sources":["validation/validateDatasource.ts"],"mappings":"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","ignoreList":[]}