import { ReactNode, MouseEvent as ReactMouseEvent } from '../../../../../node_modules/react'; import { IconName } from '../../../../components/Icon'; import { FlowNodeAccent } from '../../nodeRegistry'; import { FlowDirection } from '../../tokens'; export interface NodeCardProps { testId?: string; /** * Look up label/iconName/accent from `useFlowNodeRegistry()`'s registry (provided by * ``, see `01-canvas.md`). Explicit `title`/`iconName`/`accent` * always override whatever `kind` would have resolved. */ kind?: string; title?: string; iconName?: IconName; accent?: FlowNodeAccent; selected?: boolean; /** @default false */ collapsed?: boolean; onToggleCollapse?: () => void; onClick?: () => void; onMouseDown?: (event: ReactMouseEvent) => void; onPointerDown?: (event: ReactMouseEvent) => void; /** @default true — most nodes take an incoming edge; triggers are the documented exception. */ hasTargetHandle?: boolean; /** @default false — only for nodes whose single output is not user-configurable. */ hasDefaultSourceHandle?: boolean; onSourceHandleClick?: (event: ReactMouseEvent) => void; /** * Which sides the target/source handles sit on. Inherits the live canvas * `layoutDirection` via `useFlowDirection()` when omitted (defaults to `'LR'` outside a * ``, same as the context's own default). An explicit value always wins. */ direction?: FlowDirection; /** Collapsible body — hidden when `collapsed` is true. */ children?: ReactNode; /** Rows/footers that stay visible even when collapsed (branch rows, CTA affordances). */ footer?: ReactNode; } declare function NodeCardComponent({ testId, kind, title, iconName, accent, selected, collapsed, onToggleCollapse, onClick, onMouseDown, onPointerDown, hasTargetHandle, hasDefaultSourceHandle, onSourceHandleClick, direction: directionProp, children, footer, }: NodeCardProps): import("react/jsx-runtime").JSX.Element; export declare const NodeCard: import('../../../../../node_modules/react').MemoExoticComponent; export interface NodeCardBranchRowProps { id: string; label: string; /** Resolved via `useNodeAccent` — replaces CJO's raw `color`/`hoverTint` hex pair. */ accent: FlowNodeAccent; hasDivider?: boolean; onChevronClick?: () => void; /** @default inherited from `useFlowDirection()` (falls back to `'LR'`, right). */ direction?: FlowDirection; /** Click (not drag) on this branch's handle — opens the node palette to add+connect a node. */ onHandleClick?: (event: ReactMouseEvent) => void; } /** * Named branch row (Success / Failed): label + inline chevron, and a `` positioned * against this row's own small box rather than the node's default single handle. * * The visible dot and the real `` are two children of ONE `position: relative` * wrapper sized to the dot itself (`FLOW_HANDLE_SIZE × FLOW_HANDLE_SIZE`), with the `Handle` * absolutely filling that same box (`inset: 0`) — not positioned against the row or the card. * There is one coordinate system, owned by one parent, for both the thing the user sees and * the thing that is actually draggable/clickable, so they cannot drift apart. This ports CJO * `NodeCard.tsx`'s fix for a real, reported bug ("unable to link nodes") where the dot and the * handle were positioned independently and could end up ~11px apart. */ declare function NodeCardBranchRowComponent({ id, label, accent, hasDivider, onChevronClick, direction: directionProp, onHandleClick, }: NodeCardBranchRowProps): import("react/jsx-runtime").JSX.Element; export declare const NodeCardBranchRow: import('../../../../../node_modules/react').MemoExoticComponent; export {};