@fundar/data-chart-telling 1.0.0 → 1.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +53 -0
- package/README.md +58 -19
- package/dist/configuration/config.svelte.d.ts +1 -1
- package/dist/configuration/config.svelte.js +172 -95
- package/dist/configuration/themes/index.d.ts +5 -1304
- package/dist/index.d.ts +24 -14
- package/dist/index.js +20 -10
- package/dist/layout/base/BasePlotLayout.svelte +129 -51
- package/dist/layout/base/BasePlotLayout.svelte.d.ts +1 -38
- package/dist/layout/coordinates/CoordinatesLayout.svelte +42 -40
- package/dist/layout/coordinates/CoordinatesLayout.svelte.d.ts +0 -2
- package/dist/layout/coordinates/ProjectionZoom.svelte +48 -0
- package/dist/layout/coordinates/ProjectionZoom.svelte.d.ts +10 -0
- package/dist/layout/coordinates/ZoomedProjection.d.ts +11 -0
- package/dist/layout/coordinates/ZoomedProjection.js +24 -0
- package/dist/layout/coordinates/camera.svelte.js +11 -8
- package/dist/layout/coordinates/projections/argentina.js +1 -1
- package/dist/layout/coordinates/projections/fit.d.ts +1 -1
- package/dist/layout/coordinates/projections/fit.js +1 -1
- package/dist/layout/coordinates/zoom.svelte.d.ts +4 -5
- package/dist/layout/coordinates/zoom.svelte.js +4 -5
- package/dist/layout/facet/FacetLayout.svelte +1 -1
- package/dist/layout/facet/config.js +1 -1
- package/dist/layout/figure/Figure.svelte +2 -0
- package/dist/layout/geometry/GeometryLayout.svelte +14 -9
- package/dist/layout/geometry/GeometryLayout.svelte.d.ts +0 -3
- package/dist/layout/geometry/MarkerOffset.svelte +28 -0
- package/dist/layout/geometry/MarkerOffset.svelte.d.ts +13 -0
- package/dist/layout/grid/GridCell.svelte +6 -8
- package/dist/layout/hover/HoverSettings.d.ts +20 -6
- package/dist/layout/hover/HoverSettings.js +29 -4
- package/dist/layout/legend/ContinuousSection.svelte +44 -9
- package/dist/layout/legend/DiscreteBadgeItem.svelte +2 -2
- package/dist/layout/legend/DiscreteSection.svelte +2 -2
- package/dist/layout/legend/DiscreteSymbolIcon.svelte +1 -1
- package/dist/layout/legend/LegendChannels.js +36 -12
- package/dist/layout/legend/LegendLayout.svelte +9 -1
- package/dist/layout/legend/LegendState.svelte.d.ts +9 -0
- package/dist/layout/legend/LegendState.svelte.js +24 -3
- package/dist/layout/legend/SizeSection.svelte +1 -1
- package/dist/layout/margins/PlotMargins.svelte.d.ts +2 -5
- package/dist/layout/margins/PlotMargins.svelte.js +4 -8
- package/dist/layout/plot/Plot.svelte +6 -3
- package/dist/layout/plot/PublicPlotContext.d.ts +5 -4
- package/dist/layout/plot/PublicPlotContext.js +7 -3
- package/dist/layout/plot/Slice.d.ts +5 -1
- package/dist/layout/plot/Slice.js +18 -6
- package/dist/layout/scales/EdgeTicks.d.ts +39 -0
- package/dist/layout/scales/EdgeTicks.js +82 -0
- package/dist/layout/scales/NiceTicks.d.ts +43 -0
- package/dist/layout/scales/NiceTicks.js +76 -0
- package/dist/layout/scales/ScalesLayout.svelte +133 -34
- package/dist/layout/scales/ScalesLayout.svelte.d.ts +10 -0
- package/dist/layout/scales/SveltePlotScale.d.ts +15 -0
- package/dist/layout/scales/SveltePlotScale.js +86 -0
- package/dist/layout/scales/TickLabels.d.ts +32 -0
- package/dist/layout/scales/TickLabels.js +55 -0
- package/dist/layout/styles/StylesLayout.svelte +2 -2
- package/dist/layout/styles/ValueLabels.d.ts +33 -5
- package/dist/layout/styles/ValueLabels.js +83 -23
- package/dist/layout/timeline/Timeline.svelte +5 -2
- package/dist/layout/timeline/Timeline.svelte.d.ts +2 -0
- package/dist/layout/timeline/TimelineLayout.svelte +39 -13
- package/dist/layout/timeline/TimelineLayout.svelte.d.ts +7 -5
- package/dist/layout/timeline/TimelineRule.svelte +1 -0
- package/dist/layout/timeline/TimelineState.svelte.d.ts +13 -5
- package/dist/layout/timeline/TimelineState.svelte.js +42 -8
- package/dist/layout/timeline/TimelineTime.d.ts +18 -0
- package/dist/layout/timeline/TimelineTime.js +117 -0
- package/dist/layout/tooltip/Tooltip.svelte +10 -7
- package/dist/layout/tooltip/Tooltip.svelte.d.ts +6 -4
- package/dist/layout/tooltip/TooltipState.svelte.d.ts +8 -2
- package/dist/layout/tooltip/TooltipState.svelte.js +23 -4
- package/dist/markers/MarkerKinds.d.ts +5 -0
- package/dist/markers/MarkerKinds.js +1 -0
- package/dist/markers/area/AreaMarker.svelte +15 -63
- package/dist/markers/arrow/ArrowMarker.svelte +51 -9
- package/dist/markers/bar/BarMarker.svelte +8 -4
- package/dist/markers/bollinger/BollingerMarker.svelte +33 -18
- package/dist/markers/box/BoxMarker.svelte +40 -9
- package/dist/markers/delta/Delta.js +1 -1
- package/dist/markers/delta/DeltaMarker.svelte +9 -7
- package/dist/markers/dot/DotMarker.svelte +24 -27
- package/dist/markers/image/ImageMarker.svelte +17 -12
- package/dist/markers/inset/InsetMarker.svelte +2 -2
- package/dist/markers/line/LineMarker.svelte +1 -0
- package/dist/markers/link/LinkMarker.svelte +174 -29
- package/dist/markers/regression/RegressionMarker.svelte +16 -33
- package/dist/markers/rule/RuleMarker.svelte +9 -3
- package/dist/markers/text/Declutter.d.ts +4 -0
- package/dist/markers/text/Declutter.js +26 -11
- package/dist/markers/text/TextMarker.svelte +91 -48
- package/dist/markers/tick/TickMarker.svelte +27 -25
- package/dist/markers/utils/MarkerChannels.d.ts +24 -0
- package/dist/markers/utils/MarkerChannels.js +42 -7
- package/dist/markers/utils/RowOffset.d.ts +23 -0
- package/dist/markers/utils/RowOffset.js +23 -0
- package/dist/markers/utils/RowOffsetMarks.svelte +30 -0
- package/dist/markers/utils/RowOffsetMarks.svelte.d.ts +33 -0
- package/dist/markers/utils/RowStroke.d.ts +31 -0
- package/dist/markers/utils/RowStroke.js +28 -0
- package/dist/markers/violin/ViolinMarker.svelte +75 -0
- package/dist/markers/violin/ViolinMarker.svelte.d.ts +7 -0
- package/dist/markers/violin/ViolinProfiles.d.ts +29 -0
- package/dist/markers/violin/ViolinProfiles.js +55 -0
- package/dist/markers/waffle/WaffleMarker.svelte +17 -37
- package/dist/phases/Pipeline.d.ts +5 -0
- package/dist/phases/Pipeline.js +8 -2
- package/dist/phases/data/DataPhase.d.ts +5 -11
- package/dist/phases/data/DataPhase.js +14 -11
- package/dist/phases/data/PlotAxes.d.ts +10 -0
- package/dist/phases/data/PlotAxes.js +14 -1
- package/dist/phases/facet/FacetPanels.d.ts +55 -0
- package/dist/phases/facet/FacetPanels.js +96 -0
- package/dist/phases/facet/FacetPhase.d.ts +1 -42
- package/dist/phases/facet/FacetPhase.js +1 -87
- package/dist/phases/hover/HoverPhase.d.ts +6 -43
- package/dist/phases/hover/HoverPhase.js +19 -54
- package/dist/phases/mapping/MappingPhase.d.ts +1 -1
- package/dist/phases/mapping/MappingPhase.js +3 -5
- package/dist/phases/markers/MarkersPhase.js +2 -1
- package/dist/phases/scales/CategoryOrder.d.ts +23 -0
- package/dist/phases/scales/CategoryOrder.js +73 -0
- package/dist/phases/scales/ScalesPhase.d.ts +1 -3
- package/dist/phases/scales/ScalesPhase.js +37 -27
- package/dist/phases/sharedScales/SharedScalesPhase.d.ts +6 -2
- package/dist/phases/sharedScales/SharedScalesPhase.js +14 -8
- package/dist/phases/statistics/Statistics.d.ts +10 -6
- package/dist/phases/statistics/Statistics.js +20 -10
- package/dist/phases/statistics/StatisticsPhase.js +10 -6
- package/dist/phases/statistics/methods/BollingerStatistic.d.ts +1 -1
- package/dist/phases/statistics/methods/BollingerStatistic.js +13 -11
- package/dist/phases/statistics/methods/BoxStatistic.d.ts +1 -1
- package/dist/phases/statistics/methods/BoxStatistic.js +14 -12
- package/dist/phases/statistics/methods/Density2dStatistic.d.ts +1 -1
- package/dist/phases/statistics/methods/Density2dStatistic.js +13 -11
- package/dist/phases/statistics/methods/DensityStatistic.d.ts +1 -1
- package/dist/phases/statistics/methods/DensityStatistic.js +11 -9
- package/dist/phases/statistics/methods/DeviationStatistic.d.ts +8 -0
- package/dist/phases/statistics/methods/DeviationStatistic.js +111 -0
- package/dist/phases/statistics/methods/MovingAverageStatistic.d.ts +1 -1
- package/dist/phases/statistics/methods/MovingAverageStatistic.js +11 -9
- package/dist/phases/statistics/methods/RegressionStatistic.d.ts +1 -1
- package/dist/phases/statistics/methods/RegressionStatistic.js +16 -14
- package/dist/phases/tooltip/TooltipPhase.d.ts +4 -2
- package/dist/phases/tooltip/TooltipPhase.js +10 -3
- package/dist/phases/transforms/ProcessedPositions.d.ts +30 -0
- package/dist/phases/transforms/ProcessedPositions.js +74 -0
- package/dist/phases/transforms/TransformsPhase.d.ts +5 -42
- package/dist/phases/transforms/TransformsPhase.js +67 -58
- package/dist/phases/transforms/ValueSelection.d.ts +30 -0
- package/dist/phases/transforms/ValueSelection.js +53 -0
- package/dist/plots/{heatmap → correlation/heatmap}/Plot.svelte +5 -2
- package/dist/plots/{heatmap → correlation/heatmap}/Plot.svelte.d.ts +2 -2
- package/dist/plots/{heatmap → correlation/heatmap}/defaults.d.ts +2 -2
- package/dist/plots/{heatmap → correlation/heatmap}/defaults.js +5 -5
- package/dist/plots/{heatmap → correlation/heatmap}/markers.d.ts +4 -4
- package/dist/plots/{heatmap → correlation/heatmap}/markers.js +4 -3
- package/dist/plots/{scatter → correlation/scatter}/Plot.svelte +5 -2
- package/dist/plots/{scatter → correlation/scatter}/Plot.svelte.d.ts +2 -2
- package/dist/plots/{scatter → correlation/scatter}/defaults.d.ts +2 -2
- package/dist/plots/{scatter → correlation/scatter}/defaults.js +6 -5
- package/dist/plots/{scatter → correlation/scatter}/markers.d.ts +4 -4
- package/dist/plots/{scatter → correlation/scatter}/markers.js +5 -4
- package/dist/plots/distribution/box/BoxSummaries.d.ts +19 -0
- package/dist/plots/distribution/box/BoxSummaries.js +101 -0
- package/dist/plots/distribution/box/Plot.svelte +42 -0
- package/dist/plots/distribution/box/Plot.svelte.d.ts +26 -0
- package/dist/plots/distribution/box/defaults.d.ts +12 -0
- package/dist/plots/distribution/box/defaults.js +34 -0
- package/dist/plots/distribution/box/markers.d.ts +12 -0
- package/dist/plots/distribution/box/markers.js +34 -0
- package/dist/plots/distribution/density/Plot.svelte +45 -0
- package/dist/plots/distribution/density/Plot.svelte.d.ts +26 -0
- package/dist/plots/distribution/density/defaults.d.ts +9 -0
- package/dist/plots/distribution/density/defaults.js +29 -0
- package/dist/plots/distribution/density/markers.d.ts +9 -0
- package/dist/plots/distribution/density/markers.js +42 -0
- package/dist/plots/{histogram → distribution/histogram}/Plot.svelte +2 -2
- package/dist/plots/{histogram → distribution/histogram}/Plot.svelte.d.ts +2 -2
- package/dist/plots/{histogram → distribution/histogram}/defaults.d.ts +2 -2
- package/dist/plots/{histogram → distribution/histogram}/defaults.js +4 -4
- package/dist/plots/{histogram → distribution/histogram}/markers.d.ts +3 -3
- package/dist/plots/{histogram → distribution/histogram}/markers.js +7 -7
- package/dist/plots/{pyramid → distribution/pyramid}/Plot.svelte +5 -2
- package/dist/plots/{pyramid → distribution/pyramid}/Plot.svelte.d.ts +2 -2
- package/dist/plots/{pyramid → distribution/pyramid}/defaults.d.ts +2 -2
- package/dist/plots/{pyramid → distribution/pyramid}/defaults.js +7 -6
- package/dist/plots/{pyramid → distribution/pyramid}/markers.d.ts +4 -4
- package/dist/plots/{pyramid → distribution/pyramid}/markers.js +8 -11
- package/dist/plots/distribution/violin/Plot.svelte +45 -0
- package/dist/plots/distribution/violin/Plot.svelte.d.ts +26 -0
- package/dist/plots/distribution/violin/defaults.d.ts +10 -0
- package/dist/plots/distribution/violin/defaults.js +58 -0
- package/dist/plots/distribution/violin/markers.d.ts +10 -0
- package/dist/plots/distribution/violin/markers.js +71 -0
- package/dist/plots/{area → evolution/area}/Plot.svelte +2 -2
- package/dist/plots/{area → evolution/area}/Plot.svelte.d.ts +2 -2
- package/dist/plots/{area → evolution/area}/defaults.d.ts +2 -2
- package/dist/plots/{area → evolution/area}/defaults.js +2 -0
- package/dist/plots/{area → evolution/area}/markers.d.ts +2 -2
- package/dist/plots/{area → evolution/area}/markers.js +2 -3
- package/dist/plots/{line → evolution/line}/Plot.svelte +2 -2
- package/dist/plots/{line → evolution/line}/Plot.svelte.d.ts +2 -2
- package/dist/plots/{line → evolution/line}/defaults.d.ts +2 -2
- package/dist/plots/{line → evolution/line}/defaults.js +2 -0
- package/dist/plots/{line → evolution/line}/markers.d.ts +11 -8
- package/dist/plots/{line → evolution/line}/markers.js +7 -6
- package/dist/plots/evolution/slope/Plot.svelte +42 -0
- package/dist/plots/evolution/slope/Plot.svelte.d.ts +26 -0
- package/dist/plots/evolution/slope/defaults.d.ts +8 -0
- package/dist/plots/evolution/slope/defaults.js +31 -0
- package/dist/plots/evolution/slope/markers.d.ts +16 -0
- package/dist/plots/evolution/slope/markers.js +79 -0
- package/dist/plots/evolution/sparkline/Plot.svelte +45 -0
- package/dist/plots/evolution/sparkline/Plot.svelte.d.ts +26 -0
- package/dist/plots/evolution/sparkline/defaults.d.ts +7 -0
- package/dist/plots/evolution/sparkline/defaults.js +23 -0
- package/dist/plots/evolution/sparkline/markers.d.ts +7 -0
- package/dist/plots/evolution/sparkline/markers.js +56 -0
- package/dist/plots/{geo → map/geo}/Core.svelte +11 -10
- package/dist/plots/{geo → map/geo}/Core.svelte.d.ts +1 -1
- package/dist/plots/map/geo/GeoFeatures.svelte.d.ts +9 -0
- package/dist/plots/map/geo/GeoFeatures.svelte.js +55 -0
- package/dist/plots/map/geo/GeoGeometry.d.ts +27 -0
- package/dist/plots/map/geo/GeoGeometry.js +142 -0
- package/dist/plots/map/geo/GeoSegments.d.ts +16 -0
- package/dist/plots/map/geo/GeoSegments.js +23 -0
- package/dist/plots/{geo → map/geo}/Plot.svelte +10 -10
- package/dist/plots/{geo → map/geo}/Plot.svelte.d.ts +2 -2
- package/dist/plots/{geo → map/geo}/defaults.d.ts +2 -2
- package/dist/plots/{geo → map/geo}/defaults.js +1 -1
- package/dist/plots/{geo → map/geo}/phases/data.d.ts +1 -1
- package/dist/plots/{geo → map/geo}/phases/data.js +7 -6
- package/dist/plots/{geo → map/geo}/phases/hover.d.ts +1 -1
- package/dist/plots/{geo → map/geo}/phases/hover.js +5 -5
- package/dist/plots/{geo → map/geo}/phases/markers.d.ts +1 -1
- package/dist/plots/{geo → map/geo}/phases/markers.js +8 -13
- package/dist/plots/{geo → map/geo}/phases/scales.d.ts +2 -2
- package/dist/plots/{geo → map/geo}/phases/scales.js +28 -12
- package/dist/plots/{geo → map/geo}/phases/tooltip.d.ts +1 -1
- package/dist/plots/map/geo/phases/tooltip.js +5 -0
- package/dist/plots/{geo → map/geo}/slices.d.ts +2 -2
- package/dist/plots/{geo → map/geo}/slices.js +7 -4
- package/dist/plots/{bar → ranking/bar}/Plot.svelte +2 -2
- package/dist/plots/{bar → ranking/bar}/Plot.svelte.d.ts +2 -2
- package/dist/plots/ranking/bar/defaults.d.ts +16 -0
- package/dist/plots/{bar → ranking/bar}/defaults.js +17 -15
- package/dist/plots/{bar → ranking/bar}/markers.d.ts +8 -8
- package/dist/plots/{bar → ranking/bar}/markers.js +11 -19
- package/dist/plots/ranking/bullet/Plot.svelte +42 -0
- package/dist/plots/ranking/bullet/Plot.svelte.d.ts +26 -0
- package/dist/plots/ranking/bullet/defaults.d.ts +8 -0
- package/dist/plots/ranking/bullet/defaults.js +24 -0
- package/dist/plots/ranking/bullet/markers.d.ts +10 -0
- package/dist/plots/ranking/bullet/markers.js +90 -0
- package/dist/plots/ranking/cleveland/ClevelandConnector.d.ts +48 -0
- package/dist/plots/ranking/cleveland/ClevelandConnector.js +140 -0
- package/dist/plots/ranking/cleveland/ClevelandMarkers.d.ts +33 -0
- package/dist/plots/ranking/cleveland/ClevelandMarkers.js +375 -0
- package/dist/plots/ranking/cleveland/ClevelandRanges.d.ts +31 -0
- package/dist/plots/ranking/cleveland/ClevelandRanges.js +116 -0
- package/dist/plots/ranking/cleveland/Plot.svelte +45 -0
- package/dist/plots/ranking/cleveland/Plot.svelte.d.ts +26 -0
- package/dist/plots/ranking/cleveland/defaults.d.ts +13 -0
- package/dist/plots/ranking/cleveland/defaults.js +66 -0
- package/dist/plots/ranking/dumbbell/Plot.svelte +45 -0
- package/dist/plots/ranking/dumbbell/Plot.svelte.d.ts +26 -0
- package/dist/plots/ranking/dumbbell/defaults.d.ts +9 -0
- package/dist/plots/ranking/dumbbell/defaults.js +19 -0
- package/dist/plots/ranking/forest/Plot.svelte +42 -0
- package/dist/plots/ranking/forest/Plot.svelte.d.ts +26 -0
- package/dist/plots/ranking/forest/defaults.d.ts +11 -0
- package/dist/plots/ranking/forest/defaults.js +20 -0
- package/dist/plots/ranking/lollipop/Plot.svelte +45 -0
- package/dist/plots/ranking/lollipop/Plot.svelte.d.ts +26 -0
- package/dist/plots/ranking/lollipop/defaults.d.ts +9 -0
- package/dist/plots/ranking/lollipop/defaults.js +18 -0
- package/dist/plots/utils/RowNumbers.d.ts +16 -0
- package/dist/plots/utils/RowNumbers.js +24 -0
- package/dist/plots/utils/gaps.js +1 -1
- package/dist/plots/utils/segments.js +1 -1
- package/dist/types/configuration/styling.d.ts +287 -132
- package/dist/types/layout/composer.d.ts +5 -2
- package/dist/types/layout/coordinates.d.ts +5 -4
- package/dist/types/layout/legend.d.ts +21 -5
- package/dist/types/layout/plot.d.ts +44 -1
- package/dist/types/layout/scales.d.ts +51 -3
- package/dist/types/layout/statistics/deviation.d.ts +40 -0
- package/dist/types/layout/statistics/index.d.ts +7 -2
- package/dist/types/layout/styles/base.d.ts +18 -0
- package/dist/types/layout/styles/bullet.d.ts +25 -0
- package/dist/types/layout/styles/connector.d.ts +98 -0
- package/dist/types/layout/styles/curve.d.ts +11 -0
- package/dist/types/layout/styles/frame.d.ts +17 -0
- package/dist/types/layout/styles/gaps.d.ts +12 -0
- package/dist/types/layout/styles/geo.d.ts +55 -0
- package/dist/types/layout/styles/index.d.ts +8 -0
- package/dist/types/layout/styles/index.js +8 -0
- package/dist/types/layout/styles/values.d.ts +47 -0
- package/dist/types/layout/timeline.d.ts +19 -7
- package/dist/types/layout/tooltip.d.ts +6 -2
- package/dist/types/markers/axis/area.d.ts +2 -2
- package/dist/types/markers/axis/arrow.d.ts +3 -0
- package/dist/types/markers/axis/axisBasedMarkersConfig.d.ts +2 -1
- package/dist/types/markers/axis/bar.d.ts +1 -1
- package/dist/types/markers/axis/box.d.ts +5 -0
- package/dist/types/markers/axis/difference.d.ts +2 -2
- package/dist/types/markers/axis/image.d.ts +3 -2
- package/dist/types/markers/axis/line.d.ts +2 -0
- package/dist/types/markers/axis/rule.d.ts +9 -0
- package/dist/types/markers/axis/trail.d.ts +2 -3
- package/dist/types/markers/axis/violin.d.ts +25 -0
- package/dist/types/markers/basic/dot.d.ts +3 -2
- package/dist/types/markers/basic/text.d.ts +13 -3
- package/dist/types/markers/channels/commonMarkerConfig.d.ts +7 -3
- package/dist/types/markers/channels/commonMarkerConfigWithRowOffset.d.ts +13 -0
- package/dist/types/markers/common.d.ts +1 -1
- package/dist/types/markers/common.js +1 -0
- package/dist/types/markers/geo/link.d.ts +5 -1
- package/dist/types/phases/hover/phase.d.ts +6 -0
- package/dist/types/phases/index.d.ts +1 -1
- package/dist/types/phases/scales/phase.d.ts +5 -1
- package/dist/types/phases/state.d.ts +20 -4
- package/dist/types/phases/statistics/phase.d.ts +3 -1
- package/dist/types/phases/statistics/source.d.ts +3 -1
- package/dist/types/phases/transforms/phase.d.ts +32 -0
- package/dist/types/plots/{heatmap → correlation/heatmap}/props.d.ts +6 -6
- package/dist/types/plots/{heatmap → correlation/heatmap}/state.d.ts +4 -4
- package/dist/types/plots/{scatter → correlation/scatter}/props.d.ts +6 -6
- package/dist/types/plots/{scatter → correlation/scatter}/state.d.ts +2 -2
- package/dist/types/plots/distribution/box/props.d.ts +10 -0
- package/dist/types/plots/distribution/box/state.d.ts +23 -0
- package/dist/types/plots/distribution/density/props.d.ts +23 -0
- package/dist/types/plots/distribution/density/state.d.ts +6 -0
- package/dist/types/plots/distribution/density/state.js +1 -0
- package/dist/types/plots/{histogram → distribution/histogram}/props.d.ts +7 -7
- package/dist/types/plots/distribution/histogram/props.js +1 -0
- package/dist/types/plots/{histogram → distribution/histogram}/state.d.ts +2 -2
- package/dist/types/plots/distribution/histogram/state.js +1 -0
- package/dist/types/plots/{pyramid → distribution/pyramid}/props.d.ts +6 -6
- package/dist/types/plots/distribution/pyramid/props.js +1 -0
- package/dist/types/plots/{pyramid → distribution/pyramid}/state.d.ts +3 -3
- package/dist/types/plots/distribution/pyramid/state.js +1 -0
- package/dist/types/plots/distribution/violin/props.d.ts +23 -0
- package/dist/types/plots/distribution/violin/props.js +1 -0
- package/dist/types/plots/distribution/violin/state.d.ts +6 -0
- package/dist/types/plots/distribution/violin/state.js +1 -0
- package/dist/types/plots/{area → evolution/area}/props.d.ts +6 -6
- package/dist/types/plots/evolution/area/props.js +1 -0
- package/dist/types/plots/{area → evolution/area}/state.d.ts +2 -2
- package/dist/types/plots/evolution/area/state.js +1 -0
- package/dist/types/plots/evolution/line/props.d.ts +10 -0
- package/dist/types/plots/evolution/line/props.js +1 -0
- package/dist/types/plots/{line → evolution/line}/state.d.ts +3 -3
- package/dist/types/plots/evolution/line/state.js +1 -0
- package/dist/types/plots/evolution/slope/props.d.ts +5 -0
- package/dist/types/plots/evolution/slope/props.js +1 -0
- package/dist/types/plots/evolution/slope/state.d.ts +5 -0
- package/dist/types/plots/evolution/slope/state.js +1 -0
- package/dist/types/plots/evolution/sparkline/props.d.ts +5 -0
- package/dist/types/plots/evolution/sparkline/props.js +1 -0
- package/dist/types/plots/evolution/sparkline/state.d.ts +5 -0
- package/dist/types/plots/evolution/sparkline/state.js +1 -0
- package/dist/types/plots/{geo → map/geo}/props.d.ts +8 -8
- package/dist/types/plots/map/geo/props.js +1 -0
- package/dist/types/plots/{geo → map/geo}/state.d.ts +18 -11
- package/dist/types/plots/map/geo/state.js +1 -0
- package/dist/types/plots/props.d.ts +3 -1
- package/dist/types/plots/{bar → ranking/bar}/props.d.ts +6 -6
- package/dist/types/plots/ranking/bar/props.js +1 -0
- package/dist/types/plots/{bar → ranking/bar}/state.d.ts +2 -2
- package/dist/types/plots/ranking/bar/state.js +1 -0
- package/dist/types/plots/ranking/bullet/props.d.ts +22 -0
- package/dist/types/plots/ranking/bullet/props.js +1 -0
- package/dist/types/plots/ranking/bullet/state.d.ts +5 -0
- package/dist/types/plots/ranking/bullet/state.js +1 -0
- package/dist/types/plots/ranking/cleveland/props.d.ts +10 -0
- package/dist/types/plots/ranking/cleveland/props.js +1 -0
- package/dist/types/plots/ranking/cleveland/state.d.ts +49 -0
- package/dist/types/plots/ranking/cleveland/state.js +1 -0
- package/dist/types/plots/ranking/dumbbell/props.d.ts +10 -0
- package/dist/types/plots/ranking/dumbbell/props.js +1 -0
- package/dist/types/plots/ranking/dumbbell/state.d.ts +5 -0
- package/dist/types/plots/ranking/dumbbell/state.js +1 -0
- package/dist/types/plots/ranking/forest/props.d.ts +23 -0
- package/dist/types/plots/ranking/forest/props.js +1 -0
- package/dist/types/plots/ranking/forest/state.d.ts +5 -0
- package/dist/types/plots/ranking/forest/state.js +1 -0
- package/dist/types/plots/ranking/lollipop/props.d.ts +10 -0
- package/dist/types/plots/ranking/lollipop/props.js +1 -0
- package/dist/types/plots/ranking/lollipop/state.d.ts +5 -0
- package/dist/types/plots/ranking/lollipop/state.js +1 -0
- package/dist/types/plots/segments/common.d.ts +4 -1
- package/dist/utils/OpacityScale.d.ts +14 -0
- package/dist/utils/OpacityScale.js +43 -0
- package/dist/utils/{symbol.d.ts → SymbolPath.d.ts} +0 -12
- package/dist/utils/{symbol.js → SymbolPath.js} +0 -24
- package/dist/utils/SymbolScale.d.ts +18 -0
- package/dist/utils/SymbolScale.js +29 -0
- package/dist/utils/color/ColorRamp.d.ts +27 -0
- package/dist/utils/color/ColorRamp.js +120 -0
- package/dist/utils/color/CssColor.d.ts +19 -0
- package/dist/utils/color/CssColor.js +114 -0
- package/dist/utils/color/Palette.d.ts +21 -0
- package/dist/utils/color/Palette.js +52 -0
- package/dist/utils/color/index.d.ts +11 -3
- package/dist/utils/color/index.js +14 -3
- package/dist/utils/grouping.js +1 -1
- package/docs/architecture.md +1 -1
- package/docs/chrome.md +39 -8
- package/docs/composer.md +19 -3
- package/docs/concepts.md +1 -1
- package/docs/development.md +14 -5
- package/docs/facets.md +62 -8
- package/docs/getting-started.md +8 -9
- package/docs/legend.md +73 -24
- package/docs/markers.md +45 -32
- package/docs/plots/correlation/heatmap.md +26 -0
- package/docs/plots/correlation/scatter.md +35 -0
- package/docs/plots/distribution/box.md +28 -0
- package/docs/plots/distribution/density.md +26 -0
- package/docs/plots/distribution/histogram.md +33 -0
- package/docs/plots/distribution/pyramid.md +31 -0
- package/docs/plots/distribution/violin.md +35 -0
- package/docs/plots/evolution/area.md +32 -0
- package/docs/plots/evolution/line.md +93 -0
- package/docs/plots/evolution/slope.md +39 -0
- package/docs/plots/evolution/sparkline.md +34 -0
- package/docs/plots/ranking/bar.md +59 -0
- package/docs/plots/ranking/bullet.md +37 -0
- package/docs/plots/ranking/cleveland.md +54 -0
- package/docs/plots/ranking/dumbbell.md +39 -0
- package/docs/plots/ranking/forest.md +40 -0
- package/docs/plots/ranking/lollipop.md +39 -0
- package/docs/plots.md +22 -154
- package/docs/scales.md +50 -27
- package/docs/state.md +1 -1
- package/docs/styles-and-segments.md +96 -39
- package/docs/theming.md +33 -19
- package/docs/timeline.md +62 -28
- package/docs/tooltip-and-hover.md +72 -24
- package/docs/transforms-and-statistics.md +56 -25
- package/examples/BarValues.svelte +2 -2
- package/examples/Box.svelte +7 -0
- package/examples/Bullet.svelte +17 -0
- package/examples/Chrome.svelte +17 -0
- package/examples/ChromeOrder.svelte +18 -0
- package/examples/Cleveland.svelte +15 -0
- package/examples/Composer.svelte +23 -0
- package/examples/CustomTooltip.svelte +21 -14
- package/examples/Density.svelte +7 -0
- package/examples/Dumbbell.svelte +16 -0
- package/examples/Facets.svelte +3 -3
- package/examples/FacetsCarousel.svelte +14 -0
- package/examples/FacetsRowsCols.svelte +23 -0
- package/examples/FirstPlot.svelte +7 -0
- package/examples/Forest.svelte +17 -0
- package/examples/Gaps.svelte +21 -0
- package/examples/GroupedBars.svelte +15 -0
- package/examples/Heatmap.svelte +7 -0
- package/examples/HeatmapSegments.svelte +26 -0
- package/examples/Histogram.svelte +14 -0
- package/examples/HorizontalBars.svelte +15 -0
- package/examples/LegendSections.svelte +27 -0
- package/examples/LegendToggle.svelte +3 -3
- package/examples/LineByRegion.svelte +18 -0
- package/examples/LineDates.svelte +15 -0
- package/examples/LineStep.svelte +16 -0
- package/examples/LineStepSegment.svelte +18 -0
- package/examples/Lollipop.svelte +17 -0
- package/examples/Markers.svelte +27 -0
- package/examples/MovingAverage.svelte +15 -0
- package/examples/Pyramid.svelte +14 -0
- package/examples/Regression.svelte +14 -0
- package/examples/ResponsiveLine.svelte +7 -7
- package/examples/Scales.svelte +26 -0
- package/examples/Scatter.svelte +16 -0
- package/examples/SegmentHighlight.svelte +22 -0
- package/examples/Segments.svelte +11 -3
- package/examples/SegmentsBySeries.svelte +25 -0
- package/examples/Slope.svelte +17 -0
- package/examples/Sparkline.svelte +14 -0
- package/examples/StackedArea.svelte +16 -0
- package/examples/StackedBars.svelte +15 -0
- package/examples/TimelinePlayer.svelte +8 -7
- package/examples/TimelineRule.svelte +19 -0
- package/examples/Tooltip.svelte +3 -3
- package/examples/ValueLabels.svelte +21 -0
- package/examples/Violin.svelte +14 -0
- package/examples/datasets/argentina-chile-trends.ts +34 -0
- package/examples/datasets/commodity-prices.ts +48 -0
- package/examples/datasets/countries-over-time.ts +368 -0
- package/examples/datasets/daily-temperature.ts +121 -0
- package/examples/datasets/earthquakes.ts +977 -0
- package/examples/datasets/flight-routes.ts +29 -0
- package/examples/datasets/height-density.ts +37 -0
- package/examples/datasets/heights.ts +370 -0
- package/examples/datasets/index.ts +24 -0
- package/examples/datasets/inflation-by-region.ts +44 -0
- package/examples/datasets/inflation-ranges.ts +34 -0
- package/examples/datasets/iris-flower.ts +207 -0
- package/examples/datasets/life-expectancy.ts +95 -0
- package/examples/datasets/napoleons-march.ts +182 -0
- package/examples/datasets/penguins.ts +54 -0
- package/examples/datasets/population-by-age-with-gaps.ts +23 -0
- package/examples/datasets/population-by-age.ts +890 -0
- package/examples/datasets/province-population.ts +521 -0
- package/examples/datasets/stock-prices.ts +63 -0
- package/examples/datasets/weather-stations-over-time.ts +31 -0
- package/examples/datasets/weather-stations.ts +22 -0
- package/examples/datasets/wind-vectors.ts +30 -0
- package/examples/datasets/world-temperature.ts +400 -0
- package/llms-full.txt +51 -12
- package/llms.txt +60 -4
- package/package.json +12 -2
- package/dist/layout/scales/buildScale.d.ts +0 -8
- package/dist/layout/scales/buildScale.js +0 -67
- package/dist/layout/scales/niceDomain.d.ts +0 -23
- package/dist/layout/scales/niceDomain.js +0 -59
- package/dist/plots/bar/defaults.d.ts +0 -9
- package/dist/plots/geo/features.svelte.d.ts +0 -5
- package/dist/plots/geo/features.svelte.js +0 -44
- package/dist/plots/geo/phases/tooltip.js +0 -5
- package/dist/plots/utils/geoAccessors.d.ts +0 -72
- package/dist/plots/utils/geoAccessors.js +0 -220
- package/dist/plots/utils/geoSegments.d.ts +0 -29
- package/dist/plots/utils/geoSegments.js +0 -37
- package/dist/types/layout/styles.d.ts +0 -122
- package/dist/types/markers/axis/curveName.d.ts +0 -2
- package/dist/types/plots/line/props.d.ts +0 -10
- package/dist/utils/color/contrast.d.ts +0 -9
- package/dist/utils/color/contrast.js +0 -40
- package/dist/utils/color/cssColor.d.ts +0 -4
- package/dist/utils/color/cssColor.js +0 -77
- package/dist/utils/color/ramp.d.ts +0 -17
- package/dist/utils/color/ramp.js +0 -110
- package/dist/utils/opacity.d.ts +0 -9
- package/dist/utils/opacity.js +0 -38
- package/examples/data.ts +0 -12
- /package/dist/types/layout/{styles.js → statistics/deviation.js} +0 -0
- /package/dist/types/{markers/axis/curveName.js → layout/styles/base.js} +0 -0
- /package/dist/types/{plots/area/props.js → layout/styles/bullet.js} +0 -0
- /package/dist/types/{plots/area/state.js → layout/styles/connector.js} +0 -0
- /package/dist/types/{plots/bar/props.js → layout/styles/curve.js} +0 -0
- /package/dist/types/{plots/bar/state.js → layout/styles/frame.js} +0 -0
- /package/dist/types/{plots/geo/props.js → layout/styles/gaps.js} +0 -0
- /package/dist/types/{plots/geo/state.js → layout/styles/geo.js} +0 -0
- /package/dist/types/{plots/heatmap/props.js → layout/styles/values.js} +0 -0
- /package/dist/types/{plots/heatmap/state.js → markers/axis/violin.js} +0 -0
- /package/dist/types/{plots/histogram/props.js → markers/channels/commonMarkerConfigWithRowOffset.js} +0 -0
- /package/dist/types/plots/{line → correlation/heatmap}/props.js +0 -0
- /package/dist/types/plots/{histogram → correlation/heatmap}/state.js +0 -0
- /package/dist/types/plots/{pyramid → correlation/scatter}/props.js +0 -0
- /package/dist/types/plots/{line → correlation/scatter}/state.js +0 -0
- /package/dist/types/plots/{scatter → distribution/box}/props.js +0 -0
- /package/dist/types/plots/{pyramid → distribution/box}/state.js +0 -0
- /package/dist/types/plots/{scatter/state.js → distribution/density/props.js} +0 -0
- /package/dist/{plots/utils → utils}/accessors.d.ts +0 -0
- /package/dist/{plots/utils → utils}/accessors.js +0 -0
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,59 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to this project are documented here. The format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/) and the project adheres to [Semantic Versioning](https://semver.org/).
|
|
4
4
|
|
|
5
|
+
## [1.2.0] - 2026-10-24
|
|
6
|
+
|
|
7
|
+
### Added
|
|
8
|
+
|
|
9
|
+
- `LollipopPlot`, a dot on a stem for the value of each category.
|
|
10
|
+
- `DumbbellPlot`, two series joined by a connector for each category.
|
|
11
|
+
- `ClevelandPlot`, any number of series per category joined from the lowest to the highest value, with connectors you can color, turn into arrows and sort by series value or range.
|
|
12
|
+
- `ForestPlot`, a dot per row on a stem spanning its confidence interval.
|
|
13
|
+
- `BulletPlot`, a bar against a target tick and shaded qualitative ranges.
|
|
14
|
+
- `SlopePlot`, the change of each series between two moments, labelled at both ends.
|
|
15
|
+
- `SparklinePlot`, a small axisless line with a dot and a label on its last point.
|
|
16
|
+
- `DensityPlot`, a kernel density curve of one numeric field, and `ViolinPlot`, the mirrored density of each category with a box inside.
|
|
17
|
+
- Step lines through `styles.curve: 'step'`, `'step-after'` or `'step-before'` on `LinePlot`.
|
|
18
|
+
- A `deviation` statistic that draws an estimator of the values and a band around it, with optional labels.
|
|
19
|
+
- `styles.values.select` chooses which points get a value label (`'first'`, `'last'`, `'min'`, `'max'` or a list), for line, area and Cleveland-family plots.
|
|
20
|
+
- The size channel (`r`) works on the dots of the Cleveland family, and its automatic legend is configured under the `r` key.
|
|
21
|
+
- Every marker takes `dx` and `dy` to move it a number of pixels, on a map too, and `dot`, `text` and `image` markers also take a function of the row to move each row on its own.
|
|
22
|
+
- `setConfiguration({ palette })` takes the name of a d3-scale-chromatic scheme (`'viridis'`, `'dark2'`...) or `{ scheme, count, schemeRange }` instead of just a list of colors.
|
|
23
|
+
- `continuous.scheme` and `continuous.schemeRange` in the configuration set the default continuous ramp by the name of a d3-scale-chromatic ramp, as an alternative to its `min` and `max` colors.
|
|
24
|
+
- Tick labels turn or thin out on small plots when they would not fit, and the last label of an axis that is not rounded to nice values stays inside the plot.
|
|
25
|
+
- A timeline can free one axis at a time (`scales: 'free-x'` or `'free-y'`) while the other keeps its shared domain.
|
|
26
|
+
- `link` markers on a map can lift their arcs off the surface (`altitude`) and cut them where a globe hides them (`occlusion`).
|
|
27
|
+
|
|
28
|
+
### Changed
|
|
29
|
+
|
|
30
|
+
- The default palette is Tableau 10, and the default continuous ramp, the timeline and player accents and the connector colors follow it.
|
|
31
|
+
|
|
32
|
+
### Fixed
|
|
33
|
+
|
|
34
|
+
- The example datasets moved out of the stories into `examples/datasets`, where real data replaces the synthetic rows and the docs, examples and stories all read the same files.
|
|
35
|
+
- The Minard map of Napoleon's march is rebuilt with `GeoPlot` and `LinePlot` markers instead of a hand-assembled svelteplot chart.
|
|
36
|
+
|
|
37
|
+
## [1.1.0] - 2026-10-20
|
|
38
|
+
|
|
39
|
+
### Added
|
|
40
|
+
|
|
41
|
+
- `BoxPlot`, a new plot kind for the distribution of values per category. It draws one box per category of each series: the quartiles, the median, whiskers that reach the farthest values within 1.5 times the interquartile range, and the values past them as outlier dots.
|
|
42
|
+
- Boxes stand upright when the categories are on `x` and lie sideways when they are on `y`.
|
|
43
|
+
- `grouping` or `color` gives each group its own box and color, and `facet` compares groups in separate panels.
|
|
44
|
+
- The tooltip reads one box at a time instead of every value inside it. The hovered row carries `category`, `min`, `p25`, `median`, `p75`, `max`, `count` and `outliers` for a custom `format`.
|
|
45
|
+
- Categories keep the order the data gives them, and the value axis fits the values without reaching for zero.
|
|
46
|
+
- It takes the same props as every other plot: `segments` to restyle whole categories, the interactive legend, `markers`, `styles.frame` and the rest.
|
|
47
|
+
- New `box` block in the configuration for the box fill opacity and the spacing between boxes (`fillOpacity`, `paddingInner`, `paddingOuter`).
|
|
48
|
+
|
|
49
|
+
### Fixed
|
|
50
|
+
|
|
51
|
+
- Nice axis domains no longer grow a whole extra step when the data ends just past a round value (parts that sum to `100.00000000000001` stay on `100`). `niceTolerance` on a scale sets how far past a tick, as a share of the step, the data may end and still stay on it.
|
|
52
|
+
- Ticks at the data's first and last values no longer crowd the nice tick next to them. `axis.edgeTicks` in the configuration (or `edgeTicks` on a scale) chooses what happens then: `collision` is `'drop-nice'`, `'drop-edge'` or `'extend'`.
|
|
53
|
+
- A tooltip that lists several rows shows them highest value first.
|
|
54
|
+
- The timeline accepts steps given as `Date` objects or date strings (ISO, or any pattern set with `dateFormat`), not only numbers.
|
|
55
|
+
- The `delta` marker's label offset and anchor have defaults per axis in the configuration (`delta.text`).
|
|
56
|
+
- Documentation and examples brought up to date with the current API.
|
|
57
|
+
|
|
5
58
|
## [1.0.0] - 2026-10-16
|
|
6
59
|
|
|
7
60
|
First stable release.
|
package/README.md
CHANGED
|
@@ -18,24 +18,21 @@ Svelte 5 plots for data storytelling, built on [svelteplot](https://svelteplot.d
|
|
|
18
18
|
|
|
19
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.
|
|
20
20
|
|
|
21
|
+
<!-- example: examples/LineByRegion.svelte -->
|
|
22
|
+
|
|
21
23
|
```svelte
|
|
22
24
|
<script lang="ts">
|
|
23
25
|
import { LinePlot } from '@fundar/data-chart-telling';
|
|
24
|
-
|
|
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
|
-
];
|
|
26
|
+
import { REGION_VALUES } from './datasets';
|
|
31
27
|
</script>
|
|
32
28
|
|
|
29
|
+
<!-- One line per region, with a title, the automatic legend, end-of-line values and a tooltip. -->
|
|
33
30
|
<LinePlot
|
|
34
31
|
width={720}
|
|
35
32
|
height={400}
|
|
36
|
-
title="
|
|
37
|
-
data={
|
|
38
|
-
x="
|
|
33
|
+
title="Monthly inflation by region (%)"
|
|
34
|
+
data={REGION_VALUES}
|
|
35
|
+
x="date"
|
|
39
36
|
y="value"
|
|
40
37
|
color="region"
|
|
41
38
|
tooltip
|
|
@@ -44,9 +41,13 @@ It aims for a sweet spot between the flexibility of `d3`, the declarative spirit
|
|
|
44
41
|
/>
|
|
45
42
|
```
|
|
46
43
|
|
|
47
|
-
|
|
44
|
+
<!-- /example -->
|
|
45
|
+
|
|
46
|
+

|
|
48
47
|
|
|
49
|
-
|
|
48
|
+
Every Svelte snippet in this README is a runnable file in [examples/](examples/), and the data comes from [examples/datasets/](examples/datasets/).
|
|
49
|
+
|
|
50
|
+
Every plot kind shares 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.
|
|
50
51
|
|
|
51
52
|
## Install
|
|
52
53
|
|
|
@@ -62,26 +63,64 @@ The package ships Svelte components, so the app needs the Svelte compiler (`@sve
|
|
|
62
63
|
|
|
63
64
|
`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.
|
|
64
65
|
|
|
66
|
+
<!-- example: examples/TimelinePlayer.svelte -->
|
|
67
|
+
|
|
65
68
|
```svelte
|
|
66
|
-
<
|
|
69
|
+
<script lang="ts">
|
|
70
|
+
import { BarPlot } from '@fundar/data-chart-telling';
|
|
71
|
+
import { REGION_VALUES } from './datasets';
|
|
72
|
+
</script>
|
|
73
|
+
|
|
74
|
+
<!--
|
|
75
|
+
`timeline` slices the rows by `accessor`. A timeline is a player by default:
|
|
76
|
+
play/pause, the current step and a slider in the chrome. `progress` sets where
|
|
77
|
+
it starts. `type: 'rule'` draws a guide beside the plot with no controls
|
|
78
|
+
instead (see TimelineRule). To build your own widget, read
|
|
79
|
+
`useFigure().timeline` (seek, play, pause, next, ...).
|
|
80
|
+
-->
|
|
81
|
+
<BarPlot
|
|
82
|
+
width={720}
|
|
83
|
+
height={400}
|
|
84
|
+
data={REGION_VALUES}
|
|
85
|
+
x="region"
|
|
86
|
+
y="value"
|
|
87
|
+
scales={{ y: { domain: [0, 30] } }}
|
|
88
|
+
timeline={{ accessor: 'date', progress: 0.25, player: { autoplay: false, loop: true } }}
|
|
89
|
+
/>
|
|
67
90
|
```
|
|
68
91
|
|
|
92
|
+
<!-- /example -->
|
|
93
|
+
|
|
69
94
|

|
|
70
95
|
|
|
71
96
|
`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.
|
|
72
97
|
|
|
98
|
+
<!-- example: examples/TimelineRule.svelte -->
|
|
99
|
+
|
|
73
100
|
```svelte
|
|
101
|
+
<script lang="ts">
|
|
102
|
+
import { LinePlot } from '@fundar/data-chart-telling';
|
|
103
|
+
import { REGION_VALUES } from './datasets';
|
|
104
|
+
|
|
105
|
+
// A rule has no controls of its own: the page moves it through `progress` (0 to 1).
|
|
106
|
+
// One step per year; a line plot shows every row up to the current step.
|
|
107
|
+
let progress = $state(0.5);
|
|
108
|
+
</script>
|
|
109
|
+
|
|
110
|
+
<input type="range" min="0" max="1" step="0.001" bind:value={progress} />
|
|
74
111
|
<LinePlot
|
|
75
|
-
{
|
|
76
|
-
{
|
|
77
|
-
data={
|
|
78
|
-
x="
|
|
112
|
+
width={720}
|
|
113
|
+
height={400}
|
|
114
|
+
data={REGION_VALUES}
|
|
115
|
+
x="date"
|
|
79
116
|
y="value"
|
|
80
117
|
color="region"
|
|
81
|
-
timeline={{ accessor:
|
|
118
|
+
timeline={{ accessor: (row) => row.date.getUTCFullYear(), type: 'rule', progress }}
|
|
82
119
|
/>
|
|
83
120
|
```
|
|
84
121
|
|
|
122
|
+
<!-- /example -->
|
|
123
|
+
|
|
85
124
|

|
|
86
125
|
|
|
87
126
|
See [Timeline](docs/timeline.md) for both in detail.
|
|
@@ -94,7 +133,7 @@ Start with the concepts; the rest is organised by what you want a plot to do.
|
|
|
94
133
|
| -------------------------------------------------------------- | -------------------------------------------------------------------------------------------- |
|
|
95
134
|
| [Getting started](docs/getting-started.md) | Installing, a first plot, sizing a plot to its container, loading data |
|
|
96
135
|
| [Concepts](docs/concepts.md) | Plots and figures, rows and series, channels, the props every plot shares |
|
|
97
|
-
| [Plots](docs/plots.md) |
|
|
136
|
+
| [Plots](docs/plots.md) | Every plot kind: what it draws and what it needs |
|
|
98
137
|
| [Scales](docs/scales.md) | Axes (`x`, `y`) and channel scales (`color`, `grouping`, `opacity`, `symbol`, `r`, `length`) |
|
|
99
138
|
| [Styles and segments](docs/styles-and-segments.md) | Value labels, frames, gap filling, and styling ranges of the data |
|
|
100
139
|
| [Markers](docs/markers.md) | Extra marks on a plot: annotations, regions, hover highlights, custom components |
|
|
@@ -2,7 +2,7 @@ import type { PlotStylesConfig, PlotStylesConfigInput } from '../types/configura
|
|
|
2
2
|
export declare const DEFAULT_CONFIG: PlotStylesConfig;
|
|
3
3
|
/** Read the live, reactive configuration. */
|
|
4
4
|
export declare function getConfiguration(): PlotStylesConfig;
|
|
5
|
-
/** Deep-merge a partial override into the global configuration. Reactive. */
|
|
5
|
+
/** Deep-merge a partial override into the global configuration - a `palette` may be a scheme name. Reactive. */
|
|
6
6
|
export declare function setConfiguration(patch: PlotStylesConfigInput): PlotStylesConfig;
|
|
7
7
|
/** Restore the shipped defaults. */
|
|
8
8
|
export declare function resetConfiguration(): void;
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { merge } from '../utils/merge';
|
|
2
|
+
import { Palette } from '../utils/color';
|
|
2
3
|
/**
|
|
3
4
|
* Global, reactive styling configuration. Chrome reads it as CSS custom
|
|
4
5
|
* properties ({@link configToCssVars}); plots read it as plain values.
|
|
@@ -16,9 +17,17 @@ const text = (over) => ({
|
|
|
16
17
|
...over
|
|
17
18
|
});
|
|
18
19
|
export const DEFAULT_CONFIG = {
|
|
20
|
+
// ── General look ────────────────────────────────────────────────────────────
|
|
19
21
|
font: 'inherit',
|
|
20
22
|
color: 'currentColor',
|
|
21
23
|
background: 'transparent',
|
|
24
|
+
title: text({ size: '1.5rem', weight: 500, leading: '1.2' }),
|
|
25
|
+
subtitle: text({
|
|
26
|
+
size: '1rem',
|
|
27
|
+
weight: 400,
|
|
28
|
+
color: 'color-mix(in srgb, currentColor 85%, transparent)'
|
|
29
|
+
}),
|
|
30
|
+
caption: text({ size: '0.75rem', color: 'color-mix(in srgb, currentColor 75%, transparent)' }),
|
|
22
31
|
spacing: {
|
|
23
32
|
headerPadding: '0.5rem 0',
|
|
24
33
|
legendPadding: '0.5rem 0',
|
|
@@ -48,13 +57,32 @@ export const DEFAULT_CONFIG = {
|
|
|
48
57
|
],
|
|
49
58
|
rowGap: '1rem'
|
|
50
59
|
},
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
}
|
|
57
|
-
|
|
60
|
+
// Tableau 10 - qualitative, with a muted blue first, and distinct enough to tell ten series apart.
|
|
61
|
+
palette: Palette.resolve('tableau10'),
|
|
62
|
+
symbols: ['circle', 'square', 'triangle', 'diamond', 'star', 'cross'],
|
|
63
|
+
// A light tint of the palette's first color up to the color itself.
|
|
64
|
+
continuous: { min: '#eaf0f6', max: '#4e79a7', labelColor: '#111827', opacityRange: [0.2, 1] },
|
|
65
|
+
margins: { top: 'auto', right: 'auto', bottom: 'auto', left: 'auto' },
|
|
66
|
+
frameClip: { tolerance: 2 },
|
|
67
|
+
// ── Features ────────────────────────────────────────────────────────────────
|
|
68
|
+
axis: {
|
|
69
|
+
color: 'currentColor',
|
|
70
|
+
fontSize: 14,
|
|
71
|
+
labelFontSize: 14,
|
|
72
|
+
titleFontSize: 14,
|
|
73
|
+
xTickSize: 5,
|
|
74
|
+
yTickSize: 5,
|
|
75
|
+
xTickPadding: 10,
|
|
76
|
+
yTickPadding: 10,
|
|
77
|
+
grid: false,
|
|
78
|
+
locale: 'es-AR',
|
|
79
|
+
compactDisplay: 'short',
|
|
80
|
+
edgeTicks: {
|
|
81
|
+
x: { enabled: true, collision: 'drop-nice' },
|
|
82
|
+
y: { enabled: false, collision: 'drop-nice' }
|
|
83
|
+
},
|
|
84
|
+
autoRotate: true
|
|
85
|
+
},
|
|
58
86
|
legend: {
|
|
59
87
|
font: 'inherit',
|
|
60
88
|
size: '0.875rem',
|
|
@@ -79,6 +107,10 @@ export const DEFAULT_CONFIG = {
|
|
|
79
107
|
height: 20,
|
|
80
108
|
barHeight: 12,
|
|
81
109
|
barRadius: 2,
|
|
110
|
+
opacity: {
|
|
111
|
+
color: '#000',
|
|
112
|
+
checker: { size: 4, light: '#fff', dark: '#d4d4d8' }
|
|
113
|
+
},
|
|
82
114
|
// A slim vertical bar handle, taller than the 12px gradient track.
|
|
83
115
|
handle: {
|
|
84
116
|
width: '6px',
|
|
@@ -105,19 +137,6 @@ export const DEFAULT_CONFIG = {
|
|
|
105
137
|
}
|
|
106
138
|
}
|
|
107
139
|
},
|
|
108
|
-
axis: {
|
|
109
|
-
color: 'currentColor',
|
|
110
|
-
fontSize: 14,
|
|
111
|
-
labelFontSize: 14,
|
|
112
|
-
titleFontSize: 14,
|
|
113
|
-
xTickSize: 5,
|
|
114
|
-
yTickSize: 5,
|
|
115
|
-
xTickPadding: 10,
|
|
116
|
-
yTickPadding: 10,
|
|
117
|
-
grid: false,
|
|
118
|
-
locale: 'es-AR',
|
|
119
|
-
compactDisplay: 'short'
|
|
120
|
-
},
|
|
121
140
|
tooltip: {
|
|
122
141
|
background: '#111827',
|
|
123
142
|
color: '#ffffff',
|
|
@@ -126,41 +145,31 @@ export const DEFAULT_CONFIG = {
|
|
|
126
145
|
radius: '0.375rem',
|
|
127
146
|
border: 'none'
|
|
128
147
|
},
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
continuous: { min: '#f7fcfd', max: '#1b9e77', labelColor: '#111827', opacityRange: [0.2, 1] },
|
|
135
|
-
line: {
|
|
136
|
-
strokeWidth: 3,
|
|
137
|
-
dotRadius: 4,
|
|
138
|
-
gap: {
|
|
139
|
-
stroke: { strokeOpacity: 0.6, strokeDasharray: '4 4' },
|
|
140
|
-
dots: {}
|
|
141
|
-
}
|
|
148
|
+
hover: {
|
|
149
|
+
rule: { stroke: '#e6580d', strokeOpacity: 0.35, strokeWidth: 1.5, strokeDasharray: '4 4' },
|
|
150
|
+
dot: { dotRadius: 5, dotFill: 'currentColor' },
|
|
151
|
+
font: { fill: 'currentColor', fontSize: 12, dy: -18 },
|
|
152
|
+
area: { fill: '#94a3b8', fillOpacity: 0.4 }
|
|
142
153
|
},
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
154
|
+
facet: {
|
|
155
|
+
indicator: {
|
|
156
|
+
background: '#111827',
|
|
157
|
+
color: '#ffffff',
|
|
158
|
+
fontSize: '0.8125rem',
|
|
159
|
+
padding: '0.125rem 0.5rem',
|
|
160
|
+
radius: '999px'
|
|
161
|
+
},
|
|
162
|
+
navButton: {
|
|
163
|
+
background: '#111827',
|
|
164
|
+
color: '#ffffff',
|
|
165
|
+
size: '2rem',
|
|
166
|
+
fontSize: '1.1rem',
|
|
167
|
+
disabledOpacity: 0.3
|
|
149
168
|
}
|
|
150
169
|
},
|
|
151
|
-
bar: {
|
|
152
|
-
gap: { fillOpacity: 0.5 },
|
|
153
|
-
seriesPadding: 0.2,
|
|
154
|
-
paddingInner: 0.15,
|
|
155
|
-
paddingOuter: 0.15
|
|
156
|
-
},
|
|
157
|
-
pyramid: { gap: { fillOpacity: 0.5 } },
|
|
158
|
-
area: { fillOpacity: 0.6 },
|
|
159
|
-
histogram: { inset: 1, fillOpacity: 1 },
|
|
160
|
-
scatter: { dotRadius: 5 },
|
|
161
170
|
timeline: {
|
|
162
171
|
axisColor: 'currentColor',
|
|
163
|
-
activeColor: '#
|
|
172
|
+
activeColor: '#4e79a7',
|
|
164
173
|
thickness: 60,
|
|
165
174
|
gap: '12px',
|
|
166
175
|
rule: {
|
|
@@ -185,22 +194,22 @@ export const DEFAULT_CONFIG = {
|
|
|
185
194
|
valueWidth: '3rem',
|
|
186
195
|
button: {
|
|
187
196
|
size: '2rem',
|
|
188
|
-
background: '#
|
|
197
|
+
background: '#4e79a7',
|
|
189
198
|
color: '#ffffff',
|
|
190
|
-
hoverBackground: '#
|
|
199
|
+
hoverBackground: '#24384d',
|
|
191
200
|
radius: '999px'
|
|
192
201
|
},
|
|
193
202
|
track: {
|
|
194
203
|
height: '3px',
|
|
195
204
|
color: 'color-mix(in srgb, currentColor 25%, transparent)',
|
|
196
|
-
fillColor: '#
|
|
205
|
+
fillColor: '#4e79a7',
|
|
197
206
|
radius: '999px'
|
|
198
207
|
},
|
|
199
|
-
thumb: { size: '14px', color: '#
|
|
208
|
+
thumb: { size: '14px', color: '#4e79a7' },
|
|
200
209
|
toggle: {
|
|
201
210
|
background: 'transparent',
|
|
202
211
|
color: 'currentColor',
|
|
203
|
-
activeBackground: '#
|
|
212
|
+
activeBackground: '#4e79a7',
|
|
204
213
|
activeColor: '#ffffff',
|
|
205
214
|
radius: '0.375rem',
|
|
206
215
|
fontSize: '0.75rem',
|
|
@@ -208,28 +217,96 @@ export const DEFAULT_CONFIG = {
|
|
|
208
217
|
}
|
|
209
218
|
}
|
|
210
219
|
},
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
220
|
+
connector: {
|
|
221
|
+
sign: { positive: '#59a14f', negative: '#e15759', zero: '#9ca3af' },
|
|
222
|
+
lengthScheme: ['#d1d5db', '#374151'],
|
|
223
|
+
differenceScheme: ['#e15759', '#e5e7eb', '#59a14f'],
|
|
224
|
+
arrow: { width: 2, headLength: 8, headAngle: 60 },
|
|
225
|
+
capLength: 8,
|
|
226
|
+
outsideOpacity: 0.4,
|
|
227
|
+
labelFontSize: 11,
|
|
228
|
+
labelGap: 4
|
|
216
229
|
},
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
disabledOpacity: 0.3
|
|
230
|
+
// Beside a vertical delta (taken on x), above a horizontal one (on y).
|
|
231
|
+
delta: {
|
|
232
|
+
text: {
|
|
233
|
+
x: { dx: 12, dy: 0, lineAnchor: 'middle', textAnchor: 'start' },
|
|
234
|
+
y: { dx: 0, dy: -10, lineAnchor: 'middle', textAnchor: 'middle' }
|
|
235
|
+
}
|
|
236
|
+
},
|
|
237
|
+
text: {
|
|
238
|
+
declutter: {
|
|
239
|
+
elbowGap: 10,
|
|
240
|
+
laneStep: 7,
|
|
241
|
+
labelGap: 6,
|
|
242
|
+
connector: { stroke: '#94a3b8', strokeWidth: 0.5 }
|
|
231
243
|
}
|
|
232
|
-
}
|
|
244
|
+
},
|
|
245
|
+
// ── Plot kinds ──────────────────────────────────────────────────────────────
|
|
246
|
+
area: { fillOpacity: 0.6 },
|
|
247
|
+
bar: {
|
|
248
|
+
gap: { fillOpacity: 0.5 },
|
|
249
|
+
seriesPadding: 0.2,
|
|
250
|
+
paddingInner: 0.15,
|
|
251
|
+
paddingOuter: 0.15
|
|
252
|
+
},
|
|
253
|
+
box: { fillOpacity: 0.9, paddingInner: 0.4, paddingOuter: 0.2 },
|
|
254
|
+
bullet: {
|
|
255
|
+
barThickness: 10,
|
|
256
|
+
rangeWidth: 28,
|
|
257
|
+
rangeColors: ['#9ca3af', '#d1d5db', '#eceff3'],
|
|
258
|
+
targetLength: 22,
|
|
259
|
+
targetWidth: 3,
|
|
260
|
+
paddingInner: 0.4,
|
|
261
|
+
paddingOuter: 0.3
|
|
262
|
+
},
|
|
263
|
+
cleveland: {
|
|
264
|
+
dotRadius: 5,
|
|
265
|
+
stemWidth: 5,
|
|
266
|
+
connectorColor: '#9ca3af',
|
|
267
|
+
labelGap: 10,
|
|
268
|
+
paddingInner: 0.5,
|
|
269
|
+
paddingOuter: 0.5
|
|
270
|
+
},
|
|
271
|
+
density: { fillOpacity: 0.6, strokeWidth: 2 },
|
|
272
|
+
dumbbell: {
|
|
273
|
+
dotRadius: 6,
|
|
274
|
+
stemWidth: 'dots',
|
|
275
|
+
connectorColor: '#9ca3af',
|
|
276
|
+
labelGap: 10,
|
|
277
|
+
paddingInner: 0.5,
|
|
278
|
+
paddingOuter: 0.5
|
|
279
|
+
},
|
|
280
|
+
forest: {
|
|
281
|
+
dotRadius: 5,
|
|
282
|
+
stemWidth: 2,
|
|
283
|
+
caps: true,
|
|
284
|
+
labelGap: 10,
|
|
285
|
+
paddingInner: 0.5,
|
|
286
|
+
paddingOuter: 0.5
|
|
287
|
+
},
|
|
288
|
+
histogram: { inset: 1, fillOpacity: 1 },
|
|
289
|
+
line: {
|
|
290
|
+
curve: 'auto',
|
|
291
|
+
strokeWidth: 3,
|
|
292
|
+
dotRadius: 4,
|
|
293
|
+
gap: {
|
|
294
|
+
stroke: { strokeOpacity: 0.6, strokeDasharray: '4 4' },
|
|
295
|
+
dots: {}
|
|
296
|
+
}
|
|
297
|
+
},
|
|
298
|
+
lollipop: {
|
|
299
|
+
dotRadius: 6,
|
|
300
|
+
stemWidth: 2,
|
|
301
|
+
labelGap: 10,
|
|
302
|
+
paddingInner: 0.5,
|
|
303
|
+
paddingOuter: 0.5
|
|
304
|
+
},
|
|
305
|
+
pyramid: { gap: { fillOpacity: 0.5 } },
|
|
306
|
+
scatter: { dotRadius: 5 },
|
|
307
|
+
slope: { strokeWidth: 2, dotRadius: 5, padding: 0 },
|
|
308
|
+
sparkline: { strokeWidth: 1.5, dotRadius: 3 },
|
|
309
|
+
violin: { fillOpacity: 0.6, paddingInner: 0.2, paddingOuter: 0.2, boxWidth: 8 }
|
|
233
310
|
};
|
|
234
311
|
// ── Reactive store ──────────────────────────────────────────────────────────
|
|
235
312
|
let current = $state(structuredClone(DEFAULT_CONFIG));
|
|
@@ -237,9 +314,9 @@ let current = $state(structuredClone(DEFAULT_CONFIG));
|
|
|
237
314
|
export function getConfiguration() {
|
|
238
315
|
return current;
|
|
239
316
|
}
|
|
240
|
-
/** Deep-merge a partial override into the global configuration. Reactive. */
|
|
317
|
+
/** Deep-merge a partial override into the global configuration - a `palette` may be a scheme name. Reactive. */
|
|
241
318
|
export function setConfiguration(patch) {
|
|
242
|
-
current = merge(current, patch);
|
|
319
|
+
current = merge(current, Palette.resolveIn(patch));
|
|
243
320
|
return current;
|
|
244
321
|
}
|
|
245
322
|
/** Restore the shipped defaults. */
|
|
@@ -261,6 +338,9 @@ export function configToCssVars(c) {
|
|
|
261
338
|
'--dct-font': c.font,
|
|
262
339
|
'--dct-fg': c.color,
|
|
263
340
|
'--dct-bg': c.background,
|
|
341
|
+
...t('title', c.title),
|
|
342
|
+
...t('subtitle', c.subtitle),
|
|
343
|
+
...t('caption', c.caption),
|
|
264
344
|
'--dct-header-pad': c.spacing.headerPadding,
|
|
265
345
|
'--dct-legend-pad': c.spacing.legendPadding,
|
|
266
346
|
'--dct-caption-pad': c.spacing.captionPadding,
|
|
@@ -270,9 +350,10 @@ export function configToCssVars(c) {
|
|
|
270
350
|
'--dct-divider-style': c.divider.style,
|
|
271
351
|
'--dct-divider-margin': c.divider.margin,
|
|
272
352
|
'--dct-row-gap': c.chrome.rowGap,
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
353
|
+
'--dct-heat-min': c.continuous.min,
|
|
354
|
+
'--dct-heat-max': c.continuous.max,
|
|
355
|
+
'--dct-heat-text': c.continuous.labelColor,
|
|
356
|
+
'--dct-axis-color': c.axis.color,
|
|
276
357
|
'--dct-legend-font': c.legend.font,
|
|
277
358
|
'--dct-legend-size': c.legend.size,
|
|
278
359
|
'--dct-legend-weight': String(c.legend.weight),
|
|
@@ -300,13 +381,22 @@ export function configToCssVars(c) {
|
|
|
300
381
|
'--dct-continuous-label-size': c.legend.continuous.label.size,
|
|
301
382
|
'--dct-continuous-label-weight': String(c.legend.continuous.label.weight),
|
|
302
383
|
'--dct-continuous-label-overlap-rotate': c.legend.continuous.label.overlap.rotate,
|
|
303
|
-
'--dct-axis-color': c.axis.color,
|
|
304
384
|
'--dct-tooltip-bg': c.tooltip.background,
|
|
305
385
|
'--dct-tooltip-color': c.tooltip.color,
|
|
306
386
|
'--dct-tooltip-size': c.tooltip.fontSize,
|
|
307
387
|
'--dct-tooltip-pad': c.tooltip.padding,
|
|
308
388
|
'--dct-tooltip-radius': c.tooltip.radius,
|
|
309
389
|
'--dct-tooltip-border': c.tooltip.border,
|
|
390
|
+
'--dct-facet-indicator-bg': c.facet.indicator.background,
|
|
391
|
+
'--dct-facet-indicator-color': c.facet.indicator.color,
|
|
392
|
+
'--dct-facet-indicator-size': c.facet.indicator.fontSize,
|
|
393
|
+
'--dct-facet-indicator-pad': c.facet.indicator.padding,
|
|
394
|
+
'--dct-facet-indicator-radius': c.facet.indicator.radius,
|
|
395
|
+
'--dct-facet-nav-bg': c.facet.navButton.background,
|
|
396
|
+
'--dct-facet-nav-color': c.facet.navButton.color,
|
|
397
|
+
'--dct-facet-nav-btn-size': c.facet.navButton.size,
|
|
398
|
+
'--dct-facet-nav-font-size': c.facet.navButton.fontSize,
|
|
399
|
+
'--dct-facet-nav-disabled-opacity': String(c.facet.navButton.disabledOpacity),
|
|
310
400
|
'--dct-timeline-axis': c.timeline.axisColor,
|
|
311
401
|
'--dct-timeline-active': c.timeline.activeColor,
|
|
312
402
|
'--dct-timeline-gap': c.timeline.gap,
|
|
@@ -335,20 +425,7 @@ export function configToCssVars(c) {
|
|
|
335
425
|
'--dct-player-toggle-active-color': c.timeline.player.toggle.activeColor,
|
|
336
426
|
'--dct-player-toggle-radius': c.timeline.player.toggle.radius,
|
|
337
427
|
'--dct-player-toggle-size': c.timeline.player.toggle.fontSize,
|
|
338
|
-
'--dct-player-toggle-pad': c.timeline.player.toggle.padding
|
|
339
|
-
'--dct-heat-min': c.continuous.min,
|
|
340
|
-
'--dct-heat-max': c.continuous.max,
|
|
341
|
-
'--dct-heat-text': c.continuous.labelColor,
|
|
342
|
-
'--dct-facet-indicator-bg': c.facet.indicator.background,
|
|
343
|
-
'--dct-facet-indicator-color': c.facet.indicator.color,
|
|
344
|
-
'--dct-facet-indicator-size': c.facet.indicator.fontSize,
|
|
345
|
-
'--dct-facet-indicator-pad': c.facet.indicator.padding,
|
|
346
|
-
'--dct-facet-indicator-radius': c.facet.indicator.radius,
|
|
347
|
-
'--dct-facet-nav-bg': c.facet.navButton.background,
|
|
348
|
-
'--dct-facet-nav-color': c.facet.navButton.color,
|
|
349
|
-
'--dct-facet-nav-btn-size': c.facet.navButton.size,
|
|
350
|
-
'--dct-facet-nav-font-size': c.facet.navButton.fontSize,
|
|
351
|
-
'--dct-facet-nav-disabled-opacity': String(c.facet.navButton.disabledOpacity)
|
|
428
|
+
'--dct-player-toggle-pad': c.timeline.player.toggle.padding
|
|
352
429
|
};
|
|
353
430
|
}
|
|
354
431
|
/** Serialize a CSS-vars record into a `style` attribute string. */
|