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,213 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Gauntlet domain types + body-kind constants (no heavy runtime).
|
|
3
|
+
*/
|
|
4
|
+
import type { Datum } from "../shared/datumTypes";
|
|
5
|
+
import type { ChartAccessor } from "../shared/types";
|
|
6
|
+
import type { PhysicsBodyState } from "../../stream/physics/PhysicsKernel";
|
|
7
|
+
import type { PhysicsQueuedSpawn, PhysicsSpawnSpringSpec } from "../../stream/physics/PhysicsPipelineStore";
|
|
8
|
+
import type { StreamPhysicsRegionEffect } from "../../stream/physics/StreamPhysicsTypes";
|
|
9
|
+
export declare const CORE_KIND: "gauntlet-core";
|
|
10
|
+
export declare const POSITIVE_KIND: "gauntlet-positive";
|
|
11
|
+
export declare const NEGATIVE_KIND: "gauntlet-negative";
|
|
12
|
+
export interface GauntletProjectPlacement {
|
|
13
|
+
graveyardX?: number;
|
|
14
|
+
graveyardY?: number;
|
|
15
|
+
routeY?: number;
|
|
16
|
+
socketX?: number;
|
|
17
|
+
socketY?: number;
|
|
18
|
+
startX?: number;
|
|
19
|
+
startY?: number;
|
|
20
|
+
}
|
|
21
|
+
export interface GauntletPropertyForceContext<TDatum extends Datum = Datum> {
|
|
22
|
+
body: PhysicsBodyState;
|
|
23
|
+
bodies: readonly PhysicsBodyState[];
|
|
24
|
+
core: PhysicsBodyState;
|
|
25
|
+
index: number;
|
|
26
|
+
layout: GauntletLayout;
|
|
27
|
+
placement: Required<GauntletProjectPlacement>;
|
|
28
|
+
project: GauntletProjectState<TDatum>;
|
|
29
|
+
}
|
|
30
|
+
export interface GauntletPropertyDefinition {
|
|
31
|
+
id: string;
|
|
32
|
+
label?: string;
|
|
33
|
+
short?: string;
|
|
34
|
+
color?: string;
|
|
35
|
+
value?: number;
|
|
36
|
+
radius?: number;
|
|
37
|
+
mass?: number;
|
|
38
|
+
buoyancy?: number;
|
|
39
|
+
load?: number;
|
|
40
|
+
/** Work units required to remove one occurrence at a bounded-work gate. */
|
|
41
|
+
work?: number;
|
|
42
|
+
/** Lower values are selected first by the default work-budget planner. */
|
|
43
|
+
priority?: number;
|
|
44
|
+
pull?: {
|
|
45
|
+
x?: number;
|
|
46
|
+
y?: number;
|
|
47
|
+
};
|
|
48
|
+
popColor?: string;
|
|
49
|
+
spring?: false | Partial<PhysicsSpawnSpringSpec>;
|
|
50
|
+
target?: (context: GauntletPropertyForceContext) => {
|
|
51
|
+
x: number;
|
|
52
|
+
y: number;
|
|
53
|
+
} | null | undefined;
|
|
54
|
+
}
|
|
55
|
+
export interface GauntletGate {
|
|
56
|
+
id: string;
|
|
57
|
+
label?: string;
|
|
58
|
+
description?: string;
|
|
59
|
+
color?: string;
|
|
60
|
+
/**
|
|
61
|
+
* Optional shared FIFO capacity for compound cores crossing this gate.
|
|
62
|
+
* Event time remains the earliest arrival; the matching gate event waits
|
|
63
|
+
* until the project's core has been processed.
|
|
64
|
+
*/
|
|
65
|
+
capacity?: {
|
|
66
|
+
unitsPerSecond: number;
|
|
67
|
+
/** Reads work units from the source datum or live project state. */
|
|
68
|
+
unitAccessor?: string | ((project: GauntletProjectState) => number);
|
|
69
|
+
maxQueue?: number;
|
|
70
|
+
queueLayout?: "lane" | "none";
|
|
71
|
+
queueSlotSpacing?: number;
|
|
72
|
+
queueStiffness?: number;
|
|
73
|
+
/** Invisible sensor/queue width; independent from the drawn gate width. */
|
|
74
|
+
sensorWidth?: number;
|
|
75
|
+
};
|
|
76
|
+
enabled?: boolean;
|
|
77
|
+
regionEffect?: Partial<Omit<StreamPhysicsRegionEffect, "id" | "shape">>;
|
|
78
|
+
time?: number;
|
|
79
|
+
x?: number;
|
|
80
|
+
width?: number;
|
|
81
|
+
}
|
|
82
|
+
/** Pop one or more attached property ids from a project. */
|
|
83
|
+
export type GauntletPopSpec = readonly string[] | {
|
|
84
|
+
candidates?: readonly string[];
|
|
85
|
+
count?: number;
|
|
86
|
+
ids?: readonly string[];
|
|
87
|
+
};
|
|
88
|
+
export interface GauntletEffect {
|
|
89
|
+
addPositive?: readonly string[] | Record<string, number>;
|
|
90
|
+
addNegative?: readonly string[] | Record<string, number>;
|
|
91
|
+
popPositive?: GauntletPopSpec;
|
|
92
|
+
/**
|
|
93
|
+
* Remove attached negative property bodies — the inverse of the common
|
|
94
|
+
* "pop positives / add negatives" gate. Supports the same array / candidates
|
|
95
|
+
* / ids shape as {@link popPositive}.
|
|
96
|
+
*/
|
|
97
|
+
popNegative?: GauntletPopSpec;
|
|
98
|
+
delayDelta?: number;
|
|
99
|
+
metricsDelta?: Record<string, number>;
|
|
100
|
+
outcome?: string;
|
|
101
|
+
stage?: string;
|
|
102
|
+
summary?: string;
|
|
103
|
+
viabilityDelta?: number;
|
|
104
|
+
when?: (context: GauntletEventContext) => boolean;
|
|
105
|
+
}
|
|
106
|
+
export interface GauntletEvent {
|
|
107
|
+
id: string;
|
|
108
|
+
label?: string;
|
|
109
|
+
time: number;
|
|
110
|
+
gateId?: string;
|
|
111
|
+
/** Capacity-gate visit this event waits for. Defaults to its gate-event ordinal. */
|
|
112
|
+
gateVisit?: number;
|
|
113
|
+
effects?: readonly GauntletEffect[];
|
|
114
|
+
final?: boolean;
|
|
115
|
+
outcome?: string;
|
|
116
|
+
routeX?: number;
|
|
117
|
+
routeY?: number;
|
|
118
|
+
summary?: string;
|
|
119
|
+
}
|
|
120
|
+
export interface GauntletEventLogItem {
|
|
121
|
+
id: string;
|
|
122
|
+
label: string;
|
|
123
|
+
summary?: string;
|
|
124
|
+
/** Actual project-local application time (event `time` is the authored earliest time). */
|
|
125
|
+
appliedAt?: number;
|
|
126
|
+
time?: number;
|
|
127
|
+
}
|
|
128
|
+
export interface GauntletProjectState<TDatum extends Datum = Datum> {
|
|
129
|
+
crashX?: number;
|
|
130
|
+
id: string;
|
|
131
|
+
activePositiveIds: string[];
|
|
132
|
+
datum: TDatum;
|
|
133
|
+
delay: number;
|
|
134
|
+
eventsApplied: string[];
|
|
135
|
+
/** Ordered event tape for readouts, replay evidence, and accessibility. */
|
|
136
|
+
eventHistory?: GauntletEventLogItem[];
|
|
137
|
+
killed: boolean;
|
|
138
|
+
lastEvent?: GauntletEventLogItem;
|
|
139
|
+
metrics: Record<string, number>;
|
|
140
|
+
missingPositiveIds: string[];
|
|
141
|
+
negativeIds: string[];
|
|
142
|
+
outcome: string;
|
|
143
|
+
poppedPositiveIds: string[];
|
|
144
|
+
/** Negative property ids removed by {@link GauntletEffect.popNegative}. */
|
|
145
|
+
poppedNegativeIds: string[];
|
|
146
|
+
/** Project-local timeline origin in simulation seconds. */
|
|
147
|
+
startedAt?: number;
|
|
148
|
+
stage: string;
|
|
149
|
+
viability: number;
|
|
150
|
+
}
|
|
151
|
+
export interface GauntletLayout {
|
|
152
|
+
crashY: number;
|
|
153
|
+
floorY: number;
|
|
154
|
+
gates: Array<Required<Pick<GauntletGate, "id" | "x" | "width">> & GauntletGate>;
|
|
155
|
+
graveyardX: number;
|
|
156
|
+
graveyardY: number;
|
|
157
|
+
height: number;
|
|
158
|
+
routeY: number;
|
|
159
|
+
socketX: number;
|
|
160
|
+
startX: number;
|
|
161
|
+
width: number;
|
|
162
|
+
}
|
|
163
|
+
export interface GauntletEventContext<TDatum extends Datum = Datum> {
|
|
164
|
+
event: GauntletEvent;
|
|
165
|
+
gate?: GauntletLayout["gates"][number];
|
|
166
|
+
negativeProperties: Map<string, GauntletPropertyDefinition>;
|
|
167
|
+
positiveProperties: Map<string, GauntletPropertyDefinition>;
|
|
168
|
+
project: GauntletProjectState<TDatum>;
|
|
169
|
+
}
|
|
170
|
+
/** Placement override for a project in layout space. */
|
|
171
|
+
export type GauntletProjectPlacementFn<TDatum extends Datum = Datum> = (project: GauntletProjectState<TDatum>, index: number, layout: GauntletLayout) => Partial<GauntletProjectPlacement>;
|
|
172
|
+
/** Optional spawn overrides for the project core body. */
|
|
173
|
+
export type GauntletCoreBodyFn<TDatum extends Datum = Datum> = (project: GauntletProjectState<TDatum>, index: number, layout: GauntletLayout, placement: Required<GauntletProjectPlacement>) => Partial<PhysicsQueuedSpawn>;
|
|
174
|
+
/** Custom viability scorer. */
|
|
175
|
+
export type GauntletViabilityFn<TDatum extends Datum = Datum> = (project: GauntletProjectState<TDatum>, context: {
|
|
176
|
+
negativeProperties: Map<string, GauntletPropertyDefinition>;
|
|
177
|
+
positiveProperties: Map<string, GauntletPropertyDefinition>;
|
|
178
|
+
}) => number;
|
|
179
|
+
/** Accessors used when seeding project state from user rows. */
|
|
180
|
+
export interface GauntletAccessors<TDatum extends Datum = Datum> {
|
|
181
|
+
idAccessor?: ChartAccessor<TDatum, string>;
|
|
182
|
+
initialViability?: ChartAccessor<TDatum, number>;
|
|
183
|
+
metricsAccessor?: ChartAccessor<TDatum, Record<string, number>>;
|
|
184
|
+
negativeAccessor?: ChartAccessor<TDatum, readonly string[]>;
|
|
185
|
+
positiveAccessor?: ChartAccessor<TDatum, readonly string[]>;
|
|
186
|
+
startTimeAccessor?: ChartAccessor<TDatum, number>;
|
|
187
|
+
}
|
|
188
|
+
export interface GauntletPropertyWorkPlanOptions {
|
|
189
|
+
attachedIds: readonly string[];
|
|
190
|
+
properties: readonly GauntletPropertyDefinition[] | Map<string, GauntletPropertyDefinition>;
|
|
191
|
+
budget: number;
|
|
192
|
+
candidates?: readonly string[];
|
|
193
|
+
}
|
|
194
|
+
export interface GauntletPropertyWorkPlan {
|
|
195
|
+
ids: string[];
|
|
196
|
+
used: number;
|
|
197
|
+
budget: number;
|
|
198
|
+
remaining: number;
|
|
199
|
+
skippedIds: string[];
|
|
200
|
+
}
|
|
201
|
+
export interface GauntletNegativeReplacementOptions {
|
|
202
|
+
from: string;
|
|
203
|
+
to: string;
|
|
204
|
+
count?: number;
|
|
205
|
+
}
|
|
206
|
+
/** Wall colliders matching {@link GAUNTLET_WALL} / SSR builder. */
|
|
207
|
+
export interface GauntletBodyDatum<TDatum extends Datum = Datum> {
|
|
208
|
+
__gauntlet: true;
|
|
209
|
+
kind: typeof CORE_KIND | typeof POSITIVE_KIND | typeof NEGATIVE_KIND;
|
|
210
|
+
projectId: string;
|
|
211
|
+
property?: GauntletPropertyDefinition;
|
|
212
|
+
sourceDatum: TDatum;
|
|
213
|
+
}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import type { Datum } from "../shared/datumTypes";
|
|
2
|
+
import type { ChartAccessor } from "../shared/types";
|
|
3
|
+
import { type PhysicsChartArea, type PhysicsChartLayout } from "./physicsChartShared";
|
|
4
|
+
export type PhysicalFlowCoordinateMode = "auto" | "normalized" | "pixels";
|
|
5
|
+
export type PhysicalFlowPathConstraint = "path" | "none";
|
|
6
|
+
export interface PhysicalFlowPoint {
|
|
7
|
+
x: number;
|
|
8
|
+
y: number;
|
|
9
|
+
}
|
|
10
|
+
export type PhysicalFlowRawPath = ReadonlyArray<PhysicalFlowPoint | readonly [number, number]>;
|
|
11
|
+
export interface PhysicalFlowOptions<TNode extends Datum = Datum, TLink extends Datum = Datum> {
|
|
12
|
+
nodes: readonly TNode[];
|
|
13
|
+
links: readonly TLink[];
|
|
14
|
+
nodeIdAccessor: ChartAccessor<TNode, string>;
|
|
15
|
+
nodeXAccessor: ChartAccessor<TNode, number>;
|
|
16
|
+
nodeYAccessor: ChartAccessor<TNode, number>;
|
|
17
|
+
sourceAccessor: ChartAccessor<TLink, string>;
|
|
18
|
+
targetAccessor: ChartAccessor<TLink, string>;
|
|
19
|
+
throughputAccessor: ChartAccessor<TLink, number>;
|
|
20
|
+
pathAccessor?: ChartAccessor<TLink, PhysicalFlowRawPath | undefined>;
|
|
21
|
+
coordinateMode?: PhysicalFlowCoordinateMode;
|
|
22
|
+
particleRate: number;
|
|
23
|
+
maxParticles: number;
|
|
24
|
+
particleRadius: number;
|
|
25
|
+
flowSpeed: number;
|
|
26
|
+
pathConstraint?: PhysicalFlowPathConstraint;
|
|
27
|
+
reducedMotion?: boolean;
|
|
28
|
+
seed: number;
|
|
29
|
+
size: [number, number];
|
|
30
|
+
}
|
|
31
|
+
export interface PhysicalFlowProjectionMetadata {
|
|
32
|
+
kind: "physical-flow";
|
|
33
|
+
coordinateMode: Exclude<PhysicalFlowCoordinateMode, "auto">;
|
|
34
|
+
particleCount: number;
|
|
35
|
+
totalThroughput: number;
|
|
36
|
+
plot: PhysicsChartArea["plot"];
|
|
37
|
+
nodes: Array<{
|
|
38
|
+
id: string;
|
|
39
|
+
label: string;
|
|
40
|
+
x: number;
|
|
41
|
+
y: number;
|
|
42
|
+
sensorId: string;
|
|
43
|
+
incoming: number;
|
|
44
|
+
outgoing: number;
|
|
45
|
+
}>;
|
|
46
|
+
links: Array<{
|
|
47
|
+
id: string;
|
|
48
|
+
source: string;
|
|
49
|
+
target: string;
|
|
50
|
+
sourceLabel: string;
|
|
51
|
+
targetLabel: string;
|
|
52
|
+
throughput: number;
|
|
53
|
+
packetCount: number;
|
|
54
|
+
path: PhysicalFlowPoint[];
|
|
55
|
+
}>;
|
|
56
|
+
}
|
|
57
|
+
export declare function buildPhysicalFlowPhysics<TNode extends Datum, TLink extends Datum>(options: PhysicalFlowOptions<TNode, TLink>): PhysicsChartLayout;
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import type { Datum } from "../shared/datumTypes";
|
|
2
|
+
import type { ChartAccessor } from "../shared/types";
|
|
3
|
+
import type { Style } from "../../stream/types";
|
|
4
|
+
import { type StyleRule } from "../shared/styleRules";
|
|
5
|
+
import type { PhysicsColliderSpec } from "../../stream/physics/PhysicsKernel";
|
|
6
|
+
import type { PhysicsPipelineConfig, PhysicsQueuedSpawn, PhysicsSpawnPacingOptions } from "../../stream/physics/PhysicsPipelineStore";
|
|
7
|
+
import type { PhysicsSemanticItem } from "../../stream/physics/StreamPhysicsTypes";
|
|
8
|
+
export interface PhysicsChartLayout {
|
|
9
|
+
config: PhysicsPipelineConfig;
|
|
10
|
+
initialSpawns: PhysicsQueuedSpawn[];
|
|
11
|
+
initialSpawnPacing?: PhysicsSpawnPacingOptions;
|
|
12
|
+
projectionRows: Array<{
|
|
13
|
+
label: string;
|
|
14
|
+
value: number;
|
|
15
|
+
secondary?: number;
|
|
16
|
+
}>;
|
|
17
|
+
metadata?: Record<string, unknown>;
|
|
18
|
+
}
|
|
19
|
+
export interface PhysicsChartArea {
|
|
20
|
+
width: number;
|
|
21
|
+
height: number;
|
|
22
|
+
plot: {
|
|
23
|
+
x: number;
|
|
24
|
+
y: number;
|
|
25
|
+
width: number;
|
|
26
|
+
height: number;
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
export declare function physicsChartArea(size: [number, number]): PhysicsChartArea;
|
|
30
|
+
export declare function hashStringColor(value: unknown): string;
|
|
31
|
+
export interface PhysicsStyleRuleOptions {
|
|
32
|
+
/** Declarative style rules, merged on top of the colorBy-derived body fill. */
|
|
33
|
+
styleRules?: ReadonlyArray<StyleRule>;
|
|
34
|
+
/** Numeric field/accessor a threshold rule compares against (defaults to `value`). */
|
|
35
|
+
valueAccessor?: string | ((d: Datum) => unknown);
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Build a per-body `bodyStyle` from a `colorBy` accessor. When `styleRules`
|
|
39
|
+
* are supplied, the merged rule style layers on top of the colorBy-derived
|
|
40
|
+
* fill (last-applicable rule wins) — the physics counterpart to the ordinal
|
|
41
|
+
* bar `styleRules`. Rules resolve against the body's original `datum`; `ctx` =
|
|
42
|
+
* `{ value, category }` where `category` is the colorBy group. Because every
|
|
43
|
+
* colorBy-driven physics HOC and its SSR config funnel through this helper,
|
|
44
|
+
* one call wires rules for all of them.
|
|
45
|
+
*/
|
|
46
|
+
export declare function styleFromColorAccessor<TDatum extends Datum>(colorBy: ChartAccessor<TDatum, string> | undefined, fallback?: string, opts?: PhysicsStyleRuleOptions): (body: {
|
|
47
|
+
datum?: unknown;
|
|
48
|
+
}) => Style;
|
|
49
|
+
export declare function baseConfig(seed: number, colliders: PhysicsColliderSpec[], chartType: string, kernel?: Partial<NonNullable<PhysicsPipelineConfig["kernel"]>>): PhysicsPipelineConfig;
|
|
50
|
+
export declare function projectionRowsToSemanticItems(rows: readonly PhysicsChartLayout["projectionRows"][number][], size: [number, number], noun: string): PhysicsSemanticItem[];
|
|
51
|
+
export declare function readAccessor<TDatum extends Datum, TValue>(datum: TDatum, index: number, accessor: ChartAccessor<TDatum, TValue>): TValue;
|
|
52
|
+
export declare function finiteNumber(value: unknown): number | null;
|
|
53
|
+
export declare function clampNumber(value: number, min: number, max: number): number;
|
|
54
|
+
export declare function positiveNumber(value: unknown, fallback: number): number;
|
|
55
|
+
export declare function normalizedFiniteExtent(extent: readonly [unknown, unknown] | undefined): [number, number] | undefined;
|
|
56
|
+
export declare function safeIdPart(value: unknown): string;
|
|
57
|
+
export declare function seededRandom(seed: number): () => number;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Physics chart layout builders — barrel re-export.
|
|
3
|
+
* Implementations live in per-chart modules next to this file.
|
|
4
|
+
*/
|
|
5
|
+
export type { PhysicsChartLayout, PhysicsChartArea } from "./physicsChartShared";
|
|
6
|
+
export { projectionRowsToSemanticItems, physicsChartArea, hashStringColor, styleFromColorAccessor } from "./physicsChartShared";
|
|
7
|
+
export type { GaltonBoardPhysicsOptions, GaltonBoardProjectionMetadata, GaltonMechanicalSampleOptions } from "./galtonBoardPhysics";
|
|
8
|
+
export { generateGaltonMechanicalSamples, buildGaltonBoardPhysics } from "./galtonBoardPhysics";
|
|
9
|
+
export type { EventDropWindowOptions, EventDropPlotRegion, EventDropLidSegment, EventDropProjectionMetadata, EventDropPhysicsOptions } from "./eventDropPhysics";
|
|
10
|
+
export { buildEventDropPhysics, placeEventDropSpawn } from "./eventDropPhysics";
|
|
11
|
+
export type { PhysicsPileMechanicalSampleOptions, PhysicsPileOptions, PileTubeGeometry } from "./physicsPilePhysics";
|
|
12
|
+
export { generatePhysicsPileMechanicalSamples, pileTubeGeometry, buildPhysicsPile } from "./physicsPilePhysics";
|
|
13
|
+
export type { CollisionSwarmPhysicsOptions, CollisionSwarmProjectionMetadata } from "./collisionSwarmPhysics";
|
|
14
|
+
export { buildCollisionSwarmPhysics } from "./collisionSwarmPhysics";
|
|
15
|
+
export type { PhysicalFlowCoordinateMode, PhysicalFlowPathConstraint, PhysicalFlowPoint, PhysicalFlowRawPath, PhysicalFlowOptions, PhysicalFlowProjectionMetadata } from "./physicalFlowPhysics";
|
|
16
|
+
export { buildPhysicalFlowPhysics } from "./physicalFlowPhysics";
|
|
17
|
+
export type { ProcessFlowStageDef, ProcessFlowPhysicsOptions, ProcessFlowProjectionMetadata } from "./processFlowPhysics";
|
|
18
|
+
export { buildProcessFlowPhysics } from "./processFlowPhysics";
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import type { ThemeSemanticColors } from "../../stream/types";
|
|
2
|
+
import { type PhysicsPipelineConfig, type PhysicsQueuedSpawn, type PhysicsSpawnPacingOptions } from "../../stream/physics/PhysicsPipelineStore";
|
|
3
|
+
import type { Datum } from "../shared/datumTypes";
|
|
4
|
+
import type { BaseChartProps } from "../shared/types";
|
|
5
|
+
import type { PhysicsCustomLayout, PhysicsCustomLayoutContext, PhysicsCustomLayoutResult } from "./PhysicsCustomChart";
|
|
6
|
+
interface ResolvedPhysicsCustomLayout<TDatum extends Datum = Datum, TConfig extends object = Record<string, unknown>> {
|
|
7
|
+
config: PhysicsPipelineConfig;
|
|
8
|
+
context: PhysicsCustomLayoutContext<TDatum, TConfig>;
|
|
9
|
+
initialSpawnPacing?: PhysicsSpawnPacingOptions;
|
|
10
|
+
initialSpawns: PhysicsQueuedSpawn[];
|
|
11
|
+
result: PhysicsCustomLayoutResult;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Resolve the pure PhysicsCustomChart layout contract without importing the
|
|
15
|
+
* React HOC. Shared by the component and the static server renderer.
|
|
16
|
+
*/
|
|
17
|
+
export declare function resolveCustomLayout<TDatum extends Datum, TConfig extends object>(options: {
|
|
18
|
+
chartId?: string;
|
|
19
|
+
colorScheme?: string | string[] | Record<string, string>;
|
|
20
|
+
config?: PhysicsPipelineConfig;
|
|
21
|
+
data: TDatum[];
|
|
22
|
+
layout: PhysicsCustomLayout<TDatum, TConfig>;
|
|
23
|
+
layoutConfig?: TConfig;
|
|
24
|
+
onObservation?: BaseChartProps["onObservation"];
|
|
25
|
+
semantic: ThemeSemanticColors;
|
|
26
|
+
skipLayout?: boolean;
|
|
27
|
+
size: [number, number];
|
|
28
|
+
themeCategorical: string[];
|
|
29
|
+
xExtent?: [number, number];
|
|
30
|
+
yExtent?: [number, number];
|
|
31
|
+
}): ResolvedPhysicsCustomLayout<TDatum, TConfig>;
|
|
32
|
+
export {};
|
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
import type { Datum } from "../shared/datumTypes";
|
|
2
|
+
import type { MotionCoordinateSpace, MotionEncodingAccessor, MotionEncodingConstant, MotionKinematicsEncoding, MotionPlacementEncoding, MotionProcessEncoding, MotionTimeBasis, MotionTimeEncoding, MotionTimeUnit, ResolvedMotionEncodingRow } from "../shared/motionEncoding";
|
|
3
|
+
import type { Style } from "../../stream/types";
|
|
4
|
+
import type { PhysicsBodyShape, PhysicsBodyState } from "../../stream/physics/PhysicsKernel";
|
|
5
|
+
import type { PhysicsQueuedSpawn } from "../../stream/physics/PhysicsPipelineStore";
|
|
6
|
+
import type { PhysicsSemanticItem } from "../../stream/physics/StreamPhysicsFrame";
|
|
7
|
+
import type { PhysicsCustomLayout, PhysicsCustomLayoutContext, PhysicsCustomLayoutResult } from "./PhysicsCustomChart";
|
|
8
|
+
/** Explicit literal wrapper for channels whose values could also be field names. */
|
|
9
|
+
export type PhysicsEncodingConstant<TValue> = MotionEncodingConstant<TValue>;
|
|
10
|
+
/**
|
|
11
|
+
* A data channel can read a field, calculate a value, or provide an explicit
|
|
12
|
+
* constant. Constants use a wrapper so string values are never confused with
|
|
13
|
+
* field names.
|
|
14
|
+
*/
|
|
15
|
+
export type PhysicsEncodingAccessor<TDatum, TValue> = MotionEncodingAccessor<TDatum, TValue>;
|
|
16
|
+
export interface PhysicsAppearanceEncoding<TDatum> {
|
|
17
|
+
color?: PhysicsEncodingAccessor<TDatum, string>;
|
|
18
|
+
opacity?: PhysicsEncodingAccessor<TDatum, number>;
|
|
19
|
+
shape?: PhysicsEncodingAccessor<TDatum, PhysicsBodyShape>;
|
|
20
|
+
size?: PhysicsEncodingAccessor<TDatum, number>;
|
|
21
|
+
stroke?: PhysicsEncodingAccessor<TDatum, string>;
|
|
22
|
+
strokeWidth?: PhysicsEncodingAccessor<TDatum, number>;
|
|
23
|
+
}
|
|
24
|
+
export type PhysicsPlacementEncoding<TDatum> = MotionPlacementEncoding<TDatum>;
|
|
25
|
+
export interface PhysicsTimeEncoding<TDatum> extends MotionTimeEncoding<TDatum> {
|
|
26
|
+
/** Simulated time at which the body enters the world. */
|
|
27
|
+
spawnAt?: PhysicsEncodingAccessor<TDatum, number>;
|
|
28
|
+
}
|
|
29
|
+
export type PhysicsKinematicsEncoding<TDatum> = MotionKinematicsEncoding<TDatum>;
|
|
30
|
+
/**
|
|
31
|
+
* Causal simulation channels. Unlike appearance channels, these values change
|
|
32
|
+
* behavior and should be paired with visible or settled evidence when they
|
|
33
|
+
* carry analytical meaning.
|
|
34
|
+
*/
|
|
35
|
+
export interface PhysicsDynamicsEncoding<TDatum> {
|
|
36
|
+
bodyCollisions?: PhysicsEncodingAccessor<TDatum, boolean>;
|
|
37
|
+
friction?: PhysicsEncodingAccessor<TDatum, number>;
|
|
38
|
+
mass?: PhysicsEncodingAccessor<TDatum, number>;
|
|
39
|
+
restitution?: PhysicsEncodingAccessor<TDatum, number>;
|
|
40
|
+
}
|
|
41
|
+
export type PhysicsProcessEncoding<TDatum> = MotionProcessEncoding<TDatum>;
|
|
42
|
+
export interface PhysicsAccessibleEncoding<TDatum> {
|
|
43
|
+
description?: PhysicsEncodingAccessor<TDatum, string>;
|
|
44
|
+
group?: PhysicsEncodingAccessor<TDatum, string>;
|
|
45
|
+
label?: PhysicsEncodingAccessor<TDatum, string>;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Grammar-of-graphics bridge for physics-backed charts. Visual channels remain
|
|
49
|
+
* separate from causal dynamics and from process/evidence channels so motion
|
|
50
|
+
* does not silently become an unexplained quantitative encoding.
|
|
51
|
+
*/
|
|
52
|
+
export interface PhysicsEncoding<TDatum extends Datum = Datum> {
|
|
53
|
+
id: PhysicsEncodingAccessor<TDatum, string | number>;
|
|
54
|
+
appearance?: PhysicsAppearanceEncoding<TDatum>;
|
|
55
|
+
placement?: PhysicsPlacementEncoding<TDatum>;
|
|
56
|
+
time?: PhysicsTimeEncoding<TDatum>;
|
|
57
|
+
kinematics?: PhysicsKinematicsEncoding<TDatum>;
|
|
58
|
+
dynamics?: PhysicsDynamicsEncoding<TDatum>;
|
|
59
|
+
process?: PhysicsProcessEncoding<TDatum>;
|
|
60
|
+
/** Named analytical values retained on resolved rows for projections. */
|
|
61
|
+
evidence?: Record<string, PhysicsEncodingAccessor<TDatum, unknown>>;
|
|
62
|
+
accessible?: PhysicsAccessibleEncoding<TDatum>;
|
|
63
|
+
}
|
|
64
|
+
export interface PhysicsEncodingDefaults {
|
|
65
|
+
color?: string;
|
|
66
|
+
mass?: number;
|
|
67
|
+
opacity?: number;
|
|
68
|
+
shape?: PhysicsBodyShape;
|
|
69
|
+
size?: number;
|
|
70
|
+
stroke?: string;
|
|
71
|
+
strokeWidth?: number;
|
|
72
|
+
x?: number;
|
|
73
|
+
y?: number;
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* A resolved physics row is a resolved motion row (the shared neutral channels
|
|
77
|
+
* — kinematics, process, evidence, accessible) plus the physics-only channels:
|
|
78
|
+
* appearance, causal dynamics, a scaled/required placement, spawn timing, and
|
|
79
|
+
* the queued body spawn. Physics is literally a superset of motion.
|
|
80
|
+
*/
|
|
81
|
+
export interface ResolvedPhysicsEncodingRow<TDatum extends Datum = Datum> extends Omit<ResolvedMotionEncodingRow<TDatum>, "placement" | "time"> {
|
|
82
|
+
appearance: {
|
|
83
|
+
color?: string;
|
|
84
|
+
opacity?: number;
|
|
85
|
+
shape: PhysicsBodyShape;
|
|
86
|
+
size: number;
|
|
87
|
+
stroke?: string;
|
|
88
|
+
strokeWidth?: number;
|
|
89
|
+
};
|
|
90
|
+
placement: {
|
|
91
|
+
x: number;
|
|
92
|
+
y: number;
|
|
93
|
+
lane?: string | number;
|
|
94
|
+
space?: MotionCoordinateSpace;
|
|
95
|
+
};
|
|
96
|
+
time: {
|
|
97
|
+
arrival?: number;
|
|
98
|
+
spawnAt?: number;
|
|
99
|
+
basis?: MotionTimeBasis;
|
|
100
|
+
unit?: MotionTimeUnit;
|
|
101
|
+
};
|
|
102
|
+
dynamics: {
|
|
103
|
+
bodyCollisions?: boolean;
|
|
104
|
+
friction?: number;
|
|
105
|
+
mass: number;
|
|
106
|
+
restitution?: number;
|
|
107
|
+
};
|
|
108
|
+
spawn: PhysicsQueuedSpawn;
|
|
109
|
+
}
|
|
110
|
+
export interface PhysicsEncodingCompilation<TDatum extends Datum = Datum> {
|
|
111
|
+
rows: ResolvedPhysicsEncodingRow<TDatum>[];
|
|
112
|
+
byId: Map<string, ResolvedPhysicsEncodingRow<TDatum>>;
|
|
113
|
+
spawns: PhysicsQueuedSpawn[];
|
|
114
|
+
semanticItems: PhysicsSemanticItem[];
|
|
115
|
+
/**
|
|
116
|
+
* Per-body style lookup. Always the function form (the compiler resolves one
|
|
117
|
+
* style per id up front); assignable to `StreamPhysicsFrameProps["bodyStyle"]`.
|
|
118
|
+
*/
|
|
119
|
+
bodyStyle: (body: PhysicsBodyState) => Style;
|
|
120
|
+
}
|
|
121
|
+
export interface CompilePhysicsEncodingOptions<TDatum extends Datum = Datum> {
|
|
122
|
+
data: readonly TDatum[];
|
|
123
|
+
encoding: PhysicsEncoding<TDatum>;
|
|
124
|
+
defaults?: PhysicsEncodingDefaults;
|
|
125
|
+
scales?: {
|
|
126
|
+
x?: (value: number) => number;
|
|
127
|
+
y?: (value: number) => number;
|
|
128
|
+
};
|
|
129
|
+
}
|
|
130
|
+
/** Resolve row accessors once into worker-safe body spawns and chart metadata. */
|
|
131
|
+
export declare function compilePhysicsEncoding<TDatum extends Datum = Datum>(options: CompilePhysicsEncodingOptions<TDatum>): PhysicsEncodingCompilation<TDatum>;
|
|
132
|
+
export type PhysicsEncodingLayoutExtension = Omit<PhysicsCustomLayoutResult, "bodies" | "initialSpawns" | "bodyStyle" | "semanticItems"> & {
|
|
133
|
+
semanticItems?: PhysicsSemanticItem[];
|
|
134
|
+
};
|
|
135
|
+
export interface CreatePhysicsEncodingLayoutOptions<TDatum extends Datum = Datum, TConfig extends object = Record<string, unknown>> {
|
|
136
|
+
encoding: PhysicsEncoding<TDatum>;
|
|
137
|
+
defaults?: PhysicsEncodingDefaults;
|
|
138
|
+
/** Add constraints, regions, controllers, world config, and overlays. */
|
|
139
|
+
extend?: (context: PhysicsCustomLayoutContext<TDatum, TConfig>, compilation: PhysicsEncodingCompilation<TDatum>) => PhysicsEncodingLayoutExtension | undefined;
|
|
140
|
+
}
|
|
141
|
+
/** Build a PhysicsCustomChart layout from declarative data encodings. */
|
|
142
|
+
export declare function createPhysicsEncodingLayout<TDatum extends Datum = Datum, TConfig extends object = Record<string, unknown>>(options: CreatePhysicsEncodingLayoutOptions<TDatum, TConfig>): PhysicsCustomLayout<TDatum, TConfig>;
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import type { Ref, RefObject } from "react";
|
|
2
|
+
import type { Datum } from "../shared/datumTypes";
|
|
3
|
+
import type { RealtimeFrameHandle } from "../../realtime/types";
|
|
4
|
+
import type { StreamPhysicsFrameHandle } from "../../stream/physics/StreamPhysicsFrame";
|
|
5
|
+
import type { StreamPhysicsPopOptions } from "../../stream/physics/physicsBodyCanvas";
|
|
6
|
+
import type { PhysicsQueuedSpawn } from "../../stream/physics/PhysicsPipelineStore";
|
|
7
|
+
/**
|
|
8
|
+
* The imperative handle every physics HOC exposes: the shared realtime
|
|
9
|
+
* push/remove/update surface plus the physics-only `popBodies` — a
|
|
10
|
+
* body-removal "pop" burst (expanding ring + sparks) played by the frame.
|
|
11
|
+
* The exit-emphasis counterpart to realtime `pulse`; returns the ids of the
|
|
12
|
+
* bodies actually removed.
|
|
13
|
+
*/
|
|
14
|
+
export interface PhysicsFrameHandle extends RealtimeFrameHandle {
|
|
15
|
+
popBodies(ids: string[], options?: StreamPhysicsPopOptions): string[];
|
|
16
|
+
}
|
|
17
|
+
export interface PhysicsDatumSpawnResult {
|
|
18
|
+
datumId: string;
|
|
19
|
+
spawns: PhysicsQueuedSpawn[];
|
|
20
|
+
}
|
|
21
|
+
export interface UsePhysicsHocHandleOptions {
|
|
22
|
+
frameRef: RefObject<StreamPhysicsFrameHandle | null>;
|
|
23
|
+
/**
|
|
24
|
+
* Turn one user row into one or more physics body spawns. Called for
|
|
25
|
+
* push / pushMany / update — never for initial static layout (that path
|
|
26
|
+
* uses the HOC's `initialSpawns`).
|
|
27
|
+
*/
|
|
28
|
+
spawnDatum: (datum: Datum, index: number) => PhysicsDatumSpawnResult;
|
|
29
|
+
/**
|
|
30
|
+
* Optional seed so remove/update work on static initial rows without a
|
|
31
|
+
* prior push. Map each seed row to its body ids (defaults: single body
|
|
32
|
+
* whose id equals the datum id).
|
|
33
|
+
*/
|
|
34
|
+
seedRows?: readonly Datum[];
|
|
35
|
+
/**
|
|
36
|
+
* Resolve a stable row id for seed/push tracking. Defaults to
|
|
37
|
+
* `String(datum.id ?? index)`.
|
|
38
|
+
*/
|
|
39
|
+
idAccessor?: string | ((datum: Datum, index: number) => string);
|
|
40
|
+
/**
|
|
41
|
+
* Resolve body ids for a seed row. Defaults to matching `seedSpawns`
|
|
42
|
+
* (and unitized `rowId-*` ids), else `[rowId]`.
|
|
43
|
+
*/
|
|
44
|
+
bodyIdsForSeed?: (datum: Datum, rowId: string, index: number) => string[];
|
|
45
|
+
/**
|
|
46
|
+
* Initial layout spawns — used to resolve multi-body seed rows (pile
|
|
47
|
+
* unitization, physical-flow packets) for remove/update.
|
|
48
|
+
*/
|
|
49
|
+
seedSpawns?: readonly PhysicsQueuedSpawn[];
|
|
50
|
+
}
|
|
51
|
+
/** Body ids belonging to a seed row (handles unitized `id-0`, `id-1`, …). */
|
|
52
|
+
export declare function bodyIdsForSeedRow(rowId: string, spawns: readonly PhysicsQueuedSpawn[] | undefined): string[];
|
|
53
|
+
export declare function usePhysicsHocHandle(ref: Ref<PhysicsFrameHandle> | undefined, options: UsePhysicsHocHandleOptions): void;
|