semiotic 3.7.5 → 3.8.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CLAUDE.md +63 -18
- package/README.md +121 -27
- package/agent-skill/semiotic-charts/SKILL.md +146 -0
- package/ai/cli.js +133 -45
- package/ai/componentMetadata.cjs +6 -1
- package/ai/dist/mcp-server.js +1741 -163
- package/ai/examples.md +174 -0
- package/ai/schema.json +2733 -536
- package/ai/surface-manifest.json +201 -0
- package/ai/system-prompt.md +20 -4
- package/dist/__tests__/scenarios/mcpProtocolTypes.d.ts +20 -0
- package/dist/components/AccessibleNavTree.d.ts +7 -1
- package/dist/components/CategoryColors.d.ts +1 -1
- package/dist/components/ChartContainer.d.ts +91 -0
- package/dist/components/ChartGrid.d.ts +11 -1
- package/dist/components/CircularBrush.d.ts +61 -0
- package/dist/components/ContextLayout.d.ts +5 -1
- package/dist/components/DirectManipulationControl.d.ts +63 -0
- package/dist/components/LinkedCharts.d.ts +3 -1
- package/dist/components/MobileAnnotationCalloutList.d.ts +13 -0
- package/dist/components/MobileChartContainer.d.ts +51 -0
- package/dist/components/MobileStandardControls.d.ts +68 -0
- package/dist/components/SmallMultipleChart.d.ts +84 -0
- package/dist/components/Tooltip/FlippingTooltip.d.ts +21 -0
- package/dist/components/ai/ChartRecipe.d.ts +16 -0
- package/dist/components/ai/IntentMark.d.ts +15 -0
- package/dist/components/ai/chartCapabilities.d.ts +8 -1
- package/dist/components/ai/chartCapabilityTypes.d.ts +26 -1
- package/dist/components/ai/chartClinic.d.ts +91 -0
- package/dist/components/ai/chartClinicMetadata.generated.d.ts +15 -0
- package/dist/components/ai/chartRecipeRegistry.d.ts +14 -0
- package/dist/components/ai/chartRecipes.d.ts +278 -0
- package/dist/components/ai/dataPitfallsBridge.d.ts +102 -0
- package/dist/components/ai/describeChart.d.ts +7 -0
- package/dist/components/ai/describeRecipeChart.d.ts +16 -0
- package/dist/components/ai/generativeChart.d.ts +28 -3
- package/dist/components/ai/intentManifest.d.ts +62 -0
- package/dist/components/ai/navigationTree.d.ts +3 -0
- package/dist/components/ai/observedSceneAudit.d.ts +72 -0
- package/dist/components/ai/readerGrounding.d.ts +83 -0
- package/dist/components/ai/recipeCapability.d.ts +8 -0
- package/dist/components/ai/recipeNavigation.d.ts +13 -0
- package/dist/components/ai/recipeSemantics.d.ts +11 -0
- package/dist/components/ai/repairChartConfig.d.ts +9 -0
- package/dist/components/ai/suggestCharts.d.ts +11 -1
- package/dist/components/ai/useNavigationSync.d.ts +17 -2
- package/dist/components/chartContainerMobile.d.ts +9 -0
- package/dist/components/charts/custom/GeoCustomChart.d.ts +48 -0
- package/dist/components/charts/custom/NetworkCustomChart.d.ts +8 -2
- package/dist/components/charts/custom/OrdinalCustomChart.d.ts +8 -2
- package/dist/components/charts/custom/XYCustomChart.d.ts +11 -2
- package/dist/components/charts/geo/ChoroplethMap.d.ts +19 -2
- package/dist/components/charts/geo/DistanceCartogram.d.ts +15 -3
- package/dist/components/charts/geo/FlowMap.d.ts +11 -7
- package/dist/components/charts/geo/ProportionalSymbolMap.d.ts +15 -3
- package/dist/components/charts/geo/index.d.ts +2 -0
- package/dist/components/charts/index.d.ts +35 -1
- package/dist/components/charts/network/ChordDiagram.d.ts +10 -2
- package/dist/components/charts/network/CirclePack.d.ts +1 -1
- package/dist/components/charts/network/ForceDirectedGraph.d.ts +26 -5
- package/dist/components/charts/network/OrbitDiagram.d.ts +1 -1
- package/dist/components/charts/network/ProcessSankey.d.ts +1 -1
- package/dist/components/charts/network/SankeyDiagram.d.ts +10 -2
- package/dist/components/charts/network/TreeDiagram.d.ts +1 -1
- package/dist/components/charts/network/Treemap.d.ts +1 -1
- package/dist/components/charts/network/useForceLayout.d.ts +17 -0
- package/dist/components/charts/ordinal/BarChart.d.ts +22 -1
- package/dist/components/charts/ordinal/BoxPlot.d.ts +1 -1
- package/dist/components/charts/ordinal/DonutChart.d.ts +1 -1
- package/dist/components/charts/ordinal/DotPlot.d.ts +1 -1
- package/dist/components/charts/ordinal/FunnelChart.d.ts +1 -1
- package/dist/components/charts/ordinal/GroupedBarChart.d.ts +12 -1
- package/dist/components/charts/ordinal/Histogram.d.ts +1 -1
- package/dist/components/charts/ordinal/PieChart.d.ts +1 -1
- package/dist/components/charts/ordinal/RidgelinePlot.d.ts +1 -1
- package/dist/components/charts/ordinal/StackedBarChart.d.ts +12 -1
- package/dist/components/charts/ordinal/SwarmPlot.d.ts +1 -1
- package/dist/components/charts/ordinal/SwimlaneChart.d.ts +1 -1
- package/dist/components/charts/ordinal/ViolinPlot.d.ts +1 -1
- package/dist/components/charts/physics/ChainReactionChart.d.ts +9 -0
- package/dist/components/charts/physics/CollisionSwarmChart.capability.d.ts +2 -0
- package/dist/components/charts/physics/CollisionSwarmChart.d.ts +54 -0
- package/dist/components/charts/physics/EventDropChart.capability.d.ts +2 -0
- package/dist/components/charts/physics/EventDropChart.d.ts +60 -0
- package/dist/components/charts/physics/GaltonBoardChart.capability.d.ts +2 -0
- package/dist/components/charts/physics/GaltonBoardChart.d.ts +74 -0
- package/dist/components/charts/physics/GauntletChart.capability.d.ts +2 -0
- package/dist/components/charts/physics/GauntletChart.d.ts +73 -0
- package/dist/components/charts/physics/PhysicalFlowChart.capability.d.ts +2 -0
- package/dist/components/charts/physics/PhysicalFlowChart.d.ts +63 -0
- package/dist/components/charts/physics/PhysicsCustomChart.d.ts +99 -0
- package/dist/components/charts/physics/PhysicsPileChart.capability.d.ts +2 -0
- package/dist/components/charts/physics/PhysicsPileChart.d.ts +60 -0
- package/dist/components/charts/physics/ProcessFlowChart.capability.d.ts +2 -0
- package/dist/components/charts/physics/ProcessFlowChart.d.ts +96 -0
- package/dist/components/charts/physics/chainReactionOverlay.d.ts +22 -0
- package/dist/components/charts/physics/chainReactionRuntime.d.ts +37 -0
- package/dist/components/charts/physics/chainReactionTypes.d.ts +97 -0
- package/dist/components/charts/physics/collisionSwarmPhysics.d.ts +27 -0
- package/dist/components/charts/physics/dependencyMachine.d.ts +188 -0
- package/dist/components/charts/physics/eventDropPhysics.d.ts +64 -0
- package/dist/components/charts/physics/galtonBoardPhysics.d.ts +28 -0
- package/dist/components/charts/physics/gauntletChartProps.d.ts +67 -0
- package/dist/components/charts/physics/gauntletChrome.d.ts +33 -0
- package/dist/components/charts/physics/gauntletController.d.ts +73 -0
- package/dist/components/charts/physics/gauntletEffects.d.ts +36 -0
- package/dist/components/charts/physics/gauntletPhysics.d.ts +71 -0
- package/dist/components/charts/physics/gauntletRuntime.d.ts +42 -0
- package/dist/components/charts/physics/gauntletTypes.d.ts +213 -0
- package/dist/components/charts/physics/physicalFlowPhysics.d.ts +57 -0
- package/dist/components/charts/physics/physicsChartShared.d.ts +57 -0
- package/dist/components/charts/physics/physicsChartUtils.d.ts +18 -0
- package/dist/components/charts/physics/physicsCustomLayout.d.ts +32 -0
- package/dist/components/charts/physics/physicsEncoding.d.ts +142 -0
- package/dist/components/charts/physics/physicsHocHandle.d.ts +53 -0
- package/dist/components/charts/physics/physicsHocUtils.d.ts +128 -0
- package/dist/components/charts/physics/physicsPilePhysics.d.ts +41 -0
- package/dist/components/charts/physics/physicsProcessPrimitives.d.ts +38 -0
- package/dist/components/charts/physics/processFlowPhysics.d.ts +97 -0
- package/dist/components/charts/realtime/RealtimeHeatmap.d.ts +9 -1
- package/dist/components/charts/realtime/RealtimeHistogram.d.ts +9 -1
- package/dist/components/charts/realtime/RealtimeLineChart.d.ts +9 -1
- package/dist/components/charts/realtime/RealtimeSwarmChart.d.ts +16 -2
- package/dist/components/charts/realtime/RealtimeWaterfallChart.d.ts +9 -1
- package/dist/components/charts/shared/AnnotationLabel.d.ts +88 -0
- package/dist/components/charts/shared/annotationActivation.d.ts +35 -0
- package/dist/components/charts/shared/annotationLabelLayout.d.ts +5 -0
- package/dist/components/charts/shared/annotationRules.d.ts +2 -1
- package/dist/components/charts/shared/auditMobileVisualization.d.ts +91 -0
- package/dist/components/charts/shared/chartDefinitionPilot.d.ts +145 -0
- package/dist/components/charts/shared/chartFamilySets.d.ts +20 -0
- package/dist/components/charts/shared/chartSelectionUtils.d.ts +4 -0
- package/dist/components/charts/shared/chartSpecCore.d.ts +165 -0
- package/dist/components/charts/shared/chartSpecs.d.ts +8 -127
- package/dist/components/charts/shared/chartSpecsGeo.d.ts +2 -0
- package/dist/components/charts/shared/chartSpecsNetwork.d.ts +2 -0
- package/dist/components/charts/shared/chartSpecsOrdinal.d.ts +2 -0
- package/dist/components/charts/shared/chartSpecsPhysics.d.ts +2 -0
- package/dist/components/charts/shared/chartSpecsRealtime.d.ts +2 -0
- package/dist/components/charts/shared/chartSpecsValue.d.ts +2 -0
- package/dist/components/charts/shared/chartSpecsXY.d.ts +2 -0
- package/dist/components/charts/shared/colorContrast.d.ts +3 -0
- package/dist/components/charts/shared/colorUtils.d.ts +16 -1
- package/dist/components/charts/shared/datumTypes.d.ts +2 -0
- package/dist/components/charts/shared/diagnoseAnnotationChecks.d.ts +6 -0
- package/dist/components/charts/shared/diagnoseConfig.d.ts +9 -14
- package/dist/components/charts/shared/diagnoseMisleadingChecks.d.ts +9 -0
- package/dist/components/charts/shared/diagnosePhysicsChecks.d.ts +3 -0
- package/dist/components/charts/shared/diagnoseTypes.d.ts +10 -0
- package/dist/components/charts/shared/formatUtils.d.ts +3 -3
- package/dist/components/charts/shared/hatchFill.d.ts +87 -0
- package/dist/components/charts/shared/hooks.d.ts +34 -10
- package/dist/components/charts/shared/knownChartComponents.d.ts +9 -0
- package/dist/components/charts/shared/leastSquaresRegression.d.ts +16 -0
- package/dist/components/charts/shared/mergeShapeStyle.d.ts +3 -2
- package/dist/components/charts/shared/motionEncoding.d.ts +145 -0
- package/dist/components/charts/shared/responsiveRules.d.ts +56 -0
- package/dist/components/charts/shared/semanticInteractions.d.ts +42 -0
- package/dist/components/charts/shared/sparseArray.d.ts +1 -1
- package/dist/components/charts/shared/streamPropsHelpers.d.ts +17 -5
- package/dist/components/charts/shared/styleRules.d.ts +205 -0
- package/dist/components/charts/shared/temporalStrings.d.ts +7 -0
- package/dist/components/charts/shared/tooltipUtils.d.ts +22 -9
- package/dist/components/charts/shared/types.d.ts +58 -7
- package/dist/components/charts/shared/useAreaSeriesSetup.d.ts +16 -2
- package/dist/components/charts/shared/useChartSetup.d.ts +11 -4
- package/dist/components/charts/shared/useCustomChartSetup.d.ts +17 -5
- package/dist/components/charts/shared/useFrameImperativeHandle.d.ts +1 -2
- package/dist/components/charts/shared/useLikertAggregation.d.ts +4 -4
- package/dist/components/charts/shared/useNetworkChartSetup.d.ts +6 -2
- package/dist/components/charts/shared/useOrdinalBrush.d.ts +2 -1
- package/dist/components/charts/shared/useOrdinalPieceStyle.d.ts +25 -2
- package/dist/components/charts/shared/useStreamingLegend.d.ts +2 -2
- package/dist/components/charts/shared/useSyncedPushData.d.ts +49 -0
- package/dist/components/charts/shared/useXYLineStyle.d.ts +10 -0
- package/dist/components/charts/shared/useXYPointStyle.d.ts +19 -1
- package/dist/components/charts/shared/validateChartData.d.ts +7 -5
- package/dist/components/charts/shared/validationMap.d.ts +7 -9
- package/dist/components/charts/shared/validationMap.generated.d.ts +6 -0
- package/dist/components/charts/shared/withChartWrapper.d.ts +4 -3
- package/dist/components/charts/value/targetPresentation.d.ts +22 -0
- package/dist/components/charts/value/types.d.ts +5 -6
- package/dist/components/charts/xy/AreaChart.d.ts +9 -1
- package/dist/components/charts/xy/BubbleChart.d.ts +10 -1
- package/dist/components/charts/xy/ConnectedScatterplot.d.ts +7 -0
- package/dist/components/charts/xy/DifferenceChart.d.ts +1 -52
- package/dist/components/charts/xy/Heatmap.d.ts +2 -2
- package/dist/components/charts/xy/LineChart.d.ts +12 -1
- package/dist/components/charts/xy/MinimapChart.d.ts +1 -1
- package/dist/components/charts/xy/MultiAxisLineChart.d.ts +2 -2
- package/dist/components/charts/xy/QuadrantChart.d.ts +8 -1
- package/dist/components/charts/xy/Scatterplot.d.ts +11 -1
- package/dist/components/charts/xy/ScatterplotMatrix.d.ts +11 -1
- package/dist/components/charts/xy/StackedAreaChart.d.ts +16 -4
- package/dist/components/charts/xy/differenceSegments.d.ts +49 -0
- package/dist/components/charts/xy/scatterplotMatrixInteractionTypes.d.ts +12 -0
- package/dist/components/controls/SentenceFilter.d.ts +97 -0
- package/dist/components/controls/controlAudit.d.ts +24 -0
- package/dist/components/controls/controlContract.d.ts +57 -0
- package/dist/components/data/fromFlintChart.d.ts +74 -0
- package/dist/components/data/fromVegaLite.d.ts +46 -9
- package/dist/components/data/portability/index.d.ts +6 -3
- package/dist/components/data/portability/result.d.ts +52 -0
- package/dist/components/data/portability/spec.d.ts +31 -0
- package/dist/components/data/portability/vegaLite.d.ts +24 -6
- package/dist/components/export/chartConfig.d.ts +11 -0
- package/dist/components/realtime/types.d.ts +11 -0
- package/dist/components/recipes/annotationLayout.d.ts +29 -0
- package/dist/components/recipes/axisFixedForce.d.ts +119 -0
- package/dist/components/recipes/{gofishBoba.d.ts → boba.d.ts} +2 -2
- package/dist/components/recipes/cyclical.d.ts +39 -0
- package/dist/components/recipes/edgeRouter.d.ts +103 -0
- package/dist/components/recipes/forceLayout.d.ts +48 -0
- package/dist/components/recipes/forceLayoutAsync.d.ts +17 -0
- package/dist/components/recipes/gofishBobaHandwritten.d.ts +3 -0
- package/dist/components/recipes/gofishDisplayListFixtures.generated.d.ts +37 -0
- package/dist/components/recipes/gofishIR.d.ts +178 -132
- package/dist/components/recipes/gofishIRExamples.d.ts +30 -81
- package/dist/components/recipes/intervalLanes.d.ts +87 -0
- package/dist/components/recipes/intervals.d.ts +80 -0
- package/dist/components/recipes/isometricLandmarks.d.ts +88 -0
- package/dist/components/recipes/isotypeGlyphs.d.ts +17 -0
- package/dist/components/recipes/mobileAnnotationStrategy.d.ts +48 -0
- package/dist/components/recipes/mobileChartFamilyRecipes.d.ts +59 -0
- package/dist/components/recipes/networkAnalysis.d.ts +102 -0
- package/dist/components/recipes/networkLayouts.d.ts +83 -0
- package/dist/components/recipes/physics.d.ts +122 -0
- package/dist/components/recipes/physicsReference.d.ts +102 -0
- package/dist/components/recipes/processAggregates.d.ts +32 -0
- package/dist/components/recipes/processChrome.d.ts +67 -0
- package/dist/components/recipes/processJourney.d.ts +54 -0
- package/dist/components/recipes/processPhysics.d.ts +300 -0
- package/dist/components/recipes/processVolumeGeometry.d.ts +28 -0
- package/dist/components/recipes/radialCoords.d.ts +69 -0
- package/dist/components/recipes/random.d.ts +2 -0
- package/dist/components/recipes/recipeChrome.d.ts +91 -0
- package/dist/components/recipes/recipeGlyph.d.ts +42 -0
- package/dist/components/recipes/recipeLegend.d.ts +53 -1
- package/dist/components/recipes/recipeUtils.d.ts +52 -0
- package/dist/components/recipes/runs.d.ts +59 -0
- package/dist/components/recipes/tokenEncoding.d.ts +157 -0
- package/dist/components/recipes/tokenLayer.d.ts +79 -0
- package/dist/components/recipes/unitize.d.ts +108 -0
- package/dist/components/recipes/vector.d.ts +28 -0
- package/dist/components/recipes/waffle.d.ts +43 -0
- package/dist/components/rough/createRoughRenderMode.d.ts +46 -0
- package/dist/components/semiotic-ai-core.d.ts +47 -0
- package/dist/components/semiotic-ai.d.ts +53 -9
- package/dist/components/semiotic-controls.d.ts +20 -0
- package/dist/components/semiotic-experimental.d.ts +38 -9
- package/dist/components/semiotic-geo.d.ts +15 -0
- package/dist/components/semiotic-network.d.ts +15 -0
- package/dist/components/semiotic-ordinal.d.ts +14 -0
- package/dist/components/semiotic-physics-matter.d.ts +10 -0
- package/dist/components/semiotic-physics-rapier.d.ts +9 -0
- package/dist/components/semiotic-physics.d.ts +60 -0
- package/dist/components/semiotic-realtime-core.d.ts +34 -0
- package/dist/components/semiotic-realtime-react.d.ts +10 -0
- package/dist/components/semiotic-realtime.d.ts +4 -30
- package/dist/components/semiotic-recipes-core.d.ts +92 -0
- package/dist/components/semiotic-recipes-react.d.ts +7 -0
- package/dist/components/semiotic-recipes.d.ts +4 -43
- package/dist/components/semiotic-rough.d.ts +4 -0
- package/dist/components/semiotic-server-edge.d.ts +8 -0
- package/dist/components/semiotic-server-node.d.ts +5 -0
- package/dist/components/semiotic-server.d.ts +2 -2
- package/dist/components/semiotic-themes-core.d.ts +53 -0
- package/dist/components/semiotic-themes-react.d.ts +4 -0
- package/dist/components/semiotic-themes.d.ts +6 -76
- package/dist/components/semiotic-utils-core.d.ts +50 -0
- package/dist/components/semiotic-utils-react.d.ts +5 -0
- package/dist/components/semiotic-utils.d.ts +3 -39
- package/dist/components/semiotic-xy.d.ts +12 -0
- package/dist/components/semiotic.d.ts +44 -8
- package/dist/components/server/animatedGif.d.ts +36 -0
- package/dist/components/server/optionalImageTypes.d.ts +37 -0
- package/dist/components/server/renderEvidence.d.ts +1 -1
- package/dist/components/server/renderToStaticSVG.d.ts +3 -35
- package/dist/components/server/serverChartConfigShared.d.ts +21 -0
- package/dist/components/server/serverChartConfigs.d.ts +22 -12
- package/dist/components/server/serverChartConfigsCustom.d.ts +5 -0
- package/dist/components/server/serverChartConfigsGeo.d.ts +9 -0
- package/dist/components/server/serverChartConfigsNetwork.d.ts +8 -0
- package/dist/components/server/serverChartConfigsOrdinal.d.ts +16 -0
- package/dist/components/server/serverChartConfigsPhysics.d.ts +9 -0
- package/dist/components/server/serverChartConfigsXY.d.ts +11 -0
- package/dist/components/server/staticAnnotations.d.ts +6 -3
- package/dist/components/server/staticGeo.d.ts +4 -0
- package/dist/components/server/staticLegend.d.ts +2 -2
- package/dist/components/server/staticNetwork.d.ts +8 -0
- package/dist/components/server/staticOrdinal.d.ts +11 -0
- package/dist/components/server/staticPhysics.d.ts +3 -0
- package/dist/components/server/staticSVGChrome.d.ts +110 -0
- package/dist/components/server/staticXY.d.ts +4 -0
- package/dist/components/store/ObservationStore.d.ts +23 -2
- package/dist/components/store/themeSerialization.d.ts +32 -0
- package/dist/components/store/useChartInterrogation.d.ts +9 -0
- package/dist/components/stream/AccessibleDataTable.d.ts +7 -23
- package/dist/components/stream/AriaLiveTooltip.d.ts +9 -0
- package/dist/components/stream/CanvasHitTester.d.ts +4 -4
- package/dist/components/stream/DataSourceAdapter.d.ts +1 -1
- package/dist/components/stream/FocusRing.d.ts +4 -2
- package/dist/components/stream/FrameRuntime.d.ts +57 -0
- package/dist/components/stream/GeoCanvasHitTester.d.ts +1 -1
- package/dist/components/stream/GeoParticlePool.d.ts +1 -1
- package/dist/components/stream/GeoPipelineStore.d.ts +62 -3
- package/dist/components/stream/GeoSVGOverlay.d.ts +64 -0
- package/dist/components/stream/NetworkCanvasHitTester.d.ts +2 -1
- package/dist/components/stream/NetworkPipelineStore.d.ts +44 -36
- package/dist/components/stream/NetworkSSRFrame.d.ts +17 -0
- package/dist/components/stream/NetworkSVGOverlay.d.ts +10 -1
- package/dist/components/stream/OrdinalCanvasHitTester.d.ts +2 -2
- package/dist/components/stream/OrdinalPipelineStore.d.ts +55 -11
- package/dist/components/stream/OrdinalSVGOverlay.d.ts +9 -1
- package/dist/components/stream/OrdinalStyleResolver.d.ts +12 -0
- package/dist/components/stream/ParticlePool.d.ts +1 -1
- package/dist/components/stream/PipelineStore.d.ts +81 -174
- package/dist/components/stream/SVGOverlay.d.ts +6 -0
- package/dist/components/stream/SceneGraph.d.ts +12 -4
- package/dist/components/stream/StreamGeoFrame.d.ts +1 -1
- package/dist/components/stream/StreamNetworkFrame.d.ts +1 -1
- package/dist/components/stream/StreamOrdinalFrame.d.ts +1 -1
- package/dist/components/stream/StreamXYFrame.d.ts +2 -18
- package/dist/components/stream/accessibleDataRows.d.ts +33 -0
- package/dist/components/stream/accessorUtils.d.ts +25 -12
- package/dist/components/stream/annotationAccessorResolver.d.ts +2 -2
- package/dist/components/stream/brushAccessibility.d.ts +25 -0
- package/dist/components/stream/canvasBackground.d.ts +24 -0
- package/dist/components/stream/canvasSetup.d.ts +4 -1
- package/dist/components/stream/customLayoutFailure.d.ts +33 -0
- package/dist/components/stream/customLayoutPalette.d.ts +19 -9
- package/dist/components/stream/frameGraphics.d.ts +4 -0
- package/dist/components/stream/frameKeyboardNavigation.d.ts +45 -0
- package/dist/components/stream/frameThemeColors.d.ts +24 -0
- package/dist/components/stream/geoAnnotationAnchors.d.ts +14 -0
- package/dist/components/stream/geoCartogram.d.ts +17 -0
- package/dist/components/stream/geoCustomLayout.d.ts +59 -0
- package/dist/components/stream/geoDefaultTooltip.d.ts +11 -0
- package/dist/components/stream/geoFrameHelpers.d.ts +34 -0
- package/dist/components/stream/geoPipelineHelpers.d.ts +46 -0
- package/dist/components/stream/geoPipelineUpdateResults.d.ts +34 -0
- package/dist/components/stream/geoSceneBuilder.d.ts +16 -0
- package/dist/components/stream/geoTypes.d.ts +97 -15
- package/dist/components/stream/glyphDef.d.ts +98 -0
- package/dist/components/stream/hitTarget.d.ts +170 -0
- package/dist/components/stream/hitTestUtils.d.ts +2 -2
- package/dist/components/stream/hoverUtils.d.ts +7 -2
- package/dist/components/stream/keyboardNav.d.ts +4 -1
- package/dist/components/stream/layouts/forceLayoutPlugin.d.ts +9 -1
- package/dist/components/stream/layouts/forceLayoutWorkerClient.d.ts +58 -0
- package/dist/components/stream/layouts/hierarchyUtils.d.ts +2 -2
- package/dist/components/stream/networkBezier.d.ts +10 -0
- package/dist/components/stream/networkColorAccessors.d.ts +49 -0
- package/dist/components/stream/networkCustomLayoutRunner.d.ts +23 -0
- package/dist/components/stream/networkCustomRestyle.d.ts +15 -0
- package/dist/components/stream/networkDefaultTooltip.d.ts +10 -0
- package/dist/components/stream/networkFrameAnimation.d.ts +7 -0
- package/dist/components/stream/networkFrameHandleTypes.d.ts +39 -0
- package/dist/components/stream/networkFrameInteraction.d.ts +37 -0
- package/dist/components/stream/networkFrameObservations.d.ts +15 -0
- package/dist/components/stream/networkFramePaint.d.ts +52 -0
- package/dist/components/stream/networkInteractionTypes.d.ts +26 -0
- package/dist/components/stream/networkPipelineConfig.d.ts +22 -0
- package/dist/components/stream/networkPipelineHelpers.d.ts +12 -0
- package/dist/components/stream/networkPipelineUpdateResults.d.ts +38 -0
- package/dist/components/stream/networkRealtimeEncoding.d.ts +41 -0
- package/dist/components/stream/networkTypes.d.ts +103 -51
- package/dist/components/stream/ordinalCanvasRenderers.d.ts +7 -0
- package/dist/components/stream/ordinalDataIndex.d.ts +5 -0
- package/dist/components/stream/ordinalDefaultTooltip.d.ts +10 -0
- package/dist/components/stream/ordinalDomain.d.ts +38 -0
- package/dist/components/stream/ordinalPipelineUpdateResults.d.ts +31 -0
- package/dist/components/stream/ordinalPulse.d.ts +10 -0
- package/dist/components/stream/ordinalPulseResources.d.ts +3 -0
- package/dist/components/stream/ordinalSceneBuilders/sceneBuilderMap.d.ts +5 -0
- package/dist/components/stream/ordinalSceneBuilders/types.d.ts +2 -2
- package/dist/components/stream/ordinalSpatialIndex.d.ts +9 -0
- package/dist/components/stream/ordinalTypes.d.ts +68 -9
- package/dist/components/stream/paintNeeds.d.ts +31 -0
- package/dist/components/stream/physics/CapacityQueueController.d.ts +5 -0
- package/dist/components/stream/physics/CapacityQueueTypes.d.ts +134 -0
- package/dist/components/stream/physics/MatterPhysicsEngineAdapter.d.ts +42 -0
- package/dist/components/stream/physics/PhysicsAccessibility.d.ts +48 -0
- package/dist/components/stream/physics/PhysicsAnnotations.d.ts +58 -0
- package/dist/components/stream/physics/PhysicsBodyBudget.d.ts +26 -0
- package/dist/components/stream/physics/PhysicsBodySpatialIndex.d.ts +10 -0
- package/dist/components/stream/physics/PhysicsCanvasTheme.d.ts +26 -0
- package/dist/components/stream/physics/PhysicsControllers.d.ts +75 -0
- package/dist/components/stream/physics/PhysicsEngineAdapter.d.ts +59 -0
- package/dist/components/stream/physics/PhysicsEngineConformance.d.ts +23 -0
- package/dist/components/stream/physics/PhysicsEvidence.d.ts +25 -0
- package/dist/components/stream/physics/PhysicsKernel.d.ts +207 -0
- package/dist/components/stream/physics/PhysicsOptionalEngineAdapters.d.ts +12 -0
- package/dist/components/stream/physics/PhysicsPipelineStore.d.ts +86 -0
- package/dist/components/stream/physics/PhysicsPipelineTypes.d.ts +181 -0
- package/dist/components/stream/physics/PhysicsSVGOverlay.d.ts +78 -0
- package/dist/components/stream/physics/PhysicsSediment.d.ts +69 -0
- package/dist/components/stream/physics/PhysicsSettledSVG.d.ts +18 -0
- package/dist/components/stream/physics/PhysicsSettledScene.d.ts +21 -0
- package/dist/components/stream/physics/PhysicsWorkerClient.d.ts +24 -0
- package/dist/components/stream/physics/PhysicsWorkerProtocol.d.ts +101 -0
- package/dist/components/stream/physics/PhysicsWorkerRuntime.d.ts +5 -0
- package/dist/components/stream/physics/RapierPhysicsEngineAdapter.d.ts +18 -0
- package/dist/components/stream/physics/ServiceOperationsControllers.d.ts +27 -0
- package/dist/components/stream/physics/ServiceOperationsTypes.d.ts +89 -0
- package/dist/components/stream/physics/StreamPhysicsFrame.d.ts +6 -0
- package/dist/components/stream/physics/StreamPhysicsTypes.d.ts +317 -0
- package/dist/components/stream/physics/physicsBodyCanvas.d.ts +27 -0
- package/dist/components/stream/physics/physicsFrameObservations.d.ts +19 -0
- package/dist/components/stream/physics/physicsFrameSetup.d.ts +4 -0
- package/dist/components/stream/physics/physicsPipelineControls.d.ts +4 -0
- package/dist/components/stream/physics/physicsPipelineHelpers.d.ts +41 -0
- package/dist/components/stream/physics/physicsPipelineObservations.d.ts +14 -0
- package/dist/components/stream/physics/physicsPipelineUpdateResults.d.ts +27 -0
- package/dist/components/stream/physics/physicsRegionRuntime.d.ts +54 -0
- package/dist/components/stream/physics/physicsSemanticUI.d.ts +20 -0
- package/dist/components/stream/physics/usePhysicsFrameLifecyclePolicy.d.ts +18 -0
- package/dist/components/stream/pipelineBufferUtils.d.ts +26 -0
- package/dist/components/stream/pipelineConfig.d.ts +179 -0
- package/dist/components/stream/pipelineDecay.d.ts +21 -3
- package/dist/components/stream/pipelineDomainResolution.d.ts +62 -0
- package/dist/components/stream/pipelineIdentityOps.d.ts +26 -0
- package/dist/components/stream/pipelinePulse.d.ts +17 -3
- package/dist/components/stream/pipelineRibbons.d.ts +41 -0
- package/dist/components/stream/pipelineSpatialIndex.d.ts +12 -0
- package/dist/components/stream/pipelineStoreUpdateResults.d.ts +33 -0
- package/dist/components/stream/pipelineStyleResolvers.d.ts +46 -0
- package/dist/components/stream/pipelineTransitions.d.ts +3 -1
- package/dist/components/stream/pipelineUpdateContract.d.ts +69 -0
- package/dist/components/stream/pipelineUpdateStore.d.ts +21 -0
- package/dist/components/stream/pulseFrameRefresh.d.ts +22 -0
- package/dist/components/stream/renderBackend.d.ts +27 -0
- package/dist/components/stream/renderers/canvasRenderHelpers.d.ts +15 -1
- package/dist/components/stream/renderers/geoCanvasRenderer.d.ts +3 -2
- package/dist/components/stream/renderers/glyphCanvasRenderer.d.ts +6 -0
- package/dist/components/stream/renderers/networkParticleRenderer.d.ts +1 -1
- package/dist/components/stream/renderers/resolveCSSColor.d.ts +6 -0
- package/dist/components/stream/sceneRenderBackendTypes.d.ts +28 -0
- package/dist/components/stream/sceneRevisionDiagnostics.d.ts +45 -0
- package/dist/components/stream/streamSemanticTypes.d.ts +16 -0
- package/dist/components/stream/streamStoreSync.d.ts +37 -0
- package/dist/components/stream/streamThemeTypes.d.ts +14 -0
- package/dist/components/stream/svgOverlayUtils.d.ts +10 -0
- package/dist/components/stream/test-utils/frameScheduler.d.ts +12 -0
- package/dist/components/stream/test-utils/revisionConsumption.d.ts +13 -0
- package/dist/components/stream/titleLayout.d.ts +31 -0
- package/dist/components/stream/types.d.ts +165 -72
- package/dist/components/stream/useCanvasFrameHost.d.ts +71 -0
- package/dist/components/stream/useFrame.d.ts +44 -2
- package/dist/components/stream/useHydration.d.ts +6 -0
- package/dist/components/stream/useLegendCategoryEmission.d.ts +5 -0
- package/dist/components/stream/useSemanticFrameInteractions.d.ts +22 -0
- package/dist/components/stream/useUpdateResultSnapshot.d.ts +7 -0
- package/dist/components/stream/workerModuleUrl.d.ts +10 -0
- package/dist/components/stream/xyAnnotationAnchors.d.ts +13 -0
- package/dist/components/stream/xyCanvasRenderers.d.ts +7 -0
- package/dist/components/stream/xyCrosshair.d.ts +11 -0
- package/dist/components/stream/xyDateTicks.d.ts +9 -0
- package/dist/components/stream/xyDefaultTooltip.d.ts +10 -0
- package/dist/components/stream/xyFrameAxisTypes.d.ts +50 -0
- package/dist/components/stream/xySceneBuilders/types.d.ts +10 -9
- package/dist/controls.min.js +2 -0
- package/dist/controls.module.min.js +2 -0
- package/dist/forceLayoutWorker.js +1 -0
- package/dist/geo.min.js +1 -1
- package/dist/geo.module.min.js +1 -1
- package/dist/network.min.js +1 -1
- package/dist/network.module.min.js +1 -1
- package/dist/ordinal.min.js +1 -1
- package/dist/ordinal.module.min.js +1 -1
- package/dist/physics-matter.min.js +1 -0
- package/dist/physics-matter.module.min.js +1 -0
- package/dist/physics-rapier.min.js +1 -0
- package/dist/physics-rapier.module.min.js +1 -0
- package/dist/physics.min.js +2 -0
- package/dist/physics.module.min.js +2 -0
- package/dist/physicsWorker.js +1 -0
- package/dist/realtime.min.js +1 -1
- package/dist/realtime.module.min.js +1 -1
- package/dist/rough.min.js +1 -0
- package/dist/rough.module.min.js +1 -0
- package/dist/semiotic-ai-chunk-OG7BQUUW.module.min.js +2 -0
- package/dist/semiotic-ai-core.d.ts +47 -0
- package/dist/semiotic-ai-core.min.js +1 -0
- package/dist/semiotic-ai-core.module.min.js +1 -0
- package/dist/semiotic-ai-statisticalOverlays-CY4WKR4A.module.min.js +2 -0
- package/dist/semiotic-ai.d.ts +53 -9
- package/dist/semiotic-ai.min.js +1 -1
- package/dist/semiotic-ai.module.min.js +1 -1
- package/dist/semiotic-chunk-3FSVZ46U.module.min.js +2 -0
- package/dist/semiotic-controls.d.ts +20 -0
- package/dist/semiotic-data.min.js +1 -1
- package/dist/semiotic-data.module.min.js +1 -1
- package/dist/semiotic-experimental.d.ts +38 -9
- package/dist/semiotic-experimental.min.js +1 -1
- package/dist/semiotic-experimental.module.min.js +1 -1
- package/dist/semiotic-geo.d.ts +15 -0
- package/dist/semiotic-network.d.ts +15 -0
- package/dist/semiotic-ordinal.d.ts +14 -0
- package/dist/semiotic-physics-matter.d.ts +10 -0
- package/dist/semiotic-physics-rapier.d.ts +9 -0
- package/dist/semiotic-physics.d.ts +60 -0
- package/dist/semiotic-realtime-core.d.ts +34 -0
- package/dist/semiotic-realtime-core.min.js +1 -0
- package/dist/semiotic-realtime-core.module.min.js +1 -0
- package/dist/semiotic-realtime-react.d.ts +10 -0
- package/dist/semiotic-realtime-react.min.js +2 -0
- package/dist/semiotic-realtime-react.module.min.js +2 -0
- package/dist/semiotic-realtime.d.ts +4 -30
- package/dist/semiotic-recipes-core.d.ts +92 -0
- package/dist/semiotic-recipes-core.min.js +1 -0
- package/dist/semiotic-recipes-core.module.min.js +1 -0
- package/dist/semiotic-recipes-react.d.ts +7 -0
- package/dist/semiotic-recipes-react.min.js +2 -0
- package/dist/semiotic-recipes-react.module.min.js +2 -0
- package/dist/semiotic-recipes.d.ts +4 -43
- package/dist/semiotic-recipes.min.js +1 -1
- package/dist/semiotic-recipes.module.min.js +1 -1
- package/dist/semiotic-rough.d.ts +4 -0
- package/dist/semiotic-server-edge.d.ts +8 -0
- package/dist/semiotic-server-edge.min.js +1 -0
- package/dist/semiotic-server-edge.module.min.js +1 -0
- package/dist/semiotic-server-node.d.ts +5 -0
- package/dist/semiotic-server-node.min.js +1 -0
- package/dist/semiotic-server-node.module.min.js +1 -0
- package/dist/semiotic-server.d.ts +2 -2
- package/dist/semiotic-statisticalOverlays-UOMSFKVJ.module.min.js +2 -0
- package/dist/semiotic-themes-core.d.ts +53 -0
- package/dist/semiotic-themes-core.min.js +1 -0
- package/dist/semiotic-themes-core.module.min.js +1 -0
- package/dist/semiotic-themes-react.d.ts +4 -0
- package/dist/semiotic-themes-react.min.js +2 -0
- package/dist/semiotic-themes-react.module.min.js +2 -0
- package/dist/semiotic-themes.d.ts +6 -76
- package/dist/semiotic-themes.min.js +1 -2
- package/dist/semiotic-themes.module.min.js +1 -2
- package/dist/semiotic-utils-core.d.ts +50 -0
- package/dist/semiotic-utils-core.min.js +1 -0
- package/dist/semiotic-utils-core.module.min.js +1 -0
- package/dist/semiotic-utils-react.d.ts +5 -0
- package/dist/semiotic-utils-react.min.js +2 -0
- package/dist/semiotic-utils-react.module.min.js +2 -0
- package/dist/semiotic-utils.d.ts +3 -39
- package/dist/semiotic-utils.min.js +1 -2
- package/dist/semiotic-utils.module.min.js +1 -2
- package/dist/semiotic-value.min.js +1 -1
- package/dist/semiotic-value.module.min.js +1 -1
- package/dist/semiotic-xy.d.ts +12 -0
- package/dist/semiotic.d.ts +44 -8
- package/dist/semiotic.min.js +1 -1
- package/dist/semiotic.module.min.js +1 -1
- package/dist/server.min.js +1 -1
- package/dist/server.module.min.js +1 -1
- package/dist/test-utils/capturedFrameProps.d.ts +67 -0
- package/dist/test-utils/frameMock.d.ts +12 -9
- package/dist/xy-chunk-IWD6IB6V.module.min.js +2 -0
- package/dist/xy-statisticalOverlays-7RWG6LJT.module.min.js +2 -0
- package/dist/xy.min.js +1 -1
- package/dist/xy.module.min.js +1 -1
- package/package.json +259 -88
- package/spec/README.md +152 -0
- package/spec/bindings/README.md +35 -0
- package/spec/bindings/vega-lite.mjs +112 -0
- package/spec/v0.1/annotation-provenance.schema.json +127 -0
- package/spec/v0.1/audience-profile.schema.json +67 -0
- package/spec/v0.1/chart-capability.schema.json +186 -0
- package/dist/components/recipes/gofish.d.ts +0 -207
- package/dist/components/recipes/gofishInterpreter.d.ts +0 -52
- package/dist/components/recipes/gofishLambdas.d.ts +0 -145
- package/dist/semiotic-ai-semiotic-ai-u954ylUn.js +0 -2
- package/dist/semiotic-ai-statisticalOverlays-CU7jW05Q.js +0 -1
- package/dist/semiotic-semiotic-BmrYbi99.js +0 -2
- package/dist/semiotic-statisticalOverlays-IjZw8Lsu.js +0 -1
- package/dist/xy-semiotic-xy-Dufu3D0-.js +0 -2
- package/dist/xy-statisticalOverlays-3Ni9bRph.js +0 -1
|
@@ -1,169 +1,215 @@
|
|
|
1
1
|
import type { Datum } from "../charts/shared/datumTypes";
|
|
2
|
-
import type { CustomLayout } from "../stream/customLayout";
|
|
3
2
|
import type { NetworkCustomLayout } from "../stream/networkCustomLayout";
|
|
4
|
-
import type { OrdinalCustomLayout } from "../stream/ordinalCustomLayout";
|
|
5
|
-
import type { GofishLambda } from "./gofishLambdas";
|
|
6
3
|
/**
|
|
7
|
-
* Experimental GoFish
|
|
4
|
+
* Experimental GoFish **DisplayList** → Semiotic custom-layout adapter.
|
|
8
5
|
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
-
*
|
|
12
|
-
*
|
|
13
|
-
*
|
|
6
|
+
* GoFish's `toDisplayList({ w, h })` is the post-layout *render IR*: a flat,
|
|
7
|
+
* ordered list of positioned primitives in absolute viewport pixels. The layout
|
|
8
|
+
* solve has already run — operators, constraints, channels, and the coordinate
|
|
9
|
+
* transforms are all consumed, so a polar petal arrives as a baked `path`, a
|
|
10
|
+
* treemap cell as a baked `rect`. Josh Pollock shipped this stage specifically
|
|
11
|
+
* for this adapter (it is the analogue of running a chart to SVG but stopping
|
|
12
|
+
* one step earlier, before backend emission).
|
|
14
13
|
*
|
|
15
|
-
*
|
|
16
|
-
*
|
|
17
|
-
*
|
|
18
|
-
*
|
|
19
|
-
* coordinate transforms, mark channels through scales, and `connect`/`ref`/
|
|
20
|
-
* `arrow` relations. The two sanctioned non-grammar paths — `derive` and
|
|
21
|
-
* `mark-fn` — resolve through the lambda registry. Any spec built from the
|
|
22
|
-
* supported grammar renders; it is not limited to known archetypes.
|
|
14
|
+
* That makes the adapter's job small and faithful: GoFish owns the geometry; we
|
|
15
|
+
* map each item onto Semiotic's custom-layout surface *by its `role`*, exactly
|
|
16
|
+
* as the reference backends do (`displayListToSVG` emits SVG tags; we emit
|
|
17
|
+
* scene-nodes + overlays):
|
|
23
18
|
*
|
|
24
|
-
*
|
|
25
|
-
*
|
|
26
|
-
*
|
|
27
|
-
*
|
|
28
|
-
*
|
|
19
|
+
* - **`role: "overlay"`** — chrome (axis ticks, labels, glyph detail). Rendered
|
|
20
|
+
* verbatim into one ordered SVG overlay layer (a JSX port of GoFish's
|
|
21
|
+
* reference `displayListToSVG`), so painter order and every `kind` — including
|
|
22
|
+
* warped `path`s, `image`s, and Porter-Duff `composite`/`mask` graphs — stay
|
|
23
|
+
* pixel-faithful.
|
|
24
|
+
* - **`role: "node"`** — data-bearing marks. Rendered into the same SVG layer
|
|
25
|
+
* *and* given a transparent hit-rect scene node carrying the item's `datum`,
|
|
26
|
+
* so Semiotic stays authoritative for hit-testing, tooltips, `onObservation`,
|
|
27
|
+
* cross-chart selection, keyboard a11y, and SSR mark-count evidence.
|
|
29
28
|
*
|
|
30
|
-
*
|
|
31
|
-
*
|
|
32
|
-
*
|
|
33
|
-
*
|
|
29
|
+
* Because a display list is **viewport-baked** — solved at one `{ w, h }`, not
|
|
30
|
+
* cacheable — the result always mounts on `NetworkCustomChart` (the scale-free
|
|
31
|
+
* family: plot-relative pixel coordinates, no data scales to fight the baked
|
|
32
|
+
* geometry). The adapter surfaces the document's `viewport` as `width`/`height`;
|
|
33
|
+
* the list is only valid at that size, so on resize or data change the host
|
|
34
|
+
* re-calls `toDisplayList` and re-runs the adapter rather than rescaling an old
|
|
35
|
+
* document.
|
|
36
|
+
*
|
|
37
|
+
* Scope: GoFish DisplayList IR v0 (`ir: "gofish-display-list"`). This is a
|
|
38
|
+
* PR-preview adapter named `unstable-gofish-displaylist-adapter`, exposed from
|
|
39
|
+
* `semiotic/experimental`; it is not a release API commitment.
|
|
34
40
|
*/
|
|
35
|
-
export declare const EXPERIMENTAL_GOFISH_ADAPTER_NAME = "unstable-gofish-
|
|
36
|
-
/**
|
|
37
|
-
export interface
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
+
export declare const EXPERIMENTAL_GOFISH_ADAPTER_NAME = "unstable-gofish-displaylist-adapter";
|
|
42
|
+
/** Resolved paint carried by a display item. */
|
|
43
|
+
export interface GofishDisplayStyle {
|
|
44
|
+
fill?: string;
|
|
45
|
+
stroke?: string;
|
|
46
|
+
strokeWidth?: number;
|
|
47
|
+
opacity?: number;
|
|
48
|
+
fillOpacity?: number;
|
|
49
|
+
/** CSS `mix-blend-mode`. */
|
|
50
|
+
mixBlendMode?: string;
|
|
51
|
+
/** SVG `stroke-dasharray`. */
|
|
52
|
+
strokeDasharray?: string;
|
|
53
|
+
/** A `url(#id)` reference to a user-supplied filter def. */
|
|
54
|
+
filter?: string;
|
|
41
55
|
}
|
|
42
|
-
/**
|
|
43
|
-
export
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
56
|
+
/** One source row, or the rows of an aggregate mark. Provenance, not a binding. */
|
|
57
|
+
export type GofishDisplayDatum = Record<string, unknown> | Array<Record<string, unknown>>;
|
|
58
|
+
export interface GofishDisplayItemBase {
|
|
59
|
+
style?: GofishDisplayStyle;
|
|
60
|
+
datum?: GofishDisplayDatum;
|
|
61
|
+
/** `"node"` (data-bearing) or `"overlay"` (chrome). Defaults to `"node"`. */
|
|
62
|
+
role?: "node" | "overlay";
|
|
63
|
+
id?: string;
|
|
48
64
|
}
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
x?: GofishChannelValue;
|
|
58
|
-
y?: GofishChannelValue;
|
|
59
|
-
spacing?: number | [number, number];
|
|
60
|
-
[key: string]: unknown;
|
|
65
|
+
export interface GofishRectItem extends GofishDisplayItemBase {
|
|
66
|
+
kind: "rect";
|
|
67
|
+
x: number;
|
|
68
|
+
y: number;
|
|
69
|
+
w: number;
|
|
70
|
+
h: number;
|
|
71
|
+
rx?: number;
|
|
72
|
+
ry?: number;
|
|
61
73
|
}
|
|
62
|
-
export interface
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
origin?: {
|
|
69
|
-
name?: string;
|
|
70
|
-
};
|
|
71
|
-
name?: string;
|
|
72
|
-
[key: string]: unknown;
|
|
74
|
+
export interface GofishEllipseItem extends GofishDisplayItemBase {
|
|
75
|
+
kind: "ellipse";
|
|
76
|
+
cx: number;
|
|
77
|
+
cy: number;
|
|
78
|
+
rx: number;
|
|
79
|
+
ry: number;
|
|
73
80
|
}
|
|
74
|
-
export interface
|
|
75
|
-
|
|
76
|
-
data
|
|
77
|
-
|
|
78
|
-
mark: GofishMarkIR;
|
|
79
|
-
options?: Record<string, unknown>;
|
|
80
|
-
connect?: GofishMarkIR;
|
|
81
|
-
name?: string;
|
|
81
|
+
export interface GofishPathItem extends GofishDisplayItemBase {
|
|
82
|
+
kind: "path";
|
|
83
|
+
/** SVG path data in absolute pixels (coordinate transform already applied). */
|
|
84
|
+
d: string;
|
|
82
85
|
}
|
|
83
|
-
export interface
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
86
|
+
export interface GofishTextItem extends GofishDisplayItemBase {
|
|
87
|
+
kind: "text";
|
|
88
|
+
x: number;
|
|
89
|
+
y: number;
|
|
90
|
+
text: string;
|
|
91
|
+
fontSize?: number;
|
|
92
|
+
fontFamily?: string;
|
|
93
|
+
textAnchor?: "start" | "middle" | "end";
|
|
94
|
+
dominantBaseline?: "auto" | "central" | "middle" | "hanging" | "mathematical";
|
|
95
|
+
/** Rotation in degrees about `(x, y)` (SVG `rotate(deg, x, y)` convention). */
|
|
96
|
+
rotate?: number;
|
|
87
97
|
}
|
|
88
|
-
export interface
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
98
|
+
export interface GofishImageItem extends GofishDisplayItemBase {
|
|
99
|
+
kind: "image";
|
|
100
|
+
x: number;
|
|
101
|
+
y: number;
|
|
102
|
+
w: number;
|
|
103
|
+
h: number;
|
|
104
|
+
href: string;
|
|
105
|
+
preserveAspectRatio?: string;
|
|
92
106
|
}
|
|
93
|
-
export
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
}
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
107
|
+
export interface GofishGroupItem extends GofishDisplayItemBase {
|
|
108
|
+
kind: "group";
|
|
109
|
+
transform: {
|
|
110
|
+
translate?: [number, number];
|
|
111
|
+
scale?: [number, number];
|
|
112
|
+
};
|
|
113
|
+
children: GofishDisplayItem[];
|
|
114
|
+
}
|
|
115
|
+
export interface GofishCompositeItem extends GofishDisplayItemBase {
|
|
116
|
+
kind: "composite";
|
|
117
|
+
operator: "over" | "atop" | "in" | "out" | "xor";
|
|
118
|
+
blendMode?: string;
|
|
119
|
+
bbox: {
|
|
120
|
+
x: number;
|
|
121
|
+
y: number;
|
|
122
|
+
w: number;
|
|
123
|
+
h: number;
|
|
124
|
+
};
|
|
125
|
+
source: GofishDisplayItem[];
|
|
126
|
+
dest: GofishDisplayItem[];
|
|
127
|
+
}
|
|
128
|
+
export interface GofishMaskItem extends GofishDisplayItemBase {
|
|
129
|
+
kind: "mask";
|
|
130
|
+
bbox: {
|
|
131
|
+
x: number;
|
|
132
|
+
y: number;
|
|
133
|
+
w: number;
|
|
134
|
+
h: number;
|
|
135
|
+
};
|
|
136
|
+
mask: GofishDisplayItem[];
|
|
137
|
+
content: GofishDisplayItem[];
|
|
138
|
+
}
|
|
139
|
+
export type GofishDisplayItem = GofishRectItem | GofishEllipseItem | GofishPathItem | GofishTextItem | GofishImageItem | GofishGroupItem | GofishCompositeItem | GofishMaskItem;
|
|
140
|
+
export interface GofishDisplayListDocument {
|
|
106
141
|
irVersion: number;
|
|
107
142
|
ir: string;
|
|
108
143
|
$schema?: string;
|
|
109
|
-
|
|
144
|
+
viewport: {
|
|
145
|
+
w: number;
|
|
146
|
+
h: number;
|
|
147
|
+
};
|
|
148
|
+
items: GofishDisplayItem[];
|
|
110
149
|
}
|
|
111
|
-
export type GofishChartFamily = "xy" | "network" | "ordinal";
|
|
112
|
-
export type GofishRecipeName =
|
|
113
|
-
/** XY / ordinal charts are produced by the IR interpreter, not a named recipe. */
|
|
114
|
-
"gofishInterpreter"
|
|
115
|
-
/** The Python Tutor memory diagram is a bespoke network glyph (chart-level escape hatch). */
|
|
116
|
-
| "gofishPythonTutorNetworkLayout";
|
|
117
150
|
/**
|
|
118
|
-
* The translated chart, spreadable into `
|
|
119
|
-
*
|
|
120
|
-
*
|
|
151
|
+
* The translated chart, spreadable into `NetworkCustomChart`. Mirrors
|
|
152
|
+
* `fromVegaLite`'s `{ component, props, warnings }` for the custom-layout
|
|
153
|
+
* surface — a baked display list is always scale-free, so the family is fixed.
|
|
121
154
|
*/
|
|
122
155
|
export interface GofishChartConfig {
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
156
|
+
/** Always `"network"`: absolute-pixel primitives have no data scales. */
|
|
157
|
+
family: "network";
|
|
158
|
+
/** Pass as `layout` on `NetworkCustomChart`. */
|
|
159
|
+
networkLayout: NetworkCustomLayout<{
|
|
160
|
+
displayList?: GofishDisplayListDocument;
|
|
161
|
+
}>;
|
|
162
|
+
/**
|
|
163
|
+
* Pass as `layoutConfig`. Carries the document so a host can swap the baked
|
|
164
|
+
* list through `layoutConfig` (the cheap re-render path) without re-ingesting
|
|
165
|
+
* the `nodes` topology.
|
|
166
|
+
*/
|
|
167
|
+
layoutConfig: {
|
|
168
|
+
displayList: GofishDisplayListDocument;
|
|
169
|
+
};
|
|
170
|
+
/** Row data from `role:"node"` items — pass as `nodes` (seeds non-empty state + selection). */
|
|
171
|
+
nodes: Datum[];
|
|
172
|
+
/** A display list is a flat primitive list — no relational edges. */
|
|
173
|
+
edges: Datum[];
|
|
174
|
+
/**
|
|
175
|
+
* The viewport this list was solved at. Use as the chart `width`/`height`
|
|
176
|
+
* (with `margin={0}`); the geometry is only valid at this size.
|
|
177
|
+
*/
|
|
178
|
+
width: number;
|
|
179
|
+
height: number;
|
|
145
180
|
irVersion: number;
|
|
146
181
|
warnings?: string[];
|
|
147
182
|
}
|
|
148
183
|
export interface FromGofishIROptions {
|
|
149
|
-
/**
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
184
|
+
/**
|
|
185
|
+
* Override the document carried in `layoutConfig` (rarely needed — the
|
|
186
|
+
* returned `layoutConfig.displayList` already holds the parsed document).
|
|
187
|
+
*/
|
|
188
|
+
displayList?: GofishDisplayListDocument;
|
|
153
189
|
}
|
|
154
190
|
/**
|
|
155
|
-
* Translate a GoFish
|
|
156
|
-
*
|
|
191
|
+
* Translate a GoFish DisplayList document into a Semiotic custom-layout config
|
|
192
|
+
* for `NetworkCustomChart`.
|
|
157
193
|
*
|
|
158
194
|
* @example
|
|
159
195
|
* ```tsx
|
|
160
196
|
* import { unstable_fromGofishIR } from "semiotic/experimental"
|
|
161
|
-
* import {
|
|
197
|
+
* import { NetworkCustomChart } from "semiotic/network"
|
|
198
|
+
*
|
|
199
|
+
* // In a host, the document comes from GoFish's layout pass:
|
|
200
|
+
* // const doc = await chart(data).flow(...).mark(...).toDisplayList({ w, h })
|
|
201
|
+
* const cfg = unstable_fromGofishIR(doc)
|
|
162
202
|
*
|
|
163
|
-
*
|
|
164
|
-
*
|
|
203
|
+
* <NetworkCustomChart
|
|
204
|
+
* nodes={cfg.nodes}
|
|
205
|
+
* layout={cfg.networkLayout}
|
|
206
|
+
* layoutConfig={cfg.layoutConfig}
|
|
207
|
+
* width={cfg.width}
|
|
208
|
+
* height={cfg.height}
|
|
209
|
+
* margin={0}
|
|
210
|
+
* />
|
|
165
211
|
* ```
|
|
166
212
|
*/
|
|
167
|
-
export declare function unstable_fromGofishIR(doc:
|
|
213
|
+
export declare function unstable_fromGofishIR(doc: GofishDisplayListDocument, options?: FromGofishIROptions): GofishChartConfig;
|
|
168
214
|
/** @deprecated Internal compatibility alias for the temporary GoFish PR preview. */
|
|
169
215
|
export declare const fromGofishIR: typeof unstable_fromGofishIR;
|
|
@@ -1,89 +1,38 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
|
|
3
|
-
export declare const pythonTutorDiagramRow: {
|
|
4
|
-
kind: string;
|
|
5
|
-
stack: ({
|
|
6
|
-
name: string;
|
|
7
|
-
value: {
|
|
8
|
-
pointer: number;
|
|
9
|
-
};
|
|
10
|
-
} | {
|
|
11
|
-
name: string;
|
|
12
|
-
value: string;
|
|
13
|
-
})[];
|
|
14
|
-
heap: {
|
|
15
|
-
values: (string | {
|
|
16
|
-
pointer: number;
|
|
17
|
-
})[];
|
|
18
|
-
}[];
|
|
19
|
-
heapArrangement: (number | null)[][];
|
|
20
|
-
};
|
|
1
|
+
import type { GofishDisplayListDocument } from "./gofishIR";
|
|
2
|
+
import { gofishDisplayListExamples as generatedExamples } from "./gofishDisplayListFixtures.generated";
|
|
21
3
|
/**
|
|
22
|
-
*
|
|
23
|
-
*
|
|
24
|
-
*
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
*
|
|
29
|
-
*
|
|
30
|
-
*
|
|
31
|
-
*
|
|
32
|
-
*
|
|
33
|
-
|
|
34
|
-
export declare const flowerIR: GofishIRDocument;
|
|
35
|
-
/**
|
|
36
|
-
* A row of pictorial bottles, one per category, each filled to its `amount`
|
|
37
|
-
* percentage. Grammar-first with one `derive`: `bottleGeometry` emits the
|
|
38
|
-
* per-bottle normalized geometry under `_b`; the marks render it with the
|
|
39
|
-
* reusable `image` + clip primitives — an `image` of the bottle silhouette, a
|
|
40
|
-
* green fill `rect` clipped to that silhouette, a fill line, a percentage
|
|
41
|
-
* label, a category label, and a transparent hit rect carrying the datum.
|
|
42
|
-
*/
|
|
43
|
-
export declare const bottleIR: GofishIRDocument;
|
|
44
|
-
/**
|
|
45
|
-
* Stacked species bars laid out radially per lake (polar coord), with one
|
|
46
|
-
* cross-lake ribbon per species connecting the matching segments.
|
|
47
|
-
*/
|
|
48
|
-
export declare const polarRibbonIR: GofishIRDocument;
|
|
49
|
-
/**
|
|
50
|
-
* A bar chart that's treemap-filled and circle-filled: a `spread` lays one
|
|
51
|
-
* equal-width bar per passenger class whose HEIGHT encodes the class's total
|
|
52
|
-
* fare (`sizeBy`), and that bar rectangle becomes a squarified `treemap` of its
|
|
53
|
-
* passengers — every fare-sized cell rendered as an inscribed circle coloured
|
|
54
|
-
* by survival.
|
|
55
|
-
*/
|
|
56
|
-
export declare const titanicCircleTreemapIR: GofishIRDocument;
|
|
57
|
-
/**
|
|
58
|
-
* A Python Tutor runtime memory diagram: a global frame of variable bindings
|
|
59
|
-
* whose pointers arrow into a heap of linked tuples. Encoded as a `layer` of a
|
|
60
|
-
* `spread` (frame + heap) plus `arrow` connectors over `ref`s; the snapshot
|
|
61
|
-
* itself travels as a single inline data row consumed by the network recipe.
|
|
62
|
-
*/
|
|
63
|
-
export declare const pythonMemoryIR: GofishIRDocument;
|
|
64
|
-
/**
|
|
65
|
-
* A boba-shop menu: four bubble-tea drinks spread along the category axis, each
|
|
66
|
-
* fully data-driven. Per drink, the tea + tapioca + ice volumes (plus the
|
|
67
|
-
* cup-size parameters) add up to a total volume that determines the drink
|
|
68
|
-
* height; the pearls stack at the bottom and the ice floats at the surface — so
|
|
69
|
-
* "Extra Boba" grows a taller pearl bed, "Light Ice" reads as mostly tea, and
|
|
70
|
-
* "Mega" is a bigger cup of everything.
|
|
4
|
+
* Canonical GoFish **DisplayList** documents for the adapter gallery.
|
|
5
|
+
*
|
|
6
|
+
* Most are *real* baked render-IR documents — the output of `gofish-graphics`'
|
|
7
|
+
* `toDisplayList({ w, h })` layout pass — generated by
|
|
8
|
+
* `scripts/gen-gofish-fixtures.ts` and checked in so the adapter tests and the
|
|
9
|
+
* `/interoperability/gofish` page stay deterministic and never depend on the
|
|
10
|
+
* GoFish nightly at runtime. Each stands in for what a host gets by calling
|
|
11
|
+
* `await spec.toDisplayList({ w, h })`.
|
|
12
|
+
*
|
|
13
|
+
* The one exception is **boba**, which is *hand-written* (`gofishBobaHandwritten.ts`,
|
|
14
|
+
* no `gofish-graphics` at all) — the counter-proof that the DisplayList is an
|
|
15
|
+
* open, host-emittable format, not something only GoFish can produce.
|
|
71
16
|
*
|
|
72
|
-
*
|
|
73
|
-
*
|
|
74
|
-
* `circle`/`rect` marks. The one genuinely non-grammar step — the
|
|
75
|
-
* frustum-volume → drink-height solve and tapioca/ice packing — lives in a
|
|
76
|
-
* single `derive` lambda (`bobaGeometry`) that emits each cup's geometry the
|
|
77
|
-
* marks read (`_g.*`) plus a shared `_g.box` aspect for the `uniform` unit fit,
|
|
78
|
-
* so the cups sit on one shelf with aligned straws. Derived from Krist
|
|
79
|
-
* Wongsuphasawat's "Boba Science" notebook. Routed to the ordinal frame.
|
|
17
|
+
* Regenerate the baked set after a GoFish bump with:
|
|
18
|
+
* `node --experimental-strip-types scripts/gen-gofish-fixtures.ts --write`
|
|
80
19
|
*/
|
|
81
|
-
export declare const
|
|
20
|
+
export declare const flowerIR: GofishDisplayListDocument;
|
|
21
|
+
export declare const polarribbonIR: GofishDisplayListDocument;
|
|
22
|
+
export declare const treemapIR: GofishDisplayListDocument;
|
|
23
|
+
export declare const bottleIR: GofishDisplayListDocument;
|
|
24
|
+
export declare const bobaIR: GofishDisplayListDocument;
|
|
25
|
+
export declare const pythonIR: GofishDisplayListDocument;
|
|
82
26
|
export interface GofishIRExample {
|
|
83
|
-
|
|
27
|
+
/** Generated keys (derived so new baked fixtures never drift this) plus the hand-written `boba`. */
|
|
28
|
+
key: (typeof generatedExamples)[number]["key"] | "boba";
|
|
84
29
|
label: string;
|
|
85
|
-
doc:
|
|
30
|
+
doc: GofishDisplayListDocument;
|
|
31
|
+
/** A one-line note on what the document demonstrates. */
|
|
32
|
+
blurb: string;
|
|
33
|
+
/** The upstream example this mirrors. */
|
|
86
34
|
source: string;
|
|
35
|
+
/** True for the hand-emitted document (no GoFish bake). */
|
|
36
|
+
handWritten?: boolean;
|
|
87
37
|
}
|
|
88
|
-
/** All five examples, in gallery order. */
|
|
89
38
|
export declare const gofishIRExamples: readonly GofishIRExample[];
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
import type { OrdinalCustomLayout } from "../stream/ordinalCustomLayout";
|
|
2
|
+
import type { Datum } from "../charts/shared/datumTypes";
|
|
3
|
+
/**
|
|
4
|
+
* `intervalLanesLayout` — a Gantt / swimlane timeline as an `OrdinalCustomChart`
|
|
5
|
+
* layout. Each ordinal **lane** holds events that occupy a `[start, end]` span on
|
|
6
|
+
* a shared time axis; concurrent events within a lane are packed into stacked
|
|
7
|
+
* sub-tracks ({@link packIntervals}). The recipe emits one real, hit-tested,
|
|
8
|
+
* theme-colored rect per event (so every bar inherits keyboard nav, tooltips,
|
|
9
|
+
* selection, and transitions) and draws lane labels, optional period bands, and
|
|
10
|
+
* a time axis in `overlays`.
|
|
11
|
+
*
|
|
12
|
+
* Sibling to `flextreeLayout` / `dagreLayout`. The complement to a
|
|
13
|
+
* concurrency line — see {@link activeCountOverDomain}.
|
|
14
|
+
*
|
|
15
|
+
* @example
|
|
16
|
+
* ```tsx
|
|
17
|
+
* import { OrdinalCustomChart } from "semiotic/ordinal"
|
|
18
|
+
* import { intervalLanesLayout } from "semiotic/recipes"
|
|
19
|
+
*
|
|
20
|
+
* <OrdinalCustomChart
|
|
21
|
+
* data={wars}
|
|
22
|
+
* layout={intervalLanesLayout}
|
|
23
|
+
* categoryAccessor="sphere"
|
|
24
|
+
* valueAccessor="startYear"
|
|
25
|
+
* oExtent={SPHERES}
|
|
26
|
+
* layoutConfig={{
|
|
27
|
+
* laneAccessor: "sphere", startAccessor: "startYear", endAccessor: "endYear",
|
|
28
|
+
* domain: [1775, 2015], unit: 1, color: (d, lane) => COLORS[lane],
|
|
29
|
+
* axisTicks: [1800, 1850, 1900, 1950, 2000],
|
|
30
|
+
* }}
|
|
31
|
+
* width={900} height={620}
|
|
32
|
+
* />
|
|
33
|
+
* ```
|
|
34
|
+
*/
|
|
35
|
+
export interface IntervalLanesConfig<T = Datum> {
|
|
36
|
+
/** Which lane each record belongs to. */
|
|
37
|
+
laneAccessor: string | ((d: T) => string);
|
|
38
|
+
/** Interval start, in the same units as `domain`. */
|
|
39
|
+
startAccessor: string | ((d: T) => number);
|
|
40
|
+
/** Interval end, in the same units as `domain`. */
|
|
41
|
+
endAccessor: string | ((d: T) => number);
|
|
42
|
+
/** `[min, max]` of the time axis. */
|
|
43
|
+
domain: [number, number];
|
|
44
|
+
/** Lane order. @default the chart's `o` scale domain (its `oExtent`), else the
|
|
45
|
+
* distinct lane values in first-seen order. */
|
|
46
|
+
lanes?: string[];
|
|
47
|
+
/** Per-record fill. @default `ctx.resolveColor(lane)`. */
|
|
48
|
+
color?: (d: T, lane: string) => string;
|
|
49
|
+
/** Stable id per record → bar transition identity. @default none */
|
|
50
|
+
idAccessor?: string | ((d: T) => string);
|
|
51
|
+
/** Extend each bar this many domain units past `end`, so inclusive whole-unit
|
|
52
|
+
* intervals (e.g. years) fill their final unit. @default 0 */
|
|
53
|
+
unit?: number;
|
|
54
|
+
/** Vertical gap between stacked sub-tracks, px. @default 1.5 */
|
|
55
|
+
barGap?: number;
|
|
56
|
+
/** Minimum rendered interval width, px. Keeps zero- and short-duration
|
|
57
|
+
* events visible and hoverable on long domains. @default 2 */
|
|
58
|
+
minBarWidth?: number;
|
|
59
|
+
/** @default 3.5 */
|
|
60
|
+
minBarHeight?: number;
|
|
61
|
+
/** @default 10 */
|
|
62
|
+
maxBarHeight?: number;
|
|
63
|
+
/** Vertical padding inside each lane, px. @default 7 */
|
|
64
|
+
lanePadding?: number;
|
|
65
|
+
/** Bar corner radius, px. @default 2 */
|
|
66
|
+
cornerRadius?: number;
|
|
67
|
+
/** Reserve this many px at the bottom (for a caller-drawn strip, e.g. a
|
|
68
|
+
* concurrency line). Lanes fill the remaining height. @default 0 */
|
|
69
|
+
bottomInset?: number;
|
|
70
|
+
/** Draw a label to the left of each lane. @default true */
|
|
71
|
+
showLaneLabels?: boolean;
|
|
72
|
+
/** Gap between the plot's left edge and lane labels, px. @default 12 */
|
|
73
|
+
laneLabelGap?: number;
|
|
74
|
+
/** Alternating background period bands across the full plot height. */
|
|
75
|
+
periods?: Array<{
|
|
76
|
+
start: number;
|
|
77
|
+
end: number;
|
|
78
|
+
name?: string;
|
|
79
|
+
}>;
|
|
80
|
+
/** Draw a top time axis with gridlines. @default true */
|
|
81
|
+
showAxis?: boolean;
|
|
82
|
+
/** Explicit axis tick values. @default ~7 evenly-spaced across `domain`. */
|
|
83
|
+
axisTicks?: number[];
|
|
84
|
+
/** Format axis tick labels. @default `String` */
|
|
85
|
+
tickFormat?: (v: number) => string;
|
|
86
|
+
}
|
|
87
|
+
export declare const intervalLanesLayout: OrdinalCustomLayout<IntervalLanesConfig>;
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
import type { Datum } from "../charts/shared/datumTypes";
|
|
2
|
+
/**
|
|
3
|
+
* Interval (Gantt/timeline) packing + temporal-density helpers — the generic
|
|
4
|
+
* geometry behind any "events that overlap in time" view. A swimlane/Gantt
|
|
5
|
+
* layout packs concurrent intervals into sub-tracks; its natural companion is a
|
|
6
|
+
* concurrency line counting how many intervals are active over the domain.
|
|
7
|
+
*
|
|
8
|
+
* Pure / SSR-safe. Accessors may be a field name or a function.
|
|
9
|
+
*/
|
|
10
|
+
type Accessor<T> = string | ((item: T) => number);
|
|
11
|
+
export interface PackedInterval<T> {
|
|
12
|
+
/** The original item. */
|
|
13
|
+
item: T;
|
|
14
|
+
/** Zero-based sub-track index the greedy packer assigned. Concurrent
|
|
15
|
+
* intervals get distinct tracks; non-overlapping intervals reuse a track. */
|
|
16
|
+
track: number;
|
|
17
|
+
}
|
|
18
|
+
export interface PackIntervalsResult<T> {
|
|
19
|
+
/** Each input item paired with its assigned sub-track. Input order preserved
|
|
20
|
+
* unless `sort` is left on (the default), which sorts by start ascending. */
|
|
21
|
+
packed: PackedInterval<T>[];
|
|
22
|
+
/** Number of sub-tracks used — the lane needs this many rows. */
|
|
23
|
+
trackCount: number;
|
|
24
|
+
}
|
|
25
|
+
export interface PackIntervalsOptions<T> {
|
|
26
|
+
/** Interval start accessor. @default `"start"` */
|
|
27
|
+
start?: Accessor<T>;
|
|
28
|
+
/** Interval end accessor. @default `"end"` */
|
|
29
|
+
end?: Accessor<T>;
|
|
30
|
+
/** Sort by start ascending (then longest-first) before packing — the stable,
|
|
31
|
+
* gap-minimizing order. Set `false` if the input is already ordered and you
|
|
32
|
+
* want that order preserved. @default true */
|
|
33
|
+
sort?: boolean;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Greedy interval packing: assign each interval to the first sub-track whose
|
|
37
|
+
* last interval has already ended, otherwise open a new track. The textbook
|
|
38
|
+
* Gantt/swimlane packer. O(n·tracks).
|
|
39
|
+
*
|
|
40
|
+
* @example
|
|
41
|
+
* ```ts
|
|
42
|
+
* const { packed, trackCount } = packIntervals(wars, { start: "startTime", end: "endTime" })
|
|
43
|
+
* // bar y = laneTop + track * (barHeight + gap)
|
|
44
|
+
* ```
|
|
45
|
+
*/
|
|
46
|
+
export declare function packIntervals<T = Datum>(items: readonly T[], options?: PackIntervalsOptions<T>): PackIntervalsResult<T>;
|
|
47
|
+
export interface ActiveCount {
|
|
48
|
+
/** Domain position (e.g. a year). */
|
|
49
|
+
value: number;
|
|
50
|
+
/** Number of intervals active at this position. */
|
|
51
|
+
count: number;
|
|
52
|
+
}
|
|
53
|
+
export interface ActiveCountOptions<T> {
|
|
54
|
+
/** Interval start accessor. @default `"start"` */
|
|
55
|
+
start?: Accessor<T>;
|
|
56
|
+
/** Interval end accessor. @default `"end"` */
|
|
57
|
+
end?: Accessor<T>;
|
|
58
|
+
/** `[min, max]` domain to sample across (inclusive of both ends). */
|
|
59
|
+
domain: [number, number];
|
|
60
|
+
/** Sample spacing. @default 1 */
|
|
61
|
+
step?: number;
|
|
62
|
+
/** Count an interval active at position `v` when `start <= v <= end`
|
|
63
|
+
* (`"closed"`, the default — natural for whole-unit intervals like years),
|
|
64
|
+
* or when `start <= v < end` (`"half-open"`). @default "closed" */
|
|
65
|
+
bounds?: "closed" | "half-open";
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Count how many intervals are active at each sampled position across a domain —
|
|
69
|
+
* the concurrency series you draw as a step line beneath packed interval lanes.
|
|
70
|
+
*
|
|
71
|
+
* @example
|
|
72
|
+
* ```ts
|
|
73
|
+
* const counts = activeCountOverDomain(wars, {
|
|
74
|
+
* start: "startYear", end: "endYear", domain: [1775, 2015],
|
|
75
|
+
* })
|
|
76
|
+
* // → [{ value: 1775, count: 1 }, { value: 1776, count: 2 }, ...]
|
|
77
|
+
* ```
|
|
78
|
+
*/
|
|
79
|
+
export declare function activeCountOverDomain<T = Datum>(items: readonly T[], options: ActiveCountOptions<T>): ActiveCount[];
|
|
80
|
+
export {};
|