semiotic 3.7.5 → 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 +54 -12
- package/README.md +121 -27
- package/agent-skill/semiotic-charts/SKILL.md +146 -0
- package/ai/cli.js +133 -45
- package/ai/componentMetadata.cjs +6 -1
- package/ai/dist/mcp-server.js +1651 -154
- package/ai/examples.md +174 -0
- package/ai/schema.json +2733 -536
- package/ai/surface-manifest.json +200 -0
- package/ai/system-prompt.md +18 -3
- package/dist/components/CategoryColors.d.ts +1 -1
- package/dist/components/ChartContainer.d.ts +91 -0
- package/dist/components/ChartGrid.d.ts +11 -1
- package/dist/components/CircularBrush.d.ts +61 -0
- package/dist/components/ContextLayout.d.ts +5 -1
- package/dist/components/DirectManipulationControl.d.ts +63 -0
- package/dist/components/LinkedCharts.d.ts +3 -1
- package/dist/components/MobileAnnotationCalloutList.d.ts +13 -0
- package/dist/components/MobileChartContainer.d.ts +51 -0
- package/dist/components/MobileStandardControls.d.ts +68 -0
- package/dist/components/SmallMultipleChart.d.ts +84 -0
- package/dist/components/Tooltip/FlippingTooltip.d.ts +21 -0
- package/dist/components/ai/ChartRecipe.d.ts +16 -0
- package/dist/components/ai/IntentMark.d.ts +15 -0
- package/dist/components/ai/chartCapabilities.d.ts +8 -1
- package/dist/components/ai/chartCapabilityTypes.d.ts +26 -1
- package/dist/components/ai/chartClinic.d.ts +91 -0
- package/dist/components/ai/chartRecipeRegistry.d.ts +14 -0
- package/dist/components/ai/chartRecipes.d.ts +278 -0
- package/dist/components/ai/dataPitfallsBridge.d.ts +102 -0
- package/dist/components/ai/describeChart.d.ts +7 -0
- package/dist/components/ai/describeRecipeChart.d.ts +16 -0
- package/dist/components/ai/generativeChart.d.ts +28 -3
- package/dist/components/ai/intentManifest.d.ts +62 -0
- package/dist/components/ai/navigationTree.d.ts +3 -0
- package/dist/components/ai/observedSceneAudit.d.ts +72 -0
- package/dist/components/ai/readerGrounding.d.ts +83 -0
- package/dist/components/ai/recipeCapability.d.ts +8 -0
- package/dist/components/ai/recipeNavigation.d.ts +13 -0
- package/dist/components/ai/recipeSemantics.d.ts +11 -0
- package/dist/components/ai/repairChartConfig.d.ts +9 -0
- package/dist/components/ai/suggestCharts.d.ts +11 -1
- package/dist/components/charts/custom/GeoCustomChart.d.ts +48 -0
- package/dist/components/charts/custom/NetworkCustomChart.d.ts +8 -2
- package/dist/components/charts/custom/OrdinalCustomChart.d.ts +8 -2
- package/dist/components/charts/custom/XYCustomChart.d.ts +11 -2
- package/dist/components/charts/geo/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 +1 -1
- package/dist/components/charts/ordinal/SwimlaneChart.d.ts +1 -1
- package/dist/components/charts/ordinal/ViolinPlot.d.ts +1 -1
- package/dist/components/charts/physics/ChainReactionChart.d.ts +9 -0
- package/dist/components/charts/physics/CollisionSwarmChart.capability.d.ts +2 -0
- package/dist/components/charts/physics/CollisionSwarmChart.d.ts +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 +9 -1
- package/dist/components/charts/realtime/RealtimeSwarmChart.d.ts +16 -2
- package/dist/components/charts/realtime/RealtimeWaterfallChart.d.ts +9 -1
- package/dist/components/charts/shared/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/colorUtils.d.ts +16 -1
- 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/motionEncoding.d.ts +145 -0
- package/dist/components/charts/shared/responsiveRules.d.ts +56 -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/types.d.ts +49 -1
- package/dist/components/charts/shared/useChartSetup.d.ts +9 -2
- package/dist/components/charts/shared/useCustomChartSetup.d.ts +14 -5
- 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/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 +1 -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/fromFlintChart.d.ts +74 -0
- package/dist/components/data/fromVegaLite.d.ts +27 -0
- package/dist/components/data/portability/index.d.ts +6 -3
- package/dist/components/data/portability/result.d.ts +52 -0
- package/dist/components/data/portability/spec.d.ts +31 -0
- package/dist/components/data/portability/vegaLite.d.ts +24 -6
- package/dist/components/export/chartConfig.d.ts +11 -0
- package/dist/components/realtime/types.d.ts +11 -0
- package/dist/components/recipes/annotationLayout.d.ts +29 -0
- package/dist/components/recipes/axisFixedForce.d.ts +119 -0
- package/dist/components/recipes/{gofishBoba.d.ts → boba.d.ts} +2 -2
- package/dist/components/recipes/cyclical.d.ts +39 -0
- package/dist/components/recipes/edgeRouter.d.ts +103 -0
- package/dist/components/recipes/forceLayout.d.ts +48 -0
- package/dist/components/recipes/forceLayoutAsync.d.ts +17 -0
- package/dist/components/recipes/gofishBobaHandwritten.d.ts +3 -0
- package/dist/components/recipes/gofishDisplayListFixtures.generated.d.ts +37 -0
- package/dist/components/recipes/gofishIR.d.ts +178 -132
- package/dist/components/recipes/gofishIRExamples.d.ts +30 -81
- package/dist/components/recipes/intervalLanes.d.ts +87 -0
- package/dist/components/recipes/intervals.d.ts +80 -0
- package/dist/components/recipes/isometricLandmarks.d.ts +88 -0
- package/dist/components/recipes/isotypeGlyphs.d.ts +17 -0
- package/dist/components/recipes/mobileAnnotationStrategy.d.ts +48 -0
- package/dist/components/recipes/mobileChartFamilyRecipes.d.ts +59 -0
- package/dist/components/recipes/networkAnalysis.d.ts +102 -0
- package/dist/components/recipes/networkLayouts.d.ts +83 -0
- package/dist/components/recipes/physics.d.ts +122 -0
- package/dist/components/recipes/physicsReference.d.ts +102 -0
- package/dist/components/recipes/processAggregates.d.ts +32 -0
- package/dist/components/recipes/processChrome.d.ts +67 -0
- package/dist/components/recipes/processJourney.d.ts +54 -0
- package/dist/components/recipes/processPhysics.d.ts +300 -0
- package/dist/components/recipes/processVolumeGeometry.d.ts +28 -0
- package/dist/components/recipes/radialCoords.d.ts +69 -0
- package/dist/components/recipes/random.d.ts +2 -0
- package/dist/components/recipes/recipeChrome.d.ts +91 -0
- package/dist/components/recipes/recipeGlyph.d.ts +42 -0
- package/dist/components/recipes/recipeLegend.d.ts +53 -1
- package/dist/components/recipes/recipeUtils.d.ts +52 -0
- package/dist/components/recipes/runs.d.ts +59 -0
- package/dist/components/recipes/tokenEncoding.d.ts +157 -0
- package/dist/components/recipes/tokenLayer.d.ts +79 -0
- package/dist/components/recipes/unitize.d.ts +108 -0
- package/dist/components/recipes/vector.d.ts +28 -0
- package/dist/components/recipes/waffle.d.ts +43 -0
- package/dist/components/semiotic-ai-core.d.ts +47 -0
- package/dist/components/semiotic-ai.d.ts +50 -8
- package/dist/components/semiotic-controls.d.ts +18 -0
- package/dist/components/semiotic-experimental.d.ts +38 -9
- package/dist/components/semiotic-geo.d.ts +11 -0
- package/dist/components/semiotic-network.d.ts +11 -0
- package/dist/components/semiotic-ordinal.d.ts +8 -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 -30
- package/dist/components/semiotic-recipes-core.d.ts +92 -0
- package/dist/components/semiotic-recipes-react.d.ts +7 -0
- package/dist/components/semiotic-recipes.d.ts +4 -43
- package/dist/components/semiotic-server-edge.d.ts +8 -0
- package/dist/components/semiotic-server-node.d.ts +5 -0
- package/dist/components/semiotic-server.d.ts +2 -2
- package/dist/components/semiotic-themes-core.d.ts +53 -0
- package/dist/components/semiotic-themes-react.d.ts +4 -0
- package/dist/components/semiotic-themes.d.ts +6 -76
- package/dist/components/semiotic-utils-core.d.ts +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 +8 -0
- package/dist/components/semiotic.d.ts +35 -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 +3 -2
- package/dist/components/store/themeSerialization.d.ts +32 -0
- package/dist/components/store/useChartInterrogation.d.ts +9 -0
- package/dist/components/stream/AccessibleDataTable.d.ts +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/NetworkPipelineStore.d.ts +31 -26
- package/dist/components/stream/NetworkSVGOverlay.d.ts +4 -1
- package/dist/components/stream/OrdinalPipelineStore.d.ts +46 -2
- package/dist/components/stream/PipelineStore.d.ts +81 -170
- package/dist/components/stream/SceneGraph.d.ts +9 -1
- 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/customLayoutFailure.d.ts +33 -0
- package/dist/components/stream/customLayoutPalette.d.ts +19 -9
- 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/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 +76 -5
- package/dist/components/stream/ordinalCanvasRenderers.d.ts +7 -0
- package/dist/components/stream/ordinalDataIndex.d.ts +5 -0
- package/dist/components/stream/ordinalDefaultTooltip.d.ts +10 -0
- package/dist/components/stream/ordinalDomain.d.ts +38 -0
- package/dist/components/stream/ordinalPipelineUpdateResults.d.ts +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/ordinalSpatialIndex.d.ts +9 -0
- package/dist/components/stream/ordinalTypes.d.ts +40 -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/resolveCSSColor.d.ts +6 -0
- package/dist/components/stream/sceneRevisionDiagnostics.d.ts +18 -0
- package/dist/components/stream/streamStoreSync.d.ts +37 -0
- package/dist/components/stream/types.d.ts +135 -7
- 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/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/types.d.ts +4 -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 +50 -8
- 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.min.js +1 -1
- package/dist/semiotic-data.module.min.js +1 -1
- package/dist/semiotic-experimental.d.ts +38 -9
- package/dist/semiotic-experimental.min.js +1 -1
- package/dist/semiotic-experimental.module.min.js +1 -1
- package/dist/semiotic-geo.d.ts +11 -0
- package/dist/semiotic-network.d.ts +11 -0
- package/dist/semiotic-ordinal.d.ts +8 -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 -30
- package/dist/semiotic-recipes-core.d.ts +92 -0
- package/dist/semiotic-recipes-core.min.js +1 -0
- package/dist/semiotic-recipes-core.module.min.js +1 -0
- package/dist/semiotic-recipes-react.d.ts +7 -0
- package/dist/semiotic-recipes-react.min.js +2 -0
- package/dist/semiotic-recipes-react.module.min.js +2 -0
- package/dist/semiotic-recipes.d.ts +4 -43
- package/dist/semiotic-recipes.min.js +1 -1
- package/dist/semiotic-recipes.module.min.js +1 -1
- package/dist/semiotic-server-edge.d.ts +8 -0
- package/dist/semiotic-server-edge.min.js +1 -0
- package/dist/semiotic-server-edge.module.min.js +1 -0
- package/dist/semiotic-server-node.d.ts +5 -0
- package/dist/semiotic-server-node.min.js +1 -0
- package/dist/semiotic-server-node.module.min.js +1 -0
- package/dist/semiotic-server.d.ts +2 -2
- package/dist/semiotic-statisticalOverlays-UOMSFKVJ.module.min.js +2 -0
- package/dist/semiotic-themes-core.d.ts +53 -0
- package/dist/semiotic-themes-core.min.js +1 -0
- package/dist/semiotic-themes-core.module.min.js +1 -0
- package/dist/semiotic-themes-react.d.ts +4 -0
- package/dist/semiotic-themes-react.min.js +2 -0
- package/dist/semiotic-themes-react.module.min.js +2 -0
- package/dist/semiotic-themes.d.ts +6 -76
- package/dist/semiotic-themes.min.js +1 -2
- package/dist/semiotic-themes.module.min.js +1 -2
- package/dist/semiotic-utils-core.d.ts +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 +8 -0
- package/dist/semiotic.d.ts +35 -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 +239 -87
- package/spec/README.md +152 -0
- package/spec/bindings/README.md +35 -0
- package/spec/bindings/vega-lite.mjs +112 -0
- package/spec/v0.1/annotation-provenance.schema.json +127 -0
- package/spec/v0.1/audience-profile.schema.json +67 -0
- package/spec/v0.1/chart-capability.schema.json +186 -0
- package/dist/components/recipes/gofish.d.ts +0 -207
- package/dist/components/recipes/gofishInterpreter.d.ts +0 -52
- package/dist/components/recipes/gofishLambdas.d.ts +0 -145
- package/dist/semiotic-ai-semiotic-ai-u954ylUn.js +0 -2
- package/dist/semiotic-ai-statisticalOverlays-CU7jW05Q.js +0 -1
- package/dist/semiotic-semiotic-BmrYbi99.js +0 -2
- package/dist/semiotic-statisticalOverlays-IjZw8Lsu.js +0 -1
- package/dist/xy-semiotic-xy-Dufu3D0-.js +0 -2
- package/dist/xy-statisticalOverlays-3Ni9bRph.js +0 -1
|
@@ -2,11 +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
9
|
import type { NetworkSymbolName } from "./symbolPath";
|
|
10
|
+
import type { GlyphDef } from "./glyphDef";
|
|
10
11
|
export interface TensionConfig {
|
|
11
12
|
weightChange: number;
|
|
12
13
|
newEdge: number;
|
|
@@ -52,6 +53,8 @@ export interface RealtimeNode {
|
|
|
52
53
|
__hierarchyNode?: unknown;
|
|
53
54
|
/** @internal Circle-pack layout radius. Set by `hierarchyLayoutPlugin`. */
|
|
54
55
|
__radius?: number;
|
|
56
|
+
/** @internal Pre-resolved force-layout radius used by worker snapshots. */
|
|
57
|
+
__forceRadius?: number;
|
|
55
58
|
/**
|
|
56
59
|
* @internal Chord-layout extension. Carries the start/end angles
|
|
57
60
|
* for the arc segment representing this node, computed by
|
|
@@ -182,7 +185,7 @@ export interface RealtimeNetworkFrameProps {
|
|
|
182
185
|
showParticles?: boolean;
|
|
183
186
|
particleStyle?: ParticleStyle;
|
|
184
187
|
colorBy?: string | ((d: RealtimeNode) => string);
|
|
185
|
-
colorScheme?: string | string[]
|
|
188
|
+
colorScheme?: string | string[] | Record<string, string>;
|
|
186
189
|
edgeColorBy?: "source" | "target" | ((d: RealtimeEdge) => string);
|
|
187
190
|
edgeOpacity?: number;
|
|
188
191
|
nodeLabel?: string | ((d: RealtimeNode) => string);
|
|
@@ -205,6 +208,8 @@ export interface NetworkCircleNode {
|
|
|
205
208
|
r: number;
|
|
206
209
|
style: Style;
|
|
207
210
|
datum: SceneDatum;
|
|
211
|
+
accessibleDatum?: SceneAccessibilityMetadata["accessibleDatum"];
|
|
212
|
+
accessibility?: SceneAccessibilityMetadata["accessibility"];
|
|
208
213
|
id?: string;
|
|
209
214
|
label?: string;
|
|
210
215
|
depth?: number;
|
|
@@ -221,6 +226,8 @@ export interface NetworkRectNode {
|
|
|
221
226
|
h: number;
|
|
222
227
|
style: Style;
|
|
223
228
|
datum: SceneDatum;
|
|
229
|
+
accessibleDatum?: SceneAccessibilityMetadata["accessibleDatum"];
|
|
230
|
+
accessibility?: SceneAccessibilityMetadata["accessibility"];
|
|
224
231
|
id?: string;
|
|
225
232
|
label?: string;
|
|
226
233
|
depth?: number;
|
|
@@ -242,6 +249,8 @@ export interface NetworkArcNode {
|
|
|
242
249
|
endAngle: number;
|
|
243
250
|
style: Style;
|
|
244
251
|
datum: SceneDatum;
|
|
252
|
+
accessibleDatum?: SceneAccessibilityMetadata["accessibleDatum"];
|
|
253
|
+
accessibility?: SceneAccessibilityMetadata["accessibility"];
|
|
245
254
|
id?: string;
|
|
246
255
|
label?: string;
|
|
247
256
|
_pulseIntensity?: number;
|
|
@@ -268,6 +277,47 @@ export interface NetworkSymbolNode {
|
|
|
268
277
|
rotation?: number;
|
|
269
278
|
style: Style;
|
|
270
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"];
|
|
271
321
|
id?: string;
|
|
272
322
|
label?: string;
|
|
273
323
|
depth?: number;
|
|
@@ -333,7 +383,7 @@ export interface NetworkCurvedEdge {
|
|
|
333
383
|
_cachedPath2D?: Path2D;
|
|
334
384
|
_cachedPath2DSource?: string;
|
|
335
385
|
}
|
|
336
|
-
export type NetworkSceneNode = NetworkCircleNode | NetworkRectNode | NetworkArcNode | NetworkSymbolNode;
|
|
386
|
+
export type NetworkSceneNode = NetworkCircleNode | NetworkRectNode | NetworkArcNode | NetworkSymbolNode | NetworkGlyphNode;
|
|
337
387
|
export type NetworkSceneEdge = NetworkLineEdge | NetworkBezierEdge | NetworkRibbonEdge | NetworkCurvedEdge;
|
|
338
388
|
/** Label data for the SVG overlay */
|
|
339
389
|
export interface NetworkLabel {
|
|
@@ -410,6 +460,8 @@ export interface NetworkPipelineConfig {
|
|
|
410
460
|
edgeSort?: (a: unknown, b: unknown) => number;
|
|
411
461
|
iterations?: number;
|
|
412
462
|
forceStrength?: number;
|
|
463
|
+
/** @internal Skip simulation after worker-computed positions are applied. */
|
|
464
|
+
__skipForceSimulation?: boolean;
|
|
413
465
|
padAngle?: number;
|
|
414
466
|
groupWidth?: number;
|
|
415
467
|
sortGroups?: (a: unknown, b: unknown) => number;
|
|
@@ -426,7 +478,7 @@ export interface NetworkPipelineConfig {
|
|
|
426
478
|
showLabels?: boolean;
|
|
427
479
|
labelMode?: "leaf" | "parent" | "all";
|
|
428
480
|
colorBy?: string | ((d: Datum) => string | number);
|
|
429
|
-
colorScheme?: string | string[]
|
|
481
|
+
colorScheme?: string | string[] | Record<string, string>;
|
|
430
482
|
/** Theme categorical palette — used as fallback when colorScheme is not an explicit array */
|
|
431
483
|
themeCategorical?: string[];
|
|
432
484
|
/** Theme-resolved semantic role colors — default fallback before hardcoded hex. See `ThemeSemanticColors` in ./types. */
|
|
@@ -479,6 +531,8 @@ export interface NetworkPipelineConfig {
|
|
|
479
531
|
/** When provided, replaces both layout dispatch and scene building.
|
|
480
532
|
* Receives raw nodes/edges and returns positioned scene primitives. */
|
|
481
533
|
customNetworkLayout?: import("./networkCustomLayout").NetworkCustomLayout;
|
|
534
|
+
/** Called when `customNetworkLayout` throws. */
|
|
535
|
+
onLayoutError?: (diagnostic: import("./customLayoutFailure").CustomLayoutFailureDiagnostic) => void;
|
|
482
536
|
/** User-supplied config blob threaded through to NetworkLayoutContext.config. */
|
|
483
537
|
layoutConfig?: object;
|
|
484
538
|
/** Resolved shared-selection predicate, surfaced to a custom layout as
|
|
@@ -508,6 +562,12 @@ export interface StreamNetworkFrameProps<T = Datum> {
|
|
|
508
562
|
nodeWidth?: number;
|
|
509
563
|
iterations?: number;
|
|
510
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;
|
|
511
571
|
padAngle?: number;
|
|
512
572
|
groupWidth?: number;
|
|
513
573
|
sortGroups?: (a: unknown, b: unknown) => number;
|
|
@@ -522,7 +582,7 @@ export interface StreamNetworkFrameProps<T = Datum> {
|
|
|
522
582
|
nodeStyle?: (d: Datum) => Datum;
|
|
523
583
|
edgeStyle?: (d: Datum) => Datum;
|
|
524
584
|
colorBy?: string | ((d: Datum) => string | number);
|
|
525
|
-
colorScheme?: string | string[]
|
|
585
|
+
colorScheme?: string | string[] | Record<string, string>;
|
|
526
586
|
edgeColorBy?: "source" | "target" | "gradient" | ((d: Datum) => string);
|
|
527
587
|
edgeOpacity?: number;
|
|
528
588
|
colorByDepth?: boolean;
|
|
@@ -597,6 +657,8 @@ export interface StreamNetworkFrameProps<T = Datum> {
|
|
|
597
657
|
* Receives raw nodes/edges + dimensions/theme, returns positioned scene
|
|
598
658
|
* primitives. See `semiotic/recipes` for reference layouts (flextree, dagre). */
|
|
599
659
|
customNetworkLayout?: import("./networkCustomLayout").NetworkCustomLayout;
|
|
660
|
+
/** Called when `customNetworkLayout` throws. */
|
|
661
|
+
onLayoutError?: (diagnostic: import("./customLayoutFailure").CustomLayoutFailureDiagnostic) => void;
|
|
600
662
|
/** User-supplied config blob threaded through to NetworkLayoutContext.config. */
|
|
601
663
|
layoutConfig?: object;
|
|
602
664
|
/** Resolved shared-selection predicate, surfaced to a custom layout as
|
|
@@ -628,5 +690,14 @@ export interface StreamNetworkFrameHandle {
|
|
|
628
690
|
};
|
|
629
691
|
relayout(): void;
|
|
630
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;
|
|
631
702
|
}
|
|
632
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[]>;
|
|
@@ -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;
|
|
@@ -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;
|
|
@@ -3,7 +3,7 @@ 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
5
|
import type { SymbolName } from "./symbolPath";
|
|
6
|
-
import type { Style, SceneDatum, DecayConfig, PulseConfig, TransitionConfig, StalenessConfig, ThemeSemanticColors } from "./types";
|
|
6
|
+
import type { Style, SceneDatum, DecayConfig, PulseConfig, TransitionConfig, StalenessConfig, ThemeSemanticColors, FrameGraphicsProp, SceneAccessibilityMetadata } from "./types";
|
|
7
7
|
import type { AnimateProp } from "./pipelineTransitionUtils";
|
|
8
8
|
import type { GradientLegendConfig, LegendGroup, LegendLayout } from "../types/legendTypes";
|
|
9
9
|
import type { Datum } from "../charts/shared/datumTypes";
|
|
@@ -54,6 +54,8 @@ export interface WedgeSceneNode {
|
|
|
54
54
|
};
|
|
55
55
|
style: Style;
|
|
56
56
|
datum: SceneDatum;
|
|
57
|
+
accessibleDatum?: SceneAccessibilityMetadata["accessibleDatum"];
|
|
58
|
+
accessibility?: SceneAccessibilityMetadata["accessibility"];
|
|
57
59
|
category?: string;
|
|
58
60
|
_pulseIntensity?: number;
|
|
59
61
|
_pulseColor?: string;
|
|
@@ -163,9 +165,9 @@ export interface TrapezoidSceneNode {
|
|
|
163
165
|
_targetOpacity?: number;
|
|
164
166
|
_transitionKey?: string;
|
|
165
167
|
}
|
|
166
|
-
export type { Style, PointSceneNode, RectSceneNode, SymbolSceneNode } from "./types";
|
|
167
|
-
import type { PointSceneNode, RectSceneNode, SymbolSceneNode } from "./types";
|
|
168
|
-
export type OrdinalSceneNode = RectSceneNode | PointSceneNode | SymbolSceneNode | 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;
|
|
169
171
|
export interface OrdinalColumn {
|
|
170
172
|
name: string;
|
|
171
173
|
x: number;
|
|
@@ -205,6 +207,13 @@ export interface OrdinalPipelineConfig {
|
|
|
205
207
|
oAccessor?: string | ((d: Datum) => string);
|
|
206
208
|
/** @deprecated Use valueAccessor */
|
|
207
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;
|
|
208
217
|
multiAxis?: boolean;
|
|
209
218
|
rExtent?: [number?, number?];
|
|
210
219
|
oExtent?: string[];
|
|
@@ -254,7 +263,7 @@ export interface OrdinalPipelineConfig {
|
|
|
254
263
|
dynamicColumnWidth?: string | ((data: Datum[]) => number);
|
|
255
264
|
pieceStyle?: (d: Datum, category?: string) => Style;
|
|
256
265
|
summaryStyle?: (d: Datum, category?: string) => Style;
|
|
257
|
-
colorScheme?: string | string[]
|
|
266
|
+
colorScheme?: string | string[] | Record<string, string>;
|
|
258
267
|
themeCategorical?: string[];
|
|
259
268
|
/** Theme-resolved semantic role colors — default fallback before hardcoded hex. See `ThemeSemanticColors` in ./types. */
|
|
260
269
|
themeSemantic?: ThemeSemanticColors;
|
|
@@ -275,6 +284,8 @@ export interface OrdinalPipelineConfig {
|
|
|
275
284
|
* Receives an OrdinalLayoutContext (scales, dimensions, theme,
|
|
276
285
|
* resolveColor) and returns scene nodes plus optional overlays. */
|
|
277
286
|
customLayout?: import("./ordinalCustomLayout").OrdinalCustomLayout;
|
|
287
|
+
/** Called when `customLayout` throws. */
|
|
288
|
+
onLayoutError?: (diagnostic: import("./customLayoutFailure").CustomLayoutFailureDiagnostic) => void;
|
|
278
289
|
/** User-supplied config blob threaded through to OrdinalLayoutContext.config. */
|
|
279
290
|
layoutConfig?: object;
|
|
280
291
|
/** Resolved margin — passed through so OrdinalLayoutContext.dimensions.margin
|
|
@@ -304,6 +315,12 @@ export interface StreamOrdinalFrameProps<T = Datum> {
|
|
|
304
315
|
oAccessor?: string | ((d: T) => string);
|
|
305
316
|
/** @deprecated Use valueAccessor instead */
|
|
306
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;
|
|
307
324
|
multiAxis?: boolean;
|
|
308
325
|
projection?: "vertical" | "horizontal" | "radial";
|
|
309
326
|
size?: [number, number];
|
|
@@ -369,7 +386,7 @@ export interface StreamOrdinalFrameProps<T = Datum> {
|
|
|
369
386
|
axisExtent?: import("../charts/shared/axisExtent").AxisExtentMode;
|
|
370
387
|
pieceStyle?: (d: Datum, category?: string) => Style;
|
|
371
388
|
summaryStyle?: (d: Datum, category?: string) => Style;
|
|
372
|
-
colorScheme?: string | string[]
|
|
389
|
+
colorScheme?: string | string[] | Record<string, string>;
|
|
373
390
|
barColors?: Record<string, string>;
|
|
374
391
|
showAxes?: boolean;
|
|
375
392
|
showCategoryTicks?: boolean;
|
|
@@ -393,6 +410,7 @@ export interface StreamOrdinalFrameProps<T = Datum> {
|
|
|
393
410
|
hoverAnnotation?: boolean | HoverAnnotationConfig;
|
|
394
411
|
tooltipContent?: (d: HoverData) => ReactNode;
|
|
395
412
|
customHoverBehavior?: (d: HoverData | null) => void;
|
|
413
|
+
customClickBehavior?: (d: HoverData | null) => void;
|
|
396
414
|
annotations?: Datum[];
|
|
397
415
|
autoPlaceAnnotations?: AutoPlaceAnnotations;
|
|
398
416
|
svgAnnotationRules?: (annotation: Datum, index: number, context: AnnotationContext) => ReactNode;
|
|
@@ -416,8 +434,12 @@ export interface StreamOrdinalFrameProps<T = Datum> {
|
|
|
416
434
|
legendCategoryAccessor?: string | ((d: T) => string);
|
|
417
435
|
/** Fires when the current legend category domain changes after scene rebuilds. */
|
|
418
436
|
onCategoriesChange?: (categories: string[]) => void;
|
|
419
|
-
|
|
420
|
-
|
|
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>;
|
|
421
443
|
title?: string | ReactNode;
|
|
422
444
|
className?: string;
|
|
423
445
|
background?: string;
|
|
@@ -450,6 +472,8 @@ export interface StreamOrdinalFrameProps<T = Datum> {
|
|
|
450
472
|
* `semiotic/recipes` for reference layouts (marimekko, parallel
|
|
451
473
|
* coordinates, bullet). */
|
|
452
474
|
customLayout?: import("./ordinalCustomLayout").OrdinalCustomLayout;
|
|
475
|
+
/** Called when `customLayout` throws. */
|
|
476
|
+
onLayoutError?: (diagnostic: import("./customLayoutFailure").CustomLayoutFailureDiagnostic) => void;
|
|
453
477
|
/** User-supplied config blob threaded through to OrdinalLayoutContext.config. */
|
|
454
478
|
layoutConfig?: object;
|
|
455
479
|
/** Resolved shared selection projected into `OrdinalLayoutContext.selection`.
|
|
@@ -480,6 +504,14 @@ export interface StreamOrdinalFrameHandle<T = Datum> {
|
|
|
480
504
|
clear(): void;
|
|
481
505
|
getData(): T[];
|
|
482
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;
|
|
483
515
|
}
|
|
484
516
|
export interface OrdinalLayout {
|
|
485
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;
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
import type { PhysicsBodyState, PhysicsColliderBodyFilter } from "./PhysicsKernel";
|
|
2
|
+
import type { StreamPhysicsRegionVector } from "./StreamPhysicsFrame";
|
|
3
|
+
/** Current age distribution for visits admitted to a capacity queue. */
|
|
4
|
+
export interface CapacityQueueAgeSummary {
|
|
5
|
+
count: number;
|
|
6
|
+
meanSeconds: number;
|
|
7
|
+
p50Seconds: number;
|
|
8
|
+
p95Seconds: number;
|
|
9
|
+
oldestSeconds: number;
|
|
10
|
+
}
|
|
11
|
+
/** Rolling simulated-time service evidence. */
|
|
12
|
+
export interface CapacityQueueWindowSnapshot {
|
|
13
|
+
seconds: number;
|
|
14
|
+
arrivals: number;
|
|
15
|
+
arrivalWork: number;
|
|
16
|
+
completions: number;
|
|
17
|
+
completedWork: number;
|
|
18
|
+
processedWork: number;
|
|
19
|
+
arrivalsPerSecond: number;
|
|
20
|
+
throughputPerSecond: number;
|
|
21
|
+
/** Service work consumed / available work capacity, clamped to 0-1. */
|
|
22
|
+
utilization: number;
|
|
23
|
+
/** Incoming work rate / service rate. Values above 1 indicate overload. */
|
|
24
|
+
pressure: number;
|
|
25
|
+
}
|
|
26
|
+
/** Live capacity queue metrics for projection, evidence, and UI. */
|
|
27
|
+
export interface CapacityQueueSnapshot {
|
|
28
|
+
regionId: string;
|
|
29
|
+
queueDepth: number;
|
|
30
|
+
processedCount: number;
|
|
31
|
+
unitsPerSecond: number;
|
|
32
|
+
/** Remaining work units currently in the admitted queue. */
|
|
33
|
+
remainingWork: number;
|
|
34
|
+
meanRemainingWork: number;
|
|
35
|
+
/** Current admitted + blocked work still waiting for service. */
|
|
36
|
+
waitingWork: number;
|
|
37
|
+
blockedDepth: number;
|
|
38
|
+
blockedWork: number;
|
|
39
|
+
/** Unique physical entries observed, including entries initially blocked. */
|
|
40
|
+
arrivalCount: number;
|
|
41
|
+
admittedCount: number;
|
|
42
|
+
admittedWork: number;
|
|
43
|
+
/** Cumulative service work consumed, including partially processed jobs. */
|
|
44
|
+
processedWork: number;
|
|
45
|
+
completedWork: number;
|
|
46
|
+
blockedCount: number;
|
|
47
|
+
abandonedCount: number;
|
|
48
|
+
abandonedWork: number;
|
|
49
|
+
peakQueueDepth: number;
|
|
50
|
+
peakRemainingWork: number;
|
|
51
|
+
queueAge: CapacityQueueAgeSummary;
|
|
52
|
+
meanCompletedQueueSeconds: number;
|
|
53
|
+
window: CapacityQueueWindowSnapshot;
|
|
54
|
+
/** Latest simulated clock observed by the controller. */
|
|
55
|
+
simulatedAt: number;
|
|
56
|
+
/** Coarse reporting bucket suitable for React equality checks. */
|
|
57
|
+
metricRevision: number;
|
|
58
|
+
}
|
|
59
|
+
export interface CapacityQueueVisitInfo {
|
|
60
|
+
bodyId: string;
|
|
61
|
+
jobId: string;
|
|
62
|
+
visitId: string;
|
|
63
|
+
visit: number;
|
|
64
|
+
regionId: string;
|
|
65
|
+
work: number;
|
|
66
|
+
queuedAt: number;
|
|
67
|
+
}
|
|
68
|
+
export interface CapacityQueueProcessedInfo extends CapacityQueueVisitInfo {
|
|
69
|
+
completedAt: number;
|
|
70
|
+
queueSeconds: number;
|
|
71
|
+
}
|
|
72
|
+
export interface CapacityQueueBlockedInfo extends CapacityQueueVisitInfo {
|
|
73
|
+
blockedAt: number;
|
|
74
|
+
}
|
|
75
|
+
export interface CapacityQueueAbandonedInfo extends CapacityQueueVisitInfo {
|
|
76
|
+
abandonedAt: number;
|
|
77
|
+
remainingWork: number;
|
|
78
|
+
queueSeconds: number;
|
|
79
|
+
}
|
|
80
|
+
export interface CapacityQueueControllerOptions {
|
|
81
|
+
id?: string;
|
|
82
|
+
/** Must match a StreamPhysicsRegionEffect id (sensor region). */
|
|
83
|
+
regionId: string;
|
|
84
|
+
/** Work units processed per second while the queue is non-empty. */
|
|
85
|
+
unitsPerSecond: number;
|
|
86
|
+
/** Only matching bodies may enter the queue. Uses collider body-filter semantics. */
|
|
87
|
+
bodyFilter?: PhysicsColliderBodyFilter;
|
|
88
|
+
/** String form reads `body.datum[field]`; defaults to work/reviewWork/value. */
|
|
89
|
+
unitAccessor?: string | ((body: PhysicsBodyState) => number);
|
|
90
|
+
/**
|
|
91
|
+
* Semantic job identity. String form reads `body.datum[field]`; defaults to
|
|
92
|
+
* body id. Multiple matching bodies with the same key consume one visit.
|
|
93
|
+
*/
|
|
94
|
+
jobKey?: string | ((body: PhysicsBodyState) => string | number | null | undefined);
|
|
95
|
+
/** Impulse applied when a body finishes processing (default forward release). */
|
|
96
|
+
releaseImpulse?: StreamPhysicsRegionVector;
|
|
97
|
+
onProcessed?: (body: PhysicsBodyState, info: CapacityQueueProcessedInfo) => void;
|
|
98
|
+
onQueued?: (body: PhysicsBodyState, info: CapacityQueueVisitInfo) => void;
|
|
99
|
+
onBlocked?: (body: PhysicsBodyState, info: CapacityQueueBlockedInfo) => void;
|
|
100
|
+
onAbandoned?: (body: PhysicsBodyState, info: CapacityQueueAbandonedInfo) => void;
|
|
101
|
+
queueLayout?: "lane" | "none";
|
|
102
|
+
queueSlotSpacing?: number;
|
|
103
|
+
queueStiffness?: number;
|
|
104
|
+
/** Max admitted visits; overflow is measured while it waits outside. */
|
|
105
|
+
maxQueue?: number;
|
|
106
|
+
/** Rolling simulated-time window for throughput/utilization (default 30s). */
|
|
107
|
+
metricWindowSeconds?: number;
|
|
108
|
+
/** Coarse snapshot cadence used by HOC callbacks (default 0.25s). */
|
|
109
|
+
snapshotIntervalSeconds?: number;
|
|
110
|
+
continuous?: boolean;
|
|
111
|
+
}
|
|
112
|
+
export interface CapacityQueueEntry {
|
|
113
|
+
bodyId: string;
|
|
114
|
+
jobId: string;
|
|
115
|
+
visitId: string;
|
|
116
|
+
visit: number;
|
|
117
|
+
remaining: number;
|
|
118
|
+
total: number;
|
|
119
|
+
queuedAt: number;
|
|
120
|
+
sequence: number;
|
|
121
|
+
}
|
|
122
|
+
export interface CapacityBlockedEntry extends CapacityQueueVisitInfo {
|
|
123
|
+
blockedAt: number;
|
|
124
|
+
sequence: number;
|
|
125
|
+
}
|
|
126
|
+
export interface CapacityMetricSlice {
|
|
127
|
+
start: number;
|
|
128
|
+
end: number;
|
|
129
|
+
arrivals: number;
|
|
130
|
+
arrivalWork: number;
|
|
131
|
+
completions: number;
|
|
132
|
+
completedWork: number;
|
|
133
|
+
processedWork: number;
|
|
134
|
+
}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import type { PhysicsEngineCapabilities } from "./PhysicsEngineAdapter";
|
|
2
|
+
import type { PhysicsBodySpec, PhysicsColliderSpec } from "./PhysicsKernel";
|
|
3
|
+
export declare const MATTER_PHYSICS_PACKAGE = "matter-js";
|
|
4
|
+
export declare const MATTER_PHYSICS_IMPORT_PATH = "semiotic/physics/matter";
|
|
5
|
+
export declare const MATTER_PHYSICS_CAPABILITIES: PhysicsEngineCapabilities;
|
|
6
|
+
export declare const MATTER_PHYSICS_INSTALL: {
|
|
7
|
+
readonly engine: "Matter.js";
|
|
8
|
+
readonly importPath: "semiotic/physics/matter";
|
|
9
|
+
readonly packageName: "matter-js";
|
|
10
|
+
readonly installCommand: "npm install matter-js";
|
|
11
|
+
};
|
|
12
|
+
export interface MatterVectorLike {
|
|
13
|
+
x: number;
|
|
14
|
+
y: number;
|
|
15
|
+
}
|
|
16
|
+
export interface MatterBoundsLike {
|
|
17
|
+
min: MatterVectorLike;
|
|
18
|
+
max: MatterVectorLike;
|
|
19
|
+
}
|
|
20
|
+
export interface MatterBodyLike {
|
|
21
|
+
id?: string | number;
|
|
22
|
+
label?: string;
|
|
23
|
+
position?: MatterVectorLike;
|
|
24
|
+
velocity?: MatterVectorLike;
|
|
25
|
+
angle?: number;
|
|
26
|
+
mass?: number;
|
|
27
|
+
circleRadius?: number;
|
|
28
|
+
bounds?: MatterBoundsLike;
|
|
29
|
+
isSensor?: boolean;
|
|
30
|
+
plugin?: Record<string, unknown>;
|
|
31
|
+
}
|
|
32
|
+
export interface MatterMigrationOptions {
|
|
33
|
+
datumFromPlugin?: string;
|
|
34
|
+
fallbackRadius?: number;
|
|
35
|
+
idPrefix?: string;
|
|
36
|
+
}
|
|
37
|
+
export declare function matterBodyToPhysicsBodySpec(body: MatterBodyLike, index?: number, options?: MatterMigrationOptions): PhysicsBodySpec;
|
|
38
|
+
export declare function matterBodyToPhysicsColliderSpec(body: MatterBodyLike, index?: number, options?: MatterMigrationOptions): PhysicsColliderSpec;
|
|
39
|
+
export declare function matterBodiesToPhysicsSpawns(bodies: readonly MatterBodyLike[], options?: MatterMigrationOptions): PhysicsBodySpec[];
|
|
40
|
+
export declare function matterBodiesToPhysicsColliders(bodies: readonly MatterBodyLike[], options?: MatterMigrationOptions): PhysicsColliderSpec[];
|
|
41
|
+
export declare function loadMatterPhysicsPeer(): Promise<unknown>;
|
|
42
|
+
export declare function matterPhysicsDependencyError(cause?: unknown): Error;
|