<?php
 namespace App\PageBuilder\Components\Content; use App\PageBuilder\PageComponent; class HeroComponent extends PageComponent { public function key(): string { return 'hero'; } public function category(): string { return 'content'; } public function label(): string { return 'Hero'; } public function icon(): string { return 'fas fa-image'; } public function schema(): array { return [ 'title' => ['type' => 'text', 'label' => 'Başlık', 'required' => true], 'subtitle' => ['type' => 'textarea', 'label' => 'Alt başlık'], 'cta_text' => ['type' => 'text', 'label' => 'Birincil CTA metni'], 'cta_link' => ['type' => 'link', 'label' => 'Birincil CTA hedefi'], 'cta_secondary_text' => ['type' => 'text', 'label' => 'İkincil CTA metni'], 'cta_secondary_link' => ['type' => 'link', 'label' => 'İkincil CTA hedefi'], 'bg_image' => ['type' => 'image', 'label' => 'Arka plan görseli'], 'overlay_opacity' => ['type' => 'select', 'label' => 'Overlay yoğunluğu', 'options' => [0, 0.2, 0.4, 0.6, 0.8], 'default' => 0.4], 'options' => [ 'color' => ['type' => 'color_token', 'default' => 'primary'], 'padding' => ['type' => 'padding_token', 'default' => 'lg'], 'alignment' => ['type' => 'alignment_token', 'default' => 'center'], 'bg_position' => ['type' => 'select', 'label' => 'Arka plan konumu', 'options' => ['center', 'top', 'bottom', 'left', 'right'], 'default' => 'center'], 'min_height' => ['type' => 'select', 'label' => 'Min. yükseklik', 'options' => ['auto', '50vh', '75vh', '100vh'], 'default' => 'auto'], ], ]; } public function defaults(): array { return [ 'title' => 'Yeni Hero Başlığı', 'subtitle' => 'Alt başlık metni buraya gelecek', 'cta_text' => 'Başla', 'cta_link' => '/', 'cta_secondary_text' => null, 'cta_secondary_link' => null, 'bg_image' => null, 'overlay_opacity' => 0.4, 'options' => [ 'color' => 'primary', 'padding' => 'lg', 'alignment' => 'center', 'bg_position' => 'center', 'min_height' => 'auto', ], ]; } public function render(array $data, array $options): string { return view('page-builder.components.hero', compact('data', 'options'))->render(); } } 