@fundar/data-chart-telling 0.0.63 → 1.0.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.
- package/CHANGELOG.md +17 -0
- package/LICENSE +21 -0
- package/README.md +81 -558
- package/dist/configuration/config.svelte.d.ts +5 -5
- package/dist/configuration/config.svelte.js +133 -46
- package/dist/configuration/fonts.d.ts +6 -0
- package/dist/configuration/fonts.js +6 -0
- package/dist/configuration/themes/compact.d.ts +2 -2
- package/dist/configuration/themes/compact.js +1 -1
- package/dist/configuration/themes/dark.d.ts +2 -2
- package/dist/configuration/themes/dark.js +5 -4
- package/dist/configuration/themes/default.d.ts +8 -3
- package/dist/configuration/themes/default.js +8 -2
- package/dist/configuration/themes/editorial.d.ts +2 -2
- package/dist/configuration/themes/editorial.js +2 -2
- package/dist/configuration/themes/index.d.ts +433 -80
- package/dist/configuration/themes/index.js +6 -5
- package/dist/index.d.ts +34 -48
- package/dist/index.js +19 -35
- package/dist/layout/base/BasePlotLayout.svelte +312 -0
- package/dist/layout/base/BasePlotLayout.svelte.d.ts +111 -0
- package/dist/layout/composer/PlotComposer.svelte +94 -0
- package/dist/layout/composer/PlotComposer.svelte.d.ts +13 -0
- package/dist/layout/coordinates/CameraFit.svelte +4 -4
- package/dist/layout/coordinates/CoordinatesLayout.svelte +11 -3
- package/dist/layout/coordinates/CoordinatesLayout.svelte.d.ts +6 -2
- package/dist/layout/coordinates/camera.svelte.d.ts +1 -1
- package/dist/layout/coordinates/camera.svelte.js +6 -6
- package/dist/layout/coordinates/projections/argentina.js +3 -3
- package/dist/layout/coordinates/projections/fit.js +1 -1
- package/dist/layout/coordinates/resolveCameraTarget.d.ts +1 -1
- package/dist/layout/coordinates/resolveProjection.d.ts +1 -1
- package/dist/layout/coordinates/resolveProjection.js +2 -2
- package/dist/layout/coordinates/rotate.svelte.d.ts +3 -3
- package/dist/layout/coordinates/rotate.svelte.js +8 -8
- package/dist/layout/coordinates/zoom.svelte.d.ts +1 -1
- package/dist/layout/facet/FacetIndicator.svelte +23 -23
- package/dist/layout/facet/FacetLayout.svelte +435 -398
- package/dist/layout/facet/FacetLayout.svelte.d.ts +9 -3
- package/dist/layout/facet/axes.d.ts +16 -0
- package/dist/layout/facet/axes.js +25 -0
- package/dist/layout/facet/config.d.ts +32 -0
- package/dist/layout/facet/config.js +82 -0
- package/dist/layout/figure/Figure.svelte +177 -0
- package/dist/layout/figure/Figure.svelte.d.ts +14 -0
- package/dist/layout/figure/FigureChrome.svelte +341 -0
- package/dist/layout/figure/FigureChrome.svelte.d.ts +21 -0
- package/dist/layout/geometry/FrameClip.svelte +45 -0
- package/dist/layout/geometry/FrameClip.svelte.d.ts +8 -0
- package/dist/layout/geometry/FrameClipping.d.ts +24 -0
- package/dist/layout/geometry/FrameClipping.js +40 -0
- package/dist/layout/geometry/GeometryLayout.svelte +287 -224
- package/dist/layout/geometry/GeometryLayout.svelte.d.ts +10 -10
- package/dist/layout/grid/Grid.svelte +194 -0
- package/dist/layout/grid/Grid.svelte.d.ts +26 -0
- package/dist/layout/grid/GridAlignment.svelte.d.ts +31 -0
- package/dist/layout/grid/GridAlignment.svelte.js +56 -0
- package/dist/layout/grid/GridCell.svelte +141 -0
- package/dist/layout/grid/GridCell.svelte.d.ts +17 -0
- package/dist/layout/grid/GridCellsRegistry.svelte.d.ts +52 -0
- package/dist/layout/grid/GridCellsRegistry.svelte.js +70 -0
- package/dist/layout/grid/GridPlan.d.ts +49 -0
- package/dist/layout/grid/GridPlan.js +167 -0
- package/dist/layout/grid/Tags.d.ts +8 -0
- package/dist/layout/grid/Tags.js +39 -0
- package/dist/layout/hover/HoverScope.svelte +11 -0
- package/dist/layout/hover/HoverScope.svelte.d.ts +8 -0
- package/dist/layout/hover/HoverSettings.d.ts +20 -0
- package/dist/layout/hover/HoverSettings.js +27 -0
- package/dist/layout/hover/HoverState.svelte.d.ts +47 -0
- package/dist/layout/hover/HoverState.svelte.js +99 -0
- package/dist/layout/hover/PlotHover.svelte.d.ts +63 -0
- package/dist/layout/hover/PlotHover.svelte.js +133 -0
- package/dist/layout/interaction/PlotInteraction.svelte.d.ts +38 -0
- package/dist/layout/interaction/PlotInteraction.svelte.js +56 -0
- package/dist/layout/legend/AxisNumberFormat.d.ts +12 -0
- package/dist/layout/legend/AxisNumberFormat.js +25 -0
- package/dist/layout/legend/ContinuousSection.svelte +365 -335
- package/dist/layout/legend/DisabledStyle.d.ts +19 -0
- package/dist/layout/legend/DisabledStyle.js +57 -0
- package/dist/layout/legend/DiscreteBadgeItem.svelte +6 -3
- package/dist/layout/legend/DiscreteSection.svelte +39 -32
- package/dist/layout/legend/DiscreteSwatchItem.svelte +4 -1
- package/dist/layout/legend/DiscreteSymbolIcon.svelte +14 -9
- package/dist/layout/legend/LegendChannels.d.ts +21 -0
- package/dist/layout/legend/LegendChannels.js +221 -0
- package/dist/layout/legend/LegendLayout.svelte +49 -43
- package/dist/layout/legend/LegendState.svelte.d.ts +79 -0
- package/dist/layout/legend/LegendState.svelte.js +329 -0
- package/dist/layout/legend/LegendText.d.ts +12 -0
- package/dist/layout/legend/LegendText.js +22 -0
- package/dist/layout/legend/SizeSection.svelte +84 -0
- package/dist/layout/legend/SizeSection.svelte.d.ts +7 -0
- package/dist/layout/legend/SymbolSection.svelte +31 -0
- package/dist/layout/legend/SymbolSection.svelte.d.ts +8 -0
- package/dist/layout/margins/Box.d.ts +84 -0
- package/dist/layout/margins/Box.js +138 -0
- package/dist/layout/margins/Margins.d.ts +37 -0
- package/dist/layout/margins/Margins.js +71 -0
- package/dist/layout/margins/PlotMargins.svelte.d.ts +101 -0
- package/dist/layout/margins/PlotMargins.svelte.js +219 -0
- package/dist/layout/plot/Core.svelte +61 -0
- package/dist/layout/plot/Core.svelte.d.ts +41 -0
- package/dist/layout/plot/PanelRun.svelte +28 -0
- package/dist/{charts/heatmap/Chart.svelte.d.ts → layout/plot/PanelRun.svelte.d.ts} +11 -7
- package/dist/layout/plot/Plot.svelte +284 -0
- package/dist/layout/plot/Plot.svelte.d.ts +49 -0
- package/dist/layout/plot/PlotContext.d.ts +41 -0
- package/dist/layout/plot/PlotContext.js +46 -0
- package/dist/layout/plot/PublicPlotContext.d.ts +130 -0
- package/dist/layout/plot/PublicPlotContext.js +236 -0
- package/dist/layout/plot/Slice.d.ts +44 -0
- package/dist/layout/plot/Slice.js +98 -0
- package/dist/layout/plot/usePlot.d.ts +9 -0
- package/dist/layout/plot/usePlot.js +13 -0
- package/dist/layout/scales/ScalesLayout.svelte +241 -206
- package/dist/layout/scales/ScalesLayout.svelte.d.ts +2 -1
- package/dist/layout/scales/buildScale.d.ts +5 -22
- package/dist/layout/scales/buildScale.js +11 -34
- package/dist/layout/scales/niceDomain.d.ts +3 -3
- package/dist/layout/scales/niceDomain.js +4 -4
- package/dist/layout/styles/StylesLayout.svelte +65 -65
- package/dist/layout/styles/TileLayer.svelte +78 -76
- package/dist/layout/styles/TileLayer.svelte.d.ts +1 -1
- package/dist/layout/styles/ValueLabels.d.ts +97 -0
- package/dist/layout/styles/ValueLabels.js +237 -0
- package/dist/layout/timeline/Timeline.svelte +80 -74
- package/dist/layout/timeline/TimelineFrame.svelte +86 -0
- package/dist/layout/timeline/TimelineFrame.svelte.d.ts +16 -0
- package/dist/layout/timeline/TimelineLayout.svelte +114 -169
- package/dist/layout/timeline/TimelineLayout.svelte.d.ts +2 -0
- package/dist/layout/timeline/TimelinePlayer.svelte +195 -0
- package/dist/layout/timeline/TimelinePlayer.svelte.d.ts +7 -0
- package/dist/layout/timeline/TimelineRule.svelte +50 -0
- package/dist/layout/timeline/TimelineRule.svelte.d.ts +7 -0
- package/dist/layout/timeline/TimelineState.svelte.d.ts +82 -0
- package/dist/layout/timeline/TimelineState.svelte.js +226 -0
- package/dist/layout/timeline/TimelineSteps.d.ts +24 -0
- package/dist/layout/timeline/TimelineSteps.js +48 -0
- package/dist/layout/tooltip/Tooltip.svelte +82 -85
- package/dist/layout/tooltip/Tooltip.svelte.d.ts +43 -24
- package/dist/layout/tooltip/TooltipState.svelte.d.ts +61 -0
- package/dist/layout/tooltip/TooltipState.svelte.js +107 -0
- package/dist/markers/MarkerKinds.d.ts +173 -0
- package/dist/markers/MarkerKinds.js +51 -0
- package/dist/markers/area/AreaMarker.svelte +110 -0
- package/dist/markers/area/AreaMarker.svelte.d.ts +7 -0
- package/dist/markers/arrow/ArrowMarker.svelte +28 -0
- package/dist/markers/arrow/ArrowMarker.svelte.d.ts +7 -0
- package/dist/markers/{BarMarker.svelte → bar/BarMarker.svelte} +54 -52
- package/dist/markers/{BarMarker.svelte.d.ts → bar/BarMarker.svelte.d.ts} +1 -1
- package/dist/markers/bollinger/BollingerMarker.svelte +44 -0
- package/dist/markers/bollinger/BollingerMarker.svelte.d.ts +7 -0
- package/dist/markers/box/BoxMarker.svelte +143 -0
- package/dist/markers/box/BoxMarker.svelte.d.ts +7 -0
- package/dist/markers/brush/BrushMarker.svelte +32 -0
- package/dist/markers/brush/BrushMarker.svelte.d.ts +7 -0
- package/dist/markers/cell/CellMarker.svelte +27 -0
- package/dist/markers/{CellMarker.svelte.d.ts → cell/CellMarker.svelte.d.ts} +1 -1
- package/dist/markers/contour/ContourClipMarker.svelte +83 -0
- package/dist/markers/{ContourClipMarker.svelte.d.ts → contour/ContourClipMarker.svelte.d.ts} +1 -1
- package/dist/markers/contour/ContourMarker.svelte +28 -0
- package/dist/markers/{ContourMarker.svelte.d.ts → contour/ContourMarker.svelte.d.ts} +1 -1
- package/dist/markers/delaunay/DelaunayLinkMarker.svelte +26 -0
- package/dist/markers/delaunay/DelaunayLinkMarker.svelte.d.ts +7 -0
- package/dist/markers/delaunay/DelaunayMeshMarker.svelte +26 -0
- package/dist/markers/delaunay/DelaunayMeshMarker.svelte.d.ts +7 -0
- package/dist/markers/delta/Delta.d.ts +21 -0
- package/dist/markers/delta/Delta.js +60 -0
- package/dist/markers/delta/DeltaMarker.svelte +94 -0
- package/dist/markers/{DeltaMarker.svelte.d.ts → delta/DeltaMarker.svelte.d.ts} +2 -2
- package/dist/markers/density/DensityMarker.svelte +63 -0
- package/dist/markers/density/DensityMarker.svelte.d.ts +7 -0
- package/dist/markers/difference/DifferenceMarker.svelte +30 -0
- package/dist/markers/difference/DifferenceMarker.svelte.d.ts +7 -0
- package/dist/markers/dot/DotMarker.svelte +102 -0
- package/dist/markers/{DotMarker.svelte.d.ts → dot/DotMarker.svelte.d.ts} +5 -17
- package/dist/markers/geo/GeoFeaturesMarker.svelte +39 -0
- package/dist/markers/{GeoFeaturesMarker.svelte.d.ts → geo/GeoFeaturesMarker.svelte.d.ts} +1 -1
- package/dist/markers/geo/GeoHoverMarker.svelte +28 -0
- package/dist/markers/{GeoHoverMarker.svelte.d.ts → geo/GeoHoverMarker.svelte.d.ts} +2 -2
- package/dist/markers/geo/GraticuleMarker.svelte +18 -0
- package/dist/markers/{GraticuleMarker.svelte.d.ts → geo/GraticuleMarker.svelte.d.ts} +1 -1
- package/dist/markers/geo/SphereMarker.svelte +15 -0
- package/dist/markers/{SphereMarker.svelte.d.ts → geo/SphereMarker.svelte.d.ts} +1 -1
- package/dist/markers/hover/HoverMarker.svelte +252 -0
- package/dist/markers/{HoverMarker.svelte.d.ts → hover/HoverMarker.svelte.d.ts} +10 -10
- package/dist/markers/hull/HullMarker.svelte +25 -0
- package/dist/markers/hull/HullMarker.svelte.d.ts +7 -0
- package/dist/markers/image/ImageMarker.svelte +22 -0
- package/dist/markers/image/ImageMarker.svelte.d.ts +7 -0
- package/dist/markers/inset/InsetMarker.svelte +184 -150
- package/dist/markers/inset/InsetMarker.svelte.d.ts +4 -4
- package/dist/markers/inset/insetLayout.d.ts +1 -1
- package/dist/markers/inset/insetLayout.js +6 -2
- package/dist/markers/inset/insetProjection.d.ts +1 -1
- package/dist/markers/inset/insetProjection.js +3 -3
- package/dist/markers/line/LineMarker.svelte +30 -0
- package/dist/markers/{LineMarker.svelte.d.ts → line/LineMarker.svelte.d.ts} +1 -1
- package/dist/markers/link/LinkMarker.svelte +47 -0
- package/dist/markers/{LinkMarker.svelte.d.ts → link/LinkMarker.svelte.d.ts} +1 -1
- package/dist/markers/raster/RasterMarker.svelte +31 -0
- package/dist/markers/raster/RasterMarker.svelte.d.ts +7 -0
- package/dist/markers/rect/RectMarker.svelte +62 -0
- package/dist/markers/rect/RectMarker.svelte.d.ts +7 -0
- package/dist/markers/regression/RegressionMarker.svelte +60 -0
- package/dist/markers/regression/RegressionMarker.svelte.d.ts +7 -0
- package/dist/markers/rule/RuleMarker.svelte +47 -0
- package/dist/markers/{RuleMarker.svelte.d.ts → rule/RuleMarker.svelte.d.ts} +2 -5
- package/dist/markers/text/Declutter.d.ts +35 -0
- package/dist/markers/text/Declutter.js +157 -0
- package/dist/markers/text/TextMarker.svelte +244 -0
- package/dist/markers/{TextMarker.svelte.d.ts → text/TextMarker.svelte.d.ts} +5 -9
- package/dist/markers/tick/TickMarker.svelte +44 -0
- package/dist/markers/tick/TickMarker.svelte.d.ts +7 -0
- package/dist/markers/trail/TrailMarker.svelte +27 -0
- package/dist/markers/trail/TrailMarker.svelte.d.ts +7 -0
- package/dist/markers/utils/BandNudge.d.ts +22 -0
- package/dist/markers/utils/BandNudge.js +23 -0
- package/dist/markers/utils/MarkerChannels.d.ts +49 -0
- package/dist/markers/utils/MarkerChannels.js +97 -0
- package/dist/markers/vector/VectorMarker.svelte +29 -0
- package/dist/markers/{VectorMarker.svelte.d.ts → vector/VectorMarker.svelte.d.ts} +1 -1
- package/dist/markers/voronoi/VoronoiMarker.svelte +26 -0
- package/dist/markers/voronoi/VoronoiMarker.svelte.d.ts +7 -0
- package/dist/markers/voronoi/VoronoiMeshMarker.svelte +26 -0
- package/dist/markers/voronoi/VoronoiMeshMarker.svelte.d.ts +7 -0
- package/dist/markers/waffle/WaffleMarker.svelte +56 -0
- package/dist/markers/waffle/WaffleMarker.svelte.d.ts +7 -0
- package/dist/phases/Pipeline.d.ts +108 -0
- package/dist/phases/Pipeline.js +226 -0
- package/dist/phases/data/DataPhase.d.ts +25 -0
- package/dist/phases/data/DataPhase.js +82 -0
- package/dist/phases/data/PlotAxes.d.ts +75 -0
- package/dist/phases/data/PlotAxes.js +151 -0
- package/dist/phases/facet/FacetPhase.d.ts +52 -0
- package/dist/phases/facet/FacetPhase.js +114 -0
- package/dist/phases/hover/HoverPhase.d.ts +73 -0
- package/dist/phases/hover/HoverPhase.js +144 -0
- package/dist/phases/mapping/MappingPhase.d.ts +17 -0
- package/dist/phases/mapping/MappingPhase.js +42 -0
- package/dist/phases/markers/MarkersPhase.d.ts +14 -0
- package/dist/phases/markers/MarkersPhase.js +27 -0
- package/dist/phases/scales/MarkerAxisValues.d.ts +12 -0
- package/dist/phases/scales/MarkerAxisValues.js +34 -0
- package/dist/phases/scales/ScalesPhase.d.ts +31 -0
- package/dist/phases/scales/ScalesPhase.js +157 -0
- package/dist/phases/sharedScales/SharedScalesPhase.d.ts +55 -0
- package/dist/phases/sharedScales/SharedScalesPhase.js +168 -0
- package/dist/phases/statistics/AuthorMarkers.d.ts +43 -0
- package/dist/phases/statistics/AuthorMarkers.js +69 -0
- package/dist/phases/statistics/MarkerGrouping.d.ts +48 -0
- package/dist/phases/statistics/MarkerGrouping.js +113 -0
- package/dist/phases/statistics/Statistics.d.ts +53 -0
- package/dist/phases/statistics/Statistics.js +156 -0
- package/dist/phases/statistics/StatisticsPhase.d.ts +18 -0
- package/dist/phases/statistics/StatisticsPhase.js +68 -0
- package/dist/phases/statistics/methods/BollingerStatistic.d.ts +9 -0
- package/dist/phases/statistics/methods/BollingerStatistic.js +18 -0
- package/dist/phases/statistics/methods/BoxStatistic.d.ts +9 -0
- package/dist/phases/statistics/methods/BoxStatistic.js +18 -0
- package/dist/phases/statistics/methods/Density2dStatistic.d.ts +9 -0
- package/dist/phases/statistics/methods/Density2dStatistic.js +18 -0
- package/dist/phases/statistics/methods/DensityStatistic.d.ts +12 -0
- package/dist/phases/statistics/methods/DensityStatistic.js +29 -0
- package/dist/phases/statistics/methods/MovingAverageStatistic.d.ts +12 -0
- package/dist/phases/statistics/methods/MovingAverageStatistic.js +30 -0
- package/dist/phases/statistics/methods/RegressionStatistic.d.ts +9 -0
- package/dist/phases/statistics/methods/RegressionStatistic.js +21 -0
- package/dist/phases/styles/StylesPhase.d.ts +13 -0
- package/dist/phases/styles/StylesPhase.js +17 -0
- package/dist/phases/tooltip/TooltipPhase.d.ts +12 -0
- package/dist/phases/tooltip/TooltipPhase.js +10 -0
- package/dist/phases/transforms/Transforms.d.ts +42 -0
- package/dist/phases/transforms/Transforms.js +130 -0
- package/dist/phases/transforms/TransformsPhase.d.ts +64 -0
- package/dist/phases/transforms/TransformsPhase.js +242 -0
- package/dist/phases/transforms/methods/AnchorBar.d.ts +13 -0
- package/dist/phases/transforms/methods/AnchorBar.js +21 -0
- package/dist/phases/transforms/methods/BinTransform.d.ts +7 -0
- package/dist/phases/transforms/methods/BinTransform.js +48 -0
- package/dist/phases/transforms/methods/DensityTransform.d.ts +6 -0
- package/dist/phases/transforms/methods/DensityTransform.js +13 -0
- package/dist/phases/transforms/methods/GroupTransform.d.ts +8 -0
- package/dist/phases/transforms/methods/GroupTransform.js +39 -0
- package/dist/phases/transforms/methods/NormalizeTransform.d.ts +10 -0
- package/dist/phases/transforms/methods/NormalizeTransform.js +30 -0
- package/dist/phases/transforms/methods/OrderTransform.d.ts +16 -0
- package/dist/phases/transforms/methods/OrderTransform.js +43 -0
- package/dist/phases/transforms/methods/PerGroup.d.ts +11 -0
- package/dist/phases/transforms/methods/PerGroup.js +39 -0
- package/dist/phases/transforms/methods/PositionTransform.d.ts +15 -0
- package/dist/phases/transforms/methods/PositionTransform.js +74 -0
- package/dist/phases/transforms/methods/StackTransform.d.ts +8 -0
- package/dist/phases/transforms/methods/StackTransform.js +29 -0
- package/dist/phases/transforms/methods/WindowTransform.d.ts +8 -0
- package/dist/phases/transforms/methods/WindowTransform.js +23 -0
- package/dist/plots/area/Plot.svelte +42 -0
- package/dist/plots/{heatmap/ValueLabels.svelte.d.ts → area/Plot.svelte.d.ts} +8 -16
- package/dist/plots/area/defaults.d.ts +4 -0
- package/dist/plots/area/defaults.js +21 -0
- package/dist/plots/area/markers.d.ts +14 -0
- package/dist/plots/area/markers.js +40 -0
- package/dist/plots/bar/Plot.svelte +33 -438
- package/dist/plots/bar/Plot.svelte.d.ts +5 -8
- package/dist/plots/bar/defaults.d.ts +9 -0
- package/dist/plots/bar/defaults.js +92 -0
- package/dist/plots/bar/markers.d.ts +45 -0
- package/dist/plots/bar/markers.js +232 -0
- package/dist/plots/geo/Core.svelte +151 -0
- package/dist/plots/geo/Core.svelte.d.ts +25 -0
- package/dist/plots/geo/Plot.svelte +103 -324
- package/dist/plots/geo/Plot.svelte.d.ts +5 -9
- package/dist/plots/geo/defaults.d.ts +4 -0
- package/dist/plots/geo/defaults.js +16 -0
- package/dist/plots/geo/features.svelte.d.ts +5 -0
- package/dist/plots/geo/features.svelte.js +44 -0
- package/dist/plots/geo/phases/data.d.ts +6 -0
- package/dist/plots/geo/phases/data.js +26 -0
- package/dist/plots/geo/phases/hover.d.ts +9 -0
- package/dist/plots/geo/phases/hover.js +45 -0
- package/dist/plots/geo/phases/markers.d.ts +9 -0
- package/dist/plots/geo/phases/markers.js +76 -0
- package/dist/plots/geo/phases/scales.d.ts +10 -0
- package/dist/plots/geo/phases/scales.js +85 -0
- package/dist/plots/geo/phases/tooltip.d.ts +3 -0
- package/dist/plots/geo/phases/tooltip.js +5 -0
- package/dist/plots/geo/slices.d.ts +18 -0
- package/dist/plots/geo/slices.js +56 -0
- package/dist/plots/heatmap/Plot.svelte +55 -249
- package/dist/plots/heatmap/Plot.svelte.d.ts +5 -8
- package/dist/plots/heatmap/defaults.d.ts +11 -0
- package/dist/plots/heatmap/defaults.js +91 -0
- package/dist/plots/heatmap/markers.d.ts +17 -0
- package/dist/plots/heatmap/markers.js +141 -0
- package/dist/plots/histogram/Plot.svelte +45 -0
- package/dist/plots/histogram/Plot.svelte.d.ts +26 -0
- package/dist/plots/histogram/defaults.d.ts +9 -0
- package/dist/plots/histogram/defaults.js +87 -0
- package/dist/plots/histogram/markers.d.ts +18 -0
- package/dist/plots/histogram/markers.js +89 -0
- package/dist/plots/line/Plot.svelte +37 -268
- package/dist/plots/line/Plot.svelte.d.ts +3 -7
- package/dist/plots/line/defaults.d.ts +4 -0
- package/dist/plots/line/defaults.js +29 -0
- package/dist/plots/line/markers.d.ts +49 -0
- package/dist/plots/line/markers.js +200 -0
- package/dist/plots/pyramid/Plot.svelte +34 -362
- package/dist/plots/pyramid/Plot.svelte.d.ts +5 -8
- package/dist/plots/pyramid/defaults.d.ts +13 -0
- package/dist/plots/pyramid/defaults.js +86 -0
- package/dist/plots/pyramid/markers.d.ts +21 -0
- package/dist/plots/pyramid/markers.js +159 -0
- package/dist/plots/scatter/Plot.svelte +34 -288
- package/dist/plots/scatter/Plot.svelte.d.ts +5 -8
- package/dist/plots/scatter/defaults.d.ts +4 -0
- package/dist/plots/scatter/defaults.js +79 -0
- package/dist/plots/scatter/markers.d.ts +19 -0
- package/dist/plots/scatter/markers.js +128 -0
- package/dist/plots/utils/ChannelName.d.ts +9 -0
- package/dist/plots/utils/ChannelName.js +14 -0
- package/dist/plots/utils/accessors.d.ts +1 -1
- package/dist/plots/utils/accessors.js +4 -2
- package/dist/plots/utils/gaps.d.ts +14 -19
- package/dist/plots/utils/gaps.js +38 -18
- package/dist/plots/utils/geoAccessors.d.ts +8 -8
- package/dist/plots/utils/geoAccessors.js +16 -12
- package/dist/plots/utils/geoSegments.d.ts +24 -9
- package/dist/plots/utils/geoSegments.js +31 -11
- package/dist/plots/utils/segments.d.ts +5 -16
- package/dist/plots/utils/segments.js +40 -52
- package/dist/plots/utils/tiles.d.ts +9 -9
- package/dist/plots/utils/tiles.js +35 -25
- package/dist/plots/utils/topojson.d.ts +1 -1
- package/dist/plots/utils/topojson.js +3 -3
- package/dist/stores/device.js +2 -4
- package/dist/types/configuration/styling.d.ts +158 -27
- package/dist/types/layout/box.d.ts +24 -0
- package/dist/types/layout/composer.d.ts +36 -0
- package/dist/types/layout/coordinates.d.ts +14 -14
- package/dist/types/layout/facet.d.ts +44 -22
- package/dist/types/layout/figure.d.ts +7 -0
- package/dist/types/layout/geometry.d.ts +6 -2
- package/dist/types/layout/grid.d.ts +66 -0
- package/dist/types/layout/hover.d.ts +48 -0
- package/dist/types/layout/legend.d.ts +258 -54
- package/dist/types/layout/mapping.d.ts +68 -0
- package/dist/types/layout/plot.d.ts +41 -0
- package/dist/types/layout/scales.d.ts +92 -24
- package/dist/types/layout/scales.js +19 -1
- package/dist/types/layout/statistics/bollinger.d.ts +18 -0
- package/dist/types/layout/statistics/box.d.ts +8 -0
- package/dist/types/layout/statistics/box.js +1 -0
- package/dist/types/layout/statistics/density.d.ts +27 -0
- package/dist/types/layout/statistics/density.js +1 -0
- package/dist/types/layout/statistics/index.d.ts +46 -0
- package/dist/types/layout/statistics/index.js +1 -0
- package/dist/types/layout/statistics/movingAverage.d.ts +12 -0
- package/dist/types/layout/statistics/movingAverage.js +1 -0
- package/dist/types/layout/statistics/regression.d.ts +20 -0
- package/dist/types/layout/statistics/regression.js +1 -0
- package/dist/types/layout/styles.d.ts +24 -35
- package/dist/types/layout/timeline.d.ts +51 -4
- package/dist/types/layout/tooltip.d.ts +7 -85
- package/dist/types/markers/all.d.ts +3 -4
- package/dist/types/markers/axis/area.d.ts +12 -0
- package/dist/types/markers/axis/area.js +1 -0
- package/dist/types/markers/axis/arrow.d.ts +15 -0
- package/dist/types/markers/axis/arrow.js +1 -0
- package/dist/types/markers/axis/axisBasedMarkersConfig.d.ts +29 -0
- package/dist/types/markers/axis/axisBasedMarkersConfig.js +1 -0
- package/dist/types/markers/axis/bar.d.ts +18 -0
- package/dist/types/markers/axis/bar.js +1 -0
- package/dist/types/markers/axis/bollinger.d.ts +6 -0
- package/dist/types/markers/axis/bollinger.js +1 -0
- package/dist/types/markers/axis/box.d.ts +14 -0
- package/dist/types/markers/axis/box.js +1 -0
- package/dist/types/markers/axis/brush.d.ts +28 -0
- package/dist/types/markers/axis/brush.js +1 -0
- package/dist/types/markers/axis/cell.d.ts +9 -0
- package/dist/types/markers/axis/cell.js +1 -0
- package/dist/types/markers/axis/component.d.ts +9 -0
- package/dist/types/markers/axis/component.js +1 -0
- package/dist/types/markers/axis/curveName.d.ts +2 -0
- package/dist/types/markers/axis/curveName.js +1 -0
- package/dist/types/markers/axis/delaunayLink.d.ts +7 -0
- package/dist/types/markers/axis/delaunayLink.js +1 -0
- package/dist/types/markers/axis/delaunayMesh.d.ts +7 -0
- package/dist/types/markers/axis/delaunayMesh.js +1 -0
- package/dist/types/markers/axis/delta.d.ts +27 -0
- package/dist/types/markers/axis/delta.js +1 -0
- package/dist/types/markers/axis/density.d.ts +12 -0
- package/dist/types/markers/axis/density.js +1 -0
- package/dist/types/markers/axis/difference.d.ts +12 -0
- package/dist/types/markers/axis/difference.js +1 -0
- package/dist/types/markers/axis/hover.d.ts +21 -0
- package/dist/types/markers/axis/hover.js +1 -0
- package/dist/types/markers/axis/hull.d.ts +7 -0
- package/dist/types/markers/axis/hull.js +1 -0
- package/dist/types/markers/axis/image.d.ts +12 -0
- package/dist/types/markers/axis/image.js +1 -0
- package/dist/types/markers/axis/line.d.ts +7 -0
- package/dist/types/markers/axis/line.js +1 -0
- package/dist/types/markers/axis/raster.d.ts +18 -0
- package/dist/types/markers/axis/raster.js +1 -0
- package/dist/types/markers/axis/rect.d.ts +15 -0
- package/dist/types/markers/axis/rect.js +1 -0
- package/dist/types/markers/axis/regression.d.ts +6 -0
- package/dist/types/markers/axis/regression.js +1 -0
- package/dist/types/markers/axis/rule.d.ts +15 -0
- package/dist/types/markers/axis/rule.js +1 -0
- package/dist/types/markers/axis/tick.d.ts +8 -0
- package/dist/types/markers/axis/tick.js +1 -0
- package/dist/types/markers/axis/trail.d.ts +14 -0
- package/dist/types/markers/axis/trail.js +1 -0
- package/dist/types/markers/axis/voronoi.d.ts +7 -0
- package/dist/types/markers/axis/voronoi.js +1 -0
- package/dist/types/markers/axis/voronoiMesh.d.ts +7 -0
- package/dist/types/markers/axis/voronoiMesh.js +1 -0
- package/dist/types/markers/axis/waffle.d.ts +13 -0
- package/dist/types/markers/axis/waffle.js +1 -0
- package/dist/types/markers/basic/basicMarkersConfig.d.ts +4 -0
- package/dist/types/markers/basic/basicMarkersConfig.js +1 -0
- package/dist/types/markers/basic/dot.d.ts +9 -0
- package/dist/types/markers/basic/dot.js +1 -0
- package/dist/types/markers/basic/text.d.ts +60 -0
- package/dist/types/markers/basic/text.js +1 -0
- package/dist/types/markers/basic.d.ts +4 -0
- package/dist/types/markers/basic.js +1 -0
- package/dist/types/markers/channels/commonMarkerConfig.d.ts +26 -0
- package/dist/types/markers/channels/commonMarkerConfig.js +1 -0
- package/dist/types/markers/channels/commonMarkerConfigWithArea.d.ts +6 -0
- package/dist/types/markers/channels/commonMarkerConfigWithArea.js +1 -0
- package/dist/types/markers/channels/commonMarkerConfigWithColor.d.ts +5 -0
- package/dist/types/markers/channels/commonMarkerConfigWithColor.js +1 -0
- package/dist/types/markers/channels/commonMarkerConfigWithInterval.d.ts +9 -0
- package/dist/types/markers/channels/commonMarkerConfigWithInterval.js +1 -0
- package/dist/types/markers/channels/commonMarkerConfigWithRadius.d.ts +5 -0
- package/dist/types/markers/channels/commonMarkerConfigWithRadius.js +1 -0
- package/dist/types/markers/channels/commonMarkerConfigWithSymbol.d.ts +5 -0
- package/dist/types/markers/channels/commonMarkerConfigWithSymbol.js +1 -0
- package/dist/types/markers/channels/commonMarkerConfigWithWeight.d.ts +5 -0
- package/dist/types/markers/channels/commonMarkerConfigWithWeight.js +1 -0
- package/dist/types/markers/common.d.ts +30 -103
- package/dist/types/markers/common.js +29 -1
- package/dist/types/markers/geo/contour.d.ts +27 -0
- package/dist/types/markers/geo/contour.js +1 -0
- package/dist/types/markers/geo/features.d.ts +12 -0
- package/dist/types/markers/geo/features.js +1 -0
- package/dist/types/markers/geo/geoComponent.d.ts +7 -0
- package/dist/types/markers/geo/geoComponent.js +1 -0
- package/dist/types/markers/geo/geoHover.d.ts +6 -0
- package/dist/types/markers/geo/geoHover.js +1 -0
- package/dist/types/markers/geo/geoMarkersConfig.d.ts +11 -0
- package/dist/types/markers/geo/geoMarkersConfig.js +1 -0
- package/dist/types/markers/geo/graticule.d.ts +11 -0
- package/dist/types/markers/geo/graticule.js +1 -0
- package/dist/types/markers/geo/inset.d.ts +50 -0
- package/dist/types/markers/geo/inset.js +1 -0
- package/dist/types/markers/geo/link.d.ts +13 -0
- package/dist/types/markers/geo/link.js +1 -0
- package/dist/types/markers/geo/sphere.d.ts +11 -0
- package/dist/types/markers/geo/sphere.js +1 -0
- package/dist/types/markers/geo/vector.d.ts +17 -0
- package/dist/types/markers/geo/vector.js +1 -0
- package/dist/types/markers/geo.d.ts +10 -212
- package/dist/types/markers/geo.js +10 -1
- package/dist/types/markers/traits.d.ts +22 -0
- package/dist/types/markers/traits.js +1 -0
- package/dist/types/misc/easing.js +1 -0
- package/dist/types/misc/viewport.js +1 -0
- package/dist/types/phases/data/axes.d.ts +18 -0
- package/dist/types/phases/data/axes.js +1 -0
- package/dist/types/phases/data/phase.d.ts +26 -0
- package/dist/types/phases/data/phase.js +2 -0
- package/dist/types/phases/facet/phase.d.ts +18 -0
- package/dist/types/phases/facet/phase.js +1 -0
- package/dist/types/phases/hover/phase.d.ts +34 -0
- package/dist/types/phases/hover/phase.js +1 -0
- package/dist/types/phases/index.d.ts +14 -0
- package/dist/types/phases/index.js +1 -0
- package/dist/types/phases/kind.d.ts +59 -0
- package/dist/types/phases/kind.js +1 -0
- package/dist/types/phases/mapping/phase.d.ts +5 -0
- package/dist/types/phases/mapping/phase.js +1 -0
- package/dist/types/phases/markers/phase.d.ts +13 -0
- package/dist/types/phases/markers/phase.js +1 -0
- package/dist/types/phases/pipeline.d.ts +10 -0
- package/dist/types/phases/pipeline.js +1 -0
- package/dist/types/phases/scales/phase.d.ts +26 -0
- package/dist/types/phases/scales/phase.js +1 -0
- package/dist/types/phases/sharedScales/phase.d.ts +12 -0
- package/dist/types/phases/sharedScales/phase.js +1 -0
- package/dist/types/phases/stage.d.ts +12 -0
- package/dist/types/phases/stage.js +1 -0
- package/dist/types/phases/state.d.ts +73 -0
- package/dist/types/phases/state.js +1 -0
- package/dist/types/phases/statistics/phase.d.ts +41 -0
- package/dist/types/phases/statistics/phase.js +1 -0
- package/dist/types/phases/statistics/source.d.ts +20 -0
- package/dist/types/phases/statistics/source.js +7 -0
- package/dist/types/phases/styles/phase.d.ts +24 -0
- package/dist/types/phases/styles/phase.js +1 -0
- package/dist/types/phases/transforms/adapter.d.ts +27 -0
- package/dist/types/phases/transforms/adapter.js +1 -0
- package/dist/types/phases/transforms/phase.d.ts +40 -0
- package/dist/types/phases/transforms/phase.js +1 -0
- package/dist/types/plots/area/props.d.ts +10 -0
- package/dist/types/plots/area/props.js +1 -0
- package/dist/types/plots/area/state.d.ts +6 -0
- package/dist/types/plots/area/state.js +1 -0
- package/dist/types/plots/bar/props.d.ts +10 -0
- package/dist/types/plots/bar/props.js +1 -0
- package/dist/types/plots/bar/state.d.ts +6 -0
- package/dist/types/plots/bar/state.js +1 -0
- package/dist/types/plots/camera.d.ts +7 -17
- package/dist/types/plots/constants.d.ts +16 -8
- package/dist/types/plots/data/common.d.ts +25 -17
- package/dist/types/plots/data/geo.d.ts +26 -12
- package/dist/types/plots/gaps.d.ts +19 -38
- package/dist/types/plots/geo/props.d.ts +23 -0
- package/dist/types/plots/geo/props.js +1 -0
- package/dist/types/plots/geo/state.d.ts +82 -0
- package/dist/types/plots/geo/state.js +1 -0
- package/dist/types/plots/heatmap/props.d.ts +10 -0
- package/dist/types/plots/heatmap/props.js +1 -0
- package/dist/types/plots/heatmap/state.d.ts +28 -0
- package/dist/types/plots/heatmap/state.js +1 -0
- package/dist/types/plots/histogram/props.d.ts +18 -0
- package/dist/types/plots/histogram/props.js +1 -0
- package/dist/types/plots/histogram/state.d.ts +6 -0
- package/dist/types/plots/histogram/state.js +1 -0
- package/dist/types/plots/line/props.d.ts +10 -0
- package/dist/types/plots/line/props.js +1 -0
- package/dist/types/plots/line/state.d.ts +9 -0
- package/dist/types/plots/line/state.js +1 -0
- package/dist/types/plots/props.d.ts +143 -35
- package/dist/types/plots/pyramid/props.d.ts +10 -0
- package/dist/types/plots/pyramid/props.js +1 -0
- package/dist/types/plots/pyramid/state.d.ts +16 -0
- package/dist/types/plots/pyramid/state.js +1 -0
- package/dist/types/plots/scatter/props.d.ts +10 -0
- package/dist/types/plots/scatter/props.js +1 -0
- package/dist/types/plots/scatter/state.d.ts +6 -0
- package/dist/types/plots/scatter/state.js +1 -0
- package/dist/types/plots/segments/common.d.ts +1 -1
- package/dist/types/plots/segments/config.d.ts +12 -6
- package/dist/types/plots/styling.d.ts +5 -5
- package/dist/types/transforms/bin.d.ts +84 -0
- package/dist/types/transforms/bin.js +28 -0
- package/dist/types/transforms/bollinger.d.ts +21 -0
- package/dist/types/transforms/bollinger.js +1 -0
- package/dist/types/transforms/common.d.ts +29 -0
- package/dist/types/transforms/common.js +16 -0
- package/dist/types/transforms/density.d.ts +45 -0
- package/dist/types/transforms/density.js +10 -0
- package/dist/types/transforms/filter.d.ts +12 -0
- package/dist/types/transforms/filter.js +14 -0
- package/dist/types/transforms/group.d.ts +70 -0
- package/dist/types/transforms/group.js +8 -0
- package/dist/types/transforms/index.d.ts +36 -0
- package/dist/types/transforms/index.js +1 -0
- package/dist/types/transforms/interval.d.ts +21 -0
- package/dist/types/transforms/interval.js +14 -0
- package/dist/types/transforms/jitter.d.ts +34 -0
- package/dist/types/transforms/jitter.js +1 -0
- package/dist/types/transforms/map.d.ts +24 -0
- package/dist/types/transforms/map.js +1 -0
- package/dist/types/transforms/normalize.d.ts +36 -0
- package/dist/types/transforms/normalize.js +1 -0
- package/dist/types/transforms/select.d.ts +15 -0
- package/dist/types/transforms/select.js +1 -0
- package/dist/types/transforms/shift.d.ts +20 -0
- package/dist/types/transforms/shift.js +1 -0
- package/dist/types/transforms/sort.d.ts +31 -0
- package/dist/types/transforms/sort.js +14 -0
- package/dist/types/transforms/stack.d.ts +64 -0
- package/dist/types/transforms/stack.js +12 -0
- package/dist/types/transforms/window.d.ts +29 -0
- package/dist/types/transforms/window.js +1 -0
- package/dist/utils/ContinuousDomain.d.ts +12 -0
- package/dist/utils/ContinuousDomain.js +19 -0
- package/dist/utils/Interpolation.d.ts +26 -0
- package/dist/utils/Interpolation.js +65 -0
- package/dist/utils/{color.d.ts → color/contrast.d.ts} +0 -5
- package/dist/utils/color/contrast.js +40 -0
- package/dist/utils/color/cssColor.d.ts +4 -0
- package/dist/utils/color/cssColor.js +77 -0
- package/dist/utils/color/index.d.ts +3 -0
- package/dist/utils/color/index.js +3 -0
- package/dist/utils/color/ramp.d.ts +17 -0
- package/dist/utils/color/ramp.js +110 -0
- package/dist/utils/grouping.d.ts +9 -5
- package/dist/utils/grouping.js +19 -10
- package/dist/utils/merge.d.ts +7 -0
- package/dist/utils/merge.js +17 -0
- package/dist/utils/opacity.d.ts +9 -0
- package/dist/utils/opacity.js +38 -0
- package/dist/utils/symbol.d.ts +31 -0
- package/dist/utils/symbol.js +92 -0
- package/docs/architecture.md +137 -0
- package/docs/chrome.md +68 -0
- package/docs/composer.md +53 -0
- package/docs/concepts.md +99 -0
- package/docs/development.md +94 -0
- package/docs/facets.md +69 -0
- package/docs/geo.md +151 -0
- package/docs/getting-started.md +79 -0
- package/docs/legend.md +106 -0
- package/docs/markers.md +106 -0
- package/docs/plots.md +158 -0
- package/docs/scales.md +78 -0
- package/docs/state.md +71 -0
- package/docs/styles-and-segments.md +215 -0
- package/docs/theming.md +215 -0
- package/docs/timeline.md +94 -0
- package/docs/tooltip-and-hover.md +80 -0
- package/docs/transforms-and-statistics.md +88 -0
- package/examples/BarValues.svelte +14 -0
- package/examples/CustomTooltip.svelte +37 -0
- package/examples/Facets.svelte +15 -0
- package/examples/LegendReader.svelte +8 -0
- package/examples/LegendToggle.svelte +25 -0
- package/examples/ResponsiveLine.svelte +37 -0
- package/examples/Segments.svelte +17 -0
- package/examples/TimelinePlayer.svelte +20 -0
- package/examples/Tooltip.svelte +19 -0
- package/examples/TooltipCard.svelte +86 -0
- package/examples/data.ts +12 -0
- package/llms-full.txt +114 -0
- package/llms.txt +49 -0
- package/package.json +41 -5
- package/dist/charts/BaseChart.svelte +0 -149
- package/dist/charts/BaseChart.svelte.d.ts +0 -47
- package/dist/charts/bar/Chart.svelte +0 -110
- package/dist/charts/bar/Chart.svelte.d.ts +0 -26
- package/dist/charts/container/ChartContainer.svelte +0 -137
- package/dist/charts/container/ChartContainer.svelte.d.ts +0 -16
- package/dist/charts/heatmap/Chart.svelte +0 -114
- package/dist/charts/line/Chart.svelte +0 -112
- package/dist/charts/line/Chart.svelte.d.ts +0 -26
- package/dist/charts/pyramid/Chart.svelte +0 -134
- package/dist/charts/pyramid/Chart.svelte.d.ts +0 -30
- package/dist/charts/scatter/Chart.svelte +0 -95
- package/dist/charts/scatter/Chart.svelte.d.ts +0 -28
- package/dist/layout/coordinates/margins.d.ts +0 -16
- package/dist/layout/coordinates/margins.js +0 -11
- package/dist/layout/legend/interaction.svelte.d.ts +0 -15
- package/dist/layout/legend/interaction.svelte.js +0 -32
- package/dist/layout/plot/BasePlotLayout.svelte +0 -332
- package/dist/layout/plot/BasePlotLayout.svelte.d.ts +0 -122
- package/dist/layout/plot/margins.d.ts +0 -18
- package/dist/layout/plot/margins.js +0 -15
- package/dist/layout/plot/measureText.d.ts +0 -4
- package/dist/layout/plot/measureText.js +0 -19
- package/dist/layout/tooltip/TooltipLayout.svelte +0 -51
- package/dist/layout/tooltip/TooltipLayout.svelte.d.ts +0 -45
- package/dist/layout/tooltip/controller.svelte.d.ts +0 -61
- package/dist/layout/tooltip/controller.svelte.js +0 -173
- package/dist/layout/tooltip/hover.svelte.d.ts +0 -7
- package/dist/layout/tooltip/hover.svelte.js +0 -28
- package/dist/layout/tooltip/resolveTooltipPlacement.d.ts +0 -24
- package/dist/layout/tooltip/resolveTooltipPlacement.js +0 -49
- package/dist/layout/tooltip/utils.d.ts +0 -49
- package/dist/layout/tooltip/utils.js +0 -82
- package/dist/markers/CellMarker.svelte +0 -21
- package/dist/markers/ContourClipMarker.svelte +0 -77
- package/dist/markers/ContourMarker.svelte +0 -28
- package/dist/markers/DeltaMarker.svelte +0 -109
- package/dist/markers/DotMarker.svelte +0 -70
- package/dist/markers/GeoFeaturesMarker.svelte +0 -19
- package/dist/markers/GeoHoverMarker.svelte +0 -25
- package/dist/markers/GraticuleMarker.svelte +0 -18
- package/dist/markers/HoverMarker.svelte +0 -212
- package/dist/markers/LineMarker.svelte +0 -19
- package/dist/markers/LinkMarker.svelte +0 -42
- package/dist/markers/PeakMarker.svelte +0 -80
- package/dist/markers/PeakMarker.svelte.d.ts +0 -13
- package/dist/markers/RuleMarker.svelte +0 -24
- package/dist/markers/SphereMarker.svelte +0 -15
- package/dist/markers/TextMarker.svelte +0 -62
- package/dist/markers/VectorMarker.svelte +0 -20
- package/dist/plots/bar/ValueLabels.svelte +0 -149
- package/dist/plots/bar/ValueLabels.svelte.d.ts +0 -58
- package/dist/plots/bar/buildBarMarkers.d.ts +0 -27
- package/dist/plots/bar/buildBarMarkers.js +0 -151
- package/dist/plots/bar/hoverPoints.d.ts +0 -15
- package/dist/plots/bar/hoverPoints.js +0 -37
- package/dist/plots/bar/layout.svelte.d.ts +0 -42
- package/dist/plots/bar/layout.svelte.js +0 -182
- package/dist/plots/geo/buildGeoMarkers.d.ts +0 -33
- package/dist/plots/geo/buildGeoMarkers.js +0 -47
- package/dist/plots/heatmap/ValueLabels.svelte +0 -56
- package/dist/plots/heatmap/buildCellMarkers.d.ts +0 -21
- package/dist/plots/heatmap/buildCellMarkers.js +0 -25
- package/dist/plots/line/ValueLabels.svelte +0 -269
- package/dist/plots/line/ValueLabels.svelte.d.ts +0 -52
- package/dist/plots/line/buildGapMarkers.d.ts +0 -28
- package/dist/plots/line/buildGapMarkers.js +0 -74
- package/dist/plots/line/buildLineMarkers.d.ts +0 -16
- package/dist/plots/line/buildLineMarkers.js +0 -56
- package/dist/plots/line/valueLabelMargin.d.ts +0 -19
- package/dist/plots/line/valueLabelMargin.js +0 -65
- package/dist/plots/pyramid/ValueLabels.svelte +0 -139
- package/dist/plots/pyramid/ValueLabels.svelte.d.ts +0 -56
- package/dist/plots/pyramid/buildPyramidBarMarkers.d.ts +0 -26
- package/dist/plots/pyramid/buildPyramidBarMarkers.js +0 -72
- package/dist/plots/scatter/ValueLabels.svelte +0 -163
- package/dist/plots/scatter/ValueLabels.svelte.d.ts +0 -52
- package/dist/plots/scatter/buildScatterMarkers.d.ts +0 -12
- package/dist/plots/scatter/buildScatterMarkers.js +0 -36
- package/dist/plots/scatter/resolveRadiusPaddedDomain.d.ts +0 -10
- package/dist/plots/scatter/resolveRadiusPaddedDomain.js +0 -23
- package/dist/plots/utils/categoricalAxisMargin.d.ts +0 -14
- package/dist/plots/utils/categoricalAxisMargin.js +0 -20
- package/dist/plots/utils/declutter.d.ts +0 -120
- package/dist/plots/utils/declutter.js +0 -240
- package/dist/plots/utils/labelOverflow.svelte.d.ts +0 -107
- package/dist/plots/utils/labelOverflow.svelte.js +0 -257
- package/dist/plots/utils/legendDisabled.d.ts +0 -27
- package/dist/plots/utils/legendDisabled.js +0 -68
- package/dist/plots/utils/valueLabelMargin.d.ts +0 -67
- package/dist/plots/utils/valueLabelMargin.js +0 -60
- package/dist/types/charts/common.d.ts +0 -22
- package/dist/types/charts/props.d.ts +0 -50
- package/dist/types/markers/base.d.ts +0 -45
- package/dist/types/markers/line.d.ts +0 -34
- package/dist/types/markers/props.d.ts +0 -11
- package/dist/types/plots/data/scatter.d.ts +0 -13
- package/dist/utils/color.js +0 -141
- package/dist/utils/delta.d.ts +0 -12
- package/dist/utils/delta.js +0 -69
- package/dist/utils/edgeAwareAnchor.d.ts +0 -34
- package/dist/utils/edgeAwareAnchor.js +0 -60
- package/dist/utils/interpolate.d.ts +0 -31
- package/dist/utils/interpolate.js +0 -71
- /package/dist/types/{charts/common.js → layout/box.js} +0 -0
- /package/dist/types/{charts/interpolate.js → layout/composer.js} +0 -0
- /package/dist/types/{charts/props.js → layout/figure.js} +0 -0
- /package/dist/types/{markers/base.js → layout/grid.js} +0 -0
- /package/dist/types/{markers/line.js → layout/hover.js} +0 -0
- /package/dist/types/{markers/props.js → layout/mapping.js} +0 -0
- /package/dist/types/{plots/data/scatter.js → layout/plot.js} +0 -0
- /package/dist/types/{viewport.js → layout/statistics/bollinger.js} +0 -0
- /package/dist/types/{charts/interpolate.d.ts → misc/easing.d.ts} +0 -0
- /package/dist/types/{viewport.d.ts → misc/viewport.d.ts} +0 -0
package/README.md
CHANGED
|
@@ -1,599 +1,122 @@
|
|
|
1
|
-
|
|
1
|
+
<div align="center">
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
<img src="docs/images/logo.png" alt="data-chart-telling-logo" />
|
|
4
4
|
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
## Build & publish
|
|
8
|
-
|
|
9
|
-
After making changes, rebuild the package distributable:
|
|
10
|
-
|
|
11
|
-
```bash
|
|
12
|
-
pnpm build
|
|
13
|
-
```
|
|
14
|
-
|
|
15
|
-
`prepack` runs `svelte-package` followed by `publint` automatically before packing, so a publish will always ship a clean build:
|
|
16
|
-
|
|
17
|
-
```bash
|
|
18
|
-
# dry-run — inspect what will be uploaded
|
|
19
|
-
pnpm pack
|
|
20
|
-
|
|
21
|
-
# publish to the npm registry
|
|
22
|
-
pnpm publish --access public
|
|
23
|
-
```
|
|
24
|
-
|
|
25
|
-
> Bump `version` in `package.json` before each publish.
|
|
5
|
+
</div>
|
|
26
6
|
|
|
27
7
|
---
|
|
28
8
|
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
```bash
|
|
36
|
-
pnpm test
|
|
37
|
-
```
|
|
38
|
-
|
|
39
|
-
This runs both the **node unit** project and the **browser component** project (Chromium via Playwright).
|
|
9
|
+
[](https://www.npmjs.com/package/@fundar/data-chart-telling)
|
|
10
|
+
[](https://github.com/datos-Fundar/data-chart-telling/releases/latest)
|
|
11
|
+

|
|
12
|
+
[](https://github.com/datos-Fundar/data-chart-telling/actions/workflows/ci.yml)
|
|
13
|
+
[](https://github.com/datos-Fundar/data-chart-telling/actions/workflows/codeql.yml)
|
|
40
14
|
|
|
41
|
-
|
|
15
|
+
## Introduction
|
|
42
16
|
|
|
43
|
-
|
|
44
|
-
pnpm vitest run --project=unit
|
|
45
|
-
```
|
|
17
|
+
Svelte 5 plots for data storytelling, built on [svelteplot](https://svelteplot.dev). A plot is one graph - axes and marks - that carries its own title, legend, tooltip, facets and timeline, so a finished, readable figure is one component with a handful of props.
|
|
46
18
|
|
|
47
|
-
|
|
19
|
+
It aims for a sweet spot between the flexibility of `d3`, the declarative spirit of the _grammar of graphics_ (data mapped to channels, scales and marks) and the convenience of a classic plotting library, where each plot kind is a first-class component.
|
|
48
20
|
|
|
49
|
-
```
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
### Storybook interaction tests
|
|
21
|
+
```svelte
|
|
22
|
+
<script lang="ts">
|
|
23
|
+
import { LinePlot } from '@fundar/data-chart-telling';
|
|
54
24
|
|
|
55
|
-
|
|
25
|
+
const rows = [
|
|
26
|
+
{ year: 2020, region: 'North', value: 3.1 },
|
|
27
|
+
{ year: 2021, region: 'North', value: 3.8 },
|
|
28
|
+
{ year: 2020, region: 'South', value: 2.2 },
|
|
29
|
+
{ year: 2021, region: 'South', value: 2.9 }
|
|
30
|
+
];
|
|
31
|
+
</script>
|
|
56
32
|
|
|
57
|
-
|
|
58
|
-
|
|
33
|
+
<LinePlot
|
|
34
|
+
width={720}
|
|
35
|
+
height={400}
|
|
36
|
+
title="Value by region"
|
|
37
|
+
data={rows}
|
|
38
|
+
x="year"
|
|
39
|
+
y="value"
|
|
40
|
+
color="region"
|
|
41
|
+
tooltip
|
|
42
|
+
scales={{ x: { label: false } }}
|
|
43
|
+
styles={{ values: { show: true } }}
|
|
44
|
+
/>
|
|
59
45
|
```
|
|
60
46
|
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
## Storybook
|
|
64
|
-
|
|
65
|
-
Serve the component explorer locally:
|
|
47
|
+

|
|
66
48
|
|
|
67
|
-
|
|
68
|
-
pnpm storybook
|
|
69
|
-
# → http://localhost:6006
|
|
70
|
-
```
|
|
49
|
+
Eight plot kinds - line, area, bar, histogram, heatmap, pyramid, scatter and geographic maps - share one vocabulary: the same channels (`x`, `y`, `color`, `grouping`, `opacity`, `symbol`, `r`), the same `scales`, `styles`, `segments`, `markers`, `transforms`, `tooltip`, `legend`, `timeline` and `facet` props, and one global theme.
|
|
71
50
|
|
|
72
|
-
|
|
51
|
+
## Install
|
|
73
52
|
|
|
74
53
|
```bash
|
|
75
|
-
pnpm
|
|
54
|
+
pnpm add @fundar/data-chart-telling svelte svelteplot
|
|
55
|
+
# only for GeoPlot fed with TopoJSON
|
|
56
|
+
pnpm add topojson-client
|
|
76
57
|
```
|
|
77
58
|
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
## Chart types
|
|
59
|
+
The package ships Svelte components, so the app needs the Svelte compiler (`@sveltejs/vite-plugin-svelte` or SvelteKit). Types ship with it.
|
|
81
60
|
|
|
82
|
-
|
|
61
|
+
## Stepping through time
|
|
83
62
|
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
| Component | Import path | Description |
|
|
87
|
-
| --- | --- | --- |
|
|
88
|
-
| `BarChart` | `$lib/charts/bar/Chart.svelte` | Vertical bar chart with title/caption/legend/facet/timeline chrome. |
|
|
89
|
-
| `HeatmapChart` | `$lib/charts/heatmap/Chart.svelte` | Grid of colour-coded cells. Colour domain is computed over the full dataset for cross-facet comparability. |
|
|
90
|
-
| `LineChart` | `$lib/charts/line/Chart.svelte` | Line chart. Default timeline mode is `upTo` (cumulative reveal). |
|
|
91
|
-
| `PyramidChart` | `$lib/charts/pyramid/Chart.svelte` | Population-pyramid-style diverging bar chart with a shared zero baseline. |
|
|
92
|
-
|
|
93
|
-
### Plots
|
|
94
|
-
|
|
95
|
-
| Component | Import path | Description |
|
|
96
|
-
| --- | --- | --- |
|
|
97
|
-
| `BarPlot` | `$lib/plots/bar/Plot.svelte` | Vertical bar chart. Supports multiple series and per-series range segments. |
|
|
98
|
-
| `HeatmapPlot` | `$lib/plots/heatmap/Plot.svelte` | Grid of colour-coded cells. |
|
|
99
|
-
| `LinePlot` | `$lib/plots/line/Plot.svelte` | Line chart. Supports multiple series and per-series range segments with independent stroke styles. |
|
|
100
|
-
| `PyramidPlot` | `$lib/plots/pyramid/Plot.svelte` | Diverging horizontal bar chart; each series is mirrored left or right of a shared zero baseline. |
|
|
101
|
-
| `GeoPlot` | `$lib/plots/geo/Plot.svelte` | Geographic map rendered from GeoJSON/TopoJSON with optional choropleth styling and interactive markers. |
|
|
102
|
-
|
|
103
|
-
All components accept explicit `width` and `height` in pixels (svelteplot does not auto-size).
|
|
104
|
-
|
|
105
|
-
---
|
|
106
|
-
|
|
107
|
-
### Plot props (BarPlot, LinePlot, HeatmapPlot, PyramidPlot)
|
|
108
|
-
|
|
109
|
-
Plots accept either `series` (pre-built `Series[]`) or the `data` + `x`/`y`/`z` flat-rows path — these are mutually exclusive.
|
|
110
|
-
|
|
111
|
-
| Prop | Type | Default | BarPlot | HeatmapPlot | LinePlot | PyramidPlot |
|
|
112
|
-
| ---- | ---- | ------- | ------- | ----------- | -------- | ----------- |
|
|
113
|
-
| `width` | `number` | — | ✅ | ✅ | ✅ | ✅ |
|
|
114
|
-
| `height` | `number` | — | ✅ | ✅ | ✅ | ✅ |
|
|
115
|
-
| `series` | `Series[]` | — | ✅ | ✅ | ✅ | ✅ |
|
|
116
|
-
| `data` | `TData[]` | — | ✅ | ✅ | ✅ | ✅ |
|
|
117
|
-
| `x` | `Accessor` | — | ✅ | ✅ | ✅ | ✅ |
|
|
118
|
-
| `y` | `Accessor` | — | ✅ | ✅ | ✅ | ✅ |
|
|
119
|
-
| `z` | `Accessor` | — | ✅ | ✅ | ✅ | ✅ |
|
|
120
|
-
| `segments` | `SegmentsConfig<TStyle>` | `[]` | ✅ | ✅ | ✅ | ✅ |
|
|
121
|
-
| `markers` | `Marker[]` | `[]` | ✅ | ✅ | ✅ | ✅ |
|
|
122
|
-
| `scales` | `AxisBasedScalesConfig` | `{}` | ✅ | ✅ | ✅ | ✅ |
|
|
123
|
-
| `margins` | `MarginConfig` | `{}` | ✅ | ✅ | ✅ | ✅ |
|
|
124
|
-
| `tooltip` | `TooltipConfig` | | ✅ | ✅ | ✅ | ✅ |
|
|
125
|
-
| `styles` | `BasePlotStyles` | | ✅ | ✅ | ✅ | ✅ |
|
|
126
|
-
|
|
127
|
-
#### GeoPlot props
|
|
128
|
-
|
|
129
|
-
Unlike x/y plots, `GeoPlot` uses GeoJSON/TopoJSON as its data source (no x/y/z axes). It accepts either a `FeatureCollection`, a `Feature[]`, or a TopoJSON `Topology` (with the `object` key to specify which named object to extract).
|
|
130
|
-
|
|
131
|
-
| Prop | Type | Default | Description |
|
|
132
|
-
| ---- | ---- | ------- | ----------- |
|
|
133
|
-
| `width` | `number` | — | Plot width in pixels. |
|
|
134
|
-
| `height` | `number` | — | Plot height in pixels. |
|
|
135
|
-
| `data` | `FeatureCollection \| Feature[] \| Topology` | — | GeoJSON (FeatureCollection or Feature array) or TopoJSON Topology. |
|
|
136
|
-
| `object` | `string` | — | Required when `data` is a TopoJSON Topology — the key under `topology.objects` to extract. |
|
|
137
|
-
| `featureId` | `Accessor<GeoFeature, string>` | `feature.id ?? feature.properties?.id ?? feature.properties?.name` | Resolver for each feature's stable id (used for `segments` lookup and hover identification). |
|
|
138
|
-
| `value` | `(feature: GeoFeature) => number \| undefined` | — | Optional continuous accessor for choropleth colouring (mirrors heatmap's `z`). |
|
|
139
|
-
| `excludeParts` | `(part: GeoGeometry, feature: GeoFeature) => boolean` | — | Excludes matching geometry parts from rendering/hover (e.g. for inset markers). Return `true` to exclude. |
|
|
140
|
-
| `segments` | `SegmentsConfig<GeoSegmentStyle>` | `[]` | Per-feature styling (keyed by `featureId`). |
|
|
141
|
-
| `markers` | `GeoMarker[]` | `[]` | Array of markers: `graticule`, `sphere`, `dot`, `vector`, `link`, `contour`, `inset`, or custom `component`. |
|
|
142
|
-
| `scales` | `GeoScalesConfig` | `{}` | Projection and colour scale config. |
|
|
143
|
-
| `margins` | `MarginConfig` | `{}` | Top/right/bottom/left margin overrides. |
|
|
144
|
-
| `tooltip` | `TooltipConfig<GeoFeature>` | — | Hover/click tooltip configuration. |
|
|
145
|
-
| `styles` | `GeoStyles<TProps>` | — | Base map fill, choropleth ramp, tile layer, zoom, and click handlers. |
|
|
146
|
-
|
|
147
|
-
#### `BasePlotStyles` sub-properties (BarPlot, LinePlot, HeatmapPlot, PyramidPlot)
|
|
148
|
-
|
|
149
|
-
| Sub-prop | Type | BarPlot default | HeatmapPlot default | LinePlot default | PyramidPlot default |
|
|
150
|
-
| -------- | ---- | --------------- | ------------------- | ---------------- | ------------------- |
|
|
151
|
-
| `styles.values.show` | `boolean` | `false` | `true` | `false` (last point) | `false` |
|
|
152
|
-
| `styles.values.format` | `(v: number, seriesName: string) => string` | `v => \`${v}\`` | `v => \`${v}\`` | `(v, name) => \`${name} - ${v}\`` | `v => \`${v}\`` |
|
|
153
|
-
| `styles.values.anchor` | `'outside' \| 'start' \| 'middle' \| 'end'` | `'outside'` | — | `'start'` | `'outside'` |
|
|
154
|
-
| `styles.values.dx` | `number` | | | | |
|
|
155
|
-
| `styles.values.dy` | `number` | | | | |
|
|
156
|
-
| `styles.values.textAnchor` | `'start' \| 'end' \| 'middle'` | | `'middle'` | | |
|
|
157
|
-
| `styles.values.lineAnchor` | `'top' \| 'bottom' \| 'middle'` | | `'middle'` | | |
|
|
158
|
-
| `styles.values.rotate` | `number` | | | | |
|
|
159
|
-
| `styles.values.class` | `string` | | | | |
|
|
160
|
-
| `styles.values.textClass` | `string` | | | | |
|
|
161
|
-
| `styles.colors.min` | `string` | — | cfg `continuous.min` | — | — |
|
|
162
|
-
| `styles.colors.max` | `string` | — | cfg `continuous.max` | — | — |
|
|
163
|
-
| `styles.colors.left` | `string` | — | — | — | palette index 0 |
|
|
164
|
-
| `styles.colors.right` | `string` | — | — | — | palette index 1 |
|
|
165
|
-
|
|
166
|
-
#### `GeoStyles` sub-properties (GeoPlot)
|
|
167
|
-
|
|
168
|
-
| Sub-prop | Type | Default | Description |
|
|
169
|
-
| -------- | ---- | ------- | ----------- |
|
|
170
|
-
| `styles.fill` | `string` | palette[0] | Base map fill for features not styled by `segments` or choropleth. |
|
|
171
|
-
| `styles.fillOpacity` | `number` | `1` | Base map fill opacity. |
|
|
172
|
-
| `styles.stroke` | `string` | cfg `axis.color` | Base map feature stroke colour. |
|
|
173
|
-
| `styles.strokeWidth` | `number` | `0.5` | Base map feature stroke width. |
|
|
174
|
-
| `styles.colors.min` | `string` | cfg `continuous.min` | Choropleth ramp minimum colour (when `value` is provided). |
|
|
175
|
-
| `styles.colors.max` | `string` | cfg `continuous.max` | Choropleth ramp maximum colour (when `value` is provided). |
|
|
176
|
-
| `styles.tileLayer` | `GeoTileLayerConfig` | — | XYZ raster basemap config (URL, opacity, zoom range). Mercator-family projections only. |
|
|
177
|
-
| `styles.zoom` | `boolean \| GeoZoomConfig` | `false` | Enable/configure drag-pan + scroll-zoom (`false` = static map). |
|
|
178
|
-
| `styles.onFeatureClick` | `(feature: GeoFeature, event: Event) => void` | — | Click handler for base-map features. |
|
|
179
|
-
|
|
180
|
-
#### Scales: `AxisBasedScalesConfig` (x/y plots) vs `GeoScalesConfig` (GeoPlot)
|
|
181
|
-
|
|
182
|
-
X/Y plots use `AxisBasedScalesConfig` with `x`, `y`, `z` axis configurations. GeoPlot uses `GeoScalesConfig` with projection and colour settings instead. `ScalesConfig` is the union of both (`AxisBasedScalesConfig | GeoScalesConfig`) — each plot kind's own `scales` prop narrows to whichever one applies to it.
|
|
183
|
-
|
|
184
|
-
| Prop | AxisBasedScalesConfig (BarPlot, LinePlot, HeatmapPlot, PyramidPlot) | GeoScalesConfig (GeoPlot) |
|
|
185
|
-
| ---- | ------- | ------- |
|
|
186
|
-
| `x` | ✅ (AxisScale) | ❌ |
|
|
187
|
-
| `y` | ✅ (AxisScale) | ❌ |
|
|
188
|
-
| `z` | ✅ (AxisScale) | ❌ |
|
|
189
|
-
| `projection` | ❌ | ✅ (GeoProjectionConfig) |
|
|
190
|
-
| `color` | ❌ | ✅ (`{ domain?: [number, number] }`) |
|
|
191
|
-
|
|
192
|
-
#### Props distribution across all plot kinds
|
|
193
|
-
|
|
194
|
-
| Prop | BarPlot | HeatmapPlot | LinePlot | PyramidPlot | GeoPlot | Notes |
|
|
195
|
-
| ---- | ------- | ----------- | -------- | ----------- | ------- | ----- |
|
|
196
|
-
| `width` | ✅ | ✅ | ✅ | ✅ | ✅ | Common to all plots. |
|
|
197
|
-
| `height` | ✅ | ✅ | ✅ | ✅ | ✅ | Common to all plots. |
|
|
198
|
-
| `segments` | ✅ | ✅ | ✅ | ✅ | ✅ | Common to all plots; GeoPlot uses `SegmentsConfig<GeoSegmentStyle>`, others use their own `SegmentStyle` type. |
|
|
199
|
-
| `markers` | ✅ | ✅ | ✅ | ✅ | ✅ | Common to all plots; GeoPlot uses `GeoMarker[]`, others use `Marker[]`. |
|
|
200
|
-
| `margins` | ✅ | ✅ | ✅ | ✅ | ✅ | Common to all plots. |
|
|
201
|
-
| `tooltip` | ✅ | ✅ | ✅ | ✅ | ✅ | Common to all plots; row type varies per plot. |
|
|
202
|
-
| `styles` | ✅ | ✅ | ✅ | ✅ | ✅ | Common; type is `BasePlotStyles` for x/y plots, `GeoStyles<TProps>` for GeoPlot. |
|
|
203
|
-
| `scales` | ✅ | ✅ | ✅ | ✅ | ✅ | Common; type is `AxisBasedScalesConfig<TData>` for x/y plots, `GeoScalesConfig` for GeoPlot. |
|
|
204
|
-
| `series` | ✅ | ✅ | ✅ | ✅ | ❌ | X/Y plots only (mutually exclusive with `data`/`x`/`y`/`z`). |
|
|
205
|
-
| `data` | ✅ (TData[]) | ✅ (TData[]) | ✅ (TData[]) | ✅ (TData[]) | ✅ (FeatureCollection \| Feature[] \| Topology) | Common; data shape differs — x/y plots use flat rows, GeoPlot uses geo features. |
|
|
206
|
-
| `x` | ✅ | ✅ | ✅ | ✅ | ❌ | X/Y plots only. |
|
|
207
|
-
| `y` | ✅ | ✅ | ✅ | ✅ | ❌ | X/Y plots only. |
|
|
208
|
-
| `z` | ✅ | ✅ | ✅ | ✅ | ❌ | X/Y plots only (used as series selector in bar/line/pyramid, value accessor in heatmap). |
|
|
209
|
-
| `object` | ❌ | ❌ | ❌ | ❌ | ✅ (optional) | GeoPlot only; required when `data` is a TopoJSON Topology. |
|
|
210
|
-
| `featureId` | ❌ | ❌ | ❌ | ❌ | ✅ (optional) | GeoPlot only; resolves feature identity for `segments` lookup and hover. |
|
|
211
|
-
| `value` | ❌ | ❌ | ❌ | ❌ | ✅ (optional) | GeoPlot only; drives choropleth colouring (analogous to heatmap's `z`). |
|
|
212
|
-
| `excludeParts` | ❌ | ❌ | ❌ | ❌ | ✅ (optional) | GeoPlot only; filters geometry parts from rendering. |
|
|
213
|
-
|
|
214
|
-
---
|
|
215
|
-
|
|
216
|
-
### Chart props
|
|
217
|
-
|
|
218
|
-
| Prop | Type | Default | BarChart | HeatmapChart | LineChart | PyramidChart |
|
|
219
|
-
| ---- | ---- | ------- | -------- | ------------ | --------- | ------------ |
|
|
220
|
-
| `width` | `number` | — | ✅ | ✅ | ✅ | ✅ |
|
|
221
|
-
| `height` | `number` | — | ✅ | ✅ | ✅ | ✅ |
|
|
222
|
-
| `data` | `TRow[]` | — | ✅ | ✅ | ✅ | ✅ |
|
|
223
|
-
| `x` | `Accessor` | — | ✅ | ✅ | ✅ | ✅ |
|
|
224
|
-
| `y` | `Accessor` | — | ✅ | ✅ | ✅ | ✅ |
|
|
225
|
-
| `z` | `Accessor` | — | ✅ | ✅ | ✅ | ✅ |
|
|
226
|
-
| `title` | `string` | | ✅ | ✅ | ✅ | ✅ |
|
|
227
|
-
| `subtitle` | `string` | | ✅ | ✅ | ✅ | ✅ |
|
|
228
|
-
| `caption` | `string` | | ✅ | ✅ | ✅ | ✅ |
|
|
229
|
-
| `header` | `Snippet` | | ✅ | ✅ | ✅ | ✅ |
|
|
230
|
-
| `footer` | `Snippet` | | ✅ | ✅ | ✅ | ✅ |
|
|
231
|
-
| `legend` | `LegendSection[]` | | ✅ | ✅ | ✅ | ✅ |
|
|
232
|
-
| `segments` | `SegmentsConfig<TStyle>` | `[]` | ✅ | ✅ | ✅ | ✅ |
|
|
233
|
-
| `markers` | `Marker[]` | `[]` | ✅ | ✅ | ✅ | ✅ |
|
|
234
|
-
| `scales` | `AxisBasedScalesConfig` | `{}` | ✅ | ✅ | ✅ | ✅ |
|
|
235
|
-
| `margins` | `MarginConfig` | `{}` | ✅ | ✅ | ✅ | ✅ |
|
|
236
|
-
| `facet` | `FacetConfig` | | ✅ | ✅ | ✅ | ✅ |
|
|
237
|
-
| `timeline` | `TimelineConfig` | | ✅ | ✅ | ✅ | ✅ |
|
|
238
|
-
| `tooltip` | `TooltipProp` | | ✅ | ✅ | ✅ | ✅ |
|
|
239
|
-
| `styles` | `BasePlotStyles` | | ✅ | ✅ | ✅ | ✅ |
|
|
240
|
-
|
|
241
|
-
`header` and `footer` are Svelte 5 snippets that replace the string props when richer markup is needed (custom styles, logos, links, etc.). When `header` is provided it takes full precedence over `title`/`subtitle`; when `footer` is provided it takes full precedence over `caption`. Use the natural snippet syntax:
|
|
63
|
+
`timeline` slices the rows by a field and steps through them. It draws as a **player** by default: play and pause, the current step and a slider, in the figure's chrome.
|
|
242
64
|
|
|
243
65
|
```svelte
|
|
244
|
-
<
|
|
245
|
-
{#snippet header()}
|
|
246
|
-
<div style="display:flex; justify-content:space-between">
|
|
247
|
-
<h3 style="color:#2563eb">My Chart</h3>
|
|
248
|
-
<img src="/logo.svg" alt="Logo" />
|
|
249
|
-
</div>
|
|
250
|
-
{/snippet}
|
|
251
|
-
|
|
252
|
-
{#snippet footer()}
|
|
253
|
-
<small>Source: <a href="...">Dataset</a> · Updated Q3 2024</small>
|
|
254
|
-
{/snippet}
|
|
255
|
-
</LineChart>
|
|
66
|
+
<BarPlot {width} {height} data={rows} x="region" y="value" timeline={{ accessor: 'year' }} />
|
|
256
67
|
```
|
|
257
68
|
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
---
|
|
261
|
-
|
|
262
|
-
### Segments
|
|
263
|
-
|
|
264
|
-
The `segments` prop separates data ranges from visual styling. Every plot kind shares the same underlying types; the style shape (`TStyle`) differs per mark.
|
|
265
|
-
|
|
266
|
-
| Plot | `segments` type | Key structure | Lookup |
|
|
267
|
-
| ---- | --------------- | ------------- | ------ |
|
|
268
|
-
| `LinePlot` / `LineChart` | `SegmentsConfig<LineSegmentStyle>` | Named keys (series names) or `'default'` | By series name (`z` accessor or series index). |
|
|
269
|
-
| `BarPlot` / `BarChart` | `SegmentsConfig<BarSegmentStyle>` | Named keys (series names) or `'default'` | By series name (`z` accessor or series index). |
|
|
270
|
-
| `PyramidPlot` / `PyramidChart` | `SegmentsConfig<BarSegmentStyle>` | Named keys (series names) or `'default'` | By series name (`z` accessor or series index). |
|
|
271
|
-
| `HeatmapPlot` / `HeatmapChart` | `SegmentsConfig<CellSegmentStyle>` | `'default'` key only | All cells (can be restricted by `areas` coordinates). |
|
|
272
|
-
| `GeoPlot` | `SegmentsConfig<GeoSegmentStyle>` | Named keys (feature ids) or `'default'` | By feature id (`featureId` accessor or derived from properties). |
|
|
273
|
-
|
|
274
|
-
**Segment styles by plot:**
|
|
275
|
-
|
|
276
|
-
| SegmentStyle type | Supports | Plot(s) |
|
|
277
|
-
| --- | --- | --- |
|
|
278
|
-
| `LineSegmentStyle` | `stroke` (line), `dots` (endpoint markers) | `LinePlot` / `LineChart` |
|
|
279
|
-
| `BarSegmentStyle` | `fill`, `fillOpacity` | `BarPlot` / `BarChart`, `PyramidPlot` / `PyramidChart` |
|
|
280
|
-
| `CellSegmentStyle` | `fill`, `fillOpacity`, `stroke`, `strokeWidth` | `HeatmapPlot` / `HeatmapChart` |
|
|
281
|
-
| `GeoSegmentStyle` | `fill`, `fillOpacity`, `stroke`, `strokeWidth` | `GeoPlot` |
|
|
69
|
+

|
|
282
70
|
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
```ts
|
|
286
|
-
type Range = { from?: AxisValue; to?: AxisValue }; // inclusive on both sides
|
|
287
|
-
type Area = { x?: Range; y?: Range }; // 2-D rectangular region
|
|
288
|
-
type Segment<TStyle> = { areas?: Area[]; style?: TStyle };
|
|
289
|
-
```
|
|
290
|
-
|
|
291
|
-
A **`Segment`** matches a data point (or heatmap cell) when the point falls inside **any** of its `areas`. Omitting `areas` creates a **catch-all** that matches every data point — but catch-alls are always evaluated **last**, regardless of their position in the list, so area-specific segments always win. This lets a catch-all placed first act as a fallback baseline that highlighted ranges override.
|
|
292
|
-
|
|
293
|
-
An **`Area`** restricts by x, y, or both. Both bounds of a `Range` are **inclusive**. Omitting `x` or `y` leaves that axis unrestricted.
|
|
294
|
-
|
|
295
|
-
#### `Segments` structure
|
|
296
|
-
|
|
297
|
-
`segments` is always an **array of groups**. Each group is a plain object whose keys map to `Segment[]` lists:
|
|
298
|
-
|
|
299
|
-
```ts
|
|
300
|
-
// 'default' key — applies its segments to every series
|
|
301
|
-
type DefaultSegmentsMap<TStyle> = { default: Segment<TStyle>[] };
|
|
302
|
-
|
|
303
|
-
// named keys — applies segments only to the named series
|
|
304
|
-
type SeriesAwareSegmentsMap<TStyle> = Record<string, Segment<TStyle>[]>;
|
|
305
|
-
|
|
306
|
-
// one element of the array — either form, or a mix of both key types
|
|
307
|
-
type SegmentsStyle<TStyle> = DefaultSegmentsMap<TStyle> | SeriesAwareSegmentsMap<TStyle>;
|
|
308
|
-
|
|
309
|
-
// the prop type: an ordered list of groups
|
|
310
|
-
type Segments<TStyle> = SegmentsStyle<TStyle>[];
|
|
311
|
-
```
|
|
312
|
-
|
|
313
|
-
Having multiple groups lets you organise segments by concern — for example one group for per-series stroke colours and a second for shared dot markers applied via `'default'`. Groups are processed in order and their resolved segments are concatenated per series before evaluation.
|
|
314
|
-
|
|
315
|
-
#### Examples
|
|
316
|
-
|
|
317
|
-
**Line chart — baseline colour with a highlighted range (catch-all as fallback):**
|
|
318
|
-
|
|
319
|
-
```svelte
|
|
320
|
-
<LinePlot
|
|
321
|
-
{width} {height}
|
|
322
|
-
series={[{ name: 'gdp', x: 'year', y: 'value', data: GDP }]}
|
|
323
|
-
segments={[
|
|
324
|
-
{
|
|
325
|
-
gdp: [
|
|
326
|
-
{ style: { stroke: { stroke: '#94a3b8', strokeWidth: 1 } } },
|
|
327
|
-
{ areas: [{ x: { from: 2008, to: 2010 } }],
|
|
328
|
-
style: { stroke: { stroke: '#ef4444', strokeWidth: 3 } } },
|
|
329
|
-
],
|
|
330
|
-
},
|
|
331
|
-
]}
|
|
332
|
-
/>
|
|
333
|
-
```
|
|
334
|
-
|
|
335
|
-
**Line chart — per-series baseline colours + shared dot markers (two-group approach):**
|
|
71
|
+
`type: 'rule'` draws a **rule** beside the plot instead, a line with the steps written along it. The page drives it through `progress` (`0` to `1`), from a slider, scroll position or anything else.
|
|
336
72
|
|
|
337
73
|
```svelte
|
|
338
74
|
<LinePlot
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
{ default: [
|
|
347
|
-
{ areas: [{ x: { from: 2010, to: 2012 } }],
|
|
348
|
-
style: { dots: { dotRadius: 5, dotSymbol: 'circle' } } },
|
|
349
|
-
],
|
|
350
|
-
},
|
|
351
|
-
]}
|
|
75
|
+
{width}
|
|
76
|
+
{height}
|
|
77
|
+
data={rows}
|
|
78
|
+
x="year"
|
|
79
|
+
y="value"
|
|
80
|
+
color="region"
|
|
81
|
+
timeline={{ accessor: 'year', type: 'rule', progress }}
|
|
352
82
|
/>
|
|
353
83
|
```
|
|
354
84
|
|
|
355
|
-
|
|
85
|
+

|
|
356
86
|
|
|
357
|
-
|
|
358
|
-
<HeatmapChart
|
|
359
|
-
{width} {height} {data} {x} {y} {z}
|
|
360
|
-
segments={[
|
|
361
|
-
{
|
|
362
|
-
default: [
|
|
363
|
-
{ areas: [{ x: { from: 'Q1', to: 'Q1' } }, { x: { from: 'Q3', to: 'Q3' } }],
|
|
364
|
-
style: { stroke: '#f59e0b', strokeWidth: 2 } },
|
|
365
|
-
{ areas: [{ x: { from: 'Q2', to: 'Q2' }, y: { from: 1, to: 2 } }],
|
|
366
|
-
style: { fill: '#ef4444', fillOpacity: 0.8 } },
|
|
367
|
-
],
|
|
368
|
-
},
|
|
369
|
-
]}
|
|
370
|
-
/>
|
|
371
|
-
```
|
|
87
|
+
See [Timeline](docs/timeline.md) for both in detail.
|
|
372
88
|
|
|
373
|
-
|
|
89
|
+
## Documentation
|
|
374
90
|
|
|
375
|
-
|
|
376
|
-
<GeoPlot
|
|
377
|
-
{width} {height}
|
|
378
|
-
data={COUNTRIES_GEOJSON}
|
|
379
|
-
value={(f) => f.properties?.population}
|
|
380
|
-
segments={[
|
|
381
|
-
{
|
|
382
|
-
// Catch-all baseline (always evaluated last)
|
|
383
|
-
default: [
|
|
384
|
-
{ style: { fillOpacity: 0.7, stroke: '#94a3b8' } },
|
|
385
|
-
],
|
|
386
|
-
// Per-feature overrides (matched by feature id)
|
|
387
|
-
argentina: [
|
|
388
|
-
{ style: { fill: '#3b82f6', fillOpacity: 0.9 } },
|
|
389
|
-
],
|
|
390
|
-
brazil: [
|
|
391
|
-
{ style: { fill: '#ef4444', fillOpacity: 0.9 } },
|
|
392
|
-
],
|
|
393
|
-
},
|
|
394
|
-
]}
|
|
395
|
-
/>
|
|
396
|
-
```
|
|
91
|
+
Start with the concepts; the rest is organised by what you want a plot to do.
|
|
397
92
|
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
93
|
+
| Topic | What it covers |
|
|
94
|
+
| -------------------------------------------------------------- | -------------------------------------------------------------------------------------------- |
|
|
95
|
+
| [Getting started](docs/getting-started.md) | Installing, a first plot, sizing a plot to its container, loading data |
|
|
96
|
+
| [Concepts](docs/concepts.md) | Plots and figures, rows and series, channels, the props every plot shares |
|
|
97
|
+
| [Plots](docs/plots.md) | The eight plot kinds: what each one draws and what it needs |
|
|
98
|
+
| [Scales](docs/scales.md) | Axes (`x`, `y`) and channel scales (`color`, `grouping`, `opacity`, `symbol`, `r`, `length`) |
|
|
99
|
+
| [Styles and segments](docs/styles-and-segments.md) | Value labels, frames, gap filling, and styling ranges of the data |
|
|
100
|
+
| [Markers](docs/markers.md) | Extra marks on a plot: annotations, regions, hover highlights, custom components |
|
|
101
|
+
| [Transforms and statistics](docs/transforms-and-statistics.md) | Stacking, binning, smoothing, regression and the other data transforms |
|
|
102
|
+
| [Tooltip and hover](docs/tooltip-and-hover.md) | Floating tooltips, in-plot highlights, syncing hover across plots |
|
|
103
|
+
| [Legend](docs/legend.md) | The automatic legend, toggling series, custom sections |
|
|
104
|
+
| [Timeline](docs/timeline.md) | Stepping through the data by time, with a player bar (default) or a rule |
|
|
105
|
+
| [Chrome](docs/chrome.md) | Title, subtitle, caption, header, footer, dividers and their order |
|
|
106
|
+
| [Facets](docs/facets.md) | Small multiples: grids, carousels, pages |
|
|
107
|
+
| [Composer](docs/composer.md) | Several plots in one figure, with shared hover, legend and timeline |
|
|
108
|
+
| [Reading plot state](docs/state.md) | `usePlot` and `useFigure`, to build custom UI around a plot |
|
|
109
|
+
| [Maps](docs/geo.md) | GeoPlot: data, projections, choropleths, camera and map markers |
|
|
110
|
+
| [Theming](docs/theming.md) | The global configuration, themes, locale and CSS variables |
|
|
111
|
+
| [Architecture](docs/architecture.md) | How a plot is assembled, for contributors |
|
|
112
|
+
| [Development](docs/development.md) | Building, testing, Storybook and publishing |
|
|
418
113
|
|
|
419
|
-
|
|
420
|
-
- Call it once at app startup (or per-theme-switch); it's global, not per-chart. A single chart can still override specific visuals via its own props (`styles`, `scales`, a section's own `format`/`color`, etc.) — those always win over the global config.
|
|
114
|
+
Working examples live in [examples/](examples/); the Storybook (`pnpm storybook`) shows every option live.
|
|
421
115
|
|
|
422
|
-
|
|
116
|
+
## For LLMs and coding agents
|
|
423
117
|
|
|
424
|
-
|
|
118
|
+
[llms.txt](llms.txt) is the index and [llms-full.txt](llms-full.txt) is a single-file guide with the rules that matter most. Both ship inside the npm package, next to the runnable [examples/](examples/).
|
|
425
119
|
|
|
426
|
-
|
|
427
|
-
2. **Plain JS values** — read directly by plot components as props svelteplot needs (numeric tick sizes, the categorical `palette` array, margins, gradient endpoints, hover geometry, per-mark defaults). These have **no** CSS variable — `setConfiguration` (or editing `DEFAULT_CONFIG`) is the only way to change them.
|
|
120
|
+
## License
|
|
428
121
|
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
All types live in `src/lib/types/configuration/styling.ts`; all defaults in `src/lib/configuration/config.svelte.ts`. "CSS variable" is `—` for JS-only fields.
|
|
432
|
-
|
|
433
|
-
#### Base
|
|
434
|
-
|
|
435
|
-
| Field | Type | Default | CSS variable |
|
|
436
|
-
| ----- | ---- | ------- | ------------- |
|
|
437
|
-
| `font` | `string` | `'inherit'` | `--dct-font` |
|
|
438
|
-
| `color` | `string` | `'currentColor'` | `--dct-fg` |
|
|
439
|
-
| `background` | `string` | `'transparent'` | `--dct-bg` |
|
|
440
|
-
| `border` | `string` | `'color-mix(in srgb, currentColor 15%, transparent)'` | `--dct-border` |
|
|
441
|
-
|
|
442
|
-
#### Spacing
|
|
443
|
-
|
|
444
|
-
| Field | Type | Default | CSS variable |
|
|
445
|
-
| ----- | ---- | ------- | ------------- |
|
|
446
|
-
| `spacing.headerPadding` | `string` | `'0.75rem 0 1rem'` | `--dct-header-pad` |
|
|
447
|
-
| `spacing.legendPadding` | `string` | `'0.75rem 0'` | `--dct-legend-pad` |
|
|
448
|
-
| `spacing.captionPadding` | `string` | `'0.5rem 0'` | `--dct-caption-pad` |
|
|
449
|
-
| `spacing.bleed` | `string` | `'12px'` | `--dct-bleed` |
|
|
450
|
-
|
|
451
|
-
#### Text blocks: `title`, `subtitle`, `caption`
|
|
452
|
-
|
|
453
|
-
Each is a `TextStyle` — `{ font, size, weight, color, leading, spacing }` — mapped to `--dct-{title|subtitle|caption}-{font|size|weight|color|leading|spacing}`. Shared base before per-block overrides: `font: 'inherit'`, `size: '1rem'`, `weight: 400`, `color: 'inherit'`, `leading: '1.3'`, `spacing: 'normal'`.
|
|
454
|
-
|
|
455
|
-
| Block | Overrides its own default |
|
|
456
|
-
| ----- | -------------------------- |
|
|
457
|
-
| `title` | `size: '1.5rem'`, `weight: 500`, `leading: '1.2'` |
|
|
458
|
-
| `subtitle` | `size: '1rem'`, `weight: 400`, `color: 'color-mix(in srgb, currentColor 85%, transparent)'` |
|
|
459
|
-
| `caption` | `size: '0.75rem'`, `color: 'color-mix(in srgb, currentColor 75%, transparent)'` |
|
|
460
|
-
|
|
461
|
-
#### Legend
|
|
462
|
-
|
|
463
|
-
| Field | Type | Default | CSS variable |
|
|
464
|
-
| ----- | ---- | ------- | ------------- |
|
|
465
|
-
| `legend.font` | `string` | `'inherit'` | `--dct-legend-font` |
|
|
466
|
-
| `legend.size` | `string` | `'0.875rem'` | `--dct-legend-size` |
|
|
467
|
-
| `legend.weight` | `number \| string` | `400` | `--dct-legend-weight` |
|
|
468
|
-
| `legend.color` | `string` | `'inherit'` | `--dct-legend-color` |
|
|
469
|
-
| `legend.titleSize` | `string` | `'0.875rem'` | `--dct-legend-title-size` |
|
|
470
|
-
| `legend.titleWeight` | `number \| string` | `500` | `--dct-legend-title-weight` |
|
|
471
|
-
| `legend.gap` | `string` (CSS `gap` shorthand) | `'0.5rem 2rem'` | `--dct-legend-gap` |
|
|
472
|
-
| `legend.swatchSize` | `string` | `'1.25rem'` | `--dct-legend-swatch` |
|
|
473
|
-
| `legend.disabledOpacity` | `number` | `0.12` | — (fallback for a legend-disabled series/value when a section doesn't set its own style) |
|
|
474
|
-
|
|
475
|
-
`legend.navButton` — prev/next arrows on an overflowing horizontal discrete section:
|
|
476
|
-
|
|
477
|
-
| Field | Type | Default | CSS variable |
|
|
478
|
-
| ----- | ---- | ------- | ------------- |
|
|
479
|
-
| `legend.navButton.background` | `string` | `'transparent'` | `--dct-legend-nav-bg` |
|
|
480
|
-
| `legend.navButton.color` | `string` | `'currentColor'` | `--dct-legend-nav-color` |
|
|
481
|
-
| `legend.navButton.size` | `string` | `'1.5rem'` | `--dct-legend-nav-size` |
|
|
482
|
-
| `legend.navButton.fontSize` | `string` | `'1rem'` | `--dct-legend-nav-font-size` |
|
|
483
|
-
| `legend.navButton.disabledOpacity` | `number` | `0.3` | `--dct-legend-nav-disabled-opacity` |
|
|
484
|
-
|
|
485
|
-
`legend.continuous` — the gradient bar's draggable handles, ticks, and labels:
|
|
486
|
-
|
|
487
|
-
| Field | Type | Default | CSS variable |
|
|
488
|
-
| ----- | ---- | ------- | ------------- |
|
|
489
|
-
| `legend.continuous.handle.width` | `string` | `'6px'` | `--dct-continuous-handle-width` |
|
|
490
|
-
| `legend.continuous.handle.height` | `string` | `'20px'` | `--dct-continuous-handle-height` |
|
|
491
|
-
| `legend.continuous.handle.radius` | `string` | `'3px'` | `--dct-continuous-handle-radius` |
|
|
492
|
-
| `legend.continuous.handle.fill` | `string` | `'currentColor'` | `--dct-continuous-handle-fill` |
|
|
493
|
-
| `legend.continuous.handle.stroke` | `string` | `'var(--dct-bg, #fff)'` | `--dct-continuous-handle-stroke` |
|
|
494
|
-
| `legend.continuous.handle.strokeWidth` | `string` | `'1.5px'` | `--dct-continuous-handle-stroke-width` |
|
|
495
|
-
| `legend.continuous.tick.color` | `string` | `'currentColor'` | `--dct-continuous-tick-color` |
|
|
496
|
-
| `legend.continuous.tick.width` | `string` | `'1px'` | `--dct-continuous-tick-width` |
|
|
497
|
-
| `legend.continuous.tick.length` | `string` | `'6px'` | `--dct-continuous-tick-length` |
|
|
498
|
-
| `legend.continuous.label.rotate` | `string` | `'0deg'` | `--dct-continuous-label-rotate` |
|
|
499
|
-
| `legend.continuous.label.size` | `string` | `'0.875rem'` | `--dct-continuous-label-size` |
|
|
500
|
-
| `legend.continuous.label.weight` | `number \| string` | `600` | `--dct-continuous-label-weight` |
|
|
501
|
-
|
|
502
|
-
`legend.continuous.label.overlap` — interactive mode only: once dragging brings the lo/hi handle labels too close to read side by side, both flip to read top-to-bottom instead of clipping or overlapping:
|
|
503
|
-
|
|
504
|
-
| Field | Type | Default | CSS variable |
|
|
505
|
-
| ----- | ---- | ------- | ------------- |
|
|
506
|
-
| `legend.continuous.label.overlap.enabled` | `boolean` | `true` | — (`false` always keeps both labels horizontal, however close together) |
|
|
507
|
-
| `legend.continuous.label.overlap.margin` | `number` (px) | `4` | — (horizontal slack the two labels need before they're considered overlapping) |
|
|
508
|
-
| `legend.continuous.label.overlap.rotate` | `string` | `'90deg'` | `--dct-continuous-label-overlap-rotate` (lo rotates by this; hi by its negation, via `calc(... * -1)`, so both still grow inward toward the bar) |
|
|
509
|
-
|
|
510
|
-
#### Axis
|
|
511
|
-
|
|
512
|
-
Consumed as plain numeric/boolean props by the underlying svelteplot axes — only `color` is also exposed as a CSS variable (used by non-plot axis-adjacent chrome).
|
|
513
|
-
|
|
514
|
-
| Field | Type | Default | CSS variable |
|
|
515
|
-
| ----- | ---- | ------- | ------------- |
|
|
516
|
-
| `axis.color` | `string` | `'currentColor'` | `--dct-axis-color` |
|
|
517
|
-
| `axis.fontSize` | `number` | `14` | — |
|
|
518
|
-
| `axis.labelFontSize` | `number` | `14` | — |
|
|
519
|
-
| `axis.titleFontSize` | `number` | `14` | — |
|
|
520
|
-
| `axis.xTickSize` | `number` | `5` | — |
|
|
521
|
-
| `axis.yTickSize` | `number` | `5` | — |
|
|
522
|
-
| `axis.xTickPadding` | `number` | `10` | — |
|
|
523
|
-
| `axis.yTickPadding` | `number` | `10` | — |
|
|
524
|
-
| `axis.grid` | `boolean` | `false` | — |
|
|
525
|
-
| `axis.locale` | `string` | `'es-AR'` | — |
|
|
526
|
-
| `axis.compactDisplay` | `'short' \| 'long'` | `'long'` | — (`'1 mil'` vs `'1 K'`) |
|
|
527
|
-
|
|
528
|
-
`axis.locale`/`axis.compactDisplay` feed svelteplot's own automatic tick formatter — the one it falls back to on any axis without its own explicit `scales.x`/`scales.y.tickFormat`. Whether a given axis abbreviates at all (vs. spelling every digit out) stays svelteplot's own per-axis call, based on that axis's value range; these two only change the *wording* once it decides to. `axis.locale` updates a chart already on screen; `axis.compactDisplay` is read once when a chart mounts (it goes through svelteplot's own `setPlotDefaults` context hook, not a per-instance prop) and needs a remount to pick up a later change.
|
|
529
|
-
|
|
530
|
-
#### Tooltip
|
|
531
|
-
|
|
532
|
-
| Field | Type | Default | CSS variable |
|
|
533
|
-
| ----- | ---- | ------- | ------------- |
|
|
534
|
-
| `tooltip.background` | `string` | `'#111827'` | `--dct-tooltip-bg` |
|
|
535
|
-
| `tooltip.color` | `string` | `'#ffffff'` | `--dct-tooltip-color` |
|
|
536
|
-
| `tooltip.fontSize` | `string` | `'0.8125rem'` | `--dct-tooltip-size` |
|
|
537
|
-
| `tooltip.padding` | `string` | `'0.5rem 0.75rem'` | `--dct-tooltip-pad` |
|
|
538
|
-
| `tooltip.radius` | `string` | `'0.375rem'` | `--dct-tooltip-radius` |
|
|
539
|
-
| `tooltip.border` | `string` | `'none'` | `--dct-tooltip-border` |
|
|
540
|
-
|
|
541
|
-
#### Plot geometry & colour (all JS-only — no CSS variables)
|
|
542
|
-
|
|
543
|
-
| Field | Type | Default |
|
|
544
|
-
| ----- | ---- | ------- |
|
|
545
|
-
| `margins.top/right/bottom/left` | `number \| 'auto'` | `'auto'` each — lets svelteplot size that side to fit whatever it actually renders there; a number pins it exactly |
|
|
546
|
-
| `palette` | `string[]` | `['#4f46e5', '#e6580d', '#16a34a', '#dc2626', '#0891b2', '#9333ea', '#ca8a04', '#db2777']` — categorical series colours |
|
|
547
|
-
| `continuous.min` / `continuous.max` | `string` | `'#e0e7ff'` / `'#4f46e5'` — heatmap/choropleth gradient endpoints |
|
|
548
|
-
| `continuous.labelColor` | `string` | `'#111827'` — on-cell label colour |
|
|
549
|
-
| `line.strokeWidth` | `number` | `3` |
|
|
550
|
-
| `line.dotRadius` | `number` | `4` |
|
|
551
|
-
| `line.gap.stroke` / `line.gap.dots` | `StrokeStyle` / `DotStyle` | `{ strokeOpacity: 0.6, strokeDasharray: '4 4' }` / `{}` — fallback for `LinePlot`'s `styles.gaps` |
|
|
552
|
-
| `line.valueLabels.elbowGap` | `number` | `10` — shortest leader-line lane distance before it bends |
|
|
553
|
-
| `line.valueLabels.laneStep` | `number` | `7` — extra distance each subsequent lane sits out |
|
|
554
|
-
| `line.valueLabels.labelGap` | `number` | `6` — clearance between the outermost lane and its label |
|
|
555
|
-
| `line.valueLabels.connectorColor` | `string` | `'#94a3b8'` |
|
|
556
|
-
| `line.valueLabels.connectorWidth` | `number` | `0.5` |
|
|
557
|
-
| `bar.gap` | `AreaStyle` | `{ fillOpacity: 0.5 }` — fallback for `BarPlot`'s `styles.gaps` |
|
|
558
|
-
| `bar.seriesPadding` | `number` (0–1) | `0.2` — fallback `scales.z.seriesPadding` for grouped series |
|
|
559
|
-
| `bar.paddingInner` | `number` (0–1) | `0.15` — gap between category groups |
|
|
560
|
-
| `bar.paddingOuter` | `number` (0–1) | `0.15` — gap before the first / after the last group |
|
|
561
|
-
| `pyramid.gap` | `AreaStyle` | `{ fillOpacity: 0.5 }` — fallback for `PyramidPlot`'s `styles.gaps` |
|
|
562
|
-
| `scatter.dotRadius` | `number` | `5` |
|
|
563
|
-
| `timeline.thickness` | `number` | `60` |
|
|
564
|
-
| `hover.rule` | `StrokeStyle` | `{ stroke: '#e6580d', strokeOpacity: 0.35, strokeWidth: 1.5, strokeDasharray: '4 4' }` — hover crosshair |
|
|
565
|
-
| `hover.dot` | `DotStyle` | `{ dotRadius: 5, dotFill: 'currentColor' }` |
|
|
566
|
-
| `hover.font` | `FontStyle` | `{ fill: 'currentColor', fontSize: 12, dy: -18 }` |
|
|
567
|
-
| `hover.area` | `AreaStyle` | `{ fill: '#94a3b8', fillOpacity: 0.25 }` — band highlight on a band scale |
|
|
568
|
-
|
|
569
|
-
`timeline.axisColor` / `timeline.activeColor` are the two exceptions in this group — they *do* have CSS variables (see below), since the timeline gutter is HTML chrome, not an SVG plot mark.
|
|
570
|
-
|
|
571
|
-
| Field | Type | Default | CSS variable |
|
|
572
|
-
| ----- | ---- | ------- | ------------- |
|
|
573
|
-
| `timeline.axisColor` | `string` | `'currentColor'` | `--dct-timeline-axis` |
|
|
574
|
-
| `timeline.activeColor` | `string` | `'#e6580d'` | `--dct-timeline-active` |
|
|
575
|
-
|
|
576
|
-
#### Facet (small multiples)
|
|
577
|
-
|
|
578
|
-
| Field | Type | Default | CSS variable |
|
|
579
|
-
| ----- | ---- | ------- | ------------- |
|
|
580
|
-
| `facet.indicator.background` | `string` | `'#111827'` | `--dct-facet-indicator-bg` |
|
|
581
|
-
| `facet.indicator.color` | `string` | `'#ffffff'` | `--dct-facet-indicator-color` |
|
|
582
|
-
| `facet.indicator.fontSize` | `string` | `'0.8125rem'` | `--dct-facet-indicator-size` |
|
|
583
|
-
| `facet.indicator.padding` | `string` | `'0.125rem 0.5rem'` | `--dct-facet-indicator-pad` |
|
|
584
|
-
| `facet.indicator.radius` | `string` | `'999px'` | `--dct-facet-indicator-radius` |
|
|
585
|
-
| `facet.navButton.background` | `string` | `'#111827'` | `--dct-facet-nav-bg` |
|
|
586
|
-
| `facet.navButton.color` | `string` | `'#ffffff'` | `--dct-facet-nav-color` |
|
|
587
|
-
| `facet.navButton.size` | `string` | `'2rem'` | `--dct-facet-nav-btn-size` |
|
|
588
|
-
| `facet.navButton.fontSize` | `string` | `'1.1rem'` | `--dct-facet-nav-font-size` |
|
|
589
|
-
| `facet.navButton.disabledOpacity` | `number` | `0.3` | `--dct-facet-nav-disabled-opacity` |
|
|
590
|
-
|
|
591
|
-
---
|
|
592
|
-
|
|
593
|
-
## Public API
|
|
594
|
-
|
|
595
|
-
```ts
|
|
596
|
-
import {
|
|
597
|
-
...
|
|
598
|
-
} from '@fundar/data-chart-telling';
|
|
599
|
-
```
|
|
122
|
+
[MIT](LICENSE). Keep the copyright notice and license text in copies of the code.
|