components([ Tabs::make('Tabs') ->tabs([ Tab::make('Gutachter') ->icon('lucide-stamp') ->inlineLabel() ->schema([ TextInput::make('company') ->label('Firma') ->required(), TextInput::make('title') ->label('Title') ->required(), Select::make('gender') ->label('Geschlecht') ->options([ 'Herr' => 'Herr', 'Frau' => 'Frau', 'Non-binary' => 'Non-binary', ]) ->required(), TextInput::make('name') ->label('Name') ->required(), TextInput::make('email') ->label('E-Mail') ->required() ->prefixIcon(Heroicon::Envelope), PhoneInput::make('phone') ->label('Telefon') ->defaultCountry('AT'), ]), Tab::make('Logo') ->icon('phosphor-image') ->schema([ Checkbox::make('logo_anzeigen') ->label('Das Logo im Gutachten verwenden') ->columnSpanFull() ->live(), FileUpload::make('logo') ->image() ->disk('public') ->directory('gutachter-logo') ->maxSize(3072) // 3MB limit ->acceptedFileTypes(['image/jpeg', 'image/png', 'image/webp']) ->visibility('public') ->label('Logo') ->afterLabel([ShowHelp::show('logo_am_deckblatt')]) ->columnSpanFull(), Radio::make('logo_align') ->Label('Position') ->default('right') ->options([ 'left' => 'Links', 'center' => 'Zentriert', 'right' => 'Rechts', ]), TextInput::make('logo_height') ->hidden(fn (Get $get): bool => ! $get('logo_anzeigen')) ->label('Logo Höhe') ->required() ->suffix('mm'), ])->columns(2), Tab::make('Anzeige am Deckblatt') ->icon('lucide-contact') ->schema([ Checkbox::make('text_anzeigen') ->label('Diesen Text anzeigen') ->columnSpanFull(), RichEditor::make('referenz_formatting') ->json() ->extraInputAttributes(['style' => 'min-height: 20rem; max-height: 50vh; overflow-y: auto;']) ->toolbarButtons([ ['bold', 'italic', 'underline', 'clearFormatting'], ['h3', 'alignStart', 'alignCenter', 'alignEnd', 'textColor'], ]) ->textColors([ '#fb2c36' => 'Rot', '#ff6900' => 'Orange', '#fe9a00' => 'Bernstein', '#f0b100' => 'Gelb', '#7ccf00' => 'Limette', '#00c950' => 'Grün', '#00bc7d' => 'Smaragd', '#00bba7' => 'Blaugrün', '#00b8db' => 'Cyan', '#00a6f4' => 'Himmelblau', '#2b7fff' => 'Blau', '#615fff' => 'Indigo', '#8e51ff' => 'Violett', '#ad46ff' => 'Lila', '#e12afb' => 'Fuchisa', '#f6339a' => 'Rosa', '#ff2056' => 'Rose', '#a6a09b' => 'Steingrau Hell', '#44403b' => 'Steingrau Dunkel', '#cad5e2' => 'Schiefer Hell', '#314158' => 'Schiefer Dunkel', ]) ->label('Gutachter am Deckblatt') ->afterLabel([ShowHelp::show('gutachter_am_deckblatt')]) ->required(), ]), Tab::make('digitale_signatur') ->label('Digitale Signatur') ->icon('phosphor-stamp') ->schema([ FileUpload::make('digitale_signatur_stempel') ->label('Bild vom Stempel') ->image() ->disk('public') ->directory('gutachter-stempel') ->maxSize(3072) // 3MB limit ->acceptedFileTypes(['image/jpeg', 'image/png', 'image/webp']) ->visibility('public'), ])->columns(2), ])->columnSpanFull(), ]); } }