import { Loader2, CircleAlert, CircleCheck, Ban, CircleX, Trash2, Clock, Archive, } from 'lucide-react';
/** Human-readable display labels for lifecycle phases. */
export const lifecycleDisplayLabels = {
    pending: 'PENDING',
    requirements: 'REQUIREMENTS',
    research: 'RESEARCH',
    implementation: 'IMPLEMENTATION',
    review: 'REVIEW',
    awaitingUpstream: 'AWAITING UPSTREAM',
    deploy: 'DEPLOY & QA',
    maintain: 'COMPLETED',
};
/** Inline-start border color for each lifecycle phase. */
export const lifecycleBorderColors = {
    pending: 'border-s-slate-400',
    requirements: 'border-s-violet-500',
    research: 'border-s-cyan-500',
    implementation: 'border-s-blue-500',
    review: 'border-s-amber-500',
    awaitingUpstream: 'border-s-amber-500',
    deploy: 'border-s-emerald-500',
    maintain: 'border-s-gray-400',
};
/** Accent bar background color for each lifecycle phase. */
export const lifecycleAccentColors = {
    pending: 'bg-slate-400',
    requirements: 'bg-violet-500',
    research: 'bg-cyan-500',
    implementation: 'bg-blue-500',
    review: 'bg-amber-500',
    awaitingUpstream: 'bg-amber-500',
    deploy: 'bg-emerald-500',
    maintain: 'bg-gray-400',
};
/** Phase badge: short letter, color classes, and user-friendly tooltip. */
export const lifecyclePhaseBadge = {
    pending: {
        letter: 'P',
        bg: 'bg-stone-100 dark:bg-stone-800',
        text: 'text-stone-500 dark:text-stone-400',
        dot: 'bg-stone-400',
        tooltip: 'Pending',
        description: 'Waiting to start — the feature is queued and ready to go.',
    },
    requirements: {
        letter: 'R',
        bg: 'bg-fuchsia-100 dark:bg-fuchsia-900/40',
        text: 'text-fuchsia-600 dark:text-fuchsia-300',
        dot: 'bg-fuchsia-500',
        tooltip: 'Requirements',
        description: 'Gathering what to build — the AI is writing a product requirements document (PRD) based on your request.',
    },
    research: {
        letter: 'D',
        bg: 'bg-teal-100 dark:bg-teal-900/40',
        text: 'text-teal-600 dark:text-teal-300',
        dot: 'bg-teal-500',
        tooltip: 'Research',
        description: 'Exploring your codebase — the AI is analyzing existing code, patterns, and dependencies to plan the best approach.',
    },
    implementation: {
        letter: 'I',
        bg: 'bg-indigo-100 dark:bg-indigo-900/40',
        text: 'text-indigo-600 dark:text-indigo-300',
        dot: 'bg-indigo-500',
        tooltip: 'Implementation',
        description: 'Writing code — the AI is implementing the feature, writing tests, and making sure everything compiles.',
    },
    review: {
        letter: 'M',
        bg: 'bg-orange-100 dark:bg-orange-900/40',
        text: 'text-orange-600 dark:text-orange-300',
        dot: 'bg-orange-500',
        tooltip: 'Merge Review',
        description: 'Ready to merge — the code is complete. Review the changes and approve to merge into your repository.',
    },
    awaitingUpstream: {
        letter: 'U',
        bg: 'bg-amber-100 dark:bg-amber-900/40',
        text: 'text-amber-600 dark:text-amber-300',
        dot: 'bg-amber-500',
        tooltip: 'Awaiting upstream merge',
        description: 'PR submitted to upstream — waiting for the upstream maintainer to review and merge.',
    },
    deploy: {
        letter: 'Q',
        bg: 'bg-lime-100 dark:bg-lime-900/40',
        text: 'text-lime-600 dark:text-lime-300',
        dot: 'bg-lime-500',
        tooltip: 'Deploy & QA',
        description: 'Deploying and testing — the feature is being deployed to a preview environment for quality checks.',
    },
    maintain: {
        letter: '✓',
        bg: 'bg-emerald-100 dark:bg-emerald-900/40',
        text: 'text-emerald-500 dark:text-emerald-400',
        dot: 'bg-emerald-500',
        tooltip: 'Completed',
        description: 'All done — the feature has been merged and delivered successfully.',
    },
};
/** State-based inline-start border overrides (takes precedence over lifecycle). */
export const stateBorderColors = {
    blocked: 'border-s-gray-400',
    error: 'border-s-red-500',
    deleting: 'border-s-gray-300',
};
/** State-based accent bar overrides (takes precedence over lifecycle). */
export const stateAccentColors = {
    blocked: 'bg-gray-400',
    error: 'bg-red-500',
    deleting: 'bg-gray-300',
};
/** Present-participle verbs for the running badge, keyed by lifecycle phase. */
export const lifecycleRunningVerbs = {
    pending: 'Waiting to start',
    requirements: 'Analyzing',
    research: 'Researching',
    implementation: 'Implementing',
    review: 'Reviewing',
    awaitingUpstream: 'Awaiting upstream',
    deploy: 'Deploying',
    maintain: 'Maintaining',
};
export const featureNodeStateConfig = {
    creating: {
        icon: Loader2,
        borderClass: 'border-s-blue-500',
        labelClass: 'text-blue-500',
        progressClass: 'bg-blue-500',
        badgeClass: 'text-blue-700',
        badgeBgClass: 'bg-blue-50',
        label: 'Creating...',
        showProgressBar: false,
    },
    running: {
        icon: Loader2,
        borderClass: 'border-s-blue-500',
        labelClass: 'text-blue-500',
        progressClass: 'bg-blue-500',
        badgeClass: 'text-blue-700',
        badgeBgClass: 'bg-blue-50',
        label: 'Running',
        showProgressBar: false,
    },
    'action-required': {
        icon: CircleAlert,
        borderClass: 'border-s-amber-500',
        labelClass: 'text-amber-500',
        progressClass: 'bg-amber-500',
        badgeClass: 'text-amber-700',
        badgeBgClass: 'bg-amber-50',
        label: 'User action required',
        showProgressBar: false,
    },
    done: {
        icon: CircleCheck,
        borderClass: 'border-s-emerald-500',
        labelClass: 'text-emerald-500',
        progressClass: 'bg-emerald-500',
        badgeClass: 'text-emerald-700',
        badgeBgClass: 'bg-emerald-50',
        label: 'Done',
        showProgressBar: false,
    },
    blocked: {
        icon: Ban,
        borderClass: 'border-s-gray-400',
        labelClass: 'text-gray-400',
        progressClass: 'bg-gray-400',
        badgeClass: 'text-gray-600',
        badgeBgClass: 'bg-gray-100',
        label: 'Blocked',
        showProgressBar: false,
    },
    pending: {
        icon: Clock,
        borderClass: 'border-s-slate-400',
        labelClass: 'text-slate-400',
        progressClass: 'bg-slate-400',
        badgeClass: 'text-slate-600',
        badgeBgClass: 'bg-slate-100',
        label: 'Pending',
        showProgressBar: false,
    },
    error: {
        icon: CircleX,
        borderClass: 'border-s-red-500',
        labelClass: 'text-red-500',
        progressClass: 'bg-red-500',
        badgeClass: 'text-red-700',
        badgeBgClass: 'bg-red-50',
        label: 'Error',
        showProgressBar: false,
    },
    deleting: {
        icon: Trash2,
        borderClass: 'border-s-gray-400',
        labelClass: 'text-gray-400',
        progressClass: 'bg-gray-400',
        badgeClass: 'text-gray-600',
        badgeBgClass: 'bg-gray-100',
        label: 'Deleting...',
        showProgressBar: false,
    },
    archived: {
        icon: Archive,
        borderClass: 'border-s-gray-500',
        labelClass: 'text-gray-500',
        progressClass: 'bg-gray-500',
        badgeClass: 'text-gray-600',
        badgeBgClass: 'bg-gray-100',
        label: 'Archived',
        showProgressBar: false,
    },
};
