components([ Section::make() ->schema([ FileUpload::make('photo') ->image() ->imageEditor() ->disk('public') ->directory('homepage') ->label('Zdjęcie'), FileUpload::make('photo_mobile') ->image() ->imageEditor() ->disk('public') ->directory('homepage') ->label('Zdjęcie (widoczne na telefonie)'), FileUpload::make('photo_menu') ->image() ->imageEditor() ->disk('public') ->directory('homepage') ->label('Zdjęcie (widoczne w menu i galerii)'), TextInput::make('title') ->label('Tytuł') ->maxLength(2048), RichEditor::make('body') ->label('Treść') ->columnSpanFull(), RichEditor::make('delivery') ->label('Dowóz') ->columnSpanFull(), RichEditor::make('address') ->label('Adres') ->columnSpanFull(), TextInput::make('widget_link') ->label('Link do widgetu (mapa google)') ->maxLength(2048), ]), Section::make() ->schema([ Builder::make('opening_hours') ->label('Godziny otwarcia') ->addActionLabel('Dodaj dzień tygodnia') ->collapsible() ->collapsed() ->reorderable() ->blocks([ Block::make('opening_hour') ->label(function (?array $state): string { if ($state === null) { return 'Dzień tygodnia'; } return $state['name'] ?? 'Dzień tygodnia'; }) ->schema([ TextInput::make('name') ->label('Dzień tygodnia') ->required(), TextInput::make('time') ->label('Godziny otwarcia') ->required(), ]) ->columns(1), ]) ]) ])->statePath('data'); } }