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
|
@@ -2,10 +2,12 @@ import type { ReactNode } from "react";
|
|
|
2
2
|
import type { OnObservationCallback } from "../store/ObservationStore";
|
|
3
3
|
import type { HoverData, AnnotationContext } from "../realtime/types";
|
|
4
4
|
import type { LegendGroup, LegendLayout } from "../types/legendTypes";
|
|
5
|
-
import type { Style, DecayConfig, PulseConfig, TransitionConfig, StalenessConfig, ThemeSemanticColors, SceneDatum } from "./types";
|
|
5
|
+
import type { Style, DecayConfig, PulseConfig, TransitionConfig, StalenessConfig, ThemeSemanticColors, SceneDatum, SceneAccessibilityMetadata } from "./types";
|
|
6
6
|
import type { AnimateProp } from "./pipelineTransitionUtils";
|
|
7
7
|
import type { Datum } from "../charts/shared/datumTypes";
|
|
8
8
|
import type { AutoPlaceAnnotations } from "../recipes/annotationLayout";
|
|
9
|
+
import type { NetworkSymbolName } from "./symbolPath";
|
|
10
|
+
import type { GlyphDef } from "./glyphDef";
|
|
9
11
|
export interface TensionConfig {
|
|
10
12
|
weightChange: number;
|
|
11
13
|
newEdge: number;
|
|
@@ -51,6 +53,8 @@ export interface RealtimeNode {
|
|
|
51
53
|
__hierarchyNode?: unknown;
|
|
52
54
|
/** @internal Circle-pack layout radius. Set by `hierarchyLayoutPlugin`. */
|
|
53
55
|
__radius?: number;
|
|
56
|
+
/** @internal Pre-resolved force-layout radius used by worker snapshots. */
|
|
57
|
+
__forceRadius?: number;
|
|
54
58
|
/**
|
|
55
59
|
* @internal Chord-layout extension. Carries the start/end angles
|
|
56
60
|
* for the arc segment representing this node, computed by
|
|
@@ -181,7 +185,7 @@ export interface RealtimeNetworkFrameProps {
|
|
|
181
185
|
showParticles?: boolean;
|
|
182
186
|
particleStyle?: ParticleStyle;
|
|
183
187
|
colorBy?: string | ((d: RealtimeNode) => string);
|
|
184
|
-
colorScheme?: string | string[]
|
|
188
|
+
colorScheme?: string | string[] | Record<string, string>;
|
|
185
189
|
edgeColorBy?: "source" | "target" | ((d: RealtimeEdge) => string);
|
|
186
190
|
edgeOpacity?: number;
|
|
187
191
|
nodeLabel?: string | ((d: RealtimeNode) => string);
|
|
@@ -204,6 +208,8 @@ export interface NetworkCircleNode {
|
|
|
204
208
|
r: number;
|
|
205
209
|
style: Style;
|
|
206
210
|
datum: SceneDatum;
|
|
211
|
+
accessibleDatum?: SceneAccessibilityMetadata["accessibleDatum"];
|
|
212
|
+
accessibility?: SceneAccessibilityMetadata["accessibility"];
|
|
207
213
|
id?: string;
|
|
208
214
|
label?: string;
|
|
209
215
|
depth?: number;
|
|
@@ -220,6 +226,8 @@ export interface NetworkRectNode {
|
|
|
220
226
|
h: number;
|
|
221
227
|
style: Style;
|
|
222
228
|
datum: SceneDatum;
|
|
229
|
+
accessibleDatum?: SceneAccessibilityMetadata["accessibleDatum"];
|
|
230
|
+
accessibility?: SceneAccessibilityMetadata["accessibility"];
|
|
223
231
|
id?: string;
|
|
224
232
|
label?: string;
|
|
225
233
|
depth?: number;
|
|
@@ -241,12 +249,82 @@ export interface NetworkArcNode {
|
|
|
241
249
|
endAngle: number;
|
|
242
250
|
style: Style;
|
|
243
251
|
datum: SceneDatum;
|
|
252
|
+
accessibleDatum?: SceneAccessibilityMetadata["accessibleDatum"];
|
|
253
|
+
accessibility?: SceneAccessibilityMetadata["accessibility"];
|
|
244
254
|
id?: string;
|
|
245
255
|
label?: string;
|
|
246
256
|
_pulseIntensity?: number;
|
|
247
257
|
_pulseColor?: string;
|
|
248
258
|
_pulseGlowRadius?: number;
|
|
249
259
|
}
|
|
260
|
+
/**
|
|
261
|
+
* Symbol node — a glyph rendered from a `d3-shape` symbol path (or a custom
|
|
262
|
+
* path). The per-datum shape channel: recipes that encode a categorical field
|
|
263
|
+
* as marker shape (e.g. `packedClusterMatrix`) emit these. Hit-tests as a
|
|
264
|
+
* circle of the symbol's effective radius; renders on canvas and in SVG/SSR.
|
|
265
|
+
*/
|
|
266
|
+
export interface NetworkSymbolNode {
|
|
267
|
+
type: "symbol";
|
|
268
|
+
cx: number;
|
|
269
|
+
cy: number;
|
|
270
|
+
/** d3-symbol area in px² — drives the glyph's drawn size. */
|
|
271
|
+
size: number;
|
|
272
|
+
/** Named shape. Ignored when `path` is set. @default "circle" */
|
|
273
|
+
symbolType?: NetworkSymbolName;
|
|
274
|
+
/** Pre-built SVG path string, origin-centered — overrides `symbolType`. */
|
|
275
|
+
path?: string;
|
|
276
|
+
/** Rotation in radians about (cx, cy). */
|
|
277
|
+
rotation?: number;
|
|
278
|
+
style: Style;
|
|
279
|
+
datum: SceneDatum;
|
|
280
|
+
accessibleDatum?: SceneAccessibilityMetadata["accessibleDatum"];
|
|
281
|
+
accessibility?: SceneAccessibilityMetadata["accessibility"];
|
|
282
|
+
id?: string;
|
|
283
|
+
label?: string;
|
|
284
|
+
depth?: number;
|
|
285
|
+
_pulseIntensity?: number;
|
|
286
|
+
_pulseColor?: string;
|
|
287
|
+
_pulseGlowRadius?: number;
|
|
288
|
+
}
|
|
289
|
+
/**
|
|
290
|
+
* Glyph node — the composite-pictogram channel for network scenes: a
|
|
291
|
+
* multi-part `GlyphDef` stamped at (cx, cy) with per-node `color`/`accent`
|
|
292
|
+
* paints and optional partial fill. The network sibling of the XY/ordinal/geo
|
|
293
|
+
* `GlyphSceneNode`.
|
|
294
|
+
*/
|
|
295
|
+
export interface NetworkGlyphNode {
|
|
296
|
+
type: "glyph";
|
|
297
|
+
cx: number;
|
|
298
|
+
cy: number;
|
|
299
|
+
/** Rendered height in px — width follows the definition's viewBox aspect. */
|
|
300
|
+
size: number;
|
|
301
|
+
/** The multi-part pictogram definition to stamp. */
|
|
302
|
+
glyph: GlyphDef;
|
|
303
|
+
/** Primary paint for parts declaring `"color"`. Falls back to `style.fill`. */
|
|
304
|
+
color?: string;
|
|
305
|
+
/** Accent paint for parts declaring `"accent"`. */
|
|
306
|
+
accent?: string;
|
|
307
|
+
/** Partial fill 0–1. @default 1 */
|
|
308
|
+
fraction?: number;
|
|
309
|
+
/** Where the partial fill begins, 0–1. @default 0 */
|
|
310
|
+
fractionStart?: number;
|
|
311
|
+
/** Partial-fill axis. @default "horizontal" */
|
|
312
|
+
fractionDirection?: "horizontal" | "vertical";
|
|
313
|
+
/** Ghost paint drawn at full extent beneath a partial fill. */
|
|
314
|
+
ghostColor?: string;
|
|
315
|
+
/** Rotation in radians about (cx, cy). */
|
|
316
|
+
rotation?: number;
|
|
317
|
+
style: Style;
|
|
318
|
+
datum: SceneDatum;
|
|
319
|
+
accessibleDatum?: SceneAccessibilityMetadata["accessibleDatum"];
|
|
320
|
+
accessibility?: SceneAccessibilityMetadata["accessibility"];
|
|
321
|
+
id?: string;
|
|
322
|
+
label?: string;
|
|
323
|
+
depth?: number;
|
|
324
|
+
_pulseIntensity?: number;
|
|
325
|
+
_pulseColor?: string;
|
|
326
|
+
_pulseGlowRadius?: number;
|
|
327
|
+
}
|
|
250
328
|
/** Line edge — used by force */
|
|
251
329
|
export interface NetworkLineEdge {
|
|
252
330
|
type: "line";
|
|
@@ -305,7 +383,7 @@ export interface NetworkCurvedEdge {
|
|
|
305
383
|
_cachedPath2D?: Path2D;
|
|
306
384
|
_cachedPath2DSource?: string;
|
|
307
385
|
}
|
|
308
|
-
export type NetworkSceneNode = NetworkCircleNode | NetworkRectNode | NetworkArcNode;
|
|
386
|
+
export type NetworkSceneNode = NetworkCircleNode | NetworkRectNode | NetworkArcNode | NetworkSymbolNode | NetworkGlyphNode;
|
|
309
387
|
export type NetworkSceneEdge = NetworkLineEdge | NetworkBezierEdge | NetworkRibbonEdge | NetworkCurvedEdge;
|
|
310
388
|
/** Label data for the SVG overlay */
|
|
311
389
|
export interface NetworkLabel {
|
|
@@ -382,6 +460,8 @@ export interface NetworkPipelineConfig {
|
|
|
382
460
|
edgeSort?: (a: unknown, b: unknown) => number;
|
|
383
461
|
iterations?: number;
|
|
384
462
|
forceStrength?: number;
|
|
463
|
+
/** @internal Skip simulation after worker-computed positions are applied. */
|
|
464
|
+
__skipForceSimulation?: boolean;
|
|
385
465
|
padAngle?: number;
|
|
386
466
|
groupWidth?: number;
|
|
387
467
|
sortGroups?: (a: unknown, b: unknown) => number;
|
|
@@ -398,7 +478,7 @@ export interface NetworkPipelineConfig {
|
|
|
398
478
|
showLabels?: boolean;
|
|
399
479
|
labelMode?: "leaf" | "parent" | "all";
|
|
400
480
|
colorBy?: string | ((d: Datum) => string | number);
|
|
401
|
-
colorScheme?: string | string[]
|
|
481
|
+
colorScheme?: string | string[] | Record<string, string>;
|
|
402
482
|
/** Theme categorical palette — used as fallback when colorScheme is not an explicit array */
|
|
403
483
|
themeCategorical?: string[];
|
|
404
484
|
/** Theme-resolved semantic role colors — default fallback before hardcoded hex. See `ThemeSemanticColors` in ./types. */
|
|
@@ -451,6 +531,8 @@ export interface NetworkPipelineConfig {
|
|
|
451
531
|
/** When provided, replaces both layout dispatch and scene building.
|
|
452
532
|
* Receives raw nodes/edges and returns positioned scene primitives. */
|
|
453
533
|
customNetworkLayout?: import("./networkCustomLayout").NetworkCustomLayout;
|
|
534
|
+
/** Called when `customNetworkLayout` throws. */
|
|
535
|
+
onLayoutError?: (diagnostic: import("./customLayoutFailure").CustomLayoutFailureDiagnostic) => void;
|
|
454
536
|
/** User-supplied config blob threaded through to NetworkLayoutContext.config. */
|
|
455
537
|
layoutConfig?: object;
|
|
456
538
|
/** Resolved shared-selection predicate, surfaced to a custom layout as
|
|
@@ -480,6 +562,12 @@ export interface StreamNetworkFrameProps<T = Datum> {
|
|
|
480
562
|
nodeWidth?: number;
|
|
481
563
|
iterations?: number;
|
|
482
564
|
forceStrength?: number;
|
|
565
|
+
/** Execute force layout synchronously, in a worker, or choose by graph cost. */
|
|
566
|
+
layoutExecution?: "auto" | "worker" | "sync";
|
|
567
|
+
/** Content displayed while an internally-managed worker layout is pending. */
|
|
568
|
+
layoutLoadingContent?: ReactNode | false;
|
|
569
|
+
/** Receives internally-managed force-layout lifecycle changes. */
|
|
570
|
+
onLayoutStateChange?: (state: "pending" | "ready" | "error") => void;
|
|
483
571
|
padAngle?: number;
|
|
484
572
|
groupWidth?: number;
|
|
485
573
|
sortGroups?: (a: unknown, b: unknown) => number;
|
|
@@ -494,7 +582,7 @@ export interface StreamNetworkFrameProps<T = Datum> {
|
|
|
494
582
|
nodeStyle?: (d: Datum) => Datum;
|
|
495
583
|
edgeStyle?: (d: Datum) => Datum;
|
|
496
584
|
colorBy?: string | ((d: Datum) => string | number);
|
|
497
|
-
colorScheme?: string | string[]
|
|
585
|
+
colorScheme?: string | string[] | Record<string, string>;
|
|
498
586
|
edgeColorBy?: "source" | "target" | "gradient" | ((d: Datum) => string);
|
|
499
587
|
edgeOpacity?: number;
|
|
500
588
|
colorByDepth?: boolean;
|
|
@@ -569,6 +657,8 @@ export interface StreamNetworkFrameProps<T = Datum> {
|
|
|
569
657
|
* Receives raw nodes/edges + dimensions/theme, returns positioned scene
|
|
570
658
|
* primitives. See `semiotic/recipes` for reference layouts (flextree, dagre). */
|
|
571
659
|
customNetworkLayout?: import("./networkCustomLayout").NetworkCustomLayout;
|
|
660
|
+
/** Called when `customNetworkLayout` throws. */
|
|
661
|
+
onLayoutError?: (diagnostic: import("./customLayoutFailure").CustomLayoutFailureDiagnostic) => void;
|
|
572
662
|
/** User-supplied config blob threaded through to NetworkLayoutContext.config. */
|
|
573
663
|
layoutConfig?: object;
|
|
574
664
|
/** Resolved shared-selection predicate, surfaced to a custom layout as
|
|
@@ -600,5 +690,14 @@ export interface StreamNetworkFrameHandle {
|
|
|
600
690
|
};
|
|
601
691
|
relayout(): void;
|
|
602
692
|
getTension(): number;
|
|
693
|
+
/** The most recent custom layout result (sceneNodes/sceneEdges/overlays as
|
|
694
|
+
* returned by `customNetworkLayout`) — host readback so pages that need the
|
|
695
|
+
* computed placement don't re-run the layout. Null before the first layout
|
|
696
|
+
* or when no custom layout is configured. A failed retry retains the prior
|
|
697
|
+
* good result; inspect `getLayoutFailure()` to distinguish recovery. */
|
|
698
|
+
getCustomLayout(): import("./networkCustomLayout").NetworkLayoutResult | null;
|
|
699
|
+
/** The latest custom-layout failure, if any. Cleared by a successful layout,
|
|
700
|
+
* removing the custom layout, or `clear()`. */
|
|
701
|
+
getLayoutFailure(): import("./customLayoutFailure").CustomLayoutFailureDiagnostic | null;
|
|
603
702
|
}
|
|
604
703
|
export type NetworkRendererFn = (ctx: CanvasRenderingContext2D, nodes: NetworkSceneNode[], edges: NetworkSceneEdge[], size: [number, number]) => void;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Chart-type → canvas renderer dispatch for StreamOrdinalFrame.
|
|
3
|
+
* Connectors are always included when the chart type builds them into the scene.
|
|
4
|
+
*/
|
|
5
|
+
import type { OrdinalChartType } from "./ordinalTypes";
|
|
6
|
+
export type OrdinalAnyRendererFn = (ctx: CanvasRenderingContext2D, nodes: any[], scales: any, layout: any) => void;
|
|
7
|
+
export declare const ORDINAL_CANVAS_RENDERERS: Record<OrdinalChartType, OrdinalAnyRendererFn[]>;
|
|
@@ -3,7 +3,8 @@ import type { ScaleBand, ScaleLinear } from "d3-scale";
|
|
|
3
3
|
import type { Datum } from "../charts/shared/datumTypes";
|
|
4
4
|
import type { MarginType } from "../types/marginType";
|
|
5
5
|
import type { OrdinalSceneNode, OrdinalScales } from "./ordinalTypes";
|
|
6
|
-
import type { ThemeSemanticColors } from "./types";
|
|
6
|
+
import type { Style, ThemeSemanticColors } from "./types";
|
|
7
|
+
import type { CustomLayoutSelection } from "./customLayoutSelection";
|
|
7
8
|
/**
|
|
8
9
|
* customLayout escape hatch for `StreamOrdinalFrame`.
|
|
9
10
|
*
|
|
@@ -75,10 +76,25 @@ export interface OrdinalLayoutContext<C extends object = Record<string, unknown>
|
|
|
75
76
|
resolveColor: (key: string) => string;
|
|
76
77
|
/** User-supplied config blob threaded through `layoutConfig`. */
|
|
77
78
|
config: C;
|
|
79
|
+
/**
|
|
80
|
+
* Shared-selection projection (from `selection` / `linkedHover`). `null` when
|
|
81
|
+
* unwired. For selection-driven styling without a relayout, use
|
|
82
|
+
* {@link OrdinalLayoutResult.restyle} (canvas) / `useCustomLayoutSelection`
|
|
83
|
+
* (overlays) rather than recomputing geometry here.
|
|
84
|
+
*/
|
|
85
|
+
selection?: CustomLayoutSelection | null;
|
|
78
86
|
}
|
|
79
87
|
export interface OrdinalLayoutResult {
|
|
80
88
|
/** Scene nodes to render. Get hit testing, transitions, decay, SSR for free. */
|
|
81
89
|
nodes?: OrdinalSceneNode[];
|
|
82
90
|
/** SVG overlays composited above the canvas (labels, axis lines, annotations). */
|
|
83
91
|
overlays?: ReactNode;
|
|
92
|
+
/**
|
|
93
|
+
* **Per-frame restyle of canvas marks, without re-positioning.** When present,
|
|
94
|
+
* a selection/hover change re-applies styles to the existing scene nodes +
|
|
95
|
+
* repaints — no relayout, no quadtree rebuild. Return a style patch merged onto
|
|
96
|
+
* the node's *base* style. Providing it opts into the cheap selection path.
|
|
97
|
+
* Pairs with `useCustomLayoutSelection` for the `overlays`.
|
|
98
|
+
*/
|
|
99
|
+
restyle?: (node: OrdinalSceneNode, selection: CustomLayoutSelection | null) => Partial<Style> | void;
|
|
84
100
|
}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { Datum } from "../charts/shared/datumTypes";
|
|
2
|
+
type CategoryAccessor = string | ((datum: Datum) => string) | undefined;
|
|
3
|
+
/** Build the source-data category index used by aggregate pulse marks. */
|
|
4
|
+
export declare function buildOrdinalCategoryIndex(data: readonly Datum[], categoryAccessor: CategoryAccessor): Map<string, number[]>;
|
|
5
|
+
export {};
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Default ordinal hover tooltip for StreamOrdinalFrame.
|
|
3
|
+
* Uses shared `defaultTooltipStyle` for theme CSS-var consistency.
|
|
4
|
+
*/
|
|
5
|
+
import * as React from "react";
|
|
6
|
+
import type { HoverData } from "./ordinalTypes";
|
|
7
|
+
declare function DefaultOrdinalTooltip({ hover }: {
|
|
8
|
+
hover: HoverData;
|
|
9
|
+
}): React.JSX.Element | null;
|
|
10
|
+
export { DefaultOrdinalTooltip };
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Pure ordinal domain + column projection helpers for OrdinalPipelineStore.
|
|
3
|
+
*/
|
|
4
|
+
import type { ScaleBand } from "d3-scale";
|
|
5
|
+
import type { Datum } from "../charts/shared/datumTypes";
|
|
6
|
+
import type { OrdinalColumn, OrdinalLayout, OrdinalPipelineConfig } from "./ordinalTypes";
|
|
7
|
+
export interface OrdinalValueDomainInput {
|
|
8
|
+
data: Datum[];
|
|
9
|
+
chartType: OrdinalPipelineConfig["chartType"];
|
|
10
|
+
projection?: OrdinalPipelineConfig["projection"];
|
|
11
|
+
normalize?: boolean;
|
|
12
|
+
rExtent?: OrdinalPipelineConfig["rExtent"];
|
|
13
|
+
extentPadding?: number;
|
|
14
|
+
baselinePadding?: boolean;
|
|
15
|
+
axisExtent?: OrdinalPipelineConfig["axisExtent"];
|
|
16
|
+
getO: (d: Datum) => string;
|
|
17
|
+
getR: (d: Datum) => number;
|
|
18
|
+
getStack?: (d: Datum) => string;
|
|
19
|
+
/** IncrementalExtent-style [min, max]; Infinity/-Infinity when empty. */
|
|
20
|
+
rawRExtent: [number, number];
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Compute the ordinal value (r) domain from data + chart type rules.
|
|
24
|
+
* Pure: no store mutation; callers supply accessors and raw extent.
|
|
25
|
+
*/
|
|
26
|
+
export declare function computeOrdinalValueDomain(input: OrdinalValueDomainInput): [number, number];
|
|
27
|
+
export interface BuildOrdinalColumnsInput {
|
|
28
|
+
data: Datum[];
|
|
29
|
+
oExtent: string[];
|
|
30
|
+
oScale: ScaleBand<string>;
|
|
31
|
+
projection: string;
|
|
32
|
+
layout: OrdinalLayout;
|
|
33
|
+
dynamicColumnWidth?: OrdinalPipelineConfig["dynamicColumnWidth"];
|
|
34
|
+
getO: (d: Datum) => string;
|
|
35
|
+
getR: (d: Datum) => number;
|
|
36
|
+
}
|
|
37
|
+
/** Project band scale + data into per-category column geometry. */
|
|
38
|
+
export declare function buildOrdinalColumns(input: BuildOrdinalColumnsInput): Record<string, OrdinalColumn>;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { type ChangeSet, type UpdateResult } from "./pipelineUpdateContract";
|
|
2
|
+
type DataChangeKind = Extract<ChangeSet["kind"], "ingest" | "replace" | "remove" | "update" | "clear">;
|
|
3
|
+
/** Result bookkeeping and invalidation policy for the Ordinal store pilot. */
|
|
4
|
+
export declare class OrdinalPipelineUpdateResults {
|
|
5
|
+
private tracker;
|
|
6
|
+
get last(): UpdateResult;
|
|
7
|
+
recordData(kind: DataChangeKind, count?: number): UpdateResult;
|
|
8
|
+
recordNoop(kind: DataChangeKind | "restyle"): UpdateResult;
|
|
9
|
+
recordRestyle(hasCustomRestyle: boolean): UpdateResult;
|
|
10
|
+
recordConfig(keys: readonly string[]): UpdateResult;
|
|
11
|
+
}
|
|
12
|
+
export {};
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { Datum } from "../charts/shared/datumTypes";
|
|
2
|
+
import type { RingBuffer } from "../realtime/RingBuffer";
|
|
3
|
+
import type { OrdinalSceneNode } from "./ordinalTypes";
|
|
4
|
+
import type { PulseConfig } from "./types";
|
|
5
|
+
/**
|
|
6
|
+
* Apply pulse-derived fields to ordinal scene nodes without rebuilding their
|
|
7
|
+
* layout. Wedges aggregate their category's source data; other supported
|
|
8
|
+
* nodes map directly to one source datum.
|
|
9
|
+
*/
|
|
10
|
+
export declare function applyOrdinalPulse(pulse: PulseConfig, nodes: OrdinalSceneNode[], timestampBuffer: RingBuffer<number>, datumIndex: ReadonlyMap<Datum, number>, getCategoryIndices: (category: string) => number[] | undefined, now: number): boolean;
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import type { RingBuffer } from "../realtime/RingBuffer";
|
|
2
|
+
/** Keep a pulse timestamp ring aligned with the retained ordinal data. */
|
|
3
|
+
export declare function syncOrdinalPulseTimestampBuffer<T>(pulseEnabled: boolean, buffer: RingBuffer<T>, timestamps: RingBuffer<number> | null, timestamp: number): RingBuffer<number> | null;
|
|
@@ -10,6 +10,8 @@ export interface OrdinalSceneContext {
|
|
|
10
10
|
getStack?: (d: Datum) => string;
|
|
11
11
|
getGroup?: (d: Datum) => string;
|
|
12
12
|
getColor?: (d: Datum) => string;
|
|
13
|
+
/** Categorical accessor → glyph shape (swarm/dot symbolBy). */
|
|
14
|
+
getSymbol?: (d: Datum) => string;
|
|
13
15
|
getConnector?: (d: Datum) => string;
|
|
14
16
|
getO: (d: Datum) => string;
|
|
15
17
|
multiScales: ScaleLinear<number, number>[];
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { type Quadtree } from "d3-quadtree";
|
|
2
|
+
import type { OrdinalSceneNode } from "./ordinalTypes";
|
|
3
|
+
import type { PointSceneNode } from "./types";
|
|
4
|
+
export interface OrdinalPointSpatialIndex {
|
|
5
|
+
readonly maxRadius: number;
|
|
6
|
+
readonly quadtree: Quadtree<PointSceneNode> | null;
|
|
7
|
+
}
|
|
8
|
+
/** Build the optional point-hit index for large ordinal point scenes. */
|
|
9
|
+
export declare function buildOrdinalPointSpatialIndex(scene: readonly OrdinalSceneNode[]): OrdinalPointSpatialIndex;
|
|
@@ -2,7 +2,8 @@ import type { ReactNode } from "react";
|
|
|
2
2
|
import type { ScaleLinear, ScaleBand } from "d3-scale";
|
|
3
3
|
import type { WindowMode, HoverAnnotationConfig, HoverData, AnnotationContext } from "../realtime/types";
|
|
4
4
|
import type { AutoPlaceAnnotations } from "../recipes/annotationLayout";
|
|
5
|
-
import type {
|
|
5
|
+
import type { SymbolName } from "./symbolPath";
|
|
6
|
+
import type { Style, SceneDatum, DecayConfig, PulseConfig, TransitionConfig, StalenessConfig, ThemeSemanticColors, FrameGraphicsProp, SceneAccessibilityMetadata } from "./types";
|
|
6
7
|
import type { AnimateProp } from "./pipelineTransitionUtils";
|
|
7
8
|
import type { GradientLegendConfig, LegendGroup, LegendLayout } from "../types/legendTypes";
|
|
8
9
|
import type { Datum } from "../charts/shared/datumTypes";
|
|
@@ -53,6 +54,8 @@ export interface WedgeSceneNode {
|
|
|
53
54
|
};
|
|
54
55
|
style: Style;
|
|
55
56
|
datum: SceneDatum;
|
|
57
|
+
accessibleDatum?: SceneAccessibilityMetadata["accessibleDatum"];
|
|
58
|
+
accessibility?: SceneAccessibilityMetadata["accessibility"];
|
|
56
59
|
category?: string;
|
|
57
60
|
_pulseIntensity?: number;
|
|
58
61
|
_pulseColor?: string;
|
|
@@ -162,9 +165,9 @@ export interface TrapezoidSceneNode {
|
|
|
162
165
|
_targetOpacity?: number;
|
|
163
166
|
_transitionKey?: string;
|
|
164
167
|
}
|
|
165
|
-
export type { Style, PointSceneNode, RectSceneNode } from "./types";
|
|
166
|
-
import type { PointSceneNode, RectSceneNode } from "./types";
|
|
167
|
-
export type OrdinalSceneNode = RectSceneNode | PointSceneNode | WedgeSceneNode | BoxplotSceneNode | ViolinSceneNode | ConnectorSceneNode | TrapezoidSceneNode;
|
|
168
|
+
export type { Style, PointSceneNode, RectSceneNode, SymbolSceneNode, GlyphSceneNode } from "./types";
|
|
169
|
+
import type { PointSceneNode, RectSceneNode, SymbolSceneNode, GlyphSceneNode } from "./types";
|
|
170
|
+
export type OrdinalSceneNode = RectSceneNode | PointSceneNode | SymbolSceneNode | GlyphSceneNode | WedgeSceneNode | BoxplotSceneNode | ViolinSceneNode | ConnectorSceneNode | TrapezoidSceneNode;
|
|
168
171
|
export interface OrdinalColumn {
|
|
169
172
|
name: string;
|
|
170
173
|
x: number;
|
|
@@ -193,6 +196,10 @@ export interface OrdinalPipelineConfig {
|
|
|
193
196
|
categoryAccessor?: string | ((d: Datum) => string);
|
|
194
197
|
valueAccessor?: string | ((d: Datum) => number) | Array<string | ((d: Datum) => number)>;
|
|
195
198
|
colorAccessor?: string | ((d: Datum) => string);
|
|
199
|
+
/** Categorical accessor → glyph shape (swarm/dot). Emits SymbolSceneNodes. */
|
|
200
|
+
symbolAccessor?: string | ((d: Datum) => string);
|
|
201
|
+
/** Explicit `{category → shape}` map; unmapped categories auto-assign. */
|
|
202
|
+
symbolMap?: Record<string, SymbolName>;
|
|
196
203
|
stackBy?: string | ((d: Datum) => string);
|
|
197
204
|
groupBy?: string | ((d: Datum) => string);
|
|
198
205
|
timeAccessor?: string | ((d: Datum) => number);
|
|
@@ -200,6 +207,13 @@ export interface OrdinalPipelineConfig {
|
|
|
200
207
|
oAccessor?: string | ((d: Datum) => string);
|
|
201
208
|
/** @deprecated Use valueAccessor */
|
|
202
209
|
rAccessor?: string | ((d: Datum) => number) | Array<string | ((d: Datum) => number)>;
|
|
210
|
+
/**
|
|
211
|
+
* Escape hatch for a *stable* function accessor whose captured semantics
|
|
212
|
+
* change without its identity changing. Accessor equality is identity-based,
|
|
213
|
+
* so such a change is otherwise invisible. Bump this number to force the
|
|
214
|
+
* store to re-resolve accessors, rebuild the category domain, and reset value
|
|
215
|
+
* extents. Prefer changing the accessor identity where you can. */
|
|
216
|
+
accessorRevision?: number;
|
|
203
217
|
multiAxis?: boolean;
|
|
204
218
|
rExtent?: [number?, number?];
|
|
205
219
|
oExtent?: string[];
|
|
@@ -249,7 +263,7 @@ export interface OrdinalPipelineConfig {
|
|
|
249
263
|
dynamicColumnWidth?: string | ((data: Datum[]) => number);
|
|
250
264
|
pieceStyle?: (d: Datum, category?: string) => Style;
|
|
251
265
|
summaryStyle?: (d: Datum, category?: string) => Style;
|
|
252
|
-
colorScheme?: string | string[]
|
|
266
|
+
colorScheme?: string | string[] | Record<string, string>;
|
|
253
267
|
themeCategorical?: string[];
|
|
254
268
|
/** Theme-resolved semantic role colors — default fallback before hardcoded hex. See `ThemeSemanticColors` in ./types. */
|
|
255
269
|
themeSemantic?: ThemeSemanticColors;
|
|
@@ -270,11 +284,16 @@ export interface OrdinalPipelineConfig {
|
|
|
270
284
|
* Receives an OrdinalLayoutContext (scales, dimensions, theme,
|
|
271
285
|
* resolveColor) and returns scene nodes plus optional overlays. */
|
|
272
286
|
customLayout?: import("./ordinalCustomLayout").OrdinalCustomLayout;
|
|
287
|
+
/** Called when `customLayout` throws. */
|
|
288
|
+
onLayoutError?: (diagnostic: import("./customLayoutFailure").CustomLayoutFailureDiagnostic) => void;
|
|
273
289
|
/** User-supplied config blob threaded through to OrdinalLayoutContext.config. */
|
|
274
290
|
layoutConfig?: object;
|
|
275
291
|
/** Resolved margin — passed through so OrdinalLayoutContext.dimensions.margin
|
|
276
292
|
* reflects what the frame actually used. */
|
|
277
293
|
layoutMargin?: import("../types/marginType").MarginType;
|
|
294
|
+
/** Resolved shared selection projected into OrdinalLayoutContext.selection.
|
|
295
|
+
* Owned by a dedicated frame effect (kept off the rebuild path). */
|
|
296
|
+
layoutSelection?: import("./customLayoutSelection").CustomLayoutSelection | null;
|
|
278
297
|
}
|
|
279
298
|
export interface StreamOrdinalFrameProps<T = Datum> {
|
|
280
299
|
chartType: OrdinalChartType;
|
|
@@ -285,6 +304,10 @@ export interface StreamOrdinalFrameProps<T = Datum> {
|
|
|
285
304
|
/** Value field — the quantitative dimension (replaces rAccessor). Can be array for multiAxis. */
|
|
286
305
|
valueAccessor?: string | ((d: T) => number) | Array<string | ((d: T) => number)>;
|
|
287
306
|
colorAccessor?: string | ((d: T) => string);
|
|
307
|
+
/** Categorical accessor → glyph shape (swarm/dot). */
|
|
308
|
+
symbolAccessor?: string | ((d: T) => string);
|
|
309
|
+
/** Explicit `{category → shape}` map for `symbolAccessor`; unmapped auto-assign. */
|
|
310
|
+
symbolMap?: Record<string, SymbolName>;
|
|
288
311
|
stackBy?: string | ((d: T) => string);
|
|
289
312
|
groupBy?: string | ((d: T) => string);
|
|
290
313
|
timeAccessor?: string | ((d: T) => number);
|
|
@@ -292,6 +315,12 @@ export interface StreamOrdinalFrameProps<T = Datum> {
|
|
|
292
315
|
oAccessor?: string | ((d: T) => string);
|
|
293
316
|
/** @deprecated Use valueAccessor instead */
|
|
294
317
|
rAccessor?: string | ((d: T) => number) | Array<string | ((d: T) => number)>;
|
|
318
|
+
/**
|
|
319
|
+
* Force category/value re-derivation when a stable accessor's external
|
|
320
|
+
* semantics changed without a new function identity. Prefer changing the
|
|
321
|
+
* accessor reference where possible.
|
|
322
|
+
*/
|
|
323
|
+
accessorRevision?: number;
|
|
295
324
|
multiAxis?: boolean;
|
|
296
325
|
projection?: "vertical" | "horizontal" | "radial";
|
|
297
326
|
size?: [number, number];
|
|
@@ -357,7 +386,7 @@ export interface StreamOrdinalFrameProps<T = Datum> {
|
|
|
357
386
|
axisExtent?: import("../charts/shared/axisExtent").AxisExtentMode;
|
|
358
387
|
pieceStyle?: (d: Datum, category?: string) => Style;
|
|
359
388
|
summaryStyle?: (d: Datum, category?: string) => Style;
|
|
360
|
-
colorScheme?: string | string[]
|
|
389
|
+
colorScheme?: string | string[] | Record<string, string>;
|
|
361
390
|
barColors?: Record<string, string>;
|
|
362
391
|
showAxes?: boolean;
|
|
363
392
|
showCategoryTicks?: boolean;
|
|
@@ -381,6 +410,7 @@ export interface StreamOrdinalFrameProps<T = Datum> {
|
|
|
381
410
|
hoverAnnotation?: boolean | HoverAnnotationConfig;
|
|
382
411
|
tooltipContent?: (d: HoverData) => ReactNode;
|
|
383
412
|
customHoverBehavior?: (d: HoverData | null) => void;
|
|
413
|
+
customClickBehavior?: (d: HoverData | null) => void;
|
|
384
414
|
annotations?: Datum[];
|
|
385
415
|
autoPlaceAnnotations?: AutoPlaceAnnotations;
|
|
386
416
|
svgAnnotationRules?: (annotation: Datum, index: number, context: AnnotationContext) => ReactNode;
|
|
@@ -404,8 +434,12 @@ export interface StreamOrdinalFrameProps<T = Datum> {
|
|
|
404
434
|
legendCategoryAccessor?: string | ((d: T) => string);
|
|
405
435
|
/** Fires when the current legend category domain changes after scene rebuilds. */
|
|
406
436
|
onCategoriesChange?: (categories: string[]) => void;
|
|
407
|
-
|
|
408
|
-
|
|
437
|
+
/** SVG behind the canvas. Function form receives `{ size, margin, scales }`
|
|
438
|
+
* with the frame's resolved `{o, r, projection}` scales (null pre-layout). */
|
|
439
|
+
backgroundGraphics?: FrameGraphicsProp<OrdinalScales>;
|
|
440
|
+
/** SVG on top (in the overlay). Function form receives `{ size, margin, scales }`
|
|
441
|
+
* with the frame's resolved `{o, r, projection}` scales (null pre-layout). */
|
|
442
|
+
foregroundGraphics?: FrameGraphicsProp<OrdinalScales>;
|
|
409
443
|
title?: string | ReactNode;
|
|
410
444
|
className?: string;
|
|
411
445
|
background?: string;
|
|
@@ -438,8 +472,14 @@ export interface StreamOrdinalFrameProps<T = Datum> {
|
|
|
438
472
|
* `semiotic/recipes` for reference layouts (marimekko, parallel
|
|
439
473
|
* coordinates, bullet). */
|
|
440
474
|
customLayout?: import("./ordinalCustomLayout").OrdinalCustomLayout;
|
|
475
|
+
/** Called when `customLayout` throws. */
|
|
476
|
+
onLayoutError?: (diagnostic: import("./customLayoutFailure").CustomLayoutFailureDiagnostic) => void;
|
|
441
477
|
/** User-supplied config blob threaded through to OrdinalLayoutContext.config. */
|
|
442
478
|
layoutConfig?: object;
|
|
479
|
+
/** Resolved shared selection projected into `OrdinalLayoutContext.selection`.
|
|
480
|
+
* Kept off the rebuild path — restyles (if the layout returned `restyle`) or
|
|
481
|
+
* rebuilds, never re-ingests. */
|
|
482
|
+
layoutSelection?: import("./customLayoutSelection").CustomLayoutSelection | null;
|
|
443
483
|
}
|
|
444
484
|
export interface StreamOrdinalFrameHandle<T = Datum> {
|
|
445
485
|
push(datum: T): void;
|
|
@@ -464,6 +504,14 @@ export interface StreamOrdinalFrameHandle<T = Datum> {
|
|
|
464
504
|
clear(): void;
|
|
465
505
|
getData(): T[];
|
|
466
506
|
getScales(): OrdinalScales | null;
|
|
507
|
+
/** The most recent custom layout result — host readback so pages that need
|
|
508
|
+
* the computed placement don't re-run the layout. Null before the first
|
|
509
|
+
* layout or when no custom layout is configured. A failed retry retains the
|
|
510
|
+
* prior good result; inspect `getLayoutFailure()` to distinguish recovery. */
|
|
511
|
+
getCustomLayout(): import("./ordinalCustomLayout").OrdinalLayoutResult | null;
|
|
512
|
+
/** The latest custom-layout failure, if any. Cleared by a successful layout,
|
|
513
|
+
* removing the custom layout, or `clear()`. */
|
|
514
|
+
getLayoutFailure(): import("./customLayoutFailure").CustomLayoutFailureDiagnostic | null;
|
|
467
515
|
}
|
|
468
516
|
export interface OrdinalLayout {
|
|
469
517
|
width: number;
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared paint-gate helpers for Stream Frame render loops.
|
|
3
|
+
*
|
|
4
|
+
* Frames differ in scene types, but the decision "should this rAF clear and
|
|
5
|
+
* redraw the data canvas?" is the same shape everywhere: dirty/scene rebuild,
|
|
6
|
+
* transition, continuous animation, particles, live encodings.
|
|
7
|
+
*/
|
|
8
|
+
export interface DataPaintNeedsInput {
|
|
9
|
+
/** Prop/layout dirty or scene rebuilt this frame. */
|
|
10
|
+
dirtyOrRebuilt: boolean;
|
|
11
|
+
/** Transition animation is advancing. */
|
|
12
|
+
transitioning: boolean;
|
|
13
|
+
/** Layout animation tick (orbit, force step, etc.). */
|
|
14
|
+
animationTicked?: boolean;
|
|
15
|
+
/** Particles / continuous mode wants a frame. */
|
|
16
|
+
continuous?: boolean;
|
|
17
|
+
/** Pulse / decay / threshold / topology-diff encodings are live. */
|
|
18
|
+
liveEncoding?: boolean;
|
|
19
|
+
/** Family-specific force (rotation applied, zoom, etc.). */
|
|
20
|
+
forced?: boolean;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* True when the data canvas should clear and redraw this frame.
|
|
24
|
+
* Interaction-only or annotation-only rAF retries should leave data alone.
|
|
25
|
+
*/
|
|
26
|
+
export declare function needsDataCanvasPaint(input: DataPaintNeedsInput): boolean;
|
|
27
|
+
/**
|
|
28
|
+
* True when an interaction overlay canvas should clear/draw.
|
|
29
|
+
* Pass `hadContentLastFrame` so a hover-end still gets one clear.
|
|
30
|
+
*/
|
|
31
|
+
export declare function needsInteractionCanvasPaint(active: boolean, hadContentLastFrame: boolean): boolean;
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/** FIFO capacity-queue controller: stateful region service riding StreamPhysicsFrame's live heartbeat. */
|
|
2
|
+
import type { PhysicsController } from "./PhysicsControllers";
|
|
3
|
+
import type { CapacityQueueControllerOptions } from "./CapacityQueueTypes";
|
|
4
|
+
/** FIFO region service with visit evidence, overflow staging, and live metrics. */
|
|
5
|
+
export declare function createCapacityQueueController(options: CapacityQueueControllerOptions): PhysicsController;
|