@neural-charts/native 0.0.0-stage → 0.1.0-beta.1

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 (508) hide show
  1. package/README.md +58 -2
  2. package/THIRD-PARTY-NOTICES.md +15 -0
  3. package/docs/guide.md +783 -0
  4. package/library/annular-hit.d.ts +10 -0
  5. package/library/annular-hit.d.ts.map +1 -0
  6. package/library/annular-hit.js +43 -0
  7. package/library/annular-hit.js.map +1 -0
  8. package/library/chart-capabilities.d.ts +326 -0
  9. package/library/chart-capabilities.d.ts.map +1 -0
  10. package/library/chart-capabilities.js +39 -0
  11. package/library/chart-capabilities.js.map +1 -0
  12. package/library/circular-scene.d.ts +55 -0
  13. package/library/circular-scene.d.ts.map +1 -0
  14. package/library/circular-scene.js +39 -0
  15. package/library/circular-scene.js.map +1 -0
  16. package/library/comparison-render.d.ts +18 -0
  17. package/library/comparison-render.d.ts.map +1 -0
  18. package/library/comparison-render.js +33 -0
  19. package/library/comparison-render.js.map +1 -0
  20. package/library/comparison-scene.d.ts +40 -0
  21. package/library/comparison-scene.d.ts.map +1 -0
  22. package/library/comparison-scene.js +77 -0
  23. package/library/comparison-scene.js.map +1 -0
  24. package/library/composition-scene.d.ts +35 -0
  25. package/library/composition-scene.d.ts.map +1 -0
  26. package/library/composition-scene.js +55 -0
  27. package/library/composition-scene.js.map +1 -0
  28. package/library/contour-hit-index.d.ts +15 -0
  29. package/library/contour-hit-index.d.ts.map +1 -0
  30. package/library/contour-hit-index.js +75 -0
  31. package/library/contour-hit-index.js.map +1 -0
  32. package/library/contour-label-anchors.d.ts +9 -0
  33. package/library/contour-label-anchors.d.ts.map +1 -0
  34. package/library/contour-label-anchors.js +20 -0
  35. package/library/contour-label-anchors.js.map +1 -0
  36. package/library/contour-scene.d.ts +10 -0
  37. package/library/contour-scene.d.ts.map +1 -0
  38. package/library/contour-scene.js +76 -0
  39. package/library/contour-scene.js.map +1 -0
  40. package/library/contracts.d.ts +445 -0
  41. package/library/contracts.d.ts.map +1 -0
  42. package/library/contracts.js +2 -0
  43. package/library/contracts.js.map +1 -0
  44. package/library/dendrogram-scene.d.ts +7 -0
  45. package/library/dendrogram-scene.d.ts.map +1 -0
  46. package/library/dendrogram-scene.js +28 -0
  47. package/library/dendrogram-scene.js.map +1 -0
  48. package/library/empty-state.d.ts +8 -0
  49. package/library/empty-state.d.ts.map +1 -0
  50. package/library/empty-state.js +30 -0
  51. package/library/empty-state.js.map +1 -0
  52. package/library/heatmap-hit.d.ts +27 -0
  53. package/library/heatmap-hit.d.ts.map +1 -0
  54. package/library/heatmap-hit.js +56 -0
  55. package/library/heatmap-hit.js.map +1 -0
  56. package/library/heatmap-scene.d.ts +17 -0
  57. package/library/heatmap-scene.d.ts.map +1 -0
  58. package/library/heatmap-scene.js +85 -0
  59. package/library/heatmap-scene.js.map +1 -0
  60. package/library/index.d.ts +14 -0
  61. package/library/index.d.ts.map +1 -0
  62. package/library/index.js +4 -0
  63. package/library/index.js.map +1 -0
  64. package/library/interaction-content.d.ts +4 -0
  65. package/library/interaction-content.d.ts.map +1 -0
  66. package/library/interaction-content.js +28 -0
  67. package/library/interaction-content.js.map +1 -0
  68. package/library/interaction.d.ts +75 -0
  69. package/library/interaction.d.ts.map +1 -0
  70. package/library/interaction.js +523 -0
  71. package/library/interaction.js.map +1 -0
  72. package/library/marker-style.d.ts +24 -0
  73. package/library/marker-style.d.ts.map +1 -0
  74. package/library/marker-style.js +43 -0
  75. package/library/marker-style.js.map +1 -0
  76. package/library/parallel-scene.d.ts +11 -0
  77. package/library/parallel-scene.d.ts.map +1 -0
  78. package/library/parallel-scene.js +44 -0
  79. package/library/parallel-scene.js.map +1 -0
  80. package/library/path-validation.d.ts +3 -0
  81. package/library/path-validation.d.ts.map +1 -0
  82. package/library/path-validation.js +78 -0
  83. package/library/path-validation.js.map +1 -0
  84. package/library/pictorial-hit.d.ts +19 -0
  85. package/library/pictorial-hit.d.ts.map +1 -0
  86. package/library/pictorial-hit.js +73 -0
  87. package/library/pictorial-hit.js.map +1 -0
  88. package/library/pictorial-scene.d.ts +16 -0
  89. package/library/pictorial-scene.d.ts.map +1 -0
  90. package/library/pictorial-scene.js +73 -0
  91. package/library/pictorial-scene.js.map +1 -0
  92. package/library/point-label-placement.d.ts +34 -0
  93. package/library/point-label-placement.d.ts.map +1 -0
  94. package/library/point-label-placement.js +24 -0
  95. package/library/point-label-placement.js.map +1 -0
  96. package/library/polar-grid.d.ts +5 -0
  97. package/library/polar-grid.d.ts.map +1 -0
  98. package/library/polar-grid.js +28 -0
  99. package/library/polar-grid.js.map +1 -0
  100. package/library/polygon-hit.d.ts +18 -0
  101. package/library/polygon-hit.d.ts.map +1 -0
  102. package/library/polygon-hit.js +98 -0
  103. package/library/polygon-hit.js.map +1 -0
  104. package/library/profile-scene.d.ts +11 -0
  105. package/library/profile-scene.d.ts.map +1 -0
  106. package/library/profile-scene.js +51 -0
  107. package/library/profile-scene.js.map +1 -0
  108. package/library/relationship-hit-index.d.ts +12 -0
  109. package/library/relationship-hit-index.d.ts.map +1 -0
  110. package/library/relationship-hit-index.js +87 -0
  111. package/library/relationship-hit-index.js.map +1 -0
  112. package/library/relationship-scene.d.ts +12 -0
  113. package/library/relationship-scene.d.ts.map +1 -0
  114. package/library/relationship-scene.js +62 -0
  115. package/library/relationship-scene.js.map +1 -0
  116. package/library/scene-paint.d.ts +29 -0
  117. package/library/scene-paint.d.ts.map +1 -0
  118. package/library/scene-paint.js +123 -0
  119. package/library/scene-paint.js.map +1 -0
  120. package/library/scene-styles.d.ts +13 -0
  121. package/library/scene-styles.d.ts.map +1 -0
  122. package/library/scene-styles.js +135 -0
  123. package/library/scene-styles.js.map +1 -0
  124. package/library/scene.d.ts +49 -0
  125. package/library/scene.d.ts.map +1 -0
  126. package/library/scene.js +533 -0
  127. package/library/scene.js.map +1 -0
  128. package/library/temporal-hit-index.d.ts +13 -0
  129. package/library/temporal-hit-index.d.ts.map +1 -0
  130. package/library/temporal-hit-index.js +71 -0
  131. package/library/temporal-hit-index.js.map +1 -0
  132. package/library/temporal-scene.d.ts +6 -0
  133. package/library/temporal-scene.d.ts.map +1 -0
  134. package/library/temporal-scene.js +70 -0
  135. package/library/temporal-scene.js.map +1 -0
  136. package/library/tile-index.d.ts +11 -0
  137. package/library/tile-index.d.ts.map +1 -0
  138. package/library/tile-index.js +37 -0
  139. package/library/tile-index.js.map +1 -0
  140. package/library/tilemap-hit.d.ts +11 -0
  141. package/library/tilemap-hit.d.ts.map +1 -0
  142. package/library/tilemap-hit.js +63 -0
  143. package/library/tilemap-hit.js.map +1 -0
  144. package/library/tilemap-scene.d.ts +24 -0
  145. package/library/tilemap-scene.d.ts.map +1 -0
  146. package/library/tilemap-scene.js +125 -0
  147. package/library/tilemap-scene.js.map +1 -0
  148. package/library/uncertainty-scene.d.ts +11 -0
  149. package/library/uncertainty-scene.d.ts.map +1 -0
  150. package/library/uncertainty-scene.js +61 -0
  151. package/library/uncertainty-scene.js.map +1 -0
  152. package/library/venn-hit.d.ts +21 -0
  153. package/library/venn-hit.d.ts.map +1 -0
  154. package/library/venn-hit.js +37 -0
  155. package/library/venn-hit.js.map +1 -0
  156. package/library/venn-scene.d.ts +14 -0
  157. package/library/venn-scene.d.ts.map +1 -0
  158. package/library/venn-scene.js +84 -0
  159. package/library/venn-scene.js.map +1 -0
  160. package/library/wordcloud-scene.d.ts +19 -0
  161. package/library/wordcloud-scene.d.ts.map +1 -0
  162. package/library/wordcloud-scene.js +58 -0
  163. package/library/wordcloud-scene.js.map +1 -0
  164. package/native/activity.d.ts +14 -0
  165. package/native/activity.d.ts.map +1 -0
  166. package/native/activity.js +31 -0
  167. package/native/activity.js.map +1 -0
  168. package/native/bar-labels.d.ts +4 -0
  169. package/native/bar-labels.d.ts.map +1 -0
  170. package/native/bar-labels.js +16 -0
  171. package/native/bar-labels.js.map +1 -0
  172. package/native/bubble-entrance.d.ts +15 -0
  173. package/native/bubble-entrance.d.ts.map +1 -0
  174. package/native/bubble-entrance.js +27 -0
  175. package/native/bubble-entrance.js.map +1 -0
  176. package/native/chart-drilldown.d.ts +57 -0
  177. package/native/chart-drilldown.d.ts.map +1 -0
  178. package/native/chart-drilldown.js +118 -0
  179. package/native/chart-drilldown.js.map +1 -0
  180. package/native/chart-motion.d.ts +69 -0
  181. package/native/chart-motion.d.ts.map +1 -0
  182. package/native/chart-motion.js +165 -0
  183. package/native/chart-motion.js.map +1 -0
  184. package/native/chart-panels-options.d.ts +77 -0
  185. package/native/chart-panels-options.d.ts.map +1 -0
  186. package/native/chart-panels-options.js +2 -0
  187. package/native/chart-panels-options.js.map +1 -0
  188. package/native/chart-panels-state.d.ts +34 -0
  189. package/native/chart-panels-state.d.ts.map +1 -0
  190. package/native/chart-panels-state.js +198 -0
  191. package/native/chart-panels-state.js.map +1 -0
  192. package/native/chart-panels.d.ts +43 -0
  193. package/native/chart-panels.d.ts.map +1 -0
  194. package/native/chart-panels.js +107 -0
  195. package/native/chart-panels.js.map +1 -0
  196. package/native/chart-presentation.d.ts +40 -0
  197. package/native/chart-presentation.d.ts.map +1 -0
  198. package/native/chart-presentation.js +16 -0
  199. package/native/chart-presentation.js.map +1 -0
  200. package/native/chart-type.d.ts +65 -0
  201. package/native/chart-type.d.ts.map +1 -0
  202. package/native/chart-type.js +66 -0
  203. package/native/chart-type.js.map +1 -0
  204. package/native/chart.d.ts +571 -0
  205. package/native/chart.d.ts.map +1 -0
  206. package/native/chart.js +1417 -0
  207. package/native/chart.js.map +1 -0
  208. package/native/circular-options.d.ts +17 -0
  209. package/native/circular-options.d.ts.map +1 -0
  210. package/native/circular-options.js +2 -0
  211. package/native/circular-options.js.map +1 -0
  212. package/native/comparison-data.d.ts +64 -0
  213. package/native/comparison-data.d.ts.map +1 -0
  214. package/native/comparison-data.js +2 -0
  215. package/native/comparison-data.js.map +1 -0
  216. package/native/comparison-format.d.ts +16 -0
  217. package/native/comparison-format.d.ts.map +1 -0
  218. package/native/comparison-format.js +26 -0
  219. package/native/comparison-format.js.map +1 -0
  220. package/native/composition-options.d.ts +18 -0
  221. package/native/composition-options.d.ts.map +1 -0
  222. package/native/composition-options.js +2 -0
  223. package/native/composition-options.js.map +1 -0
  224. package/native/contour-data.d.ts +48 -0
  225. package/native/contour-data.d.ts.map +1 -0
  226. package/native/contour-data.js +2 -0
  227. package/native/contour-data.js.map +1 -0
  228. package/native/contour-format.d.ts +3 -0
  229. package/native/contour-format.d.ts.map +1 -0
  230. package/native/contour-format.js +11 -0
  231. package/native/contour-format.js.map +1 -0
  232. package/native/control-accessibility.d.ts +7 -0
  233. package/native/control-accessibility.d.ts.map +1 -0
  234. package/native/control-accessibility.js +9 -0
  235. package/native/control-accessibility.js.map +1 -0
  236. package/native/data-chart.d.ts +179 -0
  237. package/native/data-chart.d.ts.map +1 -0
  238. package/native/data-chart.js +415 -0
  239. package/native/data-chart.js.map +1 -0
  240. package/native/data-identities.d.ts +10 -0
  241. package/native/data-identities.d.ts.map +1 -0
  242. package/native/data-identities.js +50 -0
  243. package/native/data-identities.js.map +1 -0
  244. package/native/data-options.d.ts +566 -0
  245. package/native/data-options.d.ts.map +1 -0
  246. package/native/data-options.js +2 -0
  247. package/native/data-options.js.map +1 -0
  248. package/native/data-planning.d.ts +84 -0
  249. package/native/data-planning.d.ts.map +1 -0
  250. package/native/data-planning.js +174 -0
  251. package/native/data-planning.js.map +1 -0
  252. package/native/dendrogram-data.d.ts +27 -0
  253. package/native/dendrogram-data.d.ts.map +1 -0
  254. package/native/dendrogram-data.js +2 -0
  255. package/native/dendrogram-data.js.map +1 -0
  256. package/native/dendrogram-labels.d.ts +13 -0
  257. package/native/dendrogram-labels.d.ts.map +1 -0
  258. package/native/dendrogram-labels.js +12 -0
  259. package/native/dendrogram-labels.js.map +1 -0
  260. package/native/drilldown-options.d.ts +62 -0
  261. package/native/drilldown-options.d.ts.map +1 -0
  262. package/native/drilldown-options.js +2 -0
  263. package/native/drilldown-options.js.map +1 -0
  264. package/native/drilldown-state.d.ts +18 -0
  265. package/native/drilldown-state.d.ts.map +1 -0
  266. package/native/drilldown-state.js +130 -0
  267. package/native/drilldown-state.js.map +1 -0
  268. package/native/gauge-entrance.d.ts +8 -0
  269. package/native/gauge-entrance.d.ts.map +1 -0
  270. package/native/gauge-entrance.js +42 -0
  271. package/native/gauge-entrance.js.map +1 -0
  272. package/native/haptics.d.ts +21 -0
  273. package/native/haptics.d.ts.map +1 -0
  274. package/native/haptics.js +66 -0
  275. package/native/haptics.js.map +1 -0
  276. package/native/heatmap-data.d.ts +56 -0
  277. package/native/heatmap-data.d.ts.map +1 -0
  278. package/native/heatmap-data.js +2 -0
  279. package/native/heatmap-data.js.map +1 -0
  280. package/native/index.d.ts +26 -0
  281. package/native/index.d.ts.map +1 -0
  282. package/native/index.js +11 -0
  283. package/native/index.js.map +1 -0
  284. package/native/input-bridge.d.ts +32 -0
  285. package/native/input-bridge.d.ts.map +1 -0
  286. package/native/input-bridge.js +3 -0
  287. package/native/input-bridge.js.map +1 -0
  288. package/native/input-lease.d.ts +23 -0
  289. package/native/input-lease.d.ts.map +1 -0
  290. package/native/input-lease.js +28 -0
  291. package/native/input-lease.js.map +1 -0
  292. package/native/label-contrast.d.ts +7 -0
  293. package/native/label-contrast.d.ts.map +1 -0
  294. package/native/label-contrast.js +33 -0
  295. package/native/label-contrast.js.map +1 -0
  296. package/native/label-halo.d.ts +9 -0
  297. package/native/label-halo.d.ts.map +1 -0
  298. package/native/label-halo.js +23 -0
  299. package/native/label-halo.js.map +1 -0
  300. package/native/label-ink.d.ts +3 -0
  301. package/native/label-ink.d.ts.map +1 -0
  302. package/native/label-ink.js +6 -0
  303. package/native/label-ink.js.map +1 -0
  304. package/native/legend.d.ts +21 -0
  305. package/native/legend.d.ts.map +1 -0
  306. package/native/legend.js +66 -0
  307. package/native/legend.js.map +1 -0
  308. package/native/log-axis-labels.d.ts +6 -0
  309. package/native/log-axis-labels.d.ts.map +1 -0
  310. package/native/log-axis-labels.js +16 -0
  311. package/native/log-axis-labels.js.map +1 -0
  312. package/native/log-options.d.ts +5 -0
  313. package/native/log-options.d.ts.map +1 -0
  314. package/native/log-options.js +6 -0
  315. package/native/log-options.js.map +1 -0
  316. package/native/number-format.d.ts +5 -0
  317. package/native/number-format.d.ts.map +1 -0
  318. package/native/number-format.js +24 -0
  319. package/native/number-format.js.map +1 -0
  320. package/native/observation-format.d.ts +8 -0
  321. package/native/observation-format.d.ts.map +1 -0
  322. package/native/observation-format.js +80 -0
  323. package/native/observation-format.js.map +1 -0
  324. package/native/options-validation.d.ts +8 -0
  325. package/native/options-validation.d.ts.map +1 -0
  326. package/native/options-validation.js +612 -0
  327. package/native/options-validation.js.map +1 -0
  328. package/native/panel-viewport-contract.d.ts +15 -0
  329. package/native/panel-viewport-contract.d.ts.map +1 -0
  330. package/native/panel-viewport-contract.js +86 -0
  331. package/native/panel-viewport-contract.js.map +1 -0
  332. package/native/panel-viewport-sync.d.ts +27 -0
  333. package/native/panel-viewport-sync.d.ts.map +1 -0
  334. package/native/panel-viewport-sync.js +96 -0
  335. package/native/panel-viewport-sync.js.map +1 -0
  336. package/native/parallel-data.d.ts +49 -0
  337. package/native/parallel-data.d.ts.map +1 -0
  338. package/native/parallel-data.js +2 -0
  339. package/native/parallel-data.js.map +1 -0
  340. package/native/parallel-labels.d.ts +20 -0
  341. package/native/parallel-labels.d.ts.map +1 -0
  342. package/native/parallel-labels.js +54 -0
  343. package/native/parallel-labels.js.map +1 -0
  344. package/native/pictorial-data.d.ts +78 -0
  345. package/native/pictorial-data.d.ts.map +1 -0
  346. package/native/pictorial-data.js +2 -0
  347. package/native/pictorial-data.js.map +1 -0
  348. package/native/pictorial-format.d.ts +8 -0
  349. package/native/pictorial-format.d.ts.map +1 -0
  350. package/native/pictorial-format.js +14 -0
  351. package/native/pictorial-format.js.map +1 -0
  352. package/native/pictorial-options.d.ts +2 -0
  353. package/native/pictorial-options.d.ts.map +1 -0
  354. package/native/pictorial-options.js +61 -0
  355. package/native/pictorial-options.js.map +1 -0
  356. package/native/pictorial-paint.d.ts +19 -0
  357. package/native/pictorial-paint.d.ts.map +1 -0
  358. package/native/pictorial-paint.js +31 -0
  359. package/native/pictorial-paint.js.map +1 -0
  360. package/native/plan.d.ts +45 -0
  361. package/native/plan.d.ts.map +1 -0
  362. package/native/plan.js +109 -0
  363. package/native/plan.js.map +1 -0
  364. package/native/profile-data.d.ts +82 -0
  365. package/native/profile-data.d.ts.map +1 -0
  366. package/native/profile-data.js +2 -0
  367. package/native/profile-data.js.map +1 -0
  368. package/native/profile-labels.d.ts +5 -0
  369. package/native/profile-labels.d.ts.map +1 -0
  370. package/native/profile-labels.js +19 -0
  371. package/native/profile-labels.js.map +1 -0
  372. package/native/radial-entrance.d.ts +24 -0
  373. package/native/radial-entrance.d.ts.map +1 -0
  374. package/native/radial-entrance.js +25 -0
  375. package/native/radial-entrance.js.map +1 -0
  376. package/native/radial-layer.d.ts +26 -0
  377. package/native/radial-layer.d.ts.map +1 -0
  378. package/native/radial-layer.js +76 -0
  379. package/native/radial-layer.js.map +1 -0
  380. package/native/reference-labels.d.ts +21 -0
  381. package/native/reference-labels.d.ts.map +1 -0
  382. package/native/reference-labels.js +36 -0
  383. package/native/reference-labels.js.map +1 -0
  384. package/native/reference-options.d.ts +23 -0
  385. package/native/reference-options.d.ts.map +1 -0
  386. package/native/reference-options.js +58 -0
  387. package/native/reference-options.js.map +1 -0
  388. package/native/relationship-data.d.ts +63 -0
  389. package/native/relationship-data.d.ts.map +1 -0
  390. package/native/relationship-data.js +2 -0
  391. package/native/relationship-data.js.map +1 -0
  392. package/native/relationship-format.d.ts +13 -0
  393. package/native/relationship-format.d.ts.map +1 -0
  394. package/native/relationship-format.js +26 -0
  395. package/native/relationship-format.js.map +1 -0
  396. package/native/selection-outlines.d.ts +12 -0
  397. package/native/selection-outlines.d.ts.map +1 -0
  398. package/native/selection-outlines.js +20 -0
  399. package/native/selection-outlines.js.map +1 -0
  400. package/native/temporal-format.d.ts +29 -0
  401. package/native/temporal-format.d.ts.map +1 -0
  402. package/native/temporal-format.js +41 -0
  403. package/native/temporal-format.js.map +1 -0
  404. package/native/text-style.d.ts +16 -0
  405. package/native/text-style.d.ts.map +1 -0
  406. package/native/text-style.js +14 -0
  407. package/native/text-style.js.map +1 -0
  408. package/native/tilemap-color-axis.d.ts +23 -0
  409. package/native/tilemap-color-axis.d.ts.map +1 -0
  410. package/native/tilemap-color-axis.js +77 -0
  411. package/native/tilemap-color-axis.js.map +1 -0
  412. package/native/tilemap-data.d.ts +71 -0
  413. package/native/tilemap-data.d.ts.map +1 -0
  414. package/native/tilemap-data.js +2 -0
  415. package/native/tilemap-data.js.map +1 -0
  416. package/native/tilemap-format.d.ts +3 -0
  417. package/native/tilemap-format.d.ts.map +1 -0
  418. package/native/tilemap-format.js +14 -0
  419. package/native/tilemap-format.js.map +1 -0
  420. package/native/tilemap-selection.d.ts +12 -0
  421. package/native/tilemap-selection.d.ts.map +1 -0
  422. package/native/tilemap-selection.js +8 -0
  423. package/native/tilemap-selection.js.map +1 -0
  424. package/native/time-axis-labels.d.ts +5 -0
  425. package/native/time-axis-labels.d.ts.map +1 -0
  426. package/native/time-axis-labels.js +38 -0
  427. package/native/time-axis-labels.js.map +1 -0
  428. package/native/tooltip-layout.d.ts +16 -0
  429. package/native/tooltip-layout.d.ts.map +1 -0
  430. package/native/tooltip-layout.js +33 -0
  431. package/native/tooltip-layout.js.map +1 -0
  432. package/native/tooltip-metrics.d.ts +4 -0
  433. package/native/tooltip-metrics.d.ts.map +1 -0
  434. package/native/tooltip-metrics.js +11 -0
  435. package/native/tooltip-metrics.js.map +1 -0
  436. package/native/tooltip-motion.d.ts +35 -0
  437. package/native/tooltip-motion.d.ts.map +1 -0
  438. package/native/tooltip-motion.js +36 -0
  439. package/native/tooltip-motion.js.map +1 -0
  440. package/native/tooltip-occupancy.d.ts +21 -0
  441. package/native/tooltip-occupancy.d.ts.map +1 -0
  442. package/native/tooltip-occupancy.js +67 -0
  443. package/native/tooltip-occupancy.js.map +1 -0
  444. package/native/tooltip.d.ts +144 -0
  445. package/native/tooltip.d.ts.map +1 -0
  446. package/native/tooltip.js +146 -0
  447. package/native/tooltip.js.map +1 -0
  448. package/native/uncertainty-data.d.ts +110 -0
  449. package/native/uncertainty-data.d.ts.map +1 -0
  450. package/native/uncertainty-data.js +2 -0
  451. package/native/uncertainty-data.js.map +1 -0
  452. package/native/uncertainty-format.d.ts +3 -0
  453. package/native/uncertainty-format.d.ts.map +1 -0
  454. package/native/uncertainty-format.js +10 -0
  455. package/native/uncertainty-format.js.map +1 -0
  456. package/native/value-labels.d.ts +30 -0
  457. package/native/value-labels.d.ts.map +1 -0
  458. package/native/value-labels.js +206 -0
  459. package/native/value-labels.js.map +1 -0
  460. package/native/variwide-labels.d.ts +14 -0
  461. package/native/variwide-labels.d.ts.map +1 -0
  462. package/native/variwide-labels.js +22 -0
  463. package/native/variwide-labels.js.map +1 -0
  464. package/native/venn-data.d.ts +29 -0
  465. package/native/venn-data.d.ts.map +1 -0
  466. package/native/venn-data.js +2 -0
  467. package/native/venn-data.js.map +1 -0
  468. package/native/viewport-gestures.d.ts +32 -0
  469. package/native/viewport-gestures.d.ts.map +1 -0
  470. package/native/viewport-gestures.js +43 -0
  471. package/native/viewport-gestures.js.map +1 -0
  472. package/native/viewport-motion.d.ts +67 -0
  473. package/native/viewport-motion.d.ts.map +1 -0
  474. package/native/viewport-motion.js +182 -0
  475. package/native/viewport-motion.js.map +1 -0
  476. package/native/viewport-state.d.ts +20 -0
  477. package/native/viewport-state.d.ts.map +1 -0
  478. package/native/viewport-state.js +14 -0
  479. package/native/viewport-state.js.map +1 -0
  480. package/native/waterfall-appearance.d.ts +8 -0
  481. package/native/waterfall-appearance.d.ts.map +1 -0
  482. package/native/waterfall-appearance.js +18 -0
  483. package/native/waterfall-appearance.js.map +1 -0
  484. package/native/wordcloud-data.d.ts +40 -0
  485. package/native/wordcloud-data.d.ts.map +1 -0
  486. package/native/wordcloud-data.js +2 -0
  487. package/native/wordcloud-data.js.map +1 -0
  488. package/native/wordcloud-layer.d.ts +29 -0
  489. package/native/wordcloud-layer.d.ts.map +1 -0
  490. package/native/wordcloud-layer.js +58 -0
  491. package/native/wordcloud-layer.js.map +1 -0
  492. package/native/wordcloud-measurements.d.ts +47 -0
  493. package/native/wordcloud-measurements.d.ts.map +1 -0
  494. package/native/wordcloud-measurements.js +137 -0
  495. package/native/wordcloud-measurements.js.map +1 -0
  496. package/native/wordcloud-planning.d.ts +23 -0
  497. package/native/wordcloud-planning.d.ts.map +1 -0
  498. package/native/wordcloud-planning.js +25 -0
  499. package/native/wordcloud-planning.js.map +1 -0
  500. package/native/wordcloud-probes.d.ts +48 -0
  501. package/native/wordcloud-probes.d.ts.map +1 -0
  502. package/native/wordcloud-probes.js +111 -0
  503. package/native/wordcloud-probes.js.map +1 -0
  504. package/native/wordcloud-text-backend.d.ts +16 -0
  505. package/native/wordcloud-text-backend.d.ts.map +1 -0
  506. package/native/wordcloud-text-backend.js +3 -0
  507. package/native/wordcloud-text-backend.js.map +1 -0
  508. package/package.json +58 -4
@@ -0,0 +1,10 @@
1
+ import type { Observation } from './contracts.js';
2
+ /** Indexed once per geometry: each angle bucket holds only nearby original bands. */
3
+ export declare class AnnularSectorHitIndex {
4
+ private readonly buckets;
5
+ private readonly cx;
6
+ private readonly cy;
7
+ constructor(points: readonly Observation[]);
8
+ pick(x: number, y: number): Observation | null;
9
+ }
10
+ //# sourceMappingURL=annular-hit.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"annular-hit.d.ts","sourceRoot":"","sources":["../../src/library/annular-hit.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,gBAAgB,CAAC;AAKhD,qFAAqF;AACrF,qBAAa,qBAAqB;IAChC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAgC;IACxD,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAQ;IAC3B,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAQ;gBACf,MAAM,EAAC,SAAS,WAAW,EAAE;IAWzC,IAAI,CAAC,CAAC,EAAC,MAAM,EAAC,CAAC,EAAC,MAAM,GAAE,WAAW,GAAC,IAAI;CAUzC"}
@@ -0,0 +1,43 @@
1
+ const tau = Math.PI * 2, bucketCount = 256;
2
+ const phase = (angle) => (angle % tau + tau) % tau;
3
+ /** Indexed once per geometry: each angle bucket holds only nearby original bands. */
4
+ export class AnnularSectorHitIndex {
5
+ buckets;
6
+ cx;
7
+ cy;
8
+ constructor(points) {
9
+ const sectors = points.filter((p) => p.hit?.type === 'sector' && p.hit.radius > p.hit.innerRadius && p.hit.end > p.hit.start);
10
+ this.cx = sectors[0]?.hit.cx ?? 0;
11
+ this.cy = sectors[0]?.hit.cy ?? 0;
12
+ const buckets = Array.from({ length: bucketCount }, () => new Set());
13
+ for (const p of sectors) {
14
+ if (p.hit.cx !== this.cx || p.hit.cy !== this.cy)
15
+ throw Error('Annular sectors must share their original pivot');
16
+ const first = phase(p.hit.start) / tau * bucketCount, last = first + Math.min(tau, p.hit.end - p.hit.start) / tau * bucketCount;
17
+ for (let i = Math.floor(first); i <= Math.floor(last); i++)
18
+ buckets[i % bucketCount].add(p);
19
+ }
20
+ this.buckets = buckets.map(bucket => Object.freeze([...bucket].sort((a, b) => a.hit.innerRadius - b.hit.innerRadius)));
21
+ }
22
+ pick(x, y) {
23
+ const radius = Math.hypot(x - this.cx, y - this.cy), angle = phase(Math.atan2(x - this.cx, this.cy - y));
24
+ const bucket = this.buckets[Math.min(bucketCount - 1, Math.floor(angle / tau * bucketCount))];
25
+ let low = 0, high = bucket.length;
26
+ while (low < high) {
27
+ const mid = (low + high) >>> 1;
28
+ if (bucket[mid].hit.innerRadius <= radius)
29
+ low = mid + 1;
30
+ else
31
+ high = mid;
32
+ }
33
+ // Adjacent directions can share a bucket, so validate both radius and angle.
34
+ // No sets, arrays, strings or result objects are allocated during a pick.
35
+ for (let i = low - 1; i >= 0; i--) {
36
+ const p = bucket[i], h = p.hit, relative = phase(angle - h.start);
37
+ if (radius <= h.radius && relative <= h.end - h.start + 1e-10)
38
+ return p;
39
+ }
40
+ return null;
41
+ }
42
+ }
43
+ //# sourceMappingURL=annular-hit.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"annular-hit.js","sourceRoot":"","sources":["../../src/library/annular-hit.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,326 @@
1
+ import type { ChartFamily } from './contracts.js';
2
+ export interface ChartCapabilities {
3
+ readonly axes: 'cartesian' | 'radial' | 'parallel' | 'hierarchy' | 'none';
4
+ readonly viewport: false | 'any' | 'x' | 'y' | 'xy';
5
+ readonly measured: boolean;
6
+ }
7
+ /** Shared runtime capabilities. Adding a family must explicitly define its contract. */
8
+ export declare const chartCapabilities: Readonly<{
9
+ readonly fan: Readonly<{
10
+ readonly measured: true;
11
+ readonly axes: "cartesian";
12
+ readonly viewport: "any";
13
+ }>;
14
+ readonly regression: Readonly<{
15
+ readonly measured: true;
16
+ readonly axes: "cartesian";
17
+ readonly viewport: "any";
18
+ }>;
19
+ readonly flame: Readonly<{
20
+ readonly viewport: "x";
21
+ readonly measured: true;
22
+ readonly axes: "cartesian";
23
+ }>;
24
+ readonly violin: Readonly<{
25
+ readonly viewport: false;
26
+ readonly measured: true;
27
+ readonly axes: "cartesian";
28
+ }>;
29
+ readonly dendrogram: Readonly<{
30
+ readonly axes: "hierarchy";
31
+ readonly measured: true;
32
+ readonly viewport: false;
33
+ }>;
34
+ readonly parallel: Readonly<{
35
+ readonly axes: "parallel";
36
+ readonly measured: true;
37
+ readonly viewport: false;
38
+ }>;
39
+ readonly heatmap: Readonly<{
40
+ readonly viewport: false;
41
+ readonly measured: true;
42
+ readonly axes: "cartesian";
43
+ }>;
44
+ readonly venn: Readonly<{
45
+ readonly measured: true;
46
+ readonly axes: "none";
47
+ readonly viewport: false;
48
+ }>;
49
+ readonly wordcloud: Readonly<{
50
+ readonly measured: true;
51
+ readonly axes: "none";
52
+ readonly viewport: false;
53
+ }>;
54
+ readonly pictorial: Readonly<{
55
+ readonly viewport: false;
56
+ readonly measured: true;
57
+ readonly axes: "cartesian";
58
+ }>;
59
+ readonly tilemap: Readonly<{
60
+ readonly measured: true;
61
+ readonly axes: "none";
62
+ readonly viewport: false;
63
+ }>;
64
+ readonly contour: Readonly<{
65
+ readonly measured: true;
66
+ readonly axes: "cartesian";
67
+ readonly viewport: "any";
68
+ }>;
69
+ readonly dependencywheel: Readonly<{
70
+ readonly measured: true;
71
+ readonly axes: "none";
72
+ readonly viewport: false;
73
+ }>;
74
+ readonly arcdiagram: Readonly<{
75
+ readonly measured: true;
76
+ readonly axes: "none";
77
+ readonly viewport: false;
78
+ }>;
79
+ readonly chord: Readonly<{
80
+ readonly measured: true;
81
+ readonly axes: "none";
82
+ readonly viewport: false;
83
+ }>;
84
+ readonly bullet: Readonly<{
85
+ readonly viewport: false;
86
+ readonly measured: true;
87
+ readonly axes: "cartesian";
88
+ }>;
89
+ readonly variwide: Readonly<{
90
+ readonly viewport: "y";
91
+ readonly measured: true;
92
+ readonly axes: "cartesian";
93
+ }>;
94
+ readonly xrange: Readonly<{
95
+ readonly viewport: "x";
96
+ readonly measured: true;
97
+ readonly axes: "cartesian";
98
+ }>;
99
+ readonly timeline: Readonly<{
100
+ readonly viewport: "x";
101
+ readonly measured: true;
102
+ readonly axes: "cartesian";
103
+ }>;
104
+ readonly vector: Readonly<{
105
+ readonly measured: true;
106
+ readonly axes: "cartesian";
107
+ readonly viewport: "any";
108
+ }>;
109
+ readonly windbarb: Readonly<{
110
+ readonly measured: true;
111
+ readonly axes: "cartesian";
112
+ readonly viewport: "any";
113
+ }>;
114
+ readonly line: Readonly<{
115
+ readonly axes: "cartesian";
116
+ readonly viewport: "any";
117
+ readonly measured: false;
118
+ }>;
119
+ readonly column: Readonly<{
120
+ readonly axes: "cartesian";
121
+ readonly viewport: "any";
122
+ readonly measured: false;
123
+ }>;
124
+ readonly bar: Readonly<{
125
+ readonly axes: "cartesian";
126
+ readonly viewport: "any";
127
+ readonly measured: false;
128
+ }>;
129
+ readonly area: Readonly<{
130
+ readonly axes: "cartesian";
131
+ readonly viewport: "any";
132
+ readonly measured: false;
133
+ }>;
134
+ readonly spline: Readonly<{
135
+ readonly axes: "cartesian";
136
+ readonly viewport: "any";
137
+ readonly measured: false;
138
+ }>;
139
+ readonly areaspline: Readonly<{
140
+ readonly axes: "cartesian";
141
+ readonly viewport: "any";
142
+ readonly measured: false;
143
+ }>;
144
+ readonly streamgraph: Readonly<{
145
+ readonly axes: "cartesian";
146
+ readonly viewport: "any";
147
+ readonly measured: false;
148
+ }>;
149
+ readonly arearange: Readonly<{
150
+ readonly axes: "cartesian";
151
+ readonly viewport: "any";
152
+ readonly measured: false;
153
+ }>;
154
+ readonly areasplinerange: Readonly<{
155
+ readonly axes: "cartesian";
156
+ readonly viewport: "any";
157
+ readonly measured: false;
158
+ }>;
159
+ readonly columnrange: Readonly<{
160
+ readonly axes: "cartesian";
161
+ readonly viewport: "any";
162
+ readonly measured: false;
163
+ }>;
164
+ readonly boxplot: Readonly<{
165
+ readonly axes: "cartesian";
166
+ readonly viewport: "any";
167
+ readonly measured: false;
168
+ }>;
169
+ readonly errorbar: Readonly<{
170
+ readonly axes: "cartesian";
171
+ readonly viewport: "any";
172
+ readonly measured: false;
173
+ }>;
174
+ readonly mixed: Readonly<{
175
+ readonly axes: "cartesian";
176
+ readonly viewport: "any";
177
+ readonly measured: false;
178
+ }>;
179
+ readonly waterfall: Readonly<{
180
+ readonly axes: "cartesian";
181
+ readonly viewport: "any";
182
+ readonly measured: false;
183
+ }>;
184
+ readonly lollipop: Readonly<{
185
+ readonly measured: true;
186
+ readonly axes: "cartesian";
187
+ readonly viewport: "any";
188
+ }>;
189
+ readonly dumbbell: Readonly<{
190
+ readonly measured: true;
191
+ readonly axes: "cartesian";
192
+ readonly viewport: "any";
193
+ }>;
194
+ readonly columnpyramid: Readonly<{
195
+ readonly measured: true;
196
+ readonly axes: "cartesian";
197
+ readonly viewport: "any";
198
+ }>;
199
+ readonly scatter: Readonly<{
200
+ readonly measured: true;
201
+ readonly axes: "cartesian";
202
+ readonly viewport: "any";
203
+ }>;
204
+ readonly bubble: Readonly<{
205
+ readonly measured: true;
206
+ readonly axes: "cartesian";
207
+ readonly viewport: "any";
208
+ }>;
209
+ readonly polygon: Readonly<{
210
+ readonly measured: true;
211
+ readonly axes: "cartesian";
212
+ readonly viewport: "any";
213
+ }>;
214
+ readonly histogram: Readonly<{
215
+ readonly viewport: false;
216
+ readonly axes: "cartesian";
217
+ readonly measured: false;
218
+ }>;
219
+ readonly bellcurve: Readonly<{
220
+ readonly viewport: false;
221
+ readonly axes: "cartesian";
222
+ readonly measured: false;
223
+ }>;
224
+ readonly pareto: Readonly<{
225
+ readonly viewport: "x";
226
+ readonly axes: "cartesian";
227
+ readonly measured: false;
228
+ }>;
229
+ readonly pie: Readonly<{
230
+ readonly axes: "none";
231
+ readonly viewport: false;
232
+ readonly measured: false;
233
+ }>;
234
+ readonly donut: Readonly<{
235
+ readonly axes: "none";
236
+ readonly viewport: false;
237
+ readonly measured: false;
238
+ }>;
239
+ readonly gauge: Readonly<{
240
+ readonly axes: "none";
241
+ readonly viewport: false;
242
+ readonly measured: false;
243
+ }>;
244
+ readonly variablepie: Readonly<{
245
+ readonly measured: true;
246
+ readonly axes: "none";
247
+ readonly viewport: false;
248
+ }>;
249
+ readonly item: Readonly<{
250
+ readonly measured: true;
251
+ readonly axes: "none";
252
+ readonly viewport: false;
253
+ }>;
254
+ readonly treemap: Readonly<{
255
+ readonly measured: true;
256
+ readonly axes: "none";
257
+ readonly viewport: false;
258
+ }>;
259
+ readonly sunburst: Readonly<{
260
+ readonly measured: true;
261
+ readonly axes: "none";
262
+ readonly viewport: false;
263
+ }>;
264
+ readonly funnel: Readonly<{
265
+ readonly measured: true;
266
+ readonly axes: "none";
267
+ readonly viewport: false;
268
+ }>;
269
+ readonly pyramid: Readonly<{
270
+ readonly measured: true;
271
+ readonly axes: "none";
272
+ readonly viewport: false;
273
+ }>;
274
+ readonly sankey: Readonly<{
275
+ readonly viewport: "xy";
276
+ readonly measured: true;
277
+ readonly axes: "none";
278
+ }>;
279
+ readonly treegraph: Readonly<{
280
+ readonly viewport: "any";
281
+ readonly measured: true;
282
+ readonly axes: "none";
283
+ }>;
284
+ readonly organization: Readonly<{
285
+ readonly viewport: "any";
286
+ readonly measured: true;
287
+ readonly axes: "none";
288
+ }>;
289
+ readonly networkgraph: Readonly<{
290
+ readonly viewport: "any";
291
+ readonly measured: true;
292
+ readonly axes: "none";
293
+ }>;
294
+ readonly packedbubble: Readonly<{
295
+ readonly viewport: "xy";
296
+ readonly measured: true;
297
+ readonly axes: "none";
298
+ }>;
299
+ readonly radar: Readonly<{
300
+ readonly axes: "radial";
301
+ readonly measured: true;
302
+ readonly viewport: false;
303
+ }>;
304
+ readonly polar: Readonly<{
305
+ readonly axes: "radial";
306
+ readonly measured: true;
307
+ readonly viewport: false;
308
+ }>;
309
+ readonly windrose: Readonly<{
310
+ readonly axes: "radial";
311
+ readonly measured: true;
312
+ readonly viewport: false;
313
+ }>;
314
+ readonly radialbar: Readonly<{
315
+ readonly measured: true;
316
+ readonly axes: "none";
317
+ readonly viewport: false;
318
+ }>;
319
+ }>;
320
+ export declare function isChartFamily(value: unknown): value is ChartFamily;
321
+ /** Families with a dedicated label renderer or no point-value labels. */
322
+ export declare const fixedDataLabelFamilies: readonly ["flame", "dendrogram", "parallel", "wordcloud", "pictorial", "tilemap", "gauge", "sankey", "networkgraph", "packedbubble", "sunburst", "treegraph", "organization", "treemap"];
323
+ export declare function supportsDataLabelLayout(family: ChartFamily): boolean;
324
+ export declare function dataLabelsByDefault(family: ChartFamily): boolean;
325
+ export declare function supportsReferenceAxis(family: ChartFamily, axis: 'x' | 'y'): boolean;
326
+ //# sourceMappingURL=chart-capabilities.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chart-capabilities.d.ts","sourceRoot":"","sources":["../../src/library/chart-capabilities.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,gBAAgB,CAAC;AAChD,MAAM,WAAW,iBAAiB;IAAE,QAAQ,CAAC,IAAI,EAAC,WAAW,GAAC,QAAQ,GAAC,UAAU,GAAC,WAAW,GAAC,MAAM,CAAC;IAAA,QAAQ,CAAC,QAAQ,EAAC,KAAK,GAAC,KAAK,GAAC,GAAG,GAAC,GAAG,GAAC,IAAI,CAAC;IAAA,QAAQ,CAAC,QAAQ,EAAC,OAAO,CAAC;CAAC;AAS3K,wFAAwF;AACxF,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAQuC,CAAC;AACtE,wBAAgB,aAAa,CAAC,KAAK,EAAC,OAAO,GAAE,KAAK,IAAI,WAAW,CAAyE;AAE1I,yEAAyE;AACzE,eAAO,MAAM,sBAAsB,0LAA4K,CAAC;AAChN,wBAAgB,uBAAuB,CAAC,MAAM,EAAC,WAAW,GAAE,OAAO,CAElE;AAGD,wBAAgB,mBAAmB,CAAC,MAAM,EAAC,WAAW,GAAE,OAAO,CAE9D;AASD,wBAAgB,qBAAqB,CAAC,MAAM,EAAC,WAAW,EAAC,IAAI,EAAC,GAAG,GAAC,GAAG,GAAE,OAAO,CAE7E"}
@@ -0,0 +1,39 @@
1
+ const cartesian = Object.freeze({ axes: 'cartesian', viewport: 'any', measured: false });
2
+ const measured = Object.freeze({ ...cartesian, measured: true });
3
+ const statistics = Object.freeze({ ...cartesian, viewport: false });
4
+ const plain = Object.freeze({ axes: 'none', viewport: false, measured: false });
5
+ const shaped = Object.freeze({ ...plain, measured: true });
6
+ const graph = Object.freeze({ ...shaped, viewport: 'any' });
7
+ const uniform = Object.freeze({ ...graph, viewport: 'xy' });
8
+ const radial = Object.freeze({ ...shaped, axes: 'radial' });
9
+ /** Shared runtime capabilities. Adding a family must explicitly define its contract. */
10
+ export const chartCapabilities = Object.freeze({
11
+ fan: measured, regression: measured, flame: Object.freeze({ ...measured, viewport: 'x' }), violin: Object.freeze({ ...measured, viewport: false }), dendrogram: Object.freeze({ ...shaped, axes: 'hierarchy' }), parallel: Object.freeze({ ...shaped, axes: 'parallel' }), heatmap: Object.freeze({ ...measured, viewport: false }), venn: shaped, wordcloud: shaped, pictorial: Object.freeze({ ...measured, viewport: false }), tilemap: shaped, contour: measured, dependencywheel: shaped, arcdiagram: shaped, chord: shaped,
12
+ bullet: Object.freeze({ ...measured, viewport: false }), variwide: Object.freeze({ ...measured, viewport: 'y' }),
13
+ xrange: Object.freeze({ ...measured, viewport: 'x' }), timeline: Object.freeze({ ...measured, viewport: 'x' }), vector: measured, windbarb: measured, line: cartesian, column: cartesian, bar: cartesian, area: cartesian, spline: cartesian, areaspline: cartesian, streamgraph: cartesian, arearange: cartesian, areasplinerange: cartesian, columnrange: cartesian, boxplot: cartesian, errorbar: cartesian, mixed: cartesian, waterfall: cartesian,
14
+ lollipop: measured, dumbbell: measured, columnpyramid: measured, scatter: measured, bubble: measured, polygon: measured,
15
+ histogram: statistics, bellcurve: statistics, pareto: Object.freeze({ ...cartesian, viewport: 'x' }),
16
+ pie: plain, donut: plain, gauge: plain, variablepie: shaped, item: shaped, treemap: shaped, sunburst: shaped, funnel: shaped, pyramid: shaped,
17
+ sankey: uniform, treegraph: graph, organization: graph, networkgraph: graph, packedbubble: uniform, radar: radial, polar: radial, windrose: radial, radialbar: shaped,
18
+ });
19
+ export function isChartFamily(value) { return typeof value === 'string' && Object.hasOwn(chartCapabilities, value); }
20
+ /** Families with a dedicated label renderer or no point-value labels. */
21
+ export const fixedDataLabelFamilies = ['flame', 'dendrogram', 'parallel', 'wordcloud', 'pictorial', 'tilemap', 'gauge', 'sankey', 'networkgraph', 'packedbubble', 'sunburst', 'treegraph', 'organization', 'treemap'];
22
+ export function supportsDataLabelLayout(family) {
23
+ return !fixedDataLabelFamilies.includes(family);
24
+ }
25
+ const defaultDataLabelFamilies = ['flame', 'dendrogram', 'arcdiagram', 'timeline', 'sankey', 'networkgraph', 'packedbubble', 'sunburst', 'treegraph', 'organization', 'pie', 'donut', 'treemap'];
26
+ export function dataLabelsByDefault(family) {
27
+ return defaultDataLabelFamilies.includes(family);
28
+ }
29
+ /** Semantic source axes, shared by option validation and projected-scene ownership. */
30
+ const referenceAxes = Object.freeze({
31
+ fan: 'xy', regression: 'xy', flame: 'x', contour: 'xy', bullet: 'xy', variwide: 'xy', xrange: 'x', timeline: 'x',
32
+ vector: 'xy', windbarb: 'xy', polygon: 'xy', lollipop: 'xy', dumbbell: 'xy', columnpyramid: 'xy',
33
+ boxplot: 'xy', errorbar: 'xy', streamgraph: 'xy', arearange: 'xy', areasplinerange: 'xy', columnrange: 'xy',
34
+ areaspline: 'xy', waterfall: 'y', mixed: 'xy', line: 'xy', area: 'xy', spline: 'xy', scatter: 'xy', column: 'y', bar: 'y', bubble: 'xy',
35
+ });
36
+ export function supportsReferenceAxis(family, axis) {
37
+ return Object.hasOwn(referenceAxes, family) && referenceAxes[family].includes(axis);
38
+ }
39
+ //# sourceMappingURL=chart-capabilities.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chart-capabilities.js","sourceRoot":"","sources":["../../src/library/chart-capabilities.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,55 @@
1
+ import type { NativeScene } from './contracts.js';
2
+ export interface NativeCircularGeometry {
3
+ readonly startAngle: number;
4
+ readonly endAngle: number;
5
+ readonly cx: number;
6
+ readonly cy: number;
7
+ readonly radius: number;
8
+ readonly innerRadius: number;
9
+ readonly bounds: Readonly<{
10
+ x: number;
11
+ y: number;
12
+ width: number;
13
+ height: number;
14
+ }>;
15
+ }
16
+ export interface NativeSectorCircularFrame extends NativeCircularGeometry {
17
+ readonly style: 'sectors';
18
+ readonly domain?: never;
19
+ readonly valueState?: never;
20
+ readonly needle?: never;
21
+ readonly ticks?: never;
22
+ }
23
+ export interface NativeGaugeCircularBase extends NativeCircularGeometry {
24
+ readonly domain: readonly [number, number];
25
+ readonly valueState: 'missing' | 'under' | 'within' | 'over';
26
+ }
27
+ export interface NativeSolidGaugeFrame extends NativeGaugeCircularBase {
28
+ readonly style: 'solid-gauge';
29
+ readonly needle?: never;
30
+ readonly ticks?: never;
31
+ }
32
+ export interface NativeNeedleGaugeFrame extends NativeGaugeCircularBase {
33
+ readonly style: 'needle-gauge';
34
+ readonly needle: Readonly<{
35
+ from: number;
36
+ to: number | null;
37
+ }>;
38
+ readonly ticks: readonly Readonly<{
39
+ value: number;
40
+ x: number;
41
+ y: number;
42
+ }>[];
43
+ }
44
+ export type NativeCircularFrame = NativeSectorCircularFrame | NativeSolidGaugeFrame | NativeNeedleGaugeFrame;
45
+ export interface NativeRadialSummary {
46
+ readonly knownTotal: number | null;
47
+ readonly overflow: boolean;
48
+ readonly missingCount: number;
49
+ readonly hiddenCount: number;
50
+ readonly knownCount: number;
51
+ readonly percentageBasis: 'complete-visible-total' | 'known-visible-subtotal';
52
+ }
53
+ export declare function ownCircular(c: NativeCircularFrame, s: NativeScene): NativeCircularFrame;
54
+ export declare function ownRadialSummary(v: NativeRadialSummary, s: NativeScene): NativeRadialSummary;
55
+ //# sourceMappingURL=circular-scene.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"circular-scene.d.ts","sourceRoot":"","sources":["../../src/library/circular-scene.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,gBAAgB,CAAC;AAChD,MAAM,WAAW,sBAAsB;IACtC,QAAQ,CAAC,UAAU,EAAC,MAAM,CAAC;IAAA,QAAQ,CAAC,QAAQ,EAAC,MAAM,CAAC;IACpD,QAAQ,CAAC,EAAE,EAAC,MAAM,CAAC;IAAA,QAAQ,CAAC,EAAE,EAAC,MAAM,CAAC;IAAA,QAAQ,CAAC,MAAM,EAAC,MAAM,CAAC;IAAA,QAAQ,CAAC,WAAW,EAAC,MAAM,CAAC;IACzF,QAAQ,CAAC,MAAM,EAAC,QAAQ,CAAC;QAAC,CAAC,EAAC,MAAM,CAAC;QAAA,CAAC,EAAC,MAAM,CAAC;QAAA,KAAK,EAAC,MAAM,CAAC;QAAA,MAAM,EAAC,MAAM,CAAA;KAAC,CAAC,CAAC;CACzE;AACD,MAAM,WAAW,yBAA0B,SAAQ,sBAAsB;IACxE,QAAQ,CAAC,KAAK,EAAC,SAAS,CAAC;IAAA,QAAQ,CAAC,MAAM,CAAC,EAAC,KAAK,CAAC;IAAA,QAAQ,CAAC,UAAU,CAAC,EAAC,KAAK,CAAC;IAAA,QAAQ,CAAC,MAAM,CAAC,EAAC,KAAK,CAAC;IAAA,QAAQ,CAAC,KAAK,CAAC,EAAC,KAAK,CAAC;CACxH;AACD,MAAM,WAAW,uBAAwB,SAAQ,sBAAsB;IACtE,QAAQ,CAAC,MAAM,EAAC,SAAQ,CAAC,MAAM,EAAC,MAAM,CAAC,CAAC;IAAA,QAAQ,CAAC,UAAU,EAAC,SAAS,GAAC,OAAO,GAAC,QAAQ,GAAC,MAAM,CAAC;CAC9F;AACD,MAAM,WAAW,qBAAsB,SAAQ,uBAAuB;IACrE,QAAQ,CAAC,KAAK,EAAC,aAAa,CAAC;IAAA,QAAQ,CAAC,MAAM,CAAC,EAAC,KAAK,CAAC;IAAA,QAAQ,CAAC,KAAK,CAAC,EAAC,KAAK,CAAC;CAC1E;AACD,MAAM,WAAW,sBAAuB,SAAQ,uBAAuB;IACtE,QAAQ,CAAC,KAAK,EAAC,cAAc,CAAC;IAAA,QAAQ,CAAC,MAAM,EAAC,QAAQ,CAAC;QAAC,IAAI,EAAC,MAAM,CAAC;QAAA,EAAE,EAAC,MAAM,GAAC,IAAI,CAAA;KAAC,CAAC,CAAC;IACrF,QAAQ,CAAC,KAAK,EAAC,SAAS,QAAQ,CAAC;QAAC,KAAK,EAAC,MAAM,CAAC;QAAA,CAAC,EAAC,MAAM,CAAC;QAAA,CAAC,EAAC,MAAM,CAAA;KAAC,CAAC,EAAE,CAAC;CACrE;AACD,MAAM,MAAM,mBAAmB,GAAC,yBAAyB,GAAC,qBAAqB,GAAC,sBAAsB,CAAC;AACvG,MAAM,WAAW,mBAAmB;IACnC,QAAQ,CAAC,UAAU,EAAC,MAAM,GAAC,IAAI,CAAC;IAAA,QAAQ,CAAC,QAAQ,EAAC,OAAO,CAAC;IAC1D,QAAQ,CAAC,YAAY,EAAC,MAAM,CAAC;IAAA,QAAQ,CAAC,WAAW,EAAC,MAAM,CAAC;IAAA,QAAQ,CAAC,UAAU,EAAC,MAAM,CAAC;IACpF,QAAQ,CAAC,eAAe,EAAC,wBAAwB,GAAC,wBAAwB,CAAC;CAC3E;AAED,wBAAgB,WAAW,CAAC,CAAC,EAAC,mBAAmB,EAAC,CAAC,EAAC,WAAW,GAAE,mBAAmB,CAiBnF;AACD,wBAAgB,gBAAgB,CAAC,CAAC,EAAC,mBAAmB,EAAC,CAAC,EAAC,WAAW,GAAE,mBAAmB,CAGxF"}
@@ -0,0 +1,39 @@
1
+ const finite = (value) => typeof value === 'number' && Number.isFinite(value);
2
+ export function ownCircular(c, s) {
3
+ if (!c || !['pie', 'donut', 'gauge'].includes(s.family) || !finite(c.startAngle) || !finite(c.endAngle) || c.startAngle < -360 || c.startAngle > 360 || c.endAngle - c.startAngle < 1 || c.endAngle - c.startAngle > 360 || c.endAngle > 720 || c.endAngle < -359)
4
+ throw Error('Invalid circular sweep');
5
+ if (![c.cx, c.cy, c.radius, c.innerRadius].every(finite) || c.radius <= 0 || c.innerRadius < 0 || c.innerRadius >= c.radius || c.cx - c.radius < 0 || c.cx + c.radius > s.width || c.cy - c.radius < 0 || c.cy + c.radius > s.height)
6
+ throw Error('Invalid circular frame');
7
+ const b = c.bounds;
8
+ if (!b || ![b.x, b.y, b.width, b.height].every(finite) || b.x < 0 || b.y < 0 || b.width <= 0 || b.height <= 0 || b.x + b.width > s.width || b.y + b.height > s.height)
9
+ throw Error('Invalid circular fit extent');
10
+ const base = { cx: c.cx, cy: c.cy, radius: c.radius, innerRadius: c.innerRadius, startAngle: c.startAngle, endAngle: c.endAngle, bounds: { x: b.x, y: b.y, width: b.width, height: b.height } };
11
+ if (c.style === 'sectors') {
12
+ if (s.family === 'gauge' || c.domain !== undefined || c.valueState !== undefined || c.needle !== undefined || c.ticks !== undefined)
13
+ throw Error('Foreign scalar dial roles');
14
+ return { ...base, style: 'sectors' };
15
+ }
16
+ if (s.family !== 'gauge' || !['solid-gauge', 'needle-gauge'].includes(c.style) || !Array.isArray(c.domain) || c.domain.length !== 2 || !c.domain.every(finite) || c.domain[0] >= c.domain[1] || !['missing', 'under', 'within', 'over'].includes(c.valueState))
17
+ throw Error('Invalid scalar dial');
18
+ const known = s.observations[0]?.value, state = known === undefined ? 'missing' : known < c.domain[0] ? 'under' : known > c.domain[1] ? 'over' : 'within';
19
+ if (s.observations.length > 1 || state !== c.valueState)
20
+ throw Error('Scalar value lost its original domain state');
21
+ const dial = { ...base, domain: [c.domain[0], c.domain[1]], valueState: c.valueState };
22
+ if (c.style === 'solid-gauge') {
23
+ if (c.needle !== undefined || c.ticks !== undefined)
24
+ throw Error('Needle roles require a needle dial');
25
+ return { ...dial, style: 'solid-gauge' };
26
+ }
27
+ const n = c.needle;
28
+ if (!n || !finite(n.from) || n.from < 0 || n.from >= Math.PI * 2 || n.to !== null && (!finite(n.to) || n.to < n.from || n.to - n.from > Math.PI * 2 + 1e-12) || (state === 'missing') !== (n.to === null) || !Array.isArray(c.ticks) || c.ticks.length > 16)
29
+ throw Error('Invalid needle state');
30
+ const ticks = c.ticks.map(t => { if (!t || ![t.value, t.x, t.y].every(finite) || t.value < c.domain[0] || t.value > c.domain[1] || t.x < 0 || t.x > s.width || t.y < 0 || t.y > s.height)
31
+ throw Error('Invalid dial tick'); return { value: t.value, x: t.x, y: t.y }; });
32
+ return { ...dial, style: 'needle-gauge', needle: { from: n.from, to: n.to }, ticks };
33
+ }
34
+ export function ownRadialSummary(v, s) {
35
+ if (!v || !['pie', 'donut'].includes(s.family) || typeof v.overflow !== 'boolean' || ![v.knownCount, v.missingCount, v.hiddenCount].every(n => Number.isInteger(n) && n >= 0 && n <= 16) || v.knownCount !== s.observations.length || v.knownCount + v.missingCount + v.hiddenCount !== (s.legend ?? s.series).length || v.knownTotal !== null && (!finite(v.knownTotal) || v.knownTotal < 0) || v.knownCount === 0 && (v.knownTotal !== null || v.overflow) || v.knownCount > 0 && (v.knownTotal === null) !== v.overflow || v.percentageBasis !== (v.missingCount ? 'known-visible-subtotal' : 'complete-visible-total'))
36
+ throw Error('Invalid radial denominator summary');
37
+ return { knownTotal: v.knownTotal, overflow: v.overflow, knownCount: v.knownCount, missingCount: v.missingCount, hiddenCount: v.hiddenCount, percentageBasis: v.percentageBasis };
38
+ }
39
+ //# sourceMappingURL=circular-scene.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"circular-scene.js","sourceRoot":"","sources":["../../src/library/circular-scene.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ import type { PlanBulletBandGeometry, PlanBulletTargetGeometry } from '@neural-charts/core/plan';
2
+ export interface ComparisonDecorations {
3
+ readonly bulletBands?: readonly PlanBulletBandGeometry[];
4
+ readonly automaticBulletBands?: readonly string[];
5
+ readonly bulletTargets?: readonly PlanBulletTargetGeometry[];
6
+ readonly bulletGrid?: readonly Readonly<{
7
+ x1: number;
8
+ y1: number;
9
+ x2: number;
10
+ y2: number;
11
+ }>[];
12
+ }
13
+ export declare function comparisonBackground(scene: ComparisonDecorations, surface?: string): string;
14
+ export declare function comparisonGrid(scene: ComparisonDecorations, color: string): string;
15
+ /** Targets stay in the measured series layer: one target for one source datum,
16
+ * never a fake legend row and never an independent overlay chart. */
17
+ export declare function comparisonForeground(scene: ComparisonDecorations, surface?: string, strokeWidth?: number): string;
18
+ //# sourceMappingURL=comparison-render.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"comparison-render.d.ts","sourceRoot":"","sources":["../../src/library/comparison-render.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,sBAAsB,EAAC,wBAAwB,EAAC,MAAM,0BAA0B,CAAC;AAE9F,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,WAAW,CAAC,EAAC,SAAS,sBAAsB,EAAE,CAAC;IACxD,QAAQ,CAAC,oBAAoB,CAAC,EAAC,SAAS,MAAM,EAAE,CAAC;IACjD,QAAQ,CAAC,aAAa,CAAC,EAAC,SAAS,wBAAwB,EAAE,CAAC;IAC5D,QAAQ,CAAC,UAAU,CAAC,EAAC,SAAS,QAAQ,CAAC;QAAC,EAAE,EAAC,MAAM,CAAC;QAAA,EAAE,EAAC,MAAM,CAAC;QAAA,EAAE,EAAC,MAAM,CAAC;QAAA,EAAE,EAAC,MAAM,CAAA;KAAC,CAAC,EAAE,CAAC;CACrF;AAYD,wBAAgB,oBAAoB,CAAC,KAAK,EAAC,qBAAqB,EAAC,OAAO,SAAU,GAAE,MAAM,CAEzF;AACD,wBAAgB,cAAc,CAAC,KAAK,EAAC,qBAAqB,EAAC,KAAK,EAAC,MAAM,GAAE,MAAM,CAE9E;AACD;qEACqE;AACrE,wBAAgB,oBAAoB,CAAC,KAAK,EAAC,qBAAqB,EAAC,OAAO,SAAU,EAAC,WAAW,SAAI,GAAE,MAAM,CAWzG"}
@@ -0,0 +1,33 @@
1
+ /** Plot-local SVG consumed by the same native NgIcon layer as measured geometry.
2
+ * All coordinates are projected by Core; this layer does no scale calculation. */
3
+ function lightInk(fill, surface) {
4
+ const opacity = fill.length === 9 ? parseInt(fill.slice(7, 9), 16) / 255 : 1;
5
+ const rgb = [1, 3, 5].map(i => (parseInt(fill.slice(i, i + 2), 16) * opacity + parseInt(surface.slice(i, i + 2), 16) * (1 - opacity)) / 255);
6
+ const linear = rgb.map(v => v <= .04045 ? v / 12.92 : ((v + .055) / 1.055) ** 2.4);
7
+ return linear[0] * .2126 + linear[1] * .7152 + linear[2] * .0722 <= .179;
8
+ }
9
+ function bandColor(scene, band, index, surface) {
10
+ return lightInk(surface, surface) && scene.automaticBulletBands?.includes(band.id) ? ['#1C2A3D', '#293B52', '#3B506B'][index % 3] : band.color;
11
+ }
12
+ export function comparisonBackground(scene, surface = '#FFFFFF') {
13
+ return (scene.bulletBands ?? []).map((band, index) => band.status === 'visible' && band.rect ? `<rect x="${band.rect.x}" y="${band.rect.y}" width="${band.rect.width}" height="${band.rect.height}" fill="${bandColor(scene, band, index, surface)}"/>` : '').join('');
14
+ }
15
+ export function comparisonGrid(scene, color) {
16
+ return (scene.bulletGrid ?? []).map(line => `<path d="M${line.x1} ${line.y1}L${line.x2} ${line.y2}" stroke="${color}" stroke-width="1.5"/>`).join('');
17
+ }
18
+ /** Targets stay in the measured series layer: one target for one source datum,
19
+ * never a fake legend row and never an independent overlay chart. */
20
+ export function comparisonForeground(scene, surface = '#FFFFFF', strokeWidth = 2.5) {
21
+ return (scene.bulletTargets ?? []).map(target => {
22
+ if (target.status !== 'visible' || !target.line)
23
+ return '';
24
+ const line = target.line, x = (line.x1 + line.x2) / 2, y = (line.y1 + line.y2) / 2;
25
+ const bands = scene.bulletBands ?? [], index = bands.findLastIndex(b => b.status === 'visible' && b.rect && x >= b.rect.x && x <= b.rect.x + b.rect.width && y >= b.rect.y && y <= b.rect.y + b.rect.height);
26
+ const background = index < 0 ? surface : bandColor(scene, bands[index], index, surface);
27
+ const light = lightInk(background, surface), ink = light ? '#FFFFFF' : '#172438', halo = light ? '#172438' : '#FFFFFF';
28
+ const path = `M${line.x1} ${line.y1}L${line.x2} ${line.y2}`;
29
+ // The fine opposite halo also keeps the target distinct where it crosses a measure.
30
+ return `<path d="${path}" fill="none" stroke="${halo}" stroke-width="${strokeWidth * 1.8}"/><path d="${path}" fill="none" stroke="${ink}" stroke-width="${strokeWidth}"/>`;
31
+ }).join('');
32
+ }
33
+ //# sourceMappingURL=comparison-render.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"comparison-render.js","sourceRoot":"","sources":["../../src/library/comparison-render.ts"],"names":[],"mappings":"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"}