@fundar/data-chart-telling 1.0.0 → 1.2.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 (560) hide show
  1. package/CHANGELOG.md +53 -0
  2. package/README.md +58 -19
  3. package/dist/configuration/config.svelte.d.ts +1 -1
  4. package/dist/configuration/config.svelte.js +172 -95
  5. package/dist/configuration/themes/index.d.ts +5 -1304
  6. package/dist/index.d.ts +24 -14
  7. package/dist/index.js +20 -10
  8. package/dist/layout/base/BasePlotLayout.svelte +129 -51
  9. package/dist/layout/base/BasePlotLayout.svelte.d.ts +1 -38
  10. package/dist/layout/coordinates/CoordinatesLayout.svelte +42 -40
  11. package/dist/layout/coordinates/CoordinatesLayout.svelte.d.ts +0 -2
  12. package/dist/layout/coordinates/ProjectionZoom.svelte +48 -0
  13. package/dist/layout/coordinates/ProjectionZoom.svelte.d.ts +10 -0
  14. package/dist/layout/coordinates/ZoomedProjection.d.ts +11 -0
  15. package/dist/layout/coordinates/ZoomedProjection.js +24 -0
  16. package/dist/layout/coordinates/camera.svelte.js +11 -8
  17. package/dist/layout/coordinates/projections/argentina.js +1 -1
  18. package/dist/layout/coordinates/projections/fit.d.ts +1 -1
  19. package/dist/layout/coordinates/projections/fit.js +1 -1
  20. package/dist/layout/coordinates/zoom.svelte.d.ts +4 -5
  21. package/dist/layout/coordinates/zoom.svelte.js +4 -5
  22. package/dist/layout/facet/FacetLayout.svelte +1 -1
  23. package/dist/layout/facet/config.js +1 -1
  24. package/dist/layout/figure/Figure.svelte +2 -0
  25. package/dist/layout/geometry/GeometryLayout.svelte +14 -9
  26. package/dist/layout/geometry/GeometryLayout.svelte.d.ts +0 -3
  27. package/dist/layout/geometry/MarkerOffset.svelte +28 -0
  28. package/dist/layout/geometry/MarkerOffset.svelte.d.ts +13 -0
  29. package/dist/layout/grid/GridCell.svelte +6 -8
  30. package/dist/layout/hover/HoverSettings.d.ts +20 -6
  31. package/dist/layout/hover/HoverSettings.js +29 -4
  32. package/dist/layout/legend/ContinuousSection.svelte +44 -9
  33. package/dist/layout/legend/DiscreteBadgeItem.svelte +2 -2
  34. package/dist/layout/legend/DiscreteSection.svelte +2 -2
  35. package/dist/layout/legend/DiscreteSymbolIcon.svelte +1 -1
  36. package/dist/layout/legend/LegendChannels.js +36 -12
  37. package/dist/layout/legend/LegendLayout.svelte +9 -1
  38. package/dist/layout/legend/LegendState.svelte.d.ts +9 -0
  39. package/dist/layout/legend/LegendState.svelte.js +24 -3
  40. package/dist/layout/legend/SizeSection.svelte +1 -1
  41. package/dist/layout/margins/PlotMargins.svelte.d.ts +2 -5
  42. package/dist/layout/margins/PlotMargins.svelte.js +4 -8
  43. package/dist/layout/plot/Plot.svelte +6 -3
  44. package/dist/layout/plot/PublicPlotContext.d.ts +5 -4
  45. package/dist/layout/plot/PublicPlotContext.js +7 -3
  46. package/dist/layout/plot/Slice.d.ts +5 -1
  47. package/dist/layout/plot/Slice.js +18 -6
  48. package/dist/layout/scales/EdgeTicks.d.ts +39 -0
  49. package/dist/layout/scales/EdgeTicks.js +82 -0
  50. package/dist/layout/scales/NiceTicks.d.ts +43 -0
  51. package/dist/layout/scales/NiceTicks.js +76 -0
  52. package/dist/layout/scales/ScalesLayout.svelte +133 -34
  53. package/dist/layout/scales/ScalesLayout.svelte.d.ts +10 -0
  54. package/dist/layout/scales/SveltePlotScale.d.ts +15 -0
  55. package/dist/layout/scales/SveltePlotScale.js +86 -0
  56. package/dist/layout/scales/TickLabels.d.ts +32 -0
  57. package/dist/layout/scales/TickLabels.js +55 -0
  58. package/dist/layout/styles/StylesLayout.svelte +2 -2
  59. package/dist/layout/styles/ValueLabels.d.ts +33 -5
  60. package/dist/layout/styles/ValueLabels.js +83 -23
  61. package/dist/layout/timeline/Timeline.svelte +5 -2
  62. package/dist/layout/timeline/Timeline.svelte.d.ts +2 -0
  63. package/dist/layout/timeline/TimelineLayout.svelte +39 -13
  64. package/dist/layout/timeline/TimelineLayout.svelte.d.ts +7 -5
  65. package/dist/layout/timeline/TimelineRule.svelte +1 -0
  66. package/dist/layout/timeline/TimelineState.svelte.d.ts +13 -5
  67. package/dist/layout/timeline/TimelineState.svelte.js +42 -8
  68. package/dist/layout/timeline/TimelineTime.d.ts +18 -0
  69. package/dist/layout/timeline/TimelineTime.js +117 -0
  70. package/dist/layout/tooltip/Tooltip.svelte +10 -7
  71. package/dist/layout/tooltip/Tooltip.svelte.d.ts +6 -4
  72. package/dist/layout/tooltip/TooltipState.svelte.d.ts +8 -2
  73. package/dist/layout/tooltip/TooltipState.svelte.js +23 -4
  74. package/dist/markers/MarkerKinds.d.ts +5 -0
  75. package/dist/markers/MarkerKinds.js +1 -0
  76. package/dist/markers/area/AreaMarker.svelte +15 -63
  77. package/dist/markers/arrow/ArrowMarker.svelte +51 -9
  78. package/dist/markers/bar/BarMarker.svelte +8 -4
  79. package/dist/markers/bollinger/BollingerMarker.svelte +33 -18
  80. package/dist/markers/box/BoxMarker.svelte +40 -9
  81. package/dist/markers/delta/Delta.js +1 -1
  82. package/dist/markers/delta/DeltaMarker.svelte +9 -7
  83. package/dist/markers/dot/DotMarker.svelte +24 -27
  84. package/dist/markers/image/ImageMarker.svelte +17 -12
  85. package/dist/markers/inset/InsetMarker.svelte +2 -2
  86. package/dist/markers/line/LineMarker.svelte +1 -0
  87. package/dist/markers/link/LinkMarker.svelte +174 -29
  88. package/dist/markers/regression/RegressionMarker.svelte +16 -33
  89. package/dist/markers/rule/RuleMarker.svelte +9 -3
  90. package/dist/markers/text/Declutter.d.ts +4 -0
  91. package/dist/markers/text/Declutter.js +26 -11
  92. package/dist/markers/text/TextMarker.svelte +91 -48
  93. package/dist/markers/tick/TickMarker.svelte +27 -25
  94. package/dist/markers/utils/MarkerChannels.d.ts +24 -0
  95. package/dist/markers/utils/MarkerChannels.js +42 -7
  96. package/dist/markers/utils/RowOffset.d.ts +23 -0
  97. package/dist/markers/utils/RowOffset.js +23 -0
  98. package/dist/markers/utils/RowOffsetMarks.svelte +30 -0
  99. package/dist/markers/utils/RowOffsetMarks.svelte.d.ts +33 -0
  100. package/dist/markers/utils/RowStroke.d.ts +31 -0
  101. package/dist/markers/utils/RowStroke.js +28 -0
  102. package/dist/markers/violin/ViolinMarker.svelte +75 -0
  103. package/dist/markers/violin/ViolinMarker.svelte.d.ts +7 -0
  104. package/dist/markers/violin/ViolinProfiles.d.ts +29 -0
  105. package/dist/markers/violin/ViolinProfiles.js +55 -0
  106. package/dist/markers/waffle/WaffleMarker.svelte +17 -37
  107. package/dist/phases/Pipeline.d.ts +5 -0
  108. package/dist/phases/Pipeline.js +8 -2
  109. package/dist/phases/data/DataPhase.d.ts +5 -11
  110. package/dist/phases/data/DataPhase.js +14 -11
  111. package/dist/phases/data/PlotAxes.d.ts +10 -0
  112. package/dist/phases/data/PlotAxes.js +14 -1
  113. package/dist/phases/facet/FacetPanels.d.ts +55 -0
  114. package/dist/phases/facet/FacetPanels.js +96 -0
  115. package/dist/phases/facet/FacetPhase.d.ts +1 -42
  116. package/dist/phases/facet/FacetPhase.js +1 -87
  117. package/dist/phases/hover/HoverPhase.d.ts +6 -43
  118. package/dist/phases/hover/HoverPhase.js +19 -54
  119. package/dist/phases/mapping/MappingPhase.d.ts +1 -1
  120. package/dist/phases/mapping/MappingPhase.js +3 -5
  121. package/dist/phases/markers/MarkersPhase.js +2 -1
  122. package/dist/phases/scales/CategoryOrder.d.ts +23 -0
  123. package/dist/phases/scales/CategoryOrder.js +73 -0
  124. package/dist/phases/scales/ScalesPhase.d.ts +1 -3
  125. package/dist/phases/scales/ScalesPhase.js +37 -27
  126. package/dist/phases/sharedScales/SharedScalesPhase.d.ts +6 -2
  127. package/dist/phases/sharedScales/SharedScalesPhase.js +14 -8
  128. package/dist/phases/statistics/Statistics.d.ts +10 -6
  129. package/dist/phases/statistics/Statistics.js +20 -10
  130. package/dist/phases/statistics/StatisticsPhase.js +10 -6
  131. package/dist/phases/statistics/methods/BollingerStatistic.d.ts +1 -1
  132. package/dist/phases/statistics/methods/BollingerStatistic.js +13 -11
  133. package/dist/phases/statistics/methods/BoxStatistic.d.ts +1 -1
  134. package/dist/phases/statistics/methods/BoxStatistic.js +14 -12
  135. package/dist/phases/statistics/methods/Density2dStatistic.d.ts +1 -1
  136. package/dist/phases/statistics/methods/Density2dStatistic.js +13 -11
  137. package/dist/phases/statistics/methods/DensityStatistic.d.ts +1 -1
  138. package/dist/phases/statistics/methods/DensityStatistic.js +11 -9
  139. package/dist/phases/statistics/methods/DeviationStatistic.d.ts +8 -0
  140. package/dist/phases/statistics/methods/DeviationStatistic.js +111 -0
  141. package/dist/phases/statistics/methods/MovingAverageStatistic.d.ts +1 -1
  142. package/dist/phases/statistics/methods/MovingAverageStatistic.js +11 -9
  143. package/dist/phases/statistics/methods/RegressionStatistic.d.ts +1 -1
  144. package/dist/phases/statistics/methods/RegressionStatistic.js +16 -14
  145. package/dist/phases/tooltip/TooltipPhase.d.ts +4 -2
  146. package/dist/phases/tooltip/TooltipPhase.js +10 -3
  147. package/dist/phases/transforms/ProcessedPositions.d.ts +30 -0
  148. package/dist/phases/transforms/ProcessedPositions.js +74 -0
  149. package/dist/phases/transforms/TransformsPhase.d.ts +5 -42
  150. package/dist/phases/transforms/TransformsPhase.js +67 -58
  151. package/dist/phases/transforms/ValueSelection.d.ts +30 -0
  152. package/dist/phases/transforms/ValueSelection.js +53 -0
  153. package/dist/plots/{heatmap → correlation/heatmap}/Plot.svelte +5 -2
  154. package/dist/plots/{heatmap → correlation/heatmap}/Plot.svelte.d.ts +2 -2
  155. package/dist/plots/{heatmap → correlation/heatmap}/defaults.d.ts +2 -2
  156. package/dist/plots/{heatmap → correlation/heatmap}/defaults.js +5 -5
  157. package/dist/plots/{heatmap → correlation/heatmap}/markers.d.ts +4 -4
  158. package/dist/plots/{heatmap → correlation/heatmap}/markers.js +4 -3
  159. package/dist/plots/{scatter → correlation/scatter}/Plot.svelte +5 -2
  160. package/dist/plots/{scatter → correlation/scatter}/Plot.svelte.d.ts +2 -2
  161. package/dist/plots/{scatter → correlation/scatter}/defaults.d.ts +2 -2
  162. package/dist/plots/{scatter → correlation/scatter}/defaults.js +6 -5
  163. package/dist/plots/{scatter → correlation/scatter}/markers.d.ts +4 -4
  164. package/dist/plots/{scatter → correlation/scatter}/markers.js +5 -4
  165. package/dist/plots/distribution/box/BoxSummaries.d.ts +19 -0
  166. package/dist/plots/distribution/box/BoxSummaries.js +101 -0
  167. package/dist/plots/distribution/box/Plot.svelte +42 -0
  168. package/dist/plots/distribution/box/Plot.svelte.d.ts +26 -0
  169. package/dist/plots/distribution/box/defaults.d.ts +12 -0
  170. package/dist/plots/distribution/box/defaults.js +34 -0
  171. package/dist/plots/distribution/box/markers.d.ts +12 -0
  172. package/dist/plots/distribution/box/markers.js +34 -0
  173. package/dist/plots/distribution/density/Plot.svelte +45 -0
  174. package/dist/plots/distribution/density/Plot.svelte.d.ts +26 -0
  175. package/dist/plots/distribution/density/defaults.d.ts +9 -0
  176. package/dist/plots/distribution/density/defaults.js +29 -0
  177. package/dist/plots/distribution/density/markers.d.ts +9 -0
  178. package/dist/plots/distribution/density/markers.js +42 -0
  179. package/dist/plots/{histogram → distribution/histogram}/Plot.svelte +2 -2
  180. package/dist/plots/{histogram → distribution/histogram}/Plot.svelte.d.ts +2 -2
  181. package/dist/plots/{histogram → distribution/histogram}/defaults.d.ts +2 -2
  182. package/dist/plots/{histogram → distribution/histogram}/defaults.js +4 -4
  183. package/dist/plots/{histogram → distribution/histogram}/markers.d.ts +3 -3
  184. package/dist/plots/{histogram → distribution/histogram}/markers.js +7 -7
  185. package/dist/plots/{pyramid → distribution/pyramid}/Plot.svelte +5 -2
  186. package/dist/plots/{pyramid → distribution/pyramid}/Plot.svelte.d.ts +2 -2
  187. package/dist/plots/{pyramid → distribution/pyramid}/defaults.d.ts +2 -2
  188. package/dist/plots/{pyramid → distribution/pyramid}/defaults.js +7 -6
  189. package/dist/plots/{pyramid → distribution/pyramid}/markers.d.ts +4 -4
  190. package/dist/plots/{pyramid → distribution/pyramid}/markers.js +8 -11
  191. package/dist/plots/distribution/violin/Plot.svelte +45 -0
  192. package/dist/plots/distribution/violin/Plot.svelte.d.ts +26 -0
  193. package/dist/plots/distribution/violin/defaults.d.ts +10 -0
  194. package/dist/plots/distribution/violin/defaults.js +58 -0
  195. package/dist/plots/distribution/violin/markers.d.ts +10 -0
  196. package/dist/plots/distribution/violin/markers.js +71 -0
  197. package/dist/plots/{area → evolution/area}/Plot.svelte +2 -2
  198. package/dist/plots/{area → evolution/area}/Plot.svelte.d.ts +2 -2
  199. package/dist/plots/{area → evolution/area}/defaults.d.ts +2 -2
  200. package/dist/plots/{area → evolution/area}/defaults.js +2 -0
  201. package/dist/plots/{area → evolution/area}/markers.d.ts +2 -2
  202. package/dist/plots/{area → evolution/area}/markers.js +2 -3
  203. package/dist/plots/{line → evolution/line}/Plot.svelte +2 -2
  204. package/dist/plots/{line → evolution/line}/Plot.svelte.d.ts +2 -2
  205. package/dist/plots/{line → evolution/line}/defaults.d.ts +2 -2
  206. package/dist/plots/{line → evolution/line}/defaults.js +2 -0
  207. package/dist/plots/{line → evolution/line}/markers.d.ts +11 -8
  208. package/dist/plots/{line → evolution/line}/markers.js +7 -6
  209. package/dist/plots/evolution/slope/Plot.svelte +42 -0
  210. package/dist/plots/evolution/slope/Plot.svelte.d.ts +26 -0
  211. package/dist/plots/evolution/slope/defaults.d.ts +8 -0
  212. package/dist/plots/evolution/slope/defaults.js +31 -0
  213. package/dist/plots/evolution/slope/markers.d.ts +16 -0
  214. package/dist/plots/evolution/slope/markers.js +79 -0
  215. package/dist/plots/evolution/sparkline/Plot.svelte +45 -0
  216. package/dist/plots/evolution/sparkline/Plot.svelte.d.ts +26 -0
  217. package/dist/plots/evolution/sparkline/defaults.d.ts +7 -0
  218. package/dist/plots/evolution/sparkline/defaults.js +23 -0
  219. package/dist/plots/evolution/sparkline/markers.d.ts +7 -0
  220. package/dist/plots/evolution/sparkline/markers.js +56 -0
  221. package/dist/plots/{geo → map/geo}/Core.svelte +11 -10
  222. package/dist/plots/{geo → map/geo}/Core.svelte.d.ts +1 -1
  223. package/dist/plots/map/geo/GeoFeatures.svelte.d.ts +9 -0
  224. package/dist/plots/map/geo/GeoFeatures.svelte.js +55 -0
  225. package/dist/plots/map/geo/GeoGeometry.d.ts +27 -0
  226. package/dist/plots/map/geo/GeoGeometry.js +142 -0
  227. package/dist/plots/map/geo/GeoSegments.d.ts +16 -0
  228. package/dist/plots/map/geo/GeoSegments.js +23 -0
  229. package/dist/plots/{geo → map/geo}/Plot.svelte +10 -10
  230. package/dist/plots/{geo → map/geo}/Plot.svelte.d.ts +2 -2
  231. package/dist/plots/{geo → map/geo}/defaults.d.ts +2 -2
  232. package/dist/plots/{geo → map/geo}/defaults.js +1 -1
  233. package/dist/plots/{geo → map/geo}/phases/data.d.ts +1 -1
  234. package/dist/plots/{geo → map/geo}/phases/data.js +7 -6
  235. package/dist/plots/{geo → map/geo}/phases/hover.d.ts +1 -1
  236. package/dist/plots/{geo → map/geo}/phases/hover.js +5 -5
  237. package/dist/plots/{geo → map/geo}/phases/markers.d.ts +1 -1
  238. package/dist/plots/{geo → map/geo}/phases/markers.js +8 -13
  239. package/dist/plots/{geo → map/geo}/phases/scales.d.ts +2 -2
  240. package/dist/plots/{geo → map/geo}/phases/scales.js +28 -12
  241. package/dist/plots/{geo → map/geo}/phases/tooltip.d.ts +1 -1
  242. package/dist/plots/map/geo/phases/tooltip.js +5 -0
  243. package/dist/plots/{geo → map/geo}/slices.d.ts +2 -2
  244. package/dist/plots/{geo → map/geo}/slices.js +7 -4
  245. package/dist/plots/{bar → ranking/bar}/Plot.svelte +2 -2
  246. package/dist/plots/{bar → ranking/bar}/Plot.svelte.d.ts +2 -2
  247. package/dist/plots/ranking/bar/defaults.d.ts +16 -0
  248. package/dist/plots/{bar → ranking/bar}/defaults.js +17 -15
  249. package/dist/plots/{bar → ranking/bar}/markers.d.ts +8 -8
  250. package/dist/plots/{bar → ranking/bar}/markers.js +11 -19
  251. package/dist/plots/ranking/bullet/Plot.svelte +42 -0
  252. package/dist/plots/ranking/bullet/Plot.svelte.d.ts +26 -0
  253. package/dist/plots/ranking/bullet/defaults.d.ts +8 -0
  254. package/dist/plots/ranking/bullet/defaults.js +24 -0
  255. package/dist/plots/ranking/bullet/markers.d.ts +10 -0
  256. package/dist/plots/ranking/bullet/markers.js +90 -0
  257. package/dist/plots/ranking/cleveland/ClevelandConnector.d.ts +48 -0
  258. package/dist/plots/ranking/cleveland/ClevelandConnector.js +140 -0
  259. package/dist/plots/ranking/cleveland/ClevelandMarkers.d.ts +33 -0
  260. package/dist/plots/ranking/cleveland/ClevelandMarkers.js +375 -0
  261. package/dist/plots/ranking/cleveland/ClevelandRanges.d.ts +31 -0
  262. package/dist/plots/ranking/cleveland/ClevelandRanges.js +116 -0
  263. package/dist/plots/ranking/cleveland/Plot.svelte +45 -0
  264. package/dist/plots/ranking/cleveland/Plot.svelte.d.ts +26 -0
  265. package/dist/plots/ranking/cleveland/defaults.d.ts +13 -0
  266. package/dist/plots/ranking/cleveland/defaults.js +66 -0
  267. package/dist/plots/ranking/dumbbell/Plot.svelte +45 -0
  268. package/dist/plots/ranking/dumbbell/Plot.svelte.d.ts +26 -0
  269. package/dist/plots/ranking/dumbbell/defaults.d.ts +9 -0
  270. package/dist/plots/ranking/dumbbell/defaults.js +19 -0
  271. package/dist/plots/ranking/forest/Plot.svelte +42 -0
  272. package/dist/plots/ranking/forest/Plot.svelte.d.ts +26 -0
  273. package/dist/plots/ranking/forest/defaults.d.ts +11 -0
  274. package/dist/plots/ranking/forest/defaults.js +20 -0
  275. package/dist/plots/ranking/lollipop/Plot.svelte +45 -0
  276. package/dist/plots/ranking/lollipop/Plot.svelte.d.ts +26 -0
  277. package/dist/plots/ranking/lollipop/defaults.d.ts +9 -0
  278. package/dist/plots/ranking/lollipop/defaults.js +18 -0
  279. package/dist/plots/utils/RowNumbers.d.ts +16 -0
  280. package/dist/plots/utils/RowNumbers.js +24 -0
  281. package/dist/plots/utils/gaps.js +1 -1
  282. package/dist/plots/utils/segments.js +1 -1
  283. package/dist/types/configuration/styling.d.ts +287 -132
  284. package/dist/types/layout/composer.d.ts +5 -2
  285. package/dist/types/layout/coordinates.d.ts +5 -4
  286. package/dist/types/layout/legend.d.ts +21 -5
  287. package/dist/types/layout/plot.d.ts +44 -1
  288. package/dist/types/layout/scales.d.ts +51 -3
  289. package/dist/types/layout/statistics/deviation.d.ts +40 -0
  290. package/dist/types/layout/statistics/index.d.ts +7 -2
  291. package/dist/types/layout/styles/base.d.ts +18 -0
  292. package/dist/types/layout/styles/bullet.d.ts +25 -0
  293. package/dist/types/layout/styles/connector.d.ts +98 -0
  294. package/dist/types/layout/styles/curve.d.ts +11 -0
  295. package/dist/types/layout/styles/frame.d.ts +17 -0
  296. package/dist/types/layout/styles/gaps.d.ts +12 -0
  297. package/dist/types/layout/styles/geo.d.ts +55 -0
  298. package/dist/types/layout/styles/index.d.ts +8 -0
  299. package/dist/types/layout/styles/index.js +8 -0
  300. package/dist/types/layout/styles/values.d.ts +47 -0
  301. package/dist/types/layout/timeline.d.ts +19 -7
  302. package/dist/types/layout/tooltip.d.ts +6 -2
  303. package/dist/types/markers/axis/area.d.ts +2 -2
  304. package/dist/types/markers/axis/arrow.d.ts +3 -0
  305. package/dist/types/markers/axis/axisBasedMarkersConfig.d.ts +2 -1
  306. package/dist/types/markers/axis/bar.d.ts +1 -1
  307. package/dist/types/markers/axis/box.d.ts +5 -0
  308. package/dist/types/markers/axis/difference.d.ts +2 -2
  309. package/dist/types/markers/axis/image.d.ts +3 -2
  310. package/dist/types/markers/axis/line.d.ts +2 -0
  311. package/dist/types/markers/axis/rule.d.ts +9 -0
  312. package/dist/types/markers/axis/trail.d.ts +2 -3
  313. package/dist/types/markers/axis/violin.d.ts +25 -0
  314. package/dist/types/markers/basic/dot.d.ts +3 -2
  315. package/dist/types/markers/basic/text.d.ts +13 -3
  316. package/dist/types/markers/channels/commonMarkerConfig.d.ts +7 -3
  317. package/dist/types/markers/channels/commonMarkerConfigWithRowOffset.d.ts +13 -0
  318. package/dist/types/markers/common.d.ts +1 -1
  319. package/dist/types/markers/common.js +1 -0
  320. package/dist/types/markers/geo/link.d.ts +5 -1
  321. package/dist/types/phases/hover/phase.d.ts +6 -0
  322. package/dist/types/phases/index.d.ts +1 -1
  323. package/dist/types/phases/scales/phase.d.ts +5 -1
  324. package/dist/types/phases/state.d.ts +20 -4
  325. package/dist/types/phases/statistics/phase.d.ts +3 -1
  326. package/dist/types/phases/statistics/source.d.ts +3 -1
  327. package/dist/types/phases/transforms/phase.d.ts +32 -0
  328. package/dist/types/plots/{heatmap → correlation/heatmap}/props.d.ts +6 -6
  329. package/dist/types/plots/{heatmap → correlation/heatmap}/state.d.ts +4 -4
  330. package/dist/types/plots/{scatter → correlation/scatter}/props.d.ts +6 -6
  331. package/dist/types/plots/{scatter → correlation/scatter}/state.d.ts +2 -2
  332. package/dist/types/plots/distribution/box/props.d.ts +10 -0
  333. package/dist/types/plots/distribution/box/state.d.ts +23 -0
  334. package/dist/types/plots/distribution/density/props.d.ts +23 -0
  335. package/dist/types/plots/distribution/density/state.d.ts +6 -0
  336. package/dist/types/plots/distribution/density/state.js +1 -0
  337. package/dist/types/plots/{histogram → distribution/histogram}/props.d.ts +7 -7
  338. package/dist/types/plots/distribution/histogram/props.js +1 -0
  339. package/dist/types/plots/{histogram → distribution/histogram}/state.d.ts +2 -2
  340. package/dist/types/plots/distribution/histogram/state.js +1 -0
  341. package/dist/types/plots/{pyramid → distribution/pyramid}/props.d.ts +6 -6
  342. package/dist/types/plots/distribution/pyramid/props.js +1 -0
  343. package/dist/types/plots/{pyramid → distribution/pyramid}/state.d.ts +3 -3
  344. package/dist/types/plots/distribution/pyramid/state.js +1 -0
  345. package/dist/types/plots/distribution/violin/props.d.ts +23 -0
  346. package/dist/types/plots/distribution/violin/props.js +1 -0
  347. package/dist/types/plots/distribution/violin/state.d.ts +6 -0
  348. package/dist/types/plots/distribution/violin/state.js +1 -0
  349. package/dist/types/plots/{area → evolution/area}/props.d.ts +6 -6
  350. package/dist/types/plots/evolution/area/props.js +1 -0
  351. package/dist/types/plots/{area → evolution/area}/state.d.ts +2 -2
  352. package/dist/types/plots/evolution/area/state.js +1 -0
  353. package/dist/types/plots/evolution/line/props.d.ts +10 -0
  354. package/dist/types/plots/evolution/line/props.js +1 -0
  355. package/dist/types/plots/{line → evolution/line}/state.d.ts +3 -3
  356. package/dist/types/plots/evolution/line/state.js +1 -0
  357. package/dist/types/plots/evolution/slope/props.d.ts +5 -0
  358. package/dist/types/plots/evolution/slope/props.js +1 -0
  359. package/dist/types/plots/evolution/slope/state.d.ts +5 -0
  360. package/dist/types/plots/evolution/slope/state.js +1 -0
  361. package/dist/types/plots/evolution/sparkline/props.d.ts +5 -0
  362. package/dist/types/plots/evolution/sparkline/props.js +1 -0
  363. package/dist/types/plots/evolution/sparkline/state.d.ts +5 -0
  364. package/dist/types/plots/evolution/sparkline/state.js +1 -0
  365. package/dist/types/plots/{geo → map/geo}/props.d.ts +8 -8
  366. package/dist/types/plots/map/geo/props.js +1 -0
  367. package/dist/types/plots/{geo → map/geo}/state.d.ts +18 -11
  368. package/dist/types/plots/map/geo/state.js +1 -0
  369. package/dist/types/plots/props.d.ts +3 -1
  370. package/dist/types/plots/{bar → ranking/bar}/props.d.ts +6 -6
  371. package/dist/types/plots/ranking/bar/props.js +1 -0
  372. package/dist/types/plots/{bar → ranking/bar}/state.d.ts +2 -2
  373. package/dist/types/plots/ranking/bar/state.js +1 -0
  374. package/dist/types/plots/ranking/bullet/props.d.ts +22 -0
  375. package/dist/types/plots/ranking/bullet/props.js +1 -0
  376. package/dist/types/plots/ranking/bullet/state.d.ts +5 -0
  377. package/dist/types/plots/ranking/bullet/state.js +1 -0
  378. package/dist/types/plots/ranking/cleveland/props.d.ts +10 -0
  379. package/dist/types/plots/ranking/cleveland/props.js +1 -0
  380. package/dist/types/plots/ranking/cleveland/state.d.ts +49 -0
  381. package/dist/types/plots/ranking/cleveland/state.js +1 -0
  382. package/dist/types/plots/ranking/dumbbell/props.d.ts +10 -0
  383. package/dist/types/plots/ranking/dumbbell/props.js +1 -0
  384. package/dist/types/plots/ranking/dumbbell/state.d.ts +5 -0
  385. package/dist/types/plots/ranking/dumbbell/state.js +1 -0
  386. package/dist/types/plots/ranking/forest/props.d.ts +23 -0
  387. package/dist/types/plots/ranking/forest/props.js +1 -0
  388. package/dist/types/plots/ranking/forest/state.d.ts +5 -0
  389. package/dist/types/plots/ranking/forest/state.js +1 -0
  390. package/dist/types/plots/ranking/lollipop/props.d.ts +10 -0
  391. package/dist/types/plots/ranking/lollipop/props.js +1 -0
  392. package/dist/types/plots/ranking/lollipop/state.d.ts +5 -0
  393. package/dist/types/plots/ranking/lollipop/state.js +1 -0
  394. package/dist/types/plots/segments/common.d.ts +4 -1
  395. package/dist/utils/OpacityScale.d.ts +14 -0
  396. package/dist/utils/OpacityScale.js +43 -0
  397. package/dist/utils/{symbol.d.ts → SymbolPath.d.ts} +0 -12
  398. package/dist/utils/{symbol.js → SymbolPath.js} +0 -24
  399. package/dist/utils/SymbolScale.d.ts +18 -0
  400. package/dist/utils/SymbolScale.js +29 -0
  401. package/dist/utils/color/ColorRamp.d.ts +27 -0
  402. package/dist/utils/color/ColorRamp.js +120 -0
  403. package/dist/utils/color/CssColor.d.ts +19 -0
  404. package/dist/utils/color/CssColor.js +114 -0
  405. package/dist/utils/color/Palette.d.ts +21 -0
  406. package/dist/utils/color/Palette.js +52 -0
  407. package/dist/utils/color/index.d.ts +11 -3
  408. package/dist/utils/color/index.js +14 -3
  409. package/dist/utils/grouping.js +1 -1
  410. package/docs/architecture.md +1 -1
  411. package/docs/chrome.md +39 -8
  412. package/docs/composer.md +19 -3
  413. package/docs/concepts.md +1 -1
  414. package/docs/development.md +14 -5
  415. package/docs/facets.md +62 -8
  416. package/docs/getting-started.md +8 -9
  417. package/docs/legend.md +73 -24
  418. package/docs/markers.md +45 -32
  419. package/docs/plots/correlation/heatmap.md +26 -0
  420. package/docs/plots/correlation/scatter.md +35 -0
  421. package/docs/plots/distribution/box.md +28 -0
  422. package/docs/plots/distribution/density.md +26 -0
  423. package/docs/plots/distribution/histogram.md +33 -0
  424. package/docs/plots/distribution/pyramid.md +31 -0
  425. package/docs/plots/distribution/violin.md +35 -0
  426. package/docs/plots/evolution/area.md +32 -0
  427. package/docs/plots/evolution/line.md +93 -0
  428. package/docs/plots/evolution/slope.md +39 -0
  429. package/docs/plots/evolution/sparkline.md +34 -0
  430. package/docs/plots/ranking/bar.md +59 -0
  431. package/docs/plots/ranking/bullet.md +37 -0
  432. package/docs/plots/ranking/cleveland.md +54 -0
  433. package/docs/plots/ranking/dumbbell.md +39 -0
  434. package/docs/plots/ranking/forest.md +40 -0
  435. package/docs/plots/ranking/lollipop.md +39 -0
  436. package/docs/plots.md +22 -154
  437. package/docs/scales.md +50 -27
  438. package/docs/state.md +1 -1
  439. package/docs/styles-and-segments.md +96 -39
  440. package/docs/theming.md +33 -19
  441. package/docs/timeline.md +62 -28
  442. package/docs/tooltip-and-hover.md +72 -24
  443. package/docs/transforms-and-statistics.md +56 -25
  444. package/examples/BarValues.svelte +2 -2
  445. package/examples/Box.svelte +7 -0
  446. package/examples/Bullet.svelte +17 -0
  447. package/examples/Chrome.svelte +17 -0
  448. package/examples/ChromeOrder.svelte +18 -0
  449. package/examples/Cleveland.svelte +15 -0
  450. package/examples/Composer.svelte +23 -0
  451. package/examples/CustomTooltip.svelte +21 -14
  452. package/examples/Density.svelte +7 -0
  453. package/examples/Dumbbell.svelte +16 -0
  454. package/examples/Facets.svelte +3 -3
  455. package/examples/FacetsCarousel.svelte +14 -0
  456. package/examples/FacetsRowsCols.svelte +23 -0
  457. package/examples/FirstPlot.svelte +7 -0
  458. package/examples/Forest.svelte +17 -0
  459. package/examples/Gaps.svelte +21 -0
  460. package/examples/GroupedBars.svelte +15 -0
  461. package/examples/Heatmap.svelte +7 -0
  462. package/examples/HeatmapSegments.svelte +26 -0
  463. package/examples/Histogram.svelte +14 -0
  464. package/examples/HorizontalBars.svelte +15 -0
  465. package/examples/LegendSections.svelte +27 -0
  466. package/examples/LegendToggle.svelte +3 -3
  467. package/examples/LineByRegion.svelte +18 -0
  468. package/examples/LineDates.svelte +15 -0
  469. package/examples/LineStep.svelte +16 -0
  470. package/examples/LineStepSegment.svelte +18 -0
  471. package/examples/Lollipop.svelte +17 -0
  472. package/examples/Markers.svelte +27 -0
  473. package/examples/MovingAverage.svelte +15 -0
  474. package/examples/Pyramid.svelte +14 -0
  475. package/examples/Regression.svelte +14 -0
  476. package/examples/ResponsiveLine.svelte +7 -7
  477. package/examples/Scales.svelte +26 -0
  478. package/examples/Scatter.svelte +16 -0
  479. package/examples/SegmentHighlight.svelte +22 -0
  480. package/examples/Segments.svelte +11 -3
  481. package/examples/SegmentsBySeries.svelte +25 -0
  482. package/examples/Slope.svelte +17 -0
  483. package/examples/Sparkline.svelte +14 -0
  484. package/examples/StackedArea.svelte +16 -0
  485. package/examples/StackedBars.svelte +15 -0
  486. package/examples/TimelinePlayer.svelte +8 -7
  487. package/examples/TimelineRule.svelte +19 -0
  488. package/examples/Tooltip.svelte +3 -3
  489. package/examples/ValueLabels.svelte +21 -0
  490. package/examples/Violin.svelte +14 -0
  491. package/examples/datasets/argentina-chile-trends.ts +34 -0
  492. package/examples/datasets/commodity-prices.ts +48 -0
  493. package/examples/datasets/countries-over-time.ts +368 -0
  494. package/examples/datasets/daily-temperature.ts +121 -0
  495. package/examples/datasets/earthquakes.ts +977 -0
  496. package/examples/datasets/flight-routes.ts +29 -0
  497. package/examples/datasets/height-density.ts +37 -0
  498. package/examples/datasets/heights.ts +370 -0
  499. package/examples/datasets/index.ts +24 -0
  500. package/examples/datasets/inflation-by-region.ts +44 -0
  501. package/examples/datasets/inflation-ranges.ts +34 -0
  502. package/examples/datasets/iris-flower.ts +207 -0
  503. package/examples/datasets/life-expectancy.ts +95 -0
  504. package/examples/datasets/napoleons-march.ts +182 -0
  505. package/examples/datasets/penguins.ts +54 -0
  506. package/examples/datasets/population-by-age-with-gaps.ts +23 -0
  507. package/examples/datasets/population-by-age.ts +890 -0
  508. package/examples/datasets/province-population.ts +521 -0
  509. package/examples/datasets/stock-prices.ts +63 -0
  510. package/examples/datasets/weather-stations-over-time.ts +31 -0
  511. package/examples/datasets/weather-stations.ts +22 -0
  512. package/examples/datasets/wind-vectors.ts +30 -0
  513. package/examples/datasets/world-temperature.ts +400 -0
  514. package/llms-full.txt +51 -12
  515. package/llms.txt +60 -4
  516. package/package.json +12 -2
  517. package/dist/layout/scales/buildScale.d.ts +0 -8
  518. package/dist/layout/scales/buildScale.js +0 -67
  519. package/dist/layout/scales/niceDomain.d.ts +0 -23
  520. package/dist/layout/scales/niceDomain.js +0 -59
  521. package/dist/plots/bar/defaults.d.ts +0 -9
  522. package/dist/plots/geo/features.svelte.d.ts +0 -5
  523. package/dist/plots/geo/features.svelte.js +0 -44
  524. package/dist/plots/geo/phases/tooltip.js +0 -5
  525. package/dist/plots/utils/geoAccessors.d.ts +0 -72
  526. package/dist/plots/utils/geoAccessors.js +0 -220
  527. package/dist/plots/utils/geoSegments.d.ts +0 -29
  528. package/dist/plots/utils/geoSegments.js +0 -37
  529. package/dist/types/layout/styles.d.ts +0 -122
  530. package/dist/types/markers/axis/curveName.d.ts +0 -2
  531. package/dist/types/plots/line/props.d.ts +0 -10
  532. package/dist/utils/color/contrast.d.ts +0 -9
  533. package/dist/utils/color/contrast.js +0 -40
  534. package/dist/utils/color/cssColor.d.ts +0 -4
  535. package/dist/utils/color/cssColor.js +0 -77
  536. package/dist/utils/color/ramp.d.ts +0 -17
  537. package/dist/utils/color/ramp.js +0 -110
  538. package/dist/utils/opacity.d.ts +0 -9
  539. package/dist/utils/opacity.js +0 -38
  540. package/examples/data.ts +0 -12
  541. /package/dist/types/layout/{styles.js → statistics/deviation.js} +0 -0
  542. /package/dist/types/{markers/axis/curveName.js → layout/styles/base.js} +0 -0
  543. /package/dist/types/{plots/area/props.js → layout/styles/bullet.js} +0 -0
  544. /package/dist/types/{plots/area/state.js → layout/styles/connector.js} +0 -0
  545. /package/dist/types/{plots/bar/props.js → layout/styles/curve.js} +0 -0
  546. /package/dist/types/{plots/bar/state.js → layout/styles/frame.js} +0 -0
  547. /package/dist/types/{plots/geo/props.js → layout/styles/gaps.js} +0 -0
  548. /package/dist/types/{plots/geo/state.js → layout/styles/geo.js} +0 -0
  549. /package/dist/types/{plots/heatmap/props.js → layout/styles/values.js} +0 -0
  550. /package/dist/types/{plots/heatmap/state.js → markers/axis/violin.js} +0 -0
  551. /package/dist/types/{plots/histogram/props.js → markers/channels/commonMarkerConfigWithRowOffset.js} +0 -0
  552. /package/dist/types/plots/{line → correlation/heatmap}/props.js +0 -0
  553. /package/dist/types/plots/{histogram → correlation/heatmap}/state.js +0 -0
  554. /package/dist/types/plots/{pyramid → correlation/scatter}/props.js +0 -0
  555. /package/dist/types/plots/{line → correlation/scatter}/state.js +0 -0
  556. /package/dist/types/plots/{scatter → distribution/box}/props.js +0 -0
  557. /package/dist/types/plots/{pyramid → distribution/box}/state.js +0 -0
  558. /package/dist/types/plots/{scatter/state.js → distribution/density/props.js} +0 -0
  559. /package/dist/{plots/utils → utils}/accessors.d.ts +0 -0
  560. /package/dist/{plots/utils → utils}/accessors.js +0 -0
@@ -0,0 +1,58 @@
1
+ import { buildMarks } from './markers';
2
+ import { BoxSummaries } from '../box/BoxSummaries';
3
+ import { PlotAxes } from '../../../phases/data/PlotAxes';
4
+ import { ProcessedPositions } from '../../../phases/transforms/ProcessedPositions';
5
+ import { NiceTicks } from '../../../layout/scales/NiceTicks';
6
+ import { TooltipState } from '../../../layout/tooltip/TooltipState.svelte';
7
+ /**
8
+ * The value axis fit to the values the violins are drawn from, when the author leaves it unpinned: no svelteplot mark reads them, so nothing else sets its domain.
9
+ */
10
+ function fitValueDomain(state) {
11
+ const axis = PlotAxes.valueOf(state);
12
+ const scale = state.scales[axis];
13
+ if (scale?.domain != null || scale?.ticks != null || typeof scale?.nice === 'boolean')
14
+ return {};
15
+ const values = ProcessedPositions.values(state.processedData, axis)
16
+ .map(Number)
17
+ .filter(Number.isFinite);
18
+ const lo = Math.min(...values);
19
+ const hi = Math.max(...values);
20
+ if (!(hi > lo))
21
+ return {};
22
+ return {
23
+ [axis]: { domain: NiceTicks.fit(state, axis, lo, hi, NiceTicks.toleranceOf(scale?.nice)) }
24
+ };
25
+ }
26
+ /**
27
+ * ViolinPlot on the shared pipeline: one violin per category of each series
28
+ * along one category axis - `x`, or `y` for horizontal violins - in the order
29
+ * the data gives them, with its own band padding and markers. The value axis
30
+ * fits the values, without reaching for zero. Its plot defaults to: hover
31
+ * along the category axis, over one summary per violin, read as a box plot's.
32
+ */
33
+ export function buildViolinDefaults() {
34
+ return {
35
+ data: {
36
+ discreteAxes: 1,
37
+ segments: { color: (style) => style?.fill, connect: false }
38
+ },
39
+ scales: {
40
+ bandOrder: 'data',
41
+ fit: (state) => fitValueDomain(state),
42
+ defaults: (_state, ctx) => ({
43
+ category: {
44
+ paddingInner: ctx.cfg.violin.paddingInner,
45
+ paddingOuter: ctx.cfg.violin.paddingOuter
46
+ }
47
+ })
48
+ },
49
+ markers: { marks: buildMarks },
50
+ hover: {
51
+ rows: BoxSummaries.of,
52
+ position: BoxSummaries.position,
53
+ label: () => ((row) => String(row.median)),
54
+ format: (state) => BoxSummaries.format(state),
55
+ sort: () => TooltipState.descending((row) => row.median)
56
+ }
57
+ };
58
+ }
@@ -0,0 +1,10 @@
1
+ import type { ViolinPlotState, ViolinPlotCtx } from '../../../types/plots/distribution/violin/state';
2
+ import type { AxisBasedMarkersConfig } from '../../../types/markers/common';
3
+ /**
4
+ * ViolinPlot's "markers" phase: one `violin` - and a narrow `box` over it - per visual
5
+ * segment of each series, drawing a violin per category of its rows, filled with its series'
6
+ * color (or its segment's own `fill`). Series share each category's band side
7
+ * by side. The markers the "statistics" phase already put in `state.markers`
8
+ * come after, so they render on top.
9
+ */
10
+ export declare function buildMarks<TData extends Record<string, unknown>>(state: ViolinPlotState<TData>, ctx: ViolinPlotCtx): AxisBasedMarkersConfig[];
@@ -0,0 +1,71 @@
1
+ import { ProcessedPositions } from '../../../phases/transforms/ProcessedPositions';
2
+ import { PlotAxes } from '../../../phases/data/PlotAxes';
3
+ import { ViolinProfiles } from '../../../markers/violin/ViolinProfiles';
4
+ /**
5
+ * ViolinPlot's "markers" phase: one `violin` - and a narrow `box` over it - per visual
6
+ * segment of each series, drawing a violin per category of its rows, filled with its series'
7
+ * color (or its segment's own `fill`). Series share each category's band side
8
+ * by side. The markers the "statistics" phase already put in `state.markers`
9
+ * come after, so they render on top.
10
+ */
11
+ export function buildMarks(state, ctx) {
12
+ const processed = state.processedData;
13
+ if (!processed)
14
+ return [];
15
+ const { cfg } = ctx;
16
+ const styles = state.styles;
17
+ const { channels } = processed;
18
+ const groups = state.processedGroups ?? [];
19
+ let peak;
20
+ if (styles?.scale === 'shared') {
21
+ const valueAxis = PlotAxes.valueOf(state);
22
+ const position = ProcessedPositions.of(processed, valueAxis);
23
+ const read = { category: position[PlotAxes.categoryOf(state)], value: position[valueAxis] };
24
+ const estimate = { kernel: styles.kernel, bandwidth: styles.bandwidth, trim: styles.trim };
25
+ peak = ViolinProfiles.peak(groups.flatMap((g) => g.visualSegments.flatMap((s) => ViolinProfiles.of(s.data, read, estimate))));
26
+ }
27
+ const boxWidth = styles?.box === false
28
+ ? undefined
29
+ : typeof styles?.box === 'number'
30
+ ? styles.box
31
+ : cfg.violin.boxWidth;
32
+ const ink = cfg.axis.color;
33
+ const violins = groups.flatMap((group, index) => {
34
+ const name = group.series.name;
35
+ const disabled = ctx.interaction?.fillFor(name);
36
+ return group.visualSegments.map((seg) => ({
37
+ type: 'violin',
38
+ series: name,
39
+ data: seg.data,
40
+ x: channels.x,
41
+ y: channels.y,
42
+ kernel: styles?.kernel,
43
+ bandwidth: styles?.bandwidth,
44
+ trim: styles?.trim,
45
+ peak,
46
+ slot: { index, count: groups.length },
47
+ styles: {
48
+ ...seg.styles,
49
+ fill: disabled?.fill ?? seg.styles.fill ?? state.colorForSeries(name),
50
+ fillOpacity: disabled?.fillOpacity ?? seg.styles.fillOpacity ?? cfg.violin.fillOpacity
51
+ }
52
+ }));
53
+ });
54
+ // The box inside each violin: a narrow `box` marker in the axis color, its median a tick, with no outliers or caps.
55
+ const boxes = boxWidth === undefined
56
+ ? []
57
+ : groups.flatMap((group, index) => group.visualSegments.map((seg) => ({
58
+ type: 'box',
59
+ series: group.series.name,
60
+ data: seg.data,
61
+ x: channels.x,
62
+ y: channels.y,
63
+ thickness: boxWidth,
64
+ slot: { index, count: groups.length },
65
+ bar: { fill: ink, fillOpacity: 1 },
66
+ rule: { stroke: ink, strokeWidth: 1.5 },
67
+ dot: { r: 0 },
68
+ tickMinMax: false
69
+ })));
70
+ return [...violins, ...boxes];
71
+ }
@@ -1,7 +1,7 @@
1
1
  <script lang="ts" generics="TData extends Record<string, unknown>">
2
- import Plot from '../../layout/plot/Plot.svelte';
2
+ import Plot from '../../../layout/plot/Plot.svelte';
3
3
  import { buildAreaDefaults } from './defaults';
4
- import type { AreaPlotProps, AreaPlotCoreProps } from '../../types/plots/area/props';
4
+ import type { AreaPlotProps, AreaPlotCoreProps } from '../../../types/plots/evolution/area/props';
5
5
 
6
6
  /**
7
7
  * An area per series, filled from its own baseline. Draws from pre-built `series` or flat `data` rows.
@@ -1,5 +1,5 @@
1
- import Plot from '../../layout/plot/Plot.svelte';
2
- import type { AreaPlotProps } from '../../types/plots/area/props';
1
+ import Plot from '../../../layout/plot/Plot.svelte';
2
+ import type { AreaPlotProps } from '../../../types/plots/evolution/area/props';
3
3
  declare function $$render<TData extends Record<string, unknown>>(): {
4
4
  props: AreaPlotProps<TData>;
5
5
  exports: {};
@@ -1,4 +1,4 @@
1
- import type { AxisPlotDefaults } from '../../types/phases';
2
- import type { AreaPlotState, AreaPlotCtx } from '../../types/plots/area/state';
1
+ import type { AxisPlotDefaults } from '../../../types/phases';
2
+ import type { AreaPlotState, AreaPlotCtx } from '../../../types/plots/evolution/area/state';
3
3
  /** AreaPlot on the shared pipeline: areas from a zero baseline, author markers taking the plot's `x`/`y`, and its own markers. Its plot defaults to: hover along x, cumulative timeline tweening `y` per series. */
4
4
  export declare function buildAreaDefaults<TData extends Record<string, unknown>>(): AxisPlotDefaults<AreaPlotState<TData>, AreaPlotCtx>;
@@ -1,10 +1,12 @@
1
1
  import { buildMarks } from './markers';
2
+ import { ValueLabels } from '../../../layout/styles/ValueLabels';
2
3
  /** AreaPlot on the shared pipeline: areas from a zero baseline, author markers taking the plot's `x`/`y`, and its own markers. Its plot defaults to: hover along x, cumulative timeline tweening `y` per series. */
3
4
  export function buildAreaDefaults() {
4
5
  return {
5
6
  data: { segments: { color: (style) => style?.fill } },
6
7
  statistics: { inheritPositions: true },
7
8
  scales: { zero: ['y'] },
9
+ transforms: { labels: { select: 'last', skip: ValueLabels.skipGaps } },
8
10
  styles: {
9
11
  values: {
10
12
  anchor: 'start',
@@ -1,5 +1,5 @@
1
- import type { AreaPlotState, AreaPlotCtx } from '../../types/plots/area/state';
2
- import type { AxisBasedMarkersConfig } from '../../types/markers/common';
1
+ import type { AreaPlotState, AreaPlotCtx } from '../../../types/plots/evolution/area/state';
2
+ import type { AxisBasedMarkersConfig } from '../../../types/markers/common';
3
3
  /**
4
4
  * AreaPlot's "markers" phase: one `area` per visual segment of each series,
5
5
  * drawing the rows the "transforms" phase left (stacked, when the plot
@@ -1,5 +1,4 @@
1
- import { TransformsPhase } from '../../phases/transforms/TransformsPhase';
2
- import { Transforms } from '../../phases/transforms/Transforms';
1
+ import { Transforms } from '../../../phases/transforms/Transforms';
3
2
  /**
4
3
  * AreaPlot's "markers" phase: one `area` per visual segment of each series,
5
4
  * drawing the rows the "transforms" phase left (stacked, when the plot
@@ -27,7 +26,7 @@ export function buildMarks(state, ctx) {
27
26
  };
28
27
  // The dim channel: each area reads its own series name, looked up in `opacityScale`.
29
28
  const dimByName = (name) => dimmed ? { opacity: () => name, scales: { opacity: opacityScale } } : {};
30
- const areas = TransformsPhase.buildProcessedGroups(state).flatMap((group) => group.visualSegments.map((seg) => Transforms.finish({
29
+ const areas = (state.processedGroups ?? []).flatMap((group) => group.visualSegments.map((seg) => Transforms.finish({
31
30
  type: 'area',
32
31
  series: group.series.name,
33
32
  data: seg.data,
@@ -1,7 +1,7 @@
1
1
  <script lang="ts" generics="TData extends Record<string, unknown>">
2
- import Plot from '../../layout/plot/Plot.svelte';
2
+ import Plot from '../../../layout/plot/Plot.svelte';
3
3
  import { buildLineDefaults } from './defaults';
4
- import type { LinePlotProps, LinePlotCoreProps } from '../../types/plots/line/props';
4
+ import type { LinePlotProps, LinePlotCoreProps } from '../../../types/plots/evolution/line/props';
5
5
 
6
6
  /**
7
7
  * A line per series. Draws from pre-built `series` or flat `data` rows.
@@ -1,5 +1,5 @@
1
- import Plot from '../../layout/plot/Plot.svelte';
2
- import type { LinePlotProps } from '../../types/plots/line/props';
1
+ import Plot from '../../../layout/plot/Plot.svelte';
2
+ import type { LinePlotProps } from '../../../types/plots/evolution/line/props';
3
3
  declare function $$render<TData extends Record<string, unknown>>(): {
4
4
  props: LinePlotProps<TData>;
5
5
  exports: {};
@@ -1,4 +1,4 @@
1
- import type { AxisPlotDefaults } from '../../types/phases';
2
- import type { LinePlotState, LinePlotCtx } from '../../types/plots/line/state';
1
+ import type { AxisPlotDefaults } from '../../../types/phases';
2
+ import type { LinePlotState, LinePlotCtx } from '../../../types/plots/evolution/line/state';
3
3
  /** LinePlot on the shared pipeline: continuous segments colored by their stroke, and its own markers. Its plot defaults to: hover along x, cumulative timeline tweening `y` per series. */
4
4
  export declare function buildLineDefaults<TData extends Record<string, unknown>>(): AxisPlotDefaults<LinePlotState<TData>, LinePlotCtx>;
@@ -1,4 +1,5 @@
1
1
  import { buildMarks } from './markers';
2
+ import { ValueLabels } from '../../../layout/styles/ValueLabels';
2
3
  /** LinePlot on the shared pipeline: continuous segments colored by their stroke, and its own markers. Its plot defaults to: hover along x, cumulative timeline tweening `y` per series. */
3
4
  export function buildLineDefaults() {
4
5
  return {
@@ -13,6 +14,7 @@ export function buildLineDefaults() {
13
14
  return state.resolvedSeries?.[0] && state.colorForSeries?.(state.resolvedSeries[0].name);
14
15
  }
15
16
  },
17
+ transforms: { labels: { select: 'last', skip: ValueLabels.skipGaps } },
16
18
  styles: {
17
19
  values: {
18
20
  anchor: 'start',
@@ -1,11 +1,12 @@
1
- import type { Series } from '../../types/plots/data/common';
2
- import type { GapsConfig } from '../../types/plots/gaps';
3
- import type { LineSegmentStyle } from '../../types/plots/segments/common';
4
- import type { VisualGroup } from '../../types/plots/segments/config';
5
- import type { StrokeStyle, DotStyle } from '../../types/plots/styling';
6
- import type { LineMarkerConfig, DotMarkerConfig } from '../../types/markers/common';
7
- import type { LinePlotState, LinePlotCtx } from '../../types/plots/line/state';
8
- import type { AxisBasedMarkersConfig } from '../../types/markers/common';
1
+ import type { Series } from '../../../types/plots/data/common';
2
+ import type { GapsConfig } from '../../../types/plots/gaps';
3
+ import type { LineSegmentStyle } from '../../../types/plots/segments/common';
4
+ import type { VisualGroup } from '../../../types/plots/segments/config';
5
+ import type { StrokeStyle, DotStyle } from '../../../types/plots/styling';
6
+ import type { LineMarkerConfig, DotMarkerConfig } from '../../../types/markers/common';
7
+ import type { LinePlotState, LinePlotCtx } from '../../../types/plots/evolution/line/state';
8
+ import type { CurveName } from '../../../types/layout/styles/curve';
9
+ import type { AxisBasedMarkersConfig } from '../../../types/markers/common';
9
10
  /**
10
11
  * Every `'line'` (+ `'dot'`, where a segment's style asks for them) marker
11
12
  * for one LinePlot render: one `'line'` marker per visual segment, plus a
@@ -16,6 +17,8 @@ export declare function buildLineMarkers<TData extends Record<string, unknown>>(
16
17
  colorFor: (seriesName: string) => string;
17
18
  disabledStrokeFor: (seriesName: string) => StrokeStyle | undefined;
18
19
  disabledDotsFor: (seriesName: string) => DotStyle | undefined;
20
+ /** The curve of every segment that sets none of its own; `'linear'` when left out. */
21
+ curve?: CurveName;
19
22
  }): (LineMarkerConfig | DotMarkerConfig)[];
20
23
  /**
21
24
  * One `'line'` (+ `'dot'`, when its zone sets `style.dots`) marker per
@@ -1,13 +1,12 @@
1
- import { getConfiguration } from '../../configuration/config.svelte';
2
- import { TransformsPhase } from '../../phases/transforms/TransformsPhase';
3
- import { resolveGapRuns, resolveGapsForSeries } from '../utils/gaps';
1
+ import { getConfiguration } from '../../../configuration/config.svelte';
2
+ import { resolveGapRuns, resolveGapsForSeries } from '../../utils/gaps';
4
3
  /**
5
4
  * Every `'line'` (+ `'dot'`, where a segment's style asks for them) marker
6
5
  * for one LinePlot render: one `'line'` marker per visual segment, plus a
7
6
  * `'dot'` marker right after it when that segment sets `style.dots`.
8
7
  */
9
8
  export function buildLineMarkers(args) {
10
- const { groupedSeries, colorFor, disabledStrokeFor, disabledDotsFor } = args;
9
+ const { groupedSeries, colorFor, disabledStrokeFor, disabledDotsFor, curve } = args;
11
10
  const cfg = getConfiguration();
12
11
  const markers = [];
13
12
  groupedSeries.forEach((group) => {
@@ -30,6 +29,7 @@ export function buildLineMarkers(args) {
30
29
  data: seg.data,
31
30
  x,
32
31
  y,
32
+ curve: seg.styles.curve ?? curve,
33
33
  styles: {
34
34
  stroke: disabledStroke?.stroke ?? strokeStyle?.stroke ?? defaultColor,
35
35
  strokeWidth: disabledStroke?.strokeWidth ?? strokeStyle?.strokeWidth ?? cfg.line.strokeWidth,
@@ -182,12 +182,13 @@ export function buildMarks(state, ctx) {
182
182
  const { colorForSeries, gaps } = state;
183
183
  const disabledStrokeFor = (name) => ctx.interaction?.strokeFor(name);
184
184
  const disabledDotsFor = (name) => ctx.interaction?.dotsFor(name);
185
- const groups = TransformsPhase.buildProcessedGroups(state);
185
+ const groups = state.processedGroups ?? [];
186
186
  const lineMarkers = buildLineMarkers({
187
187
  groupedSeries: groups,
188
188
  colorFor: colorForSeries,
189
189
  disabledStrokeFor,
190
- disabledDotsFor
190
+ disabledDotsFor,
191
+ curve: state.styles?.curve
191
192
  });
192
193
  const gapMarkers = buildGapMarkers({
193
194
  seriesList: groups.map((g) => g.series),
@@ -0,0 +1,42 @@
1
+ <script lang="ts" generics="TData extends Record<string, unknown>">
2
+ import Plot from '../../../layout/plot/Plot.svelte';
3
+ import { buildSlopeDefaults } from './defaults';
4
+ import type { SlopePlotProps, SlopePlotCoreProps } from '../../../types/plots/evolution/slope/props';
5
+
6
+ /**
7
+ * A slope plot: a line and a dot per series between two positions on a category axis, labelled at both ends, to read how each one changed. 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
+ * `margins` is bindable: it reports the margin the plot settled on.
11
+ */
12
+ let {
13
+ title,
14
+ subtitle,
15
+ caption,
16
+ header,
17
+ footer,
18
+ legend,
19
+ order,
20
+ timeline,
21
+ facet,
22
+ tooltip,
23
+ margins = $bindable(),
24
+ ...core
25
+ }: SlopePlotProps<TData> = $props();
26
+ </script>
27
+
28
+ <Plot
29
+ core={core as SlopePlotCoreProps<TData>}
30
+ defaults={buildSlopeDefaults}
31
+ bind:margins
32
+ {title}
33
+ {subtitle}
34
+ {caption}
35
+ {header}
36
+ {footer}
37
+ {legend}
38
+ {order}
39
+ {timeline}
40
+ {facet}
41
+ {tooltip}
42
+ />
@@ -0,0 +1,26 @@
1
+ import Plot from '../../../layout/plot/Plot.svelte';
2
+ import type { SlopePlotProps } from '../../../types/plots/evolution/slope/props';
3
+ declare function $$render<TData extends Record<string, unknown>>(): {
4
+ props: SlopePlotProps<TData>;
5
+ exports: {};
6
+ bindings: "margins";
7
+ slots: {};
8
+ events: {};
9
+ };
10
+ declare class __sveltets_Render<TData extends Record<string, unknown>> {
11
+ props(): ReturnType<typeof $$render<TData>>['props'];
12
+ events(): ReturnType<typeof $$render<TData>>['events'];
13
+ slots(): ReturnType<typeof $$render<TData>>['slots'];
14
+ bindings(): "margins";
15
+ exports(): {};
16
+ }
17
+ interface $$IsomorphicComponent {
18
+ new <TData extends Record<string, unknown>>(options: import('svelte').ComponentConstructorOptions<ReturnType<__sveltets_Render<TData>['props']>>): import('svelte').SvelteComponent<ReturnType<__sveltets_Render<TData>['props']>, ReturnType<__sveltets_Render<TData>['events']>, ReturnType<__sveltets_Render<TData>['slots']>> & {
19
+ $$bindings?: ReturnType<__sveltets_Render<TData>['bindings']>;
20
+ } & ReturnType<__sveltets_Render<TData>['exports']>;
21
+ <TData extends Record<string, unknown>>(internal: unknown, props: ReturnType<__sveltets_Render<TData>['props']> & {}): ReturnType<__sveltets_Render<TData>['exports']>;
22
+ z_$$bindings?: ReturnType<__sveltets_Render<any>['bindings']>;
23
+ }
24
+ declare const Plot: $$IsomorphicComponent;
25
+ type Plot<TData extends Record<string, unknown>> = InstanceType<typeof Plot<TData>>;
26
+ export default Plot;
@@ -0,0 +1,8 @@
1
+ import type { AxisPlotDefaults } from '../../../types/phases';
2
+ import type { SlopePlotState, SlopePlotCtx } from '../../../types/plots/evolution/slope/state';
3
+ /**
4
+ * SlopePlot on the shared pipeline: a LinePlot over a category axis of a few
5
+ * positions - two, for a slope - with a dot on every point and its first and
6
+ * last labelled, each before or after it.
7
+ */
8
+ export declare function buildSlopeDefaults<TData extends Record<string, unknown>>(): AxisPlotDefaults<SlopePlotState<TData>, SlopePlotCtx>;
@@ -0,0 +1,31 @@
1
+ import { buildMarks, buildValueLabels } from './markers';
2
+ import { ValueLabels } from '../../../layout/styles/ValueLabels';
3
+ import { buildLineDefaults } from '../line/defaults';
4
+ /**
5
+ * SlopePlot on the shared pipeline: a LinePlot over a category axis of a few
6
+ * positions - two, for a slope - with a dot on every point and its first and
7
+ * last labelled, each before or after it.
8
+ */
9
+ export function buildSlopeDefaults() {
10
+ const line = buildLineDefaults();
11
+ return {
12
+ ...line,
13
+ data: { ...line.data, discreteAxes: 1 },
14
+ transforms: { labels: { select: ['first', 'last'], skip: ValueLabels.skipGaps } },
15
+ scales: {
16
+ bandOrder: 'data',
17
+ // The labels give the values, so the value axis stays out of their way.
18
+ defaults: (_state, ctx) => ({
19
+ category: { type: 'point', padding: ctx.cfg.slope.padding },
20
+ value: { axisDisplay: 'none' }
21
+ })
22
+ },
23
+ styles: {
24
+ values: {
25
+ anchor: 'start',
26
+ format: (v, name) => `${name} - ${v}`
27
+ }
28
+ },
29
+ markers: { marks: buildMarks, valueLabels: buildValueLabels }
30
+ };
31
+ }
@@ -0,0 +1,16 @@
1
+ import type { ValueLabels } from '../../../layout/styles/ValueLabels';
2
+ import type { EdgeBox } from '../../../types/layout/box';
3
+ import type { AxisBasedMarkersConfig, TextMarkerConfig } from '../../../types/markers/common';
4
+ import type { SlopePlotState, SlopePlotCtx } from '../../../types/plots/evolution/slope/state';
5
+ /**
6
+ * SlopePlot's "markers" phase: each series' line, with a dot on every point
7
+ * (a slope has few), over the rows the "transforms" phase left.
8
+ */
9
+ export declare function buildMarks<TData extends Record<string, unknown>>(state: SlopePlotState<TData>, ctx: SlopePlotCtx): AxisBasedMarkersConfig[];
10
+ /**
11
+ * SlopePlot's value labels: the series' first points labelled before them and
12
+ * its last ones after, each end spread apart where its labels would overlap.
13
+ */
14
+ export declare function buildValueLabels<TData extends Record<string, unknown>>(labels: ValueLabels, state: SlopePlotState<TData>): TextMarkerConfig[];
15
+ /** Where SlopePlot's labels are expected to sit: past the points at both ends. */
16
+ export declare function buildReach<TData extends Record<string, unknown>>(labels: ValueLabels, state: SlopePlotState<TData>): EdgeBox[];
@@ -0,0 +1,79 @@
1
+ import { getConfiguration } from '../../../configuration/config.svelte';
2
+ import { buildLineMarkers } from '../line/markers';
3
+ import { ProcessedPositions } from '../../../phases/transforms/ProcessedPositions';
4
+ /** The anchor of the labels at the plot's start: the mirror of the end's, so `'start'` always reads outward. */
5
+ function startAnchor(anchor) {
6
+ return anchor === 'start' ? 'end' : anchor === 'end' ? 'start' : anchor;
7
+ }
8
+ /** The value a position is told apart by: a date by its time. */
9
+ const keyOf = (value) => (value instanceof Date ? value.getTime() : value);
10
+ /**
11
+ * SlopePlot's "markers" phase: each series' line, with a dot on every point
12
+ * (a slope has few), over the rows the "transforms" phase left.
13
+ */
14
+ export function buildMarks(state, ctx) {
15
+ const { slope } = getConfiguration();
16
+ const groups = (state.processedGroups ?? []).map((group) => ({
17
+ ...group,
18
+ visualSegments: group.visualSegments.map((segment) => ({
19
+ ...segment,
20
+ styles: {
21
+ ...segment.styles,
22
+ stroke: { strokeWidth: slope.strokeWidth, ...segment.styles.stroke },
23
+ dots: { dotRadius: slope.dotRadius, ...segment.styles.dots }
24
+ }
25
+ }))
26
+ }));
27
+ return buildLineMarkers({
28
+ groupedSeries: groups,
29
+ colorFor: state.colorForSeries,
30
+ disabledStrokeFor: (name) => ctx.interaction?.strokeFor(name),
31
+ disabledDotsFor: (name) => ctx.interaction?.dotsFor(name),
32
+ curve: state.styles?.curve
33
+ });
34
+ }
35
+ /** The rows labelled at the plot's first position and at its last, each series' own. */
36
+ function labelledEnds(state) {
37
+ const processed = state.processedData;
38
+ const x = ProcessedPositions.of(processed).x;
39
+ const domain = state.scales.x?.domain;
40
+ const positions = Array.isArray(domain)
41
+ ? domain.map(keyOf)
42
+ : [...new Set(processed.data.map((row) => keyOf(x(row))))];
43
+ const first = positions[0];
44
+ const last = positions[positions.length - 1];
45
+ const rows = state.labelled ?? [];
46
+ return {
47
+ start: rows.filter((row) => keyOf(x(row)) === first),
48
+ end: rows.filter((row) => keyOf(x(row)) === last && keyOf(x(row)) !== first)
49
+ };
50
+ }
51
+ /**
52
+ * SlopePlot's value labels: the series' first points labelled before them and
53
+ * its last ones after, each end spread apart where its labels would overlap.
54
+ */
55
+ export function buildValueLabels(labels, state) {
56
+ if (!state.processedData)
57
+ return [];
58
+ const { start, end } = labelledEnds(state);
59
+ return [
60
+ ...labels.atSeriesEnds(state, {
61
+ rows: start,
62
+ anchor: startAnchor(labels.anchor),
63
+ lane: true,
64
+ flip: false
65
+ }),
66
+ ...labels.atSeriesEnds(state, { rows: end, lane: true })
67
+ ];
68
+ }
69
+ /** Where SlopePlot's labels are expected to sit: past the points at both ends. */
70
+ export function buildReach(labels, state) {
71
+ // Labels before the first position reach the left edge, those after the last one the right.
72
+ const before = labels
73
+ .reachAtSeriesEnds(state, startAnchor(labels.anchor))
74
+ .map(({ box, edges }) => ({ box, edges: edges.filter((edge) => edge !== 'right') }));
75
+ const after = labels
76
+ .reachAtSeriesEnds(state)
77
+ .map(({ box, edges }) => ({ box, edges: edges.filter((edge) => edge !== 'left') }));
78
+ return [...before, ...after];
79
+ }
@@ -0,0 +1,45 @@
1
+ <script lang="ts" generics="TData extends Record<string, unknown>">
2
+ import Plot from '../../../layout/plot/Plot.svelte';
3
+ import { buildSparklineDefaults } from './defaults';
4
+ import type {
5
+ SparklinePlotProps,
6
+ SparklinePlotCoreProps
7
+ } from '../../../types/plots/evolution/sparkline/props';
8
+
9
+ /**
10
+ * A sparkline: a small line plot with no axes or legend, a dot on the last point of each series and its value beside it. Draws from pre-built `series` or flat `data` rows.
11
+ * Optional chrome (`title`, `subtitle`, `caption`, `header`, `footer`,
12
+ * `legend`) frames it, though none is there by default; `timeline` and `facet` slice its `data` rows.
13
+ * `margins` is bindable: it reports the margin the plot settled on.
14
+ */
15
+ let {
16
+ title,
17
+ subtitle,
18
+ caption,
19
+ header,
20
+ footer,
21
+ legend = false,
22
+ order,
23
+ timeline,
24
+ facet,
25
+ tooltip,
26
+ margins = $bindable({ top: 6, bottom: 6, left: 4 }),
27
+ ...core
28
+ }: SparklinePlotProps<TData> = $props();
29
+ </script>
30
+
31
+ <Plot
32
+ core={core as SparklinePlotCoreProps<TData>}
33
+ defaults={buildSparklineDefaults}
34
+ bind:margins
35
+ {title}
36
+ {subtitle}
37
+ {caption}
38
+ {header}
39
+ {footer}
40
+ {legend}
41
+ {order}
42
+ {timeline}
43
+ {facet}
44
+ {tooltip}
45
+ />
@@ -0,0 +1,26 @@
1
+ import Plot from '../../../layout/plot/Plot.svelte';
2
+ import type { SparklinePlotProps } from '../../../types/plots/evolution/sparkline/props';
3
+ declare function $$render<TData extends Record<string, unknown>>(): {
4
+ props: SparklinePlotProps<TData>;
5
+ exports: {};
6
+ bindings: "margins";
7
+ slots: {};
8
+ events: {};
9
+ };
10
+ declare class __sveltets_Render<TData extends Record<string, unknown>> {
11
+ props(): ReturnType<typeof $$render<TData>>['props'];
12
+ events(): ReturnType<typeof $$render<TData>>['events'];
13
+ slots(): ReturnType<typeof $$render<TData>>['slots'];
14
+ bindings(): "margins";
15
+ exports(): {};
16
+ }
17
+ interface $$IsomorphicComponent {
18
+ new <TData extends Record<string, unknown>>(options: import('svelte').ComponentConstructorOptions<ReturnType<__sveltets_Render<TData>['props']>>): import('svelte').SvelteComponent<ReturnType<__sveltets_Render<TData>['props']>, ReturnType<__sveltets_Render<TData>['events']>, ReturnType<__sveltets_Render<TData>['slots']>> & {
19
+ $$bindings?: ReturnType<__sveltets_Render<TData>['bindings']>;
20
+ } & ReturnType<__sveltets_Render<TData>['exports']>;
21
+ <TData extends Record<string, unknown>>(internal: unknown, props: ReturnType<__sveltets_Render<TData>['props']> & {}): ReturnType<__sveltets_Render<TData>['exports']>;
22
+ z_$$bindings?: ReturnType<__sveltets_Render<any>['bindings']>;
23
+ }
24
+ declare const Plot: $$IsomorphicComponent;
25
+ type Plot<TData extends Record<string, unknown>> = InstanceType<typeof Plot<TData>>;
26
+ export default Plot;
@@ -0,0 +1,7 @@
1
+ import type { AxisPlotDefaults } from '../../../types/phases';
2
+ import type { SparklinePlotState, SparklinePlotCtx } from '../../../types/plots/evolution/sparkline/state';
3
+ /**
4
+ * SparklinePlot on the shared pipeline: a LinePlot with its axes left out, a
5
+ * thin line, and a dot and value on the last point of each series.
6
+ */
7
+ export declare function buildSparklineDefaults<TData extends Record<string, unknown>>(): AxisPlotDefaults<SparklinePlotState<TData>, SparklinePlotCtx>;
@@ -0,0 +1,23 @@
1
+ import { buildMarks } from './markers';
2
+ import { ValueLabels } from '../../../layout/styles/ValueLabels';
3
+ import { buildLineDefaults } from '../line/defaults';
4
+ /**
5
+ * SparklinePlot on the shared pipeline: a LinePlot with its axes left out, a
6
+ * thin line, and a dot and value on the last point of each series.
7
+ */
8
+ export function buildSparklineDefaults() {
9
+ const line = buildLineDefaults();
10
+ return {
11
+ ...line,
12
+ transforms: { labels: { select: 'last', skip: ValueLabels.skipGaps, show: true } },
13
+ scales: { defaults: () => ({ x: { axisDisplay: 'none' }, y: { axisDisplay: 'none' } }) },
14
+ styles: {
15
+ values: {
16
+ ...line.styles?.values,
17
+ show: true,
18
+ format: (value) => `${value}`
19
+ }
20
+ },
21
+ markers: { marks: buildMarks, valueLabels: line.markers.valueLabels }
22
+ };
23
+ }