/**
 * Centralized color scheme for consistent, readable output across all commands
 * Optimized for both light and dark terminal backgrounds
 */
import chalk from 'chalk';
export const colors = {
    // Primary colors - highly visible
    primary: chalk.cyan,
    success: chalk.green,
    error: chalk.red,
    warning: chalk.yellow,
    // Text colors - guaranteed readable
    text: chalk.white,
    textBold: chalk.bold.white,
    textSecondary: chalk.cyan,
    textMuted: chalk.dim,
    // Status indicators
    active: chalk.green,
    inactive: chalk.red,
    pending: chalk.yellow,
    // Special elements
    code: chalk.bold.white.bgBlue,
    path: chalk.bold.cyan,
    command: chalk.bold.white,
    // Agent-specific
    agentName: chalk.bold.cyan,
    // Repository status
    repoClean: chalk.green,
    repoDirty: chalk.yellow,
    repoMissing: chalk.red,
    commitsAhead: chalk.blue,
    // Interactive elements
    selected: chalk.bold.cyan,
    unselected: chalk.white,
    disabled: chalk.dim,
    // Icons and decorations
    icon: chalk.white,
    separator: chalk.dim,
    // Background highlights
    highlight: chalk.bgBlue.white,
    attention: chalk.bgYellow.black
};
// Utility functions for common patterns
export const format = {
    title: (text) => colors.primary.bold(`\n${text}\n`),
    subtitle: (text) => colors.textSecondary(`${text}`),
    success: (text) => `${colors.success('✅')} ${colors.text(text)}`,
    error: (text) => `${colors.error('❌')} ${colors.text(text)}`,
    warning: (text) => `${colors.warning('⚠️')} ${colors.text(text)}`,
    info: (text) => `${colors.primary('ℹ️')} ${colors.text(text)}`,
    // Agent-specific formatters
    agentActive: (name) => `${colors.success('🟢')} ${colors.agentName(name)} - ${colors.active('Active')}`,
    agentInactive: (name) => `${colors.error('🔴')} ${colors.agentName(name)} - ${colors.inactive('Inactive')}`,
    // Repository formatters
    repoStatus: (name, status, commits) => {
        const statusColor = status === 'clean' ? colors.repoClean :
            status === 'dirty' ? colors.repoDirty : colors.repoMissing;
        const commitsText = commits ? ` ${colors.commitsAhead(`(+${commits})`)}` : '';
        return `${colors.text(`• ${name}`)} ${statusColor(`(${status})`)}${commitsText}`;
    },
    // Command formatters
    command: (text) => colors.command(`  ${text}`),
    path: (text) => colors.path(text),
    // List item formatters
    listItem: (text, indent = 2) => colors.text(`${' '.repeat(indent)}${text}`),
    listSubItem: (text, indent = 4) => colors.textSecondary(`${' '.repeat(indent)}${text}`)
};
export default { colors, format };
//# sourceMappingURL=colors.js.map