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