ralphjsmit / laravel-filament-components
A collection of reusable components for Filament.
Installs: 51 021
Dependents: 6
Suggesters: 0
Security: 0
Stars: 98
Watchers: 3
Forks: 9
Open Issues: 1
Requires
- php: ^8.0
- filament/forms: ^3.0
- illuminate/contracts: ^9.52|^10.0|^11.0
- spatie/laravel-package-tools: ^1.9.2
Requires (Dev)
- nesbot/carbon: ^2.66|^3.0
- nunomaduro/collision: ^6.0|^7.0|^8.0
- orchestra/testbench: ^7.0|^8.0|^9.0
- pestphp/pest: ^1.21|^2.0
- pestphp/pest-plugin-laravel: ^1.1|^2.0
- phpunit/phpunit: ^9.5|^10.0
- spatie/laravel-ray: ^1.26
- spatie/pest-plugin-test-time: ^1.0|^2.0
README
A collection of reusable components for Filament.
This package is a collection of handy components for you to use in all your Filament projects. It provides handy components that can be used in almost any project, like sidebars, timestamps & more.
PRs are welcome, so if you've made a handy component yourself, feel free to send a pull request!
Installation
You can install the package via composer:
composer require ralphjsmit/laravel-filament-components
Usage
Currently, the following components are available:
Sidebar
You can use the Sidebar
component to split the form into two distinct sections, like a sidebar:
use RalphJSmit\Filament\Components\Forms\Sidebar; Sidebar::make([ // Components for the main section here ],[ // Components for the sidebar section here ])
If you're using it in the Admin panel, you can use the Sidebar
in your form()
method:
use Filament\Forms\Components\Section; use Filament\Forms\Components\TextInput; use Filament\Resources\Form; use RalphJSmit\Filament\Components\Forms\Timestamps; use RalphJSmit\Filament\Components\Forms\Sidebar; public static function form(Form $form): Form { return $form->schema([ Sidebar::make([ Section::make() ->schema([ TextInput::make('title')->label('Title'), // ... ]), // ... ], [ Section::make() ->schema([ ...Timestamps::make(), // ... ]), // ... ]), ]); }
Sidebars work very nicely with the Section component to define distinct and easily scannable sections in your interface.
Timestamps
Use the Timestamps
component to display a 'Created at' and 'Updated at' timestamp for your record:
use RalphJSmit\Filament\Components\Forms\Timestamps; return $form->schema([ ...Timestamps::make(), // ]);
The Timestamps
component returns an array with the CreatedAt
and UpdatedAt
components below, so you should use array spreading like in the example to merge the components into your own array.
CreatedAt
Use the CreatedAt
component to display the created_at
timestamp for your record:
use RalphJSmit\Filament\Components\Forms\CreatedAt; return $form->schema([ CreatedAt::make(), // ]);
UpdatedAt
Use the UpdatedAt
component to display the updated_at
timestamp for your record:
use RalphJSmit\Filament\Components\Forms\UpdatedAt; return $form->schema([ UpdatedAt::make(), // ]);
DeletedAt
Use the DeletedAt
component to display the deleted_at
timestamp for your soft-delete record:
use RalphJSmit\Filament\Components\Forms\DeletedAt; return $form->schema([ DeletedAt::make(), // ]);
Timestamp
Use the Timestamp
component to display a custom timestamp for your record. Internally, all of the above timestamps
use this component.
use RalphJSmit\Filament\Components\Forms\Timestamp; return $form->schema([ Timestamp::make('email_verified_at'), // ]);
General
🐞 If you spot a bug, please submit a detailed issue and I'll try to fix it as soon as possible.
🔐 If you discover a vulnerability, please review our security policy.
🙌 If you want to contribute, please submit a pull request. All PRs will be fully credited. If you're unsure whether I'd accept your idea, feel free to contact me!
🙋♂️ Ralph J. Smit