@chipmobilesdk/rn-chart 0.4.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 (343) hide show
  1. package/CHANGELOG.md +111 -0
  2. package/README.md +1 -1
  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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"props.d.ts","sourceRoot":"","sources":["../../../../src/contract/props.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEzD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AACpD,OAAO,KAAK,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAC/D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACtD,OAAO,KAAK,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAC;AACxE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAC1C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAE1C,MAAM,WAAW,kBAAkB,CAAC,CAAC,GAAG,OAAO;IAC9C,8CAA8C;IAC9C,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC,UAAU,EAAE,eAAe,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,aAAa,KAAK,MAAM,CAAC;IAC3F,6DAA6D;IAC7D,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC;CAC/B;AAED,MAAM,WAAW,cAAc,CAAC,CAAC,GAAG,OAAO,CAAE,SAAQ,gBAAgB,CAAC,CAAC,CAAC;IACvE;;;OAGG;IACH,QAAQ,CAAC,UAAU,EAAE,eAAe,CAAC,CAAC,CAAC,CAAC;IAExC;;;OAGG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,qBAAqB,CAAC;IACxC,QAAQ,CAAC,YAAY,CAAC,EAAE,iBAAiB,CAAC;IAE1C,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,SAAS,CAAC,EAAE,mBAAmB,CAAC;IAEzC,QAAQ,CAAC,KAAK,CAAC,EAAE,UAAU,CAAC;IAC5B,QAAQ,CAAC,UAAU,CAAC,EAAE,eAAe,CAAC;IACtC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,GAAG;QAAE,QAAQ,CAAC,QAAQ,EAAE,KAAK,GAAG,QAAQ,CAAA;KAAE,CAAC;IAEpE,QAAQ,CAAC,aAAa,CAAC,EAAE,kBAAkB,CAAC,CAAC,CAAC,CAAC;IAC/C;;;;OAIG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;IAEzC,6CAA6C;IAC7C,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IACtC,8DAA8D;IAC9D,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,CAAC;CAC5B;AAED,MAAM,MAAM,cAAc,GAAG,CAAC,KAAK,EAAE,UAAU,KAAK,MAAM,CAAC"}
@@ -0,0 +1,45 @@
1
+ /**
2
+ * Chart status contract (FR-029 to FR-038).
3
+ *
4
+ * Ownership is split on a simple principle: the package derives what only the
5
+ * data can determine, and the app declares what only the app can know.
6
+ *
7
+ * empty, partial -> derived from the datasource
8
+ * loading, stale, -> declared by the app: it alone knows about its own
9
+ * noPermission, fetches, cache age, access rules, and failures
10
+ * error
11
+ */
12
+ import type { ReactNode } from 'react';
13
+ import type { ChartError } from './errors';
14
+ export type ChartStatus = 'loading' | 'empty' | 'ready' | 'error' | 'stale' | 'noPermission' | 'partial';
15
+ /** The statuses an app may declare. `empty` and `partial` are derived. */
16
+ export type DeclarableChartStatus = Exclude<ChartStatus, 'empty' | 'partial'>;
17
+ /**
18
+ * Resolution precedence, highest first.
19
+ *
20
+ * `noPermission` outranks everything so restricted values can never slip
21
+ * through some other state. `stale` and `partial` sit below the blocking
22
+ * states because they are modifiers on a chart that still draws its data.
23
+ */
24
+ export declare const STATUS_PRECEDENCE: readonly ChartStatus[];
25
+ export interface StatusInputs {
26
+ /** What the app declared, if anything. */
27
+ readonly declared?: DeclarableChartStatus;
28
+ /** True when the datasource carries no points at all. */
29
+ readonly isEmpty: boolean;
30
+ /** True when some points are valid and others are unknown/n-a/withheld. */
31
+ readonly isPartial: boolean;
32
+ /** A validation failure or a contained render exception. */
33
+ readonly error?: ChartError;
34
+ }
35
+ export declare function resolveStatus(inputs: StatusInputs): ChartStatus;
36
+ /** Statuses in which the chart draws its data (possibly with an indicator). */
37
+ export declare function drawsData(status: ChartStatus): boolean;
38
+ /**
39
+ * Statuses in which no data-selection callback may fire, because the chart is
40
+ * not displaying the values a callback would carry (FR-053).
41
+ */
42
+ export declare function suppressesInteraction(status: ChartStatus): boolean;
43
+ /** Per-status content the app supplies, replacing any package wording (FR-035). */
44
+ export type ChartStateContent = Partial<Record<ChartStatus, ReactNode>>;
45
+ //# sourceMappingURL=state.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../../../../src/contract/state.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAE3C,MAAM,MAAM,WAAW,GACtB,SAAS,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,GAAG,cAAc,GAAG,SAAS,CAAC;AAEhF,0EAA0E;AAC1E,MAAM,MAAM,qBAAqB,GAAG,OAAO,CAAC,WAAW,EAAE,OAAO,GAAG,SAAS,CAAC,CAAC;AAE9E;;;;;;GAMG;AACH,eAAO,MAAM,iBAAiB,EAAE,SAAS,WAAW,EAQnD,CAAC;AAEF,MAAM,WAAW,YAAY;IAC5B,0CAA0C;IAC1C,QAAQ,CAAC,QAAQ,CAAC,EAAE,qBAAqB,CAAC;IAC1C,yDAAyD;IACzD,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,2EAA2E;IAC3E,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,4DAA4D;IAC5D,QAAQ,CAAC,KAAK,CAAC,EAAE,UAAU,CAAC;CAC5B;AAED,wBAAgB,aAAa,CAAC,MAAM,EAAE,YAAY,GAAG,WAAW,CAsB/D;AAED,+EAA+E;AAC/E,wBAAgB,SAAS,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAEtD;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAElE;AAED,mFAAmF;AACnF,MAAM,MAAM,iBAAiB,GAAG,OAAO,CAAC,MAAM,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC,CAAC"}
@@ -0,0 +1,39 @@
1
+ export declare const chartStrings: import("@chipmobilesdk/rn-core").MessageSet<{
2
+ 'chart.family.progress': string;
3
+ 'chart.family.distribution': string;
4
+ 'chart.family.timeSeries': string;
5
+ 'chart.family.bar': string;
6
+ 'chart.family.heatmap': string;
7
+ 'chart.status.loading': string;
8
+ 'chart.status.empty': string;
9
+ 'chart.status.error': string;
10
+ 'chart.status.stale': string;
11
+ 'chart.status.noPermission': string;
12
+ 'chart.status.partial': string;
13
+ 'chart.summary.heading': string;
14
+ 'chart.summary.headingUntitled': string;
15
+ 'chart.summary.scale': string;
16
+ 'chart.summary.scaleSingle': string;
17
+ 'chart.summary.single': string;
18
+ 'chart.summary.extremes': string;
19
+ 'chart.summary.marker': string;
20
+ 'chart.summary.incomplete': string;
21
+ 'chart.point.withheld': string;
22
+ 'chart.point.noData': string;
23
+ 'chart.point.value': string;
24
+ 'chart.total': string;
25
+ 'chart.total.incomplete': string;
26
+ 'chart.action.next': string;
27
+ 'chart.action.previous': string;
28
+ 'chart.state.loading': string;
29
+ 'chart.state.empty': string;
30
+ 'chart.state.error': string;
31
+ 'chart.state.noPermission': string;
32
+ 'chart.legend.hide': string;
33
+ 'chart.legend.show': string;
34
+ 'chart.legend.scale': string;
35
+ 'chart.note.incomplete': string;
36
+ }, Record<never, string>>;
37
+ export type ChartStrings = typeof chartStrings.defaults;
38
+ export type ChartStringKey = keyof ChartStrings;
39
+ //# sourceMappingURL=strings.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"strings.d.ts","sourceRoot":"","sources":["../../../../src/contract/strings.ts"],"names":[],"mappings":"AASA,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;yBAqCvB,CAAC;AAEH,MAAM,MAAM,YAAY,GAAG,OAAO,YAAY,CAAC,QAAQ,CAAC;AACxD,MAAM,MAAM,cAAc,GAAG,MAAM,YAAY,CAAC"}
@@ -0,0 +1,85 @@
1
+ /**
2
+ * Theme contract (FR-060 to FR-065).
3
+ *
4
+ * A plain value type rather than a dependency. The package declares what it
5
+ * needs and any design system can satisfy it — which is what keeps
6
+ * `@chipmobilesdk/rn-theme` and `react-native-unistyles` out of this package's
7
+ * dependency list entirely. The demo app owns the mapping adapter.
8
+ *
9
+ * Non-colour encodings are first-class here, because meaning must never ride on
10
+ * hue alone (FR-064).
11
+ */
12
+ import type { ValueKind } from './value';
13
+ export interface TextStyleTokens {
14
+ readonly fontSize: number;
15
+ readonly fontWeight?: '400' | '500' | '600' | '700';
16
+ readonly color: string;
17
+ readonly letterSpacing?: number;
18
+ }
19
+ /** How the three non-value classes are drawn: texture, never a hue difference. */
20
+ export type NonValueTexture = 'gap' | 'hatch' | 'lockedHatch';
21
+ export interface ChartTheme {
22
+ readonly colorScheme: 'light' | 'dark';
23
+ /** Categorical fallback, at least 8 entries, distinguishable in greyscale. */
24
+ readonly palette: readonly string[];
25
+ readonly surface: string;
26
+ readonly onSurface: string;
27
+ readonly axis: string;
28
+ readonly grid: string;
29
+ readonly muted: string;
30
+ readonly typography: {
31
+ readonly axisLabel: TextStyleTokens;
32
+ readonly legendLabel: TextStyleTokens;
33
+ readonly valueLabel: TextStyleTokens;
34
+ };
35
+ readonly spacing: {
36
+ readonly xs: number;
37
+ readonly sm: number;
38
+ readonly md: number;
39
+ };
40
+ readonly radius: {
41
+ readonly bar: number;
42
+ readonly cell: number;
43
+ };
44
+ readonly nonValue: Readonly<Record<Exclude<ValueKind, 'known'>, NonValueTexture>>;
45
+ /** Ramp for heatmap intensity, low to high. */
46
+ readonly heatmapRamp: readonly string[];
47
+ }
48
+ export interface LegendEntry {
49
+ readonly seriesId: string;
50
+ /** Set on distribution entries, which describe one segment rather than a series. */
51
+ readonly pointId?: string;
52
+ readonly label: string;
53
+ readonly color: string;
54
+ readonly pattern: 'solid' | 'dashed' | 'dotted' | 'dashDot';
55
+ readonly visible: boolean;
56
+ readonly toggleable: boolean;
57
+ }
58
+ export declare function defaultChartTheme(colorScheme?: 'light' | 'dark'): ChartTheme;
59
+ /**
60
+ * Assigns a colour to a series: explicit override wins, otherwise the palette
61
+ * cycles by index so the remaining series stay distinguishable (FR-062, FR-063).
62
+ */
63
+ export declare function resolveSeriesColor(theme: ChartTheme, index: number, override?: string): string;
64
+ /** Key of one distribution segment: point ids are only unique within a series. */
65
+ export declare function segmentKey(seriesId: string, pointId: string): string;
66
+ /**
67
+ * Colours for distribution segments, keyed by `segmentKey`. The single source
68
+ * for both the arcs and the legend, so the two cannot disagree (CHT-02).
69
+ *
70
+ * Segments take palette entries in order across the whole datasource, so one
71
+ * series of four points and four series of one point both give four colours.
72
+ * A point's own `color` wins; a series with a single point is that segment, so
73
+ * the series `color` applies to it.
74
+ */
75
+ export declare function resolveSegmentColors(datasource: {
76
+ readonly series: readonly {
77
+ readonly id: string;
78
+ readonly color?: string;
79
+ readonly points: readonly {
80
+ readonly id: string;
81
+ readonly color?: string;
82
+ }[];
83
+ }[];
84
+ }, theme: ChartTheme): Record<string, string>;
85
+ //# sourceMappingURL=theme.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"theme.d.ts","sourceRoot":"","sources":["../../../../src/contract/theme.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAEzC,MAAM,WAAW,eAAe;IAC/B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,UAAU,CAAC,EAAE,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,CAAC;IACpD,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;CAChC;AAED,kFAAkF;AAClF,MAAM,MAAM,eAAe,GAAG,KAAK,GAAG,OAAO,GAAG,aAAa,CAAC;AAE9D,MAAM,WAAW,UAAU;IAC1B,QAAQ,CAAC,WAAW,EAAE,OAAO,GAAG,MAAM,CAAC;IACvC,8EAA8E;IAC9E,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IACpC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,UAAU,EAAE;QACpB,QAAQ,CAAC,SAAS,EAAE,eAAe,CAAC;QACpC,QAAQ,CAAC,WAAW,EAAE,eAAe,CAAC;QACtC,QAAQ,CAAC,UAAU,EAAE,eAAe,CAAC;KACrC,CAAC;IACF,QAAQ,CAAC,OAAO,EAAE;QACjB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;QACpB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;QACpB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;KACpB,CAAC;IACF,QAAQ,CAAC,MAAM,EAAE;QAChB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;QACrB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;KACtB,CAAC;IACF,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC,EAAE,eAAe,CAAC,CAAC,CAAC;IAClF,+CAA+C;IAC/C,QAAQ,CAAC,WAAW,EAAE,SAAS,MAAM,EAAE,CAAC;CACxC;AAED,MAAM,WAAW,WAAW;IAC3B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,oFAAoF;IACpF,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,OAAO,EAAE,OAAO,GAAG,QAAQ,GAAG,QAAQ,GAAG,SAAS,CAAC;IAC5D,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;CAC7B;AAsCD,wBAAgB,iBAAiB,CAAC,WAAW,GAAE,OAAO,GAAG,MAAgB,GAAG,UAAU,CA0BrF;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAE9F;AAED,kFAAkF;AAClF,wBAAgB,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAEpE;AAED;;;;;;;;GAQG;AACH,wBAAgB,oBAAoB,CACnC,UAAU,EAAE;IACX,QAAQ,CAAC,MAAM,EAAE,SAAS;QACzB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;QACpB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QACxB,QAAQ,CAAC,MAAM,EAAE,SAAS;YAAE,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;YAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAA;SAAE,EAAE,CAAC;KAC7E,EAAE,CAAC;CACJ,EACD,KAAK,EAAE,UAAU,GACf,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAWxB"}
@@ -0,0 +1,69 @@
1
+ /**
2
+ * Value semantics for @chipmobilesdk/rn-chart.
3
+ *
4
+ * The foundation of the whole contract. Four value classes, carried as a
5
+ * discriminated union with **no numeric field on the three non-value cases**.
6
+ *
7
+ * That shape is deliberate: with a nullable `number`, `value ?? 0` would
8
+ * compile, and turning a gap into a zero is the single most damaging thing a
9
+ * charting library can do to someone's data. Here there is simply no number to
10
+ * read unless the value is known.
11
+ *
12
+ * See specs/007-rn-chart-package/data-model.md §1 (FR-011, FR-012).
13
+ */
14
+ /** A real observation, including a genuine `0`. */
15
+ export interface KnownValue {
16
+ readonly kind: 'known';
17
+ readonly value: number;
18
+ }
19
+ /** We do not know this value. Never rendered as zero, never interpolated. */
20
+ export interface UnknownValue {
21
+ readonly kind: 'unknown';
22
+ }
23
+ /** This value does not apply here. Excluded from totals and proportions. */
24
+ export interface NotApplicableValue {
25
+ readonly kind: 'notApplicable';
26
+ }
27
+ /** Hidden from this viewer: permission, or not enough data to disclose. */
28
+ export interface WithheldValue {
29
+ readonly kind: 'withheld';
30
+ }
31
+ export type ValueState = KnownValue | UnknownValue | NotApplicableValue | WithheldValue;
32
+ export type ValueKind = ValueState['kind'];
33
+ export declare function known(value: number): KnownValue;
34
+ /**
35
+ * Note: shadows the `unknown` *type* keyword in value position only. TypeScript
36
+ * keeps type and value namespaces separate, so `x: unknown` still means the
37
+ * type even in modules that import this helper.
38
+ */
39
+ export declare function unknown(): UnknownValue;
40
+ export declare function notApplicable(): NotApplicableValue;
41
+ export declare function withheld(): WithheldValue;
42
+ export declare function isKnown(v: ValueState): v is KnownValue;
43
+ /**
44
+ * True when the value must never reach a rendering, a label, a summary, or an
45
+ * interaction callback (FR-033, FR-053). Withheld values carry no number at
46
+ * all, so this is about intent rather than data hiding.
47
+ */
48
+ export declare function isWithheld(v: ValueState): v is WithheldValue;
49
+ /**
50
+ * True when the point takes part in totals, proportions, and axis domains.
51
+ * `notApplicable` and `withheld` are excluded; excluding either makes a total
52
+ * incomplete (FR-013).
53
+ */
54
+ export declare function participatesInTotals(v: ValueState): boolean;
55
+ export interface TotalResult {
56
+ readonly total: number;
57
+ /** True when any point was excluded, so the total is not the whole picture. */
58
+ readonly incomplete: boolean;
59
+ readonly countedPoints: number;
60
+ readonly excludedPoints: number;
61
+ }
62
+ /**
63
+ * Sums known values and reports whether anything was left out (FR-013).
64
+ *
65
+ * `unknown` also excludes and marks the total incomplete: we cannot claim a sum
66
+ * is complete when part of the data is missing.
67
+ */
68
+ export declare function sumKnown(values: readonly ValueState[]): TotalResult;
69
+ //# sourceMappingURL=value.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"value.d.ts","sourceRoot":"","sources":["../../../../src/contract/value.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,mDAAmD;AACnD,MAAM,WAAW,UAAU;IAC1B,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACvB;AAED,6EAA6E;AAC7E,MAAM,WAAW,YAAY;IAC5B,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;CACzB;AAED,4EAA4E;AAC5E,MAAM,WAAW,kBAAkB;IAClC,QAAQ,CAAC,IAAI,EAAE,eAAe,CAAC;CAC/B;AAED,2EAA2E;AAC3E,MAAM,WAAW,aAAa;IAC7B,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;CAC1B;AAED,MAAM,MAAM,UAAU,GAAG,UAAU,GAAG,YAAY,GAAG,kBAAkB,GAAG,aAAa,CAAC;AAExF,MAAM,MAAM,SAAS,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC;AAM3C,wBAAgB,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,UAAU,CAE/C;AAED;;;;GAIG;AACH,wBAAgB,OAAO,IAAI,YAAY,CAEtC;AAED,wBAAgB,aAAa,IAAI,kBAAkB,CAElD;AAED,wBAAgB,QAAQ,IAAI,aAAa,CAExC;AAED,wBAAgB,OAAO,CAAC,CAAC,EAAE,UAAU,GAAG,CAAC,IAAI,UAAU,CAEtD;AAED;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,CAAC,EAAE,UAAU,GAAG,CAAC,IAAI,aAAa,CAE5D;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,CAAC,EAAE,UAAU,GAAG,OAAO,CAE3D;AAED,MAAM,WAAW,WAAW;IAC3B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,+EAA+E;IAC/E,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;IAC7B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;CAChC;AAED;;;;;GAKG;AACH,wBAAgB,QAAQ,CAAC,MAAM,EAAE,SAAS,UAAU,EAAE,GAAG,WAAW,CAoBnE"}
@@ -0,0 +1,18 @@
1
+ /**
2
+ * Bar geometry: one batched path per series, grouped or stacked.
3
+ *
4
+ * Bars measure length from zero, so the domain always includes it — otherwise
5
+ * a bar's length means nothing. Negative values place the baseline correctly
6
+ * rather than clamping to the plot floor.
7
+ *
8
+ * PURE. No React, no SVG.
9
+ */
10
+ import type { ChartDatasource } from '../contract/datasource';
11
+ import type { GeometryInput, ResolvedGeometry } from './types';
12
+ export type BarGrouping = 'grouped' | 'stacked';
13
+ export interface BarOptions {
14
+ readonly grouping?: BarGrouping;
15
+ readonly radius?: number;
16
+ }
17
+ export declare function buildBarGeometry<M>(datasource: ChartDatasource<M>, input: GeometryInput, options?: BarOptions): ResolvedGeometry;
18
+ //# sourceMappingURL=bar.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bar.d.ts","sourceRoot":"","sources":["../../../../src/geometry/bar.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,KAAK,EAAE,eAAe,EAAoB,MAAM,wBAAwB,CAAC;AAQhF,OAAO,KAAK,EAAE,aAAa,EAAY,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAEzE,MAAM,MAAM,WAAW,GAAG,SAAS,GAAG,SAAS,CAAC;AAEhD,MAAM,WAAW,UAAU;IAC1B,QAAQ,CAAC,QAAQ,CAAC,EAAE,WAAW,CAAC;IAChC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;CACzB;AA8GD,wBAAgB,gBAAgB,CAAC,CAAC,EACjC,UAAU,EAAE,eAAe,CAAC,CAAC,CAAC,EAC9B,KAAK,EAAE,aAAa,EACpB,OAAO,GAAE,UAAe,GACtB,gBAAgB,CA+IlB"}
@@ -0,0 +1,23 @@
1
+ /**
2
+ * Distribution geometry: proportions between groups.
3
+ *
4
+ * Segments that do not sum to the whole are **not** rescaled to force a full
5
+ * circle (FR-024). The arc stops short and the geometry reports `incomplete`,
6
+ * so the chart can say the data is partial rather than quietly implying it is
7
+ * complete.
8
+ *
9
+ * PURE. No React, no SVG.
10
+ */
11
+ import type { ChartDatasource } from '../contract/datasource';
12
+ import { type DistributionValues } from '../contract/distribution';
13
+ import type { GeometryInput, ResolvedGeometry } from './types';
14
+ export type DistributionShape = 'donut' | 'pie' | 'segmentedBar';
15
+ export interface DistributionOptions {
16
+ readonly shape?: DistributionShape;
17
+ /** Donut hole as a fraction of the outer radius. */
18
+ readonly innerRadiusRatio?: number;
19
+ /** What the values mean; inferred from the data when omitted. */
20
+ readonly valuesAre?: DistributionValues;
21
+ }
22
+ export declare function buildDistributionGeometry<M>(datasource: ChartDatasource<M>, input: GeometryInput, options?: DistributionOptions): ResolvedGeometry;
23
+ //# sourceMappingURL=distribution.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"distribution.d.ts","sourceRoot":"","sources":["../../../../src/geometry/distribution.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAA6B,KAAK,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAK9F,OAAO,KAAK,EAAE,aAAa,EAA2B,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAExF,MAAM,MAAM,iBAAiB,GAAG,OAAO,GAAG,KAAK,GAAG,cAAc,CAAC;AAEjE,MAAM,WAAW,mBAAmB;IACnC,QAAQ,CAAC,KAAK,CAAC,EAAE,iBAAiB,CAAC;IACnC,oDAAoD;IACpD,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IACnC,iEAAiE;IACjE,QAAQ,CAAC,SAAS,CAAC,EAAE,kBAAkB,CAAC;CACxC;AAID,wBAAgB,yBAAyB,CAAC,CAAC,EAC1C,UAAU,EAAE,eAAe,CAAC,CAAC,CAAC,EAC9B,KAAK,EAAE,aAAa,EACpB,OAAO,GAAE,mBAAwB,GAC/B,gBAAgB,CAuKlB"}
@@ -0,0 +1,24 @@
1
+ /**
2
+ * Heatmap geometry: a matrix of cells, batched by intensity bucket.
3
+ *
4
+ * This is where batching pays off most. A thousand cells become roughly eight
5
+ * paths — one per intensity bucket, plus one per non-value class — instead of a
6
+ * thousand elements. Cell count no longer drives element count at all
7
+ * (research.md R2).
8
+ *
9
+ * Empty, zero, and unavailable cells are distinct by construction (FR-027): a
10
+ * genuine zero lands in the lowest ramp bucket, while unknown, not-applicable,
11
+ * and withheld each get their own texture.
12
+ *
13
+ * PURE. No React, no SVG.
14
+ */
15
+ import type { ChartDatasource } from '../contract/datasource';
16
+ import type { GeometryInput, ResolvedGeometry } from './types';
17
+ export interface HeatmapOptions {
18
+ /** Intensity buckets. More buckets means finer shading, more paths. */
19
+ readonly buckets?: number;
20
+ readonly cellGap?: number;
21
+ readonly cellRadius?: number;
22
+ }
23
+ export declare function buildHeatmapGeometry<M>(datasource: ChartDatasource<M>, input: GeometryInput, options?: HeatmapOptions): ResolvedGeometry;
24
+ //# sourceMappingURL=heatmap.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"heatmap.d.ts","sourceRoot":"","sources":["../../../../src/geometry/heatmap.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAM9D,OAAO,KAAK,EAAE,aAAa,EAAY,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAEzE,MAAM,WAAW,cAAc;IAC9B,uEAAuE;IACvE,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED,wBAAgB,oBAAoB,CAAC,CAAC,EACrC,UAAU,EAAE,eAAe,CAAC,CAAC,CAAC,EAC9B,KAAK,EAAE,aAAa,EACpB,OAAO,GAAE,cAAmB,GAC1B,gBAAgB,CA4KlB"}
@@ -0,0 +1,68 @@
1
+ /**
2
+ * Hit-testing for batched marks.
3
+ *
4
+ * Because marks are batched into one path per series, there are no per-element
5
+ * press handlers to rely on — a touch is resolved against geometry instead.
6
+ * That work would be needed anyway (a mobile time-series chart needs
7
+ * nearest-point search regardless of how it is drawn), and doing it in one
8
+ * place means a single implementation serves every family.
9
+ *
10
+ * PURE. No React, no SVG.
11
+ */
12
+ export interface HitRegion {
13
+ readonly seriesId: string;
14
+ readonly pointId: string;
15
+ /** Mark centre, used for nearest-point search and for highlight placement. */
16
+ readonly x: number;
17
+ readonly y: number;
18
+ /** Optional bounds, for marks where containment beats proximity. */
19
+ readonly bounds?: {
20
+ readonly x: number;
21
+ readonly y: number;
22
+ readonly width: number;
23
+ readonly height: number;
24
+ };
25
+ /**
26
+ * An arc segment: containment by radius and angle. Angles are radians,
27
+ * clockwise from twelve o'clock, as the distribution geometry draws them.
28
+ * A region with an arc is hit only inside it, never by proximity.
29
+ */
30
+ readonly arc?: {
31
+ readonly cx: number;
32
+ readonly cy: number;
33
+ readonly innerRadius: number;
34
+ readonly outerRadius: number;
35
+ readonly startAngle: number;
36
+ readonly endAngle: number;
37
+ };
38
+ /**
39
+ * False for points that must never be selectable: withheld values, and
40
+ * anything the chart is not currently drawing (FR-053).
41
+ */
42
+ readonly selectable: boolean;
43
+ }
44
+ export interface HitResult {
45
+ readonly seriesId: string;
46
+ readonly pointId: string;
47
+ readonly distance: number;
48
+ }
49
+ /** Touch slop: how far from a mark a tap still counts, in px. */
50
+ export declare const DEFAULT_HIT_RADIUS = 44;
51
+ /**
52
+ * Resolves a touch to a mark.
53
+ *
54
+ * Containment wins over proximity where bounds exist — tapping inside a bar
55
+ * should select that bar even if a neighbouring bar's centre happens to be
56
+ * closer. Otherwise the nearest selectable mark within the hit radius wins.
57
+ */
58
+ export declare function hitTest(regions: readonly HitRegion[], x: number, y: number, hitRadius?: number): HitResult | null;
59
+ /**
60
+ * Nearest mark by horizontal distance only.
61
+ *
62
+ * The right model for a time-series chart: a user aiming at "that Tuesday
63
+ * spike" cares about the x position, and demanding vertical accuracy on a line
64
+ * that may sit anywhere in the plot makes selection frustrating.
65
+ */
66
+ export declare function hitTestByX(regions: readonly HitRegion[], x: number): HitResult | null;
67
+ export declare function findRegion(regions: readonly HitRegion[], seriesId: string, pointId?: string): HitRegion | undefined;
68
+ //# sourceMappingURL=hitTest.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hitTest.d.ts","sourceRoot":"","sources":["../../../../src/geometry/hitTest.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,MAAM,WAAW,SAAS;IACzB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,8EAA8E;IAC9E,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC;IACnB,oEAAoE;IACpE,QAAQ,CAAC,MAAM,CAAC,EAAE;QACjB,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC;QACnB,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC;QACnB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;QACvB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;KACxB,CAAC;IACF;;;;OAIG;IACH,QAAQ,CAAC,GAAG,CAAC,EAAE;QACd,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;QACpB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;QACpB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;QAC7B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;QAC7B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;QAC5B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;KAC1B,CAAC;IACF;;;OAGG;IACH,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;CAC7B;AAED,MAAM,WAAW,SAAS;IACzB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC1B;AAED,iEAAiE;AACjE,eAAO,MAAM,kBAAkB,KAAK,CAAC;AAwBrC;;;;;;GAMG;AACH,wBAAgB,OAAO,CACtB,OAAO,EAAE,SAAS,SAAS,EAAE,EAC7B,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,EACT,SAAS,SAAqB,GAC5B,SAAS,GAAG,IAAI,CA8BlB;AAED;;;;;;GAMG;AACH,wBAAgB,UAAU,CAAC,OAAO,EAAE,SAAS,SAAS,EAAE,EAAE,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CAcrF;AAED,wBAAgB,UAAU,CACzB,OAAO,EAAE,SAAS,SAAS,EAAE,EAC7B,QAAQ,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE,MAAM,GACd,SAAS,GAAG,SAAS,CAIvB"}
@@ -0,0 +1,67 @@
1
+ export interface PlotRect {
2
+ readonly x: number;
3
+ readonly y: number;
4
+ readonly width: number;
5
+ readonly height: number;
6
+ }
7
+ export interface ContainerSize {
8
+ readonly width: number;
9
+ readonly height: number;
10
+ }
11
+ export interface LayoutOptions {
12
+ readonly container: ContainerSize;
13
+ /** Axis label text, used to reserve exactly as much space as is needed. */
14
+ readonly xLabels?: readonly string[];
15
+ readonly yLabels?: readonly string[];
16
+ readonly baseFontSize: number;
17
+ /** System text-size multiplier, from `PixelRatio.getFontScale()` (FR-071). */
18
+ readonly fontScale: number;
19
+ readonly padding?: number;
20
+ }
21
+ /**
22
+ * Ceiling on how far system text scaling may inflate chart labels.
23
+ *
24
+ * Beyond this the plot area collapses faster than the labels become useful, so
25
+ * we cap the growth rather than let the chart squeeze itself out of existence.
26
+ * The cap is documented in the README as the supported dynamic-type range.
27
+ */
28
+ export declare const MAX_FONT_SCALE = 1.6;
29
+ export declare function effectiveFontSize(baseFontSize: number, fontScale: number): number;
30
+ /** A container that has not been measured yet, or has collapsed (FR-078). */
31
+ export declare function isMeasurable(size: ContainerSize): boolean;
32
+ export declare const EMPTY_PLOT: PlotRect;
33
+ /**
34
+ * Reserves axis space from estimated label widths, then hands back what is
35
+ * left for the marks.
36
+ *
37
+ * If the reservations would leave nothing to draw on, they are scaled back:
38
+ * a cramped axis beats a zero-area plot.
39
+ */
40
+ export declare function resolvePlotRect(options: LayoutOptions): PlotRect;
41
+ export interface AxisLabels {
42
+ readonly xLabels: readonly string[];
43
+ readonly yLabels: readonly string[];
44
+ readonly fontSize: number;
45
+ }
46
+ /**
47
+ * Shrinks a plot so its own axis labels fit inside the container.
48
+ *
49
+ * Builders call this once they know their tick labels (which depend only on
50
+ * the data domain) and before projecting anything, so the reservation costs no
51
+ * second pass. Without it the frame handed every builder the full container:
52
+ * Y labels, drawn right-aligned left of the plot, landed at negative x, and X
53
+ * labels below the baseline fell past the bottom of the SVG (CHT-01).
54
+ *
55
+ * - left: the widest Y label plus a gutter, and at least half the widest X
56
+ * label, because the first X label is centred on the plot's left edge;
57
+ * - right: half the widest X label, for the last one;
58
+ * - top: the part of the topmost Y label that rises above its tick;
59
+ * - bottom: one line of X labels plus a gutter.
60
+ *
61
+ * Each side is capped so labels can never squeeze the plot out of existence.
62
+ */
63
+ export declare function insetForAxes(outer: PlotRect, labels: AxisLabels): PlotRect;
64
+ export declare function plotBottom(plot: PlotRect): number;
65
+ export declare function plotRight(plot: PlotRect): number;
66
+ export declare function containsPoint(plot: PlotRect, x: number, y: number): boolean;
67
+ //# sourceMappingURL=layout.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"layout.d.ts","sourceRoot":"","sources":["../../../../src/geometry/layout.ts"],"names":[],"mappings":"AAWA,MAAM,WAAW,QAAQ;IACxB,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,aAAa;IAC7B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,aAAa;IAC7B,QAAQ,CAAC,SAAS,EAAE,aAAa,CAAC;IAClC,2EAA2E;IAC3E,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACrC,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACrC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,8EAA8E;IAC9E,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED;;;;;;GAMG;AACH,eAAO,MAAM,cAAc,MAAM,CAAC;AAElC,wBAAgB,iBAAiB,CAAC,YAAY,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAGjF;AAED,6EAA6E;AAC7E,wBAAgB,YAAY,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO,CAIzD;AAED,eAAO,MAAM,UAAU,EAAE,QAA8C,CAAC;AAExE;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,aAAa,GAAG,QAAQ,CAiChE;AAED,MAAM,WAAW,UAAU;IAC1B,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IACpC,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IACpC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC1B;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,GAAG,QAAQ,CA2B1E;AAED,wBAAgB,UAAU,CAAC,IAAI,EAAE,QAAQ,GAAG,MAAM,CAEjD;AAED,wBAAgB,SAAS,CAAC,IAAI,EAAE,QAAQ,GAAG,MAAM,CAEhD;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,QAAQ,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO,CAE3E"}
@@ -0,0 +1,29 @@
1
+ /**
2
+ * Reference markers on a value axis: thresholds, baselines and targets drawn
3
+ * as horizontal lines across the plot (FR-008, FR-072).
4
+ *
5
+ * Every builder used to return `markers: []`, so a threshold the app supplied
6
+ * reached the accessibility summary and nowhere else (CHT-03).
7
+ *
8
+ * PURE. No React, no SVG.
9
+ */
10
+ import type { ReferenceMarker } from '../contract/marker';
11
+ import { type PlotRect } from './layout';
12
+ import type { GeometryLabel, MarkerLine } from './types';
13
+ type PlacedMarker = ReferenceMarker & {
14
+ readonly value: {
15
+ kind: 'known';
16
+ value: number;
17
+ };
18
+ };
19
+ /** Markers that can be placed on a value axis: those with a known value. */
20
+ export declare function placeableMarkers(markers: readonly ReferenceMarker[] | undefined): PlacedMarker[];
21
+ /** Values the domain must include so every marker lands inside the plot. */
22
+ export declare function markerDomainValues(markers: readonly ReferenceMarker[] | undefined): number[];
23
+ /** One line per marker across the plot, plus its label when it has one. */
24
+ export declare function horizontalMarkers(markers: readonly ReferenceMarker[] | undefined, plot: PlotRect, project: (value: number) => number): {
25
+ lines: MarkerLine[];
26
+ labels: GeometryLabel[];
27
+ };
28
+ export {};
29
+ //# sourceMappingURL=markers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"markers.d.ts","sourceRoot":"","sources":["../../../../src/geometry/markers.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAE1D,OAAO,EAAa,KAAK,QAAQ,EAAE,MAAM,UAAU,CAAC;AACpD,OAAO,KAAK,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAEzD,KAAK,YAAY,GAAG,eAAe,GAAG;IAAE,QAAQ,CAAC,KAAK,EAAE;QAAE,IAAI,EAAE,OAAO,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,CAAC;AAE3F,4EAA4E;AAC5E,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,SAAS,eAAe,EAAE,GAAG,SAAS,GAAG,YAAY,EAAE,CAEhG;AAED,4EAA4E;AAC5E,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,SAAS,eAAe,EAAE,GAAG,SAAS,GAAG,MAAM,EAAE,CAE5F;AAED,2EAA2E;AAC3E,wBAAgB,iBAAiB,CAChC,OAAO,EAAE,SAAS,eAAe,EAAE,GAAG,SAAS,EAC/C,IAAI,EAAE,QAAQ,EACd,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,GAChC;IAAE,KAAK,EAAE,UAAU,EAAE,CAAC;IAAC,MAAM,EAAE,aAAa,EAAE,CAAA;CAAE,CAuBlD"}
@@ -0,0 +1,66 @@
1
+ /**
2
+ * SVG path-string builders.
3
+ *
4
+ * This is where the "never bridge a gap" guarantee (FR-012) becomes
5
+ * structural rather than a rule someone has to remember. A missing value does
6
+ * not produce a coordinate — it ends the current subpath. The next known value
7
+ * starts a fresh one with an `M` command. There is physically no line segment
8
+ * spanning the gap, so no amount of downstream carelessness can draw one.
9
+ *
10
+ * Batching into path data is also what keeps element counts flat: one `Path`
11
+ * per series regardless of point count (research.md R2).
12
+ *
13
+ * PURE. No React, no SVG imports — this module emits strings.
14
+ */
15
+ export interface Pt {
16
+ readonly x: number;
17
+ readonly y: number;
18
+ }
19
+ /** A point that may be absent, mirroring the value contract. */
20
+ export type MaybePt = Pt | null;
21
+ /**
22
+ * Polyline through the known points, broken at every gap.
23
+ *
24
+ * `null` entries are missing values. They terminate the current subpath; they
25
+ * are never interpolated, carried forward, or skipped over.
26
+ */
27
+ export declare function linePath(points: readonly MaybePt[]): string;
28
+ /**
29
+ * Filled area between the polyline and a baseline, broken at gaps in the same
30
+ * way: each contiguous run of known points becomes its own closed shape.
31
+ */
32
+ export declare function areaPath(points: readonly MaybePt[], baselineY: number): string;
33
+ export interface RectSpec {
34
+ readonly x: number;
35
+ readonly y: number;
36
+ readonly width: number;
37
+ readonly height: number;
38
+ readonly radius?: number;
39
+ }
40
+ /** One rectangle as a subpath, with optional corner rounding. */
41
+ export declare function rectSubpath(r: RectSpec): string;
42
+ /**
43
+ * Many rectangles batched into one path — how bars and heatmap cells stay at
44
+ * one element per series or per intensity bucket.
45
+ */
46
+ export declare function rectBatchPath(rects: readonly RectSpec[]): string;
47
+ export interface ArcSpec {
48
+ readonly cx: number;
49
+ readonly cy: number;
50
+ readonly outerRadius: number;
51
+ readonly innerRadius: number;
52
+ /** Radians, clockwise from 12 o'clock. */
53
+ readonly startAngle: number;
54
+ readonly endAngle: number;
55
+ }
56
+ /**
57
+ * Donut or pie segment. An inner radius of 0 yields a pie wedge.
58
+ *
59
+ * A full-circle segment is drawn as two half-arcs, because SVG cannot express
60
+ * a 360-degree arc in a single command — start and end would coincide and
61
+ * nothing would be drawn.
62
+ */
63
+ export declare function arcPath(spec: ArcSpec): string;
64
+ /** Straight line, for axes, baselines, and threshold markers. */
65
+ export declare function linearSegment(from: Pt, to: Pt): string;
66
+ //# sourceMappingURL=path.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"path.d.ts","sourceRoot":"","sources":["../../../../src/geometry/path.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,MAAM,WAAW,EAAE;IAClB,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,gEAAgE;AAChE,MAAM,MAAM,OAAO,GAAG,EAAE,GAAG,IAAI,CAAC;AAQhC;;;;;GAKG;AACH,wBAAgB,QAAQ,CAAC,MAAM,EAAE,SAAS,OAAO,EAAE,GAAG,MAAM,CAmB3D;AAED;;;GAGG;AACH,wBAAgB,QAAQ,CAAC,MAAM,EAAE,SAAS,OAAO,EAAE,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CA0B9E;AAED,MAAM,WAAW,QAAQ;IACxB,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,iEAAiE;AACjE,wBAAgB,WAAW,CAAC,CAAC,EAAE,QAAQ,GAAG,MAAM,CAmB/C;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,SAAS,QAAQ,EAAE,GAAG,MAAM,CAMhE;AAED,MAAM,WAAW,OAAO;IACvB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,0CAA0C;IAC1C,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC1B;AASD;;;;;;GAMG;AACH,wBAAgB,OAAO,CAAC,IAAI,EAAE,OAAO,GAAG,MAAM,CAiC7C;AAED,iEAAiE;AACjE,wBAAgB,aAAa,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,MAAM,CAEtD"}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Progress geometry: current value against an optional target.
3
+ *
4
+ * The rule that matters (FR-021, FR-022): with no usable target there is **no
5
+ * proportion**. The chart shows the current value and nothing else. And a value
6
+ * beyond its target renders as overshoot rather than a clamped full bar that
7
+ * hides the excess.
8
+ *
9
+ * PURE. No React, no SVG.
10
+ */
11
+ import type { ChartDatasource } from '../contract/datasource';
12
+ import type { GeometryInput, ResolvedGeometry } from './types';
13
+ export interface ProgressOptions {
14
+ readonly trackRadius?: number;
15
+ }
16
+ export declare function buildProgressGeometry<M>(datasource: ChartDatasource<M>, input: GeometryInput, options?: ProgressOptions): ResolvedGeometry;
17
+ //# sourceMappingURL=progress.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"progress.d.ts","sourceRoot":"","sources":["../../../../src/geometry/progress.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAM9D,OAAO,KAAK,EAAE,aAAa,EAAuC,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAEpG,MAAM,WAAW,eAAe;IAC/B,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;CAC9B;AAKD,wBAAgB,qBAAqB,CAAC,CAAC,EACtC,UAAU,EAAE,eAAe,CAAC,CAAC,CAAC,EAC9B,KAAK,EAAE,aAAa,EACpB,OAAO,GAAE,eAAoB,GAC3B,gBAAgB,CAgMlB"}