semiotic 3.7.5 → 3.8.1
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/CLAUDE.md +63 -18
- package/README.md +121 -27
- package/agent-skill/semiotic-charts/SKILL.md +146 -0
- package/ai/cli.js +133 -45
- package/ai/componentMetadata.cjs +6 -1
- package/ai/dist/mcp-server.js +1741 -163
- package/ai/examples.md +174 -0
- package/ai/schema.json +2733 -536
- package/ai/surface-manifest.json +201 -0
- package/ai/system-prompt.md +20 -4
- package/dist/__tests__/scenarios/mcpProtocolTypes.d.ts +20 -0
- package/dist/components/AccessibleNavTree.d.ts +7 -1
- package/dist/components/CategoryColors.d.ts +1 -1
- package/dist/components/ChartContainer.d.ts +91 -0
- package/dist/components/ChartGrid.d.ts +11 -1
- package/dist/components/CircularBrush.d.ts +61 -0
- package/dist/components/ContextLayout.d.ts +5 -1
- package/dist/components/DirectManipulationControl.d.ts +63 -0
- package/dist/components/LinkedCharts.d.ts +3 -1
- package/dist/components/MobileAnnotationCalloutList.d.ts +13 -0
- package/dist/components/MobileChartContainer.d.ts +51 -0
- package/dist/components/MobileStandardControls.d.ts +68 -0
- package/dist/components/SmallMultipleChart.d.ts +84 -0
- package/dist/components/Tooltip/FlippingTooltip.d.ts +21 -0
- package/dist/components/ai/ChartRecipe.d.ts +16 -0
- package/dist/components/ai/IntentMark.d.ts +15 -0
- package/dist/components/ai/chartCapabilities.d.ts +8 -1
- package/dist/components/ai/chartCapabilityTypes.d.ts +26 -1
- package/dist/components/ai/chartClinic.d.ts +91 -0
- package/dist/components/ai/chartClinicMetadata.generated.d.ts +15 -0
- package/dist/components/ai/chartRecipeRegistry.d.ts +14 -0
- package/dist/components/ai/chartRecipes.d.ts +278 -0
- package/dist/components/ai/dataPitfallsBridge.d.ts +102 -0
- package/dist/components/ai/describeChart.d.ts +7 -0
- package/dist/components/ai/describeRecipeChart.d.ts +16 -0
- package/dist/components/ai/generativeChart.d.ts +28 -3
- package/dist/components/ai/intentManifest.d.ts +62 -0
- package/dist/components/ai/navigationTree.d.ts +3 -0
- package/dist/components/ai/observedSceneAudit.d.ts +72 -0
- package/dist/components/ai/readerGrounding.d.ts +83 -0
- package/dist/components/ai/recipeCapability.d.ts +8 -0
- package/dist/components/ai/recipeNavigation.d.ts +13 -0
- package/dist/components/ai/recipeSemantics.d.ts +11 -0
- package/dist/components/ai/repairChartConfig.d.ts +9 -0
- package/dist/components/ai/suggestCharts.d.ts +11 -1
- package/dist/components/ai/useNavigationSync.d.ts +17 -2
- package/dist/components/chartContainerMobile.d.ts +9 -0
- package/dist/components/charts/custom/GeoCustomChart.d.ts +48 -0
- package/dist/components/charts/custom/NetworkCustomChart.d.ts +8 -2
- package/dist/components/charts/custom/OrdinalCustomChart.d.ts +8 -2
- package/dist/components/charts/custom/XYCustomChart.d.ts +11 -2
- package/dist/components/charts/geo/ChoroplethMap.d.ts +19 -2
- package/dist/components/charts/geo/DistanceCartogram.d.ts +15 -3
- package/dist/components/charts/geo/FlowMap.d.ts +11 -7
- package/dist/components/charts/geo/ProportionalSymbolMap.d.ts +15 -3
- package/dist/components/charts/geo/index.d.ts +2 -0
- package/dist/components/charts/index.d.ts +35 -1
- package/dist/components/charts/network/ChordDiagram.d.ts +10 -2
- package/dist/components/charts/network/CirclePack.d.ts +1 -1
- package/dist/components/charts/network/ForceDirectedGraph.d.ts +26 -5
- package/dist/components/charts/network/OrbitDiagram.d.ts +1 -1
- package/dist/components/charts/network/ProcessSankey.d.ts +1 -1
- package/dist/components/charts/network/SankeyDiagram.d.ts +10 -2
- package/dist/components/charts/network/TreeDiagram.d.ts +1 -1
- package/dist/components/charts/network/Treemap.d.ts +1 -1
- package/dist/components/charts/network/useForceLayout.d.ts +17 -0
- package/dist/components/charts/ordinal/BarChart.d.ts +22 -1
- package/dist/components/charts/ordinal/BoxPlot.d.ts +1 -1
- package/dist/components/charts/ordinal/DonutChart.d.ts +1 -1
- package/dist/components/charts/ordinal/DotPlot.d.ts +1 -1
- package/dist/components/charts/ordinal/FunnelChart.d.ts +1 -1
- package/dist/components/charts/ordinal/GroupedBarChart.d.ts +12 -1
- package/dist/components/charts/ordinal/Histogram.d.ts +1 -1
- package/dist/components/charts/ordinal/PieChart.d.ts +1 -1
- package/dist/components/charts/ordinal/RidgelinePlot.d.ts +1 -1
- package/dist/components/charts/ordinal/StackedBarChart.d.ts +12 -1
- package/dist/components/charts/ordinal/SwarmPlot.d.ts +1 -1
- package/dist/components/charts/ordinal/SwimlaneChart.d.ts +1 -1
- package/dist/components/charts/ordinal/ViolinPlot.d.ts +1 -1
- package/dist/components/charts/physics/ChainReactionChart.d.ts +9 -0
- package/dist/components/charts/physics/CollisionSwarmChart.capability.d.ts +2 -0
- package/dist/components/charts/physics/CollisionSwarmChart.d.ts +54 -0
- package/dist/components/charts/physics/EventDropChart.capability.d.ts +2 -0
- package/dist/components/charts/physics/EventDropChart.d.ts +60 -0
- package/dist/components/charts/physics/GaltonBoardChart.capability.d.ts +2 -0
- package/dist/components/charts/physics/GaltonBoardChart.d.ts +74 -0
- package/dist/components/charts/physics/GauntletChart.capability.d.ts +2 -0
- package/dist/components/charts/physics/GauntletChart.d.ts +73 -0
- package/dist/components/charts/physics/PhysicalFlowChart.capability.d.ts +2 -0
- package/dist/components/charts/physics/PhysicalFlowChart.d.ts +63 -0
- package/dist/components/charts/physics/PhysicsCustomChart.d.ts +99 -0
- package/dist/components/charts/physics/PhysicsPileChart.capability.d.ts +2 -0
- package/dist/components/charts/physics/PhysicsPileChart.d.ts +60 -0
- package/dist/components/charts/physics/ProcessFlowChart.capability.d.ts +2 -0
- package/dist/components/charts/physics/ProcessFlowChart.d.ts +96 -0
- package/dist/components/charts/physics/chainReactionOverlay.d.ts +22 -0
- package/dist/components/charts/physics/chainReactionRuntime.d.ts +37 -0
- package/dist/components/charts/physics/chainReactionTypes.d.ts +97 -0
- package/dist/components/charts/physics/collisionSwarmPhysics.d.ts +27 -0
- package/dist/components/charts/physics/dependencyMachine.d.ts +188 -0
- package/dist/components/charts/physics/eventDropPhysics.d.ts +64 -0
- package/dist/components/charts/physics/galtonBoardPhysics.d.ts +28 -0
- package/dist/components/charts/physics/gauntletChartProps.d.ts +67 -0
- package/dist/components/charts/physics/gauntletChrome.d.ts +33 -0
- package/dist/components/charts/physics/gauntletController.d.ts +73 -0
- package/dist/components/charts/physics/gauntletEffects.d.ts +36 -0
- package/dist/components/charts/physics/gauntletPhysics.d.ts +71 -0
- package/dist/components/charts/physics/gauntletRuntime.d.ts +42 -0
- package/dist/components/charts/physics/gauntletTypes.d.ts +213 -0
- package/dist/components/charts/physics/physicalFlowPhysics.d.ts +57 -0
- package/dist/components/charts/physics/physicsChartShared.d.ts +57 -0
- package/dist/components/charts/physics/physicsChartUtils.d.ts +18 -0
- package/dist/components/charts/physics/physicsCustomLayout.d.ts +32 -0
- package/dist/components/charts/physics/physicsEncoding.d.ts +142 -0
- package/dist/components/charts/physics/physicsHocHandle.d.ts +53 -0
- package/dist/components/charts/physics/physicsHocUtils.d.ts +128 -0
- package/dist/components/charts/physics/physicsPilePhysics.d.ts +41 -0
- package/dist/components/charts/physics/physicsProcessPrimitives.d.ts +38 -0
- package/dist/components/charts/physics/processFlowPhysics.d.ts +97 -0
- package/dist/components/charts/realtime/RealtimeHeatmap.d.ts +9 -1
- package/dist/components/charts/realtime/RealtimeHistogram.d.ts +9 -1
- package/dist/components/charts/realtime/RealtimeLineChart.d.ts +9 -1
- package/dist/components/charts/realtime/RealtimeSwarmChart.d.ts +16 -2
- package/dist/components/charts/realtime/RealtimeWaterfallChart.d.ts +9 -1
- package/dist/components/charts/shared/AnnotationLabel.d.ts +88 -0
- package/dist/components/charts/shared/annotationActivation.d.ts +35 -0
- package/dist/components/charts/shared/annotationLabelLayout.d.ts +5 -0
- package/dist/components/charts/shared/annotationRules.d.ts +2 -1
- package/dist/components/charts/shared/auditMobileVisualization.d.ts +91 -0
- package/dist/components/charts/shared/chartDefinitionPilot.d.ts +145 -0
- package/dist/components/charts/shared/chartFamilySets.d.ts +20 -0
- package/dist/components/charts/shared/chartSelectionUtils.d.ts +4 -0
- package/dist/components/charts/shared/chartSpecCore.d.ts +165 -0
- package/dist/components/charts/shared/chartSpecs.d.ts +8 -127
- package/dist/components/charts/shared/chartSpecsGeo.d.ts +2 -0
- package/dist/components/charts/shared/chartSpecsNetwork.d.ts +2 -0
- package/dist/components/charts/shared/chartSpecsOrdinal.d.ts +2 -0
- package/dist/components/charts/shared/chartSpecsPhysics.d.ts +2 -0
- package/dist/components/charts/shared/chartSpecsRealtime.d.ts +2 -0
- package/dist/components/charts/shared/chartSpecsValue.d.ts +2 -0
- package/dist/components/charts/shared/chartSpecsXY.d.ts +2 -0
- package/dist/components/charts/shared/colorContrast.d.ts +3 -0
- package/dist/components/charts/shared/colorUtils.d.ts +16 -1
- package/dist/components/charts/shared/datumTypes.d.ts +2 -0
- package/dist/components/charts/shared/diagnoseAnnotationChecks.d.ts +6 -0
- package/dist/components/charts/shared/diagnoseConfig.d.ts +9 -14
- package/dist/components/charts/shared/diagnoseMisleadingChecks.d.ts +9 -0
- package/dist/components/charts/shared/diagnosePhysicsChecks.d.ts +3 -0
- package/dist/components/charts/shared/diagnoseTypes.d.ts +10 -0
- package/dist/components/charts/shared/formatUtils.d.ts +3 -3
- package/dist/components/charts/shared/hatchFill.d.ts +87 -0
- package/dist/components/charts/shared/hooks.d.ts +34 -10
- package/dist/components/charts/shared/knownChartComponents.d.ts +9 -0
- package/dist/components/charts/shared/leastSquaresRegression.d.ts +16 -0
- package/dist/components/charts/shared/mergeShapeStyle.d.ts +3 -2
- package/dist/components/charts/shared/motionEncoding.d.ts +145 -0
- package/dist/components/charts/shared/responsiveRules.d.ts +56 -0
- package/dist/components/charts/shared/semanticInteractions.d.ts +42 -0
- package/dist/components/charts/shared/sparseArray.d.ts +1 -1
- package/dist/components/charts/shared/streamPropsHelpers.d.ts +17 -5
- package/dist/components/charts/shared/styleRules.d.ts +205 -0
- package/dist/components/charts/shared/temporalStrings.d.ts +7 -0
- package/dist/components/charts/shared/tooltipUtils.d.ts +22 -9
- package/dist/components/charts/shared/types.d.ts +58 -7
- package/dist/components/charts/shared/useAreaSeriesSetup.d.ts +16 -2
- package/dist/components/charts/shared/useChartSetup.d.ts +11 -4
- package/dist/components/charts/shared/useCustomChartSetup.d.ts +17 -5
- package/dist/components/charts/shared/useFrameImperativeHandle.d.ts +1 -2
- package/dist/components/charts/shared/useLikertAggregation.d.ts +4 -4
- package/dist/components/charts/shared/useNetworkChartSetup.d.ts +6 -2
- package/dist/components/charts/shared/useOrdinalBrush.d.ts +2 -1
- package/dist/components/charts/shared/useOrdinalPieceStyle.d.ts +25 -2
- package/dist/components/charts/shared/useStreamingLegend.d.ts +2 -2
- package/dist/components/charts/shared/useSyncedPushData.d.ts +49 -0
- package/dist/components/charts/shared/useXYLineStyle.d.ts +10 -0
- package/dist/components/charts/shared/useXYPointStyle.d.ts +19 -1
- package/dist/components/charts/shared/validateChartData.d.ts +7 -5
- package/dist/components/charts/shared/validationMap.d.ts +7 -9
- package/dist/components/charts/shared/validationMap.generated.d.ts +6 -0
- package/dist/components/charts/shared/withChartWrapper.d.ts +4 -3
- package/dist/components/charts/value/targetPresentation.d.ts +22 -0
- package/dist/components/charts/value/types.d.ts +5 -6
- package/dist/components/charts/xy/AreaChart.d.ts +9 -1
- package/dist/components/charts/xy/BubbleChart.d.ts +10 -1
- package/dist/components/charts/xy/ConnectedScatterplot.d.ts +7 -0
- package/dist/components/charts/xy/DifferenceChart.d.ts +1 -52
- package/dist/components/charts/xy/Heatmap.d.ts +2 -2
- package/dist/components/charts/xy/LineChart.d.ts +12 -1
- package/dist/components/charts/xy/MinimapChart.d.ts +1 -1
- package/dist/components/charts/xy/MultiAxisLineChart.d.ts +2 -2
- package/dist/components/charts/xy/QuadrantChart.d.ts +8 -1
- package/dist/components/charts/xy/Scatterplot.d.ts +11 -1
- package/dist/components/charts/xy/ScatterplotMatrix.d.ts +11 -1
- package/dist/components/charts/xy/StackedAreaChart.d.ts +16 -4
- package/dist/components/charts/xy/differenceSegments.d.ts +49 -0
- package/dist/components/charts/xy/scatterplotMatrixInteractionTypes.d.ts +12 -0
- package/dist/components/controls/SentenceFilter.d.ts +97 -0
- package/dist/components/controls/controlAudit.d.ts +24 -0
- package/dist/components/controls/controlContract.d.ts +57 -0
- package/dist/components/data/fromFlintChart.d.ts +74 -0
- package/dist/components/data/fromVegaLite.d.ts +46 -9
- package/dist/components/data/portability/index.d.ts +6 -3
- package/dist/components/data/portability/result.d.ts +52 -0
- package/dist/components/data/portability/spec.d.ts +31 -0
- package/dist/components/data/portability/vegaLite.d.ts +24 -6
- package/dist/components/export/chartConfig.d.ts +11 -0
- package/dist/components/realtime/types.d.ts +11 -0
- package/dist/components/recipes/annotationLayout.d.ts +29 -0
- package/dist/components/recipes/axisFixedForce.d.ts +119 -0
- package/dist/components/recipes/{gofishBoba.d.ts → boba.d.ts} +2 -2
- package/dist/components/recipes/cyclical.d.ts +39 -0
- package/dist/components/recipes/edgeRouter.d.ts +103 -0
- package/dist/components/recipes/forceLayout.d.ts +48 -0
- package/dist/components/recipes/forceLayoutAsync.d.ts +17 -0
- package/dist/components/recipes/gofishBobaHandwritten.d.ts +3 -0
- package/dist/components/recipes/gofishDisplayListFixtures.generated.d.ts +37 -0
- package/dist/components/recipes/gofishIR.d.ts +178 -132
- package/dist/components/recipes/gofishIRExamples.d.ts +30 -81
- package/dist/components/recipes/intervalLanes.d.ts +87 -0
- package/dist/components/recipes/intervals.d.ts +80 -0
- package/dist/components/recipes/isometricLandmarks.d.ts +88 -0
- package/dist/components/recipes/isotypeGlyphs.d.ts +17 -0
- package/dist/components/recipes/mobileAnnotationStrategy.d.ts +48 -0
- package/dist/components/recipes/mobileChartFamilyRecipes.d.ts +59 -0
- package/dist/components/recipes/networkAnalysis.d.ts +102 -0
- package/dist/components/recipes/networkLayouts.d.ts +83 -0
- package/dist/components/recipes/physics.d.ts +122 -0
- package/dist/components/recipes/physicsReference.d.ts +102 -0
- package/dist/components/recipes/processAggregates.d.ts +32 -0
- package/dist/components/recipes/processChrome.d.ts +67 -0
- package/dist/components/recipes/processJourney.d.ts +54 -0
- package/dist/components/recipes/processPhysics.d.ts +300 -0
- package/dist/components/recipes/processVolumeGeometry.d.ts +28 -0
- package/dist/components/recipes/radialCoords.d.ts +69 -0
- package/dist/components/recipes/random.d.ts +2 -0
- package/dist/components/recipes/recipeChrome.d.ts +91 -0
- package/dist/components/recipes/recipeGlyph.d.ts +42 -0
- package/dist/components/recipes/recipeLegend.d.ts +53 -1
- package/dist/components/recipes/recipeUtils.d.ts +52 -0
- package/dist/components/recipes/runs.d.ts +59 -0
- package/dist/components/recipes/tokenEncoding.d.ts +157 -0
- package/dist/components/recipes/tokenLayer.d.ts +79 -0
- package/dist/components/recipes/unitize.d.ts +108 -0
- package/dist/components/recipes/vector.d.ts +28 -0
- package/dist/components/recipes/waffle.d.ts +43 -0
- package/dist/components/rough/createRoughRenderMode.d.ts +46 -0
- package/dist/components/semiotic-ai-core.d.ts +47 -0
- package/dist/components/semiotic-ai.d.ts +53 -9
- package/dist/components/semiotic-controls.d.ts +20 -0
- package/dist/components/semiotic-experimental.d.ts +38 -9
- package/dist/components/semiotic-geo.d.ts +15 -0
- package/dist/components/semiotic-network.d.ts +15 -0
- package/dist/components/semiotic-ordinal.d.ts +14 -0
- package/dist/components/semiotic-physics-matter.d.ts +10 -0
- package/dist/components/semiotic-physics-rapier.d.ts +9 -0
- package/dist/components/semiotic-physics.d.ts +60 -0
- package/dist/components/semiotic-realtime-core.d.ts +34 -0
- package/dist/components/semiotic-realtime-react.d.ts +10 -0
- package/dist/components/semiotic-realtime.d.ts +4 -30
- package/dist/components/semiotic-recipes-core.d.ts +92 -0
- package/dist/components/semiotic-recipes-react.d.ts +7 -0
- package/dist/components/semiotic-recipes.d.ts +4 -43
- package/dist/components/semiotic-rough.d.ts +4 -0
- package/dist/components/semiotic-server-edge.d.ts +8 -0
- package/dist/components/semiotic-server-node.d.ts +5 -0
- package/dist/components/semiotic-server.d.ts +2 -2
- package/dist/components/semiotic-themes-core.d.ts +53 -0
- package/dist/components/semiotic-themes-react.d.ts +4 -0
- package/dist/components/semiotic-themes.d.ts +6 -76
- package/dist/components/semiotic-utils-core.d.ts +50 -0
- package/dist/components/semiotic-utils-react.d.ts +5 -0
- package/dist/components/semiotic-utils.d.ts +3 -39
- package/dist/components/semiotic-xy.d.ts +12 -0
- package/dist/components/semiotic.d.ts +44 -8
- package/dist/components/server/animatedGif.d.ts +36 -0
- package/dist/components/server/optionalImageTypes.d.ts +37 -0
- package/dist/components/server/renderEvidence.d.ts +1 -1
- package/dist/components/server/renderToStaticSVG.d.ts +3 -35
- package/dist/components/server/serverChartConfigShared.d.ts +21 -0
- package/dist/components/server/serverChartConfigs.d.ts +22 -12
- package/dist/components/server/serverChartConfigsCustom.d.ts +5 -0
- package/dist/components/server/serverChartConfigsGeo.d.ts +9 -0
- package/dist/components/server/serverChartConfigsNetwork.d.ts +8 -0
- package/dist/components/server/serverChartConfigsOrdinal.d.ts +16 -0
- package/dist/components/server/serverChartConfigsPhysics.d.ts +9 -0
- package/dist/components/server/serverChartConfigsXY.d.ts +11 -0
- package/dist/components/server/staticAnnotations.d.ts +6 -3
- package/dist/components/server/staticGeo.d.ts +4 -0
- package/dist/components/server/staticLegend.d.ts +2 -2
- package/dist/components/server/staticNetwork.d.ts +8 -0
- package/dist/components/server/staticOrdinal.d.ts +11 -0
- package/dist/components/server/staticPhysics.d.ts +3 -0
- package/dist/components/server/staticSVGChrome.d.ts +110 -0
- package/dist/components/server/staticXY.d.ts +4 -0
- package/dist/components/store/ObservationStore.d.ts +23 -2
- package/dist/components/store/themeSerialization.d.ts +32 -0
- package/dist/components/store/useChartInterrogation.d.ts +9 -0
- package/dist/components/stream/AccessibleDataTable.d.ts +7 -23
- package/dist/components/stream/AriaLiveTooltip.d.ts +9 -0
- package/dist/components/stream/CanvasHitTester.d.ts +4 -4
- package/dist/components/stream/DataSourceAdapter.d.ts +1 -1
- package/dist/components/stream/FocusRing.d.ts +4 -2
- package/dist/components/stream/FrameRuntime.d.ts +57 -0
- package/dist/components/stream/GeoCanvasHitTester.d.ts +1 -1
- package/dist/components/stream/GeoParticlePool.d.ts +1 -1
- package/dist/components/stream/GeoPipelineStore.d.ts +62 -3
- package/dist/components/stream/GeoSVGOverlay.d.ts +64 -0
- package/dist/components/stream/NetworkCanvasHitTester.d.ts +2 -1
- package/dist/components/stream/NetworkPipelineStore.d.ts +44 -36
- package/dist/components/stream/NetworkSSRFrame.d.ts +17 -0
- package/dist/components/stream/NetworkSVGOverlay.d.ts +10 -1
- package/dist/components/stream/OrdinalCanvasHitTester.d.ts +2 -2
- package/dist/components/stream/OrdinalPipelineStore.d.ts +55 -11
- package/dist/components/stream/OrdinalSVGOverlay.d.ts +9 -1
- package/dist/components/stream/OrdinalStyleResolver.d.ts +12 -0
- package/dist/components/stream/ParticlePool.d.ts +1 -1
- package/dist/components/stream/PipelineStore.d.ts +81 -174
- package/dist/components/stream/SVGOverlay.d.ts +6 -0
- package/dist/components/stream/SceneGraph.d.ts +12 -4
- package/dist/components/stream/StreamGeoFrame.d.ts +1 -1
- package/dist/components/stream/StreamNetworkFrame.d.ts +1 -1
- package/dist/components/stream/StreamOrdinalFrame.d.ts +1 -1
- package/dist/components/stream/StreamXYFrame.d.ts +2 -18
- package/dist/components/stream/accessibleDataRows.d.ts +33 -0
- package/dist/components/stream/accessorUtils.d.ts +25 -12
- package/dist/components/stream/annotationAccessorResolver.d.ts +2 -2
- package/dist/components/stream/brushAccessibility.d.ts +25 -0
- package/dist/components/stream/canvasBackground.d.ts +24 -0
- package/dist/components/stream/canvasSetup.d.ts +4 -1
- package/dist/components/stream/customLayoutFailure.d.ts +33 -0
- package/dist/components/stream/customLayoutPalette.d.ts +19 -9
- package/dist/components/stream/frameGraphics.d.ts +4 -0
- package/dist/components/stream/frameKeyboardNavigation.d.ts +45 -0
- package/dist/components/stream/frameThemeColors.d.ts +24 -0
- package/dist/components/stream/geoAnnotationAnchors.d.ts +14 -0
- package/dist/components/stream/geoCartogram.d.ts +17 -0
- package/dist/components/stream/geoCustomLayout.d.ts +59 -0
- package/dist/components/stream/geoDefaultTooltip.d.ts +11 -0
- package/dist/components/stream/geoFrameHelpers.d.ts +34 -0
- package/dist/components/stream/geoPipelineHelpers.d.ts +46 -0
- package/dist/components/stream/geoPipelineUpdateResults.d.ts +34 -0
- package/dist/components/stream/geoSceneBuilder.d.ts +16 -0
- package/dist/components/stream/geoTypes.d.ts +97 -15
- package/dist/components/stream/glyphDef.d.ts +98 -0
- package/dist/components/stream/hitTarget.d.ts +170 -0
- package/dist/components/stream/hitTestUtils.d.ts +2 -2
- package/dist/components/stream/hoverUtils.d.ts +7 -2
- package/dist/components/stream/keyboardNav.d.ts +4 -1
- package/dist/components/stream/layouts/forceLayoutPlugin.d.ts +9 -1
- package/dist/components/stream/layouts/forceLayoutWorkerClient.d.ts +58 -0
- package/dist/components/stream/layouts/hierarchyUtils.d.ts +2 -2
- package/dist/components/stream/networkBezier.d.ts +10 -0
- package/dist/components/stream/networkColorAccessors.d.ts +49 -0
- package/dist/components/stream/networkCustomLayoutRunner.d.ts +23 -0
- package/dist/components/stream/networkCustomRestyle.d.ts +15 -0
- package/dist/components/stream/networkDefaultTooltip.d.ts +10 -0
- package/dist/components/stream/networkFrameAnimation.d.ts +7 -0
- package/dist/components/stream/networkFrameHandleTypes.d.ts +39 -0
- package/dist/components/stream/networkFrameInteraction.d.ts +37 -0
- package/dist/components/stream/networkFrameObservations.d.ts +15 -0
- package/dist/components/stream/networkFramePaint.d.ts +52 -0
- package/dist/components/stream/networkInteractionTypes.d.ts +26 -0
- package/dist/components/stream/networkPipelineConfig.d.ts +22 -0
- package/dist/components/stream/networkPipelineHelpers.d.ts +12 -0
- package/dist/components/stream/networkPipelineUpdateResults.d.ts +38 -0
- package/dist/components/stream/networkRealtimeEncoding.d.ts +41 -0
- package/dist/components/stream/networkTypes.d.ts +103 -51
- package/dist/components/stream/ordinalCanvasRenderers.d.ts +7 -0
- package/dist/components/stream/ordinalDataIndex.d.ts +5 -0
- package/dist/components/stream/ordinalDefaultTooltip.d.ts +10 -0
- package/dist/components/stream/ordinalDomain.d.ts +38 -0
- package/dist/components/stream/ordinalPipelineUpdateResults.d.ts +31 -0
- package/dist/components/stream/ordinalPulse.d.ts +10 -0
- package/dist/components/stream/ordinalPulseResources.d.ts +3 -0
- package/dist/components/stream/ordinalSceneBuilders/sceneBuilderMap.d.ts +5 -0
- package/dist/components/stream/ordinalSceneBuilders/types.d.ts +2 -2
- package/dist/components/stream/ordinalSpatialIndex.d.ts +9 -0
- package/dist/components/stream/ordinalTypes.d.ts +68 -9
- package/dist/components/stream/paintNeeds.d.ts +31 -0
- package/dist/components/stream/physics/CapacityQueueController.d.ts +5 -0
- package/dist/components/stream/physics/CapacityQueueTypes.d.ts +134 -0
- package/dist/components/stream/physics/MatterPhysicsEngineAdapter.d.ts +42 -0
- package/dist/components/stream/physics/PhysicsAccessibility.d.ts +48 -0
- package/dist/components/stream/physics/PhysicsAnnotations.d.ts +58 -0
- package/dist/components/stream/physics/PhysicsBodyBudget.d.ts +26 -0
- package/dist/components/stream/physics/PhysicsBodySpatialIndex.d.ts +10 -0
- package/dist/components/stream/physics/PhysicsCanvasTheme.d.ts +26 -0
- package/dist/components/stream/physics/PhysicsControllers.d.ts +75 -0
- package/dist/components/stream/physics/PhysicsEngineAdapter.d.ts +59 -0
- package/dist/components/stream/physics/PhysicsEngineConformance.d.ts +23 -0
- package/dist/components/stream/physics/PhysicsEvidence.d.ts +25 -0
- package/dist/components/stream/physics/PhysicsKernel.d.ts +207 -0
- package/dist/components/stream/physics/PhysicsOptionalEngineAdapters.d.ts +12 -0
- package/dist/components/stream/physics/PhysicsPipelineStore.d.ts +86 -0
- package/dist/components/stream/physics/PhysicsPipelineTypes.d.ts +181 -0
- package/dist/components/stream/physics/PhysicsSVGOverlay.d.ts +78 -0
- package/dist/components/stream/physics/PhysicsSediment.d.ts +69 -0
- package/dist/components/stream/physics/PhysicsSettledSVG.d.ts +18 -0
- package/dist/components/stream/physics/PhysicsSettledScene.d.ts +21 -0
- package/dist/components/stream/physics/PhysicsWorkerClient.d.ts +24 -0
- package/dist/components/stream/physics/PhysicsWorkerProtocol.d.ts +101 -0
- package/dist/components/stream/physics/PhysicsWorkerRuntime.d.ts +5 -0
- package/dist/components/stream/physics/RapierPhysicsEngineAdapter.d.ts +18 -0
- package/dist/components/stream/physics/ServiceOperationsControllers.d.ts +27 -0
- package/dist/components/stream/physics/ServiceOperationsTypes.d.ts +89 -0
- package/dist/components/stream/physics/StreamPhysicsFrame.d.ts +6 -0
- package/dist/components/stream/physics/StreamPhysicsTypes.d.ts +317 -0
- package/dist/components/stream/physics/physicsBodyCanvas.d.ts +27 -0
- package/dist/components/stream/physics/physicsFrameObservations.d.ts +19 -0
- package/dist/components/stream/physics/physicsFrameSetup.d.ts +4 -0
- package/dist/components/stream/physics/physicsPipelineControls.d.ts +4 -0
- package/dist/components/stream/physics/physicsPipelineHelpers.d.ts +41 -0
- package/dist/components/stream/physics/physicsPipelineObservations.d.ts +14 -0
- package/dist/components/stream/physics/physicsPipelineUpdateResults.d.ts +27 -0
- package/dist/components/stream/physics/physicsRegionRuntime.d.ts +54 -0
- package/dist/components/stream/physics/physicsSemanticUI.d.ts +20 -0
- package/dist/components/stream/physics/usePhysicsFrameLifecyclePolicy.d.ts +18 -0
- package/dist/components/stream/pipelineBufferUtils.d.ts +26 -0
- package/dist/components/stream/pipelineConfig.d.ts +179 -0
- package/dist/components/stream/pipelineDecay.d.ts +21 -3
- package/dist/components/stream/pipelineDomainResolution.d.ts +62 -0
- package/dist/components/stream/pipelineIdentityOps.d.ts +26 -0
- package/dist/components/stream/pipelinePulse.d.ts +17 -3
- package/dist/components/stream/pipelineRibbons.d.ts +41 -0
- package/dist/components/stream/pipelineSpatialIndex.d.ts +12 -0
- package/dist/components/stream/pipelineStoreUpdateResults.d.ts +33 -0
- package/dist/components/stream/pipelineStyleResolvers.d.ts +46 -0
- package/dist/components/stream/pipelineTransitions.d.ts +3 -1
- package/dist/components/stream/pipelineUpdateContract.d.ts +69 -0
- package/dist/components/stream/pipelineUpdateStore.d.ts +21 -0
- package/dist/components/stream/pulseFrameRefresh.d.ts +22 -0
- package/dist/components/stream/renderBackend.d.ts +27 -0
- package/dist/components/stream/renderers/canvasRenderHelpers.d.ts +15 -1
- package/dist/components/stream/renderers/geoCanvasRenderer.d.ts +3 -2
- package/dist/components/stream/renderers/glyphCanvasRenderer.d.ts +6 -0
- package/dist/components/stream/renderers/networkParticleRenderer.d.ts +1 -1
- package/dist/components/stream/renderers/resolveCSSColor.d.ts +6 -0
- package/dist/components/stream/sceneRenderBackendTypes.d.ts +28 -0
- package/dist/components/stream/sceneRevisionDiagnostics.d.ts +45 -0
- package/dist/components/stream/streamSemanticTypes.d.ts +16 -0
- package/dist/components/stream/streamStoreSync.d.ts +37 -0
- package/dist/components/stream/streamThemeTypes.d.ts +14 -0
- package/dist/components/stream/svgOverlayUtils.d.ts +10 -0
- package/dist/components/stream/test-utils/frameScheduler.d.ts +12 -0
- package/dist/components/stream/test-utils/revisionConsumption.d.ts +13 -0
- package/dist/components/stream/titleLayout.d.ts +31 -0
- package/dist/components/stream/types.d.ts +165 -72
- package/dist/components/stream/useCanvasFrameHost.d.ts +71 -0
- package/dist/components/stream/useFrame.d.ts +44 -2
- package/dist/components/stream/useHydration.d.ts +6 -0
- package/dist/components/stream/useLegendCategoryEmission.d.ts +5 -0
- package/dist/components/stream/useSemanticFrameInteractions.d.ts +22 -0
- package/dist/components/stream/useUpdateResultSnapshot.d.ts +7 -0
- package/dist/components/stream/workerModuleUrl.d.ts +10 -0
- package/dist/components/stream/xyAnnotationAnchors.d.ts +13 -0
- package/dist/components/stream/xyCanvasRenderers.d.ts +7 -0
- package/dist/components/stream/xyCrosshair.d.ts +11 -0
- package/dist/components/stream/xyDateTicks.d.ts +9 -0
- package/dist/components/stream/xyDefaultTooltip.d.ts +10 -0
- package/dist/components/stream/xyFrameAxisTypes.d.ts +50 -0
- package/dist/components/stream/xySceneBuilders/types.d.ts +10 -9
- package/dist/controls.min.js +2 -0
- package/dist/controls.module.min.js +2 -0
- package/dist/forceLayoutWorker.js +1 -0
- package/dist/geo.min.js +1 -1
- package/dist/geo.module.min.js +1 -1
- package/dist/network.min.js +1 -1
- package/dist/network.module.min.js +1 -1
- package/dist/ordinal.min.js +1 -1
- package/dist/ordinal.module.min.js +1 -1
- package/dist/physics-matter.min.js +1 -0
- package/dist/physics-matter.module.min.js +1 -0
- package/dist/physics-rapier.min.js +1 -0
- package/dist/physics-rapier.module.min.js +1 -0
- package/dist/physics.min.js +2 -0
- package/dist/physics.module.min.js +2 -0
- package/dist/physicsWorker.js +1 -0
- package/dist/realtime.min.js +1 -1
- package/dist/realtime.module.min.js +1 -1
- package/dist/rough.min.js +1 -0
- package/dist/rough.module.min.js +1 -0
- package/dist/semiotic-ai-chunk-OG7BQUUW.module.min.js +2 -0
- package/dist/semiotic-ai-core.d.ts +47 -0
- package/dist/semiotic-ai-core.min.js +1 -0
- package/dist/semiotic-ai-core.module.min.js +1 -0
- package/dist/semiotic-ai-statisticalOverlays-CY4WKR4A.module.min.js +2 -0
- package/dist/semiotic-ai.d.ts +53 -9
- package/dist/semiotic-ai.min.js +1 -1
- package/dist/semiotic-ai.module.min.js +1 -1
- package/dist/semiotic-chunk-3FSVZ46U.module.min.js +2 -0
- package/dist/semiotic-controls.d.ts +20 -0
- package/dist/semiotic-data.min.js +1 -1
- package/dist/semiotic-data.module.min.js +1 -1
- package/dist/semiotic-experimental.d.ts +38 -9
- package/dist/semiotic-experimental.min.js +1 -1
- package/dist/semiotic-experimental.module.min.js +1 -1
- package/dist/semiotic-geo.d.ts +15 -0
- package/dist/semiotic-network.d.ts +15 -0
- package/dist/semiotic-ordinal.d.ts +14 -0
- package/dist/semiotic-physics-matter.d.ts +10 -0
- package/dist/semiotic-physics-rapier.d.ts +9 -0
- package/dist/semiotic-physics.d.ts +60 -0
- package/dist/semiotic-realtime-core.d.ts +34 -0
- package/dist/semiotic-realtime-core.min.js +1 -0
- package/dist/semiotic-realtime-core.module.min.js +1 -0
- package/dist/semiotic-realtime-react.d.ts +10 -0
- package/dist/semiotic-realtime-react.min.js +2 -0
- package/dist/semiotic-realtime-react.module.min.js +2 -0
- package/dist/semiotic-realtime.d.ts +4 -30
- package/dist/semiotic-recipes-core.d.ts +92 -0
- package/dist/semiotic-recipes-core.min.js +1 -0
- package/dist/semiotic-recipes-core.module.min.js +1 -0
- package/dist/semiotic-recipes-react.d.ts +7 -0
- package/dist/semiotic-recipes-react.min.js +2 -0
- package/dist/semiotic-recipes-react.module.min.js +2 -0
- package/dist/semiotic-recipes.d.ts +4 -43
- package/dist/semiotic-recipes.min.js +1 -1
- package/dist/semiotic-recipes.module.min.js +1 -1
- package/dist/semiotic-rough.d.ts +4 -0
- package/dist/semiotic-server-edge.d.ts +8 -0
- package/dist/semiotic-server-edge.min.js +1 -0
- package/dist/semiotic-server-edge.module.min.js +1 -0
- package/dist/semiotic-server-node.d.ts +5 -0
- package/dist/semiotic-server-node.min.js +1 -0
- package/dist/semiotic-server-node.module.min.js +1 -0
- package/dist/semiotic-server.d.ts +2 -2
- package/dist/semiotic-statisticalOverlays-UOMSFKVJ.module.min.js +2 -0
- package/dist/semiotic-themes-core.d.ts +53 -0
- package/dist/semiotic-themes-core.min.js +1 -0
- package/dist/semiotic-themes-core.module.min.js +1 -0
- package/dist/semiotic-themes-react.d.ts +4 -0
- package/dist/semiotic-themes-react.min.js +2 -0
- package/dist/semiotic-themes-react.module.min.js +2 -0
- package/dist/semiotic-themes.d.ts +6 -76
- package/dist/semiotic-themes.min.js +1 -2
- package/dist/semiotic-themes.module.min.js +1 -2
- package/dist/semiotic-utils-core.d.ts +50 -0
- package/dist/semiotic-utils-core.min.js +1 -0
- package/dist/semiotic-utils-core.module.min.js +1 -0
- package/dist/semiotic-utils-react.d.ts +5 -0
- package/dist/semiotic-utils-react.min.js +2 -0
- package/dist/semiotic-utils-react.module.min.js +2 -0
- package/dist/semiotic-utils.d.ts +3 -39
- package/dist/semiotic-utils.min.js +1 -2
- package/dist/semiotic-utils.module.min.js +1 -2
- package/dist/semiotic-value.min.js +1 -1
- package/dist/semiotic-value.module.min.js +1 -1
- package/dist/semiotic-xy.d.ts +12 -0
- package/dist/semiotic.d.ts +44 -8
- package/dist/semiotic.min.js +1 -1
- package/dist/semiotic.module.min.js +1 -1
- package/dist/server.min.js +1 -1
- package/dist/server.module.min.js +1 -1
- package/dist/test-utils/capturedFrameProps.d.ts +67 -0
- package/dist/test-utils/frameMock.d.ts +12 -9
- package/dist/xy-chunk-IWD6IB6V.module.min.js +2 -0
- package/dist/xy-statisticalOverlays-7RWG6LJT.module.min.js +2 -0
- package/dist/xy.min.js +1 -1
- package/dist/xy.module.min.js +1 -1
- package/package.json +259 -88
- package/spec/README.md +152 -0
- package/spec/bindings/README.md +35 -0
- package/spec/bindings/vega-lite.mjs +112 -0
- package/spec/v0.1/annotation-provenance.schema.json +127 -0
- package/spec/v0.1/audience-profile.schema.json +67 -0
- package/spec/v0.1/chart-capability.schema.json +186 -0
- package/dist/components/recipes/gofish.d.ts +0 -207
- package/dist/components/recipes/gofishInterpreter.d.ts +0 -52
- package/dist/components/recipes/gofishLambdas.d.ts +0 -145
- package/dist/semiotic-ai-semiotic-ai-u954ylUn.js +0 -2
- package/dist/semiotic-ai-statisticalOverlays-CU7jW05Q.js +0 -1
- package/dist/semiotic-semiotic-BmrYbi99.js +0 -2
- package/dist/semiotic-statisticalOverlays-IjZw8Lsu.js +0 -1
- package/dist/xy-semiotic-xy-Dufu3D0-.js +0 -2
- package/dist/xy-statisticalOverlays-3Ni9bRph.js +0 -1
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/** Structural scene node accepted from any frame family. */
|
|
2
|
+
export type AccessibleSceneNode = {
|
|
3
|
+
type?: unknown;
|
|
4
|
+
datum?: unknown;
|
|
5
|
+
accessibleDatum?: unknown;
|
|
6
|
+
accessibility?: unknown;
|
|
7
|
+
group?: unknown;
|
|
8
|
+
value?: unknown;
|
|
9
|
+
category?: unknown;
|
|
10
|
+
label?: unknown;
|
|
11
|
+
name?: unknown;
|
|
12
|
+
properties?: unknown;
|
|
13
|
+
tableFields?: unknown;
|
|
14
|
+
x?: unknown;
|
|
15
|
+
y?: unknown;
|
|
16
|
+
w?: unknown;
|
|
17
|
+
h?: unknown;
|
|
18
|
+
path?: unknown;
|
|
19
|
+
topPath?: unknown;
|
|
20
|
+
openY?: unknown;
|
|
21
|
+
closeY?: unknown;
|
|
22
|
+
highY?: unknown;
|
|
23
|
+
lowY?: unknown;
|
|
24
|
+
};
|
|
25
|
+
export interface DataRow {
|
|
26
|
+
label: string;
|
|
27
|
+
values: Record<string, string | number>;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Extract user-facing table rows from scene nodes. Geometry is ignored; rich
|
|
31
|
+
* accessibleDatum/tableFields metadata takes precedence over the render datum.
|
|
32
|
+
*/
|
|
33
|
+
export declare function extractAllRows(scene: AccessibleSceneNode[]): DataRow[];
|
|
@@ -1,18 +1,31 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Compare two accessor specs for equivalence.
|
|
3
|
-
* -
|
|
4
|
-
* -
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
* - Mismatched types or undefined vs defined: not equivalent
|
|
2
|
+
* Compare two accessor specs for equivalence, using **identity** semantics.
|
|
3
|
+
* - String accessors: compared by value (`"value" === "value"`).
|
|
4
|
+
* - Function accessors: compared by reference. Two distinct function objects are
|
|
5
|
+
* NOT equivalent, even when their source text matches.
|
|
6
|
+
* - Mismatched types or `undefined` vs defined: not equivalent.
|
|
8
7
|
*
|
|
9
|
-
* **
|
|
10
|
-
*
|
|
11
|
-
*
|
|
12
|
-
*
|
|
8
|
+
* **Why identity, not source text.** A previous implementation compared
|
|
9
|
+
* `a.toString() === b.toString()` to treat re-created inline arrows
|
|
10
|
+
* (`d => d.value`) as equivalent across renders. That was a correctness bug:
|
|
11
|
+
* `.toString()` compares source text, not captured variables, so two closures
|
|
12
|
+
* with identical source but different bindings — `makeAccessor(1)` vs
|
|
13
|
+
* `makeAccessor(10)` — compared equal, and the store retained a stale
|
|
14
|
+
* domain/scene against a genuinely different accessor. Identity comparison also
|
|
15
|
+
* matches how the frames already decide a config changed
|
|
16
|
+
* (`useStableShallow` compares function props by identity), so the store no
|
|
17
|
+
* longer second-guesses a change the frame already detected.
|
|
18
|
+
*
|
|
19
|
+
* **Consumer contract.** Passing a *new* function accessor (a fresh inline
|
|
20
|
+
* arrow every render) now triggers a rebuild, because the library can no longer
|
|
21
|
+
* prove the new closure is semantically identical. Use a string accessor
|
|
22
|
+
* (always referentially stable) or memoize the function with `useCallback`. For
|
|
23
|
+
* the rare case where a stable function's captured semantics change *without*
|
|
24
|
+
* its identity changing, bump the pipeline config's `accessorRevision` to force
|
|
25
|
+
* re-derivation.
|
|
13
26
|
*/
|
|
14
|
-
export declare function accessorsEquivalent(a: string | ((
|
|
27
|
+
export declare function accessorsEquivalent<TDatum, TResult>(a: string | ((datum: TDatum, index?: number) => TResult) | undefined, b: string | ((datum: TDatum, index?: number) => TResult) | undefined): boolean;
|
|
15
28
|
export type CoercibleNumber = number | Date | string;
|
|
16
29
|
export declare function resolveAccessor<T extends Record<string, unknown>>(accessor: string | ((d: T) => CoercibleNumber) | undefined, fallback: string): (d: T) => number;
|
|
17
|
-
export declare function resolveRawAccessor<T extends Record<string, unknown
|
|
30
|
+
export declare function resolveRawAccessor<T extends Record<string, unknown>, TResult>(accessor: string | ((d: T) => TResult) | undefined, fallback: string): (d: T) => TResult;
|
|
18
31
|
export declare function resolveStringAccessor<T extends Record<string, unknown>>(accessor: string | ((d: T) => string) | undefined, fallback?: string): ((d: T) => string) | undefined;
|
|
@@ -9,14 +9,14 @@
|
|
|
9
9
|
* `StreamOrdinalFrame` (and any future frame with the same need)
|
|
10
10
|
* can share the same plumbing rather than re-implementing it.
|
|
11
11
|
*/
|
|
12
|
-
import type { Datum } from "../charts/shared/datumTypes";
|
|
12
|
+
import type { Datum, DatumValue } from "../charts/shared/datumTypes";
|
|
13
13
|
export interface ResolvedAnnotationAccessor {
|
|
14
14
|
/** String key the annotation context will read on each datum. */
|
|
15
15
|
key: string | undefined;
|
|
16
16
|
/** Accessor function when the user supplied one (synthetic key
|
|
17
17
|
* gets baked from this); `null` when the user supplied a string
|
|
18
18
|
* or nothing. */
|
|
19
|
-
fn: ((d: Datum) =>
|
|
19
|
+
fn: ((d: Datum) => DatumValue) | null;
|
|
20
20
|
}
|
|
21
21
|
/**
|
|
22
22
|
* Resolve an accessor pair to the (key, fn) shape the annotation
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
export type BrushKeyboardAction = {
|
|
3
|
+
type: "nudge";
|
|
4
|
+
direction: "left" | "right" | "up" | "down";
|
|
5
|
+
resize: boolean;
|
|
6
|
+
} | {
|
|
7
|
+
type: "clear";
|
|
8
|
+
};
|
|
9
|
+
export interface BrushAccessibilityOptions {
|
|
10
|
+
label?: string;
|
|
11
|
+
description?: string;
|
|
12
|
+
onAction?: (action: BrushKeyboardAction) => void;
|
|
13
|
+
}
|
|
14
|
+
/** Shared ARIA and keyboard vocabulary for frame-owned D3 brushes. */
|
|
15
|
+
export declare function useBrushAccessibility({ label, description, onAction, }?: BrushAccessibilityOptions): {
|
|
16
|
+
description: string;
|
|
17
|
+
descriptionId: string;
|
|
18
|
+
svgProps: {
|
|
19
|
+
role: string;
|
|
20
|
+
tabIndex: number;
|
|
21
|
+
"aria-label": string;
|
|
22
|
+
"aria-describedby": string;
|
|
23
|
+
onKeyDown: (event: React.KeyboardEvent<SVGSVGElement>) => void;
|
|
24
|
+
};
|
|
25
|
+
};
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
export interface PaintCanvasBackgroundOptions {
|
|
2
|
+
/** Explicit chart background color (or CSS var). */
|
|
3
|
+
background?: string;
|
|
4
|
+
/**
|
|
5
|
+
* When true, skip the fill so an SVG backgroundGraphics layer shows through.
|
|
6
|
+
* Equivalent to frames' `backgroundGraphics` prop being set.
|
|
7
|
+
*/
|
|
8
|
+
hasBackgroundGraphics?: boolean;
|
|
9
|
+
/**
|
|
10
|
+
* Theme fallback when `background` is unset (e.g. `--semiotic-bg`).
|
|
11
|
+
* Empty / transparent values are ignored.
|
|
12
|
+
*/
|
|
13
|
+
themeBackground?: string;
|
|
14
|
+
/** Fill origin (plot-local or canvas-local depending on frame transform). */
|
|
15
|
+
x?: number;
|
|
16
|
+
y?: number;
|
|
17
|
+
width: number;
|
|
18
|
+
height: number;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Paint an opaque chart background when appropriate.
|
|
22
|
+
* Returns true if a fill was applied.
|
|
23
|
+
*/
|
|
24
|
+
export declare function paintCanvasBackground(ctx: CanvasRenderingContext2D, options: PaintCanvasBackgroundOptions): boolean;
|
|
@@ -21,6 +21,9 @@ export interface CanvasMargin {
|
|
|
21
21
|
*/
|
|
22
22
|
export declare function prepareCanvas(canvas: HTMLCanvasElement, size: [number, number], margin: CanvasMargin, dpr: number): CanvasRenderingContext2D | null;
|
|
23
23
|
/**
|
|
24
|
-
* Get the
|
|
24
|
+
* Get the effective canvas devicePixelRatio, defaulting to 1 in non-browser
|
|
25
|
+
* environments. Mobile/coarse-pointer screens are capped at 2x to avoid
|
|
26
|
+
* allocating very large backing stores on high-density phones; desktop stays
|
|
27
|
+
* crisper but still caps pathological DPR values at 3x.
|
|
25
28
|
*/
|
|
26
29
|
export declare function getDevicePixelRatio(): number;
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Structured failure information emitted when a custom layout throws.
|
|
3
|
+
*
|
|
4
|
+
* Custom layouts run inside imperative stores so an exception cannot reach a
|
|
5
|
+
* React error boundary. Keep this deliberately small and serializable enough
|
|
6
|
+
* for an app's error UI, telemetry, or an imperative frame-handle readback.
|
|
7
|
+
*/
|
|
8
|
+
export type CustomLayoutFamily = "xy" | "ordinal" | "geo" | "network";
|
|
9
|
+
export type CustomLayoutFailureRecovery = "preserved-last-good-scene" | "empty-scene";
|
|
10
|
+
export interface CustomLayoutFailureDiagnostic {
|
|
11
|
+
/** Stable machine-readable failure code. */
|
|
12
|
+
code: "CUSTOM_LAYOUT_ERROR";
|
|
13
|
+
severity: "error";
|
|
14
|
+
phase: "layout";
|
|
15
|
+
/** Frame family whose layout callback threw. */
|
|
16
|
+
component: CustomLayoutFamily;
|
|
17
|
+
/** The callback surface that threw. */
|
|
18
|
+
source: "customLayout" | "customNetworkLayout";
|
|
19
|
+
/** Human-readable summary suitable for a non-blocking error UI. */
|
|
20
|
+
message: string;
|
|
21
|
+
/** A safe, serializable summary of the thrown value. */
|
|
22
|
+
error: {
|
|
23
|
+
name: string;
|
|
24
|
+
message: string;
|
|
25
|
+
};
|
|
26
|
+
/** Whether a prior custom-layout scene remained visible. */
|
|
27
|
+
recovery: CustomLayoutFailureRecovery;
|
|
28
|
+
/** Convenience mirror of `recovery` for simple caller branching. */
|
|
29
|
+
preservedLastGoodScene: boolean;
|
|
30
|
+
/** Store revision at which the failed layout attempt occurred. */
|
|
31
|
+
affectedRevision: number;
|
|
32
|
+
}
|
|
33
|
+
export declare function createCustomLayoutFailureDiagnostic(component: CustomLayoutFamily, error: unknown, preservedLastGoodScene: boolean, affectedRevision: number): CustomLayoutFailureDiagnostic;
|
|
@@ -7,11 +7,15 @@ import { schemeCategory10 } from "../charts/shared/colorPalettes";
|
|
|
7
7
|
* call this helper.
|
|
8
8
|
*
|
|
9
9
|
* Precedence:
|
|
10
|
-
* 1.
|
|
11
|
-
*
|
|
10
|
+
* 1. Object map `{ key: color }` — its values become the palette (so
|
|
11
|
+
* `theme.categorical` reflects the map). Pair with `buildResolveColor`,
|
|
12
|
+
* which returns the *exact* mapped color per key; this palette only
|
|
13
|
+
* feeds unmapped keys and `theme.categorical`.
|
|
14
|
+
* 2. Explicit `colorScheme` array — used as-is.
|
|
15
|
+
* 3. Named scheme string (e.g. "tableau10") — looked up in
|
|
12
16
|
* `COLOR_SCHEMES`. Unknown names fall through.
|
|
13
|
-
*
|
|
14
|
-
*
|
|
17
|
+
* 4. Theme categorical (when non-empty).
|
|
18
|
+
* 5. The provided fallback palette.
|
|
15
19
|
*
|
|
16
20
|
* @param colorScheme `colorScheme` from the chart's pipeline config
|
|
17
21
|
* @param themeCategorical `themeCategorical` from theme resolution
|
|
@@ -19,11 +23,17 @@ import { schemeCategory10 } from "../charts/shared/colorPalettes";
|
|
|
19
23
|
* Network passes `schemeCategory10`; ordinal passes
|
|
20
24
|
* `STREAMING_PALETTE`. Caller's choice.
|
|
21
25
|
*/
|
|
22
|
-
export declare function resolveCustomLayoutPalette(colorScheme: string | string[] | undefined, themeCategorical: string[] | undefined, fallback: readonly string[]): readonly string[];
|
|
26
|
+
export declare function resolveCustomLayoutPalette(colorScheme: string | string[] | Record<string, string> | undefined, themeCategorical: string[] | undefined, fallback: readonly string[]): readonly string[];
|
|
23
27
|
/**
|
|
24
|
-
* Build a stable
|
|
25
|
-
*
|
|
26
|
-
*
|
|
28
|
+
* Build a stable key → color resolver. Used by the network and ordinal
|
|
29
|
+
* customLayout contexts so the same key always returns the same color for
|
|
30
|
+
* the lifetime of the closure.
|
|
31
|
+
*
|
|
32
|
+
* When `colorScheme` is an object map `{ key: color }`, a key present in the
|
|
33
|
+
* map resolves to its *exact* color (the documented "exact per-category
|
|
34
|
+
* colors" contract); keys absent from the map hash into `palette` as usual.
|
|
35
|
+
* Non-object `colorScheme` values are ignored here — pass the already-resolved
|
|
36
|
+
* `palette` from `resolveCustomLayoutPalette` for those.
|
|
27
37
|
*/
|
|
28
|
-
export declare function buildResolveColor(palette: readonly string[]): (key: string) => string;
|
|
38
|
+
export declare function buildResolveColor(palette: readonly string[], colorScheme?: string | string[] | Record<string, string>): (key: string) => string;
|
|
29
39
|
export { schemeCategory10, STREAMING_PALETTE };
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { ReactNode } from "react";
|
|
2
|
+
import type { FrameGraphicsContext, FrameGraphicsProp } from "./types";
|
|
3
|
+
/** Resolve a static or scale-aware SVG graphics layer for a frame family. */
|
|
4
|
+
export declare function resolveFrameGraphics<S>(graphics: FrameGraphicsProp<S> | undefined, size: number[], margin: FrameGraphicsContext<S>["margin"], scales: S | null): ReactNode;
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import type { Dispatch, KeyboardEvent, SetStateAction } from "react";
|
|
2
|
+
import type { HoverData } from "../realtime/types";
|
|
3
|
+
import type { SemanticClickBehavior, SemanticHoverBehavior } from "../charts/shared/semanticInteractions";
|
|
4
|
+
import type { PipelineStore } from "./PipelineStore";
|
|
5
|
+
import type { OrdinalPipelineStore } from "./OrdinalPipelineStore";
|
|
6
|
+
import type { GeoPipelineStore } from "./GeoPipelineStore";
|
|
7
|
+
import type { SceneNode } from "./types";
|
|
8
|
+
import type { OrdinalSceneNode } from "./ordinalTypes";
|
|
9
|
+
import type { GeoSceneNode } from "./geoTypes";
|
|
10
|
+
import { type NavPoint } from "./keyboardNav";
|
|
11
|
+
type RefValue<Value> = {
|
|
12
|
+
current: Value;
|
|
13
|
+
};
|
|
14
|
+
type SetHoverPoint = Dispatch<SetStateAction<HoverData | null>>;
|
|
15
|
+
type FocusedNavPoint = Pick<NavPoint, "shape" | "w" | "h" | "pathData">;
|
|
16
|
+
interface KeyboardInteractionParams<Store, Node = unknown> {
|
|
17
|
+
storeRef: RefValue<Store | null>;
|
|
18
|
+
hoverRef: RefValue<HoverData | null>;
|
|
19
|
+
hoveredNodeRef?: RefValue<Node | null>;
|
|
20
|
+
setHoverPoint: SetHoverPoint;
|
|
21
|
+
customHoverBehavior: SemanticHoverBehavior<HoverData>;
|
|
22
|
+
customClickBehavior: SemanticClickBehavior<HoverData>;
|
|
23
|
+
scheduleRender: () => void;
|
|
24
|
+
}
|
|
25
|
+
export declare function useXYKeyboardNavigation(params: KeyboardInteractionParams<PipelineStore, SceneNode>): {
|
|
26
|
+
kbFocusIndexRef: import("react").RefObject<number>;
|
|
27
|
+
focusedNavPointRef: import("react").RefObject<FocusedNavPoint | null>;
|
|
28
|
+
onKeyDown: (event: KeyboardEvent) => void;
|
|
29
|
+
};
|
|
30
|
+
interface OrdinalKeyboardParams extends KeyboardInteractionParams<OrdinalPipelineStore, OrdinalSceneNode> {
|
|
31
|
+
chartType: string;
|
|
32
|
+
oAccessor: unknown;
|
|
33
|
+
rAccessor: unknown;
|
|
34
|
+
}
|
|
35
|
+
export declare function useOrdinalKeyboardNavigation({ chartType, oAccessor, rAccessor, ...params }: OrdinalKeyboardParams): {
|
|
36
|
+
kbFocusIndexRef: import("react").RefObject<number>;
|
|
37
|
+
focusedNavPointRef: import("react").RefObject<FocusedNavPoint | null>;
|
|
38
|
+
onKeyDown: (event: KeyboardEvent) => void;
|
|
39
|
+
};
|
|
40
|
+
export declare function useGeoKeyboardNavigation({ storeRef, hoverRef, hoveredNodeRef, setHoverPoint, customHoverBehavior, customClickBehavior, scheduleRender }: KeyboardInteractionParams<GeoPipelineStore, GeoSceneNode>): {
|
|
41
|
+
kbFocusIndexRef: import("react").RefObject<number>;
|
|
42
|
+
focusedNavPointRef: import("react").RefObject<FocusedNavPoint | null>;
|
|
43
|
+
onKeyDown: (event: KeyboardEvent) => void;
|
|
44
|
+
};
|
|
45
|
+
export {};
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
export interface FrameThemeColors {
|
|
2
|
+
axisStroke: string;
|
|
3
|
+
tickText: string;
|
|
4
|
+
crosshair: string;
|
|
5
|
+
hoverFill: string;
|
|
6
|
+
hoverStroke: string;
|
|
7
|
+
pointRing: string;
|
|
8
|
+
/** Primary accent — crosshair / highlight fallback when datum has no color. */
|
|
9
|
+
primary: string;
|
|
10
|
+
/** Chart background from `--semiotic-bg` / surface tokens (may be empty). */
|
|
11
|
+
background: string;
|
|
12
|
+
}
|
|
13
|
+
export declare const LIGHT_FRAME_THEME: FrameThemeColors;
|
|
14
|
+
/**
|
|
15
|
+
* Append a 2-char hex alpha to an existing CSS color.
|
|
16
|
+
* Expands 3-char hex; converts rgb() to rgba(); passes other forms through.
|
|
17
|
+
*/
|
|
18
|
+
export declare function withAlpha(color: string, alphaHex: string): string;
|
|
19
|
+
export declare function resolveFrameThemeColors(el: HTMLElement | null): FrameThemeColors;
|
|
20
|
+
/** Version-keyed cache for a frame instance's theme colors. */
|
|
21
|
+
export declare function createFrameThemeColorCache(): {
|
|
22
|
+
resolve(el: HTMLElement | null): FrameThemeColors;
|
|
23
|
+
invalidate(): void;
|
|
24
|
+
};
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Harvest annotation anchors from a geo scene graph.
|
|
3
|
+
* Point marks pass through; glyph marks contribute drawn-bounds center + radius
|
|
4
|
+
* so `{ pointId }` annotations resolve against pictograms too.
|
|
5
|
+
*/
|
|
6
|
+
import type { GeoSceneNode } from "./geoTypes";
|
|
7
|
+
import type { SceneNode } from "./types";
|
|
8
|
+
export type GeoAnnotationAnchor = {
|
|
9
|
+
pointId?: string;
|
|
10
|
+
x: number;
|
|
11
|
+
y: number;
|
|
12
|
+
r: number;
|
|
13
|
+
};
|
|
14
|
+
export declare function collectGeoAnnotationAnchors(scene: (GeoSceneNode | SceneNode)[] | undefined): GeoAnnotationAnchor[] | undefined;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Distance-cartogram projection of geo point scene nodes.
|
|
3
|
+
* Mutates point/line positions in place; returns layout metadata for overlays.
|
|
4
|
+
*/
|
|
5
|
+
import type { DistanceCartogramConfig, GeoSceneNode } from "./geoTypes";
|
|
6
|
+
import type { StreamLayout } from "./types";
|
|
7
|
+
export type GeoCartogramLayout = {
|
|
8
|
+
cx: number;
|
|
9
|
+
cy: number;
|
|
10
|
+
maxCost: number;
|
|
11
|
+
availableRadius: number;
|
|
12
|
+
};
|
|
13
|
+
/**
|
|
14
|
+
* Apply a distance cartogram transform to the scene.
|
|
15
|
+
* Returns layout info when applied, or null when skipped.
|
|
16
|
+
*/
|
|
17
|
+
export declare function applyDistanceCartogram(scene: GeoSceneNode[], transform: DistanceCartogramConfig, layout: StreamLayout, areasLength: number): GeoCartogramLayout | null;
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import type { ReactNode } from "react";
|
|
2
|
+
import type { Datum } from "../charts/shared/datumTypes";
|
|
3
|
+
import type { MarginType } from "../types/marginType";
|
|
4
|
+
import type { GeoScales, GeoSceneNode } from "./geoTypes";
|
|
5
|
+
import type { CustomLayoutSelection } from "./customLayoutSelection";
|
|
6
|
+
import type { Style, ThemeSemanticColors } from "./types";
|
|
7
|
+
/**
|
|
8
|
+
* Custom-layout escape hatch for `StreamGeoFrame`.
|
|
9
|
+
*
|
|
10
|
+
* The frame resolves and fits the geographic projection before invoking the
|
|
11
|
+
* layout. The layout may use those geographic scales, replace the built-in
|
|
12
|
+
* geometry entirely, or combine both approaches while continuing to emit the
|
|
13
|
+
* GeoFrame scene primitives (`geoarea`, `point`, and `line`).
|
|
14
|
+
*/
|
|
15
|
+
export type GeoCustomLayout<C extends object = Record<string, unknown>> = (ctx: GeoLayoutContext<C>) => GeoLayoutResult;
|
|
16
|
+
export interface GeoLayoutContext<C extends object = Record<string, unknown>> {
|
|
17
|
+
/** Geographic areas supplied to the frame. */
|
|
18
|
+
areas: GeoJSON.Feature[];
|
|
19
|
+
/** Buffered point data supplied through props or the push API. */
|
|
20
|
+
points: Datum[];
|
|
21
|
+
/** Line/flow records supplied to the frame. */
|
|
22
|
+
lines: Datum[];
|
|
23
|
+
/** Frame-fitted projection helpers. */
|
|
24
|
+
scales: GeoScales;
|
|
25
|
+
/** Plot-local geometry. Scene-node coordinates are relative to this plot. */
|
|
26
|
+
dimensions: {
|
|
27
|
+
width: number;
|
|
28
|
+
height: number;
|
|
29
|
+
margin: MarginType;
|
|
30
|
+
plot: {
|
|
31
|
+
x: number;
|
|
32
|
+
y: number;
|
|
33
|
+
width: number;
|
|
34
|
+
height: number;
|
|
35
|
+
};
|
|
36
|
+
};
|
|
37
|
+
/** Theme-resolved semantic and categorical colors. */
|
|
38
|
+
theme: {
|
|
39
|
+
semantic: ThemeSemanticColors;
|
|
40
|
+
categorical: string[];
|
|
41
|
+
};
|
|
42
|
+
/** Resolve a stable categorical color from the active palette. */
|
|
43
|
+
resolveColor: (key: string) => string;
|
|
44
|
+
/** User configuration threaded through `layoutConfig`. */
|
|
45
|
+
config: C;
|
|
46
|
+
/** Shared-selection projection, when the chart participates in one. */
|
|
47
|
+
selection?: CustomLayoutSelection | null;
|
|
48
|
+
}
|
|
49
|
+
export interface GeoLayoutResult {
|
|
50
|
+
/** Geo scene nodes rendered on canvas and serialized for SSR. */
|
|
51
|
+
nodes?: GeoSceneNode[];
|
|
52
|
+
/** SVG graphics composited above the canvas. */
|
|
53
|
+
overlays?: ReactNode;
|
|
54
|
+
/**
|
|
55
|
+
* Selection-only style updates that do not require rebuilding geometry.
|
|
56
|
+
* Patches are merged onto the node's original emitted style.
|
|
57
|
+
*/
|
|
58
|
+
restyle?: (node: GeoSceneNode, selection: CustomLayoutSelection | null) => Partial<Style> | void;
|
|
59
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Default geo hover tooltip for StreamGeoFrame.
|
|
3
|
+
* Uses shared `defaultTooltipStyle` for theme CSS-var consistency.
|
|
4
|
+
*/
|
|
5
|
+
import * as React from "react";
|
|
6
|
+
import type { HoverData } from "../realtime/types";
|
|
7
|
+
type GeoTooltipData = HoverData | null;
|
|
8
|
+
declare function DefaultGeoTooltip({ data }: {
|
|
9
|
+
data: GeoTooltipData;
|
|
10
|
+
}): React.JSX.Element | null;
|
|
11
|
+
export { DefaultGeoTooltip };
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Small StreamGeoFrame helpers: particle conservation defaults, zoom chrome,
|
|
3
|
+
* projection name resolution, and hit-canvas context acquisition.
|
|
4
|
+
*/
|
|
5
|
+
import type * as React from "react";
|
|
6
|
+
import type { Selection } from "d3-selection";
|
|
7
|
+
import type { ZoomTransform } from "d3-zoom";
|
|
8
|
+
import type { Datum } from "../charts/shared/datumTypes";
|
|
9
|
+
import type { ProjectionName, ProjectionProp } from "./geoTypes";
|
|
10
|
+
export declare const DEFAULT_GEO_MARGIN: {
|
|
11
|
+
top: number;
|
|
12
|
+
right: number;
|
|
13
|
+
bottom: number;
|
|
14
|
+
left: number;
|
|
15
|
+
};
|
|
16
|
+
export declare const DEFAULT_GEO_HOVER_RADIUS = 30;
|
|
17
|
+
export declare function shouldConserveGeoParticles(): boolean;
|
|
18
|
+
export declare function defaultGeoParticleMaxPerLine(): number;
|
|
19
|
+
export declare function defaultGeoParticleSpawnRate(): number;
|
|
20
|
+
export declare const zoomButtonStyle: React.CSSProperties;
|
|
21
|
+
export type GeoFeatureLike = Datum & {
|
|
22
|
+
properties?: Datum;
|
|
23
|
+
geometry?: unknown;
|
|
24
|
+
data?: Datum;
|
|
25
|
+
};
|
|
26
|
+
export type HitCanvas = HTMLCanvasElement | OffscreenCanvas;
|
|
27
|
+
export type HitCanvasContext = CanvasRenderingContext2D | OffscreenCanvasRenderingContext2D;
|
|
28
|
+
export type GeoZoomSelection = Selection<HTMLDivElement, unknown, null, undefined>;
|
|
29
|
+
export interface GeoZoomControlBehavior {
|
|
30
|
+
scaleBy(selection: GeoZoomSelection, factor: number): void;
|
|
31
|
+
transform(selection: GeoZoomSelection, transform: ZoomTransform | Pick<ZoomTransform, "k">): void;
|
|
32
|
+
}
|
|
33
|
+
export declare function resolveProjectionName(projection: ProjectionProp): ProjectionName | null;
|
|
34
|
+
export declare function ensureHitCanvasContext(canvas: HitCanvas | null): HitCanvasContext | null;
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Pure geo pipeline helpers — projection resolution, accessors, themed defaults,
|
|
3
|
+
* anti-meridian path splitting, and flow-style arc/offset builders.
|
|
4
|
+
* Extracted from GeoPipelineStore so the store class stays orchestration-only.
|
|
5
|
+
*/
|
|
6
|
+
import type { GeoProjection } from "d3-geo";
|
|
7
|
+
import type { GeoPipelineConfig, ProjectionProp } from "./geoTypes";
|
|
8
|
+
import type { Style } from "./types";
|
|
9
|
+
import type { Datum } from "../charts/shared/datumTypes";
|
|
10
|
+
export declare function resolveProjection(prop: ProjectionProp | undefined): GeoProjection;
|
|
11
|
+
export declare function makeGeoNumericAccessor(acc: string | ((d: Datum) => number) | undefined, fallback: string): (d: Datum) => number;
|
|
12
|
+
export declare function makeLineDataAccessor(acc: string | ((d: Datum) => Datum[]) | undefined): (d: Datum) => Datum[];
|
|
13
|
+
export declare function resolveGeoStyle<TDatum extends object>(styleProp: Style | ((d: TDatum) => Style) | undefined, datum: TDatum, defaults: Style): Style;
|
|
14
|
+
export declare function themedDefaultArea(config: GeoPipelineConfig): Style;
|
|
15
|
+
export declare function themedDefaultPoint(config: GeoPipelineConfig): Style & {
|
|
16
|
+
r?: number;
|
|
17
|
+
};
|
|
18
|
+
export declare function themedDefaultLine(config: GeoPipelineConfig): Style;
|
|
19
|
+
/**
|
|
20
|
+
* Detect screen-space jumps in a projected path that indicate the line
|
|
21
|
+
* has wrapped around the edge of the projection (anti-meridian crossing).
|
|
22
|
+
* Split the path at those jumps and return an array of continuous segments.
|
|
23
|
+
*
|
|
24
|
+
* A jump is detected when consecutive screen-space points are further apart
|
|
25
|
+
* than `threshold` pixels (default: half the viewport width).
|
|
26
|
+
*/
|
|
27
|
+
export declare function splitAntiMeridianPath(screenPath: [number, number][], viewportWidth: number): [number, number][][];
|
|
28
|
+
/**
|
|
29
|
+
* Build a quadratic arc path between two screen-space points.
|
|
30
|
+
* The arc bulges perpendicular to the straight line (right of the
|
|
31
|
+
* direction of travel in screen coords), with height proportional to distance.
|
|
32
|
+
*/
|
|
33
|
+
export declare function buildArcPath(start: [number, number], end: [number, number], segments?: number): [number, number][];
|
|
34
|
+
/**
|
|
35
|
+
* Build an offset version of a densified geo screen path.
|
|
36
|
+
* Shifts each point along its local normal so the great-circle curvature
|
|
37
|
+
* is preserved while visually separating overlapping flows.
|
|
38
|
+
*/
|
|
39
|
+
export declare function buildOffsetGeoPath(screenPath: [number, number][], strokeWidth: number): [number, number][];
|
|
40
|
+
/**
|
|
41
|
+
* Build an offset path — shift a straight line perpendicular to its direction.
|
|
42
|
+
* All flows are offset to their left by half their stroke width plus padding.
|
|
43
|
+
* Bidirectional pairs (A->B and B->A) naturally separate because their
|
|
44
|
+
* left-hand normals point to opposite sides.
|
|
45
|
+
*/
|
|
46
|
+
export declare function buildOffsetPath(start: [number, number], end: [number, number], _flow: Datum, _allFlows: Datum[], strokeWidth: number): [number, number][];
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { type ChangeSet, type Invalidation, type UpdateResult } from "./pipelineUpdateContract";
|
|
2
|
+
/** Whether a config patch must re-derive its retained Geo data resources. */
|
|
3
|
+
export type GeoRetainedDataEffect = "preserve" | "rebuild";
|
|
4
|
+
export interface GeoConfigPatchDependency {
|
|
5
|
+
readonly retainedData: GeoRetainedDataEffect;
|
|
6
|
+
readonly invalidations: readonly Invalidation[];
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* Geo's key-level config-patch dependency table. `windowSize` is a retained
|
|
10
|
+
* resource rebuild: its `data` revision is added only when an active stream
|
|
11
|
+
* actually resizes, so a bounded config-only patch is never reported as an
|
|
12
|
+
* ingest.
|
|
13
|
+
*/
|
|
14
|
+
export declare const GEO_CONFIG_PATCH_DEPENDENCIES: Readonly<Record<string, GeoConfigPatchDependency>>;
|
|
15
|
+
export interface GeoConfigPatchClassification {
|
|
16
|
+
readonly retainedData: GeoRetainedDataEffect;
|
|
17
|
+
readonly invalidations: ReadonlySet<Invalidation>;
|
|
18
|
+
}
|
|
19
|
+
/** Union the declared effects for a patch after its effective keys are known. */
|
|
20
|
+
export declare function classifyGeoConfigPatch(keys: readonly string[]): GeoConfigPatchClassification;
|
|
21
|
+
type DataChangeKind = Extract<ChangeSet["kind"], "ingest" | "replace" | "remove" | "update" | "clear">;
|
|
22
|
+
/** Result bookkeeping and explicit config-patch dependency policy for Geo. */
|
|
23
|
+
export declare class GeoPipelineUpdateResults {
|
|
24
|
+
private tracker;
|
|
25
|
+
get last(): UpdateResult;
|
|
26
|
+
subscribe(listener: () => void): () => void;
|
|
27
|
+
recordData(kind: DataChangeKind, count?: number): UpdateResult;
|
|
28
|
+
recordNoop(kind: DataChangeKind | "restyle"): UpdateResult;
|
|
29
|
+
recordRestyle(hasCustomRestyle: boolean): UpdateResult;
|
|
30
|
+
recordConfig(keys: readonly string[], options?: {
|
|
31
|
+
retainedDataChanged?: boolean;
|
|
32
|
+
}): UpdateResult;
|
|
33
|
+
}
|
|
34
|
+
export {};
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { GeoPath, GeoPermissibleObjects, GeoProjection } from "d3-geo";
|
|
2
|
+
import type { GeoPipelineConfig, GeoSceneNode } from "./geoTypes";
|
|
3
|
+
import type { StreamLayout } from "./types";
|
|
4
|
+
import type { Datum } from "../charts/shared/datumTypes";
|
|
5
|
+
interface GeoSceneBuildInput {
|
|
6
|
+
config: GeoPipelineConfig;
|
|
7
|
+
projection: GeoProjection;
|
|
8
|
+
path: GeoPath<void, GeoPermissibleObjects>;
|
|
9
|
+
areas: GeoJSON.Feature[];
|
|
10
|
+
points: Datum[];
|
|
11
|
+
lines: Datum[];
|
|
12
|
+
layout: StreamLayout;
|
|
13
|
+
}
|
|
14
|
+
/** Builds the built-in geo scene independently of store-owned custom layout state. */
|
|
15
|
+
export declare function buildBuiltInGeoScene({ config, projection, path, areas, points, lines, layout }: GeoSceneBuildInput): GeoSceneNode[];
|
|
16
|
+
export {};
|