@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/docs/theming.md
ADDED
|
@@ -0,0 +1,215 @@
|
|
|
1
|
+
# Theming
|
|
2
|
+
|
|
3
|
+
The whole package reads its styling - fonts, colors, spacing, the legend, tooltip, axes, plot geometry - from one global, reactive configuration. Changing it re-themes every plot on screen; nothing is passed prop by prop.
|
|
4
|
+
|
|
5
|
+
```ts
|
|
6
|
+
import {
|
|
7
|
+
setConfiguration,
|
|
8
|
+
getConfiguration,
|
|
9
|
+
resetConfiguration,
|
|
10
|
+
THEMES
|
|
11
|
+
} from '@fundar/data-chart-telling';
|
|
12
|
+
|
|
13
|
+
setConfiguration(THEMES.Editorial); // a ready-made theme
|
|
14
|
+
|
|
15
|
+
setConfiguration({
|
|
16
|
+
font: '"Inter", sans-serif',
|
|
17
|
+
palette: ['#4f46e5', '#e6580d', '#16a34a'],
|
|
18
|
+
legend: { continuous: { label: { size: '0.8125rem', weight: 400 } } }
|
|
19
|
+
});
|
|
20
|
+
|
|
21
|
+
getConfiguration(); // the live, merged configuration
|
|
22
|
+
resetConfiguration(); // back to the shipped defaults
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
- `setConfiguration` takes a deep-partial patch and deep-merges it into the current configuration: name only the leaves to change. It is reactive, so mounted plots update.
|
|
26
|
+
- Call it once at startup, or when the theme switches. It is global, not per plot; a plot's own props (`styles`, `scales`, a legend section's `format`, ...) always win over it.
|
|
27
|
+
- The configuration is cloned when stored, so it holds data only: numbers, strings, arrays, objects. Functions belong in plot props such as `format` and `tickFormat`.
|
|
28
|
+
- When `setConfiguration` runs inside an `$effect`, wrap the call in `untrack` so the effect does not re-trigger itself.
|
|
29
|
+
- `THEMES` holds `Default`, `Editorial`, `Dark` and `Compact`; each is a patch for `setConfiguration`.
|
|
30
|
+
- The complete shape is the type `PlotStylesConfig` (patches: `PlotStylesConfigInput`); the shipped values are `DEFAULT_CONFIG`.
|
|
31
|
+
|
|
32
|
+
## Sections
|
|
33
|
+
|
|
34
|
+
| Key | Controls |
|
|
35
|
+
| -------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
36
|
+
| `font`, `color`, `background` | Base text of every figure |
|
|
37
|
+
| `palette` | Categorical series colors, in order |
|
|
38
|
+
| `symbols` | Shape cycle for the `symbol` channel |
|
|
39
|
+
| `continuous` | Default ramp endpoints, label color and opacity range for continuous color and opacity |
|
|
40
|
+
| `spacing`, `chrome` | Padding around header, legend and caption; the chrome `order` and `rowGap` |
|
|
41
|
+
| `title`, `subtitle`, `caption` | Text blocks: `font`, `size`, `weight`, `color`, `leading`, `spacing` |
|
|
42
|
+
| `divider` | The line a `'divider'` in the chrome `order` draws |
|
|
43
|
+
| `legend` | Text, gaps, swatches, `disabledOpacity`, paginated nav buttons, the continuous bar, its handles, ticks and labels, and the `seriesTitle` and `sizeScale` options |
|
|
44
|
+
| `axis` | Axis color, font and tick sizes, `grid`, and the number locale (below) |
|
|
45
|
+
| `tooltip` | Tooltip background, color, font size, padding, radius, border |
|
|
46
|
+
| `margins` | Default margin per side (`'auto'` or a number) |
|
|
47
|
+
| `line`, `area`, `bar`, `pyramid`, `histogram`, `scatter` | Per-kind defaults: stroke width, dot radius, series padding, gap fills, fill opacity, inset |
|
|
48
|
+
| `text` | `declutter` geometry of value labels and connectors |
|
|
49
|
+
| `hover` | Look of the hover marker: `rule`, `dot`, `font`, `area` |
|
|
50
|
+
| `timeline` | The rule (`rule`) and the player bar (`player`: controls, speeds, `stepDuration`, button, track, thumb, toggle) |
|
|
51
|
+
| `facet` | The position badge and prev/next buttons |
|
|
52
|
+
| `frameClip` | Tolerance for clipping marks to the plot frame |
|
|
53
|
+
|
|
54
|
+
## Locale
|
|
55
|
+
|
|
56
|
+
`axis.locale` (default `'es-AR'`) and `axis.compactDisplay` (`'short'` or `'long'`, default `'short'`) set how the automatic tick formatter writes numbers - the one used by any axis without its own `scales.x`/`scales.y.tickFormat`. A legend's size section writes its values the same way. Whether an axis abbreviates at all stays svelteplot's call, based on its value range; these two choose the wording once it does.
|
|
57
|
+
|
|
58
|
+
```ts
|
|
59
|
+
setConfiguration({ axis: { locale: 'en-US', compactDisplay: 'long' } });
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
`axis.locale` updates plots already on screen. `axis.compactDisplay` is read when a plot mounts, so a later change shows on the next mount.
|
|
63
|
+
|
|
64
|
+
## CSS variables
|
|
65
|
+
|
|
66
|
+
Some fields reach the DOM as CSS custom properties, which every figure sets on its root element and the components read with a fallback. Those can also be overridden with plain CSS on a wrapping element for a one-off, non-reactive tweak:
|
|
67
|
+
|
|
68
|
+
```css
|
|
69
|
+
.my-dashboard {
|
|
70
|
+
--dct-tooltip-bg: #0b3d2e;
|
|
71
|
+
--dct-title-size: 2rem;
|
|
72
|
+
}
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
The remaining fields are plain values read by plot code (palette, tick sizes, margins, per-kind geometry, hover look); `setConfiguration` is the way to change those.
|
|
76
|
+
|
|
77
|
+
The text blocks map `title`, `subtitle` and `caption` to `--dct-{block}-{font|size|weight|color|leading|spacing}`. Every other variable and the configuration path it comes from:
|
|
78
|
+
|
|
79
|
+
### base
|
|
80
|
+
|
|
81
|
+
| CSS variable | Config path |
|
|
82
|
+
| ------------ | ------------ |
|
|
83
|
+
| `--dct-font` | `font` |
|
|
84
|
+
| `--dct-fg` | `color` |
|
|
85
|
+
| `--dct-bg` | `background` |
|
|
86
|
+
|
|
87
|
+
### spacing
|
|
88
|
+
|
|
89
|
+
| CSS variable | Config path |
|
|
90
|
+
| ------------------- | ------------------------ |
|
|
91
|
+
| `--dct-header-pad` | `spacing.headerPadding` |
|
|
92
|
+
| `--dct-legend-pad` | `spacing.legendPadding` |
|
|
93
|
+
| `--dct-caption-pad` | `spacing.captionPadding` |
|
|
94
|
+
| `--dct-bleed` | `spacing.bleed` |
|
|
95
|
+
|
|
96
|
+
### divider
|
|
97
|
+
|
|
98
|
+
| CSS variable | Config path |
|
|
99
|
+
| ---------------------- | ---------------- |
|
|
100
|
+
| `--dct-divider-color` | `divider.color` |
|
|
101
|
+
| `--dct-divider-width` | `divider.width` |
|
|
102
|
+
| `--dct-divider-style` | `divider.style` |
|
|
103
|
+
| `--dct-divider-margin` | `divider.margin` |
|
|
104
|
+
|
|
105
|
+
### chrome
|
|
106
|
+
|
|
107
|
+
| CSS variable | Config path |
|
|
108
|
+
| --------------- | --------------- |
|
|
109
|
+
| `--dct-row-gap` | `chrome.rowGap` |
|
|
110
|
+
|
|
111
|
+
### legend
|
|
112
|
+
|
|
113
|
+
| CSS variable | Config path |
|
|
114
|
+
| --------------------------------------- | ---------------------------------------- |
|
|
115
|
+
| `--dct-legend-font` | `legend.font` |
|
|
116
|
+
| `--dct-legend-size` | `legend.size` |
|
|
117
|
+
| `--dct-legend-weight` | `legend.weight` |
|
|
118
|
+
| `--dct-legend-color` | `legend.color` |
|
|
119
|
+
| `--dct-legend-title-size` | `legend.titleSize` |
|
|
120
|
+
| `--dct-legend-title-weight` | `legend.titleWeight` |
|
|
121
|
+
| `--dct-legend-gap` | `legend.gap` |
|
|
122
|
+
| `--dct-legend-swatch` | `legend.swatchSize` |
|
|
123
|
+
| `--dct-legend-size-gap` | `legend.sizeScale.gap` |
|
|
124
|
+
| `--dct-legend-nav-bg` | `legend.navButton.background` |
|
|
125
|
+
| `--dct-legend-nav-color` | `legend.navButton.color` |
|
|
126
|
+
| `--dct-legend-nav-size` | `legend.navButton.size` |
|
|
127
|
+
| `--dct-legend-nav-font-size` | `legend.navButton.fontSize` |
|
|
128
|
+
| `--dct-legend-nav-disabled-opacity` | `legend.navButton.disabledOpacity` |
|
|
129
|
+
| `--dct-continuous-handle-width` | `legend.continuous.handle.width` |
|
|
130
|
+
| `--dct-continuous-handle-height` | `legend.continuous.handle.height` |
|
|
131
|
+
| `--dct-continuous-handle-radius` | `legend.continuous.handle.radius` |
|
|
132
|
+
| `--dct-continuous-handle-fill` | `legend.continuous.handle.fill` |
|
|
133
|
+
| `--dct-continuous-handle-stroke` | `legend.continuous.handle.stroke` |
|
|
134
|
+
| `--dct-continuous-handle-stroke-width` | `legend.continuous.handle.strokeWidth` |
|
|
135
|
+
| `--dct-continuous-tick-color` | `legend.continuous.tick.color` |
|
|
136
|
+
| `--dct-continuous-tick-width` | `legend.continuous.tick.width` |
|
|
137
|
+
| `--dct-continuous-tick-length` | `legend.continuous.tick.length` |
|
|
138
|
+
| `--dct-continuous-label-rotate` | `legend.continuous.label.rotate` |
|
|
139
|
+
| `--dct-continuous-label-size` | `legend.continuous.label.size` |
|
|
140
|
+
| `--dct-continuous-label-weight` | `legend.continuous.label.weight` |
|
|
141
|
+
| `--dct-continuous-label-overlap-rotate` | `legend.continuous.label.overlap.rotate` |
|
|
142
|
+
|
|
143
|
+
### axis
|
|
144
|
+
|
|
145
|
+
| CSS variable | Config path |
|
|
146
|
+
| ------------------ | ------------ |
|
|
147
|
+
| `--dct-axis-color` | `axis.color` |
|
|
148
|
+
|
|
149
|
+
### tooltip
|
|
150
|
+
|
|
151
|
+
| CSS variable | Config path |
|
|
152
|
+
| ---------------------- | -------------------- |
|
|
153
|
+
| `--dct-tooltip-bg` | `tooltip.background` |
|
|
154
|
+
| `--dct-tooltip-color` | `tooltip.color` |
|
|
155
|
+
| `--dct-tooltip-size` | `tooltip.fontSize` |
|
|
156
|
+
| `--dct-tooltip-pad` | `tooltip.padding` |
|
|
157
|
+
| `--dct-tooltip-radius` | `tooltip.radius` |
|
|
158
|
+
| `--dct-tooltip-border` | `tooltip.border` |
|
|
159
|
+
|
|
160
|
+
### timeline
|
|
161
|
+
|
|
162
|
+
| CSS variable | Config path |
|
|
163
|
+
| ---------------------------------- | ----------------------------------------- |
|
|
164
|
+
| `--dct-timeline-axis` | `timeline.axisColor` |
|
|
165
|
+
| `--dct-timeline-active` | `timeline.activeColor` |
|
|
166
|
+
| `--dct-timeline-gap` | `timeline.gap` |
|
|
167
|
+
| `--dct-player-bg` | `timeline.player.background` |
|
|
168
|
+
| `--dct-player-color` | `timeline.player.color` |
|
|
169
|
+
| `--dct-player-radius` | `timeline.player.radius` |
|
|
170
|
+
| `--dct-player-pad` | `timeline.player.padding` |
|
|
171
|
+
| `--dct-player-gap` | `timeline.player.gap` |
|
|
172
|
+
| `--dct-player-size` | `timeline.player.fontSize` |
|
|
173
|
+
| `--dct-player-weight` | `timeline.player.fontWeight` |
|
|
174
|
+
| `--dct-player-value-width` | `timeline.player.valueWidth` |
|
|
175
|
+
| `--dct-player-button-size` | `timeline.player.button.size` |
|
|
176
|
+
| `--dct-player-button-bg` | `timeline.player.button.background` |
|
|
177
|
+
| `--dct-player-button-color` | `timeline.player.button.color` |
|
|
178
|
+
| `--dct-player-button-hover-bg` | `timeline.player.button.hoverBackground` |
|
|
179
|
+
| `--dct-player-button-radius` | `timeline.player.button.radius` |
|
|
180
|
+
| `--dct-player-track-height` | `timeline.player.track.height` |
|
|
181
|
+
| `--dct-player-track-color` | `timeline.player.track.color` |
|
|
182
|
+
| `--dct-player-track-fill` | `timeline.player.track.fillColor` |
|
|
183
|
+
| `--dct-player-track-radius` | `timeline.player.track.radius` |
|
|
184
|
+
| `--dct-player-thumb-size` | `timeline.player.thumb.size` |
|
|
185
|
+
| `--dct-player-thumb-color` | `timeline.player.thumb.color` |
|
|
186
|
+
| `--dct-player-toggle-bg` | `timeline.player.toggle.background` |
|
|
187
|
+
| `--dct-player-toggle-color` | `timeline.player.toggle.color` |
|
|
188
|
+
| `--dct-player-toggle-active-bg` | `timeline.player.toggle.activeBackground` |
|
|
189
|
+
| `--dct-player-toggle-active-color` | `timeline.player.toggle.activeColor` |
|
|
190
|
+
| `--dct-player-toggle-radius` | `timeline.player.toggle.radius` |
|
|
191
|
+
| `--dct-player-toggle-size` | `timeline.player.toggle.fontSize` |
|
|
192
|
+
| `--dct-player-toggle-pad` | `timeline.player.toggle.padding` |
|
|
193
|
+
|
|
194
|
+
### heatmap ramp
|
|
195
|
+
|
|
196
|
+
| CSS variable | Config path |
|
|
197
|
+
| ----------------- | ----------------------- |
|
|
198
|
+
| `--dct-heat-min` | `continuous.min` |
|
|
199
|
+
| `--dct-heat-max` | `continuous.max` |
|
|
200
|
+
| `--dct-heat-text` | `continuous.labelColor` |
|
|
201
|
+
|
|
202
|
+
### facet
|
|
203
|
+
|
|
204
|
+
| CSS variable | Config path |
|
|
205
|
+
| ---------------------------------- | --------------------------------- |
|
|
206
|
+
| `--dct-facet-indicator-bg` | `facet.indicator.background` |
|
|
207
|
+
| `--dct-facet-indicator-color` | `facet.indicator.color` |
|
|
208
|
+
| `--dct-facet-indicator-size` | `facet.indicator.fontSize` |
|
|
209
|
+
| `--dct-facet-indicator-pad` | `facet.indicator.padding` |
|
|
210
|
+
| `--dct-facet-indicator-radius` | `facet.indicator.radius` |
|
|
211
|
+
| `--dct-facet-nav-bg` | `facet.navButton.background` |
|
|
212
|
+
| `--dct-facet-nav-color` | `facet.navButton.color` |
|
|
213
|
+
| `--dct-facet-nav-btn-size` | `facet.navButton.size` |
|
|
214
|
+
| `--dct-facet-nav-font-size` | `facet.navButton.fontSize` |
|
|
215
|
+
| `--dct-facet-nav-disabled-opacity` | `facet.navButton.disabledOpacity` |
|
package/docs/timeline.md
ADDED
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
# Timeline
|
|
2
|
+
|
|
3
|
+
`timeline` steps a plot through its data by a field - usually a year or a date. Each step shows the rows of one value of that field. It draws as a **player** by default - a control bar with play, pause and a slider - or as a **rule**, a guide beside the plot that the page drives (`type: 'rule'`).
|
|
4
|
+
|
|
5
|
+
```svelte
|
|
6
|
+
<BarPlot
|
|
7
|
+
{width}
|
|
8
|
+
{height}
|
|
9
|
+
data={rows}
|
|
10
|
+
x="region"
|
|
11
|
+
y="value"
|
|
12
|
+
scales={{ y: { domain: [0, 100] } }}
|
|
13
|
+
timeline={{ accessor: 'year' }}
|
|
14
|
+
/>
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+

|
|
18
|
+
|
|
19
|
+
## Options
|
|
20
|
+
|
|
21
|
+
| Option | Meaning |
|
|
22
|
+
| ---------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
|
|
23
|
+
| `accessor` | Field (or function) giving each row's step - required |
|
|
24
|
+
| `type` | `'player'` (default) draws a control bar in the chrome; `'rule'` draws a guide with the steps written along it |
|
|
25
|
+
| `progress` | The position, `0`-`1`. A player keeps its own position from there on, until `progress` changes |
|
|
26
|
+
| `values` | The steps, when not every distinct value of `accessor` |
|
|
27
|
+
| `filterMode` | `'exact'` shows the rows of the current step; `'upTo'` shows every row up to it (a cumulative reveal). `LinePlot` defaults to `'upTo'` |
|
|
28
|
+
| `interpolate` | Tween values between steps so a scrub is smooth: `true`, or `{ key, value, create, progressEasing, segmentEasing }`. Line and bar plots default to interpolating their value channel |
|
|
29
|
+
| `scales` | `'shared'` (default): axes span every step, so they hold still while scrubbing; `'free'` refits them to each step |
|
|
30
|
+
| `onprogress`, `onvalue` | Called with the new position (`0`-`1`) and with the step it lands on |
|
|
31
|
+
| `orientation`, `show`, `thickness` | A rule's direction (`'vertical'` default, beside the plot; `'horizontal'`), visibility and size |
|
|
32
|
+
|
|
33
|
+
## Player
|
|
34
|
+
|
|
35
|
+
The player is a bar in the chrome, below the plot by default, placed like any other [chrome block](chrome.md) through `order` (`'timeline'`, or a row such as `'(plot, timeline)'`).
|
|
36
|
+
|
|
37
|
+
```svelte
|
|
38
|
+
<LinePlot
|
|
39
|
+
...
|
|
40
|
+
timeline={{
|
|
41
|
+
accessor: 'year',
|
|
42
|
+
player: {
|
|
43
|
+
controls: ['play', 'value', 'slider', 'speed', 'loop'],
|
|
44
|
+
autoplay: true,
|
|
45
|
+
loop: true,
|
|
46
|
+
speed: 1,
|
|
47
|
+
speeds: [0.5, 1, 2],
|
|
48
|
+
stepDuration: 800,
|
|
49
|
+
format: (year) => `Year ${year}`
|
|
50
|
+
}
|
|
51
|
+
}}
|
|
52
|
+
/>
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
| `player` option | Meaning |
|
|
56
|
+
| ----------------------------- | ------------------------------------------------------------------------------------------ |
|
|
57
|
+
| `controls` | The controls drawn, in this order: `'play'`, `'value'`, `'slider'`, `'speed'`, `'loop'` |
|
|
58
|
+
| `autoplay` | Start playing as soon as there are steps |
|
|
59
|
+
| `loop`, `speed` | Where the player starts; it keeps them from there and tells `onloop` / `onspeed` on change |
|
|
60
|
+
| `speeds` | Speeds the speed control cycles through |
|
|
61
|
+
| `stepDuration` | Milliseconds per step at speed `1` |
|
|
62
|
+
| `format` | How the current step reads in the `'value'` control |
|
|
63
|
+
| `onplay`, `onspeed`, `onloop` | Change callbacks |
|
|
64
|
+
|
|
65
|
+
Defaults for `controls`, `speeds` and `stepDuration` come from `timeline.player` in the [configuration](theming.md), together with the bar's colors and sizes.
|
|
66
|
+
|
|
67
|
+
## Rule
|
|
68
|
+
|
|
69
|
+
`type: 'rule'` draws a line with its steps written along it, beside the plot. `progress` picks the step, and the page supplies the control (a slider, a button, scroll position):
|
|
70
|
+
|
|
71
|
+
```svelte
|
|
72
|
+
<script lang="ts">
|
|
73
|
+
let progress = $state(0);
|
|
74
|
+
</script>
|
|
75
|
+
|
|
76
|
+
<input type="range" min="0" max="1" step="0.001" bind:value={progress} />
|
|
77
|
+
<LinePlot ... timeline={{ accessor: 'year', type: 'rule', progress }} />
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+

|
|
81
|
+
|
|
82
|
+
A rule's look comes from `timeline.rule` in the [configuration](theming.md) (`fontSize`, `activeFontSize`, `axisWidth`, ...) and `--dct-timeline-*` variables.
|
|
83
|
+
|
|
84
|
+
## Custom controls
|
|
85
|
+
|
|
86
|
+
`useFigure().timeline` exposes the timeline's state and actions, to build a widget of your own in place of the player: `steps`, `value`, `index`, `progress`, `playing`, `loop`, `speed`, `speeds`, and `seek`, `seekIndex`, `seekValue`, `next`, `previous`, `play`, `pause`, `toggle`, `setLoop`, `setSpeed`, `cycleSpeed`. See [Reading plot state](state.md).
|
|
87
|
+
|
|
88
|
+
## One timeline for several plots
|
|
89
|
+
|
|
90
|
+
A [`PlotComposer`](composer.md) with its own `timeline` drives every panel from one control; plots inside it with a `timeline` follow its `progress`.
|
|
91
|
+
|
|
92
|
+
## Maps
|
|
93
|
+
|
|
94
|
+
`GeoPlot` slices both its features (reading a field from each feature's `properties`) and its markers' rows; features or rows without the field are drawn in every step.
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
# Tooltip and hover
|
|
2
|
+
|
|
3
|
+
A plot becomes interactive when it is given a `tooltip`, a `{ type: 'hover' }` marker, or both. Hover is shared by every plot in a figure, so it can drive the other panels of a [facet](facets.md) or [composer](composer.md).
|
|
4
|
+
|
|
5
|
+
## Tooltip
|
|
6
|
+
|
|
7
|
+
```svelte
|
|
8
|
+
<LinePlot {width} {height} data={rows} x="year" y="value" color="region" tooltip />
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+

|
|
12
|
+
|
|
13
|
+
`tooltip` is `true` for the defaults, or an options object:
|
|
14
|
+
|
|
15
|
+
| Option | Meaning |
|
|
16
|
+
| -------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
17
|
+
| `strategy` | How related points are found: `'x'`, `'y'`, `'punctual'` (the exact point) or `'series'` (all points of the hovered series). Defaults per plot kind |
|
|
18
|
+
| `sync` | Show the highlight in every synced plot too (default `false`) |
|
|
19
|
+
| `format` | `(row) => string` - the tooltip text for the hovered row (`\n` breaks lines) |
|
|
20
|
+
| `content` | A snippet `{#snippet content({ rows })}` replacing the text with custom markup. It is drawn in a plain card, so the markup brings its own background, colors and spacing |
|
|
21
|
+
| `series` | Only these series appear in the tooltip |
|
|
22
|
+
| `anchorX`, `anchorY` | Preferred side of the cursor: `'left' \| 'middle' \| 'right'` (default `'right'`) and `'top' \| 'middle' \| 'bottom'` (default `'bottom'`). It moves to the other side when it would overflow |
|
|
23
|
+
|
|
24
|
+
```svelte
|
|
25
|
+
{#snippet content({ rows })}
|
|
26
|
+
<TooltipCard
|
|
27
|
+
heading={String(rows[0].year)}
|
|
28
|
+
footer="Value by region"
|
|
29
|
+
entries={rows.map((row) => ({
|
|
30
|
+
label: row.region,
|
|
31
|
+
color: colorOf(row.region),
|
|
32
|
+
value: row.value,
|
|
33
|
+
display: String(row.value)
|
|
34
|
+
}))}
|
|
35
|
+
/>
|
|
36
|
+
{/snippet}
|
|
37
|
+
|
|
38
|
+
<LinePlot
|
|
39
|
+
{width}
|
|
40
|
+
{height}
|
|
41
|
+
data={rows}
|
|
42
|
+
x="year"
|
|
43
|
+
y="value"
|
|
44
|
+
color="region"
|
|
45
|
+
tooltip={{ strategy: 'x', content }}
|
|
46
|
+
/>
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+

|
|
50
|
+
|
|
51
|
+
[examples/CustomTooltip.svelte](../examples/CustomTooltip.svelte) is the runnable version, with the card in [examples/TooltipCard.svelte](../examples/TooltipCard.svelte).
|
|
52
|
+
|
|
53
|
+
The default strategy follows the plot's axes: it matches along the category (or index) axis - points sharing the hovered `x` when the value axis is vertical, sharing `y` when it is horizontal - and `punctual` (the exact point) on heatmaps and scatter plots.
|
|
54
|
+
|
|
55
|
+
## In-plot hover
|
|
56
|
+
|
|
57
|
+
`markers={[{ type: 'hover' }]}` draws a dashed rule, a dot and a value label at the hovered point, inside the SVG. Its look comes from `hover` in the [configuration](theming.md) and can be overridden per marker (`rule`, `dot`, `text`, `area`). On band scales `areaX` / `areaY` highlight the whole band instead of a thin rule.
|
|
58
|
+
|
|
59
|
+
Use both together for the usual result:
|
|
60
|
+
|
|
61
|
+
```svelte
|
|
62
|
+
<LinePlot ... tooltip markers={[{ type: 'hover' }]} />
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
## Bars
|
|
66
|
+
|
|
67
|
+
On a `BarPlot` a hover candidate is the bar's whole band (or its series' slice, when grouped), so the tooltip triggers anywhere along the column.
|
|
68
|
+
|
|
69
|
+
## Syncing across plots
|
|
70
|
+
|
|
71
|
+
- In a [facet](facets.md) or a [`PlotComposer`](composer.md), `tooltip.sync: true` (or `hover.sync` on the composer) shows the hovered point's highlight, and the tooltip, in every panel. That replication is the feature: the same x is highlighted across panels.
|
|
72
|
+
- A composer's `hover={{ strategy, sync }}` sets the strategy and sync for all its panels.
|
|
73
|
+
|
|
74
|
+
## Maps
|
|
75
|
+
|
|
76
|
+
`GeoPlot` takes `tooltip` too (the row is the hovered feature) and the `{ type: 'geo-hover' }` marker, which restyles the hovered feature. See [Maps](geo.md).
|
|
77
|
+
|
|
78
|
+
## Reading hover from code
|
|
79
|
+
|
|
80
|
+
`useFigure().hover` and `usePlot().hover` expose `activeX`, `activeY`, `activeSeries`, `strategy`, `sync`, `source` and, for a plot, `points`, `activePoint` and `tooltip`. See [Reading plot state](state.md).
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
# Transforms and statistics
|
|
2
|
+
|
|
3
|
+
Both derive rows from the data before drawing. A **transform** reshapes the rows themselves (stack, bin, smooth, sort, filter). A **statistic** computes a summary of the data (regression, moving average, density) and draws it as an extra mark.
|
|
4
|
+
|
|
5
|
+
## Transforms
|
|
6
|
+
|
|
7
|
+
`transforms` is an array of flat objects: `type` picks the transform and the other fields are its channels and options, named as in [svelteplot's transforms](https://svelteplot.dev). It exists on a plot (it then runs once over all the plot's series) and on each [marker](markers.md) (over the marker's rows).
|
|
8
|
+
|
|
9
|
+
```svelte
|
|
10
|
+
<!-- stacked bars -->
|
|
11
|
+
<BarPlot
|
|
12
|
+
{width}
|
|
13
|
+
{height}
|
|
14
|
+
data={rows}
|
|
15
|
+
x="province"
|
|
16
|
+
y="value"
|
|
17
|
+
color="sex"
|
|
18
|
+
transforms={[{ type: 'stackY' }]}
|
|
19
|
+
/>
|
|
20
|
+
|
|
21
|
+
<!-- a 6-month moving average, run on the plot's rows -->
|
|
22
|
+
<LinePlot
|
|
23
|
+
{width}
|
|
24
|
+
{height}
|
|
25
|
+
data={rows}
|
|
26
|
+
x="date"
|
|
27
|
+
y="index"
|
|
28
|
+
color="division"
|
|
29
|
+
transforms={[{ type: 'windowY', k: 6, reduce: 'mean' }]}
|
|
30
|
+
/>
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+

|
|
34
|
+
|
|
35
|
+

|
|
36
|
+
|
|
37
|
+
| Family | `type` | Does |
|
|
38
|
+
| --------- | --------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
39
|
+
| Stack | `stackX`, `stackY`, `stackMosaicX`, `stackMosaicY` | Cumulative stacking. Options: `offset` (`'none'`, `'wiggle'`, `'center'`, `'normalize'`, `'diverging'`), `order`, `reverse` |
|
|
40
|
+
| Bin | `binX`, `binY`, `bin` | Count or reduce rows into bins. Options: `thresholds` (a count, a list, or `'auto'`, `'scott'`, `'sturges'`, `'freedman-diaconis'`), `interval`, `domain`, `cumulative`; reducers by channel (`y: 'count'`, `fill: 'mean'`, ...) |
|
|
41
|
+
| Group | `groupX`, `groupY`, `groupZ`, `group` | Reduce rows per category with named reducers (`count`, `sum`, `mean`, `p25`, ...) or functions |
|
|
42
|
+
| Window | `windowX`, `windowY` | Sliding window: `k` (size), `reduce` (`'mean'`, `'median'`, `'sum'`, `'max'`, ...), `anchor`, `strict` |
|
|
43
|
+
| Bollinger | `bollingerX`, `bollingerY` | Moving average and band: `n`, `k` |
|
|
44
|
+
| Normalize | `normalizeX`, `normalizeY`, `normalizeParallelX`, `normalizeParallelY` | Rebase to a reference: `basis` (`'first'`, `'last'`, `'min'`, `'max'`, `'mean'`, `'median'`, `'sum'`, `'deviation'`) |
|
|
45
|
+
| Map | `mapX`, `mapY` | `map`: `'cumsum'`, `'rank'`, `'quantile'` or a function |
|
|
46
|
+
| Interval | `intervalX`, `intervalY` | Turn a value into an `[x1, x2]` interval of a given size |
|
|
47
|
+
| Jitter | `jitterX`, `jitterY` | Random offset: `width`, `std`, `distribution` (`'uniform'`, `'normal'`), `seed` |
|
|
48
|
+
| Shift | `shiftX`, `shiftY` | Move by `by` (a number, or a string offset) |
|
|
49
|
+
| Density | `densityX`, `densityY` | Kernel density estimate: `kernel`, `bandwidth` |
|
|
50
|
+
| Sort | `sort`, `shuffle`, `reverse` | Reorder rows (matters for the path a line takes and which dot lands on top) |
|
|
51
|
+
| Filter | `filter` | Keep rows a test holds for |
|
|
52
|
+
| Select | `select`, `selectFirst`, `selectLast`, `selectMinX`, `selectMaxX`, `selectMinY`, `selectMaxY` | Keep one row per group, such as each series' last point or peak |
|
|
53
|
+
|
|
54
|
+
Bar stacking is always `stackY`, also for horizontal bars. A transform on a `HistogramPlot` is merged over the plot's default binning, so `{ type: 'binX', thresholds: 20 }` changes the bins and the rest stays.
|
|
55
|
+
|
|
56
|
+
## Statistics
|
|
57
|
+
|
|
58
|
+
`statistics` is an array of derived summaries drawn as extra marks. On a plot it computes one per series by default; on a marker it applies to that marker's own rows.
|
|
59
|
+
|
|
60
|
+
```svelte
|
|
61
|
+
<ScatterPlot
|
|
62
|
+
{width}
|
|
63
|
+
{height}
|
|
64
|
+
data={rows}
|
|
65
|
+
x="gdp"
|
|
66
|
+
y="life"
|
|
67
|
+
statistics={[{ type: 'regression', regressionType: 'linear', confidence: 0.95 }]}
|
|
68
|
+
/>
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+

|
|
72
|
+
|
|
73
|
+
| `type` | Draws | Options |
|
|
74
|
+
| --------------- | ---------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
75
|
+
| `regression` | A fitted curve with a confidence band | `regressionType` (`'linear'`, `'quad'`, `'poly'`, `'exp'`, `'log'`, `'pow'`, `'loess'`), `order`, `base`, `span`, `confidence` (`false` omits the band), `styles` |
|
|
76
|
+
| `movingAverage` | A smoothed line | `k` (required), `reduce`, `styles` |
|
|
77
|
+
| `bollinger` | Moving average and a band of `k` standard deviations | `n`, `k`, `styles` |
|
|
78
|
+
| `density` | A 1D density curve over `x` | `kernel`, `bandwidth`, `styles` |
|
|
79
|
+
| `density2d` | 2D density contour bands | `bandwidth`, `thresholds`, `styles` |
|
|
80
|
+
| `box` | A box plot per category | the options of the [`box` marker](markers.md) |
|
|
81
|
+
|
|
82
|
+
Which series a statistic runs over:
|
|
83
|
+
|
|
84
|
+
- omitted: one statistic per series;
|
|
85
|
+
- `series: ['a', 'b']`: only the named series;
|
|
86
|
+
- `pooled: true`: one statistic over all series combined.
|
|
87
|
+
|
|
88
|
+
The same summaries are available as markers (`regression`, `bollinger`, `density`, `box`, ...) when more control over the mark is needed.
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import { BarPlot } from '@fundar/data-chart-telling';
|
|
3
|
+
import { ROWS } from './data';
|
|
4
|
+
</script>
|
|
5
|
+
|
|
6
|
+
<!-- Categories on x, values on y. Swap `x` and `y` for horizontal bars. -->
|
|
7
|
+
<BarPlot
|
|
8
|
+
width={720}
|
|
9
|
+
height={400}
|
|
10
|
+
data={ROWS.filter((d) => d.year === 2023)}
|
|
11
|
+
x="region"
|
|
12
|
+
y="value"
|
|
13
|
+
styles={{ values: { show: true, anchor: 'outside' } }}
|
|
14
|
+
/>
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import { LinePlot, getConfiguration, paletteColor } from '@fundar/data-chart-telling';
|
|
3
|
+
import TooltipCard from './TooltipCard.svelte';
|
|
4
|
+
import { ROWS, type Row } from './data';
|
|
5
|
+
|
|
6
|
+
const { palette } = getConfiguration();
|
|
7
|
+
const regions = [...new Set(ROWS.map((d) => d.region))];
|
|
8
|
+
</script>
|
|
9
|
+
|
|
10
|
+
<!--
|
|
11
|
+
`content` replaces the tooltip text with your own markup, drawn in a plain
|
|
12
|
+
card: TooltipCard brings its own background, colors and spacing. It is given
|
|
13
|
+
every row the hover matched; series colors come from the configuration's palette.
|
|
14
|
+
-->
|
|
15
|
+
{#snippet content({ rows }: { rows: Row[] })}
|
|
16
|
+
<TooltipCard
|
|
17
|
+
heading={String(rows[0].year)}
|
|
18
|
+
footer="Value by region"
|
|
19
|
+
entries={rows.map((row) => ({
|
|
20
|
+
label: row.region,
|
|
21
|
+
color: paletteColor(regions.indexOf(row.region), palette),
|
|
22
|
+
value: row.value,
|
|
23
|
+
display: String(row.value)
|
|
24
|
+
}))}
|
|
25
|
+
/>
|
|
26
|
+
{/snippet}
|
|
27
|
+
|
|
28
|
+
<LinePlot
|
|
29
|
+
width={720}
|
|
30
|
+
height={400}
|
|
31
|
+
data={ROWS}
|
|
32
|
+
x="year"
|
|
33
|
+
y="value"
|
|
34
|
+
color="region"
|
|
35
|
+
tooltip={{ strategy: 'x', content }}
|
|
36
|
+
markers={[{ type: 'hover' }]}
|
|
37
|
+
/>
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import { LinePlot } from '@fundar/data-chart-telling';
|
|
3
|
+
import { ROWS } from './data';
|
|
4
|
+
</script>
|
|
5
|
+
|
|
6
|
+
<!-- One panel per region, three columns, sharing scales. A tooltip with `sync` shows in every panel on purpose. -->
|
|
7
|
+
<LinePlot
|
|
8
|
+
width={900}
|
|
9
|
+
height={360}
|
|
10
|
+
data={ROWS}
|
|
11
|
+
x="year"
|
|
12
|
+
y="value"
|
|
13
|
+
facet={{ by: 'region', columns: 3, gap: 12, scales: 'shared' }}
|
|
14
|
+
tooltip={{ sync: true }}
|
|
15
|
+
/>
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import { LinePlot } from '@fundar/data-chart-telling';
|
|
3
|
+
import { ROWS } from './data';
|
|
4
|
+
import LegendReader from './LegendReader.svelte';
|
|
5
|
+
</script>
|
|
6
|
+
|
|
7
|
+
<!--
|
|
8
|
+
The automatic legend can toggle series. `mode: 'omit'` drops a hidden series
|
|
9
|
+
and refits the axes to what is left; 'dim' and 'hide' keep the axes.
|
|
10
|
+
Anything inside the figure (here, the footer) reads the toggles through
|
|
11
|
+
`useFigure().legend` - see LegendReader.
|
|
12
|
+
-->
|
|
13
|
+
<LinePlot
|
|
14
|
+
width={720}
|
|
15
|
+
height={400}
|
|
16
|
+
data={ROWS}
|
|
17
|
+
x="year"
|
|
18
|
+
y="value"
|
|
19
|
+
color="region"
|
|
20
|
+
legend={{ series: { interactive: { enabled: true, disabled: { mode: 'omit' } } } }}
|
|
21
|
+
>
|
|
22
|
+
{#snippet footer()}
|
|
23
|
+
<LegendReader />
|
|
24
|
+
{/snippet}
|
|
25
|
+
</LinePlot>
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import { LinePlot } from '@fundar/data-chart-telling';
|
|
3
|
+
import { ROWS } from './data';
|
|
4
|
+
|
|
5
|
+
// A plot draws at the pixel size it is given. To fill a container (or the
|
|
6
|
+
// window), bind its size and pass it down.
|
|
7
|
+
let width = $state(0);
|
|
8
|
+
let height = $state(0);
|
|
9
|
+
</script>
|
|
10
|
+
|
|
11
|
+
<div class="fill" bind:clientWidth={width} bind:clientHeight={height}>
|
|
12
|
+
{#if width > 0 && height > 0}
|
|
13
|
+
<LinePlot
|
|
14
|
+
{width}
|
|
15
|
+
{height}
|
|
16
|
+
title="Value by region"
|
|
17
|
+
subtitle="Index, 2016-2023"
|
|
18
|
+
data={ROWS}
|
|
19
|
+
x="year"
|
|
20
|
+
y="value"
|
|
21
|
+
color="region"
|
|
22
|
+
scales={{
|
|
23
|
+
x: { label: 'Year', tickFormat: (d) => String(d) },
|
|
24
|
+
y: { label: 'Index' }
|
|
25
|
+
}}
|
|
26
|
+
styles={{ values: { show: true, format: (v, name) => `${name}: ${v}` } }}
|
|
27
|
+
margins={{ right: 'auto' }}
|
|
28
|
+
/>
|
|
29
|
+
{/if}
|
|
30
|
+
</div>
|
|
31
|
+
|
|
32
|
+
<style>
|
|
33
|
+
.fill {
|
|
34
|
+
width: 100%;
|
|
35
|
+
height: 100vh;
|
|
36
|
+
}
|
|
37
|
+
</style>
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import { LinePlot } from '@fundar/data-chart-telling';
|
|
3
|
+
import type { LineSegmentStyle, SegmentsConfig } from '@fundar/data-chart-telling';
|
|
4
|
+
import { ROWS } from './data';
|
|
5
|
+
|
|
6
|
+
// `segments` maps a series name (or 'default' for all series) to its rules.
|
|
7
|
+
const segments = {
|
|
8
|
+
default: [
|
|
9
|
+
{
|
|
10
|
+
areas: [{ x: { from: 2020, to: 2023 } }],
|
|
11
|
+
styles: { stroke: { strokeDasharray: '6 4', strokeOpacity: 0.7 } }
|
|
12
|
+
}
|
|
13
|
+
]
|
|
14
|
+
} satisfies SegmentsConfig<LineSegmentStyle>;
|
|
15
|
+
</script>
|
|
16
|
+
|
|
17
|
+
<LinePlot width={720} height={400} data={ROWS} x="year" y="value" color="region" {segments} />
|