Weave Code
Code Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Actionable Column Laravel Package

shreejan/actionable-column

View on GitHub
Deep Wiki
Context7

Actionable Column

The Actionable Column plugin allows you to add interactive action buttons to Filament table columns. Display text or badges with seamlessly connected action buttons using Filament's native Action system.

Compatible with Filament v4 and v5

Features

  • Badge mode with connected action button
  • Simple text mode with side-by-side action button
  • Customizable action icons and colors
  • Entire column clickable option
  • Empty state "+ Add" button
  • Support for any Filament Action type (edit, delete, approve, etc.)
  • Independent icon and badge/text colors
  • Seamless integration with Filament tables

Installation

You can install the package via composer:

composer require shreejan/actionable-column

Usage

use Shreejan\ActionableColumn\Tables\Columns\ActionableColumn;
use Filament\Actions\Action;
use Filament\Forms\Components\Select;
use Filament\Support\Icons\Heroicon;

ActionableColumn::make('status')
    ->badge()                                    // Display as badge (or remove for simple text)
    ->color('success')                           // Badge/text color: success, danger, warning, info, primary
    ->actionIcon(Heroicon::PencilSquare)         // Action button icon (Heroicon enum or string)
    ->actionIconColor('warning')                 // Icon color (independent from badge color)
    ->clickableColumn()                          // Make entire column clickable (or remove for button-only)
    ->tapAction(
        Action::make('changeStatus')              // Any Filament Action: edit, delete, approve, etc.
            ->label('Change Status')
            ->tooltip('Click to change status')
            ->schema([
                Select::make('status')
                    ->options([
                        'pending' => 'Pending',
                        'approved' => 'Approved',
                        'rejected' => 'Rejected',
                    ])
                    ->required(),
            ])
            ->fillForm(fn ($record) => [
                'status' => $record->status,
            ])
            ->action(function ($record, array $data) {
                $record->update($data);
            })
    )

Configuration Options

Method Description Default
tapAction(Action|Closure) Set any Filament Action (edit, delete, approve, etc.) -
badge() Display as badge (connected to action button) Simple text mode
color(string) Set badge/text color: success, danger, warning, info, primary -
actionIcon(Heroicon|string) Set action button icon heroicon-o-pencil-square
actionIconColor(string) Set icon color (independent from badge color) -
actionIconSize(IconSize|string) Set icon size: xs, sm, md, lg, xl, 2xl sm
actionLabel(string) Custom "+ Add" button label for empty state "Add"
clickableColumn() Make entire column clickable (not just button) Button only
showActionIcon(bool) Show/hide action button (empty state button always shows) true

All standard TextColumn methods are available: searchable(), sortable(), limit(), date(), formatStateUsing(), etc.

CSS Customization

To customize styles without losing changes during composer install or composer update:

Default location: Create resources/css/actionable-column-custom.css (auto-detected)

Custom location: Set ACTIONABLE_COLUMN_CUSTOM_CSS_PATH in .env or config/actionable-column.php

The custom CSS loads after the default styles, allowing overrides without modifying published assets.

Credits

Security

If you discover a security vulnerability within this package, please send an e-mail to shreezanpandit@gmail.com. All security vulnerabilities will be promptly addressed.

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

📄 License

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


Made with ❤️ by Shreejan

Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
besmartand-pro/php-quality-config
sentix/ai-chatbot
terminal42/code-quality-tools
codifyo/ts-generator-bundle
testo/fiber
mintobit/jobqueue
a4sex/maintenance-bundle
a4sex/entity-date-update
a4sex/client-identifier
a4sex/base-utilites
a4sex/key-value-storage
a4sex/micro-status
chilldev/dependency-injection-extra
datinglibre/datinglibre-app-api
biberltd/corebundle
bricre/symfony-bundle-test
biberltd/logbundle
dominium/http-adapter-bundle
dominium/google-analytics
a4sex/auto-clean-entity