<?php
/**
 * Skład — funkcje motywu.
 *
 * Motyw blokowy (FSE): design system mieszka w theme.json,
 * tu jest tylko rejestracja zasobów, kategorii patternów i stylów bloków.
 *
 * @package sklad
 */

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

define( 'SKLAD_VERSION', '1.0.0' );

/**
 * Wsparcia motywu i style edytora.
 */
function sklad_setup() {
	add_theme_support( 'editor-styles' );
	add_editor_style( 'assets/css/sklad.css' );
	add_theme_support( 'responsive-embeds' );
	add_theme_support( 'post-thumbnails' );
	add_theme_support( 'html5', array( 'comment-form', 'comment-list', 'gallery', 'caption', 'style', 'script', 'search-form' ) );
}
add_action( 'after_setup_theme', 'sklad_setup' );

/**
 * Style frontendu.
 */
function sklad_enqueue_assets() {
	wp_enqueue_style( 'sklad-style', get_theme_file_uri( 'assets/css/sklad.css' ), array(), SKLAD_VERSION );
}
add_action( 'wp_enqueue_scripts', 'sklad_enqueue_assets' );

/**
 * Kategorie patternów — sekcje-klocki pogrupowane po przeznaczeniu.
 */
function sklad_pattern_categories() {
	$categories = array(
		'sklad-hero'         => __( 'Skład: Hero', 'sklad' ),
		'sklad-sekcje'       => __( 'Skład: Sekcje treści', 'sklad' ),
		'sklad-cta'          => __( 'Skład: Wezwania do działania', 'sklad' ),
		'sklad-social-proof' => __( 'Skład: Opinie i zaufanie', 'sklad' ),
		'sklad-cennik'       => __( 'Skład: Cenniki', 'sklad' ),
		'sklad-kontakt'      => __( 'Skład: Kontakt', 'sklad' ),
		'sklad-blog'         => __( 'Skład: Blog', 'sklad' ),
		'sklad-strony'       => __( 'Skład: Gotowe strony', 'sklad' ),
	);
	foreach ( $categories as $slug => $label ) {
		register_block_pattern_category( $slug, array( 'label' => $label ) );
	}
}
add_action( 'init', 'sklad_pattern_categories' );

/**
 * Style bloków — sygnatury motywu dostępne jednym kliknięciem.
 */
function sklad_block_styles() {
	register_block_style( 'core/button', array(
		'name'  => 'klocek',
		'label' => __( 'Klocek (twardy cień)', 'sklad' ),
	) );
	register_block_style( 'core/button', array(
		'name'  => 'obrys',
		'label' => __( 'Obrys', 'sklad' ),
	) );
	register_block_style( 'core/group', array(
		'name'  => 'karta',
		'label' => __( 'Karta', 'sklad' ),
	) );
	register_block_style( 'core/group', array(
		'name'  => 'karta-cien',
		'label' => __( 'Karta z cieniem', 'sklad' ),
	) );
	register_block_style( 'core/quote', array(
		'name'  => 'wypustki',
		'label' => __( 'Cytat z wypustkami', 'sklad' ),
	) );
	register_block_style( 'core/list', array(
		'name'  => 'kwadraciki',
		'label' => __( 'Kwadratowe punktory', 'sklad' ),
	) );
	register_block_style( 'core/separator', array(
		'name'  => 'miarka',
		'label' => __( 'Miarka (znaczniki)', 'sklad' ),
	) );
	register_block_style( 'core/heading', array(
		'name'  => 'zakreslenie',
		'label' => __( 'Zakreślony akcent', 'sklad' ),
	) );
}
add_action( 'init', 'sklad_block_styles' );

/**
 * Drobne porządki w <head> — mniej śladów wersji, szybszy start.
 * (Twarde zabezpieczenia serwisu są poza motywem — patrz wtyczka sklad-ochrona.)
 */
remove_action( 'wp_head', 'wp_generator' );
add_filter( 'the_generator', '__return_empty_string' );

/*
 * Emoji-loader rdzenia: zbędny skrypt inline i jedyne odwołania do zewnętrznej
 * domeny (s.w.org) — natywne emoji systemowe w zupełności wystarczą.
 */
remove_action( 'wp_head', 'print_emoji_detection_script', 7 );
remove_action( 'wp_print_styles', 'print_emoji_styles' );
remove_action( 'admin_print_scripts', 'print_emoji_detection_script' );
remove_action( 'admin_print_styles', 'print_emoji_styles' );
add_filter( 'emoji_svg_url', '__return_false' );
