@fundar/data-chart-telling 0.0.64 → 1.0.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 (786) hide show
  1. package/CHANGELOG.md +17 -0
  2. package/LICENSE +21 -0
  3. package/README.md +81 -561
  4. package/dist/configuration/config.svelte.d.ts +5 -5
  5. package/dist/configuration/config.svelte.js +130 -46
  6. package/dist/configuration/fonts.d.ts +6 -0
  7. package/dist/configuration/fonts.js +6 -0
  8. package/dist/configuration/themes/compact.d.ts +2 -2
  9. package/dist/configuration/themes/compact.js +1 -1
  10. package/dist/configuration/themes/dark.d.ts +2 -2
  11. package/dist/configuration/themes/dark.js +5 -4
  12. package/dist/configuration/themes/default.d.ts +8 -3
  13. package/dist/configuration/themes/default.js +8 -2
  14. package/dist/configuration/themes/editorial.d.ts +2 -2
  15. package/dist/configuration/themes/editorial.js +2 -2
  16. package/dist/configuration/themes/index.d.ts +421 -80
  17. package/dist/configuration/themes/index.js +6 -5
  18. package/dist/index.d.ts +34 -48
  19. package/dist/index.js +19 -35
  20. package/dist/layout/base/BasePlotLayout.svelte +312 -0
  21. package/dist/layout/base/BasePlotLayout.svelte.d.ts +111 -0
  22. package/dist/layout/composer/PlotComposer.svelte +94 -0
  23. package/dist/layout/composer/PlotComposer.svelte.d.ts +13 -0
  24. package/dist/layout/coordinates/CameraFit.svelte +4 -4
  25. package/dist/layout/coordinates/CoordinatesLayout.svelte +11 -3
  26. package/dist/layout/coordinates/CoordinatesLayout.svelte.d.ts +6 -2
  27. package/dist/layout/coordinates/camera.svelte.d.ts +1 -1
  28. package/dist/layout/coordinates/camera.svelte.js +6 -6
  29. package/dist/layout/coordinates/projections/argentina.js +3 -3
  30. package/dist/layout/coordinates/projections/fit.js +1 -1
  31. package/dist/layout/coordinates/resolveCameraTarget.d.ts +1 -1
  32. package/dist/layout/coordinates/resolveProjection.d.ts +1 -1
  33. package/dist/layout/coordinates/resolveProjection.js +2 -2
  34. package/dist/layout/coordinates/rotate.svelte.d.ts +3 -3
  35. package/dist/layout/coordinates/rotate.svelte.js +8 -8
  36. package/dist/layout/coordinates/zoom.svelte.d.ts +1 -1
  37. package/dist/layout/facet/FacetIndicator.svelte +23 -23
  38. package/dist/layout/facet/FacetLayout.svelte +435 -398
  39. package/dist/layout/facet/FacetLayout.svelte.d.ts +9 -3
  40. package/dist/layout/facet/axes.d.ts +16 -0
  41. package/dist/layout/facet/axes.js +25 -0
  42. package/dist/layout/facet/config.d.ts +32 -0
  43. package/dist/layout/facet/config.js +82 -0
  44. package/dist/layout/figure/Figure.svelte +177 -0
  45. package/dist/layout/figure/Figure.svelte.d.ts +14 -0
  46. package/dist/layout/figure/FigureChrome.svelte +341 -0
  47. package/dist/layout/figure/FigureChrome.svelte.d.ts +21 -0
  48. package/dist/layout/geometry/FrameClip.svelte +45 -0
  49. package/dist/layout/geometry/FrameClip.svelte.d.ts +8 -0
  50. package/dist/layout/geometry/FrameClipping.d.ts +24 -0
  51. package/dist/layout/geometry/FrameClipping.js +40 -0
  52. package/dist/layout/geometry/GeometryLayout.svelte +287 -224
  53. package/dist/layout/geometry/GeometryLayout.svelte.d.ts +10 -10
  54. package/dist/layout/grid/Grid.svelte +194 -0
  55. package/dist/layout/grid/Grid.svelte.d.ts +26 -0
  56. package/dist/layout/grid/GridAlignment.svelte.d.ts +31 -0
  57. package/dist/layout/grid/GridAlignment.svelte.js +56 -0
  58. package/dist/layout/grid/GridCell.svelte +141 -0
  59. package/dist/layout/grid/GridCell.svelte.d.ts +17 -0
  60. package/dist/layout/grid/GridCellsRegistry.svelte.d.ts +52 -0
  61. package/dist/layout/grid/GridCellsRegistry.svelte.js +70 -0
  62. package/dist/layout/grid/GridPlan.d.ts +49 -0
  63. package/dist/layout/grid/GridPlan.js +167 -0
  64. package/dist/layout/grid/Tags.d.ts +8 -0
  65. package/dist/layout/grid/Tags.js +39 -0
  66. package/dist/layout/hover/HoverScope.svelte +11 -0
  67. package/dist/layout/hover/HoverScope.svelte.d.ts +8 -0
  68. package/dist/layout/hover/HoverSettings.d.ts +20 -0
  69. package/dist/layout/hover/HoverSettings.js +27 -0
  70. package/dist/layout/hover/HoverState.svelte.d.ts +47 -0
  71. package/dist/layout/hover/HoverState.svelte.js +99 -0
  72. package/dist/layout/hover/PlotHover.svelte.d.ts +63 -0
  73. package/dist/layout/hover/PlotHover.svelte.js +133 -0
  74. package/dist/layout/interaction/PlotInteraction.svelte.d.ts +38 -0
  75. package/dist/layout/interaction/PlotInteraction.svelte.js +56 -0
  76. package/dist/layout/legend/AxisNumberFormat.d.ts +12 -0
  77. package/dist/layout/legend/AxisNumberFormat.js +25 -0
  78. package/dist/layout/legend/ContinuousSection.svelte +363 -351
  79. package/dist/layout/legend/DisabledStyle.d.ts +19 -0
  80. package/dist/layout/legend/DisabledStyle.js +57 -0
  81. package/dist/layout/legend/DiscreteBadgeItem.svelte +6 -3
  82. package/dist/layout/legend/DiscreteSection.svelte +32 -32
  83. package/dist/layout/legend/DiscreteSwatchItem.svelte +4 -1
  84. package/dist/layout/legend/DiscreteSymbolIcon.svelte +14 -9
  85. package/dist/layout/legend/LegendChannels.d.ts +21 -0
  86. package/dist/layout/legend/LegendChannels.js +221 -0
  87. package/dist/layout/legend/LegendLayout.svelte +49 -43
  88. package/dist/layout/legend/LegendState.svelte.d.ts +79 -0
  89. package/dist/layout/legend/LegendState.svelte.js +329 -0
  90. package/dist/layout/legend/LegendText.d.ts +12 -0
  91. package/dist/layout/legend/LegendText.js +22 -0
  92. package/dist/layout/legend/SizeSection.svelte +84 -0
  93. package/dist/layout/legend/SizeSection.svelte.d.ts +7 -0
  94. package/dist/layout/legend/SymbolSection.svelte +31 -0
  95. package/dist/layout/legend/SymbolSection.svelte.d.ts +8 -0
  96. package/dist/layout/margins/Box.d.ts +84 -0
  97. package/dist/layout/margins/Box.js +138 -0
  98. package/dist/layout/margins/Margins.d.ts +37 -0
  99. package/dist/layout/margins/Margins.js +71 -0
  100. package/dist/layout/margins/PlotMargins.svelte.d.ts +101 -0
  101. package/dist/layout/margins/PlotMargins.svelte.js +219 -0
  102. package/dist/layout/plot/Core.svelte +61 -0
  103. package/dist/layout/plot/Core.svelte.d.ts +41 -0
  104. package/dist/layout/plot/PanelRun.svelte +28 -0
  105. package/dist/{charts/heatmap/Chart.svelte.d.ts → layout/plot/PanelRun.svelte.d.ts} +11 -7
  106. package/dist/layout/plot/Plot.svelte +284 -0
  107. package/dist/layout/plot/Plot.svelte.d.ts +49 -0
  108. package/dist/layout/plot/PlotContext.d.ts +41 -0
  109. package/dist/layout/plot/PlotContext.js +46 -0
  110. package/dist/layout/plot/PublicPlotContext.d.ts +130 -0
  111. package/dist/layout/plot/PublicPlotContext.js +236 -0
  112. package/dist/layout/plot/Slice.d.ts +44 -0
  113. package/dist/layout/plot/Slice.js +98 -0
  114. package/dist/layout/plot/usePlot.d.ts +9 -0
  115. package/dist/layout/plot/usePlot.js +13 -0
  116. package/dist/layout/scales/ScalesLayout.svelte +241 -206
  117. package/dist/layout/scales/ScalesLayout.svelte.d.ts +2 -1
  118. package/dist/layout/scales/buildScale.d.ts +5 -22
  119. package/dist/layout/scales/buildScale.js +11 -34
  120. package/dist/layout/scales/niceDomain.d.ts +3 -3
  121. package/dist/layout/scales/niceDomain.js +4 -4
  122. package/dist/layout/styles/StylesLayout.svelte +65 -65
  123. package/dist/layout/styles/TileLayer.svelte +78 -76
  124. package/dist/layout/styles/TileLayer.svelte.d.ts +1 -1
  125. package/dist/layout/styles/ValueLabels.d.ts +97 -0
  126. package/dist/layout/styles/ValueLabels.js +237 -0
  127. package/dist/layout/timeline/Timeline.svelte +80 -74
  128. package/dist/layout/timeline/TimelineFrame.svelte +86 -0
  129. package/dist/layout/timeline/TimelineFrame.svelte.d.ts +16 -0
  130. package/dist/layout/timeline/TimelineLayout.svelte +114 -169
  131. package/dist/layout/timeline/TimelineLayout.svelte.d.ts +2 -0
  132. package/dist/layout/timeline/TimelinePlayer.svelte +195 -0
  133. package/dist/layout/timeline/TimelinePlayer.svelte.d.ts +7 -0
  134. package/dist/layout/timeline/TimelineRule.svelte +50 -0
  135. package/dist/layout/timeline/TimelineRule.svelte.d.ts +7 -0
  136. package/dist/layout/timeline/TimelineState.svelte.d.ts +82 -0
  137. package/dist/layout/timeline/TimelineState.svelte.js +226 -0
  138. package/dist/layout/timeline/TimelineSteps.d.ts +24 -0
  139. package/dist/layout/timeline/TimelineSteps.js +48 -0
  140. package/dist/layout/tooltip/Tooltip.svelte +82 -85
  141. package/dist/layout/tooltip/Tooltip.svelte.d.ts +43 -24
  142. package/dist/layout/tooltip/TooltipState.svelte.d.ts +61 -0
  143. package/dist/layout/tooltip/TooltipState.svelte.js +107 -0
  144. package/dist/markers/MarkerKinds.d.ts +173 -0
  145. package/dist/markers/MarkerKinds.js +51 -0
  146. package/dist/markers/area/AreaMarker.svelte +110 -0
  147. package/dist/markers/area/AreaMarker.svelte.d.ts +7 -0
  148. package/dist/markers/arrow/ArrowMarker.svelte +28 -0
  149. package/dist/markers/arrow/ArrowMarker.svelte.d.ts +7 -0
  150. package/dist/markers/{BarMarker.svelte → bar/BarMarker.svelte} +54 -52
  151. package/dist/markers/{BarMarker.svelte.d.ts → bar/BarMarker.svelte.d.ts} +1 -1
  152. package/dist/markers/bollinger/BollingerMarker.svelte +44 -0
  153. package/dist/markers/bollinger/BollingerMarker.svelte.d.ts +7 -0
  154. package/dist/markers/box/BoxMarker.svelte +143 -0
  155. package/dist/markers/box/BoxMarker.svelte.d.ts +7 -0
  156. package/dist/markers/brush/BrushMarker.svelte +32 -0
  157. package/dist/markers/brush/BrushMarker.svelte.d.ts +7 -0
  158. package/dist/markers/cell/CellMarker.svelte +27 -0
  159. package/dist/markers/{CellMarker.svelte.d.ts → cell/CellMarker.svelte.d.ts} +1 -1
  160. package/dist/markers/contour/ContourClipMarker.svelte +83 -0
  161. package/dist/markers/{ContourClipMarker.svelte.d.ts → contour/ContourClipMarker.svelte.d.ts} +1 -1
  162. package/dist/markers/contour/ContourMarker.svelte +28 -0
  163. package/dist/markers/{ContourMarker.svelte.d.ts → contour/ContourMarker.svelte.d.ts} +1 -1
  164. package/dist/markers/delaunay/DelaunayLinkMarker.svelte +26 -0
  165. package/dist/markers/delaunay/DelaunayLinkMarker.svelte.d.ts +7 -0
  166. package/dist/markers/delaunay/DelaunayMeshMarker.svelte +26 -0
  167. package/dist/markers/delaunay/DelaunayMeshMarker.svelte.d.ts +7 -0
  168. package/dist/markers/delta/Delta.d.ts +21 -0
  169. package/dist/markers/delta/Delta.js +60 -0
  170. package/dist/markers/delta/DeltaMarker.svelte +94 -0
  171. package/dist/markers/{DeltaMarker.svelte.d.ts → delta/DeltaMarker.svelte.d.ts} +2 -2
  172. package/dist/markers/density/DensityMarker.svelte +63 -0
  173. package/dist/markers/density/DensityMarker.svelte.d.ts +7 -0
  174. package/dist/markers/difference/DifferenceMarker.svelte +30 -0
  175. package/dist/markers/difference/DifferenceMarker.svelte.d.ts +7 -0
  176. package/dist/markers/dot/DotMarker.svelte +102 -0
  177. package/dist/markers/{DotMarker.svelte.d.ts → dot/DotMarker.svelte.d.ts} +5 -17
  178. package/dist/markers/geo/GeoFeaturesMarker.svelte +39 -0
  179. package/dist/markers/{GeoFeaturesMarker.svelte.d.ts → geo/GeoFeaturesMarker.svelte.d.ts} +1 -1
  180. package/dist/markers/geo/GeoHoverMarker.svelte +28 -0
  181. package/dist/markers/{GeoHoverMarker.svelte.d.ts → geo/GeoHoverMarker.svelte.d.ts} +2 -2
  182. package/dist/markers/geo/GraticuleMarker.svelte +18 -0
  183. package/dist/markers/{GraticuleMarker.svelte.d.ts → geo/GraticuleMarker.svelte.d.ts} +1 -1
  184. package/dist/markers/geo/SphereMarker.svelte +15 -0
  185. package/dist/markers/{SphereMarker.svelte.d.ts → geo/SphereMarker.svelte.d.ts} +1 -1
  186. package/dist/markers/hover/HoverMarker.svelte +252 -0
  187. package/dist/markers/{HoverMarker.svelte.d.ts → hover/HoverMarker.svelte.d.ts} +10 -10
  188. package/dist/markers/hull/HullMarker.svelte +25 -0
  189. package/dist/markers/hull/HullMarker.svelte.d.ts +7 -0
  190. package/dist/markers/image/ImageMarker.svelte +22 -0
  191. package/dist/markers/image/ImageMarker.svelte.d.ts +7 -0
  192. package/dist/markers/inset/InsetMarker.svelte +184 -150
  193. package/dist/markers/inset/InsetMarker.svelte.d.ts +4 -4
  194. package/dist/markers/inset/insetLayout.d.ts +1 -1
  195. package/dist/markers/inset/insetLayout.js +6 -2
  196. package/dist/markers/inset/insetProjection.d.ts +1 -1
  197. package/dist/markers/inset/insetProjection.js +3 -3
  198. package/dist/markers/line/LineMarker.svelte +30 -0
  199. package/dist/markers/{LineMarker.svelte.d.ts → line/LineMarker.svelte.d.ts} +1 -1
  200. package/dist/markers/link/LinkMarker.svelte +47 -0
  201. package/dist/markers/{LinkMarker.svelte.d.ts → link/LinkMarker.svelte.d.ts} +1 -1
  202. package/dist/markers/raster/RasterMarker.svelte +31 -0
  203. package/dist/markers/raster/RasterMarker.svelte.d.ts +7 -0
  204. package/dist/markers/rect/RectMarker.svelte +62 -0
  205. package/dist/markers/rect/RectMarker.svelte.d.ts +7 -0
  206. package/dist/markers/regression/RegressionMarker.svelte +60 -0
  207. package/dist/markers/regression/RegressionMarker.svelte.d.ts +7 -0
  208. package/dist/markers/rule/RuleMarker.svelte +47 -0
  209. package/dist/markers/{RuleMarker.svelte.d.ts → rule/RuleMarker.svelte.d.ts} +2 -5
  210. package/dist/markers/text/Declutter.d.ts +35 -0
  211. package/dist/markers/text/Declutter.js +157 -0
  212. package/dist/markers/text/TextMarker.svelte +244 -0
  213. package/dist/markers/{TextMarker.svelte.d.ts → text/TextMarker.svelte.d.ts} +5 -9
  214. package/dist/markers/tick/TickMarker.svelte +44 -0
  215. package/dist/markers/tick/TickMarker.svelte.d.ts +7 -0
  216. package/dist/markers/trail/TrailMarker.svelte +27 -0
  217. package/dist/markers/trail/TrailMarker.svelte.d.ts +7 -0
  218. package/dist/markers/utils/BandNudge.d.ts +22 -0
  219. package/dist/markers/utils/BandNudge.js +23 -0
  220. package/dist/markers/utils/MarkerChannels.d.ts +49 -0
  221. package/dist/markers/utils/MarkerChannels.js +97 -0
  222. package/dist/markers/vector/VectorMarker.svelte +29 -0
  223. package/dist/markers/{VectorMarker.svelte.d.ts → vector/VectorMarker.svelte.d.ts} +1 -1
  224. package/dist/markers/voronoi/VoronoiMarker.svelte +26 -0
  225. package/dist/markers/voronoi/VoronoiMarker.svelte.d.ts +7 -0
  226. package/dist/markers/voronoi/VoronoiMeshMarker.svelte +26 -0
  227. package/dist/markers/voronoi/VoronoiMeshMarker.svelte.d.ts +7 -0
  228. package/dist/markers/waffle/WaffleMarker.svelte +56 -0
  229. package/dist/markers/waffle/WaffleMarker.svelte.d.ts +7 -0
  230. package/dist/phases/Pipeline.d.ts +108 -0
  231. package/dist/phases/Pipeline.js +226 -0
  232. package/dist/phases/data/DataPhase.d.ts +25 -0
  233. package/dist/phases/data/DataPhase.js +82 -0
  234. package/dist/phases/data/PlotAxes.d.ts +75 -0
  235. package/dist/phases/data/PlotAxes.js +151 -0
  236. package/dist/phases/facet/FacetPhase.d.ts +52 -0
  237. package/dist/phases/facet/FacetPhase.js +114 -0
  238. package/dist/phases/hover/HoverPhase.d.ts +73 -0
  239. package/dist/phases/hover/HoverPhase.js +144 -0
  240. package/dist/phases/mapping/MappingPhase.d.ts +17 -0
  241. package/dist/phases/mapping/MappingPhase.js +42 -0
  242. package/dist/phases/markers/MarkersPhase.d.ts +14 -0
  243. package/dist/phases/markers/MarkersPhase.js +27 -0
  244. package/dist/phases/scales/MarkerAxisValues.d.ts +12 -0
  245. package/dist/phases/scales/MarkerAxisValues.js +34 -0
  246. package/dist/phases/scales/ScalesPhase.d.ts +31 -0
  247. package/dist/phases/scales/ScalesPhase.js +157 -0
  248. package/dist/phases/sharedScales/SharedScalesPhase.d.ts +55 -0
  249. package/dist/phases/sharedScales/SharedScalesPhase.js +168 -0
  250. package/dist/phases/statistics/AuthorMarkers.d.ts +43 -0
  251. package/dist/phases/statistics/AuthorMarkers.js +69 -0
  252. package/dist/phases/statistics/MarkerGrouping.d.ts +48 -0
  253. package/dist/phases/statistics/MarkerGrouping.js +113 -0
  254. package/dist/phases/statistics/Statistics.d.ts +53 -0
  255. package/dist/phases/statistics/Statistics.js +156 -0
  256. package/dist/phases/statistics/StatisticsPhase.d.ts +18 -0
  257. package/dist/phases/statistics/StatisticsPhase.js +68 -0
  258. package/dist/phases/statistics/methods/BollingerStatistic.d.ts +9 -0
  259. package/dist/phases/statistics/methods/BollingerStatistic.js +18 -0
  260. package/dist/phases/statistics/methods/BoxStatistic.d.ts +9 -0
  261. package/dist/phases/statistics/methods/BoxStatistic.js +18 -0
  262. package/dist/phases/statistics/methods/Density2dStatistic.d.ts +9 -0
  263. package/dist/phases/statistics/methods/Density2dStatistic.js +18 -0
  264. package/dist/phases/statistics/methods/DensityStatistic.d.ts +12 -0
  265. package/dist/phases/statistics/methods/DensityStatistic.js +29 -0
  266. package/dist/phases/statistics/methods/MovingAverageStatistic.d.ts +12 -0
  267. package/dist/phases/statistics/methods/MovingAverageStatistic.js +30 -0
  268. package/dist/phases/statistics/methods/RegressionStatistic.d.ts +9 -0
  269. package/dist/phases/statistics/methods/RegressionStatistic.js +21 -0
  270. package/dist/phases/styles/StylesPhase.d.ts +13 -0
  271. package/dist/phases/styles/StylesPhase.js +17 -0
  272. package/dist/phases/tooltip/TooltipPhase.d.ts +12 -0
  273. package/dist/phases/tooltip/TooltipPhase.js +10 -0
  274. package/dist/phases/transforms/Transforms.d.ts +42 -0
  275. package/dist/phases/transforms/Transforms.js +130 -0
  276. package/dist/phases/transforms/TransformsPhase.d.ts +64 -0
  277. package/dist/phases/transforms/TransformsPhase.js +242 -0
  278. package/dist/phases/transforms/methods/AnchorBar.d.ts +13 -0
  279. package/dist/phases/transforms/methods/AnchorBar.js +21 -0
  280. package/dist/phases/transforms/methods/BinTransform.d.ts +7 -0
  281. package/dist/phases/transforms/methods/BinTransform.js +48 -0
  282. package/dist/phases/transforms/methods/DensityTransform.d.ts +6 -0
  283. package/dist/phases/transforms/methods/DensityTransform.js +13 -0
  284. package/dist/phases/transforms/methods/GroupTransform.d.ts +8 -0
  285. package/dist/phases/transforms/methods/GroupTransform.js +39 -0
  286. package/dist/phases/transforms/methods/NormalizeTransform.d.ts +10 -0
  287. package/dist/phases/transforms/methods/NormalizeTransform.js +30 -0
  288. package/dist/phases/transforms/methods/OrderTransform.d.ts +16 -0
  289. package/dist/phases/transforms/methods/OrderTransform.js +43 -0
  290. package/dist/phases/transforms/methods/PerGroup.d.ts +11 -0
  291. package/dist/phases/transforms/methods/PerGroup.js +39 -0
  292. package/dist/phases/transforms/methods/PositionTransform.d.ts +15 -0
  293. package/dist/phases/transforms/methods/PositionTransform.js +74 -0
  294. package/dist/phases/transforms/methods/StackTransform.d.ts +8 -0
  295. package/dist/phases/transforms/methods/StackTransform.js +29 -0
  296. package/dist/phases/transforms/methods/WindowTransform.d.ts +8 -0
  297. package/dist/phases/transforms/methods/WindowTransform.js +23 -0
  298. package/dist/plots/area/Plot.svelte +42 -0
  299. package/dist/plots/{heatmap/ValueLabels.svelte.d.ts → area/Plot.svelte.d.ts} +8 -16
  300. package/dist/plots/area/defaults.d.ts +4 -0
  301. package/dist/plots/area/defaults.js +21 -0
  302. package/dist/plots/area/markers.d.ts +14 -0
  303. package/dist/plots/area/markers.js +40 -0
  304. package/dist/plots/bar/Plot.svelte +33 -438
  305. package/dist/plots/bar/Plot.svelte.d.ts +5 -8
  306. package/dist/plots/bar/defaults.d.ts +9 -0
  307. package/dist/plots/bar/defaults.js +92 -0
  308. package/dist/plots/bar/markers.d.ts +45 -0
  309. package/dist/plots/bar/markers.js +232 -0
  310. package/dist/plots/geo/Core.svelte +151 -0
  311. package/dist/plots/geo/Core.svelte.d.ts +25 -0
  312. package/dist/plots/geo/Plot.svelte +103 -324
  313. package/dist/plots/geo/Plot.svelte.d.ts +5 -9
  314. package/dist/plots/geo/defaults.d.ts +4 -0
  315. package/dist/plots/geo/defaults.js +16 -0
  316. package/dist/plots/geo/features.svelte.d.ts +5 -0
  317. package/dist/plots/geo/features.svelte.js +44 -0
  318. package/dist/plots/geo/phases/data.d.ts +6 -0
  319. package/dist/plots/geo/phases/data.js +26 -0
  320. package/dist/plots/geo/phases/hover.d.ts +9 -0
  321. package/dist/plots/geo/phases/hover.js +45 -0
  322. package/dist/plots/geo/phases/markers.d.ts +9 -0
  323. package/dist/plots/geo/phases/markers.js +76 -0
  324. package/dist/plots/geo/phases/scales.d.ts +10 -0
  325. package/dist/plots/geo/phases/scales.js +85 -0
  326. package/dist/plots/geo/phases/tooltip.d.ts +3 -0
  327. package/dist/plots/geo/phases/tooltip.js +5 -0
  328. package/dist/plots/geo/slices.d.ts +18 -0
  329. package/dist/plots/geo/slices.js +56 -0
  330. package/dist/plots/heatmap/Plot.svelte +55 -249
  331. package/dist/plots/heatmap/Plot.svelte.d.ts +5 -8
  332. package/dist/plots/heatmap/defaults.d.ts +11 -0
  333. package/dist/plots/heatmap/defaults.js +91 -0
  334. package/dist/plots/heatmap/markers.d.ts +17 -0
  335. package/dist/plots/heatmap/markers.js +141 -0
  336. package/dist/plots/histogram/Plot.svelte +45 -0
  337. package/dist/plots/histogram/Plot.svelte.d.ts +26 -0
  338. package/dist/plots/histogram/defaults.d.ts +9 -0
  339. package/dist/plots/histogram/defaults.js +87 -0
  340. package/dist/plots/histogram/markers.d.ts +18 -0
  341. package/dist/plots/histogram/markers.js +89 -0
  342. package/dist/plots/line/Plot.svelte +37 -268
  343. package/dist/plots/line/Plot.svelte.d.ts +3 -7
  344. package/dist/plots/line/defaults.d.ts +4 -0
  345. package/dist/plots/line/defaults.js +29 -0
  346. package/dist/plots/line/markers.d.ts +49 -0
  347. package/dist/plots/line/markers.js +200 -0
  348. package/dist/plots/pyramid/Plot.svelte +34 -362
  349. package/dist/plots/pyramid/Plot.svelte.d.ts +5 -8
  350. package/dist/plots/pyramid/defaults.d.ts +13 -0
  351. package/dist/plots/pyramid/defaults.js +86 -0
  352. package/dist/plots/pyramid/markers.d.ts +21 -0
  353. package/dist/plots/pyramid/markers.js +159 -0
  354. package/dist/plots/scatter/Plot.svelte +34 -288
  355. package/dist/plots/scatter/Plot.svelte.d.ts +5 -8
  356. package/dist/plots/scatter/defaults.d.ts +4 -0
  357. package/dist/plots/scatter/defaults.js +79 -0
  358. package/dist/plots/scatter/markers.d.ts +19 -0
  359. package/dist/plots/scatter/markers.js +128 -0
  360. package/dist/plots/utils/ChannelName.d.ts +9 -0
  361. package/dist/plots/utils/ChannelName.js +14 -0
  362. package/dist/plots/utils/accessors.d.ts +1 -1
  363. package/dist/plots/utils/accessors.js +4 -2
  364. package/dist/plots/utils/gaps.d.ts +14 -19
  365. package/dist/plots/utils/gaps.js +38 -18
  366. package/dist/plots/utils/geoAccessors.d.ts +8 -8
  367. package/dist/plots/utils/geoAccessors.js +16 -12
  368. package/dist/plots/utils/geoSegments.d.ts +24 -9
  369. package/dist/plots/utils/geoSegments.js +31 -11
  370. package/dist/plots/utils/segments.d.ts +5 -16
  371. package/dist/plots/utils/segments.js +40 -52
  372. package/dist/plots/utils/tiles.d.ts +9 -9
  373. package/dist/plots/utils/tiles.js +35 -25
  374. package/dist/plots/utils/topojson.d.ts +1 -1
  375. package/dist/plots/utils/topojson.js +3 -3
  376. package/dist/stores/device.js +2 -4
  377. package/dist/types/configuration/styling.d.ts +152 -27
  378. package/dist/types/layout/box.d.ts +24 -0
  379. package/dist/types/layout/composer.d.ts +36 -0
  380. package/dist/types/layout/coordinates.d.ts +14 -14
  381. package/dist/types/layout/facet.d.ts +44 -22
  382. package/dist/types/layout/figure.d.ts +7 -0
  383. package/dist/types/layout/geometry.d.ts +6 -2
  384. package/dist/types/layout/grid.d.ts +66 -0
  385. package/dist/types/layout/hover.d.ts +48 -0
  386. package/dist/types/layout/legend.d.ts +256 -55
  387. package/dist/types/layout/mapping.d.ts +68 -0
  388. package/dist/types/layout/plot.d.ts +41 -0
  389. package/dist/types/layout/scales.d.ts +92 -24
  390. package/dist/types/layout/scales.js +19 -1
  391. package/dist/types/layout/statistics/bollinger.d.ts +18 -0
  392. package/dist/types/layout/statistics/box.d.ts +8 -0
  393. package/dist/types/layout/statistics/box.js +1 -0
  394. package/dist/types/layout/statistics/density.d.ts +27 -0
  395. package/dist/types/layout/statistics/density.js +1 -0
  396. package/dist/types/layout/statistics/index.d.ts +46 -0
  397. package/dist/types/layout/statistics/index.js +1 -0
  398. package/dist/types/layout/statistics/movingAverage.d.ts +12 -0
  399. package/dist/types/layout/statistics/movingAverage.js +1 -0
  400. package/dist/types/layout/statistics/regression.d.ts +20 -0
  401. package/dist/types/layout/statistics/regression.js +1 -0
  402. package/dist/types/layout/styles.d.ts +24 -35
  403. package/dist/types/layout/timeline.d.ts +51 -4
  404. package/dist/types/layout/tooltip.d.ts +7 -85
  405. package/dist/types/markers/all.d.ts +3 -4
  406. package/dist/types/markers/axis/area.d.ts +12 -0
  407. package/dist/types/markers/axis/area.js +1 -0
  408. package/dist/types/markers/axis/arrow.d.ts +15 -0
  409. package/dist/types/markers/axis/arrow.js +1 -0
  410. package/dist/types/markers/axis/axisBasedMarkersConfig.d.ts +29 -0
  411. package/dist/types/markers/axis/axisBasedMarkersConfig.js +1 -0
  412. package/dist/types/markers/axis/bar.d.ts +18 -0
  413. package/dist/types/markers/axis/bar.js +1 -0
  414. package/dist/types/markers/axis/bollinger.d.ts +6 -0
  415. package/dist/types/markers/axis/bollinger.js +1 -0
  416. package/dist/types/markers/axis/box.d.ts +14 -0
  417. package/dist/types/markers/axis/box.js +1 -0
  418. package/dist/types/markers/axis/brush.d.ts +28 -0
  419. package/dist/types/markers/axis/brush.js +1 -0
  420. package/dist/types/markers/axis/cell.d.ts +9 -0
  421. package/dist/types/markers/axis/cell.js +1 -0
  422. package/dist/types/markers/axis/component.d.ts +9 -0
  423. package/dist/types/markers/axis/component.js +1 -0
  424. package/dist/types/markers/axis/curveName.d.ts +2 -0
  425. package/dist/types/markers/axis/curveName.js +1 -0
  426. package/dist/types/markers/axis/delaunayLink.d.ts +7 -0
  427. package/dist/types/markers/axis/delaunayLink.js +1 -0
  428. package/dist/types/markers/axis/delaunayMesh.d.ts +7 -0
  429. package/dist/types/markers/axis/delaunayMesh.js +1 -0
  430. package/dist/types/markers/axis/delta.d.ts +27 -0
  431. package/dist/types/markers/axis/delta.js +1 -0
  432. package/dist/types/markers/axis/density.d.ts +12 -0
  433. package/dist/types/markers/axis/density.js +1 -0
  434. package/dist/types/markers/axis/difference.d.ts +12 -0
  435. package/dist/types/markers/axis/difference.js +1 -0
  436. package/dist/types/markers/axis/hover.d.ts +21 -0
  437. package/dist/types/markers/axis/hover.js +1 -0
  438. package/dist/types/markers/axis/hull.d.ts +7 -0
  439. package/dist/types/markers/axis/hull.js +1 -0
  440. package/dist/types/markers/axis/image.d.ts +12 -0
  441. package/dist/types/markers/axis/image.js +1 -0
  442. package/dist/types/markers/axis/line.d.ts +7 -0
  443. package/dist/types/markers/axis/line.js +1 -0
  444. package/dist/types/markers/axis/raster.d.ts +18 -0
  445. package/dist/types/markers/axis/raster.js +1 -0
  446. package/dist/types/markers/axis/rect.d.ts +15 -0
  447. package/dist/types/markers/axis/rect.js +1 -0
  448. package/dist/types/markers/axis/regression.d.ts +6 -0
  449. package/dist/types/markers/axis/regression.js +1 -0
  450. package/dist/types/markers/axis/rule.d.ts +15 -0
  451. package/dist/types/markers/axis/rule.js +1 -0
  452. package/dist/types/markers/axis/tick.d.ts +8 -0
  453. package/dist/types/markers/axis/tick.js +1 -0
  454. package/dist/types/markers/axis/trail.d.ts +14 -0
  455. package/dist/types/markers/axis/trail.js +1 -0
  456. package/dist/types/markers/axis/voronoi.d.ts +7 -0
  457. package/dist/types/markers/axis/voronoi.js +1 -0
  458. package/dist/types/markers/axis/voronoiMesh.d.ts +7 -0
  459. package/dist/types/markers/axis/voronoiMesh.js +1 -0
  460. package/dist/types/markers/axis/waffle.d.ts +13 -0
  461. package/dist/types/markers/axis/waffle.js +1 -0
  462. package/dist/types/markers/basic/basicMarkersConfig.d.ts +4 -0
  463. package/dist/types/markers/basic/basicMarkersConfig.js +1 -0
  464. package/dist/types/markers/basic/dot.d.ts +9 -0
  465. package/dist/types/markers/basic/dot.js +1 -0
  466. package/dist/types/markers/basic/text.d.ts +60 -0
  467. package/dist/types/markers/basic/text.js +1 -0
  468. package/dist/types/markers/basic.d.ts +4 -0
  469. package/dist/types/markers/basic.js +1 -0
  470. package/dist/types/markers/channels/commonMarkerConfig.d.ts +26 -0
  471. package/dist/types/markers/channels/commonMarkerConfig.js +1 -0
  472. package/dist/types/markers/channels/commonMarkerConfigWithArea.d.ts +6 -0
  473. package/dist/types/markers/channels/commonMarkerConfigWithArea.js +1 -0
  474. package/dist/types/markers/channels/commonMarkerConfigWithColor.d.ts +5 -0
  475. package/dist/types/markers/channels/commonMarkerConfigWithColor.js +1 -0
  476. package/dist/types/markers/channels/commonMarkerConfigWithInterval.d.ts +9 -0
  477. package/dist/types/markers/channels/commonMarkerConfigWithInterval.js +1 -0
  478. package/dist/types/markers/channels/commonMarkerConfigWithRadius.d.ts +5 -0
  479. package/dist/types/markers/channels/commonMarkerConfigWithRadius.js +1 -0
  480. package/dist/types/markers/channels/commonMarkerConfigWithSymbol.d.ts +5 -0
  481. package/dist/types/markers/channels/commonMarkerConfigWithSymbol.js +1 -0
  482. package/dist/types/markers/channels/commonMarkerConfigWithWeight.d.ts +5 -0
  483. package/dist/types/markers/channels/commonMarkerConfigWithWeight.js +1 -0
  484. package/dist/types/markers/common.d.ts +30 -103
  485. package/dist/types/markers/common.js +29 -1
  486. package/dist/types/markers/geo/contour.d.ts +27 -0
  487. package/dist/types/markers/geo/contour.js +1 -0
  488. package/dist/types/markers/geo/features.d.ts +12 -0
  489. package/dist/types/markers/geo/features.js +1 -0
  490. package/dist/types/markers/geo/geoComponent.d.ts +7 -0
  491. package/dist/types/markers/geo/geoComponent.js +1 -0
  492. package/dist/types/markers/geo/geoHover.d.ts +6 -0
  493. package/dist/types/markers/geo/geoHover.js +1 -0
  494. package/dist/types/markers/geo/geoMarkersConfig.d.ts +11 -0
  495. package/dist/types/markers/geo/geoMarkersConfig.js +1 -0
  496. package/dist/types/markers/geo/graticule.d.ts +11 -0
  497. package/dist/types/markers/geo/graticule.js +1 -0
  498. package/dist/types/markers/geo/inset.d.ts +50 -0
  499. package/dist/types/markers/geo/inset.js +1 -0
  500. package/dist/types/markers/geo/link.d.ts +13 -0
  501. package/dist/types/markers/geo/link.js +1 -0
  502. package/dist/types/markers/geo/sphere.d.ts +11 -0
  503. package/dist/types/markers/geo/sphere.js +1 -0
  504. package/dist/types/markers/geo/vector.d.ts +17 -0
  505. package/dist/types/markers/geo/vector.js +1 -0
  506. package/dist/types/markers/geo.d.ts +10 -212
  507. package/dist/types/markers/geo.js +10 -1
  508. package/dist/types/markers/traits.d.ts +22 -0
  509. package/dist/types/markers/traits.js +1 -0
  510. package/dist/types/misc/easing.js +1 -0
  511. package/dist/types/misc/viewport.js +1 -0
  512. package/dist/types/phases/data/axes.d.ts +18 -0
  513. package/dist/types/phases/data/axes.js +1 -0
  514. package/dist/types/phases/data/phase.d.ts +26 -0
  515. package/dist/types/phases/data/phase.js +2 -0
  516. package/dist/types/phases/facet/phase.d.ts +18 -0
  517. package/dist/types/phases/facet/phase.js +1 -0
  518. package/dist/types/phases/hover/phase.d.ts +34 -0
  519. package/dist/types/phases/hover/phase.js +1 -0
  520. package/dist/types/phases/index.d.ts +14 -0
  521. package/dist/types/phases/index.js +1 -0
  522. package/dist/types/phases/kind.d.ts +59 -0
  523. package/dist/types/phases/kind.js +1 -0
  524. package/dist/types/phases/mapping/phase.d.ts +5 -0
  525. package/dist/types/phases/mapping/phase.js +1 -0
  526. package/dist/types/phases/markers/phase.d.ts +13 -0
  527. package/dist/types/phases/markers/phase.js +1 -0
  528. package/dist/types/phases/pipeline.d.ts +10 -0
  529. package/dist/types/phases/pipeline.js +1 -0
  530. package/dist/types/phases/scales/phase.d.ts +26 -0
  531. package/dist/types/phases/scales/phase.js +1 -0
  532. package/dist/types/phases/sharedScales/phase.d.ts +12 -0
  533. package/dist/types/phases/sharedScales/phase.js +1 -0
  534. package/dist/types/phases/stage.d.ts +12 -0
  535. package/dist/types/phases/stage.js +1 -0
  536. package/dist/types/phases/state.d.ts +73 -0
  537. package/dist/types/phases/state.js +1 -0
  538. package/dist/types/phases/statistics/phase.d.ts +41 -0
  539. package/dist/types/phases/statistics/phase.js +1 -0
  540. package/dist/types/phases/statistics/source.d.ts +20 -0
  541. package/dist/types/phases/statistics/source.js +7 -0
  542. package/dist/types/phases/styles/phase.d.ts +24 -0
  543. package/dist/types/phases/styles/phase.js +1 -0
  544. package/dist/types/phases/transforms/adapter.d.ts +27 -0
  545. package/dist/types/phases/transforms/adapter.js +1 -0
  546. package/dist/types/phases/transforms/phase.d.ts +40 -0
  547. package/dist/types/phases/transforms/phase.js +1 -0
  548. package/dist/types/plots/area/props.d.ts +10 -0
  549. package/dist/types/plots/area/props.js +1 -0
  550. package/dist/types/plots/area/state.d.ts +6 -0
  551. package/dist/types/plots/area/state.js +1 -0
  552. package/dist/types/plots/bar/props.d.ts +10 -0
  553. package/dist/types/plots/bar/props.js +1 -0
  554. package/dist/types/plots/bar/state.d.ts +6 -0
  555. package/dist/types/plots/bar/state.js +1 -0
  556. package/dist/types/plots/camera.d.ts +7 -17
  557. package/dist/types/plots/constants.d.ts +16 -8
  558. package/dist/types/plots/data/common.d.ts +25 -17
  559. package/dist/types/plots/data/geo.d.ts +26 -12
  560. package/dist/types/plots/gaps.d.ts +19 -38
  561. package/dist/types/plots/geo/props.d.ts +23 -0
  562. package/dist/types/plots/geo/props.js +1 -0
  563. package/dist/types/plots/geo/state.d.ts +82 -0
  564. package/dist/types/plots/geo/state.js +1 -0
  565. package/dist/types/plots/heatmap/props.d.ts +10 -0
  566. package/dist/types/plots/heatmap/props.js +1 -0
  567. package/dist/types/plots/heatmap/state.d.ts +28 -0
  568. package/dist/types/plots/heatmap/state.js +1 -0
  569. package/dist/types/plots/histogram/props.d.ts +18 -0
  570. package/dist/types/plots/histogram/props.js +1 -0
  571. package/dist/types/plots/histogram/state.d.ts +6 -0
  572. package/dist/types/plots/histogram/state.js +1 -0
  573. package/dist/types/plots/line/props.d.ts +10 -0
  574. package/dist/types/plots/line/props.js +1 -0
  575. package/dist/types/plots/line/state.d.ts +9 -0
  576. package/dist/types/plots/line/state.js +1 -0
  577. package/dist/types/plots/props.d.ts +143 -35
  578. package/dist/types/plots/pyramid/props.d.ts +10 -0
  579. package/dist/types/plots/pyramid/props.js +1 -0
  580. package/dist/types/plots/pyramid/state.d.ts +16 -0
  581. package/dist/types/plots/pyramid/state.js +1 -0
  582. package/dist/types/plots/scatter/props.d.ts +10 -0
  583. package/dist/types/plots/scatter/props.js +1 -0
  584. package/dist/types/plots/scatter/state.d.ts +6 -0
  585. package/dist/types/plots/scatter/state.js +1 -0
  586. package/dist/types/plots/segments/common.d.ts +1 -1
  587. package/dist/types/plots/segments/config.d.ts +12 -6
  588. package/dist/types/plots/styling.d.ts +5 -5
  589. package/dist/types/transforms/bin.d.ts +84 -0
  590. package/dist/types/transforms/bin.js +28 -0
  591. package/dist/types/transforms/bollinger.d.ts +21 -0
  592. package/dist/types/transforms/bollinger.js +1 -0
  593. package/dist/types/transforms/common.d.ts +29 -0
  594. package/dist/types/transforms/common.js +16 -0
  595. package/dist/types/transforms/density.d.ts +45 -0
  596. package/dist/types/transforms/density.js +10 -0
  597. package/dist/types/transforms/filter.d.ts +12 -0
  598. package/dist/types/transforms/filter.js +14 -0
  599. package/dist/types/transforms/group.d.ts +70 -0
  600. package/dist/types/transforms/group.js +8 -0
  601. package/dist/types/transforms/index.d.ts +36 -0
  602. package/dist/types/transforms/index.js +1 -0
  603. package/dist/types/transforms/interval.d.ts +21 -0
  604. package/dist/types/transforms/interval.js +14 -0
  605. package/dist/types/transforms/jitter.d.ts +34 -0
  606. package/dist/types/transforms/jitter.js +1 -0
  607. package/dist/types/transforms/map.d.ts +24 -0
  608. package/dist/types/transforms/map.js +1 -0
  609. package/dist/types/transforms/normalize.d.ts +36 -0
  610. package/dist/types/transforms/normalize.js +1 -0
  611. package/dist/types/transforms/select.d.ts +15 -0
  612. package/dist/types/transforms/select.js +1 -0
  613. package/dist/types/transforms/shift.d.ts +20 -0
  614. package/dist/types/transforms/shift.js +1 -0
  615. package/dist/types/transforms/sort.d.ts +31 -0
  616. package/dist/types/transforms/sort.js +14 -0
  617. package/dist/types/transforms/stack.d.ts +64 -0
  618. package/dist/types/transforms/stack.js +12 -0
  619. package/dist/types/transforms/window.d.ts +29 -0
  620. package/dist/types/transforms/window.js +1 -0
  621. package/dist/utils/ContinuousDomain.d.ts +12 -0
  622. package/dist/utils/ContinuousDomain.js +19 -0
  623. package/dist/utils/Interpolation.d.ts +26 -0
  624. package/dist/utils/Interpolation.js +65 -0
  625. package/dist/utils/{color.d.ts → color/contrast.d.ts} +0 -5
  626. package/dist/utils/color/contrast.js +40 -0
  627. package/dist/utils/color/cssColor.d.ts +4 -0
  628. package/dist/utils/color/cssColor.js +77 -0
  629. package/dist/utils/color/index.d.ts +3 -0
  630. package/dist/utils/color/index.js +3 -0
  631. package/dist/utils/color/ramp.d.ts +17 -0
  632. package/dist/utils/color/ramp.js +110 -0
  633. package/dist/utils/grouping.d.ts +9 -5
  634. package/dist/utils/grouping.js +19 -10
  635. package/dist/utils/merge.d.ts +7 -0
  636. package/dist/utils/merge.js +17 -0
  637. package/dist/utils/opacity.d.ts +9 -0
  638. package/dist/utils/opacity.js +38 -0
  639. package/dist/utils/symbol.d.ts +31 -0
  640. package/dist/utils/symbol.js +92 -0
  641. package/docs/architecture.md +137 -0
  642. package/docs/chrome.md +68 -0
  643. package/docs/composer.md +53 -0
  644. package/docs/concepts.md +99 -0
  645. package/docs/development.md +94 -0
  646. package/docs/facets.md +69 -0
  647. package/docs/geo.md +151 -0
  648. package/docs/getting-started.md +79 -0
  649. package/docs/legend.md +106 -0
  650. package/docs/markers.md +106 -0
  651. package/docs/plots.md +158 -0
  652. package/docs/scales.md +78 -0
  653. package/docs/state.md +71 -0
  654. package/docs/styles-and-segments.md +215 -0
  655. package/docs/theming.md +215 -0
  656. package/docs/timeline.md +94 -0
  657. package/docs/tooltip-and-hover.md +80 -0
  658. package/docs/transforms-and-statistics.md +88 -0
  659. package/examples/BarValues.svelte +14 -0
  660. package/examples/CustomTooltip.svelte +37 -0
  661. package/examples/Facets.svelte +15 -0
  662. package/examples/LegendReader.svelte +8 -0
  663. package/examples/LegendToggle.svelte +25 -0
  664. package/examples/ResponsiveLine.svelte +37 -0
  665. package/examples/Segments.svelte +17 -0
  666. package/examples/TimelinePlayer.svelte +20 -0
  667. package/examples/Tooltip.svelte +19 -0
  668. package/examples/TooltipCard.svelte +86 -0
  669. package/examples/data.ts +12 -0
  670. package/llms-full.txt +114 -0
  671. package/llms.txt +49 -0
  672. package/package.json +41 -5
  673. package/dist/charts/BaseChart.svelte +0 -149
  674. package/dist/charts/BaseChart.svelte.d.ts +0 -47
  675. package/dist/charts/bar/Chart.svelte +0 -110
  676. package/dist/charts/bar/Chart.svelte.d.ts +0 -26
  677. package/dist/charts/container/ChartContainer.svelte +0 -137
  678. package/dist/charts/container/ChartContainer.svelte.d.ts +0 -16
  679. package/dist/charts/heatmap/Chart.svelte +0 -114
  680. package/dist/charts/line/Chart.svelte +0 -112
  681. package/dist/charts/line/Chart.svelte.d.ts +0 -26
  682. package/dist/charts/pyramid/Chart.svelte +0 -134
  683. package/dist/charts/pyramid/Chart.svelte.d.ts +0 -30
  684. package/dist/charts/scatter/Chart.svelte +0 -95
  685. package/dist/charts/scatter/Chart.svelte.d.ts +0 -28
  686. package/dist/layout/coordinates/margins.d.ts +0 -16
  687. package/dist/layout/coordinates/margins.js +0 -11
  688. package/dist/layout/legend/interaction.svelte.d.ts +0 -15
  689. package/dist/layout/legend/interaction.svelte.js +0 -32
  690. package/dist/layout/plot/BasePlotLayout.svelte +0 -332
  691. package/dist/layout/plot/BasePlotLayout.svelte.d.ts +0 -122
  692. package/dist/layout/plot/margins.d.ts +0 -18
  693. package/dist/layout/plot/margins.js +0 -15
  694. package/dist/layout/plot/measureText.d.ts +0 -4
  695. package/dist/layout/plot/measureText.js +0 -19
  696. package/dist/layout/tooltip/TooltipLayout.svelte +0 -51
  697. package/dist/layout/tooltip/TooltipLayout.svelte.d.ts +0 -45
  698. package/dist/layout/tooltip/controller.svelte.d.ts +0 -61
  699. package/dist/layout/tooltip/controller.svelte.js +0 -173
  700. package/dist/layout/tooltip/hover.svelte.d.ts +0 -7
  701. package/dist/layout/tooltip/hover.svelte.js +0 -28
  702. package/dist/layout/tooltip/resolveTooltipPlacement.d.ts +0 -24
  703. package/dist/layout/tooltip/resolveTooltipPlacement.js +0 -49
  704. package/dist/layout/tooltip/utils.d.ts +0 -49
  705. package/dist/layout/tooltip/utils.js +0 -82
  706. package/dist/markers/CellMarker.svelte +0 -21
  707. package/dist/markers/ContourClipMarker.svelte +0 -77
  708. package/dist/markers/ContourMarker.svelte +0 -28
  709. package/dist/markers/DeltaMarker.svelte +0 -109
  710. package/dist/markers/DotMarker.svelte +0 -70
  711. package/dist/markers/GeoFeaturesMarker.svelte +0 -19
  712. package/dist/markers/GeoHoverMarker.svelte +0 -25
  713. package/dist/markers/GraticuleMarker.svelte +0 -18
  714. package/dist/markers/HoverMarker.svelte +0 -212
  715. package/dist/markers/LineMarker.svelte +0 -19
  716. package/dist/markers/LinkMarker.svelte +0 -42
  717. package/dist/markers/PeakMarker.svelte +0 -80
  718. package/dist/markers/PeakMarker.svelte.d.ts +0 -13
  719. package/dist/markers/RuleMarker.svelte +0 -24
  720. package/dist/markers/SphereMarker.svelte +0 -15
  721. package/dist/markers/TextMarker.svelte +0 -62
  722. package/dist/markers/VectorMarker.svelte +0 -20
  723. package/dist/plots/bar/ValueLabels.svelte +0 -149
  724. package/dist/plots/bar/ValueLabels.svelte.d.ts +0 -58
  725. package/dist/plots/bar/buildBarMarkers.d.ts +0 -27
  726. package/dist/plots/bar/buildBarMarkers.js +0 -151
  727. package/dist/plots/bar/hoverPoints.d.ts +0 -15
  728. package/dist/plots/bar/hoverPoints.js +0 -37
  729. package/dist/plots/bar/layout.svelte.d.ts +0 -42
  730. package/dist/plots/bar/layout.svelte.js +0 -182
  731. package/dist/plots/geo/buildGeoMarkers.d.ts +0 -33
  732. package/dist/plots/geo/buildGeoMarkers.js +0 -47
  733. package/dist/plots/heatmap/ValueLabels.svelte +0 -56
  734. package/dist/plots/heatmap/buildCellMarkers.d.ts +0 -21
  735. package/dist/plots/heatmap/buildCellMarkers.js +0 -25
  736. package/dist/plots/line/ValueLabels.svelte +0 -269
  737. package/dist/plots/line/ValueLabels.svelte.d.ts +0 -52
  738. package/dist/plots/line/buildGapMarkers.d.ts +0 -28
  739. package/dist/plots/line/buildGapMarkers.js +0 -74
  740. package/dist/plots/line/buildLineMarkers.d.ts +0 -16
  741. package/dist/plots/line/buildLineMarkers.js +0 -56
  742. package/dist/plots/line/valueLabelMargin.d.ts +0 -19
  743. package/dist/plots/line/valueLabelMargin.js +0 -65
  744. package/dist/plots/pyramid/ValueLabels.svelte +0 -139
  745. package/dist/plots/pyramid/ValueLabels.svelte.d.ts +0 -56
  746. package/dist/plots/pyramid/buildPyramidBarMarkers.d.ts +0 -26
  747. package/dist/plots/pyramid/buildPyramidBarMarkers.js +0 -72
  748. package/dist/plots/scatter/ValueLabels.svelte +0 -163
  749. package/dist/plots/scatter/ValueLabels.svelte.d.ts +0 -52
  750. package/dist/plots/scatter/buildScatterMarkers.d.ts +0 -12
  751. package/dist/plots/scatter/buildScatterMarkers.js +0 -36
  752. package/dist/plots/scatter/resolveRadiusPaddedDomain.d.ts +0 -10
  753. package/dist/plots/scatter/resolveRadiusPaddedDomain.js +0 -23
  754. package/dist/plots/utils/categoricalAxisMargin.d.ts +0 -14
  755. package/dist/plots/utils/categoricalAxisMargin.js +0 -20
  756. package/dist/plots/utils/declutter.d.ts +0 -120
  757. package/dist/plots/utils/declutter.js +0 -240
  758. package/dist/plots/utils/labelOverflow.svelte.d.ts +0 -107
  759. package/dist/plots/utils/labelOverflow.svelte.js +0 -257
  760. package/dist/plots/utils/legendDisabled.d.ts +0 -27
  761. package/dist/plots/utils/legendDisabled.js +0 -68
  762. package/dist/plots/utils/valueLabelMargin.d.ts +0 -67
  763. package/dist/plots/utils/valueLabelMargin.js +0 -60
  764. package/dist/types/charts/common.d.ts +0 -22
  765. package/dist/types/charts/props.d.ts +0 -50
  766. package/dist/types/markers/base.d.ts +0 -45
  767. package/dist/types/markers/line.d.ts +0 -34
  768. package/dist/types/markers/props.d.ts +0 -11
  769. package/dist/types/plots/data/scatter.d.ts +0 -13
  770. package/dist/utils/color.js +0 -141
  771. package/dist/utils/delta.d.ts +0 -12
  772. package/dist/utils/delta.js +0 -69
  773. package/dist/utils/edgeAwareAnchor.d.ts +0 -34
  774. package/dist/utils/edgeAwareAnchor.js +0 -60
  775. package/dist/utils/interpolate.d.ts +0 -31
  776. package/dist/utils/interpolate.js +0 -71
  777. /package/dist/types/{charts/common.js → layout/box.js} +0 -0
  778. /package/dist/types/{charts/interpolate.js → layout/composer.js} +0 -0
  779. /package/dist/types/{charts/props.js → layout/figure.js} +0 -0
  780. /package/dist/types/{markers/base.js → layout/grid.js} +0 -0
  781. /package/dist/types/{markers/line.js → layout/hover.js} +0 -0
  782. /package/dist/types/{markers/props.js → layout/mapping.js} +0 -0
  783. /package/dist/types/{plots/data/scatter.js → layout/plot.js} +0 -0
  784. /package/dist/types/{viewport.js → layout/statistics/bollinger.js} +0 -0
  785. /package/dist/types/{charts/interpolate.d.ts → misc/easing.d.ts} +0 -0
  786. /package/dist/types/{viewport.d.ts → misc/viewport.d.ts} +0 -0
@@ -0,0 +1,130 @@
1
+ import { StackTransform } from './methods/StackTransform';
2
+ import { BinTransform } from './methods/BinTransform';
3
+ import { DensityTransform } from './methods/DensityTransform';
4
+ import { WindowTransform } from './methods/WindowTransform';
5
+ import { NormalizeTransform } from './methods/NormalizeTransform';
6
+ import { PositionTransform } from './methods/PositionTransform';
7
+ import { OrderTransform } from './methods/OrderTransform';
8
+ import { GroupTransform } from './methods/GroupTransform';
9
+ /** Each transform type's adapter: its channels, how it runs, and its own fixes. */
10
+ const ADAPTERS = {
11
+ stackX: StackTransform.x,
12
+ stackY: StackTransform.y,
13
+ stackMosaicX: StackTransform.mosaicX,
14
+ stackMosaicY: StackTransform.mosaicY,
15
+ binX: BinTransform.x,
16
+ binY: BinTransform.y,
17
+ bin: BinTransform.grid,
18
+ densityX: DensityTransform.x,
19
+ densityY: DensityTransform.y,
20
+ windowX: WindowTransform.windowX,
21
+ windowY: WindowTransform.windowY,
22
+ bollingerX: WindowTransform.bollingerX,
23
+ bollingerY: WindowTransform.bollingerY,
24
+ normalizeX: NormalizeTransform.x,
25
+ normalizeY: NormalizeTransform.y,
26
+ normalizeParallelX: NormalizeTransform.parallelX,
27
+ normalizeParallelY: NormalizeTransform.parallelY,
28
+ mapX: NormalizeTransform.mapX,
29
+ mapY: NormalizeTransform.mapY,
30
+ intervalX: PositionTransform.intervalX,
31
+ intervalY: PositionTransform.intervalY,
32
+ jitterX: PositionTransform.jitterX,
33
+ jitterY: PositionTransform.jitterY,
34
+ shiftX: PositionTransform.shiftX,
35
+ shiftY: PositionTransform.shiftY,
36
+ sort: OrderTransform.sort,
37
+ shuffle: OrderTransform.shuffle,
38
+ reverse: OrderTransform.reverse,
39
+ filter: OrderTransform.filter,
40
+ select: OrderTransform.select,
41
+ selectFirst: OrderTransform.first,
42
+ selectLast: OrderTransform.last,
43
+ selectMinX: OrderTransform.minX,
44
+ selectMaxX: OrderTransform.maxX,
45
+ selectMinY: OrderTransform.minY,
46
+ selectMaxY: OrderTransform.maxY,
47
+ groupX: GroupTransform.x,
48
+ groupY: GroupTransform.y,
49
+ groupZ: GroupTransform.z,
50
+ group: GroupTransform.grid
51
+ };
52
+ /** Runs a marker's or a plot's transforms through svelteplot, one type's adapter at a time. */
53
+ export class Transforms {
54
+ /** The channels a marker hands down to its transforms, when it has them. */
55
+ static INHERITED_CHANNELS = ['x', 'y', 'x1', 'x2', 'y1', 'y2'];
56
+ /**
57
+ * Runs one transform through svelteplot and returns what it produces - the
58
+ * transform's own output, ready to spread into the marker's props. A marker
59
+ * transform is one flat object, so its props are split once: the ones the
60
+ * transform reads as channels go first, and the rest (a stack's `offset`, a
61
+ * bin's `thresholds` and reducers) go second, as svelteplot's own signature
62
+ * takes them. An unset prop is left out, so svelteplot's own default applies.
63
+ *
64
+ * `inherited` holds the channels the marker hands down (its rows, `x`/`y`,
65
+ * grouping as `z`). Only the ones the transform reads are used, and the
66
+ * transform's own channels win over them.
67
+ */
68
+ static run(transform, inherited = {}) {
69
+ const adapter = ADAPTERS[transform.type];
70
+ const { channelKeys, outputKeys } = adapter;
71
+ const isOption = (key) => outputKeys?.[key] === true || channelKeys[key] !== true;
72
+ const props = Object.entries(transform).filter(([k, v]) => k !== 'type' && v !== undefined);
73
+ const readable = Object.entries(inherited).filter(([k, v]) => channelKeys[k] === true && v !== undefined);
74
+ const split = {
75
+ channels: Object.fromEntries([...readable, ...props.filter(([k]) => !isOption(k))]),
76
+ options: Object.fromEntries(props.filter(([k]) => isOption(k)))
77
+ };
78
+ const { channels, options } = adapter.prepare ? adapter.prepare(split) : split;
79
+ return adapter.run(channels, options);
80
+ }
81
+ /**
82
+ * Applies a marker's `transforms` in order, each one's output feeding the next.
83
+ * A transform reads the marker's own rows, position channels and `grouping`
84
+ * (its `z`) by default, falling back to the plot's rows when the marker has
85
+ * none. Any of those the transform sets itself wins. The output is merged onto
86
+ * the marker.
87
+ *
88
+ * A transform only inherits the channels it reads (its adapter's `channelKeys`),
89
+ * so a bin's reducer slot is never filled from the marker: a marker's `y` is not
90
+ * read as `binX`'s `'count'` reducer. A `z` the transform hands back becomes
91
+ * the marker's `grouping`, and a `fill`/`stroke` it reduces to becomes the
92
+ * marker's `color`, so the marker keeps drawing its groups and colors from the
93
+ * new rows. Once every transform has run, {@link Transforms.finish} applies each
94
+ * type's fix to the marker.
95
+ */
96
+ static resolve(marker, fallbackData) {
97
+ const own = marker;
98
+ if (!own.transforms?.length)
99
+ return marker;
100
+ let resolved = { ...own };
101
+ for (const transform of own.transforms) {
102
+ const inherited = {
103
+ data: resolved.data ?? fallbackData,
104
+ z: resolved.grouping,
105
+ ...Object.fromEntries(Transforms.INHERITED_CHANNELS.map((k) => [k, resolved[k]]))
106
+ };
107
+ const { z, fill, stroke, ...out } = Transforms.run(transform, inherited);
108
+ resolved = { ...resolved, ...out };
109
+ if (z !== undefined)
110
+ resolved.grouping = z;
111
+ const color = fill ?? stroke;
112
+ if (color != null && resolved.color === undefined)
113
+ resolved.color = color;
114
+ }
115
+ return Transforms.finish(resolved, own.transforms);
116
+ }
117
+ /**
118
+ * Applies each transform type's `finish` fix to a marker drawing rows those
119
+ * transforms produced, once per type used - for a marker built from rows that
120
+ * were transformed before it existed (a plot's own processed data).
121
+ */
122
+ static finish(marker, transforms) {
123
+ let finished = marker;
124
+ for (const adapter of new Set(transforms.map((t) => ADAPTERS[t.type]))) {
125
+ if (adapter.finish)
126
+ finished = adapter.finish(finished);
127
+ }
128
+ return finished;
129
+ }
130
+ }
@@ -0,0 +1,64 @@
1
+ import type { Series } from '../../types/plots/data/common';
2
+ import type { SegmentsConfig } from '../../types/plots/props';
3
+ import type { VisualGroup } from '../../types/plots/segments/config';
4
+ import type { PhaseStage, ProcessedData, ProcessedRow, TransformsStageOptions, TransformsStageState } from '../../types/phases';
5
+ /** The field each processed row carries its series name under, for its color, legend and labels. */
6
+ export declare const SERIES_KEY = "__series";
7
+ /** The field each processed row carries its series id under - the transforms' `z`, so a stack or bin keeps series apart. */
8
+ export declare const SERIES_ID_KEY = "__seriesId";
9
+ /** The field a gap-filled row carries its interpolated value under, for the transforms to read. */
10
+ export declare const GAP_VALUE = "__gapValue";
11
+ /** The field a gap-filled row carries its gap kind under, so a processed copy of it keeps its fill style. */
12
+ export declare const GAP_KIND = "__gapKind";
13
+ /**
14
+ * The "transforms" phase every axis-based plot shares: runs the plot-level
15
+ * transforms once over every visible series' rows together, so a stack sees
16
+ * every series and a bin keeps each series apart (both group by series), and
17
+ * leaves the result in `state.processedData` for the plot's own marks. With
18
+ * facet panels, the transforms run once per panel's rows, so a stack never
19
+ * combines two panels, and every row they return keeps its panel. A gap that
20
+ * `styles.gaps` fills is read at its interpolated value, so it takes its place
21
+ * in a stack the way a real value would, and keeps its gap kind.
22
+ */
23
+ export declare class TransformsPhase<TState extends TransformsStageState, TCtx = unknown> implements PhaseStage<TState, TCtx> {
24
+ #private;
25
+ readonly phase: "transforms";
26
+ constructor(options?: TransformsStageOptions<TState, TCtx>);
27
+ run: (state: TState, ctx: TCtx) => TState;
28
+ /**
29
+ * The processed rows split back into one group per visible series, each cut
30
+ * into its styled visual segments by `segments`, matched on the processed `x`.
31
+ * Each series reads its rows through its value axis: a stack's top, a bin's start.
32
+ */
33
+ static buildProcessedGroups<TStyle>(state: TransformsStageState & {
34
+ segments?: SegmentsConfig<TStyle>;
35
+ }, connect?: boolean): VisualGroup<Series<ProcessedRow>, TStyle>[];
36
+ /**
37
+ * The processed rows in their own order, split into runs of consecutive rows
38
+ * from the same visible series, each cut into its styled visual segments like
39
+ * {@link TransformsPhase.buildProcessedGroups}. Drawn in turn, the runs keep the rows' order
40
+ * across series, so a transform that reorders rows (`sort`, `reverse`,
41
+ * `shuffle`) decides which rows paint on top. Unreordered, each series is one run.
42
+ */
43
+ static buildProcessedRuns<TStyle>(state: TransformsStageState & {
44
+ segments?: SegmentsConfig<TStyle>;
45
+ }): VisualGroup<Series<ProcessedRow>, TStyle>[];
46
+ /**
47
+ * Where a processed row sits: the top of its value (`y2`, or `y` - `x2`/`x`
48
+ * when `valueAxis` is `x`) and, on the other axis, its own position (or the
49
+ * middle of its `1`-`2` span, a bin's centre).
50
+ */
51
+ static processedPosition(processed: ProcessedData, valueAxis?: 'x' | 'y'): {
52
+ x: (row: ProcessedRow) => unknown;
53
+ y: (row: ProcessedRow) => unknown;
54
+ };
55
+ /**
56
+ * A processed row's span along `valueAxis`: from its `1` channel (a stack's
57
+ * bottom) or, with none, from `baseline`, to its top. `undefined` when the
58
+ * row has no value there. `stacked` tells a stack from plain values.
59
+ */
60
+ static processedSpan(processed: ProcessedData, valueAxis: 'x' | 'y', baseline?: number): {
61
+ stacked: boolean;
62
+ of: (row: ProcessedRow) => [number, number] | undefined;
63
+ };
64
+ }
@@ -0,0 +1,242 @@
1
+ import { Transforms } from './Transforms';
2
+ import { seriesIdOf } from '../../utils/grouping';
3
+ import { PANEL_KEY } from '../facet/FacetPhase';
4
+ import { resolveAccessor } from '../../plots/utils/accessors';
5
+ import { isGapValue } from '../../plots/utils/gaps';
6
+ import { buildGroupedSeries } from '../../plots/utils/segments';
7
+ import { PlotAxes } from '../data/PlotAxes';
8
+ /** The field each processed row carries its series name under, for its color, legend and labels. */
9
+ export const SERIES_KEY = '__series';
10
+ /** The field each processed row carries its series id under - the transforms' `z`, so a stack or bin keeps series apart. */
11
+ export const SERIES_ID_KEY = '__seriesId';
12
+ /** The field a gap-filled row carries its interpolated value under, for the transforms to read. */
13
+ export const GAP_VALUE = '__gapValue';
14
+ /** The field a gap-filled row carries its gap kind under, so a processed copy of it keeps its fill style. */
15
+ export const GAP_KIND = '__gapKind';
16
+ const CHANNEL_NAMES = ['x', 'y', 'x1', 'x2', 'y1', 'y2'];
17
+ /** Props of a transform's output that are neither a channel nor an option for the mark. */
18
+ const NOT_OPTIONS = new Set(['data', 'z', 'grouping', 'transforms', 'sort', 'filter']);
19
+ /**
20
+ * The "transforms" phase every axis-based plot shares: runs the plot-level
21
+ * transforms once over every visible series' rows together, so a stack sees
22
+ * every series and a bin keeps each series apart (both group by series), and
23
+ * leaves the result in `state.processedData` for the plot's own marks. With
24
+ * facet panels, the transforms run once per panel's rows, so a stack never
25
+ * combines two panels, and every row they return keeps its panel. A gap that
26
+ * `styles.gaps` fills is read at its interpolated value, so it takes its place
27
+ * in a stack the way a real value would, and keeps its gap kind.
28
+ */
29
+ export class TransformsPhase {
30
+ phase = 'transforms';
31
+ #options;
32
+ constructor(options = {}) {
33
+ this.#options = options;
34
+ }
35
+ run = (state, ctx) => {
36
+ const options = this.#options;
37
+ const series = (state.resolvedSeries ?? []);
38
+ // A gap `styles.gaps` fills carries its filled value and kind, and reads at that value.
39
+ const fillsOf = (s) => state.gapFillMaps?.get(seriesIdOf(s));
40
+ const data = series.flatMap((s) => s.data.map((row) => ({
41
+ ...row,
42
+ ...TransformsPhase.#fillTags(fillsOf(s)?.get(row)),
43
+ [SERIES_KEY]: s.name,
44
+ [SERIES_ID_KEY]: seriesIdOf(s),
45
+ ...(s.panel !== undefined ? { [PANEL_KEY]: s.panel } : {})
46
+ })));
47
+ const valueAxis = PlotAxes.valueOf(state);
48
+ const shared = {
49
+ x: TransformsPhase.#sharedChannel(series, 'x'),
50
+ y: TransformsPhase.#sharedChannel(series, 'y')
51
+ };
52
+ const own = shared[valueAxis];
53
+ const filled = [...(state.gapFillMaps?.values() ?? [])].some((fills) => fills.size > 0);
54
+ if (filled && own !== undefined) {
55
+ const read = resolveAccessor(own);
56
+ shared[valueAxis] = (row) => row[GAP_VALUE] ?? read(row);
57
+ }
58
+ const { x, y } = shared;
59
+ const transforms = options.transforms
60
+ ? options.transforms(state, ctx)
61
+ : (state.transforms ?? []);
62
+ if (!transforms.length) {
63
+ const channels = Object.fromEntries(Object.entries({ x, y }).filter(([, channel]) => channel !== undefined));
64
+ const processedData = { data, channels, options: {}, transforms };
65
+ return { ...state, processedData };
66
+ }
67
+ const out = TransformsPhase.#runByPanel(data, (rows) => Transforms.resolve({ data: rows, x, y, grouping: SERIES_ID_KEY, transforms }, rows));
68
+ const channels = {};
69
+ const markOptions = {};
70
+ for (const [key, value] of Object.entries(out)) {
71
+ if (CHANNEL_NAMES.includes(key)) {
72
+ channels[key] = value;
73
+ }
74
+ else if (!NOT_OPTIONS.has(key)) {
75
+ markOptions[key] = value;
76
+ }
77
+ }
78
+ // An aggregating transform (bin, group) keeps only its `z`, the series id: put the name back.
79
+ const nameById = new Map(series.map((s) => [seriesIdOf(s), s.name]));
80
+ const rows = out.data;
81
+ for (const row of rows) {
82
+ if (row[SERIES_KEY] === undefined && row[SERIES_ID_KEY] !== undefined) {
83
+ row[SERIES_KEY] = nameById.get(row[SERIES_ID_KEY]);
84
+ }
85
+ }
86
+ const processedData = {
87
+ data: rows,
88
+ channels,
89
+ options: markOptions,
90
+ transforms
91
+ };
92
+ return { ...state, processedData };
93
+ };
94
+ /** What a gap-filled row carries: its interpolated value and the kind of zone that filled it. */
95
+ static #fillTags(fill) {
96
+ return fill ? { [GAP_VALUE]: fill.value, [GAP_KIND]: fill.kind } : {};
97
+ }
98
+ /**
99
+ * The processed rows split back into one group per visible series, each cut
100
+ * into its styled visual segments by `segments`, matched on the processed `x`.
101
+ * Each series reads its rows through its value axis: a stack's top, a bin's start.
102
+ */
103
+ static buildProcessedGroups(state, connect = true) {
104
+ const { data } = state.processedData;
105
+ const series = (state.resolvedSeries ?? []).map((s) => TransformsPhase.#processedSeries(state, s, data.filter((row) => row[SERIES_ID_KEY] === seriesIdOf(s))));
106
+ return buildGroupedSeries(series, state.segments, connect);
107
+ }
108
+ /**
109
+ * The processed rows in their own order, split into runs of consecutive rows
110
+ * from the same visible series, each cut into its styled visual segments like
111
+ * {@link TransformsPhase.buildProcessedGroups}. Drawn in turn, the runs keep the rows' order
112
+ * across series, so a transform that reorders rows (`sort`, `reverse`,
113
+ * `shuffle`) decides which rows paint on top. Unreordered, each series is one run.
114
+ */
115
+ static buildProcessedRuns(state) {
116
+ const byId = new Map((state.resolvedSeries ?? []).map((s) => [seriesIdOf(s), s]));
117
+ const runs = [];
118
+ for (const row of state.processedData.data) {
119
+ const source = byId.get(row[SERIES_ID_KEY]);
120
+ if (!source)
121
+ continue;
122
+ const last = runs.at(-1);
123
+ if (last && seriesIdOf(last) === seriesIdOf(source))
124
+ last.data.push(row);
125
+ else
126
+ runs.push(TransformsPhase.#processedSeries(state, source, [row]));
127
+ }
128
+ return buildGroupedSeries(runs, state.segments, false);
129
+ }
130
+ /**
131
+ * Where a processed row sits: the top of its value (`y2`, or `y` - `x2`/`x`
132
+ * when `valueAxis` is `x`) and, on the other axis, its own position (or the
133
+ * middle of its `1`-`2` span, a bin's centre).
134
+ */
135
+ static processedPosition(processed, valueAxis = 'y') {
136
+ const { channels } = processed;
137
+ const read = (channel) => resolveAccessor(channel);
138
+ const along = (axis) => {
139
+ const own = channels[axis];
140
+ const from = channels[`${axis}1`];
141
+ const to = channels[`${axis}2`];
142
+ if (axis === valueAxis) {
143
+ const top = to ?? own;
144
+ return top !== undefined ? read(top) : () => undefined;
145
+ }
146
+ if (own !== undefined)
147
+ return read(own);
148
+ if (from === undefined || to === undefined)
149
+ return () => undefined;
150
+ return (row) => (Number(read(from)(row)) + Number(read(to)(row))) / 2;
151
+ };
152
+ return { x: along('x'), y: along('y') };
153
+ }
154
+ /**
155
+ * A processed row's span along `valueAxis`: from its `1` channel (a stack's
156
+ * bottom) or, with none, from `baseline`, to its top. `undefined` when the
157
+ * row has no value there. `stacked` tells a stack from plain values.
158
+ */
159
+ static processedSpan(processed, valueAxis, baseline = 0) {
160
+ const from = processed.channels[`${valueAxis}1`];
161
+ const stacked = from !== undefined && processed.channels[`${valueAxis}2`] !== undefined;
162
+ const top = TransformsPhase.processedPosition(processed, valueAxis)[valueAxis];
163
+ const bottom = stacked
164
+ ? resolveAccessor(from)
165
+ : () => baseline;
166
+ return {
167
+ stacked,
168
+ of: (row) => {
169
+ const end = top(row);
170
+ const start = bottom(row);
171
+ if (isGapValue(end) || isGapValue(start))
172
+ return undefined;
173
+ const span = [Number(start), Number(end)];
174
+ return Number.isFinite(span[0]) && Number.isFinite(span[1]) ? span : undefined;
175
+ }
176
+ };
177
+ }
178
+ /**
179
+ * One series accessor shared by every series as-is, so a field key keeps
180
+ * feeding svelteplot's axis-title inference; a per-series function otherwise.
181
+ * `undefined` when no series sets the channel.
182
+ */
183
+ static #sharedChannel(series, key) {
184
+ const first = series[0]?.[key];
185
+ if (series.every((s) => s[key] === first))
186
+ return first;
187
+ const byId = new Map(series.map((s) => [seriesIdOf(s), s[key] === undefined ? undefined : resolveAccessor(s[key])]));
188
+ return (row) => byId.get(row[SERIES_ID_KEY])?.(row);
189
+ }
190
+ /**
191
+ * Runs `run` over each facet panel's rows (or over every row, without
192
+ * panels) and joins the results: the rows in panel order, each tagged with its
193
+ * panel, and the channels and options of the first run - the transforms set
194
+ * the same ones for every panel.
195
+ */
196
+ static #runByPanel(data, run) {
197
+ const panels = new Map();
198
+ for (const row of data) {
199
+ const bucket = panels.get(row[PANEL_KEY]);
200
+ if (bucket)
201
+ bucket.push(row);
202
+ else
203
+ panels.set(row[PANEL_KEY], [row]);
204
+ }
205
+ if (panels.size === 0 || (panels.size === 1 && panels.has(undefined))) {
206
+ return run(data);
207
+ }
208
+ let first;
209
+ const rows = [];
210
+ for (const [panel, panelRows] of panels) {
211
+ const out = run(panelRows);
212
+ first ??= out;
213
+ for (const row of out.data) {
214
+ if (panel !== undefined && row[PANEL_KEY] === undefined)
215
+ row[PANEL_KEY] = panel;
216
+ rows.push(row);
217
+ }
218
+ }
219
+ return { ...first, data: rows };
220
+ }
221
+ /**
222
+ * One series over some of its processed rows. With no transforms it keeps its
223
+ * own `x`/`y`; otherwise it reads the transforms' channels - on the value axis
224
+ * a stack's top (`y2` as its `y`, or `x2` as its `x` on a horizontal plot), on
225
+ * the other a bin's start.
226
+ */
227
+ static #processedSeries(state, source, data) {
228
+ const { channels, transforms } = state.processedData;
229
+ const valueAxis = PlotAxes.valueOf(state);
230
+ const read = (axis) => (transforms.length
231
+ ? (channels[axis] ??
232
+ channels[`${axis}${axis === valueAxis ? 2 : 1}`])
233
+ : source[axis]);
234
+ return {
235
+ name: source.name,
236
+ ...(source.id !== undefined ? { id: source.id } : {}),
237
+ x: read('x'),
238
+ y: read('y'),
239
+ data
240
+ };
241
+ }
242
+ }
@@ -0,0 +1,13 @@
1
+ import type { Row } from '../../../types/phases/transforms/adapter';
2
+ /** The fix transforms that give a `rect` a value on one axis share. */
3
+ export declare class AnchorBar {
4
+ /**
5
+ * A `rect` a transform gave a value on one axis, with no far edge on that axis,
6
+ * draws a bar from zero up to that value, the way svelteplot's `RectY`/`RectX`
7
+ * do. A bin's or a group's value arrives as `y` (for `binX`/`groupX`) or `x`
8
+ * (for `binY`/`groupY`), so the bar's far end on that axis is set here, once the
9
+ * transforms have run. A value with an edge already is left alone, as is a
10
+ * `rect` with an `interval`, which svelteplot draws itself.
11
+ */
12
+ static toZero(axis: 'x' | 'y'): (marker: Row) => Row;
13
+ }
@@ -0,0 +1,21 @@
1
+ /** The fix transforms that give a `rect` a value on one axis share. */
2
+ export class AnchorBar {
3
+ /**
4
+ * A `rect` a transform gave a value on one axis, with no far edge on that axis,
5
+ * draws a bar from zero up to that value, the way svelteplot's `RectY`/`RectX`
6
+ * do. A bin's or a group's value arrives as `y` (for `binX`/`groupX`) or `x`
7
+ * (for `binY`/`groupY`), so the bar's far end on that axis is set here, once the
8
+ * transforms have run. A value with an edge already is left alone, as is a
9
+ * `rect` with an `interval`, which svelteplot draws itself.
10
+ */
11
+ static toZero(axis) {
12
+ const [near, far] = axis === 'y' ? ['y1', 'y2'] : ['x1', 'x2'];
13
+ return (marker) => {
14
+ if (marker.type !== 'rect' || marker.interval !== undefined)
15
+ return marker;
16
+ if (marker[axis] === undefined || marker[far] !== undefined)
17
+ return marker;
18
+ return { ...marker, [near]: marker[near] ?? 0, [far]: marker[axis] };
19
+ };
20
+ }
21
+ }
@@ -0,0 +1,7 @@
1
+ import type { TransformAdapter } from '../../../types/phases/transforms/adapter';
2
+ /** svelteplot's bin transforms: along `x`, along `y`, or both. */
3
+ export declare class BinTransform {
4
+ static readonly x: TransformAdapter;
5
+ static readonly y: TransformAdapter;
6
+ static readonly grid: TransformAdapter;
7
+ }
@@ -0,0 +1,48 @@
1
+ import { bin, binX, binY } from 'svelteplot';
2
+ import { BIN_X_CHANNEL_KEYS, BIN_Y_CHANNEL_KEYS, BIN_2D_CHANNEL_KEYS } from '../../../types/transforms/bin';
3
+ import { AnchorBar } from './AnchorBar';
4
+ /**
5
+ * A numeric `interval` makes svelteplot start and stop its bins at the data's own
6
+ * extremes, so the first and last bins come out cut short. Without an explicit
7
+ * `domain`, this snaps the domain out to the interval's grid, so every bin is the
8
+ * same width. Date intervals, and a `domain` the transform sets itself, are left alone.
9
+ */
10
+ function alignBinToInterval(dim) {
11
+ return ({ channels, options }) => {
12
+ const { interval, domain } = options;
13
+ const data = channels.data;
14
+ if (typeof interval !== 'number' || domain !== undefined || !data) {
15
+ return { channels, options };
16
+ }
17
+ const binned = channels[dim];
18
+ const read = typeof binned === 'function'
19
+ ? binned
20
+ : (d) => (binned ? d[binned] : undefined);
21
+ const values = data.map((d) => Number(read(d))).filter(Number.isFinite);
22
+ if (!values.length)
23
+ return { channels, options };
24
+ const lo = Math.floor(Math.min(...values) / interval) * interval;
25
+ const hi = Math.ceil(Math.max(...values) / interval) * interval;
26
+ return { channels, options: { ...options, domain: [lo, hi] } };
27
+ };
28
+ }
29
+ /** svelteplot's bin transforms: along `x`, along `y`, or both. */
30
+ export class BinTransform {
31
+ static x = {
32
+ channelKeys: BIN_X_CHANNEL_KEYS,
33
+ run: binX,
34
+ prepare: alignBinToInterval('x'),
35
+ finish: AnchorBar.toZero('y')
36
+ };
37
+ static y = {
38
+ channelKeys: BIN_Y_CHANNEL_KEYS,
39
+ run: binY,
40
+ prepare: alignBinToInterval('y'),
41
+ finish: AnchorBar.toZero('x')
42
+ };
43
+ // Bins on both axes: every cell already has both edges, so no bar to anchor.
44
+ static grid = {
45
+ channelKeys: BIN_2D_CHANNEL_KEYS,
46
+ run: bin
47
+ };
48
+ }
@@ -0,0 +1,6 @@
1
+ import type { TransformAdapter } from '../../../types/phases/transforms/adapter';
2
+ /** svelteplot's density transforms, by axis. */
3
+ export declare class DensityTransform {
4
+ static readonly x: TransformAdapter;
5
+ static readonly y: TransformAdapter;
6
+ }
@@ -0,0 +1,13 @@
1
+ import { densityX, densityY } from 'svelteplot';
2
+ import { DENSITY_CHANNEL_KEYS } from '../../../types/transforms/density';
3
+ /** svelteplot's density transforms, by axis. */
4
+ export class DensityTransform {
5
+ static x = {
6
+ channelKeys: DENSITY_CHANNEL_KEYS,
7
+ run: densityX
8
+ };
9
+ static y = {
10
+ channelKeys: DENSITY_CHANNEL_KEYS,
11
+ run: densityY
12
+ };
13
+ }
@@ -0,0 +1,8 @@
1
+ import type { TransformAdapter } from '../../../types/phases/transforms/adapter';
2
+ /** svelteplot's group transforms: along `x`, along `y`, by `z`, or both axes. */
3
+ export declare class GroupTransform {
4
+ static readonly x: TransformAdapter;
5
+ static readonly y: TransformAdapter;
6
+ static readonly z: TransformAdapter;
7
+ static readonly grid: TransformAdapter;
8
+ }
@@ -0,0 +1,39 @@
1
+ import { group, groupX, groupY, groupZ } from 'svelteplot';
2
+ import { GROUP_CHANNEL_KEYS } from '../../../types/transforms/group';
3
+ import { AnchorBar } from './AnchorBar';
4
+ /** The style outputs every group transform can reduce to. */
5
+ const STYLE_OUTPUTS = {
6
+ fill: true,
7
+ stroke: true,
8
+ r: true,
9
+ opacity: true,
10
+ fillOpacity: true,
11
+ strokeOpacity: true
12
+ };
13
+ /** svelteplot's group transforms: along `x`, along `y`, by `z`, or both axes. */
14
+ export class GroupTransform {
15
+ // Each group transform's position outputs are reducers on the transform, while
16
+ // the marker's own channel of the same name stays the value they reduce.
17
+ static x = {
18
+ channelKeys: GROUP_CHANNEL_KEYS,
19
+ outputKeys: { y: true, y1: true, y2: true, ...STYLE_OUTPUTS },
20
+ run: groupX,
21
+ finish: AnchorBar.toZero('y')
22
+ };
23
+ static y = {
24
+ channelKeys: GROUP_CHANNEL_KEYS,
25
+ outputKeys: { x: true, x1: true, x2: true, ...STYLE_OUTPUTS },
26
+ run: groupY,
27
+ finish: AnchorBar.toZero('x')
28
+ };
29
+ static z = {
30
+ channelKeys: GROUP_CHANNEL_KEYS,
31
+ outputKeys: { x: true, x1: true, x2: true, y: true, y1: true, y2: true, ...STYLE_OUTPUTS },
32
+ run: groupZ
33
+ };
34
+ static grid = {
35
+ channelKeys: GROUP_CHANNEL_KEYS,
36
+ outputKeys: STYLE_OUTPUTS,
37
+ run: group
38
+ };
39
+ }
@@ -0,0 +1,10 @@
1
+ import type { TransformAdapter } from '../../../types/phases/transforms/adapter';
2
+ /** Normalize and map transforms, by axis. */
3
+ export declare class NormalizeTransform {
4
+ static readonly x: TransformAdapter;
5
+ static readonly y: TransformAdapter;
6
+ static readonly parallelX: TransformAdapter;
7
+ static readonly parallelY: TransformAdapter;
8
+ static readonly mapX: TransformAdapter;
9
+ static readonly mapY: TransformAdapter;
10
+ }
@@ -0,0 +1,30 @@
1
+ import { normalizeX, normalizeY, normalizeParallelX, normalizeParallelY, mapX, mapY } from 'svelteplot';
2
+ import { POSITION_CHANNEL_KEYS } from '../../../types/transforms/common';
3
+ /** Normalize and map transforms, by axis. */
4
+ export class NormalizeTransform {
5
+ static x = {
6
+ channelKeys: POSITION_CHANNEL_KEYS,
7
+ run: normalizeX
8
+ };
9
+ static y = {
10
+ channelKeys: POSITION_CHANNEL_KEYS,
11
+ run: normalizeY
12
+ };
13
+ static parallelX = {
14
+ channelKeys: POSITION_CHANNEL_KEYS,
15
+ run: normalizeParallelX
16
+ };
17
+ static parallelY = {
18
+ channelKeys: POSITION_CHANNEL_KEYS,
19
+ run: normalizeParallelY
20
+ };
21
+ // svelteplot takes the mapping itself as the second argument, not an options object.
22
+ static mapX = {
23
+ channelKeys: POSITION_CHANNEL_KEYS,
24
+ run: (channels, options) => mapX(channels, options.map)
25
+ };
26
+ static mapY = {
27
+ channelKeys: POSITION_CHANNEL_KEYS,
28
+ run: (channels, options) => mapY(channels, options.map)
29
+ };
30
+ }
@@ -0,0 +1,16 @@
1
+ import type { TransformAdapter } from '../../../types/phases/transforms/adapter';
2
+ /** Transforms that choose and order rows: sort, shuffle, reverse, filter and select. */
3
+ export declare class OrderTransform {
4
+ #private;
5
+ static readonly sort: TransformAdapter;
6
+ static readonly shuffle: TransformAdapter;
7
+ static readonly reverse: TransformAdapter;
8
+ static readonly filter: TransformAdapter;
9
+ static readonly select: TransformAdapter;
10
+ static readonly first: TransformAdapter;
11
+ static readonly last: TransformAdapter;
12
+ static readonly minX: TransformAdapter;
13
+ static readonly maxX: TransformAdapter;
14
+ static readonly minY: TransformAdapter;
15
+ static readonly maxY: TransformAdapter;
16
+ }