import { __name } from "../../_virtual/_rolldown/runtime.mjs"; import { Types } from "../types.mjs"; import { OverlaysActorRef } from "../../overlays/overlaysActor.mjs"; import { SearchActorRef } from "../../search/searchActor.mjs"; import { EditorActorRef } from "../../editor/actor/machine.mjs"; import { TogglableFeature } from "../../context/DiagramFeatures.mjs"; import { AlignmentMode } from "./aligners.mjs"; import { OpenSourceParams, RelationshipBrowserScope } from "../../LikeC4Diagram.props.mjs"; import { Context, ElementViewDisplayVariant, Events } from "./machine.setup.mjs"; import { DiagramActorRef } from "./types.mjs"; import { RefObject } from "react"; import * as t from "@likec4/core/types"; import { DynamicViewDisplayVariant, NodeNotation, ViewChange } from "@likec4/core/types"; import { PartialDeep } from "type-fest"; //#region src/likec4diagram/state/diagram-api.d.ts type Any$1 = t.aux.Any; type Unknown = t.aux.UnknownLayouted; type ViewId$1 = t.aux.ViewId; type Fqn$1 = t.aux.Fqn; type NodeId$1 = t.aux.NodeId; type EdgeId$1 = t.aux.EdgeId; export declare class DiagramApi { private static cache; static withActor(actorRef: RefObject): DiagramApi; /** * React ref to the diagram actor */ readonly ref: RefObject; private constructor(); /** * @warning Do not use in render phase */ get actor(): DiagramActorRef; /** * @warning Do not use in render phase */ get currentView(): t.DiagramView; /** * Editor actor reference * @warning Do not use in render phase */ editorActor(): EditorActorRef; /** * Overlays actor reference * @warning Do not use in render phase */ overlays(): OverlaysActorRef; /** * Search actor reference * @warning Do not use in render phase */ searchActor(): SearchActorRef; /** * Send event to diagram actor */ send(event: Events): void; /** * Navigate to view * @param viewId - Target view ID * @param fromNode - Node from which navigation was triggered * @param focusOnElement - Element FQN to focus after navigation (from search) */ navigateTo(viewId: ViewId$1, fromNode?: NodeId$1, focusOnElement?: Fqn$1): void; /** * Navigate back or forward in history */ navigate(direction: 'back' | 'forward'): void; /** * Fit diagram to view */ fitDiagram(duration?: number): void; /** * Open relationships browser */ openRelationshipsBrowser(fqn: Fqn$1, scope?: RelationshipBrowserScope): void; /** * If running in editor, trigger opening source file */ openSource(params: OpenSourceParams): void; /** * Open element details card */ openElementDetails(fqn: Fqn$1, fromNode?: NodeId$1): void; openRelationshipDetails(...params: [edgeId: EdgeId$1] | [source: Fqn$1, target: Fqn$1]): void; updateNodeData(nodeId: NodeId$1, data: PartialDeep): void; updateEdgeData(edgeId: EdgeId$1, data: PartialDeep): void; highlightNode(nodeId: NodeId$1): void; highlightEdge(edgeId: EdgeId$1): void; unhighlightAll(): void; select(target?: { nodes?: NodeId$1[]; edges?: (EdgeId$1 | t.StepPath)[]; }): void; /** * Center viewport on a given node */ centerViewportOnNode(target: NodeId$1): void; /** * Center viewport on a given edge (centering on edge means including both source and target nodes in view) */ centerViewportOnEdge(target: EdgeId$1): void; /** * Start editing, either node or edge */ startEditing(subject: 'node' | 'edge'): void; /** * Stop editing * @param wasChanged - whether there were changes made during editing * @default false */ stopEditing(wasChanged?: boolean): void; /** * Undo last editing operation * @returns true if there was something to undo */ undoEditing(): boolean; /** * Align nodes */ align(mode: AlignmentMode): void; /** * Reset edge control points */ resetEdgeControlPoints(): void; /** * Focus node */ focusNode(nodeId: NodeId$1): void; /** * Focus on element by FQN (finds the node and focuses on it). * Used by search to highlight an element on the current view. */ focusOnElement(elementFqn: Fqn$1): void; /** * @warning Do not use in render phase */ getContext(): Context; /** * @warning Do not use in render phase */ findDiagramNode(xynodeId: string): t.DiagramNode | null; /** * @warning Do not use in render phase */ findEdge(xyedgeId: string): Types.Edge | null; /** * @warning Do not use in render phase */ findDiagramEdge(xyedgeId: string): t.DiagramEdge | null; startWalkthrough(stepId?: t.StepPath): void; walkthroughStep(value?: 'next' | 'prev' | { step: t.StepPath; }): void; stopWalkthrough(): void; toggleFeature(feature: TogglableFeature, forceValue?: boolean): void; highlightNotation(notation: NodeNotation, kind?: string): void; unhighlightNotation(): void; openSearch(searchValue?: string): void; triggerChange(change: ViewChange): void; /** * Switch dynamic view display variant */ switchDynamicViewVariant(variant: DynamicViewDisplayVariant): void; /** * Switch element view display variant ('diagram' | 'graph') */ switchElementViewVariant(variant: ElementViewDisplayVariant): void; /** * Toggle sequence flow collapse/expand */ toggleSequenceFlow(flowId: t.StepPath): void; } //#endregion