import { Position } from "../../../xyflow/react.js";
import { GRID_SPACING } from "../../../constants.js";
const EMPTY_WAYPOINTS = [];
const EDGE_CONSTANTS = {
    BORDER_RADIUS: GRID_SPACING,
    ARROW_SIZE: 10,
    ARROW_HALF_ANGLE: Math.PI / 6,
    STROKE_WIDTH: 2,
    SELECTED_STROKE_WIDTH: 3,
    INTERACTION_STROKE_WIDTH: 20,
    SELECTED_OUTLINE_STROKE_WIDTH: 10,
    SELECTED_OUTLINE_OPACITY: 0.3,
    MIN_SEGMENT_LENGTH: 32,
    COLLINEAR_TOLERANCE: 1,
    ARROW_OFFSET: 8,
    STUB_OFFSET: 2 * GRID_SPACING
};
const EDGE_PATH_TRANSITION = 'stroke 0.2s ease, opacity 0.2s ease';
const EDGE_DASHARRAY = {
    solid: '0',
    dashed: '5,5'
};
const EDGE_COLORS = {
    default: 'var(--canvas-border)',
    hover: 'var(--canvas-primary-hover)',
    selected: 'var(--canvas-primary)',
    invalid: 'var(--canvas-error-icon)',
    diffAdded: 'var(--canvas-success-icon)',
    diffRemoved: 'var(--canvas-error-icon)'
};
const ARROW_ANGLE_MAP = {
    [Position.Left]: 0,
    [Position.Right]: Math.PI,
    [Position.Top]: Math.PI / 2,
    [Position.Bottom]: -Math.PI / 2
};
const ARROW_OFFSETS = {
    [Position.Left]: {
        x: EDGE_CONSTANTS.ARROW_OFFSET,
        y: 0
    },
    [Position.Right]: {
        x: -EDGE_CONSTANTS.ARROW_OFFSET,
        y: 0
    },
    [Position.Top]: {
        x: 0,
        y: EDGE_CONSTANTS.ARROW_OFFSET
    },
    [Position.Bottom]: {
        x: 0,
        y: -EDGE_CONSTANTS.ARROW_OFFSET
    }
};
export { ARROW_ANGLE_MAP, ARROW_OFFSETS, EDGE_COLORS, EDGE_CONSTANTS, EDGE_DASHARRAY, EDGE_PATH_TRANSITION, EMPTY_WAYPOINTS };
