@fundar/data-chart-telling 0.0.64 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (786) hide show
  1. package/CHANGELOG.md +17 -0
  2. package/LICENSE +21 -0
  3. package/README.md +81 -561
  4. package/dist/configuration/config.svelte.d.ts +5 -5
  5. package/dist/configuration/config.svelte.js +130 -46
  6. package/dist/configuration/fonts.d.ts +6 -0
  7. package/dist/configuration/fonts.js +6 -0
  8. package/dist/configuration/themes/compact.d.ts +2 -2
  9. package/dist/configuration/themes/compact.js +1 -1
  10. package/dist/configuration/themes/dark.d.ts +2 -2
  11. package/dist/configuration/themes/dark.js +5 -4
  12. package/dist/configuration/themes/default.d.ts +8 -3
  13. package/dist/configuration/themes/default.js +8 -2
  14. package/dist/configuration/themes/editorial.d.ts +2 -2
  15. package/dist/configuration/themes/editorial.js +2 -2
  16. package/dist/configuration/themes/index.d.ts +421 -80
  17. package/dist/configuration/themes/index.js +6 -5
  18. package/dist/index.d.ts +34 -48
  19. package/dist/index.js +19 -35
  20. package/dist/layout/base/BasePlotLayout.svelte +312 -0
  21. package/dist/layout/base/BasePlotLayout.svelte.d.ts +111 -0
  22. package/dist/layout/composer/PlotComposer.svelte +94 -0
  23. package/dist/layout/composer/PlotComposer.svelte.d.ts +13 -0
  24. package/dist/layout/coordinates/CameraFit.svelte +4 -4
  25. package/dist/layout/coordinates/CoordinatesLayout.svelte +11 -3
  26. package/dist/layout/coordinates/CoordinatesLayout.svelte.d.ts +6 -2
  27. package/dist/layout/coordinates/camera.svelte.d.ts +1 -1
  28. package/dist/layout/coordinates/camera.svelte.js +6 -6
  29. package/dist/layout/coordinates/projections/argentina.js +3 -3
  30. package/dist/layout/coordinates/projections/fit.js +1 -1
  31. package/dist/layout/coordinates/resolveCameraTarget.d.ts +1 -1
  32. package/dist/layout/coordinates/resolveProjection.d.ts +1 -1
  33. package/dist/layout/coordinates/resolveProjection.js +2 -2
  34. package/dist/layout/coordinates/rotate.svelte.d.ts +3 -3
  35. package/dist/layout/coordinates/rotate.svelte.js +8 -8
  36. package/dist/layout/coordinates/zoom.svelte.d.ts +1 -1
  37. package/dist/layout/facet/FacetIndicator.svelte +23 -23
  38. package/dist/layout/facet/FacetLayout.svelte +435 -398
  39. package/dist/layout/facet/FacetLayout.svelte.d.ts +9 -3
  40. package/dist/layout/facet/axes.d.ts +16 -0
  41. package/dist/layout/facet/axes.js +25 -0
  42. package/dist/layout/facet/config.d.ts +32 -0
  43. package/dist/layout/facet/config.js +82 -0
  44. package/dist/layout/figure/Figure.svelte +177 -0
  45. package/dist/layout/figure/Figure.svelte.d.ts +14 -0
  46. package/dist/layout/figure/FigureChrome.svelte +341 -0
  47. package/dist/layout/figure/FigureChrome.svelte.d.ts +21 -0
  48. package/dist/layout/geometry/FrameClip.svelte +45 -0
  49. package/dist/layout/geometry/FrameClip.svelte.d.ts +8 -0
  50. package/dist/layout/geometry/FrameClipping.d.ts +24 -0
  51. package/dist/layout/geometry/FrameClipping.js +40 -0
  52. package/dist/layout/geometry/GeometryLayout.svelte +287 -224
  53. package/dist/layout/geometry/GeometryLayout.svelte.d.ts +10 -10
  54. package/dist/layout/grid/Grid.svelte +194 -0
  55. package/dist/layout/grid/Grid.svelte.d.ts +26 -0
  56. package/dist/layout/grid/GridAlignment.svelte.d.ts +31 -0
  57. package/dist/layout/grid/GridAlignment.svelte.js +56 -0
  58. package/dist/layout/grid/GridCell.svelte +141 -0
  59. package/dist/layout/grid/GridCell.svelte.d.ts +17 -0
  60. package/dist/layout/grid/GridCellsRegistry.svelte.d.ts +52 -0
  61. package/dist/layout/grid/GridCellsRegistry.svelte.js +70 -0
  62. package/dist/layout/grid/GridPlan.d.ts +49 -0
  63. package/dist/layout/grid/GridPlan.js +167 -0
  64. package/dist/layout/grid/Tags.d.ts +8 -0
  65. package/dist/layout/grid/Tags.js +39 -0
  66. package/dist/layout/hover/HoverScope.svelte +11 -0
  67. package/dist/layout/hover/HoverScope.svelte.d.ts +8 -0
  68. package/dist/layout/hover/HoverSettings.d.ts +20 -0
  69. package/dist/layout/hover/HoverSettings.js +27 -0
  70. package/dist/layout/hover/HoverState.svelte.d.ts +47 -0
  71. package/dist/layout/hover/HoverState.svelte.js +99 -0
  72. package/dist/layout/hover/PlotHover.svelte.d.ts +63 -0
  73. package/dist/layout/hover/PlotHover.svelte.js +133 -0
  74. package/dist/layout/interaction/PlotInteraction.svelte.d.ts +38 -0
  75. package/dist/layout/interaction/PlotInteraction.svelte.js +56 -0
  76. package/dist/layout/legend/AxisNumberFormat.d.ts +12 -0
  77. package/dist/layout/legend/AxisNumberFormat.js +25 -0
  78. package/dist/layout/legend/ContinuousSection.svelte +363 -351
  79. package/dist/layout/legend/DisabledStyle.d.ts +19 -0
  80. package/dist/layout/legend/DisabledStyle.js +57 -0
  81. package/dist/layout/legend/DiscreteBadgeItem.svelte +6 -3
  82. package/dist/layout/legend/DiscreteSection.svelte +32 -32
  83. package/dist/layout/legend/DiscreteSwatchItem.svelte +4 -1
  84. package/dist/layout/legend/DiscreteSymbolIcon.svelte +14 -9
  85. package/dist/layout/legend/LegendChannels.d.ts +21 -0
  86. package/dist/layout/legend/LegendChannels.js +221 -0
  87. package/dist/layout/legend/LegendLayout.svelte +49 -43
  88. package/dist/layout/legend/LegendState.svelte.d.ts +79 -0
  89. package/dist/layout/legend/LegendState.svelte.js +329 -0
  90. package/dist/layout/legend/LegendText.d.ts +12 -0
  91. package/dist/layout/legend/LegendText.js +22 -0
  92. package/dist/layout/legend/SizeSection.svelte +84 -0
  93. package/dist/layout/legend/SizeSection.svelte.d.ts +7 -0
  94. package/dist/layout/legend/SymbolSection.svelte +31 -0
  95. package/dist/layout/legend/SymbolSection.svelte.d.ts +8 -0
  96. package/dist/layout/margins/Box.d.ts +84 -0
  97. package/dist/layout/margins/Box.js +138 -0
  98. package/dist/layout/margins/Margins.d.ts +37 -0
  99. package/dist/layout/margins/Margins.js +71 -0
  100. package/dist/layout/margins/PlotMargins.svelte.d.ts +101 -0
  101. package/dist/layout/margins/PlotMargins.svelte.js +219 -0
  102. package/dist/layout/plot/Core.svelte +61 -0
  103. package/dist/layout/plot/Core.svelte.d.ts +41 -0
  104. package/dist/layout/plot/PanelRun.svelte +28 -0
  105. package/dist/{charts/heatmap/Chart.svelte.d.ts → layout/plot/PanelRun.svelte.d.ts} +11 -7
  106. package/dist/layout/plot/Plot.svelte +284 -0
  107. package/dist/layout/plot/Plot.svelte.d.ts +49 -0
  108. package/dist/layout/plot/PlotContext.d.ts +41 -0
  109. package/dist/layout/plot/PlotContext.js +46 -0
  110. package/dist/layout/plot/PublicPlotContext.d.ts +130 -0
  111. package/dist/layout/plot/PublicPlotContext.js +236 -0
  112. package/dist/layout/plot/Slice.d.ts +44 -0
  113. package/dist/layout/plot/Slice.js +98 -0
  114. package/dist/layout/plot/usePlot.d.ts +9 -0
  115. package/dist/layout/plot/usePlot.js +13 -0
  116. package/dist/layout/scales/ScalesLayout.svelte +241 -206
  117. package/dist/layout/scales/ScalesLayout.svelte.d.ts +2 -1
  118. package/dist/layout/scales/buildScale.d.ts +5 -22
  119. package/dist/layout/scales/buildScale.js +11 -34
  120. package/dist/layout/scales/niceDomain.d.ts +3 -3
  121. package/dist/layout/scales/niceDomain.js +4 -4
  122. package/dist/layout/styles/StylesLayout.svelte +65 -65
  123. package/dist/layout/styles/TileLayer.svelte +78 -76
  124. package/dist/layout/styles/TileLayer.svelte.d.ts +1 -1
  125. package/dist/layout/styles/ValueLabels.d.ts +97 -0
  126. package/dist/layout/styles/ValueLabels.js +237 -0
  127. package/dist/layout/timeline/Timeline.svelte +80 -74
  128. package/dist/layout/timeline/TimelineFrame.svelte +86 -0
  129. package/dist/layout/timeline/TimelineFrame.svelte.d.ts +16 -0
  130. package/dist/layout/timeline/TimelineLayout.svelte +114 -169
  131. package/dist/layout/timeline/TimelineLayout.svelte.d.ts +2 -0
  132. package/dist/layout/timeline/TimelinePlayer.svelte +195 -0
  133. package/dist/layout/timeline/TimelinePlayer.svelte.d.ts +7 -0
  134. package/dist/layout/timeline/TimelineRule.svelte +50 -0
  135. package/dist/layout/timeline/TimelineRule.svelte.d.ts +7 -0
  136. package/dist/layout/timeline/TimelineState.svelte.d.ts +82 -0
  137. package/dist/layout/timeline/TimelineState.svelte.js +226 -0
  138. package/dist/layout/timeline/TimelineSteps.d.ts +24 -0
  139. package/dist/layout/timeline/TimelineSteps.js +48 -0
  140. package/dist/layout/tooltip/Tooltip.svelte +82 -85
  141. package/dist/layout/tooltip/Tooltip.svelte.d.ts +43 -24
  142. package/dist/layout/tooltip/TooltipState.svelte.d.ts +61 -0
  143. package/dist/layout/tooltip/TooltipState.svelte.js +107 -0
  144. package/dist/markers/MarkerKinds.d.ts +173 -0
  145. package/dist/markers/MarkerKinds.js +51 -0
  146. package/dist/markers/area/AreaMarker.svelte +110 -0
  147. package/dist/markers/area/AreaMarker.svelte.d.ts +7 -0
  148. package/dist/markers/arrow/ArrowMarker.svelte +28 -0
  149. package/dist/markers/arrow/ArrowMarker.svelte.d.ts +7 -0
  150. package/dist/markers/{BarMarker.svelte → bar/BarMarker.svelte} +54 -52
  151. package/dist/markers/{BarMarker.svelte.d.ts → bar/BarMarker.svelte.d.ts} +1 -1
  152. package/dist/markers/bollinger/BollingerMarker.svelte +44 -0
  153. package/dist/markers/bollinger/BollingerMarker.svelte.d.ts +7 -0
  154. package/dist/markers/box/BoxMarker.svelte +143 -0
  155. package/dist/markers/box/BoxMarker.svelte.d.ts +7 -0
  156. package/dist/markers/brush/BrushMarker.svelte +32 -0
  157. package/dist/markers/brush/BrushMarker.svelte.d.ts +7 -0
  158. package/dist/markers/cell/CellMarker.svelte +27 -0
  159. package/dist/markers/{CellMarker.svelte.d.ts → cell/CellMarker.svelte.d.ts} +1 -1
  160. package/dist/markers/contour/ContourClipMarker.svelte +83 -0
  161. package/dist/markers/{ContourClipMarker.svelte.d.ts → contour/ContourClipMarker.svelte.d.ts} +1 -1
  162. package/dist/markers/contour/ContourMarker.svelte +28 -0
  163. package/dist/markers/{ContourMarker.svelte.d.ts → contour/ContourMarker.svelte.d.ts} +1 -1
  164. package/dist/markers/delaunay/DelaunayLinkMarker.svelte +26 -0
  165. package/dist/markers/delaunay/DelaunayLinkMarker.svelte.d.ts +7 -0
  166. package/dist/markers/delaunay/DelaunayMeshMarker.svelte +26 -0
  167. package/dist/markers/delaunay/DelaunayMeshMarker.svelte.d.ts +7 -0
  168. package/dist/markers/delta/Delta.d.ts +21 -0
  169. package/dist/markers/delta/Delta.js +60 -0
  170. package/dist/markers/delta/DeltaMarker.svelte +94 -0
  171. package/dist/markers/{DeltaMarker.svelte.d.ts → delta/DeltaMarker.svelte.d.ts} +2 -2
  172. package/dist/markers/density/DensityMarker.svelte +63 -0
  173. package/dist/markers/density/DensityMarker.svelte.d.ts +7 -0
  174. package/dist/markers/difference/DifferenceMarker.svelte +30 -0
  175. package/dist/markers/difference/DifferenceMarker.svelte.d.ts +7 -0
  176. package/dist/markers/dot/DotMarker.svelte +102 -0
  177. package/dist/markers/{DotMarker.svelte.d.ts → dot/DotMarker.svelte.d.ts} +5 -17
  178. package/dist/markers/geo/GeoFeaturesMarker.svelte +39 -0
  179. package/dist/markers/{GeoFeaturesMarker.svelte.d.ts → geo/GeoFeaturesMarker.svelte.d.ts} +1 -1
  180. package/dist/markers/geo/GeoHoverMarker.svelte +28 -0
  181. package/dist/markers/{GeoHoverMarker.svelte.d.ts → geo/GeoHoverMarker.svelte.d.ts} +2 -2
  182. package/dist/markers/geo/GraticuleMarker.svelte +18 -0
  183. package/dist/markers/{GraticuleMarker.svelte.d.ts → geo/GraticuleMarker.svelte.d.ts} +1 -1
  184. package/dist/markers/geo/SphereMarker.svelte +15 -0
  185. package/dist/markers/{SphereMarker.svelte.d.ts → geo/SphereMarker.svelte.d.ts} +1 -1
  186. package/dist/markers/hover/HoverMarker.svelte +252 -0
  187. package/dist/markers/{HoverMarker.svelte.d.ts → hover/HoverMarker.svelte.d.ts} +10 -10
  188. package/dist/markers/hull/HullMarker.svelte +25 -0
  189. package/dist/markers/hull/HullMarker.svelte.d.ts +7 -0
  190. package/dist/markers/image/ImageMarker.svelte +22 -0
  191. package/dist/markers/image/ImageMarker.svelte.d.ts +7 -0
  192. package/dist/markers/inset/InsetMarker.svelte +184 -150
  193. package/dist/markers/inset/InsetMarker.svelte.d.ts +4 -4
  194. package/dist/markers/inset/insetLayout.d.ts +1 -1
  195. package/dist/markers/inset/insetLayout.js +6 -2
  196. package/dist/markers/inset/insetProjection.d.ts +1 -1
  197. package/dist/markers/inset/insetProjection.js +3 -3
  198. package/dist/markers/line/LineMarker.svelte +30 -0
  199. package/dist/markers/{LineMarker.svelte.d.ts → line/LineMarker.svelte.d.ts} +1 -1
  200. package/dist/markers/link/LinkMarker.svelte +47 -0
  201. package/dist/markers/{LinkMarker.svelte.d.ts → link/LinkMarker.svelte.d.ts} +1 -1
  202. package/dist/markers/raster/RasterMarker.svelte +31 -0
  203. package/dist/markers/raster/RasterMarker.svelte.d.ts +7 -0
  204. package/dist/markers/rect/RectMarker.svelte +62 -0
  205. package/dist/markers/rect/RectMarker.svelte.d.ts +7 -0
  206. package/dist/markers/regression/RegressionMarker.svelte +60 -0
  207. package/dist/markers/regression/RegressionMarker.svelte.d.ts +7 -0
  208. package/dist/markers/rule/RuleMarker.svelte +47 -0
  209. package/dist/markers/{RuleMarker.svelte.d.ts → rule/RuleMarker.svelte.d.ts} +2 -5
  210. package/dist/markers/text/Declutter.d.ts +35 -0
  211. package/dist/markers/text/Declutter.js +157 -0
  212. package/dist/markers/text/TextMarker.svelte +244 -0
  213. package/dist/markers/{TextMarker.svelte.d.ts → text/TextMarker.svelte.d.ts} +5 -9
  214. package/dist/markers/tick/TickMarker.svelte +44 -0
  215. package/dist/markers/tick/TickMarker.svelte.d.ts +7 -0
  216. package/dist/markers/trail/TrailMarker.svelte +27 -0
  217. package/dist/markers/trail/TrailMarker.svelte.d.ts +7 -0
  218. package/dist/markers/utils/BandNudge.d.ts +22 -0
  219. package/dist/markers/utils/BandNudge.js +23 -0
  220. package/dist/markers/utils/MarkerChannels.d.ts +49 -0
  221. package/dist/markers/utils/MarkerChannels.js +97 -0
  222. package/dist/markers/vector/VectorMarker.svelte +29 -0
  223. package/dist/markers/{VectorMarker.svelte.d.ts → vector/VectorMarker.svelte.d.ts} +1 -1
  224. package/dist/markers/voronoi/VoronoiMarker.svelte +26 -0
  225. package/dist/markers/voronoi/VoronoiMarker.svelte.d.ts +7 -0
  226. package/dist/markers/voronoi/VoronoiMeshMarker.svelte +26 -0
  227. package/dist/markers/voronoi/VoronoiMeshMarker.svelte.d.ts +7 -0
  228. package/dist/markers/waffle/WaffleMarker.svelte +56 -0
  229. package/dist/markers/waffle/WaffleMarker.svelte.d.ts +7 -0
  230. package/dist/phases/Pipeline.d.ts +108 -0
  231. package/dist/phases/Pipeline.js +226 -0
  232. package/dist/phases/data/DataPhase.d.ts +25 -0
  233. package/dist/phases/data/DataPhase.js +82 -0
  234. package/dist/phases/data/PlotAxes.d.ts +75 -0
  235. package/dist/phases/data/PlotAxes.js +151 -0
  236. package/dist/phases/facet/FacetPhase.d.ts +52 -0
  237. package/dist/phases/facet/FacetPhase.js +114 -0
  238. package/dist/phases/hover/HoverPhase.d.ts +73 -0
  239. package/dist/phases/hover/HoverPhase.js +144 -0
  240. package/dist/phases/mapping/MappingPhase.d.ts +17 -0
  241. package/dist/phases/mapping/MappingPhase.js +42 -0
  242. package/dist/phases/markers/MarkersPhase.d.ts +14 -0
  243. package/dist/phases/markers/MarkersPhase.js +27 -0
  244. package/dist/phases/scales/MarkerAxisValues.d.ts +12 -0
  245. package/dist/phases/scales/MarkerAxisValues.js +34 -0
  246. package/dist/phases/scales/ScalesPhase.d.ts +31 -0
  247. package/dist/phases/scales/ScalesPhase.js +157 -0
  248. package/dist/phases/sharedScales/SharedScalesPhase.d.ts +55 -0
  249. package/dist/phases/sharedScales/SharedScalesPhase.js +168 -0
  250. package/dist/phases/statistics/AuthorMarkers.d.ts +43 -0
  251. package/dist/phases/statistics/AuthorMarkers.js +69 -0
  252. package/dist/phases/statistics/MarkerGrouping.d.ts +48 -0
  253. package/dist/phases/statistics/MarkerGrouping.js +113 -0
  254. package/dist/phases/statistics/Statistics.d.ts +53 -0
  255. package/dist/phases/statistics/Statistics.js +156 -0
  256. package/dist/phases/statistics/StatisticsPhase.d.ts +18 -0
  257. package/dist/phases/statistics/StatisticsPhase.js +68 -0
  258. package/dist/phases/statistics/methods/BollingerStatistic.d.ts +9 -0
  259. package/dist/phases/statistics/methods/BollingerStatistic.js +18 -0
  260. package/dist/phases/statistics/methods/BoxStatistic.d.ts +9 -0
  261. package/dist/phases/statistics/methods/BoxStatistic.js +18 -0
  262. package/dist/phases/statistics/methods/Density2dStatistic.d.ts +9 -0
  263. package/dist/phases/statistics/methods/Density2dStatistic.js +18 -0
  264. package/dist/phases/statistics/methods/DensityStatistic.d.ts +12 -0
  265. package/dist/phases/statistics/methods/DensityStatistic.js +29 -0
  266. package/dist/phases/statistics/methods/MovingAverageStatistic.d.ts +12 -0
  267. package/dist/phases/statistics/methods/MovingAverageStatistic.js +30 -0
  268. package/dist/phases/statistics/methods/RegressionStatistic.d.ts +9 -0
  269. package/dist/phases/statistics/methods/RegressionStatistic.js +21 -0
  270. package/dist/phases/styles/StylesPhase.d.ts +13 -0
  271. package/dist/phases/styles/StylesPhase.js +17 -0
  272. package/dist/phases/tooltip/TooltipPhase.d.ts +12 -0
  273. package/dist/phases/tooltip/TooltipPhase.js +10 -0
  274. package/dist/phases/transforms/Transforms.d.ts +42 -0
  275. package/dist/phases/transforms/Transforms.js +130 -0
  276. package/dist/phases/transforms/TransformsPhase.d.ts +64 -0
  277. package/dist/phases/transforms/TransformsPhase.js +242 -0
  278. package/dist/phases/transforms/methods/AnchorBar.d.ts +13 -0
  279. package/dist/phases/transforms/methods/AnchorBar.js +21 -0
  280. package/dist/phases/transforms/methods/BinTransform.d.ts +7 -0
  281. package/dist/phases/transforms/methods/BinTransform.js +48 -0
  282. package/dist/phases/transforms/methods/DensityTransform.d.ts +6 -0
  283. package/dist/phases/transforms/methods/DensityTransform.js +13 -0
  284. package/dist/phases/transforms/methods/GroupTransform.d.ts +8 -0
  285. package/dist/phases/transforms/methods/GroupTransform.js +39 -0
  286. package/dist/phases/transforms/methods/NormalizeTransform.d.ts +10 -0
  287. package/dist/phases/transforms/methods/NormalizeTransform.js +30 -0
  288. package/dist/phases/transforms/methods/OrderTransform.d.ts +16 -0
  289. package/dist/phases/transforms/methods/OrderTransform.js +43 -0
  290. package/dist/phases/transforms/methods/PerGroup.d.ts +11 -0
  291. package/dist/phases/transforms/methods/PerGroup.js +39 -0
  292. package/dist/phases/transforms/methods/PositionTransform.d.ts +15 -0
  293. package/dist/phases/transforms/methods/PositionTransform.js +74 -0
  294. package/dist/phases/transforms/methods/StackTransform.d.ts +8 -0
  295. package/dist/phases/transforms/methods/StackTransform.js +29 -0
  296. package/dist/phases/transforms/methods/WindowTransform.d.ts +8 -0
  297. package/dist/phases/transforms/methods/WindowTransform.js +23 -0
  298. package/dist/plots/area/Plot.svelte +42 -0
  299. package/dist/plots/{heatmap/ValueLabels.svelte.d.ts → area/Plot.svelte.d.ts} +8 -16
  300. package/dist/plots/area/defaults.d.ts +4 -0
  301. package/dist/plots/area/defaults.js +21 -0
  302. package/dist/plots/area/markers.d.ts +14 -0
  303. package/dist/plots/area/markers.js +40 -0
  304. package/dist/plots/bar/Plot.svelte +33 -438
  305. package/dist/plots/bar/Plot.svelte.d.ts +5 -8
  306. package/dist/plots/bar/defaults.d.ts +9 -0
  307. package/dist/plots/bar/defaults.js +92 -0
  308. package/dist/plots/bar/markers.d.ts +45 -0
  309. package/dist/plots/bar/markers.js +232 -0
  310. package/dist/plots/geo/Core.svelte +151 -0
  311. package/dist/plots/geo/Core.svelte.d.ts +25 -0
  312. package/dist/plots/geo/Plot.svelte +103 -324
  313. package/dist/plots/geo/Plot.svelte.d.ts +5 -9
  314. package/dist/plots/geo/defaults.d.ts +4 -0
  315. package/dist/plots/geo/defaults.js +16 -0
  316. package/dist/plots/geo/features.svelte.d.ts +5 -0
  317. package/dist/plots/geo/features.svelte.js +44 -0
  318. package/dist/plots/geo/phases/data.d.ts +6 -0
  319. package/dist/plots/geo/phases/data.js +26 -0
  320. package/dist/plots/geo/phases/hover.d.ts +9 -0
  321. package/dist/plots/geo/phases/hover.js +45 -0
  322. package/dist/plots/geo/phases/markers.d.ts +9 -0
  323. package/dist/plots/geo/phases/markers.js +76 -0
  324. package/dist/plots/geo/phases/scales.d.ts +10 -0
  325. package/dist/plots/geo/phases/scales.js +85 -0
  326. package/dist/plots/geo/phases/tooltip.d.ts +3 -0
  327. package/dist/plots/geo/phases/tooltip.js +5 -0
  328. package/dist/plots/geo/slices.d.ts +18 -0
  329. package/dist/plots/geo/slices.js +56 -0
  330. package/dist/plots/heatmap/Plot.svelte +55 -249
  331. package/dist/plots/heatmap/Plot.svelte.d.ts +5 -8
  332. package/dist/plots/heatmap/defaults.d.ts +11 -0
  333. package/dist/plots/heatmap/defaults.js +91 -0
  334. package/dist/plots/heatmap/markers.d.ts +17 -0
  335. package/dist/plots/heatmap/markers.js +141 -0
  336. package/dist/plots/histogram/Plot.svelte +45 -0
  337. package/dist/plots/histogram/Plot.svelte.d.ts +26 -0
  338. package/dist/plots/histogram/defaults.d.ts +9 -0
  339. package/dist/plots/histogram/defaults.js +87 -0
  340. package/dist/plots/histogram/markers.d.ts +18 -0
  341. package/dist/plots/histogram/markers.js +89 -0
  342. package/dist/plots/line/Plot.svelte +37 -268
  343. package/dist/plots/line/Plot.svelte.d.ts +3 -7
  344. package/dist/plots/line/defaults.d.ts +4 -0
  345. package/dist/plots/line/defaults.js +29 -0
  346. package/dist/plots/line/markers.d.ts +49 -0
  347. package/dist/plots/line/markers.js +200 -0
  348. package/dist/plots/pyramid/Plot.svelte +34 -362
  349. package/dist/plots/pyramid/Plot.svelte.d.ts +5 -8
  350. package/dist/plots/pyramid/defaults.d.ts +13 -0
  351. package/dist/plots/pyramid/defaults.js +86 -0
  352. package/dist/plots/pyramid/markers.d.ts +21 -0
  353. package/dist/plots/pyramid/markers.js +159 -0
  354. package/dist/plots/scatter/Plot.svelte +34 -288
  355. package/dist/plots/scatter/Plot.svelte.d.ts +5 -8
  356. package/dist/plots/scatter/defaults.d.ts +4 -0
  357. package/dist/plots/scatter/defaults.js +79 -0
  358. package/dist/plots/scatter/markers.d.ts +19 -0
  359. package/dist/plots/scatter/markers.js +128 -0
  360. package/dist/plots/utils/ChannelName.d.ts +9 -0
  361. package/dist/plots/utils/ChannelName.js +14 -0
  362. package/dist/plots/utils/accessors.d.ts +1 -1
  363. package/dist/plots/utils/accessors.js +4 -2
  364. package/dist/plots/utils/gaps.d.ts +14 -19
  365. package/dist/plots/utils/gaps.js +38 -18
  366. package/dist/plots/utils/geoAccessors.d.ts +8 -8
  367. package/dist/plots/utils/geoAccessors.js +16 -12
  368. package/dist/plots/utils/geoSegments.d.ts +24 -9
  369. package/dist/plots/utils/geoSegments.js +31 -11
  370. package/dist/plots/utils/segments.d.ts +5 -16
  371. package/dist/plots/utils/segments.js +40 -52
  372. package/dist/plots/utils/tiles.d.ts +9 -9
  373. package/dist/plots/utils/tiles.js +35 -25
  374. package/dist/plots/utils/topojson.d.ts +1 -1
  375. package/dist/plots/utils/topojson.js +3 -3
  376. package/dist/stores/device.js +2 -4
  377. package/dist/types/configuration/styling.d.ts +152 -27
  378. package/dist/types/layout/box.d.ts +24 -0
  379. package/dist/types/layout/composer.d.ts +36 -0
  380. package/dist/types/layout/coordinates.d.ts +14 -14
  381. package/dist/types/layout/facet.d.ts +44 -22
  382. package/dist/types/layout/figure.d.ts +7 -0
  383. package/dist/types/layout/geometry.d.ts +6 -2
  384. package/dist/types/layout/grid.d.ts +66 -0
  385. package/dist/types/layout/hover.d.ts +48 -0
  386. package/dist/types/layout/legend.d.ts +256 -55
  387. package/dist/types/layout/mapping.d.ts +68 -0
  388. package/dist/types/layout/plot.d.ts +41 -0
  389. package/dist/types/layout/scales.d.ts +92 -24
  390. package/dist/types/layout/scales.js +19 -1
  391. package/dist/types/layout/statistics/bollinger.d.ts +18 -0
  392. package/dist/types/layout/statistics/box.d.ts +8 -0
  393. package/dist/types/layout/statistics/box.js +1 -0
  394. package/dist/types/layout/statistics/density.d.ts +27 -0
  395. package/dist/types/layout/statistics/density.js +1 -0
  396. package/dist/types/layout/statistics/index.d.ts +46 -0
  397. package/dist/types/layout/statistics/index.js +1 -0
  398. package/dist/types/layout/statistics/movingAverage.d.ts +12 -0
  399. package/dist/types/layout/statistics/movingAverage.js +1 -0
  400. package/dist/types/layout/statistics/regression.d.ts +20 -0
  401. package/dist/types/layout/statistics/regression.js +1 -0
  402. package/dist/types/layout/styles.d.ts +24 -35
  403. package/dist/types/layout/timeline.d.ts +51 -4
  404. package/dist/types/layout/tooltip.d.ts +7 -85
  405. package/dist/types/markers/all.d.ts +3 -4
  406. package/dist/types/markers/axis/area.d.ts +12 -0
  407. package/dist/types/markers/axis/area.js +1 -0
  408. package/dist/types/markers/axis/arrow.d.ts +15 -0
  409. package/dist/types/markers/axis/arrow.js +1 -0
  410. package/dist/types/markers/axis/axisBasedMarkersConfig.d.ts +29 -0
  411. package/dist/types/markers/axis/axisBasedMarkersConfig.js +1 -0
  412. package/dist/types/markers/axis/bar.d.ts +18 -0
  413. package/dist/types/markers/axis/bar.js +1 -0
  414. package/dist/types/markers/axis/bollinger.d.ts +6 -0
  415. package/dist/types/markers/axis/bollinger.js +1 -0
  416. package/dist/types/markers/axis/box.d.ts +14 -0
  417. package/dist/types/markers/axis/box.js +1 -0
  418. package/dist/types/markers/axis/brush.d.ts +28 -0
  419. package/dist/types/markers/axis/brush.js +1 -0
  420. package/dist/types/markers/axis/cell.d.ts +9 -0
  421. package/dist/types/markers/axis/cell.js +1 -0
  422. package/dist/types/markers/axis/component.d.ts +9 -0
  423. package/dist/types/markers/axis/component.js +1 -0
  424. package/dist/types/markers/axis/curveName.d.ts +2 -0
  425. package/dist/types/markers/axis/curveName.js +1 -0
  426. package/dist/types/markers/axis/delaunayLink.d.ts +7 -0
  427. package/dist/types/markers/axis/delaunayLink.js +1 -0
  428. package/dist/types/markers/axis/delaunayMesh.d.ts +7 -0
  429. package/dist/types/markers/axis/delaunayMesh.js +1 -0
  430. package/dist/types/markers/axis/delta.d.ts +27 -0
  431. package/dist/types/markers/axis/delta.js +1 -0
  432. package/dist/types/markers/axis/density.d.ts +12 -0
  433. package/dist/types/markers/axis/density.js +1 -0
  434. package/dist/types/markers/axis/difference.d.ts +12 -0
  435. package/dist/types/markers/axis/difference.js +1 -0
  436. package/dist/types/markers/axis/hover.d.ts +21 -0
  437. package/dist/types/markers/axis/hover.js +1 -0
  438. package/dist/types/markers/axis/hull.d.ts +7 -0
  439. package/dist/types/markers/axis/hull.js +1 -0
  440. package/dist/types/markers/axis/image.d.ts +12 -0
  441. package/dist/types/markers/axis/image.js +1 -0
  442. package/dist/types/markers/axis/line.d.ts +7 -0
  443. package/dist/types/markers/axis/line.js +1 -0
  444. package/dist/types/markers/axis/raster.d.ts +18 -0
  445. package/dist/types/markers/axis/raster.js +1 -0
  446. package/dist/types/markers/axis/rect.d.ts +15 -0
  447. package/dist/types/markers/axis/rect.js +1 -0
  448. package/dist/types/markers/axis/regression.d.ts +6 -0
  449. package/dist/types/markers/axis/regression.js +1 -0
  450. package/dist/types/markers/axis/rule.d.ts +15 -0
  451. package/dist/types/markers/axis/rule.js +1 -0
  452. package/dist/types/markers/axis/tick.d.ts +8 -0
  453. package/dist/types/markers/axis/tick.js +1 -0
  454. package/dist/types/markers/axis/trail.d.ts +14 -0
  455. package/dist/types/markers/axis/trail.js +1 -0
  456. package/dist/types/markers/axis/voronoi.d.ts +7 -0
  457. package/dist/types/markers/axis/voronoi.js +1 -0
  458. package/dist/types/markers/axis/voronoiMesh.d.ts +7 -0
  459. package/dist/types/markers/axis/voronoiMesh.js +1 -0
  460. package/dist/types/markers/axis/waffle.d.ts +13 -0
  461. package/dist/types/markers/axis/waffle.js +1 -0
  462. package/dist/types/markers/basic/basicMarkersConfig.d.ts +4 -0
  463. package/dist/types/markers/basic/basicMarkersConfig.js +1 -0
  464. package/dist/types/markers/basic/dot.d.ts +9 -0
  465. package/dist/types/markers/basic/dot.js +1 -0
  466. package/dist/types/markers/basic/text.d.ts +60 -0
  467. package/dist/types/markers/basic/text.js +1 -0
  468. package/dist/types/markers/basic.d.ts +4 -0
  469. package/dist/types/markers/basic.js +1 -0
  470. package/dist/types/markers/channels/commonMarkerConfig.d.ts +26 -0
  471. package/dist/types/markers/channels/commonMarkerConfig.js +1 -0
  472. package/dist/types/markers/channels/commonMarkerConfigWithArea.d.ts +6 -0
  473. package/dist/types/markers/channels/commonMarkerConfigWithArea.js +1 -0
  474. package/dist/types/markers/channels/commonMarkerConfigWithColor.d.ts +5 -0
  475. package/dist/types/markers/channels/commonMarkerConfigWithColor.js +1 -0
  476. package/dist/types/markers/channels/commonMarkerConfigWithInterval.d.ts +9 -0
  477. package/dist/types/markers/channels/commonMarkerConfigWithInterval.js +1 -0
  478. package/dist/types/markers/channels/commonMarkerConfigWithRadius.d.ts +5 -0
  479. package/dist/types/markers/channels/commonMarkerConfigWithRadius.js +1 -0
  480. package/dist/types/markers/channels/commonMarkerConfigWithSymbol.d.ts +5 -0
  481. package/dist/types/markers/channels/commonMarkerConfigWithSymbol.js +1 -0
  482. package/dist/types/markers/channels/commonMarkerConfigWithWeight.d.ts +5 -0
  483. package/dist/types/markers/channels/commonMarkerConfigWithWeight.js +1 -0
  484. package/dist/types/markers/common.d.ts +30 -103
  485. package/dist/types/markers/common.js +29 -1
  486. package/dist/types/markers/geo/contour.d.ts +27 -0
  487. package/dist/types/markers/geo/contour.js +1 -0
  488. package/dist/types/markers/geo/features.d.ts +12 -0
  489. package/dist/types/markers/geo/features.js +1 -0
  490. package/dist/types/markers/geo/geoComponent.d.ts +7 -0
  491. package/dist/types/markers/geo/geoComponent.js +1 -0
  492. package/dist/types/markers/geo/geoHover.d.ts +6 -0
  493. package/dist/types/markers/geo/geoHover.js +1 -0
  494. package/dist/types/markers/geo/geoMarkersConfig.d.ts +11 -0
  495. package/dist/types/markers/geo/geoMarkersConfig.js +1 -0
  496. package/dist/types/markers/geo/graticule.d.ts +11 -0
  497. package/dist/types/markers/geo/graticule.js +1 -0
  498. package/dist/types/markers/geo/inset.d.ts +50 -0
  499. package/dist/types/markers/geo/inset.js +1 -0
  500. package/dist/types/markers/geo/link.d.ts +13 -0
  501. package/dist/types/markers/geo/link.js +1 -0
  502. package/dist/types/markers/geo/sphere.d.ts +11 -0
  503. package/dist/types/markers/geo/sphere.js +1 -0
  504. package/dist/types/markers/geo/vector.d.ts +17 -0
  505. package/dist/types/markers/geo/vector.js +1 -0
  506. package/dist/types/markers/geo.d.ts +10 -212
  507. package/dist/types/markers/geo.js +10 -1
  508. package/dist/types/markers/traits.d.ts +22 -0
  509. package/dist/types/markers/traits.js +1 -0
  510. package/dist/types/misc/easing.js +1 -0
  511. package/dist/types/misc/viewport.js +1 -0
  512. package/dist/types/phases/data/axes.d.ts +18 -0
  513. package/dist/types/phases/data/axes.js +1 -0
  514. package/dist/types/phases/data/phase.d.ts +26 -0
  515. package/dist/types/phases/data/phase.js +2 -0
  516. package/dist/types/phases/facet/phase.d.ts +18 -0
  517. package/dist/types/phases/facet/phase.js +1 -0
  518. package/dist/types/phases/hover/phase.d.ts +34 -0
  519. package/dist/types/phases/hover/phase.js +1 -0
  520. package/dist/types/phases/index.d.ts +14 -0
  521. package/dist/types/phases/index.js +1 -0
  522. package/dist/types/phases/kind.d.ts +59 -0
  523. package/dist/types/phases/kind.js +1 -0
  524. package/dist/types/phases/mapping/phase.d.ts +5 -0
  525. package/dist/types/phases/mapping/phase.js +1 -0
  526. package/dist/types/phases/markers/phase.d.ts +13 -0
  527. package/dist/types/phases/markers/phase.js +1 -0
  528. package/dist/types/phases/pipeline.d.ts +10 -0
  529. package/dist/types/phases/pipeline.js +1 -0
  530. package/dist/types/phases/scales/phase.d.ts +26 -0
  531. package/dist/types/phases/scales/phase.js +1 -0
  532. package/dist/types/phases/sharedScales/phase.d.ts +12 -0
  533. package/dist/types/phases/sharedScales/phase.js +1 -0
  534. package/dist/types/phases/stage.d.ts +12 -0
  535. package/dist/types/phases/stage.js +1 -0
  536. package/dist/types/phases/state.d.ts +73 -0
  537. package/dist/types/phases/state.js +1 -0
  538. package/dist/types/phases/statistics/phase.d.ts +41 -0
  539. package/dist/types/phases/statistics/phase.js +1 -0
  540. package/dist/types/phases/statistics/source.d.ts +20 -0
  541. package/dist/types/phases/statistics/source.js +7 -0
  542. package/dist/types/phases/styles/phase.d.ts +24 -0
  543. package/dist/types/phases/styles/phase.js +1 -0
  544. package/dist/types/phases/transforms/adapter.d.ts +27 -0
  545. package/dist/types/phases/transforms/adapter.js +1 -0
  546. package/dist/types/phases/transforms/phase.d.ts +40 -0
  547. package/dist/types/phases/transforms/phase.js +1 -0
  548. package/dist/types/plots/area/props.d.ts +10 -0
  549. package/dist/types/plots/area/props.js +1 -0
  550. package/dist/types/plots/area/state.d.ts +6 -0
  551. package/dist/types/plots/area/state.js +1 -0
  552. package/dist/types/plots/bar/props.d.ts +10 -0
  553. package/dist/types/plots/bar/props.js +1 -0
  554. package/dist/types/plots/bar/state.d.ts +6 -0
  555. package/dist/types/plots/bar/state.js +1 -0
  556. package/dist/types/plots/camera.d.ts +7 -17
  557. package/dist/types/plots/constants.d.ts +16 -8
  558. package/dist/types/plots/data/common.d.ts +25 -17
  559. package/dist/types/plots/data/geo.d.ts +26 -12
  560. package/dist/types/plots/gaps.d.ts +19 -38
  561. package/dist/types/plots/geo/props.d.ts +23 -0
  562. package/dist/types/plots/geo/props.js +1 -0
  563. package/dist/types/plots/geo/state.d.ts +82 -0
  564. package/dist/types/plots/geo/state.js +1 -0
  565. package/dist/types/plots/heatmap/props.d.ts +10 -0
  566. package/dist/types/plots/heatmap/props.js +1 -0
  567. package/dist/types/plots/heatmap/state.d.ts +28 -0
  568. package/dist/types/plots/heatmap/state.js +1 -0
  569. package/dist/types/plots/histogram/props.d.ts +18 -0
  570. package/dist/types/plots/histogram/props.js +1 -0
  571. package/dist/types/plots/histogram/state.d.ts +6 -0
  572. package/dist/types/plots/histogram/state.js +1 -0
  573. package/dist/types/plots/line/props.d.ts +10 -0
  574. package/dist/types/plots/line/props.js +1 -0
  575. package/dist/types/plots/line/state.d.ts +9 -0
  576. package/dist/types/plots/line/state.js +1 -0
  577. package/dist/types/plots/props.d.ts +143 -35
  578. package/dist/types/plots/pyramid/props.d.ts +10 -0
  579. package/dist/types/plots/pyramid/props.js +1 -0
  580. package/dist/types/plots/pyramid/state.d.ts +16 -0
  581. package/dist/types/plots/pyramid/state.js +1 -0
  582. package/dist/types/plots/scatter/props.d.ts +10 -0
  583. package/dist/types/plots/scatter/props.js +1 -0
  584. package/dist/types/plots/scatter/state.d.ts +6 -0
  585. package/dist/types/plots/scatter/state.js +1 -0
  586. package/dist/types/plots/segments/common.d.ts +1 -1
  587. package/dist/types/plots/segments/config.d.ts +12 -6
  588. package/dist/types/plots/styling.d.ts +5 -5
  589. package/dist/types/transforms/bin.d.ts +84 -0
  590. package/dist/types/transforms/bin.js +28 -0
  591. package/dist/types/transforms/bollinger.d.ts +21 -0
  592. package/dist/types/transforms/bollinger.js +1 -0
  593. package/dist/types/transforms/common.d.ts +29 -0
  594. package/dist/types/transforms/common.js +16 -0
  595. package/dist/types/transforms/density.d.ts +45 -0
  596. package/dist/types/transforms/density.js +10 -0
  597. package/dist/types/transforms/filter.d.ts +12 -0
  598. package/dist/types/transforms/filter.js +14 -0
  599. package/dist/types/transforms/group.d.ts +70 -0
  600. package/dist/types/transforms/group.js +8 -0
  601. package/dist/types/transforms/index.d.ts +36 -0
  602. package/dist/types/transforms/index.js +1 -0
  603. package/dist/types/transforms/interval.d.ts +21 -0
  604. package/dist/types/transforms/interval.js +14 -0
  605. package/dist/types/transforms/jitter.d.ts +34 -0
  606. package/dist/types/transforms/jitter.js +1 -0
  607. package/dist/types/transforms/map.d.ts +24 -0
  608. package/dist/types/transforms/map.js +1 -0
  609. package/dist/types/transforms/normalize.d.ts +36 -0
  610. package/dist/types/transforms/normalize.js +1 -0
  611. package/dist/types/transforms/select.d.ts +15 -0
  612. package/dist/types/transforms/select.js +1 -0
  613. package/dist/types/transforms/shift.d.ts +20 -0
  614. package/dist/types/transforms/shift.js +1 -0
  615. package/dist/types/transforms/sort.d.ts +31 -0
  616. package/dist/types/transforms/sort.js +14 -0
  617. package/dist/types/transforms/stack.d.ts +64 -0
  618. package/dist/types/transforms/stack.js +12 -0
  619. package/dist/types/transforms/window.d.ts +29 -0
  620. package/dist/types/transforms/window.js +1 -0
  621. package/dist/utils/ContinuousDomain.d.ts +12 -0
  622. package/dist/utils/ContinuousDomain.js +19 -0
  623. package/dist/utils/Interpolation.d.ts +26 -0
  624. package/dist/utils/Interpolation.js +65 -0
  625. package/dist/utils/{color.d.ts → color/contrast.d.ts} +0 -5
  626. package/dist/utils/color/contrast.js +40 -0
  627. package/dist/utils/color/cssColor.d.ts +4 -0
  628. package/dist/utils/color/cssColor.js +77 -0
  629. package/dist/utils/color/index.d.ts +3 -0
  630. package/dist/utils/color/index.js +3 -0
  631. package/dist/utils/color/ramp.d.ts +17 -0
  632. package/dist/utils/color/ramp.js +110 -0
  633. package/dist/utils/grouping.d.ts +9 -5
  634. package/dist/utils/grouping.js +19 -10
  635. package/dist/utils/merge.d.ts +7 -0
  636. package/dist/utils/merge.js +17 -0
  637. package/dist/utils/opacity.d.ts +9 -0
  638. package/dist/utils/opacity.js +38 -0
  639. package/dist/utils/symbol.d.ts +31 -0
  640. package/dist/utils/symbol.js +92 -0
  641. package/docs/architecture.md +137 -0
  642. package/docs/chrome.md +68 -0
  643. package/docs/composer.md +53 -0
  644. package/docs/concepts.md +99 -0
  645. package/docs/development.md +94 -0
  646. package/docs/facets.md +69 -0
  647. package/docs/geo.md +151 -0
  648. package/docs/getting-started.md +79 -0
  649. package/docs/legend.md +106 -0
  650. package/docs/markers.md +106 -0
  651. package/docs/plots.md +158 -0
  652. package/docs/scales.md +78 -0
  653. package/docs/state.md +71 -0
  654. package/docs/styles-and-segments.md +215 -0
  655. package/docs/theming.md +215 -0
  656. package/docs/timeline.md +94 -0
  657. package/docs/tooltip-and-hover.md +80 -0
  658. package/docs/transforms-and-statistics.md +88 -0
  659. package/examples/BarValues.svelte +14 -0
  660. package/examples/CustomTooltip.svelte +37 -0
  661. package/examples/Facets.svelte +15 -0
  662. package/examples/LegendReader.svelte +8 -0
  663. package/examples/LegendToggle.svelte +25 -0
  664. package/examples/ResponsiveLine.svelte +37 -0
  665. package/examples/Segments.svelte +17 -0
  666. package/examples/TimelinePlayer.svelte +20 -0
  667. package/examples/Tooltip.svelte +19 -0
  668. package/examples/TooltipCard.svelte +86 -0
  669. package/examples/data.ts +12 -0
  670. package/llms-full.txt +114 -0
  671. package/llms.txt +49 -0
  672. package/package.json +41 -5
  673. package/dist/charts/BaseChart.svelte +0 -149
  674. package/dist/charts/BaseChart.svelte.d.ts +0 -47
  675. package/dist/charts/bar/Chart.svelte +0 -110
  676. package/dist/charts/bar/Chart.svelte.d.ts +0 -26
  677. package/dist/charts/container/ChartContainer.svelte +0 -137
  678. package/dist/charts/container/ChartContainer.svelte.d.ts +0 -16
  679. package/dist/charts/heatmap/Chart.svelte +0 -114
  680. package/dist/charts/line/Chart.svelte +0 -112
  681. package/dist/charts/line/Chart.svelte.d.ts +0 -26
  682. package/dist/charts/pyramid/Chart.svelte +0 -134
  683. package/dist/charts/pyramid/Chart.svelte.d.ts +0 -30
  684. package/dist/charts/scatter/Chart.svelte +0 -95
  685. package/dist/charts/scatter/Chart.svelte.d.ts +0 -28
  686. package/dist/layout/coordinates/margins.d.ts +0 -16
  687. package/dist/layout/coordinates/margins.js +0 -11
  688. package/dist/layout/legend/interaction.svelte.d.ts +0 -15
  689. package/dist/layout/legend/interaction.svelte.js +0 -32
  690. package/dist/layout/plot/BasePlotLayout.svelte +0 -332
  691. package/dist/layout/plot/BasePlotLayout.svelte.d.ts +0 -122
  692. package/dist/layout/plot/margins.d.ts +0 -18
  693. package/dist/layout/plot/margins.js +0 -15
  694. package/dist/layout/plot/measureText.d.ts +0 -4
  695. package/dist/layout/plot/measureText.js +0 -19
  696. package/dist/layout/tooltip/TooltipLayout.svelte +0 -51
  697. package/dist/layout/tooltip/TooltipLayout.svelte.d.ts +0 -45
  698. package/dist/layout/tooltip/controller.svelte.d.ts +0 -61
  699. package/dist/layout/tooltip/controller.svelte.js +0 -173
  700. package/dist/layout/tooltip/hover.svelte.d.ts +0 -7
  701. package/dist/layout/tooltip/hover.svelte.js +0 -28
  702. package/dist/layout/tooltip/resolveTooltipPlacement.d.ts +0 -24
  703. package/dist/layout/tooltip/resolveTooltipPlacement.js +0 -49
  704. package/dist/layout/tooltip/utils.d.ts +0 -49
  705. package/dist/layout/tooltip/utils.js +0 -82
  706. package/dist/markers/CellMarker.svelte +0 -21
  707. package/dist/markers/ContourClipMarker.svelte +0 -77
  708. package/dist/markers/ContourMarker.svelte +0 -28
  709. package/dist/markers/DeltaMarker.svelte +0 -109
  710. package/dist/markers/DotMarker.svelte +0 -70
  711. package/dist/markers/GeoFeaturesMarker.svelte +0 -19
  712. package/dist/markers/GeoHoverMarker.svelte +0 -25
  713. package/dist/markers/GraticuleMarker.svelte +0 -18
  714. package/dist/markers/HoverMarker.svelte +0 -212
  715. package/dist/markers/LineMarker.svelte +0 -19
  716. package/dist/markers/LinkMarker.svelte +0 -42
  717. package/dist/markers/PeakMarker.svelte +0 -80
  718. package/dist/markers/PeakMarker.svelte.d.ts +0 -13
  719. package/dist/markers/RuleMarker.svelte +0 -24
  720. package/dist/markers/SphereMarker.svelte +0 -15
  721. package/dist/markers/TextMarker.svelte +0 -62
  722. package/dist/markers/VectorMarker.svelte +0 -20
  723. package/dist/plots/bar/ValueLabels.svelte +0 -149
  724. package/dist/plots/bar/ValueLabels.svelte.d.ts +0 -58
  725. package/dist/plots/bar/buildBarMarkers.d.ts +0 -27
  726. package/dist/plots/bar/buildBarMarkers.js +0 -151
  727. package/dist/plots/bar/hoverPoints.d.ts +0 -15
  728. package/dist/plots/bar/hoverPoints.js +0 -37
  729. package/dist/plots/bar/layout.svelte.d.ts +0 -42
  730. package/dist/plots/bar/layout.svelte.js +0 -182
  731. package/dist/plots/geo/buildGeoMarkers.d.ts +0 -33
  732. package/dist/plots/geo/buildGeoMarkers.js +0 -47
  733. package/dist/plots/heatmap/ValueLabels.svelte +0 -56
  734. package/dist/plots/heatmap/buildCellMarkers.d.ts +0 -21
  735. package/dist/plots/heatmap/buildCellMarkers.js +0 -25
  736. package/dist/plots/line/ValueLabels.svelte +0 -269
  737. package/dist/plots/line/ValueLabels.svelte.d.ts +0 -52
  738. package/dist/plots/line/buildGapMarkers.d.ts +0 -28
  739. package/dist/plots/line/buildGapMarkers.js +0 -74
  740. package/dist/plots/line/buildLineMarkers.d.ts +0 -16
  741. package/dist/plots/line/buildLineMarkers.js +0 -56
  742. package/dist/plots/line/valueLabelMargin.d.ts +0 -19
  743. package/dist/plots/line/valueLabelMargin.js +0 -65
  744. package/dist/plots/pyramid/ValueLabels.svelte +0 -139
  745. package/dist/plots/pyramid/ValueLabels.svelte.d.ts +0 -56
  746. package/dist/plots/pyramid/buildPyramidBarMarkers.d.ts +0 -26
  747. package/dist/plots/pyramid/buildPyramidBarMarkers.js +0 -72
  748. package/dist/plots/scatter/ValueLabels.svelte +0 -163
  749. package/dist/plots/scatter/ValueLabels.svelte.d.ts +0 -52
  750. package/dist/plots/scatter/buildScatterMarkers.d.ts +0 -12
  751. package/dist/plots/scatter/buildScatterMarkers.js +0 -36
  752. package/dist/plots/scatter/resolveRadiusPaddedDomain.d.ts +0 -10
  753. package/dist/plots/scatter/resolveRadiusPaddedDomain.js +0 -23
  754. package/dist/plots/utils/categoricalAxisMargin.d.ts +0 -14
  755. package/dist/plots/utils/categoricalAxisMargin.js +0 -20
  756. package/dist/plots/utils/declutter.d.ts +0 -120
  757. package/dist/plots/utils/declutter.js +0 -240
  758. package/dist/plots/utils/labelOverflow.svelte.d.ts +0 -107
  759. package/dist/plots/utils/labelOverflow.svelte.js +0 -257
  760. package/dist/plots/utils/legendDisabled.d.ts +0 -27
  761. package/dist/plots/utils/legendDisabled.js +0 -68
  762. package/dist/plots/utils/valueLabelMargin.d.ts +0 -67
  763. package/dist/plots/utils/valueLabelMargin.js +0 -60
  764. package/dist/types/charts/common.d.ts +0 -22
  765. package/dist/types/charts/props.d.ts +0 -50
  766. package/dist/types/markers/base.d.ts +0 -45
  767. package/dist/types/markers/line.d.ts +0 -34
  768. package/dist/types/markers/props.d.ts +0 -11
  769. package/dist/types/plots/data/scatter.d.ts +0 -13
  770. package/dist/utils/color.js +0 -141
  771. package/dist/utils/delta.d.ts +0 -12
  772. package/dist/utils/delta.js +0 -69
  773. package/dist/utils/edgeAwareAnchor.d.ts +0 -34
  774. package/dist/utils/edgeAwareAnchor.js +0 -60
  775. package/dist/utils/interpolate.d.ts +0 -31
  776. package/dist/utils/interpolate.js +0 -71
  777. /package/dist/types/{charts/common.js → layout/box.js} +0 -0
  778. /package/dist/types/{charts/interpolate.js → layout/composer.js} +0 -0
  779. /package/dist/types/{charts/props.js → layout/figure.js} +0 -0
  780. /package/dist/types/{markers/base.js → layout/grid.js} +0 -0
  781. /package/dist/types/{markers/line.js → layout/hover.js} +0 -0
  782. /package/dist/types/{markers/props.js → layout/mapping.js} +0 -0
  783. /package/dist/types/{plots/data/scatter.js → layout/plot.js} +0 -0
  784. /package/dist/types/{viewport.js → layout/statistics/bollinger.js} +0 -0
  785. /package/dist/types/{charts/interpolate.d.ts → misc/easing.d.ts} +0 -0
  786. /package/dist/types/{viewport.d.ts → misc/viewport.d.ts} +0 -0
@@ -0,0 +1,76 @@
1
+ import { HoverPhase } from '../../../phases/hover/HoverPhase';
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
+ const v = color(f);
28
+ if (v == null || (v >= range.min && v <= range.max))
29
+ return base;
30
+ return { ...base, ...DisabledStyle.fill(range.disabledStyle) };
31
+ }
32
+ function getFeatureStyle(f) {
33
+ return rangeFilteredStyle(resolveFeatureStyle(segments, f.__id, grouping?.(f)), f);
34
+ }
35
+ const groups = new Map();
36
+ for (const f of features) {
37
+ const style = getFeatureStyle(f);
38
+ const rawOpacity = resolveOpacity?.(f);
39
+ const opacity = rawOpacity != null ? Math.round(rawOpacity * OPACITY_STEPS) / OPACITY_STEPS : undefined;
40
+ const key = JSON.stringify({ style, opacity });
41
+ let group = groups.get(key);
42
+ if (!group) {
43
+ group = { style, opacity, data: [] };
44
+ groups.set(key, group);
45
+ }
46
+ group.data.push(f);
47
+ }
48
+ const styleGroups = [...groups.values()];
49
+ function resolveBaseFill(f) {
50
+ return resolveColor?.(f) ?? fill ?? cfg.palette[0];
51
+ }
52
+ // What the pointer can match: the features inside the legend's range, by id.
53
+ const hoverable = new Map(features
54
+ .filter((f) => !range || !color || HoverPhase.inRange(color(f), range))
55
+ .map((f) => [f.__id, f]));
56
+ const featureMarkers = styleGroups.map((group) => ({
57
+ type: 'geo',
58
+ data: group.data,
59
+ fill: (d) => group.style.fill ?? resolveBaseFill(d),
60
+ fillOpacity: group.style.fillOpacity ?? group.opacity ?? fillOpacity ?? 1,
61
+ stroke: group.style.stroke ?? stroke ?? cfg.axis.color,
62
+ strokeWidth: group.style.strokeWidth ?? strokeWidth ?? 0.5,
63
+ hover: hoverable,
64
+ onclick: onFeatureClick ? (e, d) => onFeatureClick(d, e) : undefined
65
+ }));
66
+ const behindMarkers = authoredMarkers.filter(isBehindMarker);
67
+ const frontMarkers = authoredMarkers.filter((m) => !isBehindMarker(m) && m.type !== 'geo-hover');
68
+ const hoverMarker = authoredMarkers.find((m) => m.type === 'geo-hover');
69
+ const markers = [
70
+ ...behindMarkers,
71
+ ...featureMarkers,
72
+ ...frontMarkers,
73
+ ...(hoverMarker ? [hoverMarker] : [])
74
+ ];
75
+ return { ...state, markers, styleGroups };
76
+ }
@@ -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,56 @@
1
+ import { isFacetWrap } from '../../layout/facet/config';
2
+ const SLICE = Symbol('dct-geo-slice');
3
+ /** A slicing field's value on a feature (from its `properties`) or on a marker's own row. */
4
+ function readField(field, row) {
5
+ if (typeof field === 'function')
6
+ return field(row);
7
+ if (row.type === 'Feature' && typeof row.properties === 'object' && row.properties !== null) {
8
+ return row.properties[field];
9
+ }
10
+ return row[field];
11
+ }
12
+ /**
13
+ * What a GeoPlot hands `Plot` to slice by: one stand-in row per value
14
+ * combination found in the features and markers' rows, and timeline/facet
15
+ * accessors that read a stand-in or a real row.
16
+ */
17
+ export function buildGeoSlicing(args) {
18
+ const { rows, timeline, facet } = args;
19
+ const fields = {};
20
+ if (timeline)
21
+ fields.time = timeline.accessor;
22
+ if (facet && isFacetWrap(facet))
23
+ fields.by = facet.by;
24
+ if (facet && !isFacetWrap(facet)) {
25
+ if (facet.rows !== undefined)
26
+ fields.rows = facet.rows;
27
+ if (facet.cols !== undefined)
28
+ fields.cols = facet.cols;
29
+ }
30
+ const reader = (dimension) => (row) => SLICE in row
31
+ ? row[SLICE][dimension]
32
+ : readField(fields[dimension], row);
33
+ let combos = [{}];
34
+ for (const dimension of Object.keys(fields)) {
35
+ const values = [
36
+ ...new Set(rows.map((row) => readField(fields[dimension], row)).filter((v) => v != null))
37
+ ];
38
+ combos = combos.flatMap((combo) => values.map((value) => ({ ...combo, [dimension]: value })));
39
+ }
40
+ return {
41
+ rows: combos.map((combo) => ({ [SLICE]: combo })),
42
+ timeline: timeline && {
43
+ ...timeline,
44
+ accessor: reader('time'),
45
+ interpolate: undefined
46
+ },
47
+ facet: facet &&
48
+ (isFacetWrap(facet)
49
+ ? { ...facet, by: reader('by') }
50
+ : {
51
+ ...facet,
52
+ rows: facet.rows === undefined ? undefined : reader('rows'),
53
+ cols: facet.cols === undefined ? undefined : reader('cols')
54
+ })
55
+ };
56
+ }
@@ -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>;