@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,58 @@
1
+ import { ScalesPhase } from '../scales/ScalesPhase';
2
+ import type { PlotAxes } from '../data/PlotAxes';
3
+ import type { AxisChannelName } from '../../types/layout/mapping';
4
+ import type { FacetStageState, PhaseStage, ProcessedData, SharedAxisValues, SharedScalesOptions } from '../../types/phases';
5
+ import type { AxisBasedScalesConfig } from '../../types/layout/scales';
6
+ /** One channel's shared scale: its domain, and whether svelteplot may still round it. */
7
+ type SharedScale = {
8
+ domain: unknown[];
9
+ nice?: boolean;
10
+ } | undefined;
11
+ /** The state the "shared scales" step reads: a data run's output, over every panel. */
12
+ type SharedScalesState = FacetStageState & {
13
+ axes?: PlotAxes;
14
+ processedData?: ProcessedData;
15
+ markers?: object[];
16
+ scales?: Partial<Record<AxisChannelName, {
17
+ niceTolerance?: number;
18
+ }>>;
19
+ sharedScales?: Record<string, AxisBasedScalesConfig<never>>;
20
+ };
21
+ /**
22
+ * The "sharedScales" phase, the last of the data phases: the figure-wide part
23
+ * of scales - the domains every slice shares, as `sharedScales` keyed by facet panel
24
+ * (`''` for the whole run without a facet). Each shared x/y domain spans
25
+ * where the sharing panels' rows and markers sit (as bands, or from zero, as
26
+ * the kind's axes and "scales" say), grouped by `facet.scales`; each `fromScalesPhase` channel
27
+ * takes the domain the kind's own "scales" phase sets over
28
+ * those panels. A panel's own "scales" phase only sees its rows, so this
29
+ * can't happen there. Without options, a kind still shares its domains: it just
30
+ * has no bands and nothing that starts from zero.
31
+ */
32
+ export declare class SharedScalesPhase<TState extends SharedScalesState, TCtx> implements PhaseStage<TState, TCtx> {
33
+ #private;
34
+ readonly phase: "sharedScales";
35
+ constructor(options: SharedScalesOptions | undefined, scales?: ScalesPhase<any, any>);
36
+ run: (state: TState, ctx: TCtx) => TState;
37
+ /**
38
+ * One axis' domain over some slices: sorted values on a band axis, `[min, max]`
39
+ * otherwise, or `undefined`. A numeric extent is niced here, once, so every
40
+ * slice gets the exact same domain - svelteplot's own `nice` rounds by a tick
41
+ * count derived from each panel's height, which over-rounds short panels and
42
+ * can disagree between panels of different heights.
43
+ */
44
+ static buildSharedAxisScale(slices: SharedAxisValues[], axis: AxisChannelName, niceTolerance?: number): SharedScale;
45
+ /**
46
+ * Where one panel's rows and markers sit on each axis, read off a pipeline
47
+ * run over every panel - or, without a `panel`, where all of them sit.
48
+ */
49
+ static buildPanelAxisValues(state: {
50
+ processedData?: ProcessedData;
51
+ markers?: object[];
52
+ }, panel: string | undefined, layout?: {
53
+ band?: AxisChannelName[];
54
+ zero?: AxisChannelName[];
55
+ dataOrder?: boolean;
56
+ }): SharedAxisValues;
57
+ }
58
+ export {};
@@ -0,0 +1,171 @@
1
+ import { ProcessedPositions } from '../transforms/ProcessedPositions';
2
+ import { NiceTicks } from '../../layout/scales/NiceTicks';
3
+ import { ScalesPhase } from '../scales/ScalesPhase';
4
+ import { Pipeline } from '../Pipeline';
5
+ import { PANEL_KEY, FacetPanels } from '../facet/FacetPanels';
6
+ import { isFacetWrap } from '../../layout/facet/config';
7
+ import { MarkerAxisValues } from '../scales/MarkerAxisValues';
8
+ /** Natural ascending order, as svelteplot sorts a band domain. */
9
+ function ascending(a, b) {
10
+ return a < b ? -1 : a > b ? 1 : 0;
11
+ }
12
+ /**
13
+ * The "sharedScales" phase, the last of the data phases: the figure-wide part
14
+ * of scales - the domains every slice shares, as `sharedScales` keyed by facet panel
15
+ * (`''` for the whole run without a facet). Each shared x/y domain spans
16
+ * where the sharing panels' rows and markers sit (as bands, or from zero, as
17
+ * the kind's axes and "scales" say), grouped by `facet.scales`; each `fromScalesPhase` channel
18
+ * takes the domain the kind's own "scales" phase sets over
19
+ * those panels. A panel's own "scales" phase only sees its rows, so this
20
+ * can't happen there. Without options, a kind still shares its domains: it just
21
+ * has no bands and nothing that starts from zero.
22
+ */
23
+ export class SharedScalesPhase {
24
+ phase = 'sharedScales';
25
+ #options;
26
+ #kindScales;
27
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
28
+ #scales;
29
+ constructor(options,
30
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
31
+ scales = new ScalesPhase()) {
32
+ this.#options = options;
33
+ this.#scales = scales;
34
+ this.#kindScales = new Pipeline([scales]);
35
+ }
36
+ run = (state, ctx) => {
37
+ const facet = state.facet;
38
+ const panels = facet ? (state.panels ?? []) : [];
39
+ // A symmetric axis has no domain but the one the kind's "scales" phase gives it.
40
+ const fromPhase = new Set([
41
+ ...(this.#options?.fromScalesPhase ?? []),
42
+ ...this.#scales.symmetricAxes(state)
43
+ ]);
44
+ const layout = {
45
+ band: [...(state.axes?.bands ?? [])],
46
+ zero: this.#scales.zeroAxes(state),
47
+ dataOrder: this.#scales.keepsDataOrder
48
+ };
49
+ const channels = fromPhase.has('color') ? ['x', 'y', 'color'] : ['x', 'y'];
50
+ /** The channel's domain over `members` panels, or every row without them. */
51
+ const domainOver = (channel, members) => {
52
+ if (fromPhase.has(channel)) {
53
+ const scoped = members ? FacetPanels.narrowToPanels(state, members) : state;
54
+ const scales = this.#kindScales.run(scoped, ctx).scales;
55
+ const domain = scales?.[channel]?.domain;
56
+ return domain === undefined ? undefined : { domain };
57
+ }
58
+ if (channel === 'color')
59
+ return undefined;
60
+ const values = members
61
+ ? members.map((panel) => SharedScalesPhase.buildPanelAxisValues(state, panel, layout))
62
+ : [SharedScalesPhase.buildPanelAxisValues(state, undefined, layout)];
63
+ return SharedScalesPhase.buildSharedAxisScale(values, channel, state.scales?.[channel]?.niceTolerance);
64
+ };
65
+ const cache = new Map();
66
+ const scalesOf = (place) => {
67
+ const out = {};
68
+ for (const channel of channels) {
69
+ const line = SharedScalesPhase.#sharingLine(facet, channel);
70
+ if (!line)
71
+ continue;
72
+ const key = line === 'all' ? '' : (place?.[line] ?? '');
73
+ const cacheKey = `${channel}\u0000${key}`;
74
+ if (!cache.has(cacheKey)) {
75
+ const members = panels.length
76
+ ? panels.filter((p) => line === 'all' || p[line] === key).map((p) => p.key)
77
+ : undefined;
78
+ // Every panel sharing a phase-derived domain is the whole run, as it was built.
79
+ const whole = line === 'all' && fromPhase.has(channel);
80
+ cache.set(cacheKey, domainOver(channel, whole ? undefined : members));
81
+ }
82
+ const scale = cache.get(cacheKey);
83
+ if (scale)
84
+ out[channel] = scale;
85
+ }
86
+ return Object.keys(out).length ? out : undefined;
87
+ };
88
+ const sharedScales = {};
89
+ const add = (key, scales) => {
90
+ if (scales)
91
+ sharedScales[key] = scales;
92
+ };
93
+ if (panels.length)
94
+ for (const panel of panels)
95
+ add(panel.key, scalesOf(panel));
96
+ else
97
+ add('', scalesOf(undefined));
98
+ return { ...state, sharedScales };
99
+ };
100
+ /**
101
+ * One axis' domain over some slices: sorted values on a band axis, `[min, max]`
102
+ * otherwise, or `undefined`. A numeric extent is niced here, once, so every
103
+ * slice gets the exact same domain - svelteplot's own `nice` rounds by a tick
104
+ * count derived from each panel's height, which over-rounds short panels and
105
+ * can disagree between panels of different heights.
106
+ */
107
+ static buildSharedAxisScale(slices, axis, niceTolerance) {
108
+ const values = slices
109
+ .flatMap((slice) => slice[axis])
110
+ .filter((v) => v != null && v !== '' && !(typeof v === 'number' && !Number.isFinite(v)));
111
+ if (!values.length)
112
+ return undefined;
113
+ if (slices.some((slice) => slice.band.includes(axis))) {
114
+ const distinct = [...new Set(values)];
115
+ return {
116
+ domain: slices.some((slice) => slice.dataOrder) ? distinct : distinct.sort(ascending)
117
+ };
118
+ }
119
+ if (values.every((v) => typeof v === 'number')) {
120
+ const numbers = slices.some((slice) => slice.zero.includes(axis))
121
+ ? [...values, 0]
122
+ : values;
123
+ const lo = Math.min(...numbers);
124
+ const hi = Math.max(...numbers);
125
+ return { domain: NiceTicks.domain(lo, hi, 10, niceTolerance), nice: false };
126
+ }
127
+ if (values.every((v) => v instanceof Date)) {
128
+ const times = values.map((d) => +d);
129
+ return { domain: [new Date(Math.min(...times)), new Date(Math.max(...times))] };
130
+ }
131
+ return { domain: [...new Set(values)].sort(ascending) };
132
+ }
133
+ /**
134
+ * Where one panel's rows and markers sit on each axis, read off a pipeline
135
+ * run over every panel - or, without a `panel`, where all of them sit.
136
+ */
137
+ static buildPanelAxisValues(state, panel, layout = {}) {
138
+ const inPanel = (tagged) => panel === undefined || tagged === panel;
139
+ const processed = state.processedData && {
140
+ ...state.processedData,
141
+ data: state.processedData.data.filter((row) => inPanel(row[PANEL_KEY]))
142
+ };
143
+ const markers = (state.markers ?? []).filter((marker) => inPanel(marker[PANEL_KEY]));
144
+ const values = (axis) => [
145
+ ...ProcessedPositions.values(processed, axis),
146
+ ...MarkerAxisValues.of(markers, axis)
147
+ ];
148
+ return {
149
+ x: values('x'),
150
+ y: values('y'),
151
+ band: layout.band ?? [],
152
+ zero: layout.zero ?? [],
153
+ dataOrder: layout.dataOrder
154
+ };
155
+ }
156
+ /**
157
+ * Which slices share a channel's domain under `facet.scales`: every one, the
158
+ * panels on one column (x) or row (y) of a `rows`/`cols` grid, or none (a
159
+ * free axis of a wrapped facet). Color is shared by every slice.
160
+ */
161
+ static #sharingLine(facet, channel) {
162
+ if (!facet || channel === 'color')
163
+ return 'all';
164
+ const mode = facet.scales ?? 'shared';
165
+ if (mode !== 'free' && mode !== `free-${channel}`)
166
+ return 'all';
167
+ if (isFacetWrap(facet))
168
+ return null;
169
+ return channel === 'x' ? 'col' : 'row';
170
+ }
171
+ }
@@ -0,0 +1,43 @@
1
+ import type { ProcessedData } from '../../types/phases';
2
+ import type { ScopedMarkerGroup } from '../../types/layout/geometry';
3
+ type Row = Record<string, unknown>;
4
+ /** The plot's own author markers, made ready for the rest of the pipeline. */
5
+ export declare class AuthorMarkers {
6
+ #private;
7
+ /**
8
+ * Prepares a plot's own author markers for the rest of its pipeline: inherits
9
+ * the plot's grouping and default color first (a transform's `z` defaults to
10
+ * the grouping), splits a segment-scoped marker into one marker per segment of
11
+ * its series, then runs each marker's own transforms over its rows - its
12
+ * segment's or series' rows when it's scoped to one, the plot's rows otherwise.
13
+ */
14
+ static prepare<T extends {
15
+ type: string;
16
+ component?: unknown;
17
+ props?: unknown;
18
+ }>(markers: T[], plot: {
19
+ grouping?: unknown;
20
+ color?: unknown;
21
+ defaultColor?: string;
22
+ flat: Row[];
23
+ resolvedSeries?: {
24
+ name: string;
25
+ data: Row[];
26
+ }[];
27
+ scopedGroups?: ScopedMarkerGroup<Row>[];
28
+ }): T[];
29
+ /**
30
+ * A marker that draws the plot's rows (it sets no `data`) draws them as the
31
+ * plot does, after the plot's own transforms: it starts from the plot's
32
+ * processed rows - its series' rows when scoped to one - and takes the
33
+ * processed channels for any position it leaves unset. A position it sets
34
+ * itself reads that field of the processed rows (every source field is kept).
35
+ * Its `grouping` defaults to the plot's series, so it splits, and its own
36
+ * transforms run, per series. A plot without transforms draws its rows as
37
+ * they are, so its markers are left as is, as is a kind that draws no rows.
38
+ */
39
+ static withProcessedRows<T extends {
40
+ type: string;
41
+ }>(marker: T, processed?: ProcessedData): T;
42
+ }
43
+ export {};
@@ -0,0 +1,69 @@
1
+ import { MarkerKinds } from '../../markers/MarkerKinds';
2
+ import { Transforms } from '../transforms/Transforms';
3
+ import { MarkerGrouping } from './MarkerGrouping';
4
+ import { SERIES_ID_KEY, SERIES_KEY } from '../transforms/TransformsPhase';
5
+ /** Kinds that handle `scope: 'segment'` themselves, at render time. */
6
+ const RENDER_SCOPED_KINDS = new Set(['component', 'hover']);
7
+ /** The plot's own author markers, made ready for the rest of the pipeline. */
8
+ export class AuthorMarkers {
9
+ /**
10
+ * Prepares a plot's own author markers for the rest of its pipeline: inherits
11
+ * the plot's grouping and default color first (a transform's `z` defaults to
12
+ * the grouping), splits a segment-scoped marker into one marker per segment of
13
+ * its series, then runs each marker's own transforms over its rows - its
14
+ * segment's or series' rows when it's scoped to one, the plot's rows otherwise.
15
+ */
16
+ static prepare(markers, plot) {
17
+ return MarkerGrouping.inheritPlotGrouping(markers, plot).flatMap((marker) => {
18
+ const scope = marker.series;
19
+ const seriesRows = typeof scope === 'string'
20
+ ? plot.resolvedSeries?.find((s) => s.name === scope)?.data
21
+ : undefined;
22
+ const rows = seriesRows ?? plot.flat;
23
+ return AuthorMarkers.#splitBySegment(marker, rows, plot.scopedGroups).map((own) => Transforms.resolve(own, rows));
24
+ });
25
+ }
26
+ /**
27
+ * One marker per segment of a `scope: 'segment'` marker's series, each over
28
+ * that segment's rows and in its color. Any other marker is kept whole.
29
+ */
30
+ static #splitBySegment(marker, rows, scopedGroups = []) {
31
+ const own = marker;
32
+ if (own.scope !== 'segment' || RENDER_SCOPED_KINDS.has(own.type))
33
+ return [marker];
34
+ const group = scopedGroups.find((g) => g.name === own.series);
35
+ if (!group || group.segments.length === 0)
36
+ return [marker];
37
+ return group.segments
38
+ .map((seg) => ({ seg, data: (own.data ?? rows).filter((row) => seg.match(row)) }))
39
+ .filter(({ data }) => data.length > 0)
40
+ .map(({ seg, data }) => MarkerGrouping.withSeriesColor({ ...own, data }, seg.color));
41
+ }
42
+ /** Whether a marker's kind draws the plot's rows when it sets no `data`. */
43
+ static #drawsRows(type) {
44
+ return MarkerKinds.of(type)?.drawsRows ?? false;
45
+ }
46
+ /**
47
+ * A marker that draws the plot's rows (it sets no `data`) draws them as the
48
+ * plot does, after the plot's own transforms: it starts from the plot's
49
+ * processed rows - its series' rows when scoped to one - and takes the
50
+ * processed channels for any position it leaves unset. A position it sets
51
+ * itself reads that field of the processed rows (every source field is kept).
52
+ * Its `grouping` defaults to the plot's series, so it splits, and its own
53
+ * transforms run, per series. A plot without transforms draws its rows as
54
+ * they are, so its markers are left as is, as is a kind that draws no rows.
55
+ */
56
+ static withProcessedRows(marker, processed) {
57
+ const own = marker;
58
+ if (own.data !== undefined ||
59
+ !AuthorMarkers.#drawsRows(own.type) ||
60
+ !processed?.transforms.length) {
61
+ return marker;
62
+ }
63
+ const rows = typeof own.series === 'string'
64
+ ? processed.data.filter((row) => row[SERIES_KEY] === own.series)
65
+ : processed.data;
66
+ const channels = Object.fromEntries(Object.entries(processed.channels).filter(([key]) => own[key] === undefined));
67
+ return { ...own, ...channels, data: rows, grouping: own.grouping ?? SERIES_ID_KEY };
68
+ }
69
+ }
@@ -0,0 +1,48 @@
1
+ type MarkerLike = {
2
+ type: string;
3
+ series?: unknown;
4
+ color?: unknown;
5
+ fill?: unknown;
6
+ styles?: Record<string, unknown>;
7
+ bar?: object;
8
+ };
9
+ /** How a plot's own grouping and colors reach the markers its author adds. */
10
+ export declare class MarkerGrouping {
11
+ #private;
12
+ /**
13
+ * Gives a marker one flat color (its `styles`, or a box's `bar.fill`) when it
14
+ * sets none of its own: a series color, the plot's default series color.
15
+ * Dots take `dotFill`/`dotStroke`, line-only kinds take `stroke`, text takes
16
+ * `fill` (a stroke would outline its glyphs), filled kinds take both so their
17
+ * outline matches their fill.
18
+ */
19
+ static withSeriesColor<TMarker extends MarkerLike>(marker: TMarker, color: string | undefined): TMarker;
20
+ /**
21
+ * Gives each author marker the plot's own color rules by default:
22
+ *
23
+ * - A grouped plot (`color`/`grouping`) splits its markers the same way. A
24
+ * grouping-capable marker draws one shape per group, and a color-capable
25
+ * marker colors each row by its group's color.
26
+ * - An ungrouped plot's unscoped marker takes the plot's default series color.
27
+ *
28
+ * A marker's own `grouping`/`color` or flat color always wins. Scoped markers
29
+ * (`series`) are colored by their own series at render time, not here.
30
+ */
31
+ static inheritPlotGrouping<TMarker extends {
32
+ type: string;
33
+ }>(markers: TMarker[], plot: {
34
+ grouping?: unknown;
35
+ color?: unknown;
36
+ defaultColor?: string;
37
+ }): TMarker[];
38
+ /**
39
+ * Gives a scoped hover marker its series color through its own `dot` and
40
+ * `text` styles, the way `withSeriesColor` does for other markers. A style the
41
+ * marker sets itself keeps its own color.
42
+ */
43
+ static withHoverSeriesColor<T extends {
44
+ dot?: object;
45
+ text?: object;
46
+ }>(marker: T, color: string | undefined): T;
47
+ }
48
+ export {};
@@ -0,0 +1,113 @@
1
+ /** Marker kinds that split their rows into separate shapes per `grouping`. */
2
+ const GROUPING_KINDS = new Set([
3
+ 'area',
4
+ 'density',
5
+ 'line',
6
+ 'hull',
7
+ 'trail',
8
+ 'delaunayLink',
9
+ 'delaunayMesh',
10
+ 'voronoi',
11
+ 'voronoiMesh'
12
+ ]);
13
+ /** Marker kinds whose per-row `color` resolves through the plot's own color scale. */
14
+ const COLOR_KINDS = new Set([
15
+ 'area',
16
+ 'bar',
17
+ 'cell',
18
+ 'density',
19
+ 'delaunayLink',
20
+ 'delaunayMesh',
21
+ 'dot',
22
+ 'hull',
23
+ 'line',
24
+ 'rect',
25
+ 'tick',
26
+ 'trail',
27
+ 'voronoi',
28
+ 'voronoiMesh',
29
+ 'waffle'
30
+ ]);
31
+ /** Kinds that draw only a line, so their flat color is `stroke` alone. */
32
+ const LINE_KINDS = new Set(['line', 'regression', 'bollinger', 'delta']);
33
+ /** Flat color style keys - when a marker sets one, it keeps that color instead of inheriting one. */
34
+ const FLAT_COLOR_KEYS = ['fill', 'stroke', 'dotFill', 'dotStroke'];
35
+ /** A style value that paints nothing isn't a color choice, so it doesn't block inheritance. */
36
+ const isPaint = (value) => value !== undefined && value !== 'none' && value !== 'transparent';
37
+ /** How a plot's own grouping and colors reach the markers its author adds. */
38
+ export class MarkerGrouping {
39
+ /** Whether a marker sets its own flat color, which then takes precedence over any inherited one. */
40
+ static #hasFlatColor(marker) {
41
+ return isPaint(marker.fill) || FLAT_COLOR_KEYS.some((key) => isPaint(marker.styles?.[key]));
42
+ }
43
+ /**
44
+ * Gives a marker one flat color (its `styles`, or a box's `bar.fill`) when it
45
+ * sets none of its own: a series color, the plot's default series color.
46
+ * Dots take `dotFill`/`dotStroke`, line-only kinds take `stroke`, text takes
47
+ * `fill` (a stroke would outline its glyphs), filled kinds take both so their
48
+ * outline matches their fill.
49
+ */
50
+ static withSeriesColor(marker, color) {
51
+ if (!color || MarkerGrouping.#hasFlatColor(marker) || marker.color !== undefined)
52
+ return marker;
53
+ if (marker.type === 'box') {
54
+ return { ...marker, bar: { fill: color, ...(marker.bar ?? {}) } };
55
+ }
56
+ const keys = marker.type === 'dot'
57
+ ? ['dotFill', 'dotStroke']
58
+ : LINE_KINDS.has(marker.type)
59
+ ? ['stroke']
60
+ : marker.type === 'text'
61
+ ? ['fill']
62
+ : ['fill', 'stroke'];
63
+ const styles = { ...(marker.styles ?? {}) };
64
+ // A `'none'` the marker sets doesn't block the inherited color, but stays itself.
65
+ for (const key of keys)
66
+ styles[key] ??= color;
67
+ return { ...marker, styles };
68
+ }
69
+ /**
70
+ * Gives each author marker the plot's own color rules by default:
71
+ *
72
+ * - A grouped plot (`color`/`grouping`) splits its markers the same way. A
73
+ * grouping-capable marker draws one shape per group, and a color-capable
74
+ * marker colors each row by its group's color.
75
+ * - An ungrouped plot's unscoped marker takes the plot's default series color.
76
+ *
77
+ * A marker's own `grouping`/`color` or flat color always wins. Scoped markers
78
+ * (`series`) are colored by their own series at render time, not here.
79
+ */
80
+ static inheritPlotGrouping(markers, plot) {
81
+ const grouping = plot.grouping ?? plot.color;
82
+ return markers.map((marker) => {
83
+ const m = marker;
84
+ if (m.series !== undefined)
85
+ return marker;
86
+ if (grouping === undefined)
87
+ return MarkerGrouping.withSeriesColor(m, plot.defaultColor);
88
+ const updates = {};
89
+ if (GROUPING_KINDS.has(m.type) && m.grouping === undefined)
90
+ updates.grouping = grouping;
91
+ if (COLOR_KINDS.has(m.type) && m.color === undefined && !MarkerGrouping.#hasFlatColor(m)) {
92
+ updates.color = plot.color ?? plot.grouping;
93
+ }
94
+ return Object.keys(updates).length ? { ...m, ...updates } : marker;
95
+ });
96
+ }
97
+ /**
98
+ * Gives a scoped hover marker its series color through its own `dot` and
99
+ * `text` styles, the way `withSeriesColor` does for other markers. A style the
100
+ * marker sets itself keeps its own color.
101
+ */
102
+ static withHoverSeriesColor(marker, color) {
103
+ if (!color)
104
+ return marker;
105
+ const dot = (marker.dot ?? {});
106
+ const text = (marker.text ?? {});
107
+ return {
108
+ ...marker,
109
+ dot: { ...dot, dotFill: dot.dotFill ?? color, dotStroke: dot.dotStroke ?? color },
110
+ text: { ...text, fill: text.fill ?? color }
111
+ };
112
+ }
113
+ }
@@ -0,0 +1,53 @@
1
+ import type { StatisticSource } from '../../types/phases/statistics/source';
2
+ import type { Series } from '../../types/plots/data/common';
3
+ import type { StatisticConfig } from '../../types/layout/statistics';
4
+ import type { AxisBasedMarkersConfig } from '../../types/markers/common';
5
+ /**
6
+ * The statistics a plot or a marker asks for, as the markers they draw as.
7
+ * Each statistic type is a class of its own under `methods/`; the same
8
+ * {@link Statistics.buildMarker} serves plot-level and marker-level attachment.
9
+ */
10
+ export declare class Statistics {
11
+ #private;
12
+ /**
13
+ * Builds one {@link StatisticConfig} over a data source into the marker it
14
+ * renders as - `regression`/`bollinger` construct their marker directly
15
+ * (svelteplot resolves the curve/band itself, at render time); the others
16
+ * compute their rows first.
17
+ */
18
+ static buildMarker<T extends Record<string, unknown>>(source: StatisticSource<T>, config: StatisticConfig): AxisBasedMarkersConfig;
19
+ /**
20
+ * Resolves a plot's own top-level `statistics` prop against its already-built
21
+ * `Series<T>[]` (every kind has this before `mapping` runs - see
22
+ * `buildSeries`) into the derived markers to append alongside the plot's own
23
+ * default markers. Default (`series` unset, `pooled` unset): one statistic per
24
+ * series, using that series' own data/accessors/color, so a plot grouped by
25
+ * `color` gets its statistics grouped the same way. `pooled: true`: one
26
+ * statistic over every series combined (using the first series' own `x`/`y`,
27
+ * same convention the shared "mapping" stage uses for a shared
28
+ * accessor). Named `series`: one statistic per listed series.
29
+ */
30
+ static buildForPlot<T extends Record<string, unknown>>(args: {
31
+ series: Series<T>[];
32
+ statistics: StatisticConfig[] | undefined;
33
+ colorFor?: (seriesName: string) => string;
34
+ }): AxisBasedMarkersConfig[];
35
+ /**
36
+ * Expands each marker's own `.statistics` into derived markers, spliced in
37
+ * right after their source so a derived marker always renders on top of it.
38
+ * `fallbackData` mirrors `GeometryLayout`'s own `marker.data ?? data` -
39
+ * applied here too since this runs *before* `GeometryLayout` ever sees these
40
+ * markers, on a marker that may omit its own `data` to reuse the host plot's.
41
+ * Generic over the caller's own marker union (e.g. `LinePlot`'s own
42
+ * `AxisBasedMarkersConfig`, which adds a `delta` kind on top of
43
+ * {@link AxisBasedMarkersConfig}) - untouched markers pass through as
44
+ * `TMarker`. Eligibility is structural, not a hardcoded list of `type`s: any
45
+ * marker mixing in `CommonMarkerConfig` (the "common" family) has `.x`/`.y`
46
+ * and an optional `.statistics`, so a `rule`/`hover`/`component` marker
47
+ * (neither field) always falls through the guard below untouched, and a
48
+ * future "common" marker kind is eligible with no extra bookkeeping here.
49
+ */
50
+ static expandMarkers<TMarker extends {
51
+ type: string;
52
+ }, T extends Record<string, unknown>>(markers: TMarker[], fallbackData: T[]): (TMarker | AxisBasedMarkersConfig)[];
53
+ }