<?php

namespace App\Domain\Website\Blocks\Types;

use App\Domain\Website\Blocks\BlockField;
use App\Domain\Website\Blocks\BlockType;
use App\Domain\Website\Enums\BlockCategory;

/** Multi-column layout. Each column is a named slot that accepts any blocks. */
class ColumnsBlock extends BlockType
{
    public function key(): string
    {
        return 'columns';
    }

    public function label(): string
    {
        return 'أعمدة';
    }

    public function description(): string
    {
        return 'تقسيم المساحة إلى أعمدة، كل عمود يقبل أي عناصر';
    }

    public function icon(): string
    {
        return 'view-columns';
    }

    public function category(): BlockCategory
    {
        return BlockCategory::Layout;
    }

    public function allowsChildren(): bool
    {
        return true;
    }

    public function slots(): array
    {
        return ['col1', 'col2', 'col3', 'col4'];
    }

    public function variants(): array
    {
        return [
            'two' => 'عمودان',
            'two_wide_start' => 'عمودان (الأول أعرض)',
            'two_wide_end' => 'عمودان (الثاني أعرض)',
            'three' => 'ثلاثة أعمدة',
            'four' => 'أربعة أعمدة',
        ];
    }

    public function fields(): array
    {
        return [
            BlockField::select('gap', 'المسافة بين الأعمدة', [
                'none' => 'بدون', 'sm' => 'صغيرة', 'md' => 'متوسطة', 'lg' => 'كبيرة',
            ])->default('md'),
            BlockField::select('vertical_align', 'المحاذاة الرأسية', [
                'start' => 'أعلى', 'center' => 'وسط', 'stretch' => 'تمديد',
            ])->default('stretch'),
            BlockField::toggle('stack_on_mobile', 'تكديس على الجوال')->default(true),
            BlockField::toggle('reverse_on_mobile', 'عكس الترتيب على الجوال'),
        ];
    }
}
