@fundar/data-chart-telling 0.0.64 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (786) hide show
  1. package/CHANGELOG.md +17 -0
  2. package/LICENSE +21 -0
  3. package/README.md +81 -561
  4. package/dist/configuration/config.svelte.d.ts +5 -5
  5. package/dist/configuration/config.svelte.js +130 -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 +421 -80
  17. package/dist/configuration/themes/index.js +6 -5
  18. package/dist/index.d.ts +34 -48
  19. package/dist/index.js +19 -35
  20. package/dist/layout/base/BasePlotLayout.svelte +312 -0
  21. package/dist/layout/base/BasePlotLayout.svelte.d.ts +111 -0
  22. package/dist/layout/composer/PlotComposer.svelte +94 -0
  23. package/dist/layout/composer/PlotComposer.svelte.d.ts +13 -0
  24. package/dist/layout/coordinates/CameraFit.svelte +4 -4
  25. package/dist/layout/coordinates/CoordinatesLayout.svelte +11 -3
  26. package/dist/layout/coordinates/CoordinatesLayout.svelte.d.ts +6 -2
  27. package/dist/layout/coordinates/camera.svelte.d.ts +1 -1
  28. package/dist/layout/coordinates/camera.svelte.js +6 -6
  29. package/dist/layout/coordinates/projections/argentina.js +3 -3
  30. package/dist/layout/coordinates/projections/fit.js +1 -1
  31. package/dist/layout/coordinates/resolveCameraTarget.d.ts +1 -1
  32. package/dist/layout/coordinates/resolveProjection.d.ts +1 -1
  33. package/dist/layout/coordinates/resolveProjection.js +2 -2
  34. package/dist/layout/coordinates/rotate.svelte.d.ts +3 -3
  35. package/dist/layout/coordinates/rotate.svelte.js +8 -8
  36. package/dist/layout/coordinates/zoom.svelte.d.ts +1 -1
  37. package/dist/layout/facet/FacetIndicator.svelte +23 -23
  38. package/dist/layout/facet/FacetLayout.svelte +435 -398
  39. package/dist/layout/facet/FacetLayout.svelte.d.ts +9 -3
  40. package/dist/layout/facet/axes.d.ts +16 -0
  41. package/dist/layout/facet/axes.js +25 -0
  42. package/dist/layout/facet/config.d.ts +32 -0
  43. package/dist/layout/facet/config.js +82 -0
  44. package/dist/layout/figure/Figure.svelte +177 -0
  45. package/dist/layout/figure/Figure.svelte.d.ts +14 -0
  46. package/dist/layout/figure/FigureChrome.svelte +341 -0
  47. package/dist/layout/figure/FigureChrome.svelte.d.ts +21 -0
  48. package/dist/layout/geometry/FrameClip.svelte +45 -0
  49. package/dist/layout/geometry/FrameClip.svelte.d.ts +8 -0
  50. package/dist/layout/geometry/FrameClipping.d.ts +24 -0
  51. package/dist/layout/geometry/FrameClipping.js +40 -0
  52. package/dist/layout/geometry/GeometryLayout.svelte +287 -224
  53. package/dist/layout/geometry/GeometryLayout.svelte.d.ts +10 -10
  54. package/dist/layout/grid/Grid.svelte +194 -0
  55. package/dist/layout/grid/Grid.svelte.d.ts +26 -0
  56. package/dist/layout/grid/GridAlignment.svelte.d.ts +31 -0
  57. package/dist/layout/grid/GridAlignment.svelte.js +56 -0
  58. package/dist/layout/grid/GridCell.svelte +141 -0
  59. package/dist/layout/grid/GridCell.svelte.d.ts +17 -0
  60. package/dist/layout/grid/GridCellsRegistry.svelte.d.ts +52 -0
  61. package/dist/layout/grid/GridCellsRegistry.svelte.js +70 -0
  62. package/dist/layout/grid/GridPlan.d.ts +49 -0
  63. package/dist/layout/grid/GridPlan.js +167 -0
  64. package/dist/layout/grid/Tags.d.ts +8 -0
  65. package/dist/layout/grid/Tags.js +39 -0
  66. package/dist/layout/hover/HoverScope.svelte +11 -0
  67. package/dist/layout/hover/HoverScope.svelte.d.ts +8 -0
  68. package/dist/layout/hover/HoverSettings.d.ts +20 -0
  69. package/dist/layout/hover/HoverSettings.js +27 -0
  70. package/dist/layout/hover/HoverState.svelte.d.ts +47 -0
  71. package/dist/layout/hover/HoverState.svelte.js +99 -0
  72. package/dist/layout/hover/PlotHover.svelte.d.ts +63 -0
  73. package/dist/layout/hover/PlotHover.svelte.js +133 -0
  74. package/dist/layout/interaction/PlotInteraction.svelte.d.ts +38 -0
  75. package/dist/layout/interaction/PlotInteraction.svelte.js +56 -0
  76. package/dist/layout/legend/AxisNumberFormat.d.ts +12 -0
  77. package/dist/layout/legend/AxisNumberFormat.js +25 -0
  78. package/dist/layout/legend/ContinuousSection.svelte +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 +79 -0
  89. package/dist/layout/legend/LegendState.svelte.js +329 -0
  90. package/dist/layout/legend/LegendText.d.ts +12 -0
  91. package/dist/layout/legend/LegendText.js +22 -0
  92. package/dist/layout/legend/SizeSection.svelte +84 -0
  93. package/dist/layout/legend/SizeSection.svelte.d.ts +7 -0
  94. package/dist/layout/legend/SymbolSection.svelte +31 -0
  95. package/dist/layout/legend/SymbolSection.svelte.d.ts +8 -0
  96. package/dist/layout/margins/Box.d.ts +84 -0
  97. package/dist/layout/margins/Box.js +138 -0
  98. package/dist/layout/margins/Margins.d.ts +37 -0
  99. package/dist/layout/margins/Margins.js +71 -0
  100. package/dist/layout/margins/PlotMargins.svelte.d.ts +101 -0
  101. package/dist/layout/margins/PlotMargins.svelte.js +219 -0
  102. package/dist/layout/plot/Core.svelte +61 -0
  103. package/dist/layout/plot/Core.svelte.d.ts +41 -0
  104. package/dist/layout/plot/PanelRun.svelte +28 -0
  105. package/dist/{charts/heatmap/Chart.svelte.d.ts → layout/plot/PanelRun.svelte.d.ts} +11 -7
  106. package/dist/layout/plot/Plot.svelte +284 -0
  107. package/dist/layout/plot/Plot.svelte.d.ts +49 -0
  108. package/dist/layout/plot/PlotContext.d.ts +41 -0
  109. package/dist/layout/plot/PlotContext.js +46 -0
  110. package/dist/layout/plot/PublicPlotContext.d.ts +130 -0
  111. package/dist/layout/plot/PublicPlotContext.js +236 -0
  112. package/dist/layout/plot/Slice.d.ts +44 -0
  113. package/dist/layout/plot/Slice.js +98 -0
  114. package/dist/layout/plot/usePlot.d.ts +9 -0
  115. package/dist/layout/plot/usePlot.js +13 -0
  116. package/dist/layout/scales/ScalesLayout.svelte +241 -206
  117. package/dist/layout/scales/ScalesLayout.svelte.d.ts +2 -1
  118. package/dist/layout/scales/buildScale.d.ts +5 -22
  119. package/dist/layout/scales/buildScale.js +11 -34
  120. package/dist/layout/scales/niceDomain.d.ts +3 -3
  121. package/dist/layout/scales/niceDomain.js +4 -4
  122. package/dist/layout/styles/StylesLayout.svelte +65 -65
  123. package/dist/layout/styles/TileLayer.svelte +78 -76
  124. package/dist/layout/styles/TileLayer.svelte.d.ts +1 -1
  125. package/dist/layout/styles/ValueLabels.d.ts +97 -0
  126. package/dist/layout/styles/ValueLabels.js +237 -0
  127. package/dist/layout/timeline/Timeline.svelte +80 -74
  128. package/dist/layout/timeline/TimelineFrame.svelte +86 -0
  129. package/dist/layout/timeline/TimelineFrame.svelte.d.ts +16 -0
  130. package/dist/layout/timeline/TimelineLayout.svelte +114 -169
  131. package/dist/layout/timeline/TimelineLayout.svelte.d.ts +2 -0
  132. package/dist/layout/timeline/TimelinePlayer.svelte +195 -0
  133. package/dist/layout/timeline/TimelinePlayer.svelte.d.ts +7 -0
  134. package/dist/layout/timeline/TimelineRule.svelte +50 -0
  135. package/dist/layout/timeline/TimelineRule.svelte.d.ts +7 -0
  136. package/dist/layout/timeline/TimelineState.svelte.d.ts +82 -0
  137. package/dist/layout/timeline/TimelineState.svelte.js +226 -0
  138. package/dist/layout/timeline/TimelineSteps.d.ts +24 -0
  139. package/dist/layout/timeline/TimelineSteps.js +48 -0
  140. package/dist/layout/tooltip/Tooltip.svelte +82 -85
  141. package/dist/layout/tooltip/Tooltip.svelte.d.ts +43 -24
  142. package/dist/layout/tooltip/TooltipState.svelte.d.ts +61 -0
  143. package/dist/layout/tooltip/TooltipState.svelte.js +107 -0
  144. package/dist/markers/MarkerKinds.d.ts +173 -0
  145. package/dist/markers/MarkerKinds.js +51 -0
  146. package/dist/markers/area/AreaMarker.svelte +110 -0
  147. package/dist/markers/area/AreaMarker.svelte.d.ts +7 -0
  148. package/dist/markers/arrow/ArrowMarker.svelte +28 -0
  149. package/dist/markers/arrow/ArrowMarker.svelte.d.ts +7 -0
  150. package/dist/markers/{BarMarker.svelte → bar/BarMarker.svelte} +54 -52
  151. package/dist/markers/{BarMarker.svelte.d.ts → bar/BarMarker.svelte.d.ts} +1 -1
  152. package/dist/markers/bollinger/BollingerMarker.svelte +44 -0
  153. package/dist/markers/bollinger/BollingerMarker.svelte.d.ts +7 -0
  154. package/dist/markers/box/BoxMarker.svelte +143 -0
  155. package/dist/markers/box/BoxMarker.svelte.d.ts +7 -0
  156. package/dist/markers/brush/BrushMarker.svelte +32 -0
  157. package/dist/markers/brush/BrushMarker.svelte.d.ts +7 -0
  158. package/dist/markers/cell/CellMarker.svelte +27 -0
  159. package/dist/markers/{CellMarker.svelte.d.ts → cell/CellMarker.svelte.d.ts} +1 -1
  160. package/dist/markers/contour/ContourClipMarker.svelte +83 -0
  161. package/dist/markers/{ContourClipMarker.svelte.d.ts → contour/ContourClipMarker.svelte.d.ts} +1 -1
  162. package/dist/markers/contour/ContourMarker.svelte +28 -0
  163. package/dist/markers/{ContourMarker.svelte.d.ts → contour/ContourMarker.svelte.d.ts} +1 -1
  164. package/dist/markers/delaunay/DelaunayLinkMarker.svelte +26 -0
  165. package/dist/markers/delaunay/DelaunayLinkMarker.svelte.d.ts +7 -0
  166. package/dist/markers/delaunay/DelaunayMeshMarker.svelte +26 -0
  167. package/dist/markers/delaunay/DelaunayMeshMarker.svelte.d.ts +7 -0
  168. package/dist/markers/delta/Delta.d.ts +21 -0
  169. package/dist/markers/delta/Delta.js +60 -0
  170. package/dist/markers/delta/DeltaMarker.svelte +94 -0
  171. package/dist/markers/{DeltaMarker.svelte.d.ts → delta/DeltaMarker.svelte.d.ts} +2 -2
  172. package/dist/markers/density/DensityMarker.svelte +63 -0
  173. package/dist/markers/density/DensityMarker.svelte.d.ts +7 -0
  174. package/dist/markers/difference/DifferenceMarker.svelte +30 -0
  175. package/dist/markers/difference/DifferenceMarker.svelte.d.ts +7 -0
  176. package/dist/markers/dot/DotMarker.svelte +102 -0
  177. package/dist/markers/{DotMarker.svelte.d.ts → dot/DotMarker.svelte.d.ts} +5 -17
  178. package/dist/markers/geo/GeoFeaturesMarker.svelte +39 -0
  179. package/dist/markers/{GeoFeaturesMarker.svelte.d.ts → geo/GeoFeaturesMarker.svelte.d.ts} +1 -1
  180. package/dist/markers/geo/GeoHoverMarker.svelte +28 -0
  181. package/dist/markers/{GeoHoverMarker.svelte.d.ts → geo/GeoHoverMarker.svelte.d.ts} +2 -2
  182. package/dist/markers/geo/GraticuleMarker.svelte +18 -0
  183. package/dist/markers/{GraticuleMarker.svelte.d.ts → geo/GraticuleMarker.svelte.d.ts} +1 -1
  184. package/dist/markers/geo/SphereMarker.svelte +15 -0
  185. package/dist/markers/{SphereMarker.svelte.d.ts → geo/SphereMarker.svelte.d.ts} +1 -1
  186. package/dist/markers/hover/HoverMarker.svelte +252 -0
  187. package/dist/markers/{HoverMarker.svelte.d.ts → hover/HoverMarker.svelte.d.ts} +10 -10
  188. package/dist/markers/hull/HullMarker.svelte +25 -0
  189. package/dist/markers/hull/HullMarker.svelte.d.ts +7 -0
  190. package/dist/markers/image/ImageMarker.svelte +22 -0
  191. package/dist/markers/image/ImageMarker.svelte.d.ts +7 -0
  192. package/dist/markers/inset/InsetMarker.svelte +184 -150
  193. package/dist/markers/inset/InsetMarker.svelte.d.ts +4 -4
  194. package/dist/markers/inset/insetLayout.d.ts +1 -1
  195. package/dist/markers/inset/insetLayout.js +6 -2
  196. package/dist/markers/inset/insetProjection.d.ts +1 -1
  197. package/dist/markers/inset/insetProjection.js +3 -3
  198. package/dist/markers/line/LineMarker.svelte +30 -0
  199. package/dist/markers/{LineMarker.svelte.d.ts → line/LineMarker.svelte.d.ts} +1 -1
  200. package/dist/markers/link/LinkMarker.svelte +47 -0
  201. package/dist/markers/{LinkMarker.svelte.d.ts → link/LinkMarker.svelte.d.ts} +1 -1
  202. package/dist/markers/raster/RasterMarker.svelte +31 -0
  203. package/dist/markers/raster/RasterMarker.svelte.d.ts +7 -0
  204. package/dist/markers/rect/RectMarker.svelte +62 -0
  205. package/dist/markers/rect/RectMarker.svelte.d.ts +7 -0
  206. package/dist/markers/regression/RegressionMarker.svelte +60 -0
  207. package/dist/markers/regression/RegressionMarker.svelte.d.ts +7 -0
  208. package/dist/markers/rule/RuleMarker.svelte +47 -0
  209. package/dist/markers/{RuleMarker.svelte.d.ts → rule/RuleMarker.svelte.d.ts} +2 -5
  210. package/dist/markers/text/Declutter.d.ts +35 -0
  211. package/dist/markers/text/Declutter.js +157 -0
  212. package/dist/markers/text/TextMarker.svelte +244 -0
  213. package/dist/markers/{TextMarker.svelte.d.ts → text/TextMarker.svelte.d.ts} +5 -9
  214. package/dist/markers/tick/TickMarker.svelte +44 -0
  215. package/dist/markers/tick/TickMarker.svelte.d.ts +7 -0
  216. package/dist/markers/trail/TrailMarker.svelte +27 -0
  217. package/dist/markers/trail/TrailMarker.svelte.d.ts +7 -0
  218. package/dist/markers/utils/BandNudge.d.ts +22 -0
  219. package/dist/markers/utils/BandNudge.js +23 -0
  220. package/dist/markers/utils/MarkerChannels.d.ts +49 -0
  221. package/dist/markers/utils/MarkerChannels.js +97 -0
  222. package/dist/markers/vector/VectorMarker.svelte +29 -0
  223. package/dist/markers/{VectorMarker.svelte.d.ts → vector/VectorMarker.svelte.d.ts} +1 -1
  224. package/dist/markers/voronoi/VoronoiMarker.svelte +26 -0
  225. package/dist/markers/voronoi/VoronoiMarker.svelte.d.ts +7 -0
  226. package/dist/markers/voronoi/VoronoiMeshMarker.svelte +26 -0
  227. package/dist/markers/voronoi/VoronoiMeshMarker.svelte.d.ts +7 -0
  228. package/dist/markers/waffle/WaffleMarker.svelte +56 -0
  229. package/dist/markers/waffle/WaffleMarker.svelte.d.ts +7 -0
  230. package/dist/phases/Pipeline.d.ts +108 -0
  231. package/dist/phases/Pipeline.js +226 -0
  232. package/dist/phases/data/DataPhase.d.ts +25 -0
  233. package/dist/phases/data/DataPhase.js +82 -0
  234. package/dist/phases/data/PlotAxes.d.ts +75 -0
  235. package/dist/phases/data/PlotAxes.js +151 -0
  236. package/dist/phases/facet/FacetPhase.d.ts +52 -0
  237. package/dist/phases/facet/FacetPhase.js +114 -0
  238. package/dist/phases/hover/HoverPhase.d.ts +73 -0
  239. package/dist/phases/hover/HoverPhase.js +144 -0
  240. package/dist/phases/mapping/MappingPhase.d.ts +17 -0
  241. package/dist/phases/mapping/MappingPhase.js +42 -0
  242. package/dist/phases/markers/MarkersPhase.d.ts +14 -0
  243. package/dist/phases/markers/MarkersPhase.js +27 -0
  244. package/dist/phases/scales/MarkerAxisValues.d.ts +12 -0
  245. package/dist/phases/scales/MarkerAxisValues.js +34 -0
  246. package/dist/phases/scales/ScalesPhase.d.ts +31 -0
  247. package/dist/phases/scales/ScalesPhase.js +157 -0
  248. package/dist/phases/sharedScales/SharedScalesPhase.d.ts +55 -0
  249. package/dist/phases/sharedScales/SharedScalesPhase.js +168 -0
  250. package/dist/phases/statistics/AuthorMarkers.d.ts +43 -0
  251. package/dist/phases/statistics/AuthorMarkers.js +69 -0
  252. package/dist/phases/statistics/MarkerGrouping.d.ts +48 -0
  253. package/dist/phases/statistics/MarkerGrouping.js +113 -0
  254. package/dist/phases/statistics/Statistics.d.ts +53 -0
  255. package/dist/phases/statistics/Statistics.js +156 -0
  256. package/dist/phases/statistics/StatisticsPhase.d.ts +18 -0
  257. package/dist/phases/statistics/StatisticsPhase.js +68 -0
  258. package/dist/phases/statistics/methods/BollingerStatistic.d.ts +9 -0
  259. package/dist/phases/statistics/methods/BollingerStatistic.js +18 -0
  260. package/dist/phases/statistics/methods/BoxStatistic.d.ts +9 -0
  261. package/dist/phases/statistics/methods/BoxStatistic.js +18 -0
  262. package/dist/phases/statistics/methods/Density2dStatistic.d.ts +9 -0
  263. package/dist/phases/statistics/methods/Density2dStatistic.js +18 -0
  264. package/dist/phases/statistics/methods/DensityStatistic.d.ts +12 -0
  265. package/dist/phases/statistics/methods/DensityStatistic.js +29 -0
  266. package/dist/phases/statistics/methods/MovingAverageStatistic.d.ts +12 -0
  267. package/dist/phases/statistics/methods/MovingAverageStatistic.js +30 -0
  268. package/dist/phases/statistics/methods/RegressionStatistic.d.ts +9 -0
  269. package/dist/phases/statistics/methods/RegressionStatistic.js +21 -0
  270. package/dist/phases/styles/StylesPhase.d.ts +13 -0
  271. package/dist/phases/styles/StylesPhase.js +17 -0
  272. package/dist/phases/tooltip/TooltipPhase.d.ts +12 -0
  273. package/dist/phases/tooltip/TooltipPhase.js +10 -0
  274. package/dist/phases/transforms/Transforms.d.ts +42 -0
  275. package/dist/phases/transforms/Transforms.js +130 -0
  276. package/dist/phases/transforms/TransformsPhase.d.ts +64 -0
  277. package/dist/phases/transforms/TransformsPhase.js +242 -0
  278. package/dist/phases/transforms/methods/AnchorBar.d.ts +13 -0
  279. package/dist/phases/transforms/methods/AnchorBar.js +21 -0
  280. package/dist/phases/transforms/methods/BinTransform.d.ts +7 -0
  281. package/dist/phases/transforms/methods/BinTransform.js +48 -0
  282. package/dist/phases/transforms/methods/DensityTransform.d.ts +6 -0
  283. package/dist/phases/transforms/methods/DensityTransform.js +13 -0
  284. package/dist/phases/transforms/methods/GroupTransform.d.ts +8 -0
  285. package/dist/phases/transforms/methods/GroupTransform.js +39 -0
  286. package/dist/phases/transforms/methods/NormalizeTransform.d.ts +10 -0
  287. package/dist/phases/transforms/methods/NormalizeTransform.js +30 -0
  288. package/dist/phases/transforms/methods/OrderTransform.d.ts +16 -0
  289. package/dist/phases/transforms/methods/OrderTransform.js +43 -0
  290. package/dist/phases/transforms/methods/PerGroup.d.ts +11 -0
  291. package/dist/phases/transforms/methods/PerGroup.js +39 -0
  292. package/dist/phases/transforms/methods/PositionTransform.d.ts +15 -0
  293. package/dist/phases/transforms/methods/PositionTransform.js +74 -0
  294. package/dist/phases/transforms/methods/StackTransform.d.ts +8 -0
  295. package/dist/phases/transforms/methods/StackTransform.js +29 -0
  296. package/dist/phases/transforms/methods/WindowTransform.d.ts +8 -0
  297. package/dist/phases/transforms/methods/WindowTransform.js +23 -0
  298. package/dist/plots/area/Plot.svelte +42 -0
  299. package/dist/plots/{heatmap/ValueLabels.svelte.d.ts → area/Plot.svelte.d.ts} +8 -16
  300. package/dist/plots/area/defaults.d.ts +4 -0
  301. package/dist/plots/area/defaults.js +21 -0
  302. package/dist/plots/area/markers.d.ts +14 -0
  303. package/dist/plots/area/markers.js +40 -0
  304. package/dist/plots/bar/Plot.svelte +33 -438
  305. package/dist/plots/bar/Plot.svelte.d.ts +5 -8
  306. package/dist/plots/bar/defaults.d.ts +9 -0
  307. package/dist/plots/bar/defaults.js +92 -0
  308. package/dist/plots/bar/markers.d.ts +45 -0
  309. package/dist/plots/bar/markers.js +232 -0
  310. package/dist/plots/geo/Core.svelte +151 -0
  311. package/dist/plots/geo/Core.svelte.d.ts +25 -0
  312. package/dist/plots/geo/Plot.svelte +103 -324
  313. package/dist/plots/geo/Plot.svelte.d.ts +5 -9
  314. package/dist/plots/geo/defaults.d.ts +4 -0
  315. package/dist/plots/geo/defaults.js +16 -0
  316. package/dist/plots/geo/features.svelte.d.ts +5 -0
  317. package/dist/plots/geo/features.svelte.js +44 -0
  318. package/dist/plots/geo/phases/data.d.ts +6 -0
  319. package/dist/plots/geo/phases/data.js +26 -0
  320. package/dist/plots/geo/phases/hover.d.ts +9 -0
  321. package/dist/plots/geo/phases/hover.js +45 -0
  322. package/dist/plots/geo/phases/markers.d.ts +9 -0
  323. package/dist/plots/geo/phases/markers.js +76 -0
  324. package/dist/plots/geo/phases/scales.d.ts +10 -0
  325. package/dist/plots/geo/phases/scales.js +85 -0
  326. package/dist/plots/geo/phases/tooltip.d.ts +3 -0
  327. package/dist/plots/geo/phases/tooltip.js +5 -0
  328. package/dist/plots/geo/slices.d.ts +18 -0
  329. package/dist/plots/geo/slices.js +56 -0
  330. package/dist/plots/heatmap/Plot.svelte +55 -249
  331. package/dist/plots/heatmap/Plot.svelte.d.ts +5 -8
  332. package/dist/plots/heatmap/defaults.d.ts +11 -0
  333. package/dist/plots/heatmap/defaults.js +91 -0
  334. package/dist/plots/heatmap/markers.d.ts +17 -0
  335. package/dist/plots/heatmap/markers.js +141 -0
  336. package/dist/plots/histogram/Plot.svelte +45 -0
  337. package/dist/plots/histogram/Plot.svelte.d.ts +26 -0
  338. package/dist/plots/histogram/defaults.d.ts +9 -0
  339. package/dist/plots/histogram/defaults.js +87 -0
  340. package/dist/plots/histogram/markers.d.ts +18 -0
  341. package/dist/plots/histogram/markers.js +89 -0
  342. package/dist/plots/line/Plot.svelte +37 -268
  343. package/dist/plots/line/Plot.svelte.d.ts +3 -7
  344. package/dist/plots/line/defaults.d.ts +4 -0
  345. package/dist/plots/line/defaults.js +29 -0
  346. package/dist/plots/line/markers.d.ts +49 -0
  347. package/dist/plots/line/markers.js +200 -0
  348. package/dist/plots/pyramid/Plot.svelte +34 -362
  349. package/dist/plots/pyramid/Plot.svelte.d.ts +5 -8
  350. package/dist/plots/pyramid/defaults.d.ts +13 -0
  351. package/dist/plots/pyramid/defaults.js +86 -0
  352. package/dist/plots/pyramid/markers.d.ts +21 -0
  353. package/dist/plots/pyramid/markers.js +159 -0
  354. package/dist/plots/scatter/Plot.svelte +34 -288
  355. package/dist/plots/scatter/Plot.svelte.d.ts +5 -8
  356. package/dist/plots/scatter/defaults.d.ts +4 -0
  357. package/dist/plots/scatter/defaults.js +79 -0
  358. package/dist/plots/scatter/markers.d.ts +19 -0
  359. package/dist/plots/scatter/markers.js +128 -0
  360. package/dist/plots/utils/ChannelName.d.ts +9 -0
  361. package/dist/plots/utils/ChannelName.js +14 -0
  362. package/dist/plots/utils/accessors.d.ts +1 -1
  363. package/dist/plots/utils/accessors.js +4 -2
  364. package/dist/plots/utils/gaps.d.ts +14 -19
  365. package/dist/plots/utils/gaps.js +38 -18
  366. package/dist/plots/utils/geoAccessors.d.ts +8 -8
  367. package/dist/plots/utils/geoAccessors.js +16 -12
  368. package/dist/plots/utils/geoSegments.d.ts +24 -9
  369. package/dist/plots/utils/geoSegments.js +31 -11
  370. package/dist/plots/utils/segments.d.ts +5 -16
  371. package/dist/plots/utils/segments.js +40 -52
  372. package/dist/plots/utils/tiles.d.ts +9 -9
  373. package/dist/plots/utils/tiles.js +35 -25
  374. package/dist/plots/utils/topojson.d.ts +1 -1
  375. package/dist/plots/utils/topojson.js +3 -3
  376. package/dist/stores/device.js +2 -4
  377. package/dist/types/configuration/styling.d.ts +152 -27
  378. package/dist/types/layout/box.d.ts +24 -0
  379. package/dist/types/layout/composer.d.ts +36 -0
  380. package/dist/types/layout/coordinates.d.ts +14 -14
  381. package/dist/types/layout/facet.d.ts +44 -22
  382. package/dist/types/layout/figure.d.ts +7 -0
  383. package/dist/types/layout/geometry.d.ts +6 -2
  384. package/dist/types/layout/grid.d.ts +66 -0
  385. package/dist/types/layout/hover.d.ts +48 -0
  386. package/dist/types/layout/legend.d.ts +256 -55
  387. package/dist/types/layout/mapping.d.ts +68 -0
  388. package/dist/types/layout/plot.d.ts +41 -0
  389. package/dist/types/layout/scales.d.ts +92 -24
  390. package/dist/types/layout/scales.js +19 -1
  391. package/dist/types/layout/statistics/bollinger.d.ts +18 -0
  392. package/dist/types/layout/statistics/box.d.ts +8 -0
  393. package/dist/types/layout/statistics/box.js +1 -0
  394. package/dist/types/layout/statistics/density.d.ts +27 -0
  395. package/dist/types/layout/statistics/density.js +1 -0
  396. package/dist/types/layout/statistics/index.d.ts +46 -0
  397. package/dist/types/layout/statistics/index.js +1 -0
  398. package/dist/types/layout/statistics/movingAverage.d.ts +12 -0
  399. package/dist/types/layout/statistics/movingAverage.js +1 -0
  400. package/dist/types/layout/statistics/regression.d.ts +20 -0
  401. package/dist/types/layout/statistics/regression.js +1 -0
  402. package/dist/types/layout/styles.d.ts +24 -35
  403. package/dist/types/layout/timeline.d.ts +51 -4
  404. package/dist/types/layout/tooltip.d.ts +7 -85
  405. package/dist/types/markers/all.d.ts +3 -4
  406. package/dist/types/markers/axis/area.d.ts +12 -0
  407. package/dist/types/markers/axis/area.js +1 -0
  408. package/dist/types/markers/axis/arrow.d.ts +15 -0
  409. package/dist/types/markers/axis/arrow.js +1 -0
  410. package/dist/types/markers/axis/axisBasedMarkersConfig.d.ts +29 -0
  411. package/dist/types/markers/axis/axisBasedMarkersConfig.js +1 -0
  412. package/dist/types/markers/axis/bar.d.ts +18 -0
  413. package/dist/types/markers/axis/bar.js +1 -0
  414. package/dist/types/markers/axis/bollinger.d.ts +6 -0
  415. package/dist/types/markers/axis/bollinger.js +1 -0
  416. package/dist/types/markers/axis/box.d.ts +14 -0
  417. package/dist/types/markers/axis/box.js +1 -0
  418. package/dist/types/markers/axis/brush.d.ts +28 -0
  419. package/dist/types/markers/axis/brush.js +1 -0
  420. package/dist/types/markers/axis/cell.d.ts +9 -0
  421. package/dist/types/markers/axis/cell.js +1 -0
  422. package/dist/types/markers/axis/component.d.ts +9 -0
  423. package/dist/types/markers/axis/component.js +1 -0
  424. package/dist/types/markers/axis/curveName.d.ts +2 -0
  425. package/dist/types/markers/axis/curveName.js +1 -0
  426. package/dist/types/markers/axis/delaunayLink.d.ts +7 -0
  427. package/dist/types/markers/axis/delaunayLink.js +1 -0
  428. package/dist/types/markers/axis/delaunayMesh.d.ts +7 -0
  429. package/dist/types/markers/axis/delaunayMesh.js +1 -0
  430. package/dist/types/markers/axis/delta.d.ts +27 -0
  431. package/dist/types/markers/axis/delta.js +1 -0
  432. package/dist/types/markers/axis/density.d.ts +12 -0
  433. package/dist/types/markers/axis/density.js +1 -0
  434. package/dist/types/markers/axis/difference.d.ts +12 -0
  435. package/dist/types/markers/axis/difference.js +1 -0
  436. package/dist/types/markers/axis/hover.d.ts +21 -0
  437. package/dist/types/markers/axis/hover.js +1 -0
  438. package/dist/types/markers/axis/hull.d.ts +7 -0
  439. package/dist/types/markers/axis/hull.js +1 -0
  440. package/dist/types/markers/axis/image.d.ts +12 -0
  441. package/dist/types/markers/axis/image.js +1 -0
  442. package/dist/types/markers/axis/line.d.ts +7 -0
  443. package/dist/types/markers/axis/line.js +1 -0
  444. package/dist/types/markers/axis/raster.d.ts +18 -0
  445. package/dist/types/markers/axis/raster.js +1 -0
  446. package/dist/types/markers/axis/rect.d.ts +15 -0
  447. package/dist/types/markers/axis/rect.js +1 -0
  448. package/dist/types/markers/axis/regression.d.ts +6 -0
  449. package/dist/types/markers/axis/regression.js +1 -0
  450. package/dist/types/markers/axis/rule.d.ts +15 -0
  451. package/dist/types/markers/axis/rule.js +1 -0
  452. package/dist/types/markers/axis/tick.d.ts +8 -0
  453. package/dist/types/markers/axis/tick.js +1 -0
  454. package/dist/types/markers/axis/trail.d.ts +14 -0
  455. package/dist/types/markers/axis/trail.js +1 -0
  456. package/dist/types/markers/axis/voronoi.d.ts +7 -0
  457. package/dist/types/markers/axis/voronoi.js +1 -0
  458. package/dist/types/markers/axis/voronoiMesh.d.ts +7 -0
  459. package/dist/types/markers/axis/voronoiMesh.js +1 -0
  460. package/dist/types/markers/axis/waffle.d.ts +13 -0
  461. package/dist/types/markers/axis/waffle.js +1 -0
  462. package/dist/types/markers/basic/basicMarkersConfig.d.ts +4 -0
  463. package/dist/types/markers/basic/basicMarkersConfig.js +1 -0
  464. package/dist/types/markers/basic/dot.d.ts +9 -0
  465. package/dist/types/markers/basic/dot.js +1 -0
  466. package/dist/types/markers/basic/text.d.ts +60 -0
  467. package/dist/types/markers/basic/text.js +1 -0
  468. package/dist/types/markers/basic.d.ts +4 -0
  469. package/dist/types/markers/basic.js +1 -0
  470. package/dist/types/markers/channels/commonMarkerConfig.d.ts +26 -0
  471. package/dist/types/markers/channels/commonMarkerConfig.js +1 -0
  472. package/dist/types/markers/channels/commonMarkerConfigWithArea.d.ts +6 -0
  473. package/dist/types/markers/channels/commonMarkerConfigWithArea.js +1 -0
  474. package/dist/types/markers/channels/commonMarkerConfigWithColor.d.ts +5 -0
  475. package/dist/types/markers/channels/commonMarkerConfigWithColor.js +1 -0
  476. package/dist/types/markers/channels/commonMarkerConfigWithInterval.d.ts +9 -0
  477. package/dist/types/markers/channels/commonMarkerConfigWithInterval.js +1 -0
  478. package/dist/types/markers/channels/commonMarkerConfigWithRadius.d.ts +5 -0
  479. package/dist/types/markers/channels/commonMarkerConfigWithRadius.js +1 -0
  480. package/dist/types/markers/channels/commonMarkerConfigWithSymbol.d.ts +5 -0
  481. package/dist/types/markers/channels/commonMarkerConfigWithSymbol.js +1 -0
  482. package/dist/types/markers/channels/commonMarkerConfigWithWeight.d.ts +5 -0
  483. package/dist/types/markers/channels/commonMarkerConfigWithWeight.js +1 -0
  484. package/dist/types/markers/common.d.ts +30 -103
  485. package/dist/types/markers/common.js +29 -1
  486. package/dist/types/markers/geo/contour.d.ts +27 -0
  487. package/dist/types/markers/geo/contour.js +1 -0
  488. package/dist/types/markers/geo/features.d.ts +12 -0
  489. package/dist/types/markers/geo/features.js +1 -0
  490. package/dist/types/markers/geo/geoComponent.d.ts +7 -0
  491. package/dist/types/markers/geo/geoComponent.js +1 -0
  492. package/dist/types/markers/geo/geoHover.d.ts +6 -0
  493. package/dist/types/markers/geo/geoHover.js +1 -0
  494. package/dist/types/markers/geo/geoMarkersConfig.d.ts +11 -0
  495. package/dist/types/markers/geo/geoMarkersConfig.js +1 -0
  496. package/dist/types/markers/geo/graticule.d.ts +11 -0
  497. package/dist/types/markers/geo/graticule.js +1 -0
  498. package/dist/types/markers/geo/inset.d.ts +50 -0
  499. package/dist/types/markers/geo/inset.js +1 -0
  500. package/dist/types/markers/geo/link.d.ts +13 -0
  501. package/dist/types/markers/geo/link.js +1 -0
  502. package/dist/types/markers/geo/sphere.d.ts +11 -0
  503. package/dist/types/markers/geo/sphere.js +1 -0
  504. package/dist/types/markers/geo/vector.d.ts +17 -0
  505. package/dist/types/markers/geo/vector.js +1 -0
  506. package/dist/types/markers/geo.d.ts +10 -212
  507. package/dist/types/markers/geo.js +10 -1
  508. package/dist/types/markers/traits.d.ts +22 -0
  509. package/dist/types/markers/traits.js +1 -0
  510. package/dist/types/misc/easing.js +1 -0
  511. package/dist/types/misc/viewport.js +1 -0
  512. package/dist/types/phases/data/axes.d.ts +18 -0
  513. package/dist/types/phases/data/axes.js +1 -0
  514. package/dist/types/phases/data/phase.d.ts +26 -0
  515. package/dist/types/phases/data/phase.js +2 -0
  516. package/dist/types/phases/facet/phase.d.ts +18 -0
  517. package/dist/types/phases/facet/phase.js +1 -0
  518. package/dist/types/phases/hover/phase.d.ts +34 -0
  519. package/dist/types/phases/hover/phase.js +1 -0
  520. package/dist/types/phases/index.d.ts +14 -0
  521. package/dist/types/phases/index.js +1 -0
  522. package/dist/types/phases/kind.d.ts +59 -0
  523. package/dist/types/phases/kind.js +1 -0
  524. package/dist/types/phases/mapping/phase.d.ts +5 -0
  525. package/dist/types/phases/mapping/phase.js +1 -0
  526. package/dist/types/phases/markers/phase.d.ts +13 -0
  527. package/dist/types/phases/markers/phase.js +1 -0
  528. package/dist/types/phases/pipeline.d.ts +10 -0
  529. package/dist/types/phases/pipeline.js +1 -0
  530. package/dist/types/phases/scales/phase.d.ts +26 -0
  531. package/dist/types/phases/scales/phase.js +1 -0
  532. package/dist/types/phases/sharedScales/phase.d.ts +12 -0
  533. package/dist/types/phases/sharedScales/phase.js +1 -0
  534. package/dist/types/phases/stage.d.ts +12 -0
  535. package/dist/types/phases/stage.js +1 -0
  536. package/dist/types/phases/state.d.ts +73 -0
  537. package/dist/types/phases/state.js +1 -0
  538. package/dist/types/phases/statistics/phase.d.ts +41 -0
  539. package/dist/types/phases/statistics/phase.js +1 -0
  540. package/dist/types/phases/statistics/source.d.ts +20 -0
  541. package/dist/types/phases/statistics/source.js +7 -0
  542. package/dist/types/phases/styles/phase.d.ts +24 -0
  543. package/dist/types/phases/styles/phase.js +1 -0
  544. package/dist/types/phases/transforms/adapter.d.ts +27 -0
  545. package/dist/types/phases/transforms/adapter.js +1 -0
  546. package/dist/types/phases/transforms/phase.d.ts +40 -0
  547. package/dist/types/phases/transforms/phase.js +1 -0
  548. package/dist/types/plots/area/props.d.ts +10 -0
  549. package/dist/types/plots/area/props.js +1 -0
  550. package/dist/types/plots/area/state.d.ts +6 -0
  551. package/dist/types/plots/area/state.js +1 -0
  552. package/dist/types/plots/bar/props.d.ts +10 -0
  553. package/dist/types/plots/bar/props.js +1 -0
  554. package/dist/types/plots/bar/state.d.ts +6 -0
  555. package/dist/types/plots/bar/state.js +1 -0
  556. package/dist/types/plots/camera.d.ts +7 -17
  557. package/dist/types/plots/constants.d.ts +16 -8
  558. package/dist/types/plots/data/common.d.ts +25 -17
  559. package/dist/types/plots/data/geo.d.ts +26 -12
  560. package/dist/types/plots/gaps.d.ts +19 -38
  561. package/dist/types/plots/geo/props.d.ts +23 -0
  562. package/dist/types/plots/geo/props.js +1 -0
  563. package/dist/types/plots/geo/state.d.ts +82 -0
  564. package/dist/types/plots/geo/state.js +1 -0
  565. package/dist/types/plots/heatmap/props.d.ts +10 -0
  566. package/dist/types/plots/heatmap/props.js +1 -0
  567. package/dist/types/plots/heatmap/state.d.ts +28 -0
  568. package/dist/types/plots/heatmap/state.js +1 -0
  569. package/dist/types/plots/histogram/props.d.ts +18 -0
  570. package/dist/types/plots/histogram/props.js +1 -0
  571. package/dist/types/plots/histogram/state.d.ts +6 -0
  572. package/dist/types/plots/histogram/state.js +1 -0
  573. package/dist/types/plots/line/props.d.ts +10 -0
  574. package/dist/types/plots/line/props.js +1 -0
  575. package/dist/types/plots/line/state.d.ts +9 -0
  576. package/dist/types/plots/line/state.js +1 -0
  577. package/dist/types/plots/props.d.ts +143 -35
  578. package/dist/types/plots/pyramid/props.d.ts +10 -0
  579. package/dist/types/plots/pyramid/props.js +1 -0
  580. package/dist/types/plots/pyramid/state.d.ts +16 -0
  581. package/dist/types/plots/pyramid/state.js +1 -0
  582. package/dist/types/plots/scatter/props.d.ts +10 -0
  583. package/dist/types/plots/scatter/props.js +1 -0
  584. package/dist/types/plots/scatter/state.d.ts +6 -0
  585. package/dist/types/plots/scatter/state.js +1 -0
  586. package/dist/types/plots/segments/common.d.ts +1 -1
  587. package/dist/types/plots/segments/config.d.ts +12 -6
  588. package/dist/types/plots/styling.d.ts +5 -5
  589. package/dist/types/transforms/bin.d.ts +84 -0
  590. package/dist/types/transforms/bin.js +28 -0
  591. package/dist/types/transforms/bollinger.d.ts +21 -0
  592. package/dist/types/transforms/bollinger.js +1 -0
  593. package/dist/types/transforms/common.d.ts +29 -0
  594. package/dist/types/transforms/common.js +16 -0
  595. package/dist/types/transforms/density.d.ts +45 -0
  596. package/dist/types/transforms/density.js +10 -0
  597. package/dist/types/transforms/filter.d.ts +12 -0
  598. package/dist/types/transforms/filter.js +14 -0
  599. package/dist/types/transforms/group.d.ts +70 -0
  600. package/dist/types/transforms/group.js +8 -0
  601. package/dist/types/transforms/index.d.ts +36 -0
  602. package/dist/types/transforms/index.js +1 -0
  603. package/dist/types/transforms/interval.d.ts +21 -0
  604. package/dist/types/transforms/interval.js +14 -0
  605. package/dist/types/transforms/jitter.d.ts +34 -0
  606. package/dist/types/transforms/jitter.js +1 -0
  607. package/dist/types/transforms/map.d.ts +24 -0
  608. package/dist/types/transforms/map.js +1 -0
  609. package/dist/types/transforms/normalize.d.ts +36 -0
  610. package/dist/types/transforms/normalize.js +1 -0
  611. package/dist/types/transforms/select.d.ts +15 -0
  612. package/dist/types/transforms/select.js +1 -0
  613. package/dist/types/transforms/shift.d.ts +20 -0
  614. package/dist/types/transforms/shift.js +1 -0
  615. package/dist/types/transforms/sort.d.ts +31 -0
  616. package/dist/types/transforms/sort.js +14 -0
  617. package/dist/types/transforms/stack.d.ts +64 -0
  618. package/dist/types/transforms/stack.js +12 -0
  619. package/dist/types/transforms/window.d.ts +29 -0
  620. package/dist/types/transforms/window.js +1 -0
  621. package/dist/utils/ContinuousDomain.d.ts +12 -0
  622. package/dist/utils/ContinuousDomain.js +19 -0
  623. package/dist/utils/Interpolation.d.ts +26 -0
  624. package/dist/utils/Interpolation.js +65 -0
  625. package/dist/utils/{color.d.ts → color/contrast.d.ts} +0 -5
  626. package/dist/utils/color/contrast.js +40 -0
  627. package/dist/utils/color/cssColor.d.ts +4 -0
  628. package/dist/utils/color/cssColor.js +77 -0
  629. package/dist/utils/color/index.d.ts +3 -0
  630. package/dist/utils/color/index.js +3 -0
  631. package/dist/utils/color/ramp.d.ts +17 -0
  632. package/dist/utils/color/ramp.js +110 -0
  633. package/dist/utils/grouping.d.ts +9 -5
  634. package/dist/utils/grouping.js +19 -10
  635. package/dist/utils/merge.d.ts +7 -0
  636. package/dist/utils/merge.js +17 -0
  637. package/dist/utils/opacity.d.ts +9 -0
  638. package/dist/utils/opacity.js +38 -0
  639. package/dist/utils/symbol.d.ts +31 -0
  640. package/dist/utils/symbol.js +92 -0
  641. package/docs/architecture.md +137 -0
  642. package/docs/chrome.md +68 -0
  643. package/docs/composer.md +53 -0
  644. package/docs/concepts.md +99 -0
  645. package/docs/development.md +94 -0
  646. package/docs/facets.md +69 -0
  647. package/docs/geo.md +151 -0
  648. package/docs/getting-started.md +79 -0
  649. package/docs/legend.md +106 -0
  650. package/docs/markers.md +106 -0
  651. package/docs/plots.md +158 -0
  652. package/docs/scales.md +78 -0
  653. package/docs/state.md +71 -0
  654. package/docs/styles-and-segments.md +215 -0
  655. package/docs/theming.md +215 -0
  656. package/docs/timeline.md +94 -0
  657. package/docs/tooltip-and-hover.md +80 -0
  658. package/docs/transforms-and-statistics.md +88 -0
  659. package/examples/BarValues.svelte +14 -0
  660. package/examples/CustomTooltip.svelte +37 -0
  661. package/examples/Facets.svelte +15 -0
  662. package/examples/LegendReader.svelte +8 -0
  663. package/examples/LegendToggle.svelte +25 -0
  664. package/examples/ResponsiveLine.svelte +37 -0
  665. package/examples/Segments.svelte +17 -0
  666. package/examples/TimelinePlayer.svelte +20 -0
  667. package/examples/Tooltip.svelte +19 -0
  668. package/examples/TooltipCard.svelte +86 -0
  669. package/examples/data.ts +12 -0
  670. package/llms-full.txt +114 -0
  671. package/llms.txt +49 -0
  672. package/package.json +41 -5
  673. package/dist/charts/BaseChart.svelte +0 -149
  674. package/dist/charts/BaseChart.svelte.d.ts +0 -47
  675. package/dist/charts/bar/Chart.svelte +0 -110
  676. package/dist/charts/bar/Chart.svelte.d.ts +0 -26
  677. package/dist/charts/container/ChartContainer.svelte +0 -137
  678. package/dist/charts/container/ChartContainer.svelte.d.ts +0 -16
  679. package/dist/charts/heatmap/Chart.svelte +0 -114
  680. package/dist/charts/line/Chart.svelte +0 -112
  681. package/dist/charts/line/Chart.svelte.d.ts +0 -26
  682. package/dist/charts/pyramid/Chart.svelte +0 -134
  683. package/dist/charts/pyramid/Chart.svelte.d.ts +0 -30
  684. package/dist/charts/scatter/Chart.svelte +0 -95
  685. package/dist/charts/scatter/Chart.svelte.d.ts +0 -28
  686. package/dist/layout/coordinates/margins.d.ts +0 -16
  687. package/dist/layout/coordinates/margins.js +0 -11
  688. package/dist/layout/legend/interaction.svelte.d.ts +0 -15
  689. package/dist/layout/legend/interaction.svelte.js +0 -32
  690. package/dist/layout/plot/BasePlotLayout.svelte +0 -332
  691. package/dist/layout/plot/BasePlotLayout.svelte.d.ts +0 -122
  692. package/dist/layout/plot/margins.d.ts +0 -18
  693. package/dist/layout/plot/margins.js +0 -15
  694. package/dist/layout/plot/measureText.d.ts +0 -4
  695. package/dist/layout/plot/measureText.js +0 -19
  696. package/dist/layout/tooltip/TooltipLayout.svelte +0 -51
  697. package/dist/layout/tooltip/TooltipLayout.svelte.d.ts +0 -45
  698. package/dist/layout/tooltip/controller.svelte.d.ts +0 -61
  699. package/dist/layout/tooltip/controller.svelte.js +0 -173
  700. package/dist/layout/tooltip/hover.svelte.d.ts +0 -7
  701. package/dist/layout/tooltip/hover.svelte.js +0 -28
  702. package/dist/layout/tooltip/resolveTooltipPlacement.d.ts +0 -24
  703. package/dist/layout/tooltip/resolveTooltipPlacement.js +0 -49
  704. package/dist/layout/tooltip/utils.d.ts +0 -49
  705. package/dist/layout/tooltip/utils.js +0 -82
  706. package/dist/markers/CellMarker.svelte +0 -21
  707. package/dist/markers/ContourClipMarker.svelte +0 -77
  708. package/dist/markers/ContourMarker.svelte +0 -28
  709. package/dist/markers/DeltaMarker.svelte +0 -109
  710. package/dist/markers/DotMarker.svelte +0 -70
  711. package/dist/markers/GeoFeaturesMarker.svelte +0 -19
  712. package/dist/markers/GeoHoverMarker.svelte +0 -25
  713. package/dist/markers/GraticuleMarker.svelte +0 -18
  714. package/dist/markers/HoverMarker.svelte +0 -212
  715. package/dist/markers/LineMarker.svelte +0 -19
  716. package/dist/markers/LinkMarker.svelte +0 -42
  717. package/dist/markers/PeakMarker.svelte +0 -80
  718. package/dist/markers/PeakMarker.svelte.d.ts +0 -13
  719. package/dist/markers/RuleMarker.svelte +0 -24
  720. package/dist/markers/SphereMarker.svelte +0 -15
  721. package/dist/markers/TextMarker.svelte +0 -62
  722. package/dist/markers/VectorMarker.svelte +0 -20
  723. package/dist/plots/bar/ValueLabels.svelte +0 -149
  724. package/dist/plots/bar/ValueLabels.svelte.d.ts +0 -58
  725. package/dist/plots/bar/buildBarMarkers.d.ts +0 -27
  726. package/dist/plots/bar/buildBarMarkers.js +0 -151
  727. package/dist/plots/bar/hoverPoints.d.ts +0 -15
  728. package/dist/plots/bar/hoverPoints.js +0 -37
  729. package/dist/plots/bar/layout.svelte.d.ts +0 -42
  730. package/dist/plots/bar/layout.svelte.js +0 -182
  731. package/dist/plots/geo/buildGeoMarkers.d.ts +0 -33
  732. package/dist/plots/geo/buildGeoMarkers.js +0 -47
  733. package/dist/plots/heatmap/ValueLabels.svelte +0 -56
  734. package/dist/plots/heatmap/buildCellMarkers.d.ts +0 -21
  735. package/dist/plots/heatmap/buildCellMarkers.js +0 -25
  736. package/dist/plots/line/ValueLabels.svelte +0 -269
  737. package/dist/plots/line/ValueLabels.svelte.d.ts +0 -52
  738. package/dist/plots/line/buildGapMarkers.d.ts +0 -28
  739. package/dist/plots/line/buildGapMarkers.js +0 -74
  740. package/dist/plots/line/buildLineMarkers.d.ts +0 -16
  741. package/dist/plots/line/buildLineMarkers.js +0 -56
  742. package/dist/plots/line/valueLabelMargin.d.ts +0 -19
  743. package/dist/plots/line/valueLabelMargin.js +0 -65
  744. package/dist/plots/pyramid/ValueLabels.svelte +0 -139
  745. package/dist/plots/pyramid/ValueLabels.svelte.d.ts +0 -56
  746. package/dist/plots/pyramid/buildPyramidBarMarkers.d.ts +0 -26
  747. package/dist/plots/pyramid/buildPyramidBarMarkers.js +0 -72
  748. package/dist/plots/scatter/ValueLabels.svelte +0 -163
  749. package/dist/plots/scatter/ValueLabels.svelte.d.ts +0 -52
  750. package/dist/plots/scatter/buildScatterMarkers.d.ts +0 -12
  751. package/dist/plots/scatter/buildScatterMarkers.js +0 -36
  752. package/dist/plots/scatter/resolveRadiusPaddedDomain.d.ts +0 -10
  753. package/dist/plots/scatter/resolveRadiusPaddedDomain.js +0 -23
  754. package/dist/plots/utils/categoricalAxisMargin.d.ts +0 -14
  755. package/dist/plots/utils/categoricalAxisMargin.js +0 -20
  756. package/dist/plots/utils/declutter.d.ts +0 -120
  757. package/dist/plots/utils/declutter.js +0 -240
  758. package/dist/plots/utils/labelOverflow.svelte.d.ts +0 -107
  759. package/dist/plots/utils/labelOverflow.svelte.js +0 -257
  760. package/dist/plots/utils/legendDisabled.d.ts +0 -27
  761. package/dist/plots/utils/legendDisabled.js +0 -68
  762. package/dist/plots/utils/valueLabelMargin.d.ts +0 -67
  763. package/dist/plots/utils/valueLabelMargin.js +0 -60
  764. package/dist/types/charts/common.d.ts +0 -22
  765. package/dist/types/charts/props.d.ts +0 -50
  766. package/dist/types/markers/base.d.ts +0 -45
  767. package/dist/types/markers/line.d.ts +0 -34
  768. package/dist/types/markers/props.d.ts +0 -11
  769. package/dist/types/plots/data/scatter.d.ts +0 -13
  770. package/dist/utils/color.js +0 -141
  771. package/dist/utils/delta.d.ts +0 -12
  772. package/dist/utils/delta.js +0 -69
  773. package/dist/utils/edgeAwareAnchor.d.ts +0 -34
  774. package/dist/utils/edgeAwareAnchor.js +0 -60
  775. package/dist/utils/interpolate.d.ts +0 -31
  776. package/dist/utils/interpolate.js +0 -71
  777. /package/dist/types/{charts/common.js → layout/box.js} +0 -0
  778. /package/dist/types/{charts/interpolate.js → layout/composer.js} +0 -0
  779. /package/dist/types/{charts/props.js → layout/figure.js} +0 -0
  780. /package/dist/types/{markers/base.js → layout/grid.js} +0 -0
  781. /package/dist/types/{markers/line.js → layout/hover.js} +0 -0
  782. /package/dist/types/{markers/props.js → layout/mapping.js} +0 -0
  783. /package/dist/types/{plots/data/scatter.js → layout/plot.js} +0 -0
  784. /package/dist/types/{viewport.js → layout/statistics/bollinger.js} +0 -0
  785. /package/dist/types/{charts/interpolate.d.ts → misc/easing.d.ts} +0 -0
  786. /package/dist/types/{viewport.d.ts → misc/viewport.d.ts} +0 -0
@@ -1,214 +1,249 @@
1
1
  <script lang="ts" generics="TData extends Record<string, unknown>">
2
- import { AxisX, AxisY, GridX, GridY, usePlot } from 'svelteplot';
3
- import { getConfiguration } from '../../configuration/config.svelte';
4
- import { tickStep, ticksInRange, naturalTickCount } from './niceDomain';
5
- import type { AxisValue, AxisBasedScalesConfig } from '../../types/layout/scales';
6
-
7
- /**
8
- * Axis ticks/titles and grid lines for plot kinds with an x/y axis pair
9
- * (line/bar/heatmap/pyramid). Not used by `GeoPlot` (a map has no x/y axis
10
- * pair). The scale itself is resolved by `buildScale` and applied via
11
- * `BasePlotLayout`'s `<Plot x y>` — this only renders the cosmetics.
12
- */
13
- let {
14
- data,
15
- getX,
16
- getY,
17
- width,
18
- height,
19
- numericMargins,
20
- scales,
21
- }: {
22
- data: TData[];
23
- getX: (d: TData) => AxisValue;
24
- getY: (d: TData) => AxisValue;
25
- width: number;
26
- height: number;
27
- numericMargins: { top: number; right: number; bottom: number; left: number };
28
- scales?: AxisBasedScalesConfig<TData>;
29
- } = $props();
30
-
31
- const cfg = $derived(getConfiguration());
32
- const plot = usePlot();
33
-
34
- const xValues = $derived(data.map(getX));
35
- const yValues = $derived(data.map(getY));
36
-
37
- /**
38
- * `[min, max]` of a pinned `scale.domain` (if numeric), else the extent of
39
- * `values`. Deliberately *not* the live, fully-resolved scale off
40
- * `usePlot()` (e.g. `plot.scales.x.domain`), even though that would be
41
- * more accurate for a bar's implicit zero baseline or a stacked series'
42
- * cumulative total: reading it reactively here — inside a `$derived` that
43
- * itself feeds back into `<AxisX>`'s rendered tick content, which
44
- * `BasePlotLayout`'s own auto-margin sizing measures — closes a
45
- * live-scale ⇄ rendered-axis feedback loop that was observed to perturb
46
- * margin *settling* (a captured-and-frozen `bind:margins` value gained a
47
- * stray extra `left` entry it wasn't tracking before). `edgeInclusiveTicks`
48
- * instead sidesteps needing this axis's own real extent at all, by only
49
- * running when the *opposite* axis's resolved type says it's safe to.
50
- */
51
- function axisExtent(scale: AxisBasedScalesConfig<TData>['x'], values: AxisValue[]): [number, number] | undefined {
52
- const domainNumbers = scale?.domain?.filter((d): d is number => typeof d === 'number');
53
- const source = domainNumbers && domainNumbers.length >= 2 ? domainNumbers : values.filter((v): v is number => typeof v === 'number');
54
- if (source.length < 2) return undefined;
55
- const lo = Math.min(...source);
56
- const hi = Math.max(...source);
57
- return hi > lo ? [lo, hi] : undefined;
58
- }
59
-
60
- /** Resolved scale types with their own discrete tick semantics — an axis paired with one of these plays the "index" role for the pair, so *this* axis is the plain magnitude/value one (see `autoTickCount`, `edgeInclusiveTicks`). */
61
- const DISCRETE_SCALE_TYPES = new Set(['band', 'categorical', 'point', 'ordinal']);
62
-
63
- /**
64
- * Caps tick count to the axis's distinct value count, never above what
65
- * fits the pixel span — meaningful for an index-like axis (don't show more
66
- * ticks than there are actual data points), but not for a magnitude/value
67
- * one, where "how many bars there are" has nothing to do with how many
68
- * round numbers should label the axis (and can otherwise stop tick
69
- * generation short of `nice`'s own widened domain edge — the same
70
- * "opposite axis is discrete ⇒ this one's a value axis" signal
71
- * `edgeInclusiveTicks` uses). Skipped once the caller sets tick density
72
- * directly, or pins the domain.
73
- */
74
- function autoTickCount(
75
- oppositeType: string | undefined,
76
- scale: AxisBasedScalesConfig<TData>['x'],
77
- values: AxisValue[],
78
- span: number,
79
- spacing: number,
80
- min: number
81
- ): number | undefined {
82
- if (scale?.ticks != null || scale?.tickSpacing != null || scale?.interval != null || scale?.domain != null) return undefined;
83
- if (oppositeType != null && DISCRETE_SCALE_TYPES.has(oppositeType)) return undefined;
84
- const uniqueCount = new Set(values.map(String)).size;
85
- const natural = naturalTickCount(span, spacing, min);
86
- return uniqueCount >= 2 && uniqueCount < natural ? uniqueCount : undefined;
87
- }
88
-
89
- /** Forces a whole-unit tick interval on an integer domain that spans fewer integers than the pixel span would naturally want ticks for. */
90
- function integerTickInterval(
91
- scale: AxisBasedScalesConfig<TData>['x'],
92
- values: AxisValue[],
93
- span: number,
94
- spacing: number,
95
- min: number
96
- ): number | undefined {
97
- if (scale?.ticks != null || scale?.tickSpacing != null || scale?.interval != null) return undefined;
98
- if (scale?.type != null && scale.type !== 'linear' && scale.type !== 'auto') return undefined;
99
- const extent = axisExtent(scale, values);
100
- if (!extent) return undefined;
101
- const [lo, hi] = extent;
102
- if (!Number.isInteger(lo) || !Number.isInteger(hi)) return undefined;
103
- return hi - lo < naturalTickCount(span, spacing, min) ? 1 : undefined;
104
- }
105
-
106
- const xSpan = $derived(Math.max(0, width - numericMargins.left - numericMargins.right));
107
- const ySpan = $derived(Math.max(0, height - numericMargins.top - numericMargins.bottom));
108
-
109
- const xTickCount = $derived(autoTickCount(plot.scales.y.type, scales?.x, xValues, xSpan, 80, 3));
110
- const yTickCount = $derived(autoTickCount(plot.scales.x.type, scales?.y, yValues, ySpan, 50, 2));
111
-
112
- const xTickInterval = $derived(integerTickInterval(scales?.x, xValues, xSpan, 80, 3));
113
- const yTickInterval = $derived(integerTickInterval(scales?.y, yValues, ySpan, 50, 2));
114
-
115
- /**
116
- * An axis's own natural "nice" ticks, plus the domain's exact endpoints
117
- * whenever a natural tick doesn't already land on them — so the axis
118
- * always labels the actual start/end of its real range, not just
119
- * whichever round numbers happen to fall inside it (which, per
120
- * `axisExtent`, may extend past the raw data — e.g. a bar's implicit zero
121
- * baseline).
122
- *
123
- * Only meaningful for an axis that plays the "series ran from here to
124
- * here" role — a time series' x, say — which is exactly the case where the
125
- * *opposite* axis is itself continuous (both this codebase's line/scatter
126
- * charts). When the opposite axis is discrete instead (a bar/pyramid's
127
- * category axis), *this* axis is really the plain magnitude/value one —
128
- * `84` isn't meaningfully "where the series ends" the way a last year is,
129
- * so forcing it onto the axis just crowds a round `80`/`90` tick for no
130
- * benefit. Skipped once the caller sets tick density/domain directly, same
131
- * guard as `autoTickCount`, or the axis isn't a plain continuous numeric
132
- * one (`integerTickInterval`'s domain check covers the same ground
133
- * `axisExtent` needs here).
134
- */
135
- function edgeInclusiveTicks(
136
- oppositeType: string | undefined,
137
- scale: AxisBasedScalesConfig<TData>['x'],
138
- values: AxisValue[],
139
- span: number,
140
- spacing: number,
141
- min: number
142
- ): number[] | undefined {
143
- if (scale?.ticks != null || scale?.tickSpacing != null || scale?.interval != null || scale?.domain != null) return undefined;
144
- if (oppositeType != null && DISCRETE_SCALE_TYPES.has(oppositeType)) return undefined;
145
- if (scale?.type != null && scale.type !== 'linear' && scale.type !== 'auto') return undefined;
146
- const extent = axisExtent(scale, values);
147
- if (!extent) return undefined;
148
- const [lo, hi] = extent;
149
- const count = naturalTickCount(span, spacing, min);
150
- const step = tickStep(lo, hi, count);
151
- const base = ticksInRange(lo, hi, step);
152
- const eps = step * 1e-6;
153
- const withLo = base.length === 0 || base[0] - lo > eps ? [lo, ...base] : base;
154
- return withLo.length === 0 || hi - withLo[withLo.length - 1] > eps ? [...withLo, hi] : withLo;
155
- }
156
-
157
- const xTicksExplicit = $derived(edgeInclusiveTicks(plot.scales.y.type, scales?.x, xValues, xSpan, 80, 3));
158
-
159
- /** Vertical Y-axis title placement, when `scales.y.labelOrientation === 'vertical'`. */
160
- const verticalYLabel = $derived.by(() => {
161
- if (!scales?.y?.label || scales.y.labelOrientation !== 'vertical') return null;
162
- const position = scales.y.labelPosition ?? 'middle';
163
- const x = 14;
164
- const top = numericMargins.top;
165
- const bottom = height - numericMargins.bottom;
166
- const y = position === 'top' ? top : (top + bottom) / 2;
167
- return { text: scales.y.label, x, y, anchor: position === 'top' ? ('end' as const) : ('middle' as const) };
168
- });
2
+ import { getContext, untrack } from 'svelte';
3
+ import type { Writable } from 'svelte/store';
4
+ import { AxisX, AxisY, GridX, GridY } from 'svelteplot';
5
+ import { usePlot } from '../plot/usePlot';
6
+ import { getConfiguration } from '../../configuration/config.svelte';
7
+ import { tickStep, ticksInRange, naturalTickCount } from './niceDomain';
8
+ import { DISCRETE_SCALE_TYPES } from '../../types/layout/scales';
9
+ import type { AxisBasedScalesConfig } from '../../types/layout/scales';
10
+ import type { AxisValue } from '../../types/layout/mapping';
11
+
12
+ /** Axis ticks, titles and grid lines for the plot kinds with an x/y axis pair. */
13
+ let {
14
+ data,
15
+ getX,
16
+ getY,
17
+ width,
18
+ height,
19
+ numericMargins,
20
+ scales
21
+ }: {
22
+ data: TData[];
23
+ getX: (d: TData) => AxisValue;
24
+ getY: (d: TData) => AxisValue;
25
+ width: number;
26
+ height: number;
27
+ numericMargins: { top: number; right: number; bottom: number; left: number };
28
+ scales?: AxisBasedScalesConfig<TData>;
29
+ } = $props();
30
+
31
+ const cfg = $derived(getConfiguration());
32
+ const plot = usePlot().svelteplot;
33
+
34
+ const xValues = $derived(data.map(getX));
35
+ const yValues = $derived(data.map(getY));
36
+
37
+ /** `[min, max]` of a numeric pinned `scale.domain`, else of `values`. */
38
+ function axisExtent(
39
+ scale: AxisBasedScalesConfig<TData>['x'],
40
+ values: AxisValue[]
41
+ ): [number, number] | undefined {
42
+ const domainNumbers = scale?.domain?.filter((d): d is number => typeof d === 'number');
43
+ const source =
44
+ domainNumbers && domainNumbers.length >= 2
45
+ ? domainNumbers
46
+ : values.filter((v): v is number => typeof v === 'number');
47
+ if (source.length < 2) return undefined;
48
+ const lo = Math.min(...source);
49
+ const hi = Math.max(...source);
50
+ return hi > lo ? [lo, hi] : undefined;
51
+ }
52
+
53
+ /** An axis paired with a discrete scale plays the "index" role for the pair, so *this* axis is the plain magnitude/value one (see `autoTickCount`, `edgeInclusiveTicks`). */
54
+ const isDiscreteType = (type: string) =>
55
+ (DISCRETE_SCALE_TYPES as readonly string[]).includes(type);
56
+
57
+ /**
58
+ * Tick count for an index-like axis: its distinct values, at most what fits
59
+ * the pixel span. Unset when the caller sets tick density or the domain.
60
+ */
61
+ function autoTickCount(
62
+ oppositeType: string | undefined,
63
+ scale: AxisBasedScalesConfig<TData>['x'],
64
+ values: AxisValue[],
65
+ span: number,
66
+ spacing: number,
67
+ min: number
68
+ ): number | undefined {
69
+ if (
70
+ scale?.ticks != null ||
71
+ scale?.tickSpacing != null ||
72
+ scale?.interval != null ||
73
+ scale?.domain != null
74
+ )
75
+ return undefined;
76
+ if (oppositeType != null && isDiscreteType(oppositeType)) return undefined;
77
+ const uniqueCount = new Set(values.map(String)).size;
78
+ const natural = naturalTickCount(span, spacing, min);
79
+ return uniqueCount >= 2 && uniqueCount < natural ? uniqueCount : undefined;
80
+ }
81
+
82
+ /** Forces a whole-unit tick interval on an integer domain that spans fewer integers than the pixel span would naturally want ticks for. */
83
+ function integerTickInterval(
84
+ scale: AxisBasedScalesConfig<TData>['x'],
85
+ values: AxisValue[],
86
+ span: number,
87
+ spacing: number,
88
+ min: number
89
+ ): number | undefined {
90
+ if (scale?.ticks != null || scale?.tickSpacing != null || scale?.interval != null)
91
+ return undefined;
92
+ if (scale?.type != null && scale.type !== 'linear' && scale.type !== 'auto') return undefined;
93
+ const extent = axisExtent(scale, values);
94
+ if (!extent) return undefined;
95
+ const [lo, hi] = extent;
96
+ if (!Number.isInteger(lo) || !Number.isInteger(hi)) return undefined;
97
+ return hi - lo < naturalTickCount(span, spacing, min) ? 1 : undefined;
98
+ }
99
+
100
+ const xSpan = $derived(Math.max(0, width - numericMargins.left - numericMargins.right));
101
+ const ySpan = $derived(Math.max(0, height - numericMargins.top - numericMargins.bottom));
102
+
103
+ const xTickCount = $derived(autoTickCount(plot.scales.y.type, scales?.x, xValues, xSpan, 80, 3));
104
+ const yTickCount = $derived(autoTickCount(plot.scales.x.type, scales?.y, yValues, ySpan, 50, 2));
105
+
106
+ const xTickInterval = $derived(integerTickInterval(scales?.x, xValues, xSpan, 80, 3));
107
+ const yTickInterval = $derived(integerTickInterval(scales?.y, yValues, ySpan, 50, 2));
108
+
109
+ /**
110
+ * A continuous axis' nice ticks plus its domain's endpoints, when the
111
+ * opposite axis is continuous too - at least a whole unit apart when every
112
+ * value is a whole number. Unset when the caller sets tick density
113
+ * or the domain.
114
+ */
115
+ function edgeInclusiveTicks(
116
+ oppositeType: string | undefined,
117
+ scale: AxisBasedScalesConfig<TData>['x'],
118
+ values: AxisValue[],
119
+ span: number,
120
+ spacing: number,
121
+ min: number
122
+ ): number[] | undefined {
123
+ if (
124
+ scale?.ticks != null ||
125
+ scale?.tickSpacing != null ||
126
+ scale?.interval != null ||
127
+ scale?.domain != null
128
+ )
129
+ return undefined;
130
+ if (oppositeType != null && isDiscreteType(oppositeType)) return undefined;
131
+ if (scale?.type != null && scale.type !== 'linear' && scale.type !== 'auto') return undefined;
132
+ const extent = axisExtent(scale, values);
133
+ if (!extent) return undefined;
134
+ const [lo, hi] = extent;
135
+ const count = naturalTickCount(span, spacing, min);
136
+ // Whole-number values (years, counts) never get ticks between them.
137
+ const integers = values.every((v) => typeof v !== 'number' || Number.isInteger(v));
138
+ const step = integers ? Math.max(1, tickStep(lo, hi, count)) : tickStep(lo, hi, count);
139
+ const base = ticksInRange(lo, hi, step);
140
+ const eps = step * 1e-6;
141
+ const withLo = base.length === 0 || base[0] - lo > eps ? [lo, ...base] : base;
142
+ return withLo.length === 0 || hi - withLo[withLo.length - 1] > eps ? [...withLo, hi] : withLo;
143
+ }
144
+
145
+ const xTicksExplicit = $derived(
146
+ edgeInclusiveTicks(plot.scales.y.type, scales?.x, xValues, xSpan, 80, 3)
147
+ );
148
+
149
+ const yTitleFontSize = $derived(scales?.y?.titleFontSize ?? cfg.axis.titleFontSize);
150
+
151
+ /**
152
+ * Vertical Y-axis title placement, when `scales.y.labelOrientation === 'vertical'`:
153
+ * `scales.y.label`, else the channel name svelteplot would title the axis with.
154
+ */
155
+ const verticalYLabel = $derived.by(() => {
156
+ if (scales?.y?.labelOrientation !== 'vertical' || scales.y.label === false) return null;
157
+ const text = scales.y.label || plot.scales.y.autoTitle;
158
+ if (!text) return null;
159
+ const position = scales.y.labelPosition ?? 'middle';
160
+ const x = yTitleFontSize;
161
+ const top = numericMargins.top;
162
+ const bottom = height - numericMargins.bottom;
163
+ const y = position === 'top' ? top : (top + bottom) / 2;
164
+ return { text, x, y, anchor: position === 'top' ? ('end' as const) : ('middle' as const) };
165
+ });
166
+
167
+ // svelteplot sizes an `'auto'` left margin to the widest need its marks
168
+ // register here; a vertical title asks for the y axis' own plus its line.
169
+ const { autoMarginLeft } = getContext<{ autoMarginLeft: Writable<Map<string, number>> }>(
170
+ 'svelteplot/autoMargins'
171
+ );
172
+ const marginId = `dct-vertical-y-label-${Math.random().toString(36).slice(2)}`;
173
+ const VERTICAL_LABEL_GAP = 6;
174
+ const axisMarginLeft = $derived(
175
+ Math.max(0, ...[...$autoMarginLeft].filter(([id]) => id !== marginId).map(([, v]) => v))
176
+ );
177
+ $effect(() => {
178
+ const wanted =
179
+ verticalYLabel && (scales?.y?.axisDisplay ?? 'visible') === 'visible'
180
+ ? axisMarginLeft + Math.ceil(yTitleFontSize * 1.25) + VERTICAL_LABEL_GAP
181
+ : undefined;
182
+ untrack(() => {
183
+ if (wanted === undefined) $autoMarginLeft.delete(marginId);
184
+ else if ($autoMarginLeft.get(marginId) !== wanted) $autoMarginLeft.set(marginId, wanted);
185
+ });
186
+ });
187
+ $effect(() => () => {
188
+ $autoMarginLeft.delete(marginId);
189
+ });
169
190
  </script>
170
191
 
171
- <AxisX
172
- ticks={xTicksExplicit}
173
- tickCount={xTickCount}
174
- interval={xTickInterval}
175
- tickSize={scales?.x?.tickSize ?? cfg.axis.xTickSize}
176
- tickPadding={scales?.x?.tickPadding ?? cfg.axis.xTickPadding}
177
- tickFontSize={cfg.axis.fontSize}
178
- titleFontSize={scales?.x?.titleFontSize ?? cfg.axis.titleFontSize}
179
- />
180
- <AxisY
181
- tickCount={yTickCount}
182
- interval={yTickInterval}
183
- tickSize={scales?.y?.tickSize ?? cfg.axis.yTickSize}
184
- tickPadding={scales?.y?.tickPadding ?? cfg.axis.yTickPadding}
185
- tickFontSize={cfg.axis.fontSize}
186
- titleFontSize={scales?.y?.titleFontSize ?? cfg.axis.titleFontSize}
187
- />
188
- {#if verticalYLabel}
189
- <text
190
- x={verticalYLabel.x}
191
- y={verticalYLabel.y}
192
- transform="rotate(-90, {verticalYLabel.x}, {verticalYLabel.y})"
193
- text-anchor={verticalYLabel.anchor}
194
- font-size={scales?.y?.titleFontSize ?? cfg.axis.titleFontSize}
195
- fill={cfg.axis.color}
196
- opacity="0.8"
197
- >{verticalYLabel.text}</text>
192
+ {#snippet axisX()}
193
+ <AxisX
194
+ ticks={xTicksExplicit}
195
+ tickCount={xTickCount}
196
+ interval={xTickInterval}
197
+ tickSize={scales?.x?.tickSize ?? cfg.axis.xTickSize}
198
+ tickPadding={scales?.x?.tickPadding ?? cfg.axis.xTickPadding}
199
+ tickFontSize={cfg.axis.fontSize}
200
+ titleFontSize={scales?.x?.titleFontSize ?? cfg.axis.titleFontSize}
201
+ />
202
+ {/snippet}
203
+ {#if scales?.x?.axisDisplay === 'hidden'}
204
+ <g style:visibility="hidden">{@render axisX()}</g>
205
+ {:else if scales?.x?.axisDisplay !== 'none'}
206
+ {@render axisX()}
207
+ {/if}
208
+ {#snippet axisY()}
209
+ <AxisY
210
+ tickCount={yTickCount}
211
+ interval={yTickInterval}
212
+ tickSize={scales?.y?.tickSize ?? cfg.axis.yTickSize}
213
+ tickPadding={scales?.y?.tickPadding ?? cfg.axis.yTickPadding}
214
+ tickFontSize={cfg.axis.fontSize}
215
+ titleFontSize={scales?.y?.titleFontSize ?? cfg.axis.titleFontSize}
216
+ />
217
+ {/snippet}
218
+ {#if scales?.y?.axisDisplay === 'hidden'}
219
+ <g style:visibility="hidden">{@render axisY()}</g>
220
+ {:else if scales?.y?.axisDisplay !== 'none'}
221
+ {@render axisY()}
222
+ {/if}
223
+ {#if verticalYLabel && (scales?.y?.axisDisplay ?? 'visible') === 'visible'}
224
+ <text
225
+ x={verticalYLabel.x}
226
+ y={verticalYLabel.y}
227
+ transform="rotate(-90, {verticalYLabel.x}, {verticalYLabel.y})"
228
+ text-anchor={verticalYLabel.anchor}
229
+ font-size={yTitleFontSize}
230
+ fill={cfg.axis.color}
231
+ opacity="0.8">{verticalYLabel.text}</text
232
+ >
198
233
  {/if}
199
234
  {#if scales?.x?.grid}
200
- <GridX
201
- stroke={typeof scales.x.grid === 'object' ? scales.x.grid.stroke : undefined}
202
- strokeWidth={typeof scales.x.grid === 'object' ? scales.x.grid.strokeWidth : undefined}
203
- strokeOpacity={typeof scales.x.grid === 'object' ? scales.x.grid.strokeOpacity : undefined}
204
- strokeDasharray={typeof scales.x.grid === 'object' ? scales.x.grid.strokeDasharray : undefined}
205
- />
235
+ <GridX
236
+ stroke={typeof scales.x.grid === 'object' ? scales.x.grid.stroke : undefined}
237
+ strokeWidth={typeof scales.x.grid === 'object' ? scales.x.grid.strokeWidth : undefined}
238
+ strokeOpacity={typeof scales.x.grid === 'object' ? scales.x.grid.strokeOpacity : undefined}
239
+ strokeDasharray={typeof scales.x.grid === 'object' ? scales.x.grid.strokeDasharray : undefined}
240
+ />
206
241
  {/if}
207
242
  {#if scales?.y?.grid}
208
- <GridY
209
- stroke={typeof scales.y.grid === 'object' ? scales.y.grid.stroke : undefined}
210
- strokeWidth={typeof scales.y.grid === 'object' ? scales.y.grid.strokeWidth : undefined}
211
- strokeOpacity={typeof scales.y.grid === 'object' ? scales.y.grid.strokeOpacity : undefined}
212
- strokeDasharray={typeof scales.y.grid === 'object' ? scales.y.grid.strokeDasharray : undefined}
213
- />
243
+ <GridY
244
+ stroke={typeof scales.y.grid === 'object' ? scales.y.grid.stroke : undefined}
245
+ strokeWidth={typeof scales.y.grid === 'object' ? scales.y.grid.strokeWidth : undefined}
246
+ strokeOpacity={typeof scales.y.grid === 'object' ? scales.y.grid.strokeOpacity : undefined}
247
+ strokeDasharray={typeof scales.y.grid === 'object' ? scales.y.grid.strokeDasharray : undefined}
248
+ />
214
249
  {/if}
@@ -1,4 +1,5 @@
1
- import type { AxisValue, AxisBasedScalesConfig } from '../../types/layout/scales';
1
+ import type { AxisBasedScalesConfig } from '../../types/layout/scales';
2
+ import type { AxisValue } from '../../types/layout/mapping';
2
3
  declare function $$render<TData extends Record<string, unknown>>(): {
3
4
  props: {
4
5
  data: TData[];
@@ -1,25 +1,8 @@
1
- import type { AxisValue, AxisScale } from '../../types/layout/scales';
1
+ import type { AxisScale } from '../../types/layout/scales';
2
+ import type { AxisValue } from '../../types/layout/mapping';
2
3
  /**
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.
4
+ * An {@link AxisScale} as svelteplot's `<Plot x>`/`<Plot y>` accepts it: without
5
+ * `grid`, `axisDisplay` and a vertical `label`, which `ScalesLayout` draws, and
6
+ * with `nice: true` on an unpinned numeric axis.
24
7
  */
25
8
  export declare function buildScale<TData>(scale: AxisScale<TData> | undefined, rows: TData[], getAxisValue: (d: TData) => AxisValue): AxisScale<TData> | undefined;
@@ -23,16 +23,9 @@ function sortedScale(scale, rows, getAxisValue) {
23
23
  const domain = [...reps].sort(sort).map(getAxisValue);
24
24
  return { ...scale, domain };
25
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). */
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
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
- */
28
+ /** Whether the axis' values are numeric; `nice` on a categorical axis would make svelteplot treat it as linear. */
36
29
  function isNumericAxis(rows, getAxisValue) {
37
30
  let numericSeen = 0;
38
31
  for (const row of rows) {
@@ -47,27 +40,9 @@ function isNumericAxis(rows, getAxisValue) {
47
40
  return numericSeen > 0;
48
41
  }
49
42
  /**
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.
43
+ * An {@link AxisScale} as svelteplot's `<Plot x>`/`<Plot y>` accepts it: without
44
+ * `grid`, `axisDisplay` and a vertical `label`, which `ScalesLayout` draws, and
45
+ * with `nice: true` on an unpinned numeric axis.
71
46
  */
72
47
  export function buildScale(scale, rows, getAxisValue) {
73
48
  const sorted = sortedScale(scale, rows, getAxisValue);
@@ -76,14 +51,16 @@ export function buildScale(scale, rows, getAxisValue) {
76
51
  scale?.nice == null &&
77
52
  (scale?.type == null || CONTINUOUS_NUMERIC_TYPES.has(scale.type)) &&
78
53
  isNumericAxis(rows, getAxisValue);
79
- if (!sorted && !wantsNice)
54
+ const removesAxis = scale?.axisDisplay === 'none';
55
+ if (!sorted && !wantsNice && !removesAxis)
80
56
  return sorted;
81
57
  const out = { ...sorted };
82
58
  delete out.grid;
83
- delete out.seriesLayout;
84
- delete out.seriesPadding;
59
+ delete out.axisDisplay;
60
+ if (removesAxis)
61
+ out.axis = false;
85
62
  if (scale?.labelOrientation === 'vertical')
86
- delete out.label;
63
+ out.label = false;
87
64
  if (wantsNice)
88
65
  out.nice = true;
89
66
  return out;
@@ -2,10 +2,10 @@
2
2
  export declare function tickStep(start: number, stop: number, count: number): number;
3
3
  /** Multiples of `step` covering `[start, stop]`, inclusive of either endpoint when it lands exactly on one. */
4
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. */
5
+ /** Ticks-per-axis heuristic - used by `ScalesLayout` to pick a target count from an axis's actual pixel span. */
6
6
  export declare function naturalTickCount(span: number, spacing: number, min: number): number;
7
7
  /**
8
- * Widens `[lo, hi]` outward to the nearest `count`-ish "nice" step —
8
+ * Widens `[lo, hi]` outward to the nearest `count`-ish "nice" step -
9
9
  * equivalent to d3's own `scale.nice(count)`, except a value within
10
10
  * `epsilonFraction × step` of a step boundary is treated as already sitting
11
11
  * on it, rather than needing a full extra step to clear it.
@@ -17,7 +17,7 @@ export declare function naturalTickCount(span: number, spacing: number, min: num
17
17
  * to a whole" data, e.g. percentages of a total) still fails `hi <= step*N`
18
18
  * and gets rounded up a full step further than the data actually warrants
19
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
20
+ * 1% of the step - small enough to only catch rounding/summation noise, not
21
21
  * data that's genuinely meaningfully past the boundary.
22
22
  */
23
23
  export declare function niceDomain(lo: number, hi: number, count?: number, epsilonFraction?: number): [number, number];