"use strict";
/**
 * Design Token System for bfui
 * Centralized design tokens for consistent theming across the platform
 */
Object.defineProperty(exports, "__esModule", { value: true });
exports.theme = exports.components = exports.accessibility = exports.zIndex = exports.animation = exports.breakpoints = exports.shadows = exports.borderRadius = exports.spacing = exports.typography = exports.colors = void 0;
// Color palette with WCAG 2.1 AA compliant contrast ratios
exports.colors = {
    // Primary brand colors
    primary: {
        50: '#eff6ff',
        100: '#dbeafe',
        200: '#bfdbfe',
        300: '#93c5fd',
        400: '#60a5fa',
        500: '#3b82f6', // Main primary
        600: '#2563eb',
        700: '#1d4ed8',
        800: '#1e40af',
        900: '#1e3a8a',
        950: '#172554',
    },
    // Secondary colors
    secondary: {
        50: '#f9fafb',
        100: '#f3f4f6',
        200: '#e5e7eb',
        300: '#d1d5db',
        400: '#9ca3af',
        500: '#6b7280', // Main secondary
        600: '#4b5563',
        700: '#374151',
        800: '#1f2937',
        900: '#111827',
        950: '#030712',
    },
    // Status colors (WCAG AA compliant)
    success: {
        50: '#ecfdf5',
        100: '#d1fae5',
        200: '#a7f3d0',
        300: '#6ee7b7',
        400: '#34d399',
        500: '#10b981', // Main success
        600: '#059669',
        700: '#047857',
        800: '#065f46',
        900: '#064e3b',
    },
    warning: {
        50: '#fffbeb',
        100: '#fef3c7',
        200: '#fde68a',
        300: '#fcd34d',
        400: '#fbbf24',
        500: '#f59e0b', // Main warning
        600: '#d97706',
        700: '#b45309',
        800: '#92400e',
        900: '#78350f',
    },
    danger: {
        50: '#fef2f2',
        100: '#fee2e2',
        200: '#fecaca',
        300: '#fca5a5',
        400: '#f87171',
        500: '#ef4444', // Main danger
        600: '#dc2626',
        700: '#b91c1c',
        800: '#991b1b',
        900: '#7f1d1d',
    },
    // Neutral colors
    neutral: {
        0: '#ffffff',
        50: '#fafafa',
        100: '#f5f5f5',
        200: '#e5e5e5',
        300: '#d4d4d4',
        400: '#a3a3a3',
        500: '#737373',
        600: '#525252',
        700: '#404040',
        800: '#262626',
        900: '#171717',
        1000: '#000000',
    },
};
// Typography scale
exports.typography = {
    fontFamily: {
        sans: ['Inter', 'system-ui', '-apple-system', 'BlinkMacSystemFont', 'Segoe UI', 'Roboto', 'sans-serif'],
        mono: ['JetBrains Mono', 'Fira Code', 'Monaco', 'Consolas', 'monospace'],
    },
    fontSize: {
        xs: '0.75rem', // 12px
        sm: '0.875rem', // 14px
        base: '1rem', // 16px
        lg: '1.125rem', // 18px
        xl: '1.25rem', // 20px
        '2xl': '1.5rem', // 24px
        '3xl': '1.875rem', // 30px
        '4xl': '2.25rem', // 36px
        '5xl': '3rem', // 48px
        '6xl': '3.75rem', // 60px
    },
    fontWeight: {
        thin: 100,
        extralight: 200,
        light: 300,
        normal: 400,
        medium: 500,
        semibold: 600,
        bold: 700,
        extrabold: 800,
        black: 900,
    },
    lineHeight: {
        none: 1,
        tight: 1.25,
        snug: 1.375,
        normal: 1.5,
        relaxed: 1.625,
        loose: 2,
    },
    letterSpacing: {
        tighter: '-0.05em',
        tight: '-0.025em',
        normal: '0em',
        wide: '0.025em',
        wider: '0.05em',
        widest: '0.1em',
    },
};
// Spacing scale (rem-based for accessibility)
exports.spacing = {
    0: '0',
    1: '0.25rem', // 4px
    2: '0.5rem', // 8px
    3: '0.75rem', // 12px
    4: '1rem', // 16px
    5: '1.25rem', // 20px
    6: '1.5rem', // 24px
    7: '1.75rem', // 28px
    8: '2rem', // 32px
    9: '2.25rem', // 36px
    10: '2.5rem', // 40px
    11: '2.75rem', // 44px
    12: '3rem', // 48px
    14: '3.5rem', // 56px
    16: '4rem', // 64px
    20: '5rem', // 80px
    24: '6rem', // 96px
    28: '7rem', // 112px
    32: '8rem', // 128px
    36: '9rem', // 144px
    40: '10rem', // 160px
    44: '11rem', // 176px
    48: '12rem', // 192px
    52: '13rem', // 208px
    56: '14rem', // 224px
    60: '15rem', // 240px
    64: '16rem', // 256px
    72: '18rem', // 288px
    80: '20rem', // 320px
    96: '24rem', // 384px
};
// Border radius scale
exports.borderRadius = {
    none: '0',
    sm: '0.125rem', // 2px
    default: '0.25rem', // 4px
    md: '0.375rem', // 6px
    lg: '0.5rem', // 8px
    xl: '0.75rem', // 12px
    '2xl': '1rem', // 16px
    '3xl': '1.5rem', // 24px
    full: '9999px',
};
// Shadow scale
exports.shadows = {
    sm: '0 1px 2px 0 rgb(0 0 0 / 0.05)',
    default: '0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1)',
    md: '0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1)',
    lg: '0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1)',
    xl: '0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1)',
    '2xl': '0 25px 50px -12px rgb(0 0 0 / 0.25)',
    inner: 'inset 0 2px 4px 0 rgb(0 0 0 / 0.05)',
    none: '0 0 #0000',
};
// Breakpoints for responsive design
exports.breakpoints = {
    sm: '640px',
    md: '768px',
    lg: '1024px',
    xl: '1280px',
    '2xl': '1536px',
};
// Animation timing
exports.animation = {
    duration: {
        fast: '150ms',
        normal: '200ms',
        slow: '300ms',
        slower: '500ms',
    },
    easing: {
        linear: 'linear',
        ease: 'ease',
        'ease-in': 'ease-in',
        'ease-out': 'ease-out',
        'ease-in-out': 'ease-in-out',
        'bounce': 'cubic-bezier(0.68, -0.55, 0.265, 1.55)',
    },
};
// Z-index scale
exports.zIndex = {
    hide: -1,
    auto: 'auto',
    base: 0,
    docked: 10,
    dropdown: 1000,
    sticky: 1100,
    banner: 1200,
    overlay: 1300,
    modal: 1400,
    popover: 1500,
    skipLink: 1600,
    toast: 1700,
    tooltip: 1800,
};
// Accessibility-specific tokens
exports.accessibility = {
    // Focus ring configuration
    focusRing: {
        width: '2px',
        style: 'solid',
        color: exports.colors.primary[500],
        offset: '2px',
    },
    // Minimum touch target size (44x44px)
    minTouchTarget: '44px',
    // Text contrast ratios (WCAG 2.1 AA)
    contrast: {
        aa: {
            normal: '4.5:1',
            large: '3:1',
        },
        aaa: {
            normal: '7:1',
            large: '4.5:1',
        },
    },
    // Animation preferences
    reducedMotion: {
        duration: '0ms',
        easing: 'linear',
    },
};
// Component-specific tokens
exports.components = {
    button: {
        height: {
            sm: exports.spacing[8],
            md: exports.spacing[10],
            lg: exports.spacing[12],
        },
        padding: {
            sm: `${exports.spacing[2]} ${exports.spacing[3]}`,
            md: `${exports.spacing[3]} ${exports.spacing[4]}`,
            lg: `${exports.spacing[4]} ${exports.spacing[6]}`,
        },
        borderRadius: exports.borderRadius.md,
        fontWeight: exports.typography.fontWeight.medium,
    },
    input: {
        height: {
            sm: exports.spacing[8],
            md: exports.spacing[10],
            lg: exports.spacing[12],
        },
        padding: {
            sm: `${exports.spacing[2]} ${exports.spacing[3]}`,
            md: `${exports.spacing[3]} ${exports.spacing[4]}`,
            lg: `${exports.spacing[4]} ${exports.spacing[6]}`,
        },
        borderRadius: exports.borderRadius.md,
        borderWidth: '1px',
    },
    card: {
        padding: {
            sm: exports.spacing[4],
            md: exports.spacing[6],
            lg: exports.spacing[8],
        },
        borderRadius: exports.borderRadius.lg,
        shadow: exports.shadows.md,
    },
};
// Export all tokens as a single theme object
exports.theme = {
    colors: exports.colors,
    typography: exports.typography,
    spacing: exports.spacing,
    borderRadius: exports.borderRadius,
    shadows: exports.shadows,
    breakpoints: exports.breakpoints,
    animation: exports.animation,
    zIndex: exports.zIndex,
    accessibility: exports.accessibility,
    components: exports.components,
};
//# sourceMappingURL=index.js.map