semiotic 3.7.4 → 3.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CLAUDE.md +60 -15
- package/README.md +135 -24
- package/agent-skill/semiotic-charts/SKILL.md +146 -0
- package/ai/cli.js +133 -45
- package/ai/componentMetadata.cjs +6 -1
- package/ai/dist/mcp-server.js +1651 -154
- package/ai/examples.md +174 -0
- package/ai/schema.json +2934 -517
- package/ai/surface-manifest.json +200 -0
- package/ai/system-prompt.md +19 -3
- package/dist/components/Annotation.d.ts +4 -0
- package/dist/components/CategoryColors.d.ts +1 -1
- package/dist/components/ChartContainer.d.ts +91 -0
- package/dist/components/ChartGrid.d.ts +11 -1
- package/dist/components/CircularBrush.d.ts +61 -0
- package/dist/components/ContextLayout.d.ts +5 -1
- package/dist/components/DataSummaryContext.d.ts +1 -0
- package/dist/components/DirectManipulationControl.d.ts +63 -0
- package/dist/components/LinkedCharts.d.ts +3 -1
- package/dist/components/MobileAnnotationCalloutList.d.ts +13 -0
- package/dist/components/MobileChartContainer.d.ts +51 -0
- package/dist/components/MobileStandardControls.d.ts +68 -0
- package/dist/components/SmallMultipleChart.d.ts +84 -0
- package/dist/components/Tooltip/FlippingTooltip.d.ts +21 -0
- package/dist/components/ai/ChartRecipe.d.ts +16 -0
- package/dist/components/ai/IntentMark.d.ts +15 -0
- package/dist/components/ai/chartCapabilities.d.ts +8 -1
- package/dist/components/ai/chartCapabilityTypes.d.ts +42 -1
- package/dist/components/ai/chartClinic.d.ts +91 -0
- package/dist/components/ai/chartRecipeRegistry.d.ts +14 -0
- package/dist/components/ai/chartRecipes.d.ts +278 -0
- package/dist/components/ai/dataPitfallsBridge.d.ts +203 -0
- package/dist/components/ai/dataQualityBridge.d.ts +201 -0
- package/dist/components/ai/describeChart.d.ts +9 -0
- package/dist/components/ai/describeRecipeChart.d.ts +16 -0
- package/dist/components/ai/generativeChart.d.ts +170 -0
- package/dist/components/ai/intentManifest.d.ts +62 -0
- package/dist/components/ai/navigationTree.d.ts +3 -0
- package/dist/components/ai/observedSceneAudit.d.ts +72 -0
- package/dist/components/ai/readerGrounding.d.ts +83 -0
- package/dist/components/ai/recipeCapability.d.ts +8 -0
- package/dist/components/ai/recipeNavigation.d.ts +13 -0
- package/dist/components/ai/recipeSemantics.d.ts +11 -0
- package/dist/components/ai/repairChartConfig.d.ts +9 -0
- package/dist/components/ai/suggestCharts.d.ts +11 -1
- package/dist/components/charts/custom/GeoCustomChart.d.ts +48 -0
- package/dist/components/charts/custom/NetworkCustomChart.d.ts +22 -3
- package/dist/components/charts/custom/OrdinalCustomChart.d.ts +8 -2
- package/dist/components/charts/custom/XYCustomChart.d.ts +11 -2
- package/dist/components/charts/geo/DistanceCartogram.d.ts +1 -1
- package/dist/components/charts/geo/FlowMap.d.ts +1 -1
- package/dist/components/charts/geo/ProportionalSymbolMap.d.ts +1 -1
- package/dist/components/charts/geo/index.d.ts +2 -0
- package/dist/components/charts/index.d.ts +29 -1
- package/dist/components/charts/network/ChordDiagram.d.ts +1 -1
- package/dist/components/charts/network/CirclePack.d.ts +1 -1
- package/dist/components/charts/network/ForceDirectedGraph.d.ts +15 -5
- package/dist/components/charts/network/OrbitDiagram.d.ts +1 -1
- package/dist/components/charts/network/ProcessSankey.d.ts +1 -1
- package/dist/components/charts/network/SankeyDiagram.d.ts +1 -1
- package/dist/components/charts/network/TreeDiagram.d.ts +1 -1
- package/dist/components/charts/network/Treemap.d.ts +1 -1
- package/dist/components/charts/network/useForceLayout.d.ts +17 -0
- package/dist/components/charts/ordinal/BarChart.d.ts +1 -1
- package/dist/components/charts/ordinal/BoxPlot.d.ts +1 -1
- package/dist/components/charts/ordinal/DonutChart.d.ts +1 -1
- package/dist/components/charts/ordinal/DotPlot.d.ts +1 -1
- package/dist/components/charts/ordinal/FunnelChart.d.ts +1 -1
- package/dist/components/charts/ordinal/GroupedBarChart.d.ts +1 -1
- package/dist/components/charts/ordinal/Histogram.d.ts +1 -1
- package/dist/components/charts/ordinal/PieChart.d.ts +1 -1
- package/dist/components/charts/ordinal/RidgelinePlot.d.ts +1 -1
- package/dist/components/charts/ordinal/StackedBarChart.d.ts +1 -1
- package/dist/components/charts/ordinal/SwarmPlot.d.ts +8 -1
- package/dist/components/charts/ordinal/SwimlaneChart.d.ts +1 -1
- package/dist/components/charts/ordinal/ViolinPlot.d.ts +1 -1
- package/dist/components/charts/physics/ChainReactionChart.d.ts +9 -0
- package/dist/components/charts/physics/CollisionSwarmChart.capability.d.ts +2 -0
- package/dist/components/charts/physics/CollisionSwarmChart.d.ts +47 -0
- package/dist/components/charts/physics/EventDropChart.capability.d.ts +2 -0
- package/dist/components/charts/physics/EventDropChart.d.ts +53 -0
- package/dist/components/charts/physics/GaltonBoardChart.capability.d.ts +2 -0
- package/dist/components/charts/physics/GaltonBoardChart.d.ts +66 -0
- package/dist/components/charts/physics/GauntletChart.capability.d.ts +2 -0
- package/dist/components/charts/physics/GauntletChart.d.ts +73 -0
- package/dist/components/charts/physics/PhysicalFlowChart.capability.d.ts +2 -0
- package/dist/components/charts/physics/PhysicalFlowChart.d.ts +63 -0
- package/dist/components/charts/physics/PhysicsCustomChart.d.ts +120 -0
- package/dist/components/charts/physics/PhysicsPileChart.capability.d.ts +2 -0
- package/dist/components/charts/physics/PhysicsPileChart.d.ts +53 -0
- package/dist/components/charts/physics/ProcessFlowChart.capability.d.ts +2 -0
- package/dist/components/charts/physics/ProcessFlowChart.d.ts +96 -0
- package/dist/components/charts/physics/chainReactionOverlay.d.ts +22 -0
- package/dist/components/charts/physics/chainReactionRuntime.d.ts +37 -0
- package/dist/components/charts/physics/chainReactionTypes.d.ts +97 -0
- package/dist/components/charts/physics/collisionSwarmPhysics.d.ts +27 -0
- package/dist/components/charts/physics/dependencyMachine.d.ts +188 -0
- package/dist/components/charts/physics/eventDropPhysics.d.ts +64 -0
- package/dist/components/charts/physics/galtonBoardPhysics.d.ts +28 -0
- package/dist/components/charts/physics/gauntletChartProps.d.ts +67 -0
- package/dist/components/charts/physics/gauntletChrome.d.ts +33 -0
- package/dist/components/charts/physics/gauntletController.d.ts +73 -0
- package/dist/components/charts/physics/gauntletEffects.d.ts +36 -0
- package/dist/components/charts/physics/gauntletPhysics.d.ts +71 -0
- package/dist/components/charts/physics/gauntletRuntime.d.ts +42 -0
- package/dist/components/charts/physics/gauntletTypes.d.ts +213 -0
- package/dist/components/charts/physics/physicalFlowPhysics.d.ts +57 -0
- package/dist/components/charts/physics/physicsChartShared.d.ts +41 -0
- package/dist/components/charts/physics/physicsChartUtils.d.ts +18 -0
- package/dist/components/charts/physics/physicsEncoding.d.ts +142 -0
- package/dist/components/charts/physics/physicsHocHandle.d.ts +53 -0
- package/dist/components/charts/physics/physicsHocUtils.d.ts +128 -0
- package/dist/components/charts/physics/physicsPilePhysics.d.ts +41 -0
- package/dist/components/charts/physics/physicsProcessPrimitives.d.ts +38 -0
- package/dist/components/charts/physics/processFlowPhysics.d.ts +97 -0
- package/dist/components/charts/realtime/RealtimeHeatmap.d.ts +9 -1
- package/dist/components/charts/realtime/RealtimeHistogram.d.ts +9 -1
- package/dist/components/charts/realtime/RealtimeLineChart.d.ts +30 -1
- package/dist/components/charts/realtime/RealtimeSwarmChart.d.ts +16 -2
- package/dist/components/charts/realtime/RealtimeWaterfallChart.d.ts +9 -1
- package/dist/components/charts/realtime/aggregate.d.ts +51 -0
- package/dist/components/charts/realtime/eventTime.d.ts +26 -0
- package/dist/components/charts/shared/auditMobileVisualization.d.ts +91 -0
- package/dist/components/charts/shared/chartDefinitionPilot.d.ts +145 -0
- package/dist/components/charts/shared/chartFamilySets.d.ts +20 -0
- package/dist/components/charts/shared/chartSpecCore.d.ts +165 -0
- package/dist/components/charts/shared/chartSpecs.d.ts +8 -127
- package/dist/components/charts/shared/chartSpecsGeo.d.ts +2 -0
- package/dist/components/charts/shared/chartSpecsNetwork.d.ts +2 -0
- package/dist/components/charts/shared/chartSpecsOrdinal.d.ts +2 -0
- package/dist/components/charts/shared/chartSpecsPhysics.d.ts +2 -0
- package/dist/components/charts/shared/chartSpecsRealtime.d.ts +2 -0
- package/dist/components/charts/shared/chartSpecsValue.d.ts +2 -0
- package/dist/components/charts/shared/chartSpecsXY.d.ts +2 -0
- package/dist/components/charts/shared/colorContrast.d.ts +3 -0
- package/dist/components/charts/shared/colorPalettes.d.ts +2 -0
- package/dist/components/charts/shared/colorUtils.d.ts +17 -13
- package/dist/components/charts/shared/diagnoseAnnotationChecks.d.ts +4 -0
- package/dist/components/charts/shared/diagnoseConfig.d.ts +9 -14
- package/dist/components/charts/shared/diagnoseMisleadingChecks.d.ts +9 -0
- package/dist/components/charts/shared/diagnosePhysicsChecks.d.ts +3 -0
- package/dist/components/charts/shared/diagnoseTypes.d.ts +10 -0
- package/dist/components/charts/shared/hooks.d.ts +28 -5
- package/dist/components/charts/shared/minMax.d.ts +3 -0
- package/dist/components/charts/shared/motionEncoding.d.ts +145 -0
- package/dist/components/charts/shared/radialGeometry.d.ts +0 -18
- package/dist/components/charts/shared/responsiveRules.d.ts +56 -0
- package/dist/components/charts/shared/smartTooltip.d.ts +27 -0
- package/dist/components/charts/shared/statisticalOverlays.d.ts +35 -0
- package/dist/components/charts/shared/streamPropsHelpers.d.ts +12 -2
- package/dist/components/charts/shared/temporalStrings.d.ts +7 -0
- package/dist/components/charts/shared/tooltipUtils.d.ts +2 -0
- package/dist/components/charts/shared/types.d.ts +49 -1
- package/dist/components/charts/shared/useChartSetup.d.ts +10 -3
- package/dist/components/charts/shared/useCustomChartSetup.d.ts +15 -6
- package/dist/components/charts/shared/useNetworkChartSetup.d.ts +6 -2
- package/dist/components/charts/shared/useOrdinalPieceStyle.d.ts +1 -1
- package/dist/components/charts/shared/useStreamingLegend.d.ts +1 -1
- package/dist/components/charts/shared/useSyncedPushData.d.ts +49 -0
- package/dist/components/charts/shared/validateChartData.d.ts +1 -1
- package/dist/components/charts/shared/validationMap.d.ts +0 -11
- package/dist/components/charts/xy/AreaChart.d.ts +1 -1
- package/dist/components/charts/xy/BubbleChart.d.ts +1 -1
- package/dist/components/charts/xy/LineChart.d.ts +1 -1
- package/dist/components/charts/xy/MinimapChart.d.ts +1 -1
- package/dist/components/charts/xy/MultiAxisLineChart.d.ts +2 -2
- package/dist/components/charts/xy/QuadrantChart.d.ts +1 -1
- package/dist/components/charts/xy/Scatterplot.d.ts +10 -1
- package/dist/components/charts/xy/ScatterplotMatrix.d.ts +11 -1
- package/dist/components/charts/xy/StackedAreaChart.d.ts +9 -4
- package/dist/components/controls/controlAudit.d.ts +24 -0
- package/dist/components/controls/controlContract.d.ts +57 -0
- package/dist/components/data/fromArrow.d.ts +54 -0
- package/dist/components/data/fromFlintChart.d.ts +74 -0
- package/dist/components/data/fromMermaid.d.ts +47 -0
- package/dist/components/data/fromObservablePlot.d.ts +69 -0
- package/dist/components/data/fromVegaLite.d.ts +27 -0
- package/dist/components/data/portability/index.d.ts +17 -0
- package/dist/components/data/portability/result.d.ts +52 -0
- package/dist/components/data/portability/spec.d.ts +160 -0
- package/dist/components/data/portability/vegaLite.d.ts +80 -0
- package/dist/components/export/chartConfig.d.ts +11 -0
- package/dist/components/realtime/ReorderBuffer.d.ts +54 -0
- package/dist/components/realtime/RunningStats.d.ts +66 -0
- package/dist/components/realtime/WindowAccumulator.d.ts +105 -0
- package/dist/components/realtime/parseWindowDuration.d.ts +12 -0
- package/dist/components/realtime/types.d.ts +11 -0
- package/dist/components/recipes/annotationLayout.d.ts +29 -0
- package/dist/components/recipes/axisFixedForce.d.ts +119 -0
- package/dist/components/recipes/boba.d.ts +23 -0
- package/dist/components/recipes/customTooltip.d.ts +31 -0
- package/dist/components/recipes/cyclical.d.ts +39 -0
- package/dist/components/recipes/edgeRouter.d.ts +103 -0
- package/dist/components/recipes/forceLayout.d.ts +48 -0
- package/dist/components/recipes/forceLayoutAsync.d.ts +17 -0
- package/dist/components/recipes/gofishBobaHandwritten.d.ts +3 -0
- package/dist/components/recipes/gofishDisplayListFixtures.generated.d.ts +37 -0
- package/dist/components/recipes/gofishIR.d.ts +215 -0
- package/dist/components/recipes/gofishIRExamples.d.ts +38 -0
- package/dist/components/recipes/intervalLanes.d.ts +87 -0
- package/dist/components/recipes/intervals.d.ts +80 -0
- package/dist/components/recipes/isometricLandmarks.d.ts +88 -0
- package/dist/components/recipes/isotypeGlyphs.d.ts +17 -0
- package/dist/components/recipes/mermaidDag.d.ts +44 -0
- package/dist/components/recipes/mobileAnnotationStrategy.d.ts +48 -0
- package/dist/components/recipes/mobileChartFamilyRecipes.d.ts +59 -0
- package/dist/components/recipes/networkAnalysis.d.ts +102 -0
- package/dist/components/recipes/networkLayouts.d.ts +83 -0
- package/dist/components/recipes/packedClusterMatrix.d.ts +166 -0
- package/dist/components/recipes/physics.d.ts +122 -0
- package/dist/components/recipes/physicsReference.d.ts +102 -0
- package/dist/components/recipes/processAggregates.d.ts +32 -0
- package/dist/components/recipes/processChrome.d.ts +67 -0
- package/dist/components/recipes/processJourney.d.ts +54 -0
- package/dist/components/recipes/processPhysics.d.ts +300 -0
- package/dist/components/recipes/processVolumeGeometry.d.ts +28 -0
- package/dist/components/recipes/radialCoords.d.ts +69 -0
- package/dist/components/recipes/random.d.ts +2 -0
- package/dist/components/recipes/recipeChrome.d.ts +191 -0
- package/dist/components/recipes/recipeGlyph.d.ts +42 -0
- package/dist/components/recipes/recipeLegend.d.ts +109 -0
- package/dist/components/recipes/recipeUtils.d.ts +157 -0
- package/dist/components/recipes/runs.d.ts +59 -0
- package/dist/components/recipes/tokenEncoding.d.ts +157 -0
- package/dist/components/recipes/tokenLayer.d.ts +79 -0
- package/dist/components/recipes/unitize.d.ts +108 -0
- package/dist/components/recipes/vector.d.ts +28 -0
- package/dist/components/recipes/waffle.d.ts +43 -0
- package/dist/components/semiotic-ai-core.d.ts +47 -0
- package/dist/components/semiotic-ai.d.ts +52 -4
- package/dist/components/semiotic-controls.d.ts +18 -0
- package/dist/components/semiotic-data.d.ts +2 -0
- package/dist/components/semiotic-experimental.d.ts +49 -0
- package/dist/components/semiotic-geo.d.ts +11 -0
- package/dist/components/semiotic-network.d.ts +14 -1
- package/dist/components/semiotic-ordinal.d.ts +10 -0
- package/dist/components/semiotic-physics-matter.d.ts +10 -0
- package/dist/components/semiotic-physics-rapier.d.ts +9 -0
- package/dist/components/semiotic-physics.d.ts +56 -0
- package/dist/components/semiotic-realtime-core.d.ts +34 -0
- package/dist/components/semiotic-realtime-react.d.ts +10 -0
- package/dist/components/semiotic-realtime.d.ts +4 -22
- package/dist/components/semiotic-recipes-core.d.ts +92 -0
- package/dist/components/semiotic-recipes-react.d.ts +7 -0
- package/dist/components/semiotic-recipes.d.ts +4 -26
- package/dist/components/semiotic-server-edge.d.ts +8 -0
- package/dist/components/semiotic-server-node.d.ts +5 -0
- package/dist/components/semiotic-server.d.ts +2 -2
- package/dist/components/semiotic-themes-core.d.ts +53 -0
- package/dist/components/semiotic-themes-react.d.ts +4 -0
- package/dist/components/semiotic-themes.d.ts +6 -74
- package/dist/components/semiotic-utils-core.d.ts +46 -0
- package/dist/components/semiotic-utils-react.d.ts +5 -0
- package/dist/components/semiotic-utils.d.ts +3 -39
- package/dist/components/semiotic-xy.d.ts +10 -0
- package/dist/components/semiotic.d.ts +39 -7
- package/dist/components/server/animatedGif.d.ts +36 -0
- package/dist/components/server/renderEvidence.d.ts +1 -1
- package/dist/components/server/renderToStaticSVG.d.ts +3 -35
- package/dist/components/server/serverChartConfigShared.d.ts +17 -0
- package/dist/components/server/serverChartConfigs.d.ts +19 -9
- package/dist/components/server/serverChartConfigsCustom.d.ts +5 -0
- package/dist/components/server/serverChartConfigsGeo.d.ts +9 -0
- package/dist/components/server/serverChartConfigsNetwork.d.ts +8 -0
- package/dist/components/server/serverChartConfigsOrdinal.d.ts +16 -0
- package/dist/components/server/serverChartConfigsPhysics.d.ts +9 -0
- package/dist/components/server/serverChartConfigsXY.d.ts +11 -0
- package/dist/components/server/staticGeo.d.ts +4 -0
- package/dist/components/server/staticLegend.d.ts +1 -1
- package/dist/components/server/staticNetwork.d.ts +8 -0
- package/dist/components/server/staticOrdinal.d.ts +11 -0
- package/dist/components/server/staticPhysics.d.ts +3 -0
- package/dist/components/server/staticSVGChrome.d.ts +110 -0
- package/dist/components/server/staticXY.d.ts +4 -0
- package/dist/components/store/ObservationStore.d.ts +23 -3
- package/dist/components/store/SelectionStore.d.ts +1 -1
- package/dist/components/store/ThemeStore.d.ts +1 -1
- package/dist/components/store/TooltipStore.d.ts +1 -1
- package/dist/components/store/createStore.d.ts +1 -1
- package/dist/components/store/designTokens.d.ts +15 -0
- package/dist/components/store/themeSerialization.d.ts +32 -0
- package/dist/components/store/useChartInterrogation.d.ts +9 -0
- package/dist/components/stream/AccessibleDataTable.d.ts +3 -13
- package/dist/components/stream/FocusRing.d.ts +4 -2
- package/dist/components/stream/GeoCanvasHitTester.d.ts +1 -1
- package/dist/components/stream/GeoPipelineStore.d.ts +28 -0
- package/dist/components/stream/NetworkHtmlMarksLayer.d.ts +44 -0
- package/dist/components/stream/NetworkPipelineStore.d.ts +62 -25
- package/dist/components/stream/NetworkSVGOverlay.d.ts +15 -0
- package/dist/components/stream/OrdinalPipelineStore.d.ts +64 -2
- package/dist/components/stream/PipelineStore.d.ts +100 -162
- package/dist/components/stream/SceneGraph.d.ts +14 -2
- package/dist/components/stream/StreamGeoFrame.d.ts +1 -1
- package/dist/components/stream/StreamNetworkFrame.d.ts +1 -1
- package/dist/components/stream/StreamOrdinalFrame.d.ts +1 -1
- package/dist/components/stream/StreamXYFrame.d.ts +2 -18
- package/dist/components/stream/accessibleDataRows.d.ts +33 -0
- package/dist/components/stream/accessorUtils.d.ts +23 -10
- package/dist/components/stream/brushAccessibility.d.ts +25 -0
- package/dist/components/stream/canvasBackground.d.ts +24 -0
- package/dist/components/stream/canvasSetup.d.ts +4 -1
- package/dist/components/stream/customLayout.d.ts +20 -0
- package/dist/components/stream/customLayoutDiagnostics.d.ts +11 -0
- package/dist/components/stream/customLayoutFailure.d.ts +33 -0
- package/dist/components/stream/customLayoutPalette.d.ts +19 -9
- package/dist/components/stream/customLayoutSelection.d.ts +52 -0
- package/dist/components/stream/frameThemeColors.d.ts +24 -0
- package/dist/components/stream/geoAnnotationAnchors.d.ts +14 -0
- package/dist/components/stream/geoCartogram.d.ts +17 -0
- package/dist/components/stream/geoCustomLayout.d.ts +59 -0
- package/dist/components/stream/geoDefaultTooltip.d.ts +11 -0
- package/dist/components/stream/geoFrameHelpers.d.ts +34 -0
- package/dist/components/stream/geoPipelineHelpers.d.ts +46 -0
- package/dist/components/stream/geoTypes.d.ts +56 -7
- package/dist/components/stream/glyphDef.d.ts +98 -0
- package/dist/components/stream/hitTarget.d.ts +170 -0
- package/dist/components/stream/hoverUtils.d.ts +3 -0
- package/dist/components/stream/keyboardNav.d.ts +4 -1
- package/dist/components/stream/layouts/forceLayoutPlugin.d.ts +9 -1
- package/dist/components/stream/layouts/forceLayoutWorkerClient.d.ts +57 -0
- package/dist/components/stream/networkBezier.d.ts +10 -0
- package/dist/components/stream/networkColorAccessors.d.ts +49 -0
- package/dist/components/stream/networkCustomLayout.d.ts +66 -1
- package/dist/components/stream/networkDefaultTooltip.d.ts +10 -0
- package/dist/components/stream/networkFrameInteraction.d.ts +37 -0
- package/dist/components/stream/networkFramePaint.d.ts +43 -0
- package/dist/components/stream/networkPipelineConfig.d.ts +22 -0
- package/dist/components/stream/networkPipelineHelpers.d.ts +12 -0
- package/dist/components/stream/networkRealtimeEncoding.d.ts +41 -0
- package/dist/components/stream/networkTypes.d.ts +104 -5
- package/dist/components/stream/ordinalCanvasRenderers.d.ts +7 -0
- package/dist/components/stream/ordinalCustomLayout.d.ts +17 -1
- package/dist/components/stream/ordinalDataIndex.d.ts +5 -0
- package/dist/components/stream/ordinalDefaultTooltip.d.ts +10 -0
- package/dist/components/stream/ordinalDomain.d.ts +38 -0
- package/dist/components/stream/ordinalPipelineUpdateResults.d.ts +12 -0
- package/dist/components/stream/ordinalPulse.d.ts +10 -0
- package/dist/components/stream/ordinalPulseResources.d.ts +3 -0
- package/dist/components/stream/ordinalSceneBuilders/sceneBuilderMap.d.ts +5 -0
- package/dist/components/stream/ordinalSceneBuilders/types.d.ts +2 -0
- package/dist/components/stream/ordinalSpatialIndex.d.ts +9 -0
- package/dist/components/stream/ordinalTypes.d.ts +56 -8
- package/dist/components/stream/paintNeeds.d.ts +31 -0
- package/dist/components/stream/physics/CapacityQueueController.d.ts +5 -0
- package/dist/components/stream/physics/CapacityQueueTypes.d.ts +134 -0
- package/dist/components/stream/physics/MatterPhysicsEngineAdapter.d.ts +42 -0
- package/dist/components/stream/physics/PhysicsAccessibility.d.ts +48 -0
- package/dist/components/stream/physics/PhysicsAnnotations.d.ts +58 -0
- package/dist/components/stream/physics/PhysicsBodyBudget.d.ts +26 -0
- package/dist/components/stream/physics/PhysicsBodySpatialIndex.d.ts +10 -0
- package/dist/components/stream/physics/PhysicsCanvasTheme.d.ts +26 -0
- package/dist/components/stream/physics/PhysicsControllers.d.ts +75 -0
- package/dist/components/stream/physics/PhysicsEngineAdapter.d.ts +59 -0
- package/dist/components/stream/physics/PhysicsEngineConformance.d.ts +23 -0
- package/dist/components/stream/physics/PhysicsEvidence.d.ts +25 -0
- package/dist/components/stream/physics/PhysicsKernel.d.ts +207 -0
- package/dist/components/stream/physics/PhysicsOptionalEngineAdapters.d.ts +12 -0
- package/dist/components/stream/physics/PhysicsPipelineStore.d.ts +84 -0
- package/dist/components/stream/physics/PhysicsPipelineTypes.d.ts +181 -0
- package/dist/components/stream/physics/PhysicsSVGOverlay.d.ts +72 -0
- package/dist/components/stream/physics/PhysicsSediment.d.ts +69 -0
- package/dist/components/stream/physics/PhysicsSettledSVG.d.ts +18 -0
- package/dist/components/stream/physics/PhysicsSettledScene.d.ts +21 -0
- package/dist/components/stream/physics/PhysicsWorkerClient.d.ts +24 -0
- package/dist/components/stream/physics/PhysicsWorkerProtocol.d.ts +101 -0
- package/dist/components/stream/physics/PhysicsWorkerRuntime.d.ts +5 -0
- package/dist/components/stream/physics/RapierPhysicsEngineAdapter.d.ts +18 -0
- package/dist/components/stream/physics/ServiceOperationsControllers.d.ts +27 -0
- package/dist/components/stream/physics/ServiceOperationsTypes.d.ts +89 -0
- package/dist/components/stream/physics/StreamPhysicsFrame.d.ts +6 -0
- package/dist/components/stream/physics/StreamPhysicsTypes.d.ts +302 -0
- package/dist/components/stream/physics/physicsBodyCanvas.d.ts +27 -0
- package/dist/components/stream/physics/physicsPipelineControls.d.ts +4 -0
- package/dist/components/stream/physics/physicsPipelineHelpers.d.ts +41 -0
- package/dist/components/stream/physics/physicsPipelineObservations.d.ts +14 -0
- package/dist/components/stream/physics/physicsPipelineUpdateResults.d.ts +9 -0
- package/dist/components/stream/physics/physicsRegionRuntime.d.ts +54 -0
- package/dist/components/stream/physics/physicsSemanticUI.d.ts +20 -0
- package/dist/components/stream/physics/usePhysicsFrameLifecyclePolicy.d.ts +16 -0
- package/dist/components/stream/pipelineBufferUtils.d.ts +26 -0
- package/dist/components/stream/pipelineConfig.d.ts +177 -0
- package/dist/components/stream/pipelineDecay.d.ts +20 -2
- package/dist/components/stream/pipelineDomainResolution.d.ts +62 -0
- package/dist/components/stream/pipelineIdentityOps.d.ts +26 -0
- package/dist/components/stream/pipelinePulse.d.ts +16 -2
- package/dist/components/stream/pipelineRibbons.d.ts +41 -0
- package/dist/components/stream/pipelineSpatialIndex.d.ts +12 -0
- package/dist/components/stream/pipelineStoreUpdateResults.d.ts +12 -0
- package/dist/components/stream/pipelineStyleResolvers.d.ts +46 -0
- package/dist/components/stream/pipelineTransitions.d.ts +2 -0
- package/dist/components/stream/pipelineUpdateContract.d.ts +62 -0
- package/dist/components/stream/pulseFrameRefresh.d.ts +22 -0
- package/dist/components/stream/renderers/glyphCanvasRenderer.d.ts +6 -0
- package/dist/components/stream/renderers/networkSymbolRenderer.d.ts +2 -0
- package/dist/components/stream/renderers/resolveCSSColor.d.ts +6 -0
- package/dist/components/stream/renderers/symbolCanvasRenderer.d.ts +2 -0
- package/dist/components/stream/sceneRevisionDiagnostics.d.ts +18 -0
- package/dist/components/stream/stalenessBands.d.ts +28 -0
- package/dist/components/stream/streamStoreSync.d.ts +37 -0
- package/dist/components/stream/symbolPath.d.ts +24 -0
- package/dist/components/stream/types.d.ts +206 -9
- package/dist/components/stream/useFrame.d.ts +21 -2
- package/dist/components/stream/useHydration.d.ts +6 -0
- package/dist/components/stream/useLegendCategoryEmission.d.ts +5 -0
- package/dist/components/stream/useStalenessCheck.d.ts +6 -1
- package/dist/components/stream/workerModuleUrl.d.ts +10 -0
- package/dist/components/stream/xyAnnotationAnchors.d.ts +13 -0
- package/dist/components/stream/xyCanvasRenderers.d.ts +7 -0
- package/dist/components/stream/xyCrosshair.d.ts +11 -0
- package/dist/components/stream/xyDateTicks.d.ts +9 -0
- package/dist/components/stream/xyDefaultTooltip.d.ts +10 -0
- package/dist/components/stream/xySceneBuilders/pointScene.d.ts +2 -2
- package/dist/components/stream/xySceneBuilders/types.d.ts +9 -4
- package/dist/controls.min.js +2 -0
- package/dist/controls.module.min.js +2 -0
- package/dist/forceLayoutWorker.js +1 -0
- package/dist/geo.min.js +1 -1
- package/dist/geo.module.min.js +1 -1
- package/dist/network.min.js +1 -1
- package/dist/network.module.min.js +1 -1
- package/dist/ordinal.min.js +1 -1
- package/dist/ordinal.module.min.js +1 -1
- package/dist/physics-matter.min.js +1 -0
- package/dist/physics-matter.module.min.js +1 -0
- package/dist/physics-rapier.min.js +1 -0
- package/dist/physics-rapier.module.min.js +1 -0
- package/dist/physics.min.js +2 -0
- package/dist/physics.module.min.js +2 -0
- package/dist/physicsWorker.js +1 -0
- package/dist/realtime.min.js +1 -1
- package/dist/realtime.module.min.js +1 -1
- package/dist/semiotic-ai-chunk-OG7BQUUW.module.min.js +2 -0
- package/dist/semiotic-ai-core.d.ts +47 -0
- package/dist/semiotic-ai-core.min.js +1 -0
- package/dist/semiotic-ai-core.module.min.js +1 -0
- package/dist/semiotic-ai-statisticalOverlays-CY4WKR4A.module.min.js +2 -0
- package/dist/semiotic-ai.d.ts +52 -4
- package/dist/semiotic-ai.min.js +1 -1
- package/dist/semiotic-ai.module.min.js +1 -1
- package/dist/semiotic-chunk-3FSVZ46U.module.min.js +2 -0
- package/dist/semiotic-controls.d.ts +18 -0
- package/dist/semiotic-data.d.ts +2 -0
- package/dist/semiotic-data.min.js +1 -1
- package/dist/semiotic-data.module.min.js +1 -1
- package/dist/semiotic-experimental.d.ts +49 -0
- package/dist/semiotic-experimental.min.js +1 -0
- package/dist/semiotic-experimental.module.min.js +1 -0
- package/dist/semiotic-geo.d.ts +11 -0
- package/dist/semiotic-network.d.ts +14 -1
- package/dist/semiotic-ordinal.d.ts +10 -0
- package/dist/semiotic-physics-matter.d.ts +10 -0
- package/dist/semiotic-physics-rapier.d.ts +9 -0
- package/dist/semiotic-physics.d.ts +56 -0
- package/dist/semiotic-realtime-core.d.ts +34 -0
- package/dist/semiotic-realtime-core.min.js +1 -0
- package/dist/semiotic-realtime-core.module.min.js +1 -0
- package/dist/semiotic-realtime-react.d.ts +10 -0
- package/dist/semiotic-realtime-react.min.js +2 -0
- package/dist/semiotic-realtime-react.module.min.js +2 -0
- package/dist/semiotic-realtime.d.ts +4 -22
- package/dist/semiotic-recipes-core.d.ts +92 -0
- package/dist/semiotic-recipes-core.min.js +1 -0
- package/dist/semiotic-recipes-core.module.min.js +1 -0
- package/dist/semiotic-recipes-react.d.ts +7 -0
- package/dist/semiotic-recipes-react.min.js +2 -0
- package/dist/semiotic-recipes-react.module.min.js +2 -0
- package/dist/semiotic-recipes.d.ts +4 -26
- package/dist/semiotic-recipes.min.js +1 -1
- package/dist/semiotic-recipes.module.min.js +1 -1
- package/dist/semiotic-server-edge.d.ts +8 -0
- package/dist/semiotic-server-edge.min.js +1 -0
- package/dist/semiotic-server-edge.module.min.js +1 -0
- package/dist/semiotic-server-node.d.ts +5 -0
- package/dist/semiotic-server-node.min.js +1 -0
- package/dist/semiotic-server-node.module.min.js +1 -0
- package/dist/semiotic-server.d.ts +2 -2
- package/dist/semiotic-statisticalOverlays-UOMSFKVJ.module.min.js +2 -0
- package/dist/semiotic-themes-core.d.ts +53 -0
- package/dist/semiotic-themes-core.min.js +1 -0
- package/dist/semiotic-themes-core.module.min.js +1 -0
- package/dist/semiotic-themes-react.d.ts +4 -0
- package/dist/semiotic-themes-react.min.js +2 -0
- package/dist/semiotic-themes-react.module.min.js +2 -0
- package/dist/semiotic-themes.d.ts +6 -74
- package/dist/semiotic-themes.min.js +1 -2
- package/dist/semiotic-themes.module.min.js +1 -2
- package/dist/semiotic-utils-core.d.ts +46 -0
- package/dist/semiotic-utils-core.min.js +1 -0
- package/dist/semiotic-utils-core.module.min.js +1 -0
- package/dist/semiotic-utils-react.d.ts +5 -0
- package/dist/semiotic-utils-react.min.js +2 -0
- package/dist/semiotic-utils-react.module.min.js +2 -0
- package/dist/semiotic-utils.d.ts +3 -39
- package/dist/semiotic-utils.min.js +1 -2
- package/dist/semiotic-utils.module.min.js +1 -2
- package/dist/semiotic-value.min.js +1 -1
- package/dist/semiotic-value.module.min.js +1 -1
- package/dist/semiotic-xy.d.ts +10 -0
- package/dist/semiotic.d.ts +39 -7
- package/dist/semiotic.min.js +1 -1
- package/dist/semiotic.module.min.js +1 -1
- package/dist/server.min.js +1 -1
- package/dist/server.module.min.js +1 -1
- package/dist/xy-chunk-IWD6IB6V.module.min.js +2 -0
- package/dist/xy-statisticalOverlays-7RWG6LJT.module.min.js +2 -0
- package/dist/xy.min.js +1 -1
- package/dist/xy.module.min.js +1 -1
- package/package.json +246 -86
- package/spec/README.md +152 -0
- package/spec/bindings/README.md +35 -0
- package/spec/bindings/vega-lite.mjs +112 -0
- package/spec/v0.1/annotation-provenance.schema.json +127 -0
- package/spec/v0.1/audience-profile.schema.json +67 -0
- package/spec/v0.1/chart-capability.schema.json +186 -0
- package/dist/semiotic-ai-statisticalOverlays-C2PPlmXv.js +0 -1
- package/dist/semiotic-statisticalOverlays-C3DsOgr_.js +0 -1
- package/dist/xy-statisticalOverlays-C2PPlmXv.js +0 -1
|
@@ -0,0 +1,166 @@
|
|
|
1
|
+
import type { NetworkCustomLayout } from "../stream/networkCustomLayout";
|
|
2
|
+
import type { NetworkSymbolName } from "../stream/symbolPath";
|
|
3
|
+
/**
|
|
4
|
+
* Config for {@link packedClusterMatrix}. Accessors read `node.data.<field>`
|
|
5
|
+
* (the ingest wrapper) and fall back to the node itself.
|
|
6
|
+
*/
|
|
7
|
+
export interface PackedClusterMatrixConfig {
|
|
8
|
+
/** Categorical field → matrix column. @default "column" */
|
|
9
|
+
columnAccessor?: string;
|
|
10
|
+
/** Categorical field → matrix row (stacked within a column). @default "row" */
|
|
11
|
+
rowAccessor?: string;
|
|
12
|
+
/** Numeric field → glyph size (area-encoded). Constant size when omitted. */
|
|
13
|
+
sizeAccessor?: string;
|
|
14
|
+
/** Categorical field → glyph hue (via `ctx.resolveColor`). */
|
|
15
|
+
colorAccessor?: string;
|
|
16
|
+
/** Fixed hue per category value. Wins over `ctx.resolveColor` for mapped keys —
|
|
17
|
+
* the right choice for editorial graphics with a semantic palette. */
|
|
18
|
+
colorMap?: Record<string, string>;
|
|
19
|
+
/** Categorical field → glyph shape. Auto-assigned shapes when no `symbolMap`. */
|
|
20
|
+
symbolAccessor?: string;
|
|
21
|
+
/** Numeric/date field → lightness shade of the hue (the fourth channel). */
|
|
22
|
+
shadeAccessor?: string;
|
|
23
|
+
/** Boolean field → small center dot on the glyph (e.g. a flagged subset). */
|
|
24
|
+
markerAccessor?: string;
|
|
25
|
+
/** Explicit column order; otherwise columns sort by count, largest first. */
|
|
26
|
+
columnOrder?: string[];
|
|
27
|
+
/** Explicit row order **bottom→top**; otherwise rows sort by count, largest at bottom. */
|
|
28
|
+
rowOrder?: string[];
|
|
29
|
+
/** Map a class value to a named glyph (the base mark BECOMES that shape).
|
|
30
|
+
* Unmapped values get auto-assigned. Mutually exclusive with `iconAccessor`. */
|
|
31
|
+
symbolMap?: Record<string, NetworkSymbolName>;
|
|
32
|
+
/** Shape when no `symbolAccessor` is set. @default "circle" */
|
|
33
|
+
defaultSymbol?: NetworkSymbolName;
|
|
34
|
+
/** Categorical field whose value selects an OPTIONAL stroked icon drawn inside
|
|
35
|
+
* the (filled circle) base mark — the "most marks are plain circles, a few
|
|
36
|
+
* carry an icon" model. Only values present in `iconMap` get an icon. */
|
|
37
|
+
iconAccessor?: string;
|
|
38
|
+
/** Map an icon-field value to a glyph. Values omitted here render as a plain
|
|
39
|
+
* circle (no icon) — so a single dominant class stays unmarked. */
|
|
40
|
+
iconMap?: Record<string, NetworkSymbolName>;
|
|
41
|
+
/** Stroke color of the inner icon. @default "rgba(255,255,255,0.92)" */
|
|
42
|
+
iconColor?: string;
|
|
43
|
+
/** Inner-icon stroke width. @default 1 */
|
|
44
|
+
iconStrokeWidth?: number;
|
|
45
|
+
/** Inner-icon size as a fraction of the base circle radius. @default 0.72 */
|
|
46
|
+
iconScale?: number;
|
|
47
|
+
/** Glyph radius range in px (area = πr²). @default [2, 8] */
|
|
48
|
+
sizeRange?: [number, number];
|
|
49
|
+
/** Size value domain. @default data extent */
|
|
50
|
+
sizeDomain?: [number, number];
|
|
51
|
+
/** Cap total glyph area at this fraction of the plot; radii scale down to fit
|
|
52
|
+
* (keeps clusters packable / non-overlapping on smaller canvases). @default 0.4 */
|
|
53
|
+
maxAreaFraction?: number;
|
|
54
|
+
/** How far the shade travels from the base hue (0..1). @default 0.72 */
|
|
55
|
+
shadeStrength?: number;
|
|
56
|
+
/** Shade value domain. @default data extent (dates auto-parsed) */
|
|
57
|
+
shadeDomain?: [number, number];
|
|
58
|
+
/** Flip the shade ramp (default: low → light, high → dark). */
|
|
59
|
+
shadeReverse?: boolean;
|
|
60
|
+
/** Row layout. `"banded"`: orbit rows are aligned global bands (one y-range
|
|
61
|
+
* spanning all columns → row labels align, one enclosure per band spans the
|
|
62
|
+
* columns, a column is only as tall as its highest occupied band). `"stacked"`:
|
|
63
|
+
* each column stacks its own rows independently (cell height ∝ that column's
|
|
64
|
+
* count; rows do NOT align). @default "banded" */
|
|
65
|
+
rowMode?: "banded" | "stacked";
|
|
66
|
+
/** `"proportional"` (mosaic: cell area ∝ count) or `"uniform"` grid. @default "proportional" */
|
|
67
|
+
cellSizing?: "proportional" | "uniform";
|
|
68
|
+
/** Exponent applied to counts when sizing columns/cells. `1` = strict area ∝
|
|
69
|
+
* count; `<1` softens the range so small columns stay legible. @default 1 */
|
|
70
|
+
proportionExponent?: number;
|
|
71
|
+
/** Gap between columns in px. @default 16 */
|
|
72
|
+
columnGap?: number;
|
|
73
|
+
/** Gap between stacked cells in px. @default 12 */
|
|
74
|
+
rowGap?: number;
|
|
75
|
+
/** Collision padding between glyphs in px. @default 1 */
|
|
76
|
+
packPadding?: number;
|
|
77
|
+
/** Relaxation passes for the packing (capped at 14; a near-uniform seed needs
|
|
78
|
+
* few). Higher = tidier/slower. @default 12 */
|
|
79
|
+
iterations?: number;
|
|
80
|
+
/** Draw a rounded enclosure hugging each cluster. @default true */
|
|
81
|
+
showEnclosures?: boolean;
|
|
82
|
+
enclosureColor?: string;
|
|
83
|
+
enclosureRadius?: number;
|
|
84
|
+
enclosureOpacity?: number;
|
|
85
|
+
enclosureWidth?: number;
|
|
86
|
+
/** Column header labels across the top. @default true */
|
|
87
|
+
showColumnHeaders?: boolean;
|
|
88
|
+
/** Row labels down the left. @default true */
|
|
89
|
+
showRowLabels?: boolean;
|
|
90
|
+
columnLabel?: (col: string) => string;
|
|
91
|
+
rowLabel?: (row: string) => string;
|
|
92
|
+
headerColor?: string;
|
|
93
|
+
labelColor?: string;
|
|
94
|
+
headerFontSize?: number;
|
|
95
|
+
labelFontSize?: number;
|
|
96
|
+
/** Top space reserved for headers. @default 26 */
|
|
97
|
+
headerHeight?: number;
|
|
98
|
+
/** Left space reserved for row labels. @default 66 */
|
|
99
|
+
labelWidth?: number;
|
|
100
|
+
/** Bottom margin reserved for callout labels (only when `callouts` is set). @default 30 */
|
|
101
|
+
footerHeight?: number;
|
|
102
|
+
markStroke?: string;
|
|
103
|
+
markStrokeWidth?: number;
|
|
104
|
+
/** Center-dot color for `markerAccessor` hits. @default "#ffffff" */
|
|
105
|
+
markerColor?: string;
|
|
106
|
+
/** Dim every glyph that doesn't match the highlight. A single `{field,value}`
|
|
107
|
+
* or an array (AND — a glyph must match all to stay lit, e.g. a region×orbit
|
|
108
|
+
* cell). Drives legend / nav-tree highlighting. */
|
|
109
|
+
highlight?: {
|
|
110
|
+
field: string;
|
|
111
|
+
value: string;
|
|
112
|
+
} | {
|
|
113
|
+
field: string;
|
|
114
|
+
value: string;
|
|
115
|
+
}[] | null;
|
|
116
|
+
/** Opacity for dimmed glyphs. @default 0.16 */
|
|
117
|
+
dimOpacity?: number;
|
|
118
|
+
/** Editorial leader-line callouts to specific marks. Each picks the first mark
|
|
119
|
+
* whose `datum[field] === value` and draws a ring + connector + label. `at`
|
|
120
|
+
* places the label: a y in [0,1] of the plot ("1" = bottom) and the label
|
|
121
|
+
* tracks the mark's x, or an explicit `{x,y}` in plot px. */
|
|
122
|
+
callouts?: Array<{
|
|
123
|
+
field: string;
|
|
124
|
+
value: string;
|
|
125
|
+
label: string;
|
|
126
|
+
at?: number | {
|
|
127
|
+
x: number;
|
|
128
|
+
y: number;
|
|
129
|
+
};
|
|
130
|
+
connector?: "straight" | "elbow" | "curve";
|
|
131
|
+
}>;
|
|
132
|
+
calloutColor?: string;
|
|
133
|
+
}
|
|
134
|
+
/**
|
|
135
|
+
* `packedClusterMatrix` — a reusable network layout that arranges a flat set of
|
|
136
|
+
* records into a **matrix of densely-packed clusters**: one column per value of
|
|
137
|
+
* `columnAccessor`, cells stacked within a column per value of `rowAccessor`,
|
|
138
|
+
* each cell a beeswarm of variable-radius glyphs. In `"proportional"` sizing the
|
|
139
|
+
* column widths and cell heights track counts (a mosaic), so a cell's area is
|
|
140
|
+
* proportional to its record count and packing density stays roughly uniform.
|
|
141
|
+
*
|
|
142
|
+
* Each record renders as a **four-channel glyph**: shape (`symbolAccessor`),
|
|
143
|
+
* hue (`colorAccessor`), size (`sizeAccessor`, area-encoded), and lightness
|
|
144
|
+
* shade (`shadeAccessor`). Packing is deterministic (seeded `d3-force`) and the
|
|
145
|
+
* geometry is cached, so hover/selection/filter re-runs re-style without
|
|
146
|
+
* re-packing. Built to recreate small-multiples beeswarm graphics (e.g. Nadieh
|
|
147
|
+
* Bremer's "Satellites in Space").
|
|
148
|
+
*
|
|
149
|
+
* @example
|
|
150
|
+
* ```tsx
|
|
151
|
+
* import { NetworkCustomChart } from "semiotic/network"
|
|
152
|
+
* import { packedClusterMatrix } from "semiotic/recipes"
|
|
153
|
+
*
|
|
154
|
+
* <NetworkCustomChart
|
|
155
|
+
* nodes={satellites} // each: { id, region, orbit, mass, category, klass, launch }
|
|
156
|
+
* layout={packedClusterMatrix}
|
|
157
|
+
* colorScheme={categoryColors}
|
|
158
|
+
* layoutConfig={{
|
|
159
|
+
* columnAccessor: "region", rowAccessor: "orbit",
|
|
160
|
+
* sizeAccessor: "mass", colorAccessor: "category",
|
|
161
|
+
* symbolAccessor: "klass", shadeAccessor: "launch",
|
|
162
|
+
* }}
|
|
163
|
+
* />
|
|
164
|
+
* ```
|
|
165
|
+
*/
|
|
166
|
+
export declare const packedClusterMatrix: NetworkCustomLayout<PackedClusterMatrixConfig>;
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
import type { VisualToken } from "./tokenEncoding";
|
|
2
|
+
import { type PhysicsBoundsColliderOptions, type PhysicsPlotBounds, type PhysicsQueuedSpawn, type PhysicsSpawnPacingOptions, type PhysicsXBinColliderOptions } from "../stream/physics/PhysicsPipelineStore";
|
|
3
|
+
import type { PhysicsBodyShape, PhysicsColliderSpec } from "../stream/physics/PhysicsKernel";
|
|
4
|
+
import type { PhysicsSedimentBinSnapshot, PhysicsSedimentColumn, PhysicsSedimentHeightfieldOptions } from "../stream/physics/PhysicsSediment";
|
|
5
|
+
export type NumericScale = (value: number) => number;
|
|
6
|
+
export type BandScale<T = string | number> = ((value: T) => number | undefined) & {
|
|
7
|
+
bandwidth?: () => number;
|
|
8
|
+
};
|
|
9
|
+
export interface PhysicsScaleColliderOptions<TBand = string | number> {
|
|
10
|
+
plot: PhysicsPlotBounds;
|
|
11
|
+
idPrefix?: string;
|
|
12
|
+
bounds?: false | PhysicsBoundsColliderOptions;
|
|
13
|
+
xBins?: Omit<PhysicsXBinColliderOptions, "idPrefix" | "yTop" | "yBottom"> & {
|
|
14
|
+
idPrefix?: string;
|
|
15
|
+
yTop?: number;
|
|
16
|
+
yBottom?: number;
|
|
17
|
+
};
|
|
18
|
+
xBands?: PhysicsBandColliderOptions<TBand>;
|
|
19
|
+
yBands?: PhysicsBandColliderOptions<TBand>;
|
|
20
|
+
}
|
|
21
|
+
export interface PhysicsBandColliderOptions<TBand = string | number> {
|
|
22
|
+
values: readonly TBand[];
|
|
23
|
+
scale: BandScale<TBand>;
|
|
24
|
+
bandwidth?: number;
|
|
25
|
+
wallThickness?: number;
|
|
26
|
+
includeBoundaryWalls?: boolean;
|
|
27
|
+
includeInteriorWalls?: boolean;
|
|
28
|
+
idPrefix?: string;
|
|
29
|
+
}
|
|
30
|
+
export interface GaltonPegsOptions {
|
|
31
|
+
plot: PhysicsPlotBounds;
|
|
32
|
+
rows: number;
|
|
33
|
+
columns?: number;
|
|
34
|
+
pegRadius?: number;
|
|
35
|
+
idPrefix?: string;
|
|
36
|
+
yStart?: number;
|
|
37
|
+
yEnd?: number;
|
|
38
|
+
stagger?: boolean;
|
|
39
|
+
restitution?: number;
|
|
40
|
+
friction?: number;
|
|
41
|
+
}
|
|
42
|
+
export interface SpawnFromTokensOptions<D = unknown> {
|
|
43
|
+
idPrefix?: string;
|
|
44
|
+
x?: number | ((token: VisualToken<D>, index: number) => number);
|
|
45
|
+
y?: number | ((token: VisualToken<D>, index: number) => number);
|
|
46
|
+
radius?: number | ((token: VisualToken<D>, index: number) => number);
|
|
47
|
+
shape?: PhysicsBodyShape | ((token: VisualToken<D>, index: number) => PhysicsBodyShape);
|
|
48
|
+
mass?: number | ((token: VisualToken<D>, index: number) => number);
|
|
49
|
+
vx?: number | ((token: VisualToken<D>, index: number) => number);
|
|
50
|
+
vy?: number | ((token: VisualToken<D>, index: number) => number);
|
|
51
|
+
jitter?: number | {
|
|
52
|
+
x?: number;
|
|
53
|
+
y?: number;
|
|
54
|
+
};
|
|
55
|
+
seed?: number;
|
|
56
|
+
spawnAt?: number | ((token: VisualToken<D>, index: number) => number);
|
|
57
|
+
datum?: (token: VisualToken<D>, index: number) => unknown;
|
|
58
|
+
}
|
|
59
|
+
export interface SedimentBakeOptions extends PhysicsSedimentHeightfieldOptions {
|
|
60
|
+
idPrefix?: string;
|
|
61
|
+
collider?: boolean;
|
|
62
|
+
colliderThickness?: number;
|
|
63
|
+
restitution?: number;
|
|
64
|
+
friction?: number;
|
|
65
|
+
}
|
|
66
|
+
export interface SedimentBakeResult {
|
|
67
|
+
columns: PhysicsSedimentColumn[];
|
|
68
|
+
colliders: PhysicsColliderSpec[];
|
|
69
|
+
}
|
|
70
|
+
export interface ArrivalReplayOptions {
|
|
71
|
+
timeAccessor?: string | ((spawn: PhysicsQueuedSpawn, index: number) => unknown);
|
|
72
|
+
timeScale?: number;
|
|
73
|
+
startAt?: number;
|
|
74
|
+
rebase?: boolean;
|
|
75
|
+
sort?: boolean;
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Build chart-aligned static colliders from a plot rectangle plus optional
|
|
79
|
+
* continuous bins or band-scale lanes.
|
|
80
|
+
*/
|
|
81
|
+
export declare function collidersFromScales<TBand = string | number>(options: PhysicsScaleColliderOptions<TBand>): PhysicsColliderSpec[];
|
|
82
|
+
/**
|
|
83
|
+
* Generate deterministic square peg colliders for Galton/Plinko-style custom
|
|
84
|
+
* layouts. Square AABBs are intentional: they work with the built-in kernel's
|
|
85
|
+
* small default collider vocabulary while still reading as point pegs.
|
|
86
|
+
*/
|
|
87
|
+
export declare function galtonPegs(options: GaltonPegsOptions): PhysicsColliderSpec[];
|
|
88
|
+
/**
|
|
89
|
+
* Convert visual tokens into physics body spawns. Pair with
|
|
90
|
+
* `generateTokens()` / `layoutTokenGrid()` for HOPs, unitized piles, or
|
|
91
|
+
* posterior-sample demos inside `PhysicsCustomChart`.
|
|
92
|
+
*/
|
|
93
|
+
export declare function spawnFromTokens<D = unknown>(tokens: readonly VisualToken<D>[], options?: SpawnFromTokensOptions<D>): PhysicsQueuedSpawn[];
|
|
94
|
+
/**
|
|
95
|
+
* Turn sediment snapshots into drawable columns and optional static colliders.
|
|
96
|
+
* Use the columns for overlays and the colliders when old data should become
|
|
97
|
+
* a physical resting surface for live bodies.
|
|
98
|
+
*/
|
|
99
|
+
export declare function sedimentBake(bins: PhysicsSedimentBinSnapshot[], options?: SedimentBakeOptions): SedimentBakeResult;
|
|
100
|
+
/**
|
|
101
|
+
* Prepare initial spawns for event-time/arrival-time replay. The returned
|
|
102
|
+
* object spreads directly into a `PhysicsCustomChart` layout result.
|
|
103
|
+
*/
|
|
104
|
+
export declare function arrivalReplay(spawns: readonly PhysicsQueuedSpawn[], options?: ArrivalReplayOptions): {
|
|
105
|
+
initialSpawns: PhysicsQueuedSpawn[];
|
|
106
|
+
initialSpawnPacing: PhysicsSpawnPacingOptions;
|
|
107
|
+
};
|
|
108
|
+
export type { PhysicsColliderSpec, PhysicsPlotBounds, PhysicsQueuedSpawn, PhysicsSedimentBinSnapshot, PhysicsSedimentColumn, PhysicsSedimentHeightfieldOptions, PhysicsSpawnPacingOptions };
|
|
109
|
+
export { absorbRegion, bodyGroupSpec, capacitatedRegion, chargeGateRegion, forceFieldRegion, membraneRegion, portalRegion, pressureFieldRegion, processLaneWalls, processStageLayout, processStageRegions, routeSurfaceRegion, stageTargetInVolume } from "./processPhysics";
|
|
110
|
+
export { aggregateRegionCounts, groupCompletionRows, regionCountsToProjectionRows } from "./processAggregates";
|
|
111
|
+
export { processVolumePolygons } from "./processVolumeGeometry";
|
|
112
|
+
export { comparePhysicsTrace, physicsReferenceEnvelope } from "./physicsReference";
|
|
113
|
+
export type { PhysicsReferenceBandSelector, PhysicsReferenceEnvelope, PhysicsReferenceEnvelopeOptions, PhysicsReferenceEnvelopePoint, PhysicsReferenceSampleGrid, PhysicsReferenceTrace, PhysicsScalarTraceSample, PhysicsTraceAccessor, PhysicsTraceComparison, PhysicsTraceComparisonOptions, PhysicsTraceComparisonPoint, PhysicsTraceComparisonStatus, PhysicsTraceInterpolation, PhysicsTraceOutsideDomain } from "./physicsReference";
|
|
114
|
+
export { createProcessJourneyLedger, processJourneyRows, updateProcessJourney } from "./processJourney";
|
|
115
|
+
export { composePhysicsControllers, createCapacityQueueController, createPortalController, createDependencyGateController, createServiceLevelController, createServiceResourcePoolController } from "../stream/physics/PhysicsControllers";
|
|
116
|
+
export type { CapacityQueueAbandonedInfo, CapacityQueueAgeSummary, CapacityQueueBlockedInfo, CapacityQueueControllerOptions, CapacityQueueProcessedInfo, CapacityQueueSnapshot, CapacityQueueVisitInfo, CapacityQueueWindowSnapshot, ComposedPhysicsControllers, DependencyGateController, DependencyGateOptions, DependencyGateSnapshot, PhysicsController, PhysicsControllerTickContext, ServiceLevelCaseInfo, ServiceLevelCaseState, ServiceLevelController, ServiceLevelControllerOptions, ServiceLevelSnapshot, ServiceResourceAssignment, ServiceResourceDefinition, ServiceResourcePoolController, ServiceResourcePoolOptions, ServiceResourcePoolSnapshot } from "../stream/physics/PhysicsControllers";
|
|
117
|
+
export { processChrome } from "./processChrome";
|
|
118
|
+
export type { ProcessChromeGroup, ProcessChromeLayout, ProcessChromeOptions, ProcessChromeStage } from "./processChrome";
|
|
119
|
+
export type { BodyGroupSpec, BodyGroupSpecOptions, ProcessMembraneDef, ProcessRegionBaseOptions, ProcessStageRegionOptions, ProcessStageDef, ProcessVolumeLayout, ProcessVolumeLayoutOptions, ProcessVolumeMembraneBand, ProcessVolumeShape, ProcessVolumeStageBand } from "./processPhysics";
|
|
120
|
+
export type { RegionCountBucket, RegionCountMap } from "./processAggregates";
|
|
121
|
+
export type { ProcessVolumePoint, ProcessVolumePolygon, ProcessVolumePolygonRole } from "./processVolumeGeometry";
|
|
122
|
+
export type { ProcessJourneyEntityState, ProcessJourneyLedger, ProcessJourneyRow, ProcessJourneyStage, ProcessJourneyUpdateOptions } from "./processJourney";
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Pure reference-envelope helpers for physics evidence traces.
|
|
3
|
+
*
|
|
4
|
+
* Physics motion does not provide its own baseline. These helpers align
|
|
5
|
+
* repeated or supplied scalar traces onto one clock, summarize their
|
|
6
|
+
* distribution, and compare a live trace with the resulting reference band.
|
|
7
|
+
*/
|
|
8
|
+
export type PhysicsTraceInterpolation = "step" | "linear";
|
|
9
|
+
export type PhysicsTraceOutsideDomain = "omit" | "clamp";
|
|
10
|
+
export type PhysicsTraceAccessor<TSample> = string | ((sample: TSample, index: number, traceId: string) => unknown);
|
|
11
|
+
export interface PhysicsReferenceTrace<TSample = PhysicsScalarTraceSample> {
|
|
12
|
+
id: string;
|
|
13
|
+
samples: readonly TSample[];
|
|
14
|
+
}
|
|
15
|
+
export interface PhysicsScalarTraceSample {
|
|
16
|
+
time: number;
|
|
17
|
+
value: number;
|
|
18
|
+
}
|
|
19
|
+
export type PhysicsReferenceSampleGrid = readonly number[] | {
|
|
20
|
+
start: number;
|
|
21
|
+
end: number;
|
|
22
|
+
step: number;
|
|
23
|
+
};
|
|
24
|
+
export interface PhysicsReferenceEnvelopeOptions<TSample> {
|
|
25
|
+
runs: readonly PhysicsReferenceTrace<TSample>[];
|
|
26
|
+
sampleAt: PhysicsReferenceSampleGrid;
|
|
27
|
+
timeAccessor?: PhysicsTraceAccessor<TSample>;
|
|
28
|
+
valueAccessor?: PhysicsTraceAccessor<TSample>;
|
|
29
|
+
/** Quantiles use the R-7 linear estimator. Defaults to 0.1, 0.5, and 0.9. */
|
|
30
|
+
quantiles?: readonly number[];
|
|
31
|
+
interpolation?: PhysicsTraceInterpolation;
|
|
32
|
+
/** Whether values outside each run's authored domain are omitted or held. */
|
|
33
|
+
outsideDomain?: PhysicsTraceOutsideDomain;
|
|
34
|
+
}
|
|
35
|
+
export interface PhysicsReferenceEnvelopePoint {
|
|
36
|
+
time: number;
|
|
37
|
+
count: number;
|
|
38
|
+
min: number | null;
|
|
39
|
+
max: number | null;
|
|
40
|
+
median: number | null;
|
|
41
|
+
/** Keys are normalized decimal quantiles, for example `quantiles[0.9]`. */
|
|
42
|
+
quantiles: Partial<Record<number, number | null>>;
|
|
43
|
+
}
|
|
44
|
+
export interface PhysicsReferenceEnvelope {
|
|
45
|
+
points: PhysicsReferenceEnvelopePoint[];
|
|
46
|
+
quantiles: number[];
|
|
47
|
+
interpolation: PhysicsTraceInterpolation;
|
|
48
|
+
outsideDomain: PhysicsTraceOutsideDomain;
|
|
49
|
+
runCount: number;
|
|
50
|
+
}
|
|
51
|
+
export type PhysicsReferenceBandSelector = "min" | "median" | "max" | number;
|
|
52
|
+
export type PhysicsTraceComparisonStatus = "below" | "inside" | "above" | "unobserved";
|
|
53
|
+
export interface PhysicsTraceComparisonPoint {
|
|
54
|
+
time: number;
|
|
55
|
+
value: number | null;
|
|
56
|
+
lower: number | null;
|
|
57
|
+
upper: number | null;
|
|
58
|
+
status: PhysicsTraceComparisonStatus;
|
|
59
|
+
}
|
|
60
|
+
export interface PhysicsTraceComparisonOptions<TSample> {
|
|
61
|
+
timeAccessor?: PhysicsTraceAccessor<TSample>;
|
|
62
|
+
valueAccessor?: PhysicsTraceAccessor<TSample>;
|
|
63
|
+
/** Defaults to the envelope's interpolation. */
|
|
64
|
+
interpolation?: PhysicsTraceInterpolation;
|
|
65
|
+
/** Defaults to the envelope's outside-domain policy. */
|
|
66
|
+
outsideDomain?: PhysicsTraceOutsideDomain;
|
|
67
|
+
/** Defaults to the envelope's lowest quantile, then `min`. */
|
|
68
|
+
lower?: PhysicsReferenceBandSelector;
|
|
69
|
+
/** Defaults to the envelope's highest quantile, then `max`. */
|
|
70
|
+
upper?: PhysicsReferenceBandSelector;
|
|
71
|
+
/** Identifier supplied to function accessors. Defaults to `trace`. */
|
|
72
|
+
traceId?: string;
|
|
73
|
+
}
|
|
74
|
+
export interface PhysicsTraceComparison {
|
|
75
|
+
points: PhysicsTraceComparisonPoint[];
|
|
76
|
+
sampleCount: number;
|
|
77
|
+
observedSamples: number;
|
|
78
|
+
belowSamples: number;
|
|
79
|
+
insideSamples: number;
|
|
80
|
+
aboveSamples: number;
|
|
81
|
+
totalDuration: number;
|
|
82
|
+
observedDuration: number;
|
|
83
|
+
unobservedDuration: number;
|
|
84
|
+
belowDuration: number;
|
|
85
|
+
insideDuration: number;
|
|
86
|
+
aboveDuration: number;
|
|
87
|
+
peakExcess: number;
|
|
88
|
+
peakExcessAt: number | null;
|
|
89
|
+
peakDeficit: number;
|
|
90
|
+
peakDeficitAt: number | null;
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Align irregular scalar traces to a common clock and derive a deterministic
|
|
94
|
+
* quantile envelope. Invalid samples are omitted; inputs are never mutated.
|
|
95
|
+
*/
|
|
96
|
+
export declare function physicsReferenceEnvelope<TSample = PhysicsScalarTraceSample>(options: PhysicsReferenceEnvelopeOptions<TSample>): PhysicsReferenceEnvelope;
|
|
97
|
+
/**
|
|
98
|
+
* Compare one irregular trace with a reference envelope. Durations use
|
|
99
|
+
* left-held intervals for step traces and exact linear boundary crossings for
|
|
100
|
+
* linear traces. Equality with either band edge is inside the reference.
|
|
101
|
+
*/
|
|
102
|
+
export declare function comparePhysicsTrace<TSample = PhysicsScalarTraceSample>(trace: readonly TSample[], envelope: PhysicsReferenceEnvelope, options?: PhysicsTraceComparisonOptions<TSample>): PhysicsTraceComparison;
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/** Pure settled projections derived from physics events and body groups. */
|
|
2
|
+
import type { StreamPhysicsRegionEvent } from "../stream/physics/StreamPhysicsFrame";
|
|
3
|
+
import type { BodyGroupSpec } from "./processPhysics";
|
|
4
|
+
export interface RegionCountBucket {
|
|
5
|
+
id: string;
|
|
6
|
+
label?: string;
|
|
7
|
+
count: number;
|
|
8
|
+
bodyIds: string[];
|
|
9
|
+
}
|
|
10
|
+
export type RegionCountMap = Record<string, RegionCountBucket>;
|
|
11
|
+
/** Reduce region-enter events into per-region unique body counts. */
|
|
12
|
+
export declare function aggregateRegionCounts(previous: RegionCountMap, event: Pick<StreamPhysicsRegionEvent, "type" | "bodyId" | "region">): RegionCountMap;
|
|
13
|
+
export declare function regionCountsToProjectionRows(counts: RegionCountMap, order?: readonly string[]): Array<{
|
|
14
|
+
label: string;
|
|
15
|
+
value: number;
|
|
16
|
+
}>;
|
|
17
|
+
/**
|
|
18
|
+
* Group-completion ledger for all-members, any-member, and weighted-threshold
|
|
19
|
+
* stories. Pure: callers supply which member ids have been absorbed.
|
|
20
|
+
*/
|
|
21
|
+
export declare function groupCompletionRows(groups: readonly BodyGroupSpec[], absorbedBodyIds: ReadonlySet<string> | readonly string[]): Array<{
|
|
22
|
+
id: string;
|
|
23
|
+
label: string;
|
|
24
|
+
mode: "allMembersAbsorbed" | "anyAbsorbed" | "threshold";
|
|
25
|
+
complete: boolean;
|
|
26
|
+
absorbed: number;
|
|
27
|
+
total: number;
|
|
28
|
+
absorbedValue: number;
|
|
29
|
+
totalValue: number;
|
|
30
|
+
threshold?: number;
|
|
31
|
+
missing: string[];
|
|
32
|
+
}>;
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Process-physics chrome kit — stage bays, capacity badges, absorb basins,
|
|
3
|
+
* feature sockets, and flow spines for ProcessFlow / custom process layouts.
|
|
4
|
+
*
|
|
5
|
+
* Theme via CSS vars (with solid fallbacks so chrome never goes blank):
|
|
6
|
+
* --semiotic-process-floor, --semiotic-process-lane, --semiotic-process-border
|
|
7
|
+
* --semiotic-process-text, --semiotic-process-muted
|
|
8
|
+
* --semiotic-success / warning / danger / info for semantic stage roles
|
|
9
|
+
*/
|
|
10
|
+
import * as React from "react";
|
|
11
|
+
export interface ProcessChromeStage {
|
|
12
|
+
id: string;
|
|
13
|
+
label: string;
|
|
14
|
+
x0: number;
|
|
15
|
+
x1: number;
|
|
16
|
+
x: number;
|
|
17
|
+
width: number;
|
|
18
|
+
count?: number;
|
|
19
|
+
capacity?: number;
|
|
20
|
+
/** Reader-facing capacity badge; defaults to the numeric `cap` label. */
|
|
21
|
+
capacityLabel?: string;
|
|
22
|
+
/** Override stage badges without hiding capacity badges across the layout. */
|
|
23
|
+
showBadge?: boolean;
|
|
24
|
+
absorb?: boolean;
|
|
25
|
+
portalTarget?: string;
|
|
26
|
+
queueDepth?: number;
|
|
27
|
+
processed?: number;
|
|
28
|
+
}
|
|
29
|
+
export interface ProcessChromeGroup {
|
|
30
|
+
id: string;
|
|
31
|
+
label: string;
|
|
32
|
+
x: number;
|
|
33
|
+
y: number;
|
|
34
|
+
absorbed?: number;
|
|
35
|
+
total?: number;
|
|
36
|
+
complete?: boolean;
|
|
37
|
+
}
|
|
38
|
+
export interface ProcessChromeLayout {
|
|
39
|
+
width: number;
|
|
40
|
+
height: number;
|
|
41
|
+
left: number;
|
|
42
|
+
right: number;
|
|
43
|
+
topY: number;
|
|
44
|
+
bottomY: number;
|
|
45
|
+
midY: number;
|
|
46
|
+
stages: readonly ProcessChromeStage[];
|
|
47
|
+
groups?: readonly ProcessChromeGroup[];
|
|
48
|
+
}
|
|
49
|
+
export interface ProcessChromeOptions {
|
|
50
|
+
showFlowSpine?: boolean;
|
|
51
|
+
showStageCounts?: boolean;
|
|
52
|
+
showCapacityBadges?: boolean;
|
|
53
|
+
showGroupSockets?: boolean;
|
|
54
|
+
/** Fit stage labels to the stage band instead of drawing fixed-width pills. */
|
|
55
|
+
stageLabelMode?: "auto" | "full" | "compact" | "none";
|
|
56
|
+
/**
|
|
57
|
+
* When true, stage bays are stroke-only (transparent fill) so particles
|
|
58
|
+
* and paired charts remain visible through the gate geometry.
|
|
59
|
+
*/
|
|
60
|
+
outlineStages?: boolean;
|
|
61
|
+
testId?: string;
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* SVG process chrome for overlays / backgroundGraphics.
|
|
65
|
+
* Pure presentational — call from ProcessFlowChart or PhysicsCustomChart.
|
|
66
|
+
*/
|
|
67
|
+
export declare function processChrome(layout: ProcessChromeLayout, options?: ProcessChromeOptions): React.ReactElement;
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Serializable stage-journey state derived from physics region events.
|
|
3
|
+
*
|
|
4
|
+
* Keep this reducer independent from a live physics runtime so authors can
|
|
5
|
+
* replay, compare, persist, and project the same event stream deterministically.
|
|
6
|
+
*/
|
|
7
|
+
import type { StreamPhysicsRegionEvent } from "../stream/physics/StreamPhysicsFrame";
|
|
8
|
+
export interface ProcessJourneyStage {
|
|
9
|
+
id: string;
|
|
10
|
+
label?: string;
|
|
11
|
+
}
|
|
12
|
+
export interface ProcessJourneyEntityState {
|
|
13
|
+
id: string;
|
|
14
|
+
currentStageId?: string;
|
|
15
|
+
furthestStageId?: string;
|
|
16
|
+
furthestStageIndex: number;
|
|
17
|
+
visitedStageIds: string[];
|
|
18
|
+
visitsByStage: Record<string, number>;
|
|
19
|
+
firstEnteredAt: Record<string, number>;
|
|
20
|
+
lastEnteredAt: Record<string, number>;
|
|
21
|
+
regressionCount: number;
|
|
22
|
+
}
|
|
23
|
+
export interface ProcessJourneyLedger {
|
|
24
|
+
stages: ProcessJourneyStage[];
|
|
25
|
+
bodyIds: string[];
|
|
26
|
+
entities: Record<string, ProcessJourneyEntityState>;
|
|
27
|
+
}
|
|
28
|
+
type ProcessJourneyRegionEvent = Pick<StreamPhysicsRegionEvent, "bodyId" | "datum" | "region">;
|
|
29
|
+
export interface ProcessJourneyUpdateOptions {
|
|
30
|
+
entityId?: (event: ProcessJourneyRegionEvent) => string;
|
|
31
|
+
stageId?: (event: ProcessJourneyRegionEvent) => string | undefined;
|
|
32
|
+
}
|
|
33
|
+
export interface ProcessJourneyRow {
|
|
34
|
+
id: string;
|
|
35
|
+
label: string;
|
|
36
|
+
reached: number;
|
|
37
|
+
entered: number;
|
|
38
|
+
total: number;
|
|
39
|
+
conversion: number;
|
|
40
|
+
fromPrevious: number;
|
|
41
|
+
dropoff: number;
|
|
42
|
+
visits: number;
|
|
43
|
+
repeatVisits: number;
|
|
44
|
+
}
|
|
45
|
+
/** Create serializable journey state for a known or initially empty cohort. */
|
|
46
|
+
export declare function createProcessJourneyLedger(options: {
|
|
47
|
+
stages: readonly ProcessJourneyStage[];
|
|
48
|
+
bodyIds?: readonly string[];
|
|
49
|
+
}): ProcessJourneyLedger;
|
|
50
|
+
/** Reduce a stage-region enter into unique reach and visit-aware entity state. */
|
|
51
|
+
export declare function updateProcessJourney(previous: ProcessJourneyLedger, event: Pick<StreamPhysicsRegionEvent, "type" | "bodyId" | "datum" | "observation" | "region">, options?: ProcessJourneyUpdateOptions): ProcessJourneyLedger;
|
|
52
|
+
/** Convert a live journey ledger into stable stage reach and conversion rows. */
|
|
53
|
+
export declare function processJourneyRows(ledger: ProcessJourneyLedger): ProcessJourneyRow[];
|
|
54
|
+
export {};
|