Download the PHP package asignua/filament-clusters without Composer
On this page you can find all versions of the php package asignua/filament-clusters. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download asignua/filament-clusters
More information about asignua/filament-clusters
Files in asignua/filament-clusters
Package filament-clusters
Short Description Group several Filament 5 fields into one input row with a shared label, joined borders and a shared focus ring.
License MIT
Homepage https://github.com/asignua/filament-clusters
Informations about the package filament-clusters
Filament Clusters
Put several fields into one input row in Filament 5: one label, one bordered control, joined borders and a shared focus ring.
Address lines, name parts, ranges, money plus currency. Every child keeps its own state path and validation; the cluster only
draws them together and gathers their errors. A maintained Filament 5 successor of guava/filament-clusters.
Screenshots
Name, address, period, money plus currency, prefix and suffix and a two-row cluster: one label and one bordered control each:

Every child keeps its own validation; the cluster gathers the errors under one label:

Dark mode:

Requirements
- PHP 8.3+
- Laravel 12 or 13
- Filament 5
Installation
Registering the plugin is optional (it only lists the plugin on the panel):
Migrating from Guava: change the import to Asignua\FilamentClusters\Cluster. Note that an integer columns() now means "on every screen".
Usage
The children are saved as first_name / last_name, exactly as without the cluster.
Several clusters in one form
Cluster::make([...]) needs no name: each unnamed cluster gets a generated one from its child field names, stable between
Livewire requests, so any number of them can sit in one schema. A cluster owns no state, so the name only matters for DOM ids.
Columns and stacking
Per-child width: ->columnSpan(['default' => 3]) (a bare columnSpan(3) is Filament's lg-only span). Likewise ->columns(3) is ['default' => 3], not Filament's lg-only form.
Recipes
Configuration
There is no config file. Restyle through CSS variables on .fi-cl: --fi-cl-radius, --fi-cl-divider, --fi-cl-ring,
--fi-cl-ring-focus, --fi-cl-ring-invalid. Dark mode follows Filament's .dark class.
Gotchas
- Children's own labels, hints and helper text are not drawn (the cluster supplies them). Their labels stay as screen-reader names.
- Multi-row clusters (more children than columns) draw a hairline on both sides of every later cell, so the first cell of a second row shows a short line at the outer edge.
- Don't override
isDisabled()-style logic from the children: the dimmed frame is shown when every child is disabled, the cluster itself is not disabled by it. - Only fields with a single-line frame (
fi-input-wrp) look right inside; textareas, toggles and editors do not. - Outside a panel (plain Livewire page) load the stylesheet with
FilamentAsset::getStyleHref('filament-clusters', 'asignua/filament-clusters').
Translations
English, Ukrainian, German, Spanish, French, Italian, Dutch, Polish, Brazilian Portuguese and Turkish under
filament-clusters::filament-clusters (the screen-reader name of a child). Publish with --tag=filament-clusters-translations.
AI agents
Laravel Boost guidelines ship in resources/boost/guidelines/core.blade.php.
Testing
Changelog
See CHANGELOG.md.
License
The MIT License (MIT). See LICENSE.md.
All versions of filament-clusters with dependencies
filament/filament Version ^5.0
illuminate/contracts Version ^12.0|^13.0
spatie/laravel-package-tools Version ^1.16