@fundar/data-chart-telling 1.0.0 → 1.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (560) hide show
  1. package/CHANGELOG.md +53 -0
  2. package/README.md +58 -19
  3. package/dist/configuration/config.svelte.d.ts +1 -1
  4. package/dist/configuration/config.svelte.js +172 -95
  5. package/dist/configuration/themes/index.d.ts +5 -1304
  6. package/dist/index.d.ts +24 -14
  7. package/dist/index.js +20 -10
  8. package/dist/layout/base/BasePlotLayout.svelte +129 -51
  9. package/dist/layout/base/BasePlotLayout.svelte.d.ts +1 -38
  10. package/dist/layout/coordinates/CoordinatesLayout.svelte +42 -40
  11. package/dist/layout/coordinates/CoordinatesLayout.svelte.d.ts +0 -2
  12. package/dist/layout/coordinates/ProjectionZoom.svelte +48 -0
  13. package/dist/layout/coordinates/ProjectionZoom.svelte.d.ts +10 -0
  14. package/dist/layout/coordinates/ZoomedProjection.d.ts +11 -0
  15. package/dist/layout/coordinates/ZoomedProjection.js +24 -0
  16. package/dist/layout/coordinates/camera.svelte.js +11 -8
  17. package/dist/layout/coordinates/projections/argentina.js +1 -1
  18. package/dist/layout/coordinates/projections/fit.d.ts +1 -1
  19. package/dist/layout/coordinates/projections/fit.js +1 -1
  20. package/dist/layout/coordinates/zoom.svelte.d.ts +4 -5
  21. package/dist/layout/coordinates/zoom.svelte.js +4 -5
  22. package/dist/layout/facet/FacetLayout.svelte +1 -1
  23. package/dist/layout/facet/config.js +1 -1
  24. package/dist/layout/figure/Figure.svelte +2 -0
  25. package/dist/layout/geometry/GeometryLayout.svelte +14 -9
  26. package/dist/layout/geometry/GeometryLayout.svelte.d.ts +0 -3
  27. package/dist/layout/geometry/MarkerOffset.svelte +28 -0
  28. package/dist/layout/geometry/MarkerOffset.svelte.d.ts +13 -0
  29. package/dist/layout/grid/GridCell.svelte +6 -8
  30. package/dist/layout/hover/HoverSettings.d.ts +20 -6
  31. package/dist/layout/hover/HoverSettings.js +29 -4
  32. package/dist/layout/legend/ContinuousSection.svelte +44 -9
  33. package/dist/layout/legend/DiscreteBadgeItem.svelte +2 -2
  34. package/dist/layout/legend/DiscreteSection.svelte +2 -2
  35. package/dist/layout/legend/DiscreteSymbolIcon.svelte +1 -1
  36. package/dist/layout/legend/LegendChannels.js +36 -12
  37. package/dist/layout/legend/LegendLayout.svelte +9 -1
  38. package/dist/layout/legend/LegendState.svelte.d.ts +9 -0
  39. package/dist/layout/legend/LegendState.svelte.js +24 -3
  40. package/dist/layout/legend/SizeSection.svelte +1 -1
  41. package/dist/layout/margins/PlotMargins.svelte.d.ts +2 -5
  42. package/dist/layout/margins/PlotMargins.svelte.js +4 -8
  43. package/dist/layout/plot/Plot.svelte +6 -3
  44. package/dist/layout/plot/PublicPlotContext.d.ts +5 -4
  45. package/dist/layout/plot/PublicPlotContext.js +7 -3
  46. package/dist/layout/plot/Slice.d.ts +5 -1
  47. package/dist/layout/plot/Slice.js +18 -6
  48. package/dist/layout/scales/EdgeTicks.d.ts +39 -0
  49. package/dist/layout/scales/EdgeTicks.js +82 -0
  50. package/dist/layout/scales/NiceTicks.d.ts +43 -0
  51. package/dist/layout/scales/NiceTicks.js +76 -0
  52. package/dist/layout/scales/ScalesLayout.svelte +133 -34
  53. package/dist/layout/scales/ScalesLayout.svelte.d.ts +10 -0
  54. package/dist/layout/scales/SveltePlotScale.d.ts +15 -0
  55. package/dist/layout/scales/SveltePlotScale.js +86 -0
  56. package/dist/layout/scales/TickLabels.d.ts +32 -0
  57. package/dist/layout/scales/TickLabels.js +55 -0
  58. package/dist/layout/styles/StylesLayout.svelte +2 -2
  59. package/dist/layout/styles/ValueLabels.d.ts +33 -5
  60. package/dist/layout/styles/ValueLabels.js +83 -23
  61. package/dist/layout/timeline/Timeline.svelte +5 -2
  62. package/dist/layout/timeline/Timeline.svelte.d.ts +2 -0
  63. package/dist/layout/timeline/TimelineLayout.svelte +39 -13
  64. package/dist/layout/timeline/TimelineLayout.svelte.d.ts +7 -5
  65. package/dist/layout/timeline/TimelineRule.svelte +1 -0
  66. package/dist/layout/timeline/TimelineState.svelte.d.ts +13 -5
  67. package/dist/layout/timeline/TimelineState.svelte.js +42 -8
  68. package/dist/layout/timeline/TimelineTime.d.ts +18 -0
  69. package/dist/layout/timeline/TimelineTime.js +117 -0
  70. package/dist/layout/tooltip/Tooltip.svelte +10 -7
  71. package/dist/layout/tooltip/Tooltip.svelte.d.ts +6 -4
  72. package/dist/layout/tooltip/TooltipState.svelte.d.ts +8 -2
  73. package/dist/layout/tooltip/TooltipState.svelte.js +23 -4
  74. package/dist/markers/MarkerKinds.d.ts +5 -0
  75. package/dist/markers/MarkerKinds.js +1 -0
  76. package/dist/markers/area/AreaMarker.svelte +15 -63
  77. package/dist/markers/arrow/ArrowMarker.svelte +51 -9
  78. package/dist/markers/bar/BarMarker.svelte +8 -4
  79. package/dist/markers/bollinger/BollingerMarker.svelte +33 -18
  80. package/dist/markers/box/BoxMarker.svelte +40 -9
  81. package/dist/markers/delta/Delta.js +1 -1
  82. package/dist/markers/delta/DeltaMarker.svelte +9 -7
  83. package/dist/markers/dot/DotMarker.svelte +24 -27
  84. package/dist/markers/image/ImageMarker.svelte +17 -12
  85. package/dist/markers/inset/InsetMarker.svelte +2 -2
  86. package/dist/markers/line/LineMarker.svelte +1 -0
  87. package/dist/markers/link/LinkMarker.svelte +174 -29
  88. package/dist/markers/regression/RegressionMarker.svelte +16 -33
  89. package/dist/markers/rule/RuleMarker.svelte +9 -3
  90. package/dist/markers/text/Declutter.d.ts +4 -0
  91. package/dist/markers/text/Declutter.js +26 -11
  92. package/dist/markers/text/TextMarker.svelte +91 -48
  93. package/dist/markers/tick/TickMarker.svelte +27 -25
  94. package/dist/markers/utils/MarkerChannels.d.ts +24 -0
  95. package/dist/markers/utils/MarkerChannels.js +42 -7
  96. package/dist/markers/utils/RowOffset.d.ts +23 -0
  97. package/dist/markers/utils/RowOffset.js +23 -0
  98. package/dist/markers/utils/RowOffsetMarks.svelte +30 -0
  99. package/dist/markers/utils/RowOffsetMarks.svelte.d.ts +33 -0
  100. package/dist/markers/utils/RowStroke.d.ts +31 -0
  101. package/dist/markers/utils/RowStroke.js +28 -0
  102. package/dist/markers/violin/ViolinMarker.svelte +75 -0
  103. package/dist/markers/violin/ViolinMarker.svelte.d.ts +7 -0
  104. package/dist/markers/violin/ViolinProfiles.d.ts +29 -0
  105. package/dist/markers/violin/ViolinProfiles.js +55 -0
  106. package/dist/markers/waffle/WaffleMarker.svelte +17 -37
  107. package/dist/phases/Pipeline.d.ts +5 -0
  108. package/dist/phases/Pipeline.js +8 -2
  109. package/dist/phases/data/DataPhase.d.ts +5 -11
  110. package/dist/phases/data/DataPhase.js +14 -11
  111. package/dist/phases/data/PlotAxes.d.ts +10 -0
  112. package/dist/phases/data/PlotAxes.js +14 -1
  113. package/dist/phases/facet/FacetPanels.d.ts +55 -0
  114. package/dist/phases/facet/FacetPanels.js +96 -0
  115. package/dist/phases/facet/FacetPhase.d.ts +1 -42
  116. package/dist/phases/facet/FacetPhase.js +1 -87
  117. package/dist/phases/hover/HoverPhase.d.ts +6 -43
  118. package/dist/phases/hover/HoverPhase.js +19 -54
  119. package/dist/phases/mapping/MappingPhase.d.ts +1 -1
  120. package/dist/phases/mapping/MappingPhase.js +3 -5
  121. package/dist/phases/markers/MarkersPhase.js +2 -1
  122. package/dist/phases/scales/CategoryOrder.d.ts +23 -0
  123. package/dist/phases/scales/CategoryOrder.js +73 -0
  124. package/dist/phases/scales/ScalesPhase.d.ts +1 -3
  125. package/dist/phases/scales/ScalesPhase.js +37 -27
  126. package/dist/phases/sharedScales/SharedScalesPhase.d.ts +6 -2
  127. package/dist/phases/sharedScales/SharedScalesPhase.js +14 -8
  128. package/dist/phases/statistics/Statistics.d.ts +10 -6
  129. package/dist/phases/statistics/Statistics.js +20 -10
  130. package/dist/phases/statistics/StatisticsPhase.js +10 -6
  131. package/dist/phases/statistics/methods/BollingerStatistic.d.ts +1 -1
  132. package/dist/phases/statistics/methods/BollingerStatistic.js +13 -11
  133. package/dist/phases/statistics/methods/BoxStatistic.d.ts +1 -1
  134. package/dist/phases/statistics/methods/BoxStatistic.js +14 -12
  135. package/dist/phases/statistics/methods/Density2dStatistic.d.ts +1 -1
  136. package/dist/phases/statistics/methods/Density2dStatistic.js +13 -11
  137. package/dist/phases/statistics/methods/DensityStatistic.d.ts +1 -1
  138. package/dist/phases/statistics/methods/DensityStatistic.js +11 -9
  139. package/dist/phases/statistics/methods/DeviationStatistic.d.ts +8 -0
  140. package/dist/phases/statistics/methods/DeviationStatistic.js +111 -0
  141. package/dist/phases/statistics/methods/MovingAverageStatistic.d.ts +1 -1
  142. package/dist/phases/statistics/methods/MovingAverageStatistic.js +11 -9
  143. package/dist/phases/statistics/methods/RegressionStatistic.d.ts +1 -1
  144. package/dist/phases/statistics/methods/RegressionStatistic.js +16 -14
  145. package/dist/phases/tooltip/TooltipPhase.d.ts +4 -2
  146. package/dist/phases/tooltip/TooltipPhase.js +10 -3
  147. package/dist/phases/transforms/ProcessedPositions.d.ts +30 -0
  148. package/dist/phases/transforms/ProcessedPositions.js +74 -0
  149. package/dist/phases/transforms/TransformsPhase.d.ts +5 -42
  150. package/dist/phases/transforms/TransformsPhase.js +67 -58
  151. package/dist/phases/transforms/ValueSelection.d.ts +30 -0
  152. package/dist/phases/transforms/ValueSelection.js +53 -0
  153. package/dist/plots/{heatmap → correlation/heatmap}/Plot.svelte +5 -2
  154. package/dist/plots/{heatmap → correlation/heatmap}/Plot.svelte.d.ts +2 -2
  155. package/dist/plots/{heatmap → correlation/heatmap}/defaults.d.ts +2 -2
  156. package/dist/plots/{heatmap → correlation/heatmap}/defaults.js +5 -5
  157. package/dist/plots/{heatmap → correlation/heatmap}/markers.d.ts +4 -4
  158. package/dist/plots/{heatmap → correlation/heatmap}/markers.js +4 -3
  159. package/dist/plots/{scatter → correlation/scatter}/Plot.svelte +5 -2
  160. package/dist/plots/{scatter → correlation/scatter}/Plot.svelte.d.ts +2 -2
  161. package/dist/plots/{scatter → correlation/scatter}/defaults.d.ts +2 -2
  162. package/dist/plots/{scatter → correlation/scatter}/defaults.js +6 -5
  163. package/dist/plots/{scatter → correlation/scatter}/markers.d.ts +4 -4
  164. package/dist/plots/{scatter → correlation/scatter}/markers.js +5 -4
  165. package/dist/plots/distribution/box/BoxSummaries.d.ts +19 -0
  166. package/dist/plots/distribution/box/BoxSummaries.js +101 -0
  167. package/dist/plots/distribution/box/Plot.svelte +42 -0
  168. package/dist/plots/distribution/box/Plot.svelte.d.ts +26 -0
  169. package/dist/plots/distribution/box/defaults.d.ts +12 -0
  170. package/dist/plots/distribution/box/defaults.js +34 -0
  171. package/dist/plots/distribution/box/markers.d.ts +12 -0
  172. package/dist/plots/distribution/box/markers.js +34 -0
  173. package/dist/plots/distribution/density/Plot.svelte +45 -0
  174. package/dist/plots/distribution/density/Plot.svelte.d.ts +26 -0
  175. package/dist/plots/distribution/density/defaults.d.ts +9 -0
  176. package/dist/plots/distribution/density/defaults.js +29 -0
  177. package/dist/plots/distribution/density/markers.d.ts +9 -0
  178. package/dist/plots/distribution/density/markers.js +42 -0
  179. package/dist/plots/{histogram → distribution/histogram}/Plot.svelte +2 -2
  180. package/dist/plots/{histogram → distribution/histogram}/Plot.svelte.d.ts +2 -2
  181. package/dist/plots/{histogram → distribution/histogram}/defaults.d.ts +2 -2
  182. package/dist/plots/{histogram → distribution/histogram}/defaults.js +4 -4
  183. package/dist/plots/{histogram → distribution/histogram}/markers.d.ts +3 -3
  184. package/dist/plots/{histogram → distribution/histogram}/markers.js +7 -7
  185. package/dist/plots/{pyramid → distribution/pyramid}/Plot.svelte +5 -2
  186. package/dist/plots/{pyramid → distribution/pyramid}/Plot.svelte.d.ts +2 -2
  187. package/dist/plots/{pyramid → distribution/pyramid}/defaults.d.ts +2 -2
  188. package/dist/plots/{pyramid → distribution/pyramid}/defaults.js +7 -6
  189. package/dist/plots/{pyramid → distribution/pyramid}/markers.d.ts +4 -4
  190. package/dist/plots/{pyramid → distribution/pyramid}/markers.js +8 -11
  191. package/dist/plots/distribution/violin/Plot.svelte +45 -0
  192. package/dist/plots/distribution/violin/Plot.svelte.d.ts +26 -0
  193. package/dist/plots/distribution/violin/defaults.d.ts +10 -0
  194. package/dist/plots/distribution/violin/defaults.js +58 -0
  195. package/dist/plots/distribution/violin/markers.d.ts +10 -0
  196. package/dist/plots/distribution/violin/markers.js +71 -0
  197. package/dist/plots/{area → evolution/area}/Plot.svelte +2 -2
  198. package/dist/plots/{area → evolution/area}/Plot.svelte.d.ts +2 -2
  199. package/dist/plots/{area → evolution/area}/defaults.d.ts +2 -2
  200. package/dist/plots/{area → evolution/area}/defaults.js +2 -0
  201. package/dist/plots/{area → evolution/area}/markers.d.ts +2 -2
  202. package/dist/plots/{area → evolution/area}/markers.js +2 -3
  203. package/dist/plots/{line → evolution/line}/Plot.svelte +2 -2
  204. package/dist/plots/{line → evolution/line}/Plot.svelte.d.ts +2 -2
  205. package/dist/plots/{line → evolution/line}/defaults.d.ts +2 -2
  206. package/dist/plots/{line → evolution/line}/defaults.js +2 -0
  207. package/dist/plots/{line → evolution/line}/markers.d.ts +11 -8
  208. package/dist/plots/{line → evolution/line}/markers.js +7 -6
  209. package/dist/plots/evolution/slope/Plot.svelte +42 -0
  210. package/dist/plots/evolution/slope/Plot.svelte.d.ts +26 -0
  211. package/dist/plots/evolution/slope/defaults.d.ts +8 -0
  212. package/dist/plots/evolution/slope/defaults.js +31 -0
  213. package/dist/plots/evolution/slope/markers.d.ts +16 -0
  214. package/dist/plots/evolution/slope/markers.js +79 -0
  215. package/dist/plots/evolution/sparkline/Plot.svelte +45 -0
  216. package/dist/plots/evolution/sparkline/Plot.svelte.d.ts +26 -0
  217. package/dist/plots/evolution/sparkline/defaults.d.ts +7 -0
  218. package/dist/plots/evolution/sparkline/defaults.js +23 -0
  219. package/dist/plots/evolution/sparkline/markers.d.ts +7 -0
  220. package/dist/plots/evolution/sparkline/markers.js +56 -0
  221. package/dist/plots/{geo → map/geo}/Core.svelte +11 -10
  222. package/dist/plots/{geo → map/geo}/Core.svelte.d.ts +1 -1
  223. package/dist/plots/map/geo/GeoFeatures.svelte.d.ts +9 -0
  224. package/dist/plots/map/geo/GeoFeatures.svelte.js +55 -0
  225. package/dist/plots/map/geo/GeoGeometry.d.ts +27 -0
  226. package/dist/plots/map/geo/GeoGeometry.js +142 -0
  227. package/dist/plots/map/geo/GeoSegments.d.ts +16 -0
  228. package/dist/plots/map/geo/GeoSegments.js +23 -0
  229. package/dist/plots/{geo → map/geo}/Plot.svelte +10 -10
  230. package/dist/plots/{geo → map/geo}/Plot.svelte.d.ts +2 -2
  231. package/dist/plots/{geo → map/geo}/defaults.d.ts +2 -2
  232. package/dist/plots/{geo → map/geo}/defaults.js +1 -1
  233. package/dist/plots/{geo → map/geo}/phases/data.d.ts +1 -1
  234. package/dist/plots/{geo → map/geo}/phases/data.js +7 -6
  235. package/dist/plots/{geo → map/geo}/phases/hover.d.ts +1 -1
  236. package/dist/plots/{geo → map/geo}/phases/hover.js +5 -5
  237. package/dist/plots/{geo → map/geo}/phases/markers.d.ts +1 -1
  238. package/dist/plots/{geo → map/geo}/phases/markers.js +8 -13
  239. package/dist/plots/{geo → map/geo}/phases/scales.d.ts +2 -2
  240. package/dist/plots/{geo → map/geo}/phases/scales.js +28 -12
  241. package/dist/plots/{geo → map/geo}/phases/tooltip.d.ts +1 -1
  242. package/dist/plots/map/geo/phases/tooltip.js +5 -0
  243. package/dist/plots/{geo → map/geo}/slices.d.ts +2 -2
  244. package/dist/plots/{geo → map/geo}/slices.js +7 -4
  245. package/dist/plots/{bar → ranking/bar}/Plot.svelte +2 -2
  246. package/dist/plots/{bar → ranking/bar}/Plot.svelte.d.ts +2 -2
  247. package/dist/plots/ranking/bar/defaults.d.ts +16 -0
  248. package/dist/plots/{bar → ranking/bar}/defaults.js +17 -15
  249. package/dist/plots/{bar → ranking/bar}/markers.d.ts +8 -8
  250. package/dist/plots/{bar → ranking/bar}/markers.js +11 -19
  251. package/dist/plots/ranking/bullet/Plot.svelte +42 -0
  252. package/dist/plots/ranking/bullet/Plot.svelte.d.ts +26 -0
  253. package/dist/plots/ranking/bullet/defaults.d.ts +8 -0
  254. package/dist/plots/ranking/bullet/defaults.js +24 -0
  255. package/dist/plots/ranking/bullet/markers.d.ts +10 -0
  256. package/dist/plots/ranking/bullet/markers.js +90 -0
  257. package/dist/plots/ranking/cleveland/ClevelandConnector.d.ts +48 -0
  258. package/dist/plots/ranking/cleveland/ClevelandConnector.js +140 -0
  259. package/dist/plots/ranking/cleveland/ClevelandMarkers.d.ts +33 -0
  260. package/dist/plots/ranking/cleveland/ClevelandMarkers.js +375 -0
  261. package/dist/plots/ranking/cleveland/ClevelandRanges.d.ts +31 -0
  262. package/dist/plots/ranking/cleveland/ClevelandRanges.js +116 -0
  263. package/dist/plots/ranking/cleveland/Plot.svelte +45 -0
  264. package/dist/plots/ranking/cleveland/Plot.svelte.d.ts +26 -0
  265. package/dist/plots/ranking/cleveland/defaults.d.ts +13 -0
  266. package/dist/plots/ranking/cleveland/defaults.js +66 -0
  267. package/dist/plots/ranking/dumbbell/Plot.svelte +45 -0
  268. package/dist/plots/ranking/dumbbell/Plot.svelte.d.ts +26 -0
  269. package/dist/plots/ranking/dumbbell/defaults.d.ts +9 -0
  270. package/dist/plots/ranking/dumbbell/defaults.js +19 -0
  271. package/dist/plots/ranking/forest/Plot.svelte +42 -0
  272. package/dist/plots/ranking/forest/Plot.svelte.d.ts +26 -0
  273. package/dist/plots/ranking/forest/defaults.d.ts +11 -0
  274. package/dist/plots/ranking/forest/defaults.js +20 -0
  275. package/dist/plots/ranking/lollipop/Plot.svelte +45 -0
  276. package/dist/plots/ranking/lollipop/Plot.svelte.d.ts +26 -0
  277. package/dist/plots/ranking/lollipop/defaults.d.ts +9 -0
  278. package/dist/plots/ranking/lollipop/defaults.js +18 -0
  279. package/dist/plots/utils/RowNumbers.d.ts +16 -0
  280. package/dist/plots/utils/RowNumbers.js +24 -0
  281. package/dist/plots/utils/gaps.js +1 -1
  282. package/dist/plots/utils/segments.js +1 -1
  283. package/dist/types/configuration/styling.d.ts +287 -132
  284. package/dist/types/layout/composer.d.ts +5 -2
  285. package/dist/types/layout/coordinates.d.ts +5 -4
  286. package/dist/types/layout/legend.d.ts +21 -5
  287. package/dist/types/layout/plot.d.ts +44 -1
  288. package/dist/types/layout/scales.d.ts +51 -3
  289. package/dist/types/layout/statistics/deviation.d.ts +40 -0
  290. package/dist/types/layout/statistics/index.d.ts +7 -2
  291. package/dist/types/layout/styles/base.d.ts +18 -0
  292. package/dist/types/layout/styles/bullet.d.ts +25 -0
  293. package/dist/types/layout/styles/connector.d.ts +98 -0
  294. package/dist/types/layout/styles/curve.d.ts +11 -0
  295. package/dist/types/layout/styles/frame.d.ts +17 -0
  296. package/dist/types/layout/styles/gaps.d.ts +12 -0
  297. package/dist/types/layout/styles/geo.d.ts +55 -0
  298. package/dist/types/layout/styles/index.d.ts +8 -0
  299. package/dist/types/layout/styles/index.js +8 -0
  300. package/dist/types/layout/styles/values.d.ts +47 -0
  301. package/dist/types/layout/timeline.d.ts +19 -7
  302. package/dist/types/layout/tooltip.d.ts +6 -2
  303. package/dist/types/markers/axis/area.d.ts +2 -2
  304. package/dist/types/markers/axis/arrow.d.ts +3 -0
  305. package/dist/types/markers/axis/axisBasedMarkersConfig.d.ts +2 -1
  306. package/dist/types/markers/axis/bar.d.ts +1 -1
  307. package/dist/types/markers/axis/box.d.ts +5 -0
  308. package/dist/types/markers/axis/difference.d.ts +2 -2
  309. package/dist/types/markers/axis/image.d.ts +3 -2
  310. package/dist/types/markers/axis/line.d.ts +2 -0
  311. package/dist/types/markers/axis/rule.d.ts +9 -0
  312. package/dist/types/markers/axis/trail.d.ts +2 -3
  313. package/dist/types/markers/axis/violin.d.ts +25 -0
  314. package/dist/types/markers/basic/dot.d.ts +3 -2
  315. package/dist/types/markers/basic/text.d.ts +13 -3
  316. package/dist/types/markers/channels/commonMarkerConfig.d.ts +7 -3
  317. package/dist/types/markers/channels/commonMarkerConfigWithRowOffset.d.ts +13 -0
  318. package/dist/types/markers/common.d.ts +1 -1
  319. package/dist/types/markers/common.js +1 -0
  320. package/dist/types/markers/geo/link.d.ts +5 -1
  321. package/dist/types/phases/hover/phase.d.ts +6 -0
  322. package/dist/types/phases/index.d.ts +1 -1
  323. package/dist/types/phases/scales/phase.d.ts +5 -1
  324. package/dist/types/phases/state.d.ts +20 -4
  325. package/dist/types/phases/statistics/phase.d.ts +3 -1
  326. package/dist/types/phases/statistics/source.d.ts +3 -1
  327. package/dist/types/phases/transforms/phase.d.ts +32 -0
  328. package/dist/types/plots/{heatmap → correlation/heatmap}/props.d.ts +6 -6
  329. package/dist/types/plots/{heatmap → correlation/heatmap}/state.d.ts +4 -4
  330. package/dist/types/plots/{scatter → correlation/scatter}/props.d.ts +6 -6
  331. package/dist/types/plots/{scatter → correlation/scatter}/state.d.ts +2 -2
  332. package/dist/types/plots/distribution/box/props.d.ts +10 -0
  333. package/dist/types/plots/distribution/box/state.d.ts +23 -0
  334. package/dist/types/plots/distribution/density/props.d.ts +23 -0
  335. package/dist/types/plots/distribution/density/state.d.ts +6 -0
  336. package/dist/types/plots/distribution/density/state.js +1 -0
  337. package/dist/types/plots/{histogram → distribution/histogram}/props.d.ts +7 -7
  338. package/dist/types/plots/distribution/histogram/props.js +1 -0
  339. package/dist/types/plots/{histogram → distribution/histogram}/state.d.ts +2 -2
  340. package/dist/types/plots/distribution/histogram/state.js +1 -0
  341. package/dist/types/plots/{pyramid → distribution/pyramid}/props.d.ts +6 -6
  342. package/dist/types/plots/distribution/pyramid/props.js +1 -0
  343. package/dist/types/plots/{pyramid → distribution/pyramid}/state.d.ts +3 -3
  344. package/dist/types/plots/distribution/pyramid/state.js +1 -0
  345. package/dist/types/plots/distribution/violin/props.d.ts +23 -0
  346. package/dist/types/plots/distribution/violin/props.js +1 -0
  347. package/dist/types/plots/distribution/violin/state.d.ts +6 -0
  348. package/dist/types/plots/distribution/violin/state.js +1 -0
  349. package/dist/types/plots/{area → evolution/area}/props.d.ts +6 -6
  350. package/dist/types/plots/evolution/area/props.js +1 -0
  351. package/dist/types/plots/{area → evolution/area}/state.d.ts +2 -2
  352. package/dist/types/plots/evolution/area/state.js +1 -0
  353. package/dist/types/plots/evolution/line/props.d.ts +10 -0
  354. package/dist/types/plots/evolution/line/props.js +1 -0
  355. package/dist/types/plots/{line → evolution/line}/state.d.ts +3 -3
  356. package/dist/types/plots/evolution/line/state.js +1 -0
  357. package/dist/types/plots/evolution/slope/props.d.ts +5 -0
  358. package/dist/types/plots/evolution/slope/props.js +1 -0
  359. package/dist/types/plots/evolution/slope/state.d.ts +5 -0
  360. package/dist/types/plots/evolution/slope/state.js +1 -0
  361. package/dist/types/plots/evolution/sparkline/props.d.ts +5 -0
  362. package/dist/types/plots/evolution/sparkline/props.js +1 -0
  363. package/dist/types/plots/evolution/sparkline/state.d.ts +5 -0
  364. package/dist/types/plots/evolution/sparkline/state.js +1 -0
  365. package/dist/types/plots/{geo → map/geo}/props.d.ts +8 -8
  366. package/dist/types/plots/map/geo/props.js +1 -0
  367. package/dist/types/plots/{geo → map/geo}/state.d.ts +18 -11
  368. package/dist/types/plots/map/geo/state.js +1 -0
  369. package/dist/types/plots/props.d.ts +3 -1
  370. package/dist/types/plots/{bar → ranking/bar}/props.d.ts +6 -6
  371. package/dist/types/plots/ranking/bar/props.js +1 -0
  372. package/dist/types/plots/{bar → ranking/bar}/state.d.ts +2 -2
  373. package/dist/types/plots/ranking/bar/state.js +1 -0
  374. package/dist/types/plots/ranking/bullet/props.d.ts +22 -0
  375. package/dist/types/plots/ranking/bullet/props.js +1 -0
  376. package/dist/types/plots/ranking/bullet/state.d.ts +5 -0
  377. package/dist/types/plots/ranking/bullet/state.js +1 -0
  378. package/dist/types/plots/ranking/cleveland/props.d.ts +10 -0
  379. package/dist/types/plots/ranking/cleveland/props.js +1 -0
  380. package/dist/types/plots/ranking/cleveland/state.d.ts +49 -0
  381. package/dist/types/plots/ranking/cleveland/state.js +1 -0
  382. package/dist/types/plots/ranking/dumbbell/props.d.ts +10 -0
  383. package/dist/types/plots/ranking/dumbbell/props.js +1 -0
  384. package/dist/types/plots/ranking/dumbbell/state.d.ts +5 -0
  385. package/dist/types/plots/ranking/dumbbell/state.js +1 -0
  386. package/dist/types/plots/ranking/forest/props.d.ts +23 -0
  387. package/dist/types/plots/ranking/forest/props.js +1 -0
  388. package/dist/types/plots/ranking/forest/state.d.ts +5 -0
  389. package/dist/types/plots/ranking/forest/state.js +1 -0
  390. package/dist/types/plots/ranking/lollipop/props.d.ts +10 -0
  391. package/dist/types/plots/ranking/lollipop/props.js +1 -0
  392. package/dist/types/plots/ranking/lollipop/state.d.ts +5 -0
  393. package/dist/types/plots/ranking/lollipop/state.js +1 -0
  394. package/dist/types/plots/segments/common.d.ts +4 -1
  395. package/dist/utils/OpacityScale.d.ts +14 -0
  396. package/dist/utils/OpacityScale.js +43 -0
  397. package/dist/utils/{symbol.d.ts → SymbolPath.d.ts} +0 -12
  398. package/dist/utils/{symbol.js → SymbolPath.js} +0 -24
  399. package/dist/utils/SymbolScale.d.ts +18 -0
  400. package/dist/utils/SymbolScale.js +29 -0
  401. package/dist/utils/color/ColorRamp.d.ts +27 -0
  402. package/dist/utils/color/ColorRamp.js +120 -0
  403. package/dist/utils/color/CssColor.d.ts +19 -0
  404. package/dist/utils/color/CssColor.js +114 -0
  405. package/dist/utils/color/Palette.d.ts +21 -0
  406. package/dist/utils/color/Palette.js +52 -0
  407. package/dist/utils/color/index.d.ts +11 -3
  408. package/dist/utils/color/index.js +14 -3
  409. package/dist/utils/grouping.js +1 -1
  410. package/docs/architecture.md +1 -1
  411. package/docs/chrome.md +39 -8
  412. package/docs/composer.md +19 -3
  413. package/docs/concepts.md +1 -1
  414. package/docs/development.md +14 -5
  415. package/docs/facets.md +62 -8
  416. package/docs/getting-started.md +8 -9
  417. package/docs/legend.md +73 -24
  418. package/docs/markers.md +45 -32
  419. package/docs/plots/correlation/heatmap.md +26 -0
  420. package/docs/plots/correlation/scatter.md +35 -0
  421. package/docs/plots/distribution/box.md +28 -0
  422. package/docs/plots/distribution/density.md +26 -0
  423. package/docs/plots/distribution/histogram.md +33 -0
  424. package/docs/plots/distribution/pyramid.md +31 -0
  425. package/docs/plots/distribution/violin.md +35 -0
  426. package/docs/plots/evolution/area.md +32 -0
  427. package/docs/plots/evolution/line.md +93 -0
  428. package/docs/plots/evolution/slope.md +39 -0
  429. package/docs/plots/evolution/sparkline.md +34 -0
  430. package/docs/plots/ranking/bar.md +59 -0
  431. package/docs/plots/ranking/bullet.md +37 -0
  432. package/docs/plots/ranking/cleveland.md +54 -0
  433. package/docs/plots/ranking/dumbbell.md +39 -0
  434. package/docs/plots/ranking/forest.md +40 -0
  435. package/docs/plots/ranking/lollipop.md +39 -0
  436. package/docs/plots.md +22 -154
  437. package/docs/scales.md +50 -27
  438. package/docs/state.md +1 -1
  439. package/docs/styles-and-segments.md +96 -39
  440. package/docs/theming.md +33 -19
  441. package/docs/timeline.md +62 -28
  442. package/docs/tooltip-and-hover.md +72 -24
  443. package/docs/transforms-and-statistics.md +56 -25
  444. package/examples/BarValues.svelte +2 -2
  445. package/examples/Box.svelte +7 -0
  446. package/examples/Bullet.svelte +17 -0
  447. package/examples/Chrome.svelte +17 -0
  448. package/examples/ChromeOrder.svelte +18 -0
  449. package/examples/Cleveland.svelte +15 -0
  450. package/examples/Composer.svelte +23 -0
  451. package/examples/CustomTooltip.svelte +21 -14
  452. package/examples/Density.svelte +7 -0
  453. package/examples/Dumbbell.svelte +16 -0
  454. package/examples/Facets.svelte +3 -3
  455. package/examples/FacetsCarousel.svelte +14 -0
  456. package/examples/FacetsRowsCols.svelte +23 -0
  457. package/examples/FirstPlot.svelte +7 -0
  458. package/examples/Forest.svelte +17 -0
  459. package/examples/Gaps.svelte +21 -0
  460. package/examples/GroupedBars.svelte +15 -0
  461. package/examples/Heatmap.svelte +7 -0
  462. package/examples/HeatmapSegments.svelte +26 -0
  463. package/examples/Histogram.svelte +14 -0
  464. package/examples/HorizontalBars.svelte +15 -0
  465. package/examples/LegendSections.svelte +27 -0
  466. package/examples/LegendToggle.svelte +3 -3
  467. package/examples/LineByRegion.svelte +18 -0
  468. package/examples/LineDates.svelte +15 -0
  469. package/examples/LineStep.svelte +16 -0
  470. package/examples/LineStepSegment.svelte +18 -0
  471. package/examples/Lollipop.svelte +17 -0
  472. package/examples/Markers.svelte +27 -0
  473. package/examples/MovingAverage.svelte +15 -0
  474. package/examples/Pyramid.svelte +14 -0
  475. package/examples/Regression.svelte +14 -0
  476. package/examples/ResponsiveLine.svelte +7 -7
  477. package/examples/Scales.svelte +26 -0
  478. package/examples/Scatter.svelte +16 -0
  479. package/examples/SegmentHighlight.svelte +22 -0
  480. package/examples/Segments.svelte +11 -3
  481. package/examples/SegmentsBySeries.svelte +25 -0
  482. package/examples/Slope.svelte +17 -0
  483. package/examples/Sparkline.svelte +14 -0
  484. package/examples/StackedArea.svelte +16 -0
  485. package/examples/StackedBars.svelte +15 -0
  486. package/examples/TimelinePlayer.svelte +8 -7
  487. package/examples/TimelineRule.svelte +19 -0
  488. package/examples/Tooltip.svelte +3 -3
  489. package/examples/ValueLabels.svelte +21 -0
  490. package/examples/Violin.svelte +14 -0
  491. package/examples/datasets/argentina-chile-trends.ts +34 -0
  492. package/examples/datasets/commodity-prices.ts +48 -0
  493. package/examples/datasets/countries-over-time.ts +368 -0
  494. package/examples/datasets/daily-temperature.ts +121 -0
  495. package/examples/datasets/earthquakes.ts +977 -0
  496. package/examples/datasets/flight-routes.ts +29 -0
  497. package/examples/datasets/height-density.ts +37 -0
  498. package/examples/datasets/heights.ts +370 -0
  499. package/examples/datasets/index.ts +24 -0
  500. package/examples/datasets/inflation-by-region.ts +44 -0
  501. package/examples/datasets/inflation-ranges.ts +34 -0
  502. package/examples/datasets/iris-flower.ts +207 -0
  503. package/examples/datasets/life-expectancy.ts +95 -0
  504. package/examples/datasets/napoleons-march.ts +182 -0
  505. package/examples/datasets/penguins.ts +54 -0
  506. package/examples/datasets/population-by-age-with-gaps.ts +23 -0
  507. package/examples/datasets/population-by-age.ts +890 -0
  508. package/examples/datasets/province-population.ts +521 -0
  509. package/examples/datasets/stock-prices.ts +63 -0
  510. package/examples/datasets/weather-stations-over-time.ts +31 -0
  511. package/examples/datasets/weather-stations.ts +22 -0
  512. package/examples/datasets/wind-vectors.ts +30 -0
  513. package/examples/datasets/world-temperature.ts +400 -0
  514. package/llms-full.txt +51 -12
  515. package/llms.txt +60 -4
  516. package/package.json +12 -2
  517. package/dist/layout/scales/buildScale.d.ts +0 -8
  518. package/dist/layout/scales/buildScale.js +0 -67
  519. package/dist/layout/scales/niceDomain.d.ts +0 -23
  520. package/dist/layout/scales/niceDomain.js +0 -59
  521. package/dist/plots/bar/defaults.d.ts +0 -9
  522. package/dist/plots/geo/features.svelte.d.ts +0 -5
  523. package/dist/plots/geo/features.svelte.js +0 -44
  524. package/dist/plots/geo/phases/tooltip.js +0 -5
  525. package/dist/plots/utils/geoAccessors.d.ts +0 -72
  526. package/dist/plots/utils/geoAccessors.js +0 -220
  527. package/dist/plots/utils/geoSegments.d.ts +0 -29
  528. package/dist/plots/utils/geoSegments.js +0 -37
  529. package/dist/types/layout/styles.d.ts +0 -122
  530. package/dist/types/markers/axis/curveName.d.ts +0 -2
  531. package/dist/types/plots/line/props.d.ts +0 -10
  532. package/dist/utils/color/contrast.d.ts +0 -9
  533. package/dist/utils/color/contrast.js +0 -40
  534. package/dist/utils/color/cssColor.d.ts +0 -4
  535. package/dist/utils/color/cssColor.js +0 -77
  536. package/dist/utils/color/ramp.d.ts +0 -17
  537. package/dist/utils/color/ramp.js +0 -110
  538. package/dist/utils/opacity.d.ts +0 -9
  539. package/dist/utils/opacity.js +0 -38
  540. package/examples/data.ts +0 -12
  541. /package/dist/types/layout/{styles.js → statistics/deviation.js} +0 -0
  542. /package/dist/types/{markers/axis/curveName.js → layout/styles/base.js} +0 -0
  543. /package/dist/types/{plots/area/props.js → layout/styles/bullet.js} +0 -0
  544. /package/dist/types/{plots/area/state.js → layout/styles/connector.js} +0 -0
  545. /package/dist/types/{plots/bar/props.js → layout/styles/curve.js} +0 -0
  546. /package/dist/types/{plots/bar/state.js → layout/styles/frame.js} +0 -0
  547. /package/dist/types/{plots/geo/props.js → layout/styles/gaps.js} +0 -0
  548. /package/dist/types/{plots/geo/state.js → layout/styles/geo.js} +0 -0
  549. /package/dist/types/{plots/heatmap/props.js → layout/styles/values.js} +0 -0
  550. /package/dist/types/{plots/heatmap/state.js → markers/axis/violin.js} +0 -0
  551. /package/dist/types/{plots/histogram/props.js → markers/channels/commonMarkerConfigWithRowOffset.js} +0 -0
  552. /package/dist/types/plots/{line → correlation/heatmap}/props.js +0 -0
  553. /package/dist/types/plots/{histogram → correlation/heatmap}/state.js +0 -0
  554. /package/dist/types/plots/{pyramid → correlation/scatter}/props.js +0 -0
  555. /package/dist/types/plots/{line → correlation/scatter}/state.js +0 -0
  556. /package/dist/types/plots/{scatter → distribution/box}/props.js +0 -0
  557. /package/dist/types/plots/{pyramid → distribution/box}/state.js +0 -0
  558. /package/dist/types/plots/{scatter/state.js → distribution/density/props.js} +0 -0
  559. /package/dist/{plots/utils → utils}/accessors.d.ts +0 -0
  560. /package/dist/{plots/utils → utils}/accessors.js +0 -0
@@ -0,0 +1,26 @@
1
+ import Plot from '../../../layout/plot/Plot.svelte';
2
+ import type { BoxPlotProps } from '../../../types/plots/distribution/box/props';
3
+ declare function $$render<TData extends Record<string, unknown>>(): {
4
+ props: BoxPlotProps<TData>;
5
+ exports: {};
6
+ bindings: "margins";
7
+ slots: {};
8
+ events: {};
9
+ };
10
+ declare class __sveltets_Render<TData extends Record<string, unknown>> {
11
+ props(): ReturnType<typeof $$render<TData>>['props'];
12
+ events(): ReturnType<typeof $$render<TData>>['events'];
13
+ slots(): ReturnType<typeof $$render<TData>>['slots'];
14
+ bindings(): "margins";
15
+ exports(): {};
16
+ }
17
+ interface $$IsomorphicComponent {
18
+ new <TData extends Record<string, unknown>>(options: import('svelte').ComponentConstructorOptions<ReturnType<__sveltets_Render<TData>['props']>>): import('svelte').SvelteComponent<ReturnType<__sveltets_Render<TData>['props']>, ReturnType<__sveltets_Render<TData>['events']>, ReturnType<__sveltets_Render<TData>['slots']>> & {
19
+ $$bindings?: ReturnType<__sveltets_Render<TData>['bindings']>;
20
+ } & ReturnType<__sveltets_Render<TData>['exports']>;
21
+ <TData extends Record<string, unknown>>(internal: unknown, props: ReturnType<__sveltets_Render<TData>['props']> & {}): ReturnType<__sveltets_Render<TData>['exports']>;
22
+ z_$$bindings?: ReturnType<__sveltets_Render<any>['bindings']>;
23
+ }
24
+ declare const Plot: $$IsomorphicComponent;
25
+ type Plot<TData extends Record<string, unknown>> = InstanceType<typeof Plot<TData>>;
26
+ export default Plot;
@@ -0,0 +1,12 @@
1
+ import type { AxisPlotDefaults } from '../../../types/phases';
2
+ import type { BoxPlotState, BoxPlotCtx } from '../../../types/plots/distribution/box/state';
3
+ /**
4
+ * BoxPlot on the shared pipeline: one box per category of each series along
5
+ * one category axis - `x`, or `y` for horizontal boxes, as the "data" phase
6
+ * reads it off the values, in the order the data gives them - with its own
7
+ * band padding and markers. The value
8
+ * axis fits the values, without reaching for zero. Its plot defaults to:
9
+ * hover along the category axis, over one summary per box rather than every
10
+ * value inside it.
11
+ */
12
+ export declare function buildBoxDefaults<TData extends Record<string, unknown>>(): AxisPlotDefaults<BoxPlotState<TData>, BoxPlotCtx>;
@@ -0,0 +1,34 @@
1
+ import { buildMarks } from './markers';
2
+ import { BoxSummaries } from './BoxSummaries';
3
+ import { TooltipState } from '../../../layout/tooltip/TooltipState.svelte';
4
+ /**
5
+ * BoxPlot on the shared pipeline: one box per category of each series along
6
+ * one category axis - `x`, or `y` for horizontal boxes, as the "data" phase
7
+ * reads it off the values, in the order the data gives them - with its own
8
+ * band padding and markers. The value
9
+ * axis fits the values, without reaching for zero. Its plot defaults to:
10
+ * hover along the category axis, over one summary per box rather than every
11
+ * value inside it.
12
+ */
13
+ export function buildBoxDefaults() {
14
+ return {
15
+ data: {
16
+ discreteAxes: 1,
17
+ segments: { color: (style) => style?.fill, connect: false }
18
+ },
19
+ scales: {
20
+ bandOrder: 'data',
21
+ defaults: (_state, ctx) => ({
22
+ category: { paddingInner: ctx.cfg.box.paddingInner, paddingOuter: ctx.cfg.box.paddingOuter }
23
+ })
24
+ },
25
+ markers: { marks: buildMarks },
26
+ hover: {
27
+ rows: BoxSummaries.of,
28
+ position: BoxSummaries.position,
29
+ label: () => ((row) => String(row.median)),
30
+ format: (state) => BoxSummaries.format(state),
31
+ sort: () => TooltipState.descending((row) => row.median)
32
+ }
33
+ };
34
+ }
@@ -0,0 +1,12 @@
1
+ import type { BoxPlotState, BoxPlotCtx } from '../../../types/plots/distribution/box/state';
2
+ import type { AxisBasedMarkersConfig } from '../../../types/markers/common';
3
+ /**
4
+ * BoxPlot's "markers" phase: one `box` per visual segment of each series,
5
+ * one box per category of its rows, filled with its series' color (or its
6
+ * segment's own `fill`). The markers the "statistics" phase already put in
7
+ * `state.markers` come after, so they render on top.
8
+ *
9
+ * A series toggled off in the legend (style mode), or dimmed by hovering
10
+ * another one, takes the legend's disabled fill.
11
+ */
12
+ export declare function buildMarks<TData extends Record<string, unknown>>(state: BoxPlotState<TData>, ctx: BoxPlotCtx): AxisBasedMarkersConfig[];
@@ -0,0 +1,34 @@
1
+ /**
2
+ * BoxPlot's "markers" phase: one `box` per visual segment of each series,
3
+ * one box per category of its rows, filled with its series' color (or its
4
+ * segment's own `fill`). The markers the "statistics" phase already put in
5
+ * `state.markers` come after, so they render on top.
6
+ *
7
+ * A series toggled off in the legend (style mode), or dimmed by hovering
8
+ * another one, takes the legend's disabled fill.
9
+ */
10
+ export function buildMarks(state, ctx) {
11
+ const { channels } = state.processedData;
12
+ const { cfg } = ctx;
13
+ return (state.processedGroups ?? []).flatMap((group) => {
14
+ const name = group.series.name;
15
+ const disabled = ctx.interaction?.fillFor(name);
16
+ return group.visualSegments.map((seg) => {
17
+ const { stroke, strokeWidth, strokeOpacity, borderRadius } = seg.styles;
18
+ const outline = { stroke, strokeWidth, strokeOpacity, borderRadius };
19
+ return {
20
+ type: 'box',
21
+ series: name,
22
+ data: seg.data,
23
+ x: channels.x,
24
+ y: channels.y,
25
+ bar: {
26
+ // The box's own outline, from its segment; unset fields stay svelteplot's.
27
+ ...Object.fromEntries(Object.entries(outline).filter(([, v]) => v !== undefined)),
28
+ fill: disabled?.fill ?? seg.styles.fill ?? state.colorForSeries(name),
29
+ fillOpacity: disabled?.fillOpacity ?? seg.styles.fillOpacity ?? cfg.box.fillOpacity
30
+ }
31
+ };
32
+ });
33
+ });
34
+ }
@@ -0,0 +1,45 @@
1
+ <script lang="ts" generics="TData extends Record<string, unknown>">
2
+ import Plot from '../../../layout/plot/Plot.svelte';
3
+ import { buildDensityDefaults } from './defaults';
4
+ import type {
5
+ DensityPlotProps,
6
+ DensityPlotCoreProps
7
+ } from '../../../types/plots/distribution/density/props';
8
+
9
+ /**
10
+ * A kernel density estimate: each series smoothed along `x` - or along `y` alone, for a horizontal curve - and drawn as an area or a line. Draws from pre-built `series` or flat `data` rows.
11
+ * Optional chrome (`title`, `subtitle`, `caption`, `header`, `footer`,
12
+ * `legend`) frames it; `timeline` and `facet` slice its `data` rows.
13
+ * `margins` is bindable: it reports the margin the plot settled on.
14
+ */
15
+ let {
16
+ title,
17
+ subtitle,
18
+ caption,
19
+ header,
20
+ footer,
21
+ legend,
22
+ order,
23
+ timeline,
24
+ facet,
25
+ tooltip,
26
+ margins = $bindable(),
27
+ ...core
28
+ }: DensityPlotProps<TData> = $props();
29
+ </script>
30
+
31
+ <Plot
32
+ core={core as DensityPlotCoreProps<TData>}
33
+ defaults={buildDensityDefaults}
34
+ bind:margins
35
+ {title}
36
+ {subtitle}
37
+ {caption}
38
+ {header}
39
+ {footer}
40
+ {legend}
41
+ {order}
42
+ {timeline}
43
+ {facet}
44
+ {tooltip}
45
+ />
@@ -0,0 +1,26 @@
1
+ import Plot from '../../../layout/plot/Plot.svelte';
2
+ import type { DensityPlotProps } from '../../../types/plots/distribution/density/props';
3
+ declare function $$render<TData extends Record<string, unknown>>(): {
4
+ props: DensityPlotProps<TData>;
5
+ exports: {};
6
+ bindings: "margins";
7
+ slots: {};
8
+ events: {};
9
+ };
10
+ declare class __sveltets_Render<TData extends Record<string, unknown>> {
11
+ props(): ReturnType<typeof $$render<TData>>['props'];
12
+ events(): ReturnType<typeof $$render<TData>>['events'];
13
+ slots(): ReturnType<typeof $$render<TData>>['slots'];
14
+ bindings(): "margins";
15
+ exports(): {};
16
+ }
17
+ interface $$IsomorphicComponent {
18
+ new <TData extends Record<string, unknown>>(options: import('svelte').ComponentConstructorOptions<ReturnType<__sveltets_Render<TData>['props']>>): import('svelte').SvelteComponent<ReturnType<__sveltets_Render<TData>['props']>, ReturnType<__sveltets_Render<TData>['events']>, ReturnType<__sveltets_Render<TData>['slots']>> & {
19
+ $$bindings?: ReturnType<__sveltets_Render<TData>['bindings']>;
20
+ } & ReturnType<__sveltets_Render<TData>['exports']>;
21
+ <TData extends Record<string, unknown>>(internal: unknown, props: ReturnType<__sveltets_Render<TData>['props']> & {}): ReturnType<__sveltets_Render<TData>['exports']>;
22
+ z_$$bindings?: ReturnType<__sveltets_Render<any>['bindings']>;
23
+ }
24
+ declare const Plot: $$IsomorphicComponent;
25
+ type Plot<TData extends Record<string, unknown>> = InstanceType<typeof Plot<TData>>;
26
+ export default Plot;
@@ -0,0 +1,9 @@
1
+ import type { AxisPlotDefaults } from '../../../types/phases';
2
+ import type { DensityPlotState, DensityPlotCtx } from '../../../types/plots/distribution/density/state';
3
+ /**
4
+ * DensityPlot on the shared pipeline: series read one position channel - `x`,
5
+ * or `y` for a horizontal curve - estimated by the plot's transforms merged
6
+ * over the default density of that axis, drawn from a zero baseline as an area
7
+ * or a line, and its own markers. Its plot defaults to: hover along the estimated axis.
8
+ */
9
+ export declare function buildDensityDefaults<TData extends Record<string, unknown>>(): AxisPlotDefaults<DensityPlotState<TData>, DensityPlotCtx>;
@@ -0,0 +1,29 @@
1
+ import { buildMarks } from './markers';
2
+ /**
3
+ * The plot's own density along its axis merged over the default one, the
4
+ * author's props winning, and every other transform kept after it in order. A
5
+ * density plot estimates once, so several entries fold into one.
6
+ */
7
+ function mergeDensity(own, horizontal) {
8
+ const base = { type: horizontal ? 'densityY' : 'densityX' };
9
+ const densities = own.filter((t) => t.type === base.type);
10
+ const others = own.filter((t) => t.type !== base.type);
11
+ const density = densities.reduce((merged, t) => ({ ...merged, ...t }), base);
12
+ return [density, ...others];
13
+ }
14
+ /**
15
+ * DensityPlot on the shared pipeline: series read one position channel - `x`,
16
+ * or `y` for a horizontal curve - estimated by the plot's transforms merged
17
+ * over the default density of that axis, drawn from a zero baseline as an area
18
+ * or a line, and its own markers. Its plot defaults to: hover along the estimated axis.
19
+ */
20
+ export function buildDensityDefaults() {
21
+ return {
22
+ data: { segments: { color: (style) => style?.fill, connect: false } },
23
+ transforms: {
24
+ transforms: (state) => mergeDensity(state.transforms ?? [], state.axes?.isHorizontal ?? false)
25
+ },
26
+ scales: { zero: ['value'] },
27
+ markers: { marks: buildMarks }
28
+ };
29
+ }
@@ -0,0 +1,9 @@
1
+ import type { DensityPlotState, DensityPlotCtx } from '../../../types/plots/distribution/density/state';
2
+ import type { AxisBasedMarkersConfig } from '../../../types/markers/common';
3
+ /**
4
+ * DensityPlot's "markers" phase: one `area` - or `line`, by `styles.mark` - per
5
+ * visual segment of each series, drawing that segment's estimate, dimmed with
6
+ * its series. The markers the "statistics" phase already put in `state.markers`
7
+ * come after.
8
+ */
9
+ export declare function buildMarks<TData extends Record<string, unknown>>(state: DensityPlotState<TData>, ctx: DensityPlotCtx): AxisBasedMarkersConfig[];
@@ -0,0 +1,42 @@
1
+ import { Transforms } from '../../../phases/transforms/Transforms';
2
+ /**
3
+ * DensityPlot's "markers" phase: one `area` - or `line`, by `styles.mark` - per
4
+ * visual segment of each series, drawing that segment's estimate, dimmed with
5
+ * its series. The markers the "statistics" phase already put in `state.markers`
6
+ * come after.
7
+ */
8
+ export function buildMarks(state, ctx) {
9
+ const { channels, options, transforms } = state.processedData;
10
+ const { cfg } = ctx;
11
+ const styles = state.styles;
12
+ const asLine = styles?.mark === 'line';
13
+ return (state.processedGroups ?? []).flatMap((group) => {
14
+ const name = group.series.name;
15
+ const disabledFill = ctx.interaction?.fillFor(name);
16
+ const disabledStroke = ctx.interaction?.strokeFor(name);
17
+ return group.visualSegments.map((seg) => {
18
+ const color = seg.styles.fill ?? state.colorForSeries(name);
19
+ const style = asLine
20
+ ? {
21
+ stroke: disabledStroke?.stroke ?? seg.styles.stroke ?? color,
22
+ strokeWidth: disabledStroke?.strokeWidth ?? seg.styles.strokeWidth ?? cfg.density.strokeWidth,
23
+ strokeOpacity: disabledStroke?.strokeOpacity ?? seg.styles.strokeOpacity,
24
+ strokeDasharray: disabledStroke?.strokeDasharray ?? seg.styles.strokeDasharray
25
+ }
26
+ : {
27
+ ...seg.styles,
28
+ fill: disabledFill?.fill ?? color,
29
+ fillOpacity: disabledFill?.fillOpacity ?? seg.styles.fillOpacity ?? cfg.density.fillOpacity
30
+ };
31
+ return Transforms.finish({
32
+ type: asLine ? 'line' : 'area',
33
+ series: name,
34
+ data: seg.data,
35
+ ...channels,
36
+ ...options,
37
+ curve: styles?.curve,
38
+ styles: style
39
+ }, transforms);
40
+ });
41
+ });
42
+ }
@@ -1,10 +1,10 @@
1
1
  <script lang="ts" generics="TData extends Record<string, unknown>">
2
- import Plot from '../../layout/plot/Plot.svelte';
2
+ import Plot from '../../../layout/plot/Plot.svelte';
3
3
  import { buildHistogramDefaults } from './defaults';
4
4
  import type {
5
5
  HistogramPlotProps,
6
6
  HistogramPlotCoreProps
7
- } from '../../types/plots/histogram/props';
7
+ } from '../../../types/plots/distribution/histogram/props';
8
8
 
9
9
  /**
10
10
  * A histogram: each series binned on `x` - or on `y` alone, for horizontal bars - one bar per bin. Draws from pre-built `series` or flat `data` rows.
@@ -1,5 +1,5 @@
1
- import Plot from '../../layout/plot/Plot.svelte';
2
- import type { HistogramPlotProps } from '../../types/plots/histogram/props';
1
+ import Plot from '../../../layout/plot/Plot.svelte';
2
+ import type { HistogramPlotProps } from '../../../types/plots/distribution/histogram/props';
3
3
  declare function $$render<TData extends Record<string, unknown>>(): {
4
4
  props: HistogramPlotProps<TData>;
5
5
  exports: {};
@@ -1,5 +1,5 @@
1
- import type { AxisPlotDefaults } from '../../types/phases';
2
- import type { HistogramPlotState, HistogramPlotCtx } from '../../types/plots/histogram/state';
1
+ import type { AxisPlotDefaults } from '../../../types/phases';
2
+ import type { HistogramPlotState, HistogramPlotCtx } from '../../../types/plots/distribution/histogram/state';
3
3
  /**
4
4
  * HistogramPlot on the shared pipeline: series read one position channel -
5
5
  * `x`, or `y` for a horizontal histogram - binned by the plot's transforms
@@ -1,7 +1,7 @@
1
1
  import { buildMarks, buildValueLabels } from './markers';
2
- import { SERIES_KEY } from '../../phases/transforms/TransformsPhase';
3
- import { resolveAccessor } from '../utils/accessors';
4
- import { PlotAxes } from '../../phases/data/PlotAxes';
2
+ import { SERIES_KEY } from '../../../phases/transforms/TransformsPhase';
3
+ import { resolveAccessor } from '../../../utils/accessors';
4
+ import { PlotAxes } from '../../../phases/data/PlotAxes';
5
5
  /** One processed channel's value on a row - `undefined` for a channel the transforms didn't set. */
6
6
  function readChannel(channel) {
7
7
  return channel === undefined
@@ -32,7 +32,7 @@ function mergeBin(own, cfg, horizontal) {
32
32
  */
33
33
  export function buildHistogramDefaults() {
34
34
  return {
35
- data: { segments: { color: (style) => style?.fill } },
35
+ data: { segments: { color: (style) => style?.fill, connect: false } },
36
36
  transforms: {
37
37
  transforms: (state, ctx) => mergeBin(state.transforms ?? [], ctx.cfg, state.axes?.isHorizontal ?? false)
38
38
  },
@@ -1,6 +1,6 @@
1
- import type { HistogramPlotState, HistogramPlotCtx } from '../../types/plots/histogram/state';
2
- import type { AxisBasedMarkersConfig, TextMarkerConfig } from '../../types/markers/common';
3
- import type { ValueLabels } from '../../layout/styles/ValueLabels';
1
+ import type { HistogramPlotState, HistogramPlotCtx } from '../../../types/plots/distribution/histogram/state';
2
+ import type { AxisBasedMarkersConfig, TextMarkerConfig } from '../../../types/markers/common';
3
+ import type { ValueLabels } from '../../../layout/styles/ValueLabels';
4
4
  /**
5
5
  * HistogramPlot's `styles.values` as one `'text'` marker over its non-empty
6
6
  * bins (a `filter` on the count), each labelled with its count by `format`.
@@ -1,7 +1,8 @@
1
- import { SERIES_KEY, TransformsPhase } from '../../phases/transforms/TransformsPhase';
2
- import { Transforms } from '../../phases/transforms/Transforms';
3
- import { resolveAccessor } from '../utils/accessors';
4
- import { PlotAxes } from '../../phases/data/PlotAxes';
1
+ import { ProcessedPositions } from '../../../phases/transforms/ProcessedPositions';
2
+ import { SERIES_KEY } from '../../../phases/transforms/TransformsPhase';
3
+ import { Transforms } from '../../../phases/transforms/Transforms';
4
+ import { resolveAccessor } from '../../../utils/accessors';
5
+ import { PlotAxes } from '../../../phases/data/PlotAxes';
5
6
  /**
6
7
  * HistogramPlot's `styles.values` as one `'text'` marker over its non-empty
7
8
  * bins (a `filter` on the count), each labelled with its count by `format`.
@@ -18,7 +19,7 @@ export function buildValueLabels(labels, state, ctx) {
18
19
  const value = PlotAxes.valueOf(state);
19
20
  const binned = PlotAxes.other(value);
20
21
  const horizontal = value === 'x';
21
- const position = TransformsPhase.processedPosition(processed, value);
22
+ const position = ProcessedPositions.of(processed, value);
22
23
  const read = (channel) => channel === undefined
23
24
  ? undefined
24
25
  : resolveAccessor(channel);
@@ -69,8 +70,7 @@ export function buildValueLabels(labels, state, ctx) {
69
70
  export function buildMarks(state, ctx) {
70
71
  const { channels, options, transforms } = state.processedData;
71
72
  const fillOpacity = ctx.cfg.histogram.fillOpacity;
72
- // Bins are discrete, so adjacent segments share no boundary bar to bridge.
73
- const rects = TransformsPhase.buildProcessedGroups(state, false).flatMap((group) => {
73
+ const rects = (state.processedGroups ?? []).flatMap((group) => {
74
74
  const disabled = ctx.interaction?.fillFor(group.series.name);
75
75
  return group.visualSegments.map((seg) => Transforms.finish({
76
76
  type: 'rect',
@@ -1,7 +1,10 @@
1
1
  <script lang="ts" generics="TData extends Record<string, unknown>">
2
- import Plot from '../../layout/plot/Plot.svelte';
2
+ import Plot from '../../../layout/plot/Plot.svelte';
3
3
  import { buildPyramidDefaults } from './defaults';
4
- import type { PyramidPlotProps, PyramidPlotCoreProps } from '../../types/plots/pyramid/props';
4
+ import type {
5
+ PyramidPlotProps,
6
+ PyramidPlotCoreProps
7
+ } from '../../../types/plots/distribution/pyramid/props';
5
8
 
6
9
  /**
7
10
  * A population-pyramid-style diverging bar plot: horizontal when its categories run along `y`, vertical when they run along `x`. Draws from pre-built `series` or flat `data` rows.
@@ -1,5 +1,5 @@
1
- import Plot from '../../layout/plot/Plot.svelte';
2
- import type { PyramidPlotProps } from '../../types/plots/pyramid/props';
1
+ import Plot from '../../../layout/plot/Plot.svelte';
2
+ import type { PyramidPlotProps } from '../../../types/plots/distribution/pyramid/props';
3
3
  declare function $$render<TData extends Record<string, unknown>>(): {
4
4
  props: PyramidPlotProps<TData>;
5
5
  exports: {};
@@ -1,5 +1,5 @@
1
- import type { AxisPlotDefaults } from '../../types/phases';
2
- import type { PyramidPlotState, PyramidPlotCtx } from '../../types/plots/pyramid/state';
1
+ import type { AxisPlotDefaults } from '../../../types/phases';
2
+ import type { PyramidPlotState, PyramidPlotCtx } from '../../../types/plots/distribution/pyramid/state';
3
3
  /**
4
4
  * PyramidPlot on the shared pipeline. Its `x`/`y` are the visual axes: the one
5
5
  * holding categories (read off the values by the "data" phase) runs the bars,
@@ -1,9 +1,10 @@
1
- import { PlotAxes } from '../../phases/data/PlotAxes';
1
+ import { ProcessedPositions } from '../../../phases/transforms/ProcessedPositions';
2
+ import { PlotAxes } from '../../../phases/data/PlotAxes';
2
3
  import { buildMarks, buildValueLabels } from './markers';
3
- import { ValueLabels } from '../../layout/styles/ValueLabels';
4
- import { seriesIdOf } from '../../utils/grouping';
5
- import { isGapValue } from '../utils/gaps';
6
- import { SERIES_ID_KEY, TransformsPhase } from '../../phases/transforms/TransformsPhase';
4
+ import { ValueLabels } from '../../../layout/styles/ValueLabels';
5
+ import { seriesIdOf } from '../../../utils/grouping';
6
+ import { isGapValue } from '../../utils/gaps';
7
+ import { SERIES_ID_KEY } from '../../../phases/transforms/TransformsPhase';
7
8
  const byName = (a, b) => a.name.localeCompare(b.name);
8
9
  /**
9
10
  * PyramidPlot on the shared pipeline. Its `x`/`y` are the visual axes: the one
@@ -64,7 +65,7 @@ export function buildPyramidDefaults() {
64
65
  // side - and its category, and reads as its magnitude.
65
66
  position: (state) => {
66
67
  const value = PlotAxes.valueOf(state);
67
- const place = TransformsPhase.processedPosition(state.processedData, value);
68
+ const place = ProcessedPositions.of(state.processedData, value);
68
69
  const valueOf = ValueLabels.valueOf(state);
69
70
  const sideOf = new Map((state.resolvedSeries ?? []).map((s) => [seriesIdOf(s), s.side]));
70
71
  const signed = (row) => {
@@ -1,7 +1,7 @@
1
- import type { TextMarkerConfig } from '../../types/markers/common';
2
- import type { PyramidPlotState, PyramidPlotCtx } from '../../types/plots/pyramid/state';
3
- import type { ValueLabels } from '../../layout/styles/ValueLabels';
4
- import type { AxisBasedMarkersConfig } from '../../types/markers/common';
1
+ import type { TextMarkerConfig } from '../../../types/markers/common';
2
+ import type { PyramidPlotState, PyramidPlotCtx } from '../../../types/plots/distribution/pyramid/state';
3
+ import type { ValueLabels } from '../../../layout/styles/ValueLabels';
4
+ import type { AxisBasedMarkersConfig } from '../../../types/markers/common';
5
5
  /**
6
6
  * PyramidPlot's `styles.values` as one `'text'` marker per series, over the
7
7
  * same processed rows its bars draw (gap rows never get a label), mirrored to
@@ -1,9 +1,9 @@
1
- import { resolveAccessor } from '../utils/accessors';
2
- import { SERIES_ID_KEY, TransformsPhase } from '../../phases/transforms/TransformsPhase';
3
- import { seriesIdOf } from '../../utils/grouping';
4
- import { PlotAxes } from '../../phases/data/PlotAxes';
5
- import { getConfiguration } from '../../configuration/config.svelte';
6
- import { isGapValue, resolveGapAreaStyle } from '../utils/gaps';
1
+ import { resolveAccessor } from '../../../utils/accessors';
2
+ import { SERIES_ID_KEY } from '../../../phases/transforms/TransformsPhase';
3
+ import { seriesIdOf } from '../../../utils/grouping';
4
+ import { PlotAxes } from '../../../phases/data/PlotAxes';
5
+ import { getConfiguration } from '../../../configuration/config.svelte';
6
+ import { isGapValue, resolveGapAreaStyle } from '../../utils/gaps';
7
7
  const GAP_KINDS = ['start', 'middle', 'end'];
8
8
  function signFor(s, magnitude) {
9
9
  return s.side === 'left' ? -magnitude : magnitude;
@@ -23,7 +23,7 @@ export function buildValueLabels(labels, state, ctx) {
23
23
  const categoryAxis = PlotAxes.categoryOf(state);
24
24
  const valueAxis = PlotAxes.valueOf(state);
25
25
  const isHorizontal = state.axes?.isHorizontal ?? true;
26
- return TransformsPhase.buildProcessedGroups(state, false).flatMap(({ series }) => {
26
+ return (state.processedGroups ?? []).flatMap(({ series }) => {
27
27
  const id = seriesIdOf(series);
28
28
  const side = state.resolvedSeries.find((s) => seriesIdOf(s) === id).side;
29
29
  const isLeft = side === 'left';
@@ -93,10 +93,7 @@ export function buildMarks(state, ctx) {
93
93
  [`${valueAxis}2`]: to
94
94
  });
95
95
  // The real bars draw the rows the "transforms" phase left, read through its channels.
96
- const processedGroups = new Map(TransformsPhase.buildProcessedGroups(state, false).map((g) => [
97
- seriesIdOf(g.series),
98
- g
99
- ]));
96
+ const processedGroups = new Map((state.processedGroups ?? []).map((g) => [seriesIdOf(g.series), g]));
100
97
  const markers = [];
101
98
  for (const group of groupedSeries) {
102
99
  // Forwarded raw (a field key or function, whatever the series' category is)
@@ -0,0 +1,45 @@
1
+ <script lang="ts" generics="TData extends Record<string, unknown>">
2
+ import Plot from '../../../layout/plot/Plot.svelte';
3
+ import { buildViolinDefaults } from './defaults';
4
+ import type {
5
+ ViolinPlotProps,
6
+ ViolinPlotCoreProps
7
+ } from '../../../types/plots/distribution/violin/props';
8
+
9
+ /**
10
+ * A violin per category: the mirrored density estimate of each category's values, with a box inside. Draws from pre-built `series` or flat `data` rows.
11
+ * Optional chrome (`title`, `subtitle`, `caption`, `header`, `footer`,
12
+ * `legend`) frames it; `timeline` and `facet` slice its `data` rows.
13
+ * `margins` is bindable: it reports the margin the plot settled on.
14
+ */
15
+ let {
16
+ title,
17
+ subtitle,
18
+ caption,
19
+ header,
20
+ footer,
21
+ legend,
22
+ order,
23
+ timeline,
24
+ facet,
25
+ tooltip,
26
+ margins = $bindable(),
27
+ ...core
28
+ }: ViolinPlotProps<TData> = $props();
29
+ </script>
30
+
31
+ <Plot
32
+ core={core as ViolinPlotCoreProps<TData>}
33
+ defaults={buildViolinDefaults}
34
+ bind:margins
35
+ {title}
36
+ {subtitle}
37
+ {caption}
38
+ {header}
39
+ {footer}
40
+ {legend}
41
+ {order}
42
+ {timeline}
43
+ {facet}
44
+ {tooltip}
45
+ />
@@ -0,0 +1,26 @@
1
+ import Plot from '../../../layout/plot/Plot.svelte';
2
+ import type { ViolinPlotProps } from '../../../types/plots/distribution/violin/props';
3
+ declare function $$render<TData extends Record<string, unknown>>(): {
4
+ props: ViolinPlotProps<TData>;
5
+ exports: {};
6
+ bindings: "margins";
7
+ slots: {};
8
+ events: {};
9
+ };
10
+ declare class __sveltets_Render<TData extends Record<string, unknown>> {
11
+ props(): ReturnType<typeof $$render<TData>>['props'];
12
+ events(): ReturnType<typeof $$render<TData>>['events'];
13
+ slots(): ReturnType<typeof $$render<TData>>['slots'];
14
+ bindings(): "margins";
15
+ exports(): {};
16
+ }
17
+ interface $$IsomorphicComponent {
18
+ new <TData extends Record<string, unknown>>(options: import('svelte').ComponentConstructorOptions<ReturnType<__sveltets_Render<TData>['props']>>): import('svelte').SvelteComponent<ReturnType<__sveltets_Render<TData>['props']>, ReturnType<__sveltets_Render<TData>['events']>, ReturnType<__sveltets_Render<TData>['slots']>> & {
19
+ $$bindings?: ReturnType<__sveltets_Render<TData>['bindings']>;
20
+ } & ReturnType<__sveltets_Render<TData>['exports']>;
21
+ <TData extends Record<string, unknown>>(internal: unknown, props: ReturnType<__sveltets_Render<TData>['props']> & {}): ReturnType<__sveltets_Render<TData>['exports']>;
22
+ z_$$bindings?: ReturnType<__sveltets_Render<any>['bindings']>;
23
+ }
24
+ declare const Plot: $$IsomorphicComponent;
25
+ type Plot<TData extends Record<string, unknown>> = InstanceType<typeof Plot<TData>>;
26
+ export default Plot;
@@ -0,0 +1,10 @@
1
+ import type { AxisPlotDefaults } from '../../../types/phases';
2
+ import type { ViolinPlotState, ViolinPlotCtx } from '../../../types/plots/distribution/violin/state';
3
+ /**
4
+ * ViolinPlot on the shared pipeline: one violin per category of each series
5
+ * along one category axis - `x`, or `y` for horizontal violins - in the order
6
+ * the data gives them, with its own band padding and markers. The value axis
7
+ * fits the values, without reaching for zero. Its plot defaults to: hover
8
+ * along the category axis, over one summary per violin, read as a box plot's.
9
+ */
10
+ export declare function buildViolinDefaults<TData extends Record<string, unknown>>(): AxisPlotDefaults<ViolinPlotState<TData>, ViolinPlotCtx>;