astersnake/filament-radio-group

A radio group field for Filament with support for icons and custom colors.

Fund package maintenance!
astersnake

Installs: 190

Dependents: 0

Suggesters: 0

Security: 0

Stars: 2

Watchers: 1

Forks: 0

Open Issues: 2

Language:Blade

v0.2.0-alpha 2023-06-26 06:00 UTC

README

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

Xnapper-2023-06-25-17 45 10

The filament-radio-group package provides an enhanced radio button group functionality for your Filament applications. It offers a cleaner way to handle and display multiple radio button options, with support for customized icons, descriptions, and display arrangements.

Installation

Install the filament-radio-group package via composer:

composer require astersnake/filament-radio-group

Usage

The filament-radio-group package provides a RadioGroup class, which you can use to construct a radio button group in your application.

use Astersnake\Filament\RadioGroup\RadioGroup;

$radioGroup = RadioGroup::make('radio_group')
    ->options([
        'option_1' => 'Option 1',
        'option_2' => 'Option 2',
        'option_3' => 'Option 3',
    ])
    ->descriptions([
        'option_1' => 'Description for option 1',
        'option_2' => 'Description for option 2',
        'option_3' => 'Description for option 3',
    ])
    ->icons([
        'option_1' => 'lucide-fish',
        'option_2' => 'lucide-fish',
        'option_3' => 'lucide-fish',
    ])
    ->iconsColor([
        'option_1' => 'text-primary-600',
        'option_2' => 'text-success-600',
        'option_3' => 'text-danger-600',
    ])
    ->columns(3)
    ->required();

In the example above, RadioGroup::make('radio_group') creates a new radio button group with the name 'radio_group'.

  • The options() method takes an associative array where keys are option values and values are option labels.
  • The descriptions() method takes an associative array where keys are option values and values are descriptions for options.
  • The icons() method takes an associative array where keys are option values and values are icon names.
  • The iconsColor() method is used to assign colors to the icons.

Theming

If you are using a custom theme for Filament, you will need to add this package's views to your Tailwind CSS config.

content: [
    ...
    "./vendor/astersnake/filament-radio-group/resources/views/**/*.blade.php",
],

Full Compatibility

The filament-radio-group package is built on the original Filament radio field, which means it supports all the functionalities available from the base radio field. This includes but is not limited to labeling, setting a default value, and adding help text. The package simply extends these functionalities, providing more flexibility and customization options.

For more information on using the base radio field functionalities, please refer to the Filament Documentation.

Testing

To run the tests for the package:

composer test

Changelog

Please refer to the CHANGELOG for more information about the recent changes.

Contributing

Your contributions are always welcome! Please see our CONTRIBUTING guide for details.

Security Vulnerabilities

If you discover any security vulnerabilities in this package, please follow our security policy to report them.

Credits

License

This package is licensed under the MIT License (MIT). Please see the License File for more information.