@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,59 +0,0 @@
1
- // d3-array-compatible "nice" tick step/generation, reimplemented locally to
2
- // avoid depending on internals svelteplot itself pulls in (not one of our
3
- // declared dependencies) — see https://d3js.org/d3-array/ticks.
4
- /** Step between "nice" (1/2/5×10ⁿ) tick values for an approximate `count` over `[start, stop]`. */
5
- export function tickStep(start, stop, count) {
6
- const e10 = Math.sqrt(50);
7
- const e5 = Math.sqrt(10);
8
- const e2 = Math.sqrt(2);
9
- const step0 = Math.abs(stop - start) / Math.max(0, count);
10
- let step1 = 10 ** Math.floor(Math.log10(step0));
11
- const error = step0 / step1;
12
- if (error >= e10)
13
- step1 *= 10;
14
- else if (error >= e5)
15
- step1 *= 5;
16
- else if (error >= e2)
17
- step1 *= 2;
18
- return step1;
19
- }
20
- /** Multiples of `step` covering `[start, stop]`, inclusive of either endpoint when it lands exactly on one. */
21
- export function ticksInRange(start, stop, step) {
22
- if (!(step > 0) || !Number.isFinite(step))
23
- return [];
24
- const lo = Math.ceil(start / step);
25
- const hi = Math.floor(stop / step);
26
- const out = [];
27
- for (let i = lo; i <= hi; i++)
28
- out.push(i * step);
29
- return out;
30
- }
31
- /** Ticks-per-axis heuristic — used by `ScalesLayout` to pick a target count from an axis's actual pixel span. */
32
- export function naturalTickCount(span, spacing, min) {
33
- return Math.max(min, Math.round(span / spacing));
34
- }
35
- /**
36
- * Widens `[lo, hi]` outward to the nearest `count`-ish "nice" step —
37
- * equivalent to d3's own `scale.nice(count)`, except a value within
38
- * `epsilonFraction × step` of a step boundary is treated as already sitting
39
- * on it, rather than needing a full extra step to clear it.
40
- *
41
- * Exists because plain `Math.ceil`/`Math.floor` (what `nice()` uses
42
- * internally, both here and in d3) has zero tolerance: a value meant to be
43
- * exactly `100` that comes out `100.00000000000001` after summing several
44
- * independently-rounded parts (a common shape for "these categories add up
45
- * to a whole" data, e.g. percentages of a total) still fails `hi <= step*N`
46
- * and gets rounded up a full step further than the data actually warrants
47
- * (`100` → `110`, not just a hair past `100`). `epsilonFraction` defaults to
48
- * 1% of the step — small enough to only catch rounding/summation noise, not
49
- * data that's genuinely meaningfully past the boundary.
50
- */
51
- export function niceDomain(lo, hi, count = 5, epsilonFraction = 0.01) {
52
- if (!(hi > lo))
53
- return [lo, hi];
54
- const step = tickStep(lo, hi, count);
55
- const eps = step * epsilonFraction;
56
- const niceLo = Math.floor((lo + eps) / step) * step;
57
- const niceHi = Math.ceil((hi - eps) / step) * step;
58
- return [niceLo, niceHi];
59
- }
@@ -1,51 +0,0 @@
1
- <script lang="ts" generics="TRow extends Record<string, unknown>">
2
- import type { Snippet } from 'svelte';
3
- import Tooltip from './Tooltip.svelte';
4
- import type { TooltipAnchorX, TooltipAnchorY } from '../../types/layout/tooltip';
5
-
6
- /**
7
- * The "resolve + render" step every hoverable plot repeats verbatim:
8
- * given the matched row(s) for the current hover and the author's
9
- * `format`/`content` config, decide what goes inside the floating
10
- * `Tooltip` — its own custom snippet (`content`, given every matched row)
11
- * or the newline-joined `format` text (the default). Shared by
12
- * `BasePlotLayout` (fed by the shared hover controller, used by every plot
13
- * kind including `GeoPlot`) and `InsetMarker` (which matches hover locally,
14
- * independent of that controller) so neither re-implements this branch.
15
- */
16
- let {
17
- visible,
18
- x,
19
- y,
20
- bounds,
21
- rows,
22
- format,
23
- content,
24
- anchorX,
25
- anchorY,
26
- }: {
27
- visible: boolean;
28
- x: number;
29
- y: number;
30
- /** Box the tooltip must stay within — see `Tooltip`'s own `bounds` doc. */
31
- bounds: { width: number; height: number };
32
- /** Every row the current hover matched — passed to `content` as-is; joined via `format` otherwise. */
33
- rows: TRow[];
34
- format: (row: TRow) => string;
35
- /** Custom tooltip body; replaces the joined `format` text when given. */
36
- content?: Snippet<[{ rows: TRow[] }]>;
37
- /** Preferred anchor — forwarded to `Tooltip` as-is; `undefined` falls through to its own system default. */
38
- anchorX?: TooltipAnchorX;
39
- anchorY?: TooltipAnchorY;
40
- } = $props();
41
- </script>
42
-
43
- {#if visible}
44
- <Tooltip {x} {y} {bounds} plain={!!content} {anchorX} {anchorY}>
45
- {#if content}
46
- {@render content({ rows })}
47
- {:else}
48
- {rows.map(format).join('\n')}
49
- {/if}
50
- </Tooltip>
51
- {/if}
@@ -1,45 +0,0 @@
1
- import type { Snippet } from 'svelte';
2
- import type { TooltipAnchorX, TooltipAnchorY } from '../../types/layout/tooltip';
3
- declare function $$render<TRow extends Record<string, unknown>>(): {
4
- props: {
5
- visible: boolean;
6
- x: number;
7
- y: number;
8
- /** Box the tooltip must stay within — see `Tooltip`'s own `bounds` doc. */
9
- bounds: {
10
- width: number;
11
- height: number;
12
- };
13
- /** Every row the current hover matched — passed to `content` as-is; joined via `format` otherwise. */
14
- rows: TRow[];
15
- format: (row: TRow) => string;
16
- /** Custom tooltip body; replaces the joined `format` text when given. */
17
- content?: Snippet<[{
18
- rows: TRow[];
19
- }]>;
20
- /** Preferred anchor — forwarded to `Tooltip` as-is; `undefined` falls through to its own system default. */
21
- anchorX?: TooltipAnchorX;
22
- anchorY?: TooltipAnchorY;
23
- };
24
- exports: {};
25
- bindings: "";
26
- slots: {};
27
- events: {};
28
- };
29
- declare class __sveltets_Render<TRow extends Record<string, unknown>> {
30
- props(): ReturnType<typeof $$render<TRow>>['props'];
31
- events(): ReturnType<typeof $$render<TRow>>['events'];
32
- slots(): ReturnType<typeof $$render<TRow>>['slots'];
33
- bindings(): "";
34
- exports(): {};
35
- }
36
- interface $$IsomorphicComponent {
37
- new <TRow extends Record<string, unknown>>(options: import('svelte').ComponentConstructorOptions<ReturnType<__sveltets_Render<TRow>['props']>>): import('svelte').SvelteComponent<ReturnType<__sveltets_Render<TRow>['props']>, ReturnType<__sveltets_Render<TRow>['events']>, ReturnType<__sveltets_Render<TRow>['slots']>> & {
38
- $$bindings?: ReturnType<__sveltets_Render<TRow>['bindings']>;
39
- } & ReturnType<__sveltets_Render<TRow>['exports']>;
40
- <TRow extends Record<string, unknown>>(internal: unknown, props: ReturnType<__sveltets_Render<TRow>['props']> & {}): ReturnType<__sveltets_Render<TRow>['exports']>;
41
- z_$$bindings?: ReturnType<__sveltets_Render<any>['bindings']>;
42
- }
43
- declare const TooltipLayout: $$IsomorphicComponent;
44
- type TooltipLayout<TRow extends Record<string, unknown>> = InstanceType<typeof TooltipLayout<TRow>>;
45
- export default TooltipLayout;
@@ -1,61 +0,0 @@
1
- import type { HoverStore, HoverPoint } from '../../types/layout/tooltip';
2
- import type { AxisValue } from '../../types/layout/scales';
3
- /** Return type of {@link createHoverController}. */
4
- export type HoverController<T extends Record<string, unknown>> = ReturnType<typeof createHoverController<T>>;
5
- /**
6
- * The plot-agnostic hover state machine shared by every plot. Given reactive
7
- * accessors for the current hover store, this facet's id, and the local points,
8
- * it produces everything a plot needs to render: the highlight points, the
9
- * crosshair rule positions, and the floating-tooltip state — plus the event
10
- * handlers that feed (and broadcast to) the shared store.
11
- *
12
- * Kept generic so line / bar / heatmap reuse it unchanged; only the points and
13
- * accessors they pass in differ.
14
- */
15
- export declare function createHoverController<T extends Record<string, unknown>>(args: {
16
- hover: () => HoverStore;
17
- facetId: () => string;
18
- points: () => HoverPoint<T>[];
19
- getX: () => (d: T) => AxisValue;
20
- getY: () => (d: T) => AxisValue;
21
- /** Short label drawn next to the highlight dot (e.g. the value). */
22
- label: () => (row: T) => string;
23
- /** Named subset of series the tooltip text/content should be limited to. */
24
- seriesFilter?: () => string[] | undefined;
25
- /** This facet's own box, used to convert the cursor to/from a sync-broadcast fraction. */
26
- width: () => number;
27
- height: () => number;
28
- /** Forces the crosshair rule(s) off entirely — see {@link import('../../types/plots/props').HoverConfig.crosshair}. */
29
- crosshair?: () => boolean | undefined;
30
- }): {
31
- onPointer: (data: T[]) => void;
32
- onMove: (e: PointerEvent) => void;
33
- onLeave: () => void;
34
- reportActivePointPixel(pos: {
35
- x: number;
36
- y: number;
37
- } | null): void;
38
- readonly points: {
39
- x: AxisValue;
40
- y: AxisValue;
41
- label: string;
42
- series: string | undefined;
43
- color: string | undefined;
44
- dx: number | undefined;
45
- dy: number | undefined;
46
- row: T;
47
- }[];
48
- readonly matchedRows: HoverPoint<T>[];
49
- readonly activePoint: HoverPoint<T> | null;
50
- readonly impliesCrosshairX: boolean;
51
- readonly impliesCrosshairY: boolean;
52
- readonly showTooltip: boolean;
53
- readonly tooltipPosition: {
54
- x: number;
55
- y: number;
56
- } | null;
57
- readonly cursor: {
58
- x: number;
59
- y: number;
60
- } | null;
61
- };
@@ -1,173 +0,0 @@
1
- import { eq, matchByStrategy, impliesCrosshairX, impliesCrosshairY, filterBySeries } from './utils';
2
- /**
3
- * The plot-agnostic hover state machine shared by every plot. Given reactive
4
- * accessors for the current hover store, this facet's id, and the local points,
5
- * it produces everything a plot needs to render: the highlight points, the
6
- * crosshair rule positions, and the floating-tooltip state — plus the event
7
- * handlers that feed (and broadcast to) the shared store.
8
- *
9
- * Kept generic so line / bar / heatmap reuse it unchanged; only the points and
10
- * accessors they pass in differ.
11
- */
12
- export function createHoverController(args) {
13
- let cursor = $state(null);
14
- // This facet's own `activePoint`, as a pixel position reported by `HoverMarker`.
15
- let activePointPixel = $state(null);
16
- // Finds the matching hoverPoint for a hit row — by identity first, then
17
- // by x/y value (for svelteplot's `Pointer`, which hands back clones).
18
- const pointForRow = (row) => {
19
- const byIdentity = args.points().find((p) => p.row === row);
20
- if (byIdentity)
21
- return byIdentity;
22
- const x = args.getX()(row);
23
- const y = args.getY()(row);
24
- return args.points().find((p) => eq(p.x, x) && eq(p.y, y));
25
- };
26
- // Points matched in THIS facet. Non-source facets only react when sync is
27
- // enabled. The strategy in the shared store determines how points are found.
28
- const matched = $derived.by(() => {
29
- const h = args.hover();
30
- const isSource = h.source === args.facetId();
31
- if (!isSource && !h.sync)
32
- return [];
33
- return matchByStrategy(args.points(), h);
34
- });
35
- const matchedRows = $derived(filterBySeries(matched, args.seriesFilter?.()));
36
- // Points highlighted in THIS facet for the in-SVG marker — no series
37
- // filtering, since that's the tooltip text's concern, not the marker's.
38
- // Keeps `row` (not just the display fields) so plot-kind templates can
39
- // resolve a semantic value off the source row directly — e.g. a bar
40
- // plot's category, regardless of which visual axis it's drawn on.
41
- const highlight = $derived(matched.map(({ x, y, label, series, color, dx, dy, row }) => ({
42
- x,
43
- y,
44
- label,
45
- series,
46
- color,
47
- dx,
48
- dy,
49
- row
50
- })));
51
- /**
52
- * The specific matched point that was actually hovered — found by the
53
- * shared store's `activeSeries` (set from whichever row was hit), falling
54
- * back to the first match when there's no series concept (punctual
55
- * matches) or nothing tags a series. Consumers read `.x`/`.y` off this
56
- * for the crosshair rule position — every point in `matched` already
57
- * shares the "implied" axis's value by construction of `matchByStrategy`,
58
- * and picking the actively-hovered one is what makes forcing a rule on
59
- * the *other* axis (e.g. `ruleY: true` under an `'x'`-strategy chart)
60
- * point at the row under the cursor rather than an arbitrary matched
61
- * sibling. `BasePlotLayout` gates actual display with
62
- * `impliesCrosshairX`/`Y` + the marker's own `ruleX`/`ruleY` props.
63
- *
64
- * `activeSeries` alone can't disambiguate two matched rows that share the
65
- * same (or absent) series tag — e.g. an ungrouped bar/line chart where two
66
- * categories tie on the matched axis value. `onPointer` sets `activeX`/
67
- * `activeY` straight from the hit row, so when more than one series-tied
68
- * candidate remains, narrowing to the one whose own x/y equals the hit
69
- * row's picks the actual row under the cursor instead of an arbitrary tie.
70
- */
71
- const activePoint = $derived.by(() => {
72
- if (matched.length === 0)
73
- return null;
74
- const h = args.hover();
75
- const bySeries = matched.filter((p) => p.series === h.activeSeries);
76
- const candidates = bySeries.length > 0 ? bySeries : matched;
77
- if (candidates.length === 1)
78
- return candidates[0];
79
- const { activeX, activeY } = h;
80
- if (activeX == null || activeY == null)
81
- return candidates[0];
82
- return candidates.find((p) => eq(p.x, activeX) && eq(p.y, activeY)) ?? candidates[0];
83
- });
84
- // Whether the current strategy implies a crosshair rule on each axis, unless `crosshair: false`.
85
- const _impliesCrosshairX = $derived(args.crosshair?.() === false ? false : impliesCrosshairX(args.hover().strategy));
86
- const _impliesCrosshairY = $derived(args.crosshair?.() === false ? false : impliesCrosshairY(args.hover().strategy));
87
- const showTooltip = $derived.by(() => {
88
- if (matchedRows.length === 0)
89
- return false;
90
- const h = args.hover();
91
- if (h.source === args.facetId())
92
- return cursor != null;
93
- return h.sync;
94
- });
95
- function onPointer(data) {
96
- const h = args.hover();
97
- if (data.length) {
98
- const point = pointForRow(data[0]);
99
- h.activeX = point?.x ?? args.getX()(data[0]);
100
- h.activeY = point?.y ?? args.getY()(data[0]);
101
- h.activeSeries = point?.series ?? null;
102
- h.source = args.facetId();
103
- }
104
- else if (h.source === args.facetId()) {
105
- h.activeX = null;
106
- h.activeY = null;
107
- h.activeSeries = null;
108
- h.source = null;
109
- }
110
- }
111
- function onMove(e) {
112
- const rect = e.currentTarget.getBoundingClientRect();
113
- const x = e.clientX - rect.left;
114
- const y = e.clientY - rect.top;
115
- cursor = { x, y };
116
- const w = args.width();
117
- const h = args.height();
118
- if (w > 0 && h > 0)
119
- args.hover().cursorFrac = { x: x / w, y: y / h };
120
- }
121
- function onLeave() {
122
- cursor = null;
123
- const h = args.hover();
124
- if (h.source === args.facetId()) {
125
- h.activeX = null;
126
- h.activeY = null;
127
- h.activeSeries = null;
128
- h.cursorFrac = null;
129
- h.source = null;
130
- }
131
- }
132
- /** This facet's tooltip position: the cursor, else `activePointPixel`, else the source facet's cursor fraction reprojected onto this box. */
133
- const tooltipPosition = $derived.by(() => {
134
- if (cursor)
135
- return cursor;
136
- if (activePointPixel)
137
- return activePointPixel;
138
- const frac = args.hover().cursorFrac;
139
- return frac ? { x: frac.x * args.width(), y: frac.y * args.height() } : null;
140
- });
141
- return {
142
- onPointer,
143
- onMove,
144
- onLeave,
145
- reportActivePointPixel(pos) {
146
- activePointPixel = pos;
147
- },
148
- get points() {
149
- return highlight;
150
- },
151
- get matchedRows() {
152
- return matchedRows;
153
- },
154
- get activePoint() {
155
- return activePoint;
156
- },
157
- get impliesCrosshairX() {
158
- return _impliesCrosshairX;
159
- },
160
- get impliesCrosshairY() {
161
- return _impliesCrosshairY;
162
- },
163
- get showTooltip() {
164
- return showTooltip;
165
- },
166
- get tooltipPosition() {
167
- return tooltipPosition;
168
- },
169
- get cursor() {
170
- return cursor;
171
- }
172
- };
173
- }
@@ -1,7 +0,0 @@
1
- import type { HoverStore } from '../../types/layout/tooltip';
2
- /** Create + register the shared hover store. Call during component init. */
3
- export declare function provideHover(): HoverStore;
4
- /** Read the shared hover store, or `null` when there is no provider. */
5
- export declare function getHover(): HoverStore | null;
6
- /** A private hover store for a plot used outside of a {@link BaseChart}. */
7
- export declare function createHover(): HoverStore;
@@ -1,28 +0,0 @@
1
- import { getContext, setContext } from 'svelte';
2
- const HOVER_KEY = Symbol('dct-hover');
3
- function blank() {
4
- return {
5
- activeX: null,
6
- activeY: null,
7
- activeSeries: null,
8
- cursorFrac: null,
9
- source: null,
10
- strategy: 'x',
11
- sync: false,
12
- };
13
- }
14
- /** Create + register the shared hover store. Call during component init. */
15
- export function provideHover() {
16
- const store = $state(blank());
17
- setContext(HOVER_KEY, store);
18
- return store;
19
- }
20
- /** Read the shared hover store, or `null` when there is no provider. */
21
- export function getHover() {
22
- return getContext(HOVER_KEY) ?? null;
23
- }
24
- /** A private hover store for a plot used outside of a {@link BaseChart}. */
25
- export function createHover() {
26
- const store = $state(blank());
27
- return store;
28
- }
@@ -1,24 +0,0 @@
1
- import type { TooltipAnchorX, TooltipAnchorY } from '../../types/layout/tooltip';
2
- /**
3
- * Resolves a floating tooltip's top-left pixel position relative to a cursor
4
- * point, honoring a preferred anchor per axis and falling back toward the
5
- * opposite side (via the centered position) when the preferred side would
6
- * push it past `bounds`. Used by `Tooltip.svelte` for both the default box
7
- * and any custom `content` snippet — both go through the same placement.
8
- */
9
- export declare function resolveTooltipPlacement(args: {
10
- x: number;
11
- y: number;
12
- boxWidth: number;
13
- boxHeight: number;
14
- /** Box the tooltip must stay within — usually the hosting plot's width/height. */
15
- bounds?: {
16
- width: number;
17
- height: number;
18
- };
19
- anchorX: TooltipAnchorX;
20
- anchorY: TooltipAnchorY;
21
- }): {
22
- left: number;
23
- top: number;
24
- };
@@ -1,49 +0,0 @@
1
- const GAP = 10;
2
- const EDGE_MARGIN = 6;
3
- /** Anchors tried in order for a given preference — the opposite side is always the last resort. */
4
- function candidateOrder(anchor) {
5
- if (anchor === 'before')
6
- return ['before', 'middle', 'after'];
7
- if (anchor === 'after')
8
- return ['after', 'middle', 'before'];
9
- return ['middle'];
10
- }
11
- function axisStart(anchor, pos, size) {
12
- if (anchor === 'before')
13
- return pos - GAP - size;
14
- if (anchor === 'after')
15
- return pos + GAP;
16
- return pos - size / 2;
17
- }
18
- function fits(start, size, boundsSize) {
19
- return start >= EDGE_MARGIN && start + size <= boundsSize - EDGE_MARGIN;
20
- }
21
- /** Resolves one axis: tries the preferred anchor, then its fallbacks in order, then clamps as a last resort. */
22
- function resolveAxis(pos, size, boundsSize, anchor) {
23
- const order = candidateOrder(anchor);
24
- for (const candidate of order) {
25
- const start = axisStart(candidate, pos, size);
26
- if (fits(start, size, boundsSize))
27
- return start;
28
- }
29
- const fallbackStart = axisStart(order[order.length - 1], pos, size);
30
- const maxStart = Math.max(EDGE_MARGIN, boundsSize - size - EDGE_MARGIN);
31
- return Math.min(Math.max(fallbackStart, EDGE_MARGIN), maxStart);
32
- }
33
- /**
34
- * Resolves a floating tooltip's top-left pixel position relative to a cursor
35
- * point, honoring a preferred anchor per axis and falling back toward the
36
- * opposite side (via the centered position) when the preferred side would
37
- * push it past `bounds`. Used by `Tooltip.svelte` for both the default box
38
- * and any custom `content` snippet — both go through the same placement.
39
- */
40
- export function resolveTooltipPlacement(args) {
41
- const boundsWidth = args.bounds?.width ?? Infinity;
42
- const boundsHeight = args.bounds?.height ?? Infinity;
43
- const xAnchor = args.anchorX === 'right' ? 'after' : args.anchorX === 'left' ? 'before' : 'middle';
44
- const yAnchor = args.anchorY === 'bottom' ? 'after' : args.anchorY === 'top' ? 'before' : 'middle';
45
- return {
46
- left: resolveAxis(args.x, args.boxWidth, boundsWidth, xAnchor),
47
- top: resolveAxis(args.y, args.boxHeight, boundsHeight, yAnchor),
48
- };
49
- }
@@ -1,49 +0,0 @@
1
- import type { AxisValue } from '../../types/layout/scales';
2
- import type { HoverStore, HoverStrategy, HoverPoint, TooltipProp, TooltipOptions, TooltipAnchorX, TooltipAnchorY } from '../../types/layout/tooltip';
3
- /** Value equality that also handles `Date` (compared by timestamp). */
4
- export declare function eq(a: AxisValue, b: AxisValue): boolean;
5
- /**
6
- * Given the shared hover state, return the local points that should be
7
- * highlighted using the store's current strategy.
8
- */
9
- export declare function matchByStrategy<T>(points: HoverPoint<T>[], hover: HoverStore): HoverPoint<T>[];
10
- /** Whether the strategy implies an x crosshair rule by default. */
11
- export declare function impliesCrosshairX(strategy: HoverStrategy): boolean;
12
- /** Whether the strategy implies a y crosshair rule by default. */
13
- export declare function impliesCrosshairY(strategy: HoverStrategy): boolean;
14
- /** Normalize the author-facing prop into a resolved object. */
15
- export declare function resolveTooltip<TRow extends Record<string, unknown>>(tooltip: TooltipProp<TRow> | undefined, defaultStrategy: HoverStrategy): {
16
- enabled: boolean;
17
- strategy: HoverStrategy;
18
- sync: boolean;
19
- format?: (row: TRow) => string;
20
- series?: string[];
21
- content?: TooltipOptions<TRow>['content'];
22
- anchorX?: TooltipAnchorX;
23
- anchorY?: TooltipAnchorY;
24
- };
25
- /**
26
- * Resolve the strategy that should drive the shared hover store: the
27
- * tooltip's own `strategy` wins, else the first hover marker's `strategy`,
28
- * else the chart kind's default. Generic over the caller's own marker union,
29
- * like {@link findHoverMarker}.
30
- */
31
- export declare function resolveHoverStrategy<T extends {
32
- type: string;
33
- }>(tooltipStrategy: HoverStrategy | undefined, markers: T[] | undefined, defaultStrategy: HoverStrategy): HoverStrategy;
34
- /** Resolve whether the hover should be broadcast across facets. Generic — see {@link resolveHoverStrategy}. */
35
- export declare function resolveHoverSync<T extends {
36
- type: string;
37
- }>(tooltipSync: boolean | undefined, markers: T[] | undefined): boolean;
38
- /** Whether any marker in the list is a hover marker — axis-based (`'hover'`) or geo (`'geo-hover'`). */
39
- export declare function hasHoverMarker(markers: {
40
- type: string;
41
- }[] | undefined): boolean;
42
- /** First hover marker in the list, if any — generic over the caller's own marker union. */
43
- export declare function findHoverMarker<T extends {
44
- type: string;
45
- }>(markers: T[] | undefined): Extract<T, {
46
- type: 'hover';
47
- }> | undefined;
48
- /** Narrow matched points down to a named subset of series (no-op if `series` is empty/undefined). */
49
- export declare function filterBySeries<T>(points: HoverPoint<T>[], series?: string[]): HoverPoint<T>[];
@@ -1,82 +0,0 @@
1
- /** Value equality that also handles `Date` (compared by timestamp). */
2
- export function eq(a, b) {
3
- if (a instanceof Date && b instanceof Date)
4
- return +a === +b;
5
- return a === b;
6
- }
7
- /**
8
- * Given the shared hover state, return the local points that should be
9
- * highlighted using the store's current strategy.
10
- */
11
- export function matchByStrategy(points, hover) {
12
- const { strategy, activeX, activeY, activeSeries } = hover;
13
- if (strategy === 'x') {
14
- return activeX == null ? [] : points.filter((p) => eq(p.x, activeX));
15
- }
16
- if (strategy === 'y') {
17
- return activeY == null ? [] : points.filter((p) => eq(p.y, activeY));
18
- }
19
- if (strategy === 'series') {
20
- return activeSeries == null ? [] : points.filter((p) => p.series === activeSeries);
21
- }
22
- // 'punctual': exact XY match, respecting series identity when both sides carry it
23
- if (activeX == null || activeY == null)
24
- return [];
25
- return points.filter((p) => eq(p.x, activeX) &&
26
- eq(p.y, activeY) &&
27
- (activeSeries == null || p.series == null || p.series === activeSeries));
28
- }
29
- /** Whether the strategy implies an x crosshair rule by default. */
30
- export function impliesCrosshairX(strategy) {
31
- return strategy === 'x' || strategy === 'punctual';
32
- }
33
- /** Whether the strategy implies a y crosshair rule by default. */
34
- export function impliesCrosshairY(strategy) {
35
- return strategy === 'y' || strategy === 'punctual';
36
- }
37
- /** Normalize the author-facing prop into a resolved object. */
38
- export function resolveTooltip(tooltip, defaultStrategy) {
39
- if (!tooltip)
40
- return { enabled: false, strategy: defaultStrategy, sync: false };
41
- if (tooltip === true)
42
- return { enabled: true, strategy: defaultStrategy, sync: false };
43
- return {
44
- enabled: true,
45
- strategy: tooltip.strategy ?? defaultStrategy,
46
- sync: tooltip.sync ?? false,
47
- format: tooltip.format,
48
- series: tooltip.series,
49
- content: tooltip.content,
50
- anchorX: tooltip.anchorX,
51
- anchorY: tooltip.anchorY,
52
- };
53
- }
54
- /**
55
- * Resolve the strategy that should drive the shared hover store: the
56
- * tooltip's own `strategy` wins, else the first hover marker's `strategy`,
57
- * else the chart kind's default. Generic over the caller's own marker union,
58
- * like {@link findHoverMarker}.
59
- */
60
- export function resolveHoverStrategy(tooltipStrategy, markers, defaultStrategy) {
61
- const marker = findHoverMarker(markers);
62
- return tooltipStrategy ?? marker?.strategy ?? defaultStrategy;
63
- }
64
- /** Resolve whether the hover should be broadcast across facets. Generic — see {@link resolveHoverStrategy}. */
65
- export function resolveHoverSync(tooltipSync, markers) {
66
- const marker = findHoverMarker(markers);
67
- return tooltipSync ?? marker?.sync ?? false;
68
- }
69
- /** Whether any marker in the list is a hover marker — axis-based (`'hover'`) or geo (`'geo-hover'`). */
70
- export function hasHoverMarker(markers) {
71
- return (markers ?? []).some((m) => m.type === 'hover' || m.type === 'geo-hover');
72
- }
73
- /** First hover marker in the list, if any — generic over the caller's own marker union. */
74
- export function findHoverMarker(markers) {
75
- return (markers ?? []).find((m) => m.type === 'hover');
76
- }
77
- /** Narrow matched points down to a named subset of series (no-op if `series` is empty/undefined). */
78
- export function filterBySeries(points, series) {
79
- if (!series || series.length === 0)
80
- return points;
81
- return points.filter((p) => p.series != null && series.includes(p.series));
82
- }
@@ -1,21 +0,0 @@
1
- <script lang="ts">
2
- import { Cell } from 'svelteplot';
3
- import type { CellMarkerConfig } from '../types/markers/common';
4
-
5
- /** Renders one `'cell'` marker as a `<Cell>` call. */
6
- let { marker }: { marker: CellMarkerConfig } = $props();
7
- </script>
8
-
9
- <Cell
10
- data={marker.data}
11
- x={marker.x}
12
- y={marker.y}
13
- fill={marker.fill}
14
- fillOpacity={marker.style?.fillOpacity ?? 1}
15
- stroke={marker.style?.stroke}
16
- strokeWidth={marker.style?.strokeWidth ?? 0}
17
- strokeOpacity={marker.style?.strokeOpacity}
18
- strokeDasharray={marker.style?.strokeDasharray}
19
- borderRadius={marker.style?.borderRadius}
20
- inset={marker.inset ?? 0.5}
21
- />