semiotic 3.7.5 → 3.8.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CLAUDE.md +63 -18
- package/README.md +121 -27
- package/agent-skill/semiotic-charts/SKILL.md +146 -0
- package/ai/cli.js +133 -45
- package/ai/componentMetadata.cjs +6 -1
- package/ai/dist/mcp-server.js +1741 -163
- package/ai/examples.md +174 -0
- package/ai/schema.json +2733 -536
- package/ai/surface-manifest.json +201 -0
- package/ai/system-prompt.md +20 -4
- package/dist/__tests__/scenarios/mcpProtocolTypes.d.ts +20 -0
- package/dist/components/AccessibleNavTree.d.ts +7 -1
- package/dist/components/CategoryColors.d.ts +1 -1
- package/dist/components/ChartContainer.d.ts +91 -0
- package/dist/components/ChartGrid.d.ts +11 -1
- package/dist/components/CircularBrush.d.ts +61 -0
- package/dist/components/ContextLayout.d.ts +5 -1
- package/dist/components/DirectManipulationControl.d.ts +63 -0
- package/dist/components/LinkedCharts.d.ts +3 -1
- package/dist/components/MobileAnnotationCalloutList.d.ts +13 -0
- package/dist/components/MobileChartContainer.d.ts +51 -0
- package/dist/components/MobileStandardControls.d.ts +68 -0
- package/dist/components/SmallMultipleChart.d.ts +84 -0
- package/dist/components/Tooltip/FlippingTooltip.d.ts +21 -0
- package/dist/components/ai/ChartRecipe.d.ts +16 -0
- package/dist/components/ai/IntentMark.d.ts +15 -0
- package/dist/components/ai/chartCapabilities.d.ts +8 -1
- package/dist/components/ai/chartCapabilityTypes.d.ts +26 -1
- package/dist/components/ai/chartClinic.d.ts +91 -0
- package/dist/components/ai/chartClinicMetadata.generated.d.ts +15 -0
- package/dist/components/ai/chartRecipeRegistry.d.ts +14 -0
- package/dist/components/ai/chartRecipes.d.ts +278 -0
- package/dist/components/ai/dataPitfallsBridge.d.ts +102 -0
- package/dist/components/ai/describeChart.d.ts +7 -0
- package/dist/components/ai/describeRecipeChart.d.ts +16 -0
- package/dist/components/ai/generativeChart.d.ts +28 -3
- package/dist/components/ai/intentManifest.d.ts +62 -0
- package/dist/components/ai/navigationTree.d.ts +3 -0
- package/dist/components/ai/observedSceneAudit.d.ts +72 -0
- package/dist/components/ai/readerGrounding.d.ts +83 -0
- package/dist/components/ai/recipeCapability.d.ts +8 -0
- package/dist/components/ai/recipeNavigation.d.ts +13 -0
- package/dist/components/ai/recipeSemantics.d.ts +11 -0
- package/dist/components/ai/repairChartConfig.d.ts +9 -0
- package/dist/components/ai/suggestCharts.d.ts +11 -1
- package/dist/components/ai/useNavigationSync.d.ts +17 -2
- package/dist/components/chartContainerMobile.d.ts +9 -0
- package/dist/components/charts/custom/GeoCustomChart.d.ts +48 -0
- package/dist/components/charts/custom/NetworkCustomChart.d.ts +8 -2
- package/dist/components/charts/custom/OrdinalCustomChart.d.ts +8 -2
- package/dist/components/charts/custom/XYCustomChart.d.ts +11 -2
- package/dist/components/charts/geo/ChoroplethMap.d.ts +19 -2
- package/dist/components/charts/geo/DistanceCartogram.d.ts +15 -3
- package/dist/components/charts/geo/FlowMap.d.ts +11 -7
- package/dist/components/charts/geo/ProportionalSymbolMap.d.ts +15 -3
- package/dist/components/charts/geo/index.d.ts +2 -0
- package/dist/components/charts/index.d.ts +35 -1
- package/dist/components/charts/network/ChordDiagram.d.ts +10 -2
- package/dist/components/charts/network/CirclePack.d.ts +1 -1
- package/dist/components/charts/network/ForceDirectedGraph.d.ts +26 -5
- package/dist/components/charts/network/OrbitDiagram.d.ts +1 -1
- package/dist/components/charts/network/ProcessSankey.d.ts +1 -1
- package/dist/components/charts/network/SankeyDiagram.d.ts +10 -2
- package/dist/components/charts/network/TreeDiagram.d.ts +1 -1
- package/dist/components/charts/network/Treemap.d.ts +1 -1
- package/dist/components/charts/network/useForceLayout.d.ts +17 -0
- package/dist/components/charts/ordinal/BarChart.d.ts +22 -1
- package/dist/components/charts/ordinal/BoxPlot.d.ts +1 -1
- package/dist/components/charts/ordinal/DonutChart.d.ts +1 -1
- package/dist/components/charts/ordinal/DotPlot.d.ts +1 -1
- package/dist/components/charts/ordinal/FunnelChart.d.ts +1 -1
- package/dist/components/charts/ordinal/GroupedBarChart.d.ts +12 -1
- package/dist/components/charts/ordinal/Histogram.d.ts +1 -1
- package/dist/components/charts/ordinal/PieChart.d.ts +1 -1
- package/dist/components/charts/ordinal/RidgelinePlot.d.ts +1 -1
- package/dist/components/charts/ordinal/StackedBarChart.d.ts +12 -1
- package/dist/components/charts/ordinal/SwarmPlot.d.ts +1 -1
- package/dist/components/charts/ordinal/SwimlaneChart.d.ts +1 -1
- package/dist/components/charts/ordinal/ViolinPlot.d.ts +1 -1
- package/dist/components/charts/physics/ChainReactionChart.d.ts +9 -0
- package/dist/components/charts/physics/CollisionSwarmChart.capability.d.ts +2 -0
- package/dist/components/charts/physics/CollisionSwarmChart.d.ts +54 -0
- package/dist/components/charts/physics/EventDropChart.capability.d.ts +2 -0
- package/dist/components/charts/physics/EventDropChart.d.ts +60 -0
- package/dist/components/charts/physics/GaltonBoardChart.capability.d.ts +2 -0
- package/dist/components/charts/physics/GaltonBoardChart.d.ts +74 -0
- package/dist/components/charts/physics/GauntletChart.capability.d.ts +2 -0
- package/dist/components/charts/physics/GauntletChart.d.ts +73 -0
- package/dist/components/charts/physics/PhysicalFlowChart.capability.d.ts +2 -0
- package/dist/components/charts/physics/PhysicalFlowChart.d.ts +63 -0
- package/dist/components/charts/physics/PhysicsCustomChart.d.ts +99 -0
- package/dist/components/charts/physics/PhysicsPileChart.capability.d.ts +2 -0
- package/dist/components/charts/physics/PhysicsPileChart.d.ts +60 -0
- package/dist/components/charts/physics/ProcessFlowChart.capability.d.ts +2 -0
- package/dist/components/charts/physics/ProcessFlowChart.d.ts +96 -0
- package/dist/components/charts/physics/chainReactionOverlay.d.ts +22 -0
- package/dist/components/charts/physics/chainReactionRuntime.d.ts +37 -0
- package/dist/components/charts/physics/chainReactionTypes.d.ts +97 -0
- package/dist/components/charts/physics/collisionSwarmPhysics.d.ts +27 -0
- package/dist/components/charts/physics/dependencyMachine.d.ts +188 -0
- package/dist/components/charts/physics/eventDropPhysics.d.ts +64 -0
- package/dist/components/charts/physics/galtonBoardPhysics.d.ts +28 -0
- package/dist/components/charts/physics/gauntletChartProps.d.ts +67 -0
- package/dist/components/charts/physics/gauntletChrome.d.ts +33 -0
- package/dist/components/charts/physics/gauntletController.d.ts +73 -0
- package/dist/components/charts/physics/gauntletEffects.d.ts +36 -0
- package/dist/components/charts/physics/gauntletPhysics.d.ts +71 -0
- package/dist/components/charts/physics/gauntletRuntime.d.ts +42 -0
- package/dist/components/charts/physics/gauntletTypes.d.ts +213 -0
- package/dist/components/charts/physics/physicalFlowPhysics.d.ts +57 -0
- package/dist/components/charts/physics/physicsChartShared.d.ts +57 -0
- package/dist/components/charts/physics/physicsChartUtils.d.ts +18 -0
- package/dist/components/charts/physics/physicsCustomLayout.d.ts +32 -0
- package/dist/components/charts/physics/physicsEncoding.d.ts +142 -0
- package/dist/components/charts/physics/physicsHocHandle.d.ts +53 -0
- package/dist/components/charts/physics/physicsHocUtils.d.ts +128 -0
- package/dist/components/charts/physics/physicsPilePhysics.d.ts +41 -0
- package/dist/components/charts/physics/physicsProcessPrimitives.d.ts +38 -0
- package/dist/components/charts/physics/processFlowPhysics.d.ts +97 -0
- package/dist/components/charts/realtime/RealtimeHeatmap.d.ts +9 -1
- package/dist/components/charts/realtime/RealtimeHistogram.d.ts +9 -1
- package/dist/components/charts/realtime/RealtimeLineChart.d.ts +9 -1
- package/dist/components/charts/realtime/RealtimeSwarmChart.d.ts +16 -2
- package/dist/components/charts/realtime/RealtimeWaterfallChart.d.ts +9 -1
- package/dist/components/charts/shared/AnnotationLabel.d.ts +88 -0
- package/dist/components/charts/shared/annotationActivation.d.ts +35 -0
- package/dist/components/charts/shared/annotationLabelLayout.d.ts +5 -0
- package/dist/components/charts/shared/annotationRules.d.ts +2 -1
- package/dist/components/charts/shared/auditMobileVisualization.d.ts +91 -0
- package/dist/components/charts/shared/chartDefinitionPilot.d.ts +145 -0
- package/dist/components/charts/shared/chartFamilySets.d.ts +20 -0
- package/dist/components/charts/shared/chartSelectionUtils.d.ts +4 -0
- package/dist/components/charts/shared/chartSpecCore.d.ts +165 -0
- package/dist/components/charts/shared/chartSpecs.d.ts +8 -127
- package/dist/components/charts/shared/chartSpecsGeo.d.ts +2 -0
- package/dist/components/charts/shared/chartSpecsNetwork.d.ts +2 -0
- package/dist/components/charts/shared/chartSpecsOrdinal.d.ts +2 -0
- package/dist/components/charts/shared/chartSpecsPhysics.d.ts +2 -0
- package/dist/components/charts/shared/chartSpecsRealtime.d.ts +2 -0
- package/dist/components/charts/shared/chartSpecsValue.d.ts +2 -0
- package/dist/components/charts/shared/chartSpecsXY.d.ts +2 -0
- package/dist/components/charts/shared/colorContrast.d.ts +3 -0
- package/dist/components/charts/shared/colorUtils.d.ts +16 -1
- package/dist/components/charts/shared/datumTypes.d.ts +2 -0
- package/dist/components/charts/shared/diagnoseAnnotationChecks.d.ts +6 -0
- package/dist/components/charts/shared/diagnoseConfig.d.ts +9 -14
- package/dist/components/charts/shared/diagnoseMisleadingChecks.d.ts +9 -0
- package/dist/components/charts/shared/diagnosePhysicsChecks.d.ts +3 -0
- package/dist/components/charts/shared/diagnoseTypes.d.ts +10 -0
- package/dist/components/charts/shared/formatUtils.d.ts +3 -3
- package/dist/components/charts/shared/hatchFill.d.ts +87 -0
- package/dist/components/charts/shared/hooks.d.ts +34 -10
- package/dist/components/charts/shared/knownChartComponents.d.ts +9 -0
- package/dist/components/charts/shared/leastSquaresRegression.d.ts +16 -0
- package/dist/components/charts/shared/mergeShapeStyle.d.ts +3 -2
- package/dist/components/charts/shared/motionEncoding.d.ts +145 -0
- package/dist/components/charts/shared/responsiveRules.d.ts +56 -0
- package/dist/components/charts/shared/semanticInteractions.d.ts +42 -0
- package/dist/components/charts/shared/sparseArray.d.ts +1 -1
- package/dist/components/charts/shared/streamPropsHelpers.d.ts +17 -5
- package/dist/components/charts/shared/styleRules.d.ts +205 -0
- package/dist/components/charts/shared/temporalStrings.d.ts +7 -0
- package/dist/components/charts/shared/tooltipUtils.d.ts +22 -9
- package/dist/components/charts/shared/types.d.ts +58 -7
- package/dist/components/charts/shared/useAreaSeriesSetup.d.ts +16 -2
- package/dist/components/charts/shared/useChartSetup.d.ts +11 -4
- package/dist/components/charts/shared/useCustomChartSetup.d.ts +17 -5
- package/dist/components/charts/shared/useFrameImperativeHandle.d.ts +1 -2
- package/dist/components/charts/shared/useLikertAggregation.d.ts +4 -4
- package/dist/components/charts/shared/useNetworkChartSetup.d.ts +6 -2
- package/dist/components/charts/shared/useOrdinalBrush.d.ts +2 -1
- package/dist/components/charts/shared/useOrdinalPieceStyle.d.ts +25 -2
- package/dist/components/charts/shared/useStreamingLegend.d.ts +2 -2
- package/dist/components/charts/shared/useSyncedPushData.d.ts +49 -0
- package/dist/components/charts/shared/useXYLineStyle.d.ts +10 -0
- package/dist/components/charts/shared/useXYPointStyle.d.ts +19 -1
- package/dist/components/charts/shared/validateChartData.d.ts +7 -5
- package/dist/components/charts/shared/validationMap.d.ts +7 -9
- package/dist/components/charts/shared/validationMap.generated.d.ts +6 -0
- package/dist/components/charts/shared/withChartWrapper.d.ts +4 -3
- package/dist/components/charts/value/targetPresentation.d.ts +22 -0
- package/dist/components/charts/value/types.d.ts +5 -6
- package/dist/components/charts/xy/AreaChart.d.ts +9 -1
- package/dist/components/charts/xy/BubbleChart.d.ts +10 -1
- package/dist/components/charts/xy/ConnectedScatterplot.d.ts +7 -0
- package/dist/components/charts/xy/DifferenceChart.d.ts +1 -52
- package/dist/components/charts/xy/Heatmap.d.ts +2 -2
- package/dist/components/charts/xy/LineChart.d.ts +12 -1
- package/dist/components/charts/xy/MinimapChart.d.ts +1 -1
- package/dist/components/charts/xy/MultiAxisLineChart.d.ts +2 -2
- package/dist/components/charts/xy/QuadrantChart.d.ts +8 -1
- package/dist/components/charts/xy/Scatterplot.d.ts +11 -1
- package/dist/components/charts/xy/ScatterplotMatrix.d.ts +11 -1
- package/dist/components/charts/xy/StackedAreaChart.d.ts +16 -4
- package/dist/components/charts/xy/differenceSegments.d.ts +49 -0
- package/dist/components/charts/xy/scatterplotMatrixInteractionTypes.d.ts +12 -0
- package/dist/components/controls/SentenceFilter.d.ts +97 -0
- package/dist/components/controls/controlAudit.d.ts +24 -0
- package/dist/components/controls/controlContract.d.ts +57 -0
- package/dist/components/data/fromFlintChart.d.ts +74 -0
- package/dist/components/data/fromVegaLite.d.ts +46 -9
- package/dist/components/data/portability/index.d.ts +6 -3
- package/dist/components/data/portability/result.d.ts +52 -0
- package/dist/components/data/portability/spec.d.ts +31 -0
- package/dist/components/data/portability/vegaLite.d.ts +24 -6
- package/dist/components/export/chartConfig.d.ts +11 -0
- package/dist/components/realtime/types.d.ts +11 -0
- package/dist/components/recipes/annotationLayout.d.ts +29 -0
- package/dist/components/recipes/axisFixedForce.d.ts +119 -0
- package/dist/components/recipes/{gofishBoba.d.ts → boba.d.ts} +2 -2
- package/dist/components/recipes/cyclical.d.ts +39 -0
- package/dist/components/recipes/edgeRouter.d.ts +103 -0
- package/dist/components/recipes/forceLayout.d.ts +48 -0
- package/dist/components/recipes/forceLayoutAsync.d.ts +17 -0
- package/dist/components/recipes/gofishBobaHandwritten.d.ts +3 -0
- package/dist/components/recipes/gofishDisplayListFixtures.generated.d.ts +37 -0
- package/dist/components/recipes/gofishIR.d.ts +178 -132
- package/dist/components/recipes/gofishIRExamples.d.ts +30 -81
- package/dist/components/recipes/intervalLanes.d.ts +87 -0
- package/dist/components/recipes/intervals.d.ts +80 -0
- package/dist/components/recipes/isometricLandmarks.d.ts +88 -0
- package/dist/components/recipes/isotypeGlyphs.d.ts +17 -0
- package/dist/components/recipes/mobileAnnotationStrategy.d.ts +48 -0
- package/dist/components/recipes/mobileChartFamilyRecipes.d.ts +59 -0
- package/dist/components/recipes/networkAnalysis.d.ts +102 -0
- package/dist/components/recipes/networkLayouts.d.ts +83 -0
- package/dist/components/recipes/physics.d.ts +122 -0
- package/dist/components/recipes/physicsReference.d.ts +102 -0
- package/dist/components/recipes/processAggregates.d.ts +32 -0
- package/dist/components/recipes/processChrome.d.ts +67 -0
- package/dist/components/recipes/processJourney.d.ts +54 -0
- package/dist/components/recipes/processPhysics.d.ts +300 -0
- package/dist/components/recipes/processVolumeGeometry.d.ts +28 -0
- package/dist/components/recipes/radialCoords.d.ts +69 -0
- package/dist/components/recipes/random.d.ts +2 -0
- package/dist/components/recipes/recipeChrome.d.ts +91 -0
- package/dist/components/recipes/recipeGlyph.d.ts +42 -0
- package/dist/components/recipes/recipeLegend.d.ts +53 -1
- package/dist/components/recipes/recipeUtils.d.ts +52 -0
- package/dist/components/recipes/runs.d.ts +59 -0
- package/dist/components/recipes/tokenEncoding.d.ts +157 -0
- package/dist/components/recipes/tokenLayer.d.ts +79 -0
- package/dist/components/recipes/unitize.d.ts +108 -0
- package/dist/components/recipes/vector.d.ts +28 -0
- package/dist/components/recipes/waffle.d.ts +43 -0
- package/dist/components/rough/createRoughRenderMode.d.ts +46 -0
- package/dist/components/semiotic-ai-core.d.ts +47 -0
- package/dist/components/semiotic-ai.d.ts +53 -9
- package/dist/components/semiotic-controls.d.ts +20 -0
- package/dist/components/semiotic-experimental.d.ts +38 -9
- package/dist/components/semiotic-geo.d.ts +15 -0
- package/dist/components/semiotic-network.d.ts +15 -0
- package/dist/components/semiotic-ordinal.d.ts +14 -0
- package/dist/components/semiotic-physics-matter.d.ts +10 -0
- package/dist/components/semiotic-physics-rapier.d.ts +9 -0
- package/dist/components/semiotic-physics.d.ts +60 -0
- package/dist/components/semiotic-realtime-core.d.ts +34 -0
- package/dist/components/semiotic-realtime-react.d.ts +10 -0
- package/dist/components/semiotic-realtime.d.ts +4 -30
- package/dist/components/semiotic-recipes-core.d.ts +92 -0
- package/dist/components/semiotic-recipes-react.d.ts +7 -0
- package/dist/components/semiotic-recipes.d.ts +4 -43
- package/dist/components/semiotic-rough.d.ts +4 -0
- package/dist/components/semiotic-server-edge.d.ts +8 -0
- package/dist/components/semiotic-server-node.d.ts +5 -0
- package/dist/components/semiotic-server.d.ts +2 -2
- package/dist/components/semiotic-themes-core.d.ts +53 -0
- package/dist/components/semiotic-themes-react.d.ts +4 -0
- package/dist/components/semiotic-themes.d.ts +6 -76
- package/dist/components/semiotic-utils-core.d.ts +50 -0
- package/dist/components/semiotic-utils-react.d.ts +5 -0
- package/dist/components/semiotic-utils.d.ts +3 -39
- package/dist/components/semiotic-xy.d.ts +12 -0
- package/dist/components/semiotic.d.ts +44 -8
- package/dist/components/server/animatedGif.d.ts +36 -0
- package/dist/components/server/optionalImageTypes.d.ts +37 -0
- package/dist/components/server/renderEvidence.d.ts +1 -1
- package/dist/components/server/renderToStaticSVG.d.ts +3 -35
- package/dist/components/server/serverChartConfigShared.d.ts +21 -0
- package/dist/components/server/serverChartConfigs.d.ts +22 -12
- package/dist/components/server/serverChartConfigsCustom.d.ts +5 -0
- package/dist/components/server/serverChartConfigsGeo.d.ts +9 -0
- package/dist/components/server/serverChartConfigsNetwork.d.ts +8 -0
- package/dist/components/server/serverChartConfigsOrdinal.d.ts +16 -0
- package/dist/components/server/serverChartConfigsPhysics.d.ts +9 -0
- package/dist/components/server/serverChartConfigsXY.d.ts +11 -0
- package/dist/components/server/staticAnnotations.d.ts +6 -3
- package/dist/components/server/staticGeo.d.ts +4 -0
- package/dist/components/server/staticLegend.d.ts +2 -2
- package/dist/components/server/staticNetwork.d.ts +8 -0
- package/dist/components/server/staticOrdinal.d.ts +11 -0
- package/dist/components/server/staticPhysics.d.ts +3 -0
- package/dist/components/server/staticSVGChrome.d.ts +110 -0
- package/dist/components/server/staticXY.d.ts +4 -0
- package/dist/components/store/ObservationStore.d.ts +23 -2
- package/dist/components/store/themeSerialization.d.ts +32 -0
- package/dist/components/store/useChartInterrogation.d.ts +9 -0
- package/dist/components/stream/AccessibleDataTable.d.ts +7 -23
- package/dist/components/stream/AriaLiveTooltip.d.ts +9 -0
- package/dist/components/stream/CanvasHitTester.d.ts +4 -4
- package/dist/components/stream/DataSourceAdapter.d.ts +1 -1
- package/dist/components/stream/FocusRing.d.ts +4 -2
- package/dist/components/stream/FrameRuntime.d.ts +57 -0
- package/dist/components/stream/GeoCanvasHitTester.d.ts +1 -1
- package/dist/components/stream/GeoParticlePool.d.ts +1 -1
- package/dist/components/stream/GeoPipelineStore.d.ts +62 -3
- package/dist/components/stream/GeoSVGOverlay.d.ts +64 -0
- package/dist/components/stream/NetworkCanvasHitTester.d.ts +2 -1
- package/dist/components/stream/NetworkPipelineStore.d.ts +44 -36
- package/dist/components/stream/NetworkSSRFrame.d.ts +17 -0
- package/dist/components/stream/NetworkSVGOverlay.d.ts +10 -1
- package/dist/components/stream/OrdinalCanvasHitTester.d.ts +2 -2
- package/dist/components/stream/OrdinalPipelineStore.d.ts +55 -11
- package/dist/components/stream/OrdinalSVGOverlay.d.ts +9 -1
- package/dist/components/stream/OrdinalStyleResolver.d.ts +12 -0
- package/dist/components/stream/ParticlePool.d.ts +1 -1
- package/dist/components/stream/PipelineStore.d.ts +81 -174
- package/dist/components/stream/SVGOverlay.d.ts +6 -0
- package/dist/components/stream/SceneGraph.d.ts +12 -4
- package/dist/components/stream/StreamGeoFrame.d.ts +1 -1
- package/dist/components/stream/StreamNetworkFrame.d.ts +1 -1
- package/dist/components/stream/StreamOrdinalFrame.d.ts +1 -1
- package/dist/components/stream/StreamXYFrame.d.ts +2 -18
- package/dist/components/stream/accessibleDataRows.d.ts +33 -0
- package/dist/components/stream/accessorUtils.d.ts +25 -12
- package/dist/components/stream/annotationAccessorResolver.d.ts +2 -2
- package/dist/components/stream/brushAccessibility.d.ts +25 -0
- package/dist/components/stream/canvasBackground.d.ts +24 -0
- package/dist/components/stream/canvasSetup.d.ts +4 -1
- package/dist/components/stream/customLayoutFailure.d.ts +33 -0
- package/dist/components/stream/customLayoutPalette.d.ts +19 -9
- package/dist/components/stream/frameGraphics.d.ts +4 -0
- package/dist/components/stream/frameKeyboardNavigation.d.ts +45 -0
- package/dist/components/stream/frameThemeColors.d.ts +24 -0
- package/dist/components/stream/geoAnnotationAnchors.d.ts +14 -0
- package/dist/components/stream/geoCartogram.d.ts +17 -0
- package/dist/components/stream/geoCustomLayout.d.ts +59 -0
- package/dist/components/stream/geoDefaultTooltip.d.ts +11 -0
- package/dist/components/stream/geoFrameHelpers.d.ts +34 -0
- package/dist/components/stream/geoPipelineHelpers.d.ts +46 -0
- package/dist/components/stream/geoPipelineUpdateResults.d.ts +34 -0
- package/dist/components/stream/geoSceneBuilder.d.ts +16 -0
- package/dist/components/stream/geoTypes.d.ts +97 -15
- package/dist/components/stream/glyphDef.d.ts +98 -0
- package/dist/components/stream/hitTarget.d.ts +170 -0
- package/dist/components/stream/hitTestUtils.d.ts +2 -2
- package/dist/components/stream/hoverUtils.d.ts +7 -2
- package/dist/components/stream/keyboardNav.d.ts +4 -1
- package/dist/components/stream/layouts/forceLayoutPlugin.d.ts +9 -1
- package/dist/components/stream/layouts/forceLayoutWorkerClient.d.ts +58 -0
- package/dist/components/stream/layouts/hierarchyUtils.d.ts +2 -2
- package/dist/components/stream/networkBezier.d.ts +10 -0
- package/dist/components/stream/networkColorAccessors.d.ts +49 -0
- package/dist/components/stream/networkCustomLayoutRunner.d.ts +23 -0
- package/dist/components/stream/networkCustomRestyle.d.ts +15 -0
- package/dist/components/stream/networkDefaultTooltip.d.ts +10 -0
- package/dist/components/stream/networkFrameAnimation.d.ts +7 -0
- package/dist/components/stream/networkFrameHandleTypes.d.ts +39 -0
- package/dist/components/stream/networkFrameInteraction.d.ts +37 -0
- package/dist/components/stream/networkFrameObservations.d.ts +15 -0
- package/dist/components/stream/networkFramePaint.d.ts +52 -0
- package/dist/components/stream/networkInteractionTypes.d.ts +26 -0
- package/dist/components/stream/networkPipelineConfig.d.ts +22 -0
- package/dist/components/stream/networkPipelineHelpers.d.ts +12 -0
- package/dist/components/stream/networkPipelineUpdateResults.d.ts +38 -0
- package/dist/components/stream/networkRealtimeEncoding.d.ts +41 -0
- package/dist/components/stream/networkTypes.d.ts +103 -51
- package/dist/components/stream/ordinalCanvasRenderers.d.ts +7 -0
- package/dist/components/stream/ordinalDataIndex.d.ts +5 -0
- package/dist/components/stream/ordinalDefaultTooltip.d.ts +10 -0
- package/dist/components/stream/ordinalDomain.d.ts +38 -0
- package/dist/components/stream/ordinalPipelineUpdateResults.d.ts +31 -0
- package/dist/components/stream/ordinalPulse.d.ts +10 -0
- package/dist/components/stream/ordinalPulseResources.d.ts +3 -0
- package/dist/components/stream/ordinalSceneBuilders/sceneBuilderMap.d.ts +5 -0
- package/dist/components/stream/ordinalSceneBuilders/types.d.ts +2 -2
- package/dist/components/stream/ordinalSpatialIndex.d.ts +9 -0
- package/dist/components/stream/ordinalTypes.d.ts +68 -9
- package/dist/components/stream/paintNeeds.d.ts +31 -0
- package/dist/components/stream/physics/CapacityQueueController.d.ts +5 -0
- package/dist/components/stream/physics/CapacityQueueTypes.d.ts +134 -0
- package/dist/components/stream/physics/MatterPhysicsEngineAdapter.d.ts +42 -0
- package/dist/components/stream/physics/PhysicsAccessibility.d.ts +48 -0
- package/dist/components/stream/physics/PhysicsAnnotations.d.ts +58 -0
- package/dist/components/stream/physics/PhysicsBodyBudget.d.ts +26 -0
- package/dist/components/stream/physics/PhysicsBodySpatialIndex.d.ts +10 -0
- package/dist/components/stream/physics/PhysicsCanvasTheme.d.ts +26 -0
- package/dist/components/stream/physics/PhysicsControllers.d.ts +75 -0
- package/dist/components/stream/physics/PhysicsEngineAdapter.d.ts +59 -0
- package/dist/components/stream/physics/PhysicsEngineConformance.d.ts +23 -0
- package/dist/components/stream/physics/PhysicsEvidence.d.ts +25 -0
- package/dist/components/stream/physics/PhysicsKernel.d.ts +207 -0
- package/dist/components/stream/physics/PhysicsOptionalEngineAdapters.d.ts +12 -0
- package/dist/components/stream/physics/PhysicsPipelineStore.d.ts +86 -0
- package/dist/components/stream/physics/PhysicsPipelineTypes.d.ts +181 -0
- package/dist/components/stream/physics/PhysicsSVGOverlay.d.ts +78 -0
- package/dist/components/stream/physics/PhysicsSediment.d.ts +69 -0
- package/dist/components/stream/physics/PhysicsSettledSVG.d.ts +18 -0
- package/dist/components/stream/physics/PhysicsSettledScene.d.ts +21 -0
- package/dist/components/stream/physics/PhysicsWorkerClient.d.ts +24 -0
- package/dist/components/stream/physics/PhysicsWorkerProtocol.d.ts +101 -0
- package/dist/components/stream/physics/PhysicsWorkerRuntime.d.ts +5 -0
- package/dist/components/stream/physics/RapierPhysicsEngineAdapter.d.ts +18 -0
- package/dist/components/stream/physics/ServiceOperationsControllers.d.ts +27 -0
- package/dist/components/stream/physics/ServiceOperationsTypes.d.ts +89 -0
- package/dist/components/stream/physics/StreamPhysicsFrame.d.ts +6 -0
- package/dist/components/stream/physics/StreamPhysicsTypes.d.ts +317 -0
- package/dist/components/stream/physics/physicsBodyCanvas.d.ts +27 -0
- package/dist/components/stream/physics/physicsFrameObservations.d.ts +19 -0
- package/dist/components/stream/physics/physicsFrameSetup.d.ts +4 -0
- package/dist/components/stream/physics/physicsPipelineControls.d.ts +4 -0
- package/dist/components/stream/physics/physicsPipelineHelpers.d.ts +41 -0
- package/dist/components/stream/physics/physicsPipelineObservations.d.ts +14 -0
- package/dist/components/stream/physics/physicsPipelineUpdateResults.d.ts +27 -0
- package/dist/components/stream/physics/physicsRegionRuntime.d.ts +54 -0
- package/dist/components/stream/physics/physicsSemanticUI.d.ts +20 -0
- package/dist/components/stream/physics/usePhysicsFrameLifecyclePolicy.d.ts +18 -0
- package/dist/components/stream/pipelineBufferUtils.d.ts +26 -0
- package/dist/components/stream/pipelineConfig.d.ts +179 -0
- package/dist/components/stream/pipelineDecay.d.ts +21 -3
- package/dist/components/stream/pipelineDomainResolution.d.ts +62 -0
- package/dist/components/stream/pipelineIdentityOps.d.ts +26 -0
- package/dist/components/stream/pipelinePulse.d.ts +17 -3
- package/dist/components/stream/pipelineRibbons.d.ts +41 -0
- package/dist/components/stream/pipelineSpatialIndex.d.ts +12 -0
- package/dist/components/stream/pipelineStoreUpdateResults.d.ts +33 -0
- package/dist/components/stream/pipelineStyleResolvers.d.ts +46 -0
- package/dist/components/stream/pipelineTransitions.d.ts +3 -1
- package/dist/components/stream/pipelineUpdateContract.d.ts +69 -0
- package/dist/components/stream/pipelineUpdateStore.d.ts +21 -0
- package/dist/components/stream/pulseFrameRefresh.d.ts +22 -0
- package/dist/components/stream/renderBackend.d.ts +27 -0
- package/dist/components/stream/renderers/canvasRenderHelpers.d.ts +15 -1
- package/dist/components/stream/renderers/geoCanvasRenderer.d.ts +3 -2
- package/dist/components/stream/renderers/glyphCanvasRenderer.d.ts +6 -0
- package/dist/components/stream/renderers/networkParticleRenderer.d.ts +1 -1
- package/dist/components/stream/renderers/resolveCSSColor.d.ts +6 -0
- package/dist/components/stream/sceneRenderBackendTypes.d.ts +28 -0
- package/dist/components/stream/sceneRevisionDiagnostics.d.ts +45 -0
- package/dist/components/stream/streamSemanticTypes.d.ts +16 -0
- package/dist/components/stream/streamStoreSync.d.ts +37 -0
- package/dist/components/stream/streamThemeTypes.d.ts +14 -0
- package/dist/components/stream/svgOverlayUtils.d.ts +10 -0
- package/dist/components/stream/test-utils/frameScheduler.d.ts +12 -0
- package/dist/components/stream/test-utils/revisionConsumption.d.ts +13 -0
- package/dist/components/stream/titleLayout.d.ts +31 -0
- package/dist/components/stream/types.d.ts +165 -72
- package/dist/components/stream/useCanvasFrameHost.d.ts +71 -0
- package/dist/components/stream/useFrame.d.ts +44 -2
- package/dist/components/stream/useHydration.d.ts +6 -0
- package/dist/components/stream/useLegendCategoryEmission.d.ts +5 -0
- package/dist/components/stream/useSemanticFrameInteractions.d.ts +22 -0
- package/dist/components/stream/useUpdateResultSnapshot.d.ts +7 -0
- package/dist/components/stream/workerModuleUrl.d.ts +10 -0
- package/dist/components/stream/xyAnnotationAnchors.d.ts +13 -0
- package/dist/components/stream/xyCanvasRenderers.d.ts +7 -0
- package/dist/components/stream/xyCrosshair.d.ts +11 -0
- package/dist/components/stream/xyDateTicks.d.ts +9 -0
- package/dist/components/stream/xyDefaultTooltip.d.ts +10 -0
- package/dist/components/stream/xyFrameAxisTypes.d.ts +50 -0
- package/dist/components/stream/xySceneBuilders/types.d.ts +10 -9
- package/dist/controls.min.js +2 -0
- package/dist/controls.module.min.js +2 -0
- package/dist/forceLayoutWorker.js +1 -0
- package/dist/geo.min.js +1 -1
- package/dist/geo.module.min.js +1 -1
- package/dist/network.min.js +1 -1
- package/dist/network.module.min.js +1 -1
- package/dist/ordinal.min.js +1 -1
- package/dist/ordinal.module.min.js +1 -1
- package/dist/physics-matter.min.js +1 -0
- package/dist/physics-matter.module.min.js +1 -0
- package/dist/physics-rapier.min.js +1 -0
- package/dist/physics-rapier.module.min.js +1 -0
- package/dist/physics.min.js +2 -0
- package/dist/physics.module.min.js +2 -0
- package/dist/physicsWorker.js +1 -0
- package/dist/realtime.min.js +1 -1
- package/dist/realtime.module.min.js +1 -1
- package/dist/rough.min.js +1 -0
- package/dist/rough.module.min.js +1 -0
- package/dist/semiotic-ai-chunk-OG7BQUUW.module.min.js +2 -0
- package/dist/semiotic-ai-core.d.ts +47 -0
- package/dist/semiotic-ai-core.min.js +1 -0
- package/dist/semiotic-ai-core.module.min.js +1 -0
- package/dist/semiotic-ai-statisticalOverlays-CY4WKR4A.module.min.js +2 -0
- package/dist/semiotic-ai.d.ts +53 -9
- package/dist/semiotic-ai.min.js +1 -1
- package/dist/semiotic-ai.module.min.js +1 -1
- package/dist/semiotic-chunk-3FSVZ46U.module.min.js +2 -0
- package/dist/semiotic-controls.d.ts +20 -0
- package/dist/semiotic-data.min.js +1 -1
- package/dist/semiotic-data.module.min.js +1 -1
- package/dist/semiotic-experimental.d.ts +38 -9
- package/dist/semiotic-experimental.min.js +1 -1
- package/dist/semiotic-experimental.module.min.js +1 -1
- package/dist/semiotic-geo.d.ts +15 -0
- package/dist/semiotic-network.d.ts +15 -0
- package/dist/semiotic-ordinal.d.ts +14 -0
- package/dist/semiotic-physics-matter.d.ts +10 -0
- package/dist/semiotic-physics-rapier.d.ts +9 -0
- package/dist/semiotic-physics.d.ts +60 -0
- package/dist/semiotic-realtime-core.d.ts +34 -0
- package/dist/semiotic-realtime-core.min.js +1 -0
- package/dist/semiotic-realtime-core.module.min.js +1 -0
- package/dist/semiotic-realtime-react.d.ts +10 -0
- package/dist/semiotic-realtime-react.min.js +2 -0
- package/dist/semiotic-realtime-react.module.min.js +2 -0
- package/dist/semiotic-realtime.d.ts +4 -30
- package/dist/semiotic-recipes-core.d.ts +92 -0
- package/dist/semiotic-recipes-core.min.js +1 -0
- package/dist/semiotic-recipes-core.module.min.js +1 -0
- package/dist/semiotic-recipes-react.d.ts +7 -0
- package/dist/semiotic-recipes-react.min.js +2 -0
- package/dist/semiotic-recipes-react.module.min.js +2 -0
- package/dist/semiotic-recipes.d.ts +4 -43
- package/dist/semiotic-recipes.min.js +1 -1
- package/dist/semiotic-recipes.module.min.js +1 -1
- package/dist/semiotic-rough.d.ts +4 -0
- package/dist/semiotic-server-edge.d.ts +8 -0
- package/dist/semiotic-server-edge.min.js +1 -0
- package/dist/semiotic-server-edge.module.min.js +1 -0
- package/dist/semiotic-server-node.d.ts +5 -0
- package/dist/semiotic-server-node.min.js +1 -0
- package/dist/semiotic-server-node.module.min.js +1 -0
- package/dist/semiotic-server.d.ts +2 -2
- package/dist/semiotic-statisticalOverlays-UOMSFKVJ.module.min.js +2 -0
- package/dist/semiotic-themes-core.d.ts +53 -0
- package/dist/semiotic-themes-core.min.js +1 -0
- package/dist/semiotic-themes-core.module.min.js +1 -0
- package/dist/semiotic-themes-react.d.ts +4 -0
- package/dist/semiotic-themes-react.min.js +2 -0
- package/dist/semiotic-themes-react.module.min.js +2 -0
- package/dist/semiotic-themes.d.ts +6 -76
- package/dist/semiotic-themes.min.js +1 -2
- package/dist/semiotic-themes.module.min.js +1 -2
- package/dist/semiotic-utils-core.d.ts +50 -0
- package/dist/semiotic-utils-core.min.js +1 -0
- package/dist/semiotic-utils-core.module.min.js +1 -0
- package/dist/semiotic-utils-react.d.ts +5 -0
- package/dist/semiotic-utils-react.min.js +2 -0
- package/dist/semiotic-utils-react.module.min.js +2 -0
- package/dist/semiotic-utils.d.ts +3 -39
- package/dist/semiotic-utils.min.js +1 -2
- package/dist/semiotic-utils.module.min.js +1 -2
- package/dist/semiotic-value.min.js +1 -1
- package/dist/semiotic-value.module.min.js +1 -1
- package/dist/semiotic-xy.d.ts +12 -0
- package/dist/semiotic.d.ts +44 -8
- package/dist/semiotic.min.js +1 -1
- package/dist/semiotic.module.min.js +1 -1
- package/dist/server.min.js +1 -1
- package/dist/server.module.min.js +1 -1
- package/dist/test-utils/capturedFrameProps.d.ts +67 -0
- package/dist/test-utils/frameMock.d.ts +12 -9
- package/dist/xy-chunk-IWD6IB6V.module.min.js +2 -0
- package/dist/xy-statisticalOverlays-7RWG6LJT.module.min.js +2 -0
- package/dist/xy.min.js +1 -1
- package/dist/xy.module.min.js +1 -1
- package/package.json +259 -88
- package/spec/README.md +152 -0
- package/spec/bindings/README.md +35 -0
- package/spec/bindings/vega-lite.mjs +112 -0
- package/spec/v0.1/annotation-provenance.schema.json +127 -0
- package/spec/v0.1/audience-profile.schema.json +67 -0
- package/spec/v0.1/chart-capability.schema.json +186 -0
- package/dist/components/recipes/gofish.d.ts +0 -207
- package/dist/components/recipes/gofishInterpreter.d.ts +0 -52
- package/dist/components/recipes/gofishLambdas.d.ts +0 -145
- package/dist/semiotic-ai-semiotic-ai-u954ylUn.js +0 -2
- package/dist/semiotic-ai-statisticalOverlays-CU7jW05Q.js +0 -1
- package/dist/semiotic-semiotic-BmrYbi99.js +0 -2
- package/dist/semiotic-statisticalOverlays-IjZw8Lsu.js +0 -1
- package/dist/xy-semiotic-xy-Dufu3D0-.js +0 -2
- package/dist/xy-statisticalOverlays-3Ni9bRph.js +0 -1
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import type { PhysicsPipelineConfig, PhysicsPipelineSnapshot, PhysicsQueuedSpawn, PhysicsSpawnPacingOptions } from "./PhysicsPipelineStore";
|
|
2
|
+
import { type PhysicsWorkerCommand, type PhysicsWorkerFrame, type PhysicsWorkerResponsePayload } from "./PhysicsWorkerProtocol";
|
|
3
|
+
export declare function canUsePhysicsWorker(): boolean;
|
|
4
|
+
export declare function createPhysicsWorker(): Worker;
|
|
5
|
+
export declare class PhysicsWorkerSession {
|
|
6
|
+
private nextRequestId;
|
|
7
|
+
private pending;
|
|
8
|
+
private worker;
|
|
9
|
+
constructor(worker?: Worker);
|
|
10
|
+
request(command: PhysicsWorkerCommand, signal?: AbortSignal): Promise<PhysicsWorkerResponsePayload>;
|
|
11
|
+
init(config?: PhysicsPipelineConfig, initialSpawns?: PhysicsQueuedSpawn[], initialSpawnPacing?: PhysicsSpawnPacingOptions, signal?: AbortSignal): Promise<PhysicsWorkerFrame>;
|
|
12
|
+
restore(snapshot: PhysicsPipelineSnapshot, signal?: AbortSignal): Promise<PhysicsWorkerFrame>;
|
|
13
|
+
initFromSnapshot(config: PhysicsPipelineConfig | undefined, snapshot: PhysicsPipelineSnapshot, signal?: AbortSignal): Promise<PhysicsWorkerFrame>;
|
|
14
|
+
enqueue(spawns: PhysicsQueuedSpawn[], pacing?: PhysicsSpawnPacingOptions, signal?: AbortSignal): Promise<PhysicsWorkerFrame>;
|
|
15
|
+
tick(deltaSeconds: number, signal?: AbortSignal): Promise<PhysicsWorkerFrame>;
|
|
16
|
+
settle(maxSteps?: number, signal?: AbortSignal): Promise<PhysicsWorkerFrame>;
|
|
17
|
+
snapshot(signal?: AbortSignal): Promise<PhysicsPipelineSnapshot>;
|
|
18
|
+
remove(ids: string[], signal?: AbortSignal): Promise<{
|
|
19
|
+
frame: PhysicsWorkerFrame;
|
|
20
|
+
removed: string[];
|
|
21
|
+
}>;
|
|
22
|
+
terminate(): void;
|
|
23
|
+
private rejectAll;
|
|
24
|
+
}
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
import type { PhysicsBodyState } from "./PhysicsKernel";
|
|
2
|
+
import type { PhysicsPipelineConfig, PhysicsPipelineObservationOptions, PhysicsPipelineSnapshot, PhysicsPipelineTickResult, PhysicsQueuedSpawn, PhysicsSpawnPacingOptions } from "./PhysicsPipelineStore";
|
|
3
|
+
import type { PhysicsSedimentBinSnapshot } from "./PhysicsSediment";
|
|
4
|
+
export type PhysicsExecution = "auto" | "worker" | "sync";
|
|
5
|
+
export declare const DEFAULT_PHYSICS_WORKER_BODY_THRESHOLD = 2500;
|
|
6
|
+
export type PhysicsWorkerObservationOptions = Omit<PhysicsPipelineObservationOptions, "onObservation" | "onSimulationStateChange">;
|
|
7
|
+
export type PhysicsWorkerSedimentConfig = false | {
|
|
8
|
+
binAccessor?: string;
|
|
9
|
+
labelAccessor?: string;
|
|
10
|
+
valueAccessor?: number | string;
|
|
11
|
+
retainBodyIds?: number;
|
|
12
|
+
};
|
|
13
|
+
export type PhysicsWorkerPipelineConfig = Omit<PhysicsPipelineConfig, "engine" | "observation" | "sediment"> & {
|
|
14
|
+
observation?: PhysicsWorkerObservationOptions;
|
|
15
|
+
sediment?: PhysicsWorkerSedimentConfig;
|
|
16
|
+
};
|
|
17
|
+
export interface PhysicsWorkerFrame {
|
|
18
|
+
bodies: PhysicsBodyState[];
|
|
19
|
+
ids: string[];
|
|
20
|
+
positions: Float32Array;
|
|
21
|
+
result: PhysicsPipelineTickResult;
|
|
22
|
+
sediment: PhysicsSedimentBinSnapshot[];
|
|
23
|
+
sleeping: Uint8Array;
|
|
24
|
+
snapshot?: PhysicsPipelineSnapshot;
|
|
25
|
+
velocities: Float32Array;
|
|
26
|
+
}
|
|
27
|
+
export type PhysicsWorkerCommand = {
|
|
28
|
+
type: "init";
|
|
29
|
+
config?: PhysicsWorkerPipelineConfig;
|
|
30
|
+
initialSpawns?: PhysicsQueuedSpawn[];
|
|
31
|
+
initialSpawnPacing?: PhysicsSpawnPacingOptions;
|
|
32
|
+
snapshot?: PhysicsPipelineSnapshot;
|
|
33
|
+
} | {
|
|
34
|
+
type: "configure";
|
|
35
|
+
config: PhysicsWorkerPipelineConfig;
|
|
36
|
+
} | {
|
|
37
|
+
type: "enqueue";
|
|
38
|
+
spawns: PhysicsQueuedSpawn[];
|
|
39
|
+
pacing?: PhysicsSpawnPacingOptions;
|
|
40
|
+
} | {
|
|
41
|
+
type: "tick";
|
|
42
|
+
deltaSeconds: number;
|
|
43
|
+
} | {
|
|
44
|
+
type: "settle";
|
|
45
|
+
maxSteps?: number;
|
|
46
|
+
} | {
|
|
47
|
+
type: "snapshot";
|
|
48
|
+
} | {
|
|
49
|
+
type: "restore";
|
|
50
|
+
snapshot: PhysicsPipelineSnapshot;
|
|
51
|
+
} | {
|
|
52
|
+
type: "clear";
|
|
53
|
+
} | {
|
|
54
|
+
type: "remove";
|
|
55
|
+
ids: string[];
|
|
56
|
+
} | {
|
|
57
|
+
type: "applyImpulse";
|
|
58
|
+
id: string;
|
|
59
|
+
ix: number;
|
|
60
|
+
iy: number;
|
|
61
|
+
} | {
|
|
62
|
+
type: "setPaused";
|
|
63
|
+
paused: boolean;
|
|
64
|
+
} | {
|
|
65
|
+
type: "setVisible";
|
|
66
|
+
visible: boolean;
|
|
67
|
+
};
|
|
68
|
+
export interface PhysicsWorkerRequest {
|
|
69
|
+
command: PhysicsWorkerCommand;
|
|
70
|
+
requestId: number;
|
|
71
|
+
}
|
|
72
|
+
export type PhysicsWorkerResponsePayload = {
|
|
73
|
+
type: "frame";
|
|
74
|
+
frame: PhysicsWorkerFrame;
|
|
75
|
+
} | {
|
|
76
|
+
type: "removed";
|
|
77
|
+
frame: PhysicsWorkerFrame;
|
|
78
|
+
removed: string[];
|
|
79
|
+
} | {
|
|
80
|
+
type: "snapshot";
|
|
81
|
+
snapshot: PhysicsPipelineSnapshot;
|
|
82
|
+
};
|
|
83
|
+
export type PhysicsWorkerResponse = {
|
|
84
|
+
ok: true;
|
|
85
|
+
payload: PhysicsWorkerResponsePayload;
|
|
86
|
+
requestId: number;
|
|
87
|
+
} | {
|
|
88
|
+
error: {
|
|
89
|
+
message: string;
|
|
90
|
+
name?: string;
|
|
91
|
+
stack?: string;
|
|
92
|
+
};
|
|
93
|
+
ok: false;
|
|
94
|
+
requestId: number;
|
|
95
|
+
};
|
|
96
|
+
export declare function isPhysicsWorkerConfigSupported(config: PhysicsPipelineConfig | undefined): boolean;
|
|
97
|
+
export declare function isPhysicsWorkerPacingSupported(pacing: PhysicsSpawnPacingOptions | undefined): boolean;
|
|
98
|
+
export declare function createPhysicsWorkerConfig(config?: PhysicsPipelineConfig | undefined): PhysicsWorkerPipelineConfig;
|
|
99
|
+
export declare function shouldUsePhysicsWorker(execution: PhysicsExecution, liveBodies: number, queuedBodies?: number, threshold?: number): boolean;
|
|
100
|
+
export declare function packPhysicsWorkerFrame(result: PhysicsPipelineTickResult, bodies: PhysicsBodyState[], sediment?: PhysicsSedimentBinSnapshot[], snapshot?: PhysicsPipelineSnapshot): PhysicsWorkerFrame;
|
|
101
|
+
export declare function physicsWorkerFrameTransferables(frame: PhysicsWorkerFrame): Transferable[];
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { type PhysicsWorkerCommand, type PhysicsWorkerResponsePayload } from "./PhysicsWorkerProtocol";
|
|
2
|
+
export interface PhysicsWorkerRuntime {
|
|
3
|
+
handle: (command: PhysicsWorkerCommand) => PhysicsWorkerResponsePayload;
|
|
4
|
+
}
|
|
5
|
+
export declare function createPhysicsWorkerRuntime(): PhysicsWorkerRuntime;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { PhysicsEngineCapabilities } from "./PhysicsEngineAdapter";
|
|
2
|
+
export declare const RAPIER_PHYSICS_PACKAGE = "@dimforge/rapier2d-compat";
|
|
3
|
+
export declare const RAPIER_PHYSICS_IMPORT_PATH = "semiotic/physics/rapier";
|
|
4
|
+
export declare const RAPIER_PHYSICS_ENGINE_DECISION: {
|
|
5
|
+
readonly selectedPackage: "@dimforge/rapier2d-compat";
|
|
6
|
+
readonly rejectedPackage: "@dimforge/rapier2d-deterministic";
|
|
7
|
+
readonly determinism: "tolerance";
|
|
8
|
+
readonly reason: "Use @dimforge/rapier2d-compat for the optional browser adapter path because it is the maintained npm/WASM package with standard bundler behavior. Treat Rapier visual/position conformance as tolerance-classed; keep the built-in kernel as the strict deterministic default.";
|
|
9
|
+
};
|
|
10
|
+
export declare const RAPIER_PHYSICS_CAPABILITIES: PhysicsEngineCapabilities;
|
|
11
|
+
export declare const RAPIER_PHYSICS_INSTALL: {
|
|
12
|
+
readonly engine: "Rapier 2D";
|
|
13
|
+
readonly importPath: "semiotic/physics/rapier";
|
|
14
|
+
readonly packageName: "@dimforge/rapier2d-compat";
|
|
15
|
+
readonly installCommand: "npm install @dimforge/rapier2d-compat";
|
|
16
|
+
};
|
|
17
|
+
export declare function loadRapierPhysicsPeer(): Promise<unknown>;
|
|
18
|
+
export declare function rapierPhysicsDependencyError(cause?: unknown): Error;
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import type { PhysicsController } from "./PhysicsControllers";
|
|
2
|
+
import type { DependencyGateOptions, DependencyGateSnapshot, ServiceLevelCaseInfo, ServiceLevelControllerOptions, ServiceLevelSnapshot, ServiceResourceAssignment, ServiceResourcePoolOptions, ServiceResourcePoolSnapshot } from "./ServiceOperationsTypes";
|
|
3
|
+
export interface ServiceResourcePoolController extends PhysicsController {
|
|
4
|
+
assign: (caseBodyId: string) => ServiceResourceAssignment | null;
|
|
5
|
+
release: (caseBodyId: string) => boolean;
|
|
6
|
+
getAssignment: (caseBodyId: string) => ServiceResourceAssignment | undefined;
|
|
7
|
+
getSnapshot: () => ServiceResourcePoolSnapshot;
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* Models finite, visible service resources. Assignment is intentionally
|
|
11
|
+
* explicit so domain controllers decide scheduling while this controller
|
|
12
|
+
* supplies physical tethers, return-to-home force, and resource evidence.
|
|
13
|
+
*/
|
|
14
|
+
export declare function createServiceResourcePoolController(options: ServiceResourcePoolOptions): ServiceResourcePoolController;
|
|
15
|
+
export interface ServiceLevelController extends PhysicsController {
|
|
16
|
+
protect: (bodyId: string) => boolean;
|
|
17
|
+
complete: (bodyId: string) => boolean;
|
|
18
|
+
getCase: (bodyId: string) => ServiceLevelCaseInfo | undefined;
|
|
19
|
+
getSnapshot: () => ServiceLevelSnapshot;
|
|
20
|
+
}
|
|
21
|
+
/** Tracks service-level outcomes independently from the force simulation. */
|
|
22
|
+
export declare function createServiceLevelController(options: ServiceLevelControllerOptions): ServiceLevelController;
|
|
23
|
+
export interface DependencyGateController extends PhysicsController {
|
|
24
|
+
getSnapshot: () => DependencyGateSnapshot;
|
|
25
|
+
}
|
|
26
|
+
/** Holds dependency-bound work until an external condition or scheduled recovery opens. */
|
|
27
|
+
export declare function createDependencyGateController(options: DependencyGateOptions): DependencyGateController;
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
import type { PhysicsBodyState, PhysicsColliderBodyFilter } from "./PhysicsKernel";
|
|
2
|
+
import type { StreamPhysicsRegionVector } from "./StreamPhysicsFrame";
|
|
3
|
+
export type ServiceLevelCaseState = "waiting" | "protected" | "unhappy" | "resolved" | "resolved-unhappy";
|
|
4
|
+
export interface ServiceResourceDefinition {
|
|
5
|
+
id: string;
|
|
6
|
+
/** Defaults to `id`; use this when the visual body has a different id. */
|
|
7
|
+
bodyId?: string;
|
|
8
|
+
/** Resting point used while the resource is unassigned. */
|
|
9
|
+
home: {
|
|
10
|
+
x: number;
|
|
11
|
+
y: number;
|
|
12
|
+
};
|
|
13
|
+
}
|
|
14
|
+
export interface ServiceResourceAssignment {
|
|
15
|
+
resourceId: string;
|
|
16
|
+
resourceBodyId: string;
|
|
17
|
+
caseBodyId: string;
|
|
18
|
+
assignedAt: number;
|
|
19
|
+
}
|
|
20
|
+
export interface ServiceResourcePoolSnapshot {
|
|
21
|
+
total: number;
|
|
22
|
+
available: number;
|
|
23
|
+
assigned: number;
|
|
24
|
+
assignments: ServiceResourceAssignment[];
|
|
25
|
+
simulatedAt: number;
|
|
26
|
+
metricRevision: number;
|
|
27
|
+
}
|
|
28
|
+
export interface ServiceResourcePoolOptions {
|
|
29
|
+
id?: string;
|
|
30
|
+
resources: readonly ServiceResourceDefinition[];
|
|
31
|
+
/** Pulls an assigned resource toward its case (default 0.45). */
|
|
32
|
+
assignmentForce?: number;
|
|
33
|
+
/** Place an assigned resource ahead of its case to express directional service. */
|
|
34
|
+
assignmentOffset?: StreamPhysicsRegionVector;
|
|
35
|
+
/** Returns an idle resource to its home point (default 0.35). */
|
|
36
|
+
returnForce?: number;
|
|
37
|
+
/** Small reciprocal force that makes an assignment readable as a tether. */
|
|
38
|
+
caseAttraction?: number;
|
|
39
|
+
}
|
|
40
|
+
export interface ServiceLevelCaseInfo {
|
|
41
|
+
bodyId: string;
|
|
42
|
+
openedAt: number;
|
|
43
|
+
deadlineAt: number;
|
|
44
|
+
state: ServiceLevelCaseState;
|
|
45
|
+
completedAt?: number;
|
|
46
|
+
protectedAt?: number;
|
|
47
|
+
}
|
|
48
|
+
export interface ServiceLevelSnapshot {
|
|
49
|
+
total: number;
|
|
50
|
+
waiting: number;
|
|
51
|
+
protected: number;
|
|
52
|
+
unhappy: number;
|
|
53
|
+
resolved: number;
|
|
54
|
+
resolvedUnhappy: number;
|
|
55
|
+
simulatedAt: number;
|
|
56
|
+
metricRevision: number;
|
|
57
|
+
}
|
|
58
|
+
export interface ServiceLevelControllerOptions {
|
|
59
|
+
id?: string;
|
|
60
|
+
/** Only matching bodies become service cases. */
|
|
61
|
+
bodyFilter?: PhysicsColliderBodyFilter;
|
|
62
|
+
/** String form reads `body.datum[field]`; values are simulated seconds. */
|
|
63
|
+
deadlineAccessor: string | ((body: PhysicsBodyState) => number | null | undefined);
|
|
64
|
+
/** Entering this region marks a case complete. Completion may also be explicit. */
|
|
65
|
+
completionRegionId?: string;
|
|
66
|
+
onStateChange?: (caseInfo: ServiceLevelCaseInfo) => void;
|
|
67
|
+
}
|
|
68
|
+
export interface DependencyGateSnapshot {
|
|
69
|
+
regionId: string;
|
|
70
|
+
isOpen: boolean;
|
|
71
|
+
blocked: number;
|
|
72
|
+
released: number;
|
|
73
|
+
simulatedAt: number;
|
|
74
|
+
metricRevision: number;
|
|
75
|
+
}
|
|
76
|
+
export interface DependencyGateOptions {
|
|
77
|
+
id?: string;
|
|
78
|
+
regionId: string;
|
|
79
|
+
bodyFilter?: PhysicsColliderBodyFilter;
|
|
80
|
+
/** Defaults to closed until `opensAt`; provide `isOpen` for live external state. */
|
|
81
|
+
opensAt?: number;
|
|
82
|
+
isOpen?: (simulatedAt: number) => boolean;
|
|
83
|
+
/** Pull strength toward the closed gate's center (default 0.4). */
|
|
84
|
+
holdForce?: number;
|
|
85
|
+
/** Applied once to every held body as the gate opens. */
|
|
86
|
+
releaseImpulse?: StreamPhysicsRegionVector;
|
|
87
|
+
onHeld?: (body: PhysicsBodyState) => void;
|
|
88
|
+
onReleased?: (body: PhysicsBodyState) => void;
|
|
89
|
+
}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
import type { StreamPhysicsFrameHandle, StreamPhysicsFrameProps } from "./StreamPhysicsTypes";
|
|
3
|
+
export type { PhysicsBodyMark, StreamPhysicsPopOptions } from "./physicsBodyCanvas";
|
|
4
|
+
export type { PhysicsBodySelection, PhysicsBodySemanticItemAccessor, PhysicsBodySemanticItemContext, PhysicsBodyStyleContext, PhysicsHoverData, PhysicsSemanticItem, StreamPhysicsBodyForce, StreamPhysicsBodyForceContext, StreamPhysicsBodyRegionState, StreamPhysicsExecutionState, StreamPhysicsFrameHandle, StreamPhysicsFrameProps, StreamPhysicsRegionEffect, StreamPhysicsRegionEffectContext, StreamPhysicsRegionEvent, StreamPhysicsRegionKind, StreamPhysicsRegionVector } from "./StreamPhysicsTypes";
|
|
5
|
+
export declare const StreamPhysicsFrame: React.NamedExoticComponent<StreamPhysicsFrameProps & React.RefAttributes<StreamPhysicsFrameHandle>>;
|
|
6
|
+
export default StreamPhysicsFrame;
|
|
@@ -0,0 +1,317 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Public types for StreamPhysicsFrame — region effects, body semantics,
|
|
3
|
+
* frame props / handle. Kept separate so region runtime + canvas helpers
|
|
4
|
+
* can import types without pulling the full React frame module.
|
|
5
|
+
*/
|
|
6
|
+
import type * as React from "react";
|
|
7
|
+
import type { FrameGraphicsProp, FrameMargin, FrameScheduler } from "../useFrame";
|
|
8
|
+
import type { Style } from "../types";
|
|
9
|
+
import type { Datum } from "../../charts/shared/datumTypes";
|
|
10
|
+
import type { OnObservationCallback } from "../../store/ObservationStore";
|
|
11
|
+
import type { AutoPlaceAnnotations } from "../../recipes/annotationLayout";
|
|
12
|
+
import type { AnnotationContext } from "../../realtime/types";
|
|
13
|
+
import type { GradientLegendConfig, LegendGroup, LegendLayout } from "../../types/legendTypes";
|
|
14
|
+
import type { FocusRingProps } from "../FocusRing";
|
|
15
|
+
import type { PhysicsBodyState, PhysicsColliderBodyFilter, PhysicsColliderShape } from "./PhysicsKernel";
|
|
16
|
+
import type { PhysicsPipelineConfig, PhysicsPipelineControlSurface, PhysicsPipelineStore, PhysicsPipelineTickResult, PhysicsQueuedSpawn, PhysicsSpawnPacingOptions, PhysicsSimulationState, PhysicsObservationEvent } from "./PhysicsPipelineStore";
|
|
17
|
+
import type { PhysicsController } from "./PhysicsControllers";
|
|
18
|
+
import type { PhysicsExecution } from "./PhysicsWorkerProtocol";
|
|
19
|
+
import type { StreamPhysicsPopOptions } from "./physicsBodyCanvas";
|
|
20
|
+
export interface PhysicsBodySelection {
|
|
21
|
+
isActive?: boolean;
|
|
22
|
+
predicate?: (body: PhysicsBodyState) => boolean;
|
|
23
|
+
}
|
|
24
|
+
export type StreamPhysicsRegionKind = "region" | "membrane" | "charge-gate" | "force-field" | "sink" | "source";
|
|
25
|
+
export interface StreamPhysicsRegionVector {
|
|
26
|
+
x?: number;
|
|
27
|
+
y?: number;
|
|
28
|
+
}
|
|
29
|
+
export interface StreamPhysicsBodyRegionState {
|
|
30
|
+
activeRegionIds: string[];
|
|
31
|
+
regionIds: string[];
|
|
32
|
+
charges: Record<string, unknown>;
|
|
33
|
+
attributes: Record<string, unknown>;
|
|
34
|
+
energy: number;
|
|
35
|
+
}
|
|
36
|
+
export interface StreamPhysicsRegionEffectContext {
|
|
37
|
+
body: PhysicsBodyState;
|
|
38
|
+
region: StreamPhysicsRegionEffect;
|
|
39
|
+
regionState: StreamPhysicsBodyRegionState;
|
|
40
|
+
}
|
|
41
|
+
export interface StreamPhysicsRegionEvent {
|
|
42
|
+
type: "region-enter" | "region-exit";
|
|
43
|
+
bodyId: string;
|
|
44
|
+
datum?: unknown;
|
|
45
|
+
observation: PhysicsObservationEvent;
|
|
46
|
+
region: StreamPhysicsRegionEffect;
|
|
47
|
+
regionState: StreamPhysicsBodyRegionState;
|
|
48
|
+
}
|
|
49
|
+
export interface StreamPhysicsRegionEffect {
|
|
50
|
+
/**
|
|
51
|
+
* Stable region id. This is used for observations, accessibility labels,
|
|
52
|
+
* body region state, and generated sensor collider ids.
|
|
53
|
+
*/
|
|
54
|
+
id: string;
|
|
55
|
+
/**
|
|
56
|
+
* Visual/semantic intent. The physics behavior is controlled by the other
|
|
57
|
+
* properties; kind lets charts and agents describe the region correctly.
|
|
58
|
+
*/
|
|
59
|
+
kind?: StreamPhysicsRegionKind;
|
|
60
|
+
label?: string;
|
|
61
|
+
description?: string;
|
|
62
|
+
shape: PhysicsColliderShape;
|
|
63
|
+
/**
|
|
64
|
+
* Add a solid collider with the same shape in addition to the sensor region.
|
|
65
|
+
* Defaults to false because information membranes normally tax or annotate
|
|
66
|
+
* bodies without hard-blocking them.
|
|
67
|
+
*/
|
|
68
|
+
collider?: boolean | "solid" | "boundary";
|
|
69
|
+
/**
|
|
70
|
+
* Optional filter applied to generated region sensors and colliders. This is
|
|
71
|
+
* useful for permeable regions where one body class should observe or collide
|
|
72
|
+
* with a boundary while other bodies pass through.
|
|
73
|
+
*/
|
|
74
|
+
bodyFilter?: PhysicsColliderBodyFilter;
|
|
75
|
+
/**
|
|
76
|
+
* Segment thickness used when `collider` is `"boundary"` for an AABB region.
|
|
77
|
+
*/
|
|
78
|
+
colliderThickness?: number;
|
|
79
|
+
friction?: number;
|
|
80
|
+
restitution?: number;
|
|
81
|
+
/**
|
|
82
|
+
* The generated sensor collider id. Override only when coordinating with
|
|
83
|
+
* existing observations.
|
|
84
|
+
*/
|
|
85
|
+
sensorId?: string;
|
|
86
|
+
binId?: string;
|
|
87
|
+
/**
|
|
88
|
+
* State attached to a body when it enters the region. `true` on a
|
|
89
|
+
* charge-gate means a charge value of 1.
|
|
90
|
+
*/
|
|
91
|
+
charge?: boolean | number | string | ((context: StreamPhysicsRegionEffectContext) => unknown);
|
|
92
|
+
energyDelta?: number;
|
|
93
|
+
attributes?: Record<string, unknown> | ((context: StreamPhysicsRegionEffectContext) => Record<string, unknown>);
|
|
94
|
+
/**
|
|
95
|
+
* Continuous force applied while a body is inside the region. This is modeled
|
|
96
|
+
* as a per-frame impulse and currently runs on the sync execution path.
|
|
97
|
+
*/
|
|
98
|
+
force?: StreamPhysicsRegionVector | ((context: StreamPhysicsRegionEffectContext) => StreamPhysicsRegionVector | null | undefined);
|
|
99
|
+
/**
|
|
100
|
+
* Linear damping applied while a body is inside the region. Values are
|
|
101
|
+
* per-second-ish coefficients and are intentionally lightweight.
|
|
102
|
+
*/
|
|
103
|
+
damping?: number;
|
|
104
|
+
impulseOnEnter?: StreamPhysicsRegionVector | ((context: StreamPhysicsRegionEffectContext) => StreamPhysicsRegionVector | null | undefined);
|
|
105
|
+
impulseOnExit?: StreamPhysicsRegionVector | ((context: StreamPhysicsRegionEffectContext) => StreamPhysicsRegionVector | null | undefined);
|
|
106
|
+
bodyStyle?: Style | ((body: PhysicsBodyState, context: PhysicsBodyStyleContext) => Style);
|
|
107
|
+
/**
|
|
108
|
+
* Set to false to suppress generated keyboard/accessibility semantics.
|
|
109
|
+
* Pass a partial item to override the generated label/description/group.
|
|
110
|
+
*/
|
|
111
|
+
semanticItem?: false | Partial<PhysicsSemanticItem>;
|
|
112
|
+
metadata?: unknown;
|
|
113
|
+
onEnter?: (event: StreamPhysicsRegionEvent) => void;
|
|
114
|
+
onExit?: (event: StreamPhysicsRegionEvent) => void;
|
|
115
|
+
}
|
|
116
|
+
export interface PhysicsBodyStyleContext {
|
|
117
|
+
selected: boolean;
|
|
118
|
+
simulationState: PhysicsSimulationState;
|
|
119
|
+
regionState?: StreamPhysicsBodyRegionState;
|
|
120
|
+
regions?: StreamPhysicsRegionEffect[];
|
|
121
|
+
}
|
|
122
|
+
export interface StreamPhysicsExecutionState {
|
|
123
|
+
execution: "sync" | "worker";
|
|
124
|
+
liveBodies: number;
|
|
125
|
+
queuedBodies: number;
|
|
126
|
+
reason?: string;
|
|
127
|
+
requested: PhysicsExecution;
|
|
128
|
+
}
|
|
129
|
+
export interface PhysicsSemanticItem {
|
|
130
|
+
bodyId?: string;
|
|
131
|
+
id?: string;
|
|
132
|
+
label: string;
|
|
133
|
+
description?: string;
|
|
134
|
+
datum?: unknown;
|
|
135
|
+
x: number;
|
|
136
|
+
y: number;
|
|
137
|
+
shape?: FocusRingProps["shape"];
|
|
138
|
+
width?: number;
|
|
139
|
+
height?: number;
|
|
140
|
+
pathData?: string;
|
|
141
|
+
group?: string;
|
|
142
|
+
}
|
|
143
|
+
export interface PhysicsBodySemanticItemContext {
|
|
144
|
+
index: number;
|
|
145
|
+
simulationState: PhysicsSimulationState;
|
|
146
|
+
}
|
|
147
|
+
export type PhysicsBodySemanticItemAccessor = (body: PhysicsBodyState, context: PhysicsBodySemanticItemContext) => false | null | undefined | Partial<PhysicsSemanticItem>;
|
|
148
|
+
export interface StreamPhysicsBodyForceContext {
|
|
149
|
+
body: PhysicsBodyState;
|
|
150
|
+
bodies: readonly PhysicsBodyState[];
|
|
151
|
+
index: number;
|
|
152
|
+
regionState?: StreamPhysicsBodyRegionState;
|
|
153
|
+
regions?: StreamPhysicsRegionEffect[];
|
|
154
|
+
simulationState: PhysicsSimulationState;
|
|
155
|
+
}
|
|
156
|
+
export type StreamPhysicsBodyForce = StreamPhysicsRegionVector | ((context: StreamPhysicsBodyForceContext) => StreamPhysicsRegionVector | null | undefined);
|
|
157
|
+
export interface PhysicsHoverData {
|
|
158
|
+
__semioticHoverData: true;
|
|
159
|
+
body: PhysicsBodyState;
|
|
160
|
+
data: Datum | PhysicsBodyState;
|
|
161
|
+
id: string;
|
|
162
|
+
type: "body";
|
|
163
|
+
x: number;
|
|
164
|
+
y: number;
|
|
165
|
+
}
|
|
166
|
+
export interface StreamPhysicsFrameProps {
|
|
167
|
+
accessibleTable?: boolean;
|
|
168
|
+
/**
|
|
169
|
+
* Canvas fill. When set, overrides the theme background unless
|
|
170
|
+
* `backgroundGraphics` already owns the backdrop. Pass `"transparent"`
|
|
171
|
+
* to composite over siblings (same contract as StreamXYFrame).
|
|
172
|
+
*/
|
|
173
|
+
background?: string;
|
|
174
|
+
backgroundGraphics?: FrameGraphicsProp;
|
|
175
|
+
/**
|
|
176
|
+
* Optional rAF seam for deterministic frame-loop scheduling in tests.
|
|
177
|
+
* When omitted, the browser's requestAnimationFrame is used.
|
|
178
|
+
*/
|
|
179
|
+
frameScheduler?: FrameScheduler;
|
|
180
|
+
/**
|
|
181
|
+
* Monotonic milliseconds used for frame deltas, semantic throttling,
|
|
182
|
+
* pop animations, and frame-originated observation timestamps. Inject a
|
|
183
|
+
* deterministic clock for replayable tests or evidence capture.
|
|
184
|
+
*/
|
|
185
|
+
clock?: () => number;
|
|
186
|
+
/**
|
|
187
|
+
* Host-level random seam for frame-local visual work. It deliberately does
|
|
188
|
+
* not replace the physics kernel's deterministic random source.
|
|
189
|
+
*/
|
|
190
|
+
random?: () => number;
|
|
191
|
+
/**
|
|
192
|
+
* Serializable deterministic seed for frame-local work and, when
|
|
193
|
+
* `config.kernel.seed` is omitted, the built-in physics kernel. An explicit
|
|
194
|
+
* kernel seed always wins so existing simulation snapshots remain stable.
|
|
195
|
+
*/
|
|
196
|
+
seed?: number;
|
|
197
|
+
bodySemanticItemLimit?: number;
|
|
198
|
+
bodySemanticItems?: boolean | PhysicsBodySemanticItemAccessor;
|
|
199
|
+
bodySemanticUpdateMs?: number;
|
|
200
|
+
bodyForces?: StreamPhysicsBodyForce;
|
|
201
|
+
bodyStyle?: Style | ((body: PhysicsBodyState, context: PhysicsBodyStyleContext) => Style);
|
|
202
|
+
/** Identifier included on `onObservation` events and pipeline observations. */
|
|
203
|
+
chartId?: string;
|
|
204
|
+
className?: string;
|
|
205
|
+
/**
|
|
206
|
+
* Uniform fill for bodies when `bodyStyle` does not set `fill`.
|
|
207
|
+
* Accepts CSS vars (`var(--semiotic-primary)`).
|
|
208
|
+
*/
|
|
209
|
+
color?: string;
|
|
210
|
+
config?: PhysicsPipelineConfig;
|
|
211
|
+
/**
|
|
212
|
+
* Process plugins that tick with the physics heartbeat (capacity queues,
|
|
213
|
+
* portals, custom process rules). Prefer controllers over pumping
|
|
214
|
+
* `layoutConfig` every frame. Controllers with `continuous` keep RAF alive
|
|
215
|
+
* while they still have work even if the kernel is sleeping.
|
|
216
|
+
*/
|
|
217
|
+
controllers?: readonly PhysicsController[];
|
|
218
|
+
/**
|
|
219
|
+
* Keep the animation loop alive even when the physics store reports no
|
|
220
|
+
* pending work. Use for frame-local systems that drive motion from `onTick`
|
|
221
|
+
* or other imperative controls instead of queued spawns/body forces.
|
|
222
|
+
* Also set automatically when any controller opts into continuous mode.
|
|
223
|
+
*/
|
|
224
|
+
continuous?: boolean;
|
|
225
|
+
description?: string;
|
|
226
|
+
/** Dashboard hierarchy class hook (`stream-physics-frame--emphasis-*`). */
|
|
227
|
+
emphasis?: "primary" | "secondary";
|
|
228
|
+
/**
|
|
229
|
+
* Chart display mode (primary/context/sparkline/mobile). HOCs resolve this
|
|
230
|
+
* via `useChartMode` and pass it for class hooks + ChartContainer export.
|
|
231
|
+
*/
|
|
232
|
+
chartMode?: "primary" | "context" | "sparkline" | "mobile";
|
|
233
|
+
enableHover?: boolean;
|
|
234
|
+
foregroundGraphics?: FrameGraphicsProp;
|
|
235
|
+
hoverRadius?: number;
|
|
236
|
+
initialSpawns?: PhysicsQueuedSpawn[];
|
|
237
|
+
initialSpawnPacing?: PhysicsSpawnPacingOptions;
|
|
238
|
+
/**
|
|
239
|
+
* Semiotic annotations (label/callout/threshold/…). Pixel-space `x`/`y`,
|
|
240
|
+
* or `pointId`/`bodyId` to track a live body. Notes with
|
|
241
|
+
* `physics: "barrier"|"sensor"` also feed colliders via PhysicsAnnotations.
|
|
242
|
+
*/
|
|
243
|
+
annotations?: Datum[];
|
|
244
|
+
/** Observe activation of widget annotations without replacing widget behavior. */
|
|
245
|
+
onAnnotationActivate?: import("../../charts/shared/annotationActivation").OnAnnotationActivateCallback;
|
|
246
|
+
autoPlaceAnnotations?: AutoPlaceAnnotations;
|
|
247
|
+
svgAnnotationRules?: (annotation: Datum, index: number, context: AnnotationContext) => React.ReactNode;
|
|
248
|
+
legend?: React.ReactNode | {
|
|
249
|
+
legendGroups: LegendGroup[];
|
|
250
|
+
} | {
|
|
251
|
+
gradient: GradientLegendConfig;
|
|
252
|
+
};
|
|
253
|
+
legendHoverBehavior?: (item: {
|
|
254
|
+
label: string;
|
|
255
|
+
} | null) => void;
|
|
256
|
+
legendClickBehavior?: (item: {
|
|
257
|
+
label: string;
|
|
258
|
+
}) => void;
|
|
259
|
+
legendHighlightedCategory?: string | null;
|
|
260
|
+
legendIsolatedCategories?: Set<string>;
|
|
261
|
+
legendPosition?: "right" | "left" | "top" | "bottom";
|
|
262
|
+
legendLayout?: LegendLayout;
|
|
263
|
+
margin?: Partial<FrameMargin>;
|
|
264
|
+
/**
|
|
265
|
+
* Structured interaction events (hover / hover-end / click / click-end) —
|
|
266
|
+
* same contract as XY/ordinal/network frames for AI + coordinated views.
|
|
267
|
+
*/
|
|
268
|
+
onObservation?: OnObservationCallback;
|
|
269
|
+
/**
|
|
270
|
+
* Click on a body (or empty canvas when null). Prefer this over
|
|
271
|
+
* `onBodyPointerDown` when you only need the Semiotic click contract.
|
|
272
|
+
*/
|
|
273
|
+
onClick?: {
|
|
274
|
+
bivarianceHack(datum: Datum | null, event: {
|
|
275
|
+
x: number;
|
|
276
|
+
y: number;
|
|
277
|
+
body: PhysicsBodyState | null;
|
|
278
|
+
}): void;
|
|
279
|
+
}["bivarianceHack"];
|
|
280
|
+
onRegionEvent?: (event: StreamPhysicsRegionEvent) => void;
|
|
281
|
+
onSimulationExecutionChange?: (state: StreamPhysicsExecutionState) => void;
|
|
282
|
+
onBodyPointerDown?: (body: PhysicsBodyState | null, event: React.PointerEvent<HTMLCanvasElement>) => void;
|
|
283
|
+
onBodyHover?: (body: PhysicsBodyState | null, hover: PhysicsHoverData | null) => void;
|
|
284
|
+
onSemanticItemActivate?: (item: PhysicsSemanticItem) => void;
|
|
285
|
+
onSemanticItemFocus?: (item: PhysicsSemanticItem | null) => void;
|
|
286
|
+
onTick?: (result: PhysicsPipelineTickResult, controls: PhysicsPipelineControlSurface) => void;
|
|
287
|
+
/** Uniform opacity for bodies when `bodyStyle` does not set `opacity`. */
|
|
288
|
+
opacity?: number;
|
|
289
|
+
paused?: boolean;
|
|
290
|
+
responsiveHeight?: boolean;
|
|
291
|
+
responsiveWidth?: boolean;
|
|
292
|
+
regionEffects?: StreamPhysicsRegionEffect[];
|
|
293
|
+
selectedBodyStyle?: Style | ((body: PhysicsBodyState, context: PhysicsBodyStyleContext) => Style);
|
|
294
|
+
selection?: PhysicsBodySelection | null;
|
|
295
|
+
semanticItems?: PhysicsSemanticItem[];
|
|
296
|
+
simulationExecution?: PhysicsExecution;
|
|
297
|
+
size?: [number, number];
|
|
298
|
+
/** Uniform stroke for bodies when `bodyStyle` does not set `stroke`. */
|
|
299
|
+
stroke?: string;
|
|
300
|
+
strokeWidth?: number;
|
|
301
|
+
summary?: string;
|
|
302
|
+
suspendWhenHidden?: boolean;
|
|
303
|
+
title?: string | React.ReactNode;
|
|
304
|
+
tooltipContent?: (hover: PhysicsHoverData) => React.ReactNode;
|
|
305
|
+
workerBodyThreshold?: number;
|
|
306
|
+
renderBody?: (ctx: CanvasRenderingContext2D, body: PhysicsBodyState, style: Style) => void;
|
|
307
|
+
beforePaint?: (ctx: CanvasRenderingContext2D, bodies: PhysicsBodyState[]) => void;
|
|
308
|
+
afterPaint?: (ctx: CanvasRenderingContext2D, bodies: PhysicsBodyState[]) => void;
|
|
309
|
+
}
|
|
310
|
+
export interface StreamPhysicsFrameHandle extends PhysicsPipelineControlSurface {
|
|
311
|
+
getData: () => PhysicsBodyState[];
|
|
312
|
+
getRegionState: (bodyId?: string) => StreamPhysicsBodyRegionState | Record<string, StreamPhysicsBodyRegionState> | undefined;
|
|
313
|
+
clearRegionState: (bodyId?: string) => void;
|
|
314
|
+
getStore: () => PhysicsPipelineStore;
|
|
315
|
+
popBodies: (ids: string[], options?: StreamPhysicsPopOptions) => string[];
|
|
316
|
+
}
|
|
317
|
+
export type { StreamPhysicsPopOptions };
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Canvas body drawing + pop animations for StreamPhysicsFrame.
|
|
3
|
+
* Pure paint helpers — no React / store dependency.
|
|
4
|
+
*/
|
|
5
|
+
import type { Style } from "../types";
|
|
6
|
+
import type { PhysicsBodyState } from "./PhysicsKernel";
|
|
7
|
+
/**
|
|
8
|
+
* Body mark kinds for process identity without custom renderBody.
|
|
9
|
+
* Set via bodyStyle.mark or datum.__physicsMark / datum.mark.
|
|
10
|
+
*/
|
|
11
|
+
export type PhysicsBodyMark = "circle" | "halo" | "faceted" | "pill" | "diamond" | "square";
|
|
12
|
+
export interface StreamPhysicsPopOptions {
|
|
13
|
+
color?: string;
|
|
14
|
+
durationMs?: number;
|
|
15
|
+
radius?: number;
|
|
16
|
+
}
|
|
17
|
+
export interface StreamPhysicsPopAnimation {
|
|
18
|
+
body: PhysicsBodyState;
|
|
19
|
+
color: string;
|
|
20
|
+
durationMs: number;
|
|
21
|
+
radius: number;
|
|
22
|
+
startedAt: number;
|
|
23
|
+
}
|
|
24
|
+
export declare function resolveBodyMark(body: PhysicsBodyState, style: Style): PhysicsBodyMark;
|
|
25
|
+
export declare function drawBody(ctx: CanvasRenderingContext2D, body: PhysicsBodyState, style: Style): void;
|
|
26
|
+
export declare function physicsBodyRadius(body: PhysicsBodyState): number;
|
|
27
|
+
export declare function drawPopAnimations(ctx: CanvasRenderingContext2D, animations: Map<string, StreamPhysicsPopAnimation>, now: number): boolean;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { ObservationInputType, OnObservationCallback } from "../../store/ObservationStore";
|
|
2
|
+
interface CurrentRef<T> {
|
|
3
|
+
current: T;
|
|
4
|
+
}
|
|
5
|
+
export type PhysicsFrameObservationType = "hover" | "hover-end" | "click" | "click-end" | "focus" | "activate";
|
|
6
|
+
export interface PhysicsFrameObservationPayload {
|
|
7
|
+
datum?: unknown;
|
|
8
|
+
x?: number;
|
|
9
|
+
y?: number;
|
|
10
|
+
inputType?: ObservationInputType;
|
|
11
|
+
}
|
|
12
|
+
interface PhysicsFrameObservationOptions {
|
|
13
|
+
onObservationRef: CurrentRef<OnObservationCallback | undefined>;
|
|
14
|
+
chartIdRef: CurrentRef<string | undefined>;
|
|
15
|
+
wallClockRef: CurrentRef<() => number>;
|
|
16
|
+
}
|
|
17
|
+
/** Builds a stable emitter while reading the frame's latest callback and clock refs. */
|
|
18
|
+
export declare function usePhysicsFrameObservationEmitter({ onObservationRef, chartIdRef, wallClockRef }: PhysicsFrameObservationOptions): (type: PhysicsFrameObservationType, payload?: PhysicsFrameObservationPayload) => void;
|
|
19
|
+
export {};
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { PhysicsPipelineStore, type PhysicsPipelineConfig, type PhysicsQueuedSpawn, type PhysicsSpawnPacingOptions } from "./PhysicsPipelineStore";
|
|
2
|
+
/** Create the retained simulation store and seed its initial queued bodies. */
|
|
3
|
+
export declare function createPhysicsFrameStore(config: PhysicsPipelineConfig | undefined, initialSpawns: PhysicsQueuedSpawn[] | undefined, initialSpawnPacing: PhysicsSpawnPacingOptions | undefined): PhysicsPipelineStore;
|
|
4
|
+
export declare function defaultPhysicsFrameClock(): number;
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { PhysicsPipelineStore } from "./PhysicsPipelineStore";
|
|
2
|
+
import type { PhysicsPipelineControlSurface } from "./PhysicsPipelineTypes";
|
|
3
|
+
/** Project the store's public methods into the stable imperative control API. */
|
|
4
|
+
export declare function createPhysicsPipelineControls(store: PhysicsPipelineStore): PhysicsPipelineControlSurface;
|