codebar-ag / laravel-filament-json-field
A Laravel Filament JSON Field integration with CodeMirror support
Installs: 5 115
Dependents: 0
Suggesters: 0
Security: 0
Stars: 5
Watchers: 1
Forks: 1
Open Issues: 0
Requires
- php: 8.2.*|8.3.*|8.4.*
- filament/forms: ^4.0
- filament/infolists: ^4.0
- filament/support: ^4.0
- illuminate/contracts: ^12.0
- livewire/livewire: ^3.6
- spatie/laravel-package-tools: ^1.19
Requires (Dev)
- larastan/larastan: ^v3.1
- laravel/pint: ^1.21
- orchestra/testbench: ^10.0
- pestphp/pest: ^3.7
- phpstan/extension-installer: ^1.4
- phpstan/phpstan-deprecation-rules: ^2.0
- phpstan/phpstan-phpunit: ^2.0
- spatie/laravel-ray: ^1.39
This package is auto-updated.
Last update: 2025-07-15 12:37:46 UTC
README
π‘ What is Filament Json Field?
Filament Json Field is a Laravel Filament JSON Field integration with CodeMirror support, providing a powerful and feature-rich JSON editor for your Filament forms and infolists.
π Requirements
Package | PHP | Laravel | Filament Forms | Filament Infolists | Filament Support |
---|---|---|---|---|---|
v13.0 (alpha) | ^8.3, ^8.4 | ^13.0 | ^4.0 | ^4.0 | ^4.0 |
v12.0 | ^8.2, ^8.3, ^8.4 | ^12.0 | ^3.3 | ^3.3 | ^3.3 |
v2.0 | ^8.1 | ^11.0 | ^3.2 | ^3.2 | ^3.2 |
v1.0 | ^8.1 | ^10.45, ^11.0 | ^3.2 | ^3.2 | ^3.2 |
βοΈ Installation
You can install the package via composer:
composer require codebar-ag/filament-json-field php artisan filament:assets
Usage
Forms
use CodebarAg\FilamentJsonField\Forms\Components\JsonInput; ... public function form(Form $form): Form { return $form ->schema([ JsonInput::make('json') ->label('JSON Data') ->lineNumbers(true) ->lineWrapping(true) ->autoCloseBrackets(true) ->darkTheme(true) ->foldingCode(true) ->foldedCode(true) // Folded code will fold the code on form load ->readOnly(false), // Set to true to make the field read-only ]); }
Infolists
use CodebarAg\FilamentJsonField\Infolists\Components\JsonEntry; ... public function infolist(Infolist $infolist): Infolist { return $infolist ->schema([ JsonEntry::make('json') ->label('JSON Data') ->lineNumbers(true) ->lineWrapping(true) ->autoCloseBrackets(true) ->darkTheme(true) ->foldingCode(true) ->foldedCode(true), // Folded code will fold the code on form load ]); }
Options
The following options are currently supported:
Option | Supported | Description |
---|---|---|
Line Numbers | β | Display line numbers in the editor |
Line Wrapping | β | Enable line wrapping for long lines |
Auto Close Brackets | β | Automatically close brackets and quotes |
Dark Theme | β | Enable dark theme styling |
Folding Code | β | Enable code folding functionality |
Folded Code | β | Start with code folded (forms only) |
Read Only | β | Make the field read-only (forms only) |
Features
- CodeMirror Integration: Powered by CodeMirror 5 for excellent JSON editing experience
- Syntax Highlighting: Full JSON syntax highlighting with validation
- Error Handling: Built-in JSON validation with user-friendly error messages
- Responsive Design: Works seamlessly across different screen sizes
- Customizable: Extensive configuration options for different use cases
- Filament 4.0 Ready: Fully compatible with the latest Filament version
π§ Testing
Copy your own phpunit.xml-file.
cp phpunit.xml.dist phpunit.xml
Run the tests:
./vendor/bin/pest
π§ Building
node bin/build
Note: there is no output, but the build will be in the dist
directory.
π 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
- Rhys Lees
- Sebastian Fix
- All Contributors
- Skeleton Repository from Spatie
- Laravel Package Training from Spatie
π License
The MIT License (MIT). Please have a look at License File for more information.