<?php

declare(strict_types=1);

namespace App\Framework\Design\Component;

enum ComponentCategory: string
{
    case BUTTON = 'button';
    case NAVIGATION = 'navigation';
    case FORM = 'form';
    case CARD = 'card';
    case FEEDBACK = 'feedback';
    case LAYOUT = 'layout';
    case TYPOGRAPHY = 'typography';
    case OTHER = 'other';

    public function getDisplayName(): string
    {
        return match($this) {
            self::BUTTON => 'Buttons',
            self::NAVIGATION => 'Navigation',
            self::FORM => 'Form Elements',
            self::CARD => 'Cards & Panels',
            self::FEEDBACK => 'Alerts & Messages',
            self::LAYOUT => 'Layout Components',
            self::TYPOGRAPHY => 'Typography',
            self::OTHER => 'Other Components',
        };
    }

    public function getIcon(): string
    {
        return match($this) {
            self::BUTTON => '🔘',
            self::NAVIGATION => '🧭',
            self::FORM => '📝',
            self::CARD => '🃏',
            self::FEEDBACK => '💬',
            self::LAYOUT => '📐',
            self::TYPOGRAPHY => '📖',
            self::OTHER => '🧩',
        };
    }
}
