/* Copyright 2026 Marimo. All rights reserved. */ import { getCellEditorView } from "@/core/cells/cells"; import type { CellId } from "@/core/cells/ids"; import { goToVariableDefinition } from "@/core/codemirror/go-to-definition/commands"; import { store } from "@/core/state/jotai"; import { variablesAtom } from "@/core/variables/state"; import type { VariableName } from "@/core/variables/types"; import { cn } from "@/utils/cn"; interface Props { variableName: VariableName; className?: string; } export const EngineVariable: React.FC = ({ variableName, className, }) => { const onClick = (e: React.MouseEvent) => { e.stopPropagation(); const cellId = findCellId(variableName); if (!cellId) { return; } const editorView = getCellEditorView(cellId); if (editorView) { goToVariableDefinition(editorView, variableName); } }; return ( ); }; function findCellId(variableName: VariableName): CellId | undefined { const variables = store.get(variablesAtom); const variable = variables[variableName]; if (!variable) { return undefined; } return variable.declaredBy[0]; }