@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,332 +0,0 @@
1
- <script
2
- lang="ts"
3
- generics="TData extends Record<string, unknown>, TSeries extends Record<string, unknown> = TData"
4
- >
5
- import type { ComponentProps, Snippet } from 'svelte';
6
- import { Plot, Pointer, setPlotDefaults } from 'svelteplot';
7
- import { getConfiguration } from '../../configuration/config.svelte';
8
- import { AUTO_MARGIN_ESTIMATE, numericMargin } from './margins';
9
- import { buildScale } from '../scales/buildScale';
10
- import ScalesLayout from '../scales/ScalesLayout.svelte';
11
- import GeometryLayout from '../geometry/GeometryLayout.svelte';
12
- import CoordinatesLayout from '../coordinates/CoordinatesLayout.svelte';
13
- import StylesLayout from '../styles/StylesLayout.svelte';
14
- import { getHover, createHover } from '../tooltip/hover.svelte';
15
- import { createHoverController } from '../tooltip/controller.svelte';
16
- import TooltipLayout from '../tooltip/TooltipLayout.svelte';
17
- import type { AxisValue, AxisBasedScalesConfig } from '../../types/layout/scales';
18
- import type { CoordinatesConfig } from '../../types/layout/coordinates';
19
- import type { StylesLayoutConfig } from '../../types/layout/styles';
20
- import type { ScopedMarkerGroup } from '../../types/layout/geometry';
21
- import type { HoverPoint } from '../../types/layout/tooltip';
22
- import type { MarginConfig, HoverConfig } from '../../types/plots/props';
23
- import type { MarkerConfig } from '../../types/markers/all';
24
- import type { Series } from '../../types/plots/data/common';
25
- import type { GeoFeature } from '../../types/plots/data/geo';
26
-
27
- type SveltePlotProps = ComponentProps<typeof Plot>;
28
-
29
- /**
30
- * Shared chrome around every plot kind's svelteplot markup: the
31
- * pointer-event wrapper, the hover/tooltip state machine, and the floating
32
- * tooltip. Composes the Coordinates and Styles layers around every plot
33
- * kind's own content, plus `GeometryLayout` (which renders nothing extra
34
- * when `markers` is empty/unset). `ScalesLayout` composes in
35
- * independently, only when `scales` is passed. Every plot kind supplies
36
- * its own `<Plot x y projection>` scale config, either directly via
37
- * `x`/`y` or by leaving them unset so this component derives them from
38
- * `scales`.
39
- */
40
- let {
41
- width,
42
- height,
43
- data,
44
- getX,
45
- getY,
46
- hover,
47
- x = undefined,
48
- y = undefined,
49
- scales = undefined,
50
- coordinates = undefined,
51
- margins,
52
- marginEstimate = AUTO_MARGIN_ESTIMATE,
53
- marginRemountKey = undefined,
54
- xTickRotate = undefined,
55
- styles = undefined,
56
- markers = undefined,
57
- seriesData = undefined,
58
- scopedGroups = undefined,
59
- geoAllFeatures = undefined,
60
- containerEl = $bindable(undefined),
61
- children
62
- }: {
63
- width: number;
64
- height: number;
65
- /** Flat rows fed to svelteplot's `<Pointer>` for nearest-point matching, and to `CoordinatesLayout` for a `domain: 'data'` projection auto-fit. */
66
- data: TData[];
67
- getX: (d: TData) => AxisValue;
68
- getY: (d: TData) => AxisValue;
69
- /** Every hover/tooltip prop this component's own hover machinery reads — see {@link HoverConfig}. */
70
- hover: HoverConfig<TData>;
71
- /** Explicit `<Plot x>` override — bypasses `scales`-derived resolution (e.g. GeoPlot's fixed lon/lat domain). */
72
- x?: SveltePlotProps['x'];
73
- /** Explicit `<Plot y>` override — see `x`. */
74
- y?: SveltePlotProps['y'];
75
- /** Scale config `x`/`y` are derived from when not given directly. */
76
- scales?: AxisBasedScalesConfig<TData>;
77
- /** This plot kind's coordinate system config — `GeoPlot` only (a projection + pan/zoom). */
78
- coordinates?: CoordinatesConfig;
79
- /** Partial margin override — merged on top of the theme. */
80
- margins?: MarginConfig;
81
- /** Numeric fallback for a margin side that resolved to `'auto'` — see `numericMargin`'s doc comment. */
82
- marginEstimate?: Record<'top' | 'right' | 'bottom' | 'left', number>;
83
- /**
84
- * Forces svelteplot's own `<Plot>` to fully unmount/remount (via
85
- * `{#key}`) whenever this changes, instead of reacting to a `margins`
86
- * prop change on an already-mounted instance. Only needed by a caller
87
- * (line's own `Plot.svelte`) whose `margins` grows *after* mount, from
88
- * measuring rendered content (see `createLabelMarginTracker`) — handing
89
- * svelteplot's `<Plot>` a live post-mount margin change (rather than the
90
- * same final value from its very first mount) was observed to send its
91
- * own internal auto-margin sizing into a permanent one-pixel
92
- * bottom-margin oscillation for line's end-point value labels
93
- * specifically, which in turn kept re-triggering the overflow watcher
94
- * that grew the margin in the first place — an infinite effect loop
95
- * that tripped Svelte's `effect_update_depth_exceeded` guard. A static
96
- * `margins` prop (the common case — every other plot kind) never needs
97
- * this; leave it unset there.
98
- */
99
- marginRemountKey?: string | number;
100
- /** Boosts the bottom margin for a rotated x tick label — axis-having plot kinds only. */
101
- xTickRotate?: number;
102
- /** This plot kind's own `styles` prop, forwarded to the Styles layer. */
103
- styles?: StylesLayoutConfig;
104
- /**
105
- * This plot kind's own markers array. Accepts a plain array, or a
106
- * builder function for a plot kind whose own marker construction needs
107
- * `setHoverMatch`/`clearHoverMatch`, only available once this
108
- * component's own hover controller is set up.
109
- */
110
- markers?:
111
- | MarkerConfig[]
112
- | ((hover: {
113
- setHoverMatch: (rows: TData[]) => void;
114
- clearHoverMatch: () => void;
115
- }) => MarkerConfig[]);
116
- /** All resolved series, forwarded to `GeometryLayout` — axis-based kinds only. Independently generic over `TSeries` (defaults to `TData`). */
117
- seriesData?: Series<TSeries>[];
118
- /** Per-series `GeometryLayout` groups — axis-based kinds only, same `TSeries` as `seriesData`. */
119
- scopedGroups?: ScopedMarkerGroup<TSeries>[];
120
- /** `GeoPlot`'s own untouched, tagged features, forwarded to `GeometryLayout` — `inset` marker only. */
121
- geoAllFeatures?: (GeoFeature<Record<string, unknown>> & { __id: string })[];
122
- /** The wrapper div's own element — bind for a nested layout that needs it for its own gesture handling (e.g. `CoordinatesLayout`'s zoom/rotate). */
123
- containerEl?: HTMLDivElement;
124
- /**
125
- * `matchedPoints` carries the source `row` alongside the display fields,
126
- * so a template can resolve it straight off `row` instead of assuming
127
- * which visual axis it landed on. `activePoint` is the one matched point
128
- * under the cursor. `numericMargins` lets a nested layout align itself
129
- * with the plot's own content box. `setHoverMatch`/`clearHoverMatch` let
130
- * a plot kind drive the match itself instead of svelteplot's
131
- * distance-based `<Pointer>` — see `hover.pointMatching`. When `markers`
132
- * is given, this is `GeometryLayout`'s own `children` instead of raw
133
- * plot content. Optional — a plot kind whose every mark is a `markers`
134
- * entry has nothing left to render here.
135
- */
136
- children?: Snippet<
137
- [
138
- {
139
- matchedPoints: HoverPoint<TData>[];
140
- activePoint: HoverPoint<TData> | null;
141
- impliesCrosshairX: boolean;
142
- impliesCrosshairY: boolean;
143
- numericMargins: { top: number; right: number; bottom: number; left: number };
144
- setHoverMatch: (rows: TData[]) => void;
145
- clearHoverMatch: () => void;
146
- }
147
- ]
148
- >;
149
- } = $props();
150
-
151
- const cfg = $derived(getConfiguration());
152
- setPlotDefaults({
153
- numberFormat: { useGrouping: 'min2', compactDisplay: cfg.axis.compactDisplay }
154
- });
155
-
156
- /**
157
- * Margins passed straight to `<Plot margin={…}>`. Each side defaults to
158
- * `'auto'` (from the theme), which lets svelteplot size it to whatever it
159
- * actually renders there — tick labels, an axis title, rotated ticks —
160
- * rather than a fixed guess that either clips content or wastes space.
161
- * `margins`/`cfg.margins` can still pin a side to an exact number.
162
- */
163
- const computedMargins = $derived.by(() => {
164
- const base = { ...cfg.margins, ...margins };
165
- // Auto margins already measure the real (rotated) label bounding box, so
166
- // this manual boost is only needed when the caller pinned bottom to a
167
- // fixed number, which bypasses that measurement.
168
- if (!xTickRotate || typeof base.bottom !== 'number') return base;
169
- const rad = (Math.abs(xTickRotate) * Math.PI) / 180;
170
- return {
171
- ...base,
172
- bottom: base.bottom + Math.ceil(Math.sin(rad) * 20)
173
- };
174
- });
175
-
176
- const numericMargins = $derived({
177
- top: numericMargin('top', computedMargins.top, marginEstimate),
178
- right: numericMargin('right', computedMargins.right, marginEstimate),
179
- bottom: numericMargin('bottom', computedMargins.bottom, marginEstimate),
180
- left: numericMargin('left', computedMargins.left, marginEstimate)
181
- });
182
-
183
- // Cast to svelteplot's own (narrower, axis-specific) scale option type:
184
- // buildScale has already stripped the fields that don't exist there
185
- // (grid, the vertical label config, BarPlot's series-layout knobs).
186
- const resolvedX = $derived(
187
- x !== undefined ? x : (buildScale(scales?.x, data, getX) as SveltePlotProps['x'])
188
- );
189
- const resolvedY = $derived(
190
- y !== undefined ? y : (buildScale(scales?.y, data, getY) as SveltePlotProps['y'])
191
- );
192
-
193
- /** Only ever meaningful for `GeoPlot`. `none` while any interactive gesture (`zoom`/`pan`/`rotate`) is on. */
194
- const touchAction = $derived(
195
- (coordinates?.zoom !== false && coordinates?.zoom != null) ||
196
- coordinates?.pan ||
197
- coordinates?.rotate
198
- ? 'none'
199
- : undefined
200
- );
201
-
202
- // ── Hover / tooltip ───────────────────────────────────────────────────────
203
- const sharedHover = getHover();
204
- const localHover = createHover();
205
- const hoverStore = $derived(sharedHover ?? localHover);
206
-
207
- /** Declared intent, defaulted — see {@link HoverConfig.pointMatching}. */
208
- const pointMatchingStrategy = $derived(hover.pointMatching ?? 'nearest');
209
-
210
- /**
211
- * Which axes svelteplot's `<Pointer>` should search along, derived from
212
- * the active strategy. `undefined` for an axis collapses every point to
213
- * the same coordinate on that axis, excluding it from the match entirely.
214
- */
215
- const pointerMatchX = $derived(hoverStore.strategy === 'y' ? undefined : getX);
216
- const pointerMatchY = $derived(hoverStore.strategy === 'x' ? undefined : getY);
217
-
218
- $effect(() => {
219
- if (sharedHover) return;
220
- localHover.strategy = hover.strategy ?? 'x';
221
- localHover.sync = hover.sync ?? false;
222
- });
223
-
224
- const ctrl = createHoverController<TData>({
225
- hover: () => hoverStore,
226
- facetId: () => hover.tooltip?.facetId ?? '',
227
- points: () => hover.points,
228
- getX: () => getX,
229
- getY: () => getY,
230
- label: () => hover.label,
231
- seriesFilter: () => hover.tooltip?.series,
232
- width: () => width,
233
- height: () => height,
234
- crosshair: () => hover.crosshair
235
- });
236
-
237
- function onMove(e: PointerEvent) {
238
- if (hover.exclude?.(e)) {
239
- ctrl.onLeave();
240
- return;
241
- }
242
- ctrl.onMove(e);
243
- }
244
-
245
- const resolvedMarkers = $derived(
246
- typeof markers === 'function'
247
- ? markers({ setHoverMatch: ctrl.onPointer, clearHoverMatch: ctrl.onLeave })
248
- : markers
249
- );
250
- </script>
251
-
252
- <!-- svelte-ignore a11y_no_static_element_interactions -->
253
- <div
254
- class="dct-plot"
255
- bind:this={containerEl}
256
- style:color={cfg.axis.color}
257
- style:touch-action={touchAction}
258
- onpointermove={hover.active ? onMove : undefined}
259
- onpointerleave={hover.active ? ctrl.onLeave : undefined}
260
- >
261
- <CoordinatesLayout
262
- {width}
263
- {height}
264
- margin={computedMargins}
265
- x={resolvedX}
266
- y={resolvedY}
267
- {coordinates}
268
- locale={cfg.axis.locale}
269
- {data}
270
- {containerEl}
271
- remountKey={marginRemountKey}
272
- >
273
- <StylesLayout {styles} {width} {height} {numericMargins} />
274
- {#if scales !== undefined}
275
- <ScalesLayout {data} {getX} {getY} {width} {height} {numericMargins} {scales} />
276
- {/if}
277
- <GeometryLayout
278
- markers={resolvedMarkers}
279
- seriesData={seriesData ?? []}
280
- scopedGroups={scopedGroups ?? []}
281
- {ctrl}
282
- {width}
283
- {height}
284
- {numericMargins}
285
- {data}
286
- {geoAllFeatures}
287
- tooltipAnchorX={hover.tooltip?.anchorX}
288
- tooltipAnchorY={hover.tooltip?.anchorY}
289
- >
290
- {@render children?.({
291
- matchedPoints: ctrl.points,
292
- activePoint: ctrl.activePoint,
293
- impliesCrosshairX: ctrl.impliesCrosshairX,
294
- impliesCrosshairY: ctrl.impliesCrosshairY,
295
- numericMargins,
296
- setHoverMatch: ctrl.onPointer,
297
- clearHoverMatch: ctrl.onLeave
298
- })}
299
- </GeometryLayout>
300
-
301
- {#if hover.active && pointMatchingStrategy === 'nearest'}
302
- <Pointer
303
- {data}
304
- x={pointerMatchX}
305
- y={pointerMatchY}
306
- maxDistance={400}
307
- onupdate={ctrl.onPointer}
308
- />
309
- {/if}
310
- </CoordinatesLayout>
311
-
312
- {#if hover.tooltip}
313
- <TooltipLayout
314
- visible={ctrl.showTooltip && ctrl.tooltipPosition != null}
315
- x={ctrl.tooltipPosition?.x ?? 0}
316
- y={ctrl.tooltipPosition?.y ?? 0}
317
- bounds={{ width, height }}
318
- rows={ctrl.matchedRows.map((p) => p.row)}
319
- format={hover.tooltip.format}
320
- content={hover.tooltip.content}
321
- anchorX={hover.tooltip.anchorX}
322
- anchorY={hover.tooltip.anchorY}
323
- />
324
- {/if}
325
- </div>
326
-
327
- <style>
328
- .dct-plot {
329
- position: relative;
330
- line-height: 0;
331
- }
332
- </style>
@@ -1,122 +0,0 @@
1
- import type { Snippet } from 'svelte';
2
- import type { AxisValue, AxisBasedScalesConfig } from '../../types/layout/scales';
3
- import type { CoordinatesConfig } from '../../types/layout/coordinates';
4
- import type { StylesLayoutConfig } from '../../types/layout/styles';
5
- import type { ScopedMarkerGroup } from '../../types/layout/geometry';
6
- import type { HoverPoint } from '../../types/layout/tooltip';
7
- import type { MarginConfig, HoverConfig } from '../../types/plots/props';
8
- import type { MarkerConfig } from '../../types/markers/all';
9
- import type { Series } from '../../types/plots/data/common';
10
- import type { GeoFeature } from '../../types/plots/data/geo';
11
- declare function $$render<TData extends Record<string, unknown>, TSeries extends Record<string, unknown> = TData>(): {
12
- props: {
13
- width: number;
14
- height: number;
15
- /** Flat rows fed to svelteplot's `<Pointer>` for nearest-point matching, and to `CoordinatesLayout` for a `domain: 'data'` projection auto-fit. */
16
- data: TData[];
17
- getX: (d: TData) => AxisValue;
18
- getY: (d: TData) => AxisValue;
19
- /** Every hover/tooltip prop this component's own hover machinery reads — see {@link HoverConfig}. */
20
- hover: HoverConfig<TData>;
21
- /** Explicit `<Plot x>` override — bypasses `scales`-derived resolution (e.g. GeoPlot's fixed lon/lat domain). */
22
- x?: false | import("svelteplot/types/data.js").RawValue[] | Partial<import("svelteplot/types/scale.js").XScaleOptions> | undefined;
23
- /** Explicit `<Plot y>` override — see `x`. */
24
- y?: false | import("svelteplot/types/data.js").RawValue[] | Partial<import("svelteplot/types/scale.js").YScaleOptions> | undefined;
25
- /** Scale config `x`/`y` are derived from when not given directly. */
26
- scales?: AxisBasedScalesConfig<TData>;
27
- /** This plot kind's coordinate system config — `GeoPlot` only (a projection + pan/zoom). */
28
- coordinates?: CoordinatesConfig;
29
- /** Partial margin override — merged on top of the theme. */
30
- margins?: MarginConfig;
31
- /** Numeric fallback for a margin side that resolved to `'auto'` — see `numericMargin`'s doc comment. */
32
- marginEstimate?: Record<"top" | "right" | "bottom" | "left", number>;
33
- /**
34
- * Forces svelteplot's own `<Plot>` to fully unmount/remount (via
35
- * `{#key}`) whenever this changes, instead of reacting to a `margins`
36
- * prop change on an already-mounted instance. Only needed by a caller
37
- * (line's own `Plot.svelte`) whose `margins` grows *after* mount, from
38
- * measuring rendered content (see `createLabelMarginTracker`) — handing
39
- * svelteplot's `<Plot>` a live post-mount margin change (rather than the
40
- * same final value from its very first mount) was observed to send its
41
- * own internal auto-margin sizing into a permanent one-pixel
42
- * bottom-margin oscillation for line's end-point value labels
43
- * specifically, which in turn kept re-triggering the overflow watcher
44
- * that grew the margin in the first place — an infinite effect loop
45
- * that tripped Svelte's `effect_update_depth_exceeded` guard. A static
46
- * `margins` prop (the common case — every other plot kind) never needs
47
- * this; leave it unset there.
48
- */
49
- marginRemountKey?: string | number;
50
- /** Boosts the bottom margin for a rotated x tick label — axis-having plot kinds only. */
51
- xTickRotate?: number;
52
- /** This plot kind's own `styles` prop, forwarded to the Styles layer. */
53
- styles?: StylesLayoutConfig;
54
- /**
55
- * This plot kind's own markers array. Accepts a plain array, or a
56
- * builder function for a plot kind whose own marker construction needs
57
- * `setHoverMatch`/`clearHoverMatch`, only available once this
58
- * component's own hover controller is set up.
59
- */
60
- markers?: MarkerConfig[] | ((hover: {
61
- setHoverMatch: (rows: TData[]) => void;
62
- clearHoverMatch: () => void;
63
- }) => MarkerConfig[]);
64
- /** All resolved series, forwarded to `GeometryLayout` — axis-based kinds only. Independently generic over `TSeries` (defaults to `TData`). */
65
- seriesData?: Series<TSeries>[];
66
- /** Per-series `GeometryLayout` groups — axis-based kinds only, same `TSeries` as `seriesData`. */
67
- scopedGroups?: ScopedMarkerGroup<TSeries>[];
68
- /** `GeoPlot`'s own untouched, tagged features, forwarded to `GeometryLayout` — `inset` marker only. */
69
- geoAllFeatures?: (GeoFeature<Record<string, unknown>> & {
70
- __id: string;
71
- })[];
72
- /** The wrapper div's own element — bind for a nested layout that needs it for its own gesture handling (e.g. `CoordinatesLayout`'s zoom/rotate). */
73
- containerEl?: HTMLDivElement;
74
- /**
75
- * `matchedPoints` carries the source `row` alongside the display fields,
76
- * so a template can resolve it straight off `row` instead of assuming
77
- * which visual axis it landed on. `activePoint` is the one matched point
78
- * under the cursor. `numericMargins` lets a nested layout align itself
79
- * with the plot's own content box. `setHoverMatch`/`clearHoverMatch` let
80
- * a plot kind drive the match itself instead of svelteplot's
81
- * distance-based `<Pointer>` — see `hover.pointMatching`. When `markers`
82
- * is given, this is `GeometryLayout`'s own `children` instead of raw
83
- * plot content. Optional — a plot kind whose every mark is a `markers`
84
- * entry has nothing left to render here.
85
- */
86
- children?: Snippet<[{
87
- matchedPoints: HoverPoint<TData>[];
88
- activePoint: HoverPoint<TData> | null;
89
- impliesCrosshairX: boolean;
90
- impliesCrosshairY: boolean;
91
- numericMargins: {
92
- top: number;
93
- right: number;
94
- bottom: number;
95
- left: number;
96
- };
97
- setHoverMatch: (rows: TData[]) => void;
98
- clearHoverMatch: () => void;
99
- }]>;
100
- };
101
- exports: {};
102
- bindings: "containerEl";
103
- slots: {};
104
- events: {};
105
- };
106
- declare class __sveltets_Render<TData extends Record<string, unknown>, TSeries extends Record<string, unknown> = TData> {
107
- props(): ReturnType<typeof $$render<TData, TSeries>>['props'];
108
- events(): ReturnType<typeof $$render<TData, TSeries>>['events'];
109
- slots(): ReturnType<typeof $$render<TData, TSeries>>['slots'];
110
- bindings(): "containerEl";
111
- exports(): {};
112
- }
113
- interface $$IsomorphicComponent {
114
- new <TData extends Record<string, unknown>, TSeries extends Record<string, unknown> = TData>(options: import('svelte').ComponentConstructorOptions<ReturnType<__sveltets_Render<TData, TSeries>['props']>>): import('svelte').SvelteComponent<ReturnType<__sveltets_Render<TData, TSeries>['props']>, ReturnType<__sveltets_Render<TData, TSeries>['events']>, ReturnType<__sveltets_Render<TData, TSeries>['slots']>> & {
115
- $$bindings?: ReturnType<__sveltets_Render<TData, TSeries>['bindings']>;
116
- } & ReturnType<__sveltets_Render<TData, TSeries>['exports']>;
117
- <TData extends Record<string, unknown>, TSeries extends Record<string, unknown> = TData>(internal: unknown, props: ReturnType<__sveltets_Render<TData, TSeries>['props']> & {}): ReturnType<__sveltets_Render<TData, TSeries>['exports']>;
118
- z_$$bindings?: ReturnType<__sveltets_Render<any, any>['bindings']>;
119
- }
120
- declare const BasePlotLayout: $$IsomorphicComponent;
121
- type BasePlotLayout<TData extends Record<string, unknown>, TSeries extends Record<string, unknown> = TData> = InstanceType<typeof BasePlotLayout<TData, TSeries>>;
122
- export default BasePlotLayout;
@@ -1,18 +0,0 @@
1
- export declare const AUTO_MARGIN_ESTIMATE: {
2
- readonly top: 20;
3
- readonly right: 20;
4
- readonly bottom: 30;
5
- readonly left: 40;
6
- };
7
- /**
8
- * Best-effort numeric fallback for a margin side that resolved to `'auto'`.
9
- * Used for layout heuristics that need *a* number before svelteplot has
10
- * measured the real rendered content (tick labels, axis title) — e.g.
11
- * capping tick count, or estimating a band's pixel width for the bar plot's
12
- * 'grouped' series layout. Not exact: an `'auto'` side can end up wider than
13
- * this once svelteplot measures unusually long tick labels.
14
- *
15
- * `estimate` defaults to `AUTO_MARGIN_ESTIMATE`; pass `GEO_MARGIN_ESTIMATE`
16
- * for GeoPlot, which has no axes for that estimate's asymmetry to apply to.
17
- */
18
- export declare function numericMargin(side: keyof typeof AUTO_MARGIN_ESTIMATE, value: number | 'auto' | undefined, estimate?: Record<keyof typeof AUTO_MARGIN_ESTIMATE, number>): number;
@@ -1,15 +0,0 @@
1
- export const AUTO_MARGIN_ESTIMATE = { top: 20, right: 20, bottom: 30, left: 40 };
2
- /**
3
- * Best-effort numeric fallback for a margin side that resolved to `'auto'`.
4
- * Used for layout heuristics that need *a* number before svelteplot has
5
- * measured the real rendered content (tick labels, axis title) — e.g.
6
- * capping tick count, or estimating a band's pixel width for the bar plot's
7
- * 'grouped' series layout. Not exact: an `'auto'` side can end up wider than
8
- * this once svelteplot measures unusually long tick labels.
9
- *
10
- * `estimate` defaults to `AUTO_MARGIN_ESTIMATE`; pass `GEO_MARGIN_ESTIMATE`
11
- * for GeoPlot, which has no axes for that estimate's asymmetry to apply to.
12
- */
13
- export function numericMargin(side, value, estimate = AUTO_MARGIN_ESTIMATE) {
14
- return typeof value === 'number' ? value : estimate[side];
15
- }
@@ -1,4 +0,0 @@
1
- /** Pixel width of `text` set in `font` (a canvas font shorthand, e.g. `"14px sans-serif"`). 0 during SSR. */
2
- export declare function measureTextWidth(text: string, font: string): number;
3
- /** Widest of `labels` set in `font`. 0 for an empty list. */
4
- export declare function measureMaxLabelWidth(labels: string[], font: string): number;
@@ -1,19 +0,0 @@
1
- let measureCtx;
2
- function getMeasureContext() {
3
- if (measureCtx !== undefined)
4
- return measureCtx;
5
- measureCtx = typeof document === 'undefined' ? null : document.createElement('canvas').getContext('2d');
6
- return measureCtx;
7
- }
8
- /** Pixel width of `text` set in `font` (a canvas font shorthand, e.g. `"14px sans-serif"`). 0 during SSR. */
9
- export function measureTextWidth(text, font) {
10
- const ctx = getMeasureContext();
11
- if (!ctx)
12
- return 0;
13
- ctx.font = font;
14
- return ctx.measureText(text).width;
15
- }
16
- /** Widest of `labels` set in `font`. 0 for an empty list. */
17
- export function measureMaxLabelWidth(labels, font) {
18
- return labels.reduce((max, label) => Math.max(max, measureTextWidth(label, font)), 0);
19
- }
@@ -1,25 +0,0 @@
1
- import type { AxisValue, AxisScale } from '../../types/layout/scales';
2
- /**
3
- * Resolves an author-facing {@link AxisScale} into what svelteplot's
4
- * `<Plot x>`/`<Plot y>` accepts — strips `grid`/`seriesLayout`/
5
- * `seriesPadding`/a vertical `label`, since `ScalesLayout` renders those
6
- * itself. Also defaults `nice: true` whenever the caller hasn't pinned a
7
- * `domain`/`ticks`/`nice`/non-numeric `type` of their own and the axis's own
8
- * values are plainly numeric ({@link isNumericAxis}), so an unpinned
9
- * continuous axis rounds its domain outward to whole tick steps instead of
10
- * stopping exactly at the data's own min/max.
11
- *
12
- * Deliberately *not* our own `[min, max]` padding: svelteplot computes the
13
- * real domain from every mark's own channels — e.g. a bar's implicit zero
14
- * baseline, or a stacked series' cumulative total — not just this axis's raw
15
- * per-row values, which is all this function has to work with. `nice`'s
16
- * domain-widening runs *after* that real domain is resolved, inside
17
- * svelteplot itself, so it stays correct for every plot kind for free — at
18
- * the cost of only widening up to the nearest round tick step, which can
19
- * still land exactly on the data's own min/max rather than strictly beyond
20
- * it (e.g. a value of exactly `52` needs no widening to reach the nice tick
21
- * `52`). Recomputing the domain ourselves to close that gap would need each
22
- * axis's true rendered extent (baseline/stack included), which only the
23
- * calling plot kind knows — not attempted here.
24
- */
25
- export declare function buildScale<TData>(scale: AxisScale<TData> | undefined, rows: TData[], getAxisValue: (d: TData) => AxisValue): AxisScale<TData> | undefined;
@@ -1,90 +0,0 @@
1
- import { SvelteSet } from 'svelte/reactivity';
2
- /** One representative row per unique axis value (first occurrence in `rows`). */
3
- function uniqueRows(rows, getAxisValue) {
4
- const seen = new SvelteSet();
5
- const out = [];
6
- for (const row of rows) {
7
- const v = getAxisValue(row);
8
- if (seen.has(v))
9
- continue;
10
- seen.add(v);
11
- out.push(row);
12
- }
13
- return out;
14
- }
15
- /** svelteplot's `sort` option only does a fixed ascending sort; a custom `scale.sort` comparator is resolved into an explicit `domain` instead, which svelteplot honors as-is. */
16
- function sortedScale(scale, rows, getAxisValue) {
17
- const sort = scale?.sort;
18
- if (!sort || scale?.domain)
19
- return scale;
20
- const reps = uniqueRows(rows, getAxisValue);
21
- if (reps.length === 0 || !reps.every((r) => typeof getAxisValue(r) === 'string'))
22
- return scale;
23
- const domain = [...reps].sort(sort).map(getAxisValue);
24
- return { ...scale, domain };
25
- }
26
- /** Scale types {@link buildScale}'s default `nice` only applies to — every other type has its own tick semantics (or isn't numeric at all). */
27
- const CONTINUOUS_NUMERIC_TYPES = new Set(['auto', 'linear', 'pow', 'sqrt', 'log', 'symlog']);
28
- /**
29
- * Whether this axis's own values are plainly numeric — required before
30
- * defaulting `nice: true`. Not just an optimization: svelteplot's own type
31
- * *inference* treats a `nice` option as a hint to resolve the scale as
32
- * `'linear'` (see its `autoScales.js`), so setting it on a scale whose real
33
- * values are strings (a bar/pyramid's category axis) would force a linear
34
- * scale onto categorical data and break the mark entirely.
35
- */
36
- function isNumericAxis(rows, getAxisValue) {
37
- let numericSeen = 0;
38
- for (const row of rows) {
39
- const v = getAxisValue(row);
40
- if (v == null)
41
- continue;
42
- if (typeof v !== 'number')
43
- return false;
44
- if (++numericSeen >= 2)
45
- return true;
46
- }
47
- return numericSeen > 0;
48
- }
49
- /**
50
- * Resolves an author-facing {@link AxisScale} into what svelteplot's
51
- * `<Plot x>`/`<Plot y>` accepts — strips `grid`/`seriesLayout`/
52
- * `seriesPadding`/a vertical `label`, since `ScalesLayout` renders those
53
- * itself. Also defaults `nice: true` whenever the caller hasn't pinned a
54
- * `domain`/`ticks`/`nice`/non-numeric `type` of their own and the axis's own
55
- * values are plainly numeric ({@link isNumericAxis}), so an unpinned
56
- * continuous axis rounds its domain outward to whole tick steps instead of
57
- * stopping exactly at the data's own min/max.
58
- *
59
- * Deliberately *not* our own `[min, max]` padding: svelteplot computes the
60
- * real domain from every mark's own channels — e.g. a bar's implicit zero
61
- * baseline, or a stacked series' cumulative total — not just this axis's raw
62
- * per-row values, which is all this function has to work with. `nice`'s
63
- * domain-widening runs *after* that real domain is resolved, inside
64
- * svelteplot itself, so it stays correct for every plot kind for free — at
65
- * the cost of only widening up to the nearest round tick step, which can
66
- * still land exactly on the data's own min/max rather than strictly beyond
67
- * it (e.g. a value of exactly `52` needs no widening to reach the nice tick
68
- * `52`). Recomputing the domain ourselves to close that gap would need each
69
- * axis's true rendered extent (baseline/stack included), which only the
70
- * calling plot kind knows — not attempted here.
71
- */
72
- export function buildScale(scale, rows, getAxisValue) {
73
- const sorted = sortedScale(scale, rows, getAxisValue);
74
- const wantsNice = scale?.domain == null &&
75
- scale?.ticks == null &&
76
- scale?.nice == null &&
77
- (scale?.type == null || CONTINUOUS_NUMERIC_TYPES.has(scale.type)) &&
78
- isNumericAxis(rows, getAxisValue);
79
- if (!sorted && !wantsNice)
80
- return sorted;
81
- const out = { ...sorted };
82
- delete out.grid;
83
- delete out.seriesLayout;
84
- delete out.seriesPadding;
85
- if (scale?.labelOrientation === 'vertical')
86
- delete out.label;
87
- if (wantsNice)
88
- out.nice = true;
89
- return out;
90
- }
@@ -1,23 +0,0 @@
1
- /** Step between "nice" (1/2/5×10ⁿ) tick values for an approximate `count` over `[start, stop]`. */
2
- export declare function tickStep(start: number, stop: number, count: number): number;
3
- /** Multiples of `step` covering `[start, stop]`, inclusive of either endpoint when it lands exactly on one. */
4
- export declare function ticksInRange(start: number, stop: number, step: number): number[];
5
- /** Ticks-per-axis heuristic — used by `ScalesLayout` to pick a target count from an axis's actual pixel span. */
6
- export declare function naturalTickCount(span: number, spacing: number, min: number): number;
7
- /**
8
- * Widens `[lo, hi]` outward to the nearest `count`-ish "nice" step —
9
- * equivalent to d3's own `scale.nice(count)`, except a value within
10
- * `epsilonFraction × step` of a step boundary is treated as already sitting
11
- * on it, rather than needing a full extra step to clear it.
12
- *
13
- * Exists because plain `Math.ceil`/`Math.floor` (what `nice()` uses
14
- * internally, both here and in d3) has zero tolerance: a value meant to be
15
- * exactly `100` that comes out `100.00000000000001` after summing several
16
- * independently-rounded parts (a common shape for "these categories add up
17
- * to a whole" data, e.g. percentages of a total) still fails `hi <= step*N`
18
- * and gets rounded up a full step further than the data actually warrants
19
- * (`100` → `110`, not just a hair past `100`). `epsilonFraction` defaults to
20
- * 1% of the step — small enough to only catch rounding/summation noise, not
21
- * data that's genuinely meaningfully past the boundary.
22
- */
23
- export declare function niceDomain(lo: number, hi: number, count?: number, epsilonFraction?: number): [number, number];