semiotic 3.7.5 → 3.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CLAUDE.md +54 -12
- package/README.md +121 -27
- package/agent-skill/semiotic-charts/SKILL.md +146 -0
- package/ai/cli.js +133 -45
- package/ai/componentMetadata.cjs +6 -1
- package/ai/dist/mcp-server.js +1651 -154
- package/ai/examples.md +174 -0
- package/ai/schema.json +2733 -536
- package/ai/surface-manifest.json +200 -0
- package/ai/system-prompt.md +18 -3
- package/dist/components/CategoryColors.d.ts +1 -1
- package/dist/components/ChartContainer.d.ts +91 -0
- package/dist/components/ChartGrid.d.ts +11 -1
- package/dist/components/CircularBrush.d.ts +61 -0
- package/dist/components/ContextLayout.d.ts +5 -1
- package/dist/components/DirectManipulationControl.d.ts +63 -0
- package/dist/components/LinkedCharts.d.ts +3 -1
- package/dist/components/MobileAnnotationCalloutList.d.ts +13 -0
- package/dist/components/MobileChartContainer.d.ts +51 -0
- package/dist/components/MobileStandardControls.d.ts +68 -0
- package/dist/components/SmallMultipleChart.d.ts +84 -0
- package/dist/components/Tooltip/FlippingTooltip.d.ts +21 -0
- package/dist/components/ai/ChartRecipe.d.ts +16 -0
- package/dist/components/ai/IntentMark.d.ts +15 -0
- package/dist/components/ai/chartCapabilities.d.ts +8 -1
- package/dist/components/ai/chartCapabilityTypes.d.ts +26 -1
- package/dist/components/ai/chartClinic.d.ts +91 -0
- package/dist/components/ai/chartRecipeRegistry.d.ts +14 -0
- package/dist/components/ai/chartRecipes.d.ts +278 -0
- package/dist/components/ai/dataPitfallsBridge.d.ts +102 -0
- package/dist/components/ai/describeChart.d.ts +7 -0
- package/dist/components/ai/describeRecipeChart.d.ts +16 -0
- package/dist/components/ai/generativeChart.d.ts +28 -3
- package/dist/components/ai/intentManifest.d.ts +62 -0
- package/dist/components/ai/navigationTree.d.ts +3 -0
- package/dist/components/ai/observedSceneAudit.d.ts +72 -0
- package/dist/components/ai/readerGrounding.d.ts +83 -0
- package/dist/components/ai/recipeCapability.d.ts +8 -0
- package/dist/components/ai/recipeNavigation.d.ts +13 -0
- package/dist/components/ai/recipeSemantics.d.ts +11 -0
- package/dist/components/ai/repairChartConfig.d.ts +9 -0
- package/dist/components/ai/suggestCharts.d.ts +11 -1
- package/dist/components/charts/custom/GeoCustomChart.d.ts +48 -0
- package/dist/components/charts/custom/NetworkCustomChart.d.ts +8 -2
- package/dist/components/charts/custom/OrdinalCustomChart.d.ts +8 -2
- package/dist/components/charts/custom/XYCustomChart.d.ts +11 -2
- package/dist/components/charts/geo/DistanceCartogram.d.ts +1 -1
- package/dist/components/charts/geo/FlowMap.d.ts +1 -1
- package/dist/components/charts/geo/ProportionalSymbolMap.d.ts +1 -1
- package/dist/components/charts/geo/index.d.ts +2 -0
- package/dist/components/charts/index.d.ts +29 -1
- package/dist/components/charts/network/ChordDiagram.d.ts +1 -1
- package/dist/components/charts/network/CirclePack.d.ts +1 -1
- package/dist/components/charts/network/ForceDirectedGraph.d.ts +15 -5
- package/dist/components/charts/network/OrbitDiagram.d.ts +1 -1
- package/dist/components/charts/network/ProcessSankey.d.ts +1 -1
- package/dist/components/charts/network/SankeyDiagram.d.ts +1 -1
- package/dist/components/charts/network/TreeDiagram.d.ts +1 -1
- package/dist/components/charts/network/Treemap.d.ts +1 -1
- package/dist/components/charts/network/useForceLayout.d.ts +17 -0
- package/dist/components/charts/ordinal/BarChart.d.ts +1 -1
- package/dist/components/charts/ordinal/BoxPlot.d.ts +1 -1
- package/dist/components/charts/ordinal/DonutChart.d.ts +1 -1
- package/dist/components/charts/ordinal/DotPlot.d.ts +1 -1
- package/dist/components/charts/ordinal/FunnelChart.d.ts +1 -1
- package/dist/components/charts/ordinal/GroupedBarChart.d.ts +1 -1
- package/dist/components/charts/ordinal/Histogram.d.ts +1 -1
- package/dist/components/charts/ordinal/PieChart.d.ts +1 -1
- package/dist/components/charts/ordinal/RidgelinePlot.d.ts +1 -1
- package/dist/components/charts/ordinal/StackedBarChart.d.ts +1 -1
- package/dist/components/charts/ordinal/SwarmPlot.d.ts +1 -1
- package/dist/components/charts/ordinal/SwimlaneChart.d.ts +1 -1
- package/dist/components/charts/ordinal/ViolinPlot.d.ts +1 -1
- package/dist/components/charts/physics/ChainReactionChart.d.ts +9 -0
- package/dist/components/charts/physics/CollisionSwarmChart.capability.d.ts +2 -0
- package/dist/components/charts/physics/CollisionSwarmChart.d.ts +47 -0
- package/dist/components/charts/physics/EventDropChart.capability.d.ts +2 -0
- package/dist/components/charts/physics/EventDropChart.d.ts +53 -0
- package/dist/components/charts/physics/GaltonBoardChart.capability.d.ts +2 -0
- package/dist/components/charts/physics/GaltonBoardChart.d.ts +66 -0
- package/dist/components/charts/physics/GauntletChart.capability.d.ts +2 -0
- package/dist/components/charts/physics/GauntletChart.d.ts +73 -0
- package/dist/components/charts/physics/PhysicalFlowChart.capability.d.ts +2 -0
- package/dist/components/charts/physics/PhysicalFlowChart.d.ts +63 -0
- package/dist/components/charts/physics/PhysicsCustomChart.d.ts +120 -0
- package/dist/components/charts/physics/PhysicsPileChart.capability.d.ts +2 -0
- package/dist/components/charts/physics/PhysicsPileChart.d.ts +53 -0
- package/dist/components/charts/physics/ProcessFlowChart.capability.d.ts +2 -0
- package/dist/components/charts/physics/ProcessFlowChart.d.ts +96 -0
- package/dist/components/charts/physics/chainReactionOverlay.d.ts +22 -0
- package/dist/components/charts/physics/chainReactionRuntime.d.ts +37 -0
- package/dist/components/charts/physics/chainReactionTypes.d.ts +97 -0
- package/dist/components/charts/physics/collisionSwarmPhysics.d.ts +27 -0
- package/dist/components/charts/physics/dependencyMachine.d.ts +188 -0
- package/dist/components/charts/physics/eventDropPhysics.d.ts +64 -0
- package/dist/components/charts/physics/galtonBoardPhysics.d.ts +28 -0
- package/dist/components/charts/physics/gauntletChartProps.d.ts +67 -0
- package/dist/components/charts/physics/gauntletChrome.d.ts +33 -0
- package/dist/components/charts/physics/gauntletController.d.ts +73 -0
- package/dist/components/charts/physics/gauntletEffects.d.ts +36 -0
- package/dist/components/charts/physics/gauntletPhysics.d.ts +71 -0
- package/dist/components/charts/physics/gauntletRuntime.d.ts +42 -0
- package/dist/components/charts/physics/gauntletTypes.d.ts +213 -0
- package/dist/components/charts/physics/physicalFlowPhysics.d.ts +57 -0
- package/dist/components/charts/physics/physicsChartShared.d.ts +41 -0
- package/dist/components/charts/physics/physicsChartUtils.d.ts +18 -0
- package/dist/components/charts/physics/physicsEncoding.d.ts +142 -0
- package/dist/components/charts/physics/physicsHocHandle.d.ts +53 -0
- package/dist/components/charts/physics/physicsHocUtils.d.ts +128 -0
- package/dist/components/charts/physics/physicsPilePhysics.d.ts +41 -0
- package/dist/components/charts/physics/physicsProcessPrimitives.d.ts +38 -0
- package/dist/components/charts/physics/processFlowPhysics.d.ts +97 -0
- package/dist/components/charts/realtime/RealtimeHeatmap.d.ts +9 -1
- package/dist/components/charts/realtime/RealtimeHistogram.d.ts +9 -1
- package/dist/components/charts/realtime/RealtimeLineChart.d.ts +9 -1
- package/dist/components/charts/realtime/RealtimeSwarmChart.d.ts +16 -2
- package/dist/components/charts/realtime/RealtimeWaterfallChart.d.ts +9 -1
- package/dist/components/charts/shared/auditMobileVisualization.d.ts +91 -0
- package/dist/components/charts/shared/chartDefinitionPilot.d.ts +145 -0
- package/dist/components/charts/shared/chartFamilySets.d.ts +20 -0
- package/dist/components/charts/shared/chartSpecCore.d.ts +165 -0
- package/dist/components/charts/shared/chartSpecs.d.ts +8 -127
- package/dist/components/charts/shared/chartSpecsGeo.d.ts +2 -0
- package/dist/components/charts/shared/chartSpecsNetwork.d.ts +2 -0
- package/dist/components/charts/shared/chartSpecsOrdinal.d.ts +2 -0
- package/dist/components/charts/shared/chartSpecsPhysics.d.ts +2 -0
- package/dist/components/charts/shared/chartSpecsRealtime.d.ts +2 -0
- package/dist/components/charts/shared/chartSpecsValue.d.ts +2 -0
- package/dist/components/charts/shared/chartSpecsXY.d.ts +2 -0
- package/dist/components/charts/shared/colorContrast.d.ts +3 -0
- package/dist/components/charts/shared/colorUtils.d.ts +16 -1
- package/dist/components/charts/shared/diagnoseAnnotationChecks.d.ts +4 -0
- package/dist/components/charts/shared/diagnoseConfig.d.ts +9 -14
- package/dist/components/charts/shared/diagnoseMisleadingChecks.d.ts +9 -0
- package/dist/components/charts/shared/diagnosePhysicsChecks.d.ts +3 -0
- package/dist/components/charts/shared/diagnoseTypes.d.ts +10 -0
- package/dist/components/charts/shared/hooks.d.ts +28 -5
- package/dist/components/charts/shared/motionEncoding.d.ts +145 -0
- package/dist/components/charts/shared/responsiveRules.d.ts +56 -0
- package/dist/components/charts/shared/streamPropsHelpers.d.ts +12 -2
- package/dist/components/charts/shared/temporalStrings.d.ts +7 -0
- package/dist/components/charts/shared/types.d.ts +49 -1
- package/dist/components/charts/shared/useChartSetup.d.ts +9 -2
- package/dist/components/charts/shared/useCustomChartSetup.d.ts +14 -5
- package/dist/components/charts/shared/useNetworkChartSetup.d.ts +6 -2
- package/dist/components/charts/shared/useOrdinalPieceStyle.d.ts +1 -1
- package/dist/components/charts/shared/useStreamingLegend.d.ts +1 -1
- package/dist/components/charts/shared/useSyncedPushData.d.ts +49 -0
- package/dist/components/charts/shared/validationMap.d.ts +0 -11
- package/dist/components/charts/xy/AreaChart.d.ts +1 -1
- package/dist/components/charts/xy/BubbleChart.d.ts +1 -1
- package/dist/components/charts/xy/LineChart.d.ts +1 -1
- package/dist/components/charts/xy/MinimapChart.d.ts +1 -1
- package/dist/components/charts/xy/MultiAxisLineChart.d.ts +2 -2
- package/dist/components/charts/xy/QuadrantChart.d.ts +1 -1
- package/dist/components/charts/xy/Scatterplot.d.ts +1 -1
- package/dist/components/charts/xy/ScatterplotMatrix.d.ts +11 -1
- package/dist/components/charts/xy/StackedAreaChart.d.ts +9 -4
- package/dist/components/controls/controlAudit.d.ts +24 -0
- package/dist/components/controls/controlContract.d.ts +57 -0
- package/dist/components/data/fromFlintChart.d.ts +74 -0
- package/dist/components/data/fromVegaLite.d.ts +27 -0
- package/dist/components/data/portability/index.d.ts +6 -3
- package/dist/components/data/portability/result.d.ts +52 -0
- package/dist/components/data/portability/spec.d.ts +31 -0
- package/dist/components/data/portability/vegaLite.d.ts +24 -6
- package/dist/components/export/chartConfig.d.ts +11 -0
- package/dist/components/realtime/types.d.ts +11 -0
- package/dist/components/recipes/annotationLayout.d.ts +29 -0
- package/dist/components/recipes/axisFixedForce.d.ts +119 -0
- package/dist/components/recipes/{gofishBoba.d.ts → boba.d.ts} +2 -2
- package/dist/components/recipes/cyclical.d.ts +39 -0
- package/dist/components/recipes/edgeRouter.d.ts +103 -0
- package/dist/components/recipes/forceLayout.d.ts +48 -0
- package/dist/components/recipes/forceLayoutAsync.d.ts +17 -0
- package/dist/components/recipes/gofishBobaHandwritten.d.ts +3 -0
- package/dist/components/recipes/gofishDisplayListFixtures.generated.d.ts +37 -0
- package/dist/components/recipes/gofishIR.d.ts +178 -132
- package/dist/components/recipes/gofishIRExamples.d.ts +30 -81
- package/dist/components/recipes/intervalLanes.d.ts +87 -0
- package/dist/components/recipes/intervals.d.ts +80 -0
- package/dist/components/recipes/isometricLandmarks.d.ts +88 -0
- package/dist/components/recipes/isotypeGlyphs.d.ts +17 -0
- package/dist/components/recipes/mobileAnnotationStrategy.d.ts +48 -0
- package/dist/components/recipes/mobileChartFamilyRecipes.d.ts +59 -0
- package/dist/components/recipes/networkAnalysis.d.ts +102 -0
- package/dist/components/recipes/networkLayouts.d.ts +83 -0
- package/dist/components/recipes/physics.d.ts +122 -0
- package/dist/components/recipes/physicsReference.d.ts +102 -0
- package/dist/components/recipes/processAggregates.d.ts +32 -0
- package/dist/components/recipes/processChrome.d.ts +67 -0
- package/dist/components/recipes/processJourney.d.ts +54 -0
- package/dist/components/recipes/processPhysics.d.ts +300 -0
- package/dist/components/recipes/processVolumeGeometry.d.ts +28 -0
- package/dist/components/recipes/radialCoords.d.ts +69 -0
- package/dist/components/recipes/random.d.ts +2 -0
- package/dist/components/recipes/recipeChrome.d.ts +91 -0
- package/dist/components/recipes/recipeGlyph.d.ts +42 -0
- package/dist/components/recipes/recipeLegend.d.ts +53 -1
- package/dist/components/recipes/recipeUtils.d.ts +52 -0
- package/dist/components/recipes/runs.d.ts +59 -0
- package/dist/components/recipes/tokenEncoding.d.ts +157 -0
- package/dist/components/recipes/tokenLayer.d.ts +79 -0
- package/dist/components/recipes/unitize.d.ts +108 -0
- package/dist/components/recipes/vector.d.ts +28 -0
- package/dist/components/recipes/waffle.d.ts +43 -0
- package/dist/components/semiotic-ai-core.d.ts +47 -0
- package/dist/components/semiotic-ai.d.ts +50 -8
- package/dist/components/semiotic-controls.d.ts +18 -0
- package/dist/components/semiotic-experimental.d.ts +38 -9
- package/dist/components/semiotic-geo.d.ts +11 -0
- package/dist/components/semiotic-network.d.ts +11 -0
- package/dist/components/semiotic-ordinal.d.ts +8 -0
- package/dist/components/semiotic-physics-matter.d.ts +10 -0
- package/dist/components/semiotic-physics-rapier.d.ts +9 -0
- package/dist/components/semiotic-physics.d.ts +56 -0
- package/dist/components/semiotic-realtime-core.d.ts +34 -0
- package/dist/components/semiotic-realtime-react.d.ts +10 -0
- package/dist/components/semiotic-realtime.d.ts +4 -30
- package/dist/components/semiotic-recipes-core.d.ts +92 -0
- package/dist/components/semiotic-recipes-react.d.ts +7 -0
- package/dist/components/semiotic-recipes.d.ts +4 -43
- package/dist/components/semiotic-server-edge.d.ts +8 -0
- package/dist/components/semiotic-server-node.d.ts +5 -0
- package/dist/components/semiotic-server.d.ts +2 -2
- package/dist/components/semiotic-themes-core.d.ts +53 -0
- package/dist/components/semiotic-themes-react.d.ts +4 -0
- package/dist/components/semiotic-themes.d.ts +6 -76
- package/dist/components/semiotic-utils-core.d.ts +46 -0
- package/dist/components/semiotic-utils-react.d.ts +5 -0
- package/dist/components/semiotic-utils.d.ts +3 -39
- package/dist/components/semiotic-xy.d.ts +8 -0
- package/dist/components/semiotic.d.ts +35 -7
- package/dist/components/server/animatedGif.d.ts +36 -0
- package/dist/components/server/renderEvidence.d.ts +1 -1
- package/dist/components/server/renderToStaticSVG.d.ts +3 -35
- package/dist/components/server/serverChartConfigShared.d.ts +17 -0
- package/dist/components/server/serverChartConfigs.d.ts +19 -9
- package/dist/components/server/serverChartConfigsCustom.d.ts +5 -0
- package/dist/components/server/serverChartConfigsGeo.d.ts +9 -0
- package/dist/components/server/serverChartConfigsNetwork.d.ts +8 -0
- package/dist/components/server/serverChartConfigsOrdinal.d.ts +16 -0
- package/dist/components/server/serverChartConfigsPhysics.d.ts +9 -0
- package/dist/components/server/serverChartConfigsXY.d.ts +11 -0
- package/dist/components/server/staticGeo.d.ts +4 -0
- package/dist/components/server/staticLegend.d.ts +1 -1
- package/dist/components/server/staticNetwork.d.ts +8 -0
- package/dist/components/server/staticOrdinal.d.ts +11 -0
- package/dist/components/server/staticPhysics.d.ts +3 -0
- package/dist/components/server/staticSVGChrome.d.ts +110 -0
- package/dist/components/server/staticXY.d.ts +4 -0
- package/dist/components/store/ObservationStore.d.ts +3 -2
- package/dist/components/store/themeSerialization.d.ts +32 -0
- package/dist/components/store/useChartInterrogation.d.ts +9 -0
- package/dist/components/stream/AccessibleDataTable.d.ts +3 -13
- package/dist/components/stream/FocusRing.d.ts +4 -2
- package/dist/components/stream/GeoCanvasHitTester.d.ts +1 -1
- package/dist/components/stream/GeoPipelineStore.d.ts +28 -0
- package/dist/components/stream/NetworkPipelineStore.d.ts +31 -26
- package/dist/components/stream/NetworkSVGOverlay.d.ts +4 -1
- package/dist/components/stream/OrdinalPipelineStore.d.ts +46 -2
- package/dist/components/stream/PipelineStore.d.ts +81 -170
- package/dist/components/stream/SceneGraph.d.ts +9 -1
- package/dist/components/stream/StreamGeoFrame.d.ts +1 -1
- package/dist/components/stream/StreamNetworkFrame.d.ts +1 -1
- package/dist/components/stream/StreamOrdinalFrame.d.ts +1 -1
- package/dist/components/stream/StreamXYFrame.d.ts +2 -18
- package/dist/components/stream/accessibleDataRows.d.ts +33 -0
- package/dist/components/stream/accessorUtils.d.ts +23 -10
- package/dist/components/stream/brushAccessibility.d.ts +25 -0
- package/dist/components/stream/canvasBackground.d.ts +24 -0
- package/dist/components/stream/canvasSetup.d.ts +4 -1
- package/dist/components/stream/customLayoutFailure.d.ts +33 -0
- package/dist/components/stream/customLayoutPalette.d.ts +19 -9
- package/dist/components/stream/frameThemeColors.d.ts +24 -0
- package/dist/components/stream/geoAnnotationAnchors.d.ts +14 -0
- package/dist/components/stream/geoCartogram.d.ts +17 -0
- package/dist/components/stream/geoCustomLayout.d.ts +59 -0
- package/dist/components/stream/geoDefaultTooltip.d.ts +11 -0
- package/dist/components/stream/geoFrameHelpers.d.ts +34 -0
- package/dist/components/stream/geoPipelineHelpers.d.ts +46 -0
- package/dist/components/stream/geoTypes.d.ts +56 -7
- package/dist/components/stream/glyphDef.d.ts +98 -0
- package/dist/components/stream/hitTarget.d.ts +170 -0
- package/dist/components/stream/hoverUtils.d.ts +3 -0
- package/dist/components/stream/keyboardNav.d.ts +4 -1
- package/dist/components/stream/layouts/forceLayoutPlugin.d.ts +9 -1
- package/dist/components/stream/layouts/forceLayoutWorkerClient.d.ts +57 -0
- package/dist/components/stream/networkBezier.d.ts +10 -0
- package/dist/components/stream/networkColorAccessors.d.ts +49 -0
- package/dist/components/stream/networkDefaultTooltip.d.ts +10 -0
- package/dist/components/stream/networkFrameInteraction.d.ts +37 -0
- package/dist/components/stream/networkFramePaint.d.ts +43 -0
- package/dist/components/stream/networkPipelineConfig.d.ts +22 -0
- package/dist/components/stream/networkPipelineHelpers.d.ts +12 -0
- package/dist/components/stream/networkRealtimeEncoding.d.ts +41 -0
- package/dist/components/stream/networkTypes.d.ts +76 -5
- package/dist/components/stream/ordinalCanvasRenderers.d.ts +7 -0
- package/dist/components/stream/ordinalDataIndex.d.ts +5 -0
- package/dist/components/stream/ordinalDefaultTooltip.d.ts +10 -0
- package/dist/components/stream/ordinalDomain.d.ts +38 -0
- package/dist/components/stream/ordinalPipelineUpdateResults.d.ts +12 -0
- package/dist/components/stream/ordinalPulse.d.ts +10 -0
- package/dist/components/stream/ordinalPulseResources.d.ts +3 -0
- package/dist/components/stream/ordinalSceneBuilders/sceneBuilderMap.d.ts +5 -0
- package/dist/components/stream/ordinalSpatialIndex.d.ts +9 -0
- package/dist/components/stream/ordinalTypes.d.ts +40 -8
- package/dist/components/stream/paintNeeds.d.ts +31 -0
- package/dist/components/stream/physics/CapacityQueueController.d.ts +5 -0
- package/dist/components/stream/physics/CapacityQueueTypes.d.ts +134 -0
- package/dist/components/stream/physics/MatterPhysicsEngineAdapter.d.ts +42 -0
- package/dist/components/stream/physics/PhysicsAccessibility.d.ts +48 -0
- package/dist/components/stream/physics/PhysicsAnnotations.d.ts +58 -0
- package/dist/components/stream/physics/PhysicsBodyBudget.d.ts +26 -0
- package/dist/components/stream/physics/PhysicsBodySpatialIndex.d.ts +10 -0
- package/dist/components/stream/physics/PhysicsCanvasTheme.d.ts +26 -0
- package/dist/components/stream/physics/PhysicsControllers.d.ts +75 -0
- package/dist/components/stream/physics/PhysicsEngineAdapter.d.ts +59 -0
- package/dist/components/stream/physics/PhysicsEngineConformance.d.ts +23 -0
- package/dist/components/stream/physics/PhysicsEvidence.d.ts +25 -0
- package/dist/components/stream/physics/PhysicsKernel.d.ts +207 -0
- package/dist/components/stream/physics/PhysicsOptionalEngineAdapters.d.ts +12 -0
- package/dist/components/stream/physics/PhysicsPipelineStore.d.ts +84 -0
- package/dist/components/stream/physics/PhysicsPipelineTypes.d.ts +181 -0
- package/dist/components/stream/physics/PhysicsSVGOverlay.d.ts +72 -0
- package/dist/components/stream/physics/PhysicsSediment.d.ts +69 -0
- package/dist/components/stream/physics/PhysicsSettledSVG.d.ts +18 -0
- package/dist/components/stream/physics/PhysicsSettledScene.d.ts +21 -0
- package/dist/components/stream/physics/PhysicsWorkerClient.d.ts +24 -0
- package/dist/components/stream/physics/PhysicsWorkerProtocol.d.ts +101 -0
- package/dist/components/stream/physics/PhysicsWorkerRuntime.d.ts +5 -0
- package/dist/components/stream/physics/RapierPhysicsEngineAdapter.d.ts +18 -0
- package/dist/components/stream/physics/ServiceOperationsControllers.d.ts +27 -0
- package/dist/components/stream/physics/ServiceOperationsTypes.d.ts +89 -0
- package/dist/components/stream/physics/StreamPhysicsFrame.d.ts +6 -0
- package/dist/components/stream/physics/StreamPhysicsTypes.d.ts +302 -0
- package/dist/components/stream/physics/physicsBodyCanvas.d.ts +27 -0
- package/dist/components/stream/physics/physicsPipelineControls.d.ts +4 -0
- package/dist/components/stream/physics/physicsPipelineHelpers.d.ts +41 -0
- package/dist/components/stream/physics/physicsPipelineObservations.d.ts +14 -0
- package/dist/components/stream/physics/physicsPipelineUpdateResults.d.ts +9 -0
- package/dist/components/stream/physics/physicsRegionRuntime.d.ts +54 -0
- package/dist/components/stream/physics/physicsSemanticUI.d.ts +20 -0
- package/dist/components/stream/physics/usePhysicsFrameLifecyclePolicy.d.ts +16 -0
- package/dist/components/stream/pipelineBufferUtils.d.ts +26 -0
- package/dist/components/stream/pipelineConfig.d.ts +177 -0
- package/dist/components/stream/pipelineDecay.d.ts +20 -2
- package/dist/components/stream/pipelineDomainResolution.d.ts +62 -0
- package/dist/components/stream/pipelineIdentityOps.d.ts +26 -0
- package/dist/components/stream/pipelinePulse.d.ts +16 -2
- package/dist/components/stream/pipelineRibbons.d.ts +41 -0
- package/dist/components/stream/pipelineSpatialIndex.d.ts +12 -0
- package/dist/components/stream/pipelineStoreUpdateResults.d.ts +12 -0
- package/dist/components/stream/pipelineStyleResolvers.d.ts +46 -0
- package/dist/components/stream/pipelineTransitions.d.ts +2 -0
- package/dist/components/stream/pipelineUpdateContract.d.ts +62 -0
- package/dist/components/stream/pulseFrameRefresh.d.ts +22 -0
- package/dist/components/stream/renderers/glyphCanvasRenderer.d.ts +6 -0
- package/dist/components/stream/renderers/resolveCSSColor.d.ts +6 -0
- package/dist/components/stream/sceneRevisionDiagnostics.d.ts +18 -0
- package/dist/components/stream/streamStoreSync.d.ts +37 -0
- package/dist/components/stream/types.d.ts +135 -7
- package/dist/components/stream/useFrame.d.ts +21 -2
- package/dist/components/stream/useHydration.d.ts +6 -0
- package/dist/components/stream/useLegendCategoryEmission.d.ts +5 -0
- package/dist/components/stream/workerModuleUrl.d.ts +10 -0
- package/dist/components/stream/xyAnnotationAnchors.d.ts +13 -0
- package/dist/components/stream/xyCanvasRenderers.d.ts +7 -0
- package/dist/components/stream/xyCrosshair.d.ts +11 -0
- package/dist/components/stream/xyDateTicks.d.ts +9 -0
- package/dist/components/stream/xyDefaultTooltip.d.ts +10 -0
- package/dist/components/stream/xySceneBuilders/types.d.ts +4 -4
- package/dist/controls.min.js +2 -0
- package/dist/controls.module.min.js +2 -0
- package/dist/forceLayoutWorker.js +1 -0
- package/dist/geo.min.js +1 -1
- package/dist/geo.module.min.js +1 -1
- package/dist/network.min.js +1 -1
- package/dist/network.module.min.js +1 -1
- package/dist/ordinal.min.js +1 -1
- package/dist/ordinal.module.min.js +1 -1
- package/dist/physics-matter.min.js +1 -0
- package/dist/physics-matter.module.min.js +1 -0
- package/dist/physics-rapier.min.js +1 -0
- package/dist/physics-rapier.module.min.js +1 -0
- package/dist/physics.min.js +2 -0
- package/dist/physics.module.min.js +2 -0
- package/dist/physicsWorker.js +1 -0
- package/dist/realtime.min.js +1 -1
- package/dist/realtime.module.min.js +1 -1
- package/dist/semiotic-ai-chunk-OG7BQUUW.module.min.js +2 -0
- package/dist/semiotic-ai-core.d.ts +47 -0
- package/dist/semiotic-ai-core.min.js +1 -0
- package/dist/semiotic-ai-core.module.min.js +1 -0
- package/dist/semiotic-ai-statisticalOverlays-CY4WKR4A.module.min.js +2 -0
- package/dist/semiotic-ai.d.ts +50 -8
- package/dist/semiotic-ai.min.js +1 -1
- package/dist/semiotic-ai.module.min.js +1 -1
- package/dist/semiotic-chunk-3FSVZ46U.module.min.js +2 -0
- package/dist/semiotic-controls.d.ts +18 -0
- package/dist/semiotic-data.min.js +1 -1
- package/dist/semiotic-data.module.min.js +1 -1
- package/dist/semiotic-experimental.d.ts +38 -9
- package/dist/semiotic-experimental.min.js +1 -1
- package/dist/semiotic-experimental.module.min.js +1 -1
- package/dist/semiotic-geo.d.ts +11 -0
- package/dist/semiotic-network.d.ts +11 -0
- package/dist/semiotic-ordinal.d.ts +8 -0
- package/dist/semiotic-physics-matter.d.ts +10 -0
- package/dist/semiotic-physics-rapier.d.ts +9 -0
- package/dist/semiotic-physics.d.ts +56 -0
- package/dist/semiotic-realtime-core.d.ts +34 -0
- package/dist/semiotic-realtime-core.min.js +1 -0
- package/dist/semiotic-realtime-core.module.min.js +1 -0
- package/dist/semiotic-realtime-react.d.ts +10 -0
- package/dist/semiotic-realtime-react.min.js +2 -0
- package/dist/semiotic-realtime-react.module.min.js +2 -0
- package/dist/semiotic-realtime.d.ts +4 -30
- package/dist/semiotic-recipes-core.d.ts +92 -0
- package/dist/semiotic-recipes-core.min.js +1 -0
- package/dist/semiotic-recipes-core.module.min.js +1 -0
- package/dist/semiotic-recipes-react.d.ts +7 -0
- package/dist/semiotic-recipes-react.min.js +2 -0
- package/dist/semiotic-recipes-react.module.min.js +2 -0
- package/dist/semiotic-recipes.d.ts +4 -43
- package/dist/semiotic-recipes.min.js +1 -1
- package/dist/semiotic-recipes.module.min.js +1 -1
- package/dist/semiotic-server-edge.d.ts +8 -0
- package/dist/semiotic-server-edge.min.js +1 -0
- package/dist/semiotic-server-edge.module.min.js +1 -0
- package/dist/semiotic-server-node.d.ts +5 -0
- package/dist/semiotic-server-node.min.js +1 -0
- package/dist/semiotic-server-node.module.min.js +1 -0
- package/dist/semiotic-server.d.ts +2 -2
- package/dist/semiotic-statisticalOverlays-UOMSFKVJ.module.min.js +2 -0
- package/dist/semiotic-themes-core.d.ts +53 -0
- package/dist/semiotic-themes-core.min.js +1 -0
- package/dist/semiotic-themes-core.module.min.js +1 -0
- package/dist/semiotic-themes-react.d.ts +4 -0
- package/dist/semiotic-themes-react.min.js +2 -0
- package/dist/semiotic-themes-react.module.min.js +2 -0
- package/dist/semiotic-themes.d.ts +6 -76
- package/dist/semiotic-themes.min.js +1 -2
- package/dist/semiotic-themes.module.min.js +1 -2
- package/dist/semiotic-utils-core.d.ts +46 -0
- package/dist/semiotic-utils-core.min.js +1 -0
- package/dist/semiotic-utils-core.module.min.js +1 -0
- package/dist/semiotic-utils-react.d.ts +5 -0
- package/dist/semiotic-utils-react.min.js +2 -0
- package/dist/semiotic-utils-react.module.min.js +2 -0
- package/dist/semiotic-utils.d.ts +3 -39
- package/dist/semiotic-utils.min.js +1 -2
- package/dist/semiotic-utils.module.min.js +1 -2
- package/dist/semiotic-value.min.js +1 -1
- package/dist/semiotic-value.module.min.js +1 -1
- package/dist/semiotic-xy.d.ts +8 -0
- package/dist/semiotic.d.ts +35 -7
- package/dist/semiotic.min.js +1 -1
- package/dist/semiotic.module.min.js +1 -1
- package/dist/server.min.js +1 -1
- package/dist/server.module.min.js +1 -1
- package/dist/xy-chunk-IWD6IB6V.module.min.js +2 -0
- package/dist/xy-statisticalOverlays-7RWG6LJT.module.min.js +2 -0
- package/dist/xy.min.js +1 -1
- package/dist/xy.module.min.js +1 -1
- package/package.json +239 -87
- package/spec/README.md +152 -0
- package/spec/bindings/README.md +35 -0
- package/spec/bindings/vega-lite.mjs +112 -0
- package/spec/v0.1/annotation-provenance.schema.json +127 -0
- package/spec/v0.1/audience-profile.schema.json +67 -0
- package/spec/v0.1/chart-capability.schema.json +186 -0
- package/dist/components/recipes/gofish.d.ts +0 -207
- package/dist/components/recipes/gofishInterpreter.d.ts +0 -52
- package/dist/components/recipes/gofishLambdas.d.ts +0 -145
- package/dist/semiotic-ai-semiotic-ai-u954ylUn.js +0 -2
- package/dist/semiotic-ai-statisticalOverlays-CU7jW05Q.js +0 -1
- package/dist/semiotic-semiotic-BmrYbi99.js +0 -2
- package/dist/semiotic-statisticalOverlays-IjZw8Lsu.js +0 -1
- package/dist/xy-semiotic-xy-Dufu3D0-.js +0 -2
- package/dist/xy-statisticalOverlays-3Ni9bRph.js +0 -1
|
@@ -1,16 +1,11 @@
|
|
|
1
1
|
import type { Datum } from "./datumTypes";
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
}
|
|
12
|
-
/** WCAG contrast ratio between two hex colors. Exported for reuse by the
|
|
13
|
-
* accessibility audit (auditAccessibility.ts) — single source of truth for the
|
|
14
|
-
* contrast math. Returns null if either color isn't a parseable hex. */
|
|
15
|
-
export declare function contrastRatio(hex1: string, hex2: string): number | null;
|
|
2
|
+
import type { DiagnosisResult } from "./diagnoseTypes";
|
|
3
|
+
export { contrastRatio } from "./colorContrast";
|
|
4
|
+
export type { Diagnosis, DiagnosisResult } from "./diagnoseTypes";
|
|
5
|
+
/**
|
|
6
|
+
* Run anti-pattern diagnostics on a Semiotic chart configuration.
|
|
7
|
+
*
|
|
8
|
+
* Returns actionable diagnoses with severity, code, message, and fix instruction.
|
|
9
|
+
* Runs validateProps internally — validation errors are included as diagnoses.
|
|
10
|
+
*/
|
|
16
11
|
export declare function diagnoseConfig(componentName: string, props: Datum): DiagnosisResult;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { Datum } from "./datumTypes";
|
|
2
|
+
import type { Diagnosis } from "./diagnoseTypes";
|
|
3
|
+
export declare function checkInvertedAxis(_component: string, props: Datum, out: Diagnosis[]): void;
|
|
4
|
+
export declare function checkDualAxisUnlabeled(component: string, props: Datum, out: Diagnosis[]): void;
|
|
5
|
+
export declare function checkCherryPickedWindow(component: string, props: Datum, out: Diagnosis[]): void;
|
|
6
|
+
export declare function checkPartToWholeNegative(component: string, props: Datum, out: Diagnosis[]): void;
|
|
7
|
+
export declare function checkNonPassingCurve(component: string, props: Datum, out: Diagnosis[]): void;
|
|
8
|
+
export declare function checkExtremeAspectRatio(component: string, props: Datum, out: Diagnosis[]): void;
|
|
9
|
+
export declare function checkPieTooManySlices(component: string, props: Datum, out: Diagnosis[]): void;
|
|
@@ -1,14 +1,25 @@
|
|
|
1
1
|
import { createLegend } from "./legendUtils";
|
|
2
2
|
import type { SelectionHookResult } from "./selectionUtils";
|
|
3
3
|
import type { OnObservationCallback } from "../../store/ObservationStore";
|
|
4
|
-
import type { Accessor, SelectionConfig, LinkedHoverProp, ChartMode, HoverHighlightMode } from "./types";
|
|
4
|
+
import type { Accessor, SelectionConfig, LinkedHoverProp, ChartMode, HoverHighlightMode, MobileInteractionProp, ResolvedMobileInteractionConfig } from "./types";
|
|
5
5
|
import type { MarginType, PartialMargin } from "../../types/marginType";
|
|
6
6
|
import type { TransitionConfig } from "../../stream/types";
|
|
7
7
|
import type { Datum } from "./datumTypes";
|
|
8
|
+
import type { MobileVisualizationContract } from "./auditMobileVisualization";
|
|
9
|
+
import type { ResponsiveRule } from "./responsiveRules";
|
|
8
10
|
/**
|
|
9
11
|
* Default fill color used when no colorBy is specified
|
|
10
12
|
*/
|
|
11
13
|
export declare const DEFAULT_COLOR = "#007bff";
|
|
14
|
+
export declare const MOBILE_INTERACTION_TARGET_SIZE = 44;
|
|
15
|
+
export declare const MOBILE_INTERACTION_MIN_HIT_RADIUS = 24;
|
|
16
|
+
export declare const MOBILE_INTERACTION_DEFAULTS: ResolvedMobileInteractionConfig;
|
|
17
|
+
export declare const DISABLED_MOBILE_INTERACTION: ResolvedMobileInteractionConfig;
|
|
18
|
+
export declare function resolveMobileInteraction(input: MobileInteractionProp | undefined, context?: {
|
|
19
|
+
mode?: ChartMode;
|
|
20
|
+
width?: number;
|
|
21
|
+
mobileSemantics?: MobileVisualizationContract;
|
|
22
|
+
}): ResolvedMobileInteractionConfig;
|
|
12
23
|
/**
|
|
13
24
|
* Returns the theme's categorical palette, or undefined if no ThemeProvider or
|
|
14
25
|
* the palette is empty. Safe to call outside a ThemeProvider (returns undefined).
|
|
@@ -30,7 +41,7 @@ export declare function useThemeDiverging(): string | undefined;
|
|
|
30
41
|
* Priority: color prop > theme categorical > colorScheme > DEFAULT_COLOR.
|
|
31
42
|
* When a palette is available, cycles through colors by category name.
|
|
32
43
|
*/
|
|
33
|
-
export declare function resolveDefaultFill(color: string | undefined, themeCategorical: string[] | undefined, colorScheme: string | string[] | undefined, category: string | undefined, categoryIndexMap: Map<string, number>): string;
|
|
44
|
+
export declare function resolveDefaultFill(color: string | undefined, themeCategorical: string[] | undefined, colorScheme: string | string[] | Record<string, string> | undefined, category: string | undefined, categoryIndexMap: Map<string, number>): string;
|
|
34
45
|
/**
|
|
35
46
|
* Resolve an accessor (string key or function) into a function.
|
|
36
47
|
* Used across chart components to normalize `valueAccessor`, `categoryAccessor`, etc.
|
|
@@ -41,7 +52,7 @@ export declare function resolveAccessor<T = any>(accessor: string | ((d: Datum,
|
|
|
41
52
|
* Returns undefined when colorBy is absent or data is empty (push API mode).
|
|
42
53
|
* Supports both string and function accessors for colorBy.
|
|
43
54
|
*/
|
|
44
|
-
export declare function useColorScale(data: Array<Datum>, colorBy: string | ((d: any, i?: number) => any) | undefined, colorScheme?: string | string[]): ((v: string) => string) | undefined;
|
|
55
|
+
export declare function useColorScale(data: Array<Datum>, colorBy: string | ((d: any, i?: number) => any) | undefined, colorScheme?: string | string[] | Record<string, string>): ((v: string) => string) | undefined;
|
|
45
56
|
/**
|
|
46
57
|
* Hook to sort data by a value accessor.
|
|
47
58
|
* Used by BarChart and DotPlot.
|
|
@@ -64,7 +75,7 @@ export declare function useSortedData(data: Array<Datum>, sort: boolean | "asc"
|
|
|
64
75
|
* @param unwrapData - Deprecated / no-op. Hover data is always unwrapped
|
|
65
76
|
* (stream frames wrap the raw datum in { data, time, value, x, y }).
|
|
66
77
|
*/
|
|
67
|
-
export declare function useChartSelection({ selection, linkedHover, fallbackFields, unwrapData: _unwrapData, onObservation, chartType, chartId, onClick, hoverHighlight, colorByField, }: {
|
|
78
|
+
export declare function useChartSelection({ selection, linkedHover, fallbackFields, unwrapData: _unwrapData, onObservation, chartType, chartId, onClick, hoverHighlight, colorByField, mobileInteraction, }: {
|
|
68
79
|
selection?: SelectionConfig;
|
|
69
80
|
linkedHover?: LinkedHoverProp;
|
|
70
81
|
fallbackFields?: string[];
|
|
@@ -78,6 +89,7 @@ export declare function useChartSelection({ selection, linkedHover, fallbackFiel
|
|
|
78
89
|
}) => void;
|
|
79
90
|
hoverHighlight?: HoverHighlightMode;
|
|
80
91
|
colorByField?: string;
|
|
92
|
+
mobileInteraction?: ResolvedMobileInteractionConfig;
|
|
81
93
|
}): {
|
|
82
94
|
activeSelectionHook: SelectionHookResult | null;
|
|
83
95
|
hoverSelectionHook: SelectionHookResult | null;
|
|
@@ -161,8 +173,15 @@ interface ChartModeInput {
|
|
|
161
173
|
valueLabel?: string;
|
|
162
174
|
/** When truthy, enableHover is forced true regardless of mode (LinkedCharts needs hover) */
|
|
163
175
|
linkedHover?: any;
|
|
176
|
+
/** Optional mobile interaction policy surfaced through useChartMode for custom wrappers. */
|
|
177
|
+
mobileInteraction?: MobileInteractionProp;
|
|
178
|
+
/** Optional mobile semantic contract surfaced through useChartMode for custom wrappers. */
|
|
179
|
+
mobileSemantics?: MobileVisualizationContract;
|
|
180
|
+
/** Semantic responsive transformations resolved before mode defaults. */
|
|
181
|
+
responsiveRules?: ResponsiveRule[];
|
|
164
182
|
}
|
|
165
|
-
|
|
183
|
+
/** Result of {@link useChartMode} — exported so declaration emit can name it. */
|
|
184
|
+
export interface ChartModeResult {
|
|
166
185
|
width: number;
|
|
167
186
|
height: number;
|
|
168
187
|
showAxes: boolean;
|
|
@@ -186,6 +205,10 @@ interface ChartModeResult {
|
|
|
186
205
|
};
|
|
187
206
|
/** True when mode is context or sparkline — the "hide interactive chrome" union. */
|
|
188
207
|
compactMode: boolean;
|
|
208
|
+
/** Resolved touch-first behavior for mobile-capable wrappers. */
|
|
209
|
+
mobileInteraction: ResolvedMobileInteractionConfig;
|
|
210
|
+
/** Mobile semantic contract after matching responsive rules are applied. */
|
|
211
|
+
mobileSemantics: MobileVisualizationContract | undefined;
|
|
189
212
|
}
|
|
190
213
|
/**
|
|
191
214
|
* Resolve chart display mode into concrete prop defaults.
|
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
import type { Datum } from "./datumTypes";
|
|
2
|
+
import { type LifecycleBand, type LifecycleBandThresholds } from "../../realtime/lifecycleBands";
|
|
3
|
+
/** Explicit literal wrapper for channels whose values could be field names. */
|
|
4
|
+
export interface MotionEncodingConstant<TValue> {
|
|
5
|
+
constant: TValue;
|
|
6
|
+
}
|
|
7
|
+
/** A motion channel can read a field, calculate a value, or use a constant. */
|
|
8
|
+
export type MotionEncodingAccessor<TDatum, TValue> = keyof TDatum | ((datum: TDatum, index: number) => TValue) | MotionEncodingConstant<TValue>;
|
|
9
|
+
/** The clock that gives an arrival or age value meaning. */
|
|
10
|
+
export type MotionTimeBasis = "event" | "ingest" | "simulation" | "presentation" | "buffer-index";
|
|
11
|
+
/** Motion helpers do not convert units; related values must use the same unit. */
|
|
12
|
+
export type MotionTimeUnit = "milliseconds" | "seconds" | "frames" | "index";
|
|
13
|
+
/** Coordinate system in which placement or velocity values are expressed. */
|
|
14
|
+
export type MotionCoordinateSpace = "data" | "world" | "screen";
|
|
15
|
+
export interface MotionTimeEncoding<TDatum> {
|
|
16
|
+
/** Time at which the datum enters the represented system. */
|
|
17
|
+
arrival?: MotionEncodingAccessor<TDatum, number>;
|
|
18
|
+
basis?: MotionTimeBasis;
|
|
19
|
+
unit?: MotionTimeUnit;
|
|
20
|
+
}
|
|
21
|
+
export interface MotionPlacementEncoding<TDatum> {
|
|
22
|
+
x?: MotionEncodingAccessor<TDatum, number>;
|
|
23
|
+
y?: MotionEncodingAccessor<TDatum, number>;
|
|
24
|
+
lane?: MotionEncodingAccessor<TDatum, string | number>;
|
|
25
|
+
space?: MotionCoordinateSpace;
|
|
26
|
+
}
|
|
27
|
+
export interface MotionKinematicsEncoding<TDatum> {
|
|
28
|
+
velocityX?: MotionEncodingAccessor<TDatum, number>;
|
|
29
|
+
velocityY?: MotionEncodingAccessor<TDatum, number>;
|
|
30
|
+
space?: MotionCoordinateSpace;
|
|
31
|
+
}
|
|
32
|
+
export interface MotionProcessEncoding<TDatum> {
|
|
33
|
+
group?: MotionEncodingAccessor<TDatum, string | number>;
|
|
34
|
+
stage?: MotionEncodingAccessor<TDatum, string | number>;
|
|
35
|
+
target?: MotionEncodingAccessor<TDatum, string | number>;
|
|
36
|
+
work?: MotionEncodingAccessor<TDatum, number>;
|
|
37
|
+
}
|
|
38
|
+
export interface MotionAccessibleEncoding<TDatum> {
|
|
39
|
+
description?: MotionEncodingAccessor<TDatum, string>;
|
|
40
|
+
group?: MotionEncodingAccessor<TDatum, string>;
|
|
41
|
+
label?: MotionEncodingAccessor<TDatum, string>;
|
|
42
|
+
}
|
|
43
|
+
/** Runtime-neutral motion channels shared by streaming and physics adapters. */
|
|
44
|
+
export interface MotionEncoding<TDatum extends Datum = Datum> {
|
|
45
|
+
id: MotionEncodingAccessor<TDatum, string | number>;
|
|
46
|
+
time?: MotionTimeEncoding<TDatum>;
|
|
47
|
+
placement?: MotionPlacementEncoding<TDatum>;
|
|
48
|
+
kinematics?: MotionKinematicsEncoding<TDatum>;
|
|
49
|
+
process?: MotionProcessEncoding<TDatum>;
|
|
50
|
+
evidence?: Record<string, MotionEncodingAccessor<TDatum, unknown>>;
|
|
51
|
+
accessible?: MotionAccessibleEncoding<TDatum>;
|
|
52
|
+
}
|
|
53
|
+
export interface ResolvedMotionEncodingRow<TDatum extends Datum = Datum> {
|
|
54
|
+
id: string;
|
|
55
|
+
datum: TDatum;
|
|
56
|
+
time: {
|
|
57
|
+
arrival?: number;
|
|
58
|
+
basis?: MotionTimeBasis;
|
|
59
|
+
unit?: MotionTimeUnit;
|
|
60
|
+
};
|
|
61
|
+
placement: {
|
|
62
|
+
x?: number;
|
|
63
|
+
y?: number;
|
|
64
|
+
lane?: string | number;
|
|
65
|
+
space?: MotionCoordinateSpace;
|
|
66
|
+
};
|
|
67
|
+
kinematics: {
|
|
68
|
+
velocityX?: number;
|
|
69
|
+
velocityY?: number;
|
|
70
|
+
space?: MotionCoordinateSpace;
|
|
71
|
+
};
|
|
72
|
+
process: {
|
|
73
|
+
group?: string | number;
|
|
74
|
+
stage?: string | number;
|
|
75
|
+
target?: string | number;
|
|
76
|
+
work?: number;
|
|
77
|
+
};
|
|
78
|
+
evidence: Record<string, unknown>;
|
|
79
|
+
accessible: {
|
|
80
|
+
description?: string;
|
|
81
|
+
group?: string;
|
|
82
|
+
label: string;
|
|
83
|
+
};
|
|
84
|
+
}
|
|
85
|
+
export interface MotionEncodingCompilation<TDatum extends Datum = Datum> {
|
|
86
|
+
rows: ResolvedMotionEncodingRow<TDatum>[];
|
|
87
|
+
byId: Map<string, ResolvedMotionEncodingRow<TDatum>>;
|
|
88
|
+
}
|
|
89
|
+
export interface CompileMotionEncodingOptions<TDatum extends Datum = Datum> {
|
|
90
|
+
data: readonly TDatum[];
|
|
91
|
+
encoding: MotionEncoding<TDatum>;
|
|
92
|
+
}
|
|
93
|
+
/** Resolve one encoding accessor without attaching it to a specific runtime. */
|
|
94
|
+
export declare function resolveMotionAccessor<TDatum, TValue>(accessor: MotionEncodingAccessor<TDatum, TValue> | undefined, datum: TDatum, index: number): TValue | undefined;
|
|
95
|
+
/** Resolve runtime-neutral motion channels once while preserving source data. */
|
|
96
|
+
export declare function compileMotionEncoding<TDatum extends Datum = Datum>(options: CompileMotionEncodingOptions<TDatum>): MotionEncodingCompilation<TDatum>;
|
|
97
|
+
export interface ResolveMotionAgeOptions {
|
|
98
|
+
now: number;
|
|
99
|
+
arrival: number;
|
|
100
|
+
/** Uses the same unit as now and arrival. */
|
|
101
|
+
ttl: number;
|
|
102
|
+
thresholds?: LifecycleBandThresholds;
|
|
103
|
+
}
|
|
104
|
+
export interface ResolvedMotionAge {
|
|
105
|
+
age: number;
|
|
106
|
+
/** Unbounded age / ttl ratio. Negative and invalid ages resolve to zero. */
|
|
107
|
+
progress: number;
|
|
108
|
+
lifecycle: LifecycleBand;
|
|
109
|
+
}
|
|
110
|
+
/**
|
|
111
|
+
* Derive age, its unbounded ttl progress, and its named lifecycle band from
|
|
112
|
+
* values on a common clock — the one-call helper for authoring custom
|
|
113
|
+
* age-based encodings (see the Motion Encodings guide, which drives an "age +
|
|
114
|
+
* lifecycle" table from it). For band-only or ramp-only needs, reach for
|
|
115
|
+
* `bandFromAge` / `opacityFromAge` directly.
|
|
116
|
+
*/
|
|
117
|
+
export declare function resolveMotionAge(options: ResolveMotionAgeOptions): ResolvedMotionAge;
|
|
118
|
+
export type MotionAgeOpacityType = "linear" | "exponential" | "step";
|
|
119
|
+
export interface MotionAgeOpacityOptions {
|
|
120
|
+
/** Age where zero is newest. */
|
|
121
|
+
age: number;
|
|
122
|
+
/** Oldest meaningful age in the same unit. */
|
|
123
|
+
extent: number;
|
|
124
|
+
type: MotionAgeOpacityType;
|
|
125
|
+
halfLife?: number;
|
|
126
|
+
threshold?: number;
|
|
127
|
+
minOpacity?: number;
|
|
128
|
+
}
|
|
129
|
+
/** Map an age to opacity without assuming wall, simulation, or index time. */
|
|
130
|
+
export declare function opacityFromAge(options: MotionAgeOpacityOptions): number;
|
|
131
|
+
export interface MotionPoint {
|
|
132
|
+
x: number;
|
|
133
|
+
y: number;
|
|
134
|
+
}
|
|
135
|
+
export interface ResolvedMotionVector {
|
|
136
|
+
velocityX: number;
|
|
137
|
+
velocityY: number;
|
|
138
|
+
speed: number;
|
|
139
|
+
/** atan2 angle in radians in the supplied coordinate space. */
|
|
140
|
+
direction: number;
|
|
141
|
+
}
|
|
142
|
+
/** Resolve cartesian velocity into speed and direction. */
|
|
143
|
+
export declare function resolveMotionVector(velocityX: number, velocityY: number): ResolvedMotionVector;
|
|
144
|
+
/** Derive velocity per elapsed unit between two positions. */
|
|
145
|
+
export declare function deriveMotionVector(previous: MotionPoint, current: MotionPoint, elapsed: number): ResolvedMotionVector;
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Responsive visualization rule grammar.
|
|
3
|
+
*
|
|
4
|
+
* This is deliberately chart-semantic, not CSS. A rule says "when this chart
|
|
5
|
+
* slot is narrow, transform the chart props this way" so agents, recipes,
|
|
6
|
+
* audits, and future HOC runtime wiring can reason about the mobile variant
|
|
7
|
+
* without executing a renderer.
|
|
8
|
+
*/
|
|
9
|
+
export type ResponsiveOrientation = "portrait" | "landscape";
|
|
10
|
+
export interface ResponsiveRuleCondition {
|
|
11
|
+
minWidth?: number;
|
|
12
|
+
maxWidth?: number;
|
|
13
|
+
minHeight?: number;
|
|
14
|
+
maxHeight?: number;
|
|
15
|
+
minAspectRatio?: number;
|
|
16
|
+
maxAspectRatio?: number;
|
|
17
|
+
orientation?: ResponsiveOrientation;
|
|
18
|
+
}
|
|
19
|
+
export interface ResponsiveRuleContext {
|
|
20
|
+
width: number;
|
|
21
|
+
height?: number;
|
|
22
|
+
}
|
|
23
|
+
export interface ResponsiveRule<TProps extends Record<string, unknown> = Record<string, unknown>> {
|
|
24
|
+
id?: string;
|
|
25
|
+
description?: string;
|
|
26
|
+
/**
|
|
27
|
+
* Viewport/container condition. All supplied predicates must match.
|
|
28
|
+
*/
|
|
29
|
+
when: ResponsiveRuleCondition;
|
|
30
|
+
/**
|
|
31
|
+
* Shallow prop transform to apply when the condition matches. Nested
|
|
32
|
+
* `margin`, `frameProps`, `mobileSemantics`, `style`, and `className` are
|
|
33
|
+
* merged by `resolveResponsiveRules`; other keys replace the base value.
|
|
34
|
+
*/
|
|
35
|
+
transform: Partial<TProps> & Record<string, unknown>;
|
|
36
|
+
/**
|
|
37
|
+
* Higher priority applies later and wins on conflicts. Defaults to source
|
|
38
|
+
* order when omitted.
|
|
39
|
+
*/
|
|
40
|
+
priority?: number;
|
|
41
|
+
}
|
|
42
|
+
export interface ResponsiveRuleMatch<TProps extends Record<string, unknown> = Record<string, unknown>> {
|
|
43
|
+
rule: ResponsiveRule<TProps>;
|
|
44
|
+
index: number;
|
|
45
|
+
}
|
|
46
|
+
export interface ResponsiveRuleResult<TProps extends Record<string, unknown> = Record<string, unknown>> {
|
|
47
|
+
props: TProps;
|
|
48
|
+
matches: ResponsiveRuleMatch<TProps>[];
|
|
49
|
+
}
|
|
50
|
+
export declare function responsiveRuleMatches(rule: ResponsiveRule, context: ResponsiveRuleContext): boolean;
|
|
51
|
+
/**
|
|
52
|
+
* Resolve matching responsive rules into a transformed prop object. Pure and
|
|
53
|
+
* SSR-safe. Runtime HOCs can call this with measured container dimensions;
|
|
54
|
+
* agents and audits can call it with target phone widths.
|
|
55
|
+
*/
|
|
56
|
+
export declare function resolveResponsiveRules<TProps extends Record<string, unknown>>(props: TProps, context: ResponsiveRuleContext, rules?: ReadonlyArray<ResponsiveRule<TProps>> | undefined): ResponsiveRuleResult<TProps>;
|
|
@@ -2,7 +2,7 @@ import type { ReactNode } from "react";
|
|
|
2
2
|
import type { Datum } from "./datumTypes";
|
|
3
3
|
import { type TooltipProp } from "../../Tooltip/Tooltip";
|
|
4
4
|
import type { HoverData } from "../../realtime/types";
|
|
5
|
-
import type { HoverHighlightMode, LinkedHoverProp, SelectionConfig } from "./types";
|
|
5
|
+
import type { HoverHighlightMode, LinkedHoverProp, SelectionConfig, ResolvedMobileInteractionConfig } from "./types";
|
|
6
6
|
import type { OnObservationCallback } from "../../store/ObservationStore";
|
|
7
7
|
import type { AnimateProp } from "../../stream/pipelineTransitionUtils";
|
|
8
8
|
import type { AutoPlaceAnnotations } from "../../recipes/annotationLayout";
|
|
@@ -65,20 +65,29 @@ export declare function buildBaseMetadataProps(input: BaseMetadataProps): BaseMe
|
|
|
65
65
|
* - `customClickBehavior` mirrors the click-driving subset
|
|
66
66
|
* (`onObservation`, `onClick`, `linkedHover` for cross-chart
|
|
67
67
|
* selection lock).
|
|
68
|
+
* - `forceHoverBehavior` / `forceClickBehavior` let composed or
|
|
69
|
+
* adapter charts (realtime, matrix cells, custom payload mappers)
|
|
70
|
+
* keep their chart-specific callback shape while sharing the same
|
|
71
|
+
* mobile predicates and touch-radius plumbing.
|
|
68
72
|
*
|
|
69
73
|
* Returning the props as a spreadable object means HOCs that don't
|
|
70
74
|
* need either get an empty merge that adds nothing.
|
|
71
75
|
*/
|
|
72
76
|
export declare function buildCustomBehaviorProps(input: {
|
|
73
77
|
linkedHover?: LinkedHoverProp;
|
|
78
|
+
selection?: SelectionConfig;
|
|
74
79
|
onObservation?: OnObservationCallback;
|
|
75
80
|
onClick?: ((datum: Datum, position: {
|
|
76
81
|
x: number;
|
|
77
82
|
y: number;
|
|
78
83
|
}) => void) | undefined;
|
|
84
|
+
hoverRadius?: number;
|
|
79
85
|
hoverHighlight?: HoverHighlightMode;
|
|
86
|
+
forceHoverBehavior?: boolean;
|
|
87
|
+
forceClickBehavior?: boolean;
|
|
88
|
+
mobileInteraction?: ResolvedMobileInteractionConfig;
|
|
80
89
|
customHoverBehavior: (d: Datum | null) => void;
|
|
81
|
-
customClickBehavior
|
|
90
|
+
customClickBehavior?: (d: Datum | null) => void;
|
|
82
91
|
/**
|
|
83
92
|
* Whether `linkedHover` participates in the click predicate. Most
|
|
84
93
|
* XY / ordinal HOCs say yes — `linkedHover` cross-chart selection
|
|
@@ -91,6 +100,7 @@ export declare function buildCustomBehaviorProps(input: {
|
|
|
91
100
|
}): {
|
|
92
101
|
customHoverBehavior?: (d: Datum | null) => void;
|
|
93
102
|
customClickBehavior?: (d: Datum | null) => void;
|
|
103
|
+
hoverRadius?: number;
|
|
94
104
|
};
|
|
95
105
|
/**
|
|
96
106
|
* Resolve the `tooltipContent` prop for the frame.
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { Datum } from "./datumTypes";
|
|
2
|
+
export declare function parseDateLikeString(value: string): number;
|
|
3
|
+
export declare function coerceDateLikeValue(value: unknown): number;
|
|
4
|
+
export declare function coerceTemporalStringRows(data: Datum[] | undefined, fieldName: string | undefined): {
|
|
5
|
+
data: Datum[] | undefined;
|
|
6
|
+
failed: boolean;
|
|
7
|
+
};
|
|
@@ -4,6 +4,8 @@ import type { OnObservationCallback } from "../../store/ObservationStore";
|
|
|
4
4
|
import type { AnimateProp } from "../../stream/pipelineTransitionUtils";
|
|
5
5
|
import type { Datum } from "./datumTypes";
|
|
6
6
|
import type { AutoPlaceAnnotations } from "../../recipes/annotationLayout";
|
|
7
|
+
import type { ResponsiveRule } from "./responsiveRules";
|
|
8
|
+
import type { MobileVisualizationContract } from "./auditMobileVisualization";
|
|
7
9
|
/**
|
|
8
10
|
* Selection consumption config — makes this chart react to a named selection
|
|
9
11
|
*/
|
|
@@ -44,7 +46,7 @@ export type LinkedBrushProp = string | {
|
|
|
44
46
|
* Chart display mode — controls default chrome, size, and interaction.
|
|
45
47
|
* User-provided props always override mode defaults.
|
|
46
48
|
*/
|
|
47
|
-
export type ChartMode = "primary" | "context" | "sparkline";
|
|
49
|
+
export type ChartMode = "primary" | "context" | "sparkline" | "mobile";
|
|
48
50
|
/**
|
|
49
51
|
* Hover highlighting mode.
|
|
50
52
|
* `true` and `"series"` both dim non-hovered series/categories; the string
|
|
@@ -52,6 +54,46 @@ export type ChartMode = "primary" | "context" | "sparkline";
|
|
|
52
54
|
* more explicit per-series mode.
|
|
53
55
|
*/
|
|
54
56
|
export type HoverHighlightMode = boolean | "series";
|
|
57
|
+
export type MobileClearSelectionBehavior = "backgroundTap" | "none";
|
|
58
|
+
export type MobileSnapBehavior = "nearestDatum" | "none";
|
|
59
|
+
export type MobileStandardControlKind = "brush" | "zoom" | "legend";
|
|
60
|
+
export type MobileStandardControlsMode = boolean | "all" | MobileStandardControlKind | MobileStandardControlKind[];
|
|
61
|
+
/**
|
|
62
|
+
* Touch-first interaction policy for phone-sized chart slots.
|
|
63
|
+
*
|
|
64
|
+
* This is intentionally shared by built-in charts, custom charts, audits, and
|
|
65
|
+
* generated/interoperable chart manifests so mobile behavior is not a
|
|
66
|
+
* second-class per-component escape hatch.
|
|
67
|
+
*/
|
|
68
|
+
export interface MobileInteractionConfig {
|
|
69
|
+
/** Explicitly enable or disable mobile interaction for an object config. */
|
|
70
|
+
enabled?: boolean;
|
|
71
|
+
/** Convert tap/click on a datum into a persistent selection when possible. */
|
|
72
|
+
tapToSelect?: boolean;
|
|
73
|
+
/** Convert hover-linked detail into a tap-lockable state on touch devices. */
|
|
74
|
+
tapToLockTooltip?: boolean;
|
|
75
|
+
/** Clear the mobile interaction state when the frame reports a background tap. */
|
|
76
|
+
clearSelection?: MobileClearSelectionBehavior;
|
|
77
|
+
/** Comfortable touch target in CSS pixels. Defaults to 44 when mobile is active. */
|
|
78
|
+
targetSize?: number;
|
|
79
|
+
/** Hit-testing strategy for imprecise touch input. */
|
|
80
|
+
snap?: MobileSnapBehavior;
|
|
81
|
+
/** Preferred brush handle size in CSS pixels for mobile brush affordances. */
|
|
82
|
+
brushHandleSize?: number;
|
|
83
|
+
/** Signals that a brush/zoom/legend gesture has a standard-control alternative. */
|
|
84
|
+
standardControls?: MobileStandardControlsMode;
|
|
85
|
+
}
|
|
86
|
+
export type MobileInteractionProp = boolean | MobileInteractionConfig;
|
|
87
|
+
export interface ResolvedMobileInteractionConfig {
|
|
88
|
+
enabled: boolean;
|
|
89
|
+
tapToSelect: boolean;
|
|
90
|
+
tapToLockTooltip: boolean;
|
|
91
|
+
clearSelection: MobileClearSelectionBehavior;
|
|
92
|
+
targetSize: number;
|
|
93
|
+
snap: MobileSnapBehavior;
|
|
94
|
+
brushHandleSize: number;
|
|
95
|
+
standardControls: MobileStandardControlsMode;
|
|
96
|
+
}
|
|
55
97
|
/**
|
|
56
98
|
* Base props shared across all chart components
|
|
57
99
|
*/
|
|
@@ -72,6 +114,12 @@ export interface BaseChartProps {
|
|
|
72
114
|
responsiveWidth?: boolean;
|
|
73
115
|
/** Auto-match height to parent container (requires parent with explicit height). Default: false */
|
|
74
116
|
responsiveHeight?: boolean;
|
|
117
|
+
/** Semantic responsive transformations keyed by measured chart slot, not CSS alone. */
|
|
118
|
+
responsiveRules?: ResponsiveRule[];
|
|
119
|
+
/** Phone/mobile contract consumed by audits, recipes, adapters, and agents. */
|
|
120
|
+
mobileSemantics?: MobileVisualizationContract;
|
|
121
|
+
/** Touch-first interaction policy for phone-sized chart slots. */
|
|
122
|
+
mobileInteraction?: MobileInteractionProp;
|
|
75
123
|
/** CSS class name for the chart container */
|
|
76
124
|
className?: string;
|
|
77
125
|
/** Chart title displayed at the top */
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import type { Datum } from "./datumTypes";
|
|
2
2
|
import { useChartLegendAndMargin, useLegendInteraction, DEFAULT_COLOR } from "./hooks";
|
|
3
3
|
import type { LegendInteractionMode, LegendPosition } from "./hooks";
|
|
4
|
-
import type { Accessor, SelectionConfig, LinkedHoverProp, HoverHighlightMode } from "./types";
|
|
4
|
+
import type { Accessor, SelectionConfig, LinkedHoverProp, HoverHighlightMode, MobileInteractionProp, ResolvedMobileInteractionConfig } from "./types";
|
|
5
|
+
import type { MobileVisualizationContract } from "./auditMobileVisualization";
|
|
5
6
|
import type { OnObservationCallback } from "../../store/ObservationStore";
|
|
6
7
|
import type { PartialMargin } from "../../types/marginType";
|
|
7
8
|
import type { SelectionHookResult } from "./selectionUtils";
|
|
@@ -21,7 +22,7 @@ export interface ChartSetupInput {
|
|
|
21
22
|
/** The color-by accessor (may be an "actual" colorBy derived from stackBy/groupBy/categoryAccessor) */
|
|
22
23
|
colorBy: Accessor<string> | undefined;
|
|
23
24
|
/** Color scheme name or custom array — undefined lets useColorScale consult the theme */
|
|
24
|
-
colorScheme: string | string[] | undefined;
|
|
25
|
+
colorScheme: string | string[] | Record<string, string> | undefined;
|
|
25
26
|
/** Legend interaction mode */
|
|
26
27
|
legendInteraction: LegendInteractionMode | undefined;
|
|
27
28
|
/** Legend position override */
|
|
@@ -58,6 +59,10 @@ export interface ChartSetupInput {
|
|
|
58
59
|
}) => void;
|
|
59
60
|
/** Dim non-hovered series on data mark hover */
|
|
60
61
|
hoverHighlight?: HoverHighlightMode;
|
|
62
|
+
/** Touch-first interaction policy for phone-sized chart slots */
|
|
63
|
+
mobileInteraction?: MobileInteractionProp;
|
|
64
|
+
/** Mobile semantic contract for generated/audited/mobile-aware chart behavior */
|
|
65
|
+
mobileSemantics?: MobileVisualizationContract;
|
|
61
66
|
/** Loading state */
|
|
62
67
|
loading: boolean | undefined;
|
|
63
68
|
/** Custom content rendered in place of the default skeleton while `loading` is true. */
|
|
@@ -95,6 +100,8 @@ export interface ChartSetupResult {
|
|
|
95
100
|
customHoverBehavior: (d: Datum | null) => void;
|
|
96
101
|
/** Custom click behavior callback for the frame */
|
|
97
102
|
customClickBehavior: (d: Datum | null) => void;
|
|
103
|
+
/** Resolved touch-first policy for chart wrappers and stream-prop helpers */
|
|
104
|
+
mobileInteraction: ResolvedMobileInteractionConfig;
|
|
98
105
|
/** Legend config (or undefined if no legend) */
|
|
99
106
|
legend: ReturnType<typeof useChartLegendAndMargin>["legend"];
|
|
100
107
|
/** Computed margin with legend-aware adjustments */
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
import type { Ref, RefObject, ReactElement, ReactNode } from "react";
|
|
2
2
|
import { useChartMode } from "./hooks";
|
|
3
3
|
import { type ChartSetupResult } from "./useChartSetup";
|
|
4
|
-
import type { ChartMode, SelectionConfig, LinkedHoverProp } from "./types";
|
|
4
|
+
import type { Accessor, ChartMode, SelectionConfig, LinkedHoverProp, MobileInteractionProp } from "./types";
|
|
5
|
+
import type { MobileVisualizationContract } from "./auditMobileVisualization";
|
|
6
|
+
import type { ResponsiveRule } from "./responsiveRules";
|
|
5
7
|
import type { OnObservationCallback } from "../../store/ObservationStore";
|
|
6
8
|
import { type PartialMargin, type MarginType } from "../../types/marginType";
|
|
7
9
|
import type { Datum } from "./datumTypes";
|
|
@@ -17,7 +19,7 @@ interface ScaffoldOptions {
|
|
|
17
19
|
/** Ref forwarded by the HOC. The hook binds the imperative handle internally. */
|
|
18
20
|
imperativeRef: Ref<RealtimeFrameHandle> | undefined;
|
|
19
21
|
/** Which `useFrameImperativeHandle` variant to bind. XY/ordinal frames share "xy". */
|
|
20
|
-
imperativeVariant: "xy" | "network";
|
|
22
|
+
imperativeVariant: "xy" | "network" | "geo-points";
|
|
21
23
|
/** Margin shorthand or sided form from the HOC's `margin` prop. */
|
|
22
24
|
margin: PartialMargin | undefined;
|
|
23
25
|
width?: number;
|
|
@@ -26,6 +28,9 @@ interface ScaffoldOptions {
|
|
|
26
28
|
enableHover?: boolean;
|
|
27
29
|
showLegend?: boolean;
|
|
28
30
|
title?: string;
|
|
31
|
+
mobileInteraction?: MobileInteractionProp;
|
|
32
|
+
mobileSemantics?: MobileVisualizationContract;
|
|
33
|
+
responsiveRules?: ResponsiveRule[];
|
|
29
34
|
mode?: ChartMode;
|
|
30
35
|
xLabel?: string;
|
|
31
36
|
yLabel?: string;
|
|
@@ -39,7 +44,7 @@ interface ScaffoldResult<TFrameHandle> {
|
|
|
39
44
|
normalizedMargin: Partial<MarginType> | undefined;
|
|
40
45
|
}
|
|
41
46
|
/**
|
|
42
|
-
* Scaffold shared by all
|
|
47
|
+
* Scaffold shared by all four custom-layout HOCs: imperative-handle
|
|
43
48
|
* binding, chart-mode resolution, margin normalization. Network HOCs
|
|
44
49
|
* stop here; data-shaped HOCs layer `useChartSetup` on top via
|
|
45
50
|
* `useCustomChartSetup`.
|
|
@@ -53,15 +58,19 @@ interface DataSetupOptions extends ScaffoldOptions {
|
|
|
53
58
|
/** Whether the hover callback should unwrap the datum (ordinal/network = true, XY = false). */
|
|
54
59
|
unwrapData: boolean;
|
|
55
60
|
/** Color scheme threaded into useChartSetup's color resolution. */
|
|
56
|
-
colorScheme?: string | string[]
|
|
61
|
+
colorScheme?: string | string[] | Record<string, string>;
|
|
62
|
+
/** Semantic color accessor for legend, linked-hover series mode, and frame color config. */
|
|
63
|
+
colorBy?: Accessor<string>;
|
|
57
64
|
/** Pass-through chart-setup inputs. */
|
|
58
65
|
selection?: SelectionConfig;
|
|
59
66
|
linkedHover?: LinkedHoverProp;
|
|
60
67
|
onObservation?: OnObservationCallback;
|
|
61
|
-
onClick?: (datum:
|
|
68
|
+
onClick?: (datum: Datum, ev: {
|
|
62
69
|
x: number;
|
|
63
70
|
y: number;
|
|
64
71
|
}) => void;
|
|
72
|
+
mobileInteraction?: MobileInteractionProp;
|
|
73
|
+
mobileSemantics?: MobileVisualizationContract;
|
|
65
74
|
chartId?: string;
|
|
66
75
|
loading?: boolean;
|
|
67
76
|
loadingContent?: ReactNode | false;
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { ReactNode, ReactElement } from "react";
|
|
2
2
|
import type { Datum } from "./datumTypes";
|
|
3
|
-
import type { Accessor, ChartAccessor, SelectionConfig, LinkedHoverProp } from "./types";
|
|
3
|
+
import type { Accessor, ChartAccessor, SelectionConfig, LinkedHoverProp, MobileInteractionProp, ResolvedMobileInteractionConfig } from "./types";
|
|
4
|
+
import type { MobileVisualizationContract } from "./auditMobileVisualization";
|
|
4
5
|
import type { OnObservationCallback } from "../../store/ObservationStore";
|
|
5
6
|
import type { PartialMargin, MarginType } from "../../types/marginType";
|
|
6
7
|
import { useChartSelection, useChartLegendAndMargin } from "./hooks";
|
|
@@ -23,7 +24,7 @@ export interface NetworkChartSetupInput<TNode extends Datum = Datum, TEdge exten
|
|
|
23
24
|
/** Edge target accessor (used by `inferNodesFromEdges`). */
|
|
24
25
|
targetAccessor?: ChartAccessor<TEdge, string>;
|
|
25
26
|
colorBy?: Accessor<string>;
|
|
26
|
-
colorScheme?: string | string[]
|
|
27
|
+
colorScheme?: string | string[] | Record<string, string>;
|
|
27
28
|
/** `undefined` defaults to "auto" (on when colorBy is set). */
|
|
28
29
|
showLegend?: boolean;
|
|
29
30
|
legendPosition?: LegendPosition;
|
|
@@ -35,6 +36,8 @@ export interface NetworkChartSetupInput<TNode extends Datum = Datum, TEdge exten
|
|
|
35
36
|
x: number;
|
|
36
37
|
y: number;
|
|
37
38
|
}) => void;
|
|
39
|
+
mobileInteraction?: MobileInteractionProp;
|
|
40
|
+
mobileSemantics?: MobileVisualizationContract;
|
|
38
41
|
/** Used by useChartSelection for chart-type-stamped observation events. */
|
|
39
42
|
chartType: string;
|
|
40
43
|
chartId?: string;
|
|
@@ -94,6 +97,7 @@ export interface NetworkChartSetupResult {
|
|
|
94
97
|
legend: ReturnType<typeof useChartLegendAndMargin>["legend"];
|
|
95
98
|
margin: MarginType;
|
|
96
99
|
legendPosition: LegendPosition;
|
|
100
|
+
mobileInteraction: ResolvedMobileInteractionConfig;
|
|
97
101
|
customHoverBehavior: ReturnType<typeof useChartSelection>["customHoverBehavior"];
|
|
98
102
|
customClickBehavior: ReturnType<typeof useChartSelection>["customClickBehavior"];
|
|
99
103
|
/**
|
|
@@ -12,7 +12,7 @@ export interface OrdinalPieceStyleOptions {
|
|
|
12
12
|
/** Theme categorical palette (from useThemeCategorical). */
|
|
13
13
|
themeCategorical: string[] | undefined;
|
|
14
14
|
/** colorScheme prop — array or string scheme name. */
|
|
15
|
-
colorScheme?: string | string[]
|
|
15
|
+
colorScheme?: string | string[] | Record<string, string>;
|
|
16
16
|
/** Stable category-index map for default-fill cycling. */
|
|
17
17
|
categoryIndexMap: Map<string, number>;
|
|
18
18
|
/** User-supplied `frameProps.pieceStyle`. Accepts the looser
|
|
@@ -30,7 +30,7 @@ export declare function useStreamingLegend({ isPushMode, colorBy, colorScheme, s
|
|
|
30
30
|
/** The color-by accessor (may be derived from stackBy/groupBy/categoryAccessor) */
|
|
31
31
|
colorBy: Accessor<string> | undefined;
|
|
32
32
|
/** Color scheme name or custom array — undefined lets useColorScale consult the theme */
|
|
33
|
-
colorScheme: string | string[] | undefined;
|
|
33
|
+
colorScheme: string | string[] | Record<string, string> | undefined;
|
|
34
34
|
/** Whether legend is requested */
|
|
35
35
|
showLegend: boolean | undefined;
|
|
36
36
|
/** Legend position */
|