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,88 @@
|
|
|
1
|
+
import type { Datum } from "../charts/shared/datumTypes";
|
|
2
|
+
import type { GeoCustomLayout } from "../stream/geoCustomLayout";
|
|
3
|
+
export type LandmarkKind = "city" | "culture" | "monument" | "faith" | "nature" | "knowledge" | "defense" | "arena" | "transport";
|
|
4
|
+
export type IsometricTerrainKind = "land" | "ocean" | "forest" | "grassland" | "cropland" | "wetland" | "urban" | "scrub" | "bare" | "snow";
|
|
5
|
+
export interface IsometricTerrainCell {
|
|
6
|
+
kind: IsometricTerrainKind;
|
|
7
|
+
/** Fraction of the geographic cell covered by this terrain, from 0 to 1. */
|
|
8
|
+
coverage?: number;
|
|
9
|
+
/** Optional per-cell color override. */
|
|
10
|
+
fill?: string;
|
|
11
|
+
}
|
|
12
|
+
export interface IsometricLandmarkConfig {
|
|
13
|
+
/** Geographic center represented by the middle grid cell. */
|
|
14
|
+
center: {
|
|
15
|
+
lon: number;
|
|
16
|
+
lat: number;
|
|
17
|
+
};
|
|
18
|
+
/** Datum id forced into the middle cell. */
|
|
19
|
+
centerId?: string;
|
|
20
|
+
/** Odd number of rows/columns. @default 5 */
|
|
21
|
+
gridSize?: number;
|
|
22
|
+
/** Half-width of the local square represented by the board. @default 75 */
|
|
23
|
+
gridRadiusKm?: number;
|
|
24
|
+
/** Isometric tile dimensions in pixels. @default 80×40 */
|
|
25
|
+
tileWidth?: number;
|
|
26
|
+
tileHeight?: number;
|
|
27
|
+
/** Source-data accessors. */
|
|
28
|
+
idAccessor?: string | ((d: Datum) => string);
|
|
29
|
+
nameAccessor?: string | ((d: Datum) => string);
|
|
30
|
+
longitudeAccessor?: string | ((d: Datum) => number);
|
|
31
|
+
latitudeAccessor?: string | ((d: Datum) => number);
|
|
32
|
+
kindAccessor?: string | ((d: Datum) => LandmarkKind);
|
|
33
|
+
/** Lower values win when live and fallback candidates share a cell. */
|
|
34
|
+
candidatePriorityAccessor?: string | ((d: Datum) => number);
|
|
35
|
+
/** Optional replacement sprite URLs. Transparent PNGs work best. */
|
|
36
|
+
sprites?: Partial<Record<LandmarkKind, string>>;
|
|
37
|
+
/** Rendered resource sprite size. @default 32 */
|
|
38
|
+
resourceSpriteSize?: number;
|
|
39
|
+
/** Rendered major-city sprite size. @default 64 */
|
|
40
|
+
citySpriteSize?: number;
|
|
41
|
+
/** Civ-style terrain palette. */
|
|
42
|
+
terrainColors?: string[];
|
|
43
|
+
/** Geographic terrain classification keyed by `tile-{row}-{column}`. */
|
|
44
|
+
terrainByCell?: Record<string, IsometricTerrainKind | IsometricTerrainCell>;
|
|
45
|
+
/** Civ-style colors used for classified terrain cells. */
|
|
46
|
+
terrainPalette?: Partial<Record<IsometricTerrainKind, string>>;
|
|
47
|
+
tileStroke?: string;
|
|
48
|
+
showCityLabel?: boolean;
|
|
49
|
+
}
|
|
50
|
+
export interface IsometricLandmarkTile {
|
|
51
|
+
id: string;
|
|
52
|
+
row: number;
|
|
53
|
+
column: number;
|
|
54
|
+
centerXKm: number;
|
|
55
|
+
centerYKm: number;
|
|
56
|
+
terrainIndex: number;
|
|
57
|
+
landmark: (Datum & {
|
|
58
|
+
id: string;
|
|
59
|
+
name: string;
|
|
60
|
+
kind: LandmarkKind;
|
|
61
|
+
lon: number;
|
|
62
|
+
lat: number;
|
|
63
|
+
distanceKm: number;
|
|
64
|
+
}) | null;
|
|
65
|
+
/** All candidates assigned to the cell, with the displayed landmark first. */
|
|
66
|
+
landmarks: Array<Datum & {
|
|
67
|
+
id: string;
|
|
68
|
+
name: string;
|
|
69
|
+
kind: LandmarkKind;
|
|
70
|
+
lon: number;
|
|
71
|
+
lat: number;
|
|
72
|
+
distanceKm: number;
|
|
73
|
+
}>;
|
|
74
|
+
}
|
|
75
|
+
export declare const DEFAULT_ISOMETRIC_SPRITE_SIZES: {
|
|
76
|
+
readonly resource: 32;
|
|
77
|
+
readonly city: 64;
|
|
78
|
+
};
|
|
79
|
+
/**
|
|
80
|
+
* Quantize geographic landmarks into an odd square grid and choose one
|
|
81
|
+
* representative per cell. Selection balances proximity to the cell center
|
|
82
|
+
* with category reuse so a dense class does not consume the whole board.
|
|
83
|
+
*/
|
|
84
|
+
export declare function selectIsometricLandmarks(points: Datum[], config: IsometricLandmarkConfig): IsometricLandmarkTile[];
|
|
85
|
+
/**
|
|
86
|
+
* Isometric landmark board for `GeoCustomChart`.
|
|
87
|
+
*/
|
|
88
|
+
export declare const isometricLandmarkLayout: GeoCustomLayout<IsometricLandmarkConfig>;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { GlyphDef } from "../stream/glyphDef";
|
|
2
|
+
export declare const isotypeInk = "#334155";
|
|
3
|
+
export declare const isotypePaper = "#f8fafc";
|
|
4
|
+
export declare const isotypeGhost = "#cbd5e1";
|
|
5
|
+
export declare const isotypeServerGlyph: GlyphDef;
|
|
6
|
+
export declare const isotypeChipGlyph: GlyphDef;
|
|
7
|
+
export declare const isotypeBoltGlyph: GlyphDef;
|
|
8
|
+
export declare const isotypeBusGlyph: GlyphDef;
|
|
9
|
+
export declare const isotypePersonPath = "M 9.12,3.34 C 8.28,3.29 7.44,3.40 6.64,3.69 4.17,3.63 1.97,5.37 0.91,7.51 -1.32,11.80 2.55,17.76 8.19,16.55 11.62,16.13 15.55,14.04 16.17,10.33 16.38,6.53 12.77,3.52 9.12,3.34 Z M 9.35,19.86 C 8.89,19.84 8.41,19.92 7.92,20.11 5.12,21.55 3.72,24.68 2.79,27.54 2.32,29.86 0.87,32.04 1.36,34.49 1.63,37.60 8.04,38.95 8.04,38.95 8.04,38.95 14.67,39.65 16.50,36.33 17.16,31.95 16.34,27.23 14.01,23.42 13.07,21.69 11.36,19.92 9.35,19.86 Z";
|
|
10
|
+
export declare const isotypePersonGlyph: GlyphDef;
|
|
11
|
+
export declare const isotypeNetworkGlyphs: {
|
|
12
|
+
readonly server: GlyphDef;
|
|
13
|
+
readonly chip: GlyphDef;
|
|
14
|
+
readonly bolt: GlyphDef;
|
|
15
|
+
readonly bus: GlyphDef;
|
|
16
|
+
readonly person: GlyphDef;
|
|
17
|
+
};
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import type { Datum } from "../charts/shared/datumTypes";
|
|
2
|
+
export type MobileAnnotationStrategyMode = "plot" | "callout-list" | "hybrid";
|
|
3
|
+
export interface MobileAnnotationStrategyConfig {
|
|
4
|
+
/** Activate the strategy explicitly. When omitted, width/breakpoint decides. */
|
|
5
|
+
active?: boolean;
|
|
6
|
+
/** Measured plot/container width in CSS pixels. */
|
|
7
|
+
width?: number;
|
|
8
|
+
/** Width at or below which the strategy activates. Default 480. */
|
|
9
|
+
breakpoint?: number;
|
|
10
|
+
/** Plot-only, list-only, or hybrid visible-plus-list behavior. Default "hybrid". */
|
|
11
|
+
strategy?: MobileAnnotationStrategyMode;
|
|
12
|
+
/** Maximum persistent note annotations left in the plot. Alias: maxAnnotations. */
|
|
13
|
+
maxPlotAnnotations?: number;
|
|
14
|
+
maxAnnotations?: number;
|
|
15
|
+
/** Minimum number of note annotations kept in the plot. Default 1. */
|
|
16
|
+
minPlotAnnotations?: number;
|
|
17
|
+
minVisible?: number;
|
|
18
|
+
/** Maximum callout-list items. Default 6. */
|
|
19
|
+
maxCalloutItems?: number;
|
|
20
|
+
/** Keep primary/emergency notes in the plot before lower-priority notes. Default true. */
|
|
21
|
+
preservePrimary?: boolean;
|
|
22
|
+
/** Prefer mobileText/shortText over full label. Default true. */
|
|
23
|
+
preferShortText?: boolean;
|
|
24
|
+
/** Field or function used as an explicit priority score. */
|
|
25
|
+
priorityAccessor?: string | ((annotation: Datum, index: number) => number | undefined);
|
|
26
|
+
/** Optional filter for annotations that should move into the callout list. */
|
|
27
|
+
calloutFilter?: (annotation: Datum, index: number) => boolean;
|
|
28
|
+
}
|
|
29
|
+
export interface MobileAnnotationCalloutItem {
|
|
30
|
+
id: string;
|
|
31
|
+
label: string;
|
|
32
|
+
shortLabel?: string;
|
|
33
|
+
pointId?: string | number;
|
|
34
|
+
emphasis?: string;
|
|
35
|
+
source?: string;
|
|
36
|
+
priority: number;
|
|
37
|
+
annotation: Datum;
|
|
38
|
+
}
|
|
39
|
+
export interface MobileAnnotationStrategyResult {
|
|
40
|
+
active: boolean;
|
|
41
|
+
strategy: MobileAnnotationStrategyMode;
|
|
42
|
+
budget: number;
|
|
43
|
+
visible: Datum[];
|
|
44
|
+
deferred: Datum[];
|
|
45
|
+
calloutList: MobileAnnotationCalloutItem[];
|
|
46
|
+
hidden: Datum[];
|
|
47
|
+
}
|
|
48
|
+
export declare function mobileAnnotationStrategy(annotations: readonly Datum[] | undefined, config?: MobileAnnotationStrategyConfig): MobileAnnotationStrategyResult;
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import type { ResponsiveRule } from "../charts/shared/responsiveRules";
|
|
2
|
+
import type { MobileInteractionConfig, MobileSnapBehavior, MobileStandardControlsMode } from "../charts/shared/types";
|
|
3
|
+
import type { MobileVisualizationContract } from "../charts/shared/auditMobileVisualization";
|
|
4
|
+
export type MobileChartFamily = "line" | "area" | "ordinal" | "scatter" | "network" | "geo" | "small-multiple";
|
|
5
|
+
export interface MobileChartFamilyRecipeOptions {
|
|
6
|
+
breakpoint?: number;
|
|
7
|
+
targetSize?: number;
|
|
8
|
+
mode?: "mobile" | false;
|
|
9
|
+
density?: "comfortable" | "compact" | "dense";
|
|
10
|
+
transformProfile?: "overview" | "compare" | "inspect";
|
|
11
|
+
keepAxes?: boolean;
|
|
12
|
+
showLegend?: boolean;
|
|
13
|
+
directLabel?: boolean;
|
|
14
|
+
maxAnnotations?: number;
|
|
15
|
+
maxCalloutItems?: number;
|
|
16
|
+
chartHeight?: number;
|
|
17
|
+
mobileColumns?: number;
|
|
18
|
+
tabletColumns?: number;
|
|
19
|
+
snap?: MobileSnapBehavior;
|
|
20
|
+
standardControls?: MobileStandardControlsMode;
|
|
21
|
+
summary?: string;
|
|
22
|
+
}
|
|
23
|
+
export interface MobileChartFamilyRecipe {
|
|
24
|
+
family: MobileChartFamily;
|
|
25
|
+
props: Record<string, unknown>;
|
|
26
|
+
responsiveRules: ResponsiveRule<Record<string, unknown>>[];
|
|
27
|
+
mobileInteraction: MobileInteractionConfig;
|
|
28
|
+
mobileSemantics: MobileVisualizationContract;
|
|
29
|
+
}
|
|
30
|
+
export declare function mobileLineChartRecipe(options?: MobileChartFamilyRecipeOptions): MobileChartFamilyRecipe;
|
|
31
|
+
export declare function mobileAreaChartRecipe(options?: MobileChartFamilyRecipeOptions): MobileChartFamilyRecipe;
|
|
32
|
+
export declare function mobileOrdinalChartRecipe(options?: MobileChartFamilyRecipeOptions): MobileChartFamilyRecipe;
|
|
33
|
+
export declare function mobileScatterplotRecipe(options?: MobileChartFamilyRecipeOptions): MobileChartFamilyRecipe;
|
|
34
|
+
export declare function mobileNetworkChartRecipe(options?: MobileChartFamilyRecipeOptions): MobileChartFamilyRecipe;
|
|
35
|
+
export declare function mobileGeoChartRecipe(options?: MobileChartFamilyRecipeOptions): MobileChartFamilyRecipe;
|
|
36
|
+
export declare function mobileSmallMultipleRecipe(options?: MobileChartFamilyRecipeOptions): MobileChartFamilyRecipe;
|
|
37
|
+
export declare function mobileChartFamilyRecipe(family: MobileChartFamily, options?: MobileChartFamilyRecipeOptions): MobileChartFamilyRecipe;
|
|
38
|
+
export interface MobileBrushAlternativeOptions {
|
|
39
|
+
targetSize?: number;
|
|
40
|
+
controls?: Array<"range-inputs" | "chip-filter" | "clear" | "stepper">;
|
|
41
|
+
summary?: string;
|
|
42
|
+
}
|
|
43
|
+
export declare function mobileBrushAlternatives(options?: MobileBrushAlternativeOptions): {
|
|
44
|
+
mobileInteraction: {
|
|
45
|
+
enabled: boolean;
|
|
46
|
+
targetSize: number;
|
|
47
|
+
tapToSelect: boolean;
|
|
48
|
+
tapToLockTooltip: boolean;
|
|
49
|
+
standardControls: "brush";
|
|
50
|
+
};
|
|
51
|
+
mobileSemantics: {
|
|
52
|
+
interaction: {
|
|
53
|
+
primary: "filter";
|
|
54
|
+
alternatives: ("clear" | "range-inputs" | "chip-filter" | "stepper")[];
|
|
55
|
+
summary: string;
|
|
56
|
+
};
|
|
57
|
+
};
|
|
58
|
+
controls: ("clear" | "range-inputs" | "chip-filter" | "stepper")[];
|
|
59
|
+
};
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Network-analysis kit — pure graph algorithms for network visualizations.
|
|
3
|
+
*
|
|
4
|
+
* These are the primitives most network charts end up hand-rolling: adjacency,
|
|
5
|
+
* breadth-first distances, shortest paths, ego networks, degree / betweenness /
|
|
6
|
+
* closeness centrality, clustering coefficient, and the "spatial problem"
|
|
7
|
+
* detector (nodes drawn closer than their graph distance warrants). They pair
|
|
8
|
+
* naturally with `ForceDirectedGraph`, `NetworkCustomChart`, and the layout
|
|
9
|
+
* recipes: size nodes by centrality, highlight an ego network on hover, trace a
|
|
10
|
+
* shortest path, or diagnose a misleading layout.
|
|
11
|
+
*
|
|
12
|
+
* All functions are pure and dependency-free. Edges are treated as undirected.
|
|
13
|
+
*/
|
|
14
|
+
export interface GraphNode {
|
|
15
|
+
id: string;
|
|
16
|
+
}
|
|
17
|
+
export interface GraphEdge {
|
|
18
|
+
source: string;
|
|
19
|
+
target: string;
|
|
20
|
+
value?: number;
|
|
21
|
+
}
|
|
22
|
+
export interface Point {
|
|
23
|
+
x: number;
|
|
24
|
+
y: number;
|
|
25
|
+
}
|
|
26
|
+
/** Build an undirected adjacency map: node id → set of neighbor ids. */
|
|
27
|
+
export declare function buildAdjacency(nodes: ReadonlyArray<GraphNode>, edges: ReadonlyArray<GraphEdge>): Map<string, Set<string>>;
|
|
28
|
+
/**
|
|
29
|
+
* Build a **directed** adjacency map: node id → set of successor ids, following
|
|
30
|
+
* `source → target` only. The directed sibling of {@link buildAdjacency}, for
|
|
31
|
+
* DAG / flow / dependency graphs where edge direction carries meaning.
|
|
32
|
+
*/
|
|
33
|
+
export declare function buildDirectedAdjacency(nodes: ReadonlyArray<GraphNode>, edges: ReadonlyArray<GraphEdge>): Map<string, Set<string>>;
|
|
34
|
+
/**
|
|
35
|
+
* The set of nodes reachable from `start` by following the adjacency (BFS).
|
|
36
|
+
* Works on either an undirected ({@link buildAdjacency}) or directed
|
|
37
|
+
* ({@link buildDirectedAdjacency}) adjacency map.
|
|
38
|
+
*
|
|
39
|
+
* `start` itself is excluded unless it is reachable via a cycle, or
|
|
40
|
+
* `includeStart` is set — so on a DAG this is exactly the descendant set, and
|
|
41
|
+
* on a cyclic graph a node that can reach itself is reported as such.
|
|
42
|
+
*/
|
|
43
|
+
export declare function reachableFrom(adjacency: Map<string, Set<string>>, start: string, options?: {
|
|
44
|
+
includeStart?: boolean;
|
|
45
|
+
}): Set<string>;
|
|
46
|
+
/** Degree (neighbor count) per node id. */
|
|
47
|
+
export declare function degree(nodes: ReadonlyArray<GraphNode>, edges: ReadonlyArray<GraphEdge>): Record<string, number>;
|
|
48
|
+
/** Breadth-first hop distance from `start` to every reachable node. */
|
|
49
|
+
export declare function bfsDistances(adjacency: Map<string, Set<string>>, start: string): Record<string, number>;
|
|
50
|
+
/**
|
|
51
|
+
* Unweighted shortest path between two node ids (BFS). Returns the path as an
|
|
52
|
+
* ordered list of ids (inclusive of both ends), or `[]` if unreachable.
|
|
53
|
+
*/
|
|
54
|
+
export declare function shortestPath(nodes: ReadonlyArray<GraphNode>, edges: ReadonlyArray<GraphEdge>, source: string, target: string): string[];
|
|
55
|
+
/**
|
|
56
|
+
* The ego network of a node: itself plus every node within `depth` hops.
|
|
57
|
+
* Returns the set of member ids (use it to highlight neighbors on hover).
|
|
58
|
+
*/
|
|
59
|
+
export declare function egoNetwork(nodes: ReadonlyArray<GraphNode>, edges: ReadonlyArray<GraphEdge>, id: string, depth?: number): Set<string>;
|
|
60
|
+
/**
|
|
61
|
+
* Betweenness centrality (Brandes' algorithm, unweighted, undirected). Higher
|
|
62
|
+
* scores mark bridge nodes that many shortest paths pass through. Raw scores;
|
|
63
|
+
* wrap with {@link normalizeScores} for a 0–1 encoding (e.g. node size).
|
|
64
|
+
*/
|
|
65
|
+
export declare function betweenness(nodes: ReadonlyArray<GraphNode>, edges: ReadonlyArray<GraphEdge>): Record<string, number>;
|
|
66
|
+
/**
|
|
67
|
+
* Closeness centrality: the inverse of the mean shortest-path distance to all
|
|
68
|
+
* reachable nodes. Higher = more central. Raw scores; see {@link normalizeScores}.
|
|
69
|
+
*/
|
|
70
|
+
export declare function closeness(nodes: ReadonlyArray<GraphNode>, edges: ReadonlyArray<GraphEdge>): Record<string, number>;
|
|
71
|
+
/**
|
|
72
|
+
* Local clustering coefficient per node (0–1): the fraction of a node's
|
|
73
|
+
* neighbor pairs that are themselves connected.
|
|
74
|
+
*/
|
|
75
|
+
export declare function clustering(nodes: ReadonlyArray<GraphNode>, edges: ReadonlyArray<GraphEdge>): Record<string, number>;
|
|
76
|
+
/** Rescale a score map to 0–1 by its maximum (for size/opacity encodings). */
|
|
77
|
+
export declare function normalizeScores(scores: Record<string, number>): Record<string, number>;
|
|
78
|
+
export interface ProximityProblemOptions {
|
|
79
|
+
/** Minimum graph-hop distance for a pair to count as "far". @default 4 */
|
|
80
|
+
minHops?: number;
|
|
81
|
+
/** Starting screen-distance threshold (in the units of `positions`). @default 0.08 */
|
|
82
|
+
startThreshold?: number;
|
|
83
|
+
/** Cap the threshold search at this distance before relaxing `minHops`. @default 0.2 */
|
|
84
|
+
maxThreshold?: number;
|
|
85
|
+
}
|
|
86
|
+
export interface ProximityProblemResult {
|
|
87
|
+
/** Ids drawn misleadingly close given their graph distance. */
|
|
88
|
+
problemIds: Set<string>;
|
|
89
|
+
/** The screen-distance threshold at which offenders were found. */
|
|
90
|
+
threshold: number;
|
|
91
|
+
/** The graph-hop distance used. */
|
|
92
|
+
minHops: number;
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* The "spatial problem": find nodes drawn near each other on screen yet far
|
|
96
|
+
* apart (or disconnected) in the graph — proximity pretending to be kinship,
|
|
97
|
+
* the classic force-layout lie. `positions` is a map of node id → screen point
|
|
98
|
+
* (any consistent coordinate space; distances are compared in those units).
|
|
99
|
+
* The search escalates the distance threshold, then relaxes `minHops`, until at
|
|
100
|
+
* least one offending pair is found.
|
|
101
|
+
*/
|
|
102
|
+
export declare function proximityProblem(nodes: ReadonlyArray<GraphNode>, edges: ReadonlyArray<GraphEdge>, positions: Record<string, Point>, options?: ProximityProblemOptions): ProximityProblemResult;
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Deterministic, physics-free network layouts — the classic static forms that
|
|
3
|
+
* predate (and often out-read) the force-directed hairball: the arc diagram,
|
|
4
|
+
* the adjacency matrix, and the circular layout.
|
|
5
|
+
*
|
|
6
|
+
* These are composable positioner / structure helpers (not full scene layouts):
|
|
7
|
+
* they return normalized positions or a matrix structure that you render inside
|
|
8
|
+
* a `NetworkCustomChart` layout, so you keep full control of styling. Pure and
|
|
9
|
+
* dependency-free.
|
|
10
|
+
*/
|
|
11
|
+
import type { GraphNode, GraphEdge, Point } from "./networkAnalysis";
|
|
12
|
+
/**
|
|
13
|
+
* Order node ids by community/group then descending degree, so related nodes sit
|
|
14
|
+
* together and hubs lead — the ordering that makes arc diagrams and adjacency
|
|
15
|
+
* matrices legible. Pass `groupAccessor` to read the grouping field (default
|
|
16
|
+
* `"group"`); nodes without one are ordered by degree alone.
|
|
17
|
+
*/
|
|
18
|
+
export declare function orderByGroupDegree<N extends GraphNode>(nodes: ReadonlyArray<N>, edges: ReadonlyArray<GraphEdge>, groupAccessor?: keyof N | ((n: N) => number | string)): string[];
|
|
19
|
+
export interface ArcLayoutOptions {
|
|
20
|
+
/** Baseline y position in [0, 1]. @default 0.62 */
|
|
21
|
+
baseline?: number;
|
|
22
|
+
/** Horizontal inset kept clear at each end, in [0, 0.5). @default 0.06 */
|
|
23
|
+
inset?: number;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Arc diagram: lay the ordered ids out along a horizontal baseline. Draw each
|
|
27
|
+
* edge as an arc with {@link arcPath}. Returns id → {x, y} in [0, 1].
|
|
28
|
+
*/
|
|
29
|
+
export declare function arcLayout(ids: ReadonlyArray<string>, options?: ArcLayoutOptions): Record<string, Point>;
|
|
30
|
+
/**
|
|
31
|
+
* An SVG path string for an arc between two points that share a baseline (as in
|
|
32
|
+
* an arc diagram). The arc bows away from the baseline by `heightRatio` of the
|
|
33
|
+
* span. Coordinates are whatever space you pass (typically already projected
|
|
34
|
+
* into the plot).
|
|
35
|
+
*/
|
|
36
|
+
export declare function arcPath(a: Point, b: Point, heightRatio?: number): string;
|
|
37
|
+
export interface CircularLayoutOptions {
|
|
38
|
+
/** Ring radius in [0, 0.5]. @default 0.42 */
|
|
39
|
+
radius?: number;
|
|
40
|
+
/** Center point in [0, 1]. @default { x: 0.5, y: 0.5 } */
|
|
41
|
+
center?: Point;
|
|
42
|
+
/** Start angle in radians (0 = up). @default 0 */
|
|
43
|
+
startAngle?: number;
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Circular layout: place the ordered ids evenly around a ring. Position carries
|
|
47
|
+
* no meaning (edges cross the interior) — offered mainly as a labeled, stable
|
|
48
|
+
* arrangement. Returns id → {x, y} in [0, 1].
|
|
49
|
+
*/
|
|
50
|
+
export declare function circularLayout(ids: ReadonlyArray<string>, options?: CircularLayoutOptions): Record<string, Point>;
|
|
51
|
+
export interface MatrixCell {
|
|
52
|
+
/** Row index (into the ordered id list). */
|
|
53
|
+
row: number;
|
|
54
|
+
/** Column index. */
|
|
55
|
+
col: number;
|
|
56
|
+
source: string;
|
|
57
|
+
target: string;
|
|
58
|
+
/** Summed edge value between the pair (defaults to 1 per edge). */
|
|
59
|
+
value: number;
|
|
60
|
+
}
|
|
61
|
+
export interface AdjacencyMatrix {
|
|
62
|
+
/** The ordered ids used for rows and columns. */
|
|
63
|
+
order: string[];
|
|
64
|
+
/** One cell per connected (i, j) pair, both triangles (symmetric). */
|
|
65
|
+
cells: MatrixCell[];
|
|
66
|
+
/** Number of rows/columns (`order.length`). */
|
|
67
|
+
size: number;
|
|
68
|
+
/** Maximum cell value (for opacity/intensity encoding). */
|
|
69
|
+
maxValue: number;
|
|
70
|
+
}
|
|
71
|
+
export interface AdjacencyMatrixOptions {
|
|
72
|
+
/** Explicit row/column order; defaults to {@link orderByGroupDegree}. */
|
|
73
|
+
order?: ReadonlyArray<string>;
|
|
74
|
+
/** Group accessor used when computing the default order. @default "group" */
|
|
75
|
+
groupAccessor?: keyof GraphNode | ((n: GraphNode) => number | string);
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Adjacency matrix structure: every connection becomes a filled cell, so nothing
|
|
79
|
+
* overlaps and dense graphs stay legible. Returns the ordered ids plus the cell
|
|
80
|
+
* list; render each cell at `(col, row)` in your layout. Symmetric (both
|
|
81
|
+
* triangles filled); the diagonal is omitted.
|
|
82
|
+
*/
|
|
83
|
+
export declare function adjacencyMatrix(nodes: ReadonlyArray<GraphNode>, edges: ReadonlyArray<GraphEdge>, options?: AdjacencyMatrixOptions): AdjacencyMatrix;
|
|
@@ -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
|
+
}>;
|