@ggts-sh/svelte 0.43.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/LICENSE +21 -0
- package/README.md +97 -0
- package/bin/ggts-codemod.js +47 -0
- package/dist/GGPlot.svelte +491 -0
- package/dist/GGPlot.svelte.d.ts +67 -0
- package/dist/a11y/CanvasA11y.svelte +115 -0
- package/dist/a11y/CanvasA11y.svelte.d.ts +15 -0
- package/dist/a11y/canvas-a11y.d.ts +1 -0
- package/dist/a11y/canvas-a11y.js +2 -0
- package/dist/assembly/assemble.d.ts +1 -0
- package/dist/assembly/assemble.js +1 -0
- package/dist/assembly/labels.d.ts +43 -0
- package/dist/assembly/labels.js +126 -0
- package/dist/assembly/layout.d.ts +158 -0
- package/dist/assembly/layout.js +175 -0
- package/dist/chrome/StatusChrome.svelte +125 -0
- package/dist/chrome/StatusChrome.svelte.d.ts +16 -0
- package/dist/chrome/ToolRail.svelte +293 -0
- package/dist/chrome/ToolRail.svelte.d.ts +26 -0
- package/dist/chrome/chrome-state.svelte.d.ts +63 -0
- package/dist/chrome/chrome-state.svelte.js +158 -0
- package/dist/chrome/theme-css.d.ts +16 -0
- package/dist/chrome/theme-css.js +16 -0
- package/dist/codemod/cli.d.ts +16 -0
- package/dist/codemod/cli.js +150 -0
- package/dist/codemod/edits.d.ts +28 -0
- package/dist/codemod/edits.js +36 -0
- package/dist/codemod/index.d.ts +10 -0
- package/dist/codemod/index.js +10 -0
- package/dist/codemod/migrate-plot-props-rewrite.d.ts +86 -0
- package/dist/codemod/migrate-plot-props-rewrite.js +228 -0
- package/dist/codemod/migrate-plot-props.d.ts +38 -0
- package/dist/codemod/migrate-plot-props.js +159 -0
- package/dist/coord/Coord.svelte +21 -0
- package/dist/coord/Coord.svelte.d.ts +16 -0
- package/dist/coord/CoordCartesian.svelte +11 -0
- package/dist/coord/CoordCartesian.svelte.d.ts +18 -0
- package/dist/coord/CoordFixed.svelte +17 -0
- package/dist/coord/CoordFixed.svelte.d.ts +10 -0
- package/dist/coord/CoordFlip.svelte +11 -0
- package/dist/coord/CoordFlip.svelte.d.ts +18 -0
- package/dist/coord/CoordPolar.svelte +16 -0
- package/dist/coord/CoordPolar.svelte.d.ts +9 -0
- package/dist/coord/CoordRadial.svelte +16 -0
- package/dist/coord/CoordRadial.svelte.d.ts +9 -0
- package/dist/coord/CoordSf.svelte +16 -0
- package/dist/coord/CoordSf.svelte.d.ts +9 -0
- package/dist/coord/CoordTransform.svelte +16 -0
- package/dist/coord/CoordTransform.svelte.d.ts +9 -0
- package/dist/data/index.d.ts +1 -0
- package/dist/data/index.js +2 -0
- package/dist/diagnostics/composition.d.ts +112 -0
- package/dist/diagnostics/composition.js +203 -0
- package/dist/diagnostics/deprecation.d.ts +58 -0
- package/dist/diagnostics/deprecation.js +27 -0
- package/dist/diagnostics/plot-engine-diagnostics.svelte.d.ts +44 -0
- package/dist/diagnostics/plot-engine-diagnostics.svelte.js +193 -0
- package/dist/facet/Facet.svelte +23 -0
- package/dist/facet/Facet.svelte.d.ts +16 -0
- package/dist/facet/FacetGrid.svelte +32 -0
- package/dist/facet/FacetGrid.svelte.d.ts +16 -0
- package/dist/facet/FacetWrap.svelte +32 -0
- package/dist/facet/FacetWrap.svelte.d.ts +16 -0
- package/dist/fonts/RobotoCondensed-Bold.ttf +0 -0
- package/dist/fonts/RobotoCondensed-Light.ttf +0 -0
- package/dist/fonts/RobotoCondensed-Regular.ttf +0 -0
- package/dist/fonts/THIRD_PARTY_NOTICES.txt +416 -0
- package/dist/geoms/GeomAbline.svelte +25 -0
- package/dist/geoms/GeomAbline.svelte.d.ts +7 -0
- package/dist/geoms/GeomArea.svelte +12 -0
- package/dist/geoms/GeomArea.svelte.d.ts +7 -0
- package/dist/geoms/GeomBar.svelte +12 -0
- package/dist/geoms/GeomBar.svelte.d.ts +7 -0
- package/dist/geoms/GeomBin2d.svelte +21 -0
- package/dist/geoms/GeomBin2d.svelte.d.ts +7 -0
- package/dist/geoms/GeomBlank.svelte +12 -0
- package/dist/geoms/GeomBlank.svelte.d.ts +7 -0
- package/dist/geoms/GeomBoxplot.svelte +25 -0
- package/dist/geoms/GeomBoxplot.svelte.d.ts +7 -0
- package/dist/geoms/GeomCol.svelte +12 -0
- package/dist/geoms/GeomCol.svelte.d.ts +7 -0
- package/dist/geoms/GeomContour.svelte +25 -0
- package/dist/geoms/GeomContour.svelte.d.ts +7 -0
- package/dist/geoms/GeomCount.svelte +12 -0
- package/dist/geoms/GeomCount.svelte.d.ts +7 -0
- package/dist/geoms/GeomCrossbar.svelte +25 -0
- package/dist/geoms/GeomCrossbar.svelte.d.ts +7 -0
- package/dist/geoms/GeomCurve.svelte +21 -0
- package/dist/geoms/GeomCurve.svelte.d.ts +7 -0
- package/dist/geoms/GeomDensity.svelte +25 -0
- package/dist/geoms/GeomDensity.svelte.d.ts +7 -0
- package/dist/geoms/GeomDensity2d.svelte +25 -0
- package/dist/geoms/GeomDensity2d.svelte.d.ts +7 -0
- package/dist/geoms/GeomDensity2dFilled.svelte +25 -0
- package/dist/geoms/GeomDensity2dFilled.svelte.d.ts +7 -0
- package/dist/geoms/GeomDotplot.svelte +25 -0
- package/dist/geoms/GeomDotplot.svelte.d.ts +7 -0
- package/dist/geoms/GeomErrorbar.svelte +25 -0
- package/dist/geoms/GeomErrorbar.svelte.d.ts +7 -0
- package/dist/geoms/GeomFreqpoly.svelte +25 -0
- package/dist/geoms/GeomFreqpoly.svelte.d.ts +7 -0
- package/dist/geoms/GeomFunction.svelte +25 -0
- package/dist/geoms/GeomFunction.svelte.d.ts +7 -0
- package/dist/geoms/GeomHex.svelte +21 -0
- package/dist/geoms/GeomHex.svelte.d.ts +7 -0
- package/dist/geoms/GeomHistogram.svelte +25 -0
- package/dist/geoms/GeomHistogram.svelte.d.ts +7 -0
- package/dist/geoms/GeomHline.svelte +12 -0
- package/dist/geoms/GeomHline.svelte.d.ts +7 -0
- package/dist/geoms/GeomJitter.svelte +35 -0
- package/dist/geoms/GeomJitter.svelte.d.ts +13 -0
- package/dist/geoms/GeomLabel.svelte +12 -0
- package/dist/geoms/GeomLabel.svelte.d.ts +7 -0
- package/dist/geoms/GeomLine.svelte +12 -0
- package/dist/geoms/GeomLine.svelte.d.ts +7 -0
- package/dist/geoms/GeomLinerange.svelte +25 -0
- package/dist/geoms/GeomLinerange.svelte.d.ts +7 -0
- package/dist/geoms/GeomMap.svelte +21 -0
- package/dist/geoms/GeomMap.svelte.d.ts +7 -0
- package/dist/geoms/GeomPath.svelte +12 -0
- package/dist/geoms/GeomPath.svelte.d.ts +7 -0
- package/dist/geoms/GeomPoint.svelte +12 -0
- package/dist/geoms/GeomPoint.svelte.d.ts +7 -0
- package/dist/geoms/GeomPointrange.svelte +25 -0
- package/dist/geoms/GeomPointrange.svelte.d.ts +7 -0
- package/dist/geoms/GeomPolygon.svelte +25 -0
- package/dist/geoms/GeomPolygon.svelte.d.ts +7 -0
- package/dist/geoms/GeomQq.svelte +21 -0
- package/dist/geoms/GeomQq.svelte.d.ts +7 -0
- package/dist/geoms/GeomQqLine.svelte +25 -0
- package/dist/geoms/GeomQqLine.svelte.d.ts +7 -0
- package/dist/geoms/GeomQuantile.svelte +25 -0
- package/dist/geoms/GeomQuantile.svelte.d.ts +7 -0
- package/dist/geoms/GeomRaster.svelte +25 -0
- package/dist/geoms/GeomRaster.svelte.d.ts +7 -0
- package/dist/geoms/GeomRect.svelte +12 -0
- package/dist/geoms/GeomRect.svelte.d.ts +7 -0
- package/dist/geoms/GeomRibbon.svelte +16 -0
- package/dist/geoms/GeomRibbon.svelte.d.ts +7 -0
- package/dist/geoms/GeomRug.svelte +21 -0
- package/dist/geoms/GeomRug.svelte.d.ts +7 -0
- package/dist/geoms/GeomRule.svelte +12 -0
- package/dist/geoms/GeomRule.svelte.d.ts +7 -0
- package/dist/geoms/GeomSegment.svelte +16 -0
- package/dist/geoms/GeomSegment.svelte.d.ts +7 -0
- package/dist/geoms/GeomSf.svelte +21 -0
- package/dist/geoms/GeomSf.svelte.d.ts +7 -0
- package/dist/geoms/GeomSfLabel.svelte +25 -0
- package/dist/geoms/GeomSfLabel.svelte.d.ts +7 -0
- package/dist/geoms/GeomSfText.svelte +25 -0
- package/dist/geoms/GeomSfText.svelte.d.ts +7 -0
- package/dist/geoms/GeomSmooth.svelte +25 -0
- package/dist/geoms/GeomSmooth.svelte.d.ts +7 -0
- package/dist/geoms/GeomSpoke.svelte +21 -0
- package/dist/geoms/GeomSpoke.svelte.d.ts +7 -0
- package/dist/geoms/GeomStep.svelte +12 -0
- package/dist/geoms/GeomStep.svelte.d.ts +7 -0
- package/dist/geoms/GeomText.svelte +12 -0
- package/dist/geoms/GeomText.svelte.d.ts +7 -0
- package/dist/geoms/GeomTile.svelte +21 -0
- package/dist/geoms/GeomTile.svelte.d.ts +7 -0
- package/dist/geoms/GeomViolin.svelte +25 -0
- package/dist/geoms/GeomViolin.svelte.d.ts +7 -0
- package/dist/geoms/GeomVline.svelte +12 -0
- package/dist/geoms/GeomVline.svelte.d.ts +7 -0
- package/dist/geoms/factory.svelte.d.ts +41 -0
- package/dist/geoms/factory.svelte.js +60 -0
- package/dist/geoms/registry.svelte.d.ts +71 -0
- package/dist/geoms/registry.svelte.js +177 -0
- package/dist/guides/GuideAxis.svelte +20 -0
- package/dist/guides/GuideAxis.svelte.d.ts +14 -0
- package/dist/guides/GuideColorbar.svelte +22 -0
- package/dist/guides/GuideColorbar.svelte.d.ts +13 -0
- package/dist/guides/GuideColorsteps.svelte +22 -0
- package/dist/guides/GuideColorsteps.svelte.d.ts +13 -0
- package/dist/guides/GuideLegend.svelte +90 -0
- package/dist/guides/GuideLegend.svelte.d.ts +37 -0
- package/dist/guides/GuideNone.svelte +19 -0
- package/dist/guides/GuideNone.svelte.d.ts +7 -0
- package/dist/guides/Guides.svelte +14 -0
- package/dist/guides/Guides.svelte.d.ts +13 -0
- package/dist/guides/factory.svelte.d.ts +36 -0
- package/dist/guides/factory.svelte.js +15 -0
- package/dist/index.d.ts +418 -0
- package/dist/index.js +376 -0
- package/dist/inspection/Inspect.svelte +71 -0
- package/dist/inspection/Inspect.svelte.d.ts +36 -0
- package/dist/inspection/Tooltip.svelte +439 -0
- package/dist/inspection/Tooltip.svelte.d.ts +32 -0
- package/dist/inspection/apply.d.ts +120 -0
- package/dist/inspection/apply.js +99 -0
- package/dist/inspection/coordinator.d.ts +51 -0
- package/dist/inspection/coordinator.js +354 -0
- package/dist/inspection/display-members.d.ts +1 -0
- package/dist/inspection/display-members.js +2 -0
- package/dist/inspection/frame.d.ts +90 -0
- package/dist/inspection/frame.js +76 -0
- package/dist/inspection/group-total.d.ts +1 -0
- package/dist/inspection/group-total.js +2 -0
- package/dist/inspection/inspect-guide-axes.d.ts +10 -0
- package/dist/inspection/inspect-guide-axes.js +24 -0
- package/dist/inspection/inspection-reconcile.svelte.d.ts +37 -0
- package/dist/inspection/inspection-reconcile.svelte.js +33 -0
- package/dist/inspection/inspection-state.svelte.d.ts +86 -0
- package/dist/inspection/inspection-state.svelte.js +347 -0
- package/dist/inspection/inspection-traversal.svelte.d.ts +29 -0
- package/dist/inspection/inspection-traversal.svelte.js +52 -0
- package/dist/inspection/pointer-inspect.d.ts +74 -0
- package/dist/inspection/pointer-inspect.js +158 -0
- package/dist/inspection/resolver.d.ts +3 -0
- package/dist/inspection/resolver.js +4 -0
- package/dist/inspection/teardown.d.ts +199 -0
- package/dist/inspection/teardown.js +181 -0
- package/dist/inspection/tooltip-chrome.d.ts +19 -0
- package/dist/inspection/tooltip-chrome.js +17 -0
- package/dist/inspection/tooltip-motion.d.ts +25 -0
- package/dist/inspection/tooltip-motion.js +32 -0
- package/dist/inspection/tooltip-presence.svelte.d.ts +49 -0
- package/dist/inspection/tooltip-presence.svelte.js +110 -0
- package/dist/inspection/tooltip-total.d.ts +1 -0
- package/dist/inspection/tooltip-total.js +2 -0
- package/dist/interaction/capability-resolution.svelte.d.ts +42 -0
- package/dist/interaction/capability-resolution.svelte.js +40 -0
- package/dist/interaction/capability.d.ts +129 -0
- package/dist/interaction/capability.js +134 -0
- package/dist/interaction/controller.svelte.d.ts +4 -0
- package/dist/interaction/controller.svelte.js +43 -0
- package/dist/interaction/inspect-geom-advisories.d.ts +10 -0
- package/dist/interaction/inspect-geom-advisories.js +10 -0
- package/dist/interaction/interaction-context.svelte.d.ts +57 -0
- package/dist/interaction/interaction-context.svelte.js +4 -0
- package/dist/interaction/interaction-diagnostics.d.ts +11 -0
- package/dist/interaction/interaction-diagnostics.js +173 -0
- package/dist/interaction/interaction-states.svelte.d.ts +84 -0
- package/dist/interaction/interaction-states.svelte.js +55 -0
- package/dist/interaction/interaction.d.ts +304 -0
- package/dist/interaction/interaction.js +7 -0
- package/dist/interaction/normalize-interaction-config.d.ts +9 -0
- package/dist/interaction/normalize-interaction-config.js +112 -0
- package/dist/interaction/reducer.d.ts +97 -0
- package/dist/interaction/reducer.js +117 -0
- package/dist/interaction/resolve-inspect-capability.d.ts +40 -0
- package/dist/interaction/resolve-inspect-capability.js +50 -0
- package/dist/interaction/scoped-store.svelte.d.ts +73 -0
- package/dist/interaction/scoped-store.svelte.js +93 -0
- package/dist/interaction/target.d.ts +91 -0
- package/dist/interaction/target.js +68 -0
- package/dist/interaction/transition-owner.d.ts +19 -0
- package/dist/interaction/transition-owner.js +10 -0
- package/dist/interaction/wiring-advisories.d.ts +33 -0
- package/dist/interaction/wiring-advisories.js +46 -0
- package/dist/interval/BoundsEditor.svelte +332 -0
- package/dist/interval/BoundsEditor.svelte.d.ts +10 -0
- package/dist/interval/bounds-editor.d.ts +1 -0
- package/dist/interval/bounds-editor.js +2 -0
- package/dist/interval/consumption.d.ts +1 -0
- package/dist/interval/consumption.js +2 -0
- package/dist/interval/interval-bounds-state.svelte.d.ts +53 -0
- package/dist/interval/interval-bounds-state.svelte.js +117 -0
- package/dist/interval/interval-state-helpers.d.ts +10 -0
- package/dist/interval/interval-state-helpers.js +34 -0
- package/dist/interval/interval-state.svelte.d.ts +60 -0
- package/dist/interval/interval-state.svelte.js +360 -0
- package/dist/interval/interval.d.ts +1 -0
- package/dist/interval/interval.js +2 -0
- package/dist/interval/precise-bounds.d.ts +1 -0
- package/dist/interval/precise-bounds.js +2 -0
- package/dist/interval/query.d.ts +1 -0
- package/dist/interval/query.js +2 -0
- package/dist/labs/Labs.svelte +29 -0
- package/dist/labs/Labs.svelte.d.ts +16 -0
- package/dist/layers/fold.d.ts +2 -0
- package/dist/layers/fold.js +1 -0
- package/dist/layers/grammar-families.d.ts +2 -0
- package/dist/layers/grammar-families.js +1 -0
- package/dist/layers/plot-layer-contract.d.ts +1 -0
- package/dist/layers/plot-layer-contract.js +29 -0
- package/dist/layers/plot-layer.svelte.d.ts +42 -0
- package/dist/layers/plot-layer.svelte.js +34 -0
- package/dist/layers/types.d.ts +2 -0
- package/dist/layers/types.js +1 -0
- package/dist/legend/Legend.svelte +24 -0
- package/dist/legend/Legend.svelte.d.ts +5 -0
- package/dist/legend/LegendFilters.svelte +196 -0
- package/dist/legend/LegendFilters.svelte.d.ts +8 -0
- package/dist/legend/LegendTargets.svelte +393 -0
- package/dist/legend/LegendTargets.svelte.d.ts +31 -0
- package/dist/legend/entry-key-index.d.ts +1 -0
- package/dist/legend/entry-key-index.js +2 -0
- package/dist/legend/entry-key-index.svelte.d.ts +34 -0
- package/dist/legend/entry-key-index.svelte.js +35 -0
- package/dist/legend/filter-state.svelte.d.ts +66 -0
- package/dist/legend/filter-state.svelte.js +284 -0
- package/dist/legend/filter.d.ts +1 -0
- package/dist/legend/filter.js +2 -0
- package/dist/legend/focus-emphasis.d.ts +72 -0
- package/dist/legend/focus-emphasis.js +91 -0
- package/dist/legend/focus-plans.d.ts +89 -0
- package/dist/legend/focus-plans.js +72 -0
- package/dist/legend/focus-reconcile.svelte.d.ts +53 -0
- package/dist/legend/focus-reconcile.svelte.js +113 -0
- package/dist/legend/focus-state.svelte.d.ts +73 -0
- package/dist/legend/focus-state.svelte.js +338 -0
- package/dist/legend/focus.d.ts +1 -0
- package/dist/legend/focus.js +2 -0
- package/dist/legend/resolve-legend-capability.d.ts +52 -0
- package/dist/legend/resolve-legend-capability.js +68 -0
- package/dist/legend/resolve-legend-filter.d.ts +65 -0
- package/dist/legend/resolve-legend-filter.js +54 -0
- package/dist/legend/resolve-legend-focus.d.ts +58 -0
- package/dist/legend/resolve-legend-focus.js +36 -0
- package/dist/legend/surface.d.ts +190 -0
- package/dist/legend/surface.js +158 -0
- package/dist/plot-engine-deriveds.svelte.d.ts +75 -0
- package/dist/plot-engine-deriveds.svelte.js +166 -0
- package/dist/plot-engine.svelte.d.ts +116 -0
- package/dist/plot-engine.svelte.js +316 -0
- package/dist/plot-props.d.ts +144 -0
- package/dist/plot-props.js +81 -0
- package/dist/runtime/announcer.svelte.d.ts +17 -0
- package/dist/runtime/announcer.svelte.js +28 -0
- package/dist/runtime/paint.d.ts +38 -0
- package/dist/runtime/paint.js +45 -0
- package/dist/runtime/resolve-datum-key.d.ts +53 -0
- package/dist/runtime/resolve-datum-key.js +73 -0
- package/dist/runtime/runtime.svelte.d.ts +37 -0
- package/dist/runtime/runtime.svelte.js +233 -0
- package/dist/runtime/semantic-candidate-projection.svelte.d.ts +29 -0
- package/dist/runtime/semantic-candidate-projection.svelte.js +137 -0
- package/dist/runtime/semantic-data-identity.d.ts +64 -0
- package/dist/runtime/semantic-data-identity.js +153 -0
- package/dist/runtime/semantic-keys-projection.d.ts +22 -0
- package/dist/runtime/semantic-keys-projection.js +40 -0
- package/dist/runtime/semantic-keys-resolve.d.ts +69 -0
- package/dist/runtime/semantic-keys-resolve.js +122 -0
- package/dist/runtime/semantic-keys.svelte.d.ts +30 -0
- package/dist/runtime/semantic-keys.svelte.js +69 -0
- package/dist/runtime/semantic-source-identity.d.ts +9 -0
- package/dist/runtime/semantic-source-identity.js +16 -0
- package/dist/scale/Scale.svelte +26 -0
- package/dist/scale/Scale.svelte.d.ts +21 -0
- package/dist/scale/ScaleAlphaBinned.svelte +14 -0
- package/dist/scale/ScaleAlphaBinned.svelte.d.ts +4 -0
- package/dist/scale/ScaleAlphaContinuous.svelte +14 -0
- package/dist/scale/ScaleAlphaContinuous.svelte.d.ts +4 -0
- package/dist/scale/ScaleAlphaDate.svelte +15 -0
- package/dist/scale/ScaleAlphaDate.svelte.d.ts +5 -0
- package/dist/scale/ScaleAlphaDatetime.svelte +15 -0
- package/dist/scale/ScaleAlphaDatetime.svelte.d.ts +5 -0
- package/dist/scale/ScaleAlphaDiscrete.svelte +14 -0
- package/dist/scale/ScaleAlphaDiscrete.svelte.d.ts +4 -0
- package/dist/scale/ScaleAlphaIdentity.svelte +14 -0
- package/dist/scale/ScaleAlphaIdentity.svelte.d.ts +4 -0
- package/dist/scale/ScaleAlphaManual.svelte +14 -0
- package/dist/scale/ScaleAlphaManual.svelte.d.ts +4 -0
- package/dist/scale/ScaleColorBinned.svelte +14 -0
- package/dist/scale/ScaleColorBinned.svelte.d.ts +3 -0
- package/dist/scale/ScaleColorBrewer.svelte +14 -0
- package/dist/scale/ScaleColorBrewer.svelte.d.ts +4 -0
- package/dist/scale/ScaleColorContinuous.svelte +14 -0
- package/dist/scale/ScaleColorContinuous.svelte.d.ts +4 -0
- package/dist/scale/ScaleColorDate.svelte +15 -0
- package/dist/scale/ScaleColorDate.svelte.d.ts +5 -0
- package/dist/scale/ScaleColorDatetime.svelte +15 -0
- package/dist/scale/ScaleColorDatetime.svelte.d.ts +5 -0
- package/dist/scale/ScaleColorDiscrete.svelte +14 -0
- package/dist/scale/ScaleColorDiscrete.svelte.d.ts +4 -0
- package/dist/scale/ScaleColorDistiller.svelte +14 -0
- package/dist/scale/ScaleColorDistiller.svelte.d.ts +4 -0
- package/dist/scale/ScaleColorFermenter.svelte +14 -0
- package/dist/scale/ScaleColorFermenter.svelte.d.ts +4 -0
- package/dist/scale/ScaleColorGradient.svelte +11 -0
- package/dist/scale/ScaleColorGradient.svelte.d.ts +4 -0
- package/dist/scale/ScaleColorGradient2.svelte +14 -0
- package/dist/scale/ScaleColorGradient2.svelte.d.ts +4 -0
- package/dist/scale/ScaleColorGradientn.svelte +14 -0
- package/dist/scale/ScaleColorGradientn.svelte.d.ts +4 -0
- package/dist/scale/ScaleColorGrey.svelte +11 -0
- package/dist/scale/ScaleColorGrey.svelte.d.ts +4 -0
- package/dist/scale/ScaleColorHue.svelte +11 -0
- package/dist/scale/ScaleColorHue.svelte.d.ts +4 -0
- package/dist/scale/ScaleColorIdentity.svelte +14 -0
- package/dist/scale/ScaleColorIdentity.svelte.d.ts +4 -0
- package/dist/scale/ScaleColorLog10.svelte +14 -0
- package/dist/scale/ScaleColorLog10.svelte.d.ts +4 -0
- package/dist/scale/ScaleColorManual.svelte +14 -0
- package/dist/scale/ScaleColorManual.svelte.d.ts +4 -0
- package/dist/scale/ScaleColorOrdinal.svelte +14 -0
- package/dist/scale/ScaleColorOrdinal.svelte.d.ts +3 -0
- package/dist/scale/ScaleColorSqrt.svelte +14 -0
- package/dist/scale/ScaleColorSqrt.svelte.d.ts +4 -0
- package/dist/scale/ScaleColorSteps.svelte +11 -0
- package/dist/scale/ScaleColorSteps.svelte.d.ts +4 -0
- package/dist/scale/ScaleColorSteps2.svelte +11 -0
- package/dist/scale/ScaleColorSteps2.svelte.d.ts +4 -0
- package/dist/scale/ScaleColorStepsn.svelte +11 -0
- package/dist/scale/ScaleColorStepsn.svelte.d.ts +4 -0
- package/dist/scale/ScaleColorViridisB.svelte +11 -0
- package/dist/scale/ScaleColorViridisB.svelte.d.ts +4 -0
- package/dist/scale/ScaleColorViridisC.svelte +11 -0
- package/dist/scale/ScaleColorViridisC.svelte.d.ts +4 -0
- package/dist/scale/ScaleColorViridisD.svelte +11 -0
- package/dist/scale/ScaleColorViridisD.svelte.d.ts +4 -0
- package/dist/scale/ScaleFillBinned.svelte +11 -0
- package/dist/scale/ScaleFillBinned.svelte.d.ts +3 -0
- package/dist/scale/ScaleFillBrewer.svelte +11 -0
- package/dist/scale/ScaleFillBrewer.svelte.d.ts +4 -0
- package/dist/scale/ScaleFillContinuous.svelte +14 -0
- package/dist/scale/ScaleFillContinuous.svelte.d.ts +4 -0
- package/dist/scale/ScaleFillDate.svelte +12 -0
- package/dist/scale/ScaleFillDate.svelte.d.ts +5 -0
- package/dist/scale/ScaleFillDatetime.svelte +15 -0
- package/dist/scale/ScaleFillDatetime.svelte.d.ts +5 -0
- package/dist/scale/ScaleFillDiscrete.svelte +14 -0
- package/dist/scale/ScaleFillDiscrete.svelte.d.ts +4 -0
- package/dist/scale/ScaleFillDistiller.svelte +14 -0
- package/dist/scale/ScaleFillDistiller.svelte.d.ts +4 -0
- package/dist/scale/ScaleFillFermenter.svelte +14 -0
- package/dist/scale/ScaleFillFermenter.svelte.d.ts +4 -0
- package/dist/scale/ScaleFillGradient.svelte +11 -0
- package/dist/scale/ScaleFillGradient.svelte.d.ts +4 -0
- package/dist/scale/ScaleFillGradient2.svelte +14 -0
- package/dist/scale/ScaleFillGradient2.svelte.d.ts +4 -0
- package/dist/scale/ScaleFillGradientn.svelte +14 -0
- package/dist/scale/ScaleFillGradientn.svelte.d.ts +4 -0
- package/dist/scale/ScaleFillGrey.svelte +11 -0
- package/dist/scale/ScaleFillGrey.svelte.d.ts +4 -0
- package/dist/scale/ScaleFillHue.svelte +11 -0
- package/dist/scale/ScaleFillHue.svelte.d.ts +4 -0
- package/dist/scale/ScaleFillIdentity.svelte +14 -0
- package/dist/scale/ScaleFillIdentity.svelte.d.ts +4 -0
- package/dist/scale/ScaleFillLog10.svelte +14 -0
- package/dist/scale/ScaleFillLog10.svelte.d.ts +4 -0
- package/dist/scale/ScaleFillManual.svelte +11 -0
- package/dist/scale/ScaleFillManual.svelte.d.ts +4 -0
- package/dist/scale/ScaleFillOrdinal.svelte +14 -0
- package/dist/scale/ScaleFillOrdinal.svelte.d.ts +3 -0
- package/dist/scale/ScaleFillSqrt.svelte +14 -0
- package/dist/scale/ScaleFillSqrt.svelte.d.ts +4 -0
- package/dist/scale/ScaleFillSteps.svelte +11 -0
- package/dist/scale/ScaleFillSteps.svelte.d.ts +4 -0
- package/dist/scale/ScaleFillSteps2.svelte +11 -0
- package/dist/scale/ScaleFillSteps2.svelte.d.ts +4 -0
- package/dist/scale/ScaleFillStepsn.svelte +11 -0
- package/dist/scale/ScaleFillStepsn.svelte.d.ts +4 -0
- package/dist/scale/ScaleFillViridisB.svelte +11 -0
- package/dist/scale/ScaleFillViridisB.svelte.d.ts +4 -0
- package/dist/scale/ScaleFillViridisC.svelte +11 -0
- package/dist/scale/ScaleFillViridisC.svelte.d.ts +4 -0
- package/dist/scale/ScaleFillViridisD.svelte +11 -0
- package/dist/scale/ScaleFillViridisD.svelte.d.ts +4 -0
- package/dist/scale/ScaleLinetypeBinned.svelte +15 -0
- package/dist/scale/ScaleLinetypeBinned.svelte.d.ts +4 -0
- package/dist/scale/ScaleLinetypeDiscrete.svelte +15 -0
- package/dist/scale/ScaleLinetypeDiscrete.svelte.d.ts +4 -0
- package/dist/scale/ScaleLinetypeIdentity.svelte +15 -0
- package/dist/scale/ScaleLinetypeIdentity.svelte.d.ts +4 -0
- package/dist/scale/ScaleLinetypeManual.svelte +15 -0
- package/dist/scale/ScaleLinetypeManual.svelte.d.ts +4 -0
- package/dist/scale/ScaleLinewidthBinned.svelte +14 -0
- package/dist/scale/ScaleLinewidthBinned.svelte.d.ts +4 -0
- package/dist/scale/ScaleLinewidthContinuous.svelte +14 -0
- package/dist/scale/ScaleLinewidthContinuous.svelte.d.ts +4 -0
- package/dist/scale/ScaleLinewidthDate.svelte +15 -0
- package/dist/scale/ScaleLinewidthDate.svelte.d.ts +5 -0
- package/dist/scale/ScaleLinewidthDatetime.svelte +15 -0
- package/dist/scale/ScaleLinewidthDatetime.svelte.d.ts +5 -0
- package/dist/scale/ScaleLinewidthDiscrete.svelte +14 -0
- package/dist/scale/ScaleLinewidthDiscrete.svelte.d.ts +4 -0
- package/dist/scale/ScaleLinewidthIdentity.svelte +14 -0
- package/dist/scale/ScaleLinewidthIdentity.svelte.d.ts +4 -0
- package/dist/scale/ScaleLinewidthManual.svelte +14 -0
- package/dist/scale/ScaleLinewidthManual.svelte.d.ts +4 -0
- package/dist/scale/ScaleRadius.svelte +11 -0
- package/dist/scale/ScaleRadius.svelte.d.ts +4 -0
- package/dist/scale/ScaleShapeBinned.svelte +15 -0
- package/dist/scale/ScaleShapeBinned.svelte.d.ts +4 -0
- package/dist/scale/ScaleShapeDiscrete.svelte +15 -0
- package/dist/scale/ScaleShapeDiscrete.svelte.d.ts +4 -0
- package/dist/scale/ScaleShapeIdentity.svelte +15 -0
- package/dist/scale/ScaleShapeIdentity.svelte.d.ts +4 -0
- package/dist/scale/ScaleShapeManual.svelte +15 -0
- package/dist/scale/ScaleShapeManual.svelte.d.ts +4 -0
- package/dist/scale/ScaleSizeArea.svelte +11 -0
- package/dist/scale/ScaleSizeArea.svelte.d.ts +4 -0
- package/dist/scale/ScaleSizeBinned.svelte +14 -0
- package/dist/scale/ScaleSizeBinned.svelte.d.ts +4 -0
- package/dist/scale/ScaleSizeBinnedArea.svelte +14 -0
- package/dist/scale/ScaleSizeBinnedArea.svelte.d.ts +4 -0
- package/dist/scale/ScaleSizeContinuous.svelte +14 -0
- package/dist/scale/ScaleSizeContinuous.svelte.d.ts +4 -0
- package/dist/scale/ScaleSizeDate.svelte +15 -0
- package/dist/scale/ScaleSizeDate.svelte.d.ts +5 -0
- package/dist/scale/ScaleSizeDatetime.svelte +15 -0
- package/dist/scale/ScaleSizeDatetime.svelte.d.ts +5 -0
- package/dist/scale/ScaleSizeDiscrete.svelte +14 -0
- package/dist/scale/ScaleSizeDiscrete.svelte.d.ts +4 -0
- package/dist/scale/ScaleSizeIdentity.svelte +14 -0
- package/dist/scale/ScaleSizeIdentity.svelte.d.ts +4 -0
- package/dist/scale/ScaleSizeManual.svelte +14 -0
- package/dist/scale/ScaleSizeManual.svelte.d.ts +4 -0
- package/dist/scale/ScaleXBinned.svelte +14 -0
- package/dist/scale/ScaleXBinned.svelte.d.ts +4 -0
- package/dist/scale/ScaleXContinuous.svelte +14 -0
- package/dist/scale/ScaleXContinuous.svelte.d.ts +4 -0
- package/dist/scale/ScaleXDate.svelte +12 -0
- package/dist/scale/ScaleXDate.svelte.d.ts +5 -0
- package/dist/scale/ScaleXDatetime.svelte +12 -0
- package/dist/scale/ScaleXDatetime.svelte.d.ts +5 -0
- package/dist/scale/ScaleXDiscrete.svelte +14 -0
- package/dist/scale/ScaleXDiscrete.svelte.d.ts +4 -0
- package/dist/scale/ScaleXLog10.svelte +14 -0
- package/dist/scale/ScaleXLog10.svelte.d.ts +4 -0
- package/dist/scale/ScaleXMonthDay.svelte +12 -0
- package/dist/scale/ScaleXMonthDay.svelte.d.ts +5 -0
- package/dist/scale/ScaleXReverse.svelte +15 -0
- package/dist/scale/ScaleXReverse.svelte.d.ts +4 -0
- package/dist/scale/ScaleXSqrt.svelte +14 -0
- package/dist/scale/ScaleXSqrt.svelte.d.ts +4 -0
- package/dist/scale/ScaleXTime.svelte +12 -0
- package/dist/scale/ScaleXTime.svelte.d.ts +5 -0
- package/dist/scale/ScaleYBinned.svelte +14 -0
- package/dist/scale/ScaleYBinned.svelte.d.ts +4 -0
- package/dist/scale/ScaleYContinuous.svelte +14 -0
- package/dist/scale/ScaleYContinuous.svelte.d.ts +4 -0
- package/dist/scale/ScaleYDate.svelte +12 -0
- package/dist/scale/ScaleYDate.svelte.d.ts +5 -0
- package/dist/scale/ScaleYDatetime.svelte +12 -0
- package/dist/scale/ScaleYDatetime.svelte.d.ts +5 -0
- package/dist/scale/ScaleYDiscrete.svelte +14 -0
- package/dist/scale/ScaleYDiscrete.svelte.d.ts +4 -0
- package/dist/scale/ScaleYLog10.svelte +14 -0
- package/dist/scale/ScaleYLog10.svelte.d.ts +4 -0
- package/dist/scale/ScaleYMonthDay.svelte +12 -0
- package/dist/scale/ScaleYMonthDay.svelte.d.ts +5 -0
- package/dist/scale/ScaleYReverse.svelte +15 -0
- package/dist/scale/ScaleYReverse.svelte.d.ts +4 -0
- package/dist/scale/ScaleYSqrt.svelte +14 -0
- package/dist/scale/ScaleYSqrt.svelte.d.ts +4 -0
- package/dist/scale/ScaleYTime.svelte +12 -0
- package/dist/scale/ScaleYTime.svelte.d.ts +5 -0
- package/dist/scene/Axis.svelte +159 -0
- package/dist/scene/Axis.svelte.d.ts +12 -0
- package/dist/scene/Batch.svelte +252 -0
- package/dist/scene/Batch.svelte.d.ts +23 -0
- package/dist/scene/InteractionOverlay.svelte +402 -0
- package/dist/scene/InteractionOverlay.svelte.d.ts +44 -0
- package/dist/scene/Legend.svelte +278 -0
- package/dist/scene/Legend.svelte.d.ts +8 -0
- package/dist/scene/MarkStrata.svelte +129 -0
- package/dist/scene/MarkStrata.svelte.d.ts +15 -0
- package/dist/scene/SceneOverlays.svelte +118 -0
- package/dist/scene/SceneOverlays.svelte.d.ts +49 -0
- package/dist/scene/SceneView.svelte +478 -0
- package/dist/scene/SceneView.svelte.d.ts +32 -0
- package/dist/scene/batch-presentation.svelte.d.ts +111 -0
- package/dist/scene/batch-presentation.svelte.js +207 -0
- package/dist/scene/geometry.d.ts +2 -0
- package/dist/scene/geometry.js +3 -0
- package/dist/scene/stratum-paint.d.ts +25 -0
- package/dist/scene/stratum-paint.js +40 -0
- package/dist/selection/selection-state.svelte.d.ts +23 -0
- package/dist/selection/selection-state.svelte.js +73 -0
- package/dist/selection/selection.d.ts +1 -0
- package/dist/selection/selection.js +2 -0
- package/dist/surface/CaptureSurface.svelte +109 -0
- package/dist/surface/CaptureSurface.svelte.d.ts +27 -0
- package/dist/surface/area-brush.d.ts +48 -0
- package/dist/surface/area-brush.js +44 -0
- package/dist/surface/brush-finish.d.ts +49 -0
- package/dist/surface/brush-finish.js +44 -0
- package/dist/surface/keyboard.d.ts +97 -0
- package/dist/surface/keyboard.js +105 -0
- package/dist/surface/pointer.d.ts +241 -0
- package/dist/surface/pointer.js +179 -0
- package/dist/surface/surface-description.d.ts +10 -0
- package/dist/surface/surface-description.js +11 -0
- package/dist/surface/surface-handlers.svelte.d.ts +53 -0
- package/dist/surface/surface-handlers.svelte.js +418 -0
- package/dist/surface/surface-state.svelte.d.ts +90 -0
- package/dist/surface/surface-state.svelte.js +161 -0
- package/dist/theme/Theme.svelte +27 -0
- package/dist/theme/Theme.svelte.d.ts +23 -0
- package/dist/theme/ThemeBase.svelte +13 -0
- package/dist/theme/ThemeBase.svelte.d.ts +8 -0
- package/dist/theme/ThemeBw.svelte +13 -0
- package/dist/theme/ThemeBw.svelte.d.ts +8 -0
- package/dist/theme/ThemeClassic.svelte +13 -0
- package/dist/theme/ThemeClassic.svelte.d.ts +8 -0
- package/dist/theme/ThemeClean.svelte +13 -0
- package/dist/theme/ThemeClean.svelte.d.ts +8 -0
- package/dist/theme/ThemeDark.svelte +13 -0
- package/dist/theme/ThemeDark.svelte.d.ts +8 -0
- package/dist/theme/ThemeDefault.svelte +13 -0
- package/dist/theme/ThemeDefault.svelte.d.ts +8 -0
- package/dist/theme/ThemeEconomist.svelte +13 -0
- package/dist/theme/ThemeEconomist.svelte.d.ts +8 -0
- package/dist/theme/ThemeEconomistwhite.svelte +13 -0
- package/dist/theme/ThemeEconomistwhite.svelte.d.ts +8 -0
- package/dist/theme/ThemeFew.svelte +13 -0
- package/dist/theme/ThemeFew.svelte.d.ts +8 -0
- package/dist/theme/ThemeFivethirtyeight.svelte +14 -0
- package/dist/theme/ThemeFivethirtyeight.svelte.d.ts +9 -0
- package/dist/theme/ThemeGgplot2.svelte +13 -0
- package/dist/theme/ThemeGgplot2.svelte.d.ts +8 -0
- package/dist/theme/ThemeGray.svelte +13 -0
- package/dist/theme/ThemeGray.svelte.d.ts +8 -0
- package/dist/theme/ThemeGrey.svelte +13 -0
- package/dist/theme/ThemeGrey.svelte.d.ts +8 -0
- package/dist/theme/ThemeHc.svelte +13 -0
- package/dist/theme/ThemeHc.svelte.d.ts +8 -0
- package/dist/theme/ThemeHcdark.svelte +13 -0
- package/dist/theme/ThemeHcdark.svelte.d.ts +8 -0
- package/dist/theme/ThemeHrbr.svelte +13 -0
- package/dist/theme/ThemeHrbr.svelte.d.ts +8 -0
- package/dist/theme/ThemeIgray.svelte +13 -0
- package/dist/theme/ThemeIgray.svelte.d.ts +8 -0
- package/dist/theme/ThemeLight.svelte +13 -0
- package/dist/theme/ThemeLight.svelte.d.ts +8 -0
- package/dist/theme/ThemeLinedraw.svelte +13 -0
- package/dist/theme/ThemeLinedraw.svelte.d.ts +8 -0
- package/dist/theme/ThemeMap.svelte +13 -0
- package/dist/theme/ThemeMap.svelte.d.ts +8 -0
- package/dist/theme/ThemeMinimal.svelte +13 -0
- package/dist/theme/ThemeMinimal.svelte.d.ts +8 -0
- package/dist/theme/ThemePander.svelte +13 -0
- package/dist/theme/ThemePander.svelte.d.ts +8 -0
- package/dist/theme/ThemeSolarized.svelte +13 -0
- package/dist/theme/ThemeSolarized.svelte.d.ts +8 -0
- package/dist/theme/ThemeSolarized2.svelte +13 -0
- package/dist/theme/ThemeSolarized2.svelte.d.ts +8 -0
- package/dist/theme/ThemeSolarized2dark.svelte +13 -0
- package/dist/theme/ThemeSolarized2dark.svelte.d.ts +8 -0
- package/dist/theme/ThemeSolarizeddark.svelte +14 -0
- package/dist/theme/ThemeSolarizeddark.svelte.d.ts +9 -0
- package/dist/theme/ThemeSolid.svelte +13 -0
- package/dist/theme/ThemeSolid.svelte.d.ts +8 -0
- package/dist/theme/ThemeStata.svelte +13 -0
- package/dist/theme/ThemeStata.svelte.d.ts +8 -0
- package/dist/theme/ThemeStatas1color.svelte +13 -0
- package/dist/theme/ThemeStatas1color.svelte.d.ts +8 -0
- package/dist/theme/ThemeTest.svelte +14 -0
- package/dist/theme/ThemeTest.svelte.d.ts +9 -0
- package/dist/theme/ThemeTufte.svelte +13 -0
- package/dist/theme/ThemeTufte.svelte.d.ts +8 -0
- package/dist/theme/ThemeVoid.svelte +14 -0
- package/dist/theme/ThemeVoid.svelte.d.ts +9 -0
- package/dist/theme/ThemeWsj.svelte +13 -0
- package/dist/theme/ThemeWsj.svelte.d.ts +8 -0
- package/dist/theme/factory.svelte.d.ts +36 -0
- package/dist/theme/factory.svelte.js +100 -0
- package/dist/zoom/zoom-state.svelte.d.ts +44 -0
- package/dist/zoom/zoom-state.svelte.js +121 -0
- package/dist/zoom/zoom.d.ts +1 -0
- package/dist/zoom/zoom.js +2 -0
- package/package.json +83 -0
|
@@ -0,0 +1,173 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Agent-facing interaction diagnostic catalog — frozen codes, messages, and
|
|
3
|
+
* doc URLs for capability normalization and runtime key/lineage checks.
|
|
4
|
+
*
|
|
5
|
+
* Extracted from interaction.ts so pure catalog data is not mixed with event
|
|
6
|
+
* types and normalizeInteractionConfig.
|
|
7
|
+
*
|
|
8
|
+
* Inspect×geom advisories (bar/col x-guide + high-cardinality) are owned by
|
|
9
|
+
* @ggts-sh/core so the CLI --inspect path reuses the same messages (#1531).
|
|
10
|
+
*/
|
|
11
|
+
import { INSPECT_GEOM_DIAGNOSTIC_CATALOG } from "@ggts-sh/core";
|
|
12
|
+
export const INTERACTION_DIAGNOSTIC_CATALOG = Object.freeze({
|
|
13
|
+
INTERACTION_INTERVAL_FACET_UNSUPPORTED: {
|
|
14
|
+
severity: "warning",
|
|
15
|
+
code: "INTERACTION_INTERVAL_FACET_UNSUPPORTED",
|
|
16
|
+
message: "Brush zoom currently requires one unfaceted panel.",
|
|
17
|
+
prop: "zoom",
|
|
18
|
+
suggestions: [
|
|
19
|
+
"Remove the facet",
|
|
20
|
+
"Use faceted interval selection",
|
|
21
|
+
"Zoom a linked detail view",
|
|
22
|
+
],
|
|
23
|
+
docUrl: "https://ggts.sh/guide/interaction-reference#interaction-interval-facet-unsupported",
|
|
24
|
+
},
|
|
25
|
+
INTERACTION_INVALID_MAX_DISTANCE: {
|
|
26
|
+
severity: "error",
|
|
27
|
+
code: "INTERACTION_INVALID_MAX_DISTANCE",
|
|
28
|
+
message: "inspect.maxDistance must be a finite non-negative CSS-pixel distance.",
|
|
29
|
+
prop: "inspect.maxDistance",
|
|
30
|
+
suggestions: ["Use a finite number greater than or equal to zero"],
|
|
31
|
+
docUrl: "https://ggts.sh/guide/interaction-reference#interaction-invalid-max-distance",
|
|
32
|
+
},
|
|
33
|
+
INTERACTION_POINT_REQUIRES_KEY: {
|
|
34
|
+
severity: "warning",
|
|
35
|
+
code: "INTERACTION_POINT_REQUIRES_KEY",
|
|
36
|
+
message: "Durable point selection requires resolved row identity.",
|
|
37
|
+
prop: "identity",
|
|
38
|
+
suggestions: [
|
|
39
|
+
"Ordinary charts omit identity — defaults to an id column or row index",
|
|
40
|
+
'Override with <Inspect identity="id" /> or select={{ type: "point", identity: "id" }}',
|
|
41
|
+
],
|
|
42
|
+
docUrl: "https://ggts.sh/guide/interaction-reference#interaction-point-requires-key",
|
|
43
|
+
},
|
|
44
|
+
INTERACTION_INTERVAL_PRESET_REQUIRES_KEY: {
|
|
45
|
+
severity: "warning",
|
|
46
|
+
code: "INTERACTION_INTERVAL_PRESET_REQUIRES_KEY",
|
|
47
|
+
message: "Coordinated interval presets (union, cross-panel) require resolved row identity; without it they combine no rows.",
|
|
48
|
+
prop: "identity",
|
|
49
|
+
suggestions: [
|
|
50
|
+
"Ordinary charts omit identity — defaults to an id column or row index",
|
|
51
|
+
'Override with select={{ type: "interval", identity: "id", … }} or <Inspect identity="id" />',
|
|
52
|
+
],
|
|
53
|
+
docUrl: "https://ggts.sh/guide/interaction-reference#interaction-interval-preset-requires-key",
|
|
54
|
+
},
|
|
55
|
+
INTERACTION_INVALID_KEY: {
|
|
56
|
+
severity: "error",
|
|
57
|
+
code: "INTERACTION_INVALID_KEY",
|
|
58
|
+
message: "A key accessor returned null, undefined, or a non-PropertyKey value.",
|
|
59
|
+
prop: "identity",
|
|
60
|
+
suggestions: ["Return a stable string, number, or symbol for every row"],
|
|
61
|
+
docUrl: "https://ggts.sh/guide/interaction-reference#interaction-invalid-key",
|
|
62
|
+
},
|
|
63
|
+
INTERACTION_DUPLICATE_KEY: {
|
|
64
|
+
severity: "error",
|
|
65
|
+
code: "INTERACTION_DUPLICATE_KEY",
|
|
66
|
+
message: "The key accessor returned a duplicate value; durable interaction is disabled for that value.",
|
|
67
|
+
prop: "identity",
|
|
68
|
+
suggestions: ["Use a field that uniquely identifies each source row"],
|
|
69
|
+
docUrl: "https://ggts.sh/guide/interaction-reference#interaction-duplicate-key",
|
|
70
|
+
},
|
|
71
|
+
INTERACTION_UNSTABLE_KEY: {
|
|
72
|
+
severity: "error",
|
|
73
|
+
code: "INTERACTION_UNSTABLE_KEY",
|
|
74
|
+
message: "The key accessor returned a different value for the same source row.",
|
|
75
|
+
prop: "identity",
|
|
76
|
+
suggestions: ["Return an immutable field that uniquely identifies each row"],
|
|
77
|
+
docUrl: "https://ggts.sh/guide/interaction-reference#interaction-unstable-key",
|
|
78
|
+
},
|
|
79
|
+
INTERACTION_MISSING_LINEAGE: {
|
|
80
|
+
severity: "warning",
|
|
81
|
+
code: "INTERACTION_MISSING_LINEAGE",
|
|
82
|
+
message: "A synthetic or aggregate mark did not expose source-row lineage.",
|
|
83
|
+
prop: "layers",
|
|
84
|
+
suggestions: ["Use a stat that preserves source-row lineage"],
|
|
85
|
+
docUrl: "https://ggts.sh/guide/interaction-reference#interaction-missing-lineage",
|
|
86
|
+
},
|
|
87
|
+
INTERACTION_LEGEND_REQUIRES_KEY: {
|
|
88
|
+
severity: "warning",
|
|
89
|
+
code: "INTERACTION_LEGEND_REQUIRES_KEY",
|
|
90
|
+
message: "Legend focus requires resolved row identity so encoded legend values never become identities.",
|
|
91
|
+
prop: "identity",
|
|
92
|
+
suggestions: [
|
|
93
|
+
"Ordinary charts omit identity — defaults to an id column or row index",
|
|
94
|
+
'Override with <Inspect identity="id" /> or createPlotInteraction({ identity: "id" })',
|
|
95
|
+
],
|
|
96
|
+
docUrl: "https://ggts.sh/guide/interaction-reference#interaction-legend-requires-key",
|
|
97
|
+
},
|
|
98
|
+
INTERACTION_LEGEND_DISCRETE_ONLY: {
|
|
99
|
+
severity: "advisory",
|
|
100
|
+
code: "INTERACTION_LEGEND_DISCRETE_ONLY",
|
|
101
|
+
message: "Legend focus currently applies to discrete color and fill legends; continuous ramps remain static.",
|
|
102
|
+
prop: "focus",
|
|
103
|
+
suggestions: [
|
|
104
|
+
'Enable focus on a discrete guide: <GuideLegend channel="color" focus />',
|
|
105
|
+
"Use a discrete color or fill mapping",
|
|
106
|
+
"Keep the continuous ramp static",
|
|
107
|
+
],
|
|
108
|
+
docUrl: "https://ggts.sh/guide/interaction-reference#interaction-legend-discrete-only",
|
|
109
|
+
},
|
|
110
|
+
INTERACTION_INTERVAL_SCALE_UNSUPPORTED: {
|
|
111
|
+
severity: "warning",
|
|
112
|
+
code: "INTERACTION_INTERVAL_SCALE_UNSUPPORTED",
|
|
113
|
+
message: "Interval domains and brush zoom require continuous linear, log, or time scales.",
|
|
114
|
+
prop: "scales",
|
|
115
|
+
suggestions: ["Use a continuous positional scale", "Use point inspection for band data"],
|
|
116
|
+
docUrl: "https://ggts.sh/guide/interaction-reference#interaction-interval-scale-unsupported",
|
|
117
|
+
},
|
|
118
|
+
INTERACTION_TOOL_UNAVAILABLE: {
|
|
119
|
+
severity: "warning",
|
|
120
|
+
code: "INTERACTION_TOOL_UNAVAILABLE",
|
|
121
|
+
message: "The requested interaction tool is unavailable for the enabled capabilities.",
|
|
122
|
+
prop: "tool",
|
|
123
|
+
suggestions: ["Enable the matching capability", "Choose an available interaction tool"],
|
|
124
|
+
docUrl: "https://ggts.sh/guide/interaction-reference#interaction-tool-unavailable",
|
|
125
|
+
},
|
|
126
|
+
INTERACTION_SCOPE_WITHOUT_CONTROLLER: {
|
|
127
|
+
severity: "advisory",
|
|
128
|
+
code: "INTERACTION_SCOPE_WITHOUT_CONTROLLER",
|
|
129
|
+
message: "interactionScope is ignored without an interaction controller; chart-local scope is derived from key and aes.",
|
|
130
|
+
prop: "interactionScope",
|
|
131
|
+
suggestions: [
|
|
132
|
+
"Pass interaction={createPlotInteraction()} to control this plot",
|
|
133
|
+
"Remove interactionScope from uncontrolled plots",
|
|
134
|
+
],
|
|
135
|
+
docUrl: "https://ggts.sh/guide/interaction-reference#interaction-scope-without-controller",
|
|
136
|
+
},
|
|
137
|
+
INTERACTION_HANDLER_WITHOUT_CAPABILITY: {
|
|
138
|
+
severity: "advisory",
|
|
139
|
+
code: "INTERACTION_HANDLER_WITHOUT_CAPABILITY",
|
|
140
|
+
// Emitted with `prop` overridden to the concrete handler name and
|
|
141
|
+
// `actual` naming the capability prop that would enable it.
|
|
142
|
+
message: "An interaction handler is set but its capability prop is not enabled, so the handler never fires.",
|
|
143
|
+
prop: "oninspect / onselect / onzoom / onlegendfocus / onlegendfilter",
|
|
144
|
+
suggestions: [
|
|
145
|
+
"Enable the matching capability prop (for example select for onselect)",
|
|
146
|
+
"Remove the unused handler",
|
|
147
|
+
],
|
|
148
|
+
docUrl: "https://ggts.sh/guide/interaction-reference#interaction-handler-without-capability",
|
|
149
|
+
},
|
|
150
|
+
...INSPECT_GEOM_DIAGNOSTIC_CATALOG,
|
|
151
|
+
INTERACTION_INSPECT_IDENTITY_DROPPED: {
|
|
152
|
+
severity: "advisory",
|
|
153
|
+
code: "INTERACTION_INSPECT_IDENTITY_DROPPED",
|
|
154
|
+
message: "An <Inspect> child replaced the inspect prop whole (REPLACE), so the prop's `identity` no longer applies; rows fall back to an id column or row index.",
|
|
155
|
+
prop: "Inspect",
|
|
156
|
+
suggestions: [
|
|
157
|
+
"Move identity onto the <Inspect> child",
|
|
158
|
+
"Drop identity from the inspect prop if the default row identity is intended",
|
|
159
|
+
],
|
|
160
|
+
docUrl: "https://ggts.sh/guide/interaction-reference#interaction-inspect-identity-dropped",
|
|
161
|
+
},
|
|
162
|
+
INTERACTION_DUPLICATE_INSPECT_CAPABILITY: {
|
|
163
|
+
severity: "advisory",
|
|
164
|
+
code: "INTERACTION_DUPLICATE_INSPECT_CAPABILITY",
|
|
165
|
+
message: "Multiple <Inspect> children are registered; only the last one's options apply (REPLACE).",
|
|
166
|
+
prop: "Inspect",
|
|
167
|
+
suggestions: [
|
|
168
|
+
"Keep a single <Inspect> child",
|
|
169
|
+
"Merge options onto one <Inspect> instead of stacking siblings",
|
|
170
|
+
],
|
|
171
|
+
docUrl: "https://ggts.sh/guide/interaction-reference#interaction-duplicate-inspect-capability",
|
|
172
|
+
},
|
|
173
|
+
});
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Interaction controller assembly — owns construction order and sibling-port
|
|
3
|
+
* wiring for the five interaction controllers (zoom, selection, interval,
|
|
4
|
+
* surface, inspection).
|
|
5
|
+
*
|
|
6
|
+
* Before this module, plot-engine.svelte.ts hand-wired the construction DAG
|
|
7
|
+
* across ~200 lines, with `let surfaceState!` / `let semanticCandidateProjection!`
|
|
8
|
+
* late bindings to break the surface ↔ inspection ↔ interval ↔ selection
|
|
9
|
+
* cycles.
|
|
10
|
+
*
|
|
11
|
+
* Why two phases
|
|
12
|
+
* --------------
|
|
13
|
+
* On SSR the Svelte compiler evaluates `$derived` eagerly at declaration, so
|
|
14
|
+
* construction order must be the exact topological order of every derived
|
|
15
|
+
* read — not just handler-time reads. The full DAG interleaves with host
|
|
16
|
+
* controllers:
|
|
17
|
+
*
|
|
18
|
+
* zoom → legendFilter → runtime → semanticKeys → selection → interval →
|
|
19
|
+
* surface → inspection
|
|
20
|
+
*
|
|
21
|
+
* Phase 1 (`createInteractionAssembly`) constructs zoom, the only controller
|
|
22
|
+
* the legend-filter / runtime chain reads. Phase 2 (`complete`) — called by
|
|
23
|
+
* the host once the runtime and semantic-key service exist — constructs
|
|
24
|
+
* selection → interval → surface → inspection and wires all sibling ports
|
|
25
|
+
* internally:
|
|
26
|
+
*
|
|
27
|
+
* - surface is constructed before inspection so the shared interaction
|
|
28
|
+
* reducer exists as a concrete instance (inspection no longer closes over
|
|
29
|
+
* a later surface binding);
|
|
30
|
+
* - interval / surface receive sibling controllers as handler-only getters
|
|
31
|
+
* over the bundle under construction (event-time reads only — every
|
|
32
|
+
* controller documents its construction-time reads as context-only).
|
|
33
|
+
*
|
|
34
|
+
* Host-derived enablement (availableTools, pointSelectEnabled, surfaceInter-
|
|
35
|
+
* active) and host-owned slices (dataIdentityEpoch, consumptionCandidates,
|
|
36
|
+
* clearAnnouncement) arrive via options; everything shared arrives via the
|
|
37
|
+
* InteractionContext.
|
|
38
|
+
*/
|
|
39
|
+
import type { InspectionState, InspectionStateOptions } from "../inspection/inspection-state.svelte.js";
|
|
40
|
+
import type { IntervalState, IntervalStateOptions } from "../interval/interval-state.svelte.js";
|
|
41
|
+
import type { SelectionState } from "../selection/selection-state.svelte.js";
|
|
42
|
+
import type { SurfaceState, SurfaceStateOptions } from "../surface/surface-state.svelte.js";
|
|
43
|
+
import type { PlotZoomState, PlotZoomStateOptions } from "../zoom/zoom-state.svelte.js";
|
|
44
|
+
import type { InteractionContext } from "./interaction-context.svelte.js";
|
|
45
|
+
/** The five interaction controllers, keyed by role. */
|
|
46
|
+
type InteractionStates = {
|
|
47
|
+
readonly zoom: PlotZoomState;
|
|
48
|
+
readonly selection: SelectionState;
|
|
49
|
+
readonly interval: IntervalState;
|
|
50
|
+
readonly surface: SurfaceState;
|
|
51
|
+
readonly inspection: InspectionState;
|
|
52
|
+
};
|
|
53
|
+
/**
|
|
54
|
+
* Host-owned slices the assembly cannot derive from the context. Sibling
|
|
55
|
+
* ports (reducer, emitSelection, commitZoom, inspection/interval/zoom
|
|
56
|
+
* getters) are wired internally — hosts never see them.
|
|
57
|
+
*/
|
|
58
|
+
type InteractionStatesOptions = {
|
|
59
|
+
readonly interval: Pick<IntervalStateOptions, "consumptionCandidates">;
|
|
60
|
+
readonly surface: Pick<SurfaceStateOptions, "toolProp" | "initialTool" | "availableTools" | "pointSelectEnabled" | "surfaceInteractive">;
|
|
61
|
+
readonly inspection: Omit<InspectionStateOptions, "reducer">;
|
|
62
|
+
};
|
|
63
|
+
/** Phase-1 result: zoom (consumed by the host's legend-filter / runtime
|
|
64
|
+
* chain) plus the phase-2 completion hook. */
|
|
65
|
+
export type InteractionAssembly = {
|
|
66
|
+
readonly zoom: PlotZoomState;
|
|
67
|
+
/**
|
|
68
|
+
* Phase 2 — call once the runtime and semantic-key service exist (SSR
|
|
69
|
+
* evaluates deriveds eagerly at construction, so model-reading controllers
|
|
70
|
+
* must be constructed after the runtime). Constructs selection → interval
|
|
71
|
+
* → surface → inspection and returns the full bundle.
|
|
72
|
+
*/
|
|
73
|
+
complete(options: InteractionStatesOptions): InteractionStates;
|
|
74
|
+
};
|
|
75
|
+
/**
|
|
76
|
+
* Phase 1: construct the zoom controller (model-free at construction) and
|
|
77
|
+
* return the assembly handle. Call `complete` after the host runtime exists.
|
|
78
|
+
* Call once during component init (controllers register $derived/$effect in
|
|
79
|
+
* the calling effect tree).
|
|
80
|
+
*/
|
|
81
|
+
export declare function createInteractionAssembly(context: InteractionContext, options: {
|
|
82
|
+
readonly zoom: PlotZoomStateOptions;
|
|
83
|
+
}): InteractionAssembly;
|
|
84
|
+
export {};
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { createInspectionState } from "../inspection/inspection-state.svelte.js";
|
|
2
|
+
import { createIntervalState } from "../interval/interval-state.svelte.js";
|
|
3
|
+
import { createSelectionState } from "../selection/selection-state.svelte.js";
|
|
4
|
+
import { createSurfaceState } from "../surface/surface-state.svelte.js";
|
|
5
|
+
import { createPlotZoomState } from "../zoom/zoom-state.svelte.js";
|
|
6
|
+
/**
|
|
7
|
+
* Phase 1: construct the zoom controller (model-free at construction) and
|
|
8
|
+
* return the assembly handle. Call `complete` after the host runtime exists.
|
|
9
|
+
* Call once during component init (controllers register $derived/$effect in
|
|
10
|
+
* the calling effect tree).
|
|
11
|
+
*/
|
|
12
|
+
export function createInteractionAssembly(context, options) {
|
|
13
|
+
const zoom = createPlotZoomState(context, options.zoom);
|
|
14
|
+
return {
|
|
15
|
+
zoom,
|
|
16
|
+
complete(phase2) {
|
|
17
|
+
// Sibling ports close over these bindings; assigned in topological
|
|
18
|
+
// order below and read only at handler time, never during construction.
|
|
19
|
+
let interval;
|
|
20
|
+
let inspection;
|
|
21
|
+
const selection = createSelectionState(context);
|
|
22
|
+
interval = createIntervalState(context, {
|
|
23
|
+
consumptionCandidates: phase2.interval.consumptionCandidates,
|
|
24
|
+
effectiveZoomDomains: () => zoom.effectiveZoomDomains,
|
|
25
|
+
commitZoom: (domains, source) => {
|
|
26
|
+
zoom.commitZoom(domains, source);
|
|
27
|
+
},
|
|
28
|
+
inspectionPanel: () => inspection.inspectionPanel,
|
|
29
|
+
emitSelection: (event) => {
|
|
30
|
+
selection.emitSelection(event);
|
|
31
|
+
},
|
|
32
|
+
});
|
|
33
|
+
const surface = createSurfaceState(context, {
|
|
34
|
+
...phase2.surface,
|
|
35
|
+
inspection: () => inspection,
|
|
36
|
+
interval: () => interval,
|
|
37
|
+
zoom: () => zoom,
|
|
38
|
+
emitSelection: (event) => {
|
|
39
|
+
selection.emitSelection(event);
|
|
40
|
+
},
|
|
41
|
+
togglePointKeys: (keys, source) => {
|
|
42
|
+
selection.togglePointKeys(keys, source);
|
|
43
|
+
},
|
|
44
|
+
});
|
|
45
|
+
inspection = createInspectionState(context, {
|
|
46
|
+
...phase2.inspection,
|
|
47
|
+
// Concrete reducer — surface is already constructed, so inspection
|
|
48
|
+
// no longer closes over a later surface binding (was `let
|
|
49
|
+
// surfaceState!`).
|
|
50
|
+
reducer: surface.reducer,
|
|
51
|
+
});
|
|
52
|
+
return { zoom, selection, interval, surface, inspection };
|
|
53
|
+
},
|
|
54
|
+
};
|
|
55
|
+
}
|
|
@@ -0,0 +1,304 @@
|
|
|
1
|
+
import type { CellValue, PositionTransformName } from "@ggts-sh/core";
|
|
2
|
+
import type { Snippet } from "svelte";
|
|
3
|
+
import type { LegendFilterEvent } from "../legend/filter.js";
|
|
4
|
+
import type { InteractionDiagnostic } from "./interaction-diagnostics.js";
|
|
5
|
+
export { INTERACTION_DIAGNOSTIC_CATALOG } from "./interaction-diagnostics.js";
|
|
6
|
+
export type { InteractionDiagnostic, InteractionDiagnosticCode, } from "./interaction-diagnostics.js";
|
|
7
|
+
export { discreteColorFillDomainSizes, HIGH_CARDINALITY_DISCRETE_THRESHOLD, inspectAxisOnBarColDiagnostics, inspectAxisOnDistributionDiagnostics, inspectHighCardinalityDiagnostics, layerGeomsFromSpecLayers, } from "./inspect-geom-advisories.js";
|
|
8
|
+
export type InteractionSource = "pointer" | "keyboard" | "touch" | "programmatic";
|
|
9
|
+
export type InspectMode = "auto" | "exact" | "x" | "y" | "xy";
|
|
10
|
+
export type TooltipTotal = "auto" | "off" | "top" | "bottom";
|
|
11
|
+
export type ResolvedInspectMode = Exclude<InspectMode, "auto">;
|
|
12
|
+
export type AreaMode = "x" | "y" | "xy";
|
|
13
|
+
export type InteractionTool = "inspect" | "point" | "select-area" | "zoom-area";
|
|
14
|
+
/** Brush tools that need crosshair cursor and touch-action: none on capture. */
|
|
15
|
+
export type AreaInteractionTool = "select-area" | "zoom-area";
|
|
16
|
+
export declare function isAreaTool(tool: InteractionTool): tool is AreaInteractionTool;
|
|
17
|
+
export interface TooltipField {
|
|
18
|
+
readonly channel: string;
|
|
19
|
+
readonly field: string;
|
|
20
|
+
readonly value: CellValue;
|
|
21
|
+
}
|
|
22
|
+
export interface PlotDatum<Row, Key> {
|
|
23
|
+
readonly key: Key | null;
|
|
24
|
+
readonly row: Row | null;
|
|
25
|
+
readonly sourceKeys: ReadonlyArray<Key>;
|
|
26
|
+
readonly lineageCount: number;
|
|
27
|
+
readonly layerIndex: number;
|
|
28
|
+
readonly panelId: string | null;
|
|
29
|
+
readonly fields: ReadonlyArray<TooltipField>;
|
|
30
|
+
readonly anchor: Readonly<{
|
|
31
|
+
x: number;
|
|
32
|
+
y: number;
|
|
33
|
+
}>;
|
|
34
|
+
}
|
|
35
|
+
export type NonEmptyReadonlyArray<T> = readonly [T, ...T[]];
|
|
36
|
+
interface PlotInspectionBase<Row, Key> {
|
|
37
|
+
readonly type: "inspect";
|
|
38
|
+
readonly phase: "change";
|
|
39
|
+
readonly state: "transient" | "pinned";
|
|
40
|
+
readonly source: InteractionSource;
|
|
41
|
+
readonly panelId: string | null;
|
|
42
|
+
/**
|
|
43
|
+
* Sum of unique series contributions in the composition group (stack/fill),
|
|
44
|
+
* independent of inspect `mode`. `null` when the group is not additive
|
|
45
|
+
* (identity/dodge) or has no finite numeric contribution. Exact/xy keep a
|
|
46
|
+
* single listed member; the total still covers the whole stack.
|
|
47
|
+
*/
|
|
48
|
+
readonly groupTotal?: number | null;
|
|
49
|
+
readonly focus: PlotDatum<Row, Key>;
|
|
50
|
+
readonly members: NonEmptyReadonlyArray<PlotDatum<Row, Key>>;
|
|
51
|
+
}
|
|
52
|
+
export type PlotInspectionChange<Row, Key> = (PlotInspectionBase<Row, Key> & {
|
|
53
|
+
readonly mode: "exact" | "xy";
|
|
54
|
+
}) | (PlotInspectionBase<Row, Key> & {
|
|
55
|
+
readonly mode: "x" | "y";
|
|
56
|
+
readonly axisValue: CellValue;
|
|
57
|
+
readonly axisLabel: string;
|
|
58
|
+
/**
|
|
59
|
+
* Sum of numeric contributions on the value axis for unique series in
|
|
60
|
+
* the full axis group (y when mode is x, x when mode is y). Used by
|
|
61
|
+
* the default tooltip Total row; independent of the hover member cap
|
|
62
|
+
* (#1274 / #1389). Only populated when the group includes a stack/fill
|
|
63
|
+
* layer — parallel multi-series (identity/dodge lines and points) leave
|
|
64
|
+
* this `null` so the tooltip does not invent a sum. Multi-layer paints
|
|
65
|
+
* of the same source series (line+point, col+text) contribute once;
|
|
66
|
+
* distinct series on other layers (e.g. a trend over a stack) are
|
|
67
|
+
* included. Also `null` when no member has a finite numeric contribution.
|
|
68
|
+
*/
|
|
69
|
+
readonly groupTotal: number | null;
|
|
70
|
+
/**
|
|
71
|
+
* Unique series-contribution count in the full axis group (all layers,
|
|
72
|
+
* deduped). Drives the default tooltip "+N more" line when hover rows
|
|
73
|
+
* were truncated (#1274 / #1389).
|
|
74
|
+
*/
|
|
75
|
+
readonly groupMemberCount: number;
|
|
76
|
+
});
|
|
77
|
+
export interface PlotInspectionClear {
|
|
78
|
+
readonly type: "inspect";
|
|
79
|
+
readonly phase: "clear";
|
|
80
|
+
readonly source: InteractionSource;
|
|
81
|
+
}
|
|
82
|
+
export type PlotInspection<Row, Key = PropertyKey> = PlotInspectionChange<Row, Key> | PlotInspectionClear;
|
|
83
|
+
export interface IntervalSelection<Key = PropertyKey> {
|
|
84
|
+
readonly type: "select";
|
|
85
|
+
readonly phase: "start" | "change" | "end" | "clear";
|
|
86
|
+
readonly mode: AreaMode;
|
|
87
|
+
readonly panelId: string | null;
|
|
88
|
+
readonly domain: Readonly<{
|
|
89
|
+
x?: readonly [CellValue, CellValue];
|
|
90
|
+
y?: readonly [CellValue, CellValue];
|
|
91
|
+
}>;
|
|
92
|
+
readonly pixels: Readonly<{
|
|
93
|
+
x0: number;
|
|
94
|
+
y0: number;
|
|
95
|
+
x1: number;
|
|
96
|
+
y1: number;
|
|
97
|
+
}>;
|
|
98
|
+
readonly keys: ReadonlyArray<Key>;
|
|
99
|
+
readonly lineageCount: number;
|
|
100
|
+
readonly source: InteractionSource;
|
|
101
|
+
}
|
|
102
|
+
export interface PointSelection<Key = PropertyKey> {
|
|
103
|
+
readonly type: "select";
|
|
104
|
+
readonly phase: "end" | "clear";
|
|
105
|
+
readonly mode: "point";
|
|
106
|
+
readonly keys: ReadonlyArray<Key>;
|
|
107
|
+
readonly source: InteractionSource;
|
|
108
|
+
}
|
|
109
|
+
export type PlotSelection<Key = PropertyKey> = IntervalSelection<Key> | PointSelection<Key>;
|
|
110
|
+
export interface ZoomEvent {
|
|
111
|
+
readonly type: "zoom";
|
|
112
|
+
readonly phase: "end" | "clear";
|
|
113
|
+
readonly source: InteractionSource;
|
|
114
|
+
readonly domains: ReadonlyZoomDomains | null;
|
|
115
|
+
}
|
|
116
|
+
export interface LegendFocusChange<Key = PropertyKey> {
|
|
117
|
+
readonly type: "legend-focus";
|
|
118
|
+
readonly phase: "change";
|
|
119
|
+
readonly state: "transient" | "committed";
|
|
120
|
+
readonly source: InteractionSource;
|
|
121
|
+
readonly scale: "color" | "fill" | "size" | "linewidth" | "alpha" | "shape" | "linetype";
|
|
122
|
+
/** Raw encoded domain value. This is deliberately distinct from row keys. */
|
|
123
|
+
readonly value: CellValue;
|
|
124
|
+
readonly label: string;
|
|
125
|
+
readonly keys: ReadonlyArray<Key>;
|
|
126
|
+
}
|
|
127
|
+
export interface LegendFocusClear {
|
|
128
|
+
readonly type: "legend-focus";
|
|
129
|
+
readonly phase: "clear";
|
|
130
|
+
readonly source: InteractionSource;
|
|
131
|
+
}
|
|
132
|
+
export type LegendFocusEvent<Key = PropertyKey> = LegendFocusChange<Key> | LegendFocusClear;
|
|
133
|
+
export type PlotInteractionEvent<Row, Key = PropertyKey> = PlotInspection<Row, Key> | PlotSelection<Key> | ZoomEvent | LegendFocusEvent<Key> | LegendFilterEvent;
|
|
134
|
+
export interface InspectOptions<Row = Record<string, CellValue>, Key = PropertyKey> {
|
|
135
|
+
readonly mode?: InspectMode;
|
|
136
|
+
readonly pin?: boolean;
|
|
137
|
+
readonly maxDistance?: number;
|
|
138
|
+
readonly contentMode?: "informational" | "interactive";
|
|
139
|
+
/**
|
|
140
|
+
* When true, inspection mutes non-focused marks (sibling bars/cols) via the
|
|
141
|
+
* interaction mask. Default false — tooltip-only hover avoids full-plot
|
|
142
|
+
* flicker when the pointer crosses gaps between rect marks (#633).
|
|
143
|
+
*/
|
|
144
|
+
readonly muteSiblings?: boolean;
|
|
145
|
+
/**
|
|
146
|
+
* Where the default tooltip shows a single group total (stack/fill sum
|
|
147
|
+
* across series at the focused category). Independent of inspect `mode`:
|
|
148
|
+
* stacked bars can keep `mode="exact"` and still show a Total row.
|
|
149
|
+
*
|
|
150
|
+
* - `"auto"` (default): Total at the bottom when the group is additive
|
|
151
|
+
* (stack/fill) and has more than one series. Axis-mode (`x`/`y`)
|
|
152
|
+
* inspections already do this; exact/xy do not unless opted in.
|
|
153
|
+
* - `"off"`: never show Total.
|
|
154
|
+
* - `"top"` / `"bottom"`: force Total when a numeric group total exists.
|
|
155
|
+
*/
|
|
156
|
+
readonly tooltipTotal?: TooltipTotal;
|
|
157
|
+
/**
|
|
158
|
+
* Durable row identity for interaction payloads (pin rebind, selection
|
|
159
|
+
* keys, legend focus). Preferred over the deprecated GGPlot `key` prop.
|
|
160
|
+
* Default when omitted: `id` column if present, else row index.
|
|
161
|
+
*/
|
|
162
|
+
readonly identity?: Key | ((row: Row, index: number) => Key);
|
|
163
|
+
readonly content?: Snippet<[PlotInspectionChange<Row, Key>]>;
|
|
164
|
+
}
|
|
165
|
+
export interface SelectOptions {
|
|
166
|
+
readonly type: "point" | "interval";
|
|
167
|
+
readonly mode?: AreaMode;
|
|
168
|
+
readonly multiple?: boolean;
|
|
169
|
+
readonly persistent?: boolean;
|
|
170
|
+
/** Facet coordination semantics for durable interval selections. */
|
|
171
|
+
readonly preset?: FacetIntervalPreset;
|
|
172
|
+
/**
|
|
173
|
+
* Durable row identity for selection keys (and shared plot interaction).
|
|
174
|
+
* Preferred over the deprecated GGPlot `key` prop. Not selection semantics —
|
|
175
|
+
* omitted from the resolved select config.
|
|
176
|
+
*/
|
|
177
|
+
readonly identity?: PropertyKey | ((row: Record<string, CellValue>, index: number) => PropertyKey);
|
|
178
|
+
}
|
|
179
|
+
export interface ZoomOptions {
|
|
180
|
+
readonly mode?: AreaMode;
|
|
181
|
+
readonly trigger?: "brush";
|
|
182
|
+
}
|
|
183
|
+
export type InspectInput<Row = Record<string, CellValue>, Key = PropertyKey> = boolean | InspectOptions<Row, Key>;
|
|
184
|
+
export type SelectInput = false | "point" | "interval" | SelectOptions;
|
|
185
|
+
export type ZoomInput = boolean | ZoomOptions;
|
|
186
|
+
export interface LegendFocusOptions {
|
|
187
|
+
/** Preview a legend group on pointer hover and DOM focus. */
|
|
188
|
+
readonly preview?: boolean;
|
|
189
|
+
}
|
|
190
|
+
export type LegendFocusInput = boolean | LegendFocusOptions;
|
|
191
|
+
export interface ResolvedInteractionConfig<Row = Record<string, CellValue>, Key = PropertyKey> {
|
|
192
|
+
readonly interactive: boolean;
|
|
193
|
+
readonly inspect: Readonly<Required<Omit<InspectOptions<Row, Key>, "content" | "identity">> & Pick<InspectOptions<Row, Key>, "content">> | null;
|
|
194
|
+
/** Select config without `identity` (identity is resolved separately for row keys). */
|
|
195
|
+
readonly select: Readonly<Required<Omit<SelectOptions, "identity">>> | null;
|
|
196
|
+
readonly zoom: Readonly<Required<ZoomOptions>> | null;
|
|
197
|
+
readonly legendFocus: Readonly<Required<LegendFocusOptions>> | null;
|
|
198
|
+
readonly initialTool: InteractionTool;
|
|
199
|
+
readonly availableTools: ReadonlyArray<InteractionTool>;
|
|
200
|
+
readonly diagnostics: ReadonlyArray<InteractionDiagnostic>;
|
|
201
|
+
}
|
|
202
|
+
export interface InteractionConfigInput<Row = Record<string, CellValue>, Key = PropertyKey> {
|
|
203
|
+
readonly inspect?: InspectInput<Row, Key>;
|
|
204
|
+
readonly select?: SelectInput;
|
|
205
|
+
readonly zoom?: ZoomInput;
|
|
206
|
+
readonly legendFocus?: LegendFocusInput;
|
|
207
|
+
readonly tool?: InteractionTool;
|
|
208
|
+
}
|
|
209
|
+
export { normalizeInteractionConfig } from "./normalize-interaction-config.js";
|
|
210
|
+
export interface ReadonlyZoomDomains {
|
|
211
|
+
readonly x?: readonly [number, number];
|
|
212
|
+
readonly y?: readonly [number, number];
|
|
213
|
+
}
|
|
214
|
+
/** Semantic namespaces used when one controller coordinates unlike views.
|
|
215
|
+
* Key state crosses charts only through `keys`; data-space zoom crosses one
|
|
216
|
+
* positional channel only when that channel's scope also matches. */
|
|
217
|
+
export interface PlotInteractionScope {
|
|
218
|
+
readonly keys: string;
|
|
219
|
+
readonly x?: string;
|
|
220
|
+
readonly y?: string;
|
|
221
|
+
/** Namespace for semantic facet intervals. Defaults to `keys` when omitted. */
|
|
222
|
+
readonly intervals?: string;
|
|
223
|
+
}
|
|
224
|
+
export type PlotInteractionChange = "selection" | "emphasis" | "interval" | "zoom";
|
|
225
|
+
/** How facet interval state is consumed by coordinated panels.
|
|
226
|
+
*
|
|
227
|
+
* - independent: only the matching panel consumes its interval
|
|
228
|
+
* - union: matching rows from every stored panel interval are combined
|
|
229
|
+
* - cross-panel: the sole origin interval is projected into compatible panels
|
|
230
|
+
*/
|
|
231
|
+
export type FacetIntervalPreset = "independent" | "union" | "cross-panel";
|
|
232
|
+
export type SemanticIntervalAxis = Readonly<{
|
|
233
|
+
kind: "linear" | "time";
|
|
234
|
+
/** Pre-stat position transform (default identity). Always identity for
|
|
235
|
+
* kind:"time". "log"/"sqrt" semantics live in `transform`, not `kind`. */
|
|
236
|
+
transform?: PositionTransformName;
|
|
237
|
+
/** Ascending data-space values; time values are Unix milliseconds. */
|
|
238
|
+
domain: readonly [number, number];
|
|
239
|
+
}> | Readonly<{
|
|
240
|
+
kind: "band";
|
|
241
|
+
/** Ordered, encoded category identities. Labels are presentation-only. */
|
|
242
|
+
values: ReadonlyArray<string>;
|
|
243
|
+
}>;
|
|
244
|
+
export interface ReadonlyIntervalDomains {
|
|
245
|
+
readonly x?: SemanticIntervalAxis;
|
|
246
|
+
readonly y?: SemanticIntervalAxis;
|
|
247
|
+
}
|
|
248
|
+
export interface PlotInteractionInterval<Key extends PropertyKey> {
|
|
249
|
+
/** Stable structured facet identity, never a panel index. */
|
|
250
|
+
readonly panelId: string;
|
|
251
|
+
readonly preset: FacetIntervalPreset;
|
|
252
|
+
readonly domains: ReadonlyIntervalDomains;
|
|
253
|
+
/** Stable source-row identities selected by this panel interval. */
|
|
254
|
+
readonly keys: ReadonlyArray<Key>;
|
|
255
|
+
}
|
|
256
|
+
export interface ScopedInteractionInterval<Key extends PropertyKey> extends PlotInteractionInterval<Key> {
|
|
257
|
+
readonly scope: string;
|
|
258
|
+
}
|
|
259
|
+
export interface ScopedInteractionKeys<Key extends PropertyKey> {
|
|
260
|
+
readonly scope: string;
|
|
261
|
+
readonly keys: ReadonlyArray<Key>;
|
|
262
|
+
}
|
|
263
|
+
export interface ScopedInteractionDomain {
|
|
264
|
+
readonly scope: string;
|
|
265
|
+
readonly domain: readonly [number, number];
|
|
266
|
+
}
|
|
267
|
+
/** Controller semantic state. It deliberately excludes rows, renderer
|
|
268
|
+
* indices, pixel rectangles, candidate ids, models, and DOM references. */
|
|
269
|
+
export interface PlotInteractionSnapshot<Key extends PropertyKey> {
|
|
270
|
+
readonly revision: number;
|
|
271
|
+
readonly selections: ReadonlyArray<ScopedInteractionKeys<Key>>;
|
|
272
|
+
readonly emphases: ReadonlyArray<ScopedInteractionKeys<Key>>;
|
|
273
|
+
readonly intervals: ReadonlyArray<ScopedInteractionInterval<Key>>;
|
|
274
|
+
readonly zoom: Readonly<{
|
|
275
|
+
x: ReadonlyArray<ScopedInteractionDomain>;
|
|
276
|
+
y: ReadonlyArray<ScopedInteractionDomain>;
|
|
277
|
+
}>;
|
|
278
|
+
}
|
|
279
|
+
export interface PlotInteractionTransition<Key extends PropertyKey> {
|
|
280
|
+
readonly revision: number;
|
|
281
|
+
readonly kind: PlotInteractionChange | "reconcile";
|
|
282
|
+
readonly changes: ReadonlyArray<PlotInteractionChange>;
|
|
283
|
+
readonly source: InteractionSource;
|
|
284
|
+
readonly scope: PlotInteractionScope;
|
|
285
|
+
readonly snapshot: PlotInteractionSnapshot<Key>;
|
|
286
|
+
}
|
|
287
|
+
/**
|
|
288
|
+
* @deprecated since 0.1.0 — use IntervalSelection. Kept as a source migration
|
|
289
|
+
* alias only: https://ggts.sh/guide/upgrading#deprecated-type-aliases
|
|
290
|
+
*/
|
|
291
|
+
export type BrushSelection = IntervalSelection;
|
|
292
|
+
/**
|
|
293
|
+
* @deprecated since 0.1.0 — use PlotInspectionChange. Kept as a source
|
|
294
|
+
* migration alias only: https://ggts.sh/guide/upgrading#deprecated-type-aliases
|
|
295
|
+
*/
|
|
296
|
+
export type TooltipContext<Row = Record<string, CellValue>, Key = PropertyKey> = PlotInspectionChange<Row, Key>;
|
|
297
|
+
/**
|
|
298
|
+
* @deprecated since 0.1.0 — use ReadonlyZoomDomains. Kept as a source
|
|
299
|
+
* migration alias only: https://ggts.sh/guide/upgrading#deprecated-type-aliases
|
|
300
|
+
*/
|
|
301
|
+
export type ZoomDomains = {
|
|
302
|
+
x?: [number, number];
|
|
303
|
+
y?: [number, number];
|
|
304
|
+
};
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
// Diagnostic catalog (codes + frozen messages) lives in interaction-diagnostics.ts.
|
|
2
|
+
export { INTERACTION_DIAGNOSTIC_CATALOG } from "./interaction-diagnostics.js";
|
|
3
|
+
export { discreteColorFillDomainSizes, HIGH_CARDINALITY_DISCRETE_THRESHOLD, inspectAxisOnBarColDiagnostics, inspectAxisOnDistributionDiagnostics, inspectHighCardinalityDiagnostics, layerGeomsFromSpecLayers, } from "./inspect-geom-advisories.js";
|
|
4
|
+
export function isAreaTool(tool) {
|
|
5
|
+
return tool === "select-area" || tool === "zoom-area";
|
|
6
|
+
}
|
|
7
|
+
export { normalizeInteractionConfig } from "./normalize-interaction-config.js";
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Normalize public interaction capability inputs into a resolved config with
|
|
3
|
+
* diagnostics. Types live in ./interaction.ts; this module is pure logic only.
|
|
4
|
+
*/
|
|
5
|
+
import type { InteractionConfigInput, ResolvedInteractionConfig } from "./interaction.js";
|
|
6
|
+
export declare function normalizeInteractionConfig<Row, Key>(input: InteractionConfigInput<Row, Key>, context?: {
|
|
7
|
+
faceted?: boolean;
|
|
8
|
+
hasKey?: boolean;
|
|
9
|
+
}): ResolvedInteractionConfig<Row, Key>;
|