schema([ Section::make('Hero Section') ->description('Manage the main hero section content on the homepage.') ->icon('heroicon-o-photo') ->schema([ TextInput::make('hero_badge_text') ->label('Hero Badge Text') ->maxLength(50), TextInput::make('hero_header') ->label('Hero Header') ->required() ->maxLength(100), Textarea::make('hero_sub_header') ->label('Hero Sub Header') ->rows(3) ->maxLength(255), Grid::make()->schema([ TextInput::make('hero_link_button_text') ->label('Hero Button Text') ->maxLength(50), TextInput::make('hero_link_button_url') ->label('Hero Button URL') ->maxLength(255) ->url(), ])->columns(2), ]), Section::make('About Section') ->description('Manage the about section content on the homepage.') ->icon('heroicon-o-building-office-2') ->schema([ TextInput::make('about_subtitle') ->label('About Subtitle') ->maxLength(100), TextInput::make('about_header') ->label('About Header') ->required() ->maxLength(255), Textarea::make('about_paragraph') ->label('About Paragraph') ->rows(5) ->maxLength(65535), Grid::make()->schema([ TextInput::make('about_projects_text') ->label('Projects Text') ->maxLength(100), TextInput::make('about_projects_number') ->label('Projects Number') ->numeric(), ])->columns(2), Grid::make()->schema([ TextInput::make('about_members_text') ->label('Members Text') ->maxLength(100), TextInput::make('about_members_number') ->label('Members Number') ->numeric(), ])->columns(2), Grid::make()->schema([ TextInput::make('about_reviews_text') ->label('Reviews Text') ->maxLength(100), TextInput::make('about_reviews_number') ->label('Reviews Number') ->numeric(), ])->columns(2), Grid::make()->schema([ TextInput::make('about_button_text') ->label('About Button Text') ->maxLength(50), TextInput::make('about_button_url') ->label('About Button URL') ->maxLength(255) ->url(), ])->columns(2), Grid::make()->schema([ FileUpload::make('about_image_one') ->label('About Image One (245x410)') ->image() ->maxSize(2048) ->disk('public') ->directory('about-images'), FileUpload::make('about_image_two') ->label('About Image Two (375x391)') ->image() ->maxSize(2048) ->disk('public') ->directory('about-images'), ])->columns(2), ]), Section::make('Background Video') ->description('Upload or link the background video for the hero section.') ->icon('heroicon-o-camera') ->schema([ TextInput::make('bg_video') ->label('Background Video URL') ->maxLength(255) ->url(), ]), ]) ->columns(1) ->statePath('data'); } public static function getNavigationGroup(): ?string { return __('CMS'); } public static function getNavigationLabel(): string { return __('Home'); } public function getTitle(): string|Htmlable { return 'Home'; } public function getHeading(): string|Htmlable { return 'Edit homepage text and images from here'; } public function getSubheading(): string|Htmlable|null { return 'Manage the homepage hero section, background video, and call-to-action content.'; } }