codebar-ag/laravel-filament-revealable-field

This is my package laravel-filament-revealable-field

v13.0.1 2025-07-15 12:36 UTC

README

Latest Version on Packagist GitHub-Tests GitHub Code Style Total Downloads

πŸ’‘ What is Filament Revealable Field?

Filament Revealable Field is an Infolist Field for toggling the visibility of sensitive data. It provides a secure way to display confidential information that can be revealed on demand, with optional copy-to-clipboard functionality.

πŸ›  Requirements

Package PHP Laravel Filament Infolists
v13.0.0 (alpha) ^8.3 ^13.x ^4.0
v12.0.0 ^8.2 ^12.x ^3.0
v2.0.0 ^8.2 - ^8.3 11.x ^3.2
v1.0.0 ^8.2 - ^8.3 11.x ^3.2

βš™οΈ Installation

You can install the package via composer:

composer require codebar-ag/laravel-filament-revealable-field

CSS Setup

Add the following to your resources/css/app.css file:

@source '../../vendor/codebar-ag/laravel-filament-revealable-field/src/Infolists/Components/RevealableEntry.php';

Usage

Infolists:

use CodebarAg\FilamentRevealableField\Infolists\Components\RevealableEntry;

...

public function infolist(Infolist $infolist): Infolist
{
    return $infolist
        ->schema([
            RevealableEntry::make('revealable')
                ->label('REVEALABLE')
                ->copyable() // Enable copy functionality
                ->copyMessage('Value copied!') // Custom copy message
                ->copyableState('Custom copy text'); // Custom text to copy
        ]);
}
...

πŸ“‹ Features

Revealable Content

  • Click the eye icon to toggle visibility of sensitive data
  • Hidden content is displayed as asterisks (********)
  • Secure by default - content is hidden until explicitly revealed

Copyable Content

  • Enable copy-to-clipboard functionality with ->copyable()
  • Customize copy message with ->copyMessage('Custom message')
  • Set custom text to copy with ->copyableState('Custom text')
  • Set copy message duration with ->copyMessageDuration(3000)

Available Methods

RevealableEntry::make('field_name')
    ->label('Field Label')
    ->copyable() // Enable copy functionality
    ->copyMessage('Value copied to clipboard!') // Custom success message
    ->copyableState('Custom text to copy') // Custom text to copy (defaults to field value)
    ->copyMessageDuration(3000); // Message duration in milliseconds (default: 2000)

🚧 Testing

Copy your own phpunit.xml-file.

cp phpunit.xml.dist phpunit.xml

Run the tests:

./vendor/bin/pest

πŸ“ Changelog

Please see CHANGELOG for recent changes.

✏️ Contributing

Please see CONTRIBUTING for details.

composer test

Code Style

./vendor/bin/pint

πŸ§‘β€πŸ’» Security Vulnerabilities

Please review our security policy on reporting security vulnerabilities.

πŸ™ Credits

🎭 License

The MIT License (MIT). Please have a look at License File for more information.