@fundar/data-chart-telling 0.0.63 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (786) hide show
  1. package/CHANGELOG.md +17 -0
  2. package/LICENSE +21 -0
  3. package/README.md +81 -558
  4. package/dist/configuration/config.svelte.d.ts +5 -5
  5. package/dist/configuration/config.svelte.js +133 -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 +433 -80
  17. package/dist/configuration/themes/index.js +6 -5
  18. package/dist/index.d.ts +34 -48
  19. package/dist/index.js +19 -35
  20. package/dist/layout/base/BasePlotLayout.svelte +312 -0
  21. package/dist/layout/base/BasePlotLayout.svelte.d.ts +111 -0
  22. package/dist/layout/composer/PlotComposer.svelte +94 -0
  23. package/dist/layout/composer/PlotComposer.svelte.d.ts +13 -0
  24. package/dist/layout/coordinates/CameraFit.svelte +4 -4
  25. package/dist/layout/coordinates/CoordinatesLayout.svelte +11 -3
  26. package/dist/layout/coordinates/CoordinatesLayout.svelte.d.ts +6 -2
  27. package/dist/layout/coordinates/camera.svelte.d.ts +1 -1
  28. package/dist/layout/coordinates/camera.svelte.js +6 -6
  29. package/dist/layout/coordinates/projections/argentina.js +3 -3
  30. package/dist/layout/coordinates/projections/fit.js +1 -1
  31. package/dist/layout/coordinates/resolveCameraTarget.d.ts +1 -1
  32. package/dist/layout/coordinates/resolveProjection.d.ts +1 -1
  33. package/dist/layout/coordinates/resolveProjection.js +2 -2
  34. package/dist/layout/coordinates/rotate.svelte.d.ts +3 -3
  35. package/dist/layout/coordinates/rotate.svelte.js +8 -8
  36. package/dist/layout/coordinates/zoom.svelte.d.ts +1 -1
  37. package/dist/layout/facet/FacetIndicator.svelte +23 -23
  38. package/dist/layout/facet/FacetLayout.svelte +435 -398
  39. package/dist/layout/facet/FacetLayout.svelte.d.ts +9 -3
  40. package/dist/layout/facet/axes.d.ts +16 -0
  41. package/dist/layout/facet/axes.js +25 -0
  42. package/dist/layout/facet/config.d.ts +32 -0
  43. package/dist/layout/facet/config.js +82 -0
  44. package/dist/layout/figure/Figure.svelte +177 -0
  45. package/dist/layout/figure/Figure.svelte.d.ts +14 -0
  46. package/dist/layout/figure/FigureChrome.svelte +341 -0
  47. package/dist/layout/figure/FigureChrome.svelte.d.ts +21 -0
  48. package/dist/layout/geometry/FrameClip.svelte +45 -0
  49. package/dist/layout/geometry/FrameClip.svelte.d.ts +8 -0
  50. package/dist/layout/geometry/FrameClipping.d.ts +24 -0
  51. package/dist/layout/geometry/FrameClipping.js +40 -0
  52. package/dist/layout/geometry/GeometryLayout.svelte +287 -224
  53. package/dist/layout/geometry/GeometryLayout.svelte.d.ts +10 -10
  54. package/dist/layout/grid/Grid.svelte +194 -0
  55. package/dist/layout/grid/Grid.svelte.d.ts +26 -0
  56. package/dist/layout/grid/GridAlignment.svelte.d.ts +31 -0
  57. package/dist/layout/grid/GridAlignment.svelte.js +56 -0
  58. package/dist/layout/grid/GridCell.svelte +141 -0
  59. package/dist/layout/grid/GridCell.svelte.d.ts +17 -0
  60. package/dist/layout/grid/GridCellsRegistry.svelte.d.ts +52 -0
  61. package/dist/layout/grid/GridCellsRegistry.svelte.js +70 -0
  62. package/dist/layout/grid/GridPlan.d.ts +49 -0
  63. package/dist/layout/grid/GridPlan.js +167 -0
  64. package/dist/layout/grid/Tags.d.ts +8 -0
  65. package/dist/layout/grid/Tags.js +39 -0
  66. package/dist/layout/hover/HoverScope.svelte +11 -0
  67. package/dist/layout/hover/HoverScope.svelte.d.ts +8 -0
  68. package/dist/layout/hover/HoverSettings.d.ts +20 -0
  69. package/dist/layout/hover/HoverSettings.js +27 -0
  70. package/dist/layout/hover/HoverState.svelte.d.ts +47 -0
  71. package/dist/layout/hover/HoverState.svelte.js +99 -0
  72. package/dist/layout/hover/PlotHover.svelte.d.ts +63 -0
  73. package/dist/layout/hover/PlotHover.svelte.js +133 -0
  74. package/dist/layout/interaction/PlotInteraction.svelte.d.ts +38 -0
  75. package/dist/layout/interaction/PlotInteraction.svelte.js +56 -0
  76. package/dist/layout/legend/AxisNumberFormat.d.ts +12 -0
  77. package/dist/layout/legend/AxisNumberFormat.js +25 -0
  78. package/dist/layout/legend/ContinuousSection.svelte +365 -335
  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 +39 -32
  83. package/dist/layout/legend/DiscreteSwatchItem.svelte +4 -1
  84. package/dist/layout/legend/DiscreteSymbolIcon.svelte +14 -9
  85. package/dist/layout/legend/LegendChannels.d.ts +21 -0
  86. package/dist/layout/legend/LegendChannels.js +221 -0
  87. package/dist/layout/legend/LegendLayout.svelte +49 -43
  88. package/dist/layout/legend/LegendState.svelte.d.ts +79 -0
  89. package/dist/layout/legend/LegendState.svelte.js +329 -0
  90. package/dist/layout/legend/LegendText.d.ts +12 -0
  91. package/dist/layout/legend/LegendText.js +22 -0
  92. package/dist/layout/legend/SizeSection.svelte +84 -0
  93. package/dist/layout/legend/SizeSection.svelte.d.ts +7 -0
  94. package/dist/layout/legend/SymbolSection.svelte +31 -0
  95. package/dist/layout/legend/SymbolSection.svelte.d.ts +8 -0
  96. package/dist/layout/margins/Box.d.ts +84 -0
  97. package/dist/layout/margins/Box.js +138 -0
  98. package/dist/layout/margins/Margins.d.ts +37 -0
  99. package/dist/layout/margins/Margins.js +71 -0
  100. package/dist/layout/margins/PlotMargins.svelte.d.ts +101 -0
  101. package/dist/layout/margins/PlotMargins.svelte.js +219 -0
  102. package/dist/layout/plot/Core.svelte +61 -0
  103. package/dist/layout/plot/Core.svelte.d.ts +41 -0
  104. package/dist/layout/plot/PanelRun.svelte +28 -0
  105. package/dist/{charts/heatmap/Chart.svelte.d.ts → layout/plot/PanelRun.svelte.d.ts} +11 -7
  106. package/dist/layout/plot/Plot.svelte +284 -0
  107. package/dist/layout/plot/Plot.svelte.d.ts +49 -0
  108. package/dist/layout/plot/PlotContext.d.ts +41 -0
  109. package/dist/layout/plot/PlotContext.js +46 -0
  110. package/dist/layout/plot/PublicPlotContext.d.ts +130 -0
  111. package/dist/layout/plot/PublicPlotContext.js +236 -0
  112. package/dist/layout/plot/Slice.d.ts +44 -0
  113. package/dist/layout/plot/Slice.js +98 -0
  114. package/dist/layout/plot/usePlot.d.ts +9 -0
  115. package/dist/layout/plot/usePlot.js +13 -0
  116. package/dist/layout/scales/ScalesLayout.svelte +241 -206
  117. package/dist/layout/scales/ScalesLayout.svelte.d.ts +2 -1
  118. package/dist/layout/scales/buildScale.d.ts +5 -22
  119. package/dist/layout/scales/buildScale.js +11 -34
  120. package/dist/layout/scales/niceDomain.d.ts +3 -3
  121. package/dist/layout/scales/niceDomain.js +4 -4
  122. package/dist/layout/styles/StylesLayout.svelte +65 -65
  123. package/dist/layout/styles/TileLayer.svelte +78 -76
  124. package/dist/layout/styles/TileLayer.svelte.d.ts +1 -1
  125. package/dist/layout/styles/ValueLabels.d.ts +97 -0
  126. package/dist/layout/styles/ValueLabels.js +237 -0
  127. package/dist/layout/timeline/Timeline.svelte +80 -74
  128. package/dist/layout/timeline/TimelineFrame.svelte +86 -0
  129. package/dist/layout/timeline/TimelineFrame.svelte.d.ts +16 -0
  130. package/dist/layout/timeline/TimelineLayout.svelte +114 -169
  131. package/dist/layout/timeline/TimelineLayout.svelte.d.ts +2 -0
  132. package/dist/layout/timeline/TimelinePlayer.svelte +195 -0
  133. package/dist/layout/timeline/TimelinePlayer.svelte.d.ts +7 -0
  134. package/dist/layout/timeline/TimelineRule.svelte +50 -0
  135. package/dist/layout/timeline/TimelineRule.svelte.d.ts +7 -0
  136. package/dist/layout/timeline/TimelineState.svelte.d.ts +82 -0
  137. package/dist/layout/timeline/TimelineState.svelte.js +226 -0
  138. package/dist/layout/timeline/TimelineSteps.d.ts +24 -0
  139. package/dist/layout/timeline/TimelineSteps.js +48 -0
  140. package/dist/layout/tooltip/Tooltip.svelte +82 -85
  141. package/dist/layout/tooltip/Tooltip.svelte.d.ts +43 -24
  142. package/dist/layout/tooltip/TooltipState.svelte.d.ts +61 -0
  143. package/dist/layout/tooltip/TooltipState.svelte.js +107 -0
  144. package/dist/markers/MarkerKinds.d.ts +173 -0
  145. package/dist/markers/MarkerKinds.js +51 -0
  146. package/dist/markers/area/AreaMarker.svelte +110 -0
  147. package/dist/markers/area/AreaMarker.svelte.d.ts +7 -0
  148. package/dist/markers/arrow/ArrowMarker.svelte +28 -0
  149. package/dist/markers/arrow/ArrowMarker.svelte.d.ts +7 -0
  150. package/dist/markers/{BarMarker.svelte → bar/BarMarker.svelte} +54 -52
  151. package/dist/markers/{BarMarker.svelte.d.ts → bar/BarMarker.svelte.d.ts} +1 -1
  152. package/dist/markers/bollinger/BollingerMarker.svelte +44 -0
  153. package/dist/markers/bollinger/BollingerMarker.svelte.d.ts +7 -0
  154. package/dist/markers/box/BoxMarker.svelte +143 -0
  155. package/dist/markers/box/BoxMarker.svelte.d.ts +7 -0
  156. package/dist/markers/brush/BrushMarker.svelte +32 -0
  157. package/dist/markers/brush/BrushMarker.svelte.d.ts +7 -0
  158. package/dist/markers/cell/CellMarker.svelte +27 -0
  159. package/dist/markers/{CellMarker.svelte.d.ts → cell/CellMarker.svelte.d.ts} +1 -1
  160. package/dist/markers/contour/ContourClipMarker.svelte +83 -0
  161. package/dist/markers/{ContourClipMarker.svelte.d.ts → contour/ContourClipMarker.svelte.d.ts} +1 -1
  162. package/dist/markers/contour/ContourMarker.svelte +28 -0
  163. package/dist/markers/{ContourMarker.svelte.d.ts → contour/ContourMarker.svelte.d.ts} +1 -1
  164. package/dist/markers/delaunay/DelaunayLinkMarker.svelte +26 -0
  165. package/dist/markers/delaunay/DelaunayLinkMarker.svelte.d.ts +7 -0
  166. package/dist/markers/delaunay/DelaunayMeshMarker.svelte +26 -0
  167. package/dist/markers/delaunay/DelaunayMeshMarker.svelte.d.ts +7 -0
  168. package/dist/markers/delta/Delta.d.ts +21 -0
  169. package/dist/markers/delta/Delta.js +60 -0
  170. package/dist/markers/delta/DeltaMarker.svelte +94 -0
  171. package/dist/markers/{DeltaMarker.svelte.d.ts → delta/DeltaMarker.svelte.d.ts} +2 -2
  172. package/dist/markers/density/DensityMarker.svelte +63 -0
  173. package/dist/markers/density/DensityMarker.svelte.d.ts +7 -0
  174. package/dist/markers/difference/DifferenceMarker.svelte +30 -0
  175. package/dist/markers/difference/DifferenceMarker.svelte.d.ts +7 -0
  176. package/dist/markers/dot/DotMarker.svelte +102 -0
  177. package/dist/markers/{DotMarker.svelte.d.ts → dot/DotMarker.svelte.d.ts} +5 -17
  178. package/dist/markers/geo/GeoFeaturesMarker.svelte +39 -0
  179. package/dist/markers/{GeoFeaturesMarker.svelte.d.ts → geo/GeoFeaturesMarker.svelte.d.ts} +1 -1
  180. package/dist/markers/geo/GeoHoverMarker.svelte +28 -0
  181. package/dist/markers/{GeoHoverMarker.svelte.d.ts → geo/GeoHoverMarker.svelte.d.ts} +2 -2
  182. package/dist/markers/geo/GraticuleMarker.svelte +18 -0
  183. package/dist/markers/{GraticuleMarker.svelte.d.ts → geo/GraticuleMarker.svelte.d.ts} +1 -1
  184. package/dist/markers/geo/SphereMarker.svelte +15 -0
  185. package/dist/markers/{SphereMarker.svelte.d.ts → geo/SphereMarker.svelte.d.ts} +1 -1
  186. package/dist/markers/hover/HoverMarker.svelte +252 -0
  187. package/dist/markers/{HoverMarker.svelte.d.ts → hover/HoverMarker.svelte.d.ts} +10 -10
  188. package/dist/markers/hull/HullMarker.svelte +25 -0
  189. package/dist/markers/hull/HullMarker.svelte.d.ts +7 -0
  190. package/dist/markers/image/ImageMarker.svelte +22 -0
  191. package/dist/markers/image/ImageMarker.svelte.d.ts +7 -0
  192. package/dist/markers/inset/InsetMarker.svelte +184 -150
  193. package/dist/markers/inset/InsetMarker.svelte.d.ts +4 -4
  194. package/dist/markers/inset/insetLayout.d.ts +1 -1
  195. package/dist/markers/inset/insetLayout.js +6 -2
  196. package/dist/markers/inset/insetProjection.d.ts +1 -1
  197. package/dist/markers/inset/insetProjection.js +3 -3
  198. package/dist/markers/line/LineMarker.svelte +30 -0
  199. package/dist/markers/{LineMarker.svelte.d.ts → line/LineMarker.svelte.d.ts} +1 -1
  200. package/dist/markers/link/LinkMarker.svelte +47 -0
  201. package/dist/markers/{LinkMarker.svelte.d.ts → link/LinkMarker.svelte.d.ts} +1 -1
  202. package/dist/markers/raster/RasterMarker.svelte +31 -0
  203. package/dist/markers/raster/RasterMarker.svelte.d.ts +7 -0
  204. package/dist/markers/rect/RectMarker.svelte +62 -0
  205. package/dist/markers/rect/RectMarker.svelte.d.ts +7 -0
  206. package/dist/markers/regression/RegressionMarker.svelte +60 -0
  207. package/dist/markers/regression/RegressionMarker.svelte.d.ts +7 -0
  208. package/dist/markers/rule/RuleMarker.svelte +47 -0
  209. package/dist/markers/{RuleMarker.svelte.d.ts → rule/RuleMarker.svelte.d.ts} +2 -5
  210. package/dist/markers/text/Declutter.d.ts +35 -0
  211. package/dist/markers/text/Declutter.js +157 -0
  212. package/dist/markers/text/TextMarker.svelte +244 -0
  213. package/dist/markers/{TextMarker.svelte.d.ts → text/TextMarker.svelte.d.ts} +5 -9
  214. package/dist/markers/tick/TickMarker.svelte +44 -0
  215. package/dist/markers/tick/TickMarker.svelte.d.ts +7 -0
  216. package/dist/markers/trail/TrailMarker.svelte +27 -0
  217. package/dist/markers/trail/TrailMarker.svelte.d.ts +7 -0
  218. package/dist/markers/utils/BandNudge.d.ts +22 -0
  219. package/dist/markers/utils/BandNudge.js +23 -0
  220. package/dist/markers/utils/MarkerChannels.d.ts +49 -0
  221. package/dist/markers/utils/MarkerChannels.js +97 -0
  222. package/dist/markers/vector/VectorMarker.svelte +29 -0
  223. package/dist/markers/{VectorMarker.svelte.d.ts → vector/VectorMarker.svelte.d.ts} +1 -1
  224. package/dist/markers/voronoi/VoronoiMarker.svelte +26 -0
  225. package/dist/markers/voronoi/VoronoiMarker.svelte.d.ts +7 -0
  226. package/dist/markers/voronoi/VoronoiMeshMarker.svelte +26 -0
  227. package/dist/markers/voronoi/VoronoiMeshMarker.svelte.d.ts +7 -0
  228. package/dist/markers/waffle/WaffleMarker.svelte +56 -0
  229. package/dist/markers/waffle/WaffleMarker.svelte.d.ts +7 -0
  230. package/dist/phases/Pipeline.d.ts +108 -0
  231. package/dist/phases/Pipeline.js +226 -0
  232. package/dist/phases/data/DataPhase.d.ts +25 -0
  233. package/dist/phases/data/DataPhase.js +82 -0
  234. package/dist/phases/data/PlotAxes.d.ts +75 -0
  235. package/dist/phases/data/PlotAxes.js +151 -0
  236. package/dist/phases/facet/FacetPhase.d.ts +52 -0
  237. package/dist/phases/facet/FacetPhase.js +114 -0
  238. package/dist/phases/hover/HoverPhase.d.ts +73 -0
  239. package/dist/phases/hover/HoverPhase.js +144 -0
  240. package/dist/phases/mapping/MappingPhase.d.ts +17 -0
  241. package/dist/phases/mapping/MappingPhase.js +42 -0
  242. package/dist/phases/markers/MarkersPhase.d.ts +14 -0
  243. package/dist/phases/markers/MarkersPhase.js +27 -0
  244. package/dist/phases/scales/MarkerAxisValues.d.ts +12 -0
  245. package/dist/phases/scales/MarkerAxisValues.js +34 -0
  246. package/dist/phases/scales/ScalesPhase.d.ts +31 -0
  247. package/dist/phases/scales/ScalesPhase.js +157 -0
  248. package/dist/phases/sharedScales/SharedScalesPhase.d.ts +55 -0
  249. package/dist/phases/sharedScales/SharedScalesPhase.js +168 -0
  250. package/dist/phases/statistics/AuthorMarkers.d.ts +43 -0
  251. package/dist/phases/statistics/AuthorMarkers.js +69 -0
  252. package/dist/phases/statistics/MarkerGrouping.d.ts +48 -0
  253. package/dist/phases/statistics/MarkerGrouping.js +113 -0
  254. package/dist/phases/statistics/Statistics.d.ts +53 -0
  255. package/dist/phases/statistics/Statistics.js +156 -0
  256. package/dist/phases/statistics/StatisticsPhase.d.ts +18 -0
  257. package/dist/phases/statistics/StatisticsPhase.js +68 -0
  258. package/dist/phases/statistics/methods/BollingerStatistic.d.ts +9 -0
  259. package/dist/phases/statistics/methods/BollingerStatistic.js +18 -0
  260. package/dist/phases/statistics/methods/BoxStatistic.d.ts +9 -0
  261. package/dist/phases/statistics/methods/BoxStatistic.js +18 -0
  262. package/dist/phases/statistics/methods/Density2dStatistic.d.ts +9 -0
  263. package/dist/phases/statistics/methods/Density2dStatistic.js +18 -0
  264. package/dist/phases/statistics/methods/DensityStatistic.d.ts +12 -0
  265. package/dist/phases/statistics/methods/DensityStatistic.js +29 -0
  266. package/dist/phases/statistics/methods/MovingAverageStatistic.d.ts +12 -0
  267. package/dist/phases/statistics/methods/MovingAverageStatistic.js +30 -0
  268. package/dist/phases/statistics/methods/RegressionStatistic.d.ts +9 -0
  269. package/dist/phases/statistics/methods/RegressionStatistic.js +21 -0
  270. package/dist/phases/styles/StylesPhase.d.ts +13 -0
  271. package/dist/phases/styles/StylesPhase.js +17 -0
  272. package/dist/phases/tooltip/TooltipPhase.d.ts +12 -0
  273. package/dist/phases/tooltip/TooltipPhase.js +10 -0
  274. package/dist/phases/transforms/Transforms.d.ts +42 -0
  275. package/dist/phases/transforms/Transforms.js +130 -0
  276. package/dist/phases/transforms/TransformsPhase.d.ts +64 -0
  277. package/dist/phases/transforms/TransformsPhase.js +242 -0
  278. package/dist/phases/transforms/methods/AnchorBar.d.ts +13 -0
  279. package/dist/phases/transforms/methods/AnchorBar.js +21 -0
  280. package/dist/phases/transforms/methods/BinTransform.d.ts +7 -0
  281. package/dist/phases/transforms/methods/BinTransform.js +48 -0
  282. package/dist/phases/transforms/methods/DensityTransform.d.ts +6 -0
  283. package/dist/phases/transforms/methods/DensityTransform.js +13 -0
  284. package/dist/phases/transforms/methods/GroupTransform.d.ts +8 -0
  285. package/dist/phases/transforms/methods/GroupTransform.js +39 -0
  286. package/dist/phases/transforms/methods/NormalizeTransform.d.ts +10 -0
  287. package/dist/phases/transforms/methods/NormalizeTransform.js +30 -0
  288. package/dist/phases/transforms/methods/OrderTransform.d.ts +16 -0
  289. package/dist/phases/transforms/methods/OrderTransform.js +43 -0
  290. package/dist/phases/transforms/methods/PerGroup.d.ts +11 -0
  291. package/dist/phases/transforms/methods/PerGroup.js +39 -0
  292. package/dist/phases/transforms/methods/PositionTransform.d.ts +15 -0
  293. package/dist/phases/transforms/methods/PositionTransform.js +74 -0
  294. package/dist/phases/transforms/methods/StackTransform.d.ts +8 -0
  295. package/dist/phases/transforms/methods/StackTransform.js +29 -0
  296. package/dist/phases/transforms/methods/WindowTransform.d.ts +8 -0
  297. package/dist/phases/transforms/methods/WindowTransform.js +23 -0
  298. package/dist/plots/area/Plot.svelte +42 -0
  299. package/dist/plots/{heatmap/ValueLabels.svelte.d.ts → area/Plot.svelte.d.ts} +8 -16
  300. package/dist/plots/area/defaults.d.ts +4 -0
  301. package/dist/plots/area/defaults.js +21 -0
  302. package/dist/plots/area/markers.d.ts +14 -0
  303. package/dist/plots/area/markers.js +40 -0
  304. package/dist/plots/bar/Plot.svelte +33 -438
  305. package/dist/plots/bar/Plot.svelte.d.ts +5 -8
  306. package/dist/plots/bar/defaults.d.ts +9 -0
  307. package/dist/plots/bar/defaults.js +92 -0
  308. package/dist/plots/bar/markers.d.ts +45 -0
  309. package/dist/plots/bar/markers.js +232 -0
  310. package/dist/plots/geo/Core.svelte +151 -0
  311. package/dist/plots/geo/Core.svelte.d.ts +25 -0
  312. package/dist/plots/geo/Plot.svelte +103 -324
  313. package/dist/plots/geo/Plot.svelte.d.ts +5 -9
  314. package/dist/plots/geo/defaults.d.ts +4 -0
  315. package/dist/plots/geo/defaults.js +16 -0
  316. package/dist/plots/geo/features.svelte.d.ts +5 -0
  317. package/dist/plots/geo/features.svelte.js +44 -0
  318. package/dist/plots/geo/phases/data.d.ts +6 -0
  319. package/dist/plots/geo/phases/data.js +26 -0
  320. package/dist/plots/geo/phases/hover.d.ts +9 -0
  321. package/dist/plots/geo/phases/hover.js +45 -0
  322. package/dist/plots/geo/phases/markers.d.ts +9 -0
  323. package/dist/plots/geo/phases/markers.js +76 -0
  324. package/dist/plots/geo/phases/scales.d.ts +10 -0
  325. package/dist/plots/geo/phases/scales.js +85 -0
  326. package/dist/plots/geo/phases/tooltip.d.ts +3 -0
  327. package/dist/plots/geo/phases/tooltip.js +5 -0
  328. package/dist/plots/geo/slices.d.ts +18 -0
  329. package/dist/plots/geo/slices.js +56 -0
  330. package/dist/plots/heatmap/Plot.svelte +55 -249
  331. package/dist/plots/heatmap/Plot.svelte.d.ts +5 -8
  332. package/dist/plots/heatmap/defaults.d.ts +11 -0
  333. package/dist/plots/heatmap/defaults.js +91 -0
  334. package/dist/plots/heatmap/markers.d.ts +17 -0
  335. package/dist/plots/heatmap/markers.js +141 -0
  336. package/dist/plots/histogram/Plot.svelte +45 -0
  337. package/dist/plots/histogram/Plot.svelte.d.ts +26 -0
  338. package/dist/plots/histogram/defaults.d.ts +9 -0
  339. package/dist/plots/histogram/defaults.js +87 -0
  340. package/dist/plots/histogram/markers.d.ts +18 -0
  341. package/dist/plots/histogram/markers.js +89 -0
  342. package/dist/plots/line/Plot.svelte +37 -268
  343. package/dist/plots/line/Plot.svelte.d.ts +3 -7
  344. package/dist/plots/line/defaults.d.ts +4 -0
  345. package/dist/plots/line/defaults.js +29 -0
  346. package/dist/plots/line/markers.d.ts +49 -0
  347. package/dist/plots/line/markers.js +200 -0
  348. package/dist/plots/pyramid/Plot.svelte +34 -362
  349. package/dist/plots/pyramid/Plot.svelte.d.ts +5 -8
  350. package/dist/plots/pyramid/defaults.d.ts +13 -0
  351. package/dist/plots/pyramid/defaults.js +86 -0
  352. package/dist/plots/pyramid/markers.d.ts +21 -0
  353. package/dist/plots/pyramid/markers.js +159 -0
  354. package/dist/plots/scatter/Plot.svelte +34 -288
  355. package/dist/plots/scatter/Plot.svelte.d.ts +5 -8
  356. package/dist/plots/scatter/defaults.d.ts +4 -0
  357. package/dist/plots/scatter/defaults.js +79 -0
  358. package/dist/plots/scatter/markers.d.ts +19 -0
  359. package/dist/plots/scatter/markers.js +128 -0
  360. package/dist/plots/utils/ChannelName.d.ts +9 -0
  361. package/dist/plots/utils/ChannelName.js +14 -0
  362. package/dist/plots/utils/accessors.d.ts +1 -1
  363. package/dist/plots/utils/accessors.js +4 -2
  364. package/dist/plots/utils/gaps.d.ts +14 -19
  365. package/dist/plots/utils/gaps.js +38 -18
  366. package/dist/plots/utils/geoAccessors.d.ts +8 -8
  367. package/dist/plots/utils/geoAccessors.js +16 -12
  368. package/dist/plots/utils/geoSegments.d.ts +24 -9
  369. package/dist/plots/utils/geoSegments.js +31 -11
  370. package/dist/plots/utils/segments.d.ts +5 -16
  371. package/dist/plots/utils/segments.js +40 -52
  372. package/dist/plots/utils/tiles.d.ts +9 -9
  373. package/dist/plots/utils/tiles.js +35 -25
  374. package/dist/plots/utils/topojson.d.ts +1 -1
  375. package/dist/plots/utils/topojson.js +3 -3
  376. package/dist/stores/device.js +2 -4
  377. package/dist/types/configuration/styling.d.ts +158 -27
  378. package/dist/types/layout/box.d.ts +24 -0
  379. package/dist/types/layout/composer.d.ts +36 -0
  380. package/dist/types/layout/coordinates.d.ts +14 -14
  381. package/dist/types/layout/facet.d.ts +44 -22
  382. package/dist/types/layout/figure.d.ts +7 -0
  383. package/dist/types/layout/geometry.d.ts +6 -2
  384. package/dist/types/layout/grid.d.ts +66 -0
  385. package/dist/types/layout/hover.d.ts +48 -0
  386. package/dist/types/layout/legend.d.ts +258 -54
  387. package/dist/types/layout/mapping.d.ts +68 -0
  388. package/dist/types/layout/plot.d.ts +41 -0
  389. package/dist/types/layout/scales.d.ts +92 -24
  390. package/dist/types/layout/scales.js +19 -1
  391. package/dist/types/layout/statistics/bollinger.d.ts +18 -0
  392. package/dist/types/layout/statistics/box.d.ts +8 -0
  393. package/dist/types/layout/statistics/box.js +1 -0
  394. package/dist/types/layout/statistics/density.d.ts +27 -0
  395. package/dist/types/layout/statistics/density.js +1 -0
  396. package/dist/types/layout/statistics/index.d.ts +46 -0
  397. package/dist/types/layout/statistics/index.js +1 -0
  398. package/dist/types/layout/statistics/movingAverage.d.ts +12 -0
  399. package/dist/types/layout/statistics/movingAverage.js +1 -0
  400. package/dist/types/layout/statistics/regression.d.ts +20 -0
  401. package/dist/types/layout/statistics/regression.js +1 -0
  402. package/dist/types/layout/styles.d.ts +24 -35
  403. package/dist/types/layout/timeline.d.ts +51 -4
  404. package/dist/types/layout/tooltip.d.ts +7 -85
  405. package/dist/types/markers/all.d.ts +3 -4
  406. package/dist/types/markers/axis/area.d.ts +12 -0
  407. package/dist/types/markers/axis/area.js +1 -0
  408. package/dist/types/markers/axis/arrow.d.ts +15 -0
  409. package/dist/types/markers/axis/arrow.js +1 -0
  410. package/dist/types/markers/axis/axisBasedMarkersConfig.d.ts +29 -0
  411. package/dist/types/markers/axis/axisBasedMarkersConfig.js +1 -0
  412. package/dist/types/markers/axis/bar.d.ts +18 -0
  413. package/dist/types/markers/axis/bar.js +1 -0
  414. package/dist/types/markers/axis/bollinger.d.ts +6 -0
  415. package/dist/types/markers/axis/bollinger.js +1 -0
  416. package/dist/types/markers/axis/box.d.ts +14 -0
  417. package/dist/types/markers/axis/box.js +1 -0
  418. package/dist/types/markers/axis/brush.d.ts +28 -0
  419. package/dist/types/markers/axis/brush.js +1 -0
  420. package/dist/types/markers/axis/cell.d.ts +9 -0
  421. package/dist/types/markers/axis/cell.js +1 -0
  422. package/dist/types/markers/axis/component.d.ts +9 -0
  423. package/dist/types/markers/axis/component.js +1 -0
  424. package/dist/types/markers/axis/curveName.d.ts +2 -0
  425. package/dist/types/markers/axis/curveName.js +1 -0
  426. package/dist/types/markers/axis/delaunayLink.d.ts +7 -0
  427. package/dist/types/markers/axis/delaunayLink.js +1 -0
  428. package/dist/types/markers/axis/delaunayMesh.d.ts +7 -0
  429. package/dist/types/markers/axis/delaunayMesh.js +1 -0
  430. package/dist/types/markers/axis/delta.d.ts +27 -0
  431. package/dist/types/markers/axis/delta.js +1 -0
  432. package/dist/types/markers/axis/density.d.ts +12 -0
  433. package/dist/types/markers/axis/density.js +1 -0
  434. package/dist/types/markers/axis/difference.d.ts +12 -0
  435. package/dist/types/markers/axis/difference.js +1 -0
  436. package/dist/types/markers/axis/hover.d.ts +21 -0
  437. package/dist/types/markers/axis/hover.js +1 -0
  438. package/dist/types/markers/axis/hull.d.ts +7 -0
  439. package/dist/types/markers/axis/hull.js +1 -0
  440. package/dist/types/markers/axis/image.d.ts +12 -0
  441. package/dist/types/markers/axis/image.js +1 -0
  442. package/dist/types/markers/axis/line.d.ts +7 -0
  443. package/dist/types/markers/axis/line.js +1 -0
  444. package/dist/types/markers/axis/raster.d.ts +18 -0
  445. package/dist/types/markers/axis/raster.js +1 -0
  446. package/dist/types/markers/axis/rect.d.ts +15 -0
  447. package/dist/types/markers/axis/rect.js +1 -0
  448. package/dist/types/markers/axis/regression.d.ts +6 -0
  449. package/dist/types/markers/axis/regression.js +1 -0
  450. package/dist/types/markers/axis/rule.d.ts +15 -0
  451. package/dist/types/markers/axis/rule.js +1 -0
  452. package/dist/types/markers/axis/tick.d.ts +8 -0
  453. package/dist/types/markers/axis/tick.js +1 -0
  454. package/dist/types/markers/axis/trail.d.ts +14 -0
  455. package/dist/types/markers/axis/trail.js +1 -0
  456. package/dist/types/markers/axis/voronoi.d.ts +7 -0
  457. package/dist/types/markers/axis/voronoi.js +1 -0
  458. package/dist/types/markers/axis/voronoiMesh.d.ts +7 -0
  459. package/dist/types/markers/axis/voronoiMesh.js +1 -0
  460. package/dist/types/markers/axis/waffle.d.ts +13 -0
  461. package/dist/types/markers/axis/waffle.js +1 -0
  462. package/dist/types/markers/basic/basicMarkersConfig.d.ts +4 -0
  463. package/dist/types/markers/basic/basicMarkersConfig.js +1 -0
  464. package/dist/types/markers/basic/dot.d.ts +9 -0
  465. package/dist/types/markers/basic/dot.js +1 -0
  466. package/dist/types/markers/basic/text.d.ts +60 -0
  467. package/dist/types/markers/basic/text.js +1 -0
  468. package/dist/types/markers/basic.d.ts +4 -0
  469. package/dist/types/markers/basic.js +1 -0
  470. package/dist/types/markers/channels/commonMarkerConfig.d.ts +26 -0
  471. package/dist/types/markers/channels/commonMarkerConfig.js +1 -0
  472. package/dist/types/markers/channels/commonMarkerConfigWithArea.d.ts +6 -0
  473. package/dist/types/markers/channels/commonMarkerConfigWithArea.js +1 -0
  474. package/dist/types/markers/channels/commonMarkerConfigWithColor.d.ts +5 -0
  475. package/dist/types/markers/channels/commonMarkerConfigWithColor.js +1 -0
  476. package/dist/types/markers/channels/commonMarkerConfigWithInterval.d.ts +9 -0
  477. package/dist/types/markers/channels/commonMarkerConfigWithInterval.js +1 -0
  478. package/dist/types/markers/channels/commonMarkerConfigWithRadius.d.ts +5 -0
  479. package/dist/types/markers/channels/commonMarkerConfigWithRadius.js +1 -0
  480. package/dist/types/markers/channels/commonMarkerConfigWithSymbol.d.ts +5 -0
  481. package/dist/types/markers/channels/commonMarkerConfigWithSymbol.js +1 -0
  482. package/dist/types/markers/channels/commonMarkerConfigWithWeight.d.ts +5 -0
  483. package/dist/types/markers/channels/commonMarkerConfigWithWeight.js +1 -0
  484. package/dist/types/markers/common.d.ts +30 -103
  485. package/dist/types/markers/common.js +29 -1
  486. package/dist/types/markers/geo/contour.d.ts +27 -0
  487. package/dist/types/markers/geo/contour.js +1 -0
  488. package/dist/types/markers/geo/features.d.ts +12 -0
  489. package/dist/types/markers/geo/features.js +1 -0
  490. package/dist/types/markers/geo/geoComponent.d.ts +7 -0
  491. package/dist/types/markers/geo/geoComponent.js +1 -0
  492. package/dist/types/markers/geo/geoHover.d.ts +6 -0
  493. package/dist/types/markers/geo/geoHover.js +1 -0
  494. package/dist/types/markers/geo/geoMarkersConfig.d.ts +11 -0
  495. package/dist/types/markers/geo/geoMarkersConfig.js +1 -0
  496. package/dist/types/markers/geo/graticule.d.ts +11 -0
  497. package/dist/types/markers/geo/graticule.js +1 -0
  498. package/dist/types/markers/geo/inset.d.ts +50 -0
  499. package/dist/types/markers/geo/inset.js +1 -0
  500. package/dist/types/markers/geo/link.d.ts +13 -0
  501. package/dist/types/markers/geo/link.js +1 -0
  502. package/dist/types/markers/geo/sphere.d.ts +11 -0
  503. package/dist/types/markers/geo/sphere.js +1 -0
  504. package/dist/types/markers/geo/vector.d.ts +17 -0
  505. package/dist/types/markers/geo/vector.js +1 -0
  506. package/dist/types/markers/geo.d.ts +10 -212
  507. package/dist/types/markers/geo.js +10 -1
  508. package/dist/types/markers/traits.d.ts +22 -0
  509. package/dist/types/markers/traits.js +1 -0
  510. package/dist/types/misc/easing.js +1 -0
  511. package/dist/types/misc/viewport.js +1 -0
  512. package/dist/types/phases/data/axes.d.ts +18 -0
  513. package/dist/types/phases/data/axes.js +1 -0
  514. package/dist/types/phases/data/phase.d.ts +26 -0
  515. package/dist/types/phases/data/phase.js +2 -0
  516. package/dist/types/phases/facet/phase.d.ts +18 -0
  517. package/dist/types/phases/facet/phase.js +1 -0
  518. package/dist/types/phases/hover/phase.d.ts +34 -0
  519. package/dist/types/phases/hover/phase.js +1 -0
  520. package/dist/types/phases/index.d.ts +14 -0
  521. package/dist/types/phases/index.js +1 -0
  522. package/dist/types/phases/kind.d.ts +59 -0
  523. package/dist/types/phases/kind.js +1 -0
  524. package/dist/types/phases/mapping/phase.d.ts +5 -0
  525. package/dist/types/phases/mapping/phase.js +1 -0
  526. package/dist/types/phases/markers/phase.d.ts +13 -0
  527. package/dist/types/phases/markers/phase.js +1 -0
  528. package/dist/types/phases/pipeline.d.ts +10 -0
  529. package/dist/types/phases/pipeline.js +1 -0
  530. package/dist/types/phases/scales/phase.d.ts +26 -0
  531. package/dist/types/phases/scales/phase.js +1 -0
  532. package/dist/types/phases/sharedScales/phase.d.ts +12 -0
  533. package/dist/types/phases/sharedScales/phase.js +1 -0
  534. package/dist/types/phases/stage.d.ts +12 -0
  535. package/dist/types/phases/stage.js +1 -0
  536. package/dist/types/phases/state.d.ts +73 -0
  537. package/dist/types/phases/state.js +1 -0
  538. package/dist/types/phases/statistics/phase.d.ts +41 -0
  539. package/dist/types/phases/statistics/phase.js +1 -0
  540. package/dist/types/phases/statistics/source.d.ts +20 -0
  541. package/dist/types/phases/statistics/source.js +7 -0
  542. package/dist/types/phases/styles/phase.d.ts +24 -0
  543. package/dist/types/phases/styles/phase.js +1 -0
  544. package/dist/types/phases/transforms/adapter.d.ts +27 -0
  545. package/dist/types/phases/transforms/adapter.js +1 -0
  546. package/dist/types/phases/transforms/phase.d.ts +40 -0
  547. package/dist/types/phases/transforms/phase.js +1 -0
  548. package/dist/types/plots/area/props.d.ts +10 -0
  549. package/dist/types/plots/area/props.js +1 -0
  550. package/dist/types/plots/area/state.d.ts +6 -0
  551. package/dist/types/plots/area/state.js +1 -0
  552. package/dist/types/plots/bar/props.d.ts +10 -0
  553. package/dist/types/plots/bar/props.js +1 -0
  554. package/dist/types/plots/bar/state.d.ts +6 -0
  555. package/dist/types/plots/bar/state.js +1 -0
  556. package/dist/types/plots/camera.d.ts +7 -17
  557. package/dist/types/plots/constants.d.ts +16 -8
  558. package/dist/types/plots/data/common.d.ts +25 -17
  559. package/dist/types/plots/data/geo.d.ts +26 -12
  560. package/dist/types/plots/gaps.d.ts +19 -38
  561. package/dist/types/plots/geo/props.d.ts +23 -0
  562. package/dist/types/plots/geo/props.js +1 -0
  563. package/dist/types/plots/geo/state.d.ts +82 -0
  564. package/dist/types/plots/geo/state.js +1 -0
  565. package/dist/types/plots/heatmap/props.d.ts +10 -0
  566. package/dist/types/plots/heatmap/props.js +1 -0
  567. package/dist/types/plots/heatmap/state.d.ts +28 -0
  568. package/dist/types/plots/heatmap/state.js +1 -0
  569. package/dist/types/plots/histogram/props.d.ts +18 -0
  570. package/dist/types/plots/histogram/props.js +1 -0
  571. package/dist/types/plots/histogram/state.d.ts +6 -0
  572. package/dist/types/plots/histogram/state.js +1 -0
  573. package/dist/types/plots/line/props.d.ts +10 -0
  574. package/dist/types/plots/line/props.js +1 -0
  575. package/dist/types/plots/line/state.d.ts +9 -0
  576. package/dist/types/plots/line/state.js +1 -0
  577. package/dist/types/plots/props.d.ts +143 -35
  578. package/dist/types/plots/pyramid/props.d.ts +10 -0
  579. package/dist/types/plots/pyramid/props.js +1 -0
  580. package/dist/types/plots/pyramid/state.d.ts +16 -0
  581. package/dist/types/plots/pyramid/state.js +1 -0
  582. package/dist/types/plots/scatter/props.d.ts +10 -0
  583. package/dist/types/plots/scatter/props.js +1 -0
  584. package/dist/types/plots/scatter/state.d.ts +6 -0
  585. package/dist/types/plots/scatter/state.js +1 -0
  586. package/dist/types/plots/segments/common.d.ts +1 -1
  587. package/dist/types/plots/segments/config.d.ts +12 -6
  588. package/dist/types/plots/styling.d.ts +5 -5
  589. package/dist/types/transforms/bin.d.ts +84 -0
  590. package/dist/types/transforms/bin.js +28 -0
  591. package/dist/types/transforms/bollinger.d.ts +21 -0
  592. package/dist/types/transforms/bollinger.js +1 -0
  593. package/dist/types/transforms/common.d.ts +29 -0
  594. package/dist/types/transforms/common.js +16 -0
  595. package/dist/types/transforms/density.d.ts +45 -0
  596. package/dist/types/transforms/density.js +10 -0
  597. package/dist/types/transforms/filter.d.ts +12 -0
  598. package/dist/types/transforms/filter.js +14 -0
  599. package/dist/types/transforms/group.d.ts +70 -0
  600. package/dist/types/transforms/group.js +8 -0
  601. package/dist/types/transforms/index.d.ts +36 -0
  602. package/dist/types/transforms/index.js +1 -0
  603. package/dist/types/transforms/interval.d.ts +21 -0
  604. package/dist/types/transforms/interval.js +14 -0
  605. package/dist/types/transforms/jitter.d.ts +34 -0
  606. package/dist/types/transforms/jitter.js +1 -0
  607. package/dist/types/transforms/map.d.ts +24 -0
  608. package/dist/types/transforms/map.js +1 -0
  609. package/dist/types/transforms/normalize.d.ts +36 -0
  610. package/dist/types/transforms/normalize.js +1 -0
  611. package/dist/types/transforms/select.d.ts +15 -0
  612. package/dist/types/transforms/select.js +1 -0
  613. package/dist/types/transforms/shift.d.ts +20 -0
  614. package/dist/types/transforms/shift.js +1 -0
  615. package/dist/types/transforms/sort.d.ts +31 -0
  616. package/dist/types/transforms/sort.js +14 -0
  617. package/dist/types/transforms/stack.d.ts +64 -0
  618. package/dist/types/transforms/stack.js +12 -0
  619. package/dist/types/transforms/window.d.ts +29 -0
  620. package/dist/types/transforms/window.js +1 -0
  621. package/dist/utils/ContinuousDomain.d.ts +12 -0
  622. package/dist/utils/ContinuousDomain.js +19 -0
  623. package/dist/utils/Interpolation.d.ts +26 -0
  624. package/dist/utils/Interpolation.js +65 -0
  625. package/dist/utils/{color.d.ts → color/contrast.d.ts} +0 -5
  626. package/dist/utils/color/contrast.js +40 -0
  627. package/dist/utils/color/cssColor.d.ts +4 -0
  628. package/dist/utils/color/cssColor.js +77 -0
  629. package/dist/utils/color/index.d.ts +3 -0
  630. package/dist/utils/color/index.js +3 -0
  631. package/dist/utils/color/ramp.d.ts +17 -0
  632. package/dist/utils/color/ramp.js +110 -0
  633. package/dist/utils/grouping.d.ts +9 -5
  634. package/dist/utils/grouping.js +19 -10
  635. package/dist/utils/merge.d.ts +7 -0
  636. package/dist/utils/merge.js +17 -0
  637. package/dist/utils/opacity.d.ts +9 -0
  638. package/dist/utils/opacity.js +38 -0
  639. package/dist/utils/symbol.d.ts +31 -0
  640. package/dist/utils/symbol.js +92 -0
  641. package/docs/architecture.md +137 -0
  642. package/docs/chrome.md +68 -0
  643. package/docs/composer.md +53 -0
  644. package/docs/concepts.md +99 -0
  645. package/docs/development.md +94 -0
  646. package/docs/facets.md +69 -0
  647. package/docs/geo.md +151 -0
  648. package/docs/getting-started.md +79 -0
  649. package/docs/legend.md +106 -0
  650. package/docs/markers.md +106 -0
  651. package/docs/plots.md +158 -0
  652. package/docs/scales.md +78 -0
  653. package/docs/state.md +71 -0
  654. package/docs/styles-and-segments.md +215 -0
  655. package/docs/theming.md +215 -0
  656. package/docs/timeline.md +94 -0
  657. package/docs/tooltip-and-hover.md +80 -0
  658. package/docs/transforms-and-statistics.md +88 -0
  659. package/examples/BarValues.svelte +14 -0
  660. package/examples/CustomTooltip.svelte +37 -0
  661. package/examples/Facets.svelte +15 -0
  662. package/examples/LegendReader.svelte +8 -0
  663. package/examples/LegendToggle.svelte +25 -0
  664. package/examples/ResponsiveLine.svelte +37 -0
  665. package/examples/Segments.svelte +17 -0
  666. package/examples/TimelinePlayer.svelte +20 -0
  667. package/examples/Tooltip.svelte +19 -0
  668. package/examples/TooltipCard.svelte +86 -0
  669. package/examples/data.ts +12 -0
  670. package/llms-full.txt +114 -0
  671. package/llms.txt +49 -0
  672. package/package.json +41 -5
  673. package/dist/charts/BaseChart.svelte +0 -149
  674. package/dist/charts/BaseChart.svelte.d.ts +0 -47
  675. package/dist/charts/bar/Chart.svelte +0 -110
  676. package/dist/charts/bar/Chart.svelte.d.ts +0 -26
  677. package/dist/charts/container/ChartContainer.svelte +0 -137
  678. package/dist/charts/container/ChartContainer.svelte.d.ts +0 -16
  679. package/dist/charts/heatmap/Chart.svelte +0 -114
  680. package/dist/charts/line/Chart.svelte +0 -112
  681. package/dist/charts/line/Chart.svelte.d.ts +0 -26
  682. package/dist/charts/pyramid/Chart.svelte +0 -134
  683. package/dist/charts/pyramid/Chart.svelte.d.ts +0 -30
  684. package/dist/charts/scatter/Chart.svelte +0 -95
  685. package/dist/charts/scatter/Chart.svelte.d.ts +0 -28
  686. package/dist/layout/coordinates/margins.d.ts +0 -16
  687. package/dist/layout/coordinates/margins.js +0 -11
  688. package/dist/layout/legend/interaction.svelte.d.ts +0 -15
  689. package/dist/layout/legend/interaction.svelte.js +0 -32
  690. package/dist/layout/plot/BasePlotLayout.svelte +0 -332
  691. package/dist/layout/plot/BasePlotLayout.svelte.d.ts +0 -122
  692. package/dist/layout/plot/margins.d.ts +0 -18
  693. package/dist/layout/plot/margins.js +0 -15
  694. package/dist/layout/plot/measureText.d.ts +0 -4
  695. package/dist/layout/plot/measureText.js +0 -19
  696. package/dist/layout/tooltip/TooltipLayout.svelte +0 -51
  697. package/dist/layout/tooltip/TooltipLayout.svelte.d.ts +0 -45
  698. package/dist/layout/tooltip/controller.svelte.d.ts +0 -61
  699. package/dist/layout/tooltip/controller.svelte.js +0 -173
  700. package/dist/layout/tooltip/hover.svelte.d.ts +0 -7
  701. package/dist/layout/tooltip/hover.svelte.js +0 -28
  702. package/dist/layout/tooltip/resolveTooltipPlacement.d.ts +0 -24
  703. package/dist/layout/tooltip/resolveTooltipPlacement.js +0 -49
  704. package/dist/layout/tooltip/utils.d.ts +0 -49
  705. package/dist/layout/tooltip/utils.js +0 -82
  706. package/dist/markers/CellMarker.svelte +0 -21
  707. package/dist/markers/ContourClipMarker.svelte +0 -77
  708. package/dist/markers/ContourMarker.svelte +0 -28
  709. package/dist/markers/DeltaMarker.svelte +0 -109
  710. package/dist/markers/DotMarker.svelte +0 -70
  711. package/dist/markers/GeoFeaturesMarker.svelte +0 -19
  712. package/dist/markers/GeoHoverMarker.svelte +0 -25
  713. package/dist/markers/GraticuleMarker.svelte +0 -18
  714. package/dist/markers/HoverMarker.svelte +0 -212
  715. package/dist/markers/LineMarker.svelte +0 -19
  716. package/dist/markers/LinkMarker.svelte +0 -42
  717. package/dist/markers/PeakMarker.svelte +0 -80
  718. package/dist/markers/PeakMarker.svelte.d.ts +0 -13
  719. package/dist/markers/RuleMarker.svelte +0 -24
  720. package/dist/markers/SphereMarker.svelte +0 -15
  721. package/dist/markers/TextMarker.svelte +0 -62
  722. package/dist/markers/VectorMarker.svelte +0 -20
  723. package/dist/plots/bar/ValueLabels.svelte +0 -149
  724. package/dist/plots/bar/ValueLabels.svelte.d.ts +0 -58
  725. package/dist/plots/bar/buildBarMarkers.d.ts +0 -27
  726. package/dist/plots/bar/buildBarMarkers.js +0 -151
  727. package/dist/plots/bar/hoverPoints.d.ts +0 -15
  728. package/dist/plots/bar/hoverPoints.js +0 -37
  729. package/dist/plots/bar/layout.svelte.d.ts +0 -42
  730. package/dist/plots/bar/layout.svelte.js +0 -182
  731. package/dist/plots/geo/buildGeoMarkers.d.ts +0 -33
  732. package/dist/plots/geo/buildGeoMarkers.js +0 -47
  733. package/dist/plots/heatmap/ValueLabels.svelte +0 -56
  734. package/dist/plots/heatmap/buildCellMarkers.d.ts +0 -21
  735. package/dist/plots/heatmap/buildCellMarkers.js +0 -25
  736. package/dist/plots/line/ValueLabels.svelte +0 -269
  737. package/dist/plots/line/ValueLabels.svelte.d.ts +0 -52
  738. package/dist/plots/line/buildGapMarkers.d.ts +0 -28
  739. package/dist/plots/line/buildGapMarkers.js +0 -74
  740. package/dist/plots/line/buildLineMarkers.d.ts +0 -16
  741. package/dist/plots/line/buildLineMarkers.js +0 -56
  742. package/dist/plots/line/valueLabelMargin.d.ts +0 -19
  743. package/dist/plots/line/valueLabelMargin.js +0 -65
  744. package/dist/plots/pyramid/ValueLabels.svelte +0 -139
  745. package/dist/plots/pyramid/ValueLabels.svelte.d.ts +0 -56
  746. package/dist/plots/pyramid/buildPyramidBarMarkers.d.ts +0 -26
  747. package/dist/plots/pyramid/buildPyramidBarMarkers.js +0 -72
  748. package/dist/plots/scatter/ValueLabels.svelte +0 -163
  749. package/dist/plots/scatter/ValueLabels.svelte.d.ts +0 -52
  750. package/dist/plots/scatter/buildScatterMarkers.d.ts +0 -12
  751. package/dist/plots/scatter/buildScatterMarkers.js +0 -36
  752. package/dist/plots/scatter/resolveRadiusPaddedDomain.d.ts +0 -10
  753. package/dist/plots/scatter/resolveRadiusPaddedDomain.js +0 -23
  754. package/dist/plots/utils/categoricalAxisMargin.d.ts +0 -14
  755. package/dist/plots/utils/categoricalAxisMargin.js +0 -20
  756. package/dist/plots/utils/declutter.d.ts +0 -120
  757. package/dist/plots/utils/declutter.js +0 -240
  758. package/dist/plots/utils/labelOverflow.svelte.d.ts +0 -107
  759. package/dist/plots/utils/labelOverflow.svelte.js +0 -257
  760. package/dist/plots/utils/legendDisabled.d.ts +0 -27
  761. package/dist/plots/utils/legendDisabled.js +0 -68
  762. package/dist/plots/utils/valueLabelMargin.d.ts +0 -67
  763. package/dist/plots/utils/valueLabelMargin.js +0 -60
  764. package/dist/types/charts/common.d.ts +0 -22
  765. package/dist/types/charts/props.d.ts +0 -50
  766. package/dist/types/markers/base.d.ts +0 -45
  767. package/dist/types/markers/line.d.ts +0 -34
  768. package/dist/types/markers/props.d.ts +0 -11
  769. package/dist/types/plots/data/scatter.d.ts +0 -13
  770. package/dist/utils/color.js +0 -141
  771. package/dist/utils/delta.d.ts +0 -12
  772. package/dist/utils/delta.js +0 -69
  773. package/dist/utils/edgeAwareAnchor.d.ts +0 -34
  774. package/dist/utils/edgeAwareAnchor.js +0 -60
  775. package/dist/utils/interpolate.d.ts +0 -31
  776. package/dist/utils/interpolate.js +0 -71
  777. /package/dist/types/{charts/common.js → layout/box.js} +0 -0
  778. /package/dist/types/{charts/interpolate.js → layout/composer.js} +0 -0
  779. /package/dist/types/{charts/props.js → layout/figure.js} +0 -0
  780. /package/dist/types/{markers/base.js → layout/grid.js} +0 -0
  781. /package/dist/types/{markers/line.js → layout/hover.js} +0 -0
  782. /package/dist/types/{markers/props.js → layout/mapping.js} +0 -0
  783. /package/dist/types/{plots/data/scatter.js → layout/plot.js} +0 -0
  784. /package/dist/types/{viewport.js → layout/statistics/bollinger.js} +0 -0
  785. /package/dist/types/{charts/interpolate.d.ts → misc/easing.d.ts} +0 -0
  786. /package/dist/types/{viewport.d.ts → misc/viewport.d.ts} +0 -0
@@ -0,0 +1,215 @@
1
+ # Theming
2
+
3
+ The whole package reads its styling - fonts, colors, spacing, the legend, tooltip, axes, plot geometry - from one global, reactive configuration. Changing it re-themes every plot on screen; nothing is passed prop by prop.
4
+
5
+ ```ts
6
+ import {
7
+ setConfiguration,
8
+ getConfiguration,
9
+ resetConfiguration,
10
+ THEMES
11
+ } from '@fundar/data-chart-telling';
12
+
13
+ setConfiguration(THEMES.Editorial); // a ready-made theme
14
+
15
+ setConfiguration({
16
+ font: '"Inter", sans-serif',
17
+ palette: ['#4f46e5', '#e6580d', '#16a34a'],
18
+ legend: { continuous: { label: { size: '0.8125rem', weight: 400 } } }
19
+ });
20
+
21
+ getConfiguration(); // the live, merged configuration
22
+ resetConfiguration(); // back to the shipped defaults
23
+ ```
24
+
25
+ - `setConfiguration` takes a deep-partial patch and deep-merges it into the current configuration: name only the leaves to change. It is reactive, so mounted plots update.
26
+ - Call it once at startup, or when the theme switches. It is global, not per plot; a plot's own props (`styles`, `scales`, a legend section's `format`, ...) always win over it.
27
+ - The configuration is cloned when stored, so it holds data only: numbers, strings, arrays, objects. Functions belong in plot props such as `format` and `tickFormat`.
28
+ - When `setConfiguration` runs inside an `$effect`, wrap the call in `untrack` so the effect does not re-trigger itself.
29
+ - `THEMES` holds `Default`, `Editorial`, `Dark` and `Compact`; each is a patch for `setConfiguration`.
30
+ - The complete shape is the type `PlotStylesConfig` (patches: `PlotStylesConfigInput`); the shipped values are `DEFAULT_CONFIG`.
31
+
32
+ ## Sections
33
+
34
+ | Key | Controls |
35
+ | -------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- |
36
+ | `font`, `color`, `background` | Base text of every figure |
37
+ | `palette` | Categorical series colors, in order |
38
+ | `symbols` | Shape cycle for the `symbol` channel |
39
+ | `continuous` | Default ramp endpoints, label color and opacity range for continuous color and opacity |
40
+ | `spacing`, `chrome` | Padding around header, legend and caption; the chrome `order` and `rowGap` |
41
+ | `title`, `subtitle`, `caption` | Text blocks: `font`, `size`, `weight`, `color`, `leading`, `spacing` |
42
+ | `divider` | The line a `'divider'` in the chrome `order` draws |
43
+ | `legend` | Text, gaps, swatches, `disabledOpacity`, paginated nav buttons, the continuous bar, its handles, ticks and labels, and the `seriesTitle` and `sizeScale` options |
44
+ | `axis` | Axis color, font and tick sizes, `grid`, and the number locale (below) |
45
+ | `tooltip` | Tooltip background, color, font size, padding, radius, border |
46
+ | `margins` | Default margin per side (`'auto'` or a number) |
47
+ | `line`, `area`, `bar`, `pyramid`, `histogram`, `scatter` | Per-kind defaults: stroke width, dot radius, series padding, gap fills, fill opacity, inset |
48
+ | `text` | `declutter` geometry of value labels and connectors |
49
+ | `hover` | Look of the hover marker: `rule`, `dot`, `font`, `area` |
50
+ | `timeline` | The rule (`rule`) and the player bar (`player`: controls, speeds, `stepDuration`, button, track, thumb, toggle) |
51
+ | `facet` | The position badge and prev/next buttons |
52
+ | `frameClip` | Tolerance for clipping marks to the plot frame |
53
+
54
+ ## Locale
55
+
56
+ `axis.locale` (default `'es-AR'`) and `axis.compactDisplay` (`'short'` or `'long'`, default `'short'`) set how the automatic tick formatter writes numbers - the one used by any axis without its own `scales.x`/`scales.y.tickFormat`. A legend's size section writes its values the same way. Whether an axis abbreviates at all stays svelteplot's call, based on its value range; these two choose the wording once it does.
57
+
58
+ ```ts
59
+ setConfiguration({ axis: { locale: 'en-US', compactDisplay: 'long' } });
60
+ ```
61
+
62
+ `axis.locale` updates plots already on screen. `axis.compactDisplay` is read when a plot mounts, so a later change shows on the next mount.
63
+
64
+ ## CSS variables
65
+
66
+ Some fields reach the DOM as CSS custom properties, which every figure sets on its root element and the components read with a fallback. Those can also be overridden with plain CSS on a wrapping element for a one-off, non-reactive tweak:
67
+
68
+ ```css
69
+ .my-dashboard {
70
+ --dct-tooltip-bg: #0b3d2e;
71
+ --dct-title-size: 2rem;
72
+ }
73
+ ```
74
+
75
+ The remaining fields are plain values read by plot code (palette, tick sizes, margins, per-kind geometry, hover look); `setConfiguration` is the way to change those.
76
+
77
+ The text blocks map `title`, `subtitle` and `caption` to `--dct-{block}-{font|size|weight|color|leading|spacing}`. Every other variable and the configuration path it comes from:
78
+
79
+ ### base
80
+
81
+ | CSS variable | Config path |
82
+ | ------------ | ------------ |
83
+ | `--dct-font` | `font` |
84
+ | `--dct-fg` | `color` |
85
+ | `--dct-bg` | `background` |
86
+
87
+ ### spacing
88
+
89
+ | CSS variable | Config path |
90
+ | ------------------- | ------------------------ |
91
+ | `--dct-header-pad` | `spacing.headerPadding` |
92
+ | `--dct-legend-pad` | `spacing.legendPadding` |
93
+ | `--dct-caption-pad` | `spacing.captionPadding` |
94
+ | `--dct-bleed` | `spacing.bleed` |
95
+
96
+ ### divider
97
+
98
+ | CSS variable | Config path |
99
+ | ---------------------- | ---------------- |
100
+ | `--dct-divider-color` | `divider.color` |
101
+ | `--dct-divider-width` | `divider.width` |
102
+ | `--dct-divider-style` | `divider.style` |
103
+ | `--dct-divider-margin` | `divider.margin` |
104
+
105
+ ### chrome
106
+
107
+ | CSS variable | Config path |
108
+ | --------------- | --------------- |
109
+ | `--dct-row-gap` | `chrome.rowGap` |
110
+
111
+ ### legend
112
+
113
+ | CSS variable | Config path |
114
+ | --------------------------------------- | ---------------------------------------- |
115
+ | `--dct-legend-font` | `legend.font` |
116
+ | `--dct-legend-size` | `legend.size` |
117
+ | `--dct-legend-weight` | `legend.weight` |
118
+ | `--dct-legend-color` | `legend.color` |
119
+ | `--dct-legend-title-size` | `legend.titleSize` |
120
+ | `--dct-legend-title-weight` | `legend.titleWeight` |
121
+ | `--dct-legend-gap` | `legend.gap` |
122
+ | `--dct-legend-swatch` | `legend.swatchSize` |
123
+ | `--dct-legend-size-gap` | `legend.sizeScale.gap` |
124
+ | `--dct-legend-nav-bg` | `legend.navButton.background` |
125
+ | `--dct-legend-nav-color` | `legend.navButton.color` |
126
+ | `--dct-legend-nav-size` | `legend.navButton.size` |
127
+ | `--dct-legend-nav-font-size` | `legend.navButton.fontSize` |
128
+ | `--dct-legend-nav-disabled-opacity` | `legend.navButton.disabledOpacity` |
129
+ | `--dct-continuous-handle-width` | `legend.continuous.handle.width` |
130
+ | `--dct-continuous-handle-height` | `legend.continuous.handle.height` |
131
+ | `--dct-continuous-handle-radius` | `legend.continuous.handle.radius` |
132
+ | `--dct-continuous-handle-fill` | `legend.continuous.handle.fill` |
133
+ | `--dct-continuous-handle-stroke` | `legend.continuous.handle.stroke` |
134
+ | `--dct-continuous-handle-stroke-width` | `legend.continuous.handle.strokeWidth` |
135
+ | `--dct-continuous-tick-color` | `legend.continuous.tick.color` |
136
+ | `--dct-continuous-tick-width` | `legend.continuous.tick.width` |
137
+ | `--dct-continuous-tick-length` | `legend.continuous.tick.length` |
138
+ | `--dct-continuous-label-rotate` | `legend.continuous.label.rotate` |
139
+ | `--dct-continuous-label-size` | `legend.continuous.label.size` |
140
+ | `--dct-continuous-label-weight` | `legend.continuous.label.weight` |
141
+ | `--dct-continuous-label-overlap-rotate` | `legend.continuous.label.overlap.rotate` |
142
+
143
+ ### axis
144
+
145
+ | CSS variable | Config path |
146
+ | ------------------ | ------------ |
147
+ | `--dct-axis-color` | `axis.color` |
148
+
149
+ ### tooltip
150
+
151
+ | CSS variable | Config path |
152
+ | ---------------------- | -------------------- |
153
+ | `--dct-tooltip-bg` | `tooltip.background` |
154
+ | `--dct-tooltip-color` | `tooltip.color` |
155
+ | `--dct-tooltip-size` | `tooltip.fontSize` |
156
+ | `--dct-tooltip-pad` | `tooltip.padding` |
157
+ | `--dct-tooltip-radius` | `tooltip.radius` |
158
+ | `--dct-tooltip-border` | `tooltip.border` |
159
+
160
+ ### timeline
161
+
162
+ | CSS variable | Config path |
163
+ | ---------------------------------- | ----------------------------------------- |
164
+ | `--dct-timeline-axis` | `timeline.axisColor` |
165
+ | `--dct-timeline-active` | `timeline.activeColor` |
166
+ | `--dct-timeline-gap` | `timeline.gap` |
167
+ | `--dct-player-bg` | `timeline.player.background` |
168
+ | `--dct-player-color` | `timeline.player.color` |
169
+ | `--dct-player-radius` | `timeline.player.radius` |
170
+ | `--dct-player-pad` | `timeline.player.padding` |
171
+ | `--dct-player-gap` | `timeline.player.gap` |
172
+ | `--dct-player-size` | `timeline.player.fontSize` |
173
+ | `--dct-player-weight` | `timeline.player.fontWeight` |
174
+ | `--dct-player-value-width` | `timeline.player.valueWidth` |
175
+ | `--dct-player-button-size` | `timeline.player.button.size` |
176
+ | `--dct-player-button-bg` | `timeline.player.button.background` |
177
+ | `--dct-player-button-color` | `timeline.player.button.color` |
178
+ | `--dct-player-button-hover-bg` | `timeline.player.button.hoverBackground` |
179
+ | `--dct-player-button-radius` | `timeline.player.button.radius` |
180
+ | `--dct-player-track-height` | `timeline.player.track.height` |
181
+ | `--dct-player-track-color` | `timeline.player.track.color` |
182
+ | `--dct-player-track-fill` | `timeline.player.track.fillColor` |
183
+ | `--dct-player-track-radius` | `timeline.player.track.radius` |
184
+ | `--dct-player-thumb-size` | `timeline.player.thumb.size` |
185
+ | `--dct-player-thumb-color` | `timeline.player.thumb.color` |
186
+ | `--dct-player-toggle-bg` | `timeline.player.toggle.background` |
187
+ | `--dct-player-toggle-color` | `timeline.player.toggle.color` |
188
+ | `--dct-player-toggle-active-bg` | `timeline.player.toggle.activeBackground` |
189
+ | `--dct-player-toggle-active-color` | `timeline.player.toggle.activeColor` |
190
+ | `--dct-player-toggle-radius` | `timeline.player.toggle.radius` |
191
+ | `--dct-player-toggle-size` | `timeline.player.toggle.fontSize` |
192
+ | `--dct-player-toggle-pad` | `timeline.player.toggle.padding` |
193
+
194
+ ### heatmap ramp
195
+
196
+ | CSS variable | Config path |
197
+ | ----------------- | ----------------------- |
198
+ | `--dct-heat-min` | `continuous.min` |
199
+ | `--dct-heat-max` | `continuous.max` |
200
+ | `--dct-heat-text` | `continuous.labelColor` |
201
+
202
+ ### facet
203
+
204
+ | CSS variable | Config path |
205
+ | ---------------------------------- | --------------------------------- |
206
+ | `--dct-facet-indicator-bg` | `facet.indicator.background` |
207
+ | `--dct-facet-indicator-color` | `facet.indicator.color` |
208
+ | `--dct-facet-indicator-size` | `facet.indicator.fontSize` |
209
+ | `--dct-facet-indicator-pad` | `facet.indicator.padding` |
210
+ | `--dct-facet-indicator-radius` | `facet.indicator.radius` |
211
+ | `--dct-facet-nav-bg` | `facet.navButton.background` |
212
+ | `--dct-facet-nav-color` | `facet.navButton.color` |
213
+ | `--dct-facet-nav-btn-size` | `facet.navButton.size` |
214
+ | `--dct-facet-nav-font-size` | `facet.navButton.fontSize` |
215
+ | `--dct-facet-nav-disabled-opacity` | `facet.navButton.disabledOpacity` |
@@ -0,0 +1,94 @@
1
+ # Timeline
2
+
3
+ `timeline` steps a plot through its data by a field - usually a year or a date. Each step shows the rows of one value of that field. It draws as a **player** by default - a control bar with play, pause and a slider - or as a **rule**, a guide beside the plot that the page drives (`type: 'rule'`).
4
+
5
+ ```svelte
6
+ <BarPlot
7
+ {width}
8
+ {height}
9
+ data={rows}
10
+ x="region"
11
+ y="value"
12
+ scales={{ y: { domain: [0, 100] } }}
13
+ timeline={{ accessor: 'year' }}
14
+ />
15
+ ```
16
+
17
+ ![A bar plot with a player bar](images/timeline-player.png)
18
+
19
+ ## Options
20
+
21
+ | Option | Meaning |
22
+ | ---------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
23
+ | `accessor` | Field (or function) giving each row's step - required |
24
+ | `type` | `'player'` (default) draws a control bar in the chrome; `'rule'` draws a guide with the steps written along it |
25
+ | `progress` | The position, `0`-`1`. A player keeps its own position from there on, until `progress` changes |
26
+ | `values` | The steps, when not every distinct value of `accessor` |
27
+ | `filterMode` | `'exact'` shows the rows of the current step; `'upTo'` shows every row up to it (a cumulative reveal). `LinePlot` defaults to `'upTo'` |
28
+ | `interpolate` | Tween values between steps so a scrub is smooth: `true`, or `{ key, value, create, progressEasing, segmentEasing }`. Line and bar plots default to interpolating their value channel |
29
+ | `scales` | `'shared'` (default): axes span every step, so they hold still while scrubbing; `'free'` refits them to each step |
30
+ | `onprogress`, `onvalue` | Called with the new position (`0`-`1`) and with the step it lands on |
31
+ | `orientation`, `show`, `thickness` | A rule's direction (`'vertical'` default, beside the plot; `'horizontal'`), visibility and size |
32
+
33
+ ## Player
34
+
35
+ The player is a bar in the chrome, below the plot by default, placed like any other [chrome block](chrome.md) through `order` (`'timeline'`, or a row such as `'(plot, timeline)'`).
36
+
37
+ ```svelte
38
+ <LinePlot
39
+ ...
40
+ timeline={{
41
+ accessor: 'year',
42
+ player: {
43
+ controls: ['play', 'value', 'slider', 'speed', 'loop'],
44
+ autoplay: true,
45
+ loop: true,
46
+ speed: 1,
47
+ speeds: [0.5, 1, 2],
48
+ stepDuration: 800,
49
+ format: (year) => `Year ${year}`
50
+ }
51
+ }}
52
+ />
53
+ ```
54
+
55
+ | `player` option | Meaning |
56
+ | ----------------------------- | ------------------------------------------------------------------------------------------ |
57
+ | `controls` | The controls drawn, in this order: `'play'`, `'value'`, `'slider'`, `'speed'`, `'loop'` |
58
+ | `autoplay` | Start playing as soon as there are steps |
59
+ | `loop`, `speed` | Where the player starts; it keeps them from there and tells `onloop` / `onspeed` on change |
60
+ | `speeds` | Speeds the speed control cycles through |
61
+ | `stepDuration` | Milliseconds per step at speed `1` |
62
+ | `format` | How the current step reads in the `'value'` control |
63
+ | `onplay`, `onspeed`, `onloop` | Change callbacks |
64
+
65
+ Defaults for `controls`, `speeds` and `stepDuration` come from `timeline.player` in the [configuration](theming.md), together with the bar's colors and sizes.
66
+
67
+ ## Rule
68
+
69
+ `type: 'rule'` draws a line with its steps written along it, beside the plot. `progress` picks the step, and the page supplies the control (a slider, a button, scroll position):
70
+
71
+ ```svelte
72
+ <script lang="ts">
73
+ let progress = $state(0);
74
+ </script>
75
+
76
+ <input type="range" min="0" max="1" step="0.001" bind:value={progress} />
77
+ <LinePlot ... timeline={{ accessor: 'year', type: 'rule', progress }} />
78
+ ```
79
+
80
+ ![A line plot revealed up to the current step, with a timeline rule](images/timeline-rule.png)
81
+
82
+ A rule's look comes from `timeline.rule` in the [configuration](theming.md) (`fontSize`, `activeFontSize`, `axisWidth`, ...) and `--dct-timeline-*` variables.
83
+
84
+ ## Custom controls
85
+
86
+ `useFigure().timeline` exposes the timeline's state and actions, to build a widget of your own in place of the player: `steps`, `value`, `index`, `progress`, `playing`, `loop`, `speed`, `speeds`, and `seek`, `seekIndex`, `seekValue`, `next`, `previous`, `play`, `pause`, `toggle`, `setLoop`, `setSpeed`, `cycleSpeed`. See [Reading plot state](state.md).
87
+
88
+ ## One timeline for several plots
89
+
90
+ A [`PlotComposer`](composer.md) with its own `timeline` drives every panel from one control; plots inside it with a `timeline` follow its `progress`.
91
+
92
+ ## Maps
93
+
94
+ `GeoPlot` slices both its features (reading a field from each feature's `properties`) and its markers' rows; features or rows without the field are drawn in every step.
@@ -0,0 +1,80 @@
1
+ # Tooltip and hover
2
+
3
+ A plot becomes interactive when it is given a `tooltip`, a `{ type: 'hover' }` marker, or both. Hover is shared by every plot in a figure, so it can drive the other panels of a [facet](facets.md) or [composer](composer.md).
4
+
5
+ ## Tooltip
6
+
7
+ ```svelte
8
+ <LinePlot {width} {height} data={rows} x="year" y="value" color="region" tooltip />
9
+ ```
10
+
11
+ ![A tooltip and a hover highlight on the hovered point](images/tooltip.png)
12
+
13
+ `tooltip` is `true` for the defaults, or an options object:
14
+
15
+ | Option | Meaning |
16
+ | -------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
17
+ | `strategy` | How related points are found: `'x'`, `'y'`, `'punctual'` (the exact point) or `'series'` (all points of the hovered series). Defaults per plot kind |
18
+ | `sync` | Show the highlight in every synced plot too (default `false`) |
19
+ | `format` | `(row) => string` - the tooltip text for the hovered row (`\n` breaks lines) |
20
+ | `content` | A snippet `{#snippet content({ rows })}` replacing the text with custom markup. It is drawn in a plain card, so the markup brings its own background, colors and spacing |
21
+ | `series` | Only these series appear in the tooltip |
22
+ | `anchorX`, `anchorY` | Preferred side of the cursor: `'left' \| 'middle' \| 'right'` (default `'right'`) and `'top' \| 'middle' \| 'bottom'` (default `'bottom'`). It moves to the other side when it would overflow |
23
+
24
+ ```svelte
25
+ {#snippet content({ rows })}
26
+ <TooltipCard
27
+ heading={String(rows[0].year)}
28
+ footer="Value by region"
29
+ entries={rows.map((row) => ({
30
+ label: row.region,
31
+ color: colorOf(row.region),
32
+ value: row.value,
33
+ display: String(row.value)
34
+ }))}
35
+ />
36
+ {/snippet}
37
+
38
+ <LinePlot
39
+ {width}
40
+ {height}
41
+ data={rows}
42
+ x="year"
43
+ y="value"
44
+ color="region"
45
+ tooltip={{ strategy: 'x', content }}
46
+ />
47
+ ```
48
+
49
+ ![A tooltip with custom markup](images/tooltip-content.png)
50
+
51
+ [examples/CustomTooltip.svelte](../examples/CustomTooltip.svelte) is the runnable version, with the card in [examples/TooltipCard.svelte](../examples/TooltipCard.svelte).
52
+
53
+ The default strategy follows the plot's axes: it matches along the category (or index) axis - points sharing the hovered `x` when the value axis is vertical, sharing `y` when it is horizontal - and `punctual` (the exact point) on heatmaps and scatter plots.
54
+
55
+ ## In-plot hover
56
+
57
+ `markers={[{ type: 'hover' }]}` draws a dashed rule, a dot and a value label at the hovered point, inside the SVG. Its look comes from `hover` in the [configuration](theming.md) and can be overridden per marker (`rule`, `dot`, `text`, `area`). On band scales `areaX` / `areaY` highlight the whole band instead of a thin rule.
58
+
59
+ Use both together for the usual result:
60
+
61
+ ```svelte
62
+ <LinePlot ... tooltip markers={[{ type: 'hover' }]} />
63
+ ```
64
+
65
+ ## Bars
66
+
67
+ On a `BarPlot` a hover candidate is the bar's whole band (or its series' slice, when grouped), so the tooltip triggers anywhere along the column.
68
+
69
+ ## Syncing across plots
70
+
71
+ - In a [facet](facets.md) or a [`PlotComposer`](composer.md), `tooltip.sync: true` (or `hover.sync` on the composer) shows the hovered point's highlight, and the tooltip, in every panel. That replication is the feature: the same x is highlighted across panels.
72
+ - A composer's `hover={{ strategy, sync }}` sets the strategy and sync for all its panels.
73
+
74
+ ## Maps
75
+
76
+ `GeoPlot` takes `tooltip` too (the row is the hovered feature) and the `{ type: 'geo-hover' }` marker, which restyles the hovered feature. See [Maps](geo.md).
77
+
78
+ ## Reading hover from code
79
+
80
+ `useFigure().hover` and `usePlot().hover` expose `activeX`, `activeY`, `activeSeries`, `strategy`, `sync`, `source` and, for a plot, `points`, `activePoint` and `tooltip`. See [Reading plot state](state.md).
@@ -0,0 +1,88 @@
1
+ # Transforms and statistics
2
+
3
+ Both derive rows from the data before drawing. A **transform** reshapes the rows themselves (stack, bin, smooth, sort, filter). A **statistic** computes a summary of the data (regression, moving average, density) and draws it as an extra mark.
4
+
5
+ ## Transforms
6
+
7
+ `transforms` is an array of flat objects: `type` picks the transform and the other fields are its channels and options, named as in [svelteplot's transforms](https://svelteplot.dev). It exists on a plot (it then runs once over all the plot's series) and on each [marker](markers.md) (over the marker's rows).
8
+
9
+ ```svelte
10
+ <!-- stacked bars -->
11
+ <BarPlot
12
+ {width}
13
+ {height}
14
+ data={rows}
15
+ x="province"
16
+ y="value"
17
+ color="sex"
18
+ transforms={[{ type: 'stackY' }]}
19
+ />
20
+
21
+ <!-- a 6-month moving average, run on the plot's rows -->
22
+ <LinePlot
23
+ {width}
24
+ {height}
25
+ data={rows}
26
+ x="date"
27
+ y="index"
28
+ color="division"
29
+ transforms={[{ type: 'windowY', k: 6, reduce: 'mean' }]}
30
+ />
31
+ ```
32
+
33
+ ![Stacked bars](images/transforms-stack.png)
34
+
35
+ ![Lines smoothed by a moving average](images/transforms-window.png)
36
+
37
+ | Family | `type` | Does |
38
+ | --------- | --------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
39
+ | Stack | `stackX`, `stackY`, `stackMosaicX`, `stackMosaicY` | Cumulative stacking. Options: `offset` (`'none'`, `'wiggle'`, `'center'`, `'normalize'`, `'diverging'`), `order`, `reverse` |
40
+ | Bin | `binX`, `binY`, `bin` | Count or reduce rows into bins. Options: `thresholds` (a count, a list, or `'auto'`, `'scott'`, `'sturges'`, `'freedman-diaconis'`), `interval`, `domain`, `cumulative`; reducers by channel (`y: 'count'`, `fill: 'mean'`, ...) |
41
+ | Group | `groupX`, `groupY`, `groupZ`, `group` | Reduce rows per category with named reducers (`count`, `sum`, `mean`, `p25`, ...) or functions |
42
+ | Window | `windowX`, `windowY` | Sliding window: `k` (size), `reduce` (`'mean'`, `'median'`, `'sum'`, `'max'`, ...), `anchor`, `strict` |
43
+ | Bollinger | `bollingerX`, `bollingerY` | Moving average and band: `n`, `k` |
44
+ | Normalize | `normalizeX`, `normalizeY`, `normalizeParallelX`, `normalizeParallelY` | Rebase to a reference: `basis` (`'first'`, `'last'`, `'min'`, `'max'`, `'mean'`, `'median'`, `'sum'`, `'deviation'`) |
45
+ | Map | `mapX`, `mapY` | `map`: `'cumsum'`, `'rank'`, `'quantile'` or a function |
46
+ | Interval | `intervalX`, `intervalY` | Turn a value into an `[x1, x2]` interval of a given size |
47
+ | Jitter | `jitterX`, `jitterY` | Random offset: `width`, `std`, `distribution` (`'uniform'`, `'normal'`), `seed` |
48
+ | Shift | `shiftX`, `shiftY` | Move by `by` (a number, or a string offset) |
49
+ | Density | `densityX`, `densityY` | Kernel density estimate: `kernel`, `bandwidth` |
50
+ | Sort | `sort`, `shuffle`, `reverse` | Reorder rows (matters for the path a line takes and which dot lands on top) |
51
+ | Filter | `filter` | Keep rows a test holds for |
52
+ | Select | `select`, `selectFirst`, `selectLast`, `selectMinX`, `selectMaxX`, `selectMinY`, `selectMaxY` | Keep one row per group, such as each series' last point or peak |
53
+
54
+ Bar stacking is always `stackY`, also for horizontal bars. A transform on a `HistogramPlot` is merged over the plot's default binning, so `{ type: 'binX', thresholds: 20 }` changes the bins and the rest stays.
55
+
56
+ ## Statistics
57
+
58
+ `statistics` is an array of derived summaries drawn as extra marks. On a plot it computes one per series by default; on a marker it applies to that marker's own rows.
59
+
60
+ ```svelte
61
+ <ScatterPlot
62
+ {width}
63
+ {height}
64
+ data={rows}
65
+ x="gdp"
66
+ y="life"
67
+ statistics={[{ type: 'regression', regressionType: 'linear', confidence: 0.95 }]}
68
+ />
69
+ ```
70
+
71
+ ![A scatter plot with a regression line and confidence band](images/statistics-regression.png)
72
+
73
+ | `type` | Draws | Options |
74
+ | --------------- | ---------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------- |
75
+ | `regression` | A fitted curve with a confidence band | `regressionType` (`'linear'`, `'quad'`, `'poly'`, `'exp'`, `'log'`, `'pow'`, `'loess'`), `order`, `base`, `span`, `confidence` (`false` omits the band), `styles` |
76
+ | `movingAverage` | A smoothed line | `k` (required), `reduce`, `styles` |
77
+ | `bollinger` | Moving average and a band of `k` standard deviations | `n`, `k`, `styles` |
78
+ | `density` | A 1D density curve over `x` | `kernel`, `bandwidth`, `styles` |
79
+ | `density2d` | 2D density contour bands | `bandwidth`, `thresholds`, `styles` |
80
+ | `box` | A box plot per category | the options of the [`box` marker](markers.md) |
81
+
82
+ Which series a statistic runs over:
83
+
84
+ - omitted: one statistic per series;
85
+ - `series: ['a', 'b']`: only the named series;
86
+ - `pooled: true`: one statistic over all series combined.
87
+
88
+ The same summaries are available as markers (`regression`, `bollinger`, `density`, `box`, ...) when more control over the mark is needed.
@@ -0,0 +1,14 @@
1
+ <script lang="ts">
2
+ import { BarPlot } from '@fundar/data-chart-telling';
3
+ import { ROWS } from './data';
4
+ </script>
5
+
6
+ <!-- Categories on x, values on y. Swap `x` and `y` for horizontal bars. -->
7
+ <BarPlot
8
+ width={720}
9
+ height={400}
10
+ data={ROWS.filter((d) => d.year === 2023)}
11
+ x="region"
12
+ y="value"
13
+ styles={{ values: { show: true, anchor: 'outside' } }}
14
+ />
@@ -0,0 +1,37 @@
1
+ <script lang="ts">
2
+ import { LinePlot, getConfiguration, paletteColor } from '@fundar/data-chart-telling';
3
+ import TooltipCard from './TooltipCard.svelte';
4
+ import { ROWS, type Row } from './data';
5
+
6
+ const { palette } = getConfiguration();
7
+ const regions = [...new Set(ROWS.map((d) => d.region))];
8
+ </script>
9
+
10
+ <!--
11
+ `content` replaces the tooltip text with your own markup, drawn in a plain
12
+ card: TooltipCard brings its own background, colors and spacing. It is given
13
+ every row the hover matched; series colors come from the configuration's palette.
14
+ -->
15
+ {#snippet content({ rows }: { rows: Row[] })}
16
+ <TooltipCard
17
+ heading={String(rows[0].year)}
18
+ footer="Value by region"
19
+ entries={rows.map((row) => ({
20
+ label: row.region,
21
+ color: paletteColor(regions.indexOf(row.region), palette),
22
+ value: row.value,
23
+ display: String(row.value)
24
+ }))}
25
+ />
26
+ {/snippet}
27
+
28
+ <LinePlot
29
+ width={720}
30
+ height={400}
31
+ data={ROWS}
32
+ x="year"
33
+ y="value"
34
+ color="region"
35
+ tooltip={{ strategy: 'x', content }}
36
+ markers={[{ type: 'hover' }]}
37
+ />
@@ -0,0 +1,15 @@
1
+ <script lang="ts">
2
+ import { LinePlot } from '@fundar/data-chart-telling';
3
+ import { ROWS } from './data';
4
+ </script>
5
+
6
+ <!-- One panel per region, three columns, sharing scales. A tooltip with `sync` shows in every panel on purpose. -->
7
+ <LinePlot
8
+ width={900}
9
+ height={360}
10
+ data={ROWS}
11
+ x="year"
12
+ y="value"
13
+ facet={{ by: 'region', columns: 3, gap: 12, scales: 'shared' }}
14
+ tooltip={{ sync: true }}
15
+ />
@@ -0,0 +1,8 @@
1
+ <script lang="ts">
2
+ import { useFigure } from '@fundar/data-chart-telling';
3
+
4
+ // Call during component init, below a plot or a PlotComposer.
5
+ const { legend } = useFigure();
6
+ </script>
7
+
8
+ <p>Hidden series: {legend?.off.join(', ') || 'none'}</p>
@@ -0,0 +1,25 @@
1
+ <script lang="ts">
2
+ import { LinePlot } from '@fundar/data-chart-telling';
3
+ import { ROWS } from './data';
4
+ import LegendReader from './LegendReader.svelte';
5
+ </script>
6
+
7
+ <!--
8
+ The automatic legend can toggle series. `mode: 'omit'` drops a hidden series
9
+ and refits the axes to what is left; 'dim' and 'hide' keep the axes.
10
+ Anything inside the figure (here, the footer) reads the toggles through
11
+ `useFigure().legend` - see LegendReader.
12
+ -->
13
+ <LinePlot
14
+ width={720}
15
+ height={400}
16
+ data={ROWS}
17
+ x="year"
18
+ y="value"
19
+ color="region"
20
+ legend={{ series: { interactive: { enabled: true, disabled: { mode: 'omit' } } } }}
21
+ >
22
+ {#snippet footer()}
23
+ <LegendReader />
24
+ {/snippet}
25
+ </LinePlot>
@@ -0,0 +1,37 @@
1
+ <script lang="ts">
2
+ import { LinePlot } from '@fundar/data-chart-telling';
3
+ import { ROWS } from './data';
4
+
5
+ // A plot draws at the pixel size it is given. To fill a container (or the
6
+ // window), bind its size and pass it down.
7
+ let width = $state(0);
8
+ let height = $state(0);
9
+ </script>
10
+
11
+ <div class="fill" bind:clientWidth={width} bind:clientHeight={height}>
12
+ {#if width > 0 && height > 0}
13
+ <LinePlot
14
+ {width}
15
+ {height}
16
+ title="Value by region"
17
+ subtitle="Index, 2016-2023"
18
+ data={ROWS}
19
+ x="year"
20
+ y="value"
21
+ color="region"
22
+ scales={{
23
+ x: { label: 'Year', tickFormat: (d) => String(d) },
24
+ y: { label: 'Index' }
25
+ }}
26
+ styles={{ values: { show: true, format: (v, name) => `${name}: ${v}` } }}
27
+ margins={{ right: 'auto' }}
28
+ />
29
+ {/if}
30
+ </div>
31
+
32
+ <style>
33
+ .fill {
34
+ width: 100%;
35
+ height: 100vh;
36
+ }
37
+ </style>
@@ -0,0 +1,17 @@
1
+ <script lang="ts">
2
+ import { LinePlot } from '@fundar/data-chart-telling';
3
+ import type { LineSegmentStyle, SegmentsConfig } from '@fundar/data-chart-telling';
4
+ import { ROWS } from './data';
5
+
6
+ // `segments` maps a series name (or 'default' for all series) to its rules.
7
+ const segments = {
8
+ default: [
9
+ {
10
+ areas: [{ x: { from: 2020, to: 2023 } }],
11
+ styles: { stroke: { strokeDasharray: '6 4', strokeOpacity: 0.7 } }
12
+ }
13
+ ]
14
+ } satisfies SegmentsConfig<LineSegmentStyle>;
15
+ </script>
16
+
17
+ <LinePlot width={720} height={400} data={ROWS} x="year" y="value" color="region" {segments} />