@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,95 @@
1
+ /** The field a processed row carries its facet panel under. */
2
+ export const PANEL_KEY = '__panel';
3
+ /**
4
+ * What the "facet" phase's panels do to the rest of a plot's state: each
5
+ * series split into one per panel, a state narrowed to some panels, and one
6
+ * panel's part of a run over every panel.
7
+ */
8
+ export class FacetPanels {
9
+ /** The id of a series' part in one facet panel. */
10
+ static buildSeriesId(panel, name) {
11
+ return `${panel}\u0000${name}`;
12
+ }
13
+ /**
14
+ * Each series split into one per facet panel, panel by panel: the same
15
+ * `name` (and so the same color and legend entry), its own `id` and `panel`,
16
+ * and only that panel's rows. A series with no rows in a panel has no part there.
17
+ */
18
+ static splitSeries(series, panels, panelOf) {
19
+ const rowsByPanel = series.map((s) => {
20
+ const groups = new Map();
21
+ for (const row of s.data) {
22
+ const key = panelOf(row);
23
+ if (key === undefined)
24
+ continue;
25
+ const bucket = groups.get(key);
26
+ if (bucket)
27
+ bucket.push(row);
28
+ else
29
+ groups.set(key, [row]);
30
+ }
31
+ return groups;
32
+ });
33
+ return panels.flatMap((panel) => series.flatMap((s, i) => {
34
+ const rows = rowsByPanel[i].get(panel.key);
35
+ if (!rows?.length)
36
+ return [];
37
+ return [
38
+ {
39
+ ...s,
40
+ id: FacetPanels.buildSeriesId(panel.key, s.name),
41
+ panel: panel.key,
42
+ data: rows
43
+ }
44
+ ];
45
+ }));
46
+ }
47
+ /** A state narrowed to one panel's series, rows and processed rows. */
48
+ static narrowToPanel(state, panel) {
49
+ return FacetPanels.narrowToPanels(state, [panel]);
50
+ }
51
+ /** A state narrowed to some panels' series, rows and processed rows. */
52
+ static narrowToPanels(state, panels) {
53
+ const keep = new Set(panels);
54
+ const has = (panel) => keep.has(panel);
55
+ const resolvedSeries = state.resolvedSeries?.filter((s) => has(s.panel));
56
+ const { panelOf } = state;
57
+ return {
58
+ ...state,
59
+ resolvedSeries,
60
+ flat: panelOf
61
+ ? state.flat?.filter((row) => has(panelOf(row)))
62
+ : resolvedSeries?.flatMap((s) => s.data),
63
+ scopedGroups: state.scopedGroups?.filter((g) => has(g.panel)),
64
+ groupedSeries: state.groupedSeries?.filter((g) => has(g.series.panel)),
65
+ processedGroups: state.processedGroups?.filter((g) => has(g.series.panel)),
66
+ processedData: state.processedData && {
67
+ ...state.processedData,
68
+ data: state.processedData.data.filter((row) => has(row[PANEL_KEY]))
69
+ }
70
+ };
71
+ }
72
+ /**
73
+ * One facet panel's part of a run of the data phases over every panel: its
74
+ * series, rows, processed rows and markers, without the facet itself, ready
75
+ * for the phases each panel runs on its own.
76
+ */
77
+ static buildPanelState(state, panel) {
78
+ const narrowed = FacetPanels.narrowToPanel(state, panel);
79
+ const markers = state.markers?.flatMap((marker) => {
80
+ const own = marker;
81
+ if (own[PANEL_KEY] === undefined)
82
+ return [marker];
83
+ if (own[PANEL_KEY] !== panel)
84
+ return [];
85
+ const untagged = { ...own };
86
+ delete untagged[PANEL_KEY];
87
+ return [untagged];
88
+ });
89
+ const out = { ...narrowed, markers };
90
+ delete out.facet;
91
+ delete out.panels;
92
+ delete out.panelOf;
93
+ return out;
94
+ }
95
+ }
@@ -0,0 +1,11 @@
1
+ import type { FacetStageState, PhaseStage } from '../../types/phases';
2
+ /**
3
+ * The "facet" phase: the panels the plot's `facet` lays its rows out in, and
4
+ * which panel each row belongs to. It runs first, so the "data" phase builds
5
+ * every series already split by panel. A plot drawn from pre-built `series`
6
+ * has no rows to split, so its facet is ignored.
7
+ */
8
+ export declare class FacetPhase<TState extends FacetStageState> implements PhaseStage<TState> {
9
+ readonly phase: "facet";
10
+ run: (state: TState) => TState;
11
+ }
@@ -0,0 +1,28 @@
1
+ import { buildFacetKeyOf, buildFacetPanels } from '../../layout/facet/config';
2
+ import { PANEL_KEY } from './FacetPanels';
3
+ /**
4
+ * The "facet" phase: the panels the plot's `facet` lays its rows out in, and
5
+ * which panel each row belongs to. It runs first, so the "data" phase builds
6
+ * every series already split by panel. A plot drawn from pre-built `series`
7
+ * has no rows to split, so its facet is ignored.
8
+ */
9
+ export class FacetPhase {
10
+ phase = 'facet';
11
+ run = (state) => {
12
+ const { data, series } = state;
13
+ const facet = state.facet;
14
+ if (!facet || series || !data)
15
+ return state;
16
+ const panels = buildFacetPanels(facet, data).map(({ rows: _rows, ...panel }) => panel);
17
+ const keys = new Set(panels.map((p) => p.key));
18
+ const keyOf = buildFacetKeyOf(facet);
19
+ const panelOf = (row) => {
20
+ const tagged = row[PANEL_KEY];
21
+ if (typeof tagged === 'string')
22
+ return tagged;
23
+ const key = keyOf(row);
24
+ return keys.has(key) ? key : undefined;
25
+ };
26
+ return { ...state, panels, panelOf };
27
+ };
28
+ }
@@ -0,0 +1,36 @@
1
+ import type { HoverDisplayPoint, HoverPoint } from '../../types/layout/hover';
2
+ import { LegendState } from '../../layout/legend/LegendState.svelte';
3
+ import type { AxisPlotCtx, AxisPlotState, HoverPosition, HoverStageOptions, PhaseStage, ProcessedData } from '../../types/phases';
4
+ type AnyAxisState = AxisPlotState<any, any, any, any>;
5
+ /**
6
+ * The "hover" phase every axis-based plot shares: what the pointer can match
7
+ * (`hover`), the rows it hovers over (`hoverRows`) and where each sits
8
+ * (`hoverPosition`). Candidates are the processed rows (or the kind's own
9
+ * hover `rows`) of the series the legend shows, except gap rows and rows
10
+ * outside the legend's narrowed range.
11
+ */
12
+ export declare class HoverPhase<TState extends AnyAxisState, TCtx extends AxisPlotCtx> implements PhaseStage<TState, TCtx> {
13
+ #private;
14
+ readonly phase: "hover";
15
+ constructor(options?: HoverStageOptions<TState, TCtx>);
16
+ run: (state: TState, ctx: TCtx) => TState;
17
+ /**
18
+ * Hover candidates for a plot's own processed rows: each visible row at its
19
+ * position (a stacked row's top, a bin's centre), in its series' color. A
20
+ * series the legend turned off is left out, as is any row `include` rejects.
21
+ */
22
+ static buildProcessedHoverPoints<TRow extends Record<string, unknown>>(args: {
23
+ processed: ProcessedData;
24
+ colorFor: (seriesName: string) => string;
25
+ legendInteraction?: LegendState | null;
26
+ label: (row: TRow) => string;
27
+ include?: (row: TRow) => boolean;
28
+ /** The row a hovered point reads as, e.g. with derived fields added. Defaults to the processed row. */
29
+ row?: (row: TRow) => TRow;
30
+ /** Fields to add to (or replace on) each point. */
31
+ decorate?: (row: TRow) => Partial<HoverDisplayPoint>;
32
+ /** Where a row sits, as is. Defaults to its processed position, with `y` as a number. */
33
+ position?: HoverPosition;
34
+ }): HoverPoint<TRow>[];
35
+ }
36
+ export {};
@@ -0,0 +1,109 @@
1
+ import { ProcessedPositions } from '../transforms/ProcessedPositions';
2
+ import { GAP_VALUE, SERIES_KEY } from '../transforms/TransformsPhase';
3
+ import { HoverSettings } from '../../layout/hover/HoverSettings';
4
+ import { PlotAxes } from '../data/PlotAxes';
5
+ import { isGapValue } from '../../plots/utils/gaps';
6
+ import { LegendState } from '../../layout/legend/LegendState.svelte';
7
+ /**
8
+ * The "hover" phase every axis-based plot shares: what the pointer can match
9
+ * (`hover`), the rows it hovers over (`hoverRows`) and where each sits
10
+ * (`hoverPosition`). Candidates are the processed rows (or the kind's own
11
+ * hover `rows`) of the series the legend shows, except gap rows and rows
12
+ * outside the legend's narrowed range.
13
+ */
14
+ export class HoverPhase {
15
+ phase = 'hover';
16
+ #options;
17
+ constructor(options = {}) {
18
+ this.#options = options;
19
+ }
20
+ run = (state, ctx) => {
21
+ const options = this.#options;
22
+ const valueAxis = PlotAxes.valueOf(state);
23
+ const raw = options.position?.(state) ??
24
+ ProcessedPositions.of(state.processedData, valueAxis);
25
+ // A processed position reads as raw; the hover controller and the plot's
26
+ // scales want its value as a number, unless that axis lays out categories.
27
+ const position = options.position || state.axes?.isDiscrete(valueAxis)
28
+ ? raw
29
+ : { ...raw, [valueAxis]: (row) => Number(raw[valueAxis](row)) };
30
+ const label = options.label?.(state) ??
31
+ ((row) => String(state.channels[valueAxis].accessor(row)));
32
+ const processed = options.rows
33
+ ? { ...state.processedData, data: options.rows(state) }
34
+ : state.processedData;
35
+ const points = HoverPhase.buildProcessedHoverPoints({
36
+ processed,
37
+ colorFor: state.colorForSeries,
38
+ legendInteraction: ctx.interaction?.legend,
39
+ label: label,
40
+ position,
41
+ include: HoverPhase.#hoverable(state, ctx, raw, valueAxis),
42
+ row: options.row?.(state),
43
+ decorate: options.decorate?.(state, ctx)
44
+ });
45
+ const hover = HoverSettings.buildConfig({
46
+ tooltip: state.tooltip,
47
+ format: options.format?.(state) ?? state.tooltipFormat,
48
+ sort: options.sort?.(state) ?? state.tooltipSort,
49
+ markers: state.authorMarkers ?? [],
50
+ points: points,
51
+ label: label,
52
+ defaultStrategy: options.strategy ?? HoverSettings.strategyOf(state.axes),
53
+ pointMatching: options.pointMatching
54
+ });
55
+ const hitAreas = options.hitAreas?.(state, hover, ctx) ?? [];
56
+ return {
57
+ ...state,
58
+ hover,
59
+ hoverPosition: position,
60
+ hoverRows: processed.data,
61
+ ...(hitAreas.length > 0 ? { markers: [...(state.markers ?? []), ...hitAreas] } : {})
62
+ };
63
+ };
64
+ /**
65
+ * Hover candidates for a plot's own processed rows: each visible row at its
66
+ * position (a stacked row's top, a bin's centre), in its series' color. A
67
+ * series the legend turned off is left out, as is any row `include` rejects.
68
+ */
69
+ static buildProcessedHoverPoints(args) {
70
+ const { processed, colorFor, legendInteraction, label, include, row: rowOf, decorate } = args;
71
+ const processedPosition = ProcessedPositions.of(processed);
72
+ const position = args.position ?? {
73
+ x: processedPosition.x,
74
+ y: (row) => Number(processedPosition.y(row))
75
+ };
76
+ const x = position.x;
77
+ const y = position.y;
78
+ return processed.data
79
+ .filter((d) => !legendInteraction?.isOff(d[SERIES_KEY]))
80
+ .filter((d) => !include || include(d))
81
+ .map((d) => {
82
+ const row = d;
83
+ const seriesName = d[SERIES_KEY];
84
+ return {
85
+ x: x(d),
86
+ y: y(d),
87
+ row: rowOf ? rowOf(row) : row,
88
+ label: label(row),
89
+ series: seriesName,
90
+ color: colorFor(seriesName),
91
+ ...decorate?.(row)
92
+ };
93
+ });
94
+ }
95
+ /**
96
+ * Which processed rows can be hovered: not a gap (no value where it sits, or
97
+ * filled in by `styles.gaps`), and, while the legend narrows a continuous
98
+ * color to a range, not outside it. A dimmed row stays drawn, never matched.
99
+ */
100
+ static #hoverable(state, ctx, position, valueAxis) {
101
+ const range = ctx.interaction?.legend?.range;
102
+ const color = state.channels?.color?.accessor;
103
+ return (row) => {
104
+ if (isGapValue(position[valueAxis](row)) || row[GAP_VALUE] !== undefined)
105
+ return false;
106
+ return !range || !color || LegendState.inRange(Number(color(row)), range);
107
+ };
108
+ }
109
+ }
@@ -0,0 +1,17 @@
1
+ import type { AxisPlotState, AxisPlotCtx, MappingStageOptions, PhaseStage } from '../../types/phases';
2
+ type AnyAxisState = AxisPlotState<any, any, any, any>;
3
+ /**
4
+ * The "mapping" phase every axis-based plot shares: every channel resolved to
5
+ * a row accessor. `x`/`y` (and `color`) read the first series' own, falling
6
+ * back to the plot's props; `grouping` is the key the "data" phase split rows
7
+ * by (its `seriesGrouping`); any other channel resolves only when
8
+ * its prop is set, and a size channel given a number stays that literal size.
9
+ * An unset `x`/`y` reads each row itself, with no `source`.
10
+ */
11
+ export declare class MappingPhase<TState extends AnyAxisState, TCtx extends AxisPlotCtx> implements PhaseStage<TState, TCtx> {
12
+ #private;
13
+ readonly phase: "mapping";
14
+ constructor(options?: MappingStageOptions<TState, TCtx>);
15
+ run: (state: TState, ctx: TCtx) => TState;
16
+ }
17
+ export {};
@@ -0,0 +1,40 @@
1
+ import { resolveAccessor } from '../../plots/utils/accessors';
2
+ /**
3
+ * The "mapping" phase every axis-based plot shares: every channel resolved to
4
+ * a row accessor. `x`/`y` (and `color`) read the first series' own, falling
5
+ * back to the plot's props; `grouping` is the key the "data" phase split rows
6
+ * by (its `seriesGrouping`); any other channel resolves only when
7
+ * its prop is set, and a size channel given a number stays that literal size.
8
+ * An unset `x`/`y` reads each row itself, with no `source`.
9
+ */
10
+ export class MappingPhase {
11
+ phase = 'mapping';
12
+ #options;
13
+ constructor(options = {}) {
14
+ this.#options = options;
15
+ }
16
+ run = (state, ctx) => {
17
+ const first = state.resolvedSeries?.[0];
18
+ const identity = { accessor: (d) => d };
19
+ const size = (value) => typeof value === 'number' ? value : MappingPhase.#channel(value);
20
+ const channels = {
21
+ x: MappingPhase.#channel(first?.x ?? state.x) ?? identity,
22
+ y: MappingPhase.#channel(first?.y ?? state.y) ?? identity,
23
+ grouping: MappingPhase.#channel(state.seriesGrouping),
24
+ color: MappingPhase.#channel(first?.color ?? state.color),
25
+ opacity: MappingPhase.#channel(state.opacity),
26
+ symbol: MappingPhase.#channel(state.symbol),
27
+ r: size(state.r),
28
+ length: size(state.length)
29
+ };
30
+ const next = { ...state, channels };
31
+ return this.#options.extend ? this.#options.extend(next, ctx) : next;
32
+ };
33
+ /** A channel prop resolved to a row accessor, keeping it as `source`, or left out when unset. */
34
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
35
+ static #channel(accessor) {
36
+ return accessor !== undefined
37
+ ? { accessor: resolveAccessor(accessor), source: accessor }
38
+ : undefined;
39
+ }
40
+ }
@@ -0,0 +1,14 @@
1
+ import type { AxisPlotCtx, AxisPlotState, MarkersStageOptions, PhaseStage } from '../../types/phases';
2
+ /**
3
+ * The shared "markers" phase: everything the plot draws, bottom to top - the
4
+ * plot kind's own marks, then what the "statistics" phase left in
5
+ * `state.markers` (the author's markers and the plot's statistics), then its
6
+ * value labels when `styles.values.show` turns them on, each with what every
7
+ * label shares ({@link ValueLabels.hooks}).
8
+ */
9
+ export declare class MarkersPhase<TState extends AxisPlotState<any, any, any, any>, TCtx extends AxisPlotCtx> implements PhaseStage<TState, TCtx> {
10
+ #private;
11
+ readonly phase: "markers";
12
+ constructor(options: MarkersStageOptions<TState, TCtx>);
13
+ run: (state: TState, ctx: TCtx) => TState;
14
+ }
@@ -0,0 +1,27 @@
1
+ /**
2
+ * The shared "markers" phase: everything the plot draws, bottom to top - the
3
+ * plot kind's own marks, then what the "statistics" phase left in
4
+ * `state.markers` (the author's markers and the plot's statistics), then its
5
+ * value labels when `styles.values.show` turns them on, each with what every
6
+ * label shares ({@link ValueLabels.hooks}).
7
+ */
8
+ export class MarkersPhase {
9
+ phase = 'markers';
10
+ #options;
11
+ constructor(options) {
12
+ this.#options = options;
13
+ }
14
+ run = (state, ctx) => {
15
+ const options = this.#options;
16
+ const labels = state.valueLabels;
17
+ const valueLabels = labels?.show && options.valueLabels
18
+ ? options
19
+ .valueLabels(labels, state, ctx)
20
+ .map((marker) => ({ ...labels.hooks(ctx), ...marker }))
21
+ : [];
22
+ return {
23
+ ...state,
24
+ markers: [...options.marks(state, ctx), ...(state.markers ?? []), ...valueLabels]
25
+ };
26
+ };
27
+ }
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Every finite numeric value a set of markers draws on one axis, read from
3
+ * each marker's own `data`: its position channel and its range edges (`x1`/`x2`
4
+ * for `x`), so a rect's or a band's full extent counts, not just its middle.
5
+ * Markers without their own `data` reuse the plot's rows, which the plot's
6
+ * domain already covers, so they're skipped. Lets a plot's scale domain grow to
7
+ * fit derived marks (a density curve's peak, a regression band) instead of
8
+ * clipping them.
9
+ */
10
+ export declare class MarkerAxisValues {
11
+ static of(markers: object[], axis: 'x' | 'y'): number[];
12
+ }
@@ -0,0 +1,34 @@
1
+ /**
2
+ * Every finite numeric value a set of markers draws on one axis, read from
3
+ * each marker's own `data`: its position channel and its range edges (`x1`/`x2`
4
+ * for `x`), so a rect's or a band's full extent counts, not just its middle.
5
+ * Markers without their own `data` reuse the plot's rows, which the plot's
6
+ * domain already covers, so they're skipped. Lets a plot's scale domain grow to
7
+ * fit derived marks (a density curve's peak, a regression band) instead of
8
+ * clipping them.
9
+ */
10
+ export class MarkerAxisValues {
11
+ static of(markers, axis) {
12
+ return markers.flatMap((markerConfig) => {
13
+ const marker = markerConfig;
14
+ const rows = marker.data;
15
+ if (!rows)
16
+ return [];
17
+ return [axis, `${axis}1`, `${axis}2`].flatMap((channel) => {
18
+ const accessor = marker[channel];
19
+ // A literal edge (a bar anchored at `0`) counts as is.
20
+ if (typeof accessor === 'number')
21
+ return Number.isFinite(accessor) ? [accessor] : [];
22
+ // svelteplot's own transforms key their output rows by symbols, so a symbol accessor is read like a field key.
23
+ if (!(typeof accessor === 'string' ||
24
+ typeof accessor === 'symbol' ||
25
+ typeof accessor === 'function'))
26
+ return [];
27
+ return rows
28
+ .map((row) => (typeof accessor === 'function' ? accessor(row) : row[accessor]))
29
+ .map(Number)
30
+ .filter(Number.isFinite);
31
+ });
32
+ });
33
+ }
34
+ }
@@ -0,0 +1,29 @@
1
+ import { PlotAxes } from '../data/PlotAxes';
2
+ import type { AxisChannelName } from '../../types/layout/mapping';
3
+ import type { AxisPlotState, AxisPlotCtx, PhaseStage, ScalesStageOptions } from '../../types/phases';
4
+ type AnyAxisState = AxisPlotState<any, any, any, any>;
5
+ /**
6
+ * The shared "scales" phase. Each axis the kind lays out as categories
7
+ * (`state.axes.bands`) becomes a band scale, padded and ordered as the kind
8
+ * says; each `symmetric` axis reaches as far below zero as above it; and an
9
+ * unpinned numeric axis grows to cover derived markers and the ranges the
10
+ * transforms gave the rows - from zero on the axes `zero` names. The author's
11
+ * `scales` always win, and a kind adds its own on top (`defaults`, `fit`, `extend`).
12
+ */
13
+ export declare class ScalesPhase<TState extends AnyAxisState, TCtx extends AxisPlotCtx> implements PhaseStage<TState, TCtx> {
14
+ #private;
15
+ readonly phase: "scales";
16
+ constructor(options?: ScalesStageOptions<TState, TCtx>);
17
+ /** The axes whose marks grow from zero, in this state. */
18
+ zeroAxes(state: {
19
+ axes?: PlotAxes;
20
+ }): AxisChannelName[];
21
+ /** The axes that reach as far below zero as above it, in this state. */
22
+ symmetricAxes(state: {
23
+ axes?: PlotAxes;
24
+ }): AxisChannelName[];
25
+ /** Whether the kind keeps its categories in the order the data gives them. */
26
+ get keepsDataOrder(): boolean;
27
+ run: (state: TState, ctx: TCtx) => TState;
28
+ }
29
+ export {};
@@ -0,0 +1,153 @@
1
+ import { ProcessedPositions } from '../transforms/ProcessedPositions';
2
+ import { isGapValue } from '../../plots/utils/gaps';
3
+ import { MarkerAxisValues } from './MarkerAxisValues';
4
+ import { PlotAxes } from '../data/PlotAxes';
5
+ import { NiceTicks } from '../../layout/scales/NiceTicks';
6
+ import { DISCRETE_SCALE_TYPES } from '../../types/layout/scales';
7
+ const AXES = ['x', 'y'];
8
+ const POSITION_CHANNELS = {
9
+ x: ['x', 'x1', 'x2'],
10
+ y: ['y', 'y1', 'y2']
11
+ };
12
+ const DISCRETE_TYPES = new Set(DISCRETE_SCALE_TYPES);
13
+ /** The values as finite numbers, or `undefined` when any isn't a number (a band or date axis). */
14
+ function numeric(values) {
15
+ const present = values.filter((v) => v != null && v !== '');
16
+ if (!present.every((v) => typeof v === 'number'))
17
+ return undefined;
18
+ return present.filter(Number.isFinite);
19
+ }
20
+ /**
21
+ * The shared "scales" phase. Each axis the kind lays out as categories
22
+ * (`state.axes.bands`) becomes a band scale, padded and ordered as the kind
23
+ * says; each `symmetric` axis reaches as far below zero as above it; and an
24
+ * unpinned numeric axis grows to cover derived markers and the ranges the
25
+ * transforms gave the rows - from zero on the axes `zero` names. The author's
26
+ * `scales` always win, and a kind adds its own on top (`defaults`, `fit`, `extend`).
27
+ */
28
+ export class ScalesPhase {
29
+ phase = 'scales';
30
+ #options;
31
+ constructor(options = {}) {
32
+ this.#options = options;
33
+ }
34
+ /** The axes whose marks grow from zero, in this state. */
35
+ zeroAxes(state) {
36
+ return ScalesPhase.#axesOf(this.#options.zero, state);
37
+ }
38
+ /** The axes that reach as far below zero as above it, in this state. */
39
+ symmetricAxes(state) {
40
+ return ScalesPhase.#axesOf(this.#options.symmetric, state);
41
+ }
42
+ /** Whether the kind keeps its categories in the order the data gives them. */
43
+ get keepsDataOrder() {
44
+ return this.#options.bandOrder === 'data';
45
+ }
46
+ run = (state, ctx) => {
47
+ const options = this.#options;
48
+ const { axes, processedData, markers = [] } = state;
49
+ const defaults = options.defaults?.(state, ctx) ?? {};
50
+ const symmetric = new Set(this.symmetricAxes(state));
51
+ const zero = new Set(this.zeroAxes(state));
52
+ const scales = { ...state.scales };
53
+ for (const axis of AXES) {
54
+ const own = ScalesPhase.#defaultsOf(defaults, axis, axes);
55
+ if (axes?.bands.includes(axis)) {
56
+ scales[axis] = this.#band(scales[axis], own, processedData, axis);
57
+ continue;
58
+ }
59
+ // The value axis of a plot with categories is never one itself, whatever it was marked as.
60
+ const stripType = axis === axes?.value &&
61
+ axes.bands.length > 0 &&
62
+ DISCRETE_TYPES.has(scales[axis]?.type ?? '');
63
+ if (Object.keys(own).length || stripType) {
64
+ const given = { ...scales[axis] };
65
+ if (stripType)
66
+ delete given.type;
67
+ scales[axis] = { ...own, ...given };
68
+ }
69
+ if (symmetric.has(axis) && !scales[axis]?.domain) {
70
+ const reach = ScalesPhase.#reachOf(state, axis);
71
+ scales[axis] = { ...scales[axis], domain: [-reach, reach] };
72
+ }
73
+ }
74
+ const fitted = options.fit?.({ ...state, scales }, ctx) ?? {};
75
+ for (const axis of AXES) {
76
+ if (fitted[axis])
77
+ scales[axis] = { ...scales[axis], ...fitted[axis] };
78
+ }
79
+ for (const axis of AXES) {
80
+ if (axes?.bands.includes(axis) || scales[axis]?.domain)
81
+ continue;
82
+ const derived = MarkerAxisValues.of(markers, axis);
83
+ const ranged = POSITION_CHANNELS[axis]
84
+ .slice(1)
85
+ .some((name) => processedData?.channels[name] !== undefined);
86
+ // A transform's own output on an axis from zero (a bin's count) has no baseline row to reach it.
87
+ const aggregated = (processedData?.transforms.length ?? 0) > 0 && zero.has(axis);
88
+ if (!derived.length && !ranged && !aggregated)
89
+ continue;
90
+ const own = numeric(ProcessedPositions.values(processedData, axis));
91
+ if (!own)
92
+ continue;
93
+ const values = [...own, ...derived, ...(zero.has(axis) ? [0] : [])];
94
+ const lo = Math.min(...values);
95
+ const hi = Math.max(...values);
96
+ const author = scales[axis];
97
+ // Niced here, with a tolerance, so parts that add up to a whole land on its tick.
98
+ const niced = author?.nice !== false && author?.ticks == null && hi > lo;
99
+ scales[axis] = niced
100
+ ? {
101
+ ...author,
102
+ domain: NiceTicks.fit(state, axis, lo, hi, author?.niceTolerance),
103
+ nice: false
104
+ }
105
+ : { ...author, domain: [lo, hi], nice: author?.nice ?? true };
106
+ }
107
+ const next = { ...state, scales };
108
+ return options.extend ? options.extend(next, ctx) : next;
109
+ };
110
+ /** A category axis as a band scale: the kind's options under the author's, in the order the kind asks for. */
111
+ #band(author, own, processed, axis) {
112
+ const given = author ?? {};
113
+ const type = given.type === undefined || given.type === 'auto' || given.type === 'categorical'
114
+ ? 'band'
115
+ : given.type;
116
+ const band = { ...own, ...given, type };
117
+ // A padding the author gives replaces the kind's own inner and outer ones.
118
+ if (given.padding !== undefined) {
119
+ if (own.paddingInner !== undefined && given.paddingInner === undefined) {
120
+ band.paddingInner = given.padding;
121
+ }
122
+ if (own.paddingOuter !== undefined && given.paddingOuter === undefined) {
123
+ band.paddingOuter = given.padding;
124
+ }
125
+ }
126
+ if (this.keepsDataOrder && !band.domain) {
127
+ band.domain = [...new Set(ProcessedPositions.values(processed, axis))];
128
+ }
129
+ return band;
130
+ }
131
+ /** The axes `refs` name, by name or by the role they play in this state. */
132
+ static #axesOf(refs, state) {
133
+ return (refs ?? []).map((ref) => ref === 'value'
134
+ ? PlotAxes.valueOf(state)
135
+ : ref === 'category'
136
+ ? PlotAxes.categoryOf(state)
137
+ : ref);
138
+ }
139
+ /** The kind's options for one axis: those for its role, then those for it by name. */
140
+ static #defaultsOf(defaults, axis, axes) {
141
+ const role = axis === axes?.value ? 'value' : axis === axes?.category ? 'category' : undefined;
142
+ return { ...(role ? defaults[role] : undefined), ...defaults[axis] };
143
+ }
144
+ /** How far an axis reaches from zero: the largest magnitude its rows, and the gaps filled in between them, sit at. */
145
+ static #reachOf(state, axis) {
146
+ const rows = ProcessedPositions.values(state.processedData, axis)
147
+ .filter((v) => !isGapValue(v))
148
+ .map((v) => Math.abs(Number(v)));
149
+ const filled = [...(state.gapFillMaps?.values() ?? [])].flatMap((fills) => [...fills.values()].map((fill) => Math.abs(fill.value)));
150
+ const reach = Math.max(...[...rows, ...filled].filter(Number.isFinite));
151
+ return Number.isFinite(reach) ? reach : 1;
152
+ }
153
+ }