@fundar/data-chart-telling 0.0.64 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (839) hide show
  1. package/CHANGELOG.md +38 -0
  2. package/LICENSE +21 -0
  3. package/README.md +112 -553
  4. package/dist/configuration/config.svelte.d.ts +5 -5
  5. package/dist/configuration/config.svelte.js +142 -46
  6. package/dist/configuration/fonts.d.ts +6 -0
  7. package/dist/configuration/fonts.js +6 -0
  8. package/dist/configuration/themes/compact.d.ts +2 -2
  9. package/dist/configuration/themes/compact.js +1 -1
  10. package/dist/configuration/themes/dark.d.ts +2 -2
  11. package/dist/configuration/themes/dark.js +5 -4
  12. package/dist/configuration/themes/default.d.ts +8 -3
  13. package/dist/configuration/themes/default.js +8 -2
  14. package/dist/configuration/themes/editorial.d.ts +2 -2
  15. package/dist/configuration/themes/editorial.js +2 -2
  16. package/dist/configuration/themes/index.d.ts +545 -80
  17. package/dist/configuration/themes/index.js +6 -5
  18. package/dist/index.d.ts +35 -48
  19. package/dist/index.js +20 -35
  20. package/dist/layout/base/BasePlotLayout.svelte +325 -0
  21. package/dist/layout/base/BasePlotLayout.svelte.d.ts +111 -0
  22. package/dist/layout/composer/PlotComposer.svelte +94 -0
  23. package/dist/layout/composer/PlotComposer.svelte.d.ts +13 -0
  24. package/dist/layout/coordinates/CameraFit.svelte +4 -4
  25. package/dist/layout/coordinates/CoordinatesLayout.svelte +11 -3
  26. package/dist/layout/coordinates/CoordinatesLayout.svelte.d.ts +6 -2
  27. package/dist/layout/coordinates/camera.svelte.d.ts +1 -1
  28. package/dist/layout/coordinates/camera.svelte.js +6 -6
  29. package/dist/layout/coordinates/projections/argentina.js +3 -3
  30. package/dist/layout/coordinates/projections/fit.js +1 -1
  31. package/dist/layout/coordinates/resolveCameraTarget.d.ts +1 -1
  32. package/dist/layout/coordinates/resolveProjection.d.ts +1 -1
  33. package/dist/layout/coordinates/resolveProjection.js +2 -2
  34. package/dist/layout/coordinates/rotate.svelte.d.ts +3 -3
  35. package/dist/layout/coordinates/rotate.svelte.js +8 -8
  36. package/dist/layout/coordinates/zoom.svelte.d.ts +1 -1
  37. package/dist/layout/facet/FacetIndicator.svelte +23 -23
  38. package/dist/layout/facet/FacetLayout.svelte +435 -398
  39. package/dist/layout/facet/FacetLayout.svelte.d.ts +9 -3
  40. package/dist/layout/facet/axes.d.ts +16 -0
  41. package/dist/layout/facet/axes.js +25 -0
  42. package/dist/layout/facet/config.d.ts +32 -0
  43. package/dist/layout/facet/config.js +82 -0
  44. package/dist/layout/figure/Figure.svelte +177 -0
  45. package/dist/layout/figure/Figure.svelte.d.ts +14 -0
  46. package/dist/layout/figure/FigureChrome.svelte +341 -0
  47. package/dist/layout/figure/FigureChrome.svelte.d.ts +21 -0
  48. package/dist/layout/geometry/FrameClip.svelte +45 -0
  49. package/dist/layout/geometry/FrameClip.svelte.d.ts +8 -0
  50. package/dist/layout/geometry/FrameClipping.d.ts +24 -0
  51. package/dist/layout/geometry/FrameClipping.js +40 -0
  52. package/dist/layout/geometry/GeometryLayout.svelte +287 -224
  53. package/dist/layout/geometry/GeometryLayout.svelte.d.ts +10 -10
  54. package/dist/layout/grid/Grid.svelte +194 -0
  55. package/dist/layout/grid/Grid.svelte.d.ts +26 -0
  56. package/dist/layout/grid/GridAlignment.svelte.d.ts +31 -0
  57. package/dist/layout/grid/GridAlignment.svelte.js +56 -0
  58. package/dist/layout/grid/GridCell.svelte +141 -0
  59. package/dist/layout/grid/GridCell.svelte.d.ts +17 -0
  60. package/dist/layout/grid/GridCellsRegistry.svelte.d.ts +52 -0
  61. package/dist/layout/grid/GridCellsRegistry.svelte.js +70 -0
  62. package/dist/layout/grid/GridPlan.d.ts +49 -0
  63. package/dist/layout/grid/GridPlan.js +167 -0
  64. package/dist/layout/grid/Tags.d.ts +8 -0
  65. package/dist/layout/grid/Tags.js +39 -0
  66. package/dist/layout/hover/HoverScope.svelte +11 -0
  67. package/dist/layout/hover/HoverScope.svelte.d.ts +8 -0
  68. package/dist/layout/hover/HoverSettings.d.ts +34 -0
  69. package/dist/layout/hover/HoverSettings.js +52 -0
  70. package/dist/layout/hover/HoverState.svelte.d.ts +47 -0
  71. package/dist/layout/hover/HoverState.svelte.js +99 -0
  72. package/dist/layout/hover/PlotHover.svelte.d.ts +63 -0
  73. package/dist/layout/hover/PlotHover.svelte.js +133 -0
  74. package/dist/layout/interaction/PlotInteraction.svelte.d.ts +38 -0
  75. package/dist/layout/interaction/PlotInteraction.svelte.js +56 -0
  76. package/dist/layout/legend/AxisNumberFormat.d.ts +12 -0
  77. package/dist/layout/legend/AxisNumberFormat.js +25 -0
  78. package/dist/layout/legend/ContinuousSection.svelte +363 -351
  79. package/dist/layout/legend/DisabledStyle.d.ts +19 -0
  80. package/dist/layout/legend/DisabledStyle.js +57 -0
  81. package/dist/layout/legend/DiscreteBadgeItem.svelte +6 -3
  82. package/dist/layout/legend/DiscreteSection.svelte +32 -32
  83. package/dist/layout/legend/DiscreteSwatchItem.svelte +4 -1
  84. package/dist/layout/legend/DiscreteSymbolIcon.svelte +14 -9
  85. package/dist/layout/legend/LegendChannels.d.ts +21 -0
  86. package/dist/layout/legend/LegendChannels.js +221 -0
  87. package/dist/layout/legend/LegendLayout.svelte +49 -43
  88. package/dist/layout/legend/LegendState.svelte.d.ts +84 -0
  89. package/dist/layout/legend/LegendState.svelte.js +333 -0
  90. package/dist/layout/legend/LegendText.d.ts +12 -0
  91. package/dist/layout/legend/LegendText.js +22 -0
  92. package/dist/layout/legend/SizeSection.svelte +84 -0
  93. package/dist/layout/legend/SizeSection.svelte.d.ts +7 -0
  94. package/dist/layout/legend/SymbolSection.svelte +31 -0
  95. package/dist/layout/legend/SymbolSection.svelte.d.ts +8 -0
  96. package/dist/layout/margins/Box.d.ts +84 -0
  97. package/dist/layout/margins/Box.js +138 -0
  98. package/dist/layout/margins/Margins.d.ts +37 -0
  99. package/dist/layout/margins/Margins.js +71 -0
  100. package/dist/layout/margins/PlotMargins.svelte.d.ts +101 -0
  101. package/dist/layout/margins/PlotMargins.svelte.js +219 -0
  102. package/dist/layout/plot/Core.svelte +61 -0
  103. package/dist/layout/plot/Core.svelte.d.ts +41 -0
  104. package/dist/layout/plot/PanelRun.svelte +28 -0
  105. package/dist/{charts/heatmap/Chart.svelte.d.ts → layout/plot/PanelRun.svelte.d.ts} +11 -7
  106. package/dist/layout/plot/Plot.svelte +287 -0
  107. package/dist/layout/plot/Plot.svelte.d.ts +49 -0
  108. package/dist/layout/plot/PlotContext.d.ts +41 -0
  109. package/dist/layout/plot/PlotContext.js +46 -0
  110. package/dist/layout/plot/PublicPlotContext.d.ts +131 -0
  111. package/dist/layout/plot/PublicPlotContext.js +240 -0
  112. package/dist/layout/plot/Slice.d.ts +44 -0
  113. package/dist/layout/plot/Slice.js +100 -0
  114. package/dist/layout/plot/usePlot.d.ts +9 -0
  115. package/dist/layout/plot/usePlot.js +13 -0
  116. package/dist/layout/scales/EdgeTicks.d.ts +39 -0
  117. package/dist/layout/scales/EdgeTicks.js +82 -0
  118. package/dist/layout/scales/NiceTicks.d.ts +40 -0
  119. package/dist/layout/scales/NiceTicks.js +72 -0
  120. package/dist/layout/scales/ScalesLayout.svelte +275 -206
  121. package/dist/layout/scales/ScalesLayout.svelte.d.ts +7 -1
  122. package/dist/layout/scales/SveltePlotScale.d.ts +15 -0
  123. package/dist/layout/scales/SveltePlotScale.js +79 -0
  124. package/dist/layout/styles/StylesLayout.svelte +65 -65
  125. package/dist/layout/styles/TileLayer.svelte +78 -76
  126. package/dist/layout/styles/TileLayer.svelte.d.ts +1 -1
  127. package/dist/layout/styles/ValueLabels.d.ts +97 -0
  128. package/dist/layout/styles/ValueLabels.js +238 -0
  129. package/dist/layout/timeline/Timeline.svelte +83 -74
  130. package/dist/layout/timeline/Timeline.svelte.d.ts +2 -0
  131. package/dist/layout/timeline/TimelineFrame.svelte +86 -0
  132. package/dist/layout/timeline/TimelineFrame.svelte.d.ts +16 -0
  133. package/dist/layout/timeline/TimelineLayout.svelte +140 -169
  134. package/dist/layout/timeline/TimelineLayout.svelte.d.ts +7 -3
  135. package/dist/layout/timeline/TimelinePlayer.svelte +195 -0
  136. package/dist/layout/timeline/TimelinePlayer.svelte.d.ts +7 -0
  137. package/dist/layout/timeline/TimelineRule.svelte +51 -0
  138. package/dist/layout/timeline/TimelineRule.svelte.d.ts +7 -0
  139. package/dist/layout/timeline/TimelineState.svelte.d.ts +90 -0
  140. package/dist/layout/timeline/TimelineState.svelte.js +260 -0
  141. package/dist/layout/timeline/TimelineSteps.d.ts +24 -0
  142. package/dist/layout/timeline/TimelineSteps.js +48 -0
  143. package/dist/layout/timeline/TimelineTime.d.ts +18 -0
  144. package/dist/layout/timeline/TimelineTime.js +117 -0
  145. package/dist/layout/tooltip/Tooltip.svelte +85 -85
  146. package/dist/layout/tooltip/Tooltip.svelte.d.ts +45 -24
  147. package/dist/layout/tooltip/TooltipState.svelte.d.ts +67 -0
  148. package/dist/layout/tooltip/TooltipState.svelte.js +126 -0
  149. package/dist/markers/MarkerKinds.d.ts +173 -0
  150. package/dist/markers/MarkerKinds.js +51 -0
  151. package/dist/markers/area/AreaMarker.svelte +110 -0
  152. package/dist/markers/area/AreaMarker.svelte.d.ts +7 -0
  153. package/dist/markers/arrow/ArrowMarker.svelte +28 -0
  154. package/dist/markers/arrow/ArrowMarker.svelte.d.ts +7 -0
  155. package/dist/markers/{BarMarker.svelte → bar/BarMarker.svelte} +54 -52
  156. package/dist/markers/{BarMarker.svelte.d.ts → bar/BarMarker.svelte.d.ts} +1 -1
  157. package/dist/markers/bollinger/BollingerMarker.svelte +44 -0
  158. package/dist/markers/bollinger/BollingerMarker.svelte.d.ts +7 -0
  159. package/dist/markers/box/BoxMarker.svelte +143 -0
  160. package/dist/markers/box/BoxMarker.svelte.d.ts +7 -0
  161. package/dist/markers/brush/BrushMarker.svelte +32 -0
  162. package/dist/markers/brush/BrushMarker.svelte.d.ts +7 -0
  163. package/dist/markers/cell/CellMarker.svelte +27 -0
  164. package/dist/markers/{CellMarker.svelte.d.ts → cell/CellMarker.svelte.d.ts} +1 -1
  165. package/dist/markers/contour/ContourClipMarker.svelte +83 -0
  166. package/dist/markers/{ContourClipMarker.svelte.d.ts → contour/ContourClipMarker.svelte.d.ts} +1 -1
  167. package/dist/markers/contour/ContourMarker.svelte +28 -0
  168. package/dist/markers/{ContourMarker.svelte.d.ts → contour/ContourMarker.svelte.d.ts} +1 -1
  169. package/dist/markers/delaunay/DelaunayLinkMarker.svelte +26 -0
  170. package/dist/markers/delaunay/DelaunayLinkMarker.svelte.d.ts +7 -0
  171. package/dist/markers/delaunay/DelaunayMeshMarker.svelte +26 -0
  172. package/dist/markers/delaunay/DelaunayMeshMarker.svelte.d.ts +7 -0
  173. package/dist/markers/delta/Delta.d.ts +21 -0
  174. package/dist/markers/delta/Delta.js +60 -0
  175. package/dist/markers/delta/DeltaMarker.svelte +96 -0
  176. package/dist/markers/{DeltaMarker.svelte.d.ts → delta/DeltaMarker.svelte.d.ts} +2 -2
  177. package/dist/markers/density/DensityMarker.svelte +63 -0
  178. package/dist/markers/density/DensityMarker.svelte.d.ts +7 -0
  179. package/dist/markers/difference/DifferenceMarker.svelte +30 -0
  180. package/dist/markers/difference/DifferenceMarker.svelte.d.ts +7 -0
  181. package/dist/markers/dot/DotMarker.svelte +102 -0
  182. package/dist/markers/{DotMarker.svelte.d.ts → dot/DotMarker.svelte.d.ts} +5 -17
  183. package/dist/markers/geo/GeoFeaturesMarker.svelte +39 -0
  184. package/dist/markers/{GeoFeaturesMarker.svelte.d.ts → geo/GeoFeaturesMarker.svelte.d.ts} +1 -1
  185. package/dist/markers/geo/GeoHoverMarker.svelte +28 -0
  186. package/dist/markers/{GeoHoverMarker.svelte.d.ts → geo/GeoHoverMarker.svelte.d.ts} +2 -2
  187. package/dist/markers/geo/GraticuleMarker.svelte +18 -0
  188. package/dist/markers/{GraticuleMarker.svelte.d.ts → geo/GraticuleMarker.svelte.d.ts} +1 -1
  189. package/dist/markers/geo/SphereMarker.svelte +15 -0
  190. package/dist/markers/{SphereMarker.svelte.d.ts → geo/SphereMarker.svelte.d.ts} +1 -1
  191. package/dist/markers/hover/HoverMarker.svelte +252 -0
  192. package/dist/markers/{HoverMarker.svelte.d.ts → hover/HoverMarker.svelte.d.ts} +10 -10
  193. package/dist/markers/hull/HullMarker.svelte +25 -0
  194. package/dist/markers/hull/HullMarker.svelte.d.ts +7 -0
  195. package/dist/markers/image/ImageMarker.svelte +22 -0
  196. package/dist/markers/image/ImageMarker.svelte.d.ts +7 -0
  197. package/dist/markers/inset/InsetMarker.svelte +184 -150
  198. package/dist/markers/inset/InsetMarker.svelte.d.ts +4 -4
  199. package/dist/markers/inset/insetLayout.d.ts +1 -1
  200. package/dist/markers/inset/insetLayout.js +6 -2
  201. package/dist/markers/inset/insetProjection.d.ts +1 -1
  202. package/dist/markers/inset/insetProjection.js +3 -3
  203. package/dist/markers/line/LineMarker.svelte +30 -0
  204. package/dist/markers/{LineMarker.svelte.d.ts → line/LineMarker.svelte.d.ts} +1 -1
  205. package/dist/markers/link/LinkMarker.svelte +47 -0
  206. package/dist/markers/{LinkMarker.svelte.d.ts → link/LinkMarker.svelte.d.ts} +1 -1
  207. package/dist/markers/raster/RasterMarker.svelte +31 -0
  208. package/dist/markers/raster/RasterMarker.svelte.d.ts +7 -0
  209. package/dist/markers/rect/RectMarker.svelte +62 -0
  210. package/dist/markers/rect/RectMarker.svelte.d.ts +7 -0
  211. package/dist/markers/regression/RegressionMarker.svelte +60 -0
  212. package/dist/markers/regression/RegressionMarker.svelte.d.ts +7 -0
  213. package/dist/markers/rule/RuleMarker.svelte +47 -0
  214. package/dist/markers/{RuleMarker.svelte.d.ts → rule/RuleMarker.svelte.d.ts} +2 -5
  215. package/dist/markers/text/Declutter.d.ts +35 -0
  216. package/dist/markers/text/Declutter.js +157 -0
  217. package/dist/markers/text/TextMarker.svelte +244 -0
  218. package/dist/markers/{TextMarker.svelte.d.ts → text/TextMarker.svelte.d.ts} +5 -9
  219. package/dist/markers/tick/TickMarker.svelte +44 -0
  220. package/dist/markers/tick/TickMarker.svelte.d.ts +7 -0
  221. package/dist/markers/trail/TrailMarker.svelte +27 -0
  222. package/dist/markers/trail/TrailMarker.svelte.d.ts +7 -0
  223. package/dist/markers/utils/BandNudge.d.ts +22 -0
  224. package/dist/markers/utils/BandNudge.js +23 -0
  225. package/dist/markers/utils/MarkerChannels.d.ts +49 -0
  226. package/dist/markers/utils/MarkerChannels.js +97 -0
  227. package/dist/markers/vector/VectorMarker.svelte +29 -0
  228. package/dist/markers/{VectorMarker.svelte.d.ts → vector/VectorMarker.svelte.d.ts} +1 -1
  229. package/dist/markers/voronoi/VoronoiMarker.svelte +26 -0
  230. package/dist/markers/voronoi/VoronoiMarker.svelte.d.ts +7 -0
  231. package/dist/markers/voronoi/VoronoiMeshMarker.svelte +26 -0
  232. package/dist/markers/voronoi/VoronoiMeshMarker.svelte.d.ts +7 -0
  233. package/dist/markers/waffle/WaffleMarker.svelte +56 -0
  234. package/dist/markers/waffle/WaffleMarker.svelte.d.ts +7 -0
  235. package/dist/phases/Pipeline.d.ts +108 -0
  236. package/dist/phases/Pipeline.js +227 -0
  237. package/dist/phases/data/DataPhase.d.ts +19 -0
  238. package/dist/phases/data/DataPhase.js +85 -0
  239. package/dist/phases/data/PlotAxes.d.ts +75 -0
  240. package/dist/phases/data/PlotAxes.js +151 -0
  241. package/dist/phases/facet/FacetPanels.d.ts +54 -0
  242. package/dist/phases/facet/FacetPanels.js +95 -0
  243. package/dist/phases/facet/FacetPhase.d.ts +11 -0
  244. package/dist/phases/facet/FacetPhase.js +28 -0
  245. package/dist/phases/hover/HoverPhase.d.ts +36 -0
  246. package/dist/phases/hover/HoverPhase.js +109 -0
  247. package/dist/phases/mapping/MappingPhase.d.ts +17 -0
  248. package/dist/phases/mapping/MappingPhase.js +40 -0
  249. package/dist/phases/markers/MarkersPhase.d.ts +14 -0
  250. package/dist/phases/markers/MarkersPhase.js +27 -0
  251. package/dist/phases/scales/MarkerAxisValues.d.ts +12 -0
  252. package/dist/phases/scales/MarkerAxisValues.js +34 -0
  253. package/dist/phases/scales/ScalesPhase.d.ts +29 -0
  254. package/dist/phases/scales/ScalesPhase.js +153 -0
  255. package/dist/phases/sharedScales/SharedScalesPhase.d.ts +58 -0
  256. package/dist/phases/sharedScales/SharedScalesPhase.js +171 -0
  257. package/dist/phases/statistics/AuthorMarkers.d.ts +43 -0
  258. package/dist/phases/statistics/AuthorMarkers.js +69 -0
  259. package/dist/phases/statistics/MarkerGrouping.d.ts +48 -0
  260. package/dist/phases/statistics/MarkerGrouping.js +113 -0
  261. package/dist/phases/statistics/Statistics.d.ts +53 -0
  262. package/dist/phases/statistics/Statistics.js +156 -0
  263. package/dist/phases/statistics/StatisticsPhase.d.ts +18 -0
  264. package/dist/phases/statistics/StatisticsPhase.js +67 -0
  265. package/dist/phases/statistics/methods/BollingerStatistic.d.ts +9 -0
  266. package/dist/phases/statistics/methods/BollingerStatistic.js +18 -0
  267. package/dist/phases/statistics/methods/BoxStatistic.d.ts +9 -0
  268. package/dist/phases/statistics/methods/BoxStatistic.js +18 -0
  269. package/dist/phases/statistics/methods/Density2dStatistic.d.ts +9 -0
  270. package/dist/phases/statistics/methods/Density2dStatistic.js +18 -0
  271. package/dist/phases/statistics/methods/DensityStatistic.d.ts +12 -0
  272. package/dist/phases/statistics/methods/DensityStatistic.js +29 -0
  273. package/dist/phases/statistics/methods/MovingAverageStatistic.d.ts +12 -0
  274. package/dist/phases/statistics/methods/MovingAverageStatistic.js +30 -0
  275. package/dist/phases/statistics/methods/RegressionStatistic.d.ts +9 -0
  276. package/dist/phases/statistics/methods/RegressionStatistic.js +21 -0
  277. package/dist/phases/styles/StylesPhase.d.ts +13 -0
  278. package/dist/phases/styles/StylesPhase.js +17 -0
  279. package/dist/phases/tooltip/TooltipPhase.d.ts +14 -0
  280. package/dist/phases/tooltip/TooltipPhase.js +17 -0
  281. package/dist/phases/transforms/ProcessedPositions.d.ts +30 -0
  282. package/dist/phases/transforms/ProcessedPositions.js +74 -0
  283. package/dist/phases/transforms/Transforms.d.ts +42 -0
  284. package/dist/phases/transforms/Transforms.js +130 -0
  285. package/dist/phases/transforms/TransformsPhase.d.ts +27 -0
  286. package/dist/phases/transforms/TransformsPhase.js +205 -0
  287. package/dist/phases/transforms/methods/AnchorBar.d.ts +13 -0
  288. package/dist/phases/transforms/methods/AnchorBar.js +21 -0
  289. package/dist/phases/transforms/methods/BinTransform.d.ts +7 -0
  290. package/dist/phases/transforms/methods/BinTransform.js +48 -0
  291. package/dist/phases/transforms/methods/DensityTransform.d.ts +6 -0
  292. package/dist/phases/transforms/methods/DensityTransform.js +13 -0
  293. package/dist/phases/transforms/methods/GroupTransform.d.ts +8 -0
  294. package/dist/phases/transforms/methods/GroupTransform.js +39 -0
  295. package/dist/phases/transforms/methods/NormalizeTransform.d.ts +10 -0
  296. package/dist/phases/transforms/methods/NormalizeTransform.js +30 -0
  297. package/dist/phases/transforms/methods/OrderTransform.d.ts +16 -0
  298. package/dist/phases/transforms/methods/OrderTransform.js +43 -0
  299. package/dist/phases/transforms/methods/PerGroup.d.ts +11 -0
  300. package/dist/phases/transforms/methods/PerGroup.js +39 -0
  301. package/dist/phases/transforms/methods/PositionTransform.d.ts +15 -0
  302. package/dist/phases/transforms/methods/PositionTransform.js +74 -0
  303. package/dist/phases/transforms/methods/StackTransform.d.ts +8 -0
  304. package/dist/phases/transforms/methods/StackTransform.js +29 -0
  305. package/dist/phases/transforms/methods/WindowTransform.d.ts +8 -0
  306. package/dist/phases/transforms/methods/WindowTransform.js +23 -0
  307. package/dist/plots/area/Plot.svelte +42 -0
  308. package/dist/plots/{heatmap/ValueLabels.svelte.d.ts → area/Plot.svelte.d.ts} +8 -16
  309. package/dist/plots/area/defaults.d.ts +4 -0
  310. package/dist/plots/area/defaults.js +21 -0
  311. package/dist/plots/area/markers.d.ts +14 -0
  312. package/dist/plots/area/markers.js +39 -0
  313. package/dist/plots/bar/Plot.svelte +33 -438
  314. package/dist/plots/bar/Plot.svelte.d.ts +5 -8
  315. package/dist/plots/bar/defaults.d.ts +9 -0
  316. package/dist/plots/bar/defaults.js +88 -0
  317. package/dist/plots/bar/markers.d.ts +45 -0
  318. package/dist/plots/bar/markers.js +233 -0
  319. package/dist/plots/box/BoxSummaries.d.ts +19 -0
  320. package/dist/plots/box/BoxSummaries.js +101 -0
  321. package/dist/plots/box/Plot.svelte +42 -0
  322. package/dist/plots/box/Plot.svelte.d.ts +26 -0
  323. package/dist/plots/box/defaults.d.ts +12 -0
  324. package/dist/plots/box/defaults.js +34 -0
  325. package/dist/plots/box/markers.d.ts +12 -0
  326. package/dist/plots/box/markers.js +34 -0
  327. package/dist/plots/geo/Core.svelte +151 -0
  328. package/dist/plots/geo/Core.svelte.d.ts +25 -0
  329. package/dist/plots/geo/Plot.svelte +103 -324
  330. package/dist/plots/geo/Plot.svelte.d.ts +5 -9
  331. package/dist/plots/geo/defaults.d.ts +4 -0
  332. package/dist/plots/geo/defaults.js +16 -0
  333. package/dist/plots/geo/features.svelte.d.ts +5 -0
  334. package/dist/plots/geo/features.svelte.js +44 -0
  335. package/dist/plots/geo/phases/data.d.ts +6 -0
  336. package/dist/plots/geo/phases/data.js +26 -0
  337. package/dist/plots/geo/phases/hover.d.ts +9 -0
  338. package/dist/plots/geo/phases/hover.js +45 -0
  339. package/dist/plots/geo/phases/markers.d.ts +9 -0
  340. package/dist/plots/geo/phases/markers.js +75 -0
  341. package/dist/plots/geo/phases/scales.d.ts +10 -0
  342. package/dist/plots/geo/phases/scales.js +85 -0
  343. package/dist/plots/geo/phases/tooltip.d.ts +3 -0
  344. package/dist/plots/geo/phases/tooltip.js +5 -0
  345. package/dist/plots/geo/slices.d.ts +18 -0
  346. package/dist/plots/geo/slices.js +59 -0
  347. package/dist/plots/heatmap/Plot.svelte +55 -249
  348. package/dist/plots/heatmap/Plot.svelte.d.ts +5 -8
  349. package/dist/plots/heatmap/defaults.d.ts +11 -0
  350. package/dist/plots/heatmap/defaults.js +91 -0
  351. package/dist/plots/heatmap/markers.d.ts +17 -0
  352. package/dist/plots/heatmap/markers.js +142 -0
  353. package/dist/plots/histogram/Plot.svelte +45 -0
  354. package/dist/plots/histogram/Plot.svelte.d.ts +26 -0
  355. package/dist/plots/histogram/defaults.d.ts +9 -0
  356. package/dist/plots/histogram/defaults.js +87 -0
  357. package/dist/plots/histogram/markers.d.ts +18 -0
  358. package/dist/plots/histogram/markers.js +89 -0
  359. package/dist/plots/line/Plot.svelte +37 -268
  360. package/dist/plots/line/Plot.svelte.d.ts +3 -7
  361. package/dist/plots/line/defaults.d.ts +4 -0
  362. package/dist/plots/line/defaults.js +29 -0
  363. package/dist/plots/line/markers.d.ts +49 -0
  364. package/dist/plots/line/markers.js +199 -0
  365. package/dist/plots/pyramid/Plot.svelte +34 -362
  366. package/dist/plots/pyramid/Plot.svelte.d.ts +5 -8
  367. package/dist/plots/pyramid/defaults.d.ts +13 -0
  368. package/dist/plots/pyramid/defaults.js +87 -0
  369. package/dist/plots/pyramid/markers.d.ts +21 -0
  370. package/dist/plots/pyramid/markers.js +156 -0
  371. package/dist/plots/scatter/Plot.svelte +34 -288
  372. package/dist/plots/scatter/Plot.svelte.d.ts +5 -8
  373. package/dist/plots/scatter/defaults.d.ts +4 -0
  374. package/dist/plots/scatter/defaults.js +80 -0
  375. package/dist/plots/scatter/markers.d.ts +19 -0
  376. package/dist/plots/scatter/markers.js +129 -0
  377. package/dist/plots/utils/ChannelName.d.ts +9 -0
  378. package/dist/plots/utils/ChannelName.js +14 -0
  379. package/dist/plots/utils/accessors.d.ts +1 -1
  380. package/dist/plots/utils/accessors.js +4 -2
  381. package/dist/plots/utils/gaps.d.ts +14 -19
  382. package/dist/plots/utils/gaps.js +38 -18
  383. package/dist/plots/utils/geoAccessors.d.ts +8 -8
  384. package/dist/plots/utils/geoAccessors.js +16 -12
  385. package/dist/plots/utils/geoSegments.d.ts +24 -9
  386. package/dist/plots/utils/geoSegments.js +31 -11
  387. package/dist/plots/utils/segments.d.ts +5 -16
  388. package/dist/plots/utils/segments.js +40 -52
  389. package/dist/plots/utils/tiles.d.ts +9 -9
  390. package/dist/plots/utils/tiles.js +35 -25
  391. package/dist/plots/utils/topojson.d.ts +1 -1
  392. package/dist/plots/utils/topojson.js +3 -3
  393. package/dist/stores/device.js +2 -4
  394. package/dist/types/configuration/styling.d.ts +174 -27
  395. package/dist/types/layout/box.d.ts +24 -0
  396. package/dist/types/layout/composer.d.ts +39 -0
  397. package/dist/types/layout/coordinates.d.ts +14 -14
  398. package/dist/types/layout/facet.d.ts +44 -22
  399. package/dist/types/layout/figure.d.ts +7 -0
  400. package/dist/types/layout/geometry.d.ts +6 -2
  401. package/dist/types/layout/grid.d.ts +66 -0
  402. package/dist/types/layout/hover.d.ts +48 -0
  403. package/dist/types/layout/legend.d.ts +256 -55
  404. package/dist/types/layout/mapping.d.ts +68 -0
  405. package/dist/types/layout/plot.d.ts +41 -0
  406. package/dist/types/layout/scales.d.ts +108 -24
  407. package/dist/types/layout/scales.js +19 -1
  408. package/dist/types/layout/statistics/bollinger.d.ts +18 -0
  409. package/dist/types/layout/statistics/box.d.ts +8 -0
  410. package/dist/types/layout/statistics/box.js +1 -0
  411. package/dist/types/layout/statistics/density.d.ts +27 -0
  412. package/dist/types/layout/statistics/density.js +1 -0
  413. package/dist/types/layout/statistics/index.d.ts +46 -0
  414. package/dist/types/layout/statistics/index.js +1 -0
  415. package/dist/types/layout/statistics/movingAverage.d.ts +12 -0
  416. package/dist/types/layout/statistics/movingAverage.js +1 -0
  417. package/dist/types/layout/statistics/regression.d.ts +20 -0
  418. package/dist/types/layout/statistics/regression.js +1 -0
  419. package/dist/types/layout/styles.d.ts +24 -35
  420. package/dist/types/layout/timeline.d.ts +62 -6
  421. package/dist/types/layout/tooltip.d.ts +7 -85
  422. package/dist/types/markers/all.d.ts +3 -4
  423. package/dist/types/markers/axis/area.d.ts +12 -0
  424. package/dist/types/markers/axis/area.js +1 -0
  425. package/dist/types/markers/axis/arrow.d.ts +15 -0
  426. package/dist/types/markers/axis/arrow.js +1 -0
  427. package/dist/types/markers/axis/axisBasedMarkersConfig.d.ts +29 -0
  428. package/dist/types/markers/axis/axisBasedMarkersConfig.js +1 -0
  429. package/dist/types/markers/axis/bar.d.ts +18 -0
  430. package/dist/types/markers/axis/bar.js +1 -0
  431. package/dist/types/markers/axis/bollinger.d.ts +6 -0
  432. package/dist/types/markers/axis/bollinger.js +1 -0
  433. package/dist/types/markers/axis/box.d.ts +14 -0
  434. package/dist/types/markers/axis/box.js +1 -0
  435. package/dist/types/markers/axis/brush.d.ts +28 -0
  436. package/dist/types/markers/axis/brush.js +1 -0
  437. package/dist/types/markers/axis/cell.d.ts +9 -0
  438. package/dist/types/markers/axis/cell.js +1 -0
  439. package/dist/types/markers/axis/component.d.ts +9 -0
  440. package/dist/types/markers/axis/component.js +1 -0
  441. package/dist/types/markers/axis/curveName.d.ts +2 -0
  442. package/dist/types/markers/axis/curveName.js +1 -0
  443. package/dist/types/markers/axis/delaunayLink.d.ts +7 -0
  444. package/dist/types/markers/axis/delaunayLink.js +1 -0
  445. package/dist/types/markers/axis/delaunayMesh.d.ts +7 -0
  446. package/dist/types/markers/axis/delaunayMesh.js +1 -0
  447. package/dist/types/markers/axis/delta.d.ts +27 -0
  448. package/dist/types/markers/axis/delta.js +1 -0
  449. package/dist/types/markers/axis/density.d.ts +12 -0
  450. package/dist/types/markers/axis/density.js +1 -0
  451. package/dist/types/markers/axis/difference.d.ts +12 -0
  452. package/dist/types/markers/axis/difference.js +1 -0
  453. package/dist/types/markers/axis/hover.d.ts +21 -0
  454. package/dist/types/markers/axis/hover.js +1 -0
  455. package/dist/types/markers/axis/hull.d.ts +7 -0
  456. package/dist/types/markers/axis/hull.js +1 -0
  457. package/dist/types/markers/axis/image.d.ts +12 -0
  458. package/dist/types/markers/axis/image.js +1 -0
  459. package/dist/types/markers/axis/line.d.ts +7 -0
  460. package/dist/types/markers/axis/line.js +1 -0
  461. package/dist/types/markers/axis/raster.d.ts +18 -0
  462. package/dist/types/markers/axis/raster.js +1 -0
  463. package/dist/types/markers/axis/rect.d.ts +15 -0
  464. package/dist/types/markers/axis/rect.js +1 -0
  465. package/dist/types/markers/axis/regression.d.ts +6 -0
  466. package/dist/types/markers/axis/regression.js +1 -0
  467. package/dist/types/markers/axis/rule.d.ts +15 -0
  468. package/dist/types/markers/axis/rule.js +1 -0
  469. package/dist/types/markers/axis/tick.d.ts +8 -0
  470. package/dist/types/markers/axis/tick.js +1 -0
  471. package/dist/types/markers/axis/trail.d.ts +14 -0
  472. package/dist/types/markers/axis/trail.js +1 -0
  473. package/dist/types/markers/axis/voronoi.d.ts +7 -0
  474. package/dist/types/markers/axis/voronoi.js +1 -0
  475. package/dist/types/markers/axis/voronoiMesh.d.ts +7 -0
  476. package/dist/types/markers/axis/voronoiMesh.js +1 -0
  477. package/dist/types/markers/axis/waffle.d.ts +13 -0
  478. package/dist/types/markers/axis/waffle.js +1 -0
  479. package/dist/types/markers/basic/basicMarkersConfig.d.ts +4 -0
  480. package/dist/types/markers/basic/basicMarkersConfig.js +1 -0
  481. package/dist/types/markers/basic/dot.d.ts +9 -0
  482. package/dist/types/markers/basic/dot.js +1 -0
  483. package/dist/types/markers/basic/text.d.ts +60 -0
  484. package/dist/types/markers/basic/text.js +1 -0
  485. package/dist/types/markers/basic.d.ts +4 -0
  486. package/dist/types/markers/basic.js +1 -0
  487. package/dist/types/markers/channels/commonMarkerConfig.d.ts +26 -0
  488. package/dist/types/markers/channels/commonMarkerConfig.js +1 -0
  489. package/dist/types/markers/channels/commonMarkerConfigWithArea.d.ts +6 -0
  490. package/dist/types/markers/channels/commonMarkerConfigWithArea.js +1 -0
  491. package/dist/types/markers/channels/commonMarkerConfigWithColor.d.ts +5 -0
  492. package/dist/types/markers/channels/commonMarkerConfigWithColor.js +1 -0
  493. package/dist/types/markers/channels/commonMarkerConfigWithInterval.d.ts +9 -0
  494. package/dist/types/markers/channels/commonMarkerConfigWithInterval.js +1 -0
  495. package/dist/types/markers/channels/commonMarkerConfigWithRadius.d.ts +5 -0
  496. package/dist/types/markers/channels/commonMarkerConfigWithRadius.js +1 -0
  497. package/dist/types/markers/channels/commonMarkerConfigWithSymbol.d.ts +5 -0
  498. package/dist/types/markers/channels/commonMarkerConfigWithSymbol.js +1 -0
  499. package/dist/types/markers/channels/commonMarkerConfigWithWeight.d.ts +5 -0
  500. package/dist/types/markers/channels/commonMarkerConfigWithWeight.js +1 -0
  501. package/dist/types/markers/common.d.ts +30 -103
  502. package/dist/types/markers/common.js +29 -1
  503. package/dist/types/markers/geo/contour.d.ts +27 -0
  504. package/dist/types/markers/geo/contour.js +1 -0
  505. package/dist/types/markers/geo/features.d.ts +12 -0
  506. package/dist/types/markers/geo/features.js +1 -0
  507. package/dist/types/markers/geo/geoComponent.d.ts +7 -0
  508. package/dist/types/markers/geo/geoComponent.js +1 -0
  509. package/dist/types/markers/geo/geoHover.d.ts +6 -0
  510. package/dist/types/markers/geo/geoHover.js +1 -0
  511. package/dist/types/markers/geo/geoMarkersConfig.d.ts +11 -0
  512. package/dist/types/markers/geo/geoMarkersConfig.js +1 -0
  513. package/dist/types/markers/geo/graticule.d.ts +11 -0
  514. package/dist/types/markers/geo/graticule.js +1 -0
  515. package/dist/types/markers/geo/inset.d.ts +50 -0
  516. package/dist/types/markers/geo/inset.js +1 -0
  517. package/dist/types/markers/geo/link.d.ts +13 -0
  518. package/dist/types/markers/geo/link.js +1 -0
  519. package/dist/types/markers/geo/sphere.d.ts +11 -0
  520. package/dist/types/markers/geo/sphere.js +1 -0
  521. package/dist/types/markers/geo/vector.d.ts +17 -0
  522. package/dist/types/markers/geo/vector.js +1 -0
  523. package/dist/types/markers/geo.d.ts +10 -212
  524. package/dist/types/markers/geo.js +10 -1
  525. package/dist/types/markers/traits.d.ts +22 -0
  526. package/dist/types/markers/traits.js +1 -0
  527. package/dist/types/misc/easing.js +1 -0
  528. package/dist/types/misc/viewport.js +1 -0
  529. package/dist/types/phases/data/axes.d.ts +18 -0
  530. package/dist/types/phases/data/axes.js +1 -0
  531. package/dist/types/phases/data/phase.d.ts +26 -0
  532. package/dist/types/phases/data/phase.js +2 -0
  533. package/dist/types/phases/facet/phase.d.ts +18 -0
  534. package/dist/types/phases/facet/phase.js +1 -0
  535. package/dist/types/phases/hover/phase.d.ts +40 -0
  536. package/dist/types/phases/hover/phase.js +1 -0
  537. package/dist/types/phases/index.d.ts +14 -0
  538. package/dist/types/phases/index.js +1 -0
  539. package/dist/types/phases/kind.d.ts +59 -0
  540. package/dist/types/phases/kind.js +1 -0
  541. package/dist/types/phases/mapping/phase.d.ts +5 -0
  542. package/dist/types/phases/mapping/phase.js +1 -0
  543. package/dist/types/phases/markers/phase.d.ts +13 -0
  544. package/dist/types/phases/markers/phase.js +1 -0
  545. package/dist/types/phases/pipeline.d.ts +10 -0
  546. package/dist/types/phases/pipeline.js +1 -0
  547. package/dist/types/phases/scales/phase.d.ts +26 -0
  548. package/dist/types/phases/scales/phase.js +1 -0
  549. package/dist/types/phases/sharedScales/phase.d.ts +12 -0
  550. package/dist/types/phases/sharedScales/phase.js +1 -0
  551. package/dist/types/phases/stage.d.ts +12 -0
  552. package/dist/types/phases/stage.js +1 -0
  553. package/dist/types/phases/state.d.ts +76 -0
  554. package/dist/types/phases/state.js +1 -0
  555. package/dist/types/phases/statistics/phase.d.ts +43 -0
  556. package/dist/types/phases/statistics/phase.js +1 -0
  557. package/dist/types/phases/statistics/source.d.ts +20 -0
  558. package/dist/types/phases/statistics/source.js +7 -0
  559. package/dist/types/phases/styles/phase.d.ts +24 -0
  560. package/dist/types/phases/styles/phase.js +1 -0
  561. package/dist/types/phases/transforms/adapter.d.ts +27 -0
  562. package/dist/types/phases/transforms/adapter.js +1 -0
  563. package/dist/types/phases/transforms/phase.d.ts +50 -0
  564. package/dist/types/phases/transforms/phase.js +1 -0
  565. package/dist/types/plots/area/props.d.ts +10 -0
  566. package/dist/types/plots/area/props.js +1 -0
  567. package/dist/types/plots/area/state.d.ts +6 -0
  568. package/dist/types/plots/area/state.js +1 -0
  569. package/dist/types/plots/bar/props.d.ts +10 -0
  570. package/dist/types/plots/bar/props.js +1 -0
  571. package/dist/types/plots/bar/state.d.ts +6 -0
  572. package/dist/types/plots/bar/state.js +1 -0
  573. package/dist/types/plots/box/props.d.ts +10 -0
  574. package/dist/types/plots/box/props.js +1 -0
  575. package/dist/types/plots/box/state.d.ts +23 -0
  576. package/dist/types/plots/box/state.js +1 -0
  577. package/dist/types/plots/camera.d.ts +7 -17
  578. package/dist/types/plots/constants.d.ts +16 -8
  579. package/dist/types/plots/data/common.d.ts +25 -17
  580. package/dist/types/plots/data/geo.d.ts +26 -12
  581. package/dist/types/plots/gaps.d.ts +19 -38
  582. package/dist/types/plots/geo/props.d.ts +23 -0
  583. package/dist/types/plots/geo/props.js +1 -0
  584. package/dist/types/plots/geo/state.d.ts +82 -0
  585. package/dist/types/plots/geo/state.js +1 -0
  586. package/dist/types/plots/heatmap/props.d.ts +10 -0
  587. package/dist/types/plots/heatmap/props.js +1 -0
  588. package/dist/types/plots/heatmap/state.d.ts +28 -0
  589. package/dist/types/plots/heatmap/state.js +1 -0
  590. package/dist/types/plots/histogram/props.d.ts +18 -0
  591. package/dist/types/plots/histogram/props.js +1 -0
  592. package/dist/types/plots/histogram/state.d.ts +6 -0
  593. package/dist/types/plots/histogram/state.js +1 -0
  594. package/dist/types/plots/line/props.d.ts +10 -0
  595. package/dist/types/plots/line/props.js +1 -0
  596. package/dist/types/plots/line/state.d.ts +9 -0
  597. package/dist/types/plots/line/state.js +1 -0
  598. package/dist/types/plots/props.d.ts +145 -35
  599. package/dist/types/plots/pyramid/props.d.ts +10 -0
  600. package/dist/types/plots/pyramid/props.js +1 -0
  601. package/dist/types/plots/pyramid/state.d.ts +16 -0
  602. package/dist/types/plots/pyramid/state.js +1 -0
  603. package/dist/types/plots/scatter/props.d.ts +10 -0
  604. package/dist/types/plots/scatter/props.js +1 -0
  605. package/dist/types/plots/scatter/state.d.ts +6 -0
  606. package/dist/types/plots/scatter/state.js +1 -0
  607. package/dist/types/plots/segments/common.d.ts +1 -1
  608. package/dist/types/plots/segments/config.d.ts +12 -6
  609. package/dist/types/plots/styling.d.ts +5 -5
  610. package/dist/types/transforms/bin.d.ts +84 -0
  611. package/dist/types/transforms/bin.js +28 -0
  612. package/dist/types/transforms/bollinger.d.ts +21 -0
  613. package/dist/types/transforms/bollinger.js +1 -0
  614. package/dist/types/transforms/common.d.ts +29 -0
  615. package/dist/types/transforms/common.js +16 -0
  616. package/dist/types/transforms/density.d.ts +45 -0
  617. package/dist/types/transforms/density.js +10 -0
  618. package/dist/types/transforms/filter.d.ts +12 -0
  619. package/dist/types/transforms/filter.js +14 -0
  620. package/dist/types/transforms/group.d.ts +70 -0
  621. package/dist/types/transforms/group.js +8 -0
  622. package/dist/types/transforms/index.d.ts +36 -0
  623. package/dist/types/transforms/index.js +1 -0
  624. package/dist/types/transforms/interval.d.ts +21 -0
  625. package/dist/types/transforms/interval.js +14 -0
  626. package/dist/types/transforms/jitter.d.ts +34 -0
  627. package/dist/types/transforms/jitter.js +1 -0
  628. package/dist/types/transforms/map.d.ts +24 -0
  629. package/dist/types/transforms/map.js +1 -0
  630. package/dist/types/transforms/normalize.d.ts +36 -0
  631. package/dist/types/transforms/normalize.js +1 -0
  632. package/dist/types/transforms/select.d.ts +15 -0
  633. package/dist/types/transforms/select.js +1 -0
  634. package/dist/types/transforms/shift.d.ts +20 -0
  635. package/dist/types/transforms/shift.js +1 -0
  636. package/dist/types/transforms/sort.d.ts +31 -0
  637. package/dist/types/transforms/sort.js +14 -0
  638. package/dist/types/transforms/stack.d.ts +64 -0
  639. package/dist/types/transforms/stack.js +12 -0
  640. package/dist/types/transforms/window.d.ts +29 -0
  641. package/dist/types/transforms/window.js +1 -0
  642. package/dist/utils/ContinuousDomain.d.ts +12 -0
  643. package/dist/utils/ContinuousDomain.js +19 -0
  644. package/dist/utils/Interpolation.d.ts +26 -0
  645. package/dist/utils/Interpolation.js +65 -0
  646. package/dist/utils/{color.d.ts → color/contrast.d.ts} +0 -5
  647. package/dist/utils/color/contrast.js +40 -0
  648. package/dist/utils/color/cssColor.d.ts +4 -0
  649. package/dist/utils/color/cssColor.js +77 -0
  650. package/dist/utils/color/index.d.ts +3 -0
  651. package/dist/utils/color/index.js +3 -0
  652. package/dist/utils/color/ramp.d.ts +17 -0
  653. package/dist/utils/color/ramp.js +110 -0
  654. package/dist/utils/grouping.d.ts +9 -5
  655. package/dist/utils/grouping.js +19 -10
  656. package/dist/utils/merge.d.ts +7 -0
  657. package/dist/utils/merge.js +17 -0
  658. package/dist/utils/opacity.d.ts +9 -0
  659. package/dist/utils/opacity.js +38 -0
  660. package/dist/utils/symbol.d.ts +31 -0
  661. package/dist/utils/symbol.js +92 -0
  662. package/docs/architecture.md +137 -0
  663. package/docs/chrome.md +99 -0
  664. package/docs/composer.md +69 -0
  665. package/docs/concepts.md +99 -0
  666. package/docs/development.md +103 -0
  667. package/docs/facets.md +123 -0
  668. package/docs/geo.md +151 -0
  669. package/docs/getting-started.md +78 -0
  670. package/docs/legend.md +153 -0
  671. package/docs/markers.md +117 -0
  672. package/docs/plots.md +284 -0
  673. package/docs/scales.md +95 -0
  674. package/docs/state.md +71 -0
  675. package/docs/styles-and-segments.md +269 -0
  676. package/docs/theming.md +226 -0
  677. package/docs/timeline.md +128 -0
  678. package/docs/tooltip-and-hover.md +128 -0
  679. package/docs/transforms-and-statistics.md +118 -0
  680. package/examples/BarValues.svelte +14 -0
  681. package/examples/Box.svelte +7 -0
  682. package/examples/Chrome.svelte +17 -0
  683. package/examples/ChromeOrder.svelte +18 -0
  684. package/examples/Composer.svelte +23 -0
  685. package/examples/CustomTooltip.svelte +44 -0
  686. package/examples/Facets.svelte +15 -0
  687. package/examples/FacetsCarousel.svelte +14 -0
  688. package/examples/FacetsRowsCols.svelte +23 -0
  689. package/examples/FirstPlot.svelte +7 -0
  690. package/examples/Gaps.svelte +21 -0
  691. package/examples/GroupedBars.svelte +15 -0
  692. package/examples/Heatmap.svelte +7 -0
  693. package/examples/HeatmapSegments.svelte +26 -0
  694. package/examples/Histogram.svelte +14 -0
  695. package/examples/HorizontalBars.svelte +15 -0
  696. package/examples/LegendReader.svelte +8 -0
  697. package/examples/LegendSections.svelte +27 -0
  698. package/examples/LegendToggle.svelte +25 -0
  699. package/examples/LineByRegion.svelte +18 -0
  700. package/examples/LineDates.svelte +15 -0
  701. package/examples/Markers.svelte +27 -0
  702. package/examples/MovingAverage.svelte +15 -0
  703. package/examples/Pyramid.svelte +7 -0
  704. package/examples/Regression.svelte +14 -0
  705. package/examples/ResponsiveLine.svelte +37 -0
  706. package/examples/Scales.svelte +26 -0
  707. package/examples/Scatter.svelte +16 -0
  708. package/examples/SegmentHighlight.svelte +22 -0
  709. package/examples/Segments.svelte +25 -0
  710. package/examples/SegmentsBySeries.svelte +25 -0
  711. package/examples/StackedArea.svelte +16 -0
  712. package/examples/StackedBars.svelte +15 -0
  713. package/examples/TimelinePlayer.svelte +21 -0
  714. package/examples/TimelineRule.svelte +19 -0
  715. package/examples/Tooltip.svelte +19 -0
  716. package/examples/TooltipCard.svelte +86 -0
  717. package/examples/ValueLabels.svelte +21 -0
  718. package/examples/data.ts +324 -0
  719. package/llms-full.txt +142 -0
  720. package/llms.txt +77 -0
  721. package/package.json +42 -5
  722. package/dist/charts/BaseChart.svelte +0 -149
  723. package/dist/charts/BaseChart.svelte.d.ts +0 -47
  724. package/dist/charts/bar/Chart.svelte +0 -110
  725. package/dist/charts/bar/Chart.svelte.d.ts +0 -26
  726. package/dist/charts/container/ChartContainer.svelte +0 -137
  727. package/dist/charts/container/ChartContainer.svelte.d.ts +0 -16
  728. package/dist/charts/heatmap/Chart.svelte +0 -114
  729. package/dist/charts/line/Chart.svelte +0 -112
  730. package/dist/charts/line/Chart.svelte.d.ts +0 -26
  731. package/dist/charts/pyramid/Chart.svelte +0 -134
  732. package/dist/charts/pyramid/Chart.svelte.d.ts +0 -30
  733. package/dist/charts/scatter/Chart.svelte +0 -95
  734. package/dist/charts/scatter/Chart.svelte.d.ts +0 -28
  735. package/dist/layout/coordinates/margins.d.ts +0 -16
  736. package/dist/layout/coordinates/margins.js +0 -11
  737. package/dist/layout/legend/interaction.svelte.d.ts +0 -15
  738. package/dist/layout/legend/interaction.svelte.js +0 -32
  739. package/dist/layout/plot/BasePlotLayout.svelte +0 -332
  740. package/dist/layout/plot/BasePlotLayout.svelte.d.ts +0 -122
  741. package/dist/layout/plot/margins.d.ts +0 -18
  742. package/dist/layout/plot/margins.js +0 -15
  743. package/dist/layout/plot/measureText.d.ts +0 -4
  744. package/dist/layout/plot/measureText.js +0 -19
  745. package/dist/layout/scales/buildScale.d.ts +0 -25
  746. package/dist/layout/scales/buildScale.js +0 -90
  747. package/dist/layout/scales/niceDomain.d.ts +0 -23
  748. package/dist/layout/scales/niceDomain.js +0 -59
  749. package/dist/layout/tooltip/TooltipLayout.svelte +0 -51
  750. package/dist/layout/tooltip/TooltipLayout.svelte.d.ts +0 -45
  751. package/dist/layout/tooltip/controller.svelte.d.ts +0 -61
  752. package/dist/layout/tooltip/controller.svelte.js +0 -173
  753. package/dist/layout/tooltip/hover.svelte.d.ts +0 -7
  754. package/dist/layout/tooltip/hover.svelte.js +0 -28
  755. package/dist/layout/tooltip/resolveTooltipPlacement.d.ts +0 -24
  756. package/dist/layout/tooltip/resolveTooltipPlacement.js +0 -49
  757. package/dist/layout/tooltip/utils.d.ts +0 -49
  758. package/dist/layout/tooltip/utils.js +0 -82
  759. package/dist/markers/CellMarker.svelte +0 -21
  760. package/dist/markers/ContourClipMarker.svelte +0 -77
  761. package/dist/markers/ContourMarker.svelte +0 -28
  762. package/dist/markers/DeltaMarker.svelte +0 -109
  763. package/dist/markers/DotMarker.svelte +0 -70
  764. package/dist/markers/GeoFeaturesMarker.svelte +0 -19
  765. package/dist/markers/GeoHoverMarker.svelte +0 -25
  766. package/dist/markers/GraticuleMarker.svelte +0 -18
  767. package/dist/markers/HoverMarker.svelte +0 -212
  768. package/dist/markers/LineMarker.svelte +0 -19
  769. package/dist/markers/LinkMarker.svelte +0 -42
  770. package/dist/markers/PeakMarker.svelte +0 -80
  771. package/dist/markers/PeakMarker.svelte.d.ts +0 -13
  772. package/dist/markers/RuleMarker.svelte +0 -24
  773. package/dist/markers/SphereMarker.svelte +0 -15
  774. package/dist/markers/TextMarker.svelte +0 -62
  775. package/dist/markers/VectorMarker.svelte +0 -20
  776. package/dist/plots/bar/ValueLabels.svelte +0 -149
  777. package/dist/plots/bar/ValueLabels.svelte.d.ts +0 -58
  778. package/dist/plots/bar/buildBarMarkers.d.ts +0 -27
  779. package/dist/plots/bar/buildBarMarkers.js +0 -151
  780. package/dist/plots/bar/hoverPoints.d.ts +0 -15
  781. package/dist/plots/bar/hoverPoints.js +0 -37
  782. package/dist/plots/bar/layout.svelte.d.ts +0 -42
  783. package/dist/plots/bar/layout.svelte.js +0 -182
  784. package/dist/plots/geo/buildGeoMarkers.d.ts +0 -33
  785. package/dist/plots/geo/buildGeoMarkers.js +0 -47
  786. package/dist/plots/heatmap/ValueLabels.svelte +0 -56
  787. package/dist/plots/heatmap/buildCellMarkers.d.ts +0 -21
  788. package/dist/plots/heatmap/buildCellMarkers.js +0 -25
  789. package/dist/plots/line/ValueLabels.svelte +0 -269
  790. package/dist/plots/line/ValueLabels.svelte.d.ts +0 -52
  791. package/dist/plots/line/buildGapMarkers.d.ts +0 -28
  792. package/dist/plots/line/buildGapMarkers.js +0 -74
  793. package/dist/plots/line/buildLineMarkers.d.ts +0 -16
  794. package/dist/plots/line/buildLineMarkers.js +0 -56
  795. package/dist/plots/line/valueLabelMargin.d.ts +0 -19
  796. package/dist/plots/line/valueLabelMargin.js +0 -65
  797. package/dist/plots/pyramid/ValueLabels.svelte +0 -139
  798. package/dist/plots/pyramid/ValueLabels.svelte.d.ts +0 -56
  799. package/dist/plots/pyramid/buildPyramidBarMarkers.d.ts +0 -26
  800. package/dist/plots/pyramid/buildPyramidBarMarkers.js +0 -72
  801. package/dist/plots/scatter/ValueLabels.svelte +0 -163
  802. package/dist/plots/scatter/ValueLabels.svelte.d.ts +0 -52
  803. package/dist/plots/scatter/buildScatterMarkers.d.ts +0 -12
  804. package/dist/plots/scatter/buildScatterMarkers.js +0 -36
  805. package/dist/plots/scatter/resolveRadiusPaddedDomain.d.ts +0 -10
  806. package/dist/plots/scatter/resolveRadiusPaddedDomain.js +0 -23
  807. package/dist/plots/utils/categoricalAxisMargin.d.ts +0 -14
  808. package/dist/plots/utils/categoricalAxisMargin.js +0 -20
  809. package/dist/plots/utils/declutter.d.ts +0 -120
  810. package/dist/plots/utils/declutter.js +0 -240
  811. package/dist/plots/utils/labelOverflow.svelte.d.ts +0 -107
  812. package/dist/plots/utils/labelOverflow.svelte.js +0 -257
  813. package/dist/plots/utils/legendDisabled.d.ts +0 -27
  814. package/dist/plots/utils/legendDisabled.js +0 -68
  815. package/dist/plots/utils/valueLabelMargin.d.ts +0 -67
  816. package/dist/plots/utils/valueLabelMargin.js +0 -60
  817. package/dist/types/charts/common.d.ts +0 -22
  818. package/dist/types/charts/props.d.ts +0 -50
  819. package/dist/types/markers/base.d.ts +0 -45
  820. package/dist/types/markers/line.d.ts +0 -34
  821. package/dist/types/markers/props.d.ts +0 -11
  822. package/dist/types/plots/data/scatter.d.ts +0 -13
  823. package/dist/utils/color.js +0 -141
  824. package/dist/utils/delta.d.ts +0 -12
  825. package/dist/utils/delta.js +0 -69
  826. package/dist/utils/edgeAwareAnchor.d.ts +0 -34
  827. package/dist/utils/edgeAwareAnchor.js +0 -60
  828. package/dist/utils/interpolate.d.ts +0 -31
  829. package/dist/utils/interpolate.js +0 -71
  830. /package/dist/types/{charts/common.js → layout/box.js} +0 -0
  831. /package/dist/types/{charts/interpolate.js → layout/composer.js} +0 -0
  832. /package/dist/types/{charts/props.js → layout/figure.js} +0 -0
  833. /package/dist/types/{markers/base.js → layout/grid.js} +0 -0
  834. /package/dist/types/{markers/line.js → layout/hover.js} +0 -0
  835. /package/dist/types/{markers/props.js → layout/mapping.js} +0 -0
  836. /package/dist/types/{plots/data/scatter.js → layout/plot.js} +0 -0
  837. /package/dist/types/{viewport.js → layout/statistics/bollinger.js} +0 -0
  838. /package/dist/types/{charts/interpolate.d.ts → misc/easing.d.ts} +0 -0
  839. /package/dist/types/{viewport.d.ts → misc/viewport.d.ts} +0 -0
@@ -0,0 +1,143 @@
1
+ <script lang="ts">
2
+ import { BoxX, BoxY } from 'svelteplot';
3
+ import { usePlot } from '../../layout/plot/usePlot';
4
+ import { contrastTextColor } from '../../utils/color';
5
+ import { getConfiguration } from '../../configuration/config.svelte';
6
+ import type { BoxMarkerConfig } from '../../types/markers/common';
7
+
8
+ /**
9
+ * Renders one `'box'` marker as `<BoxX>` or `<BoxY>`, picked from the
10
+ * way the plot runs (`usePlot().axes`) - `marker.x`/`marker.y`
11
+ * map straight onto the plot's axes either way.
12
+ * `bar`/`rule`/`dot`/`tickMedian`/`tickMinMax` forward straight through to
13
+ * svelteplot's own same-named options - see `BoxMarkerConfig`'s own doc
14
+ * comment for the default styling this wrapper adds on top, inherited
15
+ * from `bar`.
16
+ */
17
+ let { marker }: { marker: BoxMarkerConfig } = $props();
18
+
19
+ const plot = usePlot();
20
+ const isHorizontal = $derived(plot.axes?.isHorizontal ?? false);
21
+
22
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
23
+ const data = $derived((marker.data ?? []) as any[]);
24
+
25
+ const cfg = $derived(getConfiguration());
26
+
27
+ /**
28
+ * The bar's own fully-resolved options - the author's own `bar`, with
29
+ * `fill` defaulted to this package's own `cfg.palette[0]` when unset
30
+ * (svelteplot's own bare default, `currentColor`, can't be resolved to a
31
+ * real color at this layer). Every other sub-mark's own default styling
32
+ * (below) is derived from this one object, so a change to `bar` (e.g. its
33
+ * `fillOpacity`) cascades to `rule`/`dot`/both ticks unless that sub-mark's
34
+ * own options object overrides the specific field.
35
+ */
36
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
37
+ const bar: Record<string, any> = $derived({
38
+ fill:
39
+ (typeof marker.bar === 'object' && marker.bar.fill != null
40
+ ? (marker.bar.fill as string)
41
+ : undefined) ?? cfg.palette[0],
42
+ ...(typeof marker.bar === 'object' ? marker.bar : {})
43
+ });
44
+ const barFill = $derived(bar.fill as string);
45
+
46
+ /** `bar.insetLeft`/`insetRight` averaged into one symmetric value - a tick's own `inset` is a single number/percentage, not independent left/right. */
47
+ const tickInset = $derived.by(() => {
48
+ const l = typeof bar.insetLeft === 'number' ? bar.insetLeft : undefined;
49
+ const r = typeof bar.insetRight === 'number' ? bar.insetRight : undefined;
50
+ if (l === undefined && r === undefined) return undefined;
51
+ return ((l ?? 0) + (r ?? 0)) / 2;
52
+ });
53
+
54
+ /**
55
+ * The style fields a line-shaped sub-mark (`rule`, `tickMedian`,
56
+ * `tickMinMax` - stroke, no fill) inherits from `bar` by default, besides
57
+ * its own `stroke` color (passed in separately: contrasting for
58
+ * `tickMedian`, matching for `rule`/`tickMinMax`).
59
+ */
60
+ function lineStyleDefaults(strokeColor: string): Record<string, unknown> {
61
+ const out: Record<string, unknown> = { stroke: strokeColor };
62
+ if (bar.strokeWidth !== undefined) out.strokeWidth = bar.strokeWidth;
63
+ const strokeOpacity = bar.fillOpacity ?? bar.opacity;
64
+ if (strokeOpacity !== undefined) out.strokeOpacity = strokeOpacity;
65
+ if (bar.opacity !== undefined) out.opacity = bar.opacity;
66
+ return out;
67
+ }
68
+
69
+ /** The style fields `dot` (fill + stroke, like `bar` itself) inherits from `bar` by default. */
70
+ function fillStyleDefaults(): Record<string, unknown> {
71
+ const out: Record<string, unknown> = { fill: barFill };
72
+ if (bar.fillOpacity !== undefined) out.fillOpacity = bar.fillOpacity;
73
+ if (bar.stroke !== undefined) out.stroke = bar.stroke;
74
+ if (bar.strokeWidth !== undefined) out.strokeWidth = bar.strokeWidth;
75
+ if (bar.strokeOpacity !== undefined) out.strokeOpacity = bar.strokeOpacity;
76
+ if (bar.opacity !== undefined) out.opacity = bar.opacity;
77
+ return out;
78
+ }
79
+
80
+ const ruleDefault = $derived(lineStyleDefaults(barFill));
81
+ const dotDefault = $derived(fillStyleDefaults());
82
+ const tickMedianDefault = $derived({
83
+ ...lineStyleDefaults(contrastTextColor(barFill)),
84
+ ...(tickInset !== undefined ? { inset: tickInset } : {})
85
+ });
86
+ const tickMinMaxDefault = $derived({
87
+ ...lineStyleDefaults(barFill),
88
+ ...(tickInset !== undefined ? { inset: tickInset } : {})
89
+ });
90
+
91
+ /**
92
+ * Resolves a `tickMedian`/`tickMinMax` value against this package's own
93
+ * default (enabled, with `defaultStyle`) - `false` hides it; `true` or
94
+ * unset shows it at just the default style; an options object shows it
95
+ * with the default style as a base, overridden by whatever the object
96
+ * itself sets.
97
+ */
98
+ function resolveTick(
99
+ value: boolean | Record<string, unknown> | undefined,
100
+ defaultStyle: Record<string, unknown>
101
+ ): Record<string, unknown> | false {
102
+ if (value === false) return false;
103
+ if (value === undefined || value === true) return defaultStyle;
104
+ return { ...defaultStyle, ...value };
105
+ }
106
+
107
+ const tickMedian = $derived(resolveTick(marker.tickMedian, tickMedianDefault));
108
+ const tickMinMax = $derived(resolveTick(marker.tickMinMax, tickMinMaxDefault));
109
+ const rule = $derived({
110
+ ...ruleDefault,
111
+ ...(typeof marker.rule === 'object' ? marker.rule : {})
112
+ });
113
+ /**
114
+ * `dot.fill: true` is svelteplot's own `currentColor` shorthand, which would
115
+ * paint the outliers in the text color. Here it means the box's own fill,
116
+ * so outliers take the series color like the box does.
117
+ */
118
+ const dot = $derived.by(() => {
119
+ const own = typeof marker.dot === 'object' ? marker.dot : {};
120
+ const fill = own.fill === true ? barFill : 'fill' in own ? own.fill : dotDefault.fill;
121
+ return { ...dotDefault, ...own, fill };
122
+ });
123
+
124
+ /**
125
+ * Cast once here (rather than at each call site) since this package's own
126
+ * `Record<string, unknown>` is looser than svelteplot's own
127
+ * `Record<string, ChannelAccessor>`.
128
+ */
129
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
130
+ const passthrough: Record<string, any> = $derived({
131
+ bar,
132
+ rule,
133
+ dot,
134
+ tickMedian,
135
+ tickMinMax
136
+ });
137
+ </script>
138
+
139
+ {#if isHorizontal}
140
+ <BoxX {data} x={marker.x} y={marker.y} sort={marker.sort} {...passthrough} />
141
+ {:else}
142
+ <BoxY {data} x={marker.x} y={marker.y} sort={marker.sort} {...passthrough} />
143
+ {/if}
@@ -0,0 +1,7 @@
1
+ import type { BoxMarkerConfig } from '../../types/markers/common';
2
+ type $$ComponentProps = {
3
+ marker: BoxMarkerConfig;
4
+ };
5
+ declare const BoxMarker: import("svelte").Component<$$ComponentProps, {}, "">;
6
+ type BoxMarker = ReturnType<typeof BoxMarker>;
7
+ export default BoxMarker;
@@ -0,0 +1,32 @@
1
+ <script lang="ts">
2
+ import { Brush } from 'svelteplot';
3
+ import type { BrushMarkerConfig, BrushSelection } from '../../types/markers/common';
4
+
5
+ /**
6
+ * Renders one `'brush'` marker as `<Brush>`. svelteplot's `Brush` binds its
7
+ * selection, so this wrapper owns that state (seeded once from
8
+ * `marker.brush`) and surfaces changes through the `onbrush*` callbacks.
9
+ * svelteplot's `Brush` spreads its props over its defaults, so an explicit
10
+ * `undefined` would erase them - each default is restated here instead.
11
+ */
12
+ let { marker }: { marker: BrushMarkerConfig } = $props();
13
+
14
+ // svelte-ignore state_referenced_locally
15
+ let brush = $state<BrushSelection>(marker.brush ?? { enabled: false });
16
+ </script>
17
+
18
+ <Brush
19
+ bind:brush
20
+ limitDimension={marker.limitDimension ?? false}
21
+ constrainToDomain={marker.constrainToDomain ?? false}
22
+ resizeHandleSize={marker.resizeHandleSize ?? 10}
23
+ onbrushstart={marker.onbrushstart}
24
+ onbrush={marker.onbrush}
25
+ onbrushend={marker.onbrushend}
26
+ stroke={marker.styles?.stroke ?? 'currentColor'}
27
+ strokeWidth={marker.styles?.strokeWidth}
28
+ strokeOpacity={marker.styles?.strokeOpacity ?? 0.6}
29
+ strokeDasharray={marker.styles?.strokeDasharray ?? '2,3'}
30
+ strokeLinecap={marker.styles?.strokeLinecap}
31
+ strokeLinejoin={marker.styles?.strokeLinejoin}
32
+ />
@@ -0,0 +1,7 @@
1
+ import type { BrushMarkerConfig } from '../../types/markers/common';
2
+ type $$ComponentProps = {
3
+ marker: BrushMarkerConfig;
4
+ };
5
+ declare const BrushMarker: import("svelte").Component<$$ComponentProps, {}, "">;
6
+ type BrushMarker = ReturnType<typeof BrushMarker>;
7
+ export default BrushMarker;
@@ -0,0 +1,27 @@
1
+ <script lang="ts">
2
+ import { Cell } from 'svelteplot';
3
+ import { MarkerChannels } from '../utils/MarkerChannels';
4
+ import { getConfiguration } from '../../configuration/config.svelte';
5
+ import type { CellMarkerConfig } from '../../types/markers/common';
6
+
7
+ /** Renders one `'cell'` marker as a `<Cell>` call. */
8
+ let { marker }: { marker: CellMarkerConfig } = $props();
9
+
10
+ const cfg = $derived(getConfiguration());
11
+ const data = $derived(marker.data ?? []);
12
+ const channelFill = $derived(MarkerChannels.buildFill(data, marker.color, marker.scales, cfg));
13
+ </script>
14
+
15
+ <Cell
16
+ {data}
17
+ x={marker.x}
18
+ y={marker.y}
19
+ fill={channelFill ?? marker.fill}
20
+ fillOpacity={marker.styles?.fillOpacity ?? 1}
21
+ stroke={marker.styles?.stroke}
22
+ strokeWidth={marker.styles?.strokeWidth ?? 0}
23
+ strokeOpacity={marker.styles?.strokeOpacity}
24
+ strokeDasharray={marker.styles?.strokeDasharray}
25
+ borderRadius={marker.styles?.borderRadius}
26
+ inset={marker.inset ?? 0.5}
27
+ />
@@ -1,4 +1,4 @@
1
- import type { CellMarkerConfig } from '../types/markers/common';
1
+ import type { CellMarkerConfig } from '../../types/markers/common';
2
2
  type $$ComponentProps = {
3
3
  marker: CellMarkerConfig;
4
4
  };
@@ -0,0 +1,83 @@
1
+ <script lang="ts">
2
+ import { geoPath, type GeoPath } from 'd3-geo';
3
+ import { usePlot } from '../../layout/plot/usePlot';
4
+ import type { Snippet } from 'svelte';
5
+ import type { GeoFeature } from '../../types/plots/data/geo';
6
+
7
+ /**
8
+ * Masks a `contour` marker to just the landmass (`'land'`) or just the
9
+ * water (`'ocean'`) of the plot's own base map, via an SVG `clipPath` -
10
+ * lets a filled contour read as "temperature over land" without also
11
+ * painting straight across the ocean, or vice versa. A no-op passthrough
12
+ * when `mode` is unset, so this can unconditionally wrap every `contour`
13
+ * marker without an extra branch at each call site.
14
+ *
15
+ * Builds the clip path from the plot's own shared, already-fitted
16
+ * projection (`usePlot()` - the same hook `TileLayer.svelte` uses) rather
17
+ * than an independent one, so it lines up with the rest of the map
18
+ * regardless of projection/zoom. `'ocean'` unions the sphere and land
19
+ * paths into one `clip-rule: evenodd` shape - the sphere covers
20
+ * everything, then every land ring toggles back out, leaving only water.
21
+ */
22
+ let {
23
+ mode,
24
+ features,
25
+ children
26
+ }: {
27
+ mode: 'land' | 'ocean' | undefined;
28
+ features: GeoFeature<Record<string, unknown>>[];
29
+ children: Snippet;
30
+ } = $props();
31
+
32
+ const plot = usePlot().svelteplot;
33
+ const clipId = `geo-contour-clip-${Math.random().toString(36).slice(2, 9)}`;
34
+
35
+ // Same runtime shape TileLayer.svelte relies on - svelteplot's own
36
+ // `PlotScale` type doesn't reflect it, but `plot.scales.projection` is a
37
+ // real `d3-geo`-compatible stream source at runtime.
38
+ const path: GeoPath = $derived(
39
+ geoPath(plot.scales.projection as unknown as Parameters<typeof geoPath>[0])
40
+ );
41
+ // Some real-world datasets carry exact-duplicate features for the same
42
+ // territory (seen in this repo's own `WORLD_COUNTRIES` fixture, for every
43
+ // South American country) - harmless for an ordinary filled `<Geo>` (the
44
+ // duplicate just redraws the same shape), but fatal here: two identical,
45
+ // oppositely-would-be-redundant copies of the same ring toggle each other
46
+ // back out under `clip-rule: evenodd`, silently punching a hole exactly
47
+ // where the duplicated territory is. Deduping by geometry keeps this
48
+ // correct regardless of whether the caller's data happens to be clean.
49
+ const uniqueGeometries = $derived(
50
+ Array.from(
51
+ new Map(
52
+ features.map((f) => [JSON.stringify(f.geometry), f as unknown as GeoJSON.Feature])
53
+ ).values()
54
+ )
55
+ );
56
+ const landPath = $derived(
57
+ uniqueGeometries
58
+ .map((f) => path(f))
59
+ .filter((d): d is string => !!d)
60
+ .join(' ')
61
+ );
62
+ // `{type: 'Sphere'}` is d3-geo's own pseudo-geometry for "the whole
63
+ // globe" - not part of the GeoJSON spec, so `@types/geojson` has no type
64
+ // for it either.
65
+ const spherePath = $derived(path({ type: 'Sphere' } as unknown as GeoJSON.Feature) ?? '');
66
+ </script>
67
+
68
+ {#if mode}
69
+ <defs>
70
+ <clipPath id={clipId}>
71
+ {#if mode === 'land'}
72
+ <path d={landPath} clip-rule="evenodd" />
73
+ {:else}
74
+ <path d="{spherePath} {landPath}" clip-rule="evenodd" />
75
+ {/if}
76
+ </clipPath>
77
+ </defs>
78
+ <g clip-path="url(#{clipId})">
79
+ {@render children()}
80
+ </g>
81
+ {:else}
82
+ {@render children()}
83
+ {/if}
@@ -1,5 +1,5 @@
1
1
  import type { Snippet } from 'svelte';
2
- import type { GeoFeature } from '../types/plots/data/geo';
2
+ import type { GeoFeature } from '../../types/plots/data/geo';
3
3
  type $$ComponentProps = {
4
4
  mode: 'land' | 'ocean' | undefined;
5
5
  features: GeoFeature<Record<string, unknown>>[];
@@ -0,0 +1,28 @@
1
+ <script lang="ts">
2
+ import { Contour } from 'svelteplot';
3
+ import type { GeoContourMarkerConfig } from '../../types/markers/geo';
4
+
5
+ /**
6
+ * Renders one `'contour'` marker's `<Contour>` mark. `marker.clip` is
7
+ * handled by the caller (`GeometryLayout` wraps this in `ContourClipMarker`)
8
+ * - this component only draws the contour itself.
9
+ */
10
+ let { marker }: { marker: GeoContourMarkerConfig } = $props();
11
+ </script>
12
+
13
+ <!-- No `?? 'none'` fallback: an unset `fill` should leave svelteplot's own default (`fill="none"`) in place, not run the literal string `'none'` through the color scale. -->
14
+ <Contour
15
+ class="contour"
16
+ data={marker.data}
17
+ x={marker.x}
18
+ y={marker.y}
19
+ value={marker.value}
20
+ thresholds={marker.thresholds}
21
+ fill={marker.fill}
22
+ stroke={marker.stroke ?? 'currentColor'}
23
+ strokeWidth={marker.styles?.strokeWidth}
24
+ fillOpacity={marker.styles?.fillOpacity}
25
+ strokeOpacity={marker.styles?.strokeOpacity}
26
+ blur={marker.blur}
27
+ interpolate={marker.interpolate}
28
+ />
@@ -1,4 +1,4 @@
1
- import type { GeoContourMarkerConfig } from '../types/markers/geo';
1
+ import type { GeoContourMarkerConfig } from '../../types/markers/geo';
2
2
  type $$ComponentProps = {
3
3
  marker: GeoContourMarkerConfig;
4
4
  };
@@ -0,0 +1,26 @@
1
+ <script lang="ts">
2
+ import { DelaunayLink } from 'svelteplot';
3
+ import { MarkerChannels } from '../utils/MarkerChannels';
4
+ import { getConfiguration } from '../../configuration/config.svelte';
5
+ import type { DelaunayLinkMarkerConfig } from '../../types/markers/common';
6
+
7
+ /** Renders one `'delaunayLink'` marker as `<DelaunayLink>` - one line per Delaunay triangulation edge. */
8
+ let { marker }: { marker: DelaunayLinkMarkerConfig } = $props();
9
+
10
+ const cfg = $derived(getConfiguration());
11
+ const data = $derived(marker.data ?? []);
12
+ const channelColor = $derived(MarkerChannels.buildFill(data, marker.color, marker.scales, cfg));
13
+ </script>
14
+
15
+ <DelaunayLink
16
+ {data}
17
+ x={marker.x}
18
+ y={marker.y}
19
+ z={marker.grouping}
20
+ fill={marker.styles?.fill}
21
+ fillOpacity={marker.styles?.fillOpacity}
22
+ stroke={marker.styles?.stroke ?? channelColor}
23
+ strokeWidth={marker.styles?.strokeWidth}
24
+ strokeOpacity={marker.styles?.strokeOpacity}
25
+ strokeDasharray={marker.styles?.strokeDasharray}
26
+ />
@@ -0,0 +1,7 @@
1
+ import type { DelaunayLinkMarkerConfig } from '../../types/markers/common';
2
+ type $$ComponentProps = {
3
+ marker: DelaunayLinkMarkerConfig;
4
+ };
5
+ declare const DelaunayLinkMarker: import("svelte").Component<$$ComponentProps, {}, "">;
6
+ type DelaunayLinkMarker = ReturnType<typeof DelaunayLinkMarker>;
7
+ export default DelaunayLinkMarker;
@@ -0,0 +1,26 @@
1
+ <script lang="ts">
2
+ import { DelaunayMesh } from 'svelteplot';
3
+ import { MarkerChannels } from '../utils/MarkerChannels';
4
+ import { getConfiguration } from '../../configuration/config.svelte';
5
+ import type { DelaunayMeshMarkerConfig } from '../../types/markers/common';
6
+
7
+ /** Renders one `'delaunayMesh'` marker as `<DelaunayMesh>` - the Delaunay triangulation as a single mesh. */
8
+ let { marker }: { marker: DelaunayMeshMarkerConfig } = $props();
9
+
10
+ const cfg = $derived(getConfiguration());
11
+ const data = $derived(marker.data ?? []);
12
+ const channelColor = $derived(MarkerChannels.buildFill(data, marker.color, marker.scales, cfg));
13
+ </script>
14
+
15
+ <DelaunayMesh
16
+ {data}
17
+ x={marker.x}
18
+ y={marker.y}
19
+ z={marker.grouping}
20
+ fill={marker.styles?.fill}
21
+ fillOpacity={marker.styles?.fillOpacity}
22
+ stroke={marker.styles?.stroke ?? channelColor}
23
+ strokeWidth={marker.styles?.strokeWidth}
24
+ strokeOpacity={marker.styles?.strokeOpacity}
25
+ strokeDasharray={marker.styles?.strokeDasharray}
26
+ />
@@ -0,0 +1,7 @@
1
+ import type { DelaunayMeshMarkerConfig } from '../../types/markers/common';
2
+ type $$ComponentProps = {
3
+ marker: DelaunayMeshMarkerConfig;
4
+ };
5
+ declare const DelaunayMeshMarker: import("svelte").Component<$$ComponentProps, {}, "">;
6
+ type DelaunayMeshMarker = ReturnType<typeof DelaunayMeshMarker>;
7
+ export default DelaunayMeshMarker;
@@ -0,0 +1,21 @@
1
+ import type { Series } from '../../types/plots/data/common';
2
+ import type { DeltaConfig } from '../../types/markers/axis/delta';
3
+ /** A delta, measured: where it sits (`at`), its two ends and what lies between. */
4
+ export type ResolvedDelta = {
5
+ cfg: DeltaConfig;
6
+ at: number;
7
+ from: number;
8
+ to: number;
9
+ diff: number;
10
+ mid: number;
11
+ };
12
+ /**
13
+ * A delta marker's measure: the gap, at one position along `axis`, between
14
+ * the two curves (or axis lines) it compares. A target series is read where
15
+ * it crosses that position, interpolated linearly between its two nearest points.
16
+ */
17
+ export declare class Delta {
18
+ #private;
19
+ /** The delta `config` asks for over `allSeries`, or `undefined` while an end has no value there. */
20
+ static build<T extends Record<string, unknown>>(axis: 'x' | 'y', allSeries: Series<T>[], config: DeltaConfig): ResolvedDelta | undefined;
21
+ }
@@ -0,0 +1,60 @@
1
+ import { resolveAccessor } from '../../plots/utils/accessors';
2
+ /**
3
+ * A delta marker's measure: the gap, at one position along `axis`, between
4
+ * the two curves (or axis lines) it compares. A target series is read where
5
+ * it crosses that position, interpolated linearly between its two nearest points.
6
+ */
7
+ export class Delta {
8
+ /** The delta `config` asks for over `allSeries`, or `undefined` while an end has no value there. */
9
+ static build(axis, allSeries, config) {
10
+ const at = Number(config.at);
11
+ const from = Delta.#endpoint(axis, allSeries, config.from, at);
12
+ const to = config.to ? Delta.#endpoint(axis, allSeries, config.to, at) : 0;
13
+ if (from === null || to === null)
14
+ return undefined;
15
+ return {
16
+ cfg: config,
17
+ at,
18
+ from,
19
+ to,
20
+ diff: Math.abs(from - to),
21
+ mid: (from + to) / 2
22
+ };
23
+ }
24
+ /**
25
+ * Where `target` stands at `at` along `axis`: its value on the other axis,
26
+ * or an axis line's own. For `y`, the series' first crossing of that value.
27
+ */
28
+ static #endpoint(axis, allSeries, target, at) {
29
+ if (target.type === 'axis')
30
+ return target.value ?? 0;
31
+ const series = allSeries.find((s) => s.name === target.series);
32
+ if (!series)
33
+ return null;
34
+ const getX = (d) => Number(resolveAccessor(series.x)(d));
35
+ const getY = (d) => Number(resolveAccessor(series.y)(d));
36
+ return axis === 'x'
37
+ ? Delta.#interpolate(series.data, getX, getX, getY, at)
38
+ : Delta.#interpolate(series.data, getX, getY, getX, at);
39
+ }
40
+ /**
41
+ * Sorts `data` by `sortBy`, then finds the first adjacent pair where `scanBy`
42
+ * brackets `target` and linearly interpolates `measureBy` at that crossing.
43
+ */
44
+ static #interpolate(data, sortBy, scanBy, measureBy, target) {
45
+ const sorted = [...data].sort((a, b) => sortBy(a) - sortBy(b));
46
+ for (let i = 0; i < sorted.length; i++) {
47
+ if (scanBy(sorted[i]) === target)
48
+ return measureBy(sorted[i]);
49
+ }
50
+ for (let i = 0; i < sorted.length - 1; i++) {
51
+ const s0 = scanBy(sorted[i]);
52
+ const s1 = scanBy(sorted[i + 1]);
53
+ if ((s0 <= target && target <= s1) || (s1 <= target && target <= s0)) {
54
+ const t = (target - s0) / (s1 - s0);
55
+ return measureBy(sorted[i]) + t * (measureBy(sorted[i + 1]) - measureBy(sorted[i]));
56
+ }
57
+ }
58
+ return null;
59
+ }
60
+ }
@@ -0,0 +1,96 @@
1
+ <script lang="ts" generics="TData extends Record<string, unknown>">
2
+ import { Line } from 'svelteplot';
3
+ import DotMarker from '../dot/DotMarker.svelte';
4
+ import TextMarker from '../text/TextMarker.svelte';
5
+ import { Delta } from './Delta';
6
+ import { getConfiguration } from '../../configuration/config.svelte';
7
+ import type { Series } from '../../types/plots/data/common';
8
+ import type { DeltaMarkerConfig } from '../../types/markers/axis/delta';
9
+
10
+ let { marker, data = [] }: { marker: DeltaMarkerConfig; data?: Series<TData>[] } = $props();
11
+
12
+ const resolved = $derived(Delta.build(marker.axis, data, marker));
13
+ const label = $derived(getConfiguration().delta.text[marker.axis]);
14
+ const lineAnchor = $derived(marker.text?.lineAnchor ?? label.lineAnchor);
15
+
16
+ const clampRange = $derived.by((): [number, number] | undefined => {
17
+ const domain = marker.axis === 'x' ? marker.yDomain : marker.xDomain;
18
+ if (!domain || domain.length < 2) return undefined;
19
+ const lo = Number(domain[0]);
20
+ const hi = Number(domain[domain.length - 1]);
21
+ return isNaN(lo) || isNaN(hi) ? undefined : [Math.min(lo, hi), Math.max(lo, hi)];
22
+ });
23
+
24
+ function clamp(v: number): number {
25
+ return clampRange ? Math.max(clampRange[0], Math.min(clampRange[1], v)) : v;
26
+ }
27
+
28
+ function pt(fixed: number, varying: number) {
29
+ return marker.axis === 'x' ? { x: fixed, y: varying } : { x: varying, y: fixed };
30
+ }
31
+
32
+ function textVaryCoord(fromVis: number, toVis: number) {
33
+ return lineAnchor === 'top'
34
+ ? Math.max(fromVis, toVis)
35
+ : lineAnchor === 'bottom'
36
+ ? Math.min(fromVis, toVis)
37
+ : (fromVis + toVis) / 2;
38
+ }
39
+
40
+ // Pre-derive all coordinates as script-level signals so prop getters read safe
41
+ // values during Svelte 5 teardown, before the {#if} guard finishes unmounting.
42
+ const coords = $derived.by(() => {
43
+ if (!resolved) return null;
44
+ const fromVis = clamp(resolved.from ?? 0);
45
+ const toVis = clamp(resolved.to ?? 0);
46
+ const at = resolved.at ?? 0;
47
+ return {
48
+ fromPt: pt(at, fromVis),
49
+ toPt: pt(at, toVis),
50
+ textPt: pt(at, textVaryCoord(fromVis, toVis)),
51
+ lineData: [pt(at, fromVis), pt(at, toVis)],
52
+ diff: resolved.diff ?? 0
53
+ };
54
+ });
55
+
56
+ const dotStyles = $derived({
57
+ dotRadius: 4,
58
+ dotFill: marker.line?.stroke,
59
+ dotStroke: marker.line?.stroke,
60
+ dotStrokeWidth: 2,
61
+ ...marker.dot
62
+ });
63
+ </script>
64
+
65
+ {#if coords}
66
+ <Line
67
+ data={coords.lineData}
68
+ x={(p) => p.x}
69
+ y={(p) => p.y}
70
+ stroke={marker.line?.stroke ?? 'currentColor'}
71
+ strokeWidth={marker.line?.strokeWidth ?? 2}
72
+ strokeOpacity={marker.line?.strokeOpacity ?? 0.8}
73
+ strokeDasharray={marker.line?.strokeDasharray ?? '6 6'}
74
+ strokeLinecap={marker.line?.strokeLinecap ?? 'round'}
75
+ />
76
+ <DotMarker marker={{ type: 'dot', x: coords.fromPt.x, y: coords.fromPt.y, styles: dotStyles }} />
77
+ <DotMarker marker={{ type: 'dot', x: coords.toPt.x, y: coords.toPt.y, styles: dotStyles }} />
78
+ <TextMarker
79
+ marker={{
80
+ type: 'text',
81
+ x: coords.textPt.x,
82
+ y: coords.textPt.y,
83
+ text: (marker.formatDiff ?? ((v: number) => v.toFixed(1)))(coords.diff),
84
+ styles: {
85
+ fontWeight: 'bold',
86
+ fontSize: 14,
87
+ textAnchor: label.textAnchor,
88
+ fill: marker.line?.stroke ?? 'currentColor',
89
+ ...marker.text,
90
+ dx: marker.text?.dx ?? label.dx,
91
+ dy: marker.text?.dy ?? label.dy,
92
+ lineAnchor
93
+ }
94
+ }}
95
+ />
96
+ {/if}
@@ -1,5 +1,5 @@
1
- import type { Series } from '../types/plots/data/common';
2
- import type { DeltaMarkerConfig } from '../types/markers/line';
1
+ import type { Series } from '../../types/plots/data/common';
2
+ import type { DeltaMarkerConfig } from '../../types/markers/axis/delta';
3
3
  declare function $$render<TData extends Record<string, unknown>>(): {
4
4
  props: {
5
5
  marker: DeltaMarkerConfig;