components([ TextInput::make('title') ->label('Título') ->required() ->maxLength(255) ->live(onBlur: true) ->afterStateUpdated(function (?string $state, callable $set, callable $get): void { if (blank($get('slug'))) { $set('slug', str($state)->slug()->toString()); } }), TextInput::make('slug') ->label('Slug') ->required() ->maxLength(255) ->unique(ignoreRecord: true), TextInput::make('summary') ->label('Resumo') ->required() ->maxLength(255), Textarea::make('description') ->label('Descrição') ->required() ->rows(6), PublicImageUploadRules::fileUpload('cover_image_path', 'Imagem de capa'), PublicImageUploadRules::altTextField('cover_image_alt', 'cover_image_path'), TextInput::make('sort_order') ->label('Ordem') ->numeric() ->default(0) ->required(), Toggle::make('is_featured') ->label('Destaque') ->default(false), DateTimePicker::make('published_at') ->label('Publicado em') ->seconds(false), ]); } }