diff --git a/config/filament-architect.php b/config/filament-architect.php index a510e7f..c5f3783 100644 --- a/config/filament-architect.php +++ b/config/filament-architect.php @@ -10,7 +10,6 @@ \Codedor\FilamentArchitect\Filament\Architect\MediaTextBlock::class, \Codedor\FilamentArchitect\Filament\Architect\SliderBlock::class, \Codedor\FilamentArchitect\Filament\Architect\SpacerBlock::class, - \Codedor\FilamentArchitect\Filament\Architect\TableBlock::class, \Codedor\FilamentArchitect\Filament\Architect\TextBlock::class, \Codedor\FilamentArchitect\Filament\Architect\VideoBlock::class, \Codedor\FilamentArchitect\Filament\Architect\VideoTextBlock::class, diff --git a/docs/index.md b/docs/index.md index 9cedc7a..a73c6e3 100644 --- a/docs/index.md +++ b/docs/index.md @@ -65,7 +65,6 @@ return [ \Codedor\FilamentArchitect\Filament\Architect\MediaTextBlock::class, \Codedor\FilamentArchitect\Filament\Architect\SliderBlock::class, \Codedor\FilamentArchitect\Filament\Architect\SpacerBlock::class, - \Codedor\FilamentArchitect\Filament\Architect\TableBlock::class, \Codedor\FilamentArchitect\Filament\Architect\TextBlock::class, \Codedor\FilamentArchitect\Filament\Architect\VideoBlock::class, \Codedor\FilamentArchitect\Filament\Architect\VideoTextBlock::class, @@ -167,7 +166,6 @@ Default value: \Codedor\FilamentArchitect\Filament\Architect\MediaTextBlock::class, \Codedor\FilamentArchitect\Filament\Architect\SliderBlock::class, \Codedor\FilamentArchitect\Filament\Architect\SpacerBlock::class, - \Codedor\FilamentArchitect\Filament\Architect\TableBlock::class, \Codedor\FilamentArchitect\Filament\Architect\TextBlock::class, \Codedor\FilamentArchitect\Filament\Architect\VideoBlock::class, \Codedor\FilamentArchitect\Filament\Architect\VideoTextBlock::class, diff --git a/resources/views/architect/button-block.blade.php b/resources/views/architect/button-block.blade.php index 82a5228..ea4ae7b 100644 --- a/resources/views/architect/button-block.blade.php +++ b/resources/views/architect/button-block.blade.php @@ -1,2 +1,19 @@ -@dump($buttons) -@dump($alignment) +@php + $alignmentClass = [ + 'left' => 'text-start', + 'center' => 'text-center', + 'right' => 'text-end' + ][$alignment]; +@endphp + +@if ($buttons && count($buttons)) +
+
+ @foreach ($buttons as $button) + + @endforeach +
+
+@endif diff --git a/resources/views/architect/cards-block.blade.php b/resources/views/architect/cards-block.blade.php index 1af1369..35301e5 100644 --- a/resources/views/architect/cards-block.blade.php +++ b/resources/views/architect/cards-block.blade.php @@ -1 +1,22 @@ -@dump($cards) +
+
+
+ @foreach ($cards as $card) +
count($cards) > 2 + ]) + > + +
+ @endforeach +
+
+
diff --git a/resources/views/architect/cta-block.blade.php b/resources/views/architect/cta-block.blade.php index 6eea1ca..001e0d2 100644 --- a/resources/views/architect/cta-block.blade.php +++ b/resources/views/architect/cta-block.blade.php @@ -1,2 +1,6 @@ -@dump($title) -@dump($button) +
+
+

{{ $title }}

+ +
+
diff --git a/resources/views/architect/embed-block.blade.php b/resources/views/architect/embed-block.blade.php index e068103..e6636a8 100644 --- a/resources/views/architect/embed-block.blade.php +++ b/resources/views/architect/embed-block.blade.php @@ -1 +1,5 @@ -@dump($embed) +
+
+ {!! $embed !!} +
+
diff --git a/resources/views/architect/media-block.blade.php b/resources/views/architect/media-block.blade.php index e90326d..10fdc5b 100644 --- a/resources/views/architect/media-block.blade.php +++ b/resources/views/architect/media-block.blade.php @@ -1,2 +1,28 @@ -@dump($width) -@dump($images) +
+ @if($width !== 'full_width') +
+ @endif +
+
$width === 'text_container', + ])> +
+ @foreach($images as $image) +
+ @if ($image['type'] === 'video') + + @else + + @endif +
+ @endforeach +
+
+
+ @if($width !== 'full') +
+ @endif +
diff --git a/resources/views/architect/media-text-block.blade.php b/resources/views/architect/media-text-block.blade.php index c525342..996e597 100644 --- a/resources/views/architect/media-text-block.blade.php +++ b/resources/views/architect/media-text-block.blade.php @@ -1,3 +1,21 @@ -@dump($alignment) -@dump($image) -@dump($description) +
+
+
$alignment === 'right' + ]) + > +
+ @if ($image['type'] === 'video') + + @else + + @endif +
+
+ {!! $description !!} +
+
+
+
diff --git a/resources/views/architect/slider-block.blade.php b/resources/views/architect/slider-block.blade.php index 2274a42..ee4ebd1 100644 --- a/resources/views/architect/slider-block.blade.php +++ b/resources/views/architect/slider-block.blade.php @@ -1 +1,17 @@ -@dump($images) +
+
+ @if (count($images)) + + @foreach ($images as $image) +
+ +
+ @endforeach +
+ @endif +
+
diff --git a/resources/views/architect/spacer-block.blade.php b/resources/views/architect/spacer-block.blade.php index 15f3135..d415266 100644 --- a/resources/views/architect/spacer-block.blade.php +++ b/resources/views/architect/spacer-block.blade.php @@ -1 +1 @@ -@dump($height) +
diff --git a/resources/views/architect/table-block.blade.php b/resources/views/architect/table-block.blade.php deleted file mode 100644 index c948a86..0000000 --- a/resources/views/architect/table-block.blade.php +++ /dev/null @@ -1 +0,0 @@ -@dump($table) diff --git a/resources/views/architect/text-block.blade.php b/resources/views/architect/text-block.blade.php index a80626c..bd92b24 100644 --- a/resources/views/architect/text-block.blade.php +++ b/resources/views/architect/text-block.blade.php @@ -1,2 +1,13 @@ -@dump($columns) -@dump($textColumns) +
+
+
+ @foreach ($textColumns as $text) +
+ {!! $text !!} +
+ @endforeach +
+
+
diff --git a/resources/views/architect/video-block.blade.php b/resources/views/architect/video-block.blade.php index 4a93af5..db527d3 100644 --- a/resources/views/architect/video-block.blade.php +++ b/resources/views/architect/video-block.blade.php @@ -1 +1,5 @@ -@dump($video) +
+
+ +
+
diff --git a/resources/views/architect/video-text-block.blade.php b/resources/views/architect/video-text-block.blade.php index a0fec48..d661006 100644 --- a/resources/views/architect/video-text-block.blade.php +++ b/resources/views/architect/video-text-block.blade.php @@ -1,3 +1,17 @@ -@dump($alignment) -@dump($video) -@dump($description) +
+
+
$alignment === 'right' + ]) + > +
+ +
+
+ {!! $description !!} +
+
+
+
diff --git a/resources/views/components/button-field.blade.php b/resources/views/components/button-field.blade.php index 6ec5621..46f3732 100644 --- a/resources/views/components/button-field.blade.php +++ b/resources/views/components/button-field.blade.php @@ -1,6 +1,11 @@ -
- +
+ + - {{ $getAction('addButton') }} - {{ $getAction('removeButton') }} + {{ $getAction('addButton') }} + {{ $getAction('removeButton') }} +
diff --git a/src/Filament/Architect/ButtonBlock.php b/src/Filament/Architect/ButtonBlock.php index a6e874f..aa11a2a 100644 --- a/src/Filament/Architect/ButtonBlock.php +++ b/src/Filament/Architect/ButtonBlock.php @@ -28,7 +28,11 @@ public function schema(): array 'left' => 'Left', 'center' => 'Center', 'right' => 'Right', - ]), + ]) + ->inline() + ->inlineLabel(false) + ->default('left') + ->formatStateUsing(fn (mixed $state) => $state ?? 'left'), Repeater::make('buttons') ->schema([ButtonComponent::make('button')]) diff --git a/src/Filament/Architect/MediaBlock.php b/src/Filament/Architect/MediaBlock.php index ce2caca..3fc3090 100644 --- a/src/Filament/Architect/MediaBlock.php +++ b/src/Filament/Architect/MediaBlock.php @@ -28,7 +28,16 @@ public function schema(): array return [ Radio::make('width') ->visible((bool) ArchitectConfig::getWidthOptionsEnum()) + ->inline() + ->inlineLabel(false) ->required() + ->formatStateUsing(function ($state) { + if (! $state) { + return ArchitectConfig::getWidthOptionsEnum()::cases()[0] ?? null; + } + + return $state; + }) ->options(function (Get $get) { $enum = ArchitectConfig::getWidthOptionsEnum(); diff --git a/src/Filament/Architect/MediaTextBlock.php b/src/Filament/Architect/MediaTextBlock.php index aeb414c..0145b6f 100644 --- a/src/Filament/Architect/MediaTextBlock.php +++ b/src/Filament/Architect/MediaTextBlock.php @@ -6,6 +6,7 @@ use Codedor\MediaLibrary\Filament\AttachmentInput; use Codedor\MediaLibrary\Models\Attachment; use Filament\Forms\Components\Radio; +use Filament\Forms\Components\Section; use FilamentTiptapEditor\TiptapEditor; use Illuminate\View\View; @@ -30,14 +31,15 @@ public function schema(): array ->options([ 'left' => 'Left', 'right' => 'Right', - ]), + ]) + ->inline() + ->inlineLabel(false) + ->default('left') + ->formatStateUsing(fn (mixed $state) => $state ?? 'left'), AttachmentInput::make('image') ->allowedFormats(ArchitectFormats::get()) ->required(), - - TiptapEditor::make('description') - ->label('Text to display'), ]; } } diff --git a/src/Filament/Architect/TableBlock.php b/src/Filament/Architect/TableBlock.php deleted file mode 100644 index 6353389..0000000 --- a/src/Filament/Architect/TableBlock.php +++ /dev/null @@ -1,25 +0,0 @@ - $data['table'] ?? '', - ]); - } - - public function schema(): array - { - return [ - TiptapEditor::make('table') - ->disableBubbleMenus(false) - ->required(), - ]; - } -} diff --git a/src/Filament/Architect/TextBlock.php b/src/Filament/Architect/TextBlock.php index cb87eba..8018a81 100644 --- a/src/Filament/Architect/TextBlock.php +++ b/src/Filament/Architect/TextBlock.php @@ -11,7 +11,7 @@ class TextBlock extends BaseBlock { - protected ?string $name = 'Text columns block'; + protected ?string $name = 'Text block'; public function render(array $data): ?View { @@ -30,10 +30,13 @@ public function schema(): array TextInput::make('columns') ->numeric() ->reactive() + ->default(1) ->minValue(1) ->maxValue(3) + ->formatStateUsing(fn (mixed $state) => $state ?? 1) ->extraInputAttributes(['min' => 1, 'max' => 3]), + Grid::make(1)->schema(function (Get $get) { return collect() ->pad($get('columns') ?? 1, null) diff --git a/src/Filament/Architect/VideoTextBlock.php b/src/Filament/Architect/VideoTextBlock.php index 5a1e19f..9713fe3 100644 --- a/src/Filament/Architect/VideoTextBlock.php +++ b/src/Filament/Architect/VideoTextBlock.php @@ -26,13 +26,15 @@ public function schema(): array ->options([ 'left' => 'Left', 'right' => 'Right', - ]), - - OEmbed::make('video'), + ]) + ->inline() + ->inlineLabel(false), TiptapEditor::make('description') ->label('Text') ->required(), + + OEmbed::make('video'), ]; } } diff --git a/tests/Feature/Filament/Architect/MediaTextBlockTest.php b/tests/Feature/Filament/Architect/MediaTextBlockTest.php index b047488..91aaf74 100644 --- a/tests/Feature/Filament/Architect/MediaTextBlockTest.php +++ b/tests/Feature/Filament/Architect/MediaTextBlockTest.php @@ -15,7 +15,5 @@ ->toBeInstanceOf(\Filament\Forms\Components\Radio::class), fn ($field) => $field ->toBeInstanceOf(\Codedor\MediaLibrary\Filament\AttachmentInput::class), - fn ($field) => $field - ->toBeInstanceOf(\FilamentTiptapEditor\TiptapEditor::class), ); }); diff --git a/tests/Feature/Filament/Architect/TableBlockTest.php b/tests/Feature/Filament/Architect/TableBlockTest.php deleted file mode 100644 index 883eeb4..0000000 --- a/tests/Feature/Filament/Architect/TableBlockTest.php +++ /dev/null @@ -1,16 +0,0 @@ -tableBlock = new TableBlock(); -}); - -it('has a schema', function () { - expect($this->tableBlock) - ->schema()->sequence( - fn ($component) => $component - ->toBeInstanceOf(TiptapEditor::class), - ); -}); diff --git a/tests/Feature/Filament/Architect/VideoTextBlockTest.php b/tests/Feature/Filament/Architect/VideoTextBlockTest.php index 785d7d6..3d23d2a 100644 --- a/tests/Feature/Filament/Architect/VideoTextBlockTest.php +++ b/tests/Feature/Filament/Architect/VideoTextBlockTest.php @@ -13,9 +13,9 @@ ->schema()->sequence( fn ($field) => $field ->toBeInstanceOf(\Filament\Forms\Components\Radio::class), - fn ($field) => $field - ->toBeInstanceOf(\Filament\Forms\Components\Fieldset::class), fn ($field) => $field ->toBeInstanceOf(\FilamentTiptapEditor\TiptapEditor::class), + fn ($field) => $field + ->toBeInstanceOf(\Filament\Forms\Components\Fieldset::class), ); });