@fundar/data-chart-telling 0.0.63 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (786) hide show
  1. package/CHANGELOG.md +17 -0
  2. package/LICENSE +21 -0
  3. package/README.md +81 -558
  4. package/dist/configuration/config.svelte.d.ts +5 -5
  5. package/dist/configuration/config.svelte.js +133 -46
  6. package/dist/configuration/fonts.d.ts +6 -0
  7. package/dist/configuration/fonts.js +6 -0
  8. package/dist/configuration/themes/compact.d.ts +2 -2
  9. package/dist/configuration/themes/compact.js +1 -1
  10. package/dist/configuration/themes/dark.d.ts +2 -2
  11. package/dist/configuration/themes/dark.js +5 -4
  12. package/dist/configuration/themes/default.d.ts +8 -3
  13. package/dist/configuration/themes/default.js +8 -2
  14. package/dist/configuration/themes/editorial.d.ts +2 -2
  15. package/dist/configuration/themes/editorial.js +2 -2
  16. package/dist/configuration/themes/index.d.ts +433 -80
  17. package/dist/configuration/themes/index.js +6 -5
  18. package/dist/index.d.ts +34 -48
  19. package/dist/index.js +19 -35
  20. package/dist/layout/base/BasePlotLayout.svelte +312 -0
  21. package/dist/layout/base/BasePlotLayout.svelte.d.ts +111 -0
  22. package/dist/layout/composer/PlotComposer.svelte +94 -0
  23. package/dist/layout/composer/PlotComposer.svelte.d.ts +13 -0
  24. package/dist/layout/coordinates/CameraFit.svelte +4 -4
  25. package/dist/layout/coordinates/CoordinatesLayout.svelte +11 -3
  26. package/dist/layout/coordinates/CoordinatesLayout.svelte.d.ts +6 -2
  27. package/dist/layout/coordinates/camera.svelte.d.ts +1 -1
  28. package/dist/layout/coordinates/camera.svelte.js +6 -6
  29. package/dist/layout/coordinates/projections/argentina.js +3 -3
  30. package/dist/layout/coordinates/projections/fit.js +1 -1
  31. package/dist/layout/coordinates/resolveCameraTarget.d.ts +1 -1
  32. package/dist/layout/coordinates/resolveProjection.d.ts +1 -1
  33. package/dist/layout/coordinates/resolveProjection.js +2 -2
  34. package/dist/layout/coordinates/rotate.svelte.d.ts +3 -3
  35. package/dist/layout/coordinates/rotate.svelte.js +8 -8
  36. package/dist/layout/coordinates/zoom.svelte.d.ts +1 -1
  37. package/dist/layout/facet/FacetIndicator.svelte +23 -23
  38. package/dist/layout/facet/FacetLayout.svelte +435 -398
  39. package/dist/layout/facet/FacetLayout.svelte.d.ts +9 -3
  40. package/dist/layout/facet/axes.d.ts +16 -0
  41. package/dist/layout/facet/axes.js +25 -0
  42. package/dist/layout/facet/config.d.ts +32 -0
  43. package/dist/layout/facet/config.js +82 -0
  44. package/dist/layout/figure/Figure.svelte +177 -0
  45. package/dist/layout/figure/Figure.svelte.d.ts +14 -0
  46. package/dist/layout/figure/FigureChrome.svelte +341 -0
  47. package/dist/layout/figure/FigureChrome.svelte.d.ts +21 -0
  48. package/dist/layout/geometry/FrameClip.svelte +45 -0
  49. package/dist/layout/geometry/FrameClip.svelte.d.ts +8 -0
  50. package/dist/layout/geometry/FrameClipping.d.ts +24 -0
  51. package/dist/layout/geometry/FrameClipping.js +40 -0
  52. package/dist/layout/geometry/GeometryLayout.svelte +287 -224
  53. package/dist/layout/geometry/GeometryLayout.svelte.d.ts +10 -10
  54. package/dist/layout/grid/Grid.svelte +194 -0
  55. package/dist/layout/grid/Grid.svelte.d.ts +26 -0
  56. package/dist/layout/grid/GridAlignment.svelte.d.ts +31 -0
  57. package/dist/layout/grid/GridAlignment.svelte.js +56 -0
  58. package/dist/layout/grid/GridCell.svelte +141 -0
  59. package/dist/layout/grid/GridCell.svelte.d.ts +17 -0
  60. package/dist/layout/grid/GridCellsRegistry.svelte.d.ts +52 -0
  61. package/dist/layout/grid/GridCellsRegistry.svelte.js +70 -0
  62. package/dist/layout/grid/GridPlan.d.ts +49 -0
  63. package/dist/layout/grid/GridPlan.js +167 -0
  64. package/dist/layout/grid/Tags.d.ts +8 -0
  65. package/dist/layout/grid/Tags.js +39 -0
  66. package/dist/layout/hover/HoverScope.svelte +11 -0
  67. package/dist/layout/hover/HoverScope.svelte.d.ts +8 -0
  68. package/dist/layout/hover/HoverSettings.d.ts +20 -0
  69. package/dist/layout/hover/HoverSettings.js +27 -0
  70. package/dist/layout/hover/HoverState.svelte.d.ts +47 -0
  71. package/dist/layout/hover/HoverState.svelte.js +99 -0
  72. package/dist/layout/hover/PlotHover.svelte.d.ts +63 -0
  73. package/dist/layout/hover/PlotHover.svelte.js +133 -0
  74. package/dist/layout/interaction/PlotInteraction.svelte.d.ts +38 -0
  75. package/dist/layout/interaction/PlotInteraction.svelte.js +56 -0
  76. package/dist/layout/legend/AxisNumberFormat.d.ts +12 -0
  77. package/dist/layout/legend/AxisNumberFormat.js +25 -0
  78. package/dist/layout/legend/ContinuousSection.svelte +365 -335
  79. package/dist/layout/legend/DisabledStyle.d.ts +19 -0
  80. package/dist/layout/legend/DisabledStyle.js +57 -0
  81. package/dist/layout/legend/DiscreteBadgeItem.svelte +6 -3
  82. package/dist/layout/legend/DiscreteSection.svelte +39 -32
  83. package/dist/layout/legend/DiscreteSwatchItem.svelte +4 -1
  84. package/dist/layout/legend/DiscreteSymbolIcon.svelte +14 -9
  85. package/dist/layout/legend/LegendChannels.d.ts +21 -0
  86. package/dist/layout/legend/LegendChannels.js +221 -0
  87. package/dist/layout/legend/LegendLayout.svelte +49 -43
  88. package/dist/layout/legend/LegendState.svelte.d.ts +79 -0
  89. package/dist/layout/legend/LegendState.svelte.js +329 -0
  90. package/dist/layout/legend/LegendText.d.ts +12 -0
  91. package/dist/layout/legend/LegendText.js +22 -0
  92. package/dist/layout/legend/SizeSection.svelte +84 -0
  93. package/dist/layout/legend/SizeSection.svelte.d.ts +7 -0
  94. package/dist/layout/legend/SymbolSection.svelte +31 -0
  95. package/dist/layout/legend/SymbolSection.svelte.d.ts +8 -0
  96. package/dist/layout/margins/Box.d.ts +84 -0
  97. package/dist/layout/margins/Box.js +138 -0
  98. package/dist/layout/margins/Margins.d.ts +37 -0
  99. package/dist/layout/margins/Margins.js +71 -0
  100. package/dist/layout/margins/PlotMargins.svelte.d.ts +101 -0
  101. package/dist/layout/margins/PlotMargins.svelte.js +219 -0
  102. package/dist/layout/plot/Core.svelte +61 -0
  103. package/dist/layout/plot/Core.svelte.d.ts +41 -0
  104. package/dist/layout/plot/PanelRun.svelte +28 -0
  105. package/dist/{charts/heatmap/Chart.svelte.d.ts → layout/plot/PanelRun.svelte.d.ts} +11 -7
  106. package/dist/layout/plot/Plot.svelte +284 -0
  107. package/dist/layout/plot/Plot.svelte.d.ts +49 -0
  108. package/dist/layout/plot/PlotContext.d.ts +41 -0
  109. package/dist/layout/plot/PlotContext.js +46 -0
  110. package/dist/layout/plot/PublicPlotContext.d.ts +130 -0
  111. package/dist/layout/plot/PublicPlotContext.js +236 -0
  112. package/dist/layout/plot/Slice.d.ts +44 -0
  113. package/dist/layout/plot/Slice.js +98 -0
  114. package/dist/layout/plot/usePlot.d.ts +9 -0
  115. package/dist/layout/plot/usePlot.js +13 -0
  116. package/dist/layout/scales/ScalesLayout.svelte +241 -206
  117. package/dist/layout/scales/ScalesLayout.svelte.d.ts +2 -1
  118. package/dist/layout/scales/buildScale.d.ts +5 -22
  119. package/dist/layout/scales/buildScale.js +11 -34
  120. package/dist/layout/scales/niceDomain.d.ts +3 -3
  121. package/dist/layout/scales/niceDomain.js +4 -4
  122. package/dist/layout/styles/StylesLayout.svelte +65 -65
  123. package/dist/layout/styles/TileLayer.svelte +78 -76
  124. package/dist/layout/styles/TileLayer.svelte.d.ts +1 -1
  125. package/dist/layout/styles/ValueLabels.d.ts +97 -0
  126. package/dist/layout/styles/ValueLabels.js +237 -0
  127. package/dist/layout/timeline/Timeline.svelte +80 -74
  128. package/dist/layout/timeline/TimelineFrame.svelte +86 -0
  129. package/dist/layout/timeline/TimelineFrame.svelte.d.ts +16 -0
  130. package/dist/layout/timeline/TimelineLayout.svelte +114 -169
  131. package/dist/layout/timeline/TimelineLayout.svelte.d.ts +2 -0
  132. package/dist/layout/timeline/TimelinePlayer.svelte +195 -0
  133. package/dist/layout/timeline/TimelinePlayer.svelte.d.ts +7 -0
  134. package/dist/layout/timeline/TimelineRule.svelte +50 -0
  135. package/dist/layout/timeline/TimelineRule.svelte.d.ts +7 -0
  136. package/dist/layout/timeline/TimelineState.svelte.d.ts +82 -0
  137. package/dist/layout/timeline/TimelineState.svelte.js +226 -0
  138. package/dist/layout/timeline/TimelineSteps.d.ts +24 -0
  139. package/dist/layout/timeline/TimelineSteps.js +48 -0
  140. package/dist/layout/tooltip/Tooltip.svelte +82 -85
  141. package/dist/layout/tooltip/Tooltip.svelte.d.ts +43 -24
  142. package/dist/layout/tooltip/TooltipState.svelte.d.ts +61 -0
  143. package/dist/layout/tooltip/TooltipState.svelte.js +107 -0
  144. package/dist/markers/MarkerKinds.d.ts +173 -0
  145. package/dist/markers/MarkerKinds.js +51 -0
  146. package/dist/markers/area/AreaMarker.svelte +110 -0
  147. package/dist/markers/area/AreaMarker.svelte.d.ts +7 -0
  148. package/dist/markers/arrow/ArrowMarker.svelte +28 -0
  149. package/dist/markers/arrow/ArrowMarker.svelte.d.ts +7 -0
  150. package/dist/markers/{BarMarker.svelte → bar/BarMarker.svelte} +54 -52
  151. package/dist/markers/{BarMarker.svelte.d.ts → bar/BarMarker.svelte.d.ts} +1 -1
  152. package/dist/markers/bollinger/BollingerMarker.svelte +44 -0
  153. package/dist/markers/bollinger/BollingerMarker.svelte.d.ts +7 -0
  154. package/dist/markers/box/BoxMarker.svelte +143 -0
  155. package/dist/markers/box/BoxMarker.svelte.d.ts +7 -0
  156. package/dist/markers/brush/BrushMarker.svelte +32 -0
  157. package/dist/markers/brush/BrushMarker.svelte.d.ts +7 -0
  158. package/dist/markers/cell/CellMarker.svelte +27 -0
  159. package/dist/markers/{CellMarker.svelte.d.ts → cell/CellMarker.svelte.d.ts} +1 -1
  160. package/dist/markers/contour/ContourClipMarker.svelte +83 -0
  161. package/dist/markers/{ContourClipMarker.svelte.d.ts → contour/ContourClipMarker.svelte.d.ts} +1 -1
  162. package/dist/markers/contour/ContourMarker.svelte +28 -0
  163. package/dist/markers/{ContourMarker.svelte.d.ts → contour/ContourMarker.svelte.d.ts} +1 -1
  164. package/dist/markers/delaunay/DelaunayLinkMarker.svelte +26 -0
  165. package/dist/markers/delaunay/DelaunayLinkMarker.svelte.d.ts +7 -0
  166. package/dist/markers/delaunay/DelaunayMeshMarker.svelte +26 -0
  167. package/dist/markers/delaunay/DelaunayMeshMarker.svelte.d.ts +7 -0
  168. package/dist/markers/delta/Delta.d.ts +21 -0
  169. package/dist/markers/delta/Delta.js +60 -0
  170. package/dist/markers/delta/DeltaMarker.svelte +94 -0
  171. package/dist/markers/{DeltaMarker.svelte.d.ts → delta/DeltaMarker.svelte.d.ts} +2 -2
  172. package/dist/markers/density/DensityMarker.svelte +63 -0
  173. package/dist/markers/density/DensityMarker.svelte.d.ts +7 -0
  174. package/dist/markers/difference/DifferenceMarker.svelte +30 -0
  175. package/dist/markers/difference/DifferenceMarker.svelte.d.ts +7 -0
  176. package/dist/markers/dot/DotMarker.svelte +102 -0
  177. package/dist/markers/{DotMarker.svelte.d.ts → dot/DotMarker.svelte.d.ts} +5 -17
  178. package/dist/markers/geo/GeoFeaturesMarker.svelte +39 -0
  179. package/dist/markers/{GeoFeaturesMarker.svelte.d.ts → geo/GeoFeaturesMarker.svelte.d.ts} +1 -1
  180. package/dist/markers/geo/GeoHoverMarker.svelte +28 -0
  181. package/dist/markers/{GeoHoverMarker.svelte.d.ts → geo/GeoHoverMarker.svelte.d.ts} +2 -2
  182. package/dist/markers/geo/GraticuleMarker.svelte +18 -0
  183. package/dist/markers/{GraticuleMarker.svelte.d.ts → geo/GraticuleMarker.svelte.d.ts} +1 -1
  184. package/dist/markers/geo/SphereMarker.svelte +15 -0
  185. package/dist/markers/{SphereMarker.svelte.d.ts → geo/SphereMarker.svelte.d.ts} +1 -1
  186. package/dist/markers/hover/HoverMarker.svelte +252 -0
  187. package/dist/markers/{HoverMarker.svelte.d.ts → hover/HoverMarker.svelte.d.ts} +10 -10
  188. package/dist/markers/hull/HullMarker.svelte +25 -0
  189. package/dist/markers/hull/HullMarker.svelte.d.ts +7 -0
  190. package/dist/markers/image/ImageMarker.svelte +22 -0
  191. package/dist/markers/image/ImageMarker.svelte.d.ts +7 -0
  192. package/dist/markers/inset/InsetMarker.svelte +184 -150
  193. package/dist/markers/inset/InsetMarker.svelte.d.ts +4 -4
  194. package/dist/markers/inset/insetLayout.d.ts +1 -1
  195. package/dist/markers/inset/insetLayout.js +6 -2
  196. package/dist/markers/inset/insetProjection.d.ts +1 -1
  197. package/dist/markers/inset/insetProjection.js +3 -3
  198. package/dist/markers/line/LineMarker.svelte +30 -0
  199. package/dist/markers/{LineMarker.svelte.d.ts → line/LineMarker.svelte.d.ts} +1 -1
  200. package/dist/markers/link/LinkMarker.svelte +47 -0
  201. package/dist/markers/{LinkMarker.svelte.d.ts → link/LinkMarker.svelte.d.ts} +1 -1
  202. package/dist/markers/raster/RasterMarker.svelte +31 -0
  203. package/dist/markers/raster/RasterMarker.svelte.d.ts +7 -0
  204. package/dist/markers/rect/RectMarker.svelte +62 -0
  205. package/dist/markers/rect/RectMarker.svelte.d.ts +7 -0
  206. package/dist/markers/regression/RegressionMarker.svelte +60 -0
  207. package/dist/markers/regression/RegressionMarker.svelte.d.ts +7 -0
  208. package/dist/markers/rule/RuleMarker.svelte +47 -0
  209. package/dist/markers/{RuleMarker.svelte.d.ts → rule/RuleMarker.svelte.d.ts} +2 -5
  210. package/dist/markers/text/Declutter.d.ts +35 -0
  211. package/dist/markers/text/Declutter.js +157 -0
  212. package/dist/markers/text/TextMarker.svelte +244 -0
  213. package/dist/markers/{TextMarker.svelte.d.ts → text/TextMarker.svelte.d.ts} +5 -9
  214. package/dist/markers/tick/TickMarker.svelte +44 -0
  215. package/dist/markers/tick/TickMarker.svelte.d.ts +7 -0
  216. package/dist/markers/trail/TrailMarker.svelte +27 -0
  217. package/dist/markers/trail/TrailMarker.svelte.d.ts +7 -0
  218. package/dist/markers/utils/BandNudge.d.ts +22 -0
  219. package/dist/markers/utils/BandNudge.js +23 -0
  220. package/dist/markers/utils/MarkerChannels.d.ts +49 -0
  221. package/dist/markers/utils/MarkerChannels.js +97 -0
  222. package/dist/markers/vector/VectorMarker.svelte +29 -0
  223. package/dist/markers/{VectorMarker.svelte.d.ts → vector/VectorMarker.svelte.d.ts} +1 -1
  224. package/dist/markers/voronoi/VoronoiMarker.svelte +26 -0
  225. package/dist/markers/voronoi/VoronoiMarker.svelte.d.ts +7 -0
  226. package/dist/markers/voronoi/VoronoiMeshMarker.svelte +26 -0
  227. package/dist/markers/voronoi/VoronoiMeshMarker.svelte.d.ts +7 -0
  228. package/dist/markers/waffle/WaffleMarker.svelte +56 -0
  229. package/dist/markers/waffle/WaffleMarker.svelte.d.ts +7 -0
  230. package/dist/phases/Pipeline.d.ts +108 -0
  231. package/dist/phases/Pipeline.js +226 -0
  232. package/dist/phases/data/DataPhase.d.ts +25 -0
  233. package/dist/phases/data/DataPhase.js +82 -0
  234. package/dist/phases/data/PlotAxes.d.ts +75 -0
  235. package/dist/phases/data/PlotAxes.js +151 -0
  236. package/dist/phases/facet/FacetPhase.d.ts +52 -0
  237. package/dist/phases/facet/FacetPhase.js +114 -0
  238. package/dist/phases/hover/HoverPhase.d.ts +73 -0
  239. package/dist/phases/hover/HoverPhase.js +144 -0
  240. package/dist/phases/mapping/MappingPhase.d.ts +17 -0
  241. package/dist/phases/mapping/MappingPhase.js +42 -0
  242. package/dist/phases/markers/MarkersPhase.d.ts +14 -0
  243. package/dist/phases/markers/MarkersPhase.js +27 -0
  244. package/dist/phases/scales/MarkerAxisValues.d.ts +12 -0
  245. package/dist/phases/scales/MarkerAxisValues.js +34 -0
  246. package/dist/phases/scales/ScalesPhase.d.ts +31 -0
  247. package/dist/phases/scales/ScalesPhase.js +157 -0
  248. package/dist/phases/sharedScales/SharedScalesPhase.d.ts +55 -0
  249. package/dist/phases/sharedScales/SharedScalesPhase.js +168 -0
  250. package/dist/phases/statistics/AuthorMarkers.d.ts +43 -0
  251. package/dist/phases/statistics/AuthorMarkers.js +69 -0
  252. package/dist/phases/statistics/MarkerGrouping.d.ts +48 -0
  253. package/dist/phases/statistics/MarkerGrouping.js +113 -0
  254. package/dist/phases/statistics/Statistics.d.ts +53 -0
  255. package/dist/phases/statistics/Statistics.js +156 -0
  256. package/dist/phases/statistics/StatisticsPhase.d.ts +18 -0
  257. package/dist/phases/statistics/StatisticsPhase.js +68 -0
  258. package/dist/phases/statistics/methods/BollingerStatistic.d.ts +9 -0
  259. package/dist/phases/statistics/methods/BollingerStatistic.js +18 -0
  260. package/dist/phases/statistics/methods/BoxStatistic.d.ts +9 -0
  261. package/dist/phases/statistics/methods/BoxStatistic.js +18 -0
  262. package/dist/phases/statistics/methods/Density2dStatistic.d.ts +9 -0
  263. package/dist/phases/statistics/methods/Density2dStatistic.js +18 -0
  264. package/dist/phases/statistics/methods/DensityStatistic.d.ts +12 -0
  265. package/dist/phases/statistics/methods/DensityStatistic.js +29 -0
  266. package/dist/phases/statistics/methods/MovingAverageStatistic.d.ts +12 -0
  267. package/dist/phases/statistics/methods/MovingAverageStatistic.js +30 -0
  268. package/dist/phases/statistics/methods/RegressionStatistic.d.ts +9 -0
  269. package/dist/phases/statistics/methods/RegressionStatistic.js +21 -0
  270. package/dist/phases/styles/StylesPhase.d.ts +13 -0
  271. package/dist/phases/styles/StylesPhase.js +17 -0
  272. package/dist/phases/tooltip/TooltipPhase.d.ts +12 -0
  273. package/dist/phases/tooltip/TooltipPhase.js +10 -0
  274. package/dist/phases/transforms/Transforms.d.ts +42 -0
  275. package/dist/phases/transforms/Transforms.js +130 -0
  276. package/dist/phases/transforms/TransformsPhase.d.ts +64 -0
  277. package/dist/phases/transforms/TransformsPhase.js +242 -0
  278. package/dist/phases/transforms/methods/AnchorBar.d.ts +13 -0
  279. package/dist/phases/transforms/methods/AnchorBar.js +21 -0
  280. package/dist/phases/transforms/methods/BinTransform.d.ts +7 -0
  281. package/dist/phases/transforms/methods/BinTransform.js +48 -0
  282. package/dist/phases/transforms/methods/DensityTransform.d.ts +6 -0
  283. package/dist/phases/transforms/methods/DensityTransform.js +13 -0
  284. package/dist/phases/transforms/methods/GroupTransform.d.ts +8 -0
  285. package/dist/phases/transforms/methods/GroupTransform.js +39 -0
  286. package/dist/phases/transforms/methods/NormalizeTransform.d.ts +10 -0
  287. package/dist/phases/transforms/methods/NormalizeTransform.js +30 -0
  288. package/dist/phases/transforms/methods/OrderTransform.d.ts +16 -0
  289. package/dist/phases/transforms/methods/OrderTransform.js +43 -0
  290. package/dist/phases/transforms/methods/PerGroup.d.ts +11 -0
  291. package/dist/phases/transforms/methods/PerGroup.js +39 -0
  292. package/dist/phases/transforms/methods/PositionTransform.d.ts +15 -0
  293. package/dist/phases/transforms/methods/PositionTransform.js +74 -0
  294. package/dist/phases/transforms/methods/StackTransform.d.ts +8 -0
  295. package/dist/phases/transforms/methods/StackTransform.js +29 -0
  296. package/dist/phases/transforms/methods/WindowTransform.d.ts +8 -0
  297. package/dist/phases/transforms/methods/WindowTransform.js +23 -0
  298. package/dist/plots/area/Plot.svelte +42 -0
  299. package/dist/plots/{heatmap/ValueLabels.svelte.d.ts → area/Plot.svelte.d.ts} +8 -16
  300. package/dist/plots/area/defaults.d.ts +4 -0
  301. package/dist/plots/area/defaults.js +21 -0
  302. package/dist/plots/area/markers.d.ts +14 -0
  303. package/dist/plots/area/markers.js +40 -0
  304. package/dist/plots/bar/Plot.svelte +33 -438
  305. package/dist/plots/bar/Plot.svelte.d.ts +5 -8
  306. package/dist/plots/bar/defaults.d.ts +9 -0
  307. package/dist/plots/bar/defaults.js +92 -0
  308. package/dist/plots/bar/markers.d.ts +45 -0
  309. package/dist/plots/bar/markers.js +232 -0
  310. package/dist/plots/geo/Core.svelte +151 -0
  311. package/dist/plots/geo/Core.svelte.d.ts +25 -0
  312. package/dist/plots/geo/Plot.svelte +103 -324
  313. package/dist/plots/geo/Plot.svelte.d.ts +5 -9
  314. package/dist/plots/geo/defaults.d.ts +4 -0
  315. package/dist/plots/geo/defaults.js +16 -0
  316. package/dist/plots/geo/features.svelte.d.ts +5 -0
  317. package/dist/plots/geo/features.svelte.js +44 -0
  318. package/dist/plots/geo/phases/data.d.ts +6 -0
  319. package/dist/plots/geo/phases/data.js +26 -0
  320. package/dist/plots/geo/phases/hover.d.ts +9 -0
  321. package/dist/plots/geo/phases/hover.js +45 -0
  322. package/dist/plots/geo/phases/markers.d.ts +9 -0
  323. package/dist/plots/geo/phases/markers.js +76 -0
  324. package/dist/plots/geo/phases/scales.d.ts +10 -0
  325. package/dist/plots/geo/phases/scales.js +85 -0
  326. package/dist/plots/geo/phases/tooltip.d.ts +3 -0
  327. package/dist/plots/geo/phases/tooltip.js +5 -0
  328. package/dist/plots/geo/slices.d.ts +18 -0
  329. package/dist/plots/geo/slices.js +56 -0
  330. package/dist/plots/heatmap/Plot.svelte +55 -249
  331. package/dist/plots/heatmap/Plot.svelte.d.ts +5 -8
  332. package/dist/plots/heatmap/defaults.d.ts +11 -0
  333. package/dist/plots/heatmap/defaults.js +91 -0
  334. package/dist/plots/heatmap/markers.d.ts +17 -0
  335. package/dist/plots/heatmap/markers.js +141 -0
  336. package/dist/plots/histogram/Plot.svelte +45 -0
  337. package/dist/plots/histogram/Plot.svelte.d.ts +26 -0
  338. package/dist/plots/histogram/defaults.d.ts +9 -0
  339. package/dist/plots/histogram/defaults.js +87 -0
  340. package/dist/plots/histogram/markers.d.ts +18 -0
  341. package/dist/plots/histogram/markers.js +89 -0
  342. package/dist/plots/line/Plot.svelte +37 -268
  343. package/dist/plots/line/Plot.svelte.d.ts +3 -7
  344. package/dist/plots/line/defaults.d.ts +4 -0
  345. package/dist/plots/line/defaults.js +29 -0
  346. package/dist/plots/line/markers.d.ts +49 -0
  347. package/dist/plots/line/markers.js +200 -0
  348. package/dist/plots/pyramid/Plot.svelte +34 -362
  349. package/dist/plots/pyramid/Plot.svelte.d.ts +5 -8
  350. package/dist/plots/pyramid/defaults.d.ts +13 -0
  351. package/dist/plots/pyramid/defaults.js +86 -0
  352. package/dist/plots/pyramid/markers.d.ts +21 -0
  353. package/dist/plots/pyramid/markers.js +159 -0
  354. package/dist/plots/scatter/Plot.svelte +34 -288
  355. package/dist/plots/scatter/Plot.svelte.d.ts +5 -8
  356. package/dist/plots/scatter/defaults.d.ts +4 -0
  357. package/dist/plots/scatter/defaults.js +79 -0
  358. package/dist/plots/scatter/markers.d.ts +19 -0
  359. package/dist/plots/scatter/markers.js +128 -0
  360. package/dist/plots/utils/ChannelName.d.ts +9 -0
  361. package/dist/plots/utils/ChannelName.js +14 -0
  362. package/dist/plots/utils/accessors.d.ts +1 -1
  363. package/dist/plots/utils/accessors.js +4 -2
  364. package/dist/plots/utils/gaps.d.ts +14 -19
  365. package/dist/plots/utils/gaps.js +38 -18
  366. package/dist/plots/utils/geoAccessors.d.ts +8 -8
  367. package/dist/plots/utils/geoAccessors.js +16 -12
  368. package/dist/plots/utils/geoSegments.d.ts +24 -9
  369. package/dist/plots/utils/geoSegments.js +31 -11
  370. package/dist/plots/utils/segments.d.ts +5 -16
  371. package/dist/plots/utils/segments.js +40 -52
  372. package/dist/plots/utils/tiles.d.ts +9 -9
  373. package/dist/plots/utils/tiles.js +35 -25
  374. package/dist/plots/utils/topojson.d.ts +1 -1
  375. package/dist/plots/utils/topojson.js +3 -3
  376. package/dist/stores/device.js +2 -4
  377. package/dist/types/configuration/styling.d.ts +158 -27
  378. package/dist/types/layout/box.d.ts +24 -0
  379. package/dist/types/layout/composer.d.ts +36 -0
  380. package/dist/types/layout/coordinates.d.ts +14 -14
  381. package/dist/types/layout/facet.d.ts +44 -22
  382. package/dist/types/layout/figure.d.ts +7 -0
  383. package/dist/types/layout/geometry.d.ts +6 -2
  384. package/dist/types/layout/grid.d.ts +66 -0
  385. package/dist/types/layout/hover.d.ts +48 -0
  386. package/dist/types/layout/legend.d.ts +258 -54
  387. package/dist/types/layout/mapping.d.ts +68 -0
  388. package/dist/types/layout/plot.d.ts +41 -0
  389. package/dist/types/layout/scales.d.ts +92 -24
  390. package/dist/types/layout/scales.js +19 -1
  391. package/dist/types/layout/statistics/bollinger.d.ts +18 -0
  392. package/dist/types/layout/statistics/box.d.ts +8 -0
  393. package/dist/types/layout/statistics/box.js +1 -0
  394. package/dist/types/layout/statistics/density.d.ts +27 -0
  395. package/dist/types/layout/statistics/density.js +1 -0
  396. package/dist/types/layout/statistics/index.d.ts +46 -0
  397. package/dist/types/layout/statistics/index.js +1 -0
  398. package/dist/types/layout/statistics/movingAverage.d.ts +12 -0
  399. package/dist/types/layout/statistics/movingAverage.js +1 -0
  400. package/dist/types/layout/statistics/regression.d.ts +20 -0
  401. package/dist/types/layout/statistics/regression.js +1 -0
  402. package/dist/types/layout/styles.d.ts +24 -35
  403. package/dist/types/layout/timeline.d.ts +51 -4
  404. package/dist/types/layout/tooltip.d.ts +7 -85
  405. package/dist/types/markers/all.d.ts +3 -4
  406. package/dist/types/markers/axis/area.d.ts +12 -0
  407. package/dist/types/markers/axis/area.js +1 -0
  408. package/dist/types/markers/axis/arrow.d.ts +15 -0
  409. package/dist/types/markers/axis/arrow.js +1 -0
  410. package/dist/types/markers/axis/axisBasedMarkersConfig.d.ts +29 -0
  411. package/dist/types/markers/axis/axisBasedMarkersConfig.js +1 -0
  412. package/dist/types/markers/axis/bar.d.ts +18 -0
  413. package/dist/types/markers/axis/bar.js +1 -0
  414. package/dist/types/markers/axis/bollinger.d.ts +6 -0
  415. package/dist/types/markers/axis/bollinger.js +1 -0
  416. package/dist/types/markers/axis/box.d.ts +14 -0
  417. package/dist/types/markers/axis/box.js +1 -0
  418. package/dist/types/markers/axis/brush.d.ts +28 -0
  419. package/dist/types/markers/axis/brush.js +1 -0
  420. package/dist/types/markers/axis/cell.d.ts +9 -0
  421. package/dist/types/markers/axis/cell.js +1 -0
  422. package/dist/types/markers/axis/component.d.ts +9 -0
  423. package/dist/types/markers/axis/component.js +1 -0
  424. package/dist/types/markers/axis/curveName.d.ts +2 -0
  425. package/dist/types/markers/axis/curveName.js +1 -0
  426. package/dist/types/markers/axis/delaunayLink.d.ts +7 -0
  427. package/dist/types/markers/axis/delaunayLink.js +1 -0
  428. package/dist/types/markers/axis/delaunayMesh.d.ts +7 -0
  429. package/dist/types/markers/axis/delaunayMesh.js +1 -0
  430. package/dist/types/markers/axis/delta.d.ts +27 -0
  431. package/dist/types/markers/axis/delta.js +1 -0
  432. package/dist/types/markers/axis/density.d.ts +12 -0
  433. package/dist/types/markers/axis/density.js +1 -0
  434. package/dist/types/markers/axis/difference.d.ts +12 -0
  435. package/dist/types/markers/axis/difference.js +1 -0
  436. package/dist/types/markers/axis/hover.d.ts +21 -0
  437. package/dist/types/markers/axis/hover.js +1 -0
  438. package/dist/types/markers/axis/hull.d.ts +7 -0
  439. package/dist/types/markers/axis/hull.js +1 -0
  440. package/dist/types/markers/axis/image.d.ts +12 -0
  441. package/dist/types/markers/axis/image.js +1 -0
  442. package/dist/types/markers/axis/line.d.ts +7 -0
  443. package/dist/types/markers/axis/line.js +1 -0
  444. package/dist/types/markers/axis/raster.d.ts +18 -0
  445. package/dist/types/markers/axis/raster.js +1 -0
  446. package/dist/types/markers/axis/rect.d.ts +15 -0
  447. package/dist/types/markers/axis/rect.js +1 -0
  448. package/dist/types/markers/axis/regression.d.ts +6 -0
  449. package/dist/types/markers/axis/regression.js +1 -0
  450. package/dist/types/markers/axis/rule.d.ts +15 -0
  451. package/dist/types/markers/axis/rule.js +1 -0
  452. package/dist/types/markers/axis/tick.d.ts +8 -0
  453. package/dist/types/markers/axis/tick.js +1 -0
  454. package/dist/types/markers/axis/trail.d.ts +14 -0
  455. package/dist/types/markers/axis/trail.js +1 -0
  456. package/dist/types/markers/axis/voronoi.d.ts +7 -0
  457. package/dist/types/markers/axis/voronoi.js +1 -0
  458. package/dist/types/markers/axis/voronoiMesh.d.ts +7 -0
  459. package/dist/types/markers/axis/voronoiMesh.js +1 -0
  460. package/dist/types/markers/axis/waffle.d.ts +13 -0
  461. package/dist/types/markers/axis/waffle.js +1 -0
  462. package/dist/types/markers/basic/basicMarkersConfig.d.ts +4 -0
  463. package/dist/types/markers/basic/basicMarkersConfig.js +1 -0
  464. package/dist/types/markers/basic/dot.d.ts +9 -0
  465. package/dist/types/markers/basic/dot.js +1 -0
  466. package/dist/types/markers/basic/text.d.ts +60 -0
  467. package/dist/types/markers/basic/text.js +1 -0
  468. package/dist/types/markers/basic.d.ts +4 -0
  469. package/dist/types/markers/basic.js +1 -0
  470. package/dist/types/markers/channels/commonMarkerConfig.d.ts +26 -0
  471. package/dist/types/markers/channels/commonMarkerConfig.js +1 -0
  472. package/dist/types/markers/channels/commonMarkerConfigWithArea.d.ts +6 -0
  473. package/dist/types/markers/channels/commonMarkerConfigWithArea.js +1 -0
  474. package/dist/types/markers/channels/commonMarkerConfigWithColor.d.ts +5 -0
  475. package/dist/types/markers/channels/commonMarkerConfigWithColor.js +1 -0
  476. package/dist/types/markers/channels/commonMarkerConfigWithInterval.d.ts +9 -0
  477. package/dist/types/markers/channels/commonMarkerConfigWithInterval.js +1 -0
  478. package/dist/types/markers/channels/commonMarkerConfigWithRadius.d.ts +5 -0
  479. package/dist/types/markers/channels/commonMarkerConfigWithRadius.js +1 -0
  480. package/dist/types/markers/channels/commonMarkerConfigWithSymbol.d.ts +5 -0
  481. package/dist/types/markers/channels/commonMarkerConfigWithSymbol.js +1 -0
  482. package/dist/types/markers/channels/commonMarkerConfigWithWeight.d.ts +5 -0
  483. package/dist/types/markers/channels/commonMarkerConfigWithWeight.js +1 -0
  484. package/dist/types/markers/common.d.ts +30 -103
  485. package/dist/types/markers/common.js +29 -1
  486. package/dist/types/markers/geo/contour.d.ts +27 -0
  487. package/dist/types/markers/geo/contour.js +1 -0
  488. package/dist/types/markers/geo/features.d.ts +12 -0
  489. package/dist/types/markers/geo/features.js +1 -0
  490. package/dist/types/markers/geo/geoComponent.d.ts +7 -0
  491. package/dist/types/markers/geo/geoComponent.js +1 -0
  492. package/dist/types/markers/geo/geoHover.d.ts +6 -0
  493. package/dist/types/markers/geo/geoHover.js +1 -0
  494. package/dist/types/markers/geo/geoMarkersConfig.d.ts +11 -0
  495. package/dist/types/markers/geo/geoMarkersConfig.js +1 -0
  496. package/dist/types/markers/geo/graticule.d.ts +11 -0
  497. package/dist/types/markers/geo/graticule.js +1 -0
  498. package/dist/types/markers/geo/inset.d.ts +50 -0
  499. package/dist/types/markers/geo/inset.js +1 -0
  500. package/dist/types/markers/geo/link.d.ts +13 -0
  501. package/dist/types/markers/geo/link.js +1 -0
  502. package/dist/types/markers/geo/sphere.d.ts +11 -0
  503. package/dist/types/markers/geo/sphere.js +1 -0
  504. package/dist/types/markers/geo/vector.d.ts +17 -0
  505. package/dist/types/markers/geo/vector.js +1 -0
  506. package/dist/types/markers/geo.d.ts +10 -212
  507. package/dist/types/markers/geo.js +10 -1
  508. package/dist/types/markers/traits.d.ts +22 -0
  509. package/dist/types/markers/traits.js +1 -0
  510. package/dist/types/misc/easing.js +1 -0
  511. package/dist/types/misc/viewport.js +1 -0
  512. package/dist/types/phases/data/axes.d.ts +18 -0
  513. package/dist/types/phases/data/axes.js +1 -0
  514. package/dist/types/phases/data/phase.d.ts +26 -0
  515. package/dist/types/phases/data/phase.js +2 -0
  516. package/dist/types/phases/facet/phase.d.ts +18 -0
  517. package/dist/types/phases/facet/phase.js +1 -0
  518. package/dist/types/phases/hover/phase.d.ts +34 -0
  519. package/dist/types/phases/hover/phase.js +1 -0
  520. package/dist/types/phases/index.d.ts +14 -0
  521. package/dist/types/phases/index.js +1 -0
  522. package/dist/types/phases/kind.d.ts +59 -0
  523. package/dist/types/phases/kind.js +1 -0
  524. package/dist/types/phases/mapping/phase.d.ts +5 -0
  525. package/dist/types/phases/mapping/phase.js +1 -0
  526. package/dist/types/phases/markers/phase.d.ts +13 -0
  527. package/dist/types/phases/markers/phase.js +1 -0
  528. package/dist/types/phases/pipeline.d.ts +10 -0
  529. package/dist/types/phases/pipeline.js +1 -0
  530. package/dist/types/phases/scales/phase.d.ts +26 -0
  531. package/dist/types/phases/scales/phase.js +1 -0
  532. package/dist/types/phases/sharedScales/phase.d.ts +12 -0
  533. package/dist/types/phases/sharedScales/phase.js +1 -0
  534. package/dist/types/phases/stage.d.ts +12 -0
  535. package/dist/types/phases/stage.js +1 -0
  536. package/dist/types/phases/state.d.ts +73 -0
  537. package/dist/types/phases/state.js +1 -0
  538. package/dist/types/phases/statistics/phase.d.ts +41 -0
  539. package/dist/types/phases/statistics/phase.js +1 -0
  540. package/dist/types/phases/statistics/source.d.ts +20 -0
  541. package/dist/types/phases/statistics/source.js +7 -0
  542. package/dist/types/phases/styles/phase.d.ts +24 -0
  543. package/dist/types/phases/styles/phase.js +1 -0
  544. package/dist/types/phases/transforms/adapter.d.ts +27 -0
  545. package/dist/types/phases/transforms/adapter.js +1 -0
  546. package/dist/types/phases/transforms/phase.d.ts +40 -0
  547. package/dist/types/phases/transforms/phase.js +1 -0
  548. package/dist/types/plots/area/props.d.ts +10 -0
  549. package/dist/types/plots/area/props.js +1 -0
  550. package/dist/types/plots/area/state.d.ts +6 -0
  551. package/dist/types/plots/area/state.js +1 -0
  552. package/dist/types/plots/bar/props.d.ts +10 -0
  553. package/dist/types/plots/bar/props.js +1 -0
  554. package/dist/types/plots/bar/state.d.ts +6 -0
  555. package/dist/types/plots/bar/state.js +1 -0
  556. package/dist/types/plots/camera.d.ts +7 -17
  557. package/dist/types/plots/constants.d.ts +16 -8
  558. package/dist/types/plots/data/common.d.ts +25 -17
  559. package/dist/types/plots/data/geo.d.ts +26 -12
  560. package/dist/types/plots/gaps.d.ts +19 -38
  561. package/dist/types/plots/geo/props.d.ts +23 -0
  562. package/dist/types/plots/geo/props.js +1 -0
  563. package/dist/types/plots/geo/state.d.ts +82 -0
  564. package/dist/types/plots/geo/state.js +1 -0
  565. package/dist/types/plots/heatmap/props.d.ts +10 -0
  566. package/dist/types/plots/heatmap/props.js +1 -0
  567. package/dist/types/plots/heatmap/state.d.ts +28 -0
  568. package/dist/types/plots/heatmap/state.js +1 -0
  569. package/dist/types/plots/histogram/props.d.ts +18 -0
  570. package/dist/types/plots/histogram/props.js +1 -0
  571. package/dist/types/plots/histogram/state.d.ts +6 -0
  572. package/dist/types/plots/histogram/state.js +1 -0
  573. package/dist/types/plots/line/props.d.ts +10 -0
  574. package/dist/types/plots/line/props.js +1 -0
  575. package/dist/types/plots/line/state.d.ts +9 -0
  576. package/dist/types/plots/line/state.js +1 -0
  577. package/dist/types/plots/props.d.ts +143 -35
  578. package/dist/types/plots/pyramid/props.d.ts +10 -0
  579. package/dist/types/plots/pyramid/props.js +1 -0
  580. package/dist/types/plots/pyramid/state.d.ts +16 -0
  581. package/dist/types/plots/pyramid/state.js +1 -0
  582. package/dist/types/plots/scatter/props.d.ts +10 -0
  583. package/dist/types/plots/scatter/props.js +1 -0
  584. package/dist/types/plots/scatter/state.d.ts +6 -0
  585. package/dist/types/plots/scatter/state.js +1 -0
  586. package/dist/types/plots/segments/common.d.ts +1 -1
  587. package/dist/types/plots/segments/config.d.ts +12 -6
  588. package/dist/types/plots/styling.d.ts +5 -5
  589. package/dist/types/transforms/bin.d.ts +84 -0
  590. package/dist/types/transforms/bin.js +28 -0
  591. package/dist/types/transforms/bollinger.d.ts +21 -0
  592. package/dist/types/transforms/bollinger.js +1 -0
  593. package/dist/types/transforms/common.d.ts +29 -0
  594. package/dist/types/transforms/common.js +16 -0
  595. package/dist/types/transforms/density.d.ts +45 -0
  596. package/dist/types/transforms/density.js +10 -0
  597. package/dist/types/transforms/filter.d.ts +12 -0
  598. package/dist/types/transforms/filter.js +14 -0
  599. package/dist/types/transforms/group.d.ts +70 -0
  600. package/dist/types/transforms/group.js +8 -0
  601. package/dist/types/transforms/index.d.ts +36 -0
  602. package/dist/types/transforms/index.js +1 -0
  603. package/dist/types/transforms/interval.d.ts +21 -0
  604. package/dist/types/transforms/interval.js +14 -0
  605. package/dist/types/transforms/jitter.d.ts +34 -0
  606. package/dist/types/transforms/jitter.js +1 -0
  607. package/dist/types/transforms/map.d.ts +24 -0
  608. package/dist/types/transforms/map.js +1 -0
  609. package/dist/types/transforms/normalize.d.ts +36 -0
  610. package/dist/types/transforms/normalize.js +1 -0
  611. package/dist/types/transforms/select.d.ts +15 -0
  612. package/dist/types/transforms/select.js +1 -0
  613. package/dist/types/transforms/shift.d.ts +20 -0
  614. package/dist/types/transforms/shift.js +1 -0
  615. package/dist/types/transforms/sort.d.ts +31 -0
  616. package/dist/types/transforms/sort.js +14 -0
  617. package/dist/types/transforms/stack.d.ts +64 -0
  618. package/dist/types/transforms/stack.js +12 -0
  619. package/dist/types/transforms/window.d.ts +29 -0
  620. package/dist/types/transforms/window.js +1 -0
  621. package/dist/utils/ContinuousDomain.d.ts +12 -0
  622. package/dist/utils/ContinuousDomain.js +19 -0
  623. package/dist/utils/Interpolation.d.ts +26 -0
  624. package/dist/utils/Interpolation.js +65 -0
  625. package/dist/utils/{color.d.ts → color/contrast.d.ts} +0 -5
  626. package/dist/utils/color/contrast.js +40 -0
  627. package/dist/utils/color/cssColor.d.ts +4 -0
  628. package/dist/utils/color/cssColor.js +77 -0
  629. package/dist/utils/color/index.d.ts +3 -0
  630. package/dist/utils/color/index.js +3 -0
  631. package/dist/utils/color/ramp.d.ts +17 -0
  632. package/dist/utils/color/ramp.js +110 -0
  633. package/dist/utils/grouping.d.ts +9 -5
  634. package/dist/utils/grouping.js +19 -10
  635. package/dist/utils/merge.d.ts +7 -0
  636. package/dist/utils/merge.js +17 -0
  637. package/dist/utils/opacity.d.ts +9 -0
  638. package/dist/utils/opacity.js +38 -0
  639. package/dist/utils/symbol.d.ts +31 -0
  640. package/dist/utils/symbol.js +92 -0
  641. package/docs/architecture.md +137 -0
  642. package/docs/chrome.md +68 -0
  643. package/docs/composer.md +53 -0
  644. package/docs/concepts.md +99 -0
  645. package/docs/development.md +94 -0
  646. package/docs/facets.md +69 -0
  647. package/docs/geo.md +151 -0
  648. package/docs/getting-started.md +79 -0
  649. package/docs/legend.md +106 -0
  650. package/docs/markers.md +106 -0
  651. package/docs/plots.md +158 -0
  652. package/docs/scales.md +78 -0
  653. package/docs/state.md +71 -0
  654. package/docs/styles-and-segments.md +215 -0
  655. package/docs/theming.md +215 -0
  656. package/docs/timeline.md +94 -0
  657. package/docs/tooltip-and-hover.md +80 -0
  658. package/docs/transforms-and-statistics.md +88 -0
  659. package/examples/BarValues.svelte +14 -0
  660. package/examples/CustomTooltip.svelte +37 -0
  661. package/examples/Facets.svelte +15 -0
  662. package/examples/LegendReader.svelte +8 -0
  663. package/examples/LegendToggle.svelte +25 -0
  664. package/examples/ResponsiveLine.svelte +37 -0
  665. package/examples/Segments.svelte +17 -0
  666. package/examples/TimelinePlayer.svelte +20 -0
  667. package/examples/Tooltip.svelte +19 -0
  668. package/examples/TooltipCard.svelte +86 -0
  669. package/examples/data.ts +12 -0
  670. package/llms-full.txt +114 -0
  671. package/llms.txt +49 -0
  672. package/package.json +41 -5
  673. package/dist/charts/BaseChart.svelte +0 -149
  674. package/dist/charts/BaseChart.svelte.d.ts +0 -47
  675. package/dist/charts/bar/Chart.svelte +0 -110
  676. package/dist/charts/bar/Chart.svelte.d.ts +0 -26
  677. package/dist/charts/container/ChartContainer.svelte +0 -137
  678. package/dist/charts/container/ChartContainer.svelte.d.ts +0 -16
  679. package/dist/charts/heatmap/Chart.svelte +0 -114
  680. package/dist/charts/line/Chart.svelte +0 -112
  681. package/dist/charts/line/Chart.svelte.d.ts +0 -26
  682. package/dist/charts/pyramid/Chart.svelte +0 -134
  683. package/dist/charts/pyramid/Chart.svelte.d.ts +0 -30
  684. package/dist/charts/scatter/Chart.svelte +0 -95
  685. package/dist/charts/scatter/Chart.svelte.d.ts +0 -28
  686. package/dist/layout/coordinates/margins.d.ts +0 -16
  687. package/dist/layout/coordinates/margins.js +0 -11
  688. package/dist/layout/legend/interaction.svelte.d.ts +0 -15
  689. package/dist/layout/legend/interaction.svelte.js +0 -32
  690. package/dist/layout/plot/BasePlotLayout.svelte +0 -332
  691. package/dist/layout/plot/BasePlotLayout.svelte.d.ts +0 -122
  692. package/dist/layout/plot/margins.d.ts +0 -18
  693. package/dist/layout/plot/margins.js +0 -15
  694. package/dist/layout/plot/measureText.d.ts +0 -4
  695. package/dist/layout/plot/measureText.js +0 -19
  696. package/dist/layout/tooltip/TooltipLayout.svelte +0 -51
  697. package/dist/layout/tooltip/TooltipLayout.svelte.d.ts +0 -45
  698. package/dist/layout/tooltip/controller.svelte.d.ts +0 -61
  699. package/dist/layout/tooltip/controller.svelte.js +0 -173
  700. package/dist/layout/tooltip/hover.svelte.d.ts +0 -7
  701. package/dist/layout/tooltip/hover.svelte.js +0 -28
  702. package/dist/layout/tooltip/resolveTooltipPlacement.d.ts +0 -24
  703. package/dist/layout/tooltip/resolveTooltipPlacement.js +0 -49
  704. package/dist/layout/tooltip/utils.d.ts +0 -49
  705. package/dist/layout/tooltip/utils.js +0 -82
  706. package/dist/markers/CellMarker.svelte +0 -21
  707. package/dist/markers/ContourClipMarker.svelte +0 -77
  708. package/dist/markers/ContourMarker.svelte +0 -28
  709. package/dist/markers/DeltaMarker.svelte +0 -109
  710. package/dist/markers/DotMarker.svelte +0 -70
  711. package/dist/markers/GeoFeaturesMarker.svelte +0 -19
  712. package/dist/markers/GeoHoverMarker.svelte +0 -25
  713. package/dist/markers/GraticuleMarker.svelte +0 -18
  714. package/dist/markers/HoverMarker.svelte +0 -212
  715. package/dist/markers/LineMarker.svelte +0 -19
  716. package/dist/markers/LinkMarker.svelte +0 -42
  717. package/dist/markers/PeakMarker.svelte +0 -80
  718. package/dist/markers/PeakMarker.svelte.d.ts +0 -13
  719. package/dist/markers/RuleMarker.svelte +0 -24
  720. package/dist/markers/SphereMarker.svelte +0 -15
  721. package/dist/markers/TextMarker.svelte +0 -62
  722. package/dist/markers/VectorMarker.svelte +0 -20
  723. package/dist/plots/bar/ValueLabels.svelte +0 -149
  724. package/dist/plots/bar/ValueLabels.svelte.d.ts +0 -58
  725. package/dist/plots/bar/buildBarMarkers.d.ts +0 -27
  726. package/dist/plots/bar/buildBarMarkers.js +0 -151
  727. package/dist/plots/bar/hoverPoints.d.ts +0 -15
  728. package/dist/plots/bar/hoverPoints.js +0 -37
  729. package/dist/plots/bar/layout.svelte.d.ts +0 -42
  730. package/dist/plots/bar/layout.svelte.js +0 -182
  731. package/dist/plots/geo/buildGeoMarkers.d.ts +0 -33
  732. package/dist/plots/geo/buildGeoMarkers.js +0 -47
  733. package/dist/plots/heatmap/ValueLabels.svelte +0 -56
  734. package/dist/plots/heatmap/buildCellMarkers.d.ts +0 -21
  735. package/dist/plots/heatmap/buildCellMarkers.js +0 -25
  736. package/dist/plots/line/ValueLabels.svelte +0 -269
  737. package/dist/plots/line/ValueLabels.svelte.d.ts +0 -52
  738. package/dist/plots/line/buildGapMarkers.d.ts +0 -28
  739. package/dist/plots/line/buildGapMarkers.js +0 -74
  740. package/dist/plots/line/buildLineMarkers.d.ts +0 -16
  741. package/dist/plots/line/buildLineMarkers.js +0 -56
  742. package/dist/plots/line/valueLabelMargin.d.ts +0 -19
  743. package/dist/plots/line/valueLabelMargin.js +0 -65
  744. package/dist/plots/pyramid/ValueLabels.svelte +0 -139
  745. package/dist/plots/pyramid/ValueLabels.svelte.d.ts +0 -56
  746. package/dist/plots/pyramid/buildPyramidBarMarkers.d.ts +0 -26
  747. package/dist/plots/pyramid/buildPyramidBarMarkers.js +0 -72
  748. package/dist/plots/scatter/ValueLabels.svelte +0 -163
  749. package/dist/plots/scatter/ValueLabels.svelte.d.ts +0 -52
  750. package/dist/plots/scatter/buildScatterMarkers.d.ts +0 -12
  751. package/dist/plots/scatter/buildScatterMarkers.js +0 -36
  752. package/dist/plots/scatter/resolveRadiusPaddedDomain.d.ts +0 -10
  753. package/dist/plots/scatter/resolveRadiusPaddedDomain.js +0 -23
  754. package/dist/plots/utils/categoricalAxisMargin.d.ts +0 -14
  755. package/dist/plots/utils/categoricalAxisMargin.js +0 -20
  756. package/dist/plots/utils/declutter.d.ts +0 -120
  757. package/dist/plots/utils/declutter.js +0 -240
  758. package/dist/plots/utils/labelOverflow.svelte.d.ts +0 -107
  759. package/dist/plots/utils/labelOverflow.svelte.js +0 -257
  760. package/dist/plots/utils/legendDisabled.d.ts +0 -27
  761. package/dist/plots/utils/legendDisabled.js +0 -68
  762. package/dist/plots/utils/valueLabelMargin.d.ts +0 -67
  763. package/dist/plots/utils/valueLabelMargin.js +0 -60
  764. package/dist/types/charts/common.d.ts +0 -22
  765. package/dist/types/charts/props.d.ts +0 -50
  766. package/dist/types/markers/base.d.ts +0 -45
  767. package/dist/types/markers/line.d.ts +0 -34
  768. package/dist/types/markers/props.d.ts +0 -11
  769. package/dist/types/plots/data/scatter.d.ts +0 -13
  770. package/dist/utils/color.js +0 -141
  771. package/dist/utils/delta.d.ts +0 -12
  772. package/dist/utils/delta.js +0 -69
  773. package/dist/utils/edgeAwareAnchor.d.ts +0 -34
  774. package/dist/utils/edgeAwareAnchor.js +0 -60
  775. package/dist/utils/interpolate.d.ts +0 -31
  776. package/dist/utils/interpolate.js +0 -71
  777. /package/dist/types/{charts/common.js → layout/box.js} +0 -0
  778. /package/dist/types/{charts/interpolate.js → layout/composer.js} +0 -0
  779. /package/dist/types/{charts/props.js → layout/figure.js} +0 -0
  780. /package/dist/types/{markers/base.js → layout/grid.js} +0 -0
  781. /package/dist/types/{markers/line.js → layout/hover.js} +0 -0
  782. /package/dist/types/{markers/props.js → layout/mapping.js} +0 -0
  783. /package/dist/types/{plots/data/scatter.js → layout/plot.js} +0 -0
  784. /package/dist/types/{viewport.js → layout/statistics/bollinger.js} +0 -0
  785. /package/dist/types/{charts/interpolate.d.ts → misc/easing.d.ts} +0 -0
  786. /package/dist/types/{viewport.d.ts → misc/viewport.d.ts} +0 -0
@@ -0,0 +1,128 @@
1
+ import { SERIES_KEY, TransformsPhase } from '../../phases/transforms/TransformsPhase';
2
+ import { ValueLabels } from '../../layout/styles/ValueLabels';
3
+ /**
4
+ * ScatterPlot's `styles.values` as one `'text'` marker over the same
5
+ * processed rows its dots draw, each labelled with its own `y` value. A label
6
+ * sits beside its point and flips to the other side where its text would
7
+ * cross the plot's edge (`edgeAware`).
8
+ */
9
+ export function buildValueLabels(labels, state, ctx) {
10
+ const { processedData } = state;
11
+ if (!processedData?.data.length)
12
+ return [];
13
+ const { font, format } = labels;
14
+ const position = TransformsPhase.processedPosition(processedData);
15
+ const nameOf = (d) => String(d[SERIES_KEY]);
16
+ const valueOf = ValueLabels.valueOf(state);
17
+ return [
18
+ {
19
+ type: 'text',
20
+ data: processedData.data,
21
+ x: position.x,
22
+ y: position.y,
23
+ text: (d) => format(Number(valueOf(d)), nameOf(d)),
24
+ styles: {
25
+ ...font,
26
+ fill: font?.fill ?? ctx.cfg.axis.color,
27
+ fontSize: font?.fontSize ?? 11,
28
+ fontWeight: font?.fontWeight ?? 500,
29
+ dx: font?.dx ?? 8,
30
+ dy: font?.dy ?? 0,
31
+ textAnchor: labels.textAnchor ?? 'start',
32
+ lineAnchor: font?.lineAnchor ?? 'middle'
33
+ },
34
+ edgeAware: true
35
+ }
36
+ ];
37
+ }
38
+ /**
39
+ * ScatterPlot's "markers" phase: one `'dot'` marker per visual segment of the
40
+ * rows the "transforms" phase left, in their own order, so a reordering
41
+ * transform decides which dots paint on top - prepended onto whatever the
42
+ * "statistics" phase already put in `state.markers` - and its value labels on
43
+ * top of everything.
44
+ */
45
+ export function buildMarks(state, ctx) {
46
+ const { channels, colorForSeries, scales, flat } = state;
47
+ const { cfg, interaction } = ctx;
48
+ const r = channels.r;
49
+ const rFn = r === undefined || typeof r === 'number' ? r : r.accessor;
50
+ const opacityFn = channels.opacity?.accessor;
51
+ const symbolFn = channels.symbol?.accessor;
52
+ /**
53
+ * `color`/`grouping` splits `flat` into one series per category, so each
54
+ * marker call below only ever sees one series' own rows - computing a
55
+ * channel's domain from just that slice would collapse a categorical
56
+ * domain to a single value (every row in a series shares the same
57
+ * category by construction) and skew a continuous one to that series'
58
+ * own range. Computed once here, across every (non-disabled) series'
59
+ * combined rows, and passed down as an explicit `domain` so each
60
+ * marker's own local computation (in `DotMarker.svelte`) is overridden
61
+ * instead of silently re-deriving a wrong, per-series one.
62
+ */
63
+ function globalValuesFor(fn) {
64
+ if (!fn || !flat?.length)
65
+ return [];
66
+ return flat.map((d) => fn(d)).filter((v) => v != null);
67
+ }
68
+ function globalOpacityDomain() {
69
+ const vals = globalValuesFor(opacityFn);
70
+ if (!vals.length)
71
+ return undefined;
72
+ const allNumeric = vals.every((v) => Number.isFinite(Number(v)));
73
+ return allNumeric
74
+ ? [Math.min(...vals.map(Number)), Math.max(...vals.map(Number))]
75
+ : [...new Set(vals.map(String))];
76
+ }
77
+ function globalSymbolDomain() {
78
+ const vals = globalValuesFor(symbolFn);
79
+ return vals.length ? [...new Set(vals.map(String))] : undefined;
80
+ }
81
+ const channelScales = opacityFn || symbolFn
82
+ ? {
83
+ opacity: opacityFn
84
+ ? { ...scales.opacity, domain: scales.opacity?.domain ?? globalOpacityDomain() }
85
+ : undefined,
86
+ symbol: symbolFn
87
+ ? { ...scales.symbol, domain: scales.symbol?.domain ?? globalSymbolDomain() }
88
+ : undefined
89
+ }
90
+ : undefined;
91
+ const markers = [];
92
+ TransformsPhase.buildProcessedRuns(state).forEach((group) => {
93
+ const defaultColor = colorForSeries(group.series.name);
94
+ const disabledDots = interaction?.dotsFor(group.series.name);
95
+ for (const seg of group.visualSegments) {
96
+ const dotStyle = seg.styles;
97
+ markers.push({
98
+ type: 'dot',
99
+ data: seg.data,
100
+ // Forwarded raw (a field key or function, whatever `series.x`/`.y`
101
+ // is) rather than pre-resolved into a closure - `DotMarker.svelte`
102
+ // and svelteplot's own `resolve()` already handle a field-key
103
+ // string per row, and only a literal string (not a function)
104
+ // lets svelteplot's axis-title auto-inference see the field name.
105
+ // `keyof TData` is always a real string key in practice (every
106
+ // row is a plain field-keyed record), just not provably so to
107
+ // TypeScript here.
108
+ x: group.series.x,
109
+ y: group.series.y,
110
+ r: rFn,
111
+ opacity: opacityFn,
112
+ symbol: symbolFn,
113
+ scales: channelScales,
114
+ styles: {
115
+ dotRadius: disabledDots?.dotRadius ?? dotStyle.dotRadius ?? cfg.scatter.dotRadius,
116
+ dotFill: disabledDots?.dotFill ?? dotStyle.dotFill ?? defaultColor,
117
+ dotSymbol: disabledDots?.dotSymbol ?? dotStyle.dotSymbol,
118
+ dotStroke: disabledDots?.dotStroke ?? dotStyle.dotStroke,
119
+ dotStrokeWidth: disabledDots?.dotStrokeWidth ?? dotStyle.dotStrokeWidth,
120
+ dotFillOpacity: disabledDots?.dotFillOpacity ?? dotStyle.dotFillOpacity,
121
+ dotStrokeOpacity: disabledDots?.dotStrokeOpacity ?? dotStyle.dotStrokeOpacity,
122
+ dotStrokeDasharray: disabledDots?.dotStrokeDasharray ?? dotStyle.dotStrokeDasharray
123
+ }
124
+ });
125
+ }
126
+ });
127
+ return markers;
128
+ }
@@ -0,0 +1,9 @@
1
+ /** The name a channel reads under on a legend, taken from the function that computes it. */
2
+ export declare class ChannelName {
3
+ /**
4
+ * `channel`'s own name, when it is a function with one worth showing: not
5
+ * anonymous, and not the name of the property it was assigned to (`color`
6
+ * for a `color: (d) => ...`), which says nothing a legend doesn't.
7
+ */
8
+ static of(channel: unknown, property: string): string | undefined;
9
+ }
@@ -0,0 +1,14 @@
1
+ /** The name a channel reads under on a legend, taken from the function that computes it. */
2
+ export class ChannelName {
3
+ /**
4
+ * `channel`'s own name, when it is a function with one worth showing: not
5
+ * anonymous, and not the name of the property it was assigned to (`color`
6
+ * for a `color: (d) => ...`), which says nothing a legend doesn't.
7
+ */
8
+ static of(channel, property) {
9
+ if (typeof channel !== 'function')
10
+ return undefined;
11
+ const name = channel.name;
12
+ return name && name !== property && name !== 'anonymous' ? name : undefined;
13
+ }
14
+ }
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * Converts a field key or a function into a data accessor function.
3
- * Svelteplot marks expect `(d: T) => value` — this bridges the
3
+ * Svelteplot marks expect `(d: T) => value` - this bridges the
4
4
  * shorthand key notation used in series definitions.
5
5
  */
6
6
  export declare function resolveAccessor<T extends Record<string, unknown>>(field: keyof T | ((d: T) => any)): (d: T) => any;
@@ -1,10 +1,12 @@
1
1
  /**
2
2
  * Converts a field key or a function into a data accessor function.
3
- * Svelteplot marks expect `(d: T) => value` — this bridges the
3
+ * Svelteplot marks expect `(d: T) => value` - this bridges the
4
4
  * shorthand key notation used in series definitions.
5
5
  */
6
6
  export function resolveAccessor(
7
7
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
8
- field) {
8
+ field
9
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
10
+ ) {
9
11
  return typeof field === 'function' ? field : (d) => d[field];
10
12
  }
@@ -1,20 +1,16 @@
1
1
  import type { Series } from '../../types/plots/data/common';
2
- import type { GapZonesConfig, GapZoneConfig } from '../../types/plots/gaps';
2
+ import type { DiscreteGapFill, GapPoint, GapZonesConfig, GapZoneConfig } from '../../types/plots/gaps';
3
3
  import type { AreaStyle } from '../../types/plots/styling';
4
+ import type { AxisChannelName } from '../../types/layout/mapping';
4
5
  /**
5
6
  * Resolves one series' zone config out of `LinePlot`'s full `gaps` prop: a
6
7
  * named entry (keyed by the series' own `name`) applies only to that
7
8
  * series; `'default'` fills in whichever zone the named entry itself leaves
8
9
  * unset. Unlike `segments`' own specific/default resolution (which
9
- * concatenates two rule lists), this merges at zone granularity — there's
10
+ * concatenates two rule lists), this merges at zone granularity - there's
10
11
  * no list to concatenate, just three independent slots.
11
12
  */
12
- export declare function resolveGapsForSeries<TStyle>(gaps: Record<string, GapZonesConfig<TStyle>>, seriesName: string): GapZonesConfig<TStyle>;
13
- /** A point sampled along a gap-fill bridge, already resolved to plot data-space numbers. */
14
- export type GapPoint = {
15
- x: number;
16
- y: number;
17
- };
13
+ export declare function resolveGapsForSeries<TStyle>(gaps: Record<string, GapZonesConfig<TStyle>> | undefined, seriesName: string): GapZonesConfig<TStyle>;
18
14
  export type GapRun<TStyle> = {
19
15
  kind: 'start' | 'middle' | 'end';
20
16
  zone: GapZoneConfig<TStyle>;
@@ -28,25 +24,24 @@ export declare function isGapValue(v: unknown): boolean;
28
24
  * configured, builds the eased bridge points that visually fill it. Rows
29
25
  * are sorted by `x` first, so an out-of-order series is handled the same as
30
26
  * a sorted one. A series with no valid (non-missing) rows at all produces
31
- * no runs — there's nothing to bridge from or to.
27
+ * no runs - there's nothing to bridge from or to.
32
28
  */
33
29
  export declare function resolveGapRuns<T extends Record<string, unknown>, TStyle>(series: Series<T>, gaps: GapZonesConfig<TStyle>): GapRun<TStyle>[];
34
- /** One gap row's resolved fill — the interpolated value to render instead of the missing one, and which zone produced it. */
35
- export type DiscreteGapFill<TStyle> = {
36
- value: number;
37
- kind: 'start' | 'middle' | 'end';
38
- style?: TStyle;
39
- };
40
30
  /**
41
31
  * Bar/pyramid analog of `resolveGapRuns`: a category axis has no continuous
42
32
  * bridge to sample, so this returns one interpolated value per *individual*
43
33
  * gap row instead. Runs are detected by `series.data`'s own array order
44
- * (not a numeric `x` sort like `resolveGapRuns` — a category axis is often
34
+ * (not a numeric `x` sort like `resolveGapRuns` - a category axis is often
45
35
  * nominal, so there's no meaningful numeric ordering to sort by). Keyed by
46
36
  * row object reference rather than category, since a series' `y` accessor
47
- * may be an arbitrary function — there's no general way to write the
37
+ * may be an arbitrary function - there's no general way to write the
48
38
  * interpolated value back onto a row, so callers look it up here instead.
49
39
  */
50
- export declare function resolveDiscreteGapFills<T extends Record<string, unknown>, TStyle>(series: Series<T>, gaps: GapZonesConfig<TStyle>): Map<T, DiscreteGapFill<TStyle>>;
51
- /** Field-by-field style fallback for a discrete gap-fill marker — mirrors how `buildGapMarkers.ts` merges a line gap zone's style under `cfg.line.gap`. */
40
+ export declare function resolveDiscreteGapFills<T extends Record<string, unknown>, TStyle>(series: Series<T>, gaps: GapZonesConfig<TStyle>, valueAxis?: AxisChannelName): Map<T, DiscreteGapFill<TStyle>>;
41
+ /** Field-by-field style fallback for a discrete gap-fill marker - mirrors how `buildGapMarkers.ts` merges a line gap zone's style under `cfg.line.gap`. */
52
42
  export declare function resolveGapAreaStyle(zoneStyle: AreaStyle | undefined, defaultColor: string, gapDefaults: AreaStyle): AreaStyle;
43
+ /**
44
+ * Each series' gap fills, keyed by series id - the interpolated value a
45
+ * `styles.gaps` zone gives each missing row along `valueAxis`, resolved per series like `segments`.
46
+ */
47
+ export declare function buildGapFillMaps<TData extends Record<string, unknown>, TStyle>(seriesList: Series<TData>[], gaps: Record<string, GapZonesConfig<TStyle>> | undefined, valueAxis?: AxisChannelName): Map<string, Map<TData, DiscreteGapFill<TStyle>>>;
@@ -1,15 +1,16 @@
1
+ import { seriesIdOf } from '../../utils/grouping';
1
2
  import { resolveAccessor } from './accessors';
2
- import { resolveEasing } from '../../utils/interpolate';
3
+ import { Interpolation } from '../../utils/Interpolation';
3
4
  const DEFAULT_KEY = 'default';
4
5
  /**
5
6
  * Resolves one series' zone config out of `LinePlot`'s full `gaps` prop: a
6
7
  * named entry (keyed by the series' own `name`) applies only to that
7
8
  * series; `'default'` fills in whichever zone the named entry itself leaves
8
9
  * unset. Unlike `segments`' own specific/default resolution (which
9
- * concatenates two rule lists), this merges at zone granularity — there's
10
+ * concatenates two rule lists), this merges at zone granularity - there's
10
11
  * no list to concatenate, just three independent slots.
11
12
  */
12
- export function resolveGapsForSeries(gaps, seriesName) {
13
+ export function resolveGapsForSeries(gaps = {}, seriesName) {
13
14
  const specific = gaps[seriesName];
14
15
  const defaults = gaps[DEFAULT_KEY];
15
16
  if (!specific)
@@ -19,7 +20,7 @@ export function resolveGapsForSeries(gaps, seriesName) {
19
20
  return {
20
21
  start: specific.start ?? defaults.start,
21
22
  middle: specific.middle ?? defaults.middle,
22
- end: specific.end ?? defaults.end,
23
+ end: specific.end ?? defaults.end
23
24
  };
24
25
  }
25
26
  const BRIDGE_STEPS = 24;
@@ -29,7 +30,7 @@ export function isGapValue(v) {
29
30
  }
30
31
  /** Samples `BRIDGE_STEPS + 1` points between two endpoints, x moving linearly and y eased by the zone's `interpolate`. */
31
32
  function buildBridge(from, to, zone) {
32
- const ease = resolveEasing(zone.interpolate);
33
+ const ease = Interpolation.buildEasing(zone.interpolate);
33
34
  const points = [];
34
35
  for (let i = 0; i <= BRIDGE_STEPS; i++) {
35
36
  const t = i / BRIDGE_STEPS;
@@ -43,10 +44,12 @@ function buildBridge(from, to, zone) {
43
44
  * configured, builds the eased bridge points that visually fill it. Rows
44
45
  * are sorted by `x` first, so an out-of-order series is handled the same as
45
46
  * a sorted one. A series with no valid (non-missing) rows at all produces
46
- * no runs — there's nothing to bridge from or to.
47
+ * no runs - there's nothing to bridge from or to.
47
48
  */
48
49
  export function resolveGapRuns(series, gaps) {
49
- if (!gaps.start && !gaps.middle && !gaps.end)
50
+ if ((!gaps.start && !gaps.middle && !gaps.end) ||
51
+ series.x === undefined ||
52
+ series.y === undefined)
50
53
  return [];
51
54
  const xFn = resolveAccessor(series.x);
52
55
  const yFn = resolveAccessor(series.y);
@@ -63,7 +66,10 @@ export function resolveGapRuns(series, gaps) {
63
66
  const firstValid = validIdx[0];
64
67
  if (firstValid > 0 && gaps.start) {
65
68
  const to = pt(sorted[firstValid]);
66
- const from = { x: Number(gaps.start.x), y: gaps.start.y != null ? Number(gaps.start.y) : to.y };
69
+ const from = {
70
+ x: Number(gaps.start.x),
71
+ y: gaps.start.y != null ? Number(gaps.start.y) : to.y
72
+ };
67
73
  runs.push({ kind: 'start', zone: gaps.start, points: buildBridge(from, to, gaps.start) });
68
74
  }
69
75
  if (gaps.middle) {
@@ -74,7 +80,7 @@ export function resolveGapRuns(series, gaps) {
74
80
  runs.push({
75
81
  kind: 'middle',
76
82
  zone: gaps.middle,
77
- points: buildBridge(pt(sorted[a]), pt(sorted[b]), gaps.middle),
83
+ points: buildBridge(pt(sorted[a]), pt(sorted[b]), gaps.middle)
78
84
  });
79
85
  }
80
86
  }
@@ -82,7 +88,10 @@ export function resolveGapRuns(series, gaps) {
82
88
  const lastValid = validIdx[validIdx.length - 1];
83
89
  if (lastValid < sorted.length - 1 && gaps.end) {
84
90
  const from = pt(sorted[lastValid]);
85
- const to = { x: Number(gaps.end.x), y: gaps.end.y != null ? Number(gaps.end.y) : from.y };
91
+ const to = {
92
+ x: Number(gaps.end.x),
93
+ y: gaps.end.y != null ? Number(gaps.end.y) : from.y
94
+ };
86
95
  runs.push({ kind: 'end', zone: gaps.end, points: buildBridge(from, to, gaps.end) });
87
96
  }
88
97
  return runs;
@@ -91,17 +100,18 @@ export function resolveGapRuns(series, gaps) {
91
100
  * Bar/pyramid analog of `resolveGapRuns`: a category axis has no continuous
92
101
  * bridge to sample, so this returns one interpolated value per *individual*
93
102
  * gap row instead. Runs are detected by `series.data`'s own array order
94
- * (not a numeric `x` sort like `resolveGapRuns` — a category axis is often
103
+ * (not a numeric `x` sort like `resolveGapRuns` - a category axis is often
95
104
  * nominal, so there's no meaningful numeric ordering to sort by). Keyed by
96
105
  * row object reference rather than category, since a series' `y` accessor
97
- * may be an arbitrary function — there's no general way to write the
106
+ * may be an arbitrary function - there's no general way to write the
98
107
  * interpolated value back onto a row, so callers look it up here instead.
99
108
  */
100
- export function resolveDiscreteGapFills(series, gaps) {
109
+ export function resolveDiscreteGapFills(series, gaps, valueAxis = 'y') {
101
110
  const result = new Map();
102
- if (!gaps.start && !gaps.middle && !gaps.end)
111
+ const accessor = series[valueAxis];
112
+ if ((!gaps.start && !gaps.middle && !gaps.end) || accessor === undefined)
103
113
  return result;
104
- const yFn = resolveAccessor(series.y);
114
+ const yFn = resolveAccessor(accessor);
105
115
  const rows = series.data;
106
116
  const valueAt = (i) => Number(yFn(rows[i]));
107
117
  const validIdx = rows.reduce((acc, row, i) => {
@@ -112,7 +122,7 @@ export function resolveDiscreteGapFills(series, gaps) {
112
122
  if (validIdx.length === 0)
113
123
  return result;
114
124
  function fillRun(indices, from, to, zone, kind) {
115
- const ease = resolveEasing(zone.interpolate);
125
+ const ease = Interpolation.buildEasing(zone.interpolate);
116
126
  const span = indices.length + 1;
117
127
  indices.forEach((idx, i) => {
118
128
  const t = (i + 1) / span;
@@ -142,7 +152,7 @@ export function resolveDiscreteGapFills(series, gaps) {
142
152
  }
143
153
  return result;
144
154
  }
145
- /** Field-by-field style fallback for a discrete gap-fill marker — mirrors how `buildGapMarkers.ts` merges a line gap zone's style under `cfg.line.gap`. */
155
+ /** Field-by-field style fallback for a discrete gap-fill marker - mirrors how `buildGapMarkers.ts` merges a line gap zone's style under `cfg.line.gap`. */
146
156
  export function resolveGapAreaStyle(zoneStyle, defaultColor, gapDefaults) {
147
157
  return {
148
158
  fill: zoneStyle?.fill ?? gapDefaults.fill ?? defaultColor,
@@ -151,6 +161,16 @@ export function resolveGapAreaStyle(zoneStyle, defaultColor, gapDefaults) {
151
161
  strokeWidth: zoneStyle?.strokeWidth ?? gapDefaults.strokeWidth,
152
162
  strokeOpacity: zoneStyle?.strokeOpacity ?? gapDefaults.strokeOpacity,
153
163
  strokeDasharray: zoneStyle?.strokeDasharray ?? gapDefaults.strokeDasharray,
154
- borderRadius: zoneStyle?.borderRadius ?? gapDefaults.borderRadius,
164
+ borderRadius: zoneStyle?.borderRadius ?? gapDefaults.borderRadius
155
165
  };
156
166
  }
167
+ /**
168
+ * Each series' gap fills, keyed by series id - the interpolated value a
169
+ * `styles.gaps` zone gives each missing row along `valueAxis`, resolved per series like `segments`.
170
+ */
171
+ export function buildGapFillMaps(seriesList, gaps, valueAxis = 'y') {
172
+ return new Map(seriesList.map((s) => [
173
+ seriesIdOf(s),
174
+ resolveDiscreteGapFills(s, resolveGapsForSeries(gaps, s.name), valueAxis)
175
+ ]));
176
+ }
@@ -1,9 +1,9 @@
1
1
  import type { GeoFeature } from '../../types/plots/data/geo';
2
2
  /**
3
- * Bounding-box center of a geometry's flattened coordinates — a cheap
3
+ * Bounding-box center of a geometry's flattened coordinates - a cheap
4
4
  * approximation used for default label placement, not a true
5
5
  * geographic/area centroid (no polygon-hole or geodesic-area weighting).
6
- * For hover-matching specifically, see `geometryPartCentroids` instead —
6
+ * For hover-matching specifically, see `geometryPartCentroids` instead -
7
7
  * this single combined point can land far from every actual part of a
8
8
  * multi-part geometry whose pieces are geographically spread out.
9
9
  */
@@ -20,10 +20,10 @@ export declare function splitGeometryParts(geometry: GeoJSON.Geometry): GeoJSON.
20
20
  /**
21
21
  * Like `geometryCentroid`, but returns one point per disjoint part instead
22
22
  * of a single bounding-box center across all of them. A `MultiPolygon`
23
- * whose parts are geographically far apart — e.g. Argentina's "Tierra del
23
+ * whose parts are geographically far apart - e.g. Argentina's "Tierra del
24
24
  * Fuego, Antártida e Islas del Atlántico Sur" province, whose `MultiPolygon`
25
25
  * spans the mainland island, the Antarctic sector, and the South Atlantic
26
- * islands in one feature — would otherwise get a single hover point
26
+ * islands in one feature - would otherwise get a single hover point
27
27
  * stranded somewhere between all of them, matching hovers over *none* of
28
28
  * the actually-rendered shapes. Multiple points attributed to the same
29
29
  * feature is fine for hover-matching (nearest point wins, whichever part
@@ -34,7 +34,7 @@ export declare function geometryPartCentroids(geometry: GeoJSON.Geometry): [numb
34
34
  /**
35
35
  * Keeps or drops each disjoint part of a geometry (see `splitGeometryParts`)
36
36
  * based on a per-part predicate, reassembling a geometry of the same type
37
- * from whatever survives — `null` if nothing does. Used to let a single
37
+ * from whatever survives - `null` if nothing does. Used to let a single
38
38
  * feature's geometry be split between the main map and an `inset` marker
39
39
  * (see `GeoDataProps.excludeParts`/`GeoInsetMarkerConfig.featurePartsFilter`)
40
40
  * without preprocessing the source data: e.g. a province whose `MultiPolygon`
@@ -48,7 +48,7 @@ export declare function filterGeometryParts(geometry: GeoJSON.Geometry, keep: (p
48
48
  /** Default `featureId`: `feature.id`, else `properties.id`, else `properties.name`. */
49
49
  export declare function defaultFeatureId<TProps extends Record<string, unknown>>(f: GeoFeature<TProps>): string;
50
50
  /**
51
- * `[minLon, minLat, maxLon, maxLat]` across every coordinate of a geometry —
51
+ * `[minLon, minLat, maxLon, maxLat]` across every coordinate of a geometry -
52
52
  * `null` for one with none (an empty `GeometryCollection`). Used by
53
53
  * `Plot.svelte`'s `dataLonLatBounds` to cap how far a tile layer's
54
54
  * letterboxed margin reaches (see `clampBoundsToDataPadding` in
@@ -57,14 +57,14 @@ export declare function defaultFeatureId<TProps extends Record<string, unknown>>
57
57
  export declare function geometryLonLatBounds(geometry: GeoJSON.Geometry): [number, number, number, number] | null;
58
58
  /**
59
59
  * Densifies a great-circle arc between two lon/lat points into `steps + 1`
60
- * points via spherical linear interpolation (slerp) — used to draw a `link`
60
+ * points via spherical linear interpolation (slerp) - used to draw a `link`
61
61
  * marker's geodesic curve through the `Geo` mark (see `Plot.svelte`).
62
62
  *
63
63
  * Not delegated to svelteplot's own `Link` mark: its 0.14.2 projection
64
64
  * integration (`Mark.svelte`'s paired-channel handling) reads a single
65
65
  * `row.x`/`row.y` pair regardless of channel suffix, so a mark bound to
66
66
  * `x1`/`y1`/`x2`/`y2` (never plain `x`/`y`) resolves every point as invalid
67
- * whenever the plot has an active `projection` scale — which GeoPlot always
67
+ * whenever the plot has an active `projection` scale - which GeoPlot always
68
68
  * does. `Geo` has no such limitation (geo marks are explicitly excluded from
69
69
  * that code path), so a manually-interpolated `LineString` feature sidesteps
70
70
  * the bug entirely while still producing the same geodesic visual.
@@ -49,10 +49,10 @@ function boundsCenter(coords) {
49
49
  return [(minX + maxX) / 2, (minY + maxY) / 2];
50
50
  }
51
51
  /**
52
- * Bounding-box center of a geometry's flattened coordinates — a cheap
52
+ * Bounding-box center of a geometry's flattened coordinates - a cheap
53
53
  * approximation used for default label placement, not a true
54
54
  * geographic/area centroid (no polygon-hole or geodesic-area weighting).
55
- * For hover-matching specifically, see `geometryPartCentroids` instead —
55
+ * For hover-matching specifically, see `geometryPartCentroids` instead -
56
56
  * this single combined point can land far from every actual part of a
57
57
  * multi-part geometry whose pieces are geographically spread out.
58
58
  */
@@ -84,10 +84,10 @@ export function splitGeometryParts(geometry) {
84
84
  /**
85
85
  * Like `geometryCentroid`, but returns one point per disjoint part instead
86
86
  * of a single bounding-box center across all of them. A `MultiPolygon`
87
- * whose parts are geographically far apart — e.g. Argentina's "Tierra del
87
+ * whose parts are geographically far apart - e.g. Argentina's "Tierra del
88
88
  * Fuego, Antártida e Islas del Atlántico Sur" province, whose `MultiPolygon`
89
89
  * spans the mainland island, the Antarctic sector, and the South Atlantic
90
- * islands in one feature — would otherwise get a single hover point
90
+ * islands in one feature - would otherwise get a single hover point
91
91
  * stranded somewhere between all of them, matching hovers over *none* of
92
92
  * the actually-rendered shapes. Multiple points attributed to the same
93
93
  * feature is fine for hover-matching (nearest point wins, whichever part
@@ -100,7 +100,7 @@ export function geometryPartCentroids(geometry) {
100
100
  /**
101
101
  * Keeps or drops each disjoint part of a geometry (see `splitGeometryParts`)
102
102
  * based on a per-part predicate, reassembling a geometry of the same type
103
- * from whatever survives — `null` if nothing does. Used to let a single
103
+ * from whatever survives - `null` if nothing does. Used to let a single
104
104
  * feature's geometry be split between the main map and an `inset` marker
105
105
  * (see `GeoDataProps.excludeParts`/`GeoInsetMarkerConfig.featurePartsFilter`)
106
106
  * without preprocessing the source data: e.g. a province whose `MultiPolygon`
@@ -118,11 +118,14 @@ export function filterGeometryParts(geometry, keep) {
118
118
  return keptParts[0];
119
119
  switch (geometry.type) {
120
120
  case 'MultiPolygon':
121
- return { type: 'MultiPolygon', coordinates: keptParts.map((part) => part.coordinates) };
121
+ return {
122
+ type: 'MultiPolygon',
123
+ coordinates: keptParts.map((part) => part.coordinates)
124
+ };
122
125
  case 'MultiLineString':
123
126
  return {
124
127
  type: 'MultiLineString',
125
- coordinates: keptParts.map((part) => part.coordinates),
128
+ coordinates: keptParts.map((part) => part.coordinates)
126
129
  };
127
130
  case 'GeometryCollection':
128
131
  return { type: 'GeometryCollection', geometries: keptParts };
@@ -136,7 +139,7 @@ export function defaultFeatureId(f) {
136
139
  return String(f.id ?? props?.id ?? props?.name ?? '');
137
140
  }
138
141
  /**
139
- * `[minLon, minLat, maxLon, maxLat]` across every coordinate of a geometry —
142
+ * `[minLon, minLat, maxLon, maxLat]` across every coordinate of a geometry -
140
143
  * `null` for one with none (an empty `GeometryCollection`). Used by
141
144
  * `Plot.svelte`'s `dataLonLatBounds` to cap how far a tile layer's
142
145
  * letterboxed margin reaches (see `clampBoundsToDataPadding` in
@@ -171,14 +174,14 @@ function toDeg(rad) {
171
174
  }
172
175
  /**
173
176
  * Densifies a great-circle arc between two lon/lat points into `steps + 1`
174
- * points via spherical linear interpolation (slerp) — used to draw a `link`
177
+ * points via spherical linear interpolation (slerp) - used to draw a `link`
175
178
  * marker's geodesic curve through the `Geo` mark (see `Plot.svelte`).
176
179
  *
177
180
  * Not delegated to svelteplot's own `Link` mark: its 0.14.2 projection
178
181
  * integration (`Mark.svelte`'s paired-channel handling) reads a single
179
182
  * `row.x`/`row.y` pair regardless of channel suffix, so a mark bound to
180
183
  * `x1`/`y1`/`x2`/`y2` (never plain `x`/`y`) resolves every point as invalid
181
- * whenever the plot has an active `projection` scale — which GeoPlot always
184
+ * whenever the plot has an active `projection` scale - which GeoPlot always
182
185
  * does. `Geo` has no such limitation (geo marks are explicitly excluded from
183
186
  * that code path), so a manually-interpolated `LineString` feature sidesteps
184
187
  * the bug entirely while still producing the same geodesic visual.
@@ -193,11 +196,12 @@ export function greatCircleInterpolate(lon1, lat1, lon2, lat2, steps = 64) {
193
196
  const sinPhi2 = Math.sin(phi2);
194
197
  const cosPhi2 = Math.cos(phi2);
195
198
  const d = 2 *
196
- Math.asin(Math.sqrt(Math.sin((phi2 - phi1) / 2) ** 2 + cosPhi1 * cosPhi2 * Math.sin((lambda2 - lambda1) / 2) ** 2));
199
+ Math.asin(Math.sqrt(Math.sin((phi2 - phi1) / 2) ** 2 +
200
+ cosPhi1 * cosPhi2 * Math.sin((lambda2 - lambda1) / 2) ** 2));
197
201
  if (!Number.isFinite(d) || d === 0) {
198
202
  return [
199
203
  [lon1, lat1],
200
- [lon2, lat2],
204
+ [lon2, lat2]
201
205
  ];
202
206
  }
203
207
  const points = [];
@@ -1,14 +1,29 @@
1
+ import type { ChannelScalesConfig } from '../../types/layout/scales';
1
2
  import type { Segment } from '../../types/plots/segments/config';
2
3
  import type { SegmentsConfig } from '../../types/plots/props';
3
- /** Feature-specific segments listed after 'default' so they override it on merge (see `resolveFeatureStyle`). */
4
- export declare function resolveSegmentsForFeature<TStyle>(segments: SegmentsConfig<TStyle>, featureId: string): Segment<TStyle>[];
5
4
  /**
6
- * A geo feature is atomic — `Segment.areas` (x/y range restriction) doesn't
5
+ * Feature-specific segments listed after 'default' so they override it on
6
+ * merge (see `resolveFeatureStyle`). When the feature has a resolved
7
+ * `grouping` bucket, that bucket's own entries are listed in between -
8
+ * `default` < grouping bucket < feature-specific, most specific last.
9
+ */
10
+ export declare function resolveSegmentsForFeature<TStyle>(segments: SegmentsConfig<TStyle>, featureId: string, groupingValue?: string): Segment<TStyle>[];
11
+ /**
12
+ * A geo feature is atomic - `Segment.areas` (x/y range restriction) doesn't
7
13
  * apply, so every entry under a key is treated as a flat style patch applied
8
- * in order: `'default'` entries apply first, feature-specific entries
9
- * override. This intentionally does NOT reuse `segments.ts`'s
10
- * `validateSegments` — its "only the first catch-all wins" warning assumes
11
- * area-based semantics that don't hold here, since every geo segment entry
12
- * merges rather than being dropped.
14
+ * in order: `'default'` entries apply first, then the grouping bucket's (if
15
+ * any), then feature-specific entries. This intentionally does NOT reuse
16
+ * `segments.ts`'s `validateSegments` - its "only the first catch-all wins"
17
+ * warning assumes area-based semantics that don't hold here, since every geo
18
+ * segment entry merges rather than being dropped.
19
+ */
20
+ export declare function resolveFeatureStyle<TStyle extends object>(segments: SegmentsConfig<TStyle>, featureId: string, groupingValue?: string): TStyle;
21
+ /**
22
+ * A feature's own effective `scales` override, if any of its matching
23
+ * segments (`default`, its grouping bucket, or itself) set one - the last
24
+ * (most specific) entry that defines `scales` wins outright, unlike
25
+ * `resolveFeatureStyle`'s field-by-field merge, since a ramp config isn't
26
+ * sensibly mergeable key-by-key (a `domain` from one entry and a `scheme`
27
+ * from another wouldn't be a coherent scale).
13
28
  */
14
- export declare function resolveFeatureStyle<TStyle extends object>(segments: SegmentsConfig<TStyle>, featureId: string): TStyle;
29
+ export declare function resolveFeatureScales<TStyle>(segments: SegmentsConfig<TStyle>, featureId: string, groupingValue?: string): ChannelScalesConfig | undefined;
@@ -1,17 +1,37 @@
1
1
  const DEFAULT_KEY = 'default';
2
- /** Feature-specific segments listed after 'default' so they override it on merge (see `resolveFeatureStyle`). */
3
- export function resolveSegmentsForFeature(segments, featureId) {
4
- return [...(segments[DEFAULT_KEY] ?? []), ...(segments[featureId] ?? [])];
2
+ /**
3
+ * Feature-specific segments listed after 'default' so they override it on
4
+ * merge (see `resolveFeatureStyle`). When the feature has a resolved
5
+ * `grouping` bucket, that bucket's own entries are listed in between -
6
+ * `default` < grouping bucket < feature-specific, most specific last.
7
+ */
8
+ export function resolveSegmentsForFeature(segments, featureId, groupingValue) {
9
+ return [
10
+ ...(segments[DEFAULT_KEY] ?? []),
11
+ ...(groupingValue ? (segments[groupingValue] ?? []) : []),
12
+ ...(segments[featureId] ?? [])
13
+ ];
5
14
  }
6
15
  /**
7
- * A geo feature is atomic — `Segment.areas` (x/y range restriction) doesn't
16
+ * A geo feature is atomic - `Segment.areas` (x/y range restriction) doesn't
8
17
  * apply, so every entry under a key is treated as a flat style patch applied
9
- * in order: `'default'` entries apply first, feature-specific entries
10
- * override. This intentionally does NOT reuse `segments.ts`'s
11
- * `validateSegments` — its "only the first catch-all wins" warning assumes
12
- * area-based semantics that don't hold here, since every geo segment entry
13
- * merges rather than being dropped.
18
+ * in order: `'default'` entries apply first, then the grouping bucket's (if
19
+ * any), then feature-specific entries. This intentionally does NOT reuse
20
+ * `segments.ts`'s `validateSegments` - its "only the first catch-all wins"
21
+ * warning assumes area-based semantics that don't hold here, since every geo
22
+ * segment entry merges rather than being dropped.
23
+ */
24
+ export function resolveFeatureStyle(segments, featureId, groupingValue) {
25
+ return resolveSegmentsForFeature(segments, featureId, groupingValue).reduce((acc, seg) => ({ ...acc, ...(seg.styles ?? {}) }), {});
26
+ }
27
+ /**
28
+ * A feature's own effective `scales` override, if any of its matching
29
+ * segments (`default`, its grouping bucket, or itself) set one - the last
30
+ * (most specific) entry that defines `scales` wins outright, unlike
31
+ * `resolveFeatureStyle`'s field-by-field merge, since a ramp config isn't
32
+ * sensibly mergeable key-by-key (a `domain` from one entry and a `scheme`
33
+ * from another wouldn't be a coherent scale).
14
34
  */
15
- export function resolveFeatureStyle(segments, featureId) {
16
- return resolveSegmentsForFeature(segments, featureId).reduce((acc, seg) => ({ ...acc, ...(seg.style ?? {}) }), {});
35
+ export function resolveFeatureScales(segments, featureId, groupingValue) {
36
+ return resolveSegmentsForFeature(segments, featureId, groupingValue).reduce((acc, seg) => seg.scales ?? acc, undefined);
17
37
  }