<?php
/**
 * @package Hafenstudios\Core
 */

namespace Hafenstudios\Core\Admin;

defined( 'ABSPATH' ) || exit;

/**
 * Leichtes Admin-Designsystem: liefert die gemeinsamen Design-Tokens und laedt
 * das Basis-Stylesheet. Bewusst duenn ueber den WP-Admin-Styles (UX-KONZEPT
 * Grundsatz 8: "WordPress bleibt WordPress").
 *
 * Die eigentlichen Styles liegen in assets/css/core.css; hier wird nur die
 * Registrierung gebuendelt. Das Enqueue selbst uebernimmt Hans (gemeinsames
 * Handle "hafenstudios-core"), damit Karten und Tokens immer zusammen geladen
 * werden.
 */
final class DesignSystem {

	private static ?DesignSystem $instance = null;

	private function __construct() {}

	public static function instance(): DesignSystem {
		return self::$instance ??= new self();
	}

	public function boot(): void {
		// Assets werden zentral von Hans::enqueue() geladen (gemeinsames Handle).
		// Hier ist Platz fuer spaetere globale Admin-Body-Klassen o.ae.
		add_filter( 'admin_body_class', array( $this, 'body_class' ) );
	}

	/**
	 * Markiert die Flotten-Screens fuer gezieltes Styling.
	 *
	 * @param string $classes Bestehende Klassen.
	 * @return string
	 */
	public function body_class( string $classes ): string {
		$screen = function_exists( 'get_current_screen' ) ? get_current_screen() : null;
		if ( $screen && ( false !== strpos( (string) $screen->id, 'hafenstudios' ) || false !== strpos( (string) $screen->id, 'leadlotse' ) ) ) {
			$classes .= ' hs-flotte';
		}
		return $classes;
	}
}
