@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,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 { buildScatterDefaults } from './defaults';
4
- import type { ScatterPlotProps, ScatterPlotCoreProps } from '../../types/plots/scatter/props';
4
+ import type {
5
+ ScatterPlotProps,
6
+ ScatterPlotCoreProps
7
+ } from '../../../types/plots/correlation/scatter/props';
5
8
 
6
9
  /**
7
10
  * A point cloud on continuous x/y axes; `r` sizes each dot. Draws from pre-built `series` or flat `data` rows.
@@ -1,5 +1,5 @@
1
- import Plot from '../../layout/plot/Plot.svelte';
2
- import type { ScatterPlotProps } from '../../types/plots/scatter/props';
1
+ import Plot from '../../../layout/plot/Plot.svelte';
2
+ import type { ScatterPlotProps } from '../../../types/plots/correlation/scatter/props';
3
3
  declare function $$render<TData extends Record<string, unknown>>(): {
4
4
  props: ScatterPlotProps<TData>;
5
5
  exports: {};
@@ -1,4 +1,4 @@
1
- import type { AxisPlotDefaults } from '../../types/phases';
2
- import type { ScatterPlotState, ScatterPlotCtx } from '../../types/plots/scatter/state';
1
+ import type { AxisPlotDefaults } from '../../../types/phases';
2
+ import type { ScatterPlotState, ScatterPlotCtx } from '../../../types/plots/correlation/scatter/state';
3
3
  /** ScatterPlot on the shared pipeline: discrete dots, its own radius-padded scales, and its own markers. Its plot defaults to: hover the exact point. */
4
4
  export declare function buildScatterDefaults<TData extends Record<string, unknown>>(): AxisPlotDefaults<ScatterPlotState<TData>, ScatterPlotCtx>;
@@ -1,7 +1,7 @@
1
- import { ProcessedPositions } from '../../phases/transforms/ProcessedPositions';
1
+ import { ProcessedPositions } from '../../../phases/transforms/ProcessedPositions';
2
2
  import { buildMarks, buildValueLabels } from './markers';
3
- import { Margins } from '../../layout/margins/Margins';
4
- import { MarkerAxisValues } from '../../phases/scales/MarkerAxisValues';
3
+ import { Margins } from '../../../layout/margins/Margins';
4
+ import { MarkerAxisValues } from '../../../phases/scales/MarkerAxisValues';
5
5
  /** Stand-in max render radius for a channel-bound `r` (svelteplot's own auto sqrt scale). */
6
6
  const AUTO_SCALED_RADIUS_ESTIMATE = 20;
7
7
  /**
@@ -53,7 +53,7 @@ function fitDomains(state, ctx) {
53
53
  const values = [...processed.data.map((d) => Number(position[axis](d))), ...extra[axis]];
54
54
  const domain = paddedDomain(values, radius, size);
55
55
  if (domain)
56
- fit[axis] = { domain };
56
+ fit[axis] = { domain, fitted: true };
57
57
  }
58
58
  return fit;
59
59
  }
@@ -1,7 +1,7 @@
1
- import type { ScatterPlotState, ScatterPlotCtx } from '../../types/plots/scatter/state';
2
- import type { TextMarkerConfig } from '../../types/markers/common';
3
- import { ValueLabels } from '../../layout/styles/ValueLabels';
4
- import type { AxisBasedMarkersConfig } from '../../types/markers/common';
1
+ import type { ScatterPlotState, ScatterPlotCtx } from '../../../types/plots/correlation/scatter/state';
2
+ import type { TextMarkerConfig } from '../../../types/markers/common';
3
+ import { ValueLabels } from '../../../layout/styles/ValueLabels';
4
+ import type { AxisBasedMarkersConfig } from '../../../types/markers/common';
5
5
  /**
6
6
  * ScatterPlot's `styles.values` as one `'text'` marker over the same
7
7
  * processed rows its dots draw, each labelled with its own `y` value. A label
@@ -1,6 +1,6 @@
1
- import { ProcessedPositions } from '../../phases/transforms/ProcessedPositions';
2
- import { SERIES_KEY } from '../../phases/transforms/TransformsPhase';
3
- import { ValueLabels } from '../../layout/styles/ValueLabels';
1
+ import { ProcessedPositions } from '../../../phases/transforms/ProcessedPositions';
2
+ import { SERIES_KEY } from '../../../phases/transforms/TransformsPhase';
3
+ import { ValueLabels } from '../../../layout/styles/ValueLabels';
4
4
  /**
5
5
  * ScatterPlot's `styles.values` as one `'text'` marker over the same
6
6
  * processed rows its dots draw, each labelled with its own `y` value. A label
@@ -1,5 +1,5 @@
1
- import type { HoverPosition } from '../../types/phases';
2
- import type { BoxPlotState, BoxSummaryRow } from '../../types/plots/box/state';
1
+ import type { HoverPosition } from '../../../types/phases';
2
+ import type { BoxPlotState, BoxSummaryRow } from '../../../types/plots/distribution/box/state';
3
3
  /**
4
4
  * The boxes a box plot draws, one summary row per series, category and facet
5
5
  * panel - the same quartiles and whiskers svelteplot's `BoxX`/`BoxY` compute,
@@ -1,10 +1,10 @@
1
- import { ProcessedPositions } from '../../phases/transforms/ProcessedPositions';
1
+ import { ProcessedPositions } from '../../../phases/transforms/ProcessedPositions';
2
2
  import { quantile } from 'd3-array';
3
- import { SERIES_ID_KEY, SERIES_KEY } from '../../phases/transforms/TransformsPhase';
4
- import { PANEL_KEY } from '../../phases/facet/FacetPanels';
5
- import { PlotAxes } from '../../phases/data/PlotAxes';
6
- import { TooltipState } from '../../layout/tooltip/TooltipState.svelte';
7
- import { isGapValue } from '../utils/gaps';
3
+ import { SERIES_ID_KEY, SERIES_KEY } from '../../../phases/transforms/TransformsPhase';
4
+ import { PANEL_KEY } from '../../../phases/facet/FacetPanels';
5
+ import { PlotAxes } from '../../../phases/data/PlotAxes';
6
+ import { TooltipState } from '../../../layout/tooltip/TooltipState.svelte';
7
+ import { isGapValue } from '../../utils/gaps';
8
8
  /** The whiskers reach this many interquartile ranges past the box, as svelteplot draws them. */
9
9
  const WHISKER_IQR = 1.5;
10
10
  /** A summary value as a tooltip shows it: at most two decimals. */
@@ -1,7 +1,7 @@
1
1
  <script lang="ts" generics="TData extends Record<string, unknown>">
2
- import Plot from '../../layout/plot/Plot.svelte';
2
+ import Plot from '../../../layout/plot/Plot.svelte';
3
3
  import { buildBoxDefaults } from './defaults';
4
- import type { BoxPlotProps, BoxPlotCoreProps } from '../../types/plots/box/props';
4
+ import type { BoxPlotProps, BoxPlotCoreProps } from '../../../types/plots/distribution/box/props';
5
5
 
6
6
  /**
7
7
  * A box plot: the distribution of each series' values per category - quartiles, whiskers and outliers - one box per category, upright, or sideways when the categories run along `y`. Draws from pre-built `series` or flat `data` rows.
@@ -1,5 +1,5 @@
1
- import Plot from '../../layout/plot/Plot.svelte';
2
- import type { BoxPlotProps } from '../../types/plots/box/props';
1
+ import Plot from '../../../layout/plot/Plot.svelte';
2
+ import type { BoxPlotProps } from '../../../types/plots/distribution/box/props';
3
3
  declare function $$render<TData extends Record<string, unknown>>(): {
4
4
  props: BoxPlotProps<TData>;
5
5
  exports: {};
@@ -1,5 +1,5 @@
1
- import type { AxisPlotDefaults } from '../../types/phases';
2
- import type { BoxPlotState, BoxPlotCtx } from '../../types/plots/box/state';
1
+ import type { AxisPlotDefaults } from '../../../types/phases';
2
+ import type { BoxPlotState, BoxPlotCtx } from '../../../types/plots/distribution/box/state';
3
3
  /**
4
4
  * BoxPlot on the shared pipeline: one box per category of each series along
5
5
  * one category axis - `x`, or `y` for horizontal boxes, as the "data" phase
@@ -1,6 +1,6 @@
1
1
  import { buildMarks } from './markers';
2
2
  import { BoxSummaries } from './BoxSummaries';
3
- import { TooltipState } from '../../layout/tooltip/TooltipState.svelte';
3
+ import { TooltipState } from '../../../layout/tooltip/TooltipState.svelte';
4
4
  /**
5
5
  * BoxPlot on the shared pipeline: one box per category of each series along
6
6
  * one category axis - `x`, or `y` for horizontal boxes, as the "data" phase
@@ -1,5 +1,5 @@
1
- import type { BoxPlotState, BoxPlotCtx } from '../../types/plots/box/state';
2
- import type { AxisBasedMarkersConfig } from '../../types/markers/common';
1
+ import type { BoxPlotState, BoxPlotCtx } from '../../../types/plots/distribution/box/state';
2
+ import type { AxisBasedMarkersConfig } from '../../../types/markers/common';
3
3
  /**
4
4
  * BoxPlot's "markers" phase: one `box` per visual segment of each series,
5
5
  * one box per category of its rows, filled with its series' color (or its
@@ -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
@@ -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,8 +1,8 @@
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';
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';
6
6
  /**
7
7
  * HistogramPlot's `styles.values` as one `'text'` marker over its non-empty
8
8
  * bins (a `filter` on the count), each labelled with its count by `format`.
@@ -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,10 +1,10 @@
1
- import { ProcessedPositions } from '../../phases/transforms/ProcessedPositions';
2
- import { PlotAxes } from '../../phases/data/PlotAxes';
1
+ import { ProcessedPositions } from '../../../phases/transforms/ProcessedPositions';
2
+ import { PlotAxes } from '../../../phases/data/PlotAxes';
3
3
  import { buildMarks, buildValueLabels } from './markers';
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';
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';
8
8
  const byName = (a, b) => a.name.localeCompare(b.name);
9
9
  /**
10
10
  * PyramidPlot on the shared pipeline. Its `x`/`y` are the visual axes: the one
@@ -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 } 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;
@@ -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>;
@@ -0,0 +1,58 @@
1
+ import { buildMarks } from './markers';
2
+ import { BoxSummaries } from '../box/BoxSummaries';
3
+ import { PlotAxes } from '../../../phases/data/PlotAxes';
4
+ import { ProcessedPositions } from '../../../phases/transforms/ProcessedPositions';
5
+ import { NiceTicks } from '../../../layout/scales/NiceTicks';
6
+ import { TooltipState } from '../../../layout/tooltip/TooltipState.svelte';
7
+ /**
8
+ * The value axis fit to the values the violins are drawn from, when the author leaves it unpinned: no svelteplot mark reads them, so nothing else sets its domain.
9
+ */
10
+ function fitValueDomain(state) {
11
+ const axis = PlotAxes.valueOf(state);
12
+ const scale = state.scales[axis];
13
+ if (scale?.domain != null || scale?.ticks != null || typeof scale?.nice === 'boolean')
14
+ return {};
15
+ const values = ProcessedPositions.values(state.processedData, axis)
16
+ .map(Number)
17
+ .filter(Number.isFinite);
18
+ const lo = Math.min(...values);
19
+ const hi = Math.max(...values);
20
+ if (!(hi > lo))
21
+ return {};
22
+ return {
23
+ [axis]: { domain: NiceTicks.fit(state, axis, lo, hi, NiceTicks.toleranceOf(scale?.nice)) }
24
+ };
25
+ }
26
+ /**
27
+ * ViolinPlot on the shared pipeline: one violin per category of each series
28
+ * along one category axis - `x`, or `y` for horizontal violins - in the order
29
+ * the data gives them, with its own band padding and markers. The value axis
30
+ * fits the values, without reaching for zero. Its plot defaults to: hover
31
+ * along the category axis, over one summary per violin, read as a box plot's.
32
+ */
33
+ export function buildViolinDefaults() {
34
+ return {
35
+ data: {
36
+ discreteAxes: 1,
37
+ segments: { color: (style) => style?.fill, connect: false }
38
+ },
39
+ scales: {
40
+ bandOrder: 'data',
41
+ fit: (state) => fitValueDomain(state),
42
+ defaults: (_state, ctx) => ({
43
+ category: {
44
+ paddingInner: ctx.cfg.violin.paddingInner,
45
+ paddingOuter: ctx.cfg.violin.paddingOuter
46
+ }
47
+ })
48
+ },
49
+ markers: { marks: buildMarks },
50
+ hover: {
51
+ rows: BoxSummaries.of,
52
+ position: BoxSummaries.position,
53
+ label: () => ((row) => String(row.median)),
54
+ format: (state) => BoxSummaries.format(state),
55
+ sort: () => TooltipState.descending((row) => row.median)
56
+ }
57
+ };
58
+ }