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
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
import { type PhysicsBodySelection, type StreamPhysicsFrameProps } from "../../stream/physics/StreamPhysicsFrame";
|
|
3
|
+
import { type CapacityQueueSnapshot } from "../../stream/physics/PhysicsControllers";
|
|
4
|
+
import { type ProcessChromeOptions } from "../../recipes/processChrome";
|
|
5
|
+
import type { Datum } from "../shared/datumTypes";
|
|
6
|
+
import type { BaseChartProps, ChartAccessor } from "../shared/types";
|
|
7
|
+
import { type ProcessFlowProjectionMetadata, type ProcessFlowStageDef } from "./physicsChartUtils";
|
|
8
|
+
import { type PhysicsFrameHandle } from "./physicsHocHandle";
|
|
9
|
+
import { type PhysicsHocFrameProps, type PhysicsSharedChartProps, type TooltipProp } from "./physicsHocUtils";
|
|
10
|
+
export type { ProcessFlowStageDef, ProcessFlowProjectionMetadata };
|
|
11
|
+
export interface ProcessFlowChartProps<TDatum extends Datum = Datum> extends Omit<BaseChartProps, "margin" | "selection">, PhysicsSharedChartProps {
|
|
12
|
+
data?: TDatum[];
|
|
13
|
+
size?: [number, number];
|
|
14
|
+
stages: readonly ProcessFlowStageDef[];
|
|
15
|
+
idAccessor?: ChartAccessor<TDatum, string>;
|
|
16
|
+
stageAccessor?: ChartAccessor<TDatum, string>;
|
|
17
|
+
groupBy?: ChartAccessor<TDatum, string>;
|
|
18
|
+
groupLabelAccessor?: ChartAccessor<TDatum, string>;
|
|
19
|
+
workAccessor?: ChartAccessor<TDatum, number>;
|
|
20
|
+
radiusAccessor?: ChartAccessor<TDatum, number>;
|
|
21
|
+
ballRadius?: number;
|
|
22
|
+
colorBy?: ChartAccessor<TDatum, string>;
|
|
23
|
+
seed?: number;
|
|
24
|
+
route?: "horizontal";
|
|
25
|
+
groupCompletion?: "allAbsorbed" | "none";
|
|
26
|
+
groupAnchorAlong?: number;
|
|
27
|
+
showProjection?: boolean;
|
|
28
|
+
showChrome?: boolean;
|
|
29
|
+
/** Options for the default processChrome overlay (stage bays, badges, sockets). */
|
|
30
|
+
chromeOptions?: ProcessChromeOptions;
|
|
31
|
+
settle?: boolean;
|
|
32
|
+
gravityX?: number;
|
|
33
|
+
gravityY?: number;
|
|
34
|
+
springStiffness?: number;
|
|
35
|
+
springDamping?: number;
|
|
36
|
+
tooltip?: TooltipProp;
|
|
37
|
+
paused?: boolean;
|
|
38
|
+
initialSpawnPacing?: StreamPhysicsFrameProps["initialSpawnPacing"];
|
|
39
|
+
/**
|
|
40
|
+
* When true (default), stages with `capacity` install live FIFO queue
|
|
41
|
+
* controllers that drain work at unitsPerSecond — not just force theater.
|
|
42
|
+
*/
|
|
43
|
+
liveCapacity?: boolean;
|
|
44
|
+
/** Live capacity metrics callback (queue depth, processed count per region). */
|
|
45
|
+
onCapacityChange?: (stats: CapacityQueueSnapshot[]) => void;
|
|
46
|
+
/** Shared selection (process body restyle without relayout). */
|
|
47
|
+
selection?: PhysicsBodySelection | null;
|
|
48
|
+
/**
|
|
49
|
+
* Soft body budget: caps live bodies via pipeline bodyLimit (evict oldest).
|
|
50
|
+
* Use for infinite/long streams with sediment-style history in the readout.
|
|
51
|
+
*/
|
|
52
|
+
bodyLimit?: number;
|
|
53
|
+
/** Mark kind for all bodies, or read per-row from datum.__physicsMark / mark. */
|
|
54
|
+
bodyMark?: "circle" | "halo" | "faceted" | "pill" | "diamond" | "square";
|
|
55
|
+
/** Frame passthrough; HOC-owned `config` is merged after the built pipeline config. */
|
|
56
|
+
frameProps?: PhysicsHocFrameProps;
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Physics-backed multi-body process flow: work items move through capacitated
|
|
60
|
+
* stages with optional feature groups that complete only when every member is
|
|
61
|
+
* absorbed (the merge-pressure / review-queue pattern).
|
|
62
|
+
*
|
|
63
|
+
* @example
|
|
64
|
+
* ```tsx
|
|
65
|
+
* <ProcessFlowChart
|
|
66
|
+
* data={prs}
|
|
67
|
+
* idAccessor="id"
|
|
68
|
+
* stageAccessor="status"
|
|
69
|
+
* groupBy="featureId"
|
|
70
|
+
* stages={[
|
|
71
|
+
* { id: "coding", label: "Coding", force: 14 },
|
|
72
|
+
* { id: "review", label: "Review", capacity: { unitsPerSecond: 4 }, pressure: true },
|
|
73
|
+
* { id: "merged", label: "Merged", absorb: true },
|
|
74
|
+
* ]}
|
|
75
|
+
* />
|
|
76
|
+
* ```
|
|
77
|
+
*
|
|
78
|
+
* @example
|
|
79
|
+
* ```tsx
|
|
80
|
+
* // Push-only: omit data, stream work items live through the capacity lane.
|
|
81
|
+
* const ref = useRef()
|
|
82
|
+
* <ProcessFlowChart
|
|
83
|
+
* ref={ref}
|
|
84
|
+
* stages={[
|
|
85
|
+
* { id: "triage", label: "Triage", force: 10 },
|
|
86
|
+
* { id: "review", label: "Review", capacity: { unitsPerSecond: 3 } },
|
|
87
|
+
* { id: "done", label: "Done", absorb: true },
|
|
88
|
+
* ]}
|
|
89
|
+
* stageAccessor="stage"
|
|
90
|
+
* liveCapacity
|
|
91
|
+
* />
|
|
92
|
+
* ref.current?.push({ id: "pr-42", stage: "review", work: 2 })
|
|
93
|
+
* ```
|
|
94
|
+
*/
|
|
95
|
+
export declare const ProcessFlowChart: React.ForwardRefExoticComponent<ProcessFlowChartProps<Datum> & React.RefAttributes<PhysicsFrameHandle>>;
|
|
96
|
+
export default ProcessFlowChart;
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
import type { Datum } from "../shared/datumTypes";
|
|
3
|
+
import type { DependencyMachine, DependencyTrackLayout } from "./dependencyMachine";
|
|
4
|
+
import type { RuntimeState } from "./chainReactionRuntime";
|
|
5
|
+
export interface ChainReactionOverlayProps<TDatum extends Datum = Datum> {
|
|
6
|
+
machine: DependencyMachine<TDatum>;
|
|
7
|
+
layout: DependencyTrackLayout;
|
|
8
|
+
runtime: RuntimeState;
|
|
9
|
+
downstreamSet: ReadonlySet<string>;
|
|
10
|
+
selectedSet: ReadonlySet<string>;
|
|
11
|
+
width: number;
|
|
12
|
+
height: number;
|
|
13
|
+
seed: number;
|
|
14
|
+
reduced: boolean;
|
|
15
|
+
onSelectTask: (taskID: string) => void;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* SVG chrome painted above the physics canvas: workstream lanes, dependency
|
|
19
|
+
* tracks + delivery sockets, and the domino task cards (which topple on
|
|
20
|
+
* completion). Interaction is delegated back through `onSelectTask`.
|
|
21
|
+
*/
|
|
22
|
+
export declare function ChainReactionOverlay<TDatum extends Datum = Datum>({ machine, layout, runtime, downstreamSet, selectedSet, width, height, seed, reduced, onSelectTask }: ChainReactionOverlayProps<TDatum>): React.ReactElement;
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import type { PhysicsBodyState } from "../../stream/physics/PhysicsKernel";
|
|
2
|
+
import type { PhysicsQueuedSpawn } from "../../stream/physics/PhysicsPipelineStore";
|
|
3
|
+
import type { PhysicsSemanticItem, StreamPhysicsBodyForceContext } from "../../stream/physics/StreamPhysicsFrame";
|
|
4
|
+
import type { Datum } from "../shared/datumTypes";
|
|
5
|
+
import type { DependencyMachine, DependencyMachineEdge, DependencyMachineNode, DependencyPoint, DependencyTrackLayout, DependencyTrackRoute } from "./dependencyMachine";
|
|
6
|
+
import type { ChainReactionMode } from "./chainReactionTypes";
|
|
7
|
+
export interface RuntimeState {
|
|
8
|
+
currentTime: number;
|
|
9
|
+
playing: boolean;
|
|
10
|
+
completed: Set<string>;
|
|
11
|
+
delivered: Set<string>;
|
|
12
|
+
inFlight: Set<string>;
|
|
13
|
+
armed: Set<string>;
|
|
14
|
+
blockers: Map<string, string>;
|
|
15
|
+
previewTaskID: string | null;
|
|
16
|
+
}
|
|
17
|
+
interface DependencyBallDatum {
|
|
18
|
+
kind: "dependency-ball";
|
|
19
|
+
edgeID: string;
|
|
20
|
+
sourceID: string;
|
|
21
|
+
targetID: string;
|
|
22
|
+
route: DependencyPoint[];
|
|
23
|
+
}
|
|
24
|
+
export declare const EMPTY_SPAWNS: PhysicsQueuedSpawn[];
|
|
25
|
+
export declare function numericTime(value: number | Date | undefined, fallback?: number): number;
|
|
26
|
+
export declare function taskCompletionTime<TDatum extends Datum>(node: DependencyMachineNode<TDatum>): number | null;
|
|
27
|
+
export declare function resolvedArmed<TDatum extends Datum>(machine: DependencyMachine<TDatum>, delivered: ReadonlySet<string>, blockers: ReadonlyMap<string, string>, completed: ReadonlySet<string>): Set<string>;
|
|
28
|
+
export declare function initialRuntime<TDatum extends Datum>(machine: DependencyMachine<TDatum>, mode: ChainReactionMode, currentTime: number, reducedMotion: boolean): RuntimeState;
|
|
29
|
+
export declare function copyRuntime(runtime: RuntimeState): RuntimeState;
|
|
30
|
+
export declare function dependencyBallDatum(body: PhysicsBodyState): DependencyBallDatum | null;
|
|
31
|
+
export declare function dependencyBodyForce(context: StreamPhysicsBodyForceContext): {
|
|
32
|
+
x: number;
|
|
33
|
+
y: number;
|
|
34
|
+
} | null;
|
|
35
|
+
export declare function ballSpawn(edge: DependencyMachineEdge, route: DependencyTrackRoute): PhysicsQueuedSpawn;
|
|
36
|
+
export declare function machineSemanticItems<TDatum extends Datum>(machine: DependencyMachine<TDatum>, layout: DependencyTrackLayout, runtime: RuntimeState): PhysicsSemanticItem[];
|
|
37
|
+
export {};
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
import type { Datum } from "../shared/datumTypes";
|
|
2
|
+
import type { BlockerAmplification, DependencyAccessor, DependencyTaskStatus } from "./dependencyMachine";
|
|
3
|
+
export type ChainReactionMode = "snapshot" | "replay" | "mechanical";
|
|
4
|
+
export type ChainReactionInsight = "none" | "blocker-amplification";
|
|
5
|
+
export type ChainReactionControl = "play" | "pause" | "step" | "reset" | "settle";
|
|
6
|
+
export type ChainReactionObservation<TDatum extends Datum = Datum> = {
|
|
7
|
+
type: "task-completed";
|
|
8
|
+
taskID: string;
|
|
9
|
+
datum: TDatum;
|
|
10
|
+
} | {
|
|
11
|
+
type: "dependency-delivered";
|
|
12
|
+
sourceID: string;
|
|
13
|
+
targetID: string;
|
|
14
|
+
} | {
|
|
15
|
+
type: "task-armed";
|
|
16
|
+
taskID: string;
|
|
17
|
+
} | {
|
|
18
|
+
type: "machine-stalled";
|
|
19
|
+
blockerID: string;
|
|
20
|
+
downstreamTaskCount: number;
|
|
21
|
+
affectedLaneCount: number;
|
|
22
|
+
} | {
|
|
23
|
+
type: "blocker-previewed";
|
|
24
|
+
blockerID: string;
|
|
25
|
+
downstreamTaskIDs: string[];
|
|
26
|
+
} | {
|
|
27
|
+
type: "machine-settled";
|
|
28
|
+
};
|
|
29
|
+
export interface ChainReactionTaskState {
|
|
30
|
+
taskID: string;
|
|
31
|
+
completed: boolean;
|
|
32
|
+
armed: boolean;
|
|
33
|
+
blocked: boolean;
|
|
34
|
+
blockerReason?: string;
|
|
35
|
+
}
|
|
36
|
+
export interface ChainReactionDependencyState {
|
|
37
|
+
edgeID: string;
|
|
38
|
+
sourceID: string;
|
|
39
|
+
targetID: string;
|
|
40
|
+
state: "waiting" | "in-flight" | "delivered";
|
|
41
|
+
}
|
|
42
|
+
export interface ChainReactionMachineState {
|
|
43
|
+
currentTime: number;
|
|
44
|
+
playing: boolean;
|
|
45
|
+
previewTaskID: string | null;
|
|
46
|
+
selectedTaskIDs: string[];
|
|
47
|
+
tasks: ChainReactionTaskState[];
|
|
48
|
+
dependencies: ChainReactionDependencyState[];
|
|
49
|
+
}
|
|
50
|
+
export interface ChainReactionChartHandle {
|
|
51
|
+
play: () => void;
|
|
52
|
+
pause: () => void;
|
|
53
|
+
step: () => void;
|
|
54
|
+
reset: () => void;
|
|
55
|
+
settle: () => void;
|
|
56
|
+
previewResolve: (taskID: string) => void;
|
|
57
|
+
clearPreview: () => void;
|
|
58
|
+
completeTask: (taskID: string) => void;
|
|
59
|
+
blockTask: (taskID: string, reason: string) => void;
|
|
60
|
+
unblockTask: (taskID: string) => void;
|
|
61
|
+
getAmplification: (taskID: string) => BlockerAmplification;
|
|
62
|
+
getMachineState: () => ChainReactionMachineState;
|
|
63
|
+
}
|
|
64
|
+
export interface ChainReactionChartProps<TDatum extends Datum = Datum> {
|
|
65
|
+
data: readonly TDatum[];
|
|
66
|
+
taskIDAccessor: DependencyAccessor<TDatum, string | number>;
|
|
67
|
+
labelAccessor: DependencyAccessor<TDatum, string>;
|
|
68
|
+
laneAccessor: DependencyAccessor<TDatum, string>;
|
|
69
|
+
dependencyAccessor: DependencyAccessor<TDatum, readonly (string | number)[]>;
|
|
70
|
+
startAccessor?: DependencyAccessor<TDatum, number | Date | undefined>;
|
|
71
|
+
endAccessor?: DependencyAccessor<TDatum, number | Date | undefined>;
|
|
72
|
+
progressAccessor?: DependencyAccessor<TDatum, number | undefined>;
|
|
73
|
+
statusAccessor?: DependencyAccessor<TDatum, DependencyTaskStatus | undefined>;
|
|
74
|
+
completionTimeAccessor?: DependencyAccessor<TDatum, number | Date | undefined>;
|
|
75
|
+
blockerAccessor?: DependencyAccessor<TDatum, string | undefined>;
|
|
76
|
+
milestoneAccessor?: DependencyAccessor<TDatum, boolean | undefined>;
|
|
77
|
+
mechanism?: "domino-ball";
|
|
78
|
+
orientation?: "vertical";
|
|
79
|
+
mode?: ChainReactionMode;
|
|
80
|
+
insight?: ChainReactionInsight;
|
|
81
|
+
currentTime?: number | Date;
|
|
82
|
+
controls?: boolean | readonly ChainReactionControl[];
|
|
83
|
+
selectedTaskIDs?: readonly string[];
|
|
84
|
+
onSelectionChange?: (ids: string[]) => void;
|
|
85
|
+
onObservation?: (event: ChainReactionObservation<TDatum>) => void;
|
|
86
|
+
reducedMotion?: "settle";
|
|
87
|
+
seed?: number;
|
|
88
|
+
width?: number;
|
|
89
|
+
height?: number;
|
|
90
|
+
responsiveWidth?: boolean;
|
|
91
|
+
responsiveHeight?: boolean;
|
|
92
|
+
title?: string;
|
|
93
|
+
description?: string;
|
|
94
|
+
className?: string;
|
|
95
|
+
accessibleTable?: boolean;
|
|
96
|
+
enableHover?: boolean;
|
|
97
|
+
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import type { Datum } from "../shared/datumTypes";
|
|
2
|
+
import type { ChartAccessor } from "../shared/types";
|
|
3
|
+
import { type PhysicsChartArea, type PhysicsChartLayout } from "./physicsChartShared";
|
|
4
|
+
export interface CollisionSwarmPhysicsOptions<TDatum extends Datum = Datum> {
|
|
5
|
+
data: readonly TDatum[];
|
|
6
|
+
xAccessor: ChartAccessor<TDatum, number>;
|
|
7
|
+
groupAccessor?: ChartAccessor<TDatum, string>;
|
|
8
|
+
radiusAccessor?: ChartAccessor<TDatum, number>;
|
|
9
|
+
pointRadius: number;
|
|
10
|
+
seed: number;
|
|
11
|
+
size: [number, number];
|
|
12
|
+
xExtent?: [number, number];
|
|
13
|
+
collisionIterations?: number;
|
|
14
|
+
settle?: boolean;
|
|
15
|
+
}
|
|
16
|
+
export interface CollisionSwarmProjectionMetadata {
|
|
17
|
+
kind: "collision-swarm";
|
|
18
|
+
xExtent: [number, number];
|
|
19
|
+
xRange: [number, number];
|
|
20
|
+
groups: Array<{
|
|
21
|
+
label: string;
|
|
22
|
+
y: number;
|
|
23
|
+
count: number;
|
|
24
|
+
}>;
|
|
25
|
+
plot: PhysicsChartArea["plot"];
|
|
26
|
+
}
|
|
27
|
+
export declare function buildCollisionSwarmPhysics<TDatum extends Datum>(options: CollisionSwarmPhysicsOptions<TDatum>): PhysicsChartLayout;
|
|
@@ -0,0 +1,188 @@
|
|
|
1
|
+
import type { Datum } from "../shared/datumTypes";
|
|
2
|
+
export type DependencyAccessor<TDatum, TValue> = keyof TDatum | ((datum: TDatum, index: number) => TValue);
|
|
3
|
+
export type DependencyTaskStatus = "done" | "in-progress" | "blocked" | "waiting";
|
|
4
|
+
export interface DependencyMachineAccessors<TDatum extends Datum = Datum> {
|
|
5
|
+
taskIDAccessor: DependencyAccessor<TDatum, string | number>;
|
|
6
|
+
labelAccessor: DependencyAccessor<TDatum, string>;
|
|
7
|
+
laneAccessor: DependencyAccessor<TDatum, string>;
|
|
8
|
+
dependencyAccessor: DependencyAccessor<TDatum, readonly (string | number)[]>;
|
|
9
|
+
startAccessor?: DependencyAccessor<TDatum, number | Date | undefined>;
|
|
10
|
+
endAccessor?: DependencyAccessor<TDatum, number | Date | undefined>;
|
|
11
|
+
progressAccessor?: DependencyAccessor<TDatum, number | undefined>;
|
|
12
|
+
statusAccessor?: DependencyAccessor<TDatum, DependencyTaskStatus | undefined>;
|
|
13
|
+
completionTimeAccessor?: DependencyAccessor<TDatum, number | Date | undefined>;
|
|
14
|
+
blockerAccessor?: DependencyAccessor<TDatum, string | undefined>;
|
|
15
|
+
milestoneAccessor?: DependencyAccessor<TDatum, boolean | undefined>;
|
|
16
|
+
}
|
|
17
|
+
export interface CompileDependencyMachineOptions<TDatum extends Datum = Datum> extends DependencyMachineAccessors<TDatum> {
|
|
18
|
+
data: readonly TDatum[];
|
|
19
|
+
/** Defaults to first-seen lane order. */
|
|
20
|
+
laneOrder?: readonly string[];
|
|
21
|
+
}
|
|
22
|
+
export type DependencyMachineDiagnosticCode = "duplicate-task-id" | "missing-dependency" | "cycle";
|
|
23
|
+
export interface DependencyMachineDiagnostic {
|
|
24
|
+
code: DependencyMachineDiagnosticCode;
|
|
25
|
+
message: string;
|
|
26
|
+
taskIDs: string[];
|
|
27
|
+
}
|
|
28
|
+
export interface DependencyMachineNode<TDatum extends Datum = Datum> {
|
|
29
|
+
id: string;
|
|
30
|
+
label: string;
|
|
31
|
+
lane: string;
|
|
32
|
+
laneIndex: number;
|
|
33
|
+
level: number;
|
|
34
|
+
index: number;
|
|
35
|
+
datum: TDatum;
|
|
36
|
+
dependencyIDs: string[];
|
|
37
|
+
incomingEdgeIDs: string[];
|
|
38
|
+
outgoingEdgeIDs: string[];
|
|
39
|
+
socketIDs: string[];
|
|
40
|
+
start?: number | Date;
|
|
41
|
+
end?: number | Date;
|
|
42
|
+
progress: number;
|
|
43
|
+
status: DependencyTaskStatus;
|
|
44
|
+
completionTime?: number | Date;
|
|
45
|
+
blockerReason?: string;
|
|
46
|
+
milestone: boolean;
|
|
47
|
+
}
|
|
48
|
+
export interface DependencyMachineEdge {
|
|
49
|
+
id: string;
|
|
50
|
+
sourceID: string;
|
|
51
|
+
targetID: string;
|
|
52
|
+
sourceIndex: number;
|
|
53
|
+
targetIndex: number;
|
|
54
|
+
socketID: string;
|
|
55
|
+
socketIndex: number;
|
|
56
|
+
}
|
|
57
|
+
export interface DependencyMachine<TDatum extends Datum = Datum> {
|
|
58
|
+
nodes: DependencyMachineNode<TDatum>[];
|
|
59
|
+
edges: DependencyMachineEdge[];
|
|
60
|
+
byID: Map<string, DependencyMachineNode<TDatum>>;
|
|
61
|
+
incoming: Map<string, DependencyMachineEdge[]>;
|
|
62
|
+
outgoing: Map<string, DependencyMachineEdge[]>;
|
|
63
|
+
lanes: string[];
|
|
64
|
+
maxLevel: number;
|
|
65
|
+
diagnostics: DependencyMachineDiagnostic[];
|
|
66
|
+
valid: boolean;
|
|
67
|
+
}
|
|
68
|
+
export interface DependencyPoint {
|
|
69
|
+
x: number;
|
|
70
|
+
y: number;
|
|
71
|
+
}
|
|
72
|
+
export interface DependencyTrackDimensions {
|
|
73
|
+
width: number;
|
|
74
|
+
height: number;
|
|
75
|
+
paddingX?: number;
|
|
76
|
+
paddingTop?: number;
|
|
77
|
+
paddingBottom?: number;
|
|
78
|
+
}
|
|
79
|
+
export interface DependencyTrackOptions {
|
|
80
|
+
taskWidth?: number;
|
|
81
|
+
taskHeight?: number;
|
|
82
|
+
gutterCount?: number;
|
|
83
|
+
socketRadius?: number;
|
|
84
|
+
}
|
|
85
|
+
export interface DependencyTaskPlacement extends DependencyPoint {
|
|
86
|
+
taskID: string;
|
|
87
|
+
lane: string;
|
|
88
|
+
laneIndex: number;
|
|
89
|
+
level: number;
|
|
90
|
+
width: number;
|
|
91
|
+
height: number;
|
|
92
|
+
}
|
|
93
|
+
export interface DependencySocketPlacement extends DependencyPoint {
|
|
94
|
+
id: string;
|
|
95
|
+
edgeID: string;
|
|
96
|
+
taskID: string;
|
|
97
|
+
index: number;
|
|
98
|
+
radius: number;
|
|
99
|
+
}
|
|
100
|
+
export interface DependencyTrackRoute {
|
|
101
|
+
edgeID: string;
|
|
102
|
+
sourceID: string;
|
|
103
|
+
targetID: string;
|
|
104
|
+
socketID: string;
|
|
105
|
+
points: DependencyPoint[];
|
|
106
|
+
}
|
|
107
|
+
export interface DependencyTrackLayout {
|
|
108
|
+
tasks: DependencyTaskPlacement[];
|
|
109
|
+
sockets: DependencySocketPlacement[];
|
|
110
|
+
routes: DependencyTrackRoute[];
|
|
111
|
+
taskByID: Map<string, DependencyTaskPlacement>;
|
|
112
|
+
socketByID: Map<string, DependencySocketPlacement>;
|
|
113
|
+
routeByEdgeID: Map<string, DependencyTrackRoute>;
|
|
114
|
+
}
|
|
115
|
+
export interface LogicalJoinSnapshot {
|
|
116
|
+
taskID: string;
|
|
117
|
+
mode: "all";
|
|
118
|
+
incomingEdgeIDs: string[];
|
|
119
|
+
deliveredEdgeIDs: string[];
|
|
120
|
+
satisfied: boolean;
|
|
121
|
+
}
|
|
122
|
+
export interface LogicalJoin {
|
|
123
|
+
taskID: string;
|
|
124
|
+
mode: "all";
|
|
125
|
+
incomingEdgeIDs: readonly string[];
|
|
126
|
+
deliver: (edgeID: string) => boolean;
|
|
127
|
+
reset: (deliveredEdgeIDs?: Iterable<string>) => void;
|
|
128
|
+
isSatisfied: () => boolean;
|
|
129
|
+
getSnapshot: () => LogicalJoinSnapshot;
|
|
130
|
+
}
|
|
131
|
+
export type DependencyReplayEvent = {
|
|
132
|
+
type: "task-completed";
|
|
133
|
+
taskID: string;
|
|
134
|
+
at: number | Date;
|
|
135
|
+
} | {
|
|
136
|
+
type: "task-blocked";
|
|
137
|
+
taskID: string;
|
|
138
|
+
reason: string;
|
|
139
|
+
at: number | Date;
|
|
140
|
+
} | {
|
|
141
|
+
type: "task-unblocked";
|
|
142
|
+
taskID: string;
|
|
143
|
+
at: number | Date;
|
|
144
|
+
} | {
|
|
145
|
+
type: "dependency-delivered";
|
|
146
|
+
edgeID: string;
|
|
147
|
+
at: number | Date;
|
|
148
|
+
} | {
|
|
149
|
+
type: "task-armed";
|
|
150
|
+
taskID: string;
|
|
151
|
+
at: number | Date;
|
|
152
|
+
};
|
|
153
|
+
export type DependencyReplayClock = number | Date | {
|
|
154
|
+
currentTime: number | Date;
|
|
155
|
+
};
|
|
156
|
+
export interface DependencyReplayState {
|
|
157
|
+
currentTime: number;
|
|
158
|
+
appliedEvents: DependencyReplayEvent[];
|
|
159
|
+
completedTaskIDs: Set<string>;
|
|
160
|
+
blockedByTaskID: Map<string, string>;
|
|
161
|
+
deliveredEdgeIDs: Set<string>;
|
|
162
|
+
armedTaskIDs: Set<string>;
|
|
163
|
+
}
|
|
164
|
+
export interface BlockerAmplification {
|
|
165
|
+
blockerID: string;
|
|
166
|
+
downstreamTaskCount: number;
|
|
167
|
+
affectedLaneCount: number;
|
|
168
|
+
downstreamTaskIDs: string[];
|
|
169
|
+
affectedLanes: string[];
|
|
170
|
+
}
|
|
171
|
+
export interface BlockerAmplificationOptions<TDatum extends Datum = Datum> {
|
|
172
|
+
completedTaskIDs?: Iterable<string>;
|
|
173
|
+
isComplete?: (node: DependencyMachineNode<TDatum>) => boolean;
|
|
174
|
+
}
|
|
175
|
+
/**
|
|
176
|
+
* Compile task records into deterministic directed-DAG structure. Invalid
|
|
177
|
+
* graphs are returned with explicit diagnostics so a chart can render a useful
|
|
178
|
+
* failure state rather than silently inventing dependency order.
|
|
179
|
+
*/
|
|
180
|
+
export declare function compileDependencyMachine<TDatum extends Datum = Datum>(options: CompileDependencyMachineOptions<TDatum>): DependencyMachine<TDatum>;
|
|
181
|
+
/** Resolve task tiles, receiving sockets, and shared point-based track routes. */
|
|
182
|
+
export declare function routeDependencyTracks<TDatum extends Datum = Datum>(machine: DependencyMachine<TDatum>, dimensions: DependencyTrackDimensions, options?: DependencyTrackOptions): DependencyTrackLayout;
|
|
183
|
+
/** Stateful exact logical join. Physics contacts may call `deliver`; they never define the rule. */
|
|
184
|
+
export declare function createLogicalJoin(taskID: string, incomingEdgeIDs: readonly string[], mode?: "all"): LogicalJoin;
|
|
185
|
+
/** Deterministically fold recorded process events through a supplied clock. */
|
|
186
|
+
export declare function replayStateTransitions(events: readonly DependencyReplayEvent[], clock: DependencyReplayClock): DependencyReplayState;
|
|
187
|
+
/** Directed unfinished-descendant reach, deliberately not a critical-path claim. */
|
|
188
|
+
export declare function calculateBlockerAmplification<TDatum extends Datum = Datum>(machine: DependencyMachine<TDatum>, blockerID: string, options?: BlockerAmplificationOptions<TDatum>): BlockerAmplification;
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import type { Datum } from "../shared/datumTypes";
|
|
2
|
+
import type { ChartAccessor } from "../shared/types";
|
|
3
|
+
import { type PhysicsQueuedSpawn } from "../../stream/physics/PhysicsPipelineStore";
|
|
4
|
+
import { type PhysicsChartArea, type PhysicsChartLayout } from "./physicsChartShared";
|
|
5
|
+
export interface EventDropWindowOptions {
|
|
6
|
+
size: number;
|
|
7
|
+
gapPolicy?: "drop" | "keep";
|
|
8
|
+
}
|
|
9
|
+
export interface EventDropPlotRegion {
|
|
10
|
+
x: number;
|
|
11
|
+
y: number;
|
|
12
|
+
width: number;
|
|
13
|
+
height: number;
|
|
14
|
+
}
|
|
15
|
+
export interface EventDropLidSegment {
|
|
16
|
+
id: string;
|
|
17
|
+
windowIndex?: number;
|
|
18
|
+
x1: number;
|
|
19
|
+
y1: number;
|
|
20
|
+
x2: number;
|
|
21
|
+
y2: number;
|
|
22
|
+
}
|
|
23
|
+
export interface EventDropProjectionMetadata {
|
|
24
|
+
kind: "event-drop";
|
|
25
|
+
closedWindowCount: number;
|
|
26
|
+
gutter: EventDropPlotRegion;
|
|
27
|
+
lateCount: number;
|
|
28
|
+
lidSegments: EventDropLidSegment[];
|
|
29
|
+
plot: PhysicsChartArea["plot"];
|
|
30
|
+
windowPlot: EventDropPlotRegion;
|
|
31
|
+
watermarkValue: number;
|
|
32
|
+
windowCount: number;
|
|
33
|
+
windowSize: number;
|
|
34
|
+
windowStart: number;
|
|
35
|
+
}
|
|
36
|
+
export interface EventDropPhysicsOptions<TDatum extends Datum = Datum> {
|
|
37
|
+
data: readonly TDatum[];
|
|
38
|
+
timeAccessor: ChartAccessor<TDatum, number>;
|
|
39
|
+
arrivalAccessor: ChartAccessor<TDatum, number>;
|
|
40
|
+
windows: EventDropWindowOptions;
|
|
41
|
+
watermark?: {
|
|
42
|
+
delay?: number;
|
|
43
|
+
value?: number;
|
|
44
|
+
} | ((latestEventTime: number) => number);
|
|
45
|
+
ballRadius: number;
|
|
46
|
+
seed: number;
|
|
47
|
+
size: [number, number];
|
|
48
|
+
timeExtent?: [number, number];
|
|
49
|
+
timeScale?: number;
|
|
50
|
+
}
|
|
51
|
+
export declare function buildEventDropPhysics<TDatum extends Datum>(options: EventDropPhysicsOptions<TDatum>): PhysicsChartLayout;
|
|
52
|
+
/**
|
|
53
|
+
* Place a single event onto an already-mounted EventDropChart using the live
|
|
54
|
+
* board's domain (window layout + current watermark) so a pushed arrival drops
|
|
55
|
+
* over its true event-time x instead of the center of a one-event mini-domain.
|
|
56
|
+
* Closed-window lids then decide whether physics sends it to the gutter.
|
|
57
|
+
* Returns null when the datum carries no finite event time. Omits `spawnAt` so
|
|
58
|
+
* the store drops it now.
|
|
59
|
+
*/
|
|
60
|
+
export declare function placeEventDropSpawn<TDatum extends Datum>(datum: TDatum, index: number, metadata: EventDropProjectionMetadata, options: {
|
|
61
|
+
timeAccessor: ChartAccessor<TDatum, number>;
|
|
62
|
+
arrivalAccessor: ChartAccessor<TDatum, number>;
|
|
63
|
+
ballRadius: number;
|
|
64
|
+
}): PhysicsQueuedSpawn | null;
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import type { Datum } from "../shared/datumTypes";
|
|
2
|
+
import type { ChartAccessor } from "../shared/types";
|
|
3
|
+
import { type PhysicsChartArea, type PhysicsChartLayout } from "./physicsChartShared";
|
|
4
|
+
export interface GaltonBoardPhysicsOptions<TDatum extends Datum = Datum> {
|
|
5
|
+
data: readonly TDatum[];
|
|
6
|
+
valueAccessor: ChartAccessor<TDatum, number>;
|
|
7
|
+
bins: number;
|
|
8
|
+
ballRadius: number;
|
|
9
|
+
seed: number;
|
|
10
|
+
size: [number, number];
|
|
11
|
+
valueExtent?: [number, number];
|
|
12
|
+
}
|
|
13
|
+
export interface GaltonBoardProjectionMetadata {
|
|
14
|
+
kind: "galton-board";
|
|
15
|
+
bins: number;
|
|
16
|
+
plot: PhysicsChartArea["plot"];
|
|
17
|
+
valueExtent: [number, number];
|
|
18
|
+
}
|
|
19
|
+
export interface GaltonMechanicalSampleOptions {
|
|
20
|
+
bins: number;
|
|
21
|
+
count?: number;
|
|
22
|
+
pegRows?: number;
|
|
23
|
+
branchProbability?: number;
|
|
24
|
+
seed?: number;
|
|
25
|
+
idPrefix?: string;
|
|
26
|
+
}
|
|
27
|
+
export declare function generateGaltonMechanicalSamples(options: GaltonMechanicalSampleOptions): Datum[];
|
|
28
|
+
export declare function buildGaltonBoardPhysics<TDatum extends Datum>(options: GaltonBoardPhysicsOptions<TDatum>): PhysicsChartLayout;
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* GauntletChart public props (HOC surface).
|
|
3
|
+
*/
|
|
4
|
+
import type { StreamPhysicsFrameProps } from "../../stream/physics/StreamPhysicsFrame";
|
|
5
|
+
import type { CapacityQueueSnapshot } from "../../stream/physics/PhysicsControllers";
|
|
6
|
+
import type { PhysicsQueuedSpawn } from "../../stream/physics/PhysicsPipelineStore";
|
|
7
|
+
import type { Datum } from "../shared/datumTypes";
|
|
8
|
+
import type { BaseChartProps, ChartAccessor } from "../shared/types";
|
|
9
|
+
import type { PhysicsProcessBodyGroup } from "./physicsProcessPrimitives";
|
|
10
|
+
import type { PhysicsHocFrameProps, PhysicsSharedChartProps, TooltipProp } from "./physicsHocUtils";
|
|
11
|
+
import type { GauntletEvent, GauntletGate, GauntletLayout, GauntletProjectPlacement, GauntletProjectState, GauntletPropertyDefinition } from "./gauntletTypes";
|
|
12
|
+
export interface GauntletChartProps<TDatum extends Datum = Datum> extends Omit<BaseChartProps, "margin">, PhysicsSharedChartProps {
|
|
13
|
+
data?: TDatum[];
|
|
14
|
+
size?: [number, number];
|
|
15
|
+
idAccessor?: ChartAccessor<TDatum, string>;
|
|
16
|
+
labelAccessor?: ChartAccessor<TDatum, string>;
|
|
17
|
+
positiveAccessor?: ChartAccessor<TDatum, readonly string[]>;
|
|
18
|
+
negativeAccessor?: ChartAccessor<TDatum, readonly string[]>;
|
|
19
|
+
/** Simulation second when each project's local gate timeline begins. */
|
|
20
|
+
startTimeAccessor?: ChartAccessor<TDatum, number>;
|
|
21
|
+
metricsAccessor?: ChartAccessor<TDatum, Record<string, number>>;
|
|
22
|
+
initialViability?: ChartAccessor<TDatum, number>;
|
|
23
|
+
positiveProperties?: readonly GauntletPropertyDefinition[];
|
|
24
|
+
negativeProperties: readonly GauntletPropertyDefinition[];
|
|
25
|
+
bodyGroups?: readonly PhysicsProcessBodyGroup<TDatum>[] | ((projects: readonly GauntletProjectState<TDatum>[], layout: GauntletLayout) => readonly PhysicsProcessBodyGroup<TDatum>[]);
|
|
26
|
+
coreBody?: (project: GauntletProjectState<TDatum>, index: number, layout: GauntletLayout, placement: Required<GauntletProjectPlacement>) => Partial<PhysicsQueuedSpawn>;
|
|
27
|
+
gates?: readonly GauntletGate[];
|
|
28
|
+
events?: readonly GauntletEvent[] | ((project: GauntletProjectState<TDatum>, layout: GauntletLayout) => readonly GauntletEvent[]);
|
|
29
|
+
crashOffset?: number;
|
|
30
|
+
/** Draw the crash line but optionally disable live crash-line termination. */
|
|
31
|
+
crashDetection?: boolean;
|
|
32
|
+
emptyContent?: BaseChartProps["emptyContent"];
|
|
33
|
+
frameProps?: PhysicsHocFrameProps<"bodyForces">;
|
|
34
|
+
initialSpawnPacing?: StreamPhysicsFrameProps["initialSpawnPacing"];
|
|
35
|
+
loading?: BaseChartProps["loading"];
|
|
36
|
+
loadingContent?: BaseChartProps["loadingContent"];
|
|
37
|
+
onStateChange?: (states: GauntletProjectState<TDatum>[]) => void;
|
|
38
|
+
/** Live snapshots for gates declaring shared FIFO capacity. */
|
|
39
|
+
onCapacityChange?: (snapshots: CapacityQueueSnapshot[]) => void;
|
|
40
|
+
outcome?: (project: GauntletProjectState<TDatum>, context: {
|
|
41
|
+
layout: GauntletLayout;
|
|
42
|
+
negativeProperties: Map<string, GauntletPropertyDefinition>;
|
|
43
|
+
positiveProperties: Map<string, GauntletPropertyDefinition>;
|
|
44
|
+
}) => string;
|
|
45
|
+
paused?: boolean;
|
|
46
|
+
projectPlacement?: (project: GauntletProjectState<TDatum>, index: number, layout: GauntletLayout) => Partial<GauntletProjectPlacement>;
|
|
47
|
+
showChrome?: boolean;
|
|
48
|
+
/**
|
|
49
|
+
* Settled-projection strip: project viability bars and outcome labels so the
|
|
50
|
+
* chart remains readable without tracking body motion.
|
|
51
|
+
*/
|
|
52
|
+
showProjection?: boolean;
|
|
53
|
+
showTethers?: boolean;
|
|
54
|
+
/**
|
|
55
|
+
* Core-body vertical force model.
|
|
56
|
+
* - "route": default authored route plus lift/drag burden.
|
|
57
|
+
* - "net": vertical drift follows summed positive vs negative property
|
|
58
|
+
* weight, leaving the crash line to decide physical failure.
|
|
59
|
+
*/
|
|
60
|
+
coreForceMode?: "route" | "net";
|
|
61
|
+
terminalBehavior?: "outcome" | "hold-last";
|
|
62
|
+
tooltip?: TooltipProp;
|
|
63
|
+
viability?: (project: GauntletProjectState<TDatum>, context: {
|
|
64
|
+
negativeProperties: Map<string, GauntletPropertyDefinition>;
|
|
65
|
+
positiveProperties: Map<string, GauntletPropertyDefinition>;
|
|
66
|
+
}) => number;
|
|
67
|
+
}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Gauntlet canvas paint + SVG chrome / projection overlay.
|
|
3
|
+
*/
|
|
4
|
+
import * as React from "react";
|
|
5
|
+
import type { Datum } from "../shared/datumTypes";
|
|
6
|
+
import type { Style } from "../../stream/types";
|
|
7
|
+
import type { PhysicsBodyState } from "../../stream/physics/PhysicsKernel";
|
|
8
|
+
import type { PhysicsHoverData } from "../../stream/physics/StreamPhysicsFrame";
|
|
9
|
+
import type { PhysicsSemanticItem } from "../../stream/physics/StreamPhysicsTypes";
|
|
10
|
+
import { type GauntletLayout, type GauntletProjectState } from "./gauntletPhysics";
|
|
11
|
+
export declare function defaultGauntletTooltipContent(hover: PhysicsHoverData): React.ReactNode;
|
|
12
|
+
export declare function drawGauntletBody(ctx: CanvasRenderingContext2D, body: PhysicsBodyState, style: Style): void;
|
|
13
|
+
export declare function resolveCanvasColor(ctx: CanvasRenderingContext2D, value: Style[keyof Style] | undefined, fallback: string): string;
|
|
14
|
+
export declare function drawTethers(ctx: CanvasRenderingContext2D, bodies: PhysicsBodyState[]): void;
|
|
15
|
+
export declare function GauntletChrome({ layout, states }: {
|
|
16
|
+
layout: GauntletLayout;
|
|
17
|
+
states: readonly GauntletProjectState[];
|
|
18
|
+
}): React.JSX.Element;
|
|
19
|
+
export declare function gauntletSemanticItem(body: PhysicsBodyState): false | {
|
|
20
|
+
label: string;
|
|
21
|
+
group: string;
|
|
22
|
+
description: string;
|
|
23
|
+
};
|
|
24
|
+
export declare function gauntletProjectionRows<TDatum extends Datum>(states: readonly GauntletProjectState<TDatum>[]): Array<{
|
|
25
|
+
label: string;
|
|
26
|
+
value: number;
|
|
27
|
+
outcome: string;
|
|
28
|
+
}>;
|
|
29
|
+
export declare function gauntletProjectionSemanticItems<TDatum extends Datum>(states: readonly GauntletProjectState<TDatum>[], layout: GauntletLayout): PhysicsSemanticItem[];
|
|
30
|
+
export declare function GauntletProjectionOverlay<TDatum extends Datum>({ states, layout }: {
|
|
31
|
+
states: readonly GauntletProjectState<TDatum>[];
|
|
32
|
+
layout: GauntletLayout;
|
|
33
|
+
}): React.JSX.Element | null;
|