@fundar/data-chart-telling 1.1.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 (524) hide show
  1. package/CHANGELOG.md +32 -0
  2. package/README.md +6 -6
  3. package/dist/configuration/config.svelte.d.ts +1 -1
  4. package/dist/configuration/config.svelte.js +165 -100
  5. package/dist/configuration/themes/index.d.ts +5 -1428
  6. package/dist/index.d.ts +23 -14
  7. package/dist/index.js +20 -11
  8. package/dist/layout/base/BasePlotLayout.svelte +115 -50
  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/legend/ContinuousSection.svelte +44 -9
  31. package/dist/layout/legend/DiscreteBadgeItem.svelte +2 -2
  32. package/dist/layout/legend/DiscreteSection.svelte +2 -2
  33. package/dist/layout/legend/DiscreteSymbolIcon.svelte +1 -1
  34. package/dist/layout/legend/LegendChannels.js +36 -12
  35. package/dist/layout/legend/LegendLayout.svelte +9 -1
  36. package/dist/layout/legend/LegendState.svelte.d.ts +4 -0
  37. package/dist/layout/legend/LegendState.svelte.js +20 -3
  38. package/dist/layout/legend/SizeSection.svelte +1 -1
  39. package/dist/layout/margins/PlotMargins.svelte.d.ts +2 -5
  40. package/dist/layout/margins/PlotMargins.svelte.js +4 -8
  41. package/dist/layout/plot/Slice.d.ts +5 -1
  42. package/dist/layout/plot/Slice.js +14 -4
  43. package/dist/layout/scales/NiceTicks.d.ts +3 -0
  44. package/dist/layout/scales/NiceTicks.js +4 -0
  45. package/dist/layout/scales/ScalesLayout.svelte +72 -7
  46. package/dist/layout/scales/ScalesLayout.svelte.d.ts +5 -0
  47. package/dist/layout/scales/SveltePlotScale.d.ts +2 -2
  48. package/dist/layout/scales/SveltePlotScale.js +13 -6
  49. package/dist/layout/scales/TickLabels.d.ts +32 -0
  50. package/dist/layout/scales/TickLabels.js +55 -0
  51. package/dist/layout/styles/StylesLayout.svelte +2 -2
  52. package/dist/layout/styles/ValueLabels.d.ts +33 -5
  53. package/dist/layout/styles/ValueLabels.js +80 -21
  54. package/dist/layout/timeline/TimelineLayout.svelte +1 -1
  55. package/dist/layout/tooltip/Tooltip.svelte +4 -4
  56. package/dist/layout/tooltip/Tooltip.svelte.d.ts +4 -4
  57. package/dist/layout/tooltip/TooltipState.svelte.js +1 -1
  58. package/dist/markers/MarkerKinds.d.ts +5 -0
  59. package/dist/markers/MarkerKinds.js +1 -0
  60. package/dist/markers/area/AreaMarker.svelte +15 -63
  61. package/dist/markers/arrow/ArrowMarker.svelte +51 -9
  62. package/dist/markers/bar/BarMarker.svelte +8 -4
  63. package/dist/markers/bollinger/BollingerMarker.svelte +33 -18
  64. package/dist/markers/box/BoxMarker.svelte +40 -9
  65. package/dist/markers/delta/Delta.js +1 -1
  66. package/dist/markers/dot/DotMarker.svelte +24 -27
  67. package/dist/markers/image/ImageMarker.svelte +17 -12
  68. package/dist/markers/inset/InsetMarker.svelte +2 -2
  69. package/dist/markers/line/LineMarker.svelte +1 -0
  70. package/dist/markers/link/LinkMarker.svelte +174 -29
  71. package/dist/markers/regression/RegressionMarker.svelte +16 -33
  72. package/dist/markers/rule/RuleMarker.svelte +9 -3
  73. package/dist/markers/text/Declutter.d.ts +4 -0
  74. package/dist/markers/text/Declutter.js +26 -11
  75. package/dist/markers/text/TextMarker.svelte +91 -48
  76. package/dist/markers/tick/TickMarker.svelte +27 -25
  77. package/dist/markers/utils/MarkerChannels.d.ts +24 -0
  78. package/dist/markers/utils/MarkerChannels.js +42 -7
  79. package/dist/markers/utils/RowOffset.d.ts +23 -0
  80. package/dist/markers/utils/RowOffset.js +23 -0
  81. package/dist/markers/utils/RowOffsetMarks.svelte +30 -0
  82. package/dist/markers/utils/RowOffsetMarks.svelte.d.ts +33 -0
  83. package/dist/markers/utils/RowStroke.d.ts +31 -0
  84. package/dist/markers/utils/RowStroke.js +28 -0
  85. package/dist/markers/violin/ViolinMarker.svelte +75 -0
  86. package/dist/markers/violin/ViolinMarker.svelte.d.ts +7 -0
  87. package/dist/markers/violin/ViolinProfiles.d.ts +29 -0
  88. package/dist/markers/violin/ViolinProfiles.js +55 -0
  89. package/dist/markers/waffle/WaffleMarker.svelte +17 -37
  90. package/dist/phases/Pipeline.d.ts +5 -0
  91. package/dist/phases/Pipeline.js +5 -0
  92. package/dist/phases/data/DataPhase.js +3 -3
  93. package/dist/phases/data/PlotAxes.d.ts +10 -0
  94. package/dist/phases/data/PlotAxes.js +14 -1
  95. package/dist/phases/facet/FacetPanels.d.ts +1 -0
  96. package/dist/phases/facet/FacetPanels.js +1 -0
  97. package/dist/phases/mapping/MappingPhase.js +1 -1
  98. package/dist/phases/markers/MarkersPhase.js +2 -1
  99. package/dist/phases/scales/CategoryOrder.d.ts +23 -0
  100. package/dist/phases/scales/CategoryOrder.js +73 -0
  101. package/dist/phases/scales/ScalesPhase.js +21 -7
  102. package/dist/phases/sharedScales/SharedScalesPhase.d.ts +3 -2
  103. package/dist/phases/sharedScales/SharedScalesPhase.js +5 -2
  104. package/dist/phases/statistics/Statistics.d.ts +10 -6
  105. package/dist/phases/statistics/Statistics.js +20 -10
  106. package/dist/phases/statistics/StatisticsPhase.js +7 -2
  107. package/dist/phases/statistics/methods/BollingerStatistic.d.ts +1 -1
  108. package/dist/phases/statistics/methods/BollingerStatistic.js +13 -11
  109. package/dist/phases/statistics/methods/BoxStatistic.d.ts +1 -1
  110. package/dist/phases/statistics/methods/BoxStatistic.js +14 -12
  111. package/dist/phases/statistics/methods/Density2dStatistic.d.ts +1 -1
  112. package/dist/phases/statistics/methods/Density2dStatistic.js +13 -11
  113. package/dist/phases/statistics/methods/DensityStatistic.d.ts +1 -1
  114. package/dist/phases/statistics/methods/DensityStatistic.js +11 -9
  115. package/dist/phases/statistics/methods/DeviationStatistic.d.ts +8 -0
  116. package/dist/phases/statistics/methods/DeviationStatistic.js +111 -0
  117. package/dist/phases/statistics/methods/MovingAverageStatistic.d.ts +1 -1
  118. package/dist/phases/statistics/methods/MovingAverageStatistic.js +11 -9
  119. package/dist/phases/statistics/methods/RegressionStatistic.d.ts +1 -1
  120. package/dist/phases/statistics/methods/RegressionStatistic.js +16 -14
  121. package/dist/phases/transforms/ProcessedPositions.js +1 -1
  122. package/dist/phases/transforms/TransformsPhase.js +49 -3
  123. package/dist/phases/transforms/ValueSelection.d.ts +30 -0
  124. package/dist/phases/transforms/ValueSelection.js +53 -0
  125. package/dist/plots/{heatmap → correlation/heatmap}/Plot.svelte +5 -2
  126. package/dist/plots/{heatmap → correlation/heatmap}/Plot.svelte.d.ts +2 -2
  127. package/dist/plots/{heatmap → correlation/heatmap}/defaults.d.ts +2 -2
  128. package/dist/plots/{heatmap → correlation/heatmap}/defaults.js +5 -5
  129. package/dist/plots/{heatmap → correlation/heatmap}/markers.d.ts +4 -4
  130. package/dist/plots/{heatmap → correlation/heatmap}/markers.js +3 -3
  131. package/dist/plots/{scatter → correlation/scatter}/Plot.svelte +5 -2
  132. package/dist/plots/{scatter → correlation/scatter}/Plot.svelte.d.ts +2 -2
  133. package/dist/plots/{scatter → correlation/scatter}/defaults.d.ts +2 -2
  134. package/dist/plots/{scatter → correlation/scatter}/defaults.js +4 -4
  135. package/dist/plots/{scatter → correlation/scatter}/markers.d.ts +4 -4
  136. package/dist/plots/{scatter → correlation/scatter}/markers.js +3 -3
  137. package/dist/plots/{box → distribution/box}/BoxSummaries.d.ts +2 -2
  138. package/dist/plots/{box → distribution/box}/BoxSummaries.js +6 -6
  139. package/dist/plots/{box → distribution/box}/Plot.svelte +2 -2
  140. package/dist/plots/{box → distribution/box}/Plot.svelte.d.ts +2 -2
  141. package/dist/plots/{box → distribution/box}/defaults.d.ts +2 -2
  142. package/dist/plots/{box → distribution/box}/defaults.js +1 -1
  143. package/dist/plots/{box → distribution/box}/markers.d.ts +2 -2
  144. package/dist/plots/distribution/density/Plot.svelte +45 -0
  145. package/dist/plots/distribution/density/Plot.svelte.d.ts +26 -0
  146. package/dist/plots/distribution/density/defaults.d.ts +9 -0
  147. package/dist/plots/distribution/density/defaults.js +29 -0
  148. package/dist/plots/distribution/density/markers.d.ts +9 -0
  149. package/dist/plots/distribution/density/markers.js +42 -0
  150. package/dist/plots/{histogram → distribution/histogram}/Plot.svelte +2 -2
  151. package/dist/plots/{histogram → distribution/histogram}/Plot.svelte.d.ts +2 -2
  152. package/dist/plots/{histogram → distribution/histogram}/defaults.d.ts +2 -2
  153. package/dist/plots/{histogram → distribution/histogram}/defaults.js +3 -3
  154. package/dist/plots/{histogram → distribution/histogram}/markers.d.ts +3 -3
  155. package/dist/plots/{histogram → distribution/histogram}/markers.js +5 -5
  156. package/dist/plots/{pyramid → distribution/pyramid}/Plot.svelte +5 -2
  157. package/dist/plots/{pyramid → distribution/pyramid}/Plot.svelte.d.ts +2 -2
  158. package/dist/plots/{pyramid → distribution/pyramid}/defaults.d.ts +2 -2
  159. package/dist/plots/{pyramid → distribution/pyramid}/defaults.js +6 -6
  160. package/dist/plots/{pyramid → distribution/pyramid}/markers.d.ts +4 -4
  161. package/dist/plots/{pyramid → distribution/pyramid}/markers.js +6 -6
  162. package/dist/plots/distribution/violin/Plot.svelte +45 -0
  163. package/dist/plots/distribution/violin/Plot.svelte.d.ts +26 -0
  164. package/dist/plots/distribution/violin/defaults.d.ts +10 -0
  165. package/dist/plots/distribution/violin/defaults.js +58 -0
  166. package/dist/plots/distribution/violin/markers.d.ts +10 -0
  167. package/dist/plots/distribution/violin/markers.js +71 -0
  168. package/dist/plots/{area → evolution/area}/Plot.svelte +2 -2
  169. package/dist/plots/{area → evolution/area}/Plot.svelte.d.ts +2 -2
  170. package/dist/plots/{area → evolution/area}/defaults.d.ts +2 -2
  171. package/dist/plots/{area → evolution/area}/defaults.js +2 -0
  172. package/dist/plots/{area → evolution/area}/markers.d.ts +2 -2
  173. package/dist/plots/{area → evolution/area}/markers.js +1 -1
  174. package/dist/plots/{line → evolution/line}/Plot.svelte +2 -2
  175. package/dist/plots/{line → evolution/line}/Plot.svelte.d.ts +2 -2
  176. package/dist/plots/{line → evolution/line}/defaults.d.ts +2 -2
  177. package/dist/plots/{line → evolution/line}/defaults.js +2 -0
  178. package/dist/plots/{line → evolution/line}/markers.d.ts +11 -8
  179. package/dist/plots/{line → evolution/line}/markers.js +6 -4
  180. package/dist/plots/evolution/slope/Plot.svelte +42 -0
  181. package/dist/plots/evolution/slope/Plot.svelte.d.ts +26 -0
  182. package/dist/plots/evolution/slope/defaults.d.ts +8 -0
  183. package/dist/plots/evolution/slope/defaults.js +31 -0
  184. package/dist/plots/evolution/slope/markers.d.ts +16 -0
  185. package/dist/plots/evolution/slope/markers.js +79 -0
  186. package/dist/plots/evolution/sparkline/Plot.svelte +45 -0
  187. package/dist/plots/evolution/sparkline/Plot.svelte.d.ts +26 -0
  188. package/dist/plots/evolution/sparkline/defaults.d.ts +7 -0
  189. package/dist/plots/evolution/sparkline/defaults.js +23 -0
  190. package/dist/plots/evolution/sparkline/markers.d.ts +7 -0
  191. package/dist/plots/evolution/sparkline/markers.js +56 -0
  192. package/dist/plots/{geo → map/geo}/Core.svelte +11 -10
  193. package/dist/plots/{geo → map/geo}/Core.svelte.d.ts +1 -1
  194. package/dist/plots/map/geo/GeoFeatures.svelte.d.ts +9 -0
  195. package/dist/plots/map/geo/GeoFeatures.svelte.js +55 -0
  196. package/dist/plots/map/geo/GeoGeometry.d.ts +27 -0
  197. package/dist/plots/map/geo/GeoGeometry.js +142 -0
  198. package/dist/plots/map/geo/GeoSegments.d.ts +16 -0
  199. package/dist/plots/map/geo/GeoSegments.js +23 -0
  200. package/dist/plots/{geo → map/geo}/Plot.svelte +10 -10
  201. package/dist/plots/{geo → map/geo}/Plot.svelte.d.ts +2 -2
  202. package/dist/plots/{geo → map/geo}/defaults.d.ts +2 -2
  203. package/dist/plots/{geo → map/geo}/defaults.js +1 -1
  204. package/dist/plots/{geo → map/geo}/phases/data.d.ts +1 -1
  205. package/dist/plots/{geo → map/geo}/phases/data.js +7 -6
  206. package/dist/plots/{geo → map/geo}/phases/hover.d.ts +1 -1
  207. package/dist/plots/{geo → map/geo}/phases/hover.js +2 -2
  208. package/dist/plots/{geo → map/geo}/phases/markers.d.ts +1 -1
  209. package/dist/plots/{geo → map/geo}/phases/markers.js +6 -10
  210. package/dist/plots/{geo → map/geo}/phases/scales.d.ts +2 -2
  211. package/dist/plots/{geo → map/geo}/phases/scales.js +28 -12
  212. package/dist/plots/{geo → map/geo}/phases/tooltip.d.ts +1 -1
  213. package/dist/plots/map/geo/phases/tooltip.js +5 -0
  214. package/dist/plots/{geo → map/geo}/slices.d.ts +2 -2
  215. package/dist/plots/{geo → map/geo}/slices.js +2 -2
  216. package/dist/plots/{bar → ranking/bar}/Plot.svelte +2 -2
  217. package/dist/plots/{bar → ranking/bar}/Plot.svelte.d.ts +2 -2
  218. package/dist/plots/ranking/bar/defaults.d.ts +16 -0
  219. package/dist/plots/{bar → ranking/bar}/defaults.js +15 -9
  220. package/dist/plots/{bar → ranking/bar}/markers.d.ts +8 -8
  221. package/dist/plots/{bar → ranking/bar}/markers.js +8 -17
  222. package/dist/plots/ranking/bullet/Plot.svelte +42 -0
  223. package/dist/plots/ranking/bullet/Plot.svelte.d.ts +26 -0
  224. package/dist/plots/ranking/bullet/defaults.d.ts +8 -0
  225. package/dist/plots/ranking/bullet/defaults.js +24 -0
  226. package/dist/plots/ranking/bullet/markers.d.ts +10 -0
  227. package/dist/plots/ranking/bullet/markers.js +90 -0
  228. package/dist/plots/ranking/cleveland/ClevelandConnector.d.ts +48 -0
  229. package/dist/plots/ranking/cleveland/ClevelandConnector.js +140 -0
  230. package/dist/plots/ranking/cleveland/ClevelandMarkers.d.ts +33 -0
  231. package/dist/plots/ranking/cleveland/ClevelandMarkers.js +375 -0
  232. package/dist/plots/ranking/cleveland/ClevelandRanges.d.ts +31 -0
  233. package/dist/plots/ranking/cleveland/ClevelandRanges.js +116 -0
  234. package/dist/plots/ranking/cleveland/Plot.svelte +45 -0
  235. package/dist/plots/ranking/cleveland/Plot.svelte.d.ts +26 -0
  236. package/dist/plots/ranking/cleveland/defaults.d.ts +13 -0
  237. package/dist/plots/ranking/cleveland/defaults.js +66 -0
  238. package/dist/plots/ranking/dumbbell/Plot.svelte +45 -0
  239. package/dist/plots/ranking/dumbbell/Plot.svelte.d.ts +26 -0
  240. package/dist/plots/ranking/dumbbell/defaults.d.ts +9 -0
  241. package/dist/plots/ranking/dumbbell/defaults.js +19 -0
  242. package/dist/plots/ranking/forest/Plot.svelte +42 -0
  243. package/dist/plots/ranking/forest/Plot.svelte.d.ts +26 -0
  244. package/dist/plots/ranking/forest/defaults.d.ts +11 -0
  245. package/dist/plots/ranking/forest/defaults.js +20 -0
  246. package/dist/plots/ranking/lollipop/Plot.svelte +45 -0
  247. package/dist/plots/ranking/lollipop/Plot.svelte.d.ts +26 -0
  248. package/dist/plots/ranking/lollipop/defaults.d.ts +9 -0
  249. package/dist/plots/ranking/lollipop/defaults.js +18 -0
  250. package/dist/plots/utils/RowNumbers.d.ts +16 -0
  251. package/dist/plots/utils/RowNumbers.js +24 -0
  252. package/dist/plots/utils/gaps.js +1 -1
  253. package/dist/plots/utils/segments.js +1 -1
  254. package/dist/types/configuration/styling.d.ts +276 -143
  255. package/dist/types/layout/coordinates.d.ts +5 -4
  256. package/dist/types/layout/legend.d.ts +21 -5
  257. package/dist/types/layout/plot.d.ts +44 -1
  258. package/dist/types/layout/scales.d.ts +39 -7
  259. package/dist/types/layout/statistics/deviation.d.ts +40 -0
  260. package/dist/types/layout/statistics/index.d.ts +7 -2
  261. package/dist/types/layout/styles/base.d.ts +18 -0
  262. package/dist/types/layout/styles/bullet.d.ts +25 -0
  263. package/dist/types/layout/styles/connector.d.ts +98 -0
  264. package/dist/types/layout/styles/curve.d.ts +11 -0
  265. package/dist/types/layout/styles/frame.d.ts +17 -0
  266. package/dist/types/layout/styles/gaps.d.ts +12 -0
  267. package/dist/types/layout/styles/geo.d.ts +55 -0
  268. package/dist/types/layout/styles/index.d.ts +8 -0
  269. package/dist/types/layout/styles/index.js +8 -0
  270. package/dist/types/layout/styles/values.d.ts +47 -0
  271. package/dist/types/layout/timeline.d.ts +5 -2
  272. package/dist/types/layout/tooltip.d.ts +6 -2
  273. package/dist/types/markers/axis/area.d.ts +2 -2
  274. package/dist/types/markers/axis/arrow.d.ts +3 -0
  275. package/dist/types/markers/axis/axisBasedMarkersConfig.d.ts +2 -1
  276. package/dist/types/markers/axis/bar.d.ts +1 -1
  277. package/dist/types/markers/axis/box.d.ts +5 -0
  278. package/dist/types/markers/axis/difference.d.ts +2 -2
  279. package/dist/types/markers/axis/image.d.ts +3 -2
  280. package/dist/types/markers/axis/line.d.ts +2 -0
  281. package/dist/types/markers/axis/rule.d.ts +9 -0
  282. package/dist/types/markers/axis/trail.d.ts +2 -3
  283. package/dist/types/markers/axis/violin.d.ts +25 -0
  284. package/dist/types/markers/basic/dot.d.ts +3 -2
  285. package/dist/types/markers/basic/text.d.ts +13 -3
  286. package/dist/types/markers/channels/commonMarkerConfig.d.ts +7 -3
  287. package/dist/types/markers/channels/commonMarkerConfigWithRowOffset.d.ts +13 -0
  288. package/dist/types/markers/common.d.ts +1 -1
  289. package/dist/types/markers/common.js +1 -0
  290. package/dist/types/markers/geo/link.d.ts +5 -1
  291. package/dist/types/phases/index.d.ts +1 -1
  292. package/dist/types/phases/scales/phase.d.ts +5 -1
  293. package/dist/types/phases/state.d.ts +15 -2
  294. package/dist/types/phases/statistics/source.d.ts +3 -1
  295. package/dist/types/phases/transforms/phase.d.ts +22 -0
  296. package/dist/types/plots/{heatmap → correlation/heatmap}/props.d.ts +6 -6
  297. package/dist/types/plots/{heatmap → correlation/heatmap}/state.d.ts +4 -4
  298. package/dist/types/plots/{scatter → correlation/scatter}/props.d.ts +6 -6
  299. package/dist/types/plots/{scatter → correlation/scatter}/state.d.ts +2 -2
  300. package/dist/types/plots/{box → distribution/box}/props.d.ts +6 -6
  301. package/dist/types/plots/{box → distribution/box}/state.d.ts +3 -3
  302. package/dist/types/plots/distribution/density/props.d.ts +23 -0
  303. package/dist/types/plots/distribution/density/state.d.ts +6 -0
  304. package/dist/types/plots/{histogram → distribution/histogram}/props.d.ts +7 -7
  305. package/dist/types/plots/{histogram → distribution/histogram}/state.d.ts +2 -2
  306. package/dist/types/plots/distribution/histogram/state.js +1 -0
  307. package/dist/types/plots/{pyramid → distribution/pyramid}/props.d.ts +6 -6
  308. package/dist/types/plots/distribution/pyramid/props.js +1 -0
  309. package/dist/types/plots/{pyramid → distribution/pyramid}/state.d.ts +3 -3
  310. package/dist/types/plots/distribution/pyramid/state.js +1 -0
  311. package/dist/types/plots/distribution/violin/props.d.ts +23 -0
  312. package/dist/types/plots/distribution/violin/props.js +1 -0
  313. package/dist/types/plots/distribution/violin/state.d.ts +6 -0
  314. package/dist/types/plots/distribution/violin/state.js +1 -0
  315. package/dist/types/plots/{area → evolution/area}/props.d.ts +6 -6
  316. package/dist/types/plots/evolution/area/props.js +1 -0
  317. package/dist/types/plots/{area → evolution/area}/state.d.ts +2 -2
  318. package/dist/types/plots/evolution/area/state.js +1 -0
  319. package/dist/types/plots/evolution/line/props.d.ts +10 -0
  320. package/dist/types/plots/evolution/line/props.js +1 -0
  321. package/dist/types/plots/{line → evolution/line}/state.d.ts +3 -3
  322. package/dist/types/plots/evolution/line/state.js +1 -0
  323. package/dist/types/plots/evolution/slope/props.d.ts +5 -0
  324. package/dist/types/plots/evolution/slope/props.js +1 -0
  325. package/dist/types/plots/evolution/slope/state.d.ts +5 -0
  326. package/dist/types/plots/evolution/slope/state.js +1 -0
  327. package/dist/types/plots/evolution/sparkline/props.d.ts +5 -0
  328. package/dist/types/plots/evolution/sparkline/props.js +1 -0
  329. package/dist/types/plots/evolution/sparkline/state.d.ts +5 -0
  330. package/dist/types/plots/evolution/sparkline/state.js +1 -0
  331. package/dist/types/plots/{geo → map/geo}/props.d.ts +8 -8
  332. package/dist/types/plots/map/geo/props.js +1 -0
  333. package/dist/types/plots/{geo → map/geo}/state.d.ts +18 -11
  334. package/dist/types/plots/map/geo/state.js +1 -0
  335. package/dist/types/plots/props.d.ts +1 -1
  336. package/dist/types/plots/{bar → ranking/bar}/props.d.ts +6 -6
  337. package/dist/types/plots/ranking/bar/props.js +1 -0
  338. package/dist/types/plots/{bar → ranking/bar}/state.d.ts +2 -2
  339. package/dist/types/plots/ranking/bar/state.js +1 -0
  340. package/dist/types/plots/ranking/bullet/props.d.ts +22 -0
  341. package/dist/types/plots/ranking/bullet/props.js +1 -0
  342. package/dist/types/plots/ranking/bullet/state.d.ts +5 -0
  343. package/dist/types/plots/ranking/bullet/state.js +1 -0
  344. package/dist/types/plots/ranking/cleveland/props.d.ts +10 -0
  345. package/dist/types/plots/ranking/cleveland/props.js +1 -0
  346. package/dist/types/plots/ranking/cleveland/state.d.ts +49 -0
  347. package/dist/types/plots/ranking/cleveland/state.js +1 -0
  348. package/dist/types/plots/ranking/dumbbell/props.d.ts +10 -0
  349. package/dist/types/plots/ranking/dumbbell/props.js +1 -0
  350. package/dist/types/plots/ranking/dumbbell/state.d.ts +5 -0
  351. package/dist/types/plots/ranking/dumbbell/state.js +1 -0
  352. package/dist/types/plots/ranking/forest/props.d.ts +23 -0
  353. package/dist/types/plots/ranking/forest/props.js +1 -0
  354. package/dist/types/plots/ranking/forest/state.d.ts +5 -0
  355. package/dist/types/plots/ranking/forest/state.js +1 -0
  356. package/dist/types/plots/ranking/lollipop/props.d.ts +10 -0
  357. package/dist/types/plots/ranking/lollipop/props.js +1 -0
  358. package/dist/types/plots/ranking/lollipop/state.d.ts +5 -0
  359. package/dist/types/plots/ranking/lollipop/state.js +1 -0
  360. package/dist/types/plots/segments/common.d.ts +4 -1
  361. package/dist/utils/OpacityScale.d.ts +14 -0
  362. package/dist/utils/OpacityScale.js +43 -0
  363. package/dist/utils/{symbol.d.ts → SymbolPath.d.ts} +0 -12
  364. package/dist/utils/{symbol.js → SymbolPath.js} +0 -24
  365. package/dist/utils/SymbolScale.d.ts +18 -0
  366. package/dist/utils/SymbolScale.js +29 -0
  367. package/dist/utils/color/ColorRamp.d.ts +27 -0
  368. package/dist/utils/color/ColorRamp.js +120 -0
  369. package/dist/utils/color/CssColor.d.ts +19 -0
  370. package/dist/utils/color/CssColor.js +114 -0
  371. package/dist/utils/color/Palette.d.ts +21 -0
  372. package/dist/utils/color/Palette.js +52 -0
  373. package/dist/utils/color/index.d.ts +11 -3
  374. package/dist/utils/color/index.js +14 -3
  375. package/dist/utils/grouping.js +1 -1
  376. package/docs/architecture.md +1 -1
  377. package/docs/chrome.md +2 -2
  378. package/docs/composer.md +2 -2
  379. package/docs/concepts.md +1 -1
  380. package/docs/development.md +1 -1
  381. package/docs/facets.md +3 -3
  382. package/docs/getting-started.md +2 -2
  383. package/docs/legend.md +13 -11
  384. package/docs/markers.md +29 -27
  385. package/docs/plots/correlation/heatmap.md +26 -0
  386. package/docs/plots/correlation/scatter.md +35 -0
  387. package/docs/plots/distribution/box.md +28 -0
  388. package/docs/plots/distribution/density.md +26 -0
  389. package/docs/plots/distribution/histogram.md +33 -0
  390. package/docs/plots/distribution/pyramid.md +31 -0
  391. package/docs/plots/distribution/violin.md +35 -0
  392. package/docs/plots/evolution/area.md +32 -0
  393. package/docs/plots/evolution/line.md +93 -0
  394. package/docs/plots/evolution/slope.md +39 -0
  395. package/docs/plots/evolution/sparkline.md +34 -0
  396. package/docs/plots/ranking/bar.md +59 -0
  397. package/docs/plots/ranking/bullet.md +37 -0
  398. package/docs/plots/ranking/cleveland.md +54 -0
  399. package/docs/plots/ranking/dumbbell.md +39 -0
  400. package/docs/plots/ranking/forest.md +40 -0
  401. package/docs/plots/ranking/lollipop.md +39 -0
  402. package/docs/plots.md +22 -280
  403. package/docs/scales.md +30 -24
  404. package/docs/styles-and-segments.md +24 -21
  405. package/docs/theming.md +23 -20
  406. package/docs/timeline.md +3 -3
  407. package/docs/tooltip-and-hover.md +10 -10
  408. package/docs/transforms-and-statistics.md +13 -12
  409. package/examples/BarValues.svelte +1 -1
  410. package/examples/Box.svelte +1 -1
  411. package/examples/Bullet.svelte +17 -0
  412. package/examples/Chrome.svelte +1 -1
  413. package/examples/ChromeOrder.svelte +1 -1
  414. package/examples/Cleveland.svelte +15 -0
  415. package/examples/Composer.svelte +2 -2
  416. package/examples/CustomTooltip.svelte +1 -1
  417. package/examples/Density.svelte +7 -0
  418. package/examples/Dumbbell.svelte +16 -0
  419. package/examples/Facets.svelte +1 -1
  420. package/examples/FacetsCarousel.svelte +1 -1
  421. package/examples/FacetsRowsCols.svelte +1 -1
  422. package/examples/FirstPlot.svelte +1 -1
  423. package/examples/Forest.svelte +17 -0
  424. package/examples/Gaps.svelte +2 -2
  425. package/examples/GroupedBars.svelte +1 -1
  426. package/examples/Heatmap.svelte +3 -3
  427. package/examples/HeatmapSegments.svelte +8 -8
  428. package/examples/Histogram.svelte +1 -1
  429. package/examples/HorizontalBars.svelte +1 -1
  430. package/examples/LegendSections.svelte +1 -1
  431. package/examples/LegendToggle.svelte +1 -1
  432. package/examples/LineByRegion.svelte +1 -1
  433. package/examples/LineDates.svelte +1 -1
  434. package/examples/LineStep.svelte +16 -0
  435. package/examples/LineStepSegment.svelte +18 -0
  436. package/examples/Lollipop.svelte +17 -0
  437. package/examples/Markers.svelte +1 -1
  438. package/examples/MovingAverage.svelte +1 -1
  439. package/examples/Pyramid.svelte +9 -2
  440. package/examples/Regression.svelte +2 -2
  441. package/examples/ResponsiveLine.svelte +1 -1
  442. package/examples/Scales.svelte +1 -1
  443. package/examples/Scatter.svelte +2 -2
  444. package/examples/SegmentHighlight.svelte +1 -1
  445. package/examples/Segments.svelte +1 -1
  446. package/examples/SegmentsBySeries.svelte +1 -1
  447. package/examples/Slope.svelte +17 -0
  448. package/examples/Sparkline.svelte +14 -0
  449. package/examples/StackedArea.svelte +1 -1
  450. package/examples/StackedBars.svelte +1 -1
  451. package/examples/TimelinePlayer.svelte +1 -1
  452. package/examples/TimelineRule.svelte +1 -1
  453. package/examples/Tooltip.svelte +1 -1
  454. package/examples/ValueLabels.svelte +1 -1
  455. package/examples/Violin.svelte +14 -0
  456. package/examples/datasets/argentina-chile-trends.ts +34 -0
  457. package/examples/datasets/commodity-prices.ts +48 -0
  458. package/examples/datasets/countries-over-time.ts +368 -0
  459. package/examples/datasets/daily-temperature.ts +121 -0
  460. package/examples/datasets/earthquakes.ts +977 -0
  461. package/examples/datasets/flight-routes.ts +29 -0
  462. package/examples/datasets/height-density.ts +37 -0
  463. package/examples/datasets/heights.ts +370 -0
  464. package/examples/datasets/index.ts +24 -0
  465. package/examples/datasets/inflation-by-region.ts +44 -0
  466. package/examples/datasets/inflation-ranges.ts +34 -0
  467. package/examples/datasets/iris-flower.ts +207 -0
  468. package/examples/datasets/life-expectancy.ts +95 -0
  469. package/examples/datasets/napoleons-march.ts +182 -0
  470. package/examples/datasets/penguins.ts +54 -0
  471. package/examples/datasets/population-by-age-with-gaps.ts +23 -0
  472. package/examples/datasets/population-by-age.ts +890 -0
  473. package/examples/datasets/province-population.ts +521 -0
  474. package/examples/datasets/stock-prices.ts +63 -0
  475. package/examples/datasets/weather-stations-over-time.ts +31 -0
  476. package/examples/datasets/weather-stations.ts +22 -0
  477. package/examples/datasets/wind-vectors.ts +30 -0
  478. package/examples/datasets/world-temperature.ts +400 -0
  479. package/llms-full.txt +22 -11
  480. package/llms.txt +32 -4
  481. package/package.json +10 -1
  482. package/dist/plots/bar/defaults.d.ts +0 -9
  483. package/dist/plots/geo/features.svelte.d.ts +0 -5
  484. package/dist/plots/geo/features.svelte.js +0 -44
  485. package/dist/plots/geo/phases/tooltip.js +0 -5
  486. package/dist/plots/utils/geoAccessors.d.ts +0 -72
  487. package/dist/plots/utils/geoAccessors.js +0 -220
  488. package/dist/plots/utils/geoSegments.d.ts +0 -29
  489. package/dist/plots/utils/geoSegments.js +0 -37
  490. package/dist/types/layout/styles.d.ts +0 -122
  491. package/dist/types/markers/axis/curveName.d.ts +0 -2
  492. package/dist/types/plots/line/props.d.ts +0 -10
  493. package/dist/utils/color/contrast.d.ts +0 -9
  494. package/dist/utils/color/contrast.js +0 -40
  495. package/dist/utils/color/cssColor.d.ts +0 -4
  496. package/dist/utils/color/cssColor.js +0 -77
  497. package/dist/utils/color/ramp.d.ts +0 -17
  498. package/dist/utils/color/ramp.js +0 -110
  499. package/dist/utils/opacity.d.ts +0 -9
  500. package/dist/utils/opacity.js +0 -38
  501. package/examples/data.ts +0 -324
  502. /package/dist/plots/{box → distribution/box}/markers.js +0 -0
  503. /package/dist/types/layout/{styles.js → statistics/deviation.js} +0 -0
  504. /package/dist/types/{markers/axis/curveName.js → layout/styles/base.js} +0 -0
  505. /package/dist/types/{plots/area/props.js → layout/styles/bullet.js} +0 -0
  506. /package/dist/types/{plots/area/state.js → layout/styles/connector.js} +0 -0
  507. /package/dist/types/{plots/bar/props.js → layout/styles/curve.js} +0 -0
  508. /package/dist/types/{plots/bar/state.js → layout/styles/frame.js} +0 -0
  509. /package/dist/types/{plots/box/props.js → layout/styles/gaps.js} +0 -0
  510. /package/dist/types/{plots/box/state.js → layout/styles/geo.js} +0 -0
  511. /package/dist/types/{plots/geo/props.js → layout/styles/values.js} +0 -0
  512. /package/dist/types/{plots/geo/state.js → markers/axis/violin.js} +0 -0
  513. /package/dist/types/{plots/heatmap/props.js → markers/channels/commonMarkerConfigWithRowOffset.js} +0 -0
  514. /package/dist/types/plots/{histogram → correlation/heatmap}/props.js +0 -0
  515. /package/dist/types/plots/{heatmap → correlation/heatmap}/state.js +0 -0
  516. /package/dist/types/plots/{line → correlation/scatter}/props.js +0 -0
  517. /package/dist/types/plots/{histogram → correlation/scatter}/state.js +0 -0
  518. /package/dist/types/plots/{pyramid → distribution/box}/props.js +0 -0
  519. /package/dist/types/plots/{line → distribution/box}/state.js +0 -0
  520. /package/dist/types/plots/{scatter → distribution/density}/props.js +0 -0
  521. /package/dist/types/plots/{pyramid → distribution/density}/state.js +0 -0
  522. /package/dist/types/plots/{scatter/state.js → distribution/histogram/props.js} +0 -0
  523. /package/dist/{plots/utils → utils}/accessors.d.ts +0 -0
  524. /package/dist/{plots/utils → utils}/accessors.js +0 -0
@@ -21,7 +21,7 @@
21
21
  ```svelte
22
22
  <script lang="ts">
23
23
  import { LinePlot } from '@fundar/data-chart-telling';
24
- import { PRICES } from './data';
24
+ import { PRICES } from './datasets';
25
25
  </script>
26
26
 
27
27
  <!-- End-of-line value labels with a custom format and font size. -->
@@ -46,14 +46,17 @@
46
46
 
47
47
  ![End-of-line value labels](images/value-labels.png)
48
48
 
49
- | Field | Meaning |
50
- | -------------- | ---------------------------------------------------------------------------------------------------------------------------------------------- |
51
- | `show` | Draws the labels. Off by default, except on a heatmap |
52
- | `anchor` | `'outside'`, `'start'`, `'middle'`, `'end'` - where a label sits on its mark |
53
- | `format` | `(value, seriesName) => string` |
54
- | `hoverIsolate` | Hovering a label dims every other series |
55
- | `fontStyle` | Text style: `fontSize`, `fill`, `dx`, `dy`, `textAnchor`, `lineAnchor`, `rotate`, `class`, ... Overrides the anchor's placement field by field |
56
- | `strokeStyle` | Style of the connector lines drawn from labels that had to move apart |
49
+ | Field | Meaning |
50
+ | -------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
51
+ | `show` | Draws the labels. Off by default, except on a heatmap |
52
+ | `anchor` | `'outside'`, `'start'`, `'middle'`, `'end'` - where a label sits on its mark |
53
+ | `select` | Which row of each group is labelled: `'first'`, `'last'`, `'min'`, `'max'`, or a list of them. A group is a series on a line or area plot (default `'last'`), a category on the plots that join dots (default: every dot) |
54
+ | `series` | Labels only these series, by name |
55
+ | `color` | `'series'` writes each label in its series' color; any other CSS color writes them all in it (`fontStyle.fill` wins) |
56
+ | `format` | `(value, seriesName, row) => string`; `row` is the labelled row, for its other fields |
57
+ | `hoverIsolate` | Hovering a label dims every other series |
58
+ | `fontStyle` | Text style: `fontSize`, `fill`, `dx`, `dy`, `textAnchor`, `lineAnchor`, `rotate`, `class`, ... Overrides the anchor's placement field by field |
59
+ | `strokeStyle` | Style of the connector lines drawn from labels that had to move apart |
57
60
 
58
61
  Where the labels go depends on the plot: the end of each series on a line or area plot, one per bar on a bar, pyramid or histogram, one per point on a scatter, one per cell on a heatmap. On lines, overlapping labels spread apart, share one column and are joined to their points by elbow connectors; the right margin grows to fit them when it is `'auto'`. The spread is tuned by `text.declutter` in the [configuration](theming.md).
59
62
 
@@ -70,14 +73,14 @@ A row whose value is `null`, `undefined` or `NaN` breaks a line. `styles.gaps` b
70
73
  ```svelte
71
74
  <script lang="ts">
72
75
  import { LinePlot } from '@fundar/data-chart-telling';
73
- import { LIFE_GAPS } from './data';
76
+ import { FEMALE_LIFE_GAPS } from './datasets';
74
77
  </script>
75
78
 
76
79
  <!-- Missing values bridged: dashed in the middle, faded at the start, extended to the 2025 projection at the end. -->
77
80
  <LinePlot
78
81
  width={720}
79
82
  height={400}
80
- series={[{ name: 'female', x: 'year', y: 'value', data: LIFE_GAPS }]}
83
+ series={[{ name: 'female', x: 'year', y: 'value', data: FEMALE_LIFE_GAPS }]}
81
84
  scales={{ x: { edgeTicks: true }, y: { domain: [55, 85] } }}
82
85
  styles={{
83
86
  gaps: {
@@ -137,7 +140,7 @@ A baseline color with a highlighted range:
137
140
  ```svelte
138
141
  <script lang="ts">
139
142
  import { LinePlot } from '@fundar/data-chart-telling';
140
- import { REGION_VALUES } from './data';
143
+ import { REGION_VALUES } from './datasets';
141
144
 
142
145
  const gba = REGION_VALUES.filter((row) => row.region === 'GBA');
143
146
  </script>
@@ -170,7 +173,7 @@ Per-series colors, plus dots over a range shared by every series:
170
173
  ```svelte
171
174
  <script lang="ts">
172
175
  import { LinePlot } from '@fundar/data-chart-telling';
173
- import { LIFE } from './data';
176
+ import { LIFE } from './datasets';
174
177
  </script>
175
178
 
176
179
  <!-- Segments per series name, plus `default` for rules shared by every series. -->
@@ -218,25 +221,25 @@ Heatmap columns and cells:
218
221
  ```svelte
219
222
  <script lang="ts">
220
223
  import { HeatmapPlot } from '@fundar/data-chart-telling';
221
- import { HOUSEHOLDS } from './data';
224
+ import { PENGUIN_COUNTS } from './datasets';
222
225
  </script>
223
226
 
224
- <!-- Segments on a heatmap: an outlined column and a filled block of overcrowded households. -->
227
+ <!-- Segments on a heatmap: an outlined column and a filled block of cells. -->
225
228
  <HeatmapPlot
226
229
  width={560}
227
230
  height={360}
228
- data={HOUSEHOLDS}
229
- x="rooms"
230
- y="people"
231
- color="share"
231
+ data={PENGUIN_COUNTS}
232
+ x="island"
233
+ y="species"
234
+ color="count"
232
235
  segments={{
233
236
  default: [
234
237
  {
235
- areas: [{ x: { from: '1', to: '1' } }],
238
+ areas: [{ x: { from: 'Biscoe', to: 'Biscoe' } }],
236
239
  styles: { stroke: '#f59e0b', strokeWidth: 2 }
237
240
  },
238
241
  {
239
- areas: [{ x: { from: '1', to: '2' }, y: { from: '4', to: '5+' } }],
242
+ areas: [{ x: { from: 'Dream', to: 'Torgersen' }, y: { from: 'Chinstrap', to: 'Gentoo' } }],
240
243
  styles: { fill: '#ef4444', fillOpacity: 0.8 }
241
244
  }
242
245
  ]
package/docs/theming.md CHANGED
@@ -31,26 +31,27 @@ resetConfiguration(); // back to the shipped defaults
31
31
 
32
32
  ## Sections
33
33
 
34
- | Key | Controls |
35
- | --------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
36
- | `font`, `color`, `background` | Base text of every figure |
37
- | `palette` | Categorical series colors, in order |
38
- | `symbols` | Shape cycle for the `symbol` channel |
39
- | `continuous` | Default ramp endpoints, label color and opacity range for continuous color and opacity |
40
- | `spacing`, `chrome` | Padding around header, legend and caption; the chrome `order` and `rowGap` |
41
- | `title`, `subtitle`, `caption` | Text blocks: `font`, `size`, `weight`, `color`, `leading`, `spacing` |
42
- | `divider` | The line a `'divider'` in the chrome `order` draws |
43
- | `legend` | Text, gaps, swatches, `disabledOpacity`, paginated nav buttons, the continuous bar, its handles, ticks and labels, and the `seriesTitle` and `sizeScale` options |
44
- | `axis` | Axis color, font and tick sizes, `grid`, and the number locale (below) |
45
- | `tooltip` | Tooltip background, color, font size, padding, radius, border |
46
- | `margins` | Default margin per side (`'auto'` or a number) |
47
- | `line`, `area`, `bar`, `pyramid`, `histogram`, `box`, `scatter` | Per-kind defaults: stroke width, dot radius, series padding, gap fills, fill opacity, inset, box padding |
48
- | `text` | `declutter` geometry of value labels and connectors |
49
- | `hover` | Look of the hover marker: `rule`, `dot`, `font`, `area` |
50
- | `delta` | The `delta` marker's label, per axis the delta is taken on: `text.x` (beside a vertical delta: `dx: 12`, `textAnchor: 'start'`) and `text.y` (above a horizontal one: `dy: -10`, `textAnchor: 'middle'`). `lineAnchor` picks where along the delta the label sits and how it aligns there |
51
- | `timeline` | The rule (`rule`) and the player bar (`player`: controls, speeds, `stepDuration`, button, track, thumb, toggle) |
52
- | `facet` | The position badge and prev/next buttons |
53
- | `frameClip` | Tolerance for clipping marks to the plot frame |
34
+ | Key | Controls |
35
+ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
36
+ | `font`, `color`, `background` | Base text of every figure |
37
+ | `palette` | Categorical series colors, in order: a list of colors, or the name of a [d3-scale-chromatic](https://d3js.org/d3-scale-chromatic) scheme - a color list (`'dark2'`, `'tableau10'`) or a ramp (`'viridis'`, `'blues'`) - or `{ scheme, count, schemeRange }` for a ramp with its own number of colors (8 by default) and part of the ramp (`[0.3, 1]` skips the near-white start of `'blues'`). A name is turned into the list of colors when it is set |
38
+ | `symbols` | Shape cycle for the `symbol` channel |
39
+ | `continuous` | Default ramp endpoints, label color and opacity range for continuous color and opacity |
40
+ | `spacing`, `chrome` | Padding around header, legend and caption; the chrome `order` and `rowGap` |
41
+ | `title`, `subtitle`, `caption` | Text blocks: `font`, `size`, `weight`, `color`, `leading`, `spacing` |
42
+ | `divider` | The line a `'divider'` in the chrome `order` draws |
43
+ | `legend` | Text, gaps, swatches, `disabledOpacity`, paginated nav buttons, the continuous bar, its handles, ticks and labels, and the `seriesTitle` and `sizeScale` options |
44
+ | `axis` | Axis color, font and tick sizes, `grid`, and the number locale (below) |
45
+ | `tooltip` | Tooltip background, color, font size, padding, radius, border |
46
+ | `margins` | Default margin per side (`'auto'` or a number) |
47
+ | `line`, `area`, `bar`, `pyramid`, `histogram`, `density`, `violin`, `box`, `lollipop`, `dumbbell`, `cleveland`, `forest`, `bullet`, `slope`, `sparkline`, `scatter` | Per-kind defaults: line curve (`'auto'`, straight segments), stroke width, dot radius, series padding, gap fills, fill opacity, inset, density stroke width, violin padding and box width, box, lollipop, dumbbell, Cleveland and forest padding, stem width, forest caps, bullet bar thickness, ranges and target tick, slope stroke width, dot radius and padding, sparkline stroke width and dot radius |
48
+ | `text` | `declutter` geometry of value labels and connectors |
49
+ | `connector` | What `styles.connector` falls back to on lollipop, dumbbell, Cleveland and forest plots: `sign` (`positive`, `negative`, `zero` colors), `lengthScheme` and `differenceScheme` (color ramps), `arrow` (`width`, `headLength`, `headAngle` of a connector drawn as an arrow), `outsideOpacity` (the part of a connector outside its `from`-`to` stretch), `capLength` (px, of a forest plot's end caps), `labelFontSize` and `labelGap` |
50
+ | `hover` | Look of the hover marker: `rule`, `dot`, `font`, `area` |
51
+ | `delta` | The `delta` marker's label, per axis the delta is taken on: `text.x` (beside a vertical delta: `dx: 12`, `textAnchor: 'start'`) and `text.y` (above a horizontal one: `dy: -10`, `textAnchor: 'middle'`). `lineAnchor` picks where along the delta the label sits and how it aligns there |
52
+ | `timeline` | The rule (`rule`) and the player bar (`player`: controls, speeds, `stepDuration`, button, track, thumb, toggle) |
53
+ | `facet` | The position badge and prev/next buttons |
54
+ | `frameClip` | Tolerance for clipping marks to the plot frame |
54
55
 
55
56
  ## Locale
56
57
 
@@ -70,6 +71,8 @@ setConfiguration({ axis: { locale: 'en-US', compactDisplay: 'long' } });
70
71
  setConfiguration({ axis: { edgeTicks: { x: { enabled: true, collision: 'extend' } } } });
71
72
  ```
72
73
 
74
+ `axis.autoRotate` (default `true`) lets a category axis whose labels do not fit turn them to 45 or 90 degrees, and leave some out when that is not enough; an axis with its own `scales.x.tickRotate` is never touched, and `autoRotate: false` turns it off for every plot. It is read when a plot mounts.
75
+
73
76
  A plot overrides it with `scales.x.edgeTicks` or `scales.y.edgeTicks` (see [Scales](scales.md)).
74
77
 
75
78
  ## CSS variables
package/docs/timeline.md CHANGED
@@ -7,7 +7,7 @@
7
7
  ```svelte
8
8
  <script lang="ts">
9
9
  import { BarPlot } from '@fundar/data-chart-telling';
10
- import { REGION_VALUES } from './data';
10
+ import { REGION_VALUES } from './datasets';
11
11
  </script>
12
12
 
13
13
  <!--
@@ -43,7 +43,7 @@
43
43
  | `values` | The steps, when not every distinct value of `accessor` - read like `accessor`'s values |
44
44
  | `filterMode` | `'exact'` shows the rows of the current step; `'upTo'` shows every row up to it (a cumulative reveal). `LinePlot` defaults to `'upTo'` |
45
45
  | `interpolate` | Tween values between steps so a scrub is smooth: `true`, or `{ key, value, create, progressEasing, segmentEasing }`. Line and bar plots default to interpolating their value channel |
46
- | `scales` | `'shared'` (default): axes span every step, so they hold still while scrubbing; `'free'` refits them to each step |
46
+ | `scales` | `'shared'` (default): axes span every step, so they hold still while scrubbing; `'free'` refits both to each step; `'free-x'` / `'free-y'` refit one and keep the other still |
47
47
  | `onprogress`, `onvalue` | Called with the new position (`0`-`1`) and with the step it lands on - a `Date` on a timeline of dates, else the number |
48
48
  | `orientation`, `show`, `thickness` | A rule's direction (`'vertical'` default, beside the plot; `'horizontal'`), visibility and size |
49
49
 
@@ -90,7 +90,7 @@ Defaults for `controls`, `speeds` and `stepDuration` come from `timeline.player`
90
90
  ```svelte
91
91
  <script lang="ts">
92
92
  import { LinePlot } from '@fundar/data-chart-telling';
93
- import { REGION_VALUES } from './data';
93
+ import { REGION_VALUES } from './datasets';
94
94
 
95
95
  // A rule has no controls of its own: the page moves it through `progress` (0 to 1).
96
96
  // One step per year; a line plot shows every row up to the current step.
@@ -9,7 +9,7 @@ A plot becomes interactive when it is given a `tooltip`, a `{ type: 'hover' }` m
9
9
  ```svelte
10
10
  <script lang="ts">
11
11
  import { LinePlot } from '@fundar/data-chart-telling';
12
- import { REGION_VALUES } from './data';
12
+ import { REGION_VALUES } from './datasets';
13
13
  </script>
14
14
 
15
15
  <!--
@@ -34,14 +34,14 @@ A plot becomes interactive when it is given a `tooltip`, a `{ type: 'hover' }` m
34
34
 
35
35
  `tooltip` is `true` for the defaults, or an options object:
36
36
 
37
- | Option | Meaning |
38
- | -------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
39
- | `strategy` | How related points are found: `'x'`, `'y'`, `'punctual'` (the exact point) or `'series'` (all points of the hovered series). Defaults per plot kind |
40
- | `sync` | Show the highlight in every synced plot too (default `false`) |
41
- | `format` | `(row) => string` - the tooltip text for the hovered row (`\n` breaks lines). With several rows, they read from the highest value to the lowest (a stacked row by its own value) |
42
- | `content` | A snippet `{#snippet content({ rows })}` replacing the text with custom markup. It gets the rows as the hover matched them, unsorted, and is drawn in a plain card, so the markup brings its own order, background, colors and spacing |
43
- | `series` | Only these series appear in the tooltip |
44
- | `anchorX`, `anchorY` | Preferred side of the cursor: `'left' \| 'middle' \| 'right'` (default `'right'`) and `'top' \| 'middle' \| 'bottom'` (default `'bottom'`). It moves to the other side when it would overflow |
37
+ | Option | Meaning |
38
+ | -------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
39
+ | `strategy` | How related points are found: `'x'`, `'y'`, `'punctual'` (the exact point) or `'series'` (all points of the hovered series). Defaults per plot kind |
40
+ | `sync` | Show the highlight in every synced plot too (default `false`) |
41
+ | `format` | `(row) => string` - the tooltip text for the hovered row (`\n` breaks lines). With several rows, they read from the highest value to the lowest (a stacked row by its own value) |
42
+ | `content` | A snippet `{#snippet content({ rows })}` replacing the text with custom markup. It gets the rows as the hover matched them, unsorted, each one your row plus a `seriesColor`: the one the plot draws it in (the series color, from `scales.color` or the palette). It is drawn in a plain card, so the markup brings its own order, background, colors and spacing |
43
+ | `series` | Only these series appear in the tooltip |
44
+ | `anchorX`, `anchorY` | Preferred side of the cursor: `'left' \| 'middle' \| 'right'` (default `'right'`) and `'top' \| 'middle' \| 'bottom'` (default `'bottom'`). It moves to the other side when it would overflow |
45
45
 
46
46
  <!-- example: examples/CustomTooltip.svelte -->
47
47
 
@@ -49,7 +49,7 @@ A plot becomes interactive when it is given a `tooltip`, a `{ type: 'hover' }` m
49
49
  <script lang="ts">
50
50
  import { LinePlot, getConfiguration, paletteColor } from '@fundar/data-chart-telling';
51
51
  import TooltipCard from './TooltipCard.svelte';
52
- import { REGION_VALUES, type RegionRow } from './data';
52
+ import { REGION_VALUES, type RegionRow } from './datasets';
53
53
 
54
54
  const { palette } = getConfiguration();
55
55
  const regions = [...new Set(REGION_VALUES.map((row) => row.region))];
@@ -11,7 +11,7 @@ Both derive rows from the data before drawing. A **transform** reshapes the rows
11
11
  ```svelte
12
12
  <script lang="ts">
13
13
  import { BarPlot } from '@fundar/data-chart-telling';
14
- import { SEX_SHARES } from './data';
14
+ import { SEX_SHARES } from './datasets';
15
15
  </script>
16
16
 
17
17
  <!-- Each sex's share of the population per census, stacked with `stackY` so a bar adds up to 100%. -->
@@ -35,7 +35,7 @@ Both derive rows from the data before drawing. A **transform** reshapes the rows
35
35
  ```svelte
36
36
  <script lang="ts">
37
37
  import { LinePlot } from '@fundar/data-chart-telling';
38
- import { PRICES } from './data';
38
+ import { PRICES } from './datasets';
39
39
  </script>
40
40
 
41
41
  <!-- A 6-month moving average, run on the plot's rows. -->
@@ -82,14 +82,14 @@ Bar stacking is always `stackY`, also for horizontal bars. A transform on a `His
82
82
  ```svelte
83
83
  <script lang="ts">
84
84
  import { ScatterPlot } from '@fundar/data-chart-telling';
85
- import { COUNTRIES } from './data';
85
+ import { COUNTRIES_AT_2007 } from './datasets';
86
86
  </script>
87
87
 
88
88
  <!-- A linear regression with its 95% confidence band. -->
89
89
  <ScatterPlot
90
90
  width={720}
91
91
  height={400}
92
- data={COUNTRIES}
92
+ data={COUNTRIES_AT_2007}
93
93
  x="gdp"
94
94
  y="life"
95
95
  statistics={[{ type: 'regression', regressionType: 'linear', confidence: 0.95 }]}
@@ -100,14 +100,15 @@ Bar stacking is always `stackY`, also for horizontal bars. A transform on a `His
100
100
 
101
101
  ![A scatter plot with a regression line and confidence band](images/regression.png)
102
102
 
103
- | `type` | Draws | Options |
104
- | --------------- | ---------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------- |
105
- | `regression` | A fitted curve with a confidence band | `regressionType` (`'linear'`, `'quad'`, `'poly'`, `'exp'`, `'log'`, `'pow'`, `'loess'`), `order`, `base`, `span`, `confidence` (`false` omits the band), `styles` |
106
- | `movingAverage` | A smoothed line | `k` (required), `reduce`, `styles` |
107
- | `bollinger` | Moving average and a band of `k` standard deviations | `n`, `k`, `styles` |
108
- | `density` | A 1D density curve over `x` | `kernel`, `bandwidth`, `styles` |
109
- | `density2d` | 2D density contour bands | `bandwidth`, `thresholds`, `styles` |
110
- | `box` | A box plot per category | the options of the [`box` marker](markers.md) |
103
+ | `type` | Draws | Options |
104
+ | --------------- | ------------------------------------------------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
105
+ | `regression` | A fitted curve with a confidence band | `regressionType` (`'linear'`, `'quad'`, `'poly'`, `'exp'`, `'log'`, `'pow'`, `'loess'`), `order`, `base`, `span`, `confidence` (`false` omits the band), `styles` |
106
+ | `movingAverage` | A smoothed line | `k` (required), `reduce`, `styles` |
107
+ | `bollinger` | Moving average and a band of `k` standard deviations | `n`, `k`, `styles` |
108
+ | `density` | A 1D density curve over `x` | `kernel`, `bandwidth`, `styles` |
109
+ | `density2d` | 2D density contour bands | `bandwidth`, `thresholds`, `styles` |
110
+ | `box` | A box plot per category | the options of the [`box` marker](markers.md) |
111
+ | `deviation` | A rule at an estimator and a band around it, along the plot's value axis | `estimator` (`'mean'`, `'median'`, `'midrange'`), `spread` (`'stdev'`, `'mad'`), `k` (band half-width in spreads, default 1), `rule` and `band` (styles, or `false` to omit), each with a `label` (`true`, or `{ text, styles }` with a `FontStyle`; the band's also `edge` (`'lower'`, `'upper'`) and `position` (`'inside'`, `'outside'`)) |
111
112
 
112
113
  Which series a statistic runs over:
113
114
 
@@ -1,6 +1,6 @@
1
1
  <script lang="ts">
2
2
  import { BarPlot } from '@fundar/data-chart-telling';
3
- import { REGION_VALUES, MONTHS } from './data';
3
+ import { REGION_VALUES, MONTHS } from './datasets';
4
4
  </script>
5
5
 
6
6
  <!-- Categories on x, values on y. Swap `x` and `y` for horizontal bars. -->
@@ -1,6 +1,6 @@
1
1
  <script lang="ts">
2
2
  import { BoxPlot } from '@fundar/data-chart-telling';
3
- import { HEIGHTS } from './data';
3
+ import { HEIGHTS } from './datasets';
4
4
  </script>
5
5
 
6
6
  <!-- One box per group: quartiles, median, whiskers and outliers of each height distribution. -->
@@ -0,0 +1,17 @@
1
+ <script lang="ts">
2
+ import { BulletPlot } from '@fundar/data-chart-telling';
3
+ import { PROVINCE_LIFE } from './datasets';
4
+ </script>
5
+
6
+ <!-- Female life expectancy at birth by province: the bar, against a target of 80 years, over bands for under 76, 76 to 80 and over 80. -->
7
+ <BulletPlot
8
+ width={720}
9
+ height={400}
10
+ data={PROVINCE_LIFE}
11
+ x="female"
12
+ y="province"
13
+ target={80}
14
+ ranges={[76, 80, 85]}
15
+ scales={{ x: { domain: [70, 85] } }}
16
+ styles={{ values: { show: true } }}
17
+ />
@@ -1,6 +1,6 @@
1
1
  <script lang="ts">
2
2
  import { LinePlot } from '@fundar/data-chart-telling';
3
- import { PRICES } from './data';
3
+ import { PRICES } from './datasets';
4
4
  </script>
5
5
 
6
6
  <!-- A plot carries its own chrome: title, subtitle, legend and caption. -->
@@ -1,6 +1,6 @@
1
1
  <script lang="ts">
2
2
  import { LinePlot } from '@fundar/data-chart-telling';
3
- import { PRICES } from './data';
3
+ import { PRICES } from './datasets';
4
4
  </script>
5
5
 
6
6
  <!-- `order` places the chrome blocks; `divider` draws a rule between them. -->
@@ -0,0 +1,15 @@
1
+ <script lang="ts">
2
+ import { ClevelandPlot } from '@fundar/data-chart-telling';
3
+ import { AGE_SHARES } from './datasets';
4
+ </script>
5
+
6
+ <!-- One dot per census year in each age group, joined from the lowest share to the highest. The years follow one another, so they take a sequential blues ramp. -->
7
+ <ClevelandPlot
8
+ width={720}
9
+ height={400}
10
+ data={AGE_SHARES}
11
+ x="share"
12
+ y="ageGroup"
13
+ grouping="year"
14
+ scales={{ color: { scheme: 'blues', schemeRange: [0.3, 1] } }}
15
+ />
@@ -1,6 +1,6 @@
1
1
  <script lang="ts">
2
2
  import { PlotComposer, LinePlot, BarPlot, ScatterPlot } from '@fundar/data-chart-telling';
3
- import { REGION_VALUES, PROVINCE_VALUES, COUNTRIES } from './data';
3
+ import { REGION_VALUES, PROVINCE_VALUES, COUNTRIES_AT_2007 } from './datasets';
4
4
  </script>
5
5
 
6
6
  <!-- Several plots in one figure, placed on named areas of a grid. -->
@@ -19,5 +19,5 @@
19
19
  x="province"
20
20
  y="value"
21
21
  />
22
- <ScatterPlot area="c" data={COUNTRIES} x="gdp" y="life" />
22
+ <ScatterPlot area="c" data={COUNTRIES_AT_2007} x="gdp" y="life" />
23
23
  </PlotComposer>
@@ -1,7 +1,7 @@
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 { REGION_VALUES, type RegionRow } from './data';
4
+ import { REGION_VALUES, type RegionRow } from './datasets';
5
5
 
6
6
  const { palette } = getConfiguration();
7
7
  const regions = [...new Set(REGION_VALUES.map((row) => row.region))];
@@ -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,6 +1,6 @@
1
1
  <script lang="ts">
2
2
  import { LinePlot } from '@fundar/data-chart-telling';
3
- import { REGION_VALUES } 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. -->
@@ -1,6 +1,6 @@
1
1
  <script lang="ts">
2
2
  import { LinePlot } from '@fundar/data-chart-telling';
3
- import { REGION_VALUES } from './data';
3
+ import { REGION_VALUES } from './datasets';
4
4
  </script>
5
5
 
6
6
  <!-- A carousel shows `visible` panels at a time, with navigation below. -->
@@ -1,6 +1,6 @@
1
1
  <script lang="ts">
2
2
  import { LinePlot } from '@fundar/data-chart-telling';
3
- import { REGION_VALUES } from './data';
3
+ import { REGION_VALUES } from './datasets';
4
4
 
5
5
  // Each region's value split into two sectors.
6
6
  const SECTORS = [
@@ -1,6 +1,6 @@
1
1
  <script lang="ts">
2
2
  import { LinePlot } from '@fundar/data-chart-telling';
3
- import { REGION_VALUES } from './data';
3
+ import { REGION_VALUES } from './datasets';
4
4
  </script>
5
5
 
6
6
  <!-- The smallest useful plot: rows, the fields to map and a pixel size. -->
@@ -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
+ />
@@ -1,13 +1,13 @@
1
1
  <script lang="ts">
2
2
  import { LinePlot } from '@fundar/data-chart-telling';
3
- import { LIFE_GAPS } from './data';
3
+ import { FEMALE_LIFE_GAPS } from './datasets';
4
4
  </script>
5
5
 
6
6
  <!-- Missing values bridged: dashed in the middle, faded at the start, extended to the 2025 projection at the end. -->
7
7
  <LinePlot
8
8
  width={720}
9
9
  height={400}
10
- series={[{ name: 'female', x: 'year', y: 'value', data: LIFE_GAPS }]}
10
+ series={[{ name: 'female', x: 'year', y: 'value', data: FEMALE_LIFE_GAPS }]}
11
11
  scales={{ x: { edgeTicks: true }, y: { domain: [55, 85] } }}
12
12
  styles={{
13
13
  gaps: {
@@ -1,6 +1,6 @@
1
1
  <script lang="ts">
2
2
  import { BarPlot } from '@fundar/data-chart-telling';
3
- import { PROVINCE_VALUES } from './data';
3
+ import { PROVINCE_VALUES } from './datasets';
4
4
  </script>
5
5
 
6
6
  <!-- Vertical bars, grouped by `color`. -->
@@ -1,7 +1,7 @@
1
1
  <script lang="ts">
2
2
  import { HeatmapPlot } from '@fundar/data-chart-telling';
3
- import { HOUSEHOLDS } from './data';
3
+ import { PENGUIN_COUNTS } from './datasets';
4
4
  </script>
5
5
 
6
- <!-- One cell per number of rooms and of people, colored by the share of households. -->
7
- <HeatmapPlot width={560} height={360} data={HOUSEHOLDS} x="rooms" y="people" color="share" />
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" />
@@ -1,24 +1,24 @@
1
1
  <script lang="ts">
2
2
  import { HeatmapPlot } from '@fundar/data-chart-telling';
3
- import { HOUSEHOLDS } from './data';
3
+ import { PENGUIN_COUNTS } from './datasets';
4
4
  </script>
5
5
 
6
- <!-- Segments on a heatmap: an outlined column and a filled block of overcrowded households. -->
6
+ <!-- Segments on a heatmap: an outlined column and a filled block of cells. -->
7
7
  <HeatmapPlot
8
8
  width={560}
9
9
  height={360}
10
- data={HOUSEHOLDS}
11
- x="rooms"
12
- y="people"
13
- color="share"
10
+ data={PENGUIN_COUNTS}
11
+ x="island"
12
+ y="species"
13
+ color="count"
14
14
  segments={{
15
15
  default: [
16
16
  {
17
- areas: [{ x: { from: '1', to: '1' } }],
17
+ areas: [{ x: { from: 'Biscoe', to: 'Biscoe' } }],
18
18
  styles: { stroke: '#f59e0b', strokeWidth: 2 }
19
19
  },
20
20
  {
21
- areas: [{ x: { from: '1', to: '2' }, y: { from: '4', to: '5+' } }],
21
+ areas: [{ x: { from: 'Dream', to: 'Torgersen' }, y: { from: 'Chinstrap', to: 'Gentoo' } }],
22
22
  styles: { fill: '#ef4444', fillOpacity: 0.8 }
23
23
  }
24
24
  ]
@@ -1,6 +1,6 @@
1
1
  <script lang="ts">
2
2
  import { HistogramPlot } from '@fundar/data-chart-telling';
3
- import { HEIGHTS } from './data';
3
+ import { HEIGHTS } from './datasets';
4
4
  </script>
5
5
 
6
6
  <!-- Two overlapping distributions, one per `grouping` value. -->
@@ -1,6 +1,6 @@
1
1
  <script lang="ts">
2
2
  import { BarPlot } from '@fundar/data-chart-telling';
3
- import { PROVINCE_VALUES } from './data';
3
+ import { PROVINCE_VALUES } from './datasets';
4
4
  </script>
5
5
 
6
6
  <!-- Horizontal bars: the categories go on `y`, the values on `x`. -->