Simple List Entry plugin screenshot
Dark mode ready
Multilingual support
Supports v5.x

Simple List Entry

Add Lists to your Infolist page

Tags: Infolist Entry
Supported versions:
3.x
Georges OLIVARES avatar Author: Georges OLIVARES

Documentation

Preview

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

Plugin for FilamentPHP v3.

#Installation

You can install the package via composer:

composer require Thiktak/filament-simple-list-entry

#Usage

Use it in your Infolist section.

// use Thiktak\FilamentSimpleListEntry\Infolists\Components\SimpleListEntry;

    public static function infolist(Infolist $infolist): Infolist
    {
        return $infolist
            ->schema([
                SimpleListEntry::make('users')
                    ->label('Default with Icon')
                    ->itemIcon('heroicon-o-check'),
            ]);
    }

All methods:

  • Generic:

    • ->label('Define top section label')
    • ->inline(true) change the listStyle to inline. Activate separator.
    • ->badge(true) activate the badge for each line. Desactivate itemActions, itemDescription
    • ->separator(',') change the separator, by default , (coma space)
    • ->getStateUsing(['a', 'b', 'c']) specify manually the data to be used oterwize use the relationship
    • ->emptyStateEnabled(true) activate or not the Empty State. Default true
    • ->emptyStateHeading('No data') change the Heading of the Empty State
    • ->emptyStateDescription('There is nothing') change the Description of the Empty State
    • ->emptyStateIcon('heroicon-o-x-mark') change the Icon of the Empty State
  • Record specific (all are Closure compatible):

    • ->itemLabel(fn ($record) => $record->item) specify the label. By default, will try to stringify the record
    • ->itemDescription(fn ($record) => sprintf('Percentage: %s%%', $record['score'] * 100)) add description under the label
    • ->itemIcon(fn($record) => 'heroicon-o-check') define an icon.
    • ->itemIconColor(fn($record) => 'warning') define a color for the icon.
    • ->itemUrl(fn($record) => '#') define a link if the user click on the icon, label or description.
    • ->itemActions(fn($record) => ...) define Actions and ActionGroups at the right of the line. See Filament Actions documentation.

#List of examples

Example Code
Default with Icon

image

SimpleListEntry::make('')
    ->label('Default with Icon')
    ->getStateUsing(['a', 'b', 'c'])
    ->itemIcon('heroicon-o-check'),
Inline badges list with icons & links

image

SimpleListEntry::make('')
    ->inline(true)
    ->label('Inline badge with icon & link')
    ->getStateUsing(['a', 'b', 'c'])
    ->itemIcon('heroicon-o-check')
    ->itemUrl(fn ($record) => '#' . $record)
    ->badge(true),
Inline list with custom separator

image

SimpleListEntry::make('')
    ->listStyle('inline')
    ->label('inline simple +')
    ->getStateUsing(['a', 'b', 'c'])
    ->separator(' + '),
Inline list with Icon

image

SimpleListEntry::make('')
    ->listStyle('inline')
    ->label('inline with Icon')
    ->getStateUsing(['a', 'b', 'c'])
    ->itemIcon('heroicon-o-check'),
Complexe list with actions

image

SimpleListEntry::make('scoresTop5')
    ->listStyle('list')
    ->itemLabel(fn ($record) => $record->item)
    ->itemUrl(fn ($record) => '#Url-' . $record->id)
    ->itemActions(
        fn ($record) => ActionGroup::make([
            Action::make('view'),
            Action::make('edit'),
            Action::make('delete'),
        ])
            ->size(ActionSize::Small)
    ),
Complexe list with custom data, and all options

image

SimpleListEntry::make('checklist')
    ->listStyle('list')
    ->getStateUsing([
        ['name' => 'Complete profile #1', 'score' => 1],
        ['name' => 'Complete profile #2', 'score' => .75]
    ])
    ->itemIcon(fn ($record) => match (true) {
        $record['score'] >= 1 => 'heroicon-o-check',
        default => 'heroicon-o-exclamation-triangle'
    })
    ->itemIconColor(fn ($record) => match (true) {
        $record['score'] >= 1 => 'success',
        default => 'danger'
    })
    ->itemActions(
        fn ($record) => [
            ViewAction::make('view1')
                    ->url('#View1-' . $record['name']),
            ActionGroup::make([
                Action::make('view2')
                    ->url('#View2-' . $record['name']),
                Action::make('edit'),
                Action::make('delete'),
            ])
                ->size(ActionSize::Small)
        ]
    )
    ->itemUrl(fn ($record) => '#Url-' . $record['name'])
    ->itemLabel(fn ($record) => $record['name'])
    ->itemDescription(function ($record) {
      return sprintf('Percentage: %s%%', $record['score'] * 100)
    }),

#Dark mode support

This plugin is compatible with Light mode and Dark mode.

image image

#Testing

composer test

#Changelog

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

#Contributing

Please see CONTRIBUTING for details.

(Do not hesitate to contribute !)

#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.

The author

Georges OLIVARES avatar Author: Georges OLIVARES

Thiktak is a SAP software developer also passionate about PHP and Laravel.

Plugins
2
Stars
30

From the same author