@fundar/data-chart-telling 1.1.0 → 1.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +32 -0
- package/README.md +6 -6
- package/dist/configuration/config.svelte.d.ts +1 -1
- package/dist/configuration/config.svelte.js +165 -100
- package/dist/configuration/themes/index.d.ts +5 -1428
- package/dist/index.d.ts +23 -14
- package/dist/index.js +20 -11
- package/dist/layout/base/BasePlotLayout.svelte +115 -50
- 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/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 +4 -0
- package/dist/layout/legend/LegendState.svelte.js +20 -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/Slice.d.ts +5 -1
- package/dist/layout/plot/Slice.js +14 -4
- package/dist/layout/scales/NiceTicks.d.ts +3 -0
- package/dist/layout/scales/NiceTicks.js +4 -0
- package/dist/layout/scales/ScalesLayout.svelte +72 -7
- package/dist/layout/scales/ScalesLayout.svelte.d.ts +5 -0
- package/dist/layout/scales/SveltePlotScale.d.ts +2 -2
- package/dist/layout/scales/SveltePlotScale.js +13 -6
- 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 +80 -21
- package/dist/layout/timeline/TimelineLayout.svelte +1 -1
- package/dist/layout/tooltip/Tooltip.svelte +4 -4
- package/dist/layout/tooltip/Tooltip.svelte.d.ts +4 -4
- package/dist/layout/tooltip/TooltipState.svelte.js +1 -1
- 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/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 +5 -0
- package/dist/phases/data/DataPhase.js +3 -3
- package/dist/phases/data/PlotAxes.d.ts +10 -0
- package/dist/phases/data/PlotAxes.js +14 -1
- package/dist/phases/facet/FacetPanels.d.ts +1 -0
- package/dist/phases/facet/FacetPanels.js +1 -0
- package/dist/phases/mapping/MappingPhase.js +1 -1
- 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.js +21 -7
- package/dist/phases/sharedScales/SharedScalesPhase.d.ts +3 -2
- package/dist/phases/sharedScales/SharedScalesPhase.js +5 -2
- package/dist/phases/statistics/Statistics.d.ts +10 -6
- package/dist/phases/statistics/Statistics.js +20 -10
- package/dist/phases/statistics/StatisticsPhase.js +7 -2
- 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/transforms/ProcessedPositions.js +1 -1
- package/dist/phases/transforms/TransformsPhase.js +49 -3
- 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 +3 -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 +4 -4
- package/dist/plots/{scatter → correlation/scatter}/markers.d.ts +4 -4
- package/dist/plots/{scatter → correlation/scatter}/markers.js +3 -3
- package/dist/plots/{box → distribution/box}/BoxSummaries.d.ts +2 -2
- package/dist/plots/{box → distribution/box}/BoxSummaries.js +6 -6
- package/dist/plots/{box → distribution/box}/Plot.svelte +2 -2
- package/dist/plots/{box → distribution/box}/Plot.svelte.d.ts +2 -2
- package/dist/plots/{box → distribution/box}/defaults.d.ts +2 -2
- package/dist/plots/{box → distribution/box}/defaults.js +1 -1
- package/dist/plots/{box → distribution/box}/markers.d.ts +2 -2
- 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 +3 -3
- package/dist/plots/{histogram → distribution/histogram}/markers.d.ts +3 -3
- package/dist/plots/{histogram → distribution/histogram}/markers.js +5 -5
- 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 +6 -6
- package/dist/plots/{pyramid → distribution/pyramid}/markers.d.ts +4 -4
- package/dist/plots/{pyramid → distribution/pyramid}/markers.js +6 -6
- 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 +1 -1
- 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 +6 -4
- 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 +2 -2
- package/dist/plots/{geo → map/geo}/phases/markers.d.ts +1 -1
- package/dist/plots/{geo → map/geo}/phases/markers.js +6 -10
- 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 +2 -2
- 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 +15 -9
- package/dist/plots/{bar → ranking/bar}/markers.d.ts +8 -8
- package/dist/plots/{bar → ranking/bar}/markers.js +8 -17
- 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 +276 -143
- 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 +39 -7
- 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 +5 -2
- 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/index.d.ts +1 -1
- package/dist/types/phases/scales/phase.d.ts +5 -1
- package/dist/types/phases/state.d.ts +15 -2
- package/dist/types/phases/statistics/source.d.ts +3 -1
- package/dist/types/phases/transforms/phase.d.ts +22 -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/{box → distribution/box}/props.d.ts +6 -6
- package/dist/types/plots/{box → distribution/box}/state.d.ts +3 -3
- 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/{histogram → distribution/histogram}/props.d.ts +7 -7
- 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 +1 -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 +2 -2
- package/docs/composer.md +2 -2
- package/docs/concepts.md +1 -1
- package/docs/development.md +1 -1
- package/docs/facets.md +3 -3
- package/docs/getting-started.md +2 -2
- package/docs/legend.md +13 -11
- package/docs/markers.md +29 -27
- 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 -280
- package/docs/scales.md +30 -24
- package/docs/styles-and-segments.md +24 -21
- package/docs/theming.md +23 -20
- package/docs/timeline.md +3 -3
- package/docs/tooltip-and-hover.md +10 -10
- package/docs/transforms-and-statistics.md +13 -12
- package/examples/BarValues.svelte +1 -1
- package/examples/Box.svelte +1 -1
- package/examples/Bullet.svelte +17 -0
- package/examples/Chrome.svelte +1 -1
- package/examples/ChromeOrder.svelte +1 -1
- package/examples/Cleveland.svelte +15 -0
- package/examples/Composer.svelte +2 -2
- package/examples/CustomTooltip.svelte +1 -1
- package/examples/Density.svelte +7 -0
- package/examples/Dumbbell.svelte +16 -0
- package/examples/Facets.svelte +1 -1
- package/examples/FacetsCarousel.svelte +1 -1
- package/examples/FacetsRowsCols.svelte +1 -1
- package/examples/FirstPlot.svelte +1 -1
- package/examples/Forest.svelte +17 -0
- package/examples/Gaps.svelte +2 -2
- package/examples/GroupedBars.svelte +1 -1
- package/examples/Heatmap.svelte +3 -3
- package/examples/HeatmapSegments.svelte +8 -8
- package/examples/Histogram.svelte +1 -1
- package/examples/HorizontalBars.svelte +1 -1
- package/examples/LegendSections.svelte +1 -1
- package/examples/LegendToggle.svelte +1 -1
- package/examples/LineByRegion.svelte +1 -1
- package/examples/LineDates.svelte +1 -1
- package/examples/LineStep.svelte +16 -0
- package/examples/LineStepSegment.svelte +18 -0
- package/examples/Lollipop.svelte +17 -0
- package/examples/Markers.svelte +1 -1
- package/examples/MovingAverage.svelte +1 -1
- package/examples/Pyramid.svelte +9 -2
- package/examples/Regression.svelte +2 -2
- package/examples/ResponsiveLine.svelte +1 -1
- package/examples/Scales.svelte +1 -1
- package/examples/Scatter.svelte +2 -2
- package/examples/SegmentHighlight.svelte +1 -1
- package/examples/Segments.svelte +1 -1
- package/examples/SegmentsBySeries.svelte +1 -1
- package/examples/Slope.svelte +17 -0
- package/examples/Sparkline.svelte +14 -0
- package/examples/StackedArea.svelte +1 -1
- package/examples/StackedBars.svelte +1 -1
- package/examples/TimelinePlayer.svelte +1 -1
- package/examples/TimelineRule.svelte +1 -1
- package/examples/Tooltip.svelte +1 -1
- package/examples/ValueLabels.svelte +1 -1
- 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 +22 -11
- package/llms.txt +32 -4
- package/package.json +10 -1
- 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 -324
- /package/dist/plots/{box → distribution/box}/markers.js +0 -0
- /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/box/props.js → layout/styles/gaps.js} +0 -0
- /package/dist/types/{plots/box/state.js → layout/styles/geo.js} +0 -0
- /package/dist/types/{plots/geo/props.js → layout/styles/values.js} +0 -0
- /package/dist/types/{plots/geo/state.js → markers/axis/violin.js} +0 -0
- /package/dist/types/{plots/heatmap/props.js → markers/channels/commonMarkerConfigWithRowOffset.js} +0 -0
- /package/dist/types/plots/{histogram → correlation/heatmap}/props.js +0 -0
- /package/dist/types/plots/{heatmap → correlation/heatmap}/state.js +0 -0
- /package/dist/types/plots/{line → correlation/scatter}/props.js +0 -0
- /package/dist/types/plots/{histogram → correlation/scatter}/state.js +0 -0
- /package/dist/types/plots/{pyramid → distribution/box}/props.js +0 -0
- /package/dist/types/plots/{line → distribution/box}/state.js +0 -0
- /package/dist/types/plots/{scatter → distribution/density}/props.js +0 -0
- /package/dist/types/plots/{pyramid → distribution/density}/state.js +0 -0
- /package/dist/types/plots/{scatter/state.js → distribution/histogram/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,38 @@
|
|
|
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
|
+
|
|
5
37
|
## [1.1.0] - 2026-10-20
|
|
6
38
|
|
|
7
39
|
### Added
|
package/README.md
CHANGED
|
@@ -23,7 +23,7 @@ It aims for a sweet spot between the flexibility of `d3`, the declarative spirit
|
|
|
23
23
|
```svelte
|
|
24
24
|
<script lang="ts">
|
|
25
25
|
import { LinePlot } from '@fundar/data-chart-telling';
|
|
26
|
-
import { REGION_VALUES } from './
|
|
26
|
+
import { REGION_VALUES } from './datasets';
|
|
27
27
|
</script>
|
|
28
28
|
|
|
29
29
|
<!-- One line per region, with a title, the automatic legend, end-of-line values and a tooltip. -->
|
|
@@ -45,9 +45,9 @@ It aims for a sweet spot between the flexibility of `d3`, the declarative spirit
|
|
|
45
45
|
|
|
46
46
|

|
|
47
47
|
|
|
48
|
-
Every Svelte snippet in this README is a runnable file in [examples/](examples/), and the data comes from [examples/
|
|
48
|
+
Every Svelte snippet in this README is a runnable file in [examples/](examples/), and the data comes from [examples/datasets/](examples/datasets/).
|
|
49
49
|
|
|
50
|
-
|
|
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.
|
|
51
51
|
|
|
52
52
|
## Install
|
|
53
53
|
|
|
@@ -68,7 +68,7 @@ The package ships Svelte components, so the app needs the Svelte compiler (`@sve
|
|
|
68
68
|
```svelte
|
|
69
69
|
<script lang="ts">
|
|
70
70
|
import { BarPlot } from '@fundar/data-chart-telling';
|
|
71
|
-
import { REGION_VALUES } from './
|
|
71
|
+
import { REGION_VALUES } from './datasets';
|
|
72
72
|
</script>
|
|
73
73
|
|
|
74
74
|
<!--
|
|
@@ -100,7 +100,7 @@ The package ships Svelte components, so the app needs the Svelte compiler (`@sve
|
|
|
100
100
|
```svelte
|
|
101
101
|
<script lang="ts">
|
|
102
102
|
import { LinePlot } from '@fundar/data-chart-telling';
|
|
103
|
-
import { REGION_VALUES } from './
|
|
103
|
+
import { REGION_VALUES } from './datasets';
|
|
104
104
|
|
|
105
105
|
// A rule has no controls of its own: the page moves it through `progress` (0 to 1).
|
|
106
106
|
// One step per year; a line plot shows every row up to the current step.
|
|
@@ -133,7 +133,7 @@ Start with the concepts; the rest is organised by what you want a plot to do.
|
|
|
133
133
|
| -------------------------------------------------------------- | -------------------------------------------------------------------------------------------- |
|
|
134
134
|
| [Getting started](docs/getting-started.md) | Installing, a first plot, sizing a plot to its container, loading data |
|
|
135
135
|
| [Concepts](docs/concepts.md) | Plots and figures, rows and series, channels, the props every plot shares |
|
|
136
|
-
| [Plots](docs/plots.md) |
|
|
136
|
+
| [Plots](docs/plots.md) | Every plot kind: what it draws and what it needs |
|
|
137
137
|
| [Scales](docs/scales.md) | Axes (`x`, `y`) and channel scales (`color`, `grouping`, `opacity`, `symbol`, `r`, `length`) |
|
|
138
138
|
| [Styles and segments](docs/styles-and-segments.md) | Value labels, frames, gap filling, and styling ranges of the data |
|
|
139
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,23 +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
|
-
edgeTicks: {
|
|
121
|
-
x: { enabled: true, collision: 'drop-nice' },
|
|
122
|
-
y: { enabled: false, collision: 'drop-nice' }
|
|
123
|
-
}
|
|
124
|
-
},
|
|
125
140
|
tooltip: {
|
|
126
141
|
background: '#111827',
|
|
127
142
|
color: '#ffffff',
|
|
@@ -130,42 +145,31 @@ export const DEFAULT_CONFIG = {
|
|
|
130
145
|
radius: '0.375rem',
|
|
131
146
|
border: 'none'
|
|
132
147
|
},
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
continuous: { min: '#f7fcfd', max: '#1b9e77', labelColor: '#111827', opacityRange: [0.2, 1] },
|
|
139
|
-
line: {
|
|
140
|
-
strokeWidth: 3,
|
|
141
|
-
dotRadius: 4,
|
|
142
|
-
gap: {
|
|
143
|
-
stroke: { strokeOpacity: 0.6, strokeDasharray: '4 4' },
|
|
144
|
-
dots: {}
|
|
145
|
-
}
|
|
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 }
|
|
146
153
|
},
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
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
|
|
153
168
|
}
|
|
154
169
|
},
|
|
155
|
-
bar: {
|
|
156
|
-
gap: { fillOpacity: 0.5 },
|
|
157
|
-
seriesPadding: 0.2,
|
|
158
|
-
paddingInner: 0.15,
|
|
159
|
-
paddingOuter: 0.15
|
|
160
|
-
},
|
|
161
|
-
pyramid: { gap: { fillOpacity: 0.5 } },
|
|
162
|
-
area: { fillOpacity: 0.6 },
|
|
163
|
-
histogram: { inset: 1, fillOpacity: 1 },
|
|
164
|
-
box: { fillOpacity: 0.9, paddingInner: 0.4, paddingOuter: 0.2 },
|
|
165
|
-
scatter: { dotRadius: 5 },
|
|
166
170
|
timeline: {
|
|
167
171
|
axisColor: 'currentColor',
|
|
168
|
-
activeColor: '#
|
|
172
|
+
activeColor: '#4e79a7',
|
|
169
173
|
thickness: 60,
|
|
170
174
|
gap: '12px',
|
|
171
175
|
rule: {
|
|
@@ -190,22 +194,22 @@ export const DEFAULT_CONFIG = {
|
|
|
190
194
|
valueWidth: '3rem',
|
|
191
195
|
button: {
|
|
192
196
|
size: '2rem',
|
|
193
|
-
background: '#
|
|
197
|
+
background: '#4e79a7',
|
|
194
198
|
color: '#ffffff',
|
|
195
|
-
hoverBackground: '#
|
|
199
|
+
hoverBackground: '#24384d',
|
|
196
200
|
radius: '999px'
|
|
197
201
|
},
|
|
198
202
|
track: {
|
|
199
203
|
height: '3px',
|
|
200
204
|
color: 'color-mix(in srgb, currentColor 25%, transparent)',
|
|
201
|
-
fillColor: '#
|
|
205
|
+
fillColor: '#4e79a7',
|
|
202
206
|
radius: '999px'
|
|
203
207
|
},
|
|
204
|
-
thumb: { size: '14px', color: '#
|
|
208
|
+
thumb: { size: '14px', color: '#4e79a7' },
|
|
205
209
|
toggle: {
|
|
206
210
|
background: 'transparent',
|
|
207
211
|
color: 'currentColor',
|
|
208
|
-
activeBackground: '#
|
|
212
|
+
activeBackground: '#4e79a7',
|
|
209
213
|
activeColor: '#ffffff',
|
|
210
214
|
radius: '0.375rem',
|
|
211
215
|
fontSize: '0.75rem',
|
|
@@ -213,11 +217,15 @@ export const DEFAULT_CONFIG = {
|
|
|
213
217
|
}
|
|
214
218
|
}
|
|
215
219
|
},
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
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
|
|
221
229
|
},
|
|
222
230
|
// Beside a vertical delta (taken on x), above a horizontal one (on y).
|
|
223
231
|
delta: {
|
|
@@ -226,22 +234,79 @@ export const DEFAULT_CONFIG = {
|
|
|
226
234
|
y: { dx: 0, dy: -10, lineAnchor: 'middle', textAnchor: 'middle' }
|
|
227
235
|
}
|
|
228
236
|
},
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
237
|
+
text: {
|
|
238
|
+
declutter: {
|
|
239
|
+
elbowGap: 10,
|
|
240
|
+
laneStep: 7,
|
|
241
|
+
labelGap: 6,
|
|
242
|
+
connector: { stroke: '#94a3b8', strokeWidth: 0.5 }
|
|
243
|
+
}
|
|
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: {}
|
|
243
296
|
}
|
|
244
|
-
}
|
|
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 }
|
|
245
310
|
};
|
|
246
311
|
// ── Reactive store ──────────────────────────────────────────────────────────
|
|
247
312
|
let current = $state(structuredClone(DEFAULT_CONFIG));
|
|
@@ -249,9 +314,9 @@ let current = $state(structuredClone(DEFAULT_CONFIG));
|
|
|
249
314
|
export function getConfiguration() {
|
|
250
315
|
return current;
|
|
251
316
|
}
|
|
252
|
-
/** 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. */
|
|
253
318
|
export function setConfiguration(patch) {
|
|
254
|
-
current = merge(current, patch);
|
|
319
|
+
current = merge(current, Palette.resolveIn(patch));
|
|
255
320
|
return current;
|
|
256
321
|
}
|
|
257
322
|
/** Restore the shipped defaults. */
|
|
@@ -273,6 +338,9 @@ export function configToCssVars(c) {
|
|
|
273
338
|
'--dct-font': c.font,
|
|
274
339
|
'--dct-fg': c.color,
|
|
275
340
|
'--dct-bg': c.background,
|
|
341
|
+
...t('title', c.title),
|
|
342
|
+
...t('subtitle', c.subtitle),
|
|
343
|
+
...t('caption', c.caption),
|
|
276
344
|
'--dct-header-pad': c.spacing.headerPadding,
|
|
277
345
|
'--dct-legend-pad': c.spacing.legendPadding,
|
|
278
346
|
'--dct-caption-pad': c.spacing.captionPadding,
|
|
@@ -282,9 +350,10 @@ export function configToCssVars(c) {
|
|
|
282
350
|
'--dct-divider-style': c.divider.style,
|
|
283
351
|
'--dct-divider-margin': c.divider.margin,
|
|
284
352
|
'--dct-row-gap': c.chrome.rowGap,
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
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,
|
|
288
357
|
'--dct-legend-font': c.legend.font,
|
|
289
358
|
'--dct-legend-size': c.legend.size,
|
|
290
359
|
'--dct-legend-weight': String(c.legend.weight),
|
|
@@ -312,13 +381,22 @@ export function configToCssVars(c) {
|
|
|
312
381
|
'--dct-continuous-label-size': c.legend.continuous.label.size,
|
|
313
382
|
'--dct-continuous-label-weight': String(c.legend.continuous.label.weight),
|
|
314
383
|
'--dct-continuous-label-overlap-rotate': c.legend.continuous.label.overlap.rotate,
|
|
315
|
-
'--dct-axis-color': c.axis.color,
|
|
316
384
|
'--dct-tooltip-bg': c.tooltip.background,
|
|
317
385
|
'--dct-tooltip-color': c.tooltip.color,
|
|
318
386
|
'--dct-tooltip-size': c.tooltip.fontSize,
|
|
319
387
|
'--dct-tooltip-pad': c.tooltip.padding,
|
|
320
388
|
'--dct-tooltip-radius': c.tooltip.radius,
|
|
321
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),
|
|
322
400
|
'--dct-timeline-axis': c.timeline.axisColor,
|
|
323
401
|
'--dct-timeline-active': c.timeline.activeColor,
|
|
324
402
|
'--dct-timeline-gap': c.timeline.gap,
|
|
@@ -347,20 +425,7 @@ export function configToCssVars(c) {
|
|
|
347
425
|
'--dct-player-toggle-active-color': c.timeline.player.toggle.activeColor,
|
|
348
426
|
'--dct-player-toggle-radius': c.timeline.player.toggle.radius,
|
|
349
427
|
'--dct-player-toggle-size': c.timeline.player.toggle.fontSize,
|
|
350
|
-
'--dct-player-toggle-pad': c.timeline.player.toggle.padding
|
|
351
|
-
'--dct-heat-min': c.continuous.min,
|
|
352
|
-
'--dct-heat-max': c.continuous.max,
|
|
353
|
-
'--dct-heat-text': c.continuous.labelColor,
|
|
354
|
-
'--dct-facet-indicator-bg': c.facet.indicator.background,
|
|
355
|
-
'--dct-facet-indicator-color': c.facet.indicator.color,
|
|
356
|
-
'--dct-facet-indicator-size': c.facet.indicator.fontSize,
|
|
357
|
-
'--dct-facet-indicator-pad': c.facet.indicator.padding,
|
|
358
|
-
'--dct-facet-indicator-radius': c.facet.indicator.radius,
|
|
359
|
-
'--dct-facet-nav-bg': c.facet.navButton.background,
|
|
360
|
-
'--dct-facet-nav-color': c.facet.navButton.color,
|
|
361
|
-
'--dct-facet-nav-btn-size': c.facet.navButton.size,
|
|
362
|
-
'--dct-facet-nav-font-size': c.facet.navButton.fontSize,
|
|
363
|
-
'--dct-facet-nav-disabled-opacity': String(c.facet.navButton.disabledOpacity)
|
|
428
|
+
'--dct-player-toggle-pad': c.timeline.player.toggle.padding
|
|
364
429
|
};
|
|
365
430
|
}
|
|
366
431
|
/** Serialize a CSS-vars record into a `style` attribute string. */
|