@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
@@ -1,35 +1,42 @@
1
1
  <script lang="ts">
2
2
  import { LinePlot, getConfiguration, paletteColor } from '@fundar/data-chart-telling';
3
3
  import TooltipCard from './TooltipCard.svelte';
4
- import { ROWS, type Row } from './data';
4
+ import { REGION_VALUES, type RegionRow } from './datasets';
5
5
 
6
6
  const { palette } = getConfiguration();
7
- const regions = [...new Set(ROWS.map((d) => d.region))];
7
+ const regions = [...new Set(REGION_VALUES.map((row) => row.region))];
8
8
  </script>
9
9
 
10
10
  <!--
11
11
  `content` replaces the tooltip text with your own markup, drawn in a plain
12
12
  card: TooltipCard brings its own background, colors and spacing. It is given
13
- every row the hover matched; series colors come from the configuration's palette.
13
+ every row the hover matched, in no particular order, so it sorts them itself;
14
+ series colors come from the configuration's palette.
14
15
  -->
15
- {#snippet content({ rows }: { rows: Row[] })}
16
+ {#snippet content({ rows }: { rows: RegionRow[] })}
16
17
  <TooltipCard
17
- heading={String(rows[0].year)}
18
- footer="Value by region"
19
- entries={rows.map((row) => ({
20
- label: row.region,
21
- color: paletteColor(regions.indexOf(row.region), palette),
22
- value: row.value,
23
- display: String(row.value)
24
- }))}
18
+ heading={rows[0].date.toLocaleDateString('en-US', {
19
+ month: 'long',
20
+ year: 'numeric',
21
+ timeZone: 'UTC'
22
+ })}
23
+ footer="Monthly inflation (%)"
24
+ entries={[...rows]
25
+ .sort((a, b) => b.value - a.value)
26
+ .map((row) => ({
27
+ label: row.region,
28
+ color: paletteColor(regions.indexOf(row.region), palette),
29
+ value: row.value,
30
+ display: String(row.value)
31
+ }))}
25
32
  />
26
33
  {/snippet}
27
34
 
28
35
  <LinePlot
29
36
  width={720}
30
37
  height={400}
31
- data={ROWS}
32
- x="year"
38
+ data={REGION_VALUES}
39
+ x="date"
33
40
  y="value"
34
41
  color="region"
35
42
  tooltip={{ strategy: 'x', content }}
@@ -0,0 +1,7 @@
1
+ <script lang="ts">
2
+ import { DensityPlot } from '@fundar/data-chart-telling';
3
+ import { HEIGHTS } from './datasets';
4
+ </script>
5
+
6
+ <!-- A smoothed distribution per `grouping` value, the continuous pair of a histogram. -->
7
+ <DensityPlot width={720} height={400} data={HEIGHTS} x="height" grouping="group" />
@@ -0,0 +1,16 @@
1
+ <script lang="ts">
2
+ import { DumbbellPlot } from '@fundar/data-chart-telling';
3
+ import { PROVINCE_VALUES } from './datasets';
4
+ </script>
5
+
6
+ <!-- Two dots per province, one per sex, joined by a connector: the gap in life expectancy at birth. -->
7
+ <DumbbellPlot
8
+ width={720}
9
+ height={400}
10
+ data={PROVINCE_VALUES}
11
+ x="value"
12
+ y="province"
13
+ color="sex"
14
+ scales={{ x: { domain: [70, 85] } }}
15
+ styles={{ values: { show: true } }}
16
+ />
@@ -1,14 +1,14 @@
1
1
  <script lang="ts">
2
2
  import { LinePlot } from '@fundar/data-chart-telling';
3
- import { ROWS } from './data';
3
+ import { REGION_VALUES } from './datasets';
4
4
  </script>
5
5
 
6
6
  <!-- One panel per region, three columns, sharing scales. A tooltip with `sync` shows in every panel on purpose. -->
7
7
  <LinePlot
8
8
  width={900}
9
9
  height={360}
10
- data={ROWS}
11
- x="year"
10
+ data={REGION_VALUES}
11
+ x="date"
12
12
  y="value"
13
13
  facet={{ by: 'region', columns: 3, gap: 12, scales: 'shared' }}
14
14
  tooltip={{ sync: true }}
@@ -0,0 +1,14 @@
1
+ <script lang="ts">
2
+ import { LinePlot } from '@fundar/data-chart-telling';
3
+ import { REGION_VALUES } from './datasets';
4
+ </script>
5
+
6
+ <!-- A carousel shows `visible` panels at a time, with navigation below. -->
7
+ <LinePlot
8
+ width={720}
9
+ height={340}
10
+ data={REGION_VALUES}
11
+ x="date"
12
+ y="value"
13
+ facet={{ by: 'region', columns: 3, mode: 'carousel', visible: 2, navLayout: 'below' }}
14
+ />
@@ -0,0 +1,23 @@
1
+ <script lang="ts">
2
+ import { LinePlot } from '@fundar/data-chart-telling';
3
+ import { REGION_VALUES } from './datasets';
4
+
5
+ // Each region's value split into two sectors.
6
+ const SECTORS = [
7
+ { sector: 'Goods', share: 0.8 },
8
+ { sector: 'Services', share: 1.4 }
9
+ ];
10
+ const rows = REGION_VALUES.flatMap((row) =>
11
+ SECTORS.map(({ sector, share }) => ({ ...row, sector, value: row.value * share }))
12
+ );
13
+ </script>
14
+
15
+ <!-- One panel per region and sector; `scales: 'free'` fits each panel to its own data. -->
16
+ <LinePlot
17
+ width={720}
18
+ height={420}
19
+ data={rows}
20
+ x="date"
21
+ y="value"
22
+ facet={{ rows: 'region', cols: 'sector', scales: 'free' }}
23
+ />
@@ -0,0 +1,7 @@
1
+ <script lang="ts">
2
+ import { LinePlot } from '@fundar/data-chart-telling';
3
+ import { REGION_VALUES } from './datasets';
4
+ </script>
5
+
6
+ <!-- The smallest useful plot: rows, the fields to map and a pixel size. -->
7
+ <LinePlot width={720} height={400} data={REGION_VALUES} x="date" y="value" color="region" />
@@ -0,0 +1,17 @@
1
+ <script lang="ts">
2
+ import { ForestPlot } from '@fundar/data-chart-telling';
3
+ import { INFLATION_RANGES } from './datasets';
4
+ </script>
5
+
6
+ <!-- One row per region and year: the mean monthly inflation as a dot, on a stem from its lowest to its highest month. -->
7
+ <ForestPlot
8
+ width={720}
9
+ height={480}
10
+ data={INFLATION_RANGES}
11
+ x="mean"
12
+ y="period"
13
+ lower="min"
14
+ upper="max"
15
+ color="region"
16
+ scales={{ x: { label: 'Monthly inflation (%)' } }}
17
+ />
@@ -0,0 +1,21 @@
1
+ <script lang="ts">
2
+ import { LinePlot } from '@fundar/data-chart-telling';
3
+ import { FEMALE_LIFE_GAPS } from './datasets';
4
+ </script>
5
+
6
+ <!-- Missing values bridged: dashed in the middle, faded at the start, extended to the 2025 projection at the end. -->
7
+ <LinePlot
8
+ width={720}
9
+ height={400}
10
+ series={[{ name: 'female', x: 'year', y: 'value', data: FEMALE_LIFE_GAPS }]}
11
+ scales={{ x: { edgeTicks: true }, y: { domain: [55, 85] } }}
12
+ styles={{
13
+ gaps: {
14
+ default: {
15
+ middle: { interpolate: 'linear', style: { stroke: { strokeDasharray: '4 4' } } },
16
+ start: { x: 1940, style: { stroke: { strokeOpacity: 0.4 } } },
17
+ end: { x: 2025, y: 81.1 }
18
+ }
19
+ }
20
+ }}
21
+ />
@@ -0,0 +1,15 @@
1
+ <script lang="ts">
2
+ import { BarPlot } from '@fundar/data-chart-telling';
3
+ import { PROVINCE_VALUES } from './datasets';
4
+ </script>
5
+
6
+ <!-- Vertical bars, grouped by `color`. -->
7
+ <BarPlot
8
+ width={720}
9
+ height={400}
10
+ data={PROVINCE_VALUES}
11
+ x="province"
12
+ y="value"
13
+ color="sex"
14
+ scales={{ y: { domain: [70, 85] } }}
15
+ />
@@ -0,0 +1,7 @@
1
+ <script lang="ts">
2
+ import { HeatmapPlot } from '@fundar/data-chart-telling';
3
+ import { PENGUIN_COUNTS } from './datasets';
4
+ </script>
5
+
6
+ <!-- One cell per island and species, colored by the number of penguins. -->
7
+ <HeatmapPlot width={560} height={360} data={PENGUIN_COUNTS} x="island" y="species" color="count" />
@@ -0,0 +1,26 @@
1
+ <script lang="ts">
2
+ import { HeatmapPlot } from '@fundar/data-chart-telling';
3
+ import { PENGUIN_COUNTS } from './datasets';
4
+ </script>
5
+
6
+ <!-- Segments on a heatmap: an outlined column and a filled block of cells. -->
7
+ <HeatmapPlot
8
+ width={560}
9
+ height={360}
10
+ data={PENGUIN_COUNTS}
11
+ x="island"
12
+ y="species"
13
+ color="count"
14
+ segments={{
15
+ default: [
16
+ {
17
+ areas: [{ x: { from: 'Biscoe', to: 'Biscoe' } }],
18
+ styles: { stroke: '#f59e0b', strokeWidth: 2 }
19
+ },
20
+ {
21
+ areas: [{ x: { from: 'Dream', to: 'Torgersen' }, y: { from: 'Chinstrap', to: 'Gentoo' } }],
22
+ styles: { fill: '#ef4444', fillOpacity: 0.8 }
23
+ }
24
+ ]
25
+ }}
26
+ />
@@ -0,0 +1,14 @@
1
+ <script lang="ts">
2
+ import { HistogramPlot } from '@fundar/data-chart-telling';
3
+ import { HEIGHTS } from './datasets';
4
+ </script>
5
+
6
+ <!-- Two overlapping distributions, one per `grouping` value. -->
7
+ <HistogramPlot
8
+ width={720}
9
+ height={400}
10
+ data={HEIGHTS}
11
+ x="height"
12
+ grouping="group"
13
+ segments={{ default: [{ styles: { fillOpacity: 0.7 } }] }}
14
+ />
@@ -0,0 +1,15 @@
1
+ <script lang="ts">
2
+ import { BarPlot } from '@fundar/data-chart-telling';
3
+ import { PROVINCE_VALUES } from './datasets';
4
+ </script>
5
+
6
+ <!-- Horizontal bars: the categories go on `y`, the values on `x`. -->
7
+ <BarPlot
8
+ width={720}
9
+ height={400}
10
+ data={PROVINCE_VALUES}
11
+ x="value"
12
+ y="province"
13
+ color="sex"
14
+ scales={{ x: { domain: [70, 85] } }}
15
+ />
@@ -0,0 +1,27 @@
1
+ <script lang="ts">
2
+ import { LinePlot } from '@fundar/data-chart-telling';
3
+ import { REGION_VALUES } from './datasets';
4
+ </script>
5
+
6
+ <!-- An explicit legend: a discrete section of toggles and a continuous ramp. -->
7
+ <LinePlot
8
+ width={720}
9
+ height={400}
10
+ data={REGION_VALUES}
11
+ x="date"
12
+ y="value"
13
+ color="region"
14
+ legend={[
15
+ {
16
+ type: 'discrete',
17
+ title: 'Region',
18
+ interactive: { enabled: true },
19
+ items: [
20
+ { name: 'GBA', color: '#4f46e5', symbol: 'line' },
21
+ { name: 'Cuyo', color: '#e6580d', symbol: 'line' },
22
+ { name: 'Northwest', color: '#16a34a', symbol: 'line' }
23
+ ]
24
+ },
25
+ { type: 'continuous', title: 'Share', min: 0, max: 100, scheme: 'blues' }
26
+ ]}
27
+ />
@@ -1,6 +1,6 @@
1
1
  <script lang="ts">
2
2
  import { LinePlot } from '@fundar/data-chart-telling';
3
- import { ROWS } from './data';
3
+ import { REGION_VALUES } from './datasets';
4
4
  import LegendReader from './LegendReader.svelte';
5
5
  </script>
6
6
 
@@ -13,8 +13,8 @@
13
13
  <LinePlot
14
14
  width={720}
15
15
  height={400}
16
- data={ROWS}
17
- x="year"
16
+ data={REGION_VALUES}
17
+ x="date"
18
18
  y="value"
19
19
  color="region"
20
20
  legend={{ series: { interactive: { enabled: true, disabled: { mode: 'omit' } } } }}
@@ -0,0 +1,18 @@
1
+ <script lang="ts">
2
+ import { LinePlot } from '@fundar/data-chart-telling';
3
+ import { REGION_VALUES } from './datasets';
4
+ </script>
5
+
6
+ <!-- One line per region, with a title, the automatic legend, end-of-line values and a tooltip. -->
7
+ <LinePlot
8
+ width={720}
9
+ height={400}
10
+ title="Monthly inflation by region (%)"
11
+ data={REGION_VALUES}
12
+ x="date"
13
+ y="value"
14
+ color="region"
15
+ tooltip
16
+ scales={{ x: { label: false } }}
17
+ styles={{ values: { show: true } }}
18
+ />
@@ -0,0 +1,15 @@
1
+ <script lang="ts">
2
+ import { LinePlot } from '@fundar/data-chart-telling';
3
+ import { PRICES } from './datasets';
4
+ </script>
5
+
6
+ <!-- A line per commodity over a date axis, with end-of-line labels. -->
7
+ <LinePlot
8
+ width={720}
9
+ height={400}
10
+ data={PRICES}
11
+ x="date"
12
+ y="index"
13
+ color="commodity"
14
+ styles={{ values: { show: true, format: (v, name) => `${name}: ${v}` } }}
15
+ />
@@ -0,0 +1,16 @@
1
+ <script lang="ts">
2
+ import { LinePlot } from '@fundar/data-chart-telling';
3
+ import { LIFE } from './datasets';
4
+ </script>
5
+
6
+ <!-- A step plot is a line plot with a step curve: each life table holds its value until the next one. -->
7
+ <LinePlot
8
+ width={720}
9
+ height={380}
10
+ data={LIFE}
11
+ x="year"
12
+ y="value"
13
+ color="sex"
14
+ scales={{ x: { edgeTicks: true } }}
15
+ styles={{ curve: 'step-after' }}
16
+ />
@@ -0,0 +1,18 @@
1
+ <script lang="ts">
2
+ import { LinePlot } from '@fundar/data-chart-telling';
3
+ import { LIFE } from './datasets';
4
+ </script>
5
+
6
+ <!-- A segment sets its own curve: the female line is straight until 1980 and steps from then on. -->
7
+ <LinePlot
8
+ width={720}
9
+ height={380}
10
+ data={LIFE}
11
+ x="year"
12
+ y="value"
13
+ color="sex"
14
+ scales={{ x: { edgeTicks: true } }}
15
+ segments={{
16
+ female: [{ areas: [{ x: { from: 1980 } }], styles: { curve: 'step-after' } }]
17
+ }}
18
+ />
@@ -0,0 +1,17 @@
1
+ <script lang="ts">
2
+ import { LollipopPlot } from '@fundar/data-chart-telling';
3
+ import { PROVINCE_VALUES } from './datasets';
4
+
5
+ const female = PROVINCE_VALUES.filter((row) => row.sex === 'female');
6
+ </script>
7
+
8
+ <!-- One dot on a stem per province: female life expectancy at birth, with its value beside it. -->
9
+ <LollipopPlot
10
+ width={720}
11
+ height={400}
12
+ data={female}
13
+ x="value"
14
+ y="province"
15
+ scales={{ x: { domain: [70, 85] } }}
16
+ styles={{ values: { show: true } }}
17
+ />
@@ -0,0 +1,27 @@
1
+ <script lang="ts">
2
+ import { LinePlot } from '@fundar/data-chart-telling';
3
+ import { LIFE } from './datasets';
4
+ </script>
5
+
6
+ <!-- Markers add marks to a plot: a hover highlight, a reference rule and a delta between two series. -->
7
+ <LinePlot
8
+ width={720}
9
+ height={400}
10
+ data={LIFE}
11
+ x="year"
12
+ y="value"
13
+ color="sex"
14
+ scales={{ x: { edgeTicks: true } }}
15
+ markers={[
16
+ { type: 'hover' },
17
+ { type: 'rule', axis: 'x', value: 2001, styles: { stroke: '#999', strokeDasharray: '4 4' } },
18
+ {
19
+ type: 'delta',
20
+ axis: 'x',
21
+ at: 1980,
22
+ from: { type: 'series', series: 'female' },
23
+ to: { type: 'series', series: 'male' },
24
+ formatDiff: (difference) => difference.toFixed(1)
25
+ }
26
+ ]}
27
+ />
@@ -0,0 +1,15 @@
1
+ <script lang="ts">
2
+ import { LinePlot } from '@fundar/data-chart-telling';
3
+ import { PRICES } from './datasets';
4
+ </script>
5
+
6
+ <!-- A 6-month moving average, run on the plot's rows. -->
7
+ <LinePlot
8
+ width={720}
9
+ height={400}
10
+ data={PRICES}
11
+ x="date"
12
+ y="index"
13
+ color="commodity"
14
+ transforms={[{ type: 'windowY', k: 6, reduce: 'mean' }]}
15
+ />
@@ -0,0 +1,14 @@
1
+ <script lang="ts">
2
+ import { PyramidPlot } from '@fundar/data-chart-telling';
3
+ import { POPULATION_BY_AGE_AT_2022 } from './datasets';
4
+ </script>
5
+
6
+ <!-- A population pyramid: one side per `color` value. -->
7
+ <PyramidPlot
8
+ width={720}
9
+ height={400}
10
+ data={POPULATION_BY_AGE_AT_2022}
11
+ x="share"
12
+ y="ageGroup"
13
+ color="sex"
14
+ />
@@ -0,0 +1,14 @@
1
+ <script lang="ts">
2
+ import { ScatterPlot } from '@fundar/data-chart-telling';
3
+ import { COUNTRIES_AT_2007 } from './datasets';
4
+ </script>
5
+
6
+ <!-- A linear regression with its 95% confidence band. -->
7
+ <ScatterPlot
8
+ width={720}
9
+ height={400}
10
+ data={COUNTRIES_AT_2007}
11
+ x="gdp"
12
+ y="life"
13
+ statistics={[{ type: 'regression', regressionType: 'linear', confidence: 0.95 }]}
14
+ />
@@ -1,6 +1,6 @@
1
1
  <script lang="ts">
2
2
  import { LinePlot } from '@fundar/data-chart-telling';
3
- import { ROWS } from './data';
3
+ import { REGION_VALUES } from './datasets';
4
4
 
5
5
  // A plot draws at the pixel size it is given. To fill a container (or the
6
6
  // window), bind its size and pass it down.
@@ -13,15 +13,15 @@
13
13
  <LinePlot
14
14
  {width}
15
15
  {height}
16
- title="Value by region"
17
- subtitle="Index, 2016-2023"
18
- data={ROWS}
19
- x="year"
16
+ title="Monthly inflation by region"
17
+ subtitle="Change from the previous month, 2023-2026"
18
+ data={REGION_VALUES}
19
+ x="date"
20
20
  y="value"
21
21
  color="region"
22
22
  scales={{
23
- x: { label: 'Year', tickFormat: (d) => String(d) },
24
- y: { label: 'Index' }
23
+ x: { label: 'Month' },
24
+ y: { label: 'Inflation (%)' }
25
25
  }}
26
26
  styles={{ values: { show: true, format: (v, name) => `${name}: ${v}` } }}
27
27
  margins={{ right: 'auto' }}
@@ -0,0 +1,26 @@
1
+ <script lang="ts">
2
+ import { LinePlot } from '@fundar/data-chart-telling';
3
+ import { PRICES } from './datasets';
4
+ </script>
5
+
6
+ <!-- Axis labels, a fixed domain with gridlines and a color per series. -->
7
+ <LinePlot
8
+ width={720}
9
+ height={400}
10
+ data={PRICES}
11
+ x="date"
12
+ y="index"
13
+ color="commodity"
14
+ scales={{
15
+ x: { label: 'Month' },
16
+ y: { label: 'Index (Jan 2021 = 100)', domain: [0, 600], grid: true },
17
+ color: {
18
+ scheme: {
19
+ 'Brent oil': '#1b9e77',
20
+ 'Natural gas': '#d95f02',
21
+ Coal: '#7570b3',
22
+ Wheat: '#e7298a'
23
+ }
24
+ }
25
+ }}
26
+ />
@@ -0,0 +1,16 @@
1
+ <script lang="ts">
2
+ import { ScatterPlot } from '@fundar/data-chart-telling';
3
+ import { COUNTRIES_AT_2007 } from './datasets';
4
+ </script>
5
+
6
+ <!-- Points sized by `r`, colored by `color` and shaped by `symbol`. -->
7
+ <ScatterPlot
8
+ width={720}
9
+ height={420}
10
+ data={COUNTRIES_AT_2007}
11
+ x="gdp"
12
+ y="life"
13
+ r="population"
14
+ color="continent"
15
+ symbol="income"
16
+ />
@@ -0,0 +1,22 @@
1
+ <script lang="ts">
2
+ import { LinePlot } from '@fundar/data-chart-telling';
3
+ import { REGION_VALUES } from './datasets';
4
+
5
+ const gba = REGION_VALUES.filter((row) => row.region === 'GBA');
6
+ </script>
7
+
8
+ <!-- A grey line with the 2023-2024 surge drawn in red. -->
9
+ <LinePlot
10
+ width={720}
11
+ height={380}
12
+ series={[{ name: 'GBA', x: 'date', y: 'value', data: gba }]}
13
+ segments={{
14
+ GBA: [
15
+ { styles: { stroke: { stroke: '#94a3b8', strokeWidth: 1 } } },
16
+ {
17
+ areas: [{ x: { from: new Date('2023-07-01'), to: new Date('2024-03-01') } }],
18
+ styles: { stroke: { stroke: '#ef4444', strokeWidth: 3 } }
19
+ }
20
+ ]
21
+ }}
22
+ />
@@ -1,17 +1,25 @@
1
1
  <script lang="ts">
2
2
  import { LinePlot } from '@fundar/data-chart-telling';
3
3
  import type { LineSegmentStyle, SegmentsConfig } from '@fundar/data-chart-telling';
4
- import { ROWS } from './data';
4
+ import { REGION_VALUES } from './datasets';
5
5
 
6
6
  // `segments` maps a series name (or 'default' for all series) to its rules.
7
7
  const segments = {
8
8
  default: [
9
9
  {
10
- areas: [{ x: { from: 2020, to: 2023 } }],
10
+ areas: [{ x: { from: new Date('2025-01-01'), to: new Date('2026-08-01') } }],
11
11
  styles: { stroke: { strokeDasharray: '6 4', strokeOpacity: 0.7 } }
12
12
  }
13
13
  ]
14
14
  } satisfies SegmentsConfig<LineSegmentStyle>;
15
15
  </script>
16
16
 
17
- <LinePlot width={720} height={400} data={ROWS} x="year" y="value" color="region" {segments} />
17
+ <LinePlot
18
+ width={720}
19
+ height={400}
20
+ data={REGION_VALUES}
21
+ x="date"
22
+ y="value"
23
+ color="region"
24
+ {segments}
25
+ />
@@ -0,0 +1,25 @@
1
+ <script lang="ts">
2
+ import { LinePlot } from '@fundar/data-chart-telling';
3
+ import { LIFE } from './datasets';
4
+ </script>
5
+
6
+ <!-- Segments per series name, plus `default` for rules shared by every series. -->
7
+ <LinePlot
8
+ width={720}
9
+ height={380}
10
+ data={LIFE}
11
+ x="year"
12
+ y="value"
13
+ color="sex"
14
+ scales={{ x: { edgeTicks: true } }}
15
+ segments={{
16
+ female: [{ styles: { stroke: { stroke: 'steelblue' } } }],
17
+ male: [{ styles: { stroke: { stroke: 'tomato' } } }],
18
+ default: [
19
+ {
20
+ areas: [{ x: { from: 1965, to: 1980 } }],
21
+ styles: { dots: { dotRadius: 5, dotSymbol: 'circle' } }
22
+ }
23
+ ]
24
+ }}
25
+ />
@@ -0,0 +1,17 @@
1
+ <script lang="ts">
2
+ import { SlopePlot } from '@fundar/data-chart-telling';
3
+ import { AGE_SHARES } from './datasets';
4
+
5
+ const censuses = AGE_SHARES.filter(({ year }) => year === 1991 || year === 2022);
6
+ </script>
7
+
8
+ <!-- Each age group's share of Buenos Aires City's population between two censuses, labelled at both ends. -->
9
+ <SlopePlot
10
+ width={720}
11
+ height={400}
12
+ data={censuses}
13
+ x="year"
14
+ y="share"
15
+ color="ageGroup"
16
+ styles={{ values: { show: true } }}
17
+ />