@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,64 @@
1
+ import { type PositionChannels, type TransformChannel } from './common';
2
+ /** Channels both stack transforms read, by svelteplot's own names. */
3
+ export type StackChannels = PositionChannels;
4
+ /** The keys of {@link StackChannels}, at runtime. */
5
+ export declare const STACK_CHANNEL_KEYS: Record<keyof PositionChannels, true>;
6
+ /** Options both stack transforms take, flat next to the channels - same names as svelteplot's. */
7
+ type StackOptions = {
8
+ /** Offset method; unset keeps svelteplot's zero baseline. */
9
+ offset?: 'none' | 'wiggle' | 'center' | 'normalize' | 'diverging' | null;
10
+ /** Series order; unset keeps the input order. */
11
+ order?: 'none' | 'appearance' | 'inside-out' | 'sum' | null;
12
+ /** Reverses the stacking order. */
13
+ reverse?: boolean;
14
+ };
15
+ /**
16
+ * `stackY` as a marker transform: its own props, flat, exactly as svelteplot's
17
+ * `stackY` takes them. `type` picks the transform; everything else is that
18
+ * transform's own input.
19
+ */
20
+ export type StackYTransform = {
21
+ type: 'stackY';
22
+ } & StackChannels & StackOptions;
23
+ /** `stackX` as a marker transform - see {@link StackYTransform}. */
24
+ export type StackXTransform = {
25
+ type: 'stackX';
26
+ } & StackChannels & StackOptions;
27
+ /**
28
+ * Channels the mosaic stacks read: the outer category, the inner category, and
29
+ * each cell's `value`. svelteplot reads all three straight off the rows, so
30
+ * they're field keys, not functions.
31
+ */
32
+ export type StackMosaicChannels = {
33
+ data?: Record<string, unknown>[];
34
+ x?: string;
35
+ y?: string;
36
+ value?: string;
37
+ fill?: TransformChannel;
38
+ stroke?: TransformChannel;
39
+ };
40
+ /** The keys of {@link StackMosaicChannels}, at runtime - see {@link POSITION_CHANNEL_KEYS}. */
41
+ export declare const STACK_MOSAIC_CHANNEL_KEYS: Record<keyof StackMosaicChannels, true>;
42
+ /**
43
+ * Options the mosaic stacks take. svelteplot nests them as `{ x: { percent }, y: { percent } }`,
44
+ * which would clash with the flat `x`/`y` channels, so they're flattened here.
45
+ */
46
+ type StackMosaicOptions = {
47
+ /** Puts `x` in fractions of the whole (0-1) instead of the values' own sums. */
48
+ percentX?: boolean;
49
+ /** Puts `y` in fractions of the whole (0-1) instead of the values' own sums. */
50
+ percentY?: boolean;
51
+ };
52
+ /**
53
+ * `stackMosaicX` as a marker transform: a mosaic (Marimekko) layout. Each `x`
54
+ * category gets a column as wide as its total `value`, split along `y` by its
55
+ * inner categories. Produces `x1`/`x2`/`y1`/`y2` for a `rect` marker.
56
+ */
57
+ export type StackMosaicXTransform = {
58
+ type: 'stackMosaicX';
59
+ } & StackMosaicChannels & StackMosaicOptions;
60
+ /** `stackMosaicY` - see {@link StackMosaicXTransform}, with the outer categories along `y`. */
61
+ export type StackMosaicYTransform = {
62
+ type: 'stackMosaicY';
63
+ } & StackMosaicChannels & StackMosaicOptions;
64
+ export {};
@@ -0,0 +1,12 @@
1
+ import { POSITION_CHANNEL_KEYS } from './common';
2
+ /** The keys of {@link StackChannels}, at runtime. */
3
+ export const STACK_CHANNEL_KEYS = POSITION_CHANNEL_KEYS;
4
+ /** The keys of {@link StackMosaicChannels}, at runtime - see {@link POSITION_CHANNEL_KEYS}. */
5
+ export const STACK_MOSAIC_CHANNEL_KEYS = {
6
+ data: true,
7
+ x: true,
8
+ y: true,
9
+ value: true,
10
+ fill: true,
11
+ stroke: true
12
+ };
@@ -0,0 +1,29 @@
1
+ import type { PositionChannels } from './common';
2
+ /** The reducers svelteplot's window transforms take by name. */
3
+ export type WindowReducer = 'count' | 'deviation' | 'difference' | 'first' | 'last' | 'max' | 'mean' | 'median' | 'min' | 'mode' | 'ratio' | 'sum' | 'variance';
4
+ /** Options both window transforms take, flat next to the channels - same names as svelteplot's. */
5
+ type WindowOptions = {
6
+ /** The window's size, in rows (or in `interval`s, when one is set). */
7
+ k: number;
8
+ /** What each window reduces to; defaults to `mean`. */
9
+ reduce?: WindowReducer | ((values: any[]) => unknown);
10
+ /** Where each row sits in its window; defaults to `middle`. */
11
+ anchor?: 'start' | 'middle' | 'end';
12
+ /** Leaves out a window with fewer than `k` values (or than the number given), instead of reducing what it has. */
13
+ strict?: boolean | number;
14
+ /** Measures the window along the other axis in this interval (`'day'`, `7`, …) instead of in rows. */
15
+ interval?: number | string;
16
+ };
17
+ /**
18
+ * `windowY` as a marker transform: replaces each row's `y` (and `y1`/`y2`) with
19
+ * a reduction of the `k` rows around it - a moving average by default. Runs
20
+ * per `z` group, in row order.
21
+ */
22
+ export type WindowYTransform = {
23
+ type: 'windowY';
24
+ } & PositionChannels & WindowOptions;
25
+ /** `windowX` - see {@link WindowYTransform}, on the `x` channels. */
26
+ export type WindowXTransform = {
27
+ type: 'windowX';
28
+ } & PositionChannels & WindowOptions;
29
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,12 @@
1
+ import type { LegendRange } from '../types/layout/legend';
2
+ /** The domain a continuous color ramp is drawn over. */
3
+ export declare class ContinuousDomain {
4
+ /**
5
+ * The `[min, max]` a continuous color ramp spans: the author's numeric
6
+ * `domain`, or the extent of `values` - reaching zero with `fromZero`.
7
+ * `null` when there is neither.
8
+ */
9
+ static build(authorDomain: readonly unknown[] | undefined, values: number[], fromZero?: boolean): [number, number] | null;
10
+ /** The domain a ramp is drawn over: the legend's narrowed range in `'rescale'` mode, `domain` otherwise. */
11
+ static ramp(domain: [number, number], range: Pick<LegendRange, 'mode' | 'min' | 'max'> | null | undefined): [number, number];
12
+ }
@@ -0,0 +1,19 @@
1
+ /** The domain a continuous color ramp is drawn over. */
2
+ export class ContinuousDomain {
3
+ /**
4
+ * The `[min, max]` a continuous color ramp spans: the author's numeric
5
+ * `domain`, or the extent of `values` - reaching zero with `fromZero`.
6
+ * `null` when there is neither.
7
+ */
8
+ static build(authorDomain, values, fromZero = false) {
9
+ if (authorDomain && typeof authorDomain[0] === 'number')
10
+ return authorDomain;
11
+ if (!values.length)
12
+ return null;
13
+ return [Math.min(...values, ...(fromZero ? [0] : [])), Math.max(...values)];
14
+ }
15
+ /** The domain a ramp is drawn over: the legend's narrowed range in `'rescale'` mode, `domain` otherwise. */
16
+ static ramp(domain, range) {
17
+ return range && range.mode === 'rescale' ? [range.min, range.max] : domain;
18
+ }
19
+ }
@@ -0,0 +1,26 @@
1
+ import type { EasingName, EasingFn } from '../types/misc/easing';
2
+ import type { TimeValue, TimelineInterpolation } from '../types/layout/timeline';
3
+ import type { AxisValue } from '../types/layout/mapping';
4
+ import type { Accessor } from '../types/plots/data/common';
5
+ /** Easing curves, and the tweens a timeline draws between its steps. */
6
+ export declare class Interpolation {
7
+ static readonly EASINGS: Record<EasingName, EasingFn>;
8
+ static buildEasing(easing?: EasingName | EasingFn): EasingFn;
9
+ /**
10
+ * Tweens one key-group's sorted rows at a continuous position `x`: every
11
+ * passed row plus the synthetic row between the two surrounding ones.
12
+ */
13
+ static tweenSeries<TRow>({ rows, x, getTime, getValue, create, segmentEasing }: {
14
+ rows: TRow[];
15
+ x: TimeValue;
16
+ getTime: (row: TRow) => TimeValue;
17
+ getValue: (row: TRow) => number;
18
+ create: (lower: TRow, upper: TRow, x: TimeValue, value: number) => TRow;
19
+ segmentEasing: EasingFn;
20
+ }): TRow[];
21
+ /** `TimelineConfig.interpolate` as a full {@link TimelineInterpolation}, with the plot's `value`/`key` as defaults. */
22
+ static buildTimeline<TRow extends Record<string, unknown>>(interpolate: boolean | TimelineInterpolation<TRow> | undefined, defaults: {
23
+ value: Accessor<TRow, AxisValue>;
24
+ key?: Accessor<TRow, unknown>;
25
+ }): TimelineInterpolation<TRow> | undefined;
26
+ }
@@ -0,0 +1,65 @@
1
+ /** Easing curves, and the tweens a timeline draws between its steps. */
2
+ export class Interpolation {
3
+ static EASINGS = {
4
+ linear: (t) => t,
5
+ quadIn: (t) => t * t,
6
+ quadOut: (t) => 1 - (1 - t) * (1 - t),
7
+ cubicIn: (t) => t * t * t,
8
+ cubicOut: (t) => 1 - Math.pow(1 - t, 3),
9
+ quartIn: (t) => t * t * t * t,
10
+ quartOut: (t) => 1 - Math.pow(1 - t, 4),
11
+ expoOut: (t) => (t === 1 ? 1 : 1 - Math.pow(2, -10 * t))
12
+ };
13
+ static buildEasing(easing) {
14
+ if (!easing)
15
+ return Interpolation.EASINGS.linear;
16
+ if (typeof easing === 'function')
17
+ return easing;
18
+ return Interpolation.EASINGS[easing] ?? Interpolation.EASINGS.linear;
19
+ }
20
+ /**
21
+ * Tweens one key-group's sorted rows at a continuous position `x`: every
22
+ * passed row plus the synthetic row between the two surrounding ones.
23
+ */
24
+ static tweenSeries({ rows, x, getTime, getValue, create, segmentEasing }) {
25
+ if (!rows.length)
26
+ return [];
27
+ const sorted = [...rows].sort((a, b) => Number(getTime(a)) - Number(getTime(b)));
28
+ if (x <= getTime(sorted[0]))
29
+ return [sorted[0]];
30
+ const result = [];
31
+ for (let i = 0; i < sorted.length - 1; i++) {
32
+ const d0 = sorted[i];
33
+ const d1 = sorted[i + 1];
34
+ const t0 = getTime(d0);
35
+ const t1 = getTime(d1);
36
+ if (x >= t1) {
37
+ result.push(d0);
38
+ continue;
39
+ }
40
+ if (x >= t0 && x < t1) {
41
+ const tRaw = (Number(x) - Number(t0)) / (Number(t1) - Number(t0));
42
+ const t = segmentEasing(tRaw);
43
+ const value = getValue(d0) + (getValue(d1) - getValue(d0)) * t;
44
+ result.push(d0);
45
+ result.push(create(d0, d1, x, value));
46
+ return result;
47
+ }
48
+ }
49
+ const last = sorted[sorted.length - 1];
50
+ if (x >= getTime(last))
51
+ result.push(last);
52
+ return result;
53
+ }
54
+ /** `TimelineConfig.interpolate` as a full {@link TimelineInterpolation}, with the plot's `value`/`key` as defaults. */
55
+ static buildTimeline(interpolate, defaults) {
56
+ if (!interpolate)
57
+ return undefined;
58
+ const config = interpolate === true ? {} : interpolate;
59
+ return {
60
+ ...config,
61
+ value: config.value ?? defaults.value,
62
+ key: config.key ?? defaults.key
63
+ };
64
+ }
65
+ }
@@ -1,7 +1,3 @@
1
- export declare function resolveCssColor(color: string): string;
2
- export declare function normalize(v: number, min: number, max: number): number;
3
- /** Cycles through a discrete palette by series index — the default colour for an unstyled series. */
4
- export declare function paletteColor(index: number, palette: string[]): string;
5
1
  /** WCAG contrast ratio between two colors, from 1 (no contrast) to 21 (black on white). */
6
2
  export declare function contrastRatio(colorA: string, colorB: string): number;
7
3
  /**
@@ -11,4 +7,3 @@ export declare function contrastRatio(colorA: string, colorB: string): number;
11
7
  * `background` can't be parsed.
12
8
  */
13
9
  export declare function contrastTextColor(background: string, candidates?: string[]): string;
14
- export declare function makeColorScale(min: number, max: number, colorMin: string, colorMax: string): (v: number) => string;
@@ -0,0 +1,40 @@
1
+ import { resolveCssColor, parseRgb } from './cssColor';
2
+ function relativeLuminance([r, g, b]) {
3
+ const [rs, gs, bs] = [r, g, b].map((c) => {
4
+ const s = c / 255;
5
+ return s <= 0.03928 ? s / 12.92 : Math.pow((s + 0.055) / 1.055, 2.4);
6
+ });
7
+ return 0.2126 * rs + 0.7152 * gs + 0.0722 * bs;
8
+ }
9
+ /** WCAG contrast ratio between two colors, from 1 (no contrast) to 21 (black on white). */
10
+ export function contrastRatio(colorA, colorB) {
11
+ const a = parseRgb(resolveCssColor(colorA));
12
+ const b = parseRgb(resolveCssColor(colorB));
13
+ if (!a || !b)
14
+ return 1;
15
+ const lA = relativeLuminance(a);
16
+ const lB = relativeLuminance(b);
17
+ const lighter = Math.max(lA, lB);
18
+ const darker = Math.min(lA, lB);
19
+ return (lighter + 0.05) / (darker + 0.05);
20
+ }
21
+ /**
22
+ * The `candidates` entry with the highest WCAG contrast ratio against
23
+ * `background`. Defaults to plain white/black; pass a grayscale or other
24
+ * palette to widen the choice. Falls back to the first candidate when
25
+ * `background` can't be parsed.
26
+ */
27
+ export function contrastTextColor(background, candidates = ['#ffffff', '#000000']) {
28
+ if (candidates.length === 0)
29
+ return '#000000';
30
+ let best = candidates[0];
31
+ let bestRatio = -Infinity;
32
+ for (const candidate of candidates) {
33
+ const ratio = contrastRatio(background, candidate);
34
+ if (ratio > bestRatio) {
35
+ bestRatio = ratio;
36
+ best = candidate;
37
+ }
38
+ }
39
+ return best;
40
+ }
@@ -0,0 +1,4 @@
1
+ /** Resolves a `var(--x)` reference to its computed value; any other CSS color string passes through unchanged. */
2
+ export declare function resolveCssColor(color: string): string;
3
+ /** Parses any CSS color syntax (hex, rgb(), oklch(), named colors, hsl(), ...) into an `[r, g, b]` (0-255) triple, or `null` if it can't be resolved. */
4
+ export declare function parseRgb(color: string): [number, number, number] | null;
@@ -0,0 +1,77 @@
1
+ import { isBrowser } from '../../stores/device';
2
+ /** Resolves a `var(--x)` reference to its computed value; any other CSS color string passes through unchanged. */
3
+ export function resolveCssColor(color) {
4
+ if (!isBrowser)
5
+ return color;
6
+ if (!color.startsWith('var('))
7
+ return color;
8
+ const varName = color.slice(4, -1).trim();
9
+ const value = getComputedStyle(document.documentElement).getPropertyValue(varName).trim();
10
+ return value || color;
11
+ }
12
+ function clamp01(v) {
13
+ return Math.max(0, Math.min(1, v));
14
+ }
15
+ function linearToSrgb8(c) {
16
+ const s = c <= 0.0031308 ? 12.92 * c : 1.055 * Math.pow(c, 1 / 2.4) - 0.055;
17
+ return clamp01(s) * 255;
18
+ }
19
+ /**
20
+ * Parses `oklch(L C H)` directly instead of round-tripping through the
21
+ * browser's computed style: Chromium/Firefox serialize computed oklch()
22
+ * values back as oklch() (not rgb()), so the generic browser-fallback below
23
+ * sees an unchanged string on the second pass and its infinite-loop guard
24
+ * mistakes that for a parse failure.
25
+ */
26
+ function parseOklch(color) {
27
+ const match = /^oklch\(\s*([\d.]+)(%)?\s+([\d.]+)\s+([\d.]+)/i.exec(color.trim());
28
+ if (!match)
29
+ return null;
30
+ const L = match[2] ? Number(match[1]) / 100 : Number(match[1]);
31
+ const C = Number(match[3]);
32
+ const H = (Number(match[4]) * Math.PI) / 180;
33
+ const a = C * Math.cos(H);
34
+ const b = C * Math.sin(H);
35
+ const l_ = L + 0.3963377774 * a + 0.2158037573 * b;
36
+ const m_ = L - 0.1055613458 * a - 0.0638541728 * b;
37
+ const s_ = L - 0.0894841775 * a - 1.291485548 * b;
38
+ const l = l_ ** 3;
39
+ const m = m_ ** 3;
40
+ const s = s_ ** 3;
41
+ const r = 4.0767416621 * l - 3.3077115913 * m + 0.2309699292 * s;
42
+ const g = -1.2684380046 * l + 2.6097574011 * m - 0.3413193965 * s;
43
+ const bl = -0.0041960863 * l - 0.7034186147 * m + 1.707614701 * s;
44
+ return [linearToSrgb8(r), linearToSrgb8(g), linearToSrgb8(bl)];
45
+ }
46
+ /** Parses any CSS color syntax (hex, rgb(), oklch(), named colors, hsl(), ...) into an `[r, g, b]` (0-255) triple, or `null` if it can't be resolved. */
47
+ export function parseRgb(color) {
48
+ const hex = /^#([0-9a-f]{3}|[0-9a-f]{6})$/i.exec(color.trim());
49
+ if (hex) {
50
+ const digits = hex[1].length === 3
51
+ ? hex[1]
52
+ .split('')
53
+ .map((c) => c + c)
54
+ .join('')
55
+ : hex[1];
56
+ const num = parseInt(digits, 16);
57
+ return [(num >> 16) & 255, (num >> 8) & 255, num & 255];
58
+ }
59
+ const rgb = /^rgba?\(\s*([\d.]+)\s*,\s*([\d.]+)\s*,\s*([\d.]+)/i.exec(color);
60
+ if (rgb)
61
+ return [Number(rgb[1]), Number(rgb[2]), Number(rgb[3])];
62
+ const oklch = parseOklch(color);
63
+ if (oklch)
64
+ return oklch;
65
+ // Named colors, hsl(), and any other CSS color syntax: resolved to
66
+ // `rgb(...)` via the browser's computed style, then reparsed.
67
+ if (!isBrowser)
68
+ return null;
69
+ const el = document.createElement('div');
70
+ el.style.color = color;
71
+ document.body.appendChild(el);
72
+ const computed = getComputedStyle(el).color;
73
+ document.body.removeChild(el);
74
+ if (!computed || computed === color)
75
+ return null;
76
+ return parseRgb(computed);
77
+ }
@@ -0,0 +1,3 @@
1
+ export { resolveCssColor } from './cssColor';
2
+ export { contrastRatio, contrastTextColor } from './contrast';
3
+ export { normalize, paletteColor, makeColorScale, resolveColorScale } from './ramp';
@@ -0,0 +1,3 @@
1
+ export { resolveCssColor } from './cssColor';
2
+ export { contrastRatio, contrastTextColor } from './contrast';
3
+ export { normalize, paletteColor, makeColorScale, resolveColorScale } from './ramp';
@@ -0,0 +1,17 @@
1
+ import type { ColorScaleConfig } from '../../types/layout/scales';
2
+ /** Linearly maps `v` from `[min, max]` onto `[0, 1]`, clamped at both ends. */
3
+ export declare function normalize(v: number, min: number, max: number): number;
4
+ /** Cycles through a discrete palette by series index - the default colour for an unstyled series. */
5
+ export declare function paletteColor(index: number, palette: string[]): string;
6
+ /** A simple 2-color continuous ramp over `[min, max]`. */
7
+ export declare function makeColorScale(min: number, max: number, colorMin: string, colorMax: string): (v: number) => string;
8
+ /**
9
+ * Resolves a {@link ColorScaleConfig} into a `value => color` function - the
10
+ * one shared implementation for every level the config can appear at
11
+ * (`scales.color`, a `segments` entry, a marker's own `scales`).
12
+ * `computedDomain` is the fallback when `config.domain` is unset;
13
+ * `defaultScheme` is used when `config.scheme` is unset - the theme's own
14
+ * 2-color continuous ramp, or a discrete palette for a categorical domain
15
+ * (e.g. per-series identity colors).
16
+ */
17
+ export declare function resolveColorScale(config: ColorScaleConfig | undefined, computedDomain: [number, number] | string[] | undefined, defaultScheme: NonNullable<ColorScaleConfig['scheme']>): (value: unknown) => string;
@@ -0,0 +1,110 @@
1
+ import { interpolateRgb, piecewise } from 'd3-interpolate';
2
+ import * as d3Chromatic from 'd3-scale-chromatic';
3
+ import { resolveCssColor } from './cssColor';
4
+ /** Linearly maps `v` from `[min, max]` onto `[0, 1]`, clamped at both ends. */
5
+ export function normalize(v, min, max) {
6
+ if (v == null)
7
+ return 0;
8
+ const denom = max - min || 1;
9
+ return Math.max(0, Math.min(1, (v - min) / denom));
10
+ }
11
+ /** Cycles through a discrete palette by series index - the default colour for an unstyled series. */
12
+ export function paletteColor(index, palette) {
13
+ if (palette.length === 0)
14
+ return 'currentColor';
15
+ return palette[index % palette.length];
16
+ }
17
+ /** A simple 2-color continuous ramp over `[min, max]`. */
18
+ export function makeColorScale(min, max, colorMin, colorMax) {
19
+ const resolvedMin = resolveCssColor(colorMin);
20
+ const resolvedMax = resolveCssColor(colorMax);
21
+ let interpolator;
22
+ try {
23
+ interpolator = interpolateRgb(resolvedMin, resolvedMax);
24
+ }
25
+ catch {
26
+ return () => '#ccc';
27
+ }
28
+ return (v) => {
29
+ if (v == null)
30
+ return '#ccc';
31
+ const t = normalize(v, min, max);
32
+ return interpolator(t);
33
+ };
34
+ }
35
+ /** `{turbo: interpolateTurbo, blues: interpolateBlues, ...}`, built from every `interpolate*` d3-scale-chromatic export. */
36
+ const NAMED_SCHEMES = Object.fromEntries(Object.entries(d3Chromatic)
37
+ .filter((entry) => entry[0].startsWith('interpolate'))
38
+ .map(([name, fn]) => [name.slice('interpolate'.length).toLowerCase(), fn]));
39
+ /**
40
+ * Resolves a {@link ColorScaleConfig} into a `value => color` function - the
41
+ * one shared implementation for every level the config can appear at
42
+ * (`scales.color`, a `segments` entry, a marker's own `scales`).
43
+ * `computedDomain` is the fallback when `config.domain` is unset;
44
+ * `defaultScheme` is used when `config.scheme` is unset - the theme's own
45
+ * 2-color continuous ramp, or a discrete palette for a categorical domain
46
+ * (e.g. per-series identity colors).
47
+ */
48
+ export function resolveColorScale(config, computedDomain, defaultScheme) {
49
+ const domain = config?.domain ?? computedDomain;
50
+ const scheme = config?.scheme ?? defaultScheme;
51
+ const unknown = config?.unknown ?? '#ccc';
52
+ if (!domain || domain.length === 0)
53
+ return () => unknown;
54
+ // A category → color map always resolves by direct lookup, regardless of domain shape.
55
+ if (typeof scheme === 'object' && !Array.isArray(scheme)) {
56
+ return (v) => (v == null ? unknown : (scheme[String(v)] ?? unknown));
57
+ }
58
+ // A named d3-scale-chromatic ramp (e.g. 'turbo') resolves straight to its own interpolator.
59
+ const namedInterpolator = typeof scheme === 'string' ? NAMED_SCHEMES[scheme.toLowerCase()] : undefined;
60
+ if (typeof scheme === 'string' && !namedInterpolator)
61
+ return () => unknown;
62
+ const resolvedScheme = namedInterpolator ? undefined : scheme.map(resolveCssColor);
63
+ if (resolvedScheme && resolvedScheme.length === 0)
64
+ return () => unknown;
65
+ if (resolvedScheme && resolvedScheme.length === 1) {
66
+ const only = resolvedScheme[0];
67
+ return () => only;
68
+ }
69
+ // Categorical domain (explicit category list): sample the ramp evenly, one stop per category.
70
+ if (typeof domain[0] === 'string') {
71
+ const categories = domain;
72
+ const swatches = resolvedScheme ??
73
+ categories.map((_, i) => namedInterpolator(categories.length > 1 ? i / (categories.length - 1) : 0));
74
+ return (v) => {
75
+ if (v == null)
76
+ return unknown;
77
+ const idx = categories.indexOf(String(v));
78
+ return idx < 0 ? unknown : swatches[idx % swatches.length];
79
+ };
80
+ }
81
+ // Continuous domain: interpolate smoothly across every scheme stop (or the named ramp directly).
82
+ const [lo, hi] = domain;
83
+ let interpolator;
84
+ if (namedInterpolator) {
85
+ interpolator = namedInterpolator;
86
+ }
87
+ else {
88
+ try {
89
+ interpolator = piecewise(interpolateRgb, resolvedScheme);
90
+ }
91
+ catch {
92
+ return () => unknown;
93
+ }
94
+ }
95
+ const pivot = config?.pivot;
96
+ const stopCount = resolvedScheme?.length ?? Infinity;
97
+ return (v) => {
98
+ if (v == null)
99
+ return unknown;
100
+ const n = Number(v);
101
+ if (Number.isNaN(n))
102
+ return unknown;
103
+ const t = pivot != null && stopCount >= 3
104
+ ? n <= pivot
105
+ ? 0.5 * normalize(n, lo, pivot)
106
+ : 0.5 + 0.5 * normalize(n, pivot, hi)
107
+ : normalize(n, lo, hi);
108
+ return interpolator(t);
109
+ };
110
+ }
@@ -1,4 +1,4 @@
1
- import type { AxisValue } from '../types/layout/scales';
1
+ import type { AxisValue } from '../types/layout/mapping';
2
2
  import type { Series, Accessor } from '../types/plots/data/common';
3
3
  /**
4
4
  * Splits rows into ordered groups keyed by the stringified accessor value.
@@ -8,8 +8,12 @@ import type { Series, Accessor } from '../types/plots/data/common';
8
8
  export declare function groupBy<TRow extends Record<string, unknown>>(data: TRow[], by: Accessor<TRow, unknown>): Map<string, TRow[]>;
9
9
  /**
10
10
  * Adapts flat rows into the `Series[]` shape the plot expects.
11
- * When `z` is given, one series is produced per group (series `name` = group
12
- * value), which is exactly how the plot's `segments` map is keyed — so the
13
- * caller styles each group by its `z` value.
11
+ * When `grouping` is given, one series is produced per group (series `name`
12
+ * = group value), which is exactly how the plot's `segments` map is keyed -
13
+ * so the caller styles/colors each group by its own value (see
14
+ * `scales.color`). A position channel the author left out stays unset on
15
+ * every series.
14
16
  */
15
- export declare function buildSeries<TRow extends Record<string, unknown>>(data: TRow[], x: Accessor<TRow, AxisValue>, y: Accessor<TRow, AxisValue>, z: Accessor<TRow, unknown> | undefined, defaultName?: string): Series<TRow>[];
17
+ export declare function buildSeries<TRow extends Record<string, unknown>>(data: TRow[], x: Accessor<TRow, AxisValue> | undefined, y: Accessor<TRow, AxisValue> | undefined, grouping: Accessor<TRow, unknown> | undefined, defaultName?: string): Series<TRow>[];
18
+ /** A series' id: its own `id`, or its `name`. */
19
+ export declare function seriesIdOf(series: Pick<Series, 'name' | 'id'>): string;
@@ -19,18 +19,27 @@ export function groupBy(data, by) {
19
19
  }
20
20
  /**
21
21
  * Adapts flat rows into the `Series[]` shape the plot expects.
22
- * When `z` is given, one series is produced per group (series `name` = group
23
- * value), which is exactly how the plot's `segments` map is keyed — so the
24
- * caller styles each group by its `z` value.
22
+ * When `grouping` is given, one series is produced per group (series `name`
23
+ * = group value), which is exactly how the plot's `segments` map is keyed -
24
+ * so the caller styles/colors each group by its own value (see
25
+ * `scales.color`). A position channel the author left out stays unset on
26
+ * every series.
25
27
  */
26
- export function buildSeries(data, x, y, z, defaultName = 'series') {
27
- if (z === undefined) {
28
- return [{ name: defaultName, x, y, data }];
28
+ export function buildSeries(data, x, y, grouping, defaultName = 'series') {
29
+ if (grouping === undefined) {
30
+ return [{ name: defaultName, ...channels(x, y), data }];
29
31
  }
30
- return [...groupBy(data, z).entries()].map(([name, rows]) => ({
32
+ return [...groupBy(data, grouping).entries()].map(([name, rows]) => ({
31
33
  name,
32
- x,
33
- y,
34
- data: rows,
34
+ ...channels(x, y),
35
+ data: rows
35
36
  }));
36
37
  }
38
+ /** The position channels a series carries: only the ones set. */
39
+ function channels(x, y) {
40
+ return { ...(x !== undefined ? { x } : {}), ...(y !== undefined ? { y } : {}) };
41
+ }
42
+ /** A series' id: its own `id`, or its `name`. */
43
+ export function seriesIdOf(series) {
44
+ return series.id ?? series.name;
45
+ }
@@ -0,0 +1,7 @@
1
+ /**
2
+ * `patch` deep-merged over `base`: plain objects merge key by key, anything
3
+ * else (arrays included) in `patch` replaces, and an `undefined` in `patch`
4
+ * leaves `base` as it is. Either side may be absent - the other is returned.
5
+ */
6
+ export declare function merge<T extends object>(base: T, patch: object | undefined): T;
7
+ export declare function merge<T extends object>(base: T | undefined, patch: T | undefined): T | undefined;
@@ -0,0 +1,17 @@
1
+ function isPlainObject(value) {
2
+ return typeof value === 'object' && value !== null && !Array.isArray(value);
3
+ }
4
+ export function merge(base, patch) {
5
+ if (!base)
6
+ return patch;
7
+ if (!patch)
8
+ return base;
9
+ const out = { ...base };
10
+ for (const [key, value] of Object.entries(patch)) {
11
+ if (value === undefined)
12
+ continue;
13
+ const prev = out[key];
14
+ out[key] = isPlainObject(prev) && isPlainObject(value) ? merge(prev, value) : value;
15
+ }
16
+ return out;
17
+ }
@@ -0,0 +1,9 @@
1
+ import type { OpacityScaleConfig } from '../types/layout/scales';
2
+ /**
3
+ * Resolves an {@link OpacityScaleConfig} into a `value => opacity` function -
4
+ * mirrors `resolveColorScale`'s shape, but the output is always a number in
5
+ * roughly `[0,1]` instead of a CSS color string. Callers must apply the
6
+ * result as a literal constant per mark instance (never a per-row function
7
+ * handed straight to svelteplot) - see the type's own doc comment for why.
8
+ */
9
+ export declare function resolveOpacityScale(config: OpacityScaleConfig | undefined, computedDomain: [number, number] | string[] | undefined, defaultRange: [number, number]): (value: unknown) => number;
@@ -0,0 +1,38 @@
1
+ import { normalize } from './color';
2
+ /**
3
+ * Resolves an {@link OpacityScaleConfig} into a `value => opacity` function -
4
+ * mirrors `resolveColorScale`'s shape, but the output is always a number in
5
+ * roughly `[0,1]` instead of a CSS color string. Callers must apply the
6
+ * result as a literal constant per mark instance (never a per-row function
7
+ * handed straight to svelteplot) - see the type's own doc comment for why.
8
+ */
9
+ export function resolveOpacityScale(config, computedDomain, defaultRange) {
10
+ const domain = config?.domain ?? computedDomain;
11
+ const range = config?.range ?? defaultRange;
12
+ const unknown = config?.unknown ?? 1;
13
+ if (!domain || domain.length === 0)
14
+ return () => unknown;
15
+ if (typeof range === 'object' && !Array.isArray(range)) {
16
+ return (v) => (v == null ? unknown : (range[String(v)] ?? unknown));
17
+ }
18
+ if (typeof domain[0] === 'string') {
19
+ const categories = domain;
20
+ const [lo, hi] = range;
21
+ return (v) => {
22
+ if (v == null)
23
+ return unknown;
24
+ const idx = categories.indexOf(String(v));
25
+ if (idx < 0)
26
+ return unknown;
27
+ return categories.length > 1 ? lo + ((hi - lo) * idx) / (categories.length - 1) : lo;
28
+ };
29
+ }
30
+ const [dLo, dHi] = domain;
31
+ const [rLo, rHi] = range;
32
+ return (v) => {
33
+ if (v == null)
34
+ return unknown;
35
+ const t = normalize(Number(v), dLo, dHi);
36
+ return rLo + (rHi - rLo) * t;
37
+ };
38
+ }