Installation:
composer require sikessem/components
Publish the package assets (if needed):
php artisan vendor:publish --provider="Sikessem\Components\ComponentsServiceProvider"
First Use Case: Scaffold a Filament resource with built-in components:
php artisan make:filament-resource Post --with-components
This generates a resource with pre-configured Sikessem UI components (e.g., buttons, badges, and layouts).
Where to Look First:
php artisan list:sikessem to see available commands.resources/Filament/Resources for auto-generated templates.Scaffolding with Artisan: Use Sikessem’s commands to generate Filament resources, policies, or widgets with pre-configured components:
# Generate a resource with Sikessem's UI components
php artisan make:filament-resource User --with-components --with-policies
# Create a custom widget (e.g., stats dashboard)
php artisan make:filament-widget StatsOverview --with-sikessem-layout
Integrating UI Components: Replace default Filament components with Sikessem’s variants in your resources/forms:
// app/Filament/Resources/UserResource/Pages/EditUser.php
use Sikessem\Components\Filament\Widgets\ProfileCard;
public function getWidgets(): array
{
return [
ProfileCard::make(),
];
}
Tailwind Customization:
Extend Sikessem’s Tailwind presets in resources/css/filament/app.css:
@layer components {
@import 'vendor/sikessem/components/resources/css/filament/components.css';
@import 'resources/css/filament/custom.css'; /* Override here */
}
Policy/Permission Helpers: Use Sikessem’s policy macros to simplify authorization:
// app/Policies/UserPolicy.php
use Sikessem\Components\Support\Facades\PolicyHelper;
public function viewAny(User $user)
{
return PolicyHelper::canViewAny($user, User::class);
}
Reusable Form Patterns: Leverage Sikessem’s form macros in Filament forms:
// app/Filament/Resources/UserResource/Pages/CreateUser.php
use Sikessem\Components\Filament\Forms\Components\SikessemTextInput;
public function form(Form $form): Form
{
return $form
->schema([
SikessemTextInput::make('name')
->label('Full Name')
->required(),
]);
}
Component Overrides:
custom.css using !important sparingly..filament-widgets .sikessem-card {
@apply border-blue-500; /* Override border color */
}
Artisan Command Conflicts:
make:filament-resource) may conflict with Filament’s built-in commands if not namespaced properly.--with-components flag explicitly to avoid ambiguity.Policy Macro Caching:
php artisan cache:clear
php artisan view:clear
Tailwind Version Mismatch:
v3.x in package.json or manually adjust Sikessem’s CSS imports.Inspect Generated HTML:
Use browser dev tools to verify components render as expected. Sikessem components often add custom classes like sikessem-*.
Log Artisan Output:
Run commands with -v for verbose output:
php artisan make:filament-resource Post --with-components -v
Check Published Assets:
After publishing, verify resources/css/filament/app.css includes Sikessem’s imports:
php artisan vendor:publish --tag=filament-css
Custom Components:
Extend Sikessem’s base components by copying and modifying files from vendor/sikessem/components/src/Filament/Components. Place overrides in app/Filament/Components.
Theme Support: Sikessem supports Filament themes. Create a custom theme by extending Sikessem’s presets:
// config/filament.php
'theme' => [
'custom' => [
'path' => resource_path('views/vendor/filament/themes/custom'),
'components' => [
'widgets' => [
'ProfileCard' => Sikessem\Components\Filament\Widgets\ProfileCard::class,
],
],
],
],
Command Customization: Override Sikessem’s Artisan commands by publishing and modifying their templates:
php artisan vendor:publish --tag=sikessem-commands
Edit templates in resources/views/vendor/sikessem/commands.
Permission Logic: Extend Sikessem’s policy helpers by creating a custom macro:
// app/Providers/AppServiceProvider.php
use Sikessem\Components\Support\Facades\PolicyHelper;
public function boot()
{
PolicyHelper::macro('customCanView', function ($user, $model) {
// Custom logic
return $user->can('custom_view', $model);
});
}
How can I help you explore Laravel packages today?