@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,9 @@
1
+ import type { GeoPlotState, GeoPlotCtx } from '../../../types/plots/geo/state';
2
+ /**
3
+ * GeoPlot's "markers" phase: per-feature style resolution/grouping, the base
4
+ * `'geo'` marker(s), and the full draw order - any authored marker with
5
+ * `behind: true`, then the base map, then the rest of the authored markers,
6
+ * with any `hover` marker moved last. The base marker(s) match the pointer
7
+ * themselves, over the features inside the legend's range.
8
+ */
9
+ export declare function buildMarkers<TProps extends Record<string, unknown>>(state: GeoPlotState<TProps>, ctx: GeoPlotCtx<TProps>): GeoPlotState<TProps>;
@@ -0,0 +1,75 @@
1
+ import { LegendState } from '../../../layout/legend/LegendState.svelte';
2
+ import { resolveFeatureStyle } from '../../utils/geoSegments';
3
+ import { DisabledStyle } from '../../../layout/legend/DisabledStyle';
4
+ /**
5
+ * `graticule`/`sphere`/`contour` opt into drawing underneath the base map's
6
+ * own fill/stroke instead of on top of it - see each config's own `behind`
7
+ * doc comment.
8
+ */
9
+ function isBehindMarker(marker) {
10
+ return ((marker.type === 'graticule' || marker.type === 'sphere' || marker.type === 'contour') &&
11
+ marker.behind === true);
12
+ }
13
+ /**
14
+ * GeoPlot's "markers" phase: per-feature style resolution/grouping, the base
15
+ * `'geo'` marker(s), and the full draw order - any authored marker with
16
+ * `behind: true`, then the base map, then the rest of the authored markers,
17
+ * with any `hover` marker moved last. The base marker(s) match the pointer
18
+ * themselves, over the features inside the legend's range.
19
+ */
20
+ export function buildMarkers(state, ctx) {
21
+ const { features, segments, authoredMarkers, color, grouping, resolveColor, resolveOpacity } = state;
22
+ const { range, fill, fillOpacity, stroke, strokeWidth, cfg, onFeatureClick } = ctx;
23
+ const OPACITY_STEPS = 32;
24
+ function rangeFilteredStyle(base, f) {
25
+ if (range == null || !color)
26
+ return base;
27
+ if (LegendState.inRange(color(f), range))
28
+ return base;
29
+ return { ...base, ...DisabledStyle.fill(range.disabledStyle) };
30
+ }
31
+ function getFeatureStyle(f) {
32
+ return rangeFilteredStyle(resolveFeatureStyle(segments, f.__id, grouping?.(f)), f);
33
+ }
34
+ const groups = new Map();
35
+ for (const f of features) {
36
+ const style = getFeatureStyle(f);
37
+ const rawOpacity = resolveOpacity?.(f);
38
+ const opacity = rawOpacity != null ? Math.round(rawOpacity * OPACITY_STEPS) / OPACITY_STEPS : undefined;
39
+ const key = JSON.stringify({ style, opacity });
40
+ let group = groups.get(key);
41
+ if (!group) {
42
+ group = { style, opacity, data: [] };
43
+ groups.set(key, group);
44
+ }
45
+ group.data.push(f);
46
+ }
47
+ const styleGroups = [...groups.values()];
48
+ function resolveBaseFill(f) {
49
+ return resolveColor?.(f) ?? fill ?? cfg.palette[0];
50
+ }
51
+ // What the pointer can match: the features inside the legend's range, by id.
52
+ const hoverable = new Map(features
53
+ .filter((f) => !range || !color || LegendState.inRange(color(f), range))
54
+ .map((f) => [f.__id, f]));
55
+ const featureMarkers = styleGroups.map((group) => ({
56
+ type: 'geo',
57
+ data: group.data,
58
+ fill: (d) => group.style.fill ?? resolveBaseFill(d),
59
+ fillOpacity: group.style.fillOpacity ?? group.opacity ?? fillOpacity ?? 1,
60
+ stroke: group.style.stroke ?? stroke ?? cfg.axis.color,
61
+ strokeWidth: group.style.strokeWidth ?? strokeWidth ?? 0.5,
62
+ hover: hoverable,
63
+ onclick: onFeatureClick ? (e, d) => onFeatureClick(d, e) : undefined
64
+ }));
65
+ const behindMarkers = authoredMarkers.filter(isBehindMarker);
66
+ const frontMarkers = authoredMarkers.filter((m) => !isBehindMarker(m) && m.type !== 'geo-hover');
67
+ const hoverMarker = authoredMarkers.find((m) => m.type === 'geo-hover');
68
+ const markers = [
69
+ ...behindMarkers,
70
+ ...featureMarkers,
71
+ ...frontMarkers,
72
+ ...(hoverMarker ? [hoverMarker] : [])
73
+ ];
74
+ return { ...state, markers, styleGroups };
75
+ }
@@ -0,0 +1,10 @@
1
+ import type { GeoPlotState, GeoPlotCtx } from '../../../types/plots/geo/state';
2
+ /**
3
+ * GeoPlot's "scales" phase: each feature's own resolved color (mirrors
4
+ * HeatmapPlot's own), with a per-feature override for whichever segment
5
+ * (its `grouping` bucket, or itself by id) sets its own `scales.color` -
6
+ * see `resolveFeatureScales`. A segment ramp's domain is built from just
7
+ * the features that share its own key, so e.g. two grouping buckets each
8
+ * get a ramp scaled to their own value range, not the whole dataset's.
9
+ */
10
+ export declare function buildScales<TProps extends Record<string, unknown>>(state: GeoPlotState<TProps>, ctx: GeoPlotCtx<TProps>): GeoPlotState<TProps>;
@@ -0,0 +1,85 @@
1
+ import { resolveColorScale } from '../../../utils/color';
2
+ import { resolveOpacityScale } from '../../../utils/opacity';
3
+ import { ContinuousDomain } from '../../../utils/ContinuousDomain';
4
+ import { resolveFeatureScales } from '../../utils/geoSegments';
5
+ /**
6
+ * GeoPlot's "scales" phase: each feature's own resolved color (mirrors
7
+ * HeatmapPlot's own), with a per-feature override for whichever segment
8
+ * (its `grouping` bucket, or itself by id) sets its own `scales.color` -
9
+ * see `resolveFeatureScales`. A segment ramp's domain is built from just
10
+ * the features that share its own key, so e.g. two grouping buckets each
11
+ * get a ramp scaled to their own value range, not the whole dataset's.
12
+ */
13
+ export function buildScales(state, ctx) {
14
+ const { scales, features, color, grouping, opacity, segments } = state;
15
+ const { range, cfg } = ctx;
16
+ const colorValues = color
17
+ ? features.map((f) => color(f)).filter((v) => v != null)
18
+ : [];
19
+ const valueDomain = ContinuousDomain.build(scales.color?.domain, colorValues);
20
+ const effectiveDomain = valueDomain ? ContinuousDomain.ramp(valueDomain, range) : null;
21
+ const colorScale = effectiveDomain
22
+ ? resolveColorScale({ ...scales.color, domain: effectiveDomain }, effectiveDomain, [
23
+ cfg.continuous.min,
24
+ cfg.continuous.max
25
+ ])
26
+ : null;
27
+ // Per-segment-key ramp cache - built lazily, once per distinct grouping
28
+ // value/feature id that actually has its own `scales.color`.
29
+ const segmentScaleCache = new Map();
30
+ function segmentColorScaleFor(key, segScales) {
31
+ if (segmentScaleCache.has(key))
32
+ return segmentScaleCache.get(key);
33
+ const peers = grouping
34
+ ? features.filter((g) => grouping(g) === key)
35
+ : features.filter((g) => g.__id === key);
36
+ const vals = peers.map((g) => color?.(g)).filter((v) => v != null);
37
+ const scale = vals.length
38
+ ? resolveColorScale({ ...segScales?.color, domain: [Math.min(...vals), Math.max(...vals)] }, [Math.min(...vals), Math.max(...vals)], [cfg.continuous.min, cfg.continuous.max])
39
+ : null;
40
+ segmentScaleCache.set(key, scale);
41
+ return scale;
42
+ }
43
+ const resolveColor = colorScale
44
+ ? (f) => {
45
+ const v = color?.(f);
46
+ if (v == null)
47
+ return undefined;
48
+ const groupingValue = grouping?.(f);
49
+ const featureId = f.__id ?? '';
50
+ const segScales = resolveFeatureScales(segments, featureId, groupingValue);
51
+ if (segScales?.color) {
52
+ const scale = segmentColorScaleFor(groupingValue ?? featureId, segScales);
53
+ if (scale)
54
+ return scale(v);
55
+ }
56
+ return colorScale ? colorScale(v) : undefined;
57
+ }
58
+ : undefined;
59
+ // Plot-level only - no segment-scoped opacity ramp (unlike `resolveColor`
60
+ // above), since there's no concrete use case yet driving that complexity.
61
+ const opacityDomain = (() => {
62
+ if (!opacity)
63
+ return null;
64
+ const vals = features.map((f) => opacity(f)).filter((v) => v != null);
65
+ return vals.length ? [Math.min(...vals), Math.max(...vals)] : null;
66
+ })();
67
+ const opacityScale = opacityDomain
68
+ ? resolveOpacityScale(scales.opacity, opacityDomain, cfg.continuous.opacityRange)
69
+ : null;
70
+ const resolveOpacity = opacityScale
71
+ ? (f) => {
72
+ const v = opacity?.(f);
73
+ return v != null ? opacityScale(v) : undefined;
74
+ }
75
+ : undefined;
76
+ return {
77
+ ...state,
78
+ colorDomain: valueDomain ?? undefined,
79
+ opacityDomain: opacityDomain && typeof opacityDomain[0] === 'number'
80
+ ? opacityDomain
81
+ : undefined,
82
+ resolveColor,
83
+ resolveOpacity
84
+ };
85
+ }
@@ -0,0 +1,3 @@
1
+ import type { GeoPlotState } from '../../../types/plots/geo/state';
2
+ /** GeoPlot's "tooltip" phase: a hovered feature reads as its id. */
3
+ export declare function buildTooltip<TProps extends Record<string, unknown>>(state: GeoPlotState<TProps>): GeoPlotState<TProps>;
@@ -0,0 +1,5 @@
1
+ import { defaultFeatureId } from '../../utils/geoAccessors';
2
+ /** GeoPlot's "tooltip" phase: a hovered feature reads as its id. */
3
+ export function buildTooltip(state) {
4
+ return { ...state, tooltipFormat: (f) => defaultFeatureId(f) };
5
+ }
@@ -0,0 +1,18 @@
1
+ import type { FacetConfig } from '../../types/layout/facet';
2
+ import type { TimelineConfig } from '../../types/layout/timeline';
3
+ type Row = Record<string, unknown>;
4
+ /**
5
+ * What a GeoPlot hands `Plot` to slice by: one stand-in row per value
6
+ * combination found in the features and markers' rows, and timeline/facet
7
+ * accessors that read a stand-in or a real row.
8
+ */
9
+ export declare function buildGeoSlicing(args: {
10
+ rows: Row[];
11
+ timeline?: TimelineConfig<Row>;
12
+ facet?: FacetConfig<Row>;
13
+ }): {
14
+ rows: Row[];
15
+ timeline?: TimelineConfig<Row>;
16
+ facet?: FacetConfig<Row>;
17
+ };
18
+ export {};
@@ -0,0 +1,59 @@
1
+ import { TimelineTime } from '../../layout/timeline/TimelineTime';
2
+ import { isFacetWrap } from '../../layout/facet/config';
3
+ const SLICE = Symbol('dct-geo-slice');
4
+ /** A slicing field's value on a feature (from its `properties`) or on a marker's own row. */
5
+ function readField(field, row) {
6
+ if (typeof field === 'function')
7
+ return field(row);
8
+ if (row.type === 'Feature' && typeof row.properties === 'object' && row.properties !== null) {
9
+ return row.properties[field];
10
+ }
11
+ return row[field];
12
+ }
13
+ /**
14
+ * What a GeoPlot hands `Plot` to slice by: one stand-in row per value
15
+ * combination found in the features and markers' rows, and timeline/facet
16
+ * accessors that read a stand-in or a real row.
17
+ */
18
+ export function buildGeoSlicing(args) {
19
+ const { rows, timeline, facet } = args;
20
+ const fields = {};
21
+ if (timeline)
22
+ fields.time = timeline.accessor;
23
+ if (facet && isFacetWrap(facet))
24
+ fields.by = facet.by;
25
+ if (facet && !isFacetWrap(facet)) {
26
+ if (facet.rows !== undefined)
27
+ fields.rows = facet.rows;
28
+ if (facet.cols !== undefined)
29
+ fields.cols = facet.cols;
30
+ }
31
+ const reader = (dimension) => (row) => SLICE in row
32
+ ? row[SLICE][dimension]
33
+ : readField(fields[dimension], row);
34
+ let combos = [{}];
35
+ for (const dimension of Object.keys(fields)) {
36
+ const read = rows.map((row) => readField(fields[dimension], row)).filter((v) => v != null);
37
+ // Dates on the same step are one value.
38
+ const time = new TimelineTime(timeline?.dateFormat);
39
+ const keyOf = (value) => dimension === 'time' ? String(time.toTime(value) ?? value) : value;
40
+ const values = [...new Map(read.map((value) => [keyOf(value), value])).values()];
41
+ combos = combos.flatMap((combo) => values.map((value) => ({ ...combo, [dimension]: value })));
42
+ }
43
+ return {
44
+ rows: combos.map((combo) => ({ [SLICE]: combo })),
45
+ timeline: timeline && {
46
+ ...timeline,
47
+ accessor: reader('time'),
48
+ interpolate: undefined
49
+ },
50
+ facet: facet &&
51
+ (isFacetWrap(facet)
52
+ ? { ...facet, by: reader('by') }
53
+ : {
54
+ ...facet,
55
+ rows: facet.rows === undefined ? undefined : reader('rows'),
56
+ cols: facet.cols === undefined ? undefined : reader('cols')
57
+ })
58
+ };
59
+ }
@@ -1,252 +1,58 @@
1
1
  <script lang="ts" generics="TData extends Record<string, unknown>">
2
- import { resolveAccessor } from '../utils/accessors';
3
- import { validateSegments } from '../utils/segments';
4
- import { buildSeries } from '../../utils/grouping';
5
- import { makeColorScale } from '../../utils/color';
6
- import { getConfiguration } from '../../configuration/config.svelte';
7
- import { getLegendInteraction } from '../../layout/legend/interaction.svelte';
8
- import { disabledFillOverride } from '../utils/legendDisabled';
9
- import { buildCellMarkers } from './buildCellMarkers';
10
- import BasePlotLayout from '../../layout/plot/BasePlotLayout.svelte';
11
- import ValueLabels from './ValueLabels.svelte';
12
- import { hasHoverMarker, resolveHoverStrategy, resolveHoverSync } from '../../layout/tooltip/utils';
13
- import type { BasePlotProps } from '../../types/plots/props';
14
- import type { AxisValue, AxisBasedScalesConfig } from '../../types/layout/scales';
15
- import type { SeriesProps, DataProps } from '../../types/plots/data/common';
16
- import type { AxisBasedStylesConfig } from '../../types/layout/styles';
17
- import type { CellSegmentStyle } from '../../types/plots/segments/common';
18
- import type { AxisBasedMarkersConfig } from '../../types/markers/common';
19
-
20
- /**
21
- * A categorical grid of value-coloured cells. Accepts either a pre-built
22
- * `series` array (each {@link Series} may carry `z` as the colour accessor) or
23
- * flat `data/x/y/z` props — mirrors the line/bar plot contract so the
24
- * chart-level container/timeline/facet/legend wrap it unchanged.
25
- *
26
- * The colour domain is read from `scales.z.domain`; when absent it is derived
27
- * from the visible slice of data.
28
- */
29
- type Props = BasePlotProps<
30
- SeriesProps<TData> | DataProps<TData>,
31
- TData,
32
- AxisBasedStylesConfig,
33
- CellSegmentStyle,
34
- AxisBasedMarkersConfig,
35
- AxisBasedScalesConfig<TData>
36
- >;
37
-
38
- let {
39
- width,
40
- height,
41
- series,
42
- data,
43
- x,
44
- y,
45
- z,
46
- styles = {},
47
- segments = {},
48
- scales = {},
49
- margins,
50
- markers = [],
51
- tooltip = undefined,
52
- }: Props = $props();
53
-
54
- $effect(() => {
55
- validateSegments(segments);
56
- const scoped = markers.filter(
57
- (m) => (m.type === 'hover' || m.type === 'component') && m.series,
58
- );
59
- if (scoped.length > 0) {
60
- console.warn(
61
- 'HeatmapPlot: markers scoped to a `series` are ignored — heatmaps have no series concept.',
62
- );
63
- }
64
- const seriesKeys = Object.keys(segments).filter((k) => k !== 'default');
65
- if (seriesKeys.length > 0) {
66
- console.warn(
67
- `HeatmapPlot: segment groups have series-specific keys (${seriesKeys.join(', ')}) — heatmaps have no named series. Use the 'default' key instead.`,
68
- );
69
- }
70
- });
71
-
72
- const cfg = $derived(getConfiguration());
73
- const minColor = $derived(styles.colors?.min ?? cfg.continuous.min);
74
- const maxColor = $derived(styles.colors?.max ?? cfg.continuous.max);
75
- const showVals = $derived(styles.values?.show ?? true);
76
- const formatValue = $derived(styles.values?.format ?? ((v: number) => `${v}`));
77
-
78
- const resolvedSeries = $derived(series ?? buildSeries(data!, x!, y!, undefined));
79
- const flat = $derived(resolvedSeries.flatMap((s) => s.data));
80
-
81
- const getX = $derived(resolveAccessor<TData>(resolvedSeries[0]?.x ?? x!));
82
- const getY = $derived(resolveAccessor<TData>(resolvedSeries[0]?.y ?? y!));
83
- const getZ = $derived(resolveAccessor<TData>(resolvedSeries[0]?.z ?? z!));
84
-
85
- const xDomain = $derived([...new Set(flat.map((d) => getX(d) as AxisValue))]);
86
- const yDomain = $derived([...new Set(flat.map((d) => getY(d) as AxisValue))]);
87
-
88
- const valueDomain = $derived.by((): [number, number] => {
89
- if (scales.z?.domain && scales.z.domain.length >= 2) {
90
- return [Number(scales.z.domain[0]), Number(scales.z.domain[1])];
91
- }
92
- const vals = flat.map((d) => Number(getZ(d)));
93
- return vals.length ? [Math.min(...vals, 0), Math.max(...vals)] : [0, 1];
94
- });
95
-
96
- // ── Legend-driven range filter ────────────────────────────────────────────
97
- const legendInteraction = $derived(getLegendInteraction());
98
- const range = $derived(legendInteraction?.continuousRange);
99
- // 'rescale' reprojects the ramp onto the narrowed range; 'filter' (and no
100
- // active range) keeps the original domain — only which cells are hidden
101
- // changes.
102
- const effectiveDomain = $derived.by((): [number, number] =>
103
- range && range.mode === 'rescale' ? [range.min, range.max] : valueDomain,
104
- );
105
-
106
- function rangeFilteredStyle(base: CellSegmentStyle, value: number): CellSegmentStyle {
107
- const r = range;
108
- if (r == null || (value >= r.min && value <= r.max)) return base;
109
- return { ...base, ...disabledFillOverride(r.disabledStyle) };
110
- }
111
-
112
- const colorScale = $derived(
113
- makeColorScale(effectiveDomain[0], effectiveDomain[1], minColor, maxColor),
114
- );
115
-
116
- // A cell outside the active range is dimmed in place, but never surfaces
117
- // in hover/tooltip — it's simply absent from the candidate list.
118
- const hoverPoints = $derived(
119
- flat
120
- .filter((d) => {
121
- const r = range;
122
- if (r == null) return true;
123
- const v = Number(getZ(d));
124
- return v >= r.min && v <= r.max;
125
- })
126
- .map((d) => ({
127
- x: getX(d) as AxisValue,
128
- y: getY(d) as AxisValue,
129
- row: d,
130
- label: formatValue(Number(getZ(d)), ''),
131
- })),
132
- );
133
-
134
- const segList = $derived(segments.default ?? []);
135
-
136
- /**
137
- * A catch-all (no `areas`) always matches, so evaluating segments in plain
138
- * array order and merging every match — as this used to do — makes a
139
- * catch-all listed *after* an area-specific one (the documented, and only
140
- * demonstrated, convention: baseline first, highlight second) overwrite it
141
- * on every cell, since it's applied last unconditionally. Area-specific
142
- * segments must always win over the catch-all regardless of list order —
143
- * so the catch-all is applied once as the baseline, and only
144
- * area-specific segments can override it on top, mirroring the same
145
- * catch-all/area-specific priority every other plot kind's segments
146
- * already follow (see `resolveSeriesSegments` in `utils/segments.ts`).
147
- */
148
- const segStyleMap = $derived.by(() => {
149
- const map = new Map<string, CellSegmentStyle>();
150
- if (!segList.length) return map;
151
- const catchAll = segList.find((s) => !s.areas || s.areas.length === 0);
152
- const areaSegs = segList.filter((s) => s.areas && s.areas.length > 0);
153
- for (const d of flat) {
154
- const cx = getX(d) as AxisValue;
155
- const cy = getY(d) as AxisValue;
156
- const key = `${String(cx)}::${String(cy)}`;
157
- if (!map.has(key)) {
158
- let style: CellSegmentStyle = catchAll?.style ? { ...catchAll.style } : {};
159
- for (const seg of areaSegs) {
160
- const matches = seg.areas!.some((area) => {
161
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
162
- const xOk = !area.x || ((area.x.from === undefined || (cx as any) >= area.x.from) && (area.x.to === undefined || (cx as any) <= area.x.to));
163
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
164
- const yOk = !area.y || ((area.y.from === undefined || (cy as any) >= area.y.from) && (area.y.to === undefined || (cy as any) <= area.y.to));
165
- return xOk && yOk;
166
- });
167
- if (matches) style = { ...style, ...seg.style };
168
- }
169
- map.set(key, style);
170
- }
171
- }
172
- return map;
173
- });
174
-
175
- const getCellStyle = $derived(
176
- (d: TData) =>
177
- rangeFilteredStyle(
178
- segStyleMap.get(`${String(getX(d))}::${String(getY(d))}`) ?? {},
179
- Number(getZ(d)),
180
- ),
181
- );
182
-
183
- /**
184
- * One marker per *distinct resolved style*, not one for the whole
185
- * dataset — svelteplot's opacity/numeric scale machinery requires
186
- * `fillOpacity`/`strokeWidth` to be constant per mark instance, unlike
187
- * `fill`, which stays a per-row accessor.
188
- */
189
- type StyleGroup = { style: CellSegmentStyle; data: TData[] };
190
- const styleGroups = $derived.by((): StyleGroup[] => {
191
- const groups = new Map<string, StyleGroup>();
192
- for (const d of flat) {
193
- const style = getCellStyle(d);
194
- const key = JSON.stringify(style);
195
- let group = groups.get(key);
196
- if (!group) {
197
- group = { style, data: [] };
198
- groups.set(key, group);
199
- }
200
- group.data.push(d);
201
- }
202
- return [...groups.values()];
203
- });
204
-
205
- // The single, fully-resolved scales object BasePlotLayout reads for
206
- // everything (ticks, grid, sort, and the real svelteplot scale) — avoids
207
- // keeping a second, separately-defaulted copy of `scales.x`/`scales.y`
208
- // (our own band-scale + domain defaults) out of sync with the one
209
- // actually forwarded.
210
- const resolvedScales = $derived<AxisBasedScalesConfig<TData>>({
211
- ...scales,
212
- x: { type: 'band', labelAnchor: 'right', domain: xDomain, ...(scales.x ?? {}) },
213
- y: { type: 'band', domain: yDomain, ...(scales.y ?? {}) },
214
- });
215
-
216
- const hover = $derived({
217
- active: tooltip != null || hasHoverMarker(markers),
218
- points: hoverPoints,
219
- label: (d: TData) => formatValue(Number(getZ(d)), ''),
220
- strategy: resolveHoverStrategy(tooltip?.strategy, markers, 'punctual'),
221
- sync: resolveHoverSync(tooltip?.sync, markers),
222
- tooltip,
223
- });
224
-
225
- const cellMarkers = $derived(buildCellMarkers({ styleGroups, getX, getY, getZ, colorScale }));
2
+ import Plot from '../../layout/plot/Plot.svelte';
3
+ import { buildHeatmapDefaults } from './defaults';
4
+ import type { HeatmapPlotProps, HeatmapPlotCoreProps } from '../../types/plots/heatmap/props';
5
+
6
+ /**
7
+ * A categorical grid of value-colored cells. Draws from pre-built `series` or flat `data` rows.
8
+ * Optional chrome (`title`, `subtitle`, `caption`, `header`, `footer`,
9
+ * `legend`) frames it; `timeline` and `facet` slice its `data` rows.
10
+ */
11
+ let {
12
+ title,
13
+ subtitle,
14
+ caption,
15
+ header,
16
+ footer,
17
+ legend,
18
+ order,
19
+ timeline,
20
+ facet,
21
+ tooltip,
22
+ margins = $bindable(),
23
+ ...core
24
+ }: HeatmapPlotProps<TData> = $props();
25
+
26
+ $effect(() => {
27
+ const scoped = (core.markers ?? []).filter(
28
+ (m) => (m.type === 'hover' || m.type === 'component') && (m as { series?: unknown }).series
29
+ );
30
+ if (scoped.length > 0) {
31
+ console.warn(
32
+ 'HeatmapPlot: markers scoped to a `series` are ignored - heatmaps have no series concept.'
33
+ );
34
+ }
35
+ const seriesKeys = Object.keys(core.segments ?? {}).filter((k) => k !== 'default');
36
+ if (seriesKeys.length > 0) {
37
+ console.warn(
38
+ `HeatmapPlot: segment groups have series-specific keys (${seriesKeys.join(', ')}) - heatmaps have no named series. Use the 'default' key instead.`
39
+ );
40
+ }
41
+ });
226
42
  </script>
227
43
 
228
- <BasePlotLayout
229
- {width}
230
- {height}
231
- {styles}
232
- data={flat}
233
- {getX}
234
- {getY}
235
- {hover}
236
- scales={resolvedScales}
237
- {margins}
238
- markers={[...cellMarkers, ...markers]}
239
- seriesData={resolvedSeries}
240
- >
241
- {#if showVals}
242
- <ValueLabels
243
- data={flat}
244
- {getX}
245
- {getY}
246
- {getZ}
247
- {formatValue}
248
- values={styles.values}
249
- defaultColor={cfg.continuous.labelColor}
250
- />
251
- {/if}
252
- </BasePlotLayout>
44
+ <Plot
45
+ core={core as HeatmapPlotCoreProps<TData>}
46
+ defaults={buildHeatmapDefaults}
47
+ bind:margins
48
+ {title}
49
+ {subtitle}
50
+ {caption}
51
+ {header}
52
+ {footer}
53
+ {legend}
54
+ {order}
55
+ {timeline}
56
+ {facet}
57
+ {tooltip}
58
+ />
@@ -1,12 +1,9 @@
1
- import type { BasePlotProps } from '../../types/plots/props';
2
- import type { AxisBasedScalesConfig } from '../../types/layout/scales';
3
- import type { SeriesProps, DataProps } from '../../types/plots/data/common';
4
- import type { AxisBasedStylesConfig } from '../../types/layout/styles';
5
- import type { AxisBasedMarkersConfig } from '../../types/markers/common';
1
+ import Plot from '../../layout/plot/Plot.svelte';
2
+ import type { HeatmapPlotProps } from '../../types/plots/heatmap/props';
6
3
  declare function $$render<TData extends Record<string, unknown>>(): {
7
- props: BasePlotProps<SeriesProps<TData> | DataProps<TData>, TData, AxisBasedStylesConfig, import("../..").AreaStyle, AxisBasedMarkersConfig, AxisBasedScalesConfig<TData>>;
4
+ props: HeatmapPlotProps<TData>;
8
5
  exports: {};
9
- bindings: "";
6
+ bindings: "margins";
10
7
  slots: {};
11
8
  events: {};
12
9
  };
@@ -14,7 +11,7 @@ declare class __sveltets_Render<TData extends Record<string, unknown>> {
14
11
  props(): ReturnType<typeof $$render<TData>>['props'];
15
12
  events(): ReturnType<typeof $$render<TData>>['events'];
16
13
  slots(): ReturnType<typeof $$render<TData>>['slots'];
17
- bindings(): "";
14
+ bindings(): "margins";
18
15
  exports(): {};
19
16
  }
20
17
  interface $$IsomorphicComponent {
@@ -0,0 +1,11 @@
1
+ import type { AxisPlotDefaults } from '../../types/phases';
2
+ import type { HeatmapPlotState, HeatmapPlotCtx } from '../../types/plots/heatmap/state';
3
+ /**
4
+ * HeatmapPlot on the shared pipeline: both axes are categories. A heatmap's
5
+ * `color` is each cell's numeric value, which the "data" phase reads as a
6
+ * continuous channel rather than a grouping key: the rows stay one series, and
7
+ * author markers don't inherit it. Its own band/color scales and markers; a
8
+ * cell's tooltip names its coordinates and its value.
9
+ * Its plot defaults to: hover one cell.
10
+ */
11
+ export declare function buildHeatmapDefaults<TData extends Record<string, unknown>>(): AxisPlotDefaults<HeatmapPlotState<TData>, HeatmapPlotCtx>;