Saltar al contenido
← Volver a proyectos

Filament Sensible Defaults

A Filament plugin that applies a curated set of sensible, opinionated UI defaults across your panels (actions, forms, selects, date-time pickers, tables, pages and display formats) with config-driven, per-block opt-outs.

Versión: v3 v4 v5 · branch: 3.x

Filament Sensible Defaults

#Filament Sensible Defaults

Buy Me A Coffee

Latest Version on Packagist GitHub Code Style Action Status Tests Total Downloads License

A Filament plugin that applies a curated set of sensible, opinionated UI defaults across your panels — actions, forms, selects, date-time pickers, tables, pages and display formats — so every Resource, Page and Widget inherits consistent behaviour without repeating configuration. Every block is config-driven and can be opted out of individually.

#Compatibility

Branch Filament
1.x ^3.0
2.x ^4.0
3.x ^5.0

#Installation

You can install the package via composer:

composer require jeffersongoncalves/filament-sensible-defaults:^3.0

Optionally publish the config file:

php artisan vendor:publish --tag=filament-sensible-defaults-config

#Usage

By default the plugin auto-registers and applies every enabled block of defaults globally — no panel wiring required. Just install it and your panels inherit the defaults.

If you prefer explicit, per-panel control, set auto_register to false in config/sensible-defaults.php and register the plugin on your PanelProvider:

use JeffersonGoncalves\Filament\SensibleDefaults\FilamentSensibleDefaultsPlugin;

public function panel(Panel $panel): Panel
{
    return $panel
        ->plugin(
            FilamentSensibleDefaultsPlugin::make()
                ->selectDefaults(false)   // opt a block out fluently
                ->datetimeDefaults()      // or keep one explicitly on
        );
}

#What it sets

Block Default behaviour
translate_labels translateLabel() on every Field, Infolist Entry and Table Column
action_defaults Action modalWidth(Medium) + closeModalByClickingAway(false); Create/Edit/Delete/View Heroicons + hiddenLabel(); ActionGroup ellipsis icon
select_defaults Selectnative(false), auto searchable()/preload() for relationships, selectablePlaceholder() when not required
datetime_defaults DateTimePickerseconds(false) + maxDate('9999-12-31T23:59')
fileupload_defaults FileUploadmoveFiles()
repeater_defaults Repeater / Builder delete actions require confirmation
form_defaults ToggleButtons inline + grouped, TextInput minValue(0), Textarea rows(4)
page_defaults Validation errors rendered as a danger Notification; non-sticky form actions
table_defaults filtersFormWidth('md'), pagination options [5, 10, 25, 50], lazy-loaded image columns, non-native select filters
format_defaults Schema & Table currency / date / datetime / time display formats (see formats in the config)

#Configuration

Each block is a boolean toggle and the display formats are fully customisable in config/sensible-defaults.php:

return [
    'auto_register' => true,

    'translate_labels' => true,
    'action_defaults' => true,
    'select_defaults' => true,
    'datetime_defaults' => true,
    'fileupload_defaults' => true,
    'repeater_defaults' => true,
    'form_defaults' => true,
    'page_defaults' => true,
    'table_defaults' => true,
    'format_defaults' => true,

    'formats' => [
        'currency' => 'brl',
        'date_display_format' => 'M j, Y',
        'iso_date_display_format' => 'L',
        'datetime_display_format' => 'M j, Y H:i:s',
        'iso_datetime_display_format' => 'LLL',
        'number_locale' => null,
        'time_display_format' => 'H:i:s',
        'iso_time_display_format' => 'LT',
    ],
];

#Fine-grained control

Blocks that bundle more than one class also expose a matching sub-array so you can disable a single item without losing the rest of the block. The block switch is a master gate: turning it off disables every sub-item regardless of their own setting.

return [
    // ...

    'actions' => [
        'action_group' => true,
        'action' => true,
        'create_action' => true,
        'edit_action' => true,
        'delete_action' => false, // opt DeleteAction out, keep everything else in action_defaults
        'view_action' => true,
    ],

    'select' => [
        'native' => true,
        'selectable_placeholder' => true,
        'searchable' => true,
        'preload' => true,
    ],

    'datetime' => [
        'seconds' => true,
        'max_date' => true,
    ],

    'repeater' => [
        'repeater' => true,
        'builder' => true,
    ],

    'form' => [
        'toggle_buttons' => true,
        'text_input' => true,
        'textarea' => true,
    ],

    'page' => [
        'validation_notification' => true,
        'sticky_form_actions' => true,
    ],

    'table' => [
        'table' => true,
        'image_column' => true,
        'select_filter' => true,
    ],
];

#Testing

composer test

#Changelog

Please see CHANGELOG for more information on what has changed recently.

#Contributing

Please see CONTRIBUTING for details.

#Security Vulnerabilities

Please review our security policy on how to report security vulnerabilities.

#Credits

#License

The MIT License (MIT). Please see License File for more information.

Nueva versión disponible.