semiotic 3.7.4 → 3.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CLAUDE.md +60 -15
- package/README.md +135 -24
- package/agent-skill/semiotic-charts/SKILL.md +146 -0
- package/ai/cli.js +133 -45
- package/ai/componentMetadata.cjs +6 -1
- package/ai/dist/mcp-server.js +1651 -154
- package/ai/examples.md +174 -0
- package/ai/schema.json +2934 -517
- package/ai/surface-manifest.json +200 -0
- package/ai/system-prompt.md +19 -3
- package/dist/components/Annotation.d.ts +4 -0
- package/dist/components/CategoryColors.d.ts +1 -1
- package/dist/components/ChartContainer.d.ts +91 -0
- package/dist/components/ChartGrid.d.ts +11 -1
- package/dist/components/CircularBrush.d.ts +61 -0
- package/dist/components/ContextLayout.d.ts +5 -1
- package/dist/components/DataSummaryContext.d.ts +1 -0
- package/dist/components/DirectManipulationControl.d.ts +63 -0
- package/dist/components/LinkedCharts.d.ts +3 -1
- package/dist/components/MobileAnnotationCalloutList.d.ts +13 -0
- package/dist/components/MobileChartContainer.d.ts +51 -0
- package/dist/components/MobileStandardControls.d.ts +68 -0
- package/dist/components/SmallMultipleChart.d.ts +84 -0
- package/dist/components/Tooltip/FlippingTooltip.d.ts +21 -0
- package/dist/components/ai/ChartRecipe.d.ts +16 -0
- package/dist/components/ai/IntentMark.d.ts +15 -0
- package/dist/components/ai/chartCapabilities.d.ts +8 -1
- package/dist/components/ai/chartCapabilityTypes.d.ts +42 -1
- package/dist/components/ai/chartClinic.d.ts +91 -0
- package/dist/components/ai/chartRecipeRegistry.d.ts +14 -0
- package/dist/components/ai/chartRecipes.d.ts +278 -0
- package/dist/components/ai/dataPitfallsBridge.d.ts +203 -0
- package/dist/components/ai/dataQualityBridge.d.ts +201 -0
- package/dist/components/ai/describeChart.d.ts +9 -0
- package/dist/components/ai/describeRecipeChart.d.ts +16 -0
- package/dist/components/ai/generativeChart.d.ts +170 -0
- package/dist/components/ai/intentManifest.d.ts +62 -0
- package/dist/components/ai/navigationTree.d.ts +3 -0
- package/dist/components/ai/observedSceneAudit.d.ts +72 -0
- package/dist/components/ai/readerGrounding.d.ts +83 -0
- package/dist/components/ai/recipeCapability.d.ts +8 -0
- package/dist/components/ai/recipeNavigation.d.ts +13 -0
- package/dist/components/ai/recipeSemantics.d.ts +11 -0
- package/dist/components/ai/repairChartConfig.d.ts +9 -0
- package/dist/components/ai/suggestCharts.d.ts +11 -1
- package/dist/components/charts/custom/GeoCustomChart.d.ts +48 -0
- package/dist/components/charts/custom/NetworkCustomChart.d.ts +22 -3
- package/dist/components/charts/custom/OrdinalCustomChart.d.ts +8 -2
- package/dist/components/charts/custom/XYCustomChart.d.ts +11 -2
- package/dist/components/charts/geo/DistanceCartogram.d.ts +1 -1
- package/dist/components/charts/geo/FlowMap.d.ts +1 -1
- package/dist/components/charts/geo/ProportionalSymbolMap.d.ts +1 -1
- package/dist/components/charts/geo/index.d.ts +2 -0
- package/dist/components/charts/index.d.ts +29 -1
- package/dist/components/charts/network/ChordDiagram.d.ts +1 -1
- package/dist/components/charts/network/CirclePack.d.ts +1 -1
- package/dist/components/charts/network/ForceDirectedGraph.d.ts +15 -5
- package/dist/components/charts/network/OrbitDiagram.d.ts +1 -1
- package/dist/components/charts/network/ProcessSankey.d.ts +1 -1
- package/dist/components/charts/network/SankeyDiagram.d.ts +1 -1
- package/dist/components/charts/network/TreeDiagram.d.ts +1 -1
- package/dist/components/charts/network/Treemap.d.ts +1 -1
- package/dist/components/charts/network/useForceLayout.d.ts +17 -0
- package/dist/components/charts/ordinal/BarChart.d.ts +1 -1
- package/dist/components/charts/ordinal/BoxPlot.d.ts +1 -1
- package/dist/components/charts/ordinal/DonutChart.d.ts +1 -1
- package/dist/components/charts/ordinal/DotPlot.d.ts +1 -1
- package/dist/components/charts/ordinal/FunnelChart.d.ts +1 -1
- package/dist/components/charts/ordinal/GroupedBarChart.d.ts +1 -1
- package/dist/components/charts/ordinal/Histogram.d.ts +1 -1
- package/dist/components/charts/ordinal/PieChart.d.ts +1 -1
- package/dist/components/charts/ordinal/RidgelinePlot.d.ts +1 -1
- package/dist/components/charts/ordinal/StackedBarChart.d.ts +1 -1
- package/dist/components/charts/ordinal/SwarmPlot.d.ts +8 -1
- package/dist/components/charts/ordinal/SwimlaneChart.d.ts +1 -1
- package/dist/components/charts/ordinal/ViolinPlot.d.ts +1 -1
- package/dist/components/charts/physics/ChainReactionChart.d.ts +9 -0
- package/dist/components/charts/physics/CollisionSwarmChart.capability.d.ts +2 -0
- package/dist/components/charts/physics/CollisionSwarmChart.d.ts +47 -0
- package/dist/components/charts/physics/EventDropChart.capability.d.ts +2 -0
- package/dist/components/charts/physics/EventDropChart.d.ts +53 -0
- package/dist/components/charts/physics/GaltonBoardChart.capability.d.ts +2 -0
- package/dist/components/charts/physics/GaltonBoardChart.d.ts +66 -0
- package/dist/components/charts/physics/GauntletChart.capability.d.ts +2 -0
- package/dist/components/charts/physics/GauntletChart.d.ts +73 -0
- package/dist/components/charts/physics/PhysicalFlowChart.capability.d.ts +2 -0
- package/dist/components/charts/physics/PhysicalFlowChart.d.ts +63 -0
- package/dist/components/charts/physics/PhysicsCustomChart.d.ts +120 -0
- package/dist/components/charts/physics/PhysicsPileChart.capability.d.ts +2 -0
- package/dist/components/charts/physics/PhysicsPileChart.d.ts +53 -0
- package/dist/components/charts/physics/ProcessFlowChart.capability.d.ts +2 -0
- package/dist/components/charts/physics/ProcessFlowChart.d.ts +96 -0
- package/dist/components/charts/physics/chainReactionOverlay.d.ts +22 -0
- package/dist/components/charts/physics/chainReactionRuntime.d.ts +37 -0
- package/dist/components/charts/physics/chainReactionTypes.d.ts +97 -0
- package/dist/components/charts/physics/collisionSwarmPhysics.d.ts +27 -0
- package/dist/components/charts/physics/dependencyMachine.d.ts +188 -0
- package/dist/components/charts/physics/eventDropPhysics.d.ts +64 -0
- package/dist/components/charts/physics/galtonBoardPhysics.d.ts +28 -0
- package/dist/components/charts/physics/gauntletChartProps.d.ts +67 -0
- package/dist/components/charts/physics/gauntletChrome.d.ts +33 -0
- package/dist/components/charts/physics/gauntletController.d.ts +73 -0
- package/dist/components/charts/physics/gauntletEffects.d.ts +36 -0
- package/dist/components/charts/physics/gauntletPhysics.d.ts +71 -0
- package/dist/components/charts/physics/gauntletRuntime.d.ts +42 -0
- package/dist/components/charts/physics/gauntletTypes.d.ts +213 -0
- package/dist/components/charts/physics/physicalFlowPhysics.d.ts +57 -0
- package/dist/components/charts/physics/physicsChartShared.d.ts +41 -0
- package/dist/components/charts/physics/physicsChartUtils.d.ts +18 -0
- package/dist/components/charts/physics/physicsEncoding.d.ts +142 -0
- package/dist/components/charts/physics/physicsHocHandle.d.ts +53 -0
- package/dist/components/charts/physics/physicsHocUtils.d.ts +128 -0
- package/dist/components/charts/physics/physicsPilePhysics.d.ts +41 -0
- package/dist/components/charts/physics/physicsProcessPrimitives.d.ts +38 -0
- package/dist/components/charts/physics/processFlowPhysics.d.ts +97 -0
- package/dist/components/charts/realtime/RealtimeHeatmap.d.ts +9 -1
- package/dist/components/charts/realtime/RealtimeHistogram.d.ts +9 -1
- package/dist/components/charts/realtime/RealtimeLineChart.d.ts +30 -1
- package/dist/components/charts/realtime/RealtimeSwarmChart.d.ts +16 -2
- package/dist/components/charts/realtime/RealtimeWaterfallChart.d.ts +9 -1
- package/dist/components/charts/realtime/aggregate.d.ts +51 -0
- package/dist/components/charts/realtime/eventTime.d.ts +26 -0
- package/dist/components/charts/shared/auditMobileVisualization.d.ts +91 -0
- package/dist/components/charts/shared/chartDefinitionPilot.d.ts +145 -0
- package/dist/components/charts/shared/chartFamilySets.d.ts +20 -0
- package/dist/components/charts/shared/chartSpecCore.d.ts +165 -0
- package/dist/components/charts/shared/chartSpecs.d.ts +8 -127
- package/dist/components/charts/shared/chartSpecsGeo.d.ts +2 -0
- package/dist/components/charts/shared/chartSpecsNetwork.d.ts +2 -0
- package/dist/components/charts/shared/chartSpecsOrdinal.d.ts +2 -0
- package/dist/components/charts/shared/chartSpecsPhysics.d.ts +2 -0
- package/dist/components/charts/shared/chartSpecsRealtime.d.ts +2 -0
- package/dist/components/charts/shared/chartSpecsValue.d.ts +2 -0
- package/dist/components/charts/shared/chartSpecsXY.d.ts +2 -0
- package/dist/components/charts/shared/colorContrast.d.ts +3 -0
- package/dist/components/charts/shared/colorPalettes.d.ts +2 -0
- package/dist/components/charts/shared/colorUtils.d.ts +17 -13
- package/dist/components/charts/shared/diagnoseAnnotationChecks.d.ts +4 -0
- package/dist/components/charts/shared/diagnoseConfig.d.ts +9 -14
- package/dist/components/charts/shared/diagnoseMisleadingChecks.d.ts +9 -0
- package/dist/components/charts/shared/diagnosePhysicsChecks.d.ts +3 -0
- package/dist/components/charts/shared/diagnoseTypes.d.ts +10 -0
- package/dist/components/charts/shared/hooks.d.ts +28 -5
- package/dist/components/charts/shared/minMax.d.ts +3 -0
- package/dist/components/charts/shared/motionEncoding.d.ts +145 -0
- package/dist/components/charts/shared/radialGeometry.d.ts +0 -18
- package/dist/components/charts/shared/responsiveRules.d.ts +56 -0
- package/dist/components/charts/shared/smartTooltip.d.ts +27 -0
- package/dist/components/charts/shared/statisticalOverlays.d.ts +35 -0
- package/dist/components/charts/shared/streamPropsHelpers.d.ts +12 -2
- package/dist/components/charts/shared/temporalStrings.d.ts +7 -0
- package/dist/components/charts/shared/tooltipUtils.d.ts +2 -0
- package/dist/components/charts/shared/types.d.ts +49 -1
- package/dist/components/charts/shared/useChartSetup.d.ts +10 -3
- package/dist/components/charts/shared/useCustomChartSetup.d.ts +15 -6
- package/dist/components/charts/shared/useNetworkChartSetup.d.ts +6 -2
- package/dist/components/charts/shared/useOrdinalPieceStyle.d.ts +1 -1
- package/dist/components/charts/shared/useStreamingLegend.d.ts +1 -1
- package/dist/components/charts/shared/useSyncedPushData.d.ts +49 -0
- package/dist/components/charts/shared/validateChartData.d.ts +1 -1
- package/dist/components/charts/shared/validationMap.d.ts +0 -11
- package/dist/components/charts/xy/AreaChart.d.ts +1 -1
- package/dist/components/charts/xy/BubbleChart.d.ts +1 -1
- package/dist/components/charts/xy/LineChart.d.ts +1 -1
- package/dist/components/charts/xy/MinimapChart.d.ts +1 -1
- package/dist/components/charts/xy/MultiAxisLineChart.d.ts +2 -2
- package/dist/components/charts/xy/QuadrantChart.d.ts +1 -1
- package/dist/components/charts/xy/Scatterplot.d.ts +10 -1
- package/dist/components/charts/xy/ScatterplotMatrix.d.ts +11 -1
- package/dist/components/charts/xy/StackedAreaChart.d.ts +9 -4
- package/dist/components/controls/controlAudit.d.ts +24 -0
- package/dist/components/controls/controlContract.d.ts +57 -0
- package/dist/components/data/fromArrow.d.ts +54 -0
- package/dist/components/data/fromFlintChart.d.ts +74 -0
- package/dist/components/data/fromMermaid.d.ts +47 -0
- package/dist/components/data/fromObservablePlot.d.ts +69 -0
- package/dist/components/data/fromVegaLite.d.ts +27 -0
- package/dist/components/data/portability/index.d.ts +17 -0
- package/dist/components/data/portability/result.d.ts +52 -0
- package/dist/components/data/portability/spec.d.ts +160 -0
- package/dist/components/data/portability/vegaLite.d.ts +80 -0
- package/dist/components/export/chartConfig.d.ts +11 -0
- package/dist/components/realtime/ReorderBuffer.d.ts +54 -0
- package/dist/components/realtime/RunningStats.d.ts +66 -0
- package/dist/components/realtime/WindowAccumulator.d.ts +105 -0
- package/dist/components/realtime/parseWindowDuration.d.ts +12 -0
- package/dist/components/realtime/types.d.ts +11 -0
- package/dist/components/recipes/annotationLayout.d.ts +29 -0
- package/dist/components/recipes/axisFixedForce.d.ts +119 -0
- package/dist/components/recipes/boba.d.ts +23 -0
- package/dist/components/recipes/customTooltip.d.ts +31 -0
- package/dist/components/recipes/cyclical.d.ts +39 -0
- package/dist/components/recipes/edgeRouter.d.ts +103 -0
- package/dist/components/recipes/forceLayout.d.ts +48 -0
- package/dist/components/recipes/forceLayoutAsync.d.ts +17 -0
- package/dist/components/recipes/gofishBobaHandwritten.d.ts +3 -0
- package/dist/components/recipes/gofishDisplayListFixtures.generated.d.ts +37 -0
- package/dist/components/recipes/gofishIR.d.ts +215 -0
- package/dist/components/recipes/gofishIRExamples.d.ts +38 -0
- package/dist/components/recipes/intervalLanes.d.ts +87 -0
- package/dist/components/recipes/intervals.d.ts +80 -0
- package/dist/components/recipes/isometricLandmarks.d.ts +88 -0
- package/dist/components/recipes/isotypeGlyphs.d.ts +17 -0
- package/dist/components/recipes/mermaidDag.d.ts +44 -0
- package/dist/components/recipes/mobileAnnotationStrategy.d.ts +48 -0
- package/dist/components/recipes/mobileChartFamilyRecipes.d.ts +59 -0
- package/dist/components/recipes/networkAnalysis.d.ts +102 -0
- package/dist/components/recipes/networkLayouts.d.ts +83 -0
- package/dist/components/recipes/packedClusterMatrix.d.ts +166 -0
- package/dist/components/recipes/physics.d.ts +122 -0
- package/dist/components/recipes/physicsReference.d.ts +102 -0
- package/dist/components/recipes/processAggregates.d.ts +32 -0
- package/dist/components/recipes/processChrome.d.ts +67 -0
- package/dist/components/recipes/processJourney.d.ts +54 -0
- package/dist/components/recipes/processPhysics.d.ts +300 -0
- package/dist/components/recipes/processVolumeGeometry.d.ts +28 -0
- package/dist/components/recipes/radialCoords.d.ts +69 -0
- package/dist/components/recipes/random.d.ts +2 -0
- package/dist/components/recipes/recipeChrome.d.ts +191 -0
- package/dist/components/recipes/recipeGlyph.d.ts +42 -0
- package/dist/components/recipes/recipeLegend.d.ts +109 -0
- package/dist/components/recipes/recipeUtils.d.ts +157 -0
- package/dist/components/recipes/runs.d.ts +59 -0
- package/dist/components/recipes/tokenEncoding.d.ts +157 -0
- package/dist/components/recipes/tokenLayer.d.ts +79 -0
- package/dist/components/recipes/unitize.d.ts +108 -0
- package/dist/components/recipes/vector.d.ts +28 -0
- package/dist/components/recipes/waffle.d.ts +43 -0
- package/dist/components/semiotic-ai-core.d.ts +47 -0
- package/dist/components/semiotic-ai.d.ts +52 -4
- package/dist/components/semiotic-controls.d.ts +18 -0
- package/dist/components/semiotic-data.d.ts +2 -0
- package/dist/components/semiotic-experimental.d.ts +49 -0
- package/dist/components/semiotic-geo.d.ts +11 -0
- package/dist/components/semiotic-network.d.ts +14 -1
- package/dist/components/semiotic-ordinal.d.ts +10 -0
- package/dist/components/semiotic-physics-matter.d.ts +10 -0
- package/dist/components/semiotic-physics-rapier.d.ts +9 -0
- package/dist/components/semiotic-physics.d.ts +56 -0
- package/dist/components/semiotic-realtime-core.d.ts +34 -0
- package/dist/components/semiotic-realtime-react.d.ts +10 -0
- package/dist/components/semiotic-realtime.d.ts +4 -22
- package/dist/components/semiotic-recipes-core.d.ts +92 -0
- package/dist/components/semiotic-recipes-react.d.ts +7 -0
- package/dist/components/semiotic-recipes.d.ts +4 -26
- package/dist/components/semiotic-server-edge.d.ts +8 -0
- package/dist/components/semiotic-server-node.d.ts +5 -0
- package/dist/components/semiotic-server.d.ts +2 -2
- package/dist/components/semiotic-themes-core.d.ts +53 -0
- package/dist/components/semiotic-themes-react.d.ts +4 -0
- package/dist/components/semiotic-themes.d.ts +6 -74
- package/dist/components/semiotic-utils-core.d.ts +46 -0
- package/dist/components/semiotic-utils-react.d.ts +5 -0
- package/dist/components/semiotic-utils.d.ts +3 -39
- package/dist/components/semiotic-xy.d.ts +10 -0
- package/dist/components/semiotic.d.ts +39 -7
- package/dist/components/server/animatedGif.d.ts +36 -0
- package/dist/components/server/renderEvidence.d.ts +1 -1
- package/dist/components/server/renderToStaticSVG.d.ts +3 -35
- package/dist/components/server/serverChartConfigShared.d.ts +17 -0
- package/dist/components/server/serverChartConfigs.d.ts +19 -9
- package/dist/components/server/serverChartConfigsCustom.d.ts +5 -0
- package/dist/components/server/serverChartConfigsGeo.d.ts +9 -0
- package/dist/components/server/serverChartConfigsNetwork.d.ts +8 -0
- package/dist/components/server/serverChartConfigsOrdinal.d.ts +16 -0
- package/dist/components/server/serverChartConfigsPhysics.d.ts +9 -0
- package/dist/components/server/serverChartConfigsXY.d.ts +11 -0
- package/dist/components/server/staticGeo.d.ts +4 -0
- package/dist/components/server/staticLegend.d.ts +1 -1
- package/dist/components/server/staticNetwork.d.ts +8 -0
- package/dist/components/server/staticOrdinal.d.ts +11 -0
- package/dist/components/server/staticPhysics.d.ts +3 -0
- package/dist/components/server/staticSVGChrome.d.ts +110 -0
- package/dist/components/server/staticXY.d.ts +4 -0
- package/dist/components/store/ObservationStore.d.ts +23 -3
- package/dist/components/store/SelectionStore.d.ts +1 -1
- package/dist/components/store/ThemeStore.d.ts +1 -1
- package/dist/components/store/TooltipStore.d.ts +1 -1
- package/dist/components/store/createStore.d.ts +1 -1
- package/dist/components/store/designTokens.d.ts +15 -0
- package/dist/components/store/themeSerialization.d.ts +32 -0
- package/dist/components/store/useChartInterrogation.d.ts +9 -0
- package/dist/components/stream/AccessibleDataTable.d.ts +3 -13
- package/dist/components/stream/FocusRing.d.ts +4 -2
- package/dist/components/stream/GeoCanvasHitTester.d.ts +1 -1
- package/dist/components/stream/GeoPipelineStore.d.ts +28 -0
- package/dist/components/stream/NetworkHtmlMarksLayer.d.ts +44 -0
- package/dist/components/stream/NetworkPipelineStore.d.ts +62 -25
- package/dist/components/stream/NetworkSVGOverlay.d.ts +15 -0
- package/dist/components/stream/OrdinalPipelineStore.d.ts +64 -2
- package/dist/components/stream/PipelineStore.d.ts +100 -162
- package/dist/components/stream/SceneGraph.d.ts +14 -2
- package/dist/components/stream/StreamGeoFrame.d.ts +1 -1
- package/dist/components/stream/StreamNetworkFrame.d.ts +1 -1
- package/dist/components/stream/StreamOrdinalFrame.d.ts +1 -1
- package/dist/components/stream/StreamXYFrame.d.ts +2 -18
- package/dist/components/stream/accessibleDataRows.d.ts +33 -0
- package/dist/components/stream/accessorUtils.d.ts +23 -10
- package/dist/components/stream/brushAccessibility.d.ts +25 -0
- package/dist/components/stream/canvasBackground.d.ts +24 -0
- package/dist/components/stream/canvasSetup.d.ts +4 -1
- package/dist/components/stream/customLayout.d.ts +20 -0
- package/dist/components/stream/customLayoutDiagnostics.d.ts +11 -0
- package/dist/components/stream/customLayoutFailure.d.ts +33 -0
- package/dist/components/stream/customLayoutPalette.d.ts +19 -9
- package/dist/components/stream/customLayoutSelection.d.ts +52 -0
- package/dist/components/stream/frameThemeColors.d.ts +24 -0
- package/dist/components/stream/geoAnnotationAnchors.d.ts +14 -0
- package/dist/components/stream/geoCartogram.d.ts +17 -0
- package/dist/components/stream/geoCustomLayout.d.ts +59 -0
- package/dist/components/stream/geoDefaultTooltip.d.ts +11 -0
- package/dist/components/stream/geoFrameHelpers.d.ts +34 -0
- package/dist/components/stream/geoPipelineHelpers.d.ts +46 -0
- package/dist/components/stream/geoTypes.d.ts +56 -7
- package/dist/components/stream/glyphDef.d.ts +98 -0
- package/dist/components/stream/hitTarget.d.ts +170 -0
- package/dist/components/stream/hoverUtils.d.ts +3 -0
- package/dist/components/stream/keyboardNav.d.ts +4 -1
- package/dist/components/stream/layouts/forceLayoutPlugin.d.ts +9 -1
- package/dist/components/stream/layouts/forceLayoutWorkerClient.d.ts +57 -0
- package/dist/components/stream/networkBezier.d.ts +10 -0
- package/dist/components/stream/networkColorAccessors.d.ts +49 -0
- package/dist/components/stream/networkCustomLayout.d.ts +66 -1
- package/dist/components/stream/networkDefaultTooltip.d.ts +10 -0
- package/dist/components/stream/networkFrameInteraction.d.ts +37 -0
- package/dist/components/stream/networkFramePaint.d.ts +43 -0
- package/dist/components/stream/networkPipelineConfig.d.ts +22 -0
- package/dist/components/stream/networkPipelineHelpers.d.ts +12 -0
- package/dist/components/stream/networkRealtimeEncoding.d.ts +41 -0
- package/dist/components/stream/networkTypes.d.ts +104 -5
- package/dist/components/stream/ordinalCanvasRenderers.d.ts +7 -0
- package/dist/components/stream/ordinalCustomLayout.d.ts +17 -1
- package/dist/components/stream/ordinalDataIndex.d.ts +5 -0
- package/dist/components/stream/ordinalDefaultTooltip.d.ts +10 -0
- package/dist/components/stream/ordinalDomain.d.ts +38 -0
- package/dist/components/stream/ordinalPipelineUpdateResults.d.ts +12 -0
- package/dist/components/stream/ordinalPulse.d.ts +10 -0
- package/dist/components/stream/ordinalPulseResources.d.ts +3 -0
- package/dist/components/stream/ordinalSceneBuilders/sceneBuilderMap.d.ts +5 -0
- package/dist/components/stream/ordinalSceneBuilders/types.d.ts +2 -0
- package/dist/components/stream/ordinalSpatialIndex.d.ts +9 -0
- package/dist/components/stream/ordinalTypes.d.ts +56 -8
- package/dist/components/stream/paintNeeds.d.ts +31 -0
- package/dist/components/stream/physics/CapacityQueueController.d.ts +5 -0
- package/dist/components/stream/physics/CapacityQueueTypes.d.ts +134 -0
- package/dist/components/stream/physics/MatterPhysicsEngineAdapter.d.ts +42 -0
- package/dist/components/stream/physics/PhysicsAccessibility.d.ts +48 -0
- package/dist/components/stream/physics/PhysicsAnnotations.d.ts +58 -0
- package/dist/components/stream/physics/PhysicsBodyBudget.d.ts +26 -0
- package/dist/components/stream/physics/PhysicsBodySpatialIndex.d.ts +10 -0
- package/dist/components/stream/physics/PhysicsCanvasTheme.d.ts +26 -0
- package/dist/components/stream/physics/PhysicsControllers.d.ts +75 -0
- package/dist/components/stream/physics/PhysicsEngineAdapter.d.ts +59 -0
- package/dist/components/stream/physics/PhysicsEngineConformance.d.ts +23 -0
- package/dist/components/stream/physics/PhysicsEvidence.d.ts +25 -0
- package/dist/components/stream/physics/PhysicsKernel.d.ts +207 -0
- package/dist/components/stream/physics/PhysicsOptionalEngineAdapters.d.ts +12 -0
- package/dist/components/stream/physics/PhysicsPipelineStore.d.ts +84 -0
- package/dist/components/stream/physics/PhysicsPipelineTypes.d.ts +181 -0
- package/dist/components/stream/physics/PhysicsSVGOverlay.d.ts +72 -0
- package/dist/components/stream/physics/PhysicsSediment.d.ts +69 -0
- package/dist/components/stream/physics/PhysicsSettledSVG.d.ts +18 -0
- package/dist/components/stream/physics/PhysicsSettledScene.d.ts +21 -0
- package/dist/components/stream/physics/PhysicsWorkerClient.d.ts +24 -0
- package/dist/components/stream/physics/PhysicsWorkerProtocol.d.ts +101 -0
- package/dist/components/stream/physics/PhysicsWorkerRuntime.d.ts +5 -0
- package/dist/components/stream/physics/RapierPhysicsEngineAdapter.d.ts +18 -0
- package/dist/components/stream/physics/ServiceOperationsControllers.d.ts +27 -0
- package/dist/components/stream/physics/ServiceOperationsTypes.d.ts +89 -0
- package/dist/components/stream/physics/StreamPhysicsFrame.d.ts +6 -0
- package/dist/components/stream/physics/StreamPhysicsTypes.d.ts +302 -0
- package/dist/components/stream/physics/physicsBodyCanvas.d.ts +27 -0
- package/dist/components/stream/physics/physicsPipelineControls.d.ts +4 -0
- package/dist/components/stream/physics/physicsPipelineHelpers.d.ts +41 -0
- package/dist/components/stream/physics/physicsPipelineObservations.d.ts +14 -0
- package/dist/components/stream/physics/physicsPipelineUpdateResults.d.ts +9 -0
- package/dist/components/stream/physics/physicsRegionRuntime.d.ts +54 -0
- package/dist/components/stream/physics/physicsSemanticUI.d.ts +20 -0
- package/dist/components/stream/physics/usePhysicsFrameLifecyclePolicy.d.ts +16 -0
- package/dist/components/stream/pipelineBufferUtils.d.ts +26 -0
- package/dist/components/stream/pipelineConfig.d.ts +177 -0
- package/dist/components/stream/pipelineDecay.d.ts +20 -2
- package/dist/components/stream/pipelineDomainResolution.d.ts +62 -0
- package/dist/components/stream/pipelineIdentityOps.d.ts +26 -0
- package/dist/components/stream/pipelinePulse.d.ts +16 -2
- package/dist/components/stream/pipelineRibbons.d.ts +41 -0
- package/dist/components/stream/pipelineSpatialIndex.d.ts +12 -0
- package/dist/components/stream/pipelineStoreUpdateResults.d.ts +12 -0
- package/dist/components/stream/pipelineStyleResolvers.d.ts +46 -0
- package/dist/components/stream/pipelineTransitions.d.ts +2 -0
- package/dist/components/stream/pipelineUpdateContract.d.ts +62 -0
- package/dist/components/stream/pulseFrameRefresh.d.ts +22 -0
- package/dist/components/stream/renderers/glyphCanvasRenderer.d.ts +6 -0
- package/dist/components/stream/renderers/networkSymbolRenderer.d.ts +2 -0
- package/dist/components/stream/renderers/resolveCSSColor.d.ts +6 -0
- package/dist/components/stream/renderers/symbolCanvasRenderer.d.ts +2 -0
- package/dist/components/stream/sceneRevisionDiagnostics.d.ts +18 -0
- package/dist/components/stream/stalenessBands.d.ts +28 -0
- package/dist/components/stream/streamStoreSync.d.ts +37 -0
- package/dist/components/stream/symbolPath.d.ts +24 -0
- package/dist/components/stream/types.d.ts +206 -9
- package/dist/components/stream/useFrame.d.ts +21 -2
- package/dist/components/stream/useHydration.d.ts +6 -0
- package/dist/components/stream/useLegendCategoryEmission.d.ts +5 -0
- package/dist/components/stream/useStalenessCheck.d.ts +6 -1
- package/dist/components/stream/workerModuleUrl.d.ts +10 -0
- package/dist/components/stream/xyAnnotationAnchors.d.ts +13 -0
- package/dist/components/stream/xyCanvasRenderers.d.ts +7 -0
- package/dist/components/stream/xyCrosshair.d.ts +11 -0
- package/dist/components/stream/xyDateTicks.d.ts +9 -0
- package/dist/components/stream/xyDefaultTooltip.d.ts +10 -0
- package/dist/components/stream/xySceneBuilders/pointScene.d.ts +2 -2
- package/dist/components/stream/xySceneBuilders/types.d.ts +9 -4
- package/dist/controls.min.js +2 -0
- package/dist/controls.module.min.js +2 -0
- package/dist/forceLayoutWorker.js +1 -0
- package/dist/geo.min.js +1 -1
- package/dist/geo.module.min.js +1 -1
- package/dist/network.min.js +1 -1
- package/dist/network.module.min.js +1 -1
- package/dist/ordinal.min.js +1 -1
- package/dist/ordinal.module.min.js +1 -1
- package/dist/physics-matter.min.js +1 -0
- package/dist/physics-matter.module.min.js +1 -0
- package/dist/physics-rapier.min.js +1 -0
- package/dist/physics-rapier.module.min.js +1 -0
- package/dist/physics.min.js +2 -0
- package/dist/physics.module.min.js +2 -0
- package/dist/physicsWorker.js +1 -0
- package/dist/realtime.min.js +1 -1
- package/dist/realtime.module.min.js +1 -1
- package/dist/semiotic-ai-chunk-OG7BQUUW.module.min.js +2 -0
- package/dist/semiotic-ai-core.d.ts +47 -0
- package/dist/semiotic-ai-core.min.js +1 -0
- package/dist/semiotic-ai-core.module.min.js +1 -0
- package/dist/semiotic-ai-statisticalOverlays-CY4WKR4A.module.min.js +2 -0
- package/dist/semiotic-ai.d.ts +52 -4
- package/dist/semiotic-ai.min.js +1 -1
- package/dist/semiotic-ai.module.min.js +1 -1
- package/dist/semiotic-chunk-3FSVZ46U.module.min.js +2 -0
- package/dist/semiotic-controls.d.ts +18 -0
- package/dist/semiotic-data.d.ts +2 -0
- package/dist/semiotic-data.min.js +1 -1
- package/dist/semiotic-data.module.min.js +1 -1
- package/dist/semiotic-experimental.d.ts +49 -0
- package/dist/semiotic-experimental.min.js +1 -0
- package/dist/semiotic-experimental.module.min.js +1 -0
- package/dist/semiotic-geo.d.ts +11 -0
- package/dist/semiotic-network.d.ts +14 -1
- package/dist/semiotic-ordinal.d.ts +10 -0
- package/dist/semiotic-physics-matter.d.ts +10 -0
- package/dist/semiotic-physics-rapier.d.ts +9 -0
- package/dist/semiotic-physics.d.ts +56 -0
- package/dist/semiotic-realtime-core.d.ts +34 -0
- package/dist/semiotic-realtime-core.min.js +1 -0
- package/dist/semiotic-realtime-core.module.min.js +1 -0
- package/dist/semiotic-realtime-react.d.ts +10 -0
- package/dist/semiotic-realtime-react.min.js +2 -0
- package/dist/semiotic-realtime-react.module.min.js +2 -0
- package/dist/semiotic-realtime.d.ts +4 -22
- package/dist/semiotic-recipes-core.d.ts +92 -0
- package/dist/semiotic-recipes-core.min.js +1 -0
- package/dist/semiotic-recipes-core.module.min.js +1 -0
- package/dist/semiotic-recipes-react.d.ts +7 -0
- package/dist/semiotic-recipes-react.min.js +2 -0
- package/dist/semiotic-recipes-react.module.min.js +2 -0
- package/dist/semiotic-recipes.d.ts +4 -26
- package/dist/semiotic-recipes.min.js +1 -1
- package/dist/semiotic-recipes.module.min.js +1 -1
- package/dist/semiotic-server-edge.d.ts +8 -0
- package/dist/semiotic-server-edge.min.js +1 -0
- package/dist/semiotic-server-edge.module.min.js +1 -0
- package/dist/semiotic-server-node.d.ts +5 -0
- package/dist/semiotic-server-node.min.js +1 -0
- package/dist/semiotic-server-node.module.min.js +1 -0
- package/dist/semiotic-server.d.ts +2 -2
- package/dist/semiotic-statisticalOverlays-UOMSFKVJ.module.min.js +2 -0
- package/dist/semiotic-themes-core.d.ts +53 -0
- package/dist/semiotic-themes-core.min.js +1 -0
- package/dist/semiotic-themes-core.module.min.js +1 -0
- package/dist/semiotic-themes-react.d.ts +4 -0
- package/dist/semiotic-themes-react.min.js +2 -0
- package/dist/semiotic-themes-react.module.min.js +2 -0
- package/dist/semiotic-themes.d.ts +6 -74
- package/dist/semiotic-themes.min.js +1 -2
- package/dist/semiotic-themes.module.min.js +1 -2
- package/dist/semiotic-utils-core.d.ts +46 -0
- package/dist/semiotic-utils-core.min.js +1 -0
- package/dist/semiotic-utils-core.module.min.js +1 -0
- package/dist/semiotic-utils-react.d.ts +5 -0
- package/dist/semiotic-utils-react.min.js +2 -0
- package/dist/semiotic-utils-react.module.min.js +2 -0
- package/dist/semiotic-utils.d.ts +3 -39
- package/dist/semiotic-utils.min.js +1 -2
- package/dist/semiotic-utils.module.min.js +1 -2
- package/dist/semiotic-value.min.js +1 -1
- package/dist/semiotic-value.module.min.js +1 -1
- package/dist/semiotic-xy.d.ts +10 -0
- package/dist/semiotic.d.ts +39 -7
- package/dist/semiotic.min.js +1 -1
- package/dist/semiotic.module.min.js +1 -1
- package/dist/server.min.js +1 -1
- package/dist/server.module.min.js +1 -1
- package/dist/xy-chunk-IWD6IB6V.module.min.js +2 -0
- package/dist/xy-statisticalOverlays-7RWG6LJT.module.min.js +2 -0
- package/dist/xy.min.js +1 -1
- package/dist/xy.module.min.js +1 -1
- package/package.json +246 -86
- package/spec/README.md +152 -0
- package/spec/bindings/README.md +35 -0
- package/spec/bindings/vega-lite.mjs +112 -0
- package/spec/v0.1/annotation-provenance.schema.json +127 -0
- package/spec/v0.1/audience-profile.schema.json +67 -0
- package/spec/v0.1/chart-capability.schema.json +186 -0
- package/dist/semiotic-ai-statisticalOverlays-C2PPlmXv.js +0 -1
- package/dist/semiotic-statisticalOverlays-C3DsOgr_.js +0 -1
- package/dist/xy-statisticalOverlays-C2PPlmXv.js +0 -1
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared result vocabulary for experimental portability adapters.
|
|
3
|
+
*
|
|
4
|
+
* An adapter must make a supported translation, a known loss, and a refusal
|
|
5
|
+
* distinguishable to callers. Warnings attached to an otherwise plausible
|
|
6
|
+
* chart are not sufficient: another renderer cannot infer that it should not
|
|
7
|
+
* render an approximation.
|
|
8
|
+
*/
|
|
9
|
+
/** Whether an adapter translated exactly, translated with declared loss, or refused. */
|
|
10
|
+
export type PortabilityStatus = "success" | "lossy" | "refused";
|
|
11
|
+
export type PortabilityDiagnosticSeverity = "warning" | "error";
|
|
12
|
+
/** A stable, machine-readable adapter diagnostic. */
|
|
13
|
+
export interface PortabilityDiagnostic {
|
|
14
|
+
code: string;
|
|
15
|
+
severity: PortabilityDiagnosticSeverity;
|
|
16
|
+
message: string;
|
|
17
|
+
path?: string;
|
|
18
|
+
}
|
|
19
|
+
/** A declared semantic loss for an explicitly lossy translation. */
|
|
20
|
+
export interface PortabilityLoss {
|
|
21
|
+
code: string;
|
|
22
|
+
message: string;
|
|
23
|
+
path?: string;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Enough information to identify an adapter operation without coupling this
|
|
27
|
+
* library-neutral result shape to a particular renderer or chart config.
|
|
28
|
+
*/
|
|
29
|
+
export interface PortabilityProvenance {
|
|
30
|
+
adapter: string;
|
|
31
|
+
direction: "import" | "export";
|
|
32
|
+
sourceFormat: string;
|
|
33
|
+
targetFormat: string;
|
|
34
|
+
specVersion?: string;
|
|
35
|
+
/** Metadata that travelled with the source artifact, when it is serializable. */
|
|
36
|
+
metadata?: Record<string, unknown>;
|
|
37
|
+
}
|
|
38
|
+
/** Base result shared by adapters that import and export different artifact types. */
|
|
39
|
+
export interface PortabilityResult {
|
|
40
|
+
status: PortabilityStatus;
|
|
41
|
+
diagnostics: readonly PortabilityDiagnostic[];
|
|
42
|
+
lossReport: readonly PortabilityLoss[];
|
|
43
|
+
provenance: PortabilityProvenance;
|
|
44
|
+
}
|
|
45
|
+
/** Result shape for adapters that produce a Semiotic configuration. */
|
|
46
|
+
export interface PortabilityImportResult<TConfig> extends PortabilityResult {
|
|
47
|
+
config?: TConfig;
|
|
48
|
+
}
|
|
49
|
+
/** Result shape for adapters that produce a foreign artifact or spec. */
|
|
50
|
+
export interface PortabilityExportResult<TArtifact> extends PortabilityResult {
|
|
51
|
+
artifact?: TArtifact;
|
|
52
|
+
}
|
|
@@ -0,0 +1,160 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The IDID portability spec — runtime surface (v0.1).
|
|
3
|
+
*
|
|
4
|
+
* The canonical, published artifact is the set of JSON Schemas in `/spec/v0.1`.
|
|
5
|
+
* This module is the reference implementation's *runtime companion*: portable
|
|
6
|
+
* TypeScript types that mirror those schemas, plus small dependency-free
|
|
7
|
+
* structural validators for hosts that don't want to pull in a full JSON-schema
|
|
8
|
+
* engine (per spec doctrine: zero new core dependencies).
|
|
9
|
+
*
|
|
10
|
+
* The schemas are library-neutral — none of these types import from a chart
|
|
11
|
+
* family. Keeping them pure is what lets the ideas travel into ecosystems that
|
|
12
|
+
* have no concept of a Semiotic chart.
|
|
13
|
+
*
|
|
14
|
+
* Field/type fidelity with the published JSON Schemas is enforced by
|
|
15
|
+
* `portability.test.ts` (the round-trip gate), so the two cannot drift.
|
|
16
|
+
*/
|
|
17
|
+
/** The spec version this build targets. Matches the `/spec/v0.1` directory. */
|
|
18
|
+
export declare const IDID_SPEC_VERSION = "0.1";
|
|
19
|
+
/** The 13 built-in communicative intents. Hosts may register more (open string). */
|
|
20
|
+
export declare const BUILTIN_INTENT_IDS: readonly ["trend", "compare-series", "compare-categories", "rank", "part-to-whole", "distribution", "correlation", "flow", "hierarchy", "geo", "outlier-detection", "composition-over-time", "change-detection"];
|
|
21
|
+
export type BuiltInIntentId = (typeof BUILTIN_INTENT_IDS)[number];
|
|
22
|
+
/** Any intent id — built-in or host-registered. */
|
|
23
|
+
export type PortableIntentId = BuiltInIntentId | (string & {});
|
|
24
|
+
export interface PortableChartRubric {
|
|
25
|
+
/** How well-known the chart is to a general audience (1–5). */
|
|
26
|
+
familiarity: number;
|
|
27
|
+
/** How faithfully it represents the underlying data (1–5). */
|
|
28
|
+
accuracy: number;
|
|
29
|
+
/** How readable individual values are (1–5). */
|
|
30
|
+
precision: number;
|
|
31
|
+
}
|
|
32
|
+
export interface PortableChartVariant {
|
|
33
|
+
key: string;
|
|
34
|
+
label: string;
|
|
35
|
+
description?: string;
|
|
36
|
+
intentDeltas?: Partial<Record<PortableIntentId, number>>;
|
|
37
|
+
rubricDeltas?: Partial<PortableChartRubric>;
|
|
38
|
+
caveats?: ReadonlyArray<string>;
|
|
39
|
+
tags?: ReadonlyArray<string>;
|
|
40
|
+
/** Implementation-specific props; opaque to the spec. */
|
|
41
|
+
props?: Record<string, unknown>;
|
|
42
|
+
}
|
|
43
|
+
export interface PortableMobileInteractionCapability {
|
|
44
|
+
primary?: string;
|
|
45
|
+
alternatives?: ReadonlyArray<string>;
|
|
46
|
+
hoverFallback?: string;
|
|
47
|
+
targetSize?: number;
|
|
48
|
+
}
|
|
49
|
+
export interface PortableMobileLabelCapability {
|
|
50
|
+
strategy?: string;
|
|
51
|
+
minFontSize?: number;
|
|
52
|
+
}
|
|
53
|
+
export interface PortableMobileCustomCapability {
|
|
54
|
+
dataBearingSceneNodes?: boolean;
|
|
55
|
+
stableIds?: boolean;
|
|
56
|
+
navigationGranularity?: string;
|
|
57
|
+
}
|
|
58
|
+
export interface PortableMobileCapability {
|
|
59
|
+
strategy?: string;
|
|
60
|
+
responsive?: boolean;
|
|
61
|
+
supportsResponsiveLayout?: boolean;
|
|
62
|
+
breakpoints?: ReadonlyArray<number>;
|
|
63
|
+
minViewportWidth?: number;
|
|
64
|
+
maxMarks?: number;
|
|
65
|
+
maxAnnotations?: number;
|
|
66
|
+
minimumHitTarget?: number;
|
|
67
|
+
summary?: boolean | string;
|
|
68
|
+
interaction?: PortableMobileInteractionCapability;
|
|
69
|
+
labels?: PortableMobileLabelCapability;
|
|
70
|
+
custom?: PortableMobileCustomCapability;
|
|
71
|
+
}
|
|
72
|
+
export interface PortableChartCapability {
|
|
73
|
+
/** Stable chart name (e.g. "BarChart"). */
|
|
74
|
+
component: string;
|
|
75
|
+
/** Coarse family — open string ("xy" | "ordinal" | "network" | …). */
|
|
76
|
+
family?: string;
|
|
77
|
+
/** Where the implementing library exposes the chart (advisory). */
|
|
78
|
+
importPath?: string;
|
|
79
|
+
rubric: PortableChartRubric;
|
|
80
|
+
/** Per-intent suitability, 0–5. Missing intents default to 0. */
|
|
81
|
+
intentScores?: Partial<Record<PortableIntentId, number>>;
|
|
82
|
+
variants?: ReadonlyArray<PortableChartVariant>;
|
|
83
|
+
/** Static, audience-independent caveats. */
|
|
84
|
+
caveats?: ReadonlyArray<string>;
|
|
85
|
+
/** Phone-specific design contract for mobile audits and responsive adapters. */
|
|
86
|
+
mobile?: PortableMobileCapability;
|
|
87
|
+
tags?: ReadonlyArray<string>;
|
|
88
|
+
}
|
|
89
|
+
export type PortableReceptionModality = "visual" | "screen-reader" | "sonified" | "agent";
|
|
90
|
+
export interface PortableAudienceTarget {
|
|
91
|
+
direction: "increase" | "decrease";
|
|
92
|
+
/** 1–3; default 1. */
|
|
93
|
+
weight?: number;
|
|
94
|
+
reason?: string;
|
|
95
|
+
}
|
|
96
|
+
export interface PortableAudienceProfile {
|
|
97
|
+
name?: string;
|
|
98
|
+
/** Per-chart familiarity override, 1–5, keyed by component. */
|
|
99
|
+
familiarity?: Record<string, number>;
|
|
100
|
+
/** Adoption targets keyed by component. */
|
|
101
|
+
targets?: Record<string, PortableAudienceTarget>;
|
|
102
|
+
exposureLevel?: 0 | 1 | 2;
|
|
103
|
+
receptionModality?: PortableReceptionModality;
|
|
104
|
+
}
|
|
105
|
+
/** Open string — recognized: human | agent | watcher | system. */
|
|
106
|
+
export type PortableAnnotationActorKind = "human" | "agent" | "watcher" | "system" | (string & {});
|
|
107
|
+
/** Open string — recognized: user | ai | agent | import | computed | system. */
|
|
108
|
+
export type PortableAnnotationSource = "user" | "ai" | "agent" | "import" | "computed" | "system" | (string & {});
|
|
109
|
+
/** Open string — recognized: human-note | statistical-test | rule | llm-inference | external-source | computed. */
|
|
110
|
+
export type PortableAnnotationBasis = "human-note" | "statistical-test" | "rule" | "llm-inference" | "external-source" | "computed" | (string & {});
|
|
111
|
+
export interface PortableAnnotationProvenance {
|
|
112
|
+
author?: string;
|
|
113
|
+
authorKind?: PortableAnnotationActorKind;
|
|
114
|
+
source?: PortableAnnotationSource;
|
|
115
|
+
basis?: PortableAnnotationBasis;
|
|
116
|
+
/** 0–1. */
|
|
117
|
+
confidence?: number;
|
|
118
|
+
/** ISO 8601 timestamp. */
|
|
119
|
+
createdAt?: string;
|
|
120
|
+
dataVersion?: string;
|
|
121
|
+
stableId?: string;
|
|
122
|
+
}
|
|
123
|
+
/** Closed union. */
|
|
124
|
+
export type PortableAnnotationFreshness = "fresh" | "aging" | "stale" | "expired";
|
|
125
|
+
/** Closed union. */
|
|
126
|
+
export type PortableAnnotationStatus = "proposed" | "accepted" | "disputed" | "retracted";
|
|
127
|
+
/** Closed union. */
|
|
128
|
+
export type PortableAnnotationAnchor = "fixed" | "latest" | "sticky" | "semantic";
|
|
129
|
+
export interface PortableAnnotationLifecycle {
|
|
130
|
+
freshness?: PortableAnnotationFreshness;
|
|
131
|
+
status?: PortableAnnotationStatus;
|
|
132
|
+
/** provenance.stableId of the annotation this one replaces. */
|
|
133
|
+
supersedes?: string;
|
|
134
|
+
/** ISO 8601 duration string or milliseconds. */
|
|
135
|
+
ttlHint?: string | number;
|
|
136
|
+
anchor?: PortableAnnotationAnchor;
|
|
137
|
+
}
|
|
138
|
+
/** Any annotation may carry the two optional blocks. */
|
|
139
|
+
export type PortableAnnotated<T = Record<string, unknown>> = T & {
|
|
140
|
+
provenance?: PortableAnnotationProvenance;
|
|
141
|
+
lifecycle?: PortableAnnotationLifecycle;
|
|
142
|
+
};
|
|
143
|
+
export interface ValidationResult {
|
|
144
|
+
valid: boolean;
|
|
145
|
+
errors: string[];
|
|
146
|
+
}
|
|
147
|
+
/**
|
|
148
|
+
* Structurally validate a portable chart capability. Dependency-free; mirrors
|
|
149
|
+
* the required/range constraints in chart-capability.schema.json. Not a full
|
|
150
|
+
* JSON-Schema validation — for that, run the published schema through ajv.
|
|
151
|
+
*/
|
|
152
|
+
export declare function validatePortableCapability(value: unknown): ValidationResult;
|
|
153
|
+
/** Structurally validate a portable audience profile. */
|
|
154
|
+
export declare function validatePortableAudienceProfile(value: unknown): ValidationResult;
|
|
155
|
+
/**
|
|
156
|
+
* Structurally validate the provenance + lifecycle blocks on an annotation.
|
|
157
|
+
* Validates only the two IDID blocks; the rest of the annotation (positional
|
|
158
|
+
* fields, type, label) is the host's concern.
|
|
159
|
+
*/
|
|
160
|
+
export declare function validatePortableAnnotation(value: unknown): ValidationResult;
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Outbound Vega-Lite + the IDID-over-Vega-Lite binding (v0.1).
|
|
3
|
+
*
|
|
4
|
+
* `toVegaLite` is the inverse of `fromVegaLite`: a Semiotic ChartConfig back to
|
|
5
|
+
* a Vega-Lite spec. Round-tripping through the dominant interchange format —
|
|
6
|
+
* *with the IDID metadata preserved* — is the portability claim in runnable
|
|
7
|
+
* form.
|
|
8
|
+
*
|
|
9
|
+
* The binding functions (`attachIDID` / `readIDID`, `attachIDIDAnnotations` /
|
|
10
|
+
* `readIDIDAnnotations`) define WHERE the three portable primitives ride on a
|
|
11
|
+
* Vega-Lite spec so the spec and its IDID metadata travel together. The
|
|
12
|
+
* convention is documented in `/spec/README.md`.
|
|
13
|
+
*
|
|
14
|
+
* Pure, dependency-free, no chart-family imports.
|
|
15
|
+
*/
|
|
16
|
+
import type { ChartConfig } from "../../export/chartConfig";
|
|
17
|
+
import type { VegaLiteSpec } from "../fromVegaLite";
|
|
18
|
+
import type { PortableAnnotated, PortableAudienceProfile, PortableChartCapability } from "./spec";
|
|
19
|
+
import type { PortabilityExportResult } from "./result";
|
|
20
|
+
/** Options for the strict, typed outbound Vega-Lite adapter. */
|
|
21
|
+
export interface ToVegaLiteOptions {
|
|
22
|
+
/**
|
|
23
|
+
* Allow a documented approximation. The default is false, so a caller never
|
|
24
|
+
* receives a visually plausible but semantically different Vega-Lite spec by
|
|
25
|
+
* accident.
|
|
26
|
+
*/
|
|
27
|
+
allowLossy?: boolean;
|
|
28
|
+
}
|
|
29
|
+
/** Typed result for Vega-Lite export. A refused result deliberately has no spec. */
|
|
30
|
+
export interface VegaLiteExportResult extends PortabilityExportResult<VegaLiteSpec> {
|
|
31
|
+
spec?: VegaLiteSpec;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Translate a Semiotic ChartConfig into Vega-Lite through an explicit result.
|
|
35
|
+
* Unsupported components are refused by default; pass `allowLossy` only when
|
|
36
|
+
* the caller has chosen to accept the listed semantic loss.
|
|
37
|
+
*/
|
|
38
|
+
export declare function toVegaLiteResult(config: ChartConfig, options?: ToVegaLiteOptions): VegaLiteExportResult;
|
|
39
|
+
/**
|
|
40
|
+
* Convenience wrapper for the supported subset. Returns undefined on refusal
|
|
41
|
+
* rather than synthesizing a placeholder chart; use `toVegaLiteResult()` when
|
|
42
|
+
* a caller needs the structured diagnostic and loss report.
|
|
43
|
+
*/
|
|
44
|
+
export declare function toVegaLite(config: ChartConfig, options?: ToVegaLiteOptions): VegaLiteSpec | undefined;
|
|
45
|
+
/** The metadata block that rides under `usermeta.idid`. */
|
|
46
|
+
export interface IDIDVegaLiteMeta {
|
|
47
|
+
specVersion: string;
|
|
48
|
+
capability?: PortableChartCapability;
|
|
49
|
+
audience?: PortableAudienceProfile;
|
|
50
|
+
/** Provenanced annotations carried alongside the spec. */
|
|
51
|
+
annotations?: PortableAnnotated[];
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Attach a capability descriptor and/or an audience profile to a Vega-Lite
|
|
55
|
+
* spec under `usermeta.idid`. A non-IDID renderer ignores `usermeta`; an
|
|
56
|
+
* IDID-aware host reads it (e.g. to route the capability through a suggestion
|
|
57
|
+
* engine). Returns a new spec; the input is not mutated.
|
|
58
|
+
*/
|
|
59
|
+
export declare function attachIDID(spec: VegaLiteSpec, meta: {
|
|
60
|
+
capability?: PortableChartCapability;
|
|
61
|
+
audience?: PortableAudienceProfile;
|
|
62
|
+
}): VegaLiteSpec;
|
|
63
|
+
/** Read the IDID metadata block from a Vega-Lite spec, if present. */
|
|
64
|
+
export declare function readIDID(spec: VegaLiteSpec): IDIDVegaLiteMeta | undefined;
|
|
65
|
+
/**
|
|
66
|
+
* Attach provenanced/lifecycled annotations to a Vega-Lite spec.
|
|
67
|
+
*
|
|
68
|
+
* The annotations are stored verbatim (with their provenance/lifecycle blocks)
|
|
69
|
+
* under the spec's `usermeta.idid.annotations` — that is the round-trip
|
|
70
|
+
* contract, and it composes with capability/audience metadata under the same
|
|
71
|
+
* key. As a courtesy to non-IDID renderers, each annotation that has a
|
|
72
|
+
* representable shape also emits a best-effort `rule`/`text` mark in an
|
|
73
|
+
* appended layer, so a plain Vega-Lite renderer still draws something. When no
|
|
74
|
+
* annotation is representable, no layer is added (avoiding an invalid empty
|
|
75
|
+
* layer) and the metadata still rides on `usermeta`. Returns a new spec; the
|
|
76
|
+
* input is not mutated.
|
|
77
|
+
*/
|
|
78
|
+
export declare function attachIDIDAnnotations(spec: VegaLiteSpec, annotations: ReadonlyArray<PortableAnnotated>): VegaLiteSpec;
|
|
79
|
+
/** Read provenanced annotations back from a Vega-Lite spec. */
|
|
80
|
+
export declare function readIDIDAnnotations(spec: VegaLiteSpec): PortableAnnotated[];
|
|
@@ -11,6 +11,17 @@ export interface ChartConfig {
|
|
|
11
11
|
createdAt: string;
|
|
12
12
|
/** Optional serialized selection/brush state */
|
|
13
13
|
selections?: SerializedSelections;
|
|
14
|
+
/** Present for portable/local recipe configs. */
|
|
15
|
+
recipeId?: string;
|
|
16
|
+
portable?: boolean;
|
|
17
|
+
reason?: string;
|
|
18
|
+
warnings?: string[];
|
|
19
|
+
manifest?: {
|
|
20
|
+
name: string;
|
|
21
|
+
intents: string[];
|
|
22
|
+
audience?: string[];
|
|
23
|
+
frameFamily: string;
|
|
24
|
+
};
|
|
14
25
|
}
|
|
15
26
|
export interface ToConfigOptions {
|
|
16
27
|
/** Include data arrays in the config. Default: true */
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
export type LatePolicy = "drop" | "keep";
|
|
2
|
+
export interface ReorderBufferConfig<T> {
|
|
3
|
+
/** Grace window in ms. Events older than `watermark − lateness` are late. */
|
|
4
|
+
lateness: number;
|
|
5
|
+
/** Event-time accessor (ms). */
|
|
6
|
+
getTime: (item: T) => number;
|
|
7
|
+
/**
|
|
8
|
+
* What to do with a late event:
|
|
9
|
+
* - `"drop"` (default): discard it (still counted).
|
|
10
|
+
* - `"keep"`: release it immediately, out of order (still counted).
|
|
11
|
+
*/
|
|
12
|
+
latePolicy?: LatePolicy;
|
|
13
|
+
}
|
|
14
|
+
export interface ReorderResult<T> {
|
|
15
|
+
/**
|
|
16
|
+
* Events ready to append to the main buffer now, in event-time order.
|
|
17
|
+
* Already reflects the late policy — dropped late events are excluded.
|
|
18
|
+
*/
|
|
19
|
+
released: T[];
|
|
20
|
+
/** The events that were late this push (informational; for diagnostics). */
|
|
21
|
+
late: T[];
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Buffers pushed events and releases them in event-time order once they
|
|
25
|
+
* fall outside the grace window. Stateful; one instance per series.
|
|
26
|
+
*/
|
|
27
|
+
export declare class ReorderBuffer<T> {
|
|
28
|
+
private readonly lateness;
|
|
29
|
+
private readonly getTime;
|
|
30
|
+
private readonly latePolicy;
|
|
31
|
+
private held;
|
|
32
|
+
private _watermark;
|
|
33
|
+
private _lateCount;
|
|
34
|
+
constructor(config: ReorderBufferConfig<T>);
|
|
35
|
+
/**
|
|
36
|
+
* Ingest one event. Returns the events that became safe to emit (in
|
|
37
|
+
* event-time order) plus any late events seen this push.
|
|
38
|
+
*/
|
|
39
|
+
push(item: T): ReorderResult<T>;
|
|
40
|
+
/** Release all events whose time is at or before `watermark − lateness`. */
|
|
41
|
+
private drain;
|
|
42
|
+
/**
|
|
43
|
+
* Release everything still held, in event-time order — e.g. when the
|
|
44
|
+
* stream ends and the remaining grace-window events should be shown.
|
|
45
|
+
*/
|
|
46
|
+
flush(): T[];
|
|
47
|
+
clear(): void;
|
|
48
|
+
/** Largest event-time seen, or `-Infinity` if empty. */
|
|
49
|
+
get watermark(): number;
|
|
50
|
+
/** Total late events seen since construction (or last `clear`). */
|
|
51
|
+
get lateCount(): number;
|
|
52
|
+
/** Events currently held inside the grace window. */
|
|
53
|
+
get heldCount(): number;
|
|
54
|
+
}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Accumulates count, mean, variance, standard deviation, min, and max
|
|
3
|
+
* over a stream of numbers using Welford's online algorithm.
|
|
4
|
+
*
|
|
5
|
+
* Numerically stable in a single pass — preferred over the naive
|
|
6
|
+
* "sum of squares minus square of sum" form, which loses precision
|
|
7
|
+
* when values are large or closely clustered.
|
|
8
|
+
*/
|
|
9
|
+
export declare class RunningStats {
|
|
10
|
+
private _count;
|
|
11
|
+
private _mean;
|
|
12
|
+
private _m2;
|
|
13
|
+
private _min;
|
|
14
|
+
private _max;
|
|
15
|
+
/**
|
|
16
|
+
* Incorporate a value. O(1). Non-finite values (NaN, ±Infinity) are
|
|
17
|
+
* ignored — they would corrupt every downstream statistic — matching
|
|
18
|
+
* `IncrementalExtent`'s filter so all accumulators agree on what counts.
|
|
19
|
+
*/
|
|
20
|
+
push(value: number): void;
|
|
21
|
+
/**
|
|
22
|
+
* Fold another accumulator's statistics into this one, in O(1),
|
|
23
|
+
* without revisiting the underlying values. Uses the parallel
|
|
24
|
+
* variance combine (Chan, Golub & LeVeque). Associative and
|
|
25
|
+
* commutative up to floating-point rounding — `a.merge(b)` then
|
|
26
|
+
* `a.merge(c)` yields the same result as merging in any order.
|
|
27
|
+
*
|
|
28
|
+
* Merging an empty accumulator is a no-op; merging into an empty
|
|
29
|
+
* accumulator copies the other's state.
|
|
30
|
+
*/
|
|
31
|
+
merge(other: RunningStats): void;
|
|
32
|
+
/** Reset to the empty state. */
|
|
33
|
+
clear(): void;
|
|
34
|
+
/** A detached copy — useful for snapshotting a window before rollup. */
|
|
35
|
+
clone(): RunningStats;
|
|
36
|
+
/** Number of values incorporated. */
|
|
37
|
+
get count(): number;
|
|
38
|
+
/** Arithmetic mean, or 0 when empty. */
|
|
39
|
+
get mean(): number;
|
|
40
|
+
/**
|
|
41
|
+
* Sum of all values. Derived as `mean × count`, so it carries the
|
|
42
|
+
* same (tiny) floating drift as the running mean rather than a
|
|
43
|
+
* separate exact accumulator.
|
|
44
|
+
*/
|
|
45
|
+
get sum(): number;
|
|
46
|
+
/**
|
|
47
|
+
* Population variance (divides by `count`). 0 when fewer than two
|
|
48
|
+
* values have been seen. Use this for a complete window of points —
|
|
49
|
+
* the window *is* the population. See {@link sampleVariance} for the
|
|
50
|
+
* unbiased estimator over a sample.
|
|
51
|
+
*/
|
|
52
|
+
get variance(): number;
|
|
53
|
+
/** Population standard deviation — `sqrt(variance)`. */
|
|
54
|
+
get stddev(): number;
|
|
55
|
+
/**
|
|
56
|
+
* Sample variance (divides by `count − 1`, Bessel's correction).
|
|
57
|
+
* 0 when fewer than two values have been seen.
|
|
58
|
+
*/
|
|
59
|
+
get sampleVariance(): number;
|
|
60
|
+
/** Sample standard deviation — `sqrt(sampleVariance)`. */
|
|
61
|
+
get sampleStddev(): number;
|
|
62
|
+
/** Smallest value seen, or `Infinity` when empty. */
|
|
63
|
+
get min(): number;
|
|
64
|
+
/** Largest value seen, or `-Infinity` when empty. */
|
|
65
|
+
get max(): number;
|
|
66
|
+
}
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
/** The Kafka Streams window taxonomy. */
|
|
2
|
+
export type WindowType = "tumbling" | "hopping" | "session";
|
|
3
|
+
/** Which statistic the aggregated series carries as its primary value. */
|
|
4
|
+
export type AggregateStat = "mean" | "sum" | "min" | "max" | "count";
|
|
5
|
+
/** Envelope drawn around the aggregated series. */
|
|
6
|
+
export type AggregateBand = "stddev" | "minmax" | "none";
|
|
7
|
+
export interface WindowAccumulatorConfig {
|
|
8
|
+
/** Window kind. Defaults to `"tumbling"`. */
|
|
9
|
+
window?: WindowType;
|
|
10
|
+
/**
|
|
11
|
+
* Window width in **milliseconds** (already parsed from any duration
|
|
12
|
+
* string by the caller). For session windows this is unused; pass
|
|
13
|
+
* `gap` instead.
|
|
14
|
+
*/
|
|
15
|
+
size: number;
|
|
16
|
+
/**
|
|
17
|
+
* Advance between consecutive hopping windows, in ms. Only meaningful
|
|
18
|
+
* for `window: "hopping"`; must satisfy `0 < hop ≤ size`. Defaults to
|
|
19
|
+
* `size`, which makes hopping degenerate to tumbling.
|
|
20
|
+
*/
|
|
21
|
+
hop?: number;
|
|
22
|
+
/**
|
|
23
|
+
* Inactivity gap in ms that closes a session. Only meaningful for
|
|
24
|
+
* `window: "session"`. Two events within `gap` of each other (in
|
|
25
|
+
* event-time) share a session; an event bridging two sessions merges
|
|
26
|
+
* them.
|
|
27
|
+
*/
|
|
28
|
+
gap?: number;
|
|
29
|
+
/**
|
|
30
|
+
* Keep at most this many most-recent windows; older windows are
|
|
31
|
+
* pruned on push. Bounds memory for an unbounded stream. Defaults to
|
|
32
|
+
* unbounded (`Infinity`).
|
|
33
|
+
*/
|
|
34
|
+
retain?: number;
|
|
35
|
+
}
|
|
36
|
+
/** A closed or still-filling aggregation window. */
|
|
37
|
+
export interface AggregatedWindow {
|
|
38
|
+
/** Inclusive window start (event-time ms). */
|
|
39
|
+
start: number;
|
|
40
|
+
/** Exclusive window end (event-time ms). */
|
|
41
|
+
end: number;
|
|
42
|
+
/** Number of events in the window. */
|
|
43
|
+
count: number;
|
|
44
|
+
mean: number;
|
|
45
|
+
sum: number;
|
|
46
|
+
min: number;
|
|
47
|
+
max: number;
|
|
48
|
+
/** Population standard deviation. */
|
|
49
|
+
stddev: number;
|
|
50
|
+
/**
|
|
51
|
+
* `true` while the window may still receive events — the trailing,
|
|
52
|
+
* still-filling window(s) up to the latest watermark. Render these
|
|
53
|
+
* distinctly (the partial-bin convention) so a viewer doesn't read a
|
|
54
|
+
* half-filled aggregate as final.
|
|
55
|
+
*/
|
|
56
|
+
partial: boolean;
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Accumulates event-time windowed statistics. Stateful and mutable —
|
|
60
|
+
* one instance per streaming series. Pure with respect to event order.
|
|
61
|
+
*/
|
|
62
|
+
export declare class WindowAccumulator {
|
|
63
|
+
private readonly type;
|
|
64
|
+
private readonly size;
|
|
65
|
+
private readonly hop;
|
|
66
|
+
private readonly gap;
|
|
67
|
+
private readonly retain;
|
|
68
|
+
private windows;
|
|
69
|
+
private sessions;
|
|
70
|
+
private latest;
|
|
71
|
+
constructor(config: WindowAccumulatorConfig);
|
|
72
|
+
/** Incorporate one event. Non-finite time/value are ignored. */
|
|
73
|
+
push(time: number, value: number): void;
|
|
74
|
+
private pushFixed;
|
|
75
|
+
private bump;
|
|
76
|
+
private pushSession;
|
|
77
|
+
private prune;
|
|
78
|
+
/**
|
|
79
|
+
* Snapshot the current windows as aggregated rows, sorted by start.
|
|
80
|
+
* For tumbling/hopping a window is `partial` while the watermark has
|
|
81
|
+
* not yet passed its end; for session windows the most recent session
|
|
82
|
+
* is `partial` while within `gap` of the watermark.
|
|
83
|
+
*/
|
|
84
|
+
emit(): AggregatedWindow[];
|
|
85
|
+
private emitFixed;
|
|
86
|
+
private emitSessions;
|
|
87
|
+
private row;
|
|
88
|
+
/** Number of live windows (or sessions). */
|
|
89
|
+
get windowCount(): number;
|
|
90
|
+
/** The watermark — largest event-time seen, or `-Infinity` if empty. */
|
|
91
|
+
get watermark(): number;
|
|
92
|
+
clear(): void;
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* Pull the primary value for a stat off an aggregated window. `count`
|
|
96
|
+
* reads the event count; the rest read the matching `RunningStats`
|
|
97
|
+
* field.
|
|
98
|
+
*/
|
|
99
|
+
export declare function statValue(w: AggregatedWindow, stat: AggregateStat): number;
|
|
100
|
+
/**
|
|
101
|
+
* Compute the [lower, upper] band bounds for an aggregated window.
|
|
102
|
+
* `stddev` draws `value ± k·σ` around the chosen stat; `minmax` draws
|
|
103
|
+
* the observed range. Returns `null` for `none`.
|
|
104
|
+
*/
|
|
105
|
+
export declare function bandBounds(w: AggregatedWindow, band: AggregateBand, stat: AggregateStat, sigma?: number): [number, number] | null;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Parse a window duration to milliseconds.
|
|
3
|
+
*
|
|
4
|
+
* - A finite number is returned as-is (already milliseconds).
|
|
5
|
+
* - A string is parsed as one or more `<number><unit>` terms summed
|
|
6
|
+
* together: `"1m"`, `"500ms"`, `"1m30s"`.
|
|
7
|
+
*
|
|
8
|
+
* Returns `null` for unparseable input (empty string, unknown unit,
|
|
9
|
+
* non-positive result, non-finite number) so callers can fall back to
|
|
10
|
+
* a default rather than silently bucketing on a zero-width window.
|
|
11
|
+
*/
|
|
12
|
+
export declare function parseWindowDuration(spec: number | string): number | null;
|
|
@@ -205,6 +205,17 @@ export interface RealtimeFrameHandle {
|
|
|
205
205
|
* export a chart-specific handle (e.g. `LikertChartHandle`) that
|
|
206
206
|
* extends this interface and narrows `getScales()`. */
|
|
207
207
|
getScales?(): unknown | null;
|
|
208
|
+
/** The most recent custom layout result (as returned by the chart's
|
|
209
|
+
* `layout(ctx)` function) — host readback so a page that needs the computed
|
|
210
|
+
* placement (stats, inspectors) doesn't re-run the layout function itself.
|
|
211
|
+
* Null before the first layout completes or when the chart has no custom
|
|
212
|
+
* layout. A failed retry can retain the prior result; use
|
|
213
|
+
* `getLayoutFailure()` to distinguish recovery. Typed as `unknown` at this shared boundary; the family frame
|
|
214
|
+
* handles narrow it to their `LayoutResult` shape. */
|
|
215
|
+
getCustomLayout?(): unknown | null;
|
|
216
|
+
/** Latest structured custom-layout failure. Family frame handles narrow this
|
|
217
|
+
* to `CustomLayoutFailureDiagnostic`; absent on frames without layouts. */
|
|
218
|
+
getLayoutFailure?(): unknown | null;
|
|
208
219
|
}
|
|
209
220
|
export interface RealtimeScales {
|
|
210
221
|
time: ScaleLinear<number, number>;
|
|
@@ -51,6 +51,13 @@ export interface AnnotationLayoutConfig {
|
|
|
51
51
|
responsive?: boolean | {
|
|
52
52
|
minWidth?: number;
|
|
53
53
|
};
|
|
54
|
+
/**
|
|
55
|
+
* Mobile annotation policy. This composes the existing responsive + density +
|
|
56
|
+
* progressive-disclosure passes into a phone-friendly default: keep the core
|
|
57
|
+
* notes persistent, collapse secondary notes, and prefer short/mobile copy
|
|
58
|
+
* when provided. Off by default.
|
|
59
|
+
*/
|
|
60
|
+
mobile?: boolean | AnnotationMobileConfig;
|
|
54
61
|
/**
|
|
55
62
|
* M5 — cohesion mode (Rahman et al.'s "Cohesion"). `"blended"` lets notes
|
|
56
63
|
* adopt the chart's visual language (mark colors / chart typography — the
|
|
@@ -69,6 +76,28 @@ export interface AnnotationLayoutConfig {
|
|
|
69
76
|
audience?: AnnotationAudience;
|
|
70
77
|
}
|
|
71
78
|
export type AnnotationCohesion = "blended" | "layer";
|
|
79
|
+
export interface AnnotationMobileConfig {
|
|
80
|
+
/** Width at or below which mobile behavior activates. Default 480px. */
|
|
81
|
+
breakpoint?: number;
|
|
82
|
+
/** Plot-only, callout-list, or hybrid mobile note behavior. */
|
|
83
|
+
strategy?: "plot" | "callout-list" | "hybrid";
|
|
84
|
+
/** Max persistent notes at phone width. Default 2. */
|
|
85
|
+
maxAnnotations?: number;
|
|
86
|
+
/** Maximum notes expected to move into an external mobile callout list. */
|
|
87
|
+
maxCalloutItems?: number;
|
|
88
|
+
/** Minimum notes kept regardless of budget. Default 1. */
|
|
89
|
+
minVisible?: number;
|
|
90
|
+
/** Keep shed notes hidden/revealable rather than dropping them. Default true. */
|
|
91
|
+
progressiveDisclosure?: boolean;
|
|
92
|
+
/** Responsive breakpoint override. Defaults to `breakpoint`. */
|
|
93
|
+
responsive?: boolean | {
|
|
94
|
+
minWidth?: number;
|
|
95
|
+
};
|
|
96
|
+
/** Annotation cohesion to apply at phone width. */
|
|
97
|
+
cohesion?: AnnotationCohesion;
|
|
98
|
+
/** Prefer annotation.mobileText / shortText for label text. Default true. */
|
|
99
|
+
preferShortText?: boolean;
|
|
100
|
+
}
|
|
72
101
|
/** Structural subset of `AudienceProfile` the annotation layer reads — anything
|
|
73
102
|
* with a per-chart `familiarity` map satisfies it, so a real `AudienceProfile`
|
|
74
103
|
* can be passed directly without coupling `recipes` to the `ai` module. */
|