<?php
/**
 * Options Registry — Arabic panel labels.
 *
 * @package Kutby
 * @since   1.0.0
 */

declare(strict_types=1);

namespace Kutby\ThemeOptions;

if ( ! defined( 'ABSPATH' ) ) {
	exit;
}

/**
 * Class Registry
 */
final class Registry {

	/**
	 * @var array<string, array<string, mixed>>
	 */
	private static array $panels = array();

	/**
	 * @return void
	 */
	public static function init(): void {
		self::$panels = self::default_panels();

		/**
		 * Filter registered Theme Options panels.
		 *
		 * @since 1.0.0
		 *
		 * @param array<string, array<string, mixed>> $panels Panels.
		 */
		self::$panels = apply_filters( 'kutby_option_panels', self::$panels );
	}

	/**
	 * @return array<string, array<string, mixed>>
	 */
	public static function panels(): array {
		if ( empty( self::$panels ) ) {
			self::init();
		}

		return self::$panels;
	}

	/**
	 * @param string $id Panel ID.
	 * @return array<string, mixed>|null
	 */
	public static function panel( string $id ): ?array {
		$panels = self::panels();
		return $panels[ $id ] ?? null;
	}

	/**
	 * @return array<string, array<string, mixed>>
	 */
	private static function default_panels(): array {
		return array(
			'dashboard'     => array( 'label' => 'مركز التحكم', 'icon' => 'dashboard', 'order' => 0 ),
			'general'       => array( 'label' => 'الإعدادات العامة', 'icon' => 'settings', 'order' => 10 ),
			'appearance'    => array( 'label' => 'المظهر', 'icon' => 'appearance', 'order' => 20 ),
			'colors'        => array( 'label' => 'الألوان', 'icon' => 'colors', 'order' => 30 ),
			'typography'    => array( 'label' => 'الخطوط', 'icon' => 'typography', 'order' => 40 ),
			'header'        => array( 'label' => 'الهيدر', 'icon' => 'header', 'order' => 50 ),
			'footer'        => array( 'label' => 'الفوتر', 'icon' => 'footer', 'order' => 60 ),
			'hero'          => array( 'label' => 'قسم البطل', 'icon' => 'home', 'order' => 65 ),
			'homepage'      => array( 'label' => 'الصفحة الرئيسية', 'icon' => 'home', 'order' => 70 ),
			'buttons'       => array( 'label' => 'الأزرار', 'icon' => 'button', 'order' => 80 ),
			'cards'         => array( 'label' => 'البطاقات', 'icon' => 'cards', 'order' => 90 ),
			'sidebar'       => array( 'label' => 'الشريط الجانبي', 'icon' => 'sidebar', 'order' => 100 ),
			'breadcrumb'    => array( 'label' => 'مسار التنقل', 'icon' => 'breadcrumb', 'order' => 110 ),
			'search'        => array( 'label' => 'البحث', 'icon' => 'search', 'order' => 120 ),
			'social'        => array( 'label' => 'وسائل التواصل الاجتماعي', 'icon' => 'social', 'order' => 130 ),
			'seo'           => array( 'label' => 'تحسين محركات البحث', 'icon' => 'seo', 'order' => 140 ),
			'performance'   => array( 'label' => 'الأداء', 'icon' => 'performance', 'order' => 150 ),
			'import_export' => array( 'label' => 'استيراد وتصدير', 'icon' => 'import', 'order' => 160 ),
			'system'        => array( 'label' => 'معلومات النظام', 'icon' => 'info', 'order' => 170 ),
		);
	}
}
