components([ DatePicker::make('explanation_date') ->required() ->default(now()), TextInput::make('reason') ->required() ->maxLength(255), Textarea::make('description') ->required() ->rows(4) ->columnSpanFull(), HrForm::fileUpload('attachment_path') ->label('Attachment') ->acceptedFileTypes(['application/pdf', 'image/*']) ->maxSize(10240), ]); } public function table(Table $table): Table { return $table ->recordTitleAttribute('reason') ->columns([ TextColumn::make('explanation_date') ->date() ->sortable(), TextColumn::make('reason') ->searchable() ->limit(40), TextColumn::make('description') ->limit(50) ->toggleable(), IconColumn::make('attachment_path') ->label('Attachment') ->boolean() ->trueIcon('heroicon-o-paper-clip') ->falseIcon('heroicon-o-minus'), ]) ->filters([ TrashedFilter::make(), ]) ->headerActions([ CreateAction::make(), ]) ->recordActions([ EditAction::make(), DeleteAction::make(), ]) ->toolbarActions([ BulkActionGroup::make([ DeleteBulkAction::make(), ForceDeleteBulkAction::make(), RestoreBulkAction::make(), ]), ]); } }