@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
@@ -1,77 +0,0 @@
1
- import { isBrowser } from '../../stores/device';
2
- /** Resolves a `var(--x)` reference to its computed value; any other CSS color string passes through unchanged. */
3
- export function resolveCssColor(color) {
4
- if (!isBrowser)
5
- return color;
6
- if (!color.startsWith('var('))
7
- return color;
8
- const varName = color.slice(4, -1).trim();
9
- const value = getComputedStyle(document.documentElement).getPropertyValue(varName).trim();
10
- return value || color;
11
- }
12
- function clamp01(v) {
13
- return Math.max(0, Math.min(1, v));
14
- }
15
- function linearToSrgb8(c) {
16
- const s = c <= 0.0031308 ? 12.92 * c : 1.055 * Math.pow(c, 1 / 2.4) - 0.055;
17
- return clamp01(s) * 255;
18
- }
19
- /**
20
- * Parses `oklch(L C H)` directly instead of round-tripping through the
21
- * browser's computed style: Chromium/Firefox serialize computed oklch()
22
- * values back as oklch() (not rgb()), so the generic browser-fallback below
23
- * sees an unchanged string on the second pass and its infinite-loop guard
24
- * mistakes that for a parse failure.
25
- */
26
- function parseOklch(color) {
27
- const match = /^oklch\(\s*([\d.]+)(%)?\s+([\d.]+)\s+([\d.]+)/i.exec(color.trim());
28
- if (!match)
29
- return null;
30
- const L = match[2] ? Number(match[1]) / 100 : Number(match[1]);
31
- const C = Number(match[3]);
32
- const H = (Number(match[4]) * Math.PI) / 180;
33
- const a = C * Math.cos(H);
34
- const b = C * Math.sin(H);
35
- const l_ = L + 0.3963377774 * a + 0.2158037573 * b;
36
- const m_ = L - 0.1055613458 * a - 0.0638541728 * b;
37
- const s_ = L - 0.0894841775 * a - 1.291485548 * b;
38
- const l = l_ ** 3;
39
- const m = m_ ** 3;
40
- const s = s_ ** 3;
41
- const r = 4.0767416621 * l - 3.3077115913 * m + 0.2309699292 * s;
42
- const g = -1.2684380046 * l + 2.6097574011 * m - 0.3413193965 * s;
43
- const bl = -0.0041960863 * l - 0.7034186147 * m + 1.707614701 * s;
44
- return [linearToSrgb8(r), linearToSrgb8(g), linearToSrgb8(bl)];
45
- }
46
- /** Parses any CSS color syntax (hex, rgb(), oklch(), named colors, hsl(), ...) into an `[r, g, b]` (0-255) triple, or `null` if it can't be resolved. */
47
- export function parseRgb(color) {
48
- const hex = /^#([0-9a-f]{3}|[0-9a-f]{6})$/i.exec(color.trim());
49
- if (hex) {
50
- const digits = hex[1].length === 3
51
- ? hex[1]
52
- .split('')
53
- .map((c) => c + c)
54
- .join('')
55
- : hex[1];
56
- const num = parseInt(digits, 16);
57
- return [(num >> 16) & 255, (num >> 8) & 255, num & 255];
58
- }
59
- const rgb = /^rgba?\(\s*([\d.]+)\s*,\s*([\d.]+)\s*,\s*([\d.]+)/i.exec(color);
60
- if (rgb)
61
- return [Number(rgb[1]), Number(rgb[2]), Number(rgb[3])];
62
- const oklch = parseOklch(color);
63
- if (oklch)
64
- return oklch;
65
- // Named colors, hsl(), and any other CSS color syntax: resolved to
66
- // `rgb(...)` via the browser's computed style, then reparsed.
67
- if (!isBrowser)
68
- return null;
69
- const el = document.createElement('div');
70
- el.style.color = color;
71
- document.body.appendChild(el);
72
- const computed = getComputedStyle(el).color;
73
- document.body.removeChild(el);
74
- if (!computed || computed === color)
75
- return null;
76
- return parseRgb(computed);
77
- }
@@ -1,17 +0,0 @@
1
- import type { ColorScaleConfig } from '../../types/layout/scales';
2
- /** Linearly maps `v` from `[min, max]` onto `[0, 1]`, clamped at both ends. */
3
- export declare function normalize(v: number, min: number, max: number): number;
4
- /** Cycles through a discrete palette by series index - the default colour for an unstyled series. */
5
- export declare function paletteColor(index: number, palette: string[]): string;
6
- /** A simple 2-color continuous ramp over `[min, max]`. */
7
- export declare function makeColorScale(min: number, max: number, colorMin: string, colorMax: string): (v: number) => string;
8
- /**
9
- * Resolves a {@link ColorScaleConfig} into a `value => color` function - the
10
- * one shared implementation for every level the config can appear at
11
- * (`scales.color`, a `segments` entry, a marker's own `scales`).
12
- * `computedDomain` is the fallback when `config.domain` is unset;
13
- * `defaultScheme` is used when `config.scheme` is unset - the theme's own
14
- * 2-color continuous ramp, or a discrete palette for a categorical domain
15
- * (e.g. per-series identity colors).
16
- */
17
- export declare function resolveColorScale(config: ColorScaleConfig | undefined, computedDomain: [number, number] | string[] | undefined, defaultScheme: NonNullable<ColorScaleConfig['scheme']>): (value: unknown) => string;
@@ -1,110 +0,0 @@
1
- import { interpolateRgb, piecewise } from 'd3-interpolate';
2
- import * as d3Chromatic from 'd3-scale-chromatic';
3
- import { resolveCssColor } from './cssColor';
4
- /** Linearly maps `v` from `[min, max]` onto `[0, 1]`, clamped at both ends. */
5
- export function normalize(v, min, max) {
6
- if (v == null)
7
- return 0;
8
- const denom = max - min || 1;
9
- return Math.max(0, Math.min(1, (v - min) / denom));
10
- }
11
- /** Cycles through a discrete palette by series index - the default colour for an unstyled series. */
12
- export function paletteColor(index, palette) {
13
- if (palette.length === 0)
14
- return 'currentColor';
15
- return palette[index % palette.length];
16
- }
17
- /** A simple 2-color continuous ramp over `[min, max]`. */
18
- export function makeColorScale(min, max, colorMin, colorMax) {
19
- const resolvedMin = resolveCssColor(colorMin);
20
- const resolvedMax = resolveCssColor(colorMax);
21
- let interpolator;
22
- try {
23
- interpolator = interpolateRgb(resolvedMin, resolvedMax);
24
- }
25
- catch {
26
- return () => '#ccc';
27
- }
28
- return (v) => {
29
- if (v == null)
30
- return '#ccc';
31
- const t = normalize(v, min, max);
32
- return interpolator(t);
33
- };
34
- }
35
- /** `{turbo: interpolateTurbo, blues: interpolateBlues, ...}`, built from every `interpolate*` d3-scale-chromatic export. */
36
- const NAMED_SCHEMES = Object.fromEntries(Object.entries(d3Chromatic)
37
- .filter((entry) => entry[0].startsWith('interpolate'))
38
- .map(([name, fn]) => [name.slice('interpolate'.length).toLowerCase(), fn]));
39
- /**
40
- * Resolves a {@link ColorScaleConfig} into a `value => color` function - the
41
- * one shared implementation for every level the config can appear at
42
- * (`scales.color`, a `segments` entry, a marker's own `scales`).
43
- * `computedDomain` is the fallback when `config.domain` is unset;
44
- * `defaultScheme` is used when `config.scheme` is unset - the theme's own
45
- * 2-color continuous ramp, or a discrete palette for a categorical domain
46
- * (e.g. per-series identity colors).
47
- */
48
- export function resolveColorScale(config, computedDomain, defaultScheme) {
49
- const domain = config?.domain ?? computedDomain;
50
- const scheme = config?.scheme ?? defaultScheme;
51
- const unknown = config?.unknown ?? '#ccc';
52
- if (!domain || domain.length === 0)
53
- return () => unknown;
54
- // A category → color map always resolves by direct lookup, regardless of domain shape.
55
- if (typeof scheme === 'object' && !Array.isArray(scheme)) {
56
- return (v) => (v == null ? unknown : (scheme[String(v)] ?? unknown));
57
- }
58
- // A named d3-scale-chromatic ramp (e.g. 'turbo') resolves straight to its own interpolator.
59
- const namedInterpolator = typeof scheme === 'string' ? NAMED_SCHEMES[scheme.toLowerCase()] : undefined;
60
- if (typeof scheme === 'string' && !namedInterpolator)
61
- return () => unknown;
62
- const resolvedScheme = namedInterpolator ? undefined : scheme.map(resolveCssColor);
63
- if (resolvedScheme && resolvedScheme.length === 0)
64
- return () => unknown;
65
- if (resolvedScheme && resolvedScheme.length === 1) {
66
- const only = resolvedScheme[0];
67
- return () => only;
68
- }
69
- // Categorical domain (explicit category list): sample the ramp evenly, one stop per category.
70
- if (typeof domain[0] === 'string') {
71
- const categories = domain;
72
- const swatches = resolvedScheme ??
73
- categories.map((_, i) => namedInterpolator(categories.length > 1 ? i / (categories.length - 1) : 0));
74
- return (v) => {
75
- if (v == null)
76
- return unknown;
77
- const idx = categories.indexOf(String(v));
78
- return idx < 0 ? unknown : swatches[idx % swatches.length];
79
- };
80
- }
81
- // Continuous domain: interpolate smoothly across every scheme stop (or the named ramp directly).
82
- const [lo, hi] = domain;
83
- let interpolator;
84
- if (namedInterpolator) {
85
- interpolator = namedInterpolator;
86
- }
87
- else {
88
- try {
89
- interpolator = piecewise(interpolateRgb, resolvedScheme);
90
- }
91
- catch {
92
- return () => unknown;
93
- }
94
- }
95
- const pivot = config?.pivot;
96
- const stopCount = resolvedScheme?.length ?? Infinity;
97
- return (v) => {
98
- if (v == null)
99
- return unknown;
100
- const n = Number(v);
101
- if (Number.isNaN(n))
102
- return unknown;
103
- const t = pivot != null && stopCount >= 3
104
- ? n <= pivot
105
- ? 0.5 * normalize(n, lo, pivot)
106
- : 0.5 + 0.5 * normalize(n, pivot, hi)
107
- : normalize(n, lo, hi);
108
- return interpolator(t);
109
- };
110
- }
@@ -1,9 +0,0 @@
1
- import type { OpacityScaleConfig } from '../types/layout/scales';
2
- /**
3
- * Resolves an {@link OpacityScaleConfig} into a `value => opacity` function -
4
- * mirrors `resolveColorScale`'s shape, but the output is always a number in
5
- * roughly `[0,1]` instead of a CSS color string. Callers must apply the
6
- * result as a literal constant per mark instance (never a per-row function
7
- * handed straight to svelteplot) - see the type's own doc comment for why.
8
- */
9
- export declare function resolveOpacityScale(config: OpacityScaleConfig | undefined, computedDomain: [number, number] | string[] | undefined, defaultRange: [number, number]): (value: unknown) => number;
@@ -1,38 +0,0 @@
1
- import { normalize } from './color';
2
- /**
3
- * Resolves an {@link OpacityScaleConfig} into a `value => opacity` function -
4
- * mirrors `resolveColorScale`'s shape, but the output is always a number in
5
- * roughly `[0,1]` instead of a CSS color string. Callers must apply the
6
- * result as a literal constant per mark instance (never a per-row function
7
- * handed straight to svelteplot) - see the type's own doc comment for why.
8
- */
9
- export function resolveOpacityScale(config, computedDomain, defaultRange) {
10
- const domain = config?.domain ?? computedDomain;
11
- const range = config?.range ?? defaultRange;
12
- const unknown = config?.unknown ?? 1;
13
- if (!domain || domain.length === 0)
14
- return () => unknown;
15
- if (typeof range === 'object' && !Array.isArray(range)) {
16
- return (v) => (v == null ? unknown : (range[String(v)] ?? unknown));
17
- }
18
- if (typeof domain[0] === 'string') {
19
- const categories = domain;
20
- const [lo, hi] = range;
21
- return (v) => {
22
- if (v == null)
23
- return unknown;
24
- const idx = categories.indexOf(String(v));
25
- if (idx < 0)
26
- return unknown;
27
- return categories.length > 1 ? lo + ((hi - lo) * idx) / (categories.length - 1) : lo;
28
- };
29
- }
30
- const [dLo, dHi] = domain;
31
- const [rLo, rHi] = range;
32
- return (v) => {
33
- if (v == null)
34
- return unknown;
35
- const t = normalize(Number(v), dLo, dHi);
36
- return rLo + (rHi - rLo) * t;
37
- };
38
- }
package/examples/data.ts DELETED
@@ -1,324 +0,0 @@
1
- // Small real datasets shared by the examples and the documentation figures.
2
- // Each section names its source; values are rounded to one decimal.
3
-
4
- // ── Monthly inflation by region ─────────────────────────────────────────────
5
- // INDEC, consumer price index (IPC, base December 2016), via the datos.gob.ar
6
- // series API. Change from the previous month, in percent, January 2023 to
7
- // August 2026.
8
-
9
- export type RegionRow = { date: Date; region: string; value: number };
10
-
11
- export const MONTHS = Array.from(
12
- { length: 44 },
13
- (_, monthIndex) => new Date(Date.UTC(2023, monthIndex, 1))
14
- );
15
-
16
- const INFLATION_BY_REGION = [
17
- {
18
- region: 'GBA',
19
- inflation: [
20
- 6, 6.7, 7.8, 8.6, 8, 5.8, 6.2, 12.3, 12.2, 8.6, 12.9, 25.1, 19.6, 15, 11.5, 9.2, 4.3, 4.4, 4,
21
- 4.1, 3.7, 2.8, 2.6, 2.9, 2, 2.2, 3.9, 2.8, 1.5, 2, 1.9, 1.9, 2.1, 2.4, 2.5, 2.8, 2.8, 2.6,
22
- 3.4, 2.8, 2.3, 1.9, 2.3, 1.6
23
- ]
24
- },
25
- {
26
- region: 'Cuyo',
27
- inflation: [
28
- 6.4, 6.7, 7.9, 7.2, 7.5, 5.3, 6.3, 12.3, 13.7, 7.4, 12.8, 25.8, 22.3, 13.5, 9.3, 8.1, 4.3,
29
- 5.1, 4.6, 4.5, 3, 2.2, 2.1, 2.3, 2, 2.7, 3.5, 2.9, 1.6, 1, 1.9, 2.1, 2.2, 2.3, 2.8, 3, 3, 3.4,
30
- 3.2, 2.1, 2.1, 1.6, 1.9, 1.7
31
- ]
32
- },
33
- {
34
- region: 'Northwest',
35
- inflation: [
36
- 6.3, 7.3, 7.3, 7.7, 8, 6.6, 6.1, 13.7, 13.2, 7.7, 11.8, 25.2, 21.7, 11.7, 8.8, 9.1, 4.2, 4.8,
37
- 3.6, 5, 3.4, 2.6, 1.9, 2.7, 2.6, 2.6, 4.3, 2.9, 1.2, 1.2, 1.7, 2, 2.2, 2.1, 2.3, 2.6, 2.8,
38
- 3.5, 4, 2.5, 2.1, 1.7, 2, 1.8
39
- ]
40
- }
41
- ];
42
-
43
- export const REGIONS = INFLATION_BY_REGION.map(({ region }) => region);
44
-
45
- export const REGION_VALUES: RegionRow[] = INFLATION_BY_REGION.flatMap(({ region, inflation }) =>
46
- MONTHS.map((date, monthIndex) => ({ date, region, value: inflation[monthIndex] }))
47
- );
48
-
49
- // ── International commodity prices ──────────────────────────────────────────
50
- // IMF, Primary Commodity Prices (PCPS), via DBnomics. Monthly, 2021-2024, as
51
- // an index with January 2021 = 100 so every commodity shares one axis.
52
-
53
- export type PriceRow = { date: Date; commodity: string; index: number };
54
-
55
- const PRICE_INDEX_BY_COMMODITY = [
56
- {
57
- commodity: 'Brent oil',
58
- index: [
59
- 100, 113, 119, 119, 124, 133, 135, 128, 135, 152, 146, 135, 155, 171, 204, 192, 203, 213, 191,
60
- 177, 164, 170, 165, 148, 152, 151, 144, 151, 137, 136, 145, 154, 168, 161, 149, 140, 143, 148,
61
- 154, 161, 150, 150, 152, 143, 132, 136, 133, 133
62
- ]
63
- },
64
- {
65
- commodity: 'Natural gas',
66
- index: [
67
- 100, 110, 99, 101, 112, 124, 144, 152, 192, 210, 193, 146, 160, 169, 188, 255, 308, 286, 268,
68
- 331, 296, 230, 245, 217, 131, 92, 91, 83, 87, 94, 100, 100, 102, 120, 115, 96, 103, 68, 66,
69
- 67, 91, 106, 84, 79, 91, 97, 113, 130
70
- ]
71
- },
72
- {
73
- commodity: 'Coal',
74
- index: [
75
- 100, 102, 105, 108, 115, 145, 168, 191, 207, 265, 195, 199, 255, 299, 388, 368, 460, 470, 477,
76
- 492, 514, 469, 405, 470, 445, 268, 215, 221, 197, 152, 155, 168, 185, 166, 145, 164, 155, 141,
77
- 151, 151, 163, 158, 156, 167, 163, 168, 165, 154
78
- ]
79
- },
80
- {
81
- commodity: 'Wheat',
82
- index: [
83
- 100, 101, 97, 101, 117, 100, 102, 116, 113, 124, 133, 136, 137, 146, 163, 171, 187, 167, 135,
84
- 136, 146, 149, 145, 136, 135, 140, 130, 131, 126, 119, 117, 101, 96, 91, 91, 97, 95, 92, 89,
85
- 88, 96, 86, 77, 74, 79, 83, 78, 78
86
- ]
87
- }
88
- ];
89
-
90
- export const PRICES: PriceRow[] = PRICE_INDEX_BY_COMMODITY.flatMap(({ commodity, index }) =>
91
- index.map((value, monthIndex) => ({
92
- date: new Date(Date.UTC(2021, monthIndex, 1)),
93
- commodity,
94
- index: value
95
- }))
96
- );
97
-
98
- // ── Life expectancy at birth in Argentina, by sex ───────────────────────────
99
- // INDEC, life tables. Each year stands for the period around it (1947 is
100
- // 1946-1948, 2001 is 2000-2001, ...).
101
-
102
- export type LifeRow = { year: number; sex: string; value: number | null };
103
-
104
- const LIFE_EXPECTANCY = [
105
- { year: 1947, female: 61.4, male: 56.9 },
106
- { year: 1965, female: 69.5, male: 63.3 },
107
- { year: 1972, female: 70.8, male: 64.1 },
108
- { year: 1980, female: 72.7, male: 65.5 },
109
- { year: 1991, female: 75.6, male: 68.4 },
110
- { year: 2001, female: 77.5, male: 70 },
111
- { year: 2009, female: 78.8, male: 72.1 },
112
- { year: 2019, female: 80.2, male: 74.4 }
113
- ];
114
-
115
- export const LIFE: LifeRow[] = LIFE_EXPECTANCY.flatMap(({ year, female, male }) => [
116
- { year, sex: 'female', value: female },
117
- { year, sex: 'male', value: male }
118
- ]);
119
-
120
- /** The female series with holes: the first year, one in the middle and the last. */
121
- export const LIFE_GAPS: LifeRow[] = LIFE.filter((row) => row.sex === 'female').map((row) =>
122
- [1947, 1980, 2019].includes(row.year) ? { ...row, value: null } : row
123
- );
124
-
125
- // ── Life expectancy at birth by province, 2019 ──────────────────────────────
126
- // Same source as above.
127
-
128
- export type ProvinceRow = { province: string; sex: string; value: number };
129
-
130
- const LIFE_EXPECTANCY_BY_PROVINCE = [
131
- { province: 'Buenos Aires', female: 79.9, male: 74.1 },
132
- { province: 'Córdoba', female: 80.8, male: 75.2 },
133
- { province: 'Mendoza', female: 81, male: 75.3 },
134
- { province: 'Salta', female: 79.5, male: 74 },
135
- { province: 'Chubut', female: 82.1, male: 74.9 }
136
- ];
137
-
138
- export const PROVINCES = LIFE_EXPECTANCY_BY_PROVINCE.map(({ province }) => province);
139
-
140
- export const PROVINCE_VALUES: ProvinceRow[] = LIFE_EXPECTANCY_BY_PROVINCE.flatMap(
141
- ({ province, female, male }) => [
142
- { province, sex: 'female', value: female },
143
- { province, sex: 'male', value: male }
144
- ]
145
- );
146
-
147
- // ── Population of Buenos Aires City by age and sex ──────────────────────────
148
- // National censuses 1991-2022. Share of the city's population, in percent.
149
-
150
- /** The 2022 census: one row per age group and sex, for a pyramid. */
151
- export type AgeRow = { ageGroup: string; sex: string; share: number };
152
-
153
- const POPULATION_BY_AGE = [
154
- { ageGroup: '0-4', female: 2.3, male: 2.4 },
155
- { ageGroup: '5-9', female: 3.1, male: 3.2 },
156
- { ageGroup: '10-14', female: 3.1, male: 3.2 },
157
- { ageGroup: '15-19', female: 3, male: 3.1 },
158
- { ageGroup: '20-24', female: 3.5, male: 3.3 },
159
- { ageGroup: '25-29', female: 4, male: 3.7 },
160
- { ageGroup: '30-34', female: 3.8, male: 3.6 },
161
- { ageGroup: '35-39', female: 3.7, male: 3.5 },
162
- { ageGroup: '40-44', female: 3.4, male: 3.1 },
163
- { ageGroup: '45-49', female: 3.3, male: 2.8 },
164
- { ageGroup: '50-54', female: 3.1, male: 2.5 },
165
- { ageGroup: '55-59', female: 2.9, male: 2.4 },
166
- { ageGroup: '60-64', female: 2.8, male: 2.2 },
167
- { ageGroup: '65-69', female: 2.6, male: 2 },
168
- { ageGroup: '70-74', female: 2.6, male: 1.8 },
169
- { ageGroup: '75-79', female: 2.3, male: 1.4 },
170
- { ageGroup: '80-84', female: 1.8, male: 0.9 },
171
- { ageGroup: '85+', female: 2.5, male: 0.9 }
172
- ];
173
-
174
- export const AGE_GROUPS = POPULATION_BY_AGE.map(({ ageGroup }) => ageGroup);
175
-
176
- export const AGES: AgeRow[] = POPULATION_BY_AGE.flatMap(({ ageGroup, female, male }) => [
177
- { ageGroup, sex: 'Female', share: female },
178
- { ageGroup, sex: 'Male', share: male }
179
- ]);
180
-
181
- /** The same census data over the years, grouped by sex: the share of each broad age group. */
182
- export type AgeShareRow = { year: number; ageGroup: string; share: number };
183
-
184
- export const AGE_SHARES: AgeShareRow[] = [
185
- { year: 1991, ageGroup: '0-14', share: 19 },
186
- { year: 1991, ageGroup: '15-29', share: 21.7 },
187
- { year: 1991, ageGroup: '30-44', share: 20.1 },
188
- { year: 1991, ageGroup: '45-64', share: 22.8 },
189
- { year: 1991, ageGroup: '65+', share: 16.5 },
190
- { year: 2001, ageGroup: '0-14', share: 16.9 },
191
- { year: 2001, ageGroup: '15-29', share: 23.2 },
192
- { year: 2001, ageGroup: '30-44', share: 19.9 },
193
- { year: 2001, ageGroup: '45-64', share: 22.3 },
194
- { year: 2001, ageGroup: '65+', share: 17.2 },
195
- { year: 2010, ageGroup: '0-14', share: 16.4 },
196
- { year: 2010, ageGroup: '15-29', share: 22.4 },
197
- { year: 2010, ageGroup: '30-44', share: 22.2 },
198
- { year: 2010, ageGroup: '45-64', share: 22.9 },
199
- { year: 2010, ageGroup: '65+', share: 16.3 },
200
- { year: 2022, ageGroup: '0-14', share: 17.4 },
201
- { year: 2022, ageGroup: '15-29', share: 20.7 },
202
- { year: 2022, ageGroup: '30-44', share: 21.1 },
203
- { year: 2022, ageGroup: '45-64', share: 22 },
204
- { year: 2022, ageGroup: '65+', share: 18.9 }
205
- ];
206
-
207
- /** The same census data over the years, grouped by age: the share of each sex. */
208
- export type SexShareRow = { year: number; sex: string; share: number };
209
-
210
- export const SEX_SHARES: SexShareRow[] = [
211
- { year: 1991, sex: 'Female', share: 54.6 },
212
- { year: 1991, sex: 'Male', share: 45.5 },
213
- { year: 2001, sex: 'Female', share: 54.2 },
214
- { year: 2001, sex: 'Male', share: 45.3 },
215
- { year: 2010, sex: 'Female', share: 54.2 },
216
- { year: 2010, sex: 'Male', share: 46 },
217
- { year: 2022, sex: 'Female', share: 53.8 },
218
- { year: 2022, sex: 'Male', share: 46.2 }
219
- ];
220
-
221
- // ── Countries, 2007 ─────────────────────────────────────────────────────────
222
- // Gapminder, via plotly/datasets. GDP per capita in US dollars (PPP, 2005
223
- // prices), life expectancy in years, population in millions. `income` groups
224
- // the countries by GDP per capita.
225
-
226
- export type CountryRow = {
227
- country: string;
228
- gdp: number;
229
- life: number;
230
- population: number;
231
- continent: string;
232
- income: string;
233
- };
234
-
235
- const COUNTRY_INDICATORS = [
236
- { country: 'Nigeria', continent: 'Africa', gdp: 2014, life: 46.9, population: 135 },
237
- { country: 'Egypt', continent: 'Africa', gdp: 5581, life: 71.3, population: 80.3 },
238
- { country: 'South Africa', continent: 'Africa', gdp: 9270, life: 49.3, population: 44 },
239
- { country: 'Ethiopia', continent: 'Africa', gdp: 691, life: 52.9, population: 76.5 },
240
- { country: 'Kenya', continent: 'Africa', gdp: 1463, life: 54.1, population: 35.6 },
241
- { country: 'Morocco', continent: 'Africa', gdp: 3820, life: 71.2, population: 33.8 },
242
- { country: 'Ghana', continent: 'Africa', gdp: 1328, life: 60, population: 22.9 },
243
- { country: 'Argentina', continent: 'Americas', gdp: 12779, life: 75.3, population: 40.3 },
244
- { country: 'Brazil', continent: 'Americas', gdp: 9066, life: 72.4, population: 190 },
245
- { country: 'Chile', continent: 'Americas', gdp: 13172, life: 78.6, population: 16.3 },
246
- { country: 'Mexico', continent: 'Americas', gdp: 11978, life: 76.2, population: 108.7 },
247
- { country: 'United States', continent: 'Americas', gdp: 42952, life: 78.2, population: 301.1 },
248
- { country: 'Canada', continent: 'Americas', gdp: 36319, life: 80.7, population: 33.4 },
249
- { country: 'Bolivia', continent: 'Americas', gdp: 3822, life: 65.6, population: 9.1 },
250
- { country: 'China', continent: 'Asia', gdp: 4959, life: 73, population: 1318.7 },
251
- { country: 'India', continent: 'Asia', gdp: 2452, life: 64.7, population: 1110.4 },
252
- { country: 'Japan', continent: 'Asia', gdp: 31656, life: 82.6, population: 127.5 },
253
- { country: 'Indonesia', continent: 'Asia', gdp: 3541, life: 70.7, population: 223.5 },
254
- { country: 'Vietnam', continent: 'Asia', gdp: 2442, life: 74.2, population: 85.3 },
255
- { country: 'Pakistan', continent: 'Asia', gdp: 2606, life: 65.5, population: 169.3 },
256
- { country: 'South Korea', continent: 'Asia', gdp: 23348, life: 78.6, population: 49 },
257
- { country: 'Germany', continent: 'Europe', gdp: 32170, life: 79.4, population: 82.4 },
258
- { country: 'France', continent: 'Europe', gdp: 30470, life: 80.7, population: 61.1 },
259
- { country: 'Spain', continent: 'Europe', gdp: 28821, life: 80.9, population: 40.4 },
260
- { country: 'Italy', continent: 'Europe', gdp: 28570, life: 80.5, population: 58.1 },
261
- { country: 'United Kingdom', continent: 'Europe', gdp: 33203, life: 79.4, population: 60.8 },
262
- { country: 'Poland', continent: 'Europe', gdp: 15390, life: 75.6, population: 38.5 },
263
- { country: 'Norway', continent: 'Europe', gdp: 49357, life: 80.2, population: 4.6 }
264
- ];
265
-
266
- export const COUNTRIES: CountryRow[] = COUNTRY_INDICATORS.map((country) => ({
267
- ...country,
268
- income: country.gdp >= 20000 ? 'High' : country.gdp >= 5000 ? 'Middle' : 'Low'
269
- }));
270
-
271
- // ── Households of Buenos Aires City by rooms and people, 2022 ───────────────
272
- // 2022 national census. Share of all households, in percent.
273
-
274
- export type HouseholdRow = { rooms: string; people: string; share: number };
275
-
276
- export const ROOMS = ['1', '2', '3', '4', '5+'];
277
-
278
- const HOUSEHOLD_SHARES = [
279
- { people: '1', byRooms: [8.8, 14.8, 9.6, 3.7, 2.1] },
280
- { people: '2', byRooms: [3, 8.4, 9.3, 4.5, 2.9] },
281
- { people: '3', byRooms: [1.2, 3.4, 5.9, 3.2, 2] },
282
- { people: '4', byRooms: [0.6, 1.8, 3.8, 3, 2] },
283
- { people: '5+', byRooms: [0.3, 1, 1.7, 1.5, 1.6] }
284
- ];
285
-
286
- export const HOUSEHOLDS: HouseholdRow[] = HOUSEHOLD_SHARES.flatMap(({ people, byRooms }) =>
287
- ROOMS.map((rooms, roomsIndex) => ({ rooms, people, share: byRooms[roomsIndex] }))
288
- );
289
-
290
- // ── Adult heights by sex ────────────────────────────────────────────────────
291
- // Nancy Howell's census of the !Kung San (Howell1, from the rethinking R
292
- // package), adults only. Heights in centimeters, sorted.
293
-
294
- export type HeightRow = { height: number; group: string };
295
-
296
- const FEMALE_HEIGHTS = [
297
- 137, 137, 138, 139, 140, 140, 140, 141, 142, 142, 142, 142, 142, 142, 143, 143, 143, 143, 143,
298
- 143, 143, 143, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 145, 145, 145, 145, 145, 145,
299
- 145, 145, 145, 145, 145, 145, 145, 145, 146, 146, 146, 146, 146, 146, 146, 146, 147, 147, 147,
300
- 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 148, 148, 148, 148, 148, 148, 148, 148,
301
- 148, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 150, 150,
302
- 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 151,
303
- 151, 151, 151, 151, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152,
304
- 152, 152, 152, 153, 153, 153, 153, 153, 153, 154, 154, 154, 154, 154, 154, 154, 154, 154, 154,
305
- 154, 154, 154, 154, 155, 155, 155, 155, 155, 155, 155, 156, 156, 156, 156, 156, 156, 156, 156,
306
- 156, 156, 156, 156, 157, 157, 157, 157, 157, 158, 159, 159, 160, 162, 163, 163
307
- ];
308
-
309
- const MALE_HEIGHTS = [
310
- 140, 142, 146, 147, 148, 149, 149, 149, 149, 151, 151, 152, 152, 152, 152, 152, 152, 152, 152,
311
- 153, 154, 154, 154, 155, 155, 155, 155, 155, 155, 155, 156, 156, 156, 156, 157, 157, 157, 157,
312
- 157, 157, 157, 157, 157, 157, 157, 157, 157, 158, 158, 158, 158, 158, 158, 158, 159, 159, 159,
313
- 159, 159, 159, 159, 159, 159, 159, 159, 159, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160,
314
- 160, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161,
315
- 161, 161, 161, 161, 161, 162, 162, 162, 162, 162, 162, 162, 163, 163, 163, 163, 163, 163, 163,
316
- 163, 163, 163, 163, 163, 163, 163, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 165,
317
- 165, 166, 166, 166, 166, 166, 166, 166, 166, 167, 167, 167, 167, 167, 167, 168, 168, 168, 169,
318
- 169, 169, 170, 170, 170, 170, 171, 171, 171, 171, 173, 173, 179
319
- ];
320
-
321
- export const HEIGHTS: HeightRow[] = [
322
- ...FEMALE_HEIGHTS.map((height) => ({ height, group: 'female' })),
323
- ...MALE_HEIGHTS.map((height) => ({ height, group: 'male' }))
324
- ];
File without changes
File without changes
File without changes