'$refresh', ]; public function getMaxContentWidth(): MaxWidth | string | null { return MaxWidth::SixExtraLarge; } protected function getHeaderActions(): array { return [ Actions\ActionGroup::make([ Actions\EditAction::make(), Actions\DeleteAction::make(), Estimate::getApproveDraftAction(), Estimate::getMarkAsSentAction(), Estimate::getMarkAsAcceptedAction(), Estimate::getMarkAsDeclinedAction(), Estimate::getReplicateAction(), Estimate::getConvertToInvoiceAction(), ]) ->label('Actions') ->button() ->outlined() ->dropdownPlacement('bottom-end') ->icon('heroicon-c-chevron-down') ->iconSize(IconSize::Small) ->iconPosition(IconPosition::After), ]; } public function infolist(Infolist $infolist): Infolist { return $infolist ->schema([ Section::make('Estimate Details') ->columns(4) ->schema([ Grid::make(1) ->schema([ TextEntry::make('estimate_number') ->label('Estimate #'), TextEntry::make('status') ->badge(), TextEntry::make('client.name') ->label('Client') ->color('primary') ->weight(FontWeight::SemiBold) ->url(static fn (Estimate $record) => ClientResource::getUrl('edit', ['record' => $record->client_id])), TextEntry::make('expiration_date') ->label('Expiration Date') ->asRelativeDay(), TextEntry::make('approved_at') ->label('Approved At') ->placeholder('Not Approved') ->date(), TextEntry::make('last_sent_at') ->label('Last Sent') ->placeholder('Never') ->date(), TextEntry::make('accepted_at') ->label('Accepted At') ->placeholder('Not Accepted') ->date(), ])->columnSpan(1), DocumentPreview::make() ->type(DocumentType::Estimate), ]), ]); } }