components([ Tabs::make('Tabs') ->tabs([ Tab::make('Rechnungsdaten') ->icon('lucide-file-pen-line') ->inlineLabel() ->schema([ TextInput::make('company') ->label('Firma/Inhaber') ->required(), TextInput::make('uid_number') ->label('UID Nummer') ->rules([new VatNumber]) ->required(), Textarea::make('address') ->label('Adresse') ->required(), ])->columnSpanFull(), Tab::make('Kontaktperson') ->icon('lucide-contact') ->inlineLabel() ->schema([ 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') ->unique(table: Konto::class) ->required() ->prefixIcon(Heroicon::Envelope), PhoneInput::make('phone') ->label('Telefon') ->defaultCountry('AT'), ])->columnSpanFull(), Tab::make('Zahlungsplan') ->icon('phosphor-coins') ->schema([ RadioDeck::make('plan_id') // ->label('Wählen sie eine Option') ->label('Zur Zeit bieten wie nur den Basic Plan als Zahlungvariante an.') ->options(fn () => Plan::pluck('name', 'id')->toArray()) ->descriptions(Plan::options()) ->icons(fn () => Plan::pluck('icon', 'id')->toArray()) ->required() ->iconPosition(IconPosition::Before) // Before | After ->iconSize(IconSize::TwoExtraLarge) ->alignment(Alignment::Center) // Start | Center | End ->padding('px-4 py-6') // Padding around the deck ->extraCardsAttributes([ 'class' => 'rounded-xl drop-shadow-xl mt-1', ]) ->extraOptionsAttributes([ 'class' => 'text-2xl font-black tracking-tight lg:text-3xl', ]) ->colors('primary') ->disabled() ->columns(3) ->columnSpanFull(), ])->columnSpanFull(), ])->columnSpanFull(), ]); } }