<?php
 namespace App\PageBuilder\Components\Marketing; use App\PageBuilder\PageComponent; class FeaturesComponent extends PageComponent { public function key(): string { return 'features'; } public function category(): string { return 'marketing'; } public function label(): string { return 'Features'; } public function icon(): string { return 'fas fa-th-large'; } public function schema(): array { return [ 'title' => ['type' => 'text', 'label' => 'Bölüm başlığı'], 'subtitle' => ['type' => 'textarea', 'label' => 'Bölüm alt başlığı'], 'items' => [ 'type' => 'repeater', 'label' => 'Özellikler', 'item_schema' => [ 'icon' => ['type' => 'text', 'label' => 'FA class'], 'title' => ['type' => 'text', 'required' => true], 'description' => ['type' => 'textarea'], 'link' => ['type' => 'link', 'label' => 'Tıklanınca git (opsiyonel)'], 'image' => ['type' => 'image', 'label' => 'İkon yerine görsel (opsiyonel)'], ], 'min' => 1, 'max' => 8, ], 'options' => [ 'columns' => ['type' => 'select', 'options' => [2,3,4], 'default' => 3], 'color' => ['type' => 'color_token', 'default' => 'light'], 'padding' => ['type' => 'padding_token', 'default' => 'lg'], 'alignment' => ['type' => 'alignment_token', 'default' => 'center'], 'card_style' => ['type' => 'select', 'label' => 'Kart stili', 'options' => ['plain', 'bordered', 'shadow'], 'default' => 'plain'], 'icon_color' => ['type' => 'color_token', 'label' => 'İkon rengi', 'default' => 'primary'], ], ]; } public function defaults(): array { return [ 'title' => 'Özelliklerimiz', 'subtitle' => '', 'items' => [ ['icon' => 'fas fa-bolt', 'title' => 'Hızlı', 'description' => 'Yüksek performans'], ['icon' => 'fas fa-shield', 'title' => 'Güvenli', 'description' => 'Enterprise güvenlik'], ['icon' => 'fas fa-headset', 'title' => '7/24 Destek', 'description' => 'Her zaman yanınızda'], ], 'options' => ['columns' => 3, 'color' => 'light', 'padding' => 'lg', 'alignment' => 'center'], ]; } public function render(array $data, array $options): string { return view('page-builder.components.features', compact('data', 'options'))->render(); } } 