anish/maskable-entry
最新稳定版本:v1.0.2
Composer 安装命令:
composer require anish/maskable-entry
包简介
A powerful Filament PHP infolist component that enables seamless maskable entry. Features include maskable entry, preview functionality, and easy integration with Laravel. Perfect for maskable values in infolists.
关键字:
README 文档
README
A reusable maskable entry component for Filament Infolists.
A powerful Filament PHP infolist component that enables seamless maskable entry. Ideal for hiding and toggling sensitive values such as passwords, social security numbers, credit card numbers, and API keys.
Features
- 🔒 Maskable Display — Hide sensitive data with custom mask patterns
- 👁️ Toggle Visibility — One click to reveal or hide the actual value
- 🎨 Native Filament v4 Integration — Works like any infolist entry
- ⚙️ Fully Configurable — Custom patterns, masking characters, closures
- 📱 Responsive — Works across all device sizes
Requirements
- PHP 8.1+
- Laravel 10+
- Filament 4.x
Installation
composer require anish/maskable-entry
The package auto-discovers its service provider—no manual setup required.
Basic Usage
use Anish\MaskableEntry\Components\MaskableEntry; use Illuminate\Support\Facades\Auth; use Filament\Schemas\Schema; public static function configure(Schema $schema): Schema { return $schema->components([ MaskableEntry::make('social_security_number') ->maskValue('XXX-XX-XXXX') ->actualValue(fn ($record) => $record->social_security_number) ->toggleable(Auth::user()->can('view_social_security_number')) ->label('Social Security Number'), ]); }
Note:
If you are using a custom theme add the plugin's views to your theme css file or your app's css file.
@source '../../../../vendor/anish/maskable-entry/resources/views/**/*.blade.php
Advanced Usage
Custom Mask Pattern
MaskableEntry::make('credit_card') ->maskValue('XXXX-XXXX-XXXX-XXXX') ->actualValue(fn ($record) => $record->credit_card_number) ->label('Credit Card Number');
Using a Closure for Actual Value
MaskableEntry::make('password') ->maskValue('XXXXXXXX') ->actualValue(fn (User $record) => $record->password) ->label('Password');
Custom Masking Character
MaskableEntry::make('api_key') ->maskValue('****-****-****-****') ->actualValue(fn ($record) => $record->api_key) ->maskingChar('*') ->label('API Key');
Available Methods
maskValue(string $value)
The pattern shown in masked mode.
Use X (or your custom char) to represent masked digits.
->maskValue('XXX-XX-XXXX')
actualValue(string|Closure|null $value)
Defines the value revealed on toggle.
->actualValue(fn ($record) => $record->social_security_number) // or ->actualValue('123-45-6789')
maskingChar(string $char)
Changes the masking character. Default: X.
->maskingChar('*')
Supports All Standard TextEntry Methods
MaskableEntry::make('field') ->maskValue('XXX-XX-XXXX') ->actualValue(fn ($record) => $record->value) ->label('Custom Label') ->placeholder('N/A') ->copyable() ->icon('heroicon-o-shield-check');
How It Works
- Masked State — Displays the mask pattern (
XXX-XX-XXXX) - Toggle Button — Eye icon switches visibility
- Revealed State — Shows the actual value formatted
- Formatting — Automatically aligns characters to mask structure
Testing
composer test
Code Style
This package uses Laravel Pint:
composer format
Contributing
Contributions are welcome!
Development Setup
- Clone the repo
composer install- Create a new branch
- Write your feature
- Run tests & Pint
- Submit PR
Security
If you find a security issue, please email: anishregminaglibang@gmail.com
Changelog
See CHANGELOG.
Credits
- Anish Regmi
- All Contributors
License
MIT
统计信息
- 总下载量: 37
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 9
- 点击次数: 0
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2025-11-28