react-cheminfo 0.9.0 → 0.11.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 (1285) hide show
  1. package/README.md +251 -20
  2. package/lib/chart/core/chartAxisScale.d.ts +88 -0
  3. package/lib/chart/core/chartAxisScale.d.ts.map +1 -0
  4. package/lib/chart/core/chartAxisScale.js +205 -0
  5. package/lib/chart/core/chartAxisScale.js.map +1 -0
  6. package/lib/chart/core/chartBand.d.ts +47 -0
  7. package/lib/chart/core/chartBand.d.ts.map +1 -0
  8. package/lib/chart/core/chartBand.js +55 -0
  9. package/lib/chart/core/chartBand.js.map +1 -0
  10. package/lib/chart/core/chartBins.d.ts +32 -0
  11. package/lib/chart/core/chartBins.d.ts.map +1 -0
  12. package/lib/chart/core/chartBins.js +64 -0
  13. package/lib/chart/core/chartBins.js.map +1 -0
  14. package/lib/chart/core/chartExtent.d.ts +105 -0
  15. package/lib/chart/core/chartExtent.d.ts.map +1 -0
  16. package/lib/chart/core/chartExtent.js +134 -0
  17. package/lib/chart/core/chartExtent.js.map +1 -0
  18. package/lib/chart/core/chartLabels.d.ts +49 -0
  19. package/lib/chart/core/chartLabels.d.ts.map +1 -0
  20. package/lib/chart/core/chartLabels.js +44 -0
  21. package/lib/chart/core/chartLabels.js.map +1 -0
  22. package/lib/chart/core/chartPalette.d.ts +33 -0
  23. package/lib/chart/core/chartPalette.d.ts.map +1 -0
  24. package/lib/chart/core/chartPalette.js +51 -0
  25. package/lib/chart/core/chartPalette.js.map +1 -0
  26. package/lib/chart/core/chartScale.d.ts +49 -0
  27. package/lib/chart/core/chartScale.d.ts.map +1 -0
  28. package/lib/chart/core/chartScale.js +53 -0
  29. package/lib/chart/core/chartScale.js.map +1 -0
  30. package/lib/chart/core/chartViewport.d.ts +88 -0
  31. package/lib/chart/core/chartViewport.d.ts.map +1 -0
  32. package/lib/chart/core/chartViewport.js +164 -0
  33. package/lib/chart/core/chartViewport.js.map +1 -0
  34. package/lib/chart/core/index.d.ts +29 -0
  35. package/lib/chart/core/index.d.ts.map +1 -0
  36. package/lib/chart/core/index.js +20 -0
  37. package/lib/chart/core/index.js.map +1 -0
  38. package/lib/chart/core/matrix.d.ts +56 -0
  39. package/lib/chart/core/matrix.d.ts.map +1 -0
  40. package/lib/chart/core/matrix.js +75 -0
  41. package/lib/chart/core/matrix.js.map +1 -0
  42. package/lib/chart/ui/ChartAxis.d.ts +50 -0
  43. package/lib/chart/ui/ChartAxis.d.ts.map +1 -0
  44. package/lib/chart/ui/ChartAxis.js +89 -0
  45. package/lib/chart/ui/ChartAxis.js.map +1 -0
  46. package/lib/chart/ui/ChartFrame.d.ts +136 -0
  47. package/lib/chart/ui/ChartFrame.d.ts.map +1 -0
  48. package/lib/chart/ui/ChartFrame.js +61 -0
  49. package/lib/chart/ui/ChartFrame.js.map +1 -0
  50. package/lib/chart/ui/ChartSeriesMarks.d.ts +44 -0
  51. package/lib/chart/ui/ChartSeriesMarks.d.ts.map +1 -0
  52. package/lib/chart/ui/ChartSeriesMarks.js +48 -0
  53. package/lib/chart/ui/ChartSeriesMarks.js.map +1 -0
  54. package/lib/chart/ui/ChartTrackingLayer.d.ts +54 -0
  55. package/lib/chart/ui/ChartTrackingLayer.d.ts.map +1 -0
  56. package/lib/chart/ui/ChartTrackingLayer.js +98 -0
  57. package/lib/chart/ui/ChartTrackingLayer.js.map +1 -0
  58. package/lib/chart/ui/TrackedLineChart.d.ts +136 -0
  59. package/lib/chart/ui/TrackedLineChart.d.ts.map +1 -0
  60. package/lib/chart/ui/TrackedLineChart.js +90 -0
  61. package/lib/chart/ui/TrackedLineChart.js.map +1 -0
  62. package/lib/chart/ui/TrackedStickChart.d.ts +88 -0
  63. package/lib/chart/ui/TrackedStickChart.d.ts.map +1 -0
  64. package/lib/chart/ui/TrackedStickChart.js +58 -0
  65. package/lib/chart/ui/TrackedStickChart.js.map +1 -0
  66. package/lib/chart/ui/chartStyles.d.ts +141 -0
  67. package/lib/chart/ui/chartStyles.d.ts.map +1 -0
  68. package/lib/chart/ui/chartStyles.js +154 -0
  69. package/lib/chart/ui/chartStyles.js.map +1 -0
  70. package/lib/chart/ui/index.d.ts +20 -0
  71. package/lib/chart/ui/index.d.ts.map +1 -0
  72. package/lib/chart/ui/index.js +13 -0
  73. package/lib/chart/ui/index.js.map +1 -0
  74. package/lib/chart/ui/stickChartModel.d.ts +99 -0
  75. package/lib/chart/ui/stickChartModel.d.ts.map +1 -0
  76. package/lib/chart/ui/stickChartModel.js +140 -0
  77. package/lib/chart/ui/stickChartModel.js.map +1 -0
  78. package/lib/chart/ui/useWheelZoom.d.ts +69 -0
  79. package/lib/chart/ui/useWheelZoom.d.ts.map +1 -0
  80. package/lib/chart/ui/useWheelZoom.js +122 -0
  81. package/lib/chart/ui/useWheelZoom.js.map +1 -0
  82. package/lib/chrome/ui/NavLink.d.ts.map +1 -1
  83. package/lib/chrome/ui/NavLink.js +4 -3
  84. package/lib/chrome/ui/NavLink.js.map +1 -1
  85. package/lib/chrome/ui/SiteFooter.d.ts +8 -0
  86. package/lib/chrome/ui/SiteFooter.d.ts.map +1 -1
  87. package/lib/chrome/ui/SiteFooter.js +7 -2
  88. package/lib/chrome/ui/SiteFooter.js.map +1 -1
  89. package/lib/chrome/ui/SiteHeader.d.ts +11 -0
  90. package/lib/chrome/ui/SiteHeader.d.ts.map +1 -1
  91. package/lib/chrome/ui/SiteHeader.js +7 -2
  92. package/lib/chrome/ui/SiteHeader.js.map +1 -1
  93. package/lib/chrome/ui/navItem.d.ts +12 -0
  94. package/lib/chrome/ui/navItem.d.ts.map +1 -1
  95. package/lib/chrome/ui/navItem.js.map +1 -1
  96. package/lib/color/core/gradient.d.ts +15 -0
  97. package/lib/color/core/gradient.d.ts.map +1 -0
  98. package/lib/color/core/gradient.js +28 -0
  99. package/lib/color/core/gradient.js.map +1 -0
  100. package/lib/color/core/hsv.d.ts +38 -0
  101. package/lib/color/core/hsv.d.ts.map +1 -0
  102. package/lib/color/core/hsv.js +92 -0
  103. package/lib/color/core/hsv.js.map +1 -0
  104. package/lib/color/core/index.d.ts +12 -1
  105. package/lib/color/core/index.d.ts.map +1 -1
  106. package/lib/color/core/index.js +6 -0
  107. package/lib/color/core/index.js.map +1 -1
  108. package/lib/color/core/interpolate.d.ts +67 -0
  109. package/lib/color/core/interpolate.d.ts.map +1 -0
  110. package/lib/color/core/interpolate.js +121 -0
  111. package/lib/color/core/interpolate.js.map +1 -0
  112. package/lib/color/core/scale.d.ts +11 -15
  113. package/lib/color/core/scale.d.ts.map +1 -1
  114. package/lib/color/core/scale.js +14 -41
  115. package/lib/color/core/scale.js.map +1 -1
  116. package/lib/color/core/scaleData.d.ts +19 -0
  117. package/lib/color/core/scaleData.d.ts.map +1 -0
  118. package/lib/color/core/scaleData.js +120 -0
  119. package/lib/color/core/scaleData.js.map +1 -0
  120. package/lib/color/core/scaleText.d.ts +43 -0
  121. package/lib/color/core/scaleText.d.ts.map +1 -0
  122. package/lib/color/core/scaleText.js +109 -0
  123. package/lib/color/core/scaleText.js.map +1 -0
  124. package/lib/color/core/scales.d.ts +42 -0
  125. package/lib/color/core/scales.d.ts.map +1 -0
  126. package/lib/color/core/scales.js +110 -0
  127. package/lib/color/core/scales.js.map +1 -0
  128. package/lib/color/ui/ColorScaleBar.d.ts +39 -0
  129. package/lib/color/ui/ColorScaleBar.d.ts.map +1 -0
  130. package/lib/color/ui/ColorScaleBar.js +27 -0
  131. package/lib/color/ui/ColorScaleBar.js.map +1 -0
  132. package/lib/color/ui/ColorScaleEditor.d.ts +21 -0
  133. package/lib/color/ui/ColorScaleEditor.d.ts.map +1 -0
  134. package/lib/color/ui/ColorScaleEditor.js +141 -0
  135. package/lib/color/ui/ColorScaleEditor.js.map +1 -0
  136. package/lib/color/ui/ColorScaleSelect.d.ts +38 -0
  137. package/lib/color/ui/ColorScaleSelect.d.ts.map +1 -0
  138. package/lib/color/ui/ColorScaleSelect.js +109 -0
  139. package/lib/color/ui/ColorScaleSelect.js.map +1 -0
  140. package/lib/color/ui/index.d.ts +6 -0
  141. package/lib/color/ui/index.d.ts.map +1 -1
  142. package/lib/color/ui/index.js +3 -0
  143. package/lib/color/ui/index.js.map +1 -1
  144. package/lib/core.d.ts +6 -0
  145. package/lib/core.d.ts.map +1 -1
  146. package/lib/core.js +6 -0
  147. package/lib/core.js.map +1 -1
  148. package/lib/credits/core/credits.d.ts +17 -0
  149. package/lib/credits/core/credits.d.ts.map +1 -1
  150. package/lib/credits/core/credits.js +20 -0
  151. package/lib/credits/core/credits.js.map +1 -1
  152. package/lib/download/core/cssTokens.d.ts +33 -0
  153. package/lib/download/core/cssTokens.d.ts.map +1 -0
  154. package/lib/download/core/cssTokens.js +82 -0
  155. package/lib/download/core/cssTokens.js.map +1 -0
  156. package/lib/download/core/downloadFigure.d.ts +39 -0
  157. package/lib/download/core/downloadFigure.d.ts.map +1 -0
  158. package/lib/download/core/downloadFigure.js +35 -0
  159. package/lib/download/core/downloadFigure.js.map +1 -0
  160. package/lib/download/core/figureLegend.d.ts +90 -0
  161. package/lib/download/core/figureLegend.d.ts.map +1 -0
  162. package/lib/download/core/figureLegend.js +77 -0
  163. package/lib/download/core/figureLegend.js.map +1 -0
  164. package/lib/download/core/figurePng.d.ts +21 -0
  165. package/lib/download/core/figurePng.d.ts.map +1 -0
  166. package/lib/download/core/figurePng.js +76 -0
  167. package/lib/download/core/figurePng.js.map +1 -0
  168. package/lib/download/core/figureScale.d.ts +61 -0
  169. package/lib/download/core/figureScale.d.ts.map +1 -0
  170. package/lib/download/core/figureScale.js +67 -0
  171. package/lib/download/core/figureScale.js.map +1 -0
  172. package/lib/download/core/figureSvg.d.ts +37 -0
  173. package/lib/download/core/figureSvg.d.ts.map +1 -0
  174. package/lib/download/core/figureSvg.js +164 -0
  175. package/lib/download/core/figureSvg.js.map +1 -0
  176. package/lib/download/core/figureSvgDocument.d.ts +62 -0
  177. package/lib/download/core/figureSvgDocument.d.ts.map +1 -0
  178. package/lib/download/core/figureSvgDocument.js +82 -0
  179. package/lib/download/core/figureSvgDocument.js.map +1 -0
  180. package/lib/download/core/figureTarget.d.ts +67 -0
  181. package/lib/download/core/figureTarget.d.ts.map +1 -0
  182. package/lib/download/core/figureTarget.js +138 -0
  183. package/lib/download/core/figureTarget.js.map +1 -0
  184. package/lib/download/core/index.d.ts +14 -0
  185. package/lib/download/core/index.d.ts.map +1 -1
  186. package/lib/download/core/index.js +8 -0
  187. package/lib/download/core/index.js.map +1 -1
  188. package/lib/download/ui/FigureDownload.d.ts +81 -0
  189. package/lib/download/ui/FigureDownload.d.ts.map +1 -0
  190. package/lib/download/ui/FigureDownload.js +65 -0
  191. package/lib/download/ui/FigureDownload.js.map +1 -0
  192. package/lib/download/ui/FigureDownloadPanel.d.ts +45 -0
  193. package/lib/download/ui/FigureDownloadPanel.d.ts.map +1 -0
  194. package/lib/download/ui/FigureDownloadPanel.js +86 -0
  195. package/lib/download/ui/FigureDownloadPanel.js.map +1 -0
  196. package/lib/download/ui/index.d.ts +13 -0
  197. package/lib/download/ui/index.d.ts.map +1 -0
  198. package/lib/download/ui/index.js +11 -0
  199. package/lib/download/ui/index.js.map +1 -0
  200. package/lib/ecosystem/core/sites.d.ts +1 -1
  201. package/lib/ecosystem/core/sites.d.ts.map +1 -1
  202. package/lib/ecosystem/core/sites.js +23 -0
  203. package/lib/ecosystem/core/sites.js.map +1 -1
  204. package/lib/ecosystem/ui/glyphs.d.ts.map +1 -1
  205. package/lib/ecosystem/ui/glyphs.js +9 -0
  206. package/lib/ecosystem/ui/glyphs.js.map +1 -1
  207. package/lib/overlay/core/emptiestCorner.d.ts +47 -0
  208. package/lib/overlay/core/emptiestCorner.d.ts.map +1 -0
  209. package/lib/overlay/core/emptiestCorner.js +84 -0
  210. package/lib/overlay/core/emptiestCorner.js.map +1 -0
  211. package/lib/overlay/core/index.d.ts +23 -0
  212. package/lib/overlay/core/index.d.ts.map +1 -0
  213. package/lib/overlay/core/index.js +16 -0
  214. package/lib/overlay/core/index.js.map +1 -0
  215. package/lib/overlay/core/overlayCollapse.d.ts +14 -0
  216. package/lib/overlay/core/overlayCollapse.d.ts.map +1 -0
  217. package/lib/overlay/core/overlayCollapse.js +20 -0
  218. package/lib/overlay/core/overlayCollapse.js.map +1 -0
  219. package/lib/overlay/core/overlayMarks.d.ts +31 -0
  220. package/lib/overlay/core/overlayMarks.d.ts.map +1 -0
  221. package/lib/overlay/core/overlayMarks.js +38 -0
  222. package/lib/overlay/core/overlayMarks.js.map +1 -0
  223. package/lib/overlay/core/overlayMetrics.d.ts +41 -0
  224. package/lib/overlay/core/overlayMetrics.d.ts.map +1 -0
  225. package/lib/overlay/core/overlayMetrics.js +73 -0
  226. package/lib/overlay/core/overlayMetrics.js.map +1 -0
  227. package/lib/overlay/core/overlayPlacement.d.ts +60 -0
  228. package/lib/overlay/core/overlayPlacement.d.ts.map +1 -0
  229. package/lib/overlay/core/overlayPlacement.js +24 -0
  230. package/lib/overlay/core/overlayPlacement.js.map +1 -0
  231. package/lib/overlay/core/overlayTierRoom.d.ts +89 -0
  232. package/lib/overlay/core/overlayTierRoom.d.ts.map +1 -0
  233. package/lib/overlay/core/overlayTierRoom.js +135 -0
  234. package/lib/overlay/core/overlayTierRoom.js.map +1 -0
  235. package/lib/overlay/core/overlayTiers.d.ts +71 -0
  236. package/lib/overlay/core/overlayTiers.d.ts.map +1 -0
  237. package/lib/overlay/core/overlayTiers.js +89 -0
  238. package/lib/overlay/core/overlayTiers.js.map +1 -0
  239. package/lib/overlay/core/placeOverlayCard.d.ts +47 -0
  240. package/lib/overlay/core/placeOverlayCard.d.ts.map +1 -0
  241. package/lib/overlay/core/placeOverlayCard.js +42 -0
  242. package/lib/overlay/core/placeOverlayCard.js.map +1 -0
  243. package/lib/overlay/ui/OverlayAction.d.ts +32 -0
  244. package/lib/overlay/ui/OverlayAction.d.ts.map +1 -0
  245. package/lib/overlay/ui/OverlayAction.js +19 -0
  246. package/lib/overlay/ui/OverlayAction.js.map +1 -0
  247. package/lib/overlay/ui/OverlayBar.d.ts +122 -0
  248. package/lib/overlay/ui/OverlayBar.d.ts.map +1 -0
  249. package/lib/overlay/ui/OverlayBar.js +42 -0
  250. package/lib/overlay/ui/OverlayBar.js.map +1 -0
  251. package/lib/overlay/ui/OverlayBarButton.d.ts +38 -0
  252. package/lib/overlay/ui/OverlayBarButton.d.ts.map +1 -0
  253. package/lib/overlay/ui/OverlayBarButton.js +40 -0
  254. package/lib/overlay/ui/OverlayBarButton.js.map +1 -0
  255. package/lib/overlay/ui/OverlayBarCard.d.ts +25 -0
  256. package/lib/overlay/ui/OverlayBarCard.d.ts.map +1 -0
  257. package/lib/overlay/ui/OverlayBarCard.js +28 -0
  258. package/lib/overlay/ui/OverlayBarCard.js.map +1 -0
  259. package/lib/overlay/ui/OverlayBarStrip.d.ts +18 -0
  260. package/lib/overlay/ui/OverlayBarStrip.d.ts.map +1 -0
  261. package/lib/overlay/ui/OverlayBarStrip.js +26 -0
  262. package/lib/overlay/ui/OverlayBarStrip.js.map +1 -0
  263. package/lib/overlay/ui/OverlayCaption.d.ts +52 -0
  264. package/lib/overlay/ui/OverlayCaption.d.ts.map +1 -0
  265. package/lib/overlay/ui/OverlayCaption.js +62 -0
  266. package/lib/overlay/ui/OverlayCaption.js.map +1 -0
  267. package/lib/overlay/ui/OverlayChip.d.ts +60 -0
  268. package/lib/overlay/ui/OverlayChip.d.ts.map +1 -0
  269. package/lib/overlay/ui/OverlayChip.js +73 -0
  270. package/lib/overlay/ui/OverlayChip.js.map +1 -0
  271. package/lib/overlay/ui/OverlayDivider.d.ts +11 -0
  272. package/lib/overlay/ui/OverlayDivider.d.ts.map +1 -0
  273. package/lib/overlay/ui/OverlayDivider.js +16 -0
  274. package/lib/overlay/ui/OverlayDivider.js.map +1 -0
  275. package/lib/overlay/ui/OverlayGroup.d.ts +53 -0
  276. package/lib/overlay/ui/OverlayGroup.d.ts.map +1 -0
  277. package/lib/overlay/ui/OverlayGroup.js +63 -0
  278. package/lib/overlay/ui/OverlayGroup.js.map +1 -0
  279. package/lib/overlay/ui/OverlayIconButton.d.ts +75 -0
  280. package/lib/overlay/ui/OverlayIconButton.d.ts.map +1 -0
  281. package/lib/overlay/ui/OverlayIconButton.js +43 -0
  282. package/lib/overlay/ui/OverlayIconButton.js.map +1 -0
  283. package/lib/overlay/ui/OverlayInfo.d.ts +43 -0
  284. package/lib/overlay/ui/OverlayInfo.d.ts.map +1 -0
  285. package/lib/overlay/ui/OverlayInfo.js +47 -0
  286. package/lib/overlay/ui/OverlayInfo.js.map +1 -0
  287. package/lib/overlay/ui/OverlayLayer.d.ts +54 -0
  288. package/lib/overlay/ui/OverlayLayer.d.ts.map +1 -0
  289. package/lib/overlay/ui/OverlayLayer.js +50 -0
  290. package/lib/overlay/ui/OverlayLayer.js.map +1 -0
  291. package/lib/overlay/ui/OverlayLegend.d.ts +75 -0
  292. package/lib/overlay/ui/OverlayLegend.d.ts.map +1 -0
  293. package/lib/overlay/ui/OverlayLegend.js +81 -0
  294. package/lib/overlay/ui/OverlayLegend.js.map +1 -0
  295. package/lib/overlay/ui/OverlayLegendMark.d.ts +36 -0
  296. package/lib/overlay/ui/OverlayLegendMark.d.ts.map +1 -0
  297. package/lib/overlay/ui/OverlayLegendMark.js +43 -0
  298. package/lib/overlay/ui/OverlayLegendMark.js.map +1 -0
  299. package/lib/overlay/ui/OverlayNumber.d.ts +43 -0
  300. package/lib/overlay/ui/OverlayNumber.d.ts.map +1 -0
  301. package/lib/overlay/ui/OverlayNumber.js +74 -0
  302. package/lib/overlay/ui/OverlayNumber.js.map +1 -0
  303. package/lib/overlay/ui/OverlayPanel.d.ts +81 -0
  304. package/lib/overlay/ui/OverlayPanel.d.ts.map +1 -0
  305. package/lib/overlay/ui/OverlayPanel.js +42 -0
  306. package/lib/overlay/ui/OverlayPanel.js.map +1 -0
  307. package/lib/overlay/ui/OverlayPills.d.ts +73 -0
  308. package/lib/overlay/ui/OverlayPills.d.ts.map +1 -0
  309. package/lib/overlay/ui/OverlayPills.js +55 -0
  310. package/lib/overlay/ui/OverlayPills.js.map +1 -0
  311. package/lib/overlay/ui/OverlayReadout.d.ts +63 -0
  312. package/lib/overlay/ui/OverlayReadout.d.ts.map +1 -0
  313. package/lib/overlay/ui/OverlayReadout.js +129 -0
  314. package/lib/overlay/ui/OverlayReadout.js.map +1 -0
  315. package/lib/overlay/ui/OverlayRow.d.ts +111 -0
  316. package/lib/overlay/ui/OverlayRow.d.ts.map +1 -0
  317. package/lib/overlay/ui/OverlayRow.js +50 -0
  318. package/lib/overlay/ui/OverlayRow.js.map +1 -0
  319. package/lib/overlay/ui/OverlaySegmented.d.ts +28 -0
  320. package/lib/overlay/ui/OverlaySegmented.d.ts.map +1 -0
  321. package/lib/overlay/ui/OverlaySegmented.js +23 -0
  322. package/lib/overlay/ui/OverlaySegmented.js.map +1 -0
  323. package/lib/overlay/ui/OverlaySelect.d.ts +35 -0
  324. package/lib/overlay/ui/OverlaySelect.d.ts.map +1 -0
  325. package/lib/overlay/ui/OverlaySelect.js +30 -0
  326. package/lib/overlay/ui/OverlaySelect.js.map +1 -0
  327. package/lib/overlay/ui/OverlaySwatchIcon.d.ts +26 -0
  328. package/lib/overlay/ui/OverlaySwatchIcon.d.ts.map +1 -0
  329. package/lib/overlay/ui/OverlaySwatchIcon.js +94 -0
  330. package/lib/overlay/ui/OverlaySwatchIcon.js.map +1 -0
  331. package/lib/overlay/ui/OverlayToggle.d.ts +56 -0
  332. package/lib/overlay/ui/OverlayToggle.d.ts.map +1 -0
  333. package/lib/overlay/ui/OverlayToggle.js +42 -0
  334. package/lib/overlay/ui/OverlayToggle.js.map +1 -0
  335. package/lib/overlay/ui/OverlayValueButton.d.ts +80 -0
  336. package/lib/overlay/ui/OverlayValueButton.d.ts.map +1 -0
  337. package/lib/overlay/ui/OverlayValueButton.js +46 -0
  338. package/lib/overlay/ui/OverlayValueButton.js.map +1 -0
  339. package/lib/overlay/ui/OverlayValueMenu.d.ts +68 -0
  340. package/lib/overlay/ui/OverlayValueMenu.d.ts.map +1 -0
  341. package/lib/overlay/ui/OverlayValueMenu.js +40 -0
  342. package/lib/overlay/ui/OverlayValueMenu.js.map +1 -0
  343. package/lib/overlay/ui/index.d.ts +55 -0
  344. package/lib/overlay/ui/index.d.ts.map +1 -0
  345. package/lib/overlay/ui/index.js +33 -0
  346. package/lib/overlay/ui/index.js.map +1 -0
  347. package/lib/overlay/ui/overlayBarShape.d.ts +85 -0
  348. package/lib/overlay/ui/overlayBarShape.d.ts.map +1 -0
  349. package/lib/overlay/ui/overlayBarShape.js +48 -0
  350. package/lib/overlay/ui/overlayBarShape.js.map +1 -0
  351. package/lib/overlay/ui/overlayControlStyles.d.ts +82 -0
  352. package/lib/overlay/ui/overlayControlStyles.d.ts.map +1 -0
  353. package/lib/overlay/ui/overlayControlStyles.js +142 -0
  354. package/lib/overlay/ui/overlayControlStyles.js.map +1 -0
  355. package/lib/overlay/ui/overlayFigureStyles.d.ts +52 -0
  356. package/lib/overlay/ui/overlayFigureStyles.d.ts.map +1 -0
  357. package/lib/overlay/ui/overlayFigureStyles.js +98 -0
  358. package/lib/overlay/ui/overlayFigureStyles.js.map +1 -0
  359. package/lib/overlay/ui/overlayPanelContext.d.ts +34 -0
  360. package/lib/overlay/ui/overlayPanelContext.d.ts.map +1 -0
  361. package/lib/overlay/ui/overlayPanelContext.js +29 -0
  362. package/lib/overlay/ui/overlayPanelContext.js.map +1 -0
  363. package/lib/overlay/ui/overlayPanelStyles.d.ts +112 -0
  364. package/lib/overlay/ui/overlayPanelStyles.d.ts.map +1 -0
  365. package/lib/overlay/ui/overlayPanelStyles.js +193 -0
  366. package/lib/overlay/ui/overlayPanelStyles.js.map +1 -0
  367. package/lib/overlay/ui/overlayPillKeys.d.ts +19 -0
  368. package/lib/overlay/ui/overlayPillKeys.d.ts.map +1 -0
  369. package/lib/overlay/ui/overlayPillKeys.js +33 -0
  370. package/lib/overlay/ui/overlayPillKeys.js.map +1 -0
  371. package/lib/overlay/ui/overlayPillStyles.d.ts +78 -0
  372. package/lib/overlay/ui/overlayPillStyles.d.ts.map +1 -0
  373. package/lib/overlay/ui/overlayPillStyles.js +140 -0
  374. package/lib/overlay/ui/overlayPillStyles.js.map +1 -0
  375. package/lib/overlay/ui/overlayRowStyles.d.ts +113 -0
  376. package/lib/overlay/ui/overlayRowStyles.d.ts.map +1 -0
  377. package/lib/overlay/ui/overlayRowStyles.js +135 -0
  378. package/lib/overlay/ui/overlayRowStyles.js.map +1 -0
  379. package/lib/overlay/ui/overlayStepperStyles.d.ts +51 -0
  380. package/lib/overlay/ui/overlayStepperStyles.d.ts.map +1 -0
  381. package/lib/overlay/ui/overlayStepperStyles.js +96 -0
  382. package/lib/overlay/ui/overlayStepperStyles.js.map +1 -0
  383. package/lib/overlay/ui/overlayStyles.d.ts +123 -0
  384. package/lib/overlay/ui/overlayStyles.d.ts.map +1 -0
  385. package/lib/overlay/ui/overlayStyles.js +203 -0
  386. package/lib/overlay/ui/overlayStyles.js.map +1 -0
  387. package/lib/overlay/ui/overlaySurface.d.ts +54 -0
  388. package/lib/overlay/ui/overlaySurface.d.ts.map +1 -0
  389. package/lib/overlay/ui/overlaySurface.js +85 -0
  390. package/lib/overlay/ui/overlaySurface.js.map +1 -0
  391. package/lib/overlay/ui/overlaySwitchStyles.d.ts +70 -0
  392. package/lib/overlay/ui/overlaySwitchStyles.d.ts.map +1 -0
  393. package/lib/overlay/ui/overlaySwitchStyles.js +102 -0
  394. package/lib/overlay/ui/overlaySwitchStyles.js.map +1 -0
  395. package/lib/overlay/ui/overlayValueStyles.d.ts +101 -0
  396. package/lib/overlay/ui/overlayValueStyles.d.ts.map +1 -0
  397. package/lib/overlay/ui/overlayValueStyles.js +166 -0
  398. package/lib/overlay/ui/overlayValueStyles.js.map +1 -0
  399. package/lib/projection/core/embeddingResult.d.ts +60 -0
  400. package/lib/projection/core/embeddingResult.d.ts.map +1 -0
  401. package/lib/projection/core/embeddingResult.js +52 -0
  402. package/lib/projection/core/embeddingResult.js.map +1 -0
  403. package/lib/projection/core/explainedShares.d.ts +51 -0
  404. package/lib/projection/core/explainedShares.d.ts.map +1 -0
  405. package/lib/projection/core/explainedShares.js +55 -0
  406. package/lib/projection/core/explainedShares.js.map +1 -0
  407. package/lib/projection/core/index.d.ts +38 -0
  408. package/lib/projection/core/index.d.ts.map +1 -0
  409. package/lib/projection/core/index.js +25 -0
  410. package/lib/projection/core/index.js.map +1 -0
  411. package/lib/projection/core/loadingProfiles.d.ts +87 -0
  412. package/lib/projection/core/loadingProfiles.d.ts.map +1 -0
  413. package/lib/projection/core/loadingProfiles.js +125 -0
  414. package/lib/projection/core/loadingProfiles.js.map +1 -0
  415. package/lib/projection/core/pcaLike.d.ts +32 -0
  416. package/lib/projection/core/pcaLike.d.ts.map +1 -0
  417. package/lib/projection/core/pcaLike.js +2 -0
  418. package/lib/projection/core/pcaLike.js.map +1 -0
  419. package/lib/projection/core/pcaResult.d.ts +86 -0
  420. package/lib/projection/core/pcaResult.d.ts.map +1 -0
  421. package/lib/projection/core/pcaResult.js +122 -0
  422. package/lib/projection/core/pcaResult.js.map +1 -0
  423. package/lib/projection/core/projectionCopy.d.ts +134 -0
  424. package/lib/projection/core/projectionCopy.d.ts.map +1 -0
  425. package/lib/projection/core/projectionCopy.js +114 -0
  426. package/lib/projection/core/projectionCopy.js.map +1 -0
  427. package/lib/projection/core/projectionCopyPatch.d.ts +13 -0
  428. package/lib/projection/core/projectionCopyPatch.d.ts.map +1 -0
  429. package/lib/projection/core/projectionCopyPatch.js +2 -0
  430. package/lib/projection/core/projectionCopyPatch.js.map +1 -0
  431. package/lib/projection/core/projectionOptions.d.ts +143 -0
  432. package/lib/projection/core/projectionOptions.d.ts.map +1 -0
  433. package/lib/projection/core/projectionOptions.js +111 -0
  434. package/lib/projection/core/projectionOptions.js.map +1 -0
  435. package/lib/projection/core/projectionResult.d.ts +119 -0
  436. package/lib/projection/core/projectionResult.d.ts.map +1 -0
  437. package/lib/projection/core/projectionResult.js +2 -0
  438. package/lib/projection/core/projectionResult.js.map +1 -0
  439. package/lib/projection/core/projectionSamples.d.ts +77 -0
  440. package/lib/projection/core/projectionSamples.d.ts.map +1 -0
  441. package/lib/projection/core/projectionSamples.js +81 -0
  442. package/lib/projection/core/projectionSamples.js.map +1 -0
  443. package/lib/projection/core/projectionStrings.d.ts +138 -0
  444. package/lib/projection/core/projectionStrings.d.ts.map +1 -0
  445. package/lib/projection/core/projectionStrings.js +182 -0
  446. package/lib/projection/core/projectionStrings.js.map +1 -0
  447. package/lib/projection/core/projectionTabDefaults.d.ts +18 -0
  448. package/lib/projection/core/projectionTabDefaults.d.ts.map +1 -0
  449. package/lib/projection/core/projectionTabDefaults.js +58 -0
  450. package/lib/projection/core/projectionTabDefaults.js.map +1 -0
  451. package/lib/projection/core/projectionTabs.d.ts +25 -0
  452. package/lib/projection/core/projectionTabs.d.ts.map +1 -0
  453. package/lib/projection/core/projectionTabs.js +60 -0
  454. package/lib/projection/core/projectionTabs.js.map +1 -0
  455. package/lib/projection/core/variableAxis.d.ts +106 -0
  456. package/lib/projection/core/variableAxis.d.ts.map +1 -0
  457. package/lib/projection/core/variableAxis.js +84 -0
  458. package/lib/projection/core/variableAxis.js.map +1 -0
  459. package/lib/projection/core/variablesView.d.ts +33 -0
  460. package/lib/projection/core/variablesView.d.ts.map +1 -0
  461. package/lib/projection/core/variablesView.js +49 -0
  462. package/lib/projection/core/variablesView.js.map +1 -0
  463. package/lib/projection/ui/PcaViewer.d.ts +31 -0
  464. package/lib/projection/ui/PcaViewer.d.ts.map +1 -0
  465. package/lib/projection/ui/PcaViewer.js +46 -0
  466. package/lib/projection/ui/PcaViewer.js.map +1 -0
  467. package/lib/projection/ui/ProjectionBar.d.ts +55 -0
  468. package/lib/projection/ui/ProjectionBar.d.ts.map +1 -0
  469. package/lib/projection/ui/ProjectionBar.js +112 -0
  470. package/lib/projection/ui/ProjectionBar.js.map +1 -0
  471. package/lib/projection/ui/ProjectionMapCaption.d.ts +46 -0
  472. package/lib/projection/ui/ProjectionMapCaption.d.ts.map +1 -0
  473. package/lib/projection/ui/ProjectionMapCaption.js +54 -0
  474. package/lib/projection/ui/ProjectionMapCaption.js.map +1 -0
  475. package/lib/projection/ui/ProjectionMapControls.d.ts +67 -0
  476. package/lib/projection/ui/ProjectionMapControls.d.ts.map +1 -0
  477. package/lib/projection/ui/ProjectionMapControls.js +108 -0
  478. package/lib/projection/ui/ProjectionMapControls.js.map +1 -0
  479. package/lib/projection/ui/ProjectionMapLegend.d.ts +39 -0
  480. package/lib/projection/ui/ProjectionMapLegend.d.ts.map +1 -0
  481. package/lib/projection/ui/ProjectionMapLegend.js +29 -0
  482. package/lib/projection/ui/ProjectionMapLegend.js.map +1 -0
  483. package/lib/projection/ui/ProjectionMapMore.d.ts +42 -0
  484. package/lib/projection/ui/ProjectionMapMore.d.ts.map +1 -0
  485. package/lib/projection/ui/ProjectionMapMore.js +74 -0
  486. package/lib/projection/ui/ProjectionMapMore.js.map +1 -0
  487. package/lib/projection/ui/ProjectionMapTab.d.ts +107 -0
  488. package/lib/projection/ui/ProjectionMapTab.d.ts.map +1 -0
  489. package/lib/projection/ui/ProjectionMapTab.js +43 -0
  490. package/lib/projection/ui/ProjectionMapTab.js.map +1 -0
  491. package/lib/projection/ui/ProjectionPairsControls.d.ts +37 -0
  492. package/lib/projection/ui/ProjectionPairsControls.d.ts.map +1 -0
  493. package/lib/projection/ui/ProjectionPairsControls.js +20 -0
  494. package/lib/projection/ui/ProjectionPairsControls.js.map +1 -0
  495. package/lib/projection/ui/ProjectionPairsMore.d.ts +40 -0
  496. package/lib/projection/ui/ProjectionPairsMore.d.ts.map +1 -0
  497. package/lib/projection/ui/ProjectionPairsMore.js +31 -0
  498. package/lib/projection/ui/ProjectionPairsMore.js.map +1 -0
  499. package/lib/projection/ui/ProjectionPairsTab.d.ts +66 -0
  500. package/lib/projection/ui/ProjectionPairsTab.d.ts.map +1 -0
  501. package/lib/projection/ui/ProjectionPairsTab.js +64 -0
  502. package/lib/projection/ui/ProjectionPairsTab.js.map +1 -0
  503. package/lib/projection/ui/ProjectionPanel.d.ts +79 -0
  504. package/lib/projection/ui/ProjectionPanel.d.ts.map +1 -0
  505. package/lib/projection/ui/ProjectionPanel.js +72 -0
  506. package/lib/projection/ui/ProjectionPanel.js.map +1 -0
  507. package/lib/projection/ui/ProjectionReadout.d.ts +72 -0
  508. package/lib/projection/ui/ProjectionReadout.d.ts.map +1 -0
  509. package/lib/projection/ui/ProjectionReadout.js +47 -0
  510. package/lib/projection/ui/ProjectionReadout.js.map +1 -0
  511. package/lib/projection/ui/ProjectionSharesControls.d.ts +34 -0
  512. package/lib/projection/ui/ProjectionSharesControls.d.ts.map +1 -0
  513. package/lib/projection/ui/ProjectionSharesControls.js +20 -0
  514. package/lib/projection/ui/ProjectionSharesControls.js.map +1 -0
  515. package/lib/projection/ui/ProjectionSharesMarks.d.ts +49 -0
  516. package/lib/projection/ui/ProjectionSharesMarks.d.ts.map +1 -0
  517. package/lib/projection/ui/ProjectionSharesMarks.js +110 -0
  518. package/lib/projection/ui/ProjectionSharesMarks.js.map +1 -0
  519. package/lib/projection/ui/ProjectionSharesMore.d.ts +19 -0
  520. package/lib/projection/ui/ProjectionSharesMore.d.ts.map +1 -0
  521. package/lib/projection/ui/ProjectionSharesMore.js +25 -0
  522. package/lib/projection/ui/ProjectionSharesMore.js.map +1 -0
  523. package/lib/projection/ui/ProjectionSharesTab.d.ts +50 -0
  524. package/lib/projection/ui/ProjectionSharesTab.d.ts.map +1 -0
  525. package/lib/projection/ui/ProjectionSharesTab.js +48 -0
  526. package/lib/projection/ui/ProjectionSharesTab.js.map +1 -0
  527. package/lib/projection/ui/ProjectionSpaceControls.d.ts +51 -0
  528. package/lib/projection/ui/ProjectionSpaceControls.d.ts.map +1 -0
  529. package/lib/projection/ui/ProjectionSpaceControls.js +71 -0
  530. package/lib/projection/ui/ProjectionSpaceControls.js.map +1 -0
  531. package/lib/projection/ui/ProjectionSpaceMore.d.ts +32 -0
  532. package/lib/projection/ui/ProjectionSpaceMore.d.ts.map +1 -0
  533. package/lib/projection/ui/ProjectionSpaceMore.js +57 -0
  534. package/lib/projection/ui/ProjectionSpaceMore.js.map +1 -0
  535. package/lib/projection/ui/ProjectionSpaceTab.d.ts +98 -0
  536. package/lib/projection/ui/ProjectionSpaceTab.d.ts.map +1 -0
  537. package/lib/projection/ui/ProjectionSpaceTab.js +66 -0
  538. package/lib/projection/ui/ProjectionSpaceTab.js.map +1 -0
  539. package/lib/projection/ui/ProjectionSurface.d.ts +33 -0
  540. package/lib/projection/ui/ProjectionSurface.d.ts.map +1 -0
  541. package/lib/projection/ui/ProjectionSurface.js +35 -0
  542. package/lib/projection/ui/ProjectionSurface.js.map +1 -0
  543. package/lib/projection/ui/ProjectionTabStrip.d.ts +74 -0
  544. package/lib/projection/ui/ProjectionTabStrip.d.ts.map +1 -0
  545. package/lib/projection/ui/ProjectionTabStrip.js +64 -0
  546. package/lib/projection/ui/ProjectionTabStrip.js.map +1 -0
  547. package/lib/projection/ui/ProjectionVariablesControls.d.ts +33 -0
  548. package/lib/projection/ui/ProjectionVariablesControls.d.ts.map +1 -0
  549. package/lib/projection/ui/ProjectionVariablesControls.js +26 -0
  550. package/lib/projection/ui/ProjectionVariablesControls.js.map +1 -0
  551. package/lib/projection/ui/ProjectionVariablesMore.d.ts +33 -0
  552. package/lib/projection/ui/ProjectionVariablesMore.d.ts.map +1 -0
  553. package/lib/projection/ui/ProjectionVariablesMore.js +55 -0
  554. package/lib/projection/ui/ProjectionVariablesMore.js.map +1 -0
  555. package/lib/projection/ui/ProjectionVariablesTab.d.ts +78 -0
  556. package/lib/projection/ui/ProjectionVariablesTab.d.ts.map +1 -0
  557. package/lib/projection/ui/ProjectionVariablesTab.js +93 -0
  558. package/lib/projection/ui/ProjectionVariablesTab.js.map +1 -0
  559. package/lib/projection/ui/ProjectionViewer.d.ts +33 -0
  560. package/lib/projection/ui/ProjectionViewer.d.ts.map +1 -0
  561. package/lib/projection/ui/ProjectionViewer.js +91 -0
  562. package/lib/projection/ui/ProjectionViewer.js.map +1 -0
  563. package/lib/projection/ui/index.d.ts +20 -0
  564. package/lib/projection/ui/index.d.ts.map +1 -0
  565. package/lib/projection/ui/index.js +15 -0
  566. package/lib/projection/ui/index.js.map +1 -0
  567. package/lib/projection/ui/projectionBarModel.d.ts +92 -0
  568. package/lib/projection/ui/projectionBarModel.d.ts.map +1 -0
  569. package/lib/projection/ui/projectionBarModel.js +141 -0
  570. package/lib/projection/ui/projectionBarModel.js.map +1 -0
  571. package/lib/projection/ui/projectionBarReadings.d.ts +65 -0
  572. package/lib/projection/ui/projectionBarReadings.d.ts.map +1 -0
  573. package/lib/projection/ui/projectionBarReadings.js +138 -0
  574. package/lib/projection/ui/projectionBarReadings.js.map +1 -0
  575. package/lib/projection/ui/projectionBarSlots.d.ts +59 -0
  576. package/lib/projection/ui/projectionBarSlots.d.ts.map +1 -0
  577. package/lib/projection/ui/projectionBarSlots.js +98 -0
  578. package/lib/projection/ui/projectionBarSlots.js.map +1 -0
  579. package/lib/projection/ui/projectionBarStyles.d.ts +102 -0
  580. package/lib/projection/ui/projectionBarStyles.d.ts.map +1 -0
  581. package/lib/projection/ui/projectionBarStyles.js +154 -0
  582. package/lib/projection/ui/projectionBarStyles.js.map +1 -0
  583. package/lib/projection/ui/projectionCloudChoices.d.ts +18 -0
  584. package/lib/projection/ui/projectionCloudChoices.d.ts.map +1 -0
  585. package/lib/projection/ui/projectionCloudChoices.js +19 -0
  586. package/lib/projection/ui/projectionCloudChoices.js.map +1 -0
  587. package/lib/projection/ui/projectionEllipse.d.ts +50 -0
  588. package/lib/projection/ui/projectionEllipse.d.ts.map +1 -0
  589. package/lib/projection/ui/projectionEllipse.js +101 -0
  590. package/lib/projection/ui/projectionEllipse.js.map +1 -0
  591. package/lib/projection/ui/projectionEllipsoid.d.ts +38 -0
  592. package/lib/projection/ui/projectionEllipsoid.d.ts.map +1 -0
  593. package/lib/projection/ui/projectionEllipsoid.js +71 -0
  594. package/lib/projection/ui/projectionEllipsoid.js.map +1 -0
  595. package/lib/projection/ui/projectionFormat.d.ts +13 -0
  596. package/lib/projection/ui/projectionFormat.d.ts.map +1 -0
  597. package/lib/projection/ui/projectionFormat.js +19 -0
  598. package/lib/projection/ui/projectionFormat.js.map +1 -0
  599. package/lib/projection/ui/projectionMapChoices.d.ts +31 -0
  600. package/lib/projection/ui/projectionMapChoices.d.ts.map +1 -0
  601. package/lib/projection/ui/projectionMapChoices.js +46 -0
  602. package/lib/projection/ui/projectionMapChoices.js.map +1 -0
  603. package/lib/projection/ui/projectionMapChrome.d.ts +81 -0
  604. package/lib/projection/ui/projectionMapChrome.d.ts.map +1 -0
  605. package/lib/projection/ui/projectionMapChrome.js +139 -0
  606. package/lib/projection/ui/projectionMapChrome.js.map +1 -0
  607. package/lib/projection/ui/projectionMapModel.d.ts +114 -0
  608. package/lib/projection/ui/projectionMapModel.d.ts.map +1 -0
  609. package/lib/projection/ui/projectionMapModel.js +177 -0
  610. package/lib/projection/ui/projectionMapModel.js.map +1 -0
  611. package/lib/projection/ui/projectionMapView.d.ts +72 -0
  612. package/lib/projection/ui/projectionMapView.d.ts.map +1 -0
  613. package/lib/projection/ui/projectionMapView.js +116 -0
  614. package/lib/projection/ui/projectionMapView.js.map +1 -0
  615. package/lib/projection/ui/projectionPairsCeiling.d.ts +29 -0
  616. package/lib/projection/ui/projectionPairsCeiling.d.ts.map +1 -0
  617. package/lib/projection/ui/projectionPairsCeiling.js +29 -0
  618. package/lib/projection/ui/projectionPairsCeiling.js.map +1 -0
  619. package/lib/projection/ui/projectionSelection.d.ts +51 -0
  620. package/lib/projection/ui/projectionSelection.d.ts.map +1 -0
  621. package/lib/projection/ui/projectionSelection.js +66 -0
  622. package/lib/projection/ui/projectionSelection.js.map +1 -0
  623. package/lib/projection/ui/projectionSpaceModel.d.ts +14 -0
  624. package/lib/projection/ui/projectionSpaceModel.d.ts.map +1 -0
  625. package/lib/projection/ui/projectionSpaceModel.js +14 -0
  626. package/lib/projection/ui/projectionSpaceModel.js.map +1 -0
  627. package/lib/projection/ui/projectionTabInfo.d.ts +59 -0
  628. package/lib/projection/ui/projectionTabInfo.d.ts.map +1 -0
  629. package/lib/projection/ui/projectionTabInfo.js +108 -0
  630. package/lib/projection/ui/projectionTabInfo.js.map +1 -0
  631. package/lib/projection/ui/projectionTabModels.d.ts +49 -0
  632. package/lib/projection/ui/projectionTabModels.d.ts.map +1 -0
  633. package/lib/projection/ui/projectionTabModels.js +59 -0
  634. package/lib/projection/ui/projectionTabModels.js.map +1 -0
  635. package/lib/projection/ui/projectionTabStyles.d.ts +131 -0
  636. package/lib/projection/ui/projectionTabStyles.d.ts.map +1 -0
  637. package/lib/projection/ui/projectionTabStyles.js +134 -0
  638. package/lib/projection/ui/projectionTabStyles.js.map +1 -0
  639. package/lib/projection/ui/projectionVariablesModel.d.ts +104 -0
  640. package/lib/projection/ui/projectionVariablesModel.d.ts.map +1 -0
  641. package/lib/projection/ui/projectionVariablesModel.js +165 -0
  642. package/lib/projection/ui/projectionVariablesModel.js.map +1 -0
  643. package/lib/projection/ui/projectionVariablesWords.d.ts +50 -0
  644. package/lib/projection/ui/projectionVariablesWords.d.ts.map +1 -0
  645. package/lib/projection/ui/projectionVariablesWords.js +91 -0
  646. package/lib/projection/ui/projectionVariablesWords.js.map +1 -0
  647. package/lib/projection/ui/projectionViewChoices.d.ts +31 -0
  648. package/lib/projection/ui/projectionViewChoices.d.ts.map +1 -0
  649. package/lib/projection/ui/projectionViewChoices.js +53 -0
  650. package/lib/projection/ui/projectionViewChoices.js.map +1 -0
  651. package/lib/projection/ui/projectionViewerProps.d.ts +187 -0
  652. package/lib/projection/ui/projectionViewerProps.d.ts.map +1 -0
  653. package/lib/projection/ui/projectionViewerProps.js +9 -0
  654. package/lib/projection/ui/projectionViewerProps.js.map +1 -0
  655. package/lib/projection/ui/useProjectionState.d.ts +63 -0
  656. package/lib/projection/ui/useProjectionState.d.ts.map +1 -0
  657. package/lib/projection/ui/useProjectionState.js +107 -0
  658. package/lib/projection/ui/useProjectionState.js.map +1 -0
  659. package/lib/scatter/core/confidenceEllipse.d.ts +117 -0
  660. package/lib/scatter/core/confidenceEllipse.d.ts.map +1 -0
  661. package/lib/scatter/core/confidenceEllipse.js +132 -0
  662. package/lib/scatter/core/confidenceEllipse.js.map +1 -0
  663. package/lib/scatter/core/ellipseCoverage.d.ts +33 -0
  664. package/lib/scatter/core/ellipseCoverage.d.ts.map +1 -0
  665. package/lib/scatter/core/ellipseCoverage.js +46 -0
  666. package/lib/scatter/core/ellipseCoverage.js.map +1 -0
  667. package/lib/scatter/core/ellipseProjection.d.ts +53 -0
  668. package/lib/scatter/core/ellipseProjection.d.ts.map +1 -0
  669. package/lib/scatter/core/ellipseProjection.js +94 -0
  670. package/lib/scatter/core/ellipseProjection.js.map +1 -0
  671. package/lib/scatter/core/index.d.ts +24 -0
  672. package/lib/scatter/core/index.d.ts.map +1 -0
  673. package/lib/scatter/core/index.js +19 -0
  674. package/lib/scatter/core/index.js.map +1 -0
  675. package/lib/scatter/core/lassoPath.d.ts +60 -0
  676. package/lib/scatter/core/lassoPath.d.ts.map +1 -0
  677. package/lib/scatter/core/lassoPath.js +101 -0
  678. package/lib/scatter/core/lassoPath.js.map +1 -0
  679. package/lib/scatter/core/polygon.d.ts +58 -0
  680. package/lib/scatter/core/polygon.d.ts.map +1 -0
  681. package/lib/scatter/core/polygon.js +140 -0
  682. package/lib/scatter/core/polygon.js.map +1 -0
  683. package/lib/scatter/core/scatterSelection.d.ts +44 -0
  684. package/lib/scatter/core/scatterSelection.d.ts.map +1 -0
  685. package/lib/scatter/core/scatterSelection.js +81 -0
  686. package/lib/scatter/core/scatterSelection.js.map +1 -0
  687. package/lib/scatter/core/screenPoints.d.ts +58 -0
  688. package/lib/scatter/core/screenPoints.d.ts.map +1 -0
  689. package/lib/scatter/core/screenPoints.js +78 -0
  690. package/lib/scatter/core/screenPoints.js.map +1 -0
  691. package/lib/scatter/ui/ScatterEllipseLayer.d.ts +69 -0
  692. package/lib/scatter/ui/ScatterEllipseLayer.d.ts.map +1 -0
  693. package/lib/scatter/ui/ScatterEllipseLayer.js +77 -0
  694. package/lib/scatter/ui/ScatterEllipseLayer.js.map +1 -0
  695. package/lib/scatter/ui/ScatterLabelLayer.d.ts +40 -0
  696. package/lib/scatter/ui/ScatterLabelLayer.d.ts.map +1 -0
  697. package/lib/scatter/ui/ScatterLabelLayer.js +77 -0
  698. package/lib/scatter/ui/ScatterLabelLayer.js.map +1 -0
  699. package/lib/scatter/ui/ScatterMarkLayer.d.ts +68 -0
  700. package/lib/scatter/ui/ScatterMarkLayer.d.ts.map +1 -0
  701. package/lib/scatter/ui/ScatterMarkLayer.js +134 -0
  702. package/lib/scatter/ui/ScatterMarkLayer.js.map +1 -0
  703. package/lib/scatter/ui/ScatterMatrix.d.ts +19 -0
  704. package/lib/scatter/ui/ScatterMatrix.d.ts.map +1 -0
  705. package/lib/scatter/ui/ScatterMatrix.js +125 -0
  706. package/lib/scatter/ui/ScatterMatrix.js.map +1 -0
  707. package/lib/scatter/ui/ScatterMatrixCell.d.ts +24 -0
  708. package/lib/scatter/ui/ScatterMatrixCell.d.ts.map +1 -0
  709. package/lib/scatter/ui/ScatterMatrixCell.js +90 -0
  710. package/lib/scatter/ui/ScatterMatrixCell.js.map +1 -0
  711. package/lib/scatter/ui/ScatterMatrixDiagonal.d.ts +78 -0
  712. package/lib/scatter/ui/ScatterMatrixDiagonal.d.ts.map +1 -0
  713. package/lib/scatter/ui/ScatterMatrixDiagonal.js +83 -0
  714. package/lib/scatter/ui/ScatterMatrixDiagonal.js.map +1 -0
  715. package/lib/scatter/ui/ScatterPlot.d.ts +17 -0
  716. package/lib/scatter/ui/ScatterPlot.d.ts.map +1 -0
  717. package/lib/scatter/ui/ScatterPlot.js +107 -0
  718. package/lib/scatter/ui/ScatterPlot.js.map +1 -0
  719. package/lib/scatter/ui/ScatterPointLayer.d.ts +67 -0
  720. package/lib/scatter/ui/ScatterPointLayer.d.ts.map +1 -0
  721. package/lib/scatter/ui/ScatterPointLayer.js +87 -0
  722. package/lib/scatter/ui/ScatterPointLayer.js.map +1 -0
  723. package/lib/scatter/ui/index.d.ts +53 -0
  724. package/lib/scatter/ui/index.d.ts.map +1 -0
  725. package/lib/scatter/ui/index.js +34 -0
  726. package/lib/scatter/ui/index.js.map +1 -0
  727. package/lib/scatter/ui/lassoGesture.d.ts +197 -0
  728. package/lib/scatter/ui/lassoGesture.d.ts.map +1 -0
  729. package/lib/scatter/ui/lassoGesture.js +103 -0
  730. package/lib/scatter/ui/lassoGesture.js.map +1 -0
  731. package/lib/scatter/ui/scatterGroupSpread.d.ts +81 -0
  732. package/lib/scatter/ui/scatterGroupSpread.d.ts.map +1 -0
  733. package/lib/scatter/ui/scatterGroupSpread.js +147 -0
  734. package/lib/scatter/ui/scatterGroupSpread.js.map +1 -0
  735. package/lib/scatter/ui/scatterLabelBoxes.d.ts +94 -0
  736. package/lib/scatter/ui/scatterLabelBoxes.d.ts.map +1 -0
  737. package/lib/scatter/ui/scatterLabelBoxes.js +140 -0
  738. package/lib/scatter/ui/scatterLabelBoxes.js.map +1 -0
  739. package/lib/scatter/ui/scatterLabelPlacement.d.ts +96 -0
  740. package/lib/scatter/ui/scatterLabelPlacement.d.ts.map +1 -0
  741. package/lib/scatter/ui/scatterLabelPlacement.js +210 -0
  742. package/lib/scatter/ui/scatterLabelPlacement.js.map +1 -0
  743. package/lib/scatter/ui/scatterLabels.d.ts +81 -0
  744. package/lib/scatter/ui/scatterLabels.d.ts.map +1 -0
  745. package/lib/scatter/ui/scatterLabels.js +101 -0
  746. package/lib/scatter/ui/scatterLabels.js.map +1 -0
  747. package/lib/scatter/ui/scatterMarkGlyph.d.ts +37 -0
  748. package/lib/scatter/ui/scatterMarkGlyph.d.ts.map +1 -0
  749. package/lib/scatter/ui/scatterMarkGlyph.js +33 -0
  750. package/lib/scatter/ui/scatterMarkGlyph.js.map +1 -0
  751. package/lib/scatter/ui/scatterMatrixDots.d.ts +24 -0
  752. package/lib/scatter/ui/scatterMatrixDots.d.ts.map +1 -0
  753. package/lib/scatter/ui/scatterMatrixDots.js +84 -0
  754. package/lib/scatter/ui/scatterMatrixDots.js.map +1 -0
  755. package/lib/scatter/ui/scatterMatrixLayout.d.ts +93 -0
  756. package/lib/scatter/ui/scatterMatrixLayout.d.ts.map +1 -0
  757. package/lib/scatter/ui/scatterMatrixLayout.js +117 -0
  758. package/lib/scatter/ui/scatterMatrixLayout.js.map +1 -0
  759. package/lib/scatter/ui/scatterMatrixOutlines.d.ts +27 -0
  760. package/lib/scatter/ui/scatterMatrixOutlines.d.ts.map +1 -0
  761. package/lib/scatter/ui/scatterMatrixOutlines.js +34 -0
  762. package/lib/scatter/ui/scatterMatrixOutlines.js.map +1 -0
  763. package/lib/scatter/ui/scatterMatrixProps.d.ts +99 -0
  764. package/lib/scatter/ui/scatterMatrixProps.d.ts.map +1 -0
  765. package/lib/scatter/ui/scatterMatrixProps.js +10 -0
  766. package/lib/scatter/ui/scatterMatrixProps.js.map +1 -0
  767. package/lib/scatter/ui/scatterOutlineShape.d.ts +63 -0
  768. package/lib/scatter/ui/scatterOutlineShape.d.ts.map +1 -0
  769. package/lib/scatter/ui/scatterOutlineShape.js +82 -0
  770. package/lib/scatter/ui/scatterOutlineShape.js.map +1 -0
  771. package/lib/scatter/ui/scatterPlotModel.d.ts +107 -0
  772. package/lib/scatter/ui/scatterPlotModel.d.ts.map +1 -0
  773. package/lib/scatter/ui/scatterPlotModel.js +139 -0
  774. package/lib/scatter/ui/scatterPlotModel.js.map +1 -0
  775. package/lib/scatter/ui/scatterPlotProps.d.ts +269 -0
  776. package/lib/scatter/ui/scatterPlotProps.d.ts.map +1 -0
  777. package/lib/scatter/ui/scatterPlotProps.js +10 -0
  778. package/lib/scatter/ui/scatterPlotProps.js.map +1 -0
  779. package/lib/scatter/ui/useLassoGesture.d.ts +18 -0
  780. package/lib/scatter/ui/useLassoGesture.d.ts.map +1 -0
  781. package/lib/scatter/ui/useLassoGesture.js +140 -0
  782. package/lib/scatter/ui/useLassoGesture.js.map +1 -0
  783. package/lib/scatter/ui/usePointHover.d.ts +88 -0
  784. package/lib/scatter/ui/usePointHover.d.ts.map +1 -0
  785. package/lib/scatter/ui/usePointHover.js +88 -0
  786. package/lib/scatter/ui/usePointHover.js.map +1 -0
  787. package/lib/scatter/ui/useScatterFrame.d.ts +80 -0
  788. package/lib/scatter/ui/useScatterFrame.d.ts.map +1 -0
  789. package/lib/scatter/ui/useScatterFrame.js +101 -0
  790. package/lib/scatter/ui/useScatterFrame.js.map +1 -0
  791. package/lib/scatter/ui/useScatterInteraction.d.ts +112 -0
  792. package/lib/scatter/ui/useScatterInteraction.d.ts.map +1 -0
  793. package/lib/scatter/ui/useScatterInteraction.js +101 -0
  794. package/lib/scatter/ui/useScatterInteraction.js.map +1 -0
  795. package/lib/scatter/ui/useScatterKeyboard.d.ts +60 -0
  796. package/lib/scatter/ui/useScatterKeyboard.d.ts.map +1 -0
  797. package/lib/scatter/ui/useScatterKeyboard.js +56 -0
  798. package/lib/scatter/ui/useScatterKeyboard.js.map +1 -0
  799. package/lib/scatter/ui/useScatterSelection.d.ts +78 -0
  800. package/lib/scatter/ui/useScatterSelection.d.ts.map +1 -0
  801. package/lib/scatter/ui/useScatterSelection.js +72 -0
  802. package/lib/scatter/ui/useScatterSelection.js.map +1 -0
  803. package/lib/scatter3d/core/cloudGesture.d.ts +17 -0
  804. package/lib/scatter3d/core/cloudGesture.d.ts.map +1 -0
  805. package/lib/scatter3d/core/cloudGesture.js +2 -0
  806. package/lib/scatter3d/core/cloudGesture.js.map +1 -0
  807. package/lib/scatter3d/core/confidenceEllipsoid.d.ts +63 -0
  808. package/lib/scatter3d/core/confidenceEllipsoid.d.ts.map +1 -0
  809. package/lib/scatter3d/core/confidenceEllipsoid.js +128 -0
  810. package/lib/scatter3d/core/confidenceEllipsoid.js.map +1 -0
  811. package/lib/scatter3d/core/cubeFrame.d.ts +40 -0
  812. package/lib/scatter3d/core/cubeFrame.d.ts.map +1 -0
  813. package/lib/scatter3d/core/cubeFrame.js +58 -0
  814. package/lib/scatter3d/core/cubeFrame.js.map +1 -0
  815. package/lib/scatter3d/core/cubePoints.d.ts +35 -0
  816. package/lib/scatter3d/core/cubePoints.d.ts.map +1 -0
  817. package/lib/scatter3d/core/cubePoints.js +50 -0
  818. package/lib/scatter3d/core/cubePoints.js.map +1 -0
  819. package/lib/scatter3d/core/ellipsoidCoverage.d.ts +32 -0
  820. package/lib/scatter3d/core/ellipsoidCoverage.d.ts.map +1 -0
  821. package/lib/scatter3d/core/ellipsoidCoverage.js +83 -0
  822. package/lib/scatter3d/core/ellipsoidCoverage.js.map +1 -0
  823. package/lib/scatter3d/core/ellipsoidSilhouette.d.ts +42 -0
  824. package/lib/scatter3d/core/ellipsoidSilhouette.d.ts.map +1 -0
  825. package/lib/scatter3d/core/ellipsoidSilhouette.js +52 -0
  826. package/lib/scatter3d/core/ellipsoidSilhouette.js.map +1 -0
  827. package/lib/scatter3d/core/index.d.ts +29 -0
  828. package/lib/scatter3d/core/index.d.ts.map +1 -0
  829. package/lib/scatter3d/core/index.js +22 -0
  830. package/lib/scatter3d/core/index.js.map +1 -0
  831. package/lib/scatter3d/core/orbitCamera.d.ts +113 -0
  832. package/lib/scatter3d/core/orbitCamera.d.ts.map +1 -0
  833. package/lib/scatter3d/core/orbitCamera.js +104 -0
  834. package/lib/scatter3d/core/orbitCamera.js.map +1 -0
  835. package/lib/scatter3d/core/symmetricEigen.d.ts +47 -0
  836. package/lib/scatter3d/core/symmetricEigen.d.ts.map +1 -0
  837. package/lib/scatter3d/core/symmetricEigen.js +219 -0
  838. package/lib/scatter3d/core/symmetricEigen.js.map +1 -0
  839. package/lib/scatter3d/ui/CloudFrameLayer.d.ts +33 -0
  840. package/lib/scatter3d/ui/CloudFrameLayer.d.ts.map +1 -0
  841. package/lib/scatter3d/ui/CloudFrameLayer.js +37 -0
  842. package/lib/scatter3d/ui/CloudFrameLayer.js.map +1 -0
  843. package/lib/scatter3d/ui/CloudPointLayer.d.ts +62 -0
  844. package/lib/scatter3d/ui/CloudPointLayer.d.ts.map +1 -0
  845. package/lib/scatter3d/ui/CloudPointLayer.js +67 -0
  846. package/lib/scatter3d/ui/CloudPointLayer.js.map +1 -0
  847. package/lib/scatter3d/ui/CloudShellLayer.d.ts +52 -0
  848. package/lib/scatter3d/ui/CloudShellLayer.d.ts.map +1 -0
  849. package/lib/scatter3d/ui/CloudShellLayer.js +40 -0
  850. package/lib/scatter3d/ui/CloudShellLayer.js.map +1 -0
  851. package/lib/scatter3d/ui/ScatterCloud.d.ts +24 -0
  852. package/lib/scatter3d/ui/ScatterCloud.d.ts.map +1 -0
  853. package/lib/scatter3d/ui/ScatterCloud.js +189 -0
  854. package/lib/scatter3d/ui/ScatterCloud.js.map +1 -0
  855. package/lib/scatter3d/ui/cloudGeometry.d.ts +108 -0
  856. package/lib/scatter3d/ui/cloudGeometry.d.ts.map +1 -0
  857. package/lib/scatter3d/ui/cloudGeometry.js +122 -0
  858. package/lib/scatter3d/ui/cloudGeometry.js.map +1 -0
  859. package/lib/scatter3d/ui/cloudShellStyles.d.ts +36 -0
  860. package/lib/scatter3d/ui/cloudShellStyles.d.ts.map +1 -0
  861. package/lib/scatter3d/ui/cloudShellStyles.js +62 -0
  862. package/lib/scatter3d/ui/cloudShellStyles.js.map +1 -0
  863. package/lib/scatter3d/ui/cloudZoom.d.ts +21 -0
  864. package/lib/scatter3d/ui/cloudZoom.d.ts.map +1 -0
  865. package/lib/scatter3d/ui/cloudZoom.js +22 -0
  866. package/lib/scatter3d/ui/cloudZoom.js.map +1 -0
  867. package/lib/scatter3d/ui/index.d.ts +29 -0
  868. package/lib/scatter3d/ui/index.d.ts.map +1 -0
  869. package/lib/scatter3d/ui/index.js +21 -0
  870. package/lib/scatter3d/ui/index.js.map +1 -0
  871. package/lib/scatter3d/ui/scatterCloudModel.d.ts +60 -0
  872. package/lib/scatter3d/ui/scatterCloudModel.d.ts.map +1 -0
  873. package/lib/scatter3d/ui/scatterCloudModel.js +66 -0
  874. package/lib/scatter3d/ui/scatterCloudModel.js.map +1 -0
  875. package/lib/scatter3d/ui/scatterCloudProps.d.ts +185 -0
  876. package/lib/scatter3d/ui/scatterCloudProps.d.ts.map +1 -0
  877. package/lib/scatter3d/ui/scatterCloudProps.js +9 -0
  878. package/lib/scatter3d/ui/scatterCloudProps.js.map +1 -0
  879. package/lib/scatter3d/ui/useOrbitDrag.d.ts +60 -0
  880. package/lib/scatter3d/ui/useOrbitDrag.d.ts.map +1 -0
  881. package/lib/scatter3d/ui/useOrbitDrag.js +129 -0
  882. package/lib/scatter3d/ui/useOrbitDrag.js.map +1 -0
  883. package/lib/share/core/query.d.ts +10 -4
  884. package/lib/share/core/query.d.ts.map +1 -1
  885. package/lib/share/core/query.js +11 -7
  886. package/lib/share/core/query.js.map +1 -1
  887. package/lib/spectra/core/axisEntries.d.ts +50 -0
  888. package/lib/spectra/core/axisEntries.d.ts.map +1 -0
  889. package/lib/spectra/core/axisEntries.js +78 -0
  890. package/lib/spectra/core/axisEntries.js.map +1 -0
  891. package/lib/spectra/core/chainProblems.d.ts +14 -0
  892. package/lib/spectra/core/chainProblems.d.ts.map +1 -0
  893. package/lib/spectra/core/chainProblems.js +100 -0
  894. package/lib/spectra/core/chainProblems.js.map +1 -0
  895. package/lib/spectra/core/filterCatalog.d.ts +57 -0
  896. package/lib/spectra/core/filterCatalog.d.ts.map +1 -0
  897. package/lib/spectra/core/filterCatalog.js +81 -0
  898. package/lib/spectra/core/filterCatalog.js.map +1 -0
  899. package/lib/spectra/core/filterChain.d.ts +69 -0
  900. package/lib/spectra/core/filterChain.d.ts.map +1 -0
  901. package/lib/spectra/core/filterChain.js +163 -0
  902. package/lib/spectra/core/filterChain.js.map +1 -0
  903. package/lib/spectra/core/filterEntries.d.ts +136 -0
  904. package/lib/spectra/core/filterEntries.d.ts.map +1 -0
  905. package/lib/spectra/core/filterEntries.js +139 -0
  906. package/lib/spectra/core/filterEntries.js.map +1 -0
  907. package/lib/spectra/core/filterFields.d.ts +94 -0
  908. package/lib/spectra/core/filterFields.d.ts.map +1 -0
  909. package/lib/spectra/core/filterFields.js +82 -0
  910. package/lib/spectra/core/filterFields.js.map +1 -0
  911. package/lib/spectra/core/index.d.ts +14 -0
  912. package/lib/spectra/core/index.d.ts.map +1 -0
  913. package/lib/spectra/core/index.js +9 -0
  914. package/lib/spectra/core/index.js.map +1 -0
  915. package/lib/spectra/core/principalComponents.d.ts +70 -0
  916. package/lib/spectra/core/principalComponents.d.ts.map +1 -0
  917. package/lib/spectra/core/principalComponents.js +90 -0
  918. package/lib/spectra/core/principalComponents.js.map +1 -0
  919. package/lib/spectra/core/problems.d.ts +57 -0
  920. package/lib/spectra/core/problems.d.ts.map +1 -0
  921. package/lib/spectra/core/problems.js +121 -0
  922. package/lib/spectra/core/problems.js.map +1 -0
  923. package/lib/spectra/core/settings.d.ts +67 -0
  924. package/lib/spectra/core/settings.d.ts.map +1 -0
  925. package/lib/spectra/core/settings.js +35 -0
  926. package/lib/spectra/core/settings.js.map +1 -0
  927. package/lib/spectra/core/settingsProblems.d.ts +18 -0
  928. package/lib/spectra/core/settingsProblems.d.ts.map +1 -0
  929. package/lib/spectra/core/settingsProblems.js +148 -0
  930. package/lib/spectra/core/settingsProblems.js.map +1 -0
  931. package/lib/spectra/core/stepProblems.d.ts +13 -0
  932. package/lib/spectra/core/stepProblems.d.ts.map +1 -0
  933. package/lib/spectra/core/stepProblems.js +133 -0
  934. package/lib/spectra/core/stepProblems.js.map +1 -0
  935. package/lib/spectra/ui/CalculationRows.d.ts +21 -0
  936. package/lib/spectra/ui/CalculationRows.d.ts.map +1 -0
  937. package/lib/spectra/ui/CalculationRows.js +77 -0
  938. package/lib/spectra/ui/CalculationRows.js.map +1 -0
  939. package/lib/spectra/ui/FilterChainEditor.d.ts +34 -0
  940. package/lib/spectra/ui/FilterChainEditor.d.ts.map +1 -0
  941. package/lib/spectra/ui/FilterChainEditor.js +111 -0
  942. package/lib/spectra/ui/FilterChainEditor.js.map +1 -0
  943. package/lib/spectra/ui/FilterChoiceControl.d.ts +23 -0
  944. package/lib/spectra/ui/FilterChoiceControl.d.ts.map +1 -0
  945. package/lib/spectra/ui/FilterChoiceControl.js +65 -0
  946. package/lib/spectra/ui/FilterChoiceControl.js.map +1 -0
  947. package/lib/spectra/ui/FilterFieldControl.d.ts +25 -0
  948. package/lib/spectra/ui/FilterFieldControl.d.ts.map +1 -0
  949. package/lib/spectra/ui/FilterFieldControl.js +68 -0
  950. package/lib/spectra/ui/FilterFieldControl.js.map +1 -0
  951. package/lib/spectra/ui/FilterRow.d.ts +33 -0
  952. package/lib/spectra/ui/FilterRow.d.ts.map +1 -0
  953. package/lib/spectra/ui/FilterRow.js +76 -0
  954. package/lib/spectra/ui/FilterRow.js.map +1 -0
  955. package/lib/spectra/ui/MatrixFilterRows.d.ts +22 -0
  956. package/lib/spectra/ui/MatrixFilterRows.d.ts.map +1 -0
  957. package/lib/spectra/ui/MatrixFilterRows.js +92 -0
  958. package/lib/spectra/ui/MatrixFilterRows.js.map +1 -0
  959. package/lib/spectra/ui/NormalizationEditor.d.ts +24 -0
  960. package/lib/spectra/ui/NormalizationEditor.d.ts.map +1 -0
  961. package/lib/spectra/ui/NormalizationEditor.js +108 -0
  962. package/lib/spectra/ui/NormalizationEditor.js.map +1 -0
  963. package/lib/spectra/ui/NumberField.d.ts +41 -0
  964. package/lib/spectra/ui/NumberField.d.ts.map +1 -0
  965. package/lib/spectra/ui/NumberField.js +81 -0
  966. package/lib/spectra/ui/NumberField.js.map +1 -0
  967. package/lib/spectra/ui/PostProcessingEditor.d.ts +29 -0
  968. package/lib/spectra/ui/PostProcessingEditor.d.ts.map +1 -0
  969. package/lib/spectra/ui/PostProcessingEditor.js +53 -0
  970. package/lib/spectra/ui/PostProcessingEditor.js.map +1 -0
  971. package/lib/spectra/ui/PrincipalComponentSelect.d.ts +40 -0
  972. package/lib/spectra/ui/PrincipalComponentSelect.d.ts.map +1 -0
  973. package/lib/spectra/ui/PrincipalComponentSelect.js +97 -0
  974. package/lib/spectra/ui/PrincipalComponentSelect.js.map +1 -0
  975. package/lib/spectra/ui/ProblemList.d.ts +24 -0
  976. package/lib/spectra/ui/ProblemList.d.ts.map +1 -0
  977. package/lib/spectra/ui/ProblemList.js +40 -0
  978. package/lib/spectra/ui/ProblemList.js.map +1 -0
  979. package/lib/spectra/ui/RangeRows.d.ts +23 -0
  980. package/lib/spectra/ui/RangeRows.d.ts.map +1 -0
  981. package/lib/spectra/ui/RangeRows.js +76 -0
  982. package/lib/spectra/ui/RangeRows.js.map +1 -0
  983. package/lib/spectra/ui/ScaleFields.d.ts +28 -0
  984. package/lib/spectra/ui/ScaleFields.d.ts.map +1 -0
  985. package/lib/spectra/ui/ScaleFields.js +67 -0
  986. package/lib/spectra/ui/ScaleFields.js.map +1 -0
  987. package/lib/spectra/ui/SettingsPart.d.ts +25 -0
  988. package/lib/spectra/ui/SettingsPart.d.ts.map +1 -0
  989. package/lib/spectra/ui/SettingsPart.js +35 -0
  990. package/lib/spectra/ui/SettingsPart.js.map +1 -0
  991. package/lib/spectra/ui/SpectraSettingsEditor.d.ts +62 -0
  992. package/lib/spectra/ui/SpectraSettingsEditor.d.ts.map +1 -0
  993. package/lib/spectra/ui/SpectraSettingsEditor.js +39 -0
  994. package/lib/spectra/ui/SpectraSettingsEditor.js.map +1 -0
  995. package/lib/spectra/ui/SpectrumSelection.d.ts +30 -0
  996. package/lib/spectra/ui/SpectrumSelection.d.ts.map +1 -0
  997. package/lib/spectra/ui/SpectrumSelection.js +116 -0
  998. package/lib/spectra/ui/SpectrumSelection.js.map +1 -0
  999. package/lib/spectra/ui/ZoneRows.d.ts +41 -0
  1000. package/lib/spectra/ui/ZoneRows.d.ts.map +1 -0
  1001. package/lib/spectra/ui/ZoneRows.js +70 -0
  1002. package/lib/spectra/ui/ZoneRows.js.map +1 -0
  1003. package/lib/spectra/ui/index.d.ts +7 -0
  1004. package/lib/spectra/ui/index.d.ts.map +1 -0
  1005. package/lib/spectra/ui/index.js +4 -0
  1006. package/lib/spectra/ui/index.js.map +1 -0
  1007. package/lib/spectra/ui/matrixSteps.d.ts +61 -0
  1008. package/lib/spectra/ui/matrixSteps.d.ts.map +1 -0
  1009. package/lib/spectra/ui/matrixSteps.js +92 -0
  1010. package/lib/spectra/ui/matrixSteps.js.map +1 -0
  1011. package/lib/spectra/ui/problemsAbout.d.ts +14 -0
  1012. package/lib/spectra/ui/problemsAbout.d.ts.map +1 -0
  1013. package/lib/spectra/ui/problemsAbout.js +15 -0
  1014. package/lib/spectra/ui/problemsAbout.js.map +1 -0
  1015. package/lib/spectra/ui/rowKeys.d.ts +27 -0
  1016. package/lib/spectra/ui/rowKeys.d.ts.map +1 -0
  1017. package/lib/spectra/ui/rowKeys.js +45 -0
  1018. package/lib/spectra/ui/rowKeys.js.map +1 -0
  1019. package/lib/spectra/ui/scaleOptions.d.ts +50 -0
  1020. package/lib/spectra/ui/scaleOptions.d.ts.map +1 -0
  1021. package/lib/spectra/ui/scaleOptions.js +103 -0
  1022. package/lib/spectra/ui/scaleOptions.js.map +1 -0
  1023. package/lib/ui.d.ts +7 -0
  1024. package/lib/ui.d.ts.map +1 -1
  1025. package/lib/ui.js +7 -0
  1026. package/lib/ui.js.map +1 -1
  1027. package/package.json +17 -1
  1028. package/src/chart/core/chartAxisScale.ts +249 -0
  1029. package/src/chart/core/chartBand.ts +82 -0
  1030. package/src/chart/core/chartBins.ts +96 -0
  1031. package/src/chart/core/chartExtent.ts +203 -0
  1032. package/src/chart/core/chartLabels.ts +68 -0
  1033. package/src/chart/core/chartPalette.ts +71 -0
  1034. package/src/chart/core/chartScale.ts +72 -0
  1035. package/src/chart/core/chartViewport.ts +211 -0
  1036. package/src/chart/core/index.ts +58 -0
  1037. package/src/chart/core/matrix.ts +100 -0
  1038. package/src/chart/ui/ChartAxis.tsx +232 -0
  1039. package/src/chart/ui/ChartFrame.tsx +246 -0
  1040. package/src/chart/ui/ChartSeriesMarks.tsx +98 -0
  1041. package/src/chart/ui/ChartTrackingLayer.tsx +192 -0
  1042. package/src/chart/ui/TrackedLineChart.tsx +267 -0
  1043. package/src/chart/ui/TrackedStickChart.tsx +197 -0
  1044. package/src/chart/ui/chartStyles.ts +194 -0
  1045. package/src/chart/ui/index.ts +34 -0
  1046. package/src/chart/ui/stickChartModel.ts +201 -0
  1047. package/src/chart/ui/useWheelZoom.ts +177 -0
  1048. package/src/chrome/ui/NavLink.tsx +5 -3
  1049. package/src/chrome/ui/SiteFooter.tsx +16 -1
  1050. package/src/chrome/ui/SiteHeader.tsx +19 -1
  1051. package/src/chrome/ui/navItem.ts +12 -0
  1052. package/src/color/core/gradient.ts +29 -0
  1053. package/src/color/core/hsv.ts +112 -0
  1054. package/src/color/core/index.ts +27 -1
  1055. package/src/color/core/interpolate.ts +179 -0
  1056. package/src/color/core/scale.ts +17 -49
  1057. package/src/color/core/scaleData.ts +128 -0
  1058. package/src/color/core/scaleText.ts +134 -0
  1059. package/src/color/core/scales.ts +148 -0
  1060. package/src/color/ui/ColorScaleBar.tsx +73 -0
  1061. package/src/color/ui/ColorScaleEditor.tsx +243 -0
  1062. package/src/color/ui/ColorScaleSelect.tsx +252 -0
  1063. package/src/color/ui/index.ts +6 -0
  1064. package/src/core.ts +6 -0
  1065. package/src/credits/core/credits.ts +20 -0
  1066. package/src/download/core/cssTokens.ts +90 -0
  1067. package/src/download/core/downloadFigure.ts +66 -0
  1068. package/src/download/core/figureLegend.ts +167 -0
  1069. package/src/download/core/figurePng.ts +87 -0
  1070. package/src/download/core/figureScale.ts +83 -0
  1071. package/src/download/core/figureSvg.ts +210 -0
  1072. package/src/download/core/figureSvgDocument.ts +139 -0
  1073. package/src/download/core/figureTarget.ts +151 -0
  1074. package/src/download/core/index.ts +36 -0
  1075. package/src/download/ui/FigureDownload.tsx +158 -0
  1076. package/src/download/ui/FigureDownloadPanel.tsx +165 -0
  1077. package/src/download/ui/index.ts +13 -0
  1078. package/src/ecosystem/core/sites.ts +26 -1
  1079. package/src/ecosystem/ui/glyphs.tsx +42 -0
  1080. package/src/overlay/core/emptiestCorner.ts +122 -0
  1081. package/src/overlay/core/index.ts +34 -0
  1082. package/src/overlay/core/overlayCollapse.ts +20 -0
  1083. package/src/overlay/core/overlayMarks.ts +43 -0
  1084. package/src/overlay/core/overlayMetrics.ts +112 -0
  1085. package/src/overlay/core/overlayPlacement.ts +80 -0
  1086. package/src/overlay/core/overlayTierRoom.ts +199 -0
  1087. package/src/overlay/core/overlayTiers.ts +130 -0
  1088. package/src/overlay/core/placeOverlayCard.ts +93 -0
  1089. package/src/overlay/ui/OverlayAction.tsx +66 -0
  1090. package/src/overlay/ui/OverlayBar.tsx +188 -0
  1091. package/src/overlay/ui/OverlayBarButton.tsx +83 -0
  1092. package/src/overlay/ui/OverlayBarCard.tsx +78 -0
  1093. package/src/overlay/ui/OverlayBarStrip.tsx +62 -0
  1094. package/src/overlay/ui/OverlayCaption.tsx +124 -0
  1095. package/src/overlay/ui/OverlayChip.tsx +181 -0
  1096. package/src/overlay/ui/OverlayDivider.tsx +24 -0
  1097. package/src/overlay/ui/OverlayGroup.tsx +157 -0
  1098. package/src/overlay/ui/OverlayIconButton.tsx +131 -0
  1099. package/src/overlay/ui/OverlayInfo.tsx +92 -0
  1100. package/src/overlay/ui/OverlayLayer.tsx +118 -0
  1101. package/src/overlay/ui/OverlayLegend.tsx +228 -0
  1102. package/src/overlay/ui/OverlayLegendMark.tsx +95 -0
  1103. package/src/overlay/ui/OverlayNumber.tsx +160 -0
  1104. package/src/overlay/ui/OverlayPanel.tsx +162 -0
  1105. package/src/overlay/ui/OverlayPills.tsx +157 -0
  1106. package/src/overlay/ui/OverlayReadout.tsx +247 -0
  1107. package/src/overlay/ui/OverlayRow.tsx +200 -0
  1108. package/src/overlay/ui/OverlaySegmented.tsx +67 -0
  1109. package/src/overlay/ui/OverlaySelect.tsx +114 -0
  1110. package/src/overlay/ui/OverlaySwatchIcon.tsx +126 -0
  1111. package/src/overlay/ui/OverlayToggle.tsx +136 -0
  1112. package/src/overlay/ui/OverlayValueButton.tsx +149 -0
  1113. package/src/overlay/ui/OverlayValueMenu.tsx +141 -0
  1114. package/src/overlay/ui/index.ts +72 -0
  1115. package/src/overlay/ui/overlayBarShape.ts +113 -0
  1116. package/src/overlay/ui/overlayControlStyles.ts +176 -0
  1117. package/src/overlay/ui/overlayFigureStyles.ts +111 -0
  1118. package/src/overlay/ui/overlayPanelContext.ts +42 -0
  1119. package/src/overlay/ui/overlayPanelStyles.ts +235 -0
  1120. package/src/overlay/ui/overlayPillKeys.ts +45 -0
  1121. package/src/overlay/ui/overlayPillStyles.ts +190 -0
  1122. package/src/overlay/ui/overlayRowStyles.ts +166 -0
  1123. package/src/overlay/ui/overlayStepperStyles.ts +112 -0
  1124. package/src/overlay/ui/overlayStyles.ts +222 -0
  1125. package/src/overlay/ui/overlaySurface.ts +120 -0
  1126. package/src/overlay/ui/overlaySwitchStyles.ts +136 -0
  1127. package/src/overlay/ui/overlayValueStyles.ts +210 -0
  1128. package/src/projection/core/embeddingResult.ts +119 -0
  1129. package/src/projection/core/explainedShares.ts +105 -0
  1130. package/src/projection/core/index.ts +81 -0
  1131. package/src/projection/core/loadingProfiles.ts +226 -0
  1132. package/src/projection/core/pcaLike.ts +33 -0
  1133. package/src/projection/core/pcaResult.ts +238 -0
  1134. package/src/projection/core/projectionCopy.ts +261 -0
  1135. package/src/projection/core/projectionCopyPatch.ts +12 -0
  1136. package/src/projection/core/projectionOptions.ts +283 -0
  1137. package/src/projection/core/projectionResult.ts +123 -0
  1138. package/src/projection/core/projectionSamples.ts +170 -0
  1139. package/src/projection/core/projectionStrings.ts +281 -0
  1140. package/src/projection/core/projectionTabDefaults.ts +63 -0
  1141. package/src/projection/core/projectionTabs.ts +65 -0
  1142. package/src/projection/core/variableAxis.ts +161 -0
  1143. package/src/projection/core/variablesView.ts +53 -0
  1144. package/src/projection/ui/PcaViewer.tsx +80 -0
  1145. package/src/projection/ui/ProjectionBar.tsx +222 -0
  1146. package/src/projection/ui/ProjectionMapCaption.tsx +96 -0
  1147. package/src/projection/ui/ProjectionMapControls.tsx +271 -0
  1148. package/src/projection/ui/ProjectionMapLegend.tsx +70 -0
  1149. package/src/projection/ui/ProjectionMapMore.tsx +178 -0
  1150. package/src/projection/ui/ProjectionMapTab.tsx +213 -0
  1151. package/src/projection/ui/ProjectionPairsControls.tsx +58 -0
  1152. package/src/projection/ui/ProjectionPairsMore.tsx +95 -0
  1153. package/src/projection/ui/ProjectionPairsTab.tsx +159 -0
  1154. package/src/projection/ui/ProjectionPanel.tsx +262 -0
  1155. package/src/projection/ui/ProjectionReadout.tsx +159 -0
  1156. package/src/projection/ui/ProjectionSharesControls.tsx +56 -0
  1157. package/src/projection/ui/ProjectionSharesMarks.tsx +241 -0
  1158. package/src/projection/ui/ProjectionSharesMore.tsx +53 -0
  1159. package/src/projection/ui/ProjectionSharesTab.tsx +118 -0
  1160. package/src/projection/ui/ProjectionSpaceControls.tsx +219 -0
  1161. package/src/projection/ui/ProjectionSpaceMore.tsx +169 -0
  1162. package/src/projection/ui/ProjectionSpaceTab.tsx +217 -0
  1163. package/src/projection/ui/ProjectionSurface.tsx +63 -0
  1164. package/src/projection/ui/ProjectionTabStrip.tsx +144 -0
  1165. package/src/projection/ui/ProjectionVariablesControls.tsx +62 -0
  1166. package/src/projection/ui/ProjectionVariablesMore.tsx +144 -0
  1167. package/src/projection/ui/ProjectionVariablesTab.tsx +216 -0
  1168. package/src/projection/ui/ProjectionViewer.tsx +146 -0
  1169. package/src/projection/ui/index.ts +20 -0
  1170. package/src/projection/ui/projectionBarModel.ts +194 -0
  1171. package/src/projection/ui/projectionBarReadings.ts +195 -0
  1172. package/src/projection/ui/projectionBarSlots.tsx +158 -0
  1173. package/src/projection/ui/projectionBarStyles.ts +174 -0
  1174. package/src/projection/ui/projectionCloudChoices.ts +23 -0
  1175. package/src/projection/ui/projectionEllipse.ts +104 -0
  1176. package/src/projection/ui/projectionEllipsoid.ts +78 -0
  1177. package/src/projection/ui/projectionFormat.ts +18 -0
  1178. package/src/projection/ui/projectionMapChoices.ts +64 -0
  1179. package/src/projection/ui/projectionMapChrome.ts +228 -0
  1180. package/src/projection/ui/projectionMapModel.ts +253 -0
  1181. package/src/projection/ui/projectionMapView.ts +233 -0
  1182. package/src/projection/ui/projectionPairsCeiling.ts +45 -0
  1183. package/src/projection/ui/projectionSelection.ts +87 -0
  1184. package/src/projection/ui/projectionSpaceModel.ts +14 -0
  1185. package/src/projection/ui/projectionTabInfo.ts +126 -0
  1186. package/src/projection/ui/projectionTabModels.ts +106 -0
  1187. package/src/projection/ui/projectionTabStyles.ts +161 -0
  1188. package/src/projection/ui/projectionVariablesModel.ts +231 -0
  1189. package/src/projection/ui/projectionVariablesWords.ts +105 -0
  1190. package/src/projection/ui/projectionViewChoices.ts +77 -0
  1191. package/src/projection/ui/projectionViewerProps.ts +190 -0
  1192. package/src/projection/ui/useProjectionState.ts +224 -0
  1193. package/src/scatter/core/confidenceEllipse.ts +230 -0
  1194. package/src/scatter/core/ellipseCoverage.ts +46 -0
  1195. package/src/scatter/core/ellipseProjection.ts +126 -0
  1196. package/src/scatter/core/index.ts +48 -0
  1197. package/src/scatter/core/lassoPath.ts +127 -0
  1198. package/src/scatter/core/polygon.ts +155 -0
  1199. package/src/scatter/core/scatterSelection.ts +88 -0
  1200. package/src/scatter/core/screenPoints.ts +110 -0
  1201. package/src/scatter/ui/ScatterEllipseLayer.tsx +153 -0
  1202. package/src/scatter/ui/ScatterLabelLayer.tsx +135 -0
  1203. package/src/scatter/ui/ScatterMarkLayer.tsx +245 -0
  1204. package/src/scatter/ui/ScatterMatrix.tsx +177 -0
  1205. package/src/scatter/ui/ScatterMatrixCell.tsx +140 -0
  1206. package/src/scatter/ui/ScatterMatrixDiagonal.tsx +182 -0
  1207. package/src/scatter/ui/ScatterPlot.tsx +253 -0
  1208. package/src/scatter/ui/ScatterPointLayer.tsx +168 -0
  1209. package/src/scatter/ui/index.ts +123 -0
  1210. package/src/scatter/ui/lassoGesture.ts +250 -0
  1211. package/src/scatter/ui/scatterGroupSpread.ts +206 -0
  1212. package/src/scatter/ui/scatterLabelBoxes.ts +177 -0
  1213. package/src/scatter/ui/scatterLabelPlacement.ts +325 -0
  1214. package/src/scatter/ui/scatterLabels.ts +147 -0
  1215. package/src/scatter/ui/scatterMarkGlyph.tsx +94 -0
  1216. package/src/scatter/ui/scatterMatrixDots.tsx +134 -0
  1217. package/src/scatter/ui/scatterMatrixLayout.ts +133 -0
  1218. package/src/scatter/ui/scatterMatrixOutlines.tsx +53 -0
  1219. package/src/scatter/ui/scatterMatrixProps.ts +103 -0
  1220. package/src/scatter/ui/scatterOutlineShape.tsx +169 -0
  1221. package/src/scatter/ui/scatterPlotModel.ts +200 -0
  1222. package/src/scatter/ui/scatterPlotProps.ts +275 -0
  1223. package/src/scatter/ui/useLassoGesture.ts +214 -0
  1224. package/src/scatter/ui/usePointHover.ts +187 -0
  1225. package/src/scatter/ui/useScatterFrame.ts +191 -0
  1226. package/src/scatter/ui/useScatterInteraction.ts +258 -0
  1227. package/src/scatter/ui/useScatterKeyboard.ts +120 -0
  1228. package/src/scatter/ui/useScatterSelection.ts +189 -0
  1229. package/src/scatter3d/core/cloudGesture.ts +16 -0
  1230. package/src/scatter3d/core/confidenceEllipsoid.ts +177 -0
  1231. package/src/scatter3d/core/cubeFrame.ts +72 -0
  1232. package/src/scatter3d/core/cubePoints.ts +75 -0
  1233. package/src/scatter3d/core/ellipsoidCoverage.ts +86 -0
  1234. package/src/scatter3d/core/ellipsoidSilhouette.ts +76 -0
  1235. package/src/scatter3d/core/index.ts +52 -0
  1236. package/src/scatter3d/core/orbitCamera.ts +159 -0
  1237. package/src/scatter3d/core/symmetricEigen.ts +273 -0
  1238. package/src/scatter3d/ui/CloudFrameLayer.tsx +97 -0
  1239. package/src/scatter3d/ui/CloudPointLayer.tsx +132 -0
  1240. package/src/scatter3d/ui/CloudShellLayer.tsx +107 -0
  1241. package/src/scatter3d/ui/ScatterCloud.tsx +312 -0
  1242. package/src/scatter3d/ui/cloudGeometry.ts +200 -0
  1243. package/src/scatter3d/ui/cloudShellStyles.ts +74 -0
  1244. package/src/scatter3d/ui/cloudZoom.ts +22 -0
  1245. package/src/scatter3d/ui/index.ts +41 -0
  1246. package/src/scatter3d/ui/scatterCloudModel.ts +98 -0
  1247. package/src/scatter3d/ui/scatterCloudProps.ts +191 -0
  1248. package/src/scatter3d/ui/useOrbitDrag.ts +220 -0
  1249. package/src/share/core/query.ts +11 -7
  1250. package/src/spectra/core/axisEntries.ts +107 -0
  1251. package/src/spectra/core/chainProblems.ts +165 -0
  1252. package/src/spectra/core/filterCatalog.ts +100 -0
  1253. package/src/spectra/core/filterChain.ts +194 -0
  1254. package/src/spectra/core/filterEntries.ts +214 -0
  1255. package/src/spectra/core/filterFields.ts +159 -0
  1256. package/src/spectra/core/index.ts +67 -0
  1257. package/src/spectra/core/principalComponents.ts +130 -0
  1258. package/src/spectra/core/problems.ts +143 -0
  1259. package/src/spectra/core/settings.ts +119 -0
  1260. package/src/spectra/core/settingsProblems.ts +222 -0
  1261. package/src/spectra/core/stepProblems.ts +228 -0
  1262. package/src/spectra/ui/CalculationRows.tsx +161 -0
  1263. package/src/spectra/ui/FilterChainEditor.tsx +199 -0
  1264. package/src/spectra/ui/FilterChoiceControl.tsx +153 -0
  1265. package/src/spectra/ui/FilterFieldControl.tsx +105 -0
  1266. package/src/spectra/ui/FilterRow.tsx +190 -0
  1267. package/src/spectra/ui/MatrixFilterRows.tsx +184 -0
  1268. package/src/spectra/ui/NormalizationEditor.tsx +235 -0
  1269. package/src/spectra/ui/NumberField.tsx +126 -0
  1270. package/src/spectra/ui/PostProcessingEditor.tsx +136 -0
  1271. package/src/spectra/ui/PrincipalComponentSelect.tsx +245 -0
  1272. package/src/spectra/ui/ProblemList.tsx +77 -0
  1273. package/src/spectra/ui/RangeRows.tsx +175 -0
  1274. package/src/spectra/ui/ScaleFields.tsx +183 -0
  1275. package/src/spectra/ui/SettingsPart.tsx +60 -0
  1276. package/src/spectra/ui/SpectraSettingsEditor.tsx +143 -0
  1277. package/src/spectra/ui/SpectrumSelection.tsx +193 -0
  1278. package/src/spectra/ui/ZoneRows.tsx +159 -0
  1279. package/src/spectra/ui/index.ts +9 -0
  1280. package/src/spectra/ui/matrixSteps.ts +128 -0
  1281. package/src/spectra/ui/problemsAbout.ts +21 -0
  1282. package/src/spectra/ui/rowKeys.ts +47 -0
  1283. package/src/spectra/ui/scaleOptions.ts +116 -0
  1284. package/src/ui.ts +7 -0
  1285. package/styles/chrome.css +29 -4
@@ -0,0 +1,155 @@
1
+ import type { PixelBounds, ScreenPoints } from './screenPoints.ts';
2
+
3
+ /**
4
+ * Whether a point falls inside a polygon.
5
+ *
6
+ * A ray cast from the point towards growing x, counting the edges it crosses:
7
+ * an odd count is inside, an even one is outside. Both tests that decide a
8
+ * crossing are half-open, and that is what settles the boundary. An edge is
9
+ * only considered for the ys it spans from its lower end up to, but not
10
+ * including, its upper end; and the crossing has to sit strictly beyond the
11
+ * point. So on the square `(0,0) (10,0) (10,10) (0,10)` the two edges meeting
12
+ * at `(0,0)` count as inside — `(5,0)` and `(0,5)` are in — while the two
13
+ * meeting at `(10,10)` count as outside, and `(5,10)` and `(10,5)` are out. Of
14
+ * the four corners only `(0,0)` is inside; `(10,0)`, `(0,10)` and `(10,10)`
15
+ * are not.
16
+ *
17
+ * The asymmetry is the point of the convention rather than an accident of it:
18
+ * it is what stops two polygons sharing an edge from both claiming the samples
19
+ * that lie along it, and what keeps a point from toggling in and out as a
20
+ * lasso is dragged a hundredth of a pixel.
21
+ * @param x - Horizontal position of the point, in pixels.
22
+ * @param y - Vertical position of the point, in pixels.
23
+ * @param xs - Horizontal position of each vertex, in order around the ring; the ring is closed for you.
24
+ * @param ys - Vertical position of each vertex, in the same order.
25
+ * @param vertexCount - How many leading entries of the two arrays are vertices, so that a growing buffer can be passed whole. Their common length when omitted.
26
+ * @returns Whether the point is inside; always `false` for fewer than three vertices, since nothing thinner than a triangle holds anything.
27
+ */
28
+ export function pointInPolygon(
29
+ x: number,
30
+ y: number,
31
+ xs: Float64Array,
32
+ ys: Float64Array,
33
+ vertexCount?: number,
34
+ ): boolean {
35
+ const count = usableVertexCount(xs, ys, vertexCount);
36
+ if (count < 3) return false;
37
+ if (!Number.isFinite(x) || !Number.isFinite(y)) return false;
38
+
39
+ let previousX = xs[count - 1];
40
+ let previousY = ys[count - 1];
41
+ if (previousX === undefined || previousY === undefined) return false;
42
+
43
+ let inside = false;
44
+ for (let index = 0; index < count; index++) {
45
+ const currentX = xs[index];
46
+ const currentY = ys[index];
47
+ if (currentX === undefined || currentY === undefined) break;
48
+ if (currentY > y !== previousY > y) {
49
+ const crossing =
50
+ ((previousX - currentX) * (y - currentY)) / (previousY - currentY) +
51
+ currentX;
52
+ if (x < crossing) inside = !inside;
53
+ }
54
+ previousX = currentX;
55
+ previousY = currentY;
56
+ }
57
+ return inside;
58
+ }
59
+
60
+ /**
61
+ * The rectangle a polygon's vertices span.
62
+ * @param xs - Horizontal position of each vertex.
63
+ * @param ys - Vertical position of each vertex.
64
+ * @param vertexCount - How many leading entries are vertices. Their common length when omitted.
65
+ * @returns The rectangle, or `null` when no vertex has two finite coordinates. Vertices that do not are left out rather than poisoning the bounds with a `NaN`.
66
+ */
67
+ export function polygonBounds(
68
+ xs: Float64Array,
69
+ ys: Float64Array,
70
+ vertexCount?: number,
71
+ ): PixelBounds | null {
72
+ const count = usableVertexCount(xs, ys, vertexCount);
73
+ let minX = Number.POSITIVE_INFINITY;
74
+ let minY = Number.POSITIVE_INFINITY;
75
+ let maxX = Number.NEGATIVE_INFINITY;
76
+ let maxY = Number.NEGATIVE_INFINITY;
77
+ let bounded = false;
78
+ for (let index = 0; index < count; index++) {
79
+ const vertexX = xs[index];
80
+ const vertexY = ys[index];
81
+ if (vertexX === undefined || vertexY === undefined) break;
82
+ if (!Number.isFinite(vertexX) || !Number.isFinite(vertexY)) continue;
83
+ if (vertexX < minX) minX = vertexX;
84
+ if (vertexX > maxX) maxX = vertexX;
85
+ if (vertexY < minY) minY = vertexY;
86
+ if (vertexY > maxY) maxY = vertexY;
87
+ bounded = true;
88
+ }
89
+ return bounded ? { minX, minY, maxX, maxY } : null;
90
+ }
91
+
92
+ /**
93
+ * Which of many points fall inside a polygon.
94
+ *
95
+ * Each point is measured against the polygon's rectangle first, which is four
96
+ * comparisons and rejects nearly every point of a cloud that a lasso has
97
+ * enclosed a corner of; only the survivors pay for a walk over every edge. The
98
+ * saving is the whole reason the prefilter is here: a released lasso has a
99
+ * vertex for every few pixels the pointer travelled, so the unfiltered cost is
100
+ * the point count times a few hundred, per drag, on the frame the user is
101
+ * waiting for.
102
+ *
103
+ * Nothing is allocated per point. The rectangle is computed once, the answer
104
+ * is written into the mask, and the mask itself is reused when the caller
105
+ * hands one of the right size back.
106
+ * @param points - Where every point sits on screen.
107
+ * @param xs - Horizontal position of each vertex.
108
+ * @param ys - Vertical position of each vertex.
109
+ * @param vertexCount - How many leading entries are vertices. Their common length when omitted.
110
+ * @param into - A mask to write into, so a drag does not allocate one per frame. It is used only when it already has one entry per point; otherwise a new one is allocated, because silently answering about a different number of points is worse than the allocation.
111
+ * @returns One entry per point, `1` for inside and `0` for outside. All zeros for fewer than three vertices.
112
+ */
113
+ export function pointsInPolygon(
114
+ points: ScreenPoints,
115
+ xs: Float64Array,
116
+ ys: Float64Array,
117
+ vertexCount?: number,
118
+ into?: Uint8Array,
119
+ ): Uint8Array {
120
+ const pointsX = points.x;
121
+ const pointsY = points.y;
122
+ const total = Math.min(pointsX.length, pointsY.length);
123
+ const mask = into?.length === total ? into : new Uint8Array(total);
124
+
125
+ const count = usableVertexCount(xs, ys, vertexCount);
126
+ const bounds = count < 3 ? null : polygonBounds(xs, ys, count);
127
+ if (bounds === null) {
128
+ mask.fill(0);
129
+ return mask;
130
+ }
131
+
132
+ const { minX, minY, maxX, maxY } = bounds;
133
+ for (let index = 0; index < total; index++) {
134
+ const pointX = pointsX[index];
135
+ const pointY = pointsY[index];
136
+ if (pointX === undefined || pointY === undefined) break;
137
+ if (pointX < minX || pointX > maxX || pointY < minY || pointY > maxY) {
138
+ mask[index] = 0;
139
+ continue;
140
+ }
141
+ mask[index] = pointInPolygon(pointX, pointY, xs, ys, count) ? 1 : 0;
142
+ }
143
+ return mask;
144
+ }
145
+
146
+ function usableVertexCount(
147
+ xs: Float64Array,
148
+ ys: Float64Array,
149
+ vertexCount: number | undefined,
150
+ ): number {
151
+ const available = Math.min(xs.length, ys.length);
152
+ if (vertexCount === undefined) return available;
153
+ if (!Number.isFinite(vertexCount)) return 0;
154
+ return Math.max(0, Math.min(available, Math.floor(vertexCount)));
155
+ }
@@ -0,0 +1,88 @@
1
+ /** How a fresh set of hits joins the selection that is already on screen. */
2
+ export type ScatterSelectionMode = 'replace' | 'add' | 'remove';
3
+
4
+ /**
5
+ * The selection a gesture leaves behind, from the one before it and its hits.
6
+ *
7
+ * The result is always as long as `base`, because that is the cloud's own
8
+ * length and the only length a selection is meaningful at. A `hits` mask that
9
+ * is short leaves the points past its end untouched — an honest reading of "no
10
+ * hit there" — rather than throwing at the end of a drag.
11
+ *
12
+ * Every entry written is `0` or `1`, so a mask that has been through this
13
+ * function can be compared with `toStrictEqual` and handed to a renderer that
14
+ * only checks for truthiness, whatever the caller filled its input with.
15
+ * @param base - The selection before the gesture, one entry per point.
16
+ * @param hits - The points the gesture caught, one entry per point; a non-zero entry is a hit.
17
+ * @param mode - Whether the hits stand alone, join the selection, or leave it.
18
+ * @param into - A mask to write into, so a drag does not allocate one per frame. It is used only when it already has one entry per point; otherwise a new one is allocated.
19
+ * @returns The new selection, one `0` or `1` per point.
20
+ */
21
+ export function mergeScatterSelection(
22
+ base: Uint8Array,
23
+ hits: Uint8Array,
24
+ mode: ScatterSelectionMode,
25
+ into?: Uint8Array,
26
+ ): Uint8Array {
27
+ const total = base.length;
28
+ const merged = into?.length === total ? into : new Uint8Array(total);
29
+
30
+ const replacing = mode === 'replace';
31
+ const removing = mode === 'remove';
32
+ for (let index = 0; index < total; index++) {
33
+ const previous = base[index];
34
+ const hit = hits[index];
35
+ const wasSelected = previous !== undefined && previous !== 0;
36
+ const isHit = hit !== undefined && hit !== 0;
37
+ let selected: boolean;
38
+ if (replacing) selected = isHit;
39
+ else if (removing) selected = wasSelected && !isHit;
40
+ else selected = wasSelected || isHit;
41
+ merged[index] = selected ? 1 : 0;
42
+ }
43
+ return merged;
44
+ }
45
+
46
+ /**
47
+ * Which points a mask has selected, as their indices.
48
+ *
49
+ * The list is what a caller reports, serialises or hands to a table, so it is
50
+ * a plain array of numbers and not a third mask; it comes out ascending
51
+ * because the mask is read in order.
52
+ * @param mask - One entry per point; a non-zero entry is selected.
53
+ * @returns The selected indices, ascending.
54
+ */
55
+ export function scatterSelectedIndices(mask: Uint8Array): number[] {
56
+ const indices: number[] = [];
57
+ for (let index = 0; index < mask.length; index++) {
58
+ const flag = mask[index];
59
+ if (flag !== undefined && flag !== 0) indices.push(index);
60
+ }
61
+ return indices;
62
+ }
63
+
64
+ /**
65
+ * A mask over a cloud, from the indices that are selected.
66
+ *
67
+ * The inverse of {@link scatterSelectedIndices}, and the door a selection
68
+ * restored from a URL or a parent component comes in through. An index that is
69
+ * negative, past the end, or not a whole number is dropped rather than
70
+ * throwing: those lists arrive from outside, and a stale index in one is a
71
+ * reason to select one point fewer, not to fail a render.
72
+ * @param indices - The selected indices, in any order and possibly repeated.
73
+ * @param count - How many points the cloud holds.
74
+ * @returns One `0` or `1` per point.
75
+ */
76
+ export function scatterSelectionMask(
77
+ indices: Iterable<number>,
78
+ count: number,
79
+ ): Uint8Array {
80
+ const total = Number.isFinite(count) ? Math.max(0, Math.floor(count)) : 0;
81
+ const mask = new Uint8Array(total);
82
+ for (const index of indices) {
83
+ if (!Number.isInteger(index)) continue;
84
+ if (index < 0 || index >= total) continue;
85
+ mask[index] = 1;
86
+ }
87
+ return mask;
88
+ }
@@ -0,0 +1,110 @@
1
+ /**
2
+ * Where every point sits on screen, as two parallel arrays.
3
+ *
4
+ * Parallel typed arrays rather than an array of objects: the hit tests are the
5
+ * only code that reads them, they read them in index order, and an `{ x, y }`
6
+ * per point would allocate one object per sample on every relayout.
7
+ */
8
+ export interface ScreenPoints {
9
+ /** Horizontal position of each point, in pixels from the plot's left. */
10
+ x: Float64Array;
11
+ /** Vertical position of each point, in pixels from the plot's top. */
12
+ y: Float64Array;
13
+ }
14
+
15
+ /** The rectangle a set of coordinates spans, in pixels. */
16
+ export interface PixelBounds {
17
+ /** Smallest horizontal position. */
18
+ minX: number;
19
+ /** Smallest vertical position. */
20
+ minY: number;
21
+ /** Largest horizontal position. */
22
+ maxX: number;
23
+ /** Largest vertical position. */
24
+ maxY: number;
25
+ }
26
+
27
+ /**
28
+ * The point nearest a position, when one is close enough to have been aimed at.
29
+ *
30
+ * Distances are compared squared. The caller only ever ranks them, so the
31
+ * square root would be computed once per point on every pointer move and then
32
+ * thrown away; a hover test over twenty thousand points is exactly where that
33
+ * is not affordable.
34
+ *
35
+ * A tie goes to the lower index. Two points that land on the same pixel then
36
+ * resolve the same way twice running, instead of the readout flickering
37
+ * between them as the pointer jitters.
38
+ * @param points - Where every point sits on screen.
39
+ * @param x - Horizontal position to search from, in pixels from the plot's left.
40
+ * @param y - Vertical position to search from, in pixels from the plot's top.
41
+ * @param radius - How far from that position to look, in pixels; a point exactly that far away still counts.
42
+ * @param included - One entry per point, a zero meaning the point cannot be hit. Every point can be hit when it is omitted, and a point past the end of a shorter mask cannot.
43
+ * @returns The index of the nearest point within the radius, or `-1` when no point is within it.
44
+ */
45
+ export function nearestPointIndex(
46
+ points: ScreenPoints,
47
+ x: number,
48
+ y: number,
49
+ radius: number,
50
+ included?: Uint8Array,
51
+ ): number {
52
+ if (!Number.isFinite(x) || !Number.isFinite(y) || !Number.isFinite(radius)) {
53
+ return -1;
54
+ }
55
+ const xs = points.x;
56
+ const ys = points.y;
57
+ let count = Math.min(xs.length, ys.length);
58
+ if (included !== undefined) count = Math.min(count, included.length);
59
+
60
+ const limit = radius * radius;
61
+ let nearest = -1;
62
+ let nearestDistance = 0;
63
+ for (let index = 0; index < count; index++) {
64
+ if (included?.[index] === 0) continue;
65
+ const pointX = xs[index];
66
+ const pointY = ys[index];
67
+ if (pointX === undefined || pointY === undefined) break;
68
+ const deltaX = pointX - x;
69
+ const deltaY = pointY - y;
70
+ const distance = deltaX * deltaX + deltaY * deltaY;
71
+ if (distance > limit) continue;
72
+ if (nearest === -1 || distance < nearestDistance) {
73
+ nearest = index;
74
+ nearestDistance = distance;
75
+ }
76
+ }
77
+ return nearest;
78
+ }
79
+
80
+ /**
81
+ * Which points fall inside a rectangle.
82
+ *
83
+ * A zoomed plot draws only part of its cloud, and the dots left outside the
84
+ * frame are clipped rather than dropped: they are still in the coordinate
85
+ * arrays, still one pixel away from the frame's edge, and still the nearest
86
+ * point to a pointer resting just inside it. Without this mask a reader
87
+ * zoomed in on one crowd gets hover cards about samples they cannot see.
88
+ * @param points - Where every point sits on screen.
89
+ * @param bounds - The rectangle, normally the plot's own; a point on an edge is inside it.
90
+ * @param into - A mask to write into, so a resize does not allocate one per frame. It is used only when it already has one entry per point.
91
+ * @returns One entry per point, `1` for inside.
92
+ */
93
+ export function pointsWithinBounds(
94
+ points: ScreenPoints,
95
+ bounds: PixelBounds,
96
+ into?: Uint8Array,
97
+ ): Uint8Array {
98
+ const xs = points.x;
99
+ const ys = points.y;
100
+ const count = Math.min(xs.length, ys.length);
101
+ const mask = into?.length === count ? into.fill(0) : new Uint8Array(count);
102
+ const { minX, minY, maxX, maxY } = bounds;
103
+ for (let index = 0; index < count; index++) {
104
+ const x = xs[index] ?? Number.NaN;
105
+ const y = ys[index] ?? Number.NaN;
106
+ if (x < minX || x > maxX || y < minY || y > maxY) continue;
107
+ mask[index] = 1;
108
+ }
109
+ return mask;
110
+ }
@@ -0,0 +1,153 @@
1
+ import type { ReactElement } from 'react';
2
+ import { memo, useEffect, useRef } from 'react';
3
+
4
+ import type { ChartScale } from '../../chart/core/chartScale.ts';
5
+ import type { EllipsePoint, EllipseSize } from '../core/confidenceEllipse.ts';
6
+ import { confidenceEllipse } from '../core/confidenceEllipse.ts';
7
+
8
+ import { scatterOutlineShape } from './scatterOutlineShape.tsx';
9
+
10
+ /** What {@link ScatterEllipseLayer} needs. */
11
+ export interface ScatterEllipseLayerProps {
12
+ /** Horizontal coordinate of every point, in data units. */
13
+ x: ArrayLike<number>;
14
+ /** Vertical coordinate of every point, in the same order. */
15
+ y: ArrayLike<number>;
16
+ /**
17
+ * Which group each point belongs to, as an index into `colors`. A point with
18
+ * `-1`, or an index outside the range, is left out of every outline.
19
+ */
20
+ groupOf: ArrayLike<number>;
21
+ /** The colour of each group, in group order. */
22
+ colors: readonly string[];
23
+ /** Data to pixels, horizontally. */
24
+ scaleX: ChartScale;
25
+ /** Data to pixels, vertically; its `factor` is negative. */
26
+ scaleY: ChartScale;
27
+ /**
28
+ * How much of each group its outline holds.
29
+ * @default { kind: 'coverage', probability: 0.95 }
30
+ */
31
+ size?: EllipseSize;
32
+ /**
33
+ * How many points a group needs before it is outlined at all. Below it the
34
+ * shape says more about the sample than about the group.
35
+ * @default 3
36
+ */
37
+ minimumPoints?: number;
38
+ /**
39
+ * How strongly each outline is drawn, in group order.
40
+ * @default undefined — every outline is drawn at full strength
41
+ */
42
+ opacities?: readonly number[];
43
+ /**
44
+ * How solid each region is; `0` draws nothing at all, since the fill is the
45
+ * whole outline. Turn it down when many groups overlap, since the fills
46
+ * compound.
47
+ * @default SCATTER_OUTLINE_FILL_OPACITY
48
+ */
49
+ fillOpacity?: number;
50
+ /**
51
+ * Called with the groups too small to outline, as indices into `colors`,
52
+ * whenever that set changes. An outline that quietly fails to appear reads
53
+ * as a bug in the plot, so the caller is handed what its caption has to
54
+ * account for.
55
+ * @default undefined
56
+ */
57
+ onSkippedGroups?: (groups: readonly number[]) => void;
58
+ }
59
+
60
+ /**
61
+ * One outline per group, drawn through both scales.
62
+ *
63
+ * The outline is measured in the data's own units and drawn in pixels, and the
64
+ * two axes almost never carry the same number of units per pixel — so scaling
65
+ * the two radii and keeping the data-space angle would draw an ellipse of the
66
+ * wrong shape at the wrong tilt. `scatterOutlineShape` transforms the spread
67
+ * first and decomposes it after, which is exact on a linear axis.
68
+ *
69
+ * The outlines are drawn under the dots, which is what lets the region be
70
+ * filled at all: the fill says where a group sits without taking the dots the
71
+ * reader is there to count.
72
+ * @param props - See {@link ScatterEllipseLayerProps}.
73
+ * @returns The outlines.
74
+ */
75
+ export const ScatterEllipseLayer = memo(function ScatterEllipseLayer(
76
+ props: ScatterEllipseLayerProps,
77
+ ): ReactElement {
78
+ const {
79
+ x,
80
+ y,
81
+ groupOf,
82
+ colors,
83
+ scaleX,
84
+ scaleY,
85
+ size = DEFAULT_SIZE,
86
+ minimumPoints = 3,
87
+ opacities,
88
+ fillOpacity,
89
+ onSkippedGroups,
90
+ } = props;
91
+
92
+ const clouds = groupClouds(x, y, groupOf, colors.length);
93
+ const outlines: ReactElement[] = [];
94
+ const skipped: number[] = [];
95
+ for (let group = 0; group < clouds.length; group++) {
96
+ const color = colors[group];
97
+ const cloud = clouds[group];
98
+ if (color === undefined || cloud === undefined) continue;
99
+ const measured = confidenceEllipse(cloud, { size, minimumPoints });
100
+ if (measured === null) {
101
+ skipped.push(group);
102
+ continue;
103
+ }
104
+ const ink = { color, opacity: opacities?.[group], fillOpacity };
105
+ outlines.push(scatterOutlineShape(group, measured, scaleX, scaleY, ink));
106
+ }
107
+
108
+ useSkippedReport(skipped, onSkippedGroups);
109
+ return <g data-layer="ellipses">{outlines}</g>;
110
+ });
111
+
112
+ /** What a group is outlined at when the caller says nothing. */
113
+ const DEFAULT_SIZE: EllipseSize = { kind: 'coverage', probability: 0.95 };
114
+
115
+ /* Each group's points, gathered once so every group is measured in one pass. */
116
+ function groupClouds(
117
+ x: ArrayLike<number>,
118
+ y: ArrayLike<number>,
119
+ groupOf: ArrayLike<number>,
120
+ groups: number,
121
+ ): EllipsePoint[][] {
122
+ const clouds: EllipsePoint[][] = new Array(groups);
123
+ for (let group = 0; group < groups; group++) clouds[group] = [];
124
+ const total = Math.min(x.length, y.length, groupOf.length);
125
+ for (let index = 0; index < total; index++) {
126
+ const group = groupOf[index];
127
+ if (group === undefined || group < 0 || group >= groups) continue;
128
+ const px = x[index];
129
+ const py = y[index];
130
+ if (px === undefined || py === undefined) continue;
131
+ clouds[group]?.push({ x: px, y: py });
132
+ }
133
+ return clouds;
134
+ }
135
+
136
+ /*
137
+ * Report the skipped groups once each time the set changes. A fresh array is
138
+ * built every render, so it is the joined indices that are compared and not
139
+ * the array, which is what keeps a caller storing the answer from re-rendering
140
+ * for ever.
141
+ */
142
+ function useSkippedReport(
143
+ skipped: readonly number[],
144
+ report: ((groups: readonly number[]) => void) | undefined,
145
+ ): void {
146
+ const last = useRef('');
147
+ const key = skipped.join(' ');
148
+ useEffect(() => {
149
+ if (last.current === key) return;
150
+ last.current = key;
151
+ report?.(skipped);
152
+ });
153
+ }
@@ -0,0 +1,135 @@
1
+ import type { ReactElement } from 'react';
2
+ import { memo } from 'react';
3
+
4
+ import {
5
+ SCATTER_GROUP_LABEL_SIZE,
6
+ SCATTER_LABEL_SIZE,
7
+ } from './scatterLabelBoxes.ts';
8
+ import type { PlacedScatterLabel } from './scatterLabelPlacement.ts';
9
+
10
+ /** What {@link ScatterLabelLayer} draws. */
11
+ export interface ScatterLabelLayerProps {
12
+ /** The words and where they go, from `placeScatterLabels`. */
13
+ labels: readonly PlacedScatterLabel[];
14
+ /**
15
+ * Radius of the dot a label stands beside, which a line back to it starts
16
+ * clear of.
17
+ * @default 3.5
18
+ */
19
+ radius?: number;
20
+ /**
21
+ * Whether the words are set in the heavier weight, for a group's name over
22
+ * its own crowd rather than a sample's name beside one dot.
23
+ * @default false
24
+ */
25
+ strong?: boolean;
26
+ }
27
+
28
+ /**
29
+ * The words written on a cloud of points.
30
+ *
31
+ * Every label is drawn twice over: once in the page's own background as a
32
+ * thick stroke and once in its colour as a fill. Without that halo a name
33
+ * landing on a crowd of dots is unreadable exactly where a reader most wants
34
+ * to read it, and the alternatives — a solid box behind each word, or moving
35
+ * the words off the data — either hide the dots the label is about or break
36
+ * the link between the two.
37
+ *
38
+ * A word that had to be pushed clear of another word gets a thin line back to
39
+ * what it names; the lines are drawn first so every halo cuts through them,
40
+ * which is what keeps a line from striking through the word it arrives at.
41
+ *
42
+ * The layer carries no event handler and no state, like every other layer of
43
+ * the plot: the gestures land on one transparent rectangle above it.
44
+ * @param props - See {@link ScatterLabelLayerProps}.
45
+ * @returns The words.
46
+ */
47
+ export const ScatterLabelLayer = memo(function ScatterLabelLayer(
48
+ props: ScatterLabelLayerProps,
49
+ ): ReactElement {
50
+ const { labels, radius = 3.5, strong = false } = props;
51
+
52
+ const lines: ReactElement[] = [];
53
+ const written: ReactElement[] = [];
54
+ for (let index = 0; index < labels.length; index++) {
55
+ const label = labels[index];
56
+ if (label === undefined) continue;
57
+ const leader = label.leader;
58
+ if (leader !== undefined) {
59
+ const across = leader.x - label.x;
60
+ const down = leader.y - label.y;
61
+ const away = Math.hypot(across, down);
62
+ const start = Math.min((radius + LEADER_GAP) / away, 1);
63
+ lines.push(
64
+ <line
65
+ key={index}
66
+ x1={round(label.x + across * start)}
67
+ y1={round(label.y + down * start)}
68
+ x2={round(leader.x)}
69
+ y2={round(leader.y)}
70
+ stroke={label.color}
71
+ {...LEADER_STYLE}
72
+ />,
73
+ );
74
+ }
75
+ written.push(
76
+ <text
77
+ key={index}
78
+ x={round(label.textX)}
79
+ y={round(label.textY)}
80
+ fill={label.color}
81
+ textAnchor={label.anchor}
82
+ dominantBaseline="middle"
83
+ style={strong ? STRONG_LABEL_STYLE : LABEL_STYLE}
84
+ >
85
+ {label.text}
86
+ </text>,
87
+ );
88
+ }
89
+
90
+ return (
91
+ <g data-layer="labels" paintOrder="stroke" stroke="var(--surface)">
92
+ {lines}
93
+ {written}
94
+ </g>
95
+ );
96
+ });
97
+
98
+ /** How far a line back to a dot starts clear of that dot. */
99
+ const LEADER_GAP = 2;
100
+
101
+ /**
102
+ * The line from a word to what it names. Thin and faint: it is a pointer and
103
+ * not a reading, and drawn at full strength forty of them read as data.
104
+ */
105
+ const LEADER_STYLE = {
106
+ strokeWidth: 0.75,
107
+ strokeOpacity: 0.55,
108
+ fill: 'none',
109
+ } as const;
110
+
111
+ /**
112
+ * A sample's own name. Small, because there is one per dot and the map is the
113
+ * thing being read; the halo is what makes it legible rather than the size.
114
+ */
115
+ const LABEL_STYLE = {
116
+ fontSize: SCATTER_LABEL_SIZE,
117
+ strokeWidth: 3,
118
+ strokeLinejoin: 'round',
119
+ userSelect: 'none',
120
+ } as const;
121
+
122
+ /** A group's name, which stands over a crowd and has to win against it. */
123
+ const STRONG_LABEL_STYLE = {
124
+ fontSize: SCATTER_GROUP_LABEL_SIZE,
125
+ fontWeight: 600,
126
+ strokeWidth: 3.5,
127
+ strokeLinejoin: 'round',
128
+ userSelect: 'none',
129
+ } as const;
130
+
131
+ /*
132
+ * Two decimals, which is under a tenth of a device pixel at any zoom a browser
133
+ * offers and keeps the markup short enough to read in a failing test.
134
+ */
135
+ const round = (value: number): number => Math.round(value * 100) / 100;