semiotic 3.7.4 → 3.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CLAUDE.md +60 -15
- package/README.md +135 -24
- 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 +1651 -154
- package/ai/examples.md +174 -0
- package/ai/schema.json +2934 -517
- package/ai/surface-manifest.json +200 -0
- package/ai/system-prompt.md +19 -3
- package/dist/components/Annotation.d.ts +4 -0
- 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/DataSummaryContext.d.ts +1 -0
- 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 +42 -1
- package/dist/components/ai/chartClinic.d.ts +91 -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 +203 -0
- package/dist/components/ai/dataQualityBridge.d.ts +201 -0
- package/dist/components/ai/describeChart.d.ts +9 -0
- package/dist/components/ai/describeRecipeChart.d.ts +16 -0
- package/dist/components/ai/generativeChart.d.ts +170 -0
- 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/charts/custom/GeoCustomChart.d.ts +48 -0
- package/dist/components/charts/custom/NetworkCustomChart.d.ts +22 -3
- 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/DistanceCartogram.d.ts +1 -1
- package/dist/components/charts/geo/FlowMap.d.ts +1 -1
- package/dist/components/charts/geo/ProportionalSymbolMap.d.ts +1 -1
- package/dist/components/charts/geo/index.d.ts +2 -0
- package/dist/components/charts/index.d.ts +29 -1
- package/dist/components/charts/network/ChordDiagram.d.ts +1 -1
- package/dist/components/charts/network/CirclePack.d.ts +1 -1
- package/dist/components/charts/network/ForceDirectedGraph.d.ts +15 -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 +1 -1
- 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 +1 -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 +1 -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 +1 -1
- package/dist/components/charts/ordinal/SwarmPlot.d.ts +8 -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 +47 -0
- package/dist/components/charts/physics/EventDropChart.capability.d.ts +2 -0
- package/dist/components/charts/physics/EventDropChart.d.ts +53 -0
- package/dist/components/charts/physics/GaltonBoardChart.capability.d.ts +2 -0
- package/dist/components/charts/physics/GaltonBoardChart.d.ts +66 -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 +120 -0
- package/dist/components/charts/physics/PhysicsPileChart.capability.d.ts +2 -0
- package/dist/components/charts/physics/PhysicsPileChart.d.ts +53 -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 +41 -0
- package/dist/components/charts/physics/physicsChartUtils.d.ts +18 -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 +30 -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/realtime/aggregate.d.ts +51 -0
- package/dist/components/charts/realtime/eventTime.d.ts +26 -0
- 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/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/colorPalettes.d.ts +2 -0
- package/dist/components/charts/shared/colorUtils.d.ts +17 -13
- package/dist/components/charts/shared/diagnoseAnnotationChecks.d.ts +4 -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/hooks.d.ts +28 -5
- package/dist/components/charts/shared/minMax.d.ts +3 -0
- package/dist/components/charts/shared/motionEncoding.d.ts +145 -0
- package/dist/components/charts/shared/radialGeometry.d.ts +0 -18
- package/dist/components/charts/shared/responsiveRules.d.ts +56 -0
- package/dist/components/charts/shared/smartTooltip.d.ts +27 -0
- package/dist/components/charts/shared/statisticalOverlays.d.ts +35 -0
- package/dist/components/charts/shared/streamPropsHelpers.d.ts +12 -2
- package/dist/components/charts/shared/temporalStrings.d.ts +7 -0
- package/dist/components/charts/shared/tooltipUtils.d.ts +2 -0
- package/dist/components/charts/shared/types.d.ts +49 -1
- package/dist/components/charts/shared/useChartSetup.d.ts +10 -3
- package/dist/components/charts/shared/useCustomChartSetup.d.ts +15 -6
- package/dist/components/charts/shared/useNetworkChartSetup.d.ts +6 -2
- package/dist/components/charts/shared/useOrdinalPieceStyle.d.ts +1 -1
- package/dist/components/charts/shared/useStreamingLegend.d.ts +1 -1
- package/dist/components/charts/shared/useSyncedPushData.d.ts +49 -0
- package/dist/components/charts/shared/validateChartData.d.ts +1 -1
- package/dist/components/charts/shared/validationMap.d.ts +0 -11
- package/dist/components/charts/xy/AreaChart.d.ts +1 -1
- package/dist/components/charts/xy/BubbleChart.d.ts +1 -1
- package/dist/components/charts/xy/LineChart.d.ts +1 -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 +1 -1
- package/dist/components/charts/xy/Scatterplot.d.ts +10 -1
- package/dist/components/charts/xy/ScatterplotMatrix.d.ts +11 -1
- package/dist/components/charts/xy/StackedAreaChart.d.ts +9 -4
- package/dist/components/controls/controlAudit.d.ts +24 -0
- package/dist/components/controls/controlContract.d.ts +57 -0
- package/dist/components/data/fromArrow.d.ts +54 -0
- package/dist/components/data/fromFlintChart.d.ts +74 -0
- package/dist/components/data/fromMermaid.d.ts +47 -0
- package/dist/components/data/fromObservablePlot.d.ts +69 -0
- package/dist/components/data/fromVegaLite.d.ts +27 -0
- package/dist/components/data/portability/index.d.ts +17 -0
- package/dist/components/data/portability/result.d.ts +52 -0
- package/dist/components/data/portability/spec.d.ts +160 -0
- package/dist/components/data/portability/vegaLite.d.ts +80 -0
- package/dist/components/export/chartConfig.d.ts +11 -0
- package/dist/components/realtime/ReorderBuffer.d.ts +54 -0
- package/dist/components/realtime/RunningStats.d.ts +66 -0
- package/dist/components/realtime/WindowAccumulator.d.ts +105 -0
- package/dist/components/realtime/parseWindowDuration.d.ts +12 -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/boba.d.ts +23 -0
- package/dist/components/recipes/customTooltip.d.ts +31 -0
- 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 +215 -0
- package/dist/components/recipes/gofishIRExamples.d.ts +38 -0
- 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/mermaidDag.d.ts +44 -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/packedClusterMatrix.d.ts +166 -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 +191 -0
- package/dist/components/recipes/recipeGlyph.d.ts +42 -0
- package/dist/components/recipes/recipeLegend.d.ts +109 -0
- package/dist/components/recipes/recipeUtils.d.ts +157 -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/semiotic-ai-core.d.ts +47 -0
- package/dist/components/semiotic-ai.d.ts +52 -4
- package/dist/components/semiotic-controls.d.ts +18 -0
- package/dist/components/semiotic-data.d.ts +2 -0
- package/dist/components/semiotic-experimental.d.ts +49 -0
- package/dist/components/semiotic-geo.d.ts +11 -0
- package/dist/components/semiotic-network.d.ts +14 -1
- package/dist/components/semiotic-ordinal.d.ts +10 -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 +56 -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 -22
- 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 -26
- 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 -74
- package/dist/components/semiotic-utils-core.d.ts +46 -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 +10 -0
- package/dist/components/semiotic.d.ts +39 -7
- package/dist/components/server/animatedGif.d.ts +36 -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 +17 -0
- package/dist/components/server/serverChartConfigs.d.ts +19 -9
- 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/staticGeo.d.ts +4 -0
- package/dist/components/server/staticLegend.d.ts +1 -1
- 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 -3
- package/dist/components/store/SelectionStore.d.ts +1 -1
- package/dist/components/store/ThemeStore.d.ts +1 -1
- package/dist/components/store/TooltipStore.d.ts +1 -1
- package/dist/components/store/createStore.d.ts +1 -1
- package/dist/components/store/designTokens.d.ts +15 -0
- 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 +3 -13
- package/dist/components/stream/FocusRing.d.ts +4 -2
- package/dist/components/stream/GeoCanvasHitTester.d.ts +1 -1
- package/dist/components/stream/GeoPipelineStore.d.ts +28 -0
- package/dist/components/stream/NetworkHtmlMarksLayer.d.ts +44 -0
- package/dist/components/stream/NetworkPipelineStore.d.ts +62 -25
- package/dist/components/stream/NetworkSVGOverlay.d.ts +15 -0
- package/dist/components/stream/OrdinalPipelineStore.d.ts +64 -2
- package/dist/components/stream/PipelineStore.d.ts +100 -162
- package/dist/components/stream/SceneGraph.d.ts +14 -2
- 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 +23 -10
- 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/customLayout.d.ts +20 -0
- package/dist/components/stream/customLayoutDiagnostics.d.ts +11 -0
- package/dist/components/stream/customLayoutFailure.d.ts +33 -0
- package/dist/components/stream/customLayoutPalette.d.ts +19 -9
- package/dist/components/stream/customLayoutSelection.d.ts +52 -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/geoTypes.d.ts +56 -7
- package/dist/components/stream/glyphDef.d.ts +98 -0
- package/dist/components/stream/hitTarget.d.ts +170 -0
- package/dist/components/stream/hoverUtils.d.ts +3 -0
- 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 +57 -0
- package/dist/components/stream/networkBezier.d.ts +10 -0
- package/dist/components/stream/networkColorAccessors.d.ts +49 -0
- package/dist/components/stream/networkCustomLayout.d.ts +66 -1
- package/dist/components/stream/networkDefaultTooltip.d.ts +10 -0
- package/dist/components/stream/networkFrameInteraction.d.ts +37 -0
- package/dist/components/stream/networkFramePaint.d.ts +43 -0
- package/dist/components/stream/networkPipelineConfig.d.ts +22 -0
- package/dist/components/stream/networkPipelineHelpers.d.ts +12 -0
- package/dist/components/stream/networkRealtimeEncoding.d.ts +41 -0
- package/dist/components/stream/networkTypes.d.ts +104 -5
- package/dist/components/stream/ordinalCanvasRenderers.d.ts +7 -0
- package/dist/components/stream/ordinalCustomLayout.d.ts +17 -1
- 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 +12 -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 -0
- package/dist/components/stream/ordinalSpatialIndex.d.ts +9 -0
- package/dist/components/stream/ordinalTypes.d.ts +56 -8
- 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 +84 -0
- package/dist/components/stream/physics/PhysicsPipelineTypes.d.ts +181 -0
- package/dist/components/stream/physics/PhysicsSVGOverlay.d.ts +72 -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 +302 -0
- package/dist/components/stream/physics/physicsBodyCanvas.d.ts +27 -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 +9 -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 +16 -0
- package/dist/components/stream/pipelineBufferUtils.d.ts +26 -0
- package/dist/components/stream/pipelineConfig.d.ts +177 -0
- package/dist/components/stream/pipelineDecay.d.ts +20 -2
- 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 +16 -2
- 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 +12 -0
- package/dist/components/stream/pipelineStyleResolvers.d.ts +46 -0
- package/dist/components/stream/pipelineTransitions.d.ts +2 -0
- package/dist/components/stream/pipelineUpdateContract.d.ts +62 -0
- package/dist/components/stream/pulseFrameRefresh.d.ts +22 -0
- package/dist/components/stream/renderers/glyphCanvasRenderer.d.ts +6 -0
- package/dist/components/stream/renderers/networkSymbolRenderer.d.ts +2 -0
- package/dist/components/stream/renderers/resolveCSSColor.d.ts +6 -0
- package/dist/components/stream/renderers/symbolCanvasRenderer.d.ts +2 -0
- package/dist/components/stream/sceneRevisionDiagnostics.d.ts +18 -0
- package/dist/components/stream/stalenessBands.d.ts +28 -0
- package/dist/components/stream/streamStoreSync.d.ts +37 -0
- package/dist/components/stream/symbolPath.d.ts +24 -0
- package/dist/components/stream/types.d.ts +206 -9
- package/dist/components/stream/useFrame.d.ts +21 -2
- package/dist/components/stream/useHydration.d.ts +6 -0
- package/dist/components/stream/useLegendCategoryEmission.d.ts +5 -0
- package/dist/components/stream/useStalenessCheck.d.ts +6 -1
- 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/xySceneBuilders/pointScene.d.ts +2 -2
- package/dist/components/stream/xySceneBuilders/types.d.ts +9 -4
- 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/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 +52 -4
- 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 +18 -0
- package/dist/semiotic-data.d.ts +2 -0
- package/dist/semiotic-data.min.js +1 -1
- package/dist/semiotic-data.module.min.js +1 -1
- package/dist/semiotic-experimental.d.ts +49 -0
- package/dist/semiotic-experimental.min.js +1 -0
- package/dist/semiotic-experimental.module.min.js +1 -0
- package/dist/semiotic-geo.d.ts +11 -0
- package/dist/semiotic-network.d.ts +14 -1
- package/dist/semiotic-ordinal.d.ts +10 -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 +56 -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 -22
- 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 -26
- package/dist/semiotic-recipes.min.js +1 -1
- package/dist/semiotic-recipes.module.min.js +1 -1
- 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 -74
- package/dist/semiotic-themes.min.js +1 -2
- package/dist/semiotic-themes.module.min.js +1 -2
- package/dist/semiotic-utils-core.d.ts +46 -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 +10 -0
- package/dist/semiotic.d.ts +39 -7
- 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/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 +246 -86
- 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/semiotic-ai-statisticalOverlays-C2PPlmXv.js +0 -1
- package/dist/semiotic-statisticalOverlays-C3DsOgr_.js +0 -1
- package/dist/xy-statisticalOverlays-C2PPlmXv.js +0 -1
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import type { Datum } from "../charts/shared/datumTypes";
|
|
2
|
+
import type { SemioticTheme } from "./ThemeStore";
|
|
3
|
+
/**
|
|
4
|
+
* Convert a SemioticTheme to a CSS custom properties string.
|
|
5
|
+
* Useful for SSR or generating stylesheet content.
|
|
6
|
+
*
|
|
7
|
+
* @param theme - A SemioticTheme object
|
|
8
|
+
* @param selector - CSS selector to scope the variables (default: `:root`)
|
|
9
|
+
* @returns CSS string with custom properties
|
|
10
|
+
*
|
|
11
|
+
* @example
|
|
12
|
+
* ```ts
|
|
13
|
+
* const css = themeToCSS(TUFTE_LIGHT, ".my-charts")
|
|
14
|
+
* // .my-charts {
|
|
15
|
+
* // --semiotic-bg: #fffff8;
|
|
16
|
+
* // --semiotic-text: #111111;
|
|
17
|
+
* // ...
|
|
18
|
+
* // }
|
|
19
|
+
* ```
|
|
20
|
+
*/
|
|
21
|
+
export declare function themeToCSS(theme: SemioticTheme, selector?: string): string;
|
|
22
|
+
/**
|
|
23
|
+
* Convert a SemioticTheme to a design tokens JSON object.
|
|
24
|
+
* Compatible with Style Dictionary / Design Token Community Group format.
|
|
25
|
+
*
|
|
26
|
+
* @example
|
|
27
|
+
* ```ts
|
|
28
|
+
* const tokens = themeToTokens(TUFTE_LIGHT)
|
|
29
|
+
* // { semiotic: { bg: { $value: "#fffff8", $type: "color" }, ... } }
|
|
30
|
+
* ```
|
|
31
|
+
*/
|
|
32
|
+
export declare function themeToTokens(theme: SemioticTheme): Datum;
|
|
@@ -2,6 +2,7 @@ import type { Datum } from "../charts/shared/datumTypes";
|
|
|
2
2
|
import { type DataSummary } from "../data/DataSummarizer";
|
|
3
3
|
import type { ChartDataProfile, Suggestion } from "../ai/chartCapabilityTypes";
|
|
4
4
|
import type { IntentId } from "../ai/intents";
|
|
5
|
+
import { type ChartReaderGrounding, type ChartReaderGroundingOptions } from "../ai/readerGrounding";
|
|
5
6
|
/**
|
|
6
7
|
* Identifies a single point of interest on the chart — typically the datum
|
|
7
8
|
* the user is currently hovering, clicked, or otherwise focused on. When
|
|
@@ -31,6 +32,8 @@ export interface InterrogationContext {
|
|
|
31
32
|
componentName?: string;
|
|
32
33
|
/** Optional caller-supplied chart props (accessor names, scales, etc.). */
|
|
33
34
|
props?: Record<string, unknown>;
|
|
35
|
+
/** Optional reader-grounding payload for faithful chart interpretation. */
|
|
36
|
+
grounding?: ChartReaderGrounding;
|
|
34
37
|
/**
|
|
35
38
|
* The current focused datum — what the user is interactively pointing at.
|
|
36
39
|
* Lets the LLM tailor responses to a specific point ("why is *this* one
|
|
@@ -82,6 +85,12 @@ export interface UseChartInterrogationOptions {
|
|
|
82
85
|
* `onObservation` callback or the convenience `useChartFocus` hook.
|
|
83
86
|
*/
|
|
84
87
|
focus?: InterrogationFocus | null;
|
|
88
|
+
/**
|
|
89
|
+
* Include `buildReaderGrounding()` in the interrogation context. Pass true
|
|
90
|
+
* for default grounding, or an options object for capability/audience,
|
|
91
|
+
* structure, and physics runtime grounding controls.
|
|
92
|
+
*/
|
|
93
|
+
includeGrounding?: boolean | ChartReaderGroundingOptions;
|
|
85
94
|
}
|
|
86
95
|
export interface UseChartInterrogationResult {
|
|
87
96
|
/** Ask a question. Updates history, annotations, loading, and error. */
|
|
@@ -1,9 +1,7 @@
|
|
|
1
1
|
import * as React from "react";
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
[key: string]: any;
|
|
6
|
-
};
|
|
2
|
+
import { type AccessibleSceneNode as AnySceneNode } from "./accessibleDataRows";
|
|
3
|
+
export { extractAllRows } from "./accessibleDataRows";
|
|
4
|
+
export type { DataRow } from "./accessibleDataRows";
|
|
7
5
|
declare const SR_ONLY_STYLE: React.CSSProperties;
|
|
8
6
|
/**
|
|
9
7
|
* Compute an aria-label describing the chart type and data shape from the scene graph.
|
|
@@ -13,14 +11,6 @@ export declare function computeCanvasAriaLabel(scene: AnySceneNode[] | null | un
|
|
|
13
11
|
* Compute an aria-label for network charts from scene nodes and edges.
|
|
14
12
|
*/
|
|
15
13
|
export declare function computeNetworkAriaLabel(nodeCount: number, edgeCount: number, chartType: string): string;
|
|
16
|
-
interface DataRow {
|
|
17
|
-
label: string;
|
|
18
|
-
values: Record<string, string | number>;
|
|
19
|
-
}
|
|
20
|
-
/** Extract a flat list of typed rows from scene nodes, surfacing the raw datum
|
|
21
|
-
* fields (not pixel coordinates). Defensively handles missing/malformed data —
|
|
22
|
-
* never throws. Exported for direct testing. */
|
|
23
|
-
export declare function extractAllRows(scene: AnySceneNode[]): DataRow[];
|
|
24
14
|
interface AccessibleDataTableProps {
|
|
25
15
|
scene: AnySceneNode[];
|
|
26
16
|
chartType: string;
|
|
@@ -24,10 +24,12 @@ export interface FocusRingProps {
|
|
|
24
24
|
/** Total chart size */
|
|
25
25
|
size: [number, number];
|
|
26
26
|
/** Shape hint from the focused nav point */
|
|
27
|
-
shape?: "circle" | "rect" | "wedge";
|
|
27
|
+
shape?: "circle" | "rect" | "wedge" | "geoarea" | "path";
|
|
28
28
|
/** Width of rect-shaped focus target */
|
|
29
29
|
width?: number;
|
|
30
30
|
/** Height of rect-shaped focus target */
|
|
31
31
|
height?: number;
|
|
32
|
+
/** SVG path (plot-relative) outlined for a geoarea focus. */
|
|
33
|
+
pathData?: string;
|
|
32
34
|
}
|
|
33
|
-
export declare function FocusRing({ active, hoverPoint, margin, size, shape, width, height }: FocusRingProps): React.JSX.Element | null;
|
|
35
|
+
export declare function FocusRing({ active, hoverPoint, margin, size, shape, width, height, pathData }: FocusRingProps): React.JSX.Element | null;
|
|
@@ -16,4 +16,4 @@ export interface GeoHitResult {
|
|
|
16
16
|
* The `hitCtx` parameter is a shared offscreen canvas context used for
|
|
17
17
|
* isPointInPath checks without polluting the visible canvas.
|
|
18
18
|
*/
|
|
19
|
-
export declare function findNearestGeoNode(nodes: GeoSceneNode[], mouseX: number, mouseY: number, maxDistance: number, hitCtx: CanvasRenderingContext2D | OffscreenCanvasRenderingContext2D, pointQuadtree?: Quadtree<PointSceneNode> | null, maxPointRadius?: number): GeoHitResult | null;
|
|
19
|
+
export declare function findNearestGeoNode(nodes: GeoSceneNode[], mouseX: number, mouseY: number, maxDistance: number, hitCtx: CanvasRenderingContext2D | OffscreenCanvasRenderingContext2D, pointQuadtree?: Quadtree<PointSceneNode> | null, maxPointRadius?: number, lineMaxDistance?: number): GeoHitResult | null;
|
|
@@ -4,11 +4,29 @@ import type { GeoPipelineConfig, GeoScales, GeoSceneNode } from "./geoTypes";
|
|
|
4
4
|
import type { PointSceneNode, StreamLayout } from "./types";
|
|
5
5
|
import type { ActiveTransition } from "./pipelineTransitionUtils";
|
|
6
6
|
import type { Datum } from "../charts/shared/datumTypes";
|
|
7
|
+
import type { GeoLayoutResult } from "./geoCustomLayout";
|
|
8
|
+
import type { CustomLayoutSelection } from "./customLayoutSelection";
|
|
9
|
+
import { type CustomLayoutFailureDiagnostic } from "./customLayoutFailure";
|
|
7
10
|
export declare class GeoPipelineStore {
|
|
8
11
|
config: GeoPipelineConfig;
|
|
9
12
|
scene: GeoSceneNode[];
|
|
10
13
|
scales: GeoScales | null;
|
|
11
14
|
version: number;
|
|
15
|
+
/** SVG overlays returned from the active custom layout. */
|
|
16
|
+
customLayoutOverlays: import("react").ReactNode;
|
|
17
|
+
/** Most recent custom layout result for host readback (`getCustomLayout()`).
|
|
18
|
+
* Null before the first layout or without a custom layout. A failed
|
|
19
|
+
* re-layout retains the prior good result alongside its diagnostic. */
|
|
20
|
+
lastCustomLayoutResult: GeoLayoutResult | null;
|
|
21
|
+
/** Most recent exception from a custom layout invocation, for host readback. */
|
|
22
|
+
lastCustomLayoutFailure: CustomLayoutFailureDiagnostic | null;
|
|
23
|
+
private _customLayoutDiagnosticsWarned;
|
|
24
|
+
private _customRestyle;
|
|
25
|
+
hasCustomRestyle: boolean;
|
|
26
|
+
private _baseStyles;
|
|
27
|
+
/** Set only while a custom-layout invocation throws. The rebuild callers use
|
|
28
|
+
* it to retain the previous scene and projection state without mutating it. */
|
|
29
|
+
private _customLayoutFailedThisBuild;
|
|
12
30
|
private static readonly QUADTREE_THRESHOLD;
|
|
13
31
|
private _quadtree;
|
|
14
32
|
/** Largest visual point radius in the current scene; used to widen quadtree
|
|
@@ -74,6 +92,16 @@ export declare class GeoPipelineStore {
|
|
|
74
92
|
*/
|
|
75
93
|
removePoint(id: string | string[]): Datum[];
|
|
76
94
|
clear(): void;
|
|
95
|
+
setLayoutSelection(selection: CustomLayoutSelection | null): void;
|
|
96
|
+
/**
|
|
97
|
+
* "Styles changed, repaint the data canvas without rebuilding the scene."
|
|
98
|
+
* Set by {@link restyleScene}; consumed once per frame by the paint loop, so a
|
|
99
|
+
* style-only selection change repaints without a projection/scene recompute.
|
|
100
|
+
*/
|
|
101
|
+
private _stylePaintPending;
|
|
102
|
+
/** Consume the style-only repaint signal (see {@link _stylePaintPending}). */
|
|
103
|
+
consumeStylePaintPending(): boolean;
|
|
104
|
+
restyleScene(selection: CustomLayoutSelection | null): void;
|
|
77
105
|
computeScene(layout: StreamLayout): void;
|
|
78
106
|
private fitProjection;
|
|
79
107
|
/**
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
import type { NetworkHtmlMark } from "./networkCustomLayout";
|
|
3
|
+
import type { CustomLayoutSelection } from "./customLayoutSelection";
|
|
4
|
+
export interface NetworkHtmlMarksLayerProps {
|
|
5
|
+
/** Marks emitted by the custom layout (`NetworkLayoutResult.htmlMarks`). */
|
|
6
|
+
marks: NetworkHtmlMark[] | undefined;
|
|
7
|
+
/** The frame's margin — the layer is offset by it so marks align with the
|
|
8
|
+
* canvas and SVG `overlays`, which translate their content by the same. */
|
|
9
|
+
margin: {
|
|
10
|
+
top: number;
|
|
11
|
+
left: number;
|
|
12
|
+
};
|
|
13
|
+
/** Shared-selection projection, provided so mark content can subscribe via
|
|
14
|
+
* `useCustomLayoutSelection()` and restyle on selection change without a
|
|
15
|
+
* relayout (parity with the SVG `overlays` subtree). `null` when unwired. */
|
|
16
|
+
selection?: CustomLayoutSelection | null;
|
|
17
|
+
/**
|
|
18
|
+
* Pixels beyond each visible edge of the scrolling viewport for which marks are
|
|
19
|
+
* still mounted (so a scroll reveals already-present DOM, not blank space).
|
|
20
|
+
* Marks farther than this off-screen are not rendered at all. Defaults to 400.
|
|
21
|
+
*/
|
|
22
|
+
overscan?: number;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Renders a custom network layout's {@link NetworkHtmlMark}s into one
|
|
26
|
+
* absolutely-positioned DOM layer above the canvas and SVG `overlays`.
|
|
27
|
+
*
|
|
28
|
+
* Each mark is its own positioned element, keyed by `id`, so the browser can
|
|
29
|
+
* composite `opacity`/`transform`/`visibility` changes on the mark's content
|
|
30
|
+
* without re-rasterizing it (the win over SVG `<foreignObject>`), and a
|
|
31
|
+
* position-only layout re-run repositions without remounting. The wrapper sets
|
|
32
|
+
* only placement + sizing + `pointer-events`; everything visual comes from
|
|
33
|
+
* `content`.
|
|
34
|
+
*
|
|
35
|
+
* Marks are viewport-culled against the nearest scrollable ancestor (plus
|
|
36
|
+
* `overscan`): a mark more than `overscan` px outside the visible window is not
|
|
37
|
+
* in the DOM at all, so a large topology mounts only roughly a viewport's worth
|
|
38
|
+
* regardless of total size, and the per-hover/paint cost stays bounded. When
|
|
39
|
+
* there's no scrollable ancestor (the content fits) every mark renders.
|
|
40
|
+
*
|
|
41
|
+
* Returns `null` when there are no marks, so layouts that don't use the feature
|
|
42
|
+
* render no extra DOM.
|
|
43
|
+
*/
|
|
44
|
+
export declare function NetworkHtmlMarksLayer({ marks, margin, selection, overscan, }: NetworkHtmlMarksLayerProps): React.ReactElement | null;
|
|
@@ -1,4 +1,7 @@
|
|
|
1
1
|
import { ParticlePool } from "./ParticlePool";
|
|
2
|
+
import type { NetworkLayoutResult, NetworkHtmlMark } from "./networkCustomLayout";
|
|
3
|
+
import type { CustomLayoutSelection } from "./customLayoutSelection";
|
|
4
|
+
import { type CustomLayoutFailureDiagnostic } from "./customLayoutFailure";
|
|
2
5
|
import type { ActiveTransition } from "./pipelineTransitionUtils";
|
|
3
6
|
import { type Quadtree } from "d3-quadtree";
|
|
4
7
|
import type { NetworkPipelineConfig, NetworkSceneNode, NetworkSceneEdge, NetworkCircleNode, NetworkLabel, RealtimeNode, RealtimeEdge, EdgePush } from "./networkTypes";
|
|
@@ -29,6 +32,27 @@ export declare class NetworkPipelineStore {
|
|
|
29
32
|
labels: NetworkLabel[];
|
|
30
33
|
/** Overlays returned from customNetworkLayout (consumed by StreamNetworkFrame). */
|
|
31
34
|
customLayoutOverlays: import("react").ReactNode;
|
|
35
|
+
/** Most recent custom layout result for host readback (`getCustomLayout()`).
|
|
36
|
+
* Null before the first layout or without a custom layout. A failed rerun
|
|
37
|
+
* retains this last successful result when its rendered scene is reusable. */
|
|
38
|
+
lastCustomLayoutResult: NetworkLayoutResult | null;
|
|
39
|
+
/** Latest custom-layout failure for frame-handle readback. */
|
|
40
|
+
lastCustomLayoutFailure: CustomLayoutFailureDiagnostic | null;
|
|
41
|
+
/** HTML marks returned from customNetworkLayout — positioned DOM nodes the
|
|
42
|
+
* frame renders in a layer above the canvas/overlays (consumed by
|
|
43
|
+
* StreamNetworkFrame). Empty for built-in chart types. */
|
|
44
|
+
customLayoutHtmlMarks: NetworkHtmlMark[];
|
|
45
|
+
private _customLayoutDiagnosticsWarned;
|
|
46
|
+
/** Per-frame restyle callbacks from the custom layout result. When set, the
|
|
47
|
+
* frame routes selection changes through `restyleScene()` (style-only repaint)
|
|
48
|
+
* instead of a full `buildScene()`. */
|
|
49
|
+
private _customRestyle;
|
|
50
|
+
private _customRestyleEdge;
|
|
51
|
+
/** True when the active custom layout supplied a `restyle`/`restyleEdge`. */
|
|
52
|
+
hasCustomRestyle: boolean;
|
|
53
|
+
/** Base (as-emitted) style per mark, so a restyle pass starts from the layout's
|
|
54
|
+
* own style rather than compounding patches across selection changes. */
|
|
55
|
+
private _baseStyles;
|
|
32
56
|
private _nodeQuadtree;
|
|
33
57
|
private _maxNodeRadius;
|
|
34
58
|
/** Bumped whenever sceneNodes is rebuilt; keys the quadtree cache. */
|
|
@@ -66,6 +90,7 @@ export declare class NetworkPipelineStore {
|
|
|
66
90
|
lastTopologyChangeTime: number;
|
|
67
91
|
private previousNodeIds;
|
|
68
92
|
private previousEdgeKeys;
|
|
93
|
+
private _networkDecayCache;
|
|
69
94
|
/** Snapshot of node positions from the last layout — used for force warm-start */
|
|
70
95
|
_lastPositionSnapshot: Map<string, {
|
|
71
96
|
x: number;
|
|
@@ -82,7 +107,19 @@ export declare class NetworkPipelineStore {
|
|
|
82
107
|
* Ingest bounded node/edge arrays (from props).
|
|
83
108
|
* Clears existing topology and rebuilds from scratch.
|
|
84
109
|
*/
|
|
85
|
-
ingestBounded(rawNodes: any[], rawEdges: any[], size: [number, number]
|
|
110
|
+
ingestBounded(rawNodes: any[], rawEdges: any[], size: [number, number], options?: {
|
|
111
|
+
deferLayout?: boolean;
|
|
112
|
+
}): void;
|
|
113
|
+
/**
|
|
114
|
+
* Apply worker-computed force positions through the normal layout finalizer.
|
|
115
|
+
* The force plugin still resolves edge endpoints, clamps bounds, records
|
|
116
|
+
* topology diffs, snapshots positions, and prepares transitions; it only
|
|
117
|
+
* skips the expensive simulation itself.
|
|
118
|
+
*/
|
|
119
|
+
applyForceLayoutPositions(positions: Record<string, {
|
|
120
|
+
x: number;
|
|
121
|
+
y: number;
|
|
122
|
+
}>, size: [number, number]): void;
|
|
86
123
|
/**
|
|
87
124
|
* Unique key for an edge (same as TopologyStore).
|
|
88
125
|
*/
|
|
@@ -108,6 +145,30 @@ export declare class NetworkPipelineStore {
|
|
|
108
145
|
/**
|
|
109
146
|
* Build the scene graph from current layout positions.
|
|
110
147
|
*/
|
|
148
|
+
/** Update the selection the layout reads at the next `buildScene`, without
|
|
149
|
+
* triggering a rebuild. The frame calls this on selection change; whether it
|
|
150
|
+
* then repaints (restyle) or rebuilds is the frame's decision. */
|
|
151
|
+
setLayoutSelection(selection: CustomLayoutSelection | null): void;
|
|
152
|
+
/** Snapshot each mark's as-emitted style so {@link restyleScene} can re-apply
|
|
153
|
+
* patches from the original rather than compounding. */
|
|
154
|
+
private snapshotBaseStyles;
|
|
155
|
+
/**
|
|
156
|
+
* Re-apply the custom layout's `restyle`/`restyleEdge` to the existing scene
|
|
157
|
+
* for `selection`, mutating styles **in place** off each mark's base style.
|
|
158
|
+
* Does NOT bump the scene revision — positions are unchanged, so the quadtree
|
|
159
|
+
* stays valid and no relayout/repack happens. The frame repaints the canvas
|
|
160
|
+
* after calling this. No-op when the layout supplied no restyle callbacks.
|
|
161
|
+
*/
|
|
162
|
+
/**
|
|
163
|
+
* "Styles changed, repaint the data canvas without rebuilding the scene."
|
|
164
|
+
* Set by {@link restyleScene}; consumed once per frame by the paint loop.
|
|
165
|
+
* Deliberately separate from `_sceneNodesRevision` (the quadtree-invalidation
|
|
166
|
+
* counter) so a style-only selection change repaints without a relayout.
|
|
167
|
+
*/
|
|
168
|
+
private _stylePaintPending;
|
|
169
|
+
/** Consume the style-only repaint signal (see {@link _stylePaintPending}). */
|
|
170
|
+
consumeStylePaintPending(): boolean;
|
|
171
|
+
restyleScene(selection: CustomLayoutSelection | null): void;
|
|
111
172
|
buildScene(size: [number, number]): void;
|
|
112
173
|
/**
|
|
113
174
|
* Lazily (re)build the circle-node spatial index. Only built when the scene
|
|
@@ -166,37 +227,13 @@ export declare class NetworkPipelineStore {
|
|
|
166
227
|
private restorePreviousPositions;
|
|
167
228
|
private snapToTargets;
|
|
168
229
|
private updateEdgeBezier;
|
|
169
|
-
private buildStandardBezier;
|
|
170
|
-
private buildCircularBezier;
|
|
171
230
|
rebuildAllBeziers(): void;
|
|
172
|
-
/**
|
|
173
|
-
* Apply pulse glow to scene nodes/edges based on their creation timestamps.
|
|
174
|
-
*/
|
|
175
231
|
applyPulse(now: number): void;
|
|
176
|
-
/**
|
|
177
|
-
* Apply decay opacity to scene nodes based on topology age order.
|
|
178
|
-
* Older nodes (created earlier) are more faded.
|
|
179
|
-
*/
|
|
180
232
|
applyDecay(): void;
|
|
181
|
-
/**
|
|
182
|
-
* Apply topology diff highlight — newly added nodes glow briefly.
|
|
183
|
-
* Duration: 2 seconds from lastTopologyChangeTime.
|
|
184
|
-
*/
|
|
185
233
|
applyTopologyDiff(now: number): void;
|
|
186
|
-
/** Whether there is an active topology diff animation */
|
|
187
234
|
get hasActiveTopologyDiff(): boolean;
|
|
188
|
-
/**
|
|
189
|
-
* Apply threshold alerting to scene nodes.
|
|
190
|
-
* Overrides fill color and adds pulse for nodes exceeding thresholds.
|
|
191
|
-
*/
|
|
192
235
|
applyThresholds(now: number): void;
|
|
193
|
-
/**
|
|
194
|
-
* Whether there are active threshold alerts on any node.
|
|
195
|
-
*/
|
|
196
236
|
get hasActiveThresholds(): boolean;
|
|
197
|
-
/**
|
|
198
|
-
* Whether there are active pulse animations (recent ingests within pulse duration).
|
|
199
|
-
*/
|
|
200
237
|
get hasActivePulses(): boolean;
|
|
201
238
|
getLayoutData(): {
|
|
202
239
|
nodes: RealtimeNode[];
|
|
@@ -5,6 +5,7 @@ import type { NetworkLabel } from "./networkTypes";
|
|
|
5
5
|
import type { LegendGroup, GradientLegendConfig, LegendLayout } from "../types/legendTypes";
|
|
6
6
|
import { type AutoPlaceAnnotations } from "../recipes/annotationLayout";
|
|
7
7
|
import type { AnnotationContext } from "../realtime/types";
|
|
8
|
+
import { type GlyphDef } from "./glyphDef";
|
|
8
9
|
type AnnotationAnchorNode = {
|
|
9
10
|
type: string;
|
|
10
11
|
datum: Datum | null;
|
|
@@ -19,10 +20,24 @@ type AnnotationAnchorNode = {
|
|
|
19
20
|
r?: number;
|
|
20
21
|
/** Arc nodes (chord, radial) carry an outer radius. */
|
|
21
22
|
outerR?: number;
|
|
23
|
+
/** Symbol nodes carry a d3-symbol area; glyph nodes reuse `size` as rendered height. */
|
|
24
|
+
size?: number;
|
|
25
|
+
/** Glyph nodes (the composite-pictogram channel) carry a definition. */
|
|
26
|
+
glyph?: GlyphDef;
|
|
22
27
|
};
|
|
23
28
|
type NetworkAnnotationContext = AnnotationContext & {
|
|
24
29
|
sceneNodes?: AnnotationAnchorNode[];
|
|
25
30
|
};
|
|
31
|
+
/** Anchor id for a scene node — used to resolve `pointId`-anchored annotations
|
|
32
|
+
* to a mark a layout emitted (incl. custom-layout marks). Exported for tests. */
|
|
33
|
+
export declare function nodeAnchorId(node: AnnotationAnchorNode): string | undefined;
|
|
34
|
+
/** Center + effective radius of a scene node for annotation anchoring. Exported
|
|
35
|
+
* for tests. */
|
|
36
|
+
export declare function nodeCenter(node: AnnotationAnchorNode): {
|
|
37
|
+
x: number;
|
|
38
|
+
y: number;
|
|
39
|
+
r: number;
|
|
40
|
+
} | null;
|
|
26
41
|
export interface NetworkSVGOverlayProps {
|
|
27
42
|
width: number;
|
|
28
43
|
height: number;
|
|
@@ -16,16 +16,22 @@ 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";
|
|
24
|
+
import type { CustomLayoutSelection } from "./customLayoutSelection";
|
|
25
|
+
import { type CustomLayoutFailureDiagnostic } from "./customLayoutFailure";
|
|
26
|
+
import type { UpdateResult } from "./pipelineUpdateContract";
|
|
23
27
|
export declare class OrdinalPipelineStore {
|
|
24
28
|
private buffer;
|
|
25
29
|
private rExtent;
|
|
26
30
|
/** Per-accessor extents for multiAxis mode */
|
|
27
31
|
private rExtents;
|
|
28
32
|
private config;
|
|
33
|
+
private windowSizeWarned;
|
|
34
|
+
private updateResults;
|
|
29
35
|
private getO;
|
|
30
36
|
private getR;
|
|
31
37
|
/** All resolved rAccessors (length > 1 when multiAxis) */
|
|
@@ -33,6 +39,7 @@ export declare class OrdinalPipelineStore {
|
|
|
33
39
|
private getStack;
|
|
34
40
|
private getGroup;
|
|
35
41
|
private getColor;
|
|
42
|
+
private getSymbol;
|
|
36
43
|
private getConnector;
|
|
37
44
|
private getDataId;
|
|
38
45
|
/** Discovered categories in insertion order */
|
|
@@ -55,10 +62,27 @@ export declare class OrdinalPipelineStore {
|
|
|
55
62
|
columns: Record<string, OrdinalColumn>;
|
|
56
63
|
/** Overlays returned from customLayout (consumed by StreamOrdinalFrame). */
|
|
57
64
|
customLayoutOverlays: import("react").ReactNode;
|
|
65
|
+
/** Most recent custom layout result for host readback (`getCustomLayout()`).
|
|
66
|
+
* Null before the first layout or without a custom layout. A failed rerun
|
|
67
|
+
* keeps the last successful result while its scene remains recoverable. */
|
|
68
|
+
lastCustomLayoutResult: OrdinalLayoutResult | null;
|
|
69
|
+
/** Latest custom-layout failure for frame-handle readback. */
|
|
70
|
+
lastCustomLayoutFailure: CustomLayoutFailureDiagnostic | null;
|
|
71
|
+
/** Lets `computeScene` retain a prior scene without mutating it after an
|
|
72
|
+
* exception from `buildSceneNodes`. */
|
|
73
|
+
private _customLayoutFailedThisBuild;
|
|
74
|
+
private _customLayoutDiagnosticsWarned;
|
|
75
|
+
/** Per-frame restyle callback from the custom layout result (see OrdinalLayoutResult.restyle). */
|
|
76
|
+
private _customRestyle;
|
|
77
|
+
/** True when the active custom layout supplied a `restyle`. */
|
|
78
|
+
hasCustomRestyle: boolean;
|
|
79
|
+
/** Base (as-emitted) style per node, so restyle passes don't compound. */
|
|
80
|
+
private _baseStyles;
|
|
58
81
|
version: number;
|
|
59
82
|
/** Bumped whenever the buffer is mutated. Used to invalidate per-frame caches. */
|
|
60
83
|
private _dataVersion;
|
|
61
|
-
|
|
84
|
+
/** Materialized source data, cached for pulse/decay animation frames. */
|
|
85
|
+
private _bufferArrayCache;
|
|
62
86
|
private _pointQuadtree;
|
|
63
87
|
/** Largest visual point radius in the current scene. */
|
|
64
88
|
private _maxPointRadius;
|
|
@@ -68,7 +92,14 @@ export declare class OrdinalPipelineStore {
|
|
|
68
92
|
private _categoryIndexCache;
|
|
69
93
|
private _hasRenderedOnce;
|
|
70
94
|
constructor(config: OrdinalPipelineConfig);
|
|
95
|
+
/**
|
|
96
|
+
* Keep the optional pulse timestamp ring in lockstep with the datum ring.
|
|
97
|
+
* Enabling pulse after mount must seed timestamps for retained rows; an
|
|
98
|
+
* empty ring would associate later timestamps with the wrong datum index.
|
|
99
|
+
*/
|
|
100
|
+
private syncPulseTimestampBuffer;
|
|
71
101
|
ingest(changeset: Changeset): boolean;
|
|
102
|
+
ingestWithResult(changeset: Changeset): UpdateResult;
|
|
72
103
|
private pushValueExtent;
|
|
73
104
|
private evictValueExtent;
|
|
74
105
|
/** For timeline type: resolve rAccessor as a [start, end] pair */
|
|
@@ -110,6 +141,12 @@ export declare class OrdinalPipelineStore {
|
|
|
110
141
|
get maxPointRadius(): number;
|
|
111
142
|
private applyDecay;
|
|
112
143
|
private applyPulse;
|
|
144
|
+
/**
|
|
145
|
+
* Refresh only pulse-derived fields on the existing scene. This deliberately
|
|
146
|
+
* avoids a scene/layout rebuild on every rAF pulse tick.
|
|
147
|
+
*/
|
|
148
|
+
refreshPulse(now: number): boolean;
|
|
149
|
+
hasActivePulsesAt(now: number): boolean;
|
|
113
150
|
get hasActivePulses(): boolean;
|
|
114
151
|
/** Synthesize a zero-state prevPositionMap for animated intro (first render). */
|
|
115
152
|
private synthesizeIntroPositions;
|
|
@@ -127,7 +164,15 @@ export declare class OrdinalPipelineStore {
|
|
|
127
164
|
* after the server already painted the chart.
|
|
128
165
|
*/
|
|
129
166
|
cancelIntroAnimation(): void;
|
|
167
|
+
/**
|
|
168
|
+
* Materialize the ring buffer at most once per data version. Pulse decay
|
|
169
|
+
* ticks reuse this array and the datum/category index caches rather than
|
|
170
|
+
* allocating a fresh copy at animation-frame frequency.
|
|
171
|
+
*/
|
|
172
|
+
private getBufferArray;
|
|
130
173
|
getData(): Datum[];
|
|
174
|
+
/** Most recent additive update result for revision-aware hosts and tests. */
|
|
175
|
+
getLastUpdateResult(): UpdateResult;
|
|
131
176
|
/**
|
|
132
177
|
* Remove data items by ID. Requires dataIdAccessor to be configured.
|
|
133
178
|
* Returns the removed items. Marks the store dirty for scene rebuild.
|
|
@@ -142,5 +187,22 @@ export declare class OrdinalPipelineStore {
|
|
|
142
187
|
get size(): number;
|
|
143
188
|
getOAccessor(): (d: Datum) => string;
|
|
144
189
|
getRAccessor(): (d: Datum) => number;
|
|
190
|
+
/** Update the selection the layout reads at the next rebuild, without one. */
|
|
191
|
+
setLayoutSelection(selection: CustomLayoutSelection | null): void;
|
|
192
|
+
private applyCustomRestyle;
|
|
193
|
+
/**
|
|
194
|
+
* Re-apply the custom layout's `restyle` to the existing scene for
|
|
195
|
+
* `selection`, off each node's base style — no relayout, no quadtree rebuild.
|
|
196
|
+
* No-op when the layout supplied no `restyle`.
|
|
197
|
+
*/
|
|
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;
|
|
145
206
|
updateConfig(config: Partial<OrdinalPipelineConfig>): void;
|
|
207
|
+
updateConfigWithResult(config: Partial<OrdinalPipelineConfig>): UpdateResult;
|
|
146
208
|
}
|