@fundar/data-chart-telling 1.0.0 → 1.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +53 -0
- package/README.md +58 -19
- package/dist/configuration/config.svelte.d.ts +1 -1
- package/dist/configuration/config.svelte.js +172 -95
- package/dist/configuration/themes/index.d.ts +5 -1304
- package/dist/index.d.ts +24 -14
- package/dist/index.js +20 -10
- package/dist/layout/base/BasePlotLayout.svelte +129 -51
- package/dist/layout/base/BasePlotLayout.svelte.d.ts +1 -38
- package/dist/layout/coordinates/CoordinatesLayout.svelte +42 -40
- package/dist/layout/coordinates/CoordinatesLayout.svelte.d.ts +0 -2
- package/dist/layout/coordinates/ProjectionZoom.svelte +48 -0
- package/dist/layout/coordinates/ProjectionZoom.svelte.d.ts +10 -0
- package/dist/layout/coordinates/ZoomedProjection.d.ts +11 -0
- package/dist/layout/coordinates/ZoomedProjection.js +24 -0
- package/dist/layout/coordinates/camera.svelte.js +11 -8
- package/dist/layout/coordinates/projections/argentina.js +1 -1
- package/dist/layout/coordinates/projections/fit.d.ts +1 -1
- package/dist/layout/coordinates/projections/fit.js +1 -1
- package/dist/layout/coordinates/zoom.svelte.d.ts +4 -5
- package/dist/layout/coordinates/zoom.svelte.js +4 -5
- package/dist/layout/facet/FacetLayout.svelte +1 -1
- package/dist/layout/facet/config.js +1 -1
- package/dist/layout/figure/Figure.svelte +2 -0
- package/dist/layout/geometry/GeometryLayout.svelte +14 -9
- package/dist/layout/geometry/GeometryLayout.svelte.d.ts +0 -3
- package/dist/layout/geometry/MarkerOffset.svelte +28 -0
- package/dist/layout/geometry/MarkerOffset.svelte.d.ts +13 -0
- package/dist/layout/grid/GridCell.svelte +6 -8
- package/dist/layout/hover/HoverSettings.d.ts +20 -6
- package/dist/layout/hover/HoverSettings.js +29 -4
- package/dist/layout/legend/ContinuousSection.svelte +44 -9
- package/dist/layout/legend/DiscreteBadgeItem.svelte +2 -2
- package/dist/layout/legend/DiscreteSection.svelte +2 -2
- package/dist/layout/legend/DiscreteSymbolIcon.svelte +1 -1
- package/dist/layout/legend/LegendChannels.js +36 -12
- package/dist/layout/legend/LegendLayout.svelte +9 -1
- package/dist/layout/legend/LegendState.svelte.d.ts +9 -0
- package/dist/layout/legend/LegendState.svelte.js +24 -3
- package/dist/layout/legend/SizeSection.svelte +1 -1
- package/dist/layout/margins/PlotMargins.svelte.d.ts +2 -5
- package/dist/layout/margins/PlotMargins.svelte.js +4 -8
- package/dist/layout/plot/Plot.svelte +6 -3
- package/dist/layout/plot/PublicPlotContext.d.ts +5 -4
- package/dist/layout/plot/PublicPlotContext.js +7 -3
- package/dist/layout/plot/Slice.d.ts +5 -1
- package/dist/layout/plot/Slice.js +18 -6
- package/dist/layout/scales/EdgeTicks.d.ts +39 -0
- package/dist/layout/scales/EdgeTicks.js +82 -0
- package/dist/layout/scales/NiceTicks.d.ts +43 -0
- package/dist/layout/scales/NiceTicks.js +76 -0
- package/dist/layout/scales/ScalesLayout.svelte +133 -34
- package/dist/layout/scales/ScalesLayout.svelte.d.ts +10 -0
- package/dist/layout/scales/SveltePlotScale.d.ts +15 -0
- package/dist/layout/scales/SveltePlotScale.js +86 -0
- package/dist/layout/scales/TickLabels.d.ts +32 -0
- package/dist/layout/scales/TickLabels.js +55 -0
- package/dist/layout/styles/StylesLayout.svelte +2 -2
- package/dist/layout/styles/ValueLabels.d.ts +33 -5
- package/dist/layout/styles/ValueLabels.js +83 -23
- package/dist/layout/timeline/Timeline.svelte +5 -2
- package/dist/layout/timeline/Timeline.svelte.d.ts +2 -0
- package/dist/layout/timeline/TimelineLayout.svelte +39 -13
- package/dist/layout/timeline/TimelineLayout.svelte.d.ts +7 -5
- package/dist/layout/timeline/TimelineRule.svelte +1 -0
- package/dist/layout/timeline/TimelineState.svelte.d.ts +13 -5
- package/dist/layout/timeline/TimelineState.svelte.js +42 -8
- package/dist/layout/timeline/TimelineTime.d.ts +18 -0
- package/dist/layout/timeline/TimelineTime.js +117 -0
- package/dist/layout/tooltip/Tooltip.svelte +10 -7
- package/dist/layout/tooltip/Tooltip.svelte.d.ts +6 -4
- package/dist/layout/tooltip/TooltipState.svelte.d.ts +8 -2
- package/dist/layout/tooltip/TooltipState.svelte.js +23 -4
- package/dist/markers/MarkerKinds.d.ts +5 -0
- package/dist/markers/MarkerKinds.js +1 -0
- package/dist/markers/area/AreaMarker.svelte +15 -63
- package/dist/markers/arrow/ArrowMarker.svelte +51 -9
- package/dist/markers/bar/BarMarker.svelte +8 -4
- package/dist/markers/bollinger/BollingerMarker.svelte +33 -18
- package/dist/markers/box/BoxMarker.svelte +40 -9
- package/dist/markers/delta/Delta.js +1 -1
- package/dist/markers/delta/DeltaMarker.svelte +9 -7
- package/dist/markers/dot/DotMarker.svelte +24 -27
- package/dist/markers/image/ImageMarker.svelte +17 -12
- package/dist/markers/inset/InsetMarker.svelte +2 -2
- package/dist/markers/line/LineMarker.svelte +1 -0
- package/dist/markers/link/LinkMarker.svelte +174 -29
- package/dist/markers/regression/RegressionMarker.svelte +16 -33
- package/dist/markers/rule/RuleMarker.svelte +9 -3
- package/dist/markers/text/Declutter.d.ts +4 -0
- package/dist/markers/text/Declutter.js +26 -11
- package/dist/markers/text/TextMarker.svelte +91 -48
- package/dist/markers/tick/TickMarker.svelte +27 -25
- package/dist/markers/utils/MarkerChannels.d.ts +24 -0
- package/dist/markers/utils/MarkerChannels.js +42 -7
- package/dist/markers/utils/RowOffset.d.ts +23 -0
- package/dist/markers/utils/RowOffset.js +23 -0
- package/dist/markers/utils/RowOffsetMarks.svelte +30 -0
- package/dist/markers/utils/RowOffsetMarks.svelte.d.ts +33 -0
- package/dist/markers/utils/RowStroke.d.ts +31 -0
- package/dist/markers/utils/RowStroke.js +28 -0
- package/dist/markers/violin/ViolinMarker.svelte +75 -0
- package/dist/markers/violin/ViolinMarker.svelte.d.ts +7 -0
- package/dist/markers/violin/ViolinProfiles.d.ts +29 -0
- package/dist/markers/violin/ViolinProfiles.js +55 -0
- package/dist/markers/waffle/WaffleMarker.svelte +17 -37
- package/dist/phases/Pipeline.d.ts +5 -0
- package/dist/phases/Pipeline.js +8 -2
- package/dist/phases/data/DataPhase.d.ts +5 -11
- package/dist/phases/data/DataPhase.js +14 -11
- package/dist/phases/data/PlotAxes.d.ts +10 -0
- package/dist/phases/data/PlotAxes.js +14 -1
- package/dist/phases/facet/FacetPanels.d.ts +55 -0
- package/dist/phases/facet/FacetPanels.js +96 -0
- package/dist/phases/facet/FacetPhase.d.ts +1 -42
- package/dist/phases/facet/FacetPhase.js +1 -87
- package/dist/phases/hover/HoverPhase.d.ts +6 -43
- package/dist/phases/hover/HoverPhase.js +19 -54
- package/dist/phases/mapping/MappingPhase.d.ts +1 -1
- package/dist/phases/mapping/MappingPhase.js +3 -5
- package/dist/phases/markers/MarkersPhase.js +2 -1
- package/dist/phases/scales/CategoryOrder.d.ts +23 -0
- package/dist/phases/scales/CategoryOrder.js +73 -0
- package/dist/phases/scales/ScalesPhase.d.ts +1 -3
- package/dist/phases/scales/ScalesPhase.js +37 -27
- package/dist/phases/sharedScales/SharedScalesPhase.d.ts +6 -2
- package/dist/phases/sharedScales/SharedScalesPhase.js +14 -8
- package/dist/phases/statistics/Statistics.d.ts +10 -6
- package/dist/phases/statistics/Statistics.js +20 -10
- package/dist/phases/statistics/StatisticsPhase.js +10 -6
- package/dist/phases/statistics/methods/BollingerStatistic.d.ts +1 -1
- package/dist/phases/statistics/methods/BollingerStatistic.js +13 -11
- package/dist/phases/statistics/methods/BoxStatistic.d.ts +1 -1
- package/dist/phases/statistics/methods/BoxStatistic.js +14 -12
- package/dist/phases/statistics/methods/Density2dStatistic.d.ts +1 -1
- package/dist/phases/statistics/methods/Density2dStatistic.js +13 -11
- package/dist/phases/statistics/methods/DensityStatistic.d.ts +1 -1
- package/dist/phases/statistics/methods/DensityStatistic.js +11 -9
- package/dist/phases/statistics/methods/DeviationStatistic.d.ts +8 -0
- package/dist/phases/statistics/methods/DeviationStatistic.js +111 -0
- package/dist/phases/statistics/methods/MovingAverageStatistic.d.ts +1 -1
- package/dist/phases/statistics/methods/MovingAverageStatistic.js +11 -9
- package/dist/phases/statistics/methods/RegressionStatistic.d.ts +1 -1
- package/dist/phases/statistics/methods/RegressionStatistic.js +16 -14
- package/dist/phases/tooltip/TooltipPhase.d.ts +4 -2
- package/dist/phases/tooltip/TooltipPhase.js +10 -3
- package/dist/phases/transforms/ProcessedPositions.d.ts +30 -0
- package/dist/phases/transforms/ProcessedPositions.js +74 -0
- package/dist/phases/transforms/TransformsPhase.d.ts +5 -42
- package/dist/phases/transforms/TransformsPhase.js +67 -58
- package/dist/phases/transforms/ValueSelection.d.ts +30 -0
- package/dist/phases/transforms/ValueSelection.js +53 -0
- package/dist/plots/{heatmap → correlation/heatmap}/Plot.svelte +5 -2
- package/dist/plots/{heatmap → correlation/heatmap}/Plot.svelte.d.ts +2 -2
- package/dist/plots/{heatmap → correlation/heatmap}/defaults.d.ts +2 -2
- package/dist/plots/{heatmap → correlation/heatmap}/defaults.js +5 -5
- package/dist/plots/{heatmap → correlation/heatmap}/markers.d.ts +4 -4
- package/dist/plots/{heatmap → correlation/heatmap}/markers.js +4 -3
- package/dist/plots/{scatter → correlation/scatter}/Plot.svelte +5 -2
- package/dist/plots/{scatter → correlation/scatter}/Plot.svelte.d.ts +2 -2
- package/dist/plots/{scatter → correlation/scatter}/defaults.d.ts +2 -2
- package/dist/plots/{scatter → correlation/scatter}/defaults.js +6 -5
- package/dist/plots/{scatter → correlation/scatter}/markers.d.ts +4 -4
- package/dist/plots/{scatter → correlation/scatter}/markers.js +5 -4
- package/dist/plots/distribution/box/BoxSummaries.d.ts +19 -0
- package/dist/plots/distribution/box/BoxSummaries.js +101 -0
- package/dist/plots/distribution/box/Plot.svelte +42 -0
- package/dist/plots/distribution/box/Plot.svelte.d.ts +26 -0
- package/dist/plots/distribution/box/defaults.d.ts +12 -0
- package/dist/plots/distribution/box/defaults.js +34 -0
- package/dist/plots/distribution/box/markers.d.ts +12 -0
- package/dist/plots/distribution/box/markers.js +34 -0
- package/dist/plots/distribution/density/Plot.svelte +45 -0
- package/dist/plots/distribution/density/Plot.svelte.d.ts +26 -0
- package/dist/plots/distribution/density/defaults.d.ts +9 -0
- package/dist/plots/distribution/density/defaults.js +29 -0
- package/dist/plots/distribution/density/markers.d.ts +9 -0
- package/dist/plots/distribution/density/markers.js +42 -0
- package/dist/plots/{histogram → distribution/histogram}/Plot.svelte +2 -2
- package/dist/plots/{histogram → distribution/histogram}/Plot.svelte.d.ts +2 -2
- package/dist/plots/{histogram → distribution/histogram}/defaults.d.ts +2 -2
- package/dist/plots/{histogram → distribution/histogram}/defaults.js +4 -4
- package/dist/plots/{histogram → distribution/histogram}/markers.d.ts +3 -3
- package/dist/plots/{histogram → distribution/histogram}/markers.js +7 -7
- package/dist/plots/{pyramid → distribution/pyramid}/Plot.svelte +5 -2
- package/dist/plots/{pyramid → distribution/pyramid}/Plot.svelte.d.ts +2 -2
- package/dist/plots/{pyramid → distribution/pyramid}/defaults.d.ts +2 -2
- package/dist/plots/{pyramid → distribution/pyramid}/defaults.js +7 -6
- package/dist/plots/{pyramid → distribution/pyramid}/markers.d.ts +4 -4
- package/dist/plots/{pyramid → distribution/pyramid}/markers.js +8 -11
- package/dist/plots/distribution/violin/Plot.svelte +45 -0
- package/dist/plots/distribution/violin/Plot.svelte.d.ts +26 -0
- package/dist/plots/distribution/violin/defaults.d.ts +10 -0
- package/dist/plots/distribution/violin/defaults.js +58 -0
- package/dist/plots/distribution/violin/markers.d.ts +10 -0
- package/dist/plots/distribution/violin/markers.js +71 -0
- package/dist/plots/{area → evolution/area}/Plot.svelte +2 -2
- package/dist/plots/{area → evolution/area}/Plot.svelte.d.ts +2 -2
- package/dist/plots/{area → evolution/area}/defaults.d.ts +2 -2
- package/dist/plots/{area → evolution/area}/defaults.js +2 -0
- package/dist/plots/{area → evolution/area}/markers.d.ts +2 -2
- package/dist/plots/{area → evolution/area}/markers.js +2 -3
- package/dist/plots/{line → evolution/line}/Plot.svelte +2 -2
- package/dist/plots/{line → evolution/line}/Plot.svelte.d.ts +2 -2
- package/dist/plots/{line → evolution/line}/defaults.d.ts +2 -2
- package/dist/plots/{line → evolution/line}/defaults.js +2 -0
- package/dist/plots/{line → evolution/line}/markers.d.ts +11 -8
- package/dist/plots/{line → evolution/line}/markers.js +7 -6
- package/dist/plots/evolution/slope/Plot.svelte +42 -0
- package/dist/plots/evolution/slope/Plot.svelte.d.ts +26 -0
- package/dist/plots/evolution/slope/defaults.d.ts +8 -0
- package/dist/plots/evolution/slope/defaults.js +31 -0
- package/dist/plots/evolution/slope/markers.d.ts +16 -0
- package/dist/plots/evolution/slope/markers.js +79 -0
- package/dist/plots/evolution/sparkline/Plot.svelte +45 -0
- package/dist/plots/evolution/sparkline/Plot.svelte.d.ts +26 -0
- package/dist/plots/evolution/sparkline/defaults.d.ts +7 -0
- package/dist/plots/evolution/sparkline/defaults.js +23 -0
- package/dist/plots/evolution/sparkline/markers.d.ts +7 -0
- package/dist/plots/evolution/sparkline/markers.js +56 -0
- package/dist/plots/{geo → map/geo}/Core.svelte +11 -10
- package/dist/plots/{geo → map/geo}/Core.svelte.d.ts +1 -1
- package/dist/plots/map/geo/GeoFeatures.svelte.d.ts +9 -0
- package/dist/plots/map/geo/GeoFeatures.svelte.js +55 -0
- package/dist/plots/map/geo/GeoGeometry.d.ts +27 -0
- package/dist/plots/map/geo/GeoGeometry.js +142 -0
- package/dist/plots/map/geo/GeoSegments.d.ts +16 -0
- package/dist/plots/map/geo/GeoSegments.js +23 -0
- package/dist/plots/{geo → map/geo}/Plot.svelte +10 -10
- package/dist/plots/{geo → map/geo}/Plot.svelte.d.ts +2 -2
- package/dist/plots/{geo → map/geo}/defaults.d.ts +2 -2
- package/dist/plots/{geo → map/geo}/defaults.js +1 -1
- package/dist/plots/{geo → map/geo}/phases/data.d.ts +1 -1
- package/dist/plots/{geo → map/geo}/phases/data.js +7 -6
- package/dist/plots/{geo → map/geo}/phases/hover.d.ts +1 -1
- package/dist/plots/{geo → map/geo}/phases/hover.js +5 -5
- package/dist/plots/{geo → map/geo}/phases/markers.d.ts +1 -1
- package/dist/plots/{geo → map/geo}/phases/markers.js +8 -13
- package/dist/plots/{geo → map/geo}/phases/scales.d.ts +2 -2
- package/dist/plots/{geo → map/geo}/phases/scales.js +28 -12
- package/dist/plots/{geo → map/geo}/phases/tooltip.d.ts +1 -1
- package/dist/plots/map/geo/phases/tooltip.js +5 -0
- package/dist/plots/{geo → map/geo}/slices.d.ts +2 -2
- package/dist/plots/{geo → map/geo}/slices.js +7 -4
- package/dist/plots/{bar → ranking/bar}/Plot.svelte +2 -2
- package/dist/plots/{bar → ranking/bar}/Plot.svelte.d.ts +2 -2
- package/dist/plots/ranking/bar/defaults.d.ts +16 -0
- package/dist/plots/{bar → ranking/bar}/defaults.js +17 -15
- package/dist/plots/{bar → ranking/bar}/markers.d.ts +8 -8
- package/dist/plots/{bar → ranking/bar}/markers.js +11 -19
- package/dist/plots/ranking/bullet/Plot.svelte +42 -0
- package/dist/plots/ranking/bullet/Plot.svelte.d.ts +26 -0
- package/dist/plots/ranking/bullet/defaults.d.ts +8 -0
- package/dist/plots/ranking/bullet/defaults.js +24 -0
- package/dist/plots/ranking/bullet/markers.d.ts +10 -0
- package/dist/plots/ranking/bullet/markers.js +90 -0
- package/dist/plots/ranking/cleveland/ClevelandConnector.d.ts +48 -0
- package/dist/plots/ranking/cleveland/ClevelandConnector.js +140 -0
- package/dist/plots/ranking/cleveland/ClevelandMarkers.d.ts +33 -0
- package/dist/plots/ranking/cleveland/ClevelandMarkers.js +375 -0
- package/dist/plots/ranking/cleveland/ClevelandRanges.d.ts +31 -0
- package/dist/plots/ranking/cleveland/ClevelandRanges.js +116 -0
- package/dist/plots/ranking/cleveland/Plot.svelte +45 -0
- package/dist/plots/ranking/cleveland/Plot.svelte.d.ts +26 -0
- package/dist/plots/ranking/cleveland/defaults.d.ts +13 -0
- package/dist/plots/ranking/cleveland/defaults.js +66 -0
- package/dist/plots/ranking/dumbbell/Plot.svelte +45 -0
- package/dist/plots/ranking/dumbbell/Plot.svelte.d.ts +26 -0
- package/dist/plots/ranking/dumbbell/defaults.d.ts +9 -0
- package/dist/plots/ranking/dumbbell/defaults.js +19 -0
- package/dist/plots/ranking/forest/Plot.svelte +42 -0
- package/dist/plots/ranking/forest/Plot.svelte.d.ts +26 -0
- package/dist/plots/ranking/forest/defaults.d.ts +11 -0
- package/dist/plots/ranking/forest/defaults.js +20 -0
- package/dist/plots/ranking/lollipop/Plot.svelte +45 -0
- package/dist/plots/ranking/lollipop/Plot.svelte.d.ts +26 -0
- package/dist/plots/ranking/lollipop/defaults.d.ts +9 -0
- package/dist/plots/ranking/lollipop/defaults.js +18 -0
- package/dist/plots/utils/RowNumbers.d.ts +16 -0
- package/dist/plots/utils/RowNumbers.js +24 -0
- package/dist/plots/utils/gaps.js +1 -1
- package/dist/plots/utils/segments.js +1 -1
- package/dist/types/configuration/styling.d.ts +287 -132
- package/dist/types/layout/composer.d.ts +5 -2
- package/dist/types/layout/coordinates.d.ts +5 -4
- package/dist/types/layout/legend.d.ts +21 -5
- package/dist/types/layout/plot.d.ts +44 -1
- package/dist/types/layout/scales.d.ts +51 -3
- package/dist/types/layout/statistics/deviation.d.ts +40 -0
- package/dist/types/layout/statistics/index.d.ts +7 -2
- package/dist/types/layout/styles/base.d.ts +18 -0
- package/dist/types/layout/styles/bullet.d.ts +25 -0
- package/dist/types/layout/styles/connector.d.ts +98 -0
- package/dist/types/layout/styles/curve.d.ts +11 -0
- package/dist/types/layout/styles/frame.d.ts +17 -0
- package/dist/types/layout/styles/gaps.d.ts +12 -0
- package/dist/types/layout/styles/geo.d.ts +55 -0
- package/dist/types/layout/styles/index.d.ts +8 -0
- package/dist/types/layout/styles/index.js +8 -0
- package/dist/types/layout/styles/values.d.ts +47 -0
- package/dist/types/layout/timeline.d.ts +19 -7
- package/dist/types/layout/tooltip.d.ts +6 -2
- package/dist/types/markers/axis/area.d.ts +2 -2
- package/dist/types/markers/axis/arrow.d.ts +3 -0
- package/dist/types/markers/axis/axisBasedMarkersConfig.d.ts +2 -1
- package/dist/types/markers/axis/bar.d.ts +1 -1
- package/dist/types/markers/axis/box.d.ts +5 -0
- package/dist/types/markers/axis/difference.d.ts +2 -2
- package/dist/types/markers/axis/image.d.ts +3 -2
- package/dist/types/markers/axis/line.d.ts +2 -0
- package/dist/types/markers/axis/rule.d.ts +9 -0
- package/dist/types/markers/axis/trail.d.ts +2 -3
- package/dist/types/markers/axis/violin.d.ts +25 -0
- package/dist/types/markers/basic/dot.d.ts +3 -2
- package/dist/types/markers/basic/text.d.ts +13 -3
- package/dist/types/markers/channels/commonMarkerConfig.d.ts +7 -3
- package/dist/types/markers/channels/commonMarkerConfigWithRowOffset.d.ts +13 -0
- package/dist/types/markers/common.d.ts +1 -1
- package/dist/types/markers/common.js +1 -0
- package/dist/types/markers/geo/link.d.ts +5 -1
- package/dist/types/phases/hover/phase.d.ts +6 -0
- package/dist/types/phases/index.d.ts +1 -1
- package/dist/types/phases/scales/phase.d.ts +5 -1
- package/dist/types/phases/state.d.ts +20 -4
- package/dist/types/phases/statistics/phase.d.ts +3 -1
- package/dist/types/phases/statistics/source.d.ts +3 -1
- package/dist/types/phases/transforms/phase.d.ts +32 -0
- package/dist/types/plots/{heatmap → correlation/heatmap}/props.d.ts +6 -6
- package/dist/types/plots/{heatmap → correlation/heatmap}/state.d.ts +4 -4
- package/dist/types/plots/{scatter → correlation/scatter}/props.d.ts +6 -6
- package/dist/types/plots/{scatter → correlation/scatter}/state.d.ts +2 -2
- package/dist/types/plots/distribution/box/props.d.ts +10 -0
- package/dist/types/plots/distribution/box/state.d.ts +23 -0
- package/dist/types/plots/distribution/density/props.d.ts +23 -0
- package/dist/types/plots/distribution/density/state.d.ts +6 -0
- package/dist/types/plots/distribution/density/state.js +1 -0
- package/dist/types/plots/{histogram → distribution/histogram}/props.d.ts +7 -7
- package/dist/types/plots/distribution/histogram/props.js +1 -0
- package/dist/types/plots/{histogram → distribution/histogram}/state.d.ts +2 -2
- package/dist/types/plots/distribution/histogram/state.js +1 -0
- package/dist/types/plots/{pyramid → distribution/pyramid}/props.d.ts +6 -6
- package/dist/types/plots/distribution/pyramid/props.js +1 -0
- package/dist/types/plots/{pyramid → distribution/pyramid}/state.d.ts +3 -3
- package/dist/types/plots/distribution/pyramid/state.js +1 -0
- package/dist/types/plots/distribution/violin/props.d.ts +23 -0
- package/dist/types/plots/distribution/violin/props.js +1 -0
- package/dist/types/plots/distribution/violin/state.d.ts +6 -0
- package/dist/types/plots/distribution/violin/state.js +1 -0
- package/dist/types/plots/{area → evolution/area}/props.d.ts +6 -6
- package/dist/types/plots/evolution/area/props.js +1 -0
- package/dist/types/plots/{area → evolution/area}/state.d.ts +2 -2
- package/dist/types/plots/evolution/area/state.js +1 -0
- package/dist/types/plots/evolution/line/props.d.ts +10 -0
- package/dist/types/plots/evolution/line/props.js +1 -0
- package/dist/types/plots/{line → evolution/line}/state.d.ts +3 -3
- package/dist/types/plots/evolution/line/state.js +1 -0
- package/dist/types/plots/evolution/slope/props.d.ts +5 -0
- package/dist/types/plots/evolution/slope/props.js +1 -0
- package/dist/types/plots/evolution/slope/state.d.ts +5 -0
- package/dist/types/plots/evolution/slope/state.js +1 -0
- package/dist/types/plots/evolution/sparkline/props.d.ts +5 -0
- package/dist/types/plots/evolution/sparkline/props.js +1 -0
- package/dist/types/plots/evolution/sparkline/state.d.ts +5 -0
- package/dist/types/plots/evolution/sparkline/state.js +1 -0
- package/dist/types/plots/{geo → map/geo}/props.d.ts +8 -8
- package/dist/types/plots/map/geo/props.js +1 -0
- package/dist/types/plots/{geo → map/geo}/state.d.ts +18 -11
- package/dist/types/plots/map/geo/state.js +1 -0
- package/dist/types/plots/props.d.ts +3 -1
- package/dist/types/plots/{bar → ranking/bar}/props.d.ts +6 -6
- package/dist/types/plots/ranking/bar/props.js +1 -0
- package/dist/types/plots/{bar → ranking/bar}/state.d.ts +2 -2
- package/dist/types/plots/ranking/bar/state.js +1 -0
- package/dist/types/plots/ranking/bullet/props.d.ts +22 -0
- package/dist/types/plots/ranking/bullet/props.js +1 -0
- package/dist/types/plots/ranking/bullet/state.d.ts +5 -0
- package/dist/types/plots/ranking/bullet/state.js +1 -0
- package/dist/types/plots/ranking/cleveland/props.d.ts +10 -0
- package/dist/types/plots/ranking/cleveland/props.js +1 -0
- package/dist/types/plots/ranking/cleveland/state.d.ts +49 -0
- package/dist/types/plots/ranking/cleveland/state.js +1 -0
- package/dist/types/plots/ranking/dumbbell/props.d.ts +10 -0
- package/dist/types/plots/ranking/dumbbell/props.js +1 -0
- package/dist/types/plots/ranking/dumbbell/state.d.ts +5 -0
- package/dist/types/plots/ranking/dumbbell/state.js +1 -0
- package/dist/types/plots/ranking/forest/props.d.ts +23 -0
- package/dist/types/plots/ranking/forest/props.js +1 -0
- package/dist/types/plots/ranking/forest/state.d.ts +5 -0
- package/dist/types/plots/ranking/forest/state.js +1 -0
- package/dist/types/plots/ranking/lollipop/props.d.ts +10 -0
- package/dist/types/plots/ranking/lollipop/props.js +1 -0
- package/dist/types/plots/ranking/lollipop/state.d.ts +5 -0
- package/dist/types/plots/ranking/lollipop/state.js +1 -0
- package/dist/types/plots/segments/common.d.ts +4 -1
- package/dist/utils/OpacityScale.d.ts +14 -0
- package/dist/utils/OpacityScale.js +43 -0
- package/dist/utils/{symbol.d.ts → SymbolPath.d.ts} +0 -12
- package/dist/utils/{symbol.js → SymbolPath.js} +0 -24
- package/dist/utils/SymbolScale.d.ts +18 -0
- package/dist/utils/SymbolScale.js +29 -0
- package/dist/utils/color/ColorRamp.d.ts +27 -0
- package/dist/utils/color/ColorRamp.js +120 -0
- package/dist/utils/color/CssColor.d.ts +19 -0
- package/dist/utils/color/CssColor.js +114 -0
- package/dist/utils/color/Palette.d.ts +21 -0
- package/dist/utils/color/Palette.js +52 -0
- package/dist/utils/color/index.d.ts +11 -3
- package/dist/utils/color/index.js +14 -3
- package/dist/utils/grouping.js +1 -1
- package/docs/architecture.md +1 -1
- package/docs/chrome.md +39 -8
- package/docs/composer.md +19 -3
- package/docs/concepts.md +1 -1
- package/docs/development.md +14 -5
- package/docs/facets.md +62 -8
- package/docs/getting-started.md +8 -9
- package/docs/legend.md +73 -24
- package/docs/markers.md +45 -32
- package/docs/plots/correlation/heatmap.md +26 -0
- package/docs/plots/correlation/scatter.md +35 -0
- package/docs/plots/distribution/box.md +28 -0
- package/docs/plots/distribution/density.md +26 -0
- package/docs/plots/distribution/histogram.md +33 -0
- package/docs/plots/distribution/pyramid.md +31 -0
- package/docs/plots/distribution/violin.md +35 -0
- package/docs/plots/evolution/area.md +32 -0
- package/docs/plots/evolution/line.md +93 -0
- package/docs/plots/evolution/slope.md +39 -0
- package/docs/plots/evolution/sparkline.md +34 -0
- package/docs/plots/ranking/bar.md +59 -0
- package/docs/plots/ranking/bullet.md +37 -0
- package/docs/plots/ranking/cleveland.md +54 -0
- package/docs/plots/ranking/dumbbell.md +39 -0
- package/docs/plots/ranking/forest.md +40 -0
- package/docs/plots/ranking/lollipop.md +39 -0
- package/docs/plots.md +22 -154
- package/docs/scales.md +50 -27
- package/docs/state.md +1 -1
- package/docs/styles-and-segments.md +96 -39
- package/docs/theming.md +33 -19
- package/docs/timeline.md +62 -28
- package/docs/tooltip-and-hover.md +72 -24
- package/docs/transforms-and-statistics.md +56 -25
- package/examples/BarValues.svelte +2 -2
- package/examples/Box.svelte +7 -0
- package/examples/Bullet.svelte +17 -0
- package/examples/Chrome.svelte +17 -0
- package/examples/ChromeOrder.svelte +18 -0
- package/examples/Cleveland.svelte +15 -0
- package/examples/Composer.svelte +23 -0
- package/examples/CustomTooltip.svelte +21 -14
- package/examples/Density.svelte +7 -0
- package/examples/Dumbbell.svelte +16 -0
- package/examples/Facets.svelte +3 -3
- package/examples/FacetsCarousel.svelte +14 -0
- package/examples/FacetsRowsCols.svelte +23 -0
- package/examples/FirstPlot.svelte +7 -0
- package/examples/Forest.svelte +17 -0
- package/examples/Gaps.svelte +21 -0
- package/examples/GroupedBars.svelte +15 -0
- package/examples/Heatmap.svelte +7 -0
- package/examples/HeatmapSegments.svelte +26 -0
- package/examples/Histogram.svelte +14 -0
- package/examples/HorizontalBars.svelte +15 -0
- package/examples/LegendSections.svelte +27 -0
- package/examples/LegendToggle.svelte +3 -3
- package/examples/LineByRegion.svelte +18 -0
- package/examples/LineDates.svelte +15 -0
- package/examples/LineStep.svelte +16 -0
- package/examples/LineStepSegment.svelte +18 -0
- package/examples/Lollipop.svelte +17 -0
- package/examples/Markers.svelte +27 -0
- package/examples/MovingAverage.svelte +15 -0
- package/examples/Pyramid.svelte +14 -0
- package/examples/Regression.svelte +14 -0
- package/examples/ResponsiveLine.svelte +7 -7
- package/examples/Scales.svelte +26 -0
- package/examples/Scatter.svelte +16 -0
- package/examples/SegmentHighlight.svelte +22 -0
- package/examples/Segments.svelte +11 -3
- package/examples/SegmentsBySeries.svelte +25 -0
- package/examples/Slope.svelte +17 -0
- package/examples/Sparkline.svelte +14 -0
- package/examples/StackedArea.svelte +16 -0
- package/examples/StackedBars.svelte +15 -0
- package/examples/TimelinePlayer.svelte +8 -7
- package/examples/TimelineRule.svelte +19 -0
- package/examples/Tooltip.svelte +3 -3
- package/examples/ValueLabels.svelte +21 -0
- package/examples/Violin.svelte +14 -0
- package/examples/datasets/argentina-chile-trends.ts +34 -0
- package/examples/datasets/commodity-prices.ts +48 -0
- package/examples/datasets/countries-over-time.ts +368 -0
- package/examples/datasets/daily-temperature.ts +121 -0
- package/examples/datasets/earthquakes.ts +977 -0
- package/examples/datasets/flight-routes.ts +29 -0
- package/examples/datasets/height-density.ts +37 -0
- package/examples/datasets/heights.ts +370 -0
- package/examples/datasets/index.ts +24 -0
- package/examples/datasets/inflation-by-region.ts +44 -0
- package/examples/datasets/inflation-ranges.ts +34 -0
- package/examples/datasets/iris-flower.ts +207 -0
- package/examples/datasets/life-expectancy.ts +95 -0
- package/examples/datasets/napoleons-march.ts +182 -0
- package/examples/datasets/penguins.ts +54 -0
- package/examples/datasets/population-by-age-with-gaps.ts +23 -0
- package/examples/datasets/population-by-age.ts +890 -0
- package/examples/datasets/province-population.ts +521 -0
- package/examples/datasets/stock-prices.ts +63 -0
- package/examples/datasets/weather-stations-over-time.ts +31 -0
- package/examples/datasets/weather-stations.ts +22 -0
- package/examples/datasets/wind-vectors.ts +30 -0
- package/examples/datasets/world-temperature.ts +400 -0
- package/llms-full.txt +51 -12
- package/llms.txt +60 -4
- package/package.json +12 -2
- package/dist/layout/scales/buildScale.d.ts +0 -8
- package/dist/layout/scales/buildScale.js +0 -67
- package/dist/layout/scales/niceDomain.d.ts +0 -23
- package/dist/layout/scales/niceDomain.js +0 -59
- package/dist/plots/bar/defaults.d.ts +0 -9
- package/dist/plots/geo/features.svelte.d.ts +0 -5
- package/dist/plots/geo/features.svelte.js +0 -44
- package/dist/plots/geo/phases/tooltip.js +0 -5
- package/dist/plots/utils/geoAccessors.d.ts +0 -72
- package/dist/plots/utils/geoAccessors.js +0 -220
- package/dist/plots/utils/geoSegments.d.ts +0 -29
- package/dist/plots/utils/geoSegments.js +0 -37
- package/dist/types/layout/styles.d.ts +0 -122
- package/dist/types/markers/axis/curveName.d.ts +0 -2
- package/dist/types/plots/line/props.d.ts +0 -10
- package/dist/utils/color/contrast.d.ts +0 -9
- package/dist/utils/color/contrast.js +0 -40
- package/dist/utils/color/cssColor.d.ts +0 -4
- package/dist/utils/color/cssColor.js +0 -77
- package/dist/utils/color/ramp.d.ts +0 -17
- package/dist/utils/color/ramp.js +0 -110
- package/dist/utils/opacity.d.ts +0 -9
- package/dist/utils/opacity.js +0 -38
- package/examples/data.ts +0 -12
- /package/dist/types/layout/{styles.js → statistics/deviation.js} +0 -0
- /package/dist/types/{markers/axis/curveName.js → layout/styles/base.js} +0 -0
- /package/dist/types/{plots/area/props.js → layout/styles/bullet.js} +0 -0
- /package/dist/types/{plots/area/state.js → layout/styles/connector.js} +0 -0
- /package/dist/types/{plots/bar/props.js → layout/styles/curve.js} +0 -0
- /package/dist/types/{plots/bar/state.js → layout/styles/frame.js} +0 -0
- /package/dist/types/{plots/geo/props.js → layout/styles/gaps.js} +0 -0
- /package/dist/types/{plots/geo/state.js → layout/styles/geo.js} +0 -0
- /package/dist/types/{plots/heatmap/props.js → layout/styles/values.js} +0 -0
- /package/dist/types/{plots/heatmap/state.js → markers/axis/violin.js} +0 -0
- /package/dist/types/{plots/histogram/props.js → markers/channels/commonMarkerConfigWithRowOffset.js} +0 -0
- /package/dist/types/plots/{line → correlation/heatmap}/props.js +0 -0
- /package/dist/types/plots/{histogram → correlation/heatmap}/state.js +0 -0
- /package/dist/types/plots/{pyramid → correlation/scatter}/props.js +0 -0
- /package/dist/types/plots/{line → correlation/scatter}/state.js +0 -0
- /package/dist/types/plots/{scatter → distribution/box}/props.js +0 -0
- /package/dist/types/plots/{pyramid → distribution/box}/state.js +0 -0
- /package/dist/types/plots/{scatter/state.js → distribution/density/props.js} +0 -0
- /package/dist/{plots/utils → utils}/accessors.d.ts +0 -0
- /package/dist/{plots/utils → utils}/accessors.js +0 -0
|
@@ -1,122 +0,0 @@
|
|
|
1
|
-
import type { ValueAnchor } from '../plots/constants';
|
|
2
|
-
import type { FontStyle, StrokeStyle, AreaStyle } from '../plots/styling';
|
|
3
|
-
import type { GeoFeature } from '../plots/data/geo';
|
|
4
|
-
import type { GapsConfig } from '../plots/gaps';
|
|
5
|
-
/**
|
|
6
|
-
* Controls if and how value labels are rendered on a plot, drawn as a `text`
|
|
7
|
-
* marker over the rows the plot itself draws (after its own `transforms`):
|
|
8
|
-
* one at the end of each series on a line or area plot, one per bar on a bar,
|
|
9
|
-
* pyramid or histogram plot, one per point on a scatter plot and one per cell
|
|
10
|
-
* on a heatmap. The high-level `anchor` sets sensible defaults for placement;
|
|
11
|
-
* `fontStyle` (`dx`, `dy`, `textAnchor`, `lineAnchor`, `lineHeight`, `rotate`,
|
|
12
|
-
* `class`, `textClass`, `fill`, …) overrides those defaults field-by-field when
|
|
13
|
-
* provided - mirrors {@link DeltaConfig}'s `fontStyle`/`strokeStyle` split, so
|
|
14
|
-
* label text and connector-line styling never mix into one flat bag of props.
|
|
15
|
-
*/
|
|
16
|
-
export type ValuesStyle = {
|
|
17
|
-
/** Whether the labels are drawn. Off by default, except on a heatmap. */
|
|
18
|
-
show?: boolean;
|
|
19
|
-
/** Where each label sits on its mark - see {@link ValueAnchor}. */
|
|
20
|
-
anchor?: ValueAnchor;
|
|
21
|
-
/** A label's text, from its row's own value (a histogram bin's count) and its series. */
|
|
22
|
-
format?: (value: number, seriesName: string) => string;
|
|
23
|
-
/** Hovering a label dims every other series, like toggling them off in the legend. */
|
|
24
|
-
hoverIsolate?: boolean;
|
|
25
|
-
fontStyle?: FontStyle;
|
|
26
|
-
/** The connectors a line or area plot routes back from labels that had to move apart. */
|
|
27
|
-
strokeStyle?: StrokeStyle;
|
|
28
|
-
};
|
|
29
|
-
/**
|
|
30
|
-
* Decorative border around the plot's own content box - svelteplot's
|
|
31
|
-
* `Frame` mark, purely cosmetic (drawn from the box geometry, never from
|
|
32
|
-
* data). `true` enables it with svelteplot's own defaults; an object
|
|
33
|
-
* enables it and overrides its look field-by-field. Insets pull the frame
|
|
34
|
-
* in from the content box's own edges, in pixels.
|
|
35
|
-
*/
|
|
36
|
-
export type FrameStyle = AreaStyle & {
|
|
37
|
-
inset?: number;
|
|
38
|
-
insetTop?: number;
|
|
39
|
-
insetRight?: number;
|
|
40
|
-
insetBottom?: number;
|
|
41
|
-
insetLeft?: number;
|
|
42
|
-
};
|
|
43
|
-
/** Author-facing `styles.frame` prop - see {@link FrameStyle}. */
|
|
44
|
-
export type FrameProp = boolean | FrameStyle;
|
|
45
|
-
/**
|
|
46
|
-
* The fields every plot kind's own `styles` shape shares - the common parent
|
|
47
|
-
* of {@link AxisBasedStylesConfig} and {@link GeoStylesConfig}.
|
|
48
|
-
*/
|
|
49
|
-
export type BasePlotStylesConfig = {
|
|
50
|
-
/** Decorative border around the plot's content box - see {@link FrameStyle}. Available on every plot kind. */
|
|
51
|
-
frame?: FrameProp;
|
|
52
|
-
};
|
|
53
|
-
/**
|
|
54
|
-
* Top-level rendering style overrides shared by the non-geo plot kinds.
|
|
55
|
-
* Passed as the `styles` prop. Each plot reads only the fields it cares
|
|
56
|
-
* about.
|
|
57
|
-
*/
|
|
58
|
-
export type AxisBasedStylesConfig = BasePlotStylesConfig & {
|
|
59
|
-
values?: ValuesStyle;
|
|
60
|
-
};
|
|
61
|
-
/**
|
|
62
|
-
* `AxisBasedStylesConfig` extended with `gaps` - the interpolated
|
|
63
|
-
* missing-data bridge fill available to plot kinds with an inherent
|
|
64
|
-
* category/sequence ordering (`LinePlot`, `BarPlot`, `PyramidPlot`).
|
|
65
|
-
* Resolved per series like `segments`, at zone granularity - see
|
|
66
|
-
* {@link GapsConfig}.
|
|
67
|
-
*/
|
|
68
|
-
export type GapsAwarePlotStylesConfig<TSegmentStyle extends object> = AxisBasedStylesConfig & {
|
|
69
|
-
gaps?: GapsConfig<TSegmentStyle>;
|
|
70
|
-
};
|
|
71
|
-
export type GeoTileLayerConfig = {
|
|
72
|
-
/** XYZ tile URL template, e.g. `'https://tile.openstreetmap.org/{z}/{x}/{y}.png'`. */
|
|
73
|
-
url: string;
|
|
74
|
-
attribution?: string;
|
|
75
|
-
opacity?: number;
|
|
76
|
-
minZoom?: number;
|
|
77
|
-
maxZoom?: number;
|
|
78
|
-
/** Tile edge length in pixels. Defaults to `256`. */
|
|
79
|
-
tileSize?: number;
|
|
80
|
-
};
|
|
81
|
-
/**
|
|
82
|
-
* `styles` prop for GeoPlot - the geo analog of `AxisBasedStylesConfig`,
|
|
83
|
-
* sharing only {@link BasePlotStylesConfig}'s common ground with it. Unlike
|
|
84
|
-
* the other plot kinds, GeoPlot's styling needs (base map, choropleth ramp,
|
|
85
|
-
* tile background, click handling) are unlike anything x/y plots need, so
|
|
86
|
-
* this is its own type rather than a reuse of `AxisBasedStylesConfig`.
|
|
87
|
-
*/
|
|
88
|
-
export type GeoStylesConfig<TProps extends Record<string, unknown> = Record<string, unknown>> = BasePlotStylesConfig & {
|
|
89
|
-
/** Base map fill, used when a feature isn't styled by `segments` or the choropleth ramp. */
|
|
90
|
-
fill?: string;
|
|
91
|
-
fillOpacity?: number;
|
|
92
|
-
stroke?: string;
|
|
93
|
-
strokeWidth?: number;
|
|
94
|
-
/** Raster XYZ tile basemap under the vector geometry. Mercator-family projections only. */
|
|
95
|
-
tileLayer?: GeoTileLayerConfig;
|
|
96
|
-
/** Fired when a base-map feature is clicked. */
|
|
97
|
-
onFeatureClick?: (feature: GeoFeature<TProps>, event: Event) => void;
|
|
98
|
-
};
|
|
99
|
-
/**
|
|
100
|
-
* `GeoTileLayerConfig`, plus `features` - never author-facing (the public
|
|
101
|
-
* `styles.tileLayer` shape, {@link GeoTileLayerConfig}, doesn't declare it).
|
|
102
|
-
* `GeoPlot` tacks it onto its own internal copy of `styles` so `StylesLayout`
|
|
103
|
-
* can compute the tile layer's auto-fit bounds without needing raw geometry
|
|
104
|
-
* threaded through as a separate prop.
|
|
105
|
-
*/
|
|
106
|
-
type GeoTileLayerConfigWithFeatures = GeoTileLayerConfig & {
|
|
107
|
-
features?: {
|
|
108
|
-
geometry: GeoJSON.Geometry;
|
|
109
|
-
}[];
|
|
110
|
-
};
|
|
111
|
-
/**
|
|
112
|
-
* The minimal slice of a plot kind's own `styles` prop `StylesLayout` reads -
|
|
113
|
-
* every concrete `styles` type ({@link AxisBasedStylesConfig},
|
|
114
|
-
* {@link GeoStylesConfig}) structurally satisfies this whether or not it
|
|
115
|
-
* declares `tileLayer` at all (a missing optional field type-checks fine).
|
|
116
|
-
*/
|
|
117
|
-
export type StylesLayoutConfig = {
|
|
118
|
-
tileLayer?: GeoTileLayerConfigWithFeatures;
|
|
119
|
-
frame?: FrameProp;
|
|
120
|
-
[key: string]: unknown;
|
|
121
|
-
};
|
|
122
|
-
export {};
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
/** Curve interpolation for an area, difference or trail marker - svelteplot's own `CurveName`. */
|
|
2
|
-
export type MarkerCurveName = 'basis' | 'basis-closed' | 'basis-open' | 'bundle' | 'bump-x' | 'bump-y' | 'cardinal' | 'cardinal-closed' | 'cardinal-open' | 'catmull-rom' | 'catmull-rom-closed' | 'catmull-rom-open' | 'linear' | 'linear-closed' | 'monotone-x' | 'monotone-y' | 'natural' | 'step' | 'step-after' | 'step-before';
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import type { BasePlotProps, PlotCoreProps } from '../props';
|
|
2
|
-
import type { AxisBasedScalesConfig } from '../../layout/scales';
|
|
3
|
-
import type { AxisBasedMarkersConfig } from '../../markers/common';
|
|
4
|
-
import type { SeriesProps, DataProps } from '../data/common';
|
|
5
|
-
import type { GapsAwarePlotStylesConfig } from '../../layout/styles';
|
|
6
|
-
import type { LineSegmentStyle } from '../segments/common';
|
|
7
|
-
/** `LinePlot`'s public props. */
|
|
8
|
-
export type LinePlotProps<TData extends Record<string, unknown>> = BasePlotProps<SeriesProps<TData> | DataProps<TData>, TData, GapsAwarePlotStylesConfig<LineSegmentStyle>, LineSegmentStyle, AxisBasedMarkersConfig, AxisBasedScalesConfig<TData>>;
|
|
9
|
-
/** What `LinePlot`'s core draws from. */
|
|
10
|
-
export type LinePlotCoreProps<TData extends Record<string, unknown>> = PlotCoreProps<SeriesProps<TData> | DataProps<TData>, TData, GapsAwarePlotStylesConfig<LineSegmentStyle>, LineSegmentStyle, AxisBasedMarkersConfig, AxisBasedScalesConfig<TData>>;
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
/** WCAG contrast ratio between two colors, from 1 (no contrast) to 21 (black on white). */
|
|
2
|
-
export declare function contrastRatio(colorA: string, colorB: string): number;
|
|
3
|
-
/**
|
|
4
|
-
* The `candidates` entry with the highest WCAG contrast ratio against
|
|
5
|
-
* `background`. Defaults to plain white/black; pass a grayscale or other
|
|
6
|
-
* palette to widen the choice. Falls back to the first candidate when
|
|
7
|
-
* `background` can't be parsed.
|
|
8
|
-
*/
|
|
9
|
-
export declare function contrastTextColor(background: string, candidates?: string[]): string;
|
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
import { resolveCssColor, parseRgb } from './cssColor';
|
|
2
|
-
function relativeLuminance([r, g, b]) {
|
|
3
|
-
const [rs, gs, bs] = [r, g, b].map((c) => {
|
|
4
|
-
const s = c / 255;
|
|
5
|
-
return s <= 0.03928 ? s / 12.92 : Math.pow((s + 0.055) / 1.055, 2.4);
|
|
6
|
-
});
|
|
7
|
-
return 0.2126 * rs + 0.7152 * gs + 0.0722 * bs;
|
|
8
|
-
}
|
|
9
|
-
/** WCAG contrast ratio between two colors, from 1 (no contrast) to 21 (black on white). */
|
|
10
|
-
export function contrastRatio(colorA, colorB) {
|
|
11
|
-
const a = parseRgb(resolveCssColor(colorA));
|
|
12
|
-
const b = parseRgb(resolveCssColor(colorB));
|
|
13
|
-
if (!a || !b)
|
|
14
|
-
return 1;
|
|
15
|
-
const lA = relativeLuminance(a);
|
|
16
|
-
const lB = relativeLuminance(b);
|
|
17
|
-
const lighter = Math.max(lA, lB);
|
|
18
|
-
const darker = Math.min(lA, lB);
|
|
19
|
-
return (lighter + 0.05) / (darker + 0.05);
|
|
20
|
-
}
|
|
21
|
-
/**
|
|
22
|
-
* The `candidates` entry with the highest WCAG contrast ratio against
|
|
23
|
-
* `background`. Defaults to plain white/black; pass a grayscale or other
|
|
24
|
-
* palette to widen the choice. Falls back to the first candidate when
|
|
25
|
-
* `background` can't be parsed.
|
|
26
|
-
*/
|
|
27
|
-
export function contrastTextColor(background, candidates = ['#ffffff', '#000000']) {
|
|
28
|
-
if (candidates.length === 0)
|
|
29
|
-
return '#000000';
|
|
30
|
-
let best = candidates[0];
|
|
31
|
-
let bestRatio = -Infinity;
|
|
32
|
-
for (const candidate of candidates) {
|
|
33
|
-
const ratio = contrastRatio(background, candidate);
|
|
34
|
-
if (ratio > bestRatio) {
|
|
35
|
-
bestRatio = ratio;
|
|
36
|
-
best = candidate;
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
return best;
|
|
40
|
-
}
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
/** Resolves a `var(--x)` reference to its computed value; any other CSS color string passes through unchanged. */
|
|
2
|
-
export declare function resolveCssColor(color: string): string;
|
|
3
|
-
/** Parses any CSS color syntax (hex, rgb(), oklch(), named colors, hsl(), ...) into an `[r, g, b]` (0-255) triple, or `null` if it can't be resolved. */
|
|
4
|
-
export declare function parseRgb(color: string): [number, number, number] | null;
|
|
@@ -1,77 +0,0 @@
|
|
|
1
|
-
import { isBrowser } from '../../stores/device';
|
|
2
|
-
/** Resolves a `var(--x)` reference to its computed value; any other CSS color string passes through unchanged. */
|
|
3
|
-
export function resolveCssColor(color) {
|
|
4
|
-
if (!isBrowser)
|
|
5
|
-
return color;
|
|
6
|
-
if (!color.startsWith('var('))
|
|
7
|
-
return color;
|
|
8
|
-
const varName = color.slice(4, -1).trim();
|
|
9
|
-
const value = getComputedStyle(document.documentElement).getPropertyValue(varName).trim();
|
|
10
|
-
return value || color;
|
|
11
|
-
}
|
|
12
|
-
function clamp01(v) {
|
|
13
|
-
return Math.max(0, Math.min(1, v));
|
|
14
|
-
}
|
|
15
|
-
function linearToSrgb8(c) {
|
|
16
|
-
const s = c <= 0.0031308 ? 12.92 * c : 1.055 * Math.pow(c, 1 / 2.4) - 0.055;
|
|
17
|
-
return clamp01(s) * 255;
|
|
18
|
-
}
|
|
19
|
-
/**
|
|
20
|
-
* Parses `oklch(L C H)` directly instead of round-tripping through the
|
|
21
|
-
* browser's computed style: Chromium/Firefox serialize computed oklch()
|
|
22
|
-
* values back as oklch() (not rgb()), so the generic browser-fallback below
|
|
23
|
-
* sees an unchanged string on the second pass and its infinite-loop guard
|
|
24
|
-
* mistakes that for a parse failure.
|
|
25
|
-
*/
|
|
26
|
-
function parseOklch(color) {
|
|
27
|
-
const match = /^oklch\(\s*([\d.]+)(%)?\s+([\d.]+)\s+([\d.]+)/i.exec(color.trim());
|
|
28
|
-
if (!match)
|
|
29
|
-
return null;
|
|
30
|
-
const L = match[2] ? Number(match[1]) / 100 : Number(match[1]);
|
|
31
|
-
const C = Number(match[3]);
|
|
32
|
-
const H = (Number(match[4]) * Math.PI) / 180;
|
|
33
|
-
const a = C * Math.cos(H);
|
|
34
|
-
const b = C * Math.sin(H);
|
|
35
|
-
const l_ = L + 0.3963377774 * a + 0.2158037573 * b;
|
|
36
|
-
const m_ = L - 0.1055613458 * a - 0.0638541728 * b;
|
|
37
|
-
const s_ = L - 0.0894841775 * a - 1.291485548 * b;
|
|
38
|
-
const l = l_ ** 3;
|
|
39
|
-
const m = m_ ** 3;
|
|
40
|
-
const s = s_ ** 3;
|
|
41
|
-
const r = 4.0767416621 * l - 3.3077115913 * m + 0.2309699292 * s;
|
|
42
|
-
const g = -1.2684380046 * l + 2.6097574011 * m - 0.3413193965 * s;
|
|
43
|
-
const bl = -0.0041960863 * l - 0.7034186147 * m + 1.707614701 * s;
|
|
44
|
-
return [linearToSrgb8(r), linearToSrgb8(g), linearToSrgb8(bl)];
|
|
45
|
-
}
|
|
46
|
-
/** Parses any CSS color syntax (hex, rgb(), oklch(), named colors, hsl(), ...) into an `[r, g, b]` (0-255) triple, or `null` if it can't be resolved. */
|
|
47
|
-
export function parseRgb(color) {
|
|
48
|
-
const hex = /^#([0-9a-f]{3}|[0-9a-f]{6})$/i.exec(color.trim());
|
|
49
|
-
if (hex) {
|
|
50
|
-
const digits = hex[1].length === 3
|
|
51
|
-
? hex[1]
|
|
52
|
-
.split('')
|
|
53
|
-
.map((c) => c + c)
|
|
54
|
-
.join('')
|
|
55
|
-
: hex[1];
|
|
56
|
-
const num = parseInt(digits, 16);
|
|
57
|
-
return [(num >> 16) & 255, (num >> 8) & 255, num & 255];
|
|
58
|
-
}
|
|
59
|
-
const rgb = /^rgba?\(\s*([\d.]+)\s*,\s*([\d.]+)\s*,\s*([\d.]+)/i.exec(color);
|
|
60
|
-
if (rgb)
|
|
61
|
-
return [Number(rgb[1]), Number(rgb[2]), Number(rgb[3])];
|
|
62
|
-
const oklch = parseOklch(color);
|
|
63
|
-
if (oklch)
|
|
64
|
-
return oklch;
|
|
65
|
-
// Named colors, hsl(), and any other CSS color syntax: resolved to
|
|
66
|
-
// `rgb(...)` via the browser's computed style, then reparsed.
|
|
67
|
-
if (!isBrowser)
|
|
68
|
-
return null;
|
|
69
|
-
const el = document.createElement('div');
|
|
70
|
-
el.style.color = color;
|
|
71
|
-
document.body.appendChild(el);
|
|
72
|
-
const computed = getComputedStyle(el).color;
|
|
73
|
-
document.body.removeChild(el);
|
|
74
|
-
if (!computed || computed === color)
|
|
75
|
-
return null;
|
|
76
|
-
return parseRgb(computed);
|
|
77
|
-
}
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import type { ColorScaleConfig } from '../../types/layout/scales';
|
|
2
|
-
/** Linearly maps `v` from `[min, max]` onto `[0, 1]`, clamped at both ends. */
|
|
3
|
-
export declare function normalize(v: number, min: number, max: number): number;
|
|
4
|
-
/** Cycles through a discrete palette by series index - the default colour for an unstyled series. */
|
|
5
|
-
export declare function paletteColor(index: number, palette: string[]): string;
|
|
6
|
-
/** A simple 2-color continuous ramp over `[min, max]`. */
|
|
7
|
-
export declare function makeColorScale(min: number, max: number, colorMin: string, colorMax: string): (v: number) => string;
|
|
8
|
-
/**
|
|
9
|
-
* Resolves a {@link ColorScaleConfig} into a `value => color` function - the
|
|
10
|
-
* one shared implementation for every level the config can appear at
|
|
11
|
-
* (`scales.color`, a `segments` entry, a marker's own `scales`).
|
|
12
|
-
* `computedDomain` is the fallback when `config.domain` is unset;
|
|
13
|
-
* `defaultScheme` is used when `config.scheme` is unset - the theme's own
|
|
14
|
-
* 2-color continuous ramp, or a discrete palette for a categorical domain
|
|
15
|
-
* (e.g. per-series identity colors).
|
|
16
|
-
*/
|
|
17
|
-
export declare function resolveColorScale(config: ColorScaleConfig | undefined, computedDomain: [number, number] | string[] | undefined, defaultScheme: NonNullable<ColorScaleConfig['scheme']>): (value: unknown) => string;
|
package/dist/utils/color/ramp.js
DELETED
|
@@ -1,110 +0,0 @@
|
|
|
1
|
-
import { interpolateRgb, piecewise } from 'd3-interpolate';
|
|
2
|
-
import * as d3Chromatic from 'd3-scale-chromatic';
|
|
3
|
-
import { resolveCssColor } from './cssColor';
|
|
4
|
-
/** Linearly maps `v` from `[min, max]` onto `[0, 1]`, clamped at both ends. */
|
|
5
|
-
export function normalize(v, min, max) {
|
|
6
|
-
if (v == null)
|
|
7
|
-
return 0;
|
|
8
|
-
const denom = max - min || 1;
|
|
9
|
-
return Math.max(0, Math.min(1, (v - min) / denom));
|
|
10
|
-
}
|
|
11
|
-
/** Cycles through a discrete palette by series index - the default colour for an unstyled series. */
|
|
12
|
-
export function paletteColor(index, palette) {
|
|
13
|
-
if (palette.length === 0)
|
|
14
|
-
return 'currentColor';
|
|
15
|
-
return palette[index % palette.length];
|
|
16
|
-
}
|
|
17
|
-
/** A simple 2-color continuous ramp over `[min, max]`. */
|
|
18
|
-
export function makeColorScale(min, max, colorMin, colorMax) {
|
|
19
|
-
const resolvedMin = resolveCssColor(colorMin);
|
|
20
|
-
const resolvedMax = resolveCssColor(colorMax);
|
|
21
|
-
let interpolator;
|
|
22
|
-
try {
|
|
23
|
-
interpolator = interpolateRgb(resolvedMin, resolvedMax);
|
|
24
|
-
}
|
|
25
|
-
catch {
|
|
26
|
-
return () => '#ccc';
|
|
27
|
-
}
|
|
28
|
-
return (v) => {
|
|
29
|
-
if (v == null)
|
|
30
|
-
return '#ccc';
|
|
31
|
-
const t = normalize(v, min, max);
|
|
32
|
-
return interpolator(t);
|
|
33
|
-
};
|
|
34
|
-
}
|
|
35
|
-
/** `{turbo: interpolateTurbo, blues: interpolateBlues, ...}`, built from every `interpolate*` d3-scale-chromatic export. */
|
|
36
|
-
const NAMED_SCHEMES = Object.fromEntries(Object.entries(d3Chromatic)
|
|
37
|
-
.filter((entry) => entry[0].startsWith('interpolate'))
|
|
38
|
-
.map(([name, fn]) => [name.slice('interpolate'.length).toLowerCase(), fn]));
|
|
39
|
-
/**
|
|
40
|
-
* Resolves a {@link ColorScaleConfig} into a `value => color` function - the
|
|
41
|
-
* one shared implementation for every level the config can appear at
|
|
42
|
-
* (`scales.color`, a `segments` entry, a marker's own `scales`).
|
|
43
|
-
* `computedDomain` is the fallback when `config.domain` is unset;
|
|
44
|
-
* `defaultScheme` is used when `config.scheme` is unset - the theme's own
|
|
45
|
-
* 2-color continuous ramp, or a discrete palette for a categorical domain
|
|
46
|
-
* (e.g. per-series identity colors).
|
|
47
|
-
*/
|
|
48
|
-
export function resolveColorScale(config, computedDomain, defaultScheme) {
|
|
49
|
-
const domain = config?.domain ?? computedDomain;
|
|
50
|
-
const scheme = config?.scheme ?? defaultScheme;
|
|
51
|
-
const unknown = config?.unknown ?? '#ccc';
|
|
52
|
-
if (!domain || domain.length === 0)
|
|
53
|
-
return () => unknown;
|
|
54
|
-
// A category → color map always resolves by direct lookup, regardless of domain shape.
|
|
55
|
-
if (typeof scheme === 'object' && !Array.isArray(scheme)) {
|
|
56
|
-
return (v) => (v == null ? unknown : (scheme[String(v)] ?? unknown));
|
|
57
|
-
}
|
|
58
|
-
// A named d3-scale-chromatic ramp (e.g. 'turbo') resolves straight to its own interpolator.
|
|
59
|
-
const namedInterpolator = typeof scheme === 'string' ? NAMED_SCHEMES[scheme.toLowerCase()] : undefined;
|
|
60
|
-
if (typeof scheme === 'string' && !namedInterpolator)
|
|
61
|
-
return () => unknown;
|
|
62
|
-
const resolvedScheme = namedInterpolator ? undefined : scheme.map(resolveCssColor);
|
|
63
|
-
if (resolvedScheme && resolvedScheme.length === 0)
|
|
64
|
-
return () => unknown;
|
|
65
|
-
if (resolvedScheme && resolvedScheme.length === 1) {
|
|
66
|
-
const only = resolvedScheme[0];
|
|
67
|
-
return () => only;
|
|
68
|
-
}
|
|
69
|
-
// Categorical domain (explicit category list): sample the ramp evenly, one stop per category.
|
|
70
|
-
if (typeof domain[0] === 'string') {
|
|
71
|
-
const categories = domain;
|
|
72
|
-
const swatches = resolvedScheme ??
|
|
73
|
-
categories.map((_, i) => namedInterpolator(categories.length > 1 ? i / (categories.length - 1) : 0));
|
|
74
|
-
return (v) => {
|
|
75
|
-
if (v == null)
|
|
76
|
-
return unknown;
|
|
77
|
-
const idx = categories.indexOf(String(v));
|
|
78
|
-
return idx < 0 ? unknown : swatches[idx % swatches.length];
|
|
79
|
-
};
|
|
80
|
-
}
|
|
81
|
-
// Continuous domain: interpolate smoothly across every scheme stop (or the named ramp directly).
|
|
82
|
-
const [lo, hi] = domain;
|
|
83
|
-
let interpolator;
|
|
84
|
-
if (namedInterpolator) {
|
|
85
|
-
interpolator = namedInterpolator;
|
|
86
|
-
}
|
|
87
|
-
else {
|
|
88
|
-
try {
|
|
89
|
-
interpolator = piecewise(interpolateRgb, resolvedScheme);
|
|
90
|
-
}
|
|
91
|
-
catch {
|
|
92
|
-
return () => unknown;
|
|
93
|
-
}
|
|
94
|
-
}
|
|
95
|
-
const pivot = config?.pivot;
|
|
96
|
-
const stopCount = resolvedScheme?.length ?? Infinity;
|
|
97
|
-
return (v) => {
|
|
98
|
-
if (v == null)
|
|
99
|
-
return unknown;
|
|
100
|
-
const n = Number(v);
|
|
101
|
-
if (Number.isNaN(n))
|
|
102
|
-
return unknown;
|
|
103
|
-
const t = pivot != null && stopCount >= 3
|
|
104
|
-
? n <= pivot
|
|
105
|
-
? 0.5 * normalize(n, lo, pivot)
|
|
106
|
-
: 0.5 + 0.5 * normalize(n, pivot, hi)
|
|
107
|
-
: normalize(n, lo, hi);
|
|
108
|
-
return interpolator(t);
|
|
109
|
-
};
|
|
110
|
-
}
|
package/dist/utils/opacity.d.ts
DELETED
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import type { OpacityScaleConfig } from '../types/layout/scales';
|
|
2
|
-
/**
|
|
3
|
-
* Resolves an {@link OpacityScaleConfig} into a `value => opacity` function -
|
|
4
|
-
* mirrors `resolveColorScale`'s shape, but the output is always a number in
|
|
5
|
-
* roughly `[0,1]` instead of a CSS color string. Callers must apply the
|
|
6
|
-
* result as a literal constant per mark instance (never a per-row function
|
|
7
|
-
* handed straight to svelteplot) - see the type's own doc comment for why.
|
|
8
|
-
*/
|
|
9
|
-
export declare function resolveOpacityScale(config: OpacityScaleConfig | undefined, computedDomain: [number, number] | string[] | undefined, defaultRange: [number, number]): (value: unknown) => number;
|
package/dist/utils/opacity.js
DELETED
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
import { normalize } from './color';
|
|
2
|
-
/**
|
|
3
|
-
* Resolves an {@link OpacityScaleConfig} into a `value => opacity` function -
|
|
4
|
-
* mirrors `resolveColorScale`'s shape, but the output is always a number in
|
|
5
|
-
* roughly `[0,1]` instead of a CSS color string. Callers must apply the
|
|
6
|
-
* result as a literal constant per mark instance (never a per-row function
|
|
7
|
-
* handed straight to svelteplot) - see the type's own doc comment for why.
|
|
8
|
-
*/
|
|
9
|
-
export function resolveOpacityScale(config, computedDomain, defaultRange) {
|
|
10
|
-
const domain = config?.domain ?? computedDomain;
|
|
11
|
-
const range = config?.range ?? defaultRange;
|
|
12
|
-
const unknown = config?.unknown ?? 1;
|
|
13
|
-
if (!domain || domain.length === 0)
|
|
14
|
-
return () => unknown;
|
|
15
|
-
if (typeof range === 'object' && !Array.isArray(range)) {
|
|
16
|
-
return (v) => (v == null ? unknown : (range[String(v)] ?? unknown));
|
|
17
|
-
}
|
|
18
|
-
if (typeof domain[0] === 'string') {
|
|
19
|
-
const categories = domain;
|
|
20
|
-
const [lo, hi] = range;
|
|
21
|
-
return (v) => {
|
|
22
|
-
if (v == null)
|
|
23
|
-
return unknown;
|
|
24
|
-
const idx = categories.indexOf(String(v));
|
|
25
|
-
if (idx < 0)
|
|
26
|
-
return unknown;
|
|
27
|
-
return categories.length > 1 ? lo + ((hi - lo) * idx) / (categories.length - 1) : lo;
|
|
28
|
-
};
|
|
29
|
-
}
|
|
30
|
-
const [dLo, dHi] = domain;
|
|
31
|
-
const [rLo, rHi] = range;
|
|
32
|
-
return (v) => {
|
|
33
|
-
if (v == null)
|
|
34
|
-
return unknown;
|
|
35
|
-
const t = normalize(Number(v), dLo, dHi);
|
|
36
|
-
return rLo + (rHi - rLo) * t;
|
|
37
|
-
};
|
|
38
|
-
}
|
package/examples/data.ts
DELETED
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
export type Row = { year: number; region: string; value: number };
|
|
2
|
-
|
|
3
|
-
const REGIONS = ['North', 'Center', 'South'];
|
|
4
|
-
|
|
5
|
-
/** Tiny deterministic dataset shared by the examples: one value per region and year. */
|
|
6
|
-
export const ROWS: Row[] = REGIONS.flatMap((region, r) =>
|
|
7
|
-
Array.from({ length: 8 }, (_, i) => ({
|
|
8
|
-
year: 2016 + i,
|
|
9
|
-
region,
|
|
10
|
-
value: 100 + (r + 1) * 4 * i + (i % 3) * 2
|
|
11
|
-
}))
|
|
12
|
-
);
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
/package/dist/types/{plots/histogram/props.js → markers/channels/commonMarkerConfigWithRowOffset.js}
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|