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
|
@@ -16,17 +16,29 @@ import type { Datum } from "../charts/shared/datumTypes";
|
|
|
16
16
|
* Consumed by: StreamOrdinalFrame (sole consumer).
|
|
17
17
|
*/
|
|
18
18
|
import { type ScaleLinear } from "d3-scale";
|
|
19
|
-
import {
|
|
19
|
+
import type { Quadtree } from "d3-quadtree";
|
|
20
20
|
import type { OrdinalPipelineConfig, OrdinalScales, OrdinalSceneNode, OrdinalColumn, OrdinalLayout } from "./ordinalTypes";
|
|
21
21
|
import type { Changeset, PointSceneNode } from "./types";
|
|
22
22
|
import type { ActiveTransition } from "./pipelineTransitionUtils";
|
|
23
|
+
import type { OrdinalLayoutResult } from "./ordinalCustomLayout";
|
|
23
24
|
import type { CustomLayoutSelection } from "./customLayoutSelection";
|
|
24
|
-
|
|
25
|
+
import { type CustomLayoutFailureDiagnostic } from "./customLayoutFailure";
|
|
26
|
+
import { type UpdateResult, type UpdateResultStore } from "./pipelineUpdateStore";
|
|
27
|
+
import { OrdinalPipelineUpdateResults } from "./ordinalPipelineUpdateResults";
|
|
28
|
+
export declare class OrdinalPipelineStore implements UpdateResultStore {
|
|
29
|
+
getLastUpdateResult: () => UpdateResult;
|
|
30
|
+
getUpdateSnapshot: () => UpdateResult;
|
|
31
|
+
subscribeUpdateResult: (listener: () => void) => () => void;
|
|
32
|
+
setLayoutSelection: (selection: CustomLayoutSelection | null) => void;
|
|
33
|
+
markStylePaintPending: () => void;
|
|
34
|
+
consumeStylePaintPending: () => boolean;
|
|
25
35
|
private buffer;
|
|
26
36
|
private rExtent;
|
|
27
37
|
/** Per-accessor extents for multiAxis mode */
|
|
28
38
|
private rExtents;
|
|
29
39
|
private config;
|
|
40
|
+
private windowSizeWarned;
|
|
41
|
+
protected updateResults: OrdinalPipelineUpdateResults;
|
|
30
42
|
private getO;
|
|
31
43
|
private getR;
|
|
32
44
|
/** All resolved rAccessors (length > 1 when multiAxis) */
|
|
@@ -41,9 +53,7 @@ export declare class OrdinalPipelineStore {
|
|
|
41
53
|
private categories;
|
|
42
54
|
/** True once a non-bounded (push) changeset has been ingested */
|
|
43
55
|
private _hasStreamingData;
|
|
44
|
-
|
|
45
|
-
private _colorSchemeMap;
|
|
46
|
-
private _colorSchemeIndex;
|
|
56
|
+
private styleResolver;
|
|
47
57
|
private timestampBuffer;
|
|
48
58
|
activeTransition: ActiveTransition | null;
|
|
49
59
|
private prevPositionMap;
|
|
@@ -57,6 +67,15 @@ export declare class OrdinalPipelineStore {
|
|
|
57
67
|
columns: Record<string, OrdinalColumn>;
|
|
58
68
|
/** Overlays returned from customLayout (consumed by StreamOrdinalFrame). */
|
|
59
69
|
customLayoutOverlays: import("react").ReactNode;
|
|
70
|
+
/** Most recent custom layout result for host readback (`getCustomLayout()`).
|
|
71
|
+
* Null before the first layout or without a custom layout. A failed rerun
|
|
72
|
+
* keeps the last successful result while its scene remains recoverable. */
|
|
73
|
+
lastCustomLayoutResult: OrdinalLayoutResult | null;
|
|
74
|
+
/** Latest custom-layout failure for frame-handle readback. */
|
|
75
|
+
lastCustomLayoutFailure: CustomLayoutFailureDiagnostic | null;
|
|
76
|
+
/** Lets `computeScene` retain a prior scene without mutating it after an
|
|
77
|
+
* exception from `buildSceneNodes`. */
|
|
78
|
+
private _customLayoutFailedThisBuild;
|
|
60
79
|
private _customLayoutDiagnosticsWarned;
|
|
61
80
|
/** Per-frame restyle callback from the custom layout result (see OrdinalLayoutResult.restyle). */
|
|
62
81
|
private _customRestyle;
|
|
@@ -67,7 +86,8 @@ export declare class OrdinalPipelineStore {
|
|
|
67
86
|
version: number;
|
|
68
87
|
/** Bumped whenever the buffer is mutated. Used to invalidate per-frame caches. */
|
|
69
88
|
private _dataVersion;
|
|
70
|
-
|
|
89
|
+
/** Materialized source data, cached for pulse/decay animation frames. */
|
|
90
|
+
private _bufferArrayCache;
|
|
71
91
|
private _pointQuadtree;
|
|
72
92
|
/** Largest visual point radius in the current scene. */
|
|
73
93
|
private _maxPointRadius;
|
|
@@ -77,7 +97,16 @@ export declare class OrdinalPipelineStore {
|
|
|
77
97
|
private _categoryIndexCache;
|
|
78
98
|
private _hasRenderedOnce;
|
|
79
99
|
constructor(config: OrdinalPipelineConfig);
|
|
100
|
+
/**
|
|
101
|
+
* Keep the optional pulse timestamp ring in lockstep with the datum ring.
|
|
102
|
+
* Enabling pulse after mount must seed timestamps for retained rows; an
|
|
103
|
+
* empty ring would associate later timestamps with the wrong datum index.
|
|
104
|
+
*/
|
|
105
|
+
private syncPulseTimestampBuffer;
|
|
106
|
+
/** Keep ingest, pulse, staleness, and transition timestamps on one clock. */
|
|
107
|
+
private currentTime;
|
|
80
108
|
ingest(changeset: Changeset): boolean;
|
|
109
|
+
ingestWithResult(changeset: Changeset): UpdateResult;
|
|
81
110
|
private pushValueExtent;
|
|
82
111
|
private evictValueExtent;
|
|
83
112
|
/** For timeline type: resolve rAccessor as a [start, end] pair */
|
|
@@ -90,9 +119,6 @@ export declare class OrdinalPipelineStore {
|
|
|
90
119
|
private getSceneContext;
|
|
91
120
|
private buildSceneNodes;
|
|
92
121
|
private buildLayoutContext;
|
|
93
|
-
private resolvePieceStyle;
|
|
94
|
-
private getColorFromScheme;
|
|
95
|
-
private resolveSummaryStyle;
|
|
96
122
|
computeDecayOpacity(bufferIndex: number, bufferSize: number): number;
|
|
97
123
|
/**
|
|
98
124
|
* Build (or return cached) datum→buffer-index map. Cached against
|
|
@@ -119,6 +145,12 @@ export declare class OrdinalPipelineStore {
|
|
|
119
145
|
get maxPointRadius(): number;
|
|
120
146
|
private applyDecay;
|
|
121
147
|
private applyPulse;
|
|
148
|
+
/**
|
|
149
|
+
* Refresh only pulse-derived fields on the existing scene. This deliberately
|
|
150
|
+
* avoids a scene/layout rebuild on every rAF pulse tick.
|
|
151
|
+
*/
|
|
152
|
+
refreshPulse(now: number): boolean;
|
|
153
|
+
hasActivePulsesAt(now: number): boolean;
|
|
122
154
|
get hasActivePulses(): boolean;
|
|
123
155
|
/** Synthesize a zero-state prevPositionMap for animated intro (first render). */
|
|
124
156
|
private synthesizeIntroPositions;
|
|
@@ -136,6 +168,12 @@ export declare class OrdinalPipelineStore {
|
|
|
136
168
|
* after the server already painted the chart.
|
|
137
169
|
*/
|
|
138
170
|
cancelIntroAnimation(): void;
|
|
171
|
+
/**
|
|
172
|
+
* Materialize the ring buffer at most once per data version. Pulse decay
|
|
173
|
+
* ticks reuse this array and the datum/category index caches rather than
|
|
174
|
+
* allocating a fresh copy at animation-frame frequency.
|
|
175
|
+
*/
|
|
176
|
+
private getBufferArray;
|
|
139
177
|
getData(): Datum[];
|
|
140
178
|
/**
|
|
141
179
|
* Remove data items by ID. Requires dataIdAccessor to be configured.
|
|
@@ -151,8 +189,6 @@ export declare class OrdinalPipelineStore {
|
|
|
151
189
|
get size(): number;
|
|
152
190
|
getOAccessor(): (d: Datum) => string;
|
|
153
191
|
getRAccessor(): (d: Datum) => number;
|
|
154
|
-
/** Update the selection the layout reads at the next rebuild, without one. */
|
|
155
|
-
setLayoutSelection(selection: CustomLayoutSelection | null): void;
|
|
156
192
|
private applyCustomRestyle;
|
|
157
193
|
/**
|
|
158
194
|
* Re-apply the custom layout's `restyle` to the existing scene for
|
|
@@ -160,5 +196,13 @@ export declare class OrdinalPipelineStore {
|
|
|
160
196
|
* No-op when the layout supplied no `restyle`.
|
|
161
197
|
*/
|
|
162
198
|
restyleScene(selection: CustomLayoutSelection | null): void;
|
|
199
|
+
/**
|
|
200
|
+
* Re-derive every retained fact that depends on the category/value
|
|
201
|
+
* accessors. `updateConfig` can change an accessor without a subsequent
|
|
202
|
+
* ingest (the normal React path), so clearing only a cache would leave the
|
|
203
|
+
* next scene with an empty/stale domain against the existing buffer.
|
|
204
|
+
*/
|
|
205
|
+
private rebuildAccessorDerivedState;
|
|
163
206
|
updateConfig(config: Partial<OrdinalPipelineConfig>): void;
|
|
207
|
+
updateConfigWithResult(config: Partial<OrdinalPipelineConfig>): UpdateResult;
|
|
164
208
|
}
|
|
@@ -4,6 +4,8 @@ import type { OrdinalScales } from "./ordinalTypes";
|
|
|
4
4
|
import type { AnnotationContext } from "../realtime/types";
|
|
5
5
|
import type { ReactNode } from "react";
|
|
6
6
|
import type { LegendGroup, GradientLegendConfig, LegendLayout } from "../types/legendTypes";
|
|
7
|
+
import type { OnObservationCallback } from "../store/ObservationStore";
|
|
8
|
+
import { type OnAnnotationActivateCallback } from "../charts/shared/annotationActivation";
|
|
7
9
|
import { type AutoPlaceAnnotations } from "../recipes/annotationLayout";
|
|
8
10
|
import { type AxisExtentMode } from "../charts/shared/axisExtent";
|
|
9
11
|
interface OrdinalSVGOverlayProps {
|
|
@@ -53,14 +55,20 @@ interface OrdinalSVGOverlayProps {
|
|
|
53
55
|
legendLayout?: LegendLayout;
|
|
54
56
|
foregroundGraphics?: ReactNode;
|
|
55
57
|
annotations?: Datum[];
|
|
58
|
+
onAnnotationActivate?: OnAnnotationActivateCallback;
|
|
59
|
+
onObservation?: OnObservationCallback;
|
|
60
|
+
chartId?: string;
|
|
61
|
+
chartType?: string;
|
|
56
62
|
autoPlaceAnnotations?: AutoPlaceAnnotations;
|
|
57
63
|
svgAnnotationRules?: (annotation: Datum, index: number, context: AnnotationContext) => ReactNode;
|
|
58
64
|
annotationFrame?: number;
|
|
59
65
|
xAccessor?: string;
|
|
60
66
|
yAccessor?: string;
|
|
61
67
|
annotationData?: Datum[];
|
|
62
|
-
/** When true, grid lines and axis baselines are
|
|
68
|
+
/** When true, grid lines and axis baselines are also rendered by OrdinalSVGUnderlay. */
|
|
63
69
|
underlayRendered?: boolean;
|
|
70
|
+
/** Whether an opaque canvas hides the SVG underlay and needs an overlay copy. */
|
|
71
|
+
canvasObscuresUnderlay?: boolean;
|
|
64
72
|
children?: ReactNode;
|
|
65
73
|
}
|
|
66
74
|
interface OrdinalSVGUnderlayProps {
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { Datum } from "../charts/shared/datumTypes";
|
|
2
|
+
import type { OrdinalPipelineConfig } from "./ordinalTypes";
|
|
3
|
+
import type { Style } from "./types";
|
|
4
|
+
/** Resolves ordinal mark styles while retaining stable category colors. */
|
|
5
|
+
export declare class OrdinalStyleResolver {
|
|
6
|
+
private colorSchemeMap;
|
|
7
|
+
private colorSchemeIndex;
|
|
8
|
+
resetColors(): void;
|
|
9
|
+
resolvePieceStyle(config: OrdinalPipelineConfig, datum: Datum | null, category?: string): Style;
|
|
10
|
+
resolveSummaryStyle(config: OrdinalPipelineConfig, datum: Datum | null, category?: string): Style;
|
|
11
|
+
private getColorFromScheme;
|
|
12
|
+
}
|
|
@@ -17,7 +17,7 @@ export declare class ParticlePool {
|
|
|
17
17
|
* Spawn a new particle on the given edge.
|
|
18
18
|
* Returns the particle if a free slot was found, null otherwise.
|
|
19
19
|
*/
|
|
20
|
-
spawn(edgeIndex: number): Particle | null;
|
|
20
|
+
spawn(edgeIndex: number, random?: () => number): Particle | null;
|
|
21
21
|
/**
|
|
22
22
|
* Advance all active particles by deltaTime.
|
|
23
23
|
* Recycles particles that have completed their journey (t >= 1).
|
|
@@ -1,160 +1,50 @@
|
|
|
1
1
|
import type { Datum } from "../charts/shared/datumTypes";
|
|
2
|
-
|
|
2
|
+
/**
|
|
3
|
+
* PipelineStore — stateful pipeline for XY/streaming chart data.
|
|
4
|
+
*
|
|
5
|
+
* Owns: data ingestion (RingBuffer), extent tracking, scale computation,
|
|
6
|
+
* scene layout delegation (via xySceneBuilders/), transition animation,
|
|
7
|
+
* decay/pulse/staleness encoding, and quadtree spatial indexing.
|
|
8
|
+
*
|
|
9
|
+
* Scene building was extracted to xySceneBuilders/ — this store constructs
|
|
10
|
+
* an XYSceneContext and dispatches to the appropriate builder function.
|
|
11
|
+
*
|
|
12
|
+
* Key dependencies:
|
|
13
|
+
* xySceneBuilders/ — per-chartType scene layout (line, area, point, etc.)
|
|
14
|
+
* SceneGraph — node constructors (buildLineNode, buildPointNode, etc.)
|
|
15
|
+
* RingBuffer — sliding window data storage
|
|
16
|
+
* IncrementalExtent — O(1) min/max tracking
|
|
17
|
+
*
|
|
18
|
+
* Consumed by: StreamXYFrame (sole consumer).
|
|
19
|
+
*/
|
|
3
20
|
import { RingBuffer } from "../realtime/RingBuffer";
|
|
4
|
-
import type { Changeset,
|
|
5
|
-
import type
|
|
6
|
-
import { type CoercibleNumber } from "./accessorUtils";
|
|
7
|
-
import type { ActiveTransition } from "./pipelineTransitionUtils";
|
|
21
|
+
import type { Changeset, StreamScales, StreamLayout, SceneNode } from "./types";
|
|
22
|
+
import { type ActiveTransition } from "./pipelineTransitionUtils";
|
|
8
23
|
import type { ResolvedRibbon } from "./xySceneBuilders/ribbonScene";
|
|
9
|
-
import type {
|
|
24
|
+
import type { LayoutResult } from "./customLayout";
|
|
10
25
|
import type { CustomLayoutSelection } from "./customLayoutSelection";
|
|
11
|
-
import type
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
maxCapacity?: number;
|
|
27
|
-
xAccessor?: string | ((d: Datum) => CoercibleNumber);
|
|
28
|
-
yAccessor?: string | ((d: Datum) => CoercibleNumber);
|
|
29
|
-
timeAccessor?: string | ((d: Datum) => CoercibleNumber);
|
|
30
|
-
valueAccessor?: string | ((d: Datum) => CoercibleNumber);
|
|
31
|
-
colorAccessor?: string | ((d: Datum) => string);
|
|
32
|
-
sizeAccessor?: string | ((d: Datum) => CoercibleNumber);
|
|
33
|
-
/** Categorical accessor → glyph shape (scatter/bubble). Emits SymbolSceneNodes. */
|
|
34
|
-
symbolAccessor?: string | ((d: Datum) => string);
|
|
35
|
-
/** Explicit `{category → shape}` map; unmapped categories auto-assign. */
|
|
36
|
-
symbolMap?: Record<string, SymbolName>;
|
|
37
|
-
groupAccessor?: string | ((d: Datum) => string);
|
|
38
|
-
categoryAccessor?: string | ((d: Datum) => string);
|
|
39
|
-
lineDataAccessor?: string;
|
|
40
|
-
xScaleType?: "linear" | "log" | "time";
|
|
41
|
-
yScaleType?: "linear" | "log";
|
|
42
|
-
xExtent?: [number | undefined, number | undefined] | [number];
|
|
43
|
-
yExtent?: [number | undefined, number | undefined] | [number];
|
|
44
|
-
sizeRange?: [number, number];
|
|
45
|
-
binSize?: number;
|
|
46
|
-
normalize?: boolean;
|
|
47
|
-
/** Stacked area baseline mode. Only consulted by stackedarea chart type. */
|
|
48
|
-
baseline?: "zero" | "wiggle" | "silhouette";
|
|
49
|
-
/** Stack order — see StreamXYFrameProps.stackOrder. */
|
|
50
|
-
stackOrder?: "key" | "insideOut" | "asc" | "desc";
|
|
51
|
-
openAccessor?: string | ((d: Datum) => CoercibleNumber);
|
|
52
|
-
highAccessor?: string | ((d: Datum) => CoercibleNumber);
|
|
53
|
-
lowAccessor?: string | ((d: Datum) => CoercibleNumber);
|
|
54
|
-
closeAccessor?: string | ((d: Datum) => CoercibleNumber);
|
|
55
|
-
candlestickStyle?: CandlestickStyle;
|
|
56
|
-
/** Internal: set by PipelineStore when open/close accessors are both missing */
|
|
57
|
-
candlestickRangeMode?: boolean;
|
|
58
|
-
boundsAccessor?: string | ((d: Datum) => CoercibleNumber);
|
|
59
|
-
boundsStyle?: any;
|
|
60
|
-
y0Accessor?: string | ((d: Datum) => CoercibleNumber);
|
|
61
|
-
band?: BandConfig | BandConfig[];
|
|
62
|
-
gradientFill?: {
|
|
63
|
-
topOpacity: number;
|
|
64
|
-
bottomOpacity: number;
|
|
65
|
-
} | {
|
|
66
|
-
colorStops: Array<{
|
|
67
|
-
offset: number;
|
|
68
|
-
color: string;
|
|
69
|
-
}>;
|
|
70
|
-
};
|
|
71
|
-
areaGroups?: Set<string>;
|
|
72
|
-
lineGradient?: {
|
|
73
|
-
colorStops: Array<{
|
|
74
|
-
offset: number;
|
|
75
|
-
color: string;
|
|
76
|
-
}>;
|
|
77
|
-
};
|
|
78
|
-
lineStyle?: any;
|
|
79
|
-
pointStyle?: (d: Datum) => Style & {
|
|
80
|
-
r?: number;
|
|
81
|
-
};
|
|
82
|
-
areaStyle?: (d: Datum) => Style;
|
|
83
|
-
swarmStyle?: {
|
|
84
|
-
radius?: number;
|
|
85
|
-
fill?: string;
|
|
86
|
-
opacity?: number;
|
|
87
|
-
stroke?: string;
|
|
88
|
-
strokeWidth?: number;
|
|
89
|
-
};
|
|
90
|
-
waterfallStyle?: {
|
|
91
|
-
positiveColor?: string;
|
|
92
|
-
negativeColor?: string;
|
|
93
|
-
connectorStroke?: string;
|
|
94
|
-
connectorWidth?: number;
|
|
95
|
-
gap?: number;
|
|
96
|
-
stroke?: string;
|
|
97
|
-
strokeWidth?: number;
|
|
98
|
-
};
|
|
99
|
-
colorScheme?: string | string[];
|
|
100
|
-
/** Theme categorical palette — used as fallback when colorScheme is not an explicit array */
|
|
101
|
-
themeCategorical?: string[];
|
|
102
|
-
/**
|
|
103
|
-
* Theme-resolved semantic role colors. Scene builders use these as the
|
|
104
|
-
* default before falling back to hardcoded hex. Populated by the Stream
|
|
105
|
-
* Frame from the in-memory `SemioticTheme.colors` object at render time
|
|
106
|
-
* — the values are concrete hex (or whatever the preset declares), not
|
|
107
|
-
* `var(...)` strings, and so this channel does NOT participate in the
|
|
108
|
-
* DOM CSS cascade. Changing the ambient theme (`<ThemeProvider>`) or
|
|
109
|
-
* swapping to a nested provider is how you override these values.
|
|
110
|
-
*
|
|
111
|
-
* Per-scope overrides via CSS custom properties
|
|
112
|
-
* (e.g. `<div style={{ "--semiotic-danger": "#c00" }}>`) work only for
|
|
113
|
-
* values a user explicitly passes through as `var(--...)` strings in
|
|
114
|
-
* chart props — those are resolved via `getComputedStyle` in the
|
|
115
|
-
* canvas renderer at paint time (see `resolveCSSColor.ts`). The theme
|
|
116
|
-
* defaults in this field don't read CSS.
|
|
117
|
-
*/
|
|
118
|
-
themeSemantic?: ThemeSemanticColors;
|
|
119
|
-
/** Theme sequential scheme name (e.g. "blues") — fallback when `colorScheme` is not explicitly set for magnitude encodings (heatmap, choropleth, size). */
|
|
120
|
-
themeSequential?: string;
|
|
121
|
-
/** Theme diverging scheme name (e.g. "RdBu") — fallback when `colorScheme` is not explicitly set for midpoint encodings (likert, bivariate, ± deviation). */
|
|
122
|
-
themeDiverging?: string;
|
|
123
|
-
barColors?: Record<string, string>;
|
|
124
|
-
/** Histogram bar style — fill/stroke/strokeWidth/gap. Accepted by RealtimeHistogram and routed through to the bar scene builder. */
|
|
125
|
-
barStyle?: BarStyle;
|
|
126
|
-
annotations?: Datum[];
|
|
127
|
-
decay?: DecayConfig;
|
|
128
|
-
pulse?: PulseConfig;
|
|
129
|
-
transition?: TransitionConfig;
|
|
130
|
-
/** Whether to animate elements on first render (points scale up, lines/areas clip from left, rects grow from baseline) */
|
|
131
|
-
introAnimation?: boolean;
|
|
132
|
-
staleness?: StalenessConfig;
|
|
133
|
-
heatmapAggregation?: "count" | "sum" | "mean";
|
|
134
|
-
heatmapXBins?: number;
|
|
135
|
-
heatmapYBins?: number;
|
|
136
|
-
showValues?: boolean;
|
|
137
|
-
heatmapValueFormat?: (v: number) => string;
|
|
138
|
-
pointIdAccessor?: string | ((d: Datum) => string);
|
|
139
|
-
curve?: CurveType;
|
|
140
|
-
/** When provided, replaces chart-type dispatch in scene building.
|
|
141
|
-
* Receives a LayoutContext (scales, dimensions, theme, resolveColor)
|
|
142
|
-
* and returns scene nodes plus optional overlays. */
|
|
143
|
-
customLayout?: CustomLayout;
|
|
144
|
-
/** User-supplied config blob threaded through to LayoutContext.config. */
|
|
145
|
-
layoutConfig?: object;
|
|
146
|
-
/** Resolved margin — passed through so LayoutContext.dimensions.margin reflects what the frame actually used. */
|
|
147
|
-
layoutMargin?: MarginType;
|
|
148
|
-
/** Resolved shared selection projected into LayoutContext.selection. Owned by
|
|
149
|
-
* a dedicated frame effect (kept off the rebuild-triggering path). */
|
|
150
|
-
layoutSelection?: CustomLayoutSelection | null;
|
|
151
|
-
}
|
|
152
|
-
export declare class PipelineStore {
|
|
26
|
+
import { type CustomLayoutFailureDiagnostic } from "./customLayoutFailure";
|
|
27
|
+
import { type PipelineConfig } from "./pipelineConfig";
|
|
28
|
+
import type { UpdateResult } from "./pipelineUpdateContract";
|
|
29
|
+
import { type UpdateResultStore } from "./pipelineUpdateStore";
|
|
30
|
+
import { PipelineStoreUpdateResults } from "./pipelineStoreUpdateResults";
|
|
31
|
+
export type { PipelineConfig } from "./pipelineConfig";
|
|
32
|
+
export type { ChangeSet, Invalidation, RevisionSet, UpdateResult, } from "./pipelineUpdateContract";
|
|
33
|
+
export { DEFAULT_GROWING_MAX_CAPACITY, GROWING_CAPACITY_WARN_THRESHOLD } from "./pipelineConfig";
|
|
34
|
+
export declare class PipelineStore implements UpdateResultStore {
|
|
35
|
+
getLastUpdateResult: () => UpdateResult;
|
|
36
|
+
getUpdateSnapshot: () => UpdateResult;
|
|
37
|
+
subscribeUpdateResult: (listener: () => void) => () => void;
|
|
38
|
+
setLayoutSelection: (selection: CustomLayoutSelection | null) => void;
|
|
39
|
+
markStylePaintPending: () => void;
|
|
40
|
+
consumeStylePaintPending: () => boolean;
|
|
153
41
|
private buffer;
|
|
154
42
|
private xExtent;
|
|
155
43
|
private yExtent;
|
|
156
44
|
private config;
|
|
157
45
|
private growingCap;
|
|
46
|
+
private growingCapacityWarned;
|
|
47
|
+
private windowSizeWarned;
|
|
158
48
|
private getX;
|
|
159
49
|
private getY;
|
|
160
50
|
private getGroup;
|
|
@@ -182,6 +72,8 @@ export declare class PipelineStore {
|
|
|
182
72
|
/** Exit nodes awaiting fade-out removal */
|
|
183
73
|
exitNodes: SceneNode[];
|
|
184
74
|
lastIngestTime: number;
|
|
75
|
+
/** Keep ingest, pulse, staleness, and transition timestamps on one clock. */
|
|
76
|
+
private currentTime;
|
|
185
77
|
/** Unified color map cache keyed by sorted category set — shared across point, swarm, etc. */
|
|
186
78
|
private _colorMapCache;
|
|
187
79
|
/** groupData() result cache. The line/area/stacked-area builders all re-bucket
|
|
@@ -206,17 +98,32 @@ export declare class PipelineStore {
|
|
|
206
98
|
private _stackExtentCache;
|
|
207
99
|
/** Monotonic counter incremented on each ingest — used as part of cache keys */
|
|
208
100
|
private _ingestVersion;
|
|
101
|
+
/** Datum→index map for decay/pulse, cached by `_ingestVersion`. */
|
|
102
|
+
private _datumIndexCache;
|
|
209
103
|
/** Cached materialized array from buffer.toArray() — only rebuilt when buffer changes */
|
|
210
104
|
private _bufferArrayCache;
|
|
211
105
|
/** True when the buffer has been mutated since last toArray() call */
|
|
212
106
|
private _bufferDirty;
|
|
213
107
|
private needsFullRebuild;
|
|
214
108
|
private lastLayout;
|
|
109
|
+
protected updateResults: PipelineStoreUpdateResults;
|
|
215
110
|
scales: StreamScales | null;
|
|
216
111
|
scene: SceneNode[];
|
|
217
112
|
version: number;
|
|
218
113
|
/** Overlays returned from customLayout (consumed by StreamXYFrame for SVGOverlay). */
|
|
219
114
|
customLayoutOverlays: import("react").ReactNode;
|
|
115
|
+
/** The most recent custom layout result, exposed for host readback via the
|
|
116
|
+
* frame handle's `getCustomLayout()` — so a page that needs the computed
|
|
117
|
+
* placement (stats, inspectors) doesn't re-run the layout. Null before the
|
|
118
|
+
* first layout or when no custom layout is set. A rerun failure preserves
|
|
119
|
+
* this last successful result when it is safe to do so. */
|
|
120
|
+
lastCustomLayoutResult: LayoutResult | null;
|
|
121
|
+
/** Latest custom-layout failure for frame-handle readback. */
|
|
122
|
+
lastCustomLayoutFailure: CustomLayoutFailureDiagnostic | null;
|
|
123
|
+
/** Set only while `buildSceneNodes` is recovering from a layout exception.
|
|
124
|
+
* `computeScene` uses it to retain the previous scene/scales without applying
|
|
125
|
+
* a new transition, pulse, or decay pass to that retained output. */
|
|
126
|
+
private _customLayoutFailedThisBuild;
|
|
220
127
|
private _customLayoutDiagnosticsWarned;
|
|
221
128
|
/** Per-frame restyle callback from the custom layout result (see LayoutResult.restyle). */
|
|
222
129
|
private _customRestyle;
|
|
@@ -226,14 +133,23 @@ export declare class PipelineStore {
|
|
|
226
133
|
private _baseStyles;
|
|
227
134
|
/** True when the x accessor returns Date objects (auto-detected on first data ingestion) */
|
|
228
135
|
xIsDate: boolean;
|
|
229
|
-
private
|
|
230
|
-
/** Largest visual point radius in the current scene. The hit tester uses
|
|
231
|
-
* this to widen its quadtree query so points with big radii (bubble) don't
|
|
232
|
-
* fall outside the search region. */
|
|
233
|
-
private _maxPointRadius;
|
|
234
|
-
private static readonly QUADTREE_THRESHOLD;
|
|
136
|
+
private spatialIndex;
|
|
235
137
|
constructor(config: PipelineConfig);
|
|
138
|
+
/**
|
|
139
|
+
* Keep pulse timestamps structurally coupled to the datum ring when pulse
|
|
140
|
+
* is changed after construction. A fresh timestamp ring must be seeded for
|
|
141
|
+
* already-retained data; otherwise the next push would be timestamp index 0
|
|
142
|
+
* while its datum is at the end of the data ring.
|
|
143
|
+
*/
|
|
144
|
+
private syncPulseTimestampBuffer;
|
|
236
145
|
private pushDatumYExtent;
|
|
146
|
+
/**
|
|
147
|
+
* Remove every y-domain contribution made by {@link pushDatumYExtent}.
|
|
148
|
+
* Keeping these paths paired is important: a ribbon/band can extend the
|
|
149
|
+
* visible domain beyond the point itself, so removing or replacing that
|
|
150
|
+
* datum must evict its envelope extrema too.
|
|
151
|
+
*/
|
|
152
|
+
private evictDatumYExtent;
|
|
237
153
|
private rebuildYExtent;
|
|
238
154
|
private rebuildExtents;
|
|
239
155
|
private _lastBoundedInsertsRef;
|
|
@@ -250,20 +166,14 @@ export declare class PipelineStore {
|
|
|
250
166
|
* meaningful — streaming consumers don't pass the same array twice.
|
|
251
167
|
*/
|
|
252
168
|
ingest(changeset: Changeset): boolean;
|
|
169
|
+
/** Additive explicit-result form of {@link ingest}; `ingest()` remains unchanged. */
|
|
170
|
+
ingestWithResult(changeset: Changeset): UpdateResult;
|
|
253
171
|
/**
|
|
254
172
|
* Recompute scales and scene graph for the current buffer contents.
|
|
255
173
|
*/
|
|
256
174
|
computeScene(layout: StreamLayout): void;
|
|
257
|
-
/**
|
|
258
|
-
|
|
259
|
-
* Only built for scatter/bubble charts with >QUADTREE_THRESHOLD points.
|
|
260
|
-
*/
|
|
261
|
-
private rebuildQuadtree;
|
|
262
|
-
/**
|
|
263
|
-
* Get the quadtree spatial index, if available.
|
|
264
|
-
* Returns null when chart type is not scatter/bubble or point count is below threshold.
|
|
265
|
-
*/
|
|
266
|
-
get quadtree(): Quadtree<PointSceneNode> | null;
|
|
175
|
+
/** Get the retained point-scene spatial index, if available. */
|
|
176
|
+
get quadtree(): import("d3-quadtree").Quadtree<import("./types").PointSceneNode> | null;
|
|
267
177
|
/** Largest visual point radius in the current scene. */
|
|
268
178
|
get maxPointRadius(): number;
|
|
269
179
|
/**
|
|
@@ -274,8 +184,12 @@ export declare class PipelineStore {
|
|
|
274
184
|
private buildSceneNodes;
|
|
275
185
|
private resolveBoundsStyle;
|
|
276
186
|
computeDecayOpacity(bufferIndex: number, bufferSize: number): number;
|
|
187
|
+
private getDatumIndexMap;
|
|
277
188
|
private applyDecay;
|
|
278
189
|
private applyPulse;
|
|
190
|
+
/** Refresh pulse fields without rebuilding layout; retained custom scenes stay immutable. */
|
|
191
|
+
refreshPulse(now: number): boolean;
|
|
192
|
+
hasActivePulsesAt(now: number): boolean;
|
|
279
193
|
get hasActivePulses(): boolean;
|
|
280
194
|
private get transitionContext();
|
|
281
195
|
private snapshotPositions;
|
|
@@ -317,13 +231,6 @@ export declare class PipelineStore {
|
|
|
317
231
|
private resolveColorMap;
|
|
318
232
|
private resolveLineStyle;
|
|
319
233
|
private resolveAreaStyle;
|
|
320
|
-
/** Resolve a group name to a color from the cached color map or a dedicated group palette.
|
|
321
|
-
* First checks _colorMapCache (populated by resolveColorMap when colorAccessor is set).
|
|
322
|
-
* Falls back to _groupColorMap (insertion-order, never mutates _colorMapCache).
|
|
323
|
-
*
|
|
324
|
-
* FIFO-evicts the oldest entry when the map exceeds `GROUP_COLOR_MAP_CAP`. The palette index
|
|
325
|
-
* uses `_groupColorCounter` (monotonic, decoupled from map size) so eviction doesn't cause
|
|
326
|
-
* new groups to collide with existing entries on a shrunk map. */
|
|
327
234
|
private resolveGroupColor;
|
|
328
235
|
/**
|
|
329
236
|
* Return a cached materialized array of the buffer contents.
|
|
@@ -356,15 +263,15 @@ export declare class PipelineStore {
|
|
|
356
263
|
getXAccessor(): (d: Datum) => number;
|
|
357
264
|
getYAccessor(): (d: Datum) => number;
|
|
358
265
|
getCategoryAccessor(): ((d: Datum) => string) | undefined;
|
|
359
|
-
/** Update the selection the layout reads at the next rebuild, without
|
|
360
|
-
* triggering one. The frame then either repaints (restyle) or rebuilds. */
|
|
361
|
-
setLayoutSelection(selection: CustomLayoutSelection | null): void;
|
|
362
266
|
private applyCustomRestyle;
|
|
363
267
|
/**
|
|
364
268
|
* Re-apply the custom layout's `restyle` to the existing scene for
|
|
365
269
|
* `selection`, off each node's base style — no relayout, no quadtree rebuild
|
|
366
270
|
* (positions are unchanged). No-op when the layout supplied no `restyle`.
|
|
271
|
+
* Flags a style-only repaint so the render loop redraws the mutated styles.
|
|
367
272
|
*/
|
|
368
273
|
restyleScene(selection: CustomLayoutSelection | null): void;
|
|
369
274
|
updateConfig(config: Partial<PipelineConfig>): void;
|
|
275
|
+
/** Additive explicit-result form of {@link updateConfig}. */
|
|
276
|
+
updateConfigWithResult(config: Partial<PipelineConfig>): UpdateResult;
|
|
370
277
|
}
|
|
@@ -5,6 +5,8 @@ import type { AnnotationContext } from "../realtime/types";
|
|
|
5
5
|
import type { ReactNode } from "react";
|
|
6
6
|
import type { LegendGroup, GradientLegendConfig, LegendLayout } from "../types/legendTypes";
|
|
7
7
|
import { type AutoPlaceAnnotations } from "../recipes/annotationLayout";
|
|
8
|
+
import type { OnObservationCallback } from "../store/ObservationStore";
|
|
9
|
+
import { type OnAnnotationActivateCallback } from "../charts/shared/annotationActivation";
|
|
8
10
|
export type AxisConfig = XYFrameAxisConfig;
|
|
9
11
|
interface SVGOverlayProps {
|
|
10
12
|
width: number;
|
|
@@ -59,6 +61,10 @@ interface SVGOverlayProps {
|
|
|
59
61
|
xValues?: number[];
|
|
60
62
|
yValues?: number[];
|
|
61
63
|
annotations?: Datum[];
|
|
64
|
+
onAnnotationActivate?: OnAnnotationActivateCallback;
|
|
65
|
+
onObservation?: OnObservationCallback;
|
|
66
|
+
chartId?: string;
|
|
67
|
+
chartType?: string;
|
|
62
68
|
autoPlaceAnnotations?: AutoPlaceAnnotations;
|
|
63
69
|
svgAnnotationRules?: (annotation: Datum, index: number, context: AnnotationContext) => ReactNode;
|
|
64
70
|
annotationFrame?: number;
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import type { SceneNode, LineSceneNode, AreaSceneNode, PointSceneNode, SymbolSceneNode, RectSceneNode, HeatcellSceneNode, Style, StreamScales, CurveType } from "./types";
|
|
1
|
+
import type { SceneNode, SceneDatum, LineSceneNode, AreaSceneNode, PointSceneNode, SymbolSceneNode, RectSceneNode, HeatcellSceneNode, Style, StreamScales, CurveType } from "./types";
|
|
2
2
|
import type { SymbolName } from "./symbolPath";
|
|
3
3
|
import type { Datum } from "../charts/shared/datumTypes";
|
|
4
4
|
export declare function buildLineNode(data: Datum[], scales: StreamScales, xGet: (d: Datum) => number, yGet: (d: Datum) => number, style: Style, group?: string): LineSceneNode;
|
|
5
5
|
export declare function buildAreaNode(data: Datum[], scales: StreamScales, xGet: (d: Datum) => number, yGet: (d: Datum) => number, baselineY: number, style: Style, group?: string, y0Get?: (d: Datum) => number): AreaSceneNode;
|
|
6
6
|
/** Per-group-per-x stacked top values, keyed by group then x */
|
|
7
7
|
export type StackedTops = Map<string, Map<number, number>>;
|
|
8
|
-
export type StackBaseline = "zero" | "wiggle" | "silhouette";
|
|
8
|
+
export type StackBaseline = "zero" | "wiggle" | "silhouette" | "diverging";
|
|
9
9
|
/**
|
|
10
10
|
* Compute per-x stack baseline offsets. Shared between scene rendering
|
|
11
11
|
* (`buildStackedAreaNodes`) and extent computation (`PipelineStore`) so
|
|
@@ -17,8 +17,16 @@ export type StackBaseline = "zero" | "wiggle" | "silhouette";
|
|
|
17
17
|
* xValues — sorted unique x values
|
|
18
18
|
* groupKeys — group keys in stacking order (same order both callers use)
|
|
19
19
|
* valueAt — (groupKey, x) → group's value at x (0 if absent)
|
|
20
|
+
*
|
|
21
|
+
* `"diverging"` returns zero offsets — positives and negatives stack from
|
|
22
|
+
* y=0 independently inside {@link buildStackedAreaNodes}.
|
|
20
23
|
*/
|
|
21
24
|
export declare function computeStackOffsets(xValues: number[], groupKeys: string[], valueAt: (groupKey: string, x: number) => number, baseline: StackBaseline): Map<number, number>;
|
|
25
|
+
/**
|
|
26
|
+
* Diverging stack extent: positives accumulate above 0, negatives below.
|
|
27
|
+
* Shared by PipelineStore auto-extent and any host that needs matching bounds.
|
|
28
|
+
*/
|
|
29
|
+
export declare function computeDivergingStackExtent(xValues: number[], groupKeys: string[], valueAt: (groupKey: string, x: number) => number): [number, number];
|
|
22
30
|
export declare function buildStackedAreaNodes(groups: {
|
|
23
31
|
key: string;
|
|
24
32
|
data: Datum[];
|
|
@@ -30,8 +38,8 @@ export declare function buildPointNode(datum: Datum, scales: StreamScales, xGet:
|
|
|
30
38
|
/** Build a {@link SymbolSceneNode} — the glyph sibling of {@link buildPointNode}.
|
|
31
39
|
* `size` is the d3-symbol area (px²); convert from a target radius with πr². */
|
|
32
40
|
export declare function buildSymbolNode(datum: Datum, scales: StreamScales, xGet: (d: Datum) => number, yGet: (d: Datum) => number, size: number, symbolType: SymbolName, style: Style, pointId?: string): SymbolSceneNode | null;
|
|
33
|
-
export declare function buildRectNode(x: number, y: number, w: number, h: number, style: Style, datum:
|
|
34
|
-
export declare function buildHeatcellNode(x: number, y: number, w: number, h: number, fill: string, datum:
|
|
41
|
+
export declare function buildRectNode(x: number, y: number, w: number, h: number, style: Style, datum: SceneDatum, group?: string): RectSceneNode;
|
|
42
|
+
export declare function buildHeatcellNode(x: number, y: number, w: number, h: number, fill: string, datum: Datum, options?: {
|
|
35
43
|
value?: number;
|
|
36
44
|
showValues?: boolean;
|
|
37
45
|
valueFormat?: (v: number) => string;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { Datum } from "../charts/shared/datumTypes";
|
|
2
2
|
import * as React from "react";
|
|
3
3
|
import type { StreamGeoFrameProps, StreamGeoFrameHandle } from "./geoTypes";
|
|
4
|
-
declare const StreamGeoFrame: React.
|
|
4
|
+
declare const StreamGeoFrame: React.NamedExoticComponent<StreamGeoFrameProps<Datum> & React.RefAttributes<StreamGeoFrameHandle>>;
|
|
5
5
|
export default StreamGeoFrame;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { Datum } from "../charts/shared/datumTypes";
|
|
2
2
|
import * as React from "react";
|
|
3
3
|
import type { StreamNetworkFrameProps, StreamNetworkFrameHandle } from "./networkTypes";
|
|
4
|
-
declare const StreamNetworkFrame: React.
|
|
4
|
+
declare const StreamNetworkFrame: React.NamedExoticComponent<StreamNetworkFrameProps<Datum> & React.RefAttributes<StreamNetworkFrameHandle>>;
|
|
5
5
|
export default StreamNetworkFrame;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { Datum } from "../charts/shared/datumTypes";
|
|
2
2
|
import * as React from "react";
|
|
3
3
|
import type { StreamOrdinalFrameProps, StreamOrdinalFrameHandle } from "./ordinalTypes";
|
|
4
|
-
declare const StreamOrdinalFrame: React.
|
|
4
|
+
declare const StreamOrdinalFrame: React.NamedExoticComponent<StreamOrdinalFrameProps<Datum> & React.RefAttributes<StreamOrdinalFrameHandle<Datum>>>;
|
|
5
5
|
export default StreamOrdinalFrame;
|
|
@@ -1,22 +1,6 @@
|
|
|
1
1
|
import type { Datum } from "../charts/shared/datumTypes";
|
|
2
2
|
import * as React from "react";
|
|
3
3
|
import type { StreamXYFrameProps, StreamXYFrameHandle } from "./types";
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
* CSS color string. The naive `${color}${alpha}` concatenation only works
|
|
7
|
-
* when `color` is a 6-char `#rrggbb`; shorthand `#rgb` produces the
|
|
8
|
-
* invalid 5-char `#rgbXX`, which `ctx.strokeStyle`/`fillStyle` silently
|
|
9
|
-
* rejects (falling back to `#000000` — black, invisible on dark themes).
|
|
10
|
-
* The /cookbook/marginal-graphics crosshair invisibility was caused
|
|
11
|
-
* precisely by `--semiotic-text-secondary: "#aaa"` hitting this path.
|
|
12
|
-
*
|
|
13
|
-
* Handles:
|
|
14
|
-
* • 3-char hex (`#abc`) → expanded to 6-char then concatenated
|
|
15
|
-
* • 6-char hex (`#aabbcc`) → concatenated directly
|
|
16
|
-
* • `rgb(...)` → repacked as `rgba(..., a)` with numeric alpha
|
|
17
|
-
* Any other form (named colors, hsl(), oklch(), etc.) falls back to the
|
|
18
|
-
* raw color without alpha — degrades gracefully.
|
|
19
|
-
*/
|
|
20
|
-
export declare function withAlpha(color: string, alphaHex: string): string;
|
|
21
|
-
declare const StreamXYFrame: React.ForwardRefExoticComponent<StreamXYFrameProps<Datum> & React.RefAttributes<StreamXYFrameHandle<Datum>>>;
|
|
4
|
+
export { withAlpha } from "./frameThemeColors";
|
|
5
|
+
declare const StreamXYFrame: React.NamedExoticComponent<StreamXYFrameProps<Datum> & React.RefAttributes<StreamXYFrameHandle<Datum>>>;
|
|
22
6
|
export default StreamXYFrame;
|