@fundar/data-chart-telling 1.1.0 → 1.3.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 +45 -0
- package/README.md +8 -7
- package/dist/configuration/config.svelte.d.ts +1 -1
- package/dist/configuration/config.svelte.js +177 -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/facet/scope.d.ts +40 -0
- package/dist/layout/facet/scope.js +104 -0
- 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 +39 -15
- 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 +23 -8
- 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 +35 -8
- package/dist/layout/plot/Plot.svelte +22 -2
- 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 +93 -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.d.ts +6 -1
- package/dist/markers/delta/Delta.js +16 -1
- package/dist/markers/delta/DeltaMarker.svelte +9 -87
- package/dist/markers/delta/DeltaPoint.svelte +97 -0
- package/dist/markers/delta/DeltaPoint.svelte.d.ts +29 -0
- 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 +14 -5
- 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/facet/FacetPhase.d.ts +2 -1
- package/dist/phases/facet/FacetPhase.js +19 -4
- 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 +16 -3
- 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.d.ts +4 -1
- package/dist/plots/utils/segments.js +20 -7
- package/dist/types/configuration/styling.d.ts +284 -143
- package/dist/types/layout/coordinates.d.ts +5 -4
- package/dist/types/layout/facet.d.ts +18 -0
- package/dist/types/layout/legend.d.ts +23 -5
- package/dist/types/layout/plot.d.ts +46 -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/delta.d.ts +15 -2
- 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 +18 -2
- 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/facet/phase.d.ts +4 -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 +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 +7 -4
- 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/types/plots/segments/config.d.ts +4 -2
- 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 +50 -3
- package/docs/getting-started.md +2 -2
- package/docs/legend.md +13 -11
- package/docs/markers.md +57 -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 +25 -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/FacetsScoped.svelte +26 -0
- 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 +27 -14
- package/llms.txt +33 -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,51 @@
|
|
|
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.3.0] - 2026-10-30
|
|
6
|
+
|
|
7
|
+
### Added
|
|
8
|
+
|
|
9
|
+
- `legend.icon` in the configuration sets the icon a discrete legend item draws for its series: `rounded` softens its corners, and `marks` picks the shape by how the series draws (`line`, `dot`, `area`, `bar`, `cell`, `rect` or `geo`), unless the series sets its own `symbol`. A legend item can name its `mark` to choose from it.
|
|
10
|
+
- A `rule` marker takes a list as its `value`, and a `delta` marker a list as its `at`: one line, or one delta, at each position, all with the same style, instead of one marker for each. A delta's `line`, `text` and `dot` can be functions of the position, to style each one on its own.
|
|
11
|
+
- `facet` on a marker or a segment limits it to some facet panels, on every plot kind: a `by` value, a list of them, or `{ row, col }` in a `rows`/`cols` grid. Without it a marker or a segment is drawn in every panel, as before, and a plot with no facet leaves out whatever names one.
|
|
12
|
+
|
|
13
|
+
### Fixed
|
|
14
|
+
|
|
15
|
+
- Automatic margins reserve what a plot needs without taking its drawing area: the label of the top y tick is no longer cut off, since an `'auto'` top margin now leaves room for half its height, and margins that grow to fit labels stop growing once they would leave the plot less than a quarter of its box, which kept svelteplot from drawing marks with negative sizes on small plots.
|
|
16
|
+
|
|
17
|
+
## [1.2.0] - 2026-10-24
|
|
18
|
+
|
|
19
|
+
### Added
|
|
20
|
+
|
|
21
|
+
- `LollipopPlot`, a dot on a stem for the value of each category.
|
|
22
|
+
- `DumbbellPlot`, two series joined by a connector for each category.
|
|
23
|
+
- `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.
|
|
24
|
+
- `ForestPlot`, a dot per row on a stem spanning its confidence interval.
|
|
25
|
+
- `BulletPlot`, a bar against a target tick and shaded qualitative ranges.
|
|
26
|
+
- `SlopePlot`, the change of each series between two moments, labelled at both ends.
|
|
27
|
+
- `SparklinePlot`, a small axisless line with a dot and a label on its last point.
|
|
28
|
+
- `DensityPlot`, a kernel density curve of one numeric field, and `ViolinPlot`, the mirrored density of each category with a box inside.
|
|
29
|
+
- Step lines through `styles.curve: 'step'`, `'step-after'` or `'step-before'` on `LinePlot`.
|
|
30
|
+
- A `deviation` statistic that draws an estimator of the values and a band around it, with optional labels.
|
|
31
|
+
- `styles.values.select` chooses which points get a value label (`'first'`, `'last'`, `'min'`, `'max'` or a list), for line, area and Cleveland-family plots.
|
|
32
|
+
- The size channel (`r`) works on the dots of the Cleveland family, and its automatic legend is configured under the `r` key.
|
|
33
|
+
- 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.
|
|
34
|
+
- `setConfiguration({ palette })` takes the name of a d3-scale-chromatic scheme (`'viridis'`, `'dark2'`...) or `{ scheme, count, schemeRange }` instead of just a list of colors.
|
|
35
|
+
- `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.
|
|
36
|
+
- 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.
|
|
37
|
+
- A timeline can free one axis at a time (`scales: 'free-x'` or `'free-y'`) while the other keeps its shared domain.
|
|
38
|
+
- `link` markers on a map can lift their arcs off the surface (`altitude`) and cut them where a globe hides them (`occlusion`).
|
|
39
|
+
|
|
40
|
+
### Changed
|
|
41
|
+
|
|
42
|
+
- The default palette is Tableau 10, and the default continuous ramp, the timeline and player accents and the connector colors follow it.
|
|
43
|
+
- Plots draw faster: a plot in a facet, a grid or a composer no longer remounts its svelteplot chart each time the margins its labels need settle after mount. `pnpm test:perf` checks that every plot kind draws all the panels of a facet grid within a time budget; it runs before a push but not in CI, where the speed of the machine makes a time limit flaky.
|
|
44
|
+
|
|
45
|
+
### Fixed
|
|
46
|
+
|
|
47
|
+
- 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.
|
|
48
|
+
- The Minard map of Napoleon's march is rebuilt with `GeoPlot` and `LinePlot` markers instead of a hand-assembled svelteplot chart.
|
|
49
|
+
|
|
5
50
|
## [1.1.0] - 2026-10-20
|
|
6
51
|
|
|
7
52
|
### Added
|
package/README.md
CHANGED
|
@@ -10,6 +10,7 @@
|
|
|
10
10
|
[](https://github.com/datos-Fundar/data-chart-telling/releases/latest)
|
|
11
11
|

|
|
12
12
|
[](https://github.com/datos-Fundar/data-chart-telling/actions/workflows/ci.yml)
|
|
13
|
+
[](https://datos-fundar.github.io/data-chart-telling/)
|
|
13
14
|
[](https://github.com/datos-Fundar/data-chart-telling/actions/workflows/codeql.yml)
|
|
14
15
|
|
|
15
16
|
## Introduction
|
|
@@ -23,7 +24,7 @@ It aims for a sweet spot between the flexibility of `d3`, the declarative spirit
|
|
|
23
24
|
```svelte
|
|
24
25
|
<script lang="ts">
|
|
25
26
|
import { LinePlot } from '@fundar/data-chart-telling';
|
|
26
|
-
import { REGION_VALUES } from './
|
|
27
|
+
import { REGION_VALUES } from './datasets';
|
|
27
28
|
</script>
|
|
28
29
|
|
|
29
30
|
<!-- One line per region, with a title, the automatic legend, end-of-line values and a tooltip. -->
|
|
@@ -45,9 +46,9 @@ It aims for a sweet spot between the flexibility of `d3`, the declarative spirit
|
|
|
45
46
|
|
|
46
47
|

|
|
47
48
|
|
|
48
|
-
Every Svelte snippet in this README is a runnable file in [examples/](examples/), and the data comes from [examples/
|
|
49
|
+
Every Svelte snippet in this README is a runnable file in [examples/](examples/), and the data comes from [examples/datasets/](examples/datasets/).
|
|
49
50
|
|
|
50
|
-
|
|
51
|
+
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
52
|
|
|
52
53
|
## Install
|
|
53
54
|
|
|
@@ -68,7 +69,7 @@ The package ships Svelte components, so the app needs the Svelte compiler (`@sve
|
|
|
68
69
|
```svelte
|
|
69
70
|
<script lang="ts">
|
|
70
71
|
import { BarPlot } from '@fundar/data-chart-telling';
|
|
71
|
-
import { REGION_VALUES } from './
|
|
72
|
+
import { REGION_VALUES } from './datasets';
|
|
72
73
|
</script>
|
|
73
74
|
|
|
74
75
|
<!--
|
|
@@ -100,7 +101,7 @@ The package ships Svelte components, so the app needs the Svelte compiler (`@sve
|
|
|
100
101
|
```svelte
|
|
101
102
|
<script lang="ts">
|
|
102
103
|
import { LinePlot } from '@fundar/data-chart-telling';
|
|
103
|
-
import { REGION_VALUES } from './
|
|
104
|
+
import { REGION_VALUES } from './datasets';
|
|
104
105
|
|
|
105
106
|
// A rule has no controls of its own: the page moves it through `progress` (0 to 1).
|
|
106
107
|
// One step per year; a line plot shows every row up to the current step.
|
|
@@ -133,7 +134,7 @@ Start with the concepts; the rest is organised by what you want a plot to do.
|
|
|
133
134
|
| -------------------------------------------------------------- | -------------------------------------------------------------------------------------------- |
|
|
134
135
|
| [Getting started](docs/getting-started.md) | Installing, a first plot, sizing a plot to its container, loading data |
|
|
135
136
|
| [Concepts](docs/concepts.md) | Plots and figures, rows and series, channels, the props every plot shares |
|
|
136
|
-
| [Plots](docs/plots.md) |
|
|
137
|
+
| [Plots](docs/plots.md) | Every plot kind: what it draws and what it needs |
|
|
137
138
|
| [Scales](docs/scales.md) | Axes (`x`, `y`) and channel scales (`color`, `grouping`, `opacity`, `symbol`, `r`, `length`) |
|
|
138
139
|
| [Styles and segments](docs/styles-and-segments.md) | Value labels, frames, gap filling, and styling ranges of the data |
|
|
139
140
|
| [Markers](docs/markers.md) | Extra marks on a plot: annotations, regions, hover highlights, custom components |
|
|
@@ -150,7 +151,7 @@ Start with the concepts; the rest is organised by what you want a plot to do.
|
|
|
150
151
|
| [Architecture](docs/architecture.md) | How a plot is assembled, for contributors |
|
|
151
152
|
| [Development](docs/development.md) | Building, testing, Storybook and publishing |
|
|
152
153
|
|
|
153
|
-
Working examples live in [examples/](examples/); the Storybook (`pnpm storybook`) shows every option live.
|
|
154
|
+
Working examples live in [examples/](examples/); the [online Storybook](https://datos-fundar.github.io/data-chart-telling/) (or `pnpm storybook` locally) shows every option live.
|
|
154
155
|
|
|
155
156
|
## For LLMs and coding agents
|
|
156
157
|
|
|
@@ -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',
|
|
@@ -64,6 +92,18 @@ export const DEFAULT_CONFIG = {
|
|
|
64
92
|
titleWeight: 500,
|
|
65
93
|
gap: '0.5rem 2rem',
|
|
66
94
|
swatchSize: '0.9rem',
|
|
95
|
+
icon: {
|
|
96
|
+
rounded: false,
|
|
97
|
+
marks: {
|
|
98
|
+
line: 'line',
|
|
99
|
+
dot: 'circle',
|
|
100
|
+
area: 'square',
|
|
101
|
+
bar: 'square',
|
|
102
|
+
cell: 'square',
|
|
103
|
+
rect: 'square',
|
|
104
|
+
geo: 'square'
|
|
105
|
+
}
|
|
106
|
+
},
|
|
67
107
|
disabledOpacity: 0.12,
|
|
68
108
|
pretty: true,
|
|
69
109
|
seriesTitle: { enabled: true, text: 'Series' },
|
|
@@ -79,6 +119,10 @@ export const DEFAULT_CONFIG = {
|
|
|
79
119
|
height: 20,
|
|
80
120
|
barHeight: 12,
|
|
81
121
|
barRadius: 2,
|
|
122
|
+
opacity: {
|
|
123
|
+
color: '#000',
|
|
124
|
+
checker: { size: 4, light: '#fff', dark: '#d4d4d8' }
|
|
125
|
+
},
|
|
82
126
|
// A slim vertical bar handle, taller than the 12px gradient track.
|
|
83
127
|
handle: {
|
|
84
128
|
width: '6px',
|
|
@@ -105,23 +149,6 @@ export const DEFAULT_CONFIG = {
|
|
|
105
149
|
}
|
|
106
150
|
}
|
|
107
151
|
},
|
|
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
152
|
tooltip: {
|
|
126
153
|
background: '#111827',
|
|
127
154
|
color: '#ffffff',
|
|
@@ -130,42 +157,31 @@ export const DEFAULT_CONFIG = {
|
|
|
130
157
|
radius: '0.375rem',
|
|
131
158
|
border: 'none'
|
|
132
159
|
},
|
|
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
|
-
}
|
|
160
|
+
hover: {
|
|
161
|
+
rule: { stroke: '#e6580d', strokeOpacity: 0.35, strokeWidth: 1.5, strokeDasharray: '4 4' },
|
|
162
|
+
dot: { dotRadius: 5, dotFill: 'currentColor' },
|
|
163
|
+
font: { fill: 'currentColor', fontSize: 12, dy: -18 },
|
|
164
|
+
area: { fill: '#94a3b8', fillOpacity: 0.4 }
|
|
146
165
|
},
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
166
|
+
facet: {
|
|
167
|
+
indicator: {
|
|
168
|
+
background: '#111827',
|
|
169
|
+
color: '#ffffff',
|
|
170
|
+
fontSize: '0.8125rem',
|
|
171
|
+
padding: '0.125rem 0.5rem',
|
|
172
|
+
radius: '999px'
|
|
173
|
+
},
|
|
174
|
+
navButton: {
|
|
175
|
+
background: '#111827',
|
|
176
|
+
color: '#ffffff',
|
|
177
|
+
size: '2rem',
|
|
178
|
+
fontSize: '1.1rem',
|
|
179
|
+
disabledOpacity: 0.3
|
|
153
180
|
}
|
|
154
181
|
},
|
|
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
182
|
timeline: {
|
|
167
183
|
axisColor: 'currentColor',
|
|
168
|
-
activeColor: '#
|
|
184
|
+
activeColor: '#4e79a7',
|
|
169
185
|
thickness: 60,
|
|
170
186
|
gap: '12px',
|
|
171
187
|
rule: {
|
|
@@ -190,22 +206,22 @@ export const DEFAULT_CONFIG = {
|
|
|
190
206
|
valueWidth: '3rem',
|
|
191
207
|
button: {
|
|
192
208
|
size: '2rem',
|
|
193
|
-
background: '#
|
|
209
|
+
background: '#4e79a7',
|
|
194
210
|
color: '#ffffff',
|
|
195
|
-
hoverBackground: '#
|
|
211
|
+
hoverBackground: '#24384d',
|
|
196
212
|
radius: '999px'
|
|
197
213
|
},
|
|
198
214
|
track: {
|
|
199
215
|
height: '3px',
|
|
200
216
|
color: 'color-mix(in srgb, currentColor 25%, transparent)',
|
|
201
|
-
fillColor: '#
|
|
217
|
+
fillColor: '#4e79a7',
|
|
202
218
|
radius: '999px'
|
|
203
219
|
},
|
|
204
|
-
thumb: { size: '14px', color: '#
|
|
220
|
+
thumb: { size: '14px', color: '#4e79a7' },
|
|
205
221
|
toggle: {
|
|
206
222
|
background: 'transparent',
|
|
207
223
|
color: 'currentColor',
|
|
208
|
-
activeBackground: '#
|
|
224
|
+
activeBackground: '#4e79a7',
|
|
209
225
|
activeColor: '#ffffff',
|
|
210
226
|
radius: '0.375rem',
|
|
211
227
|
fontSize: '0.75rem',
|
|
@@ -213,11 +229,15 @@ export const DEFAULT_CONFIG = {
|
|
|
213
229
|
}
|
|
214
230
|
}
|
|
215
231
|
},
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
232
|
+
connector: {
|
|
233
|
+
sign: { positive: '#59a14f', negative: '#e15759', zero: '#9ca3af' },
|
|
234
|
+
lengthScheme: ['#d1d5db', '#374151'],
|
|
235
|
+
differenceScheme: ['#e15759', '#e5e7eb', '#59a14f'],
|
|
236
|
+
arrow: { width: 2, headLength: 8, headAngle: 60 },
|
|
237
|
+
capLength: 8,
|
|
238
|
+
outsideOpacity: 0.4,
|
|
239
|
+
labelFontSize: 11,
|
|
240
|
+
labelGap: 4
|
|
221
241
|
},
|
|
222
242
|
// Beside a vertical delta (taken on x), above a horizontal one (on y).
|
|
223
243
|
delta: {
|
|
@@ -226,22 +246,79 @@ export const DEFAULT_CONFIG = {
|
|
|
226
246
|
y: { dx: 0, dy: -10, lineAnchor: 'middle', textAnchor: 'middle' }
|
|
227
247
|
}
|
|
228
248
|
},
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
radius: '999px'
|
|
236
|
-
},
|
|
237
|
-
navButton: {
|
|
238
|
-
background: '#111827',
|
|
239
|
-
color: '#ffffff',
|
|
240
|
-
size: '2rem',
|
|
241
|
-
fontSize: '1.1rem',
|
|
242
|
-
disabledOpacity: 0.3
|
|
249
|
+
text: {
|
|
250
|
+
declutter: {
|
|
251
|
+
elbowGap: 10,
|
|
252
|
+
laneStep: 7,
|
|
253
|
+
labelGap: 6,
|
|
254
|
+
connector: { stroke: '#94a3b8', strokeWidth: 0.5 }
|
|
243
255
|
}
|
|
244
|
-
}
|
|
256
|
+
},
|
|
257
|
+
// ── Plot kinds ──────────────────────────────────────────────────────────────
|
|
258
|
+
area: { fillOpacity: 0.6 },
|
|
259
|
+
bar: {
|
|
260
|
+
gap: { fillOpacity: 0.5 },
|
|
261
|
+
seriesPadding: 0.2,
|
|
262
|
+
paddingInner: 0.15,
|
|
263
|
+
paddingOuter: 0.15
|
|
264
|
+
},
|
|
265
|
+
box: { fillOpacity: 0.9, paddingInner: 0.4, paddingOuter: 0.2 },
|
|
266
|
+
bullet: {
|
|
267
|
+
barThickness: 10,
|
|
268
|
+
rangeWidth: 28,
|
|
269
|
+
rangeColors: ['#9ca3af', '#d1d5db', '#eceff3'],
|
|
270
|
+
targetLength: 22,
|
|
271
|
+
targetWidth: 3,
|
|
272
|
+
paddingInner: 0.4,
|
|
273
|
+
paddingOuter: 0.3
|
|
274
|
+
},
|
|
275
|
+
cleveland: {
|
|
276
|
+
dotRadius: 5,
|
|
277
|
+
stemWidth: 5,
|
|
278
|
+
connectorColor: '#9ca3af',
|
|
279
|
+
labelGap: 10,
|
|
280
|
+
paddingInner: 0.5,
|
|
281
|
+
paddingOuter: 0.5
|
|
282
|
+
},
|
|
283
|
+
density: { fillOpacity: 0.6, strokeWidth: 2 },
|
|
284
|
+
dumbbell: {
|
|
285
|
+
dotRadius: 6,
|
|
286
|
+
stemWidth: 'dots',
|
|
287
|
+
connectorColor: '#9ca3af',
|
|
288
|
+
labelGap: 10,
|
|
289
|
+
paddingInner: 0.5,
|
|
290
|
+
paddingOuter: 0.5
|
|
291
|
+
},
|
|
292
|
+
forest: {
|
|
293
|
+
dotRadius: 5,
|
|
294
|
+
stemWidth: 2,
|
|
295
|
+
caps: true,
|
|
296
|
+
labelGap: 10,
|
|
297
|
+
paddingInner: 0.5,
|
|
298
|
+
paddingOuter: 0.5
|
|
299
|
+
},
|
|
300
|
+
histogram: { inset: 1, fillOpacity: 1 },
|
|
301
|
+
line: {
|
|
302
|
+
curve: 'auto',
|
|
303
|
+
strokeWidth: 3,
|
|
304
|
+
dotRadius: 4,
|
|
305
|
+
gap: {
|
|
306
|
+
stroke: { strokeOpacity: 0.6, strokeDasharray: '4 4' },
|
|
307
|
+
dots: {}
|
|
308
|
+
}
|
|
309
|
+
},
|
|
310
|
+
lollipop: {
|
|
311
|
+
dotRadius: 6,
|
|
312
|
+
stemWidth: 2,
|
|
313
|
+
labelGap: 10,
|
|
314
|
+
paddingInner: 0.5,
|
|
315
|
+
paddingOuter: 0.5
|
|
316
|
+
},
|
|
317
|
+
pyramid: { gap: { fillOpacity: 0.5 } },
|
|
318
|
+
scatter: { dotRadius: 5 },
|
|
319
|
+
slope: { strokeWidth: 2, dotRadius: 5, padding: 0 },
|
|
320
|
+
sparkline: { strokeWidth: 1.5, dotRadius: 3 },
|
|
321
|
+
violin: { fillOpacity: 0.6, paddingInner: 0.2, paddingOuter: 0.2, boxWidth: 8 }
|
|
245
322
|
};
|
|
246
323
|
// ── Reactive store ──────────────────────────────────────────────────────────
|
|
247
324
|
let current = $state(structuredClone(DEFAULT_CONFIG));
|
|
@@ -249,9 +326,9 @@ let current = $state(structuredClone(DEFAULT_CONFIG));
|
|
|
249
326
|
export function getConfiguration() {
|
|
250
327
|
return current;
|
|
251
328
|
}
|
|
252
|
-
/** Deep-merge a partial override into the global configuration. Reactive. */
|
|
329
|
+
/** Deep-merge a partial override into the global configuration - a `palette` may be a scheme name. Reactive. */
|
|
253
330
|
export function setConfiguration(patch) {
|
|
254
|
-
current = merge(current, patch);
|
|
331
|
+
current = merge(current, Palette.resolveIn(patch));
|
|
255
332
|
return current;
|
|
256
333
|
}
|
|
257
334
|
/** Restore the shipped defaults. */
|
|
@@ -273,6 +350,9 @@ export function configToCssVars(c) {
|
|
|
273
350
|
'--dct-font': c.font,
|
|
274
351
|
'--dct-fg': c.color,
|
|
275
352
|
'--dct-bg': c.background,
|
|
353
|
+
...t('title', c.title),
|
|
354
|
+
...t('subtitle', c.subtitle),
|
|
355
|
+
...t('caption', c.caption),
|
|
276
356
|
'--dct-header-pad': c.spacing.headerPadding,
|
|
277
357
|
'--dct-legend-pad': c.spacing.legendPadding,
|
|
278
358
|
'--dct-caption-pad': c.spacing.captionPadding,
|
|
@@ -282,9 +362,10 @@ export function configToCssVars(c) {
|
|
|
282
362
|
'--dct-divider-style': c.divider.style,
|
|
283
363
|
'--dct-divider-margin': c.divider.margin,
|
|
284
364
|
'--dct-row-gap': c.chrome.rowGap,
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
365
|
+
'--dct-heat-min': c.continuous.min,
|
|
366
|
+
'--dct-heat-max': c.continuous.max,
|
|
367
|
+
'--dct-heat-text': c.continuous.labelColor,
|
|
368
|
+
'--dct-axis-color': c.axis.color,
|
|
288
369
|
'--dct-legend-font': c.legend.font,
|
|
289
370
|
'--dct-legend-size': c.legend.size,
|
|
290
371
|
'--dct-legend-weight': String(c.legend.weight),
|
|
@@ -312,13 +393,22 @@ export function configToCssVars(c) {
|
|
|
312
393
|
'--dct-continuous-label-size': c.legend.continuous.label.size,
|
|
313
394
|
'--dct-continuous-label-weight': String(c.legend.continuous.label.weight),
|
|
314
395
|
'--dct-continuous-label-overlap-rotate': c.legend.continuous.label.overlap.rotate,
|
|
315
|
-
'--dct-axis-color': c.axis.color,
|
|
316
396
|
'--dct-tooltip-bg': c.tooltip.background,
|
|
317
397
|
'--dct-tooltip-color': c.tooltip.color,
|
|
318
398
|
'--dct-tooltip-size': c.tooltip.fontSize,
|
|
319
399
|
'--dct-tooltip-pad': c.tooltip.padding,
|
|
320
400
|
'--dct-tooltip-radius': c.tooltip.radius,
|
|
321
401
|
'--dct-tooltip-border': c.tooltip.border,
|
|
402
|
+
'--dct-facet-indicator-bg': c.facet.indicator.background,
|
|
403
|
+
'--dct-facet-indicator-color': c.facet.indicator.color,
|
|
404
|
+
'--dct-facet-indicator-size': c.facet.indicator.fontSize,
|
|
405
|
+
'--dct-facet-indicator-pad': c.facet.indicator.padding,
|
|
406
|
+
'--dct-facet-indicator-radius': c.facet.indicator.radius,
|
|
407
|
+
'--dct-facet-nav-bg': c.facet.navButton.background,
|
|
408
|
+
'--dct-facet-nav-color': c.facet.navButton.color,
|
|
409
|
+
'--dct-facet-nav-btn-size': c.facet.navButton.size,
|
|
410
|
+
'--dct-facet-nav-font-size': c.facet.navButton.fontSize,
|
|
411
|
+
'--dct-facet-nav-disabled-opacity': String(c.facet.navButton.disabledOpacity),
|
|
322
412
|
'--dct-timeline-axis': c.timeline.axisColor,
|
|
323
413
|
'--dct-timeline-active': c.timeline.activeColor,
|
|
324
414
|
'--dct-timeline-gap': c.timeline.gap,
|
|
@@ -347,20 +437,7 @@ export function configToCssVars(c) {
|
|
|
347
437
|
'--dct-player-toggle-active-color': c.timeline.player.toggle.activeColor,
|
|
348
438
|
'--dct-player-toggle-radius': c.timeline.player.toggle.radius,
|
|
349
439
|
'--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)
|
|
440
|
+
'--dct-player-toggle-pad': c.timeline.player.toggle.padding
|
|
364
441
|
};
|
|
365
442
|
}
|
|
366
443
|
/** Serialize a CSS-vars record into a `style` attribute string. */
|