@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
@@ -1,257 +0,0 @@
1
- import { AUTO_MARGIN_ESTIMATE } from '../../layout/plot/margins';
2
- const NO_OVERFLOW = { left: 0, right: 0, top: 0, bottom: 0 };
3
- /**
4
- * A generic `maxOverflow` cap for {@link createLabelMarginTracker}: half of
5
- * each dimension, so a facet cramped enough that its own value label can
6
- * never fully fit still leaves the plot's own content box the other half,
7
- * rather than `measured` growing without bound (see that function's own
8
- * `maxOverflow` doc comment). The same backstop applies regardless of *what*
9
- * overflows or *why* — every value-label-drawing plot (line/bar/pyramid/
10
- * scatter) passes this, sized off its own `width`/`height`.
11
- */
12
- export function halfDimensionOverflowCap(width, height) {
13
- return {
14
- left: Math.max(0, width * 0.5),
15
- right: Math.max(0, width * 0.5),
16
- top: Math.max(0, height * 0.5),
17
- bottom: Math.max(0, height * 0.5)
18
- };
19
- }
20
- /**
21
- * Watches an SVG group's rendered bounding box against the plot's own
22
- * content box (`bounds`) and reports how far it overflows on each side.
23
- * Polled across successive paints until two consecutive readings agree,
24
- * rather than trusted after a single frame: the group's own resolved
25
- * geometry (driven by svelteplot's separate reactive graph) and svelteplot's
26
- * own axis auto-margins can take a variable number of frames to settle —
27
- * more on a page with many other components competing for layout (e.g. a
28
- * docs page) than in an isolated story. Measuring too early can catch
29
- * content still at its pre-layout default position; capped so a layout that
30
- * genuinely never stabilizes still reports its last reading instead of
31
- * polling forever. Also waits for web fonts to finish loading, since glyph
32
- * metrics (and therefore `getBBox()`) can still reflect a fallback font's
33
- * narrower widths until the real font swaps in.
34
- */
35
- export function watchLabelOverflow(args) {
36
- $effect(() => {
37
- const el = args.el();
38
- const bounds = args.bounds();
39
- const reportOverflow = args.onOverflow;
40
- if (!el || !bounds)
41
- return;
42
- const MAX_ATTEMPTS = 30;
43
- let cancelled = false;
44
- let frame;
45
- let attempt = 0;
46
- let lastReading;
47
- function measure() {
48
- if (cancelled)
49
- return;
50
- let box;
51
- try {
52
- box = el.getBBox();
53
- }
54
- catch {
55
- return;
56
- }
57
- // An empty group (no labels currently rendered, e.g. every series is
58
- // scrubbed/filtered out of view) reports getBBox() as (0,0,0,0) — the
59
- // SVG origin, not "no content". Reading that literally as a box sitting
60
- // at (0,0) would report overflow proportional to the *current* margins
61
- // themselves, which grows them, which remounts this group against the
62
- // new, larger bounds, which reports overflow again — an unbounded loop
63
- // with nothing rendered to justify it.
64
- const overflow = box.width === 0 && box.height === 0
65
- ? NO_OVERFLOW
66
- : {
67
- left: Math.ceil(Math.max(0, bounds.left - box.x)),
68
- right: Math.ceil(Math.max(0, box.x + box.width - bounds.right)),
69
- top: Math.ceil(Math.max(0, bounds.top - box.y)),
70
- bottom: Math.ceil(Math.max(0, box.y + box.height - bounds.bottom))
71
- };
72
- attempt += 1;
73
- const stable = lastReading != null &&
74
- lastReading.left === overflow.left &&
75
- lastReading.right === overflow.right &&
76
- lastReading.top === overflow.top &&
77
- lastReading.bottom === overflow.bottom;
78
- lastReading = overflow;
79
- if (stable || attempt >= MAX_ATTEMPTS) {
80
- reportOverflow(overflow);
81
- }
82
- else {
83
- frame = requestAnimationFrame(measure);
84
- }
85
- }
86
- const fontsReady = document.fonts?.ready ?? Promise.resolve();
87
- fontsReady.then(() => {
88
- if (cancelled)
89
- return;
90
- frame = requestAnimationFrame(measure);
91
- });
92
- return () => {
93
- cancelled = true;
94
- if (frame !== undefined)
95
- cancelAnimationFrame(frame);
96
- };
97
- });
98
- }
99
- /**
100
- * Tracks value-label overflow reported by (possibly several, e.g. one per
101
- * series) {@link watchLabelOverflow} calls and grows a local margin override
102
- * to fit it — monotonically, since shrinking it back would re-expose the
103
- * overflow that caused the growth in the first place, oscillating between
104
- * "shrink margin → overflow reappears → grow margin → …". Each side is only
105
- * ever set when the caller's own `margins` prop hasn't already pinned it, so
106
- * an explicit caller override always wins over this auto-grown one.
107
- *
108
- * That monotonic growth is only sound for a *stable* dataset — it assumes
109
- * every reading describes the same thing being measured, just possibly at an
110
- * earlier, not-yet-settled frame. It stops being sound once the caller's own
111
- * data changes identity underneath it (e.g. a timeline scrubber revealing a
112
- * different slice of rows on every tick): an overflow measured against
113
- * *that* frame's rendered labels doesn't describe the next frame's, so
114
- * carrying it forward forever can leave a plot permanently — and wrongly —
115
- * margin-inflated by whatever the single most cluttered frame it ever
116
- * passed through needed, long after scrubbing away from it. `resetKey`, if
117
- * given, is compared by identity on every call; a change drops `measured`
118
- * back to zero so the next frame's overflow is measured fresh against only
119
- * what's actually on screen now. Pass whatever reactive value identifies
120
- * "what's currently being plotted" for the caller (e.g. its own resolved
121
- * series list) — a plain reference/value comparison, not a deep one, so it
122
- * only need change identity when the rendered content actually does.
123
- */
124
- export function createLabelMarginTracker(margins, resetKey,
125
- /**
126
- * A precomputed overflow estimate — from the full dataset, not just the
127
- * current frame — used as the reset target instead of zero. Since it's
128
- * derived from stable inputs, a `resetKey` change resets `measured` back
129
- * to roughly the same value instead of zero, so DOM growth rarely needs
130
- * to re-detect and re-grow it (which would otherwise remount the plot on
131
- * every reset). DOM measurement can still grow past it for whatever this
132
- * estimate doesn't cover.
133
- */
134
- floor,
135
- /**
136
- * Ceiling on how far `measured` can grow on each side, independent of
137
- * `floor`. Without one, a cell too small to ever fully fit its own label
138
- * (e.g. a narrow facet) keeps reporting overflow after every growth-
139
- * triggered remount — since the label's absolute size never shrinks —
140
- * and `measured` grows without bound, eventually leaving nothing for the
141
- * plot's own content box. Capping it trades a permanently-clipped label
142
- * in that case for a plot that still renders. Pass `Infinity` on a side
143
- * (the default) to leave it uncapped.
144
- */
145
- maxOverflow) {
146
- const floorValue = () => floor?.() ?? NO_OVERFLOW;
147
- let measured = $state(floorValue());
148
- // Skips the reset on the very first run (there's nothing to reset yet,
149
- // and `measured` already starts at the floor) so only a later, genuine
150
- // change to `resetKey` clears accumulated growth.
151
- let resetKeyInitialized = false;
152
- let lastResetKey;
153
- $effect(() => {
154
- const key = resetKey?.();
155
- if (!resetKeyInitialized) {
156
- resetKeyInitialized = true;
157
- lastResetKey = key;
158
- return;
159
- }
160
- if (key !== lastResetKey) {
161
- lastResetKey = key;
162
- measured = floorValue();
163
- }
164
- });
165
- // Pure `Math.max` — no `maxOverflow` cap here. `measured` is a *tracked*
166
- // value, not the applied margin, and must stay strictly monotonic
167
- // regardless of anything else changing (see this function's own doc
168
- // comment on why shrinking it back oscillates). `maxOverflow` is
169
- // typically sized off the plot's own live `width`/`height` (see
170
- // `halfDimensionOverflowCap`), which moves continuously during a resize
171
- // — capping *here* would let a shrinking cap force `measured` down mid-
172
- // resize, immediately re-exposing the overflow that grew it in the first
173
- // place and re-triggering growth, over and over, fast enough to trip
174
- // Svelte's `effect_update_depth_exceeded` guard. The cap is applied only
175
- // where it can't feed back into `measured` itself — see `resolvedMargins`.
176
- function report(overflow) {
177
- const next = {
178
- left: Math.max(measured.left, overflow.left),
179
- right: Math.max(measured.right, overflow.right),
180
- top: Math.max(measured.top, overflow.top),
181
- bottom: Math.max(measured.bottom, overflow.bottom)
182
- };
183
- if (next.left !== measured.left ||
184
- next.right !== measured.right ||
185
- next.top !== measured.top ||
186
- next.bottom !== measured.bottom) {
187
- measured = next;
188
- }
189
- }
190
- // `measured` is overflow *past* the current margin, not the total margin
191
- // needed — grown on top of `AUTO_MARGIN_ESTIMATE` (the same fallback
192
- // svelteplot's own 'auto' sizing is estimated by elsewhere), not the raw
193
- // overflow alone, or growth would silently replace whatever room 'auto'
194
- // would have reserved for the axis itself (tick labels, title) with a
195
- // number that only accounts for the value label. `AUTO_MARGIN_ESTIMATE` is
196
- // a fixed constant, not `numericMargins`' own already-grown value, so this
197
- // can't compound into unbounded growth across repeated reports.
198
- //
199
- // `maxOverflow`, if given, clamps `measured` down to a live cap *here*,
200
- // read-only — every render re-reads the current cap and applies it fresh
201
- // to the unclamped, monotonically-tracked `measured`, without ever
202
- // writing the clamped value back into `measured` itself (see `report`'s
203
- // own doc comment for why that distinction matters).
204
- const resolvedMargins = $derived.by(() => {
205
- const base = margins();
206
- const cap = maxOverflow?.() ?? {
207
- left: Infinity,
208
- right: Infinity,
209
- top: Infinity,
210
- bottom: Infinity
211
- };
212
- const clamped = {
213
- left: Math.min(measured.left, cap.left),
214
- right: Math.min(measured.right, cap.right),
215
- top: Math.min(measured.top, cap.top),
216
- bottom: Math.min(measured.bottom, cap.bottom)
217
- };
218
- if (clamped.left <= 0 && clamped.right <= 0 && clamped.top <= 0 && clamped.bottom <= 0)
219
- return base;
220
- const out = { ...base };
221
- if (clamped.right > 0 && base?.right === undefined)
222
- out.right = AUTO_MARGIN_ESTIMATE.right + clamped.right;
223
- if (clamped.left > 0 && base?.left === undefined)
224
- out.left = AUTO_MARGIN_ESTIMATE.left + clamped.left;
225
- if (clamped.top > 0 && base?.top === undefined)
226
- out.top = AUTO_MARGIN_ESTIMATE.top + clamped.top;
227
- if (clamped.bottom > 0 && base?.bottom === undefined)
228
- out.bottom = AUTO_MARGIN_ESTIMATE.bottom + clamped.bottom;
229
- return out;
230
- });
231
- // Bundles `resolvedMargins` with a remount key, ready to spread straight
232
- // onto `<BasePlotLayout>` as its `margins`/`marginRemountKey` props (see
233
- // that prop's doc comment for *why* a remount key is needed here at all)
234
- // — keeps the caller from re-deriving the same key by hand. Keyed off
235
- // `resolvedMargins` itself (the actually-applied value) rather than raw
236
- // `measured` — with a `maxOverflow` cap in play, `measured` can keep
237
- // climbing past the point where it's clamped without the applied margin
238
- // changing at all, and remounting for that would be pure waste. Also
239
- // tracks the caller's own `margins()` — a caller that changes its
240
- // explicit margins prop after mount (e.g. locking in a previously-
241
- // measured value) needs that picked up just as cleanly as internal
242
- // growth does; `resolvedMargins` alone already reflects that too, but
243
- // spelling it out keeps the key's intent obvious.
244
- const plotProps = $derived.by(() => ({
245
- margins: resolvedMargins,
246
- marginRemountKey: JSON.stringify({ base: margins(), resolvedMargins })
247
- }));
248
- return {
249
- report,
250
- get resolvedMargins() {
251
- return resolvedMargins;
252
- },
253
- get plotProps() {
254
- return plotProps;
255
- }
256
- };
257
- }
@@ -1,27 +0,0 @@
1
- import type { LegendDisabledAction, LegendDisabledStyle, LegendInteractionStore } from '../../types/layout/legend';
2
- import type { StrokeStyle, DotStyle } from '../../types/plots/styling';
3
- /** Resolves a {@link LegendDisabledAction} into the style a mark should render with — `'omit'` resolves to fully transparent. */
4
- export declare function resolveDisabledStyle(action: LegendDisabledAction | undefined, fallbackOpacity: number): LegendDisabledStyle | undefined;
5
- /** Drops series toggled off with `disabled: { mode: 'omit' }` from a series list. */
6
- export declare function omitDisabledSeries<S extends {
7
- name: string;
8
- }>(series: S[], legendInteraction: LegendInteractionStore | null | undefined): S[];
9
- /** Builds a per-series-name → palette index from the full series list, before {@link omitDisabledSeries} filters it. */
10
- export declare function buildSeriesColorIndex<S extends {
11
- name: string;
12
- }>(series: S[]): Map<string, number>;
13
- /** Resolves the disabled style for a series by name: legend-off state, falling back to hover-isolate dim. */
14
- export declare function resolveEffectiveDisabledStyle(name: string, legendInteraction: LegendInteractionStore | null | undefined, disabledOpacity: number, hoverIsolate: boolean, hoverIsolatedSeries: string | null): LegendDisabledStyle | undefined;
15
- /**
16
- * The three per-mark override layers a legend "disabled" state can apply,
17
- * derived once from a {@link LegendDisabledStyle}. Each is `undefined` when
18
- * there's no active override, so call sites can slot the result in as just
19
- * one more `??` layer ahead of their existing segment-style/default-color
20
- * chain — no branching needed at the call site.
21
- */
22
- export declare function disabledStrokeOverride(disabled: LegendDisabledStyle | undefined): StrokeStyle | undefined;
23
- export declare function disabledDotsOverride(disabled: LegendDisabledStyle | undefined): DotStyle | undefined;
24
- export declare function disabledFillOverride(disabled: LegendDisabledStyle | undefined): {
25
- fill?: string;
26
- fillOpacity?: number;
27
- } | undefined;
@@ -1,68 +0,0 @@
1
- /** Resolves a {@link LegendDisabledAction} into the style a mark should render with — `'omit'` resolves to fully transparent. */
2
- export function resolveDisabledStyle(action, fallbackOpacity) {
3
- if (!action)
4
- return undefined;
5
- if (action.mode === 'omit')
6
- return { opacity: 0 };
7
- return action.style ?? { opacity: fallbackOpacity };
8
- }
9
- /** Drops series toggled off with `disabled: { mode: 'omit' }` from a series list. */
10
- export function omitDisabledSeries(series, legendInteraction) {
11
- if (!legendInteraction)
12
- return series;
13
- return series.filter((s) => legendInteraction.disabledSeries.get(s.name)?.mode !== 'omit');
14
- }
15
- /** Builds a per-series-name → palette index from the full series list, before {@link omitDisabledSeries} filters it. */
16
- export function buildSeriesColorIndex(series) {
17
- const index = new Map();
18
- series.forEach((s, i) => index.set(s.name, i));
19
- return index;
20
- }
21
- /** Resolves the disabled style for a series by name: legend-off state, falling back to hover-isolate dim. */
22
- export function resolveEffectiveDisabledStyle(name, legendInteraction, disabledOpacity, hoverIsolate, hoverIsolatedSeries) {
23
- return (resolveDisabledStyle(legendInteraction?.disabledSeries.get(name), disabledOpacity) ??
24
- (hoverIsolate && hoverIsolatedSeries && hoverIsolatedSeries !== name
25
- ? { opacity: disabledOpacity }
26
- : undefined));
27
- }
28
- /**
29
- * The three per-mark override layers a legend "disabled" state can apply,
30
- * derived once from a {@link LegendDisabledStyle}. Each is `undefined` when
31
- * there's no active override, so call sites can slot the result in as just
32
- * one more `??` layer ahead of their existing segment-style/default-color
33
- * chain — no branching needed at the call site.
34
- */
35
- export function disabledStrokeOverride(disabled) {
36
- if (!disabled)
37
- return undefined;
38
- return {
39
- stroke: disabled.stroke?.stroke,
40
- strokeWidth: disabled.stroke?.strokeWidth,
41
- strokeOpacity: disabled.stroke?.strokeOpacity ?? disabled.opacity,
42
- strokeDasharray: disabled.stroke?.strokeDasharray,
43
- strokeLinecap: disabled.stroke?.strokeLinecap,
44
- strokeLinejoin: disabled.stroke?.strokeLinejoin,
45
- };
46
- }
47
- export function disabledDotsOverride(disabled) {
48
- if (!disabled)
49
- return undefined;
50
- return {
51
- dotRadius: disabled.dots?.dotRadius,
52
- dotFill: disabled.dots?.dotFill,
53
- dotFillOpacity: disabled.dots?.dotFillOpacity ?? disabled.opacity,
54
- dotSymbol: disabled.dots?.dotSymbol,
55
- dotStroke: disabled.dots?.dotStroke,
56
- dotStrokeWidth: disabled.dots?.dotStrokeWidth,
57
- dotStrokeOpacity: disabled.dots?.dotStrokeOpacity ?? disabled.opacity,
58
- dotStrokeDasharray: disabled.dots?.dotStrokeDasharray,
59
- };
60
- }
61
- export function disabledFillOverride(disabled) {
62
- if (!disabled)
63
- return undefined;
64
- return {
65
- fill: disabled.fill,
66
- fillOpacity: disabled.fillOpacity ?? disabled.opacity,
67
- };
68
- }
@@ -1,67 +0,0 @@
1
- import type { LineAnchor } from '../../types/plots/constants';
2
- /**
3
- * The one calculation every value-label-drawing plot (`LinePlot`, `BarPlot`,
4
- * `PyramidPlot`, …) needs to reserve margin for its own value labels ahead of
5
- * time, stable across a timeline scrubber or a dataset change: measure the
6
- * widest candidate label (already off-DOM/canvas via `measureMaxLabelWidth`,
7
- * so this is synchronous and exact, not an approximation needing a later
8
- * DOM-measured correction), then add a fixed `reach` — whatever fixed gap
9
- * sits between the anchor point and where the text itself starts, which
10
- * differs per plot (a bar/pyramid's anchor offset; a line's elbow-routed
11
- * lane geometry, see `laneReachUpperBound`).
12
- *
13
- * `texts` is the plot's own candidate list (its own concern — which values
14
- * count as "the widest this could ever need to be", e.g. every row's value
15
- * vs. just a pinned domain's extremes) — this function only measures and
16
- * combines, it never decides which labels matter.
17
- */
18
- export declare function estimateValueLabelMargin(texts: string[], options: {
19
- /** Canvas font shorthand, e.g. `"12px sans-serif"`, matching the labels' own rendered font. */
20
- canvasFont: string;
21
- /**
22
- * Fraction of the widest label's own width that extends toward the
23
- * margin being reserved — `1` (the default) for a label anchored so
24
- * its whole width reaches outward (`textAnchor: 'start'`), `0.5` for
25
- * one centered on its anchor (`'middle'`), `0` for one anchored back
26
- * over the plot's own content (no text-width contribution, though
27
- * `reach` can still apply).
28
- */
29
- textFraction?: number;
30
- /**
31
- * Fixed gap (px) between the anchor point and the start of the label
32
- * text — always reserved, even when `texts` is empty, matching every
33
- * caller's existing behaviour of never collapsing to zero margin
34
- * outright (a plot with no value-label-bearing data yet still keeps
35
- * whatever fixed offset its style config asks for).
36
- */
37
- reach?: number;
38
- }): number;
39
- /** Estimated full rendered height of a single-line value label at `fontSize`. */
40
- export declare function estimateLabelHeight(fontSize: number): number;
41
- /** Vertical analogue of `estimateValueLabelMargin`: how far a value label's text extends above/below its anchor point. */
42
- export declare function estimateValueLabelVerticalMargin(options: {
43
- fontSize: number;
44
- lineAnchor: LineAnchor;
45
- /** Pixel offset from the anchor point to the label's line-anchor edge, same sign as SVG's `dy`. */
46
- dy?: number;
47
- }): {
48
- top: number;
49
- bottom: number;
50
- };
51
- /**
52
- * Upper bound on how far `LinePlot`'s end-of-line labels can ever fan out
53
- * into lanes (see `plots/utils/declutter.ts`'s `laneAssignment`): a run of
54
- * colliding labels never uses more lanes than it has members, and a run can
55
- * never have more members than there are series total — so `elbowGap +
56
- * (seriesCount - 1) * laneStep + labelGap` is always >= the real, rendered
57
- * reach, for *any* arrangement `declutter1D`/`laneAssignment` could ever
58
- * produce. That's what makes it safe to use as a stable floor: it doesn't
59
- * depend on which series happen to collide on the current frame (which can
60
- * change tick to tick as a timeline scrubs), only on how many series exist —
61
- * so the margin it implies never needs to change across a scrub either.
62
- */
63
- export declare function laneReachUpperBound(seriesCount: number, cfg: {
64
- elbowGap: number;
65
- laneStep: number;
66
- labelGap: number;
67
- }): number;
@@ -1,60 +0,0 @@
1
- import { measureMaxLabelWidth } from '../../layout/plot/measureText';
2
- /**
3
- * The one calculation every value-label-drawing plot (`LinePlot`, `BarPlot`,
4
- * `PyramidPlot`, …) needs to reserve margin for its own value labels ahead of
5
- * time, stable across a timeline scrubber or a dataset change: measure the
6
- * widest candidate label (already off-DOM/canvas via `measureMaxLabelWidth`,
7
- * so this is synchronous and exact, not an approximation needing a later
8
- * DOM-measured correction), then add a fixed `reach` — whatever fixed gap
9
- * sits between the anchor point and where the text itself starts, which
10
- * differs per plot (a bar/pyramid's anchor offset; a line's elbow-routed
11
- * lane geometry, see `laneReachUpperBound`).
12
- *
13
- * `texts` is the plot's own candidate list (its own concern — which values
14
- * count as "the widest this could ever need to be", e.g. every row's value
15
- * vs. just a pinned domain's extremes) — this function only measures and
16
- * combines, it never decides which labels matter.
17
- */
18
- export function estimateValueLabelMargin(texts, options) {
19
- const maxWidth = measureMaxLabelWidth(texts, options.canvasFont);
20
- const textFraction = options.textFraction ?? 1;
21
- const reach = options.reach ?? 0;
22
- return Math.ceil(reach + textFraction * maxWidth);
23
- }
24
- /** Estimated full rendered height of a single-line value label at `fontSize`. */
25
- export function estimateLabelHeight(fontSize) {
26
- return fontSize * 1.2;
27
- }
28
- /** Vertical analogue of `estimateValueLabelMargin`: how far a value label's text extends above/below its anchor point. */
29
- export function estimateValueLabelVerticalMargin(options) {
30
- const height = estimateLabelHeight(options.fontSize);
31
- const dy = options.dy ?? 0;
32
- if (options.lineAnchor === 'top') {
33
- return { top: 0, bottom: Math.ceil(Math.max(0, dy) + height) + 2 };
34
- }
35
- if (options.lineAnchor === 'bottom') {
36
- return { top: Math.ceil(Math.max(0, -dy) + height) + 2, bottom: 0 };
37
- }
38
- const half = height / 2;
39
- return {
40
- top: Math.ceil(Math.max(0, half - dy)) + 2,
41
- bottom: Math.ceil(Math.max(0, half + dy)) + 2
42
- };
43
- }
44
- /**
45
- * Upper bound on how far `LinePlot`'s end-of-line labels can ever fan out
46
- * into lanes (see `plots/utils/declutter.ts`'s `laneAssignment`): a run of
47
- * colliding labels never uses more lanes than it has members, and a run can
48
- * never have more members than there are series total — so `elbowGap +
49
- * (seriesCount - 1) * laneStep + labelGap` is always >= the real, rendered
50
- * reach, for *any* arrangement `declutter1D`/`laneAssignment` could ever
51
- * produce. That's what makes it safe to use as a stable floor: it doesn't
52
- * depend on which series happen to collide on the current frame (which can
53
- * change tick to tick as a timeline scrubs), only on how many series exist —
54
- * so the margin it implies never needs to change across a scrub either.
55
- */
56
- export function laneReachUpperBound(seriesCount, cfg) {
57
- if (seriesCount <= 1)
58
- return 0;
59
- return cfg.elbowGap + (seriesCount - 1) * cfg.laneStep + cfg.labelGap;
60
- }
@@ -1,22 +0,0 @@
1
- import type { Snippet } from 'svelte';
2
- import type { TimeValue } from '../layout/timeline';
3
- import type { LegendPlotContext } from '../layout/legend';
4
- import type { MarginConfig } from '../plots/props';
5
- export type ChartBoxContext = {
6
- width: number;
7
- height: number;
8
- };
9
- export type ChartBoxSnippet = Snippet<[ChartBoxContext]>;
10
- export type ChartPlotContext<TRow extends Record<string, unknown>> = {
11
- data: TRow[];
12
- width: number;
13
- height: number;
14
- facetValue?: string;
15
- selectedValue?: TimeValue;
16
- legend?: LegendPlotContext;
17
- /** Present only when faceted with `facet.marginsForFacet` — forward to the plot's own `margins` prop so every facet shares the same content box. */
18
- margins?: MarginConfig;
19
- };
20
- export type ChartPlotSnippet<TRow extends Record<string, unknown>> = Snippet<[
21
- ChartPlotContext<TRow>
22
- ]>;
@@ -1,50 +0,0 @@
1
- import type { Snippet } from 'svelte';
2
- import type { AxisValue, AxisBasedScalesConfig } from '../layout/scales';
3
- import type { Accessor } from '../plots/data/common';
4
- import type { AxisBasedStylesConfig, GapsAwarePlotStylesConfig } from '../layout/styles';
5
- import type { SegmentsConfig, MarginConfig } from '../plots/props';
6
- import type { AxisBasedMarkersConfig } from '../markers/common';
7
- import type { TooltipProp } from '../layout/tooltip';
8
- import type { LegendSection } from '../layout/legend';
9
- import type { FacetConfig } from '../layout/facet';
10
- import type { TimelineConfig } from '../layout/timeline';
11
- /**
12
- * Common props accepted by every chart component (bar, line, heatmap, pyramid,
13
- * …). The `TSegmentStyle` parameter lets each chart narrow `segments` to its
14
- * own style shape while keeping everything else shared.
15
- *
16
- * Note: `z` is optional here (bar/line charts) but individual charts may
17
- * tighten it to required and/or narrow its value type (e.g. `number` for
18
- * heatmap).
19
- */
20
- export type ChartProps<TRow extends Record<string, unknown>, TSegmentStyle extends object = object> = {
21
- width: number;
22
- height: number;
23
- title?: string;
24
- subtitle?: string;
25
- caption?: string;
26
- header?: Snippet;
27
- footer?: Snippet;
28
- legend?: LegendSection[];
29
- data: TRow[];
30
- x: Accessor<TRow, AxisValue>;
31
- y: Accessor<TRow, AxisValue>;
32
- z?: Accessor<TRow, unknown>;
33
- styles?: AxisBasedStylesConfig;
34
- segments?: SegmentsConfig<TSegmentStyle>;
35
- markers?: AxisBasedMarkersConfig[];
36
- scales?: AxisBasedScalesConfig<TRow>;
37
- margins?: MarginConfig;
38
- facet?: FacetConfig<TRow>;
39
- timeline?: TimelineConfig<TRow>;
40
- tooltip?: TooltipProp<TRow>;
41
- };
42
- /**
43
- * `ChartProps` for the chart kinds with gap-fill (`BarChart`/`LineChart`/
44
- * `PyramidChart`) — identical shape, but `styles` accepts
45
- * `GapsAwarePlotStylesConfig<TSegmentStyle>` (adds `styles.gaps`) instead of
46
- * the plain `AxisBasedStylesConfig` every other chart kind uses.
47
- */
48
- export type GapsAwareChartProps<TRow extends Record<string, unknown>, TSegmentStyle extends object = object> = Omit<ChartProps<TRow, TSegmentStyle>, 'styles'> & {
49
- styles?: GapsAwarePlotStylesConfig<TSegmentStyle>;
50
- };
@@ -1,45 +0,0 @@
1
- import type { AxisValue } from '../layout/scales';
2
- import type { DotStyle, FontStyle } from '../plots/styling';
3
- import type { ColorsStyle } from '../layout/styles';
4
- /**
5
- * A set of point marks (svelteplot's `Dot`) — usable on any plot kind, axis-based or geo.
6
- *
7
- * `x`/`y`/`r`/`value` accept a field key or an accessor function, like `Series.x`/`y`.
8
- * `GeometryLayout` resolves the shorthand before it reaches `DotMarker.svelte`, which only
9
- * ever sees functions.
10
- */
11
- export type DotMarkerConfig = {
12
- type: 'dot';
13
- data: Record<string, unknown>[];
14
- x: string | ((d: any) => AxisValue);
15
- y: string | ((d: any) => AxisValue);
16
- /** Per-row radius, or a constant — overrides `style.dotRadius`. */
17
- r?: number | string | ((d: any) => number);
18
- /** Per-row fill, overriding `style.dotFill` — ignored when `value` is set. */
19
- fill?: (d: any) => string;
20
- /** Continuous value driving a per-dot color ramp through `style.colors`. */
21
- value?: string | ((d: any) => number);
22
- style?: DotStyle & {
23
- colors?: ColorsStyle;
24
- };
25
- };
26
- /**
27
- * A text label per row (svelteplot's `Text`) — usable on any plot kind, axis-based or geo.
28
- *
29
- * `x`/`y` accept the same field-key-or-function shorthand as `DotMarkerConfig`. `text` is a
30
- * constant or a per-row accessor.
31
- */
32
- export type TextMarkerConfig = {
33
- type: 'text';
34
- data: Record<string, unknown>[];
35
- x: string | ((d: any) => AxisValue);
36
- y: string | ((d: any) => AxisValue);
37
- text: string | ((d: any) => string);
38
- style?: FontStyle;
39
- };
40
- /**
41
- * Every marker kind usable on any plot, axis-based or geo. `AxisBasedMarkersConfig`
42
- * (`types/markers/common.ts`) and `GeoMarkersConfig` (`types/markers/geo.ts`) both extend
43
- * this, so `MarkerConfig` (`types/markers/all.ts`) can union the two without a shape collision.
44
- */
45
- export type BaseMarkersConfig = DotMarkerConfig | TextMarkerConfig;
@@ -1,34 +0,0 @@
1
- import type { AxisValue } from '../layout/scales';
2
- import type { StrokeStyle, FontStyle, DotStyle } from '../plots/styling';
3
- import type { AxisBasedMarkersConfig } from './common';
4
- /** Which endpoint a delta measures from/to: a named series, or a fixed axis value (defaults to `0`). */
5
- export type DeltaTarget = {
6
- type: 'series';
7
- series: string;
8
- } | {
9
- type: 'axis';
10
- value?: number;
11
- };
12
- /** How far apart two points are on a line chart: a given x (or y), or a series' distance from a fixed axis value. */
13
- export type DeltaConfig = {
14
- axis: 'x' | 'y';
15
- at: AxisValue;
16
- from: DeltaTarget;
17
- to?: DeltaTarget;
18
- formatDiff?: (diff: number) => string;
19
- strokeStyle?: StrokeStyle;
20
- fontStyle?: FontStyle;
21
- dotStyle?: DotStyle;
22
- };
23
- /**
24
- * A delta annotation between two points on a line chart, resolved against
25
- * series data (`utils/delta.ts`). `xDomain`/`yDomain` optionally clamp
26
- * the varying endpoint to the plot's own axis range.
27
- */
28
- export type DeltaMarkerConfig = {
29
- type: 'delta';
30
- xDomain?: (number | string | Date)[];
31
- yDomain?: (number | string | Date)[];
32
- } & DeltaConfig;
33
- /** `LinePlot`'s own `markers` prop type — every {@link AxisBasedMarkersConfig} kind plus the line-only `'delta'` annotation. */
34
- export type LineMarkersConfig = AxisBasedMarkersConfig | DeltaMarkerConfig;
@@ -1,11 +0,0 @@
1
- /**
2
- * Baseline props every marker component receives when mounted by a plot:
3
- * `data` for the points/values it draws, plus `series`/`seriesColor` when
4
- * mounted per-series via a `CustomComponentMarkerConfig`. Marker components extend
5
- * this with whatever else they need (e.g. PeakMarker's `mode`, `label`).
6
- */
7
- export interface MarkerProps<TData = Record<string, unknown>> {
8
- data?: TData[];
9
- series?: string;
10
- seriesColor?: string;
11
- }
@@ -1,13 +0,0 @@
1
- import type { Accessor, SeriesProps, DataProps } from './common';
2
- /**
3
- * `SeriesProps`/`DataProps`, plus an optional per-row bubble radius —
4
- * ScatterPlot's own data contract. A field key or accessor function is
5
- * bound to svelteplot's own auto sqrt scale (mirroring how `x`/`y` are
6
- * bound to their own scales), so bubble *area* — not radius — ends up
7
- * proportional to the raw values with no manual scaling needed; feeding it
8
- * an already-scaled value double-scales it. A literal number bypasses
9
- * scaling entirely (a fixed pixel radius, same as the default dot size).
10
- */
11
- export type ScatterDataProps<T extends Record<string, unknown>> = (SeriesProps<T> | DataProps<T>) & {
12
- r?: Accessor<T, number> | number;
13
- };