acme/summary inside an application that already has FLEX
and a Filament panel. Run the first command from the application directory containing
artisan and composer.json. Replace acme with your vendor name before distributing it.
For a private application extension, keep using your applicable FLEX grant. Before
distributing a package or reusable kit, confirm its licensing scope.
Generating a starter does not grant rights to redistribute FLEX itself.
1
Generate the family
The parent directory must exist. The destination must be new.You now have a field, column, entry, provider, views, shared CSS and build script.
The command does not install dependencies or change your application’s Composer configuration.
To inspect the plan first, append
--dry-run --json.2
Build the package
Use the FLEX installation already present in the application. This avoids requiring
a second Composer installation merely to run the starter’s build.If your Composer vendor directory is different, set
FLEX_FIELDS_ROOT to the installed
FLEX package directory. Build before Composer discovery boots your new provider.
The resulting manifest references the complete resources/dist/<release> directory.3
Install the local Composer package
Add a path repository in the application’s Composer configuration, then require the package.Composer discovers The generated Summary family does not need its own
SummaryServiceProvider. Keep your application’s existing FLEX
package repository and license access configuration. The local development constraint
is not a release version for a distributed package.Keep the main FLEX plugin enabled in the panel that will use your extension. If it is
already enabled, no panel change is needed. Otherwise, add it to the panel’s existing
plugins in AdminPanelProvider:->plugin() call. Its Laravel
service provider registers its definitions with FLEX. For an application-local
provider that is not installed through Composer, register that provider in
bootstrap/providers.php instead; do not register the same provider twice.4
Add the field
Add this component to the form schema of your resource or Livewire form:This is the real FLEX input inside your field. Its state, validation and assets remain
owned by the child. You can change its supported fluent options without copying its view.
5
Store the value and show it elsewhere
The generated field stores Import Use the matching surface in a table or infolist:
['text' => 'Example']. Add a JSON attribute and an Eloquent
array cast to the model used by your form:Illuminate\Support\Facades\Schema and Illuminate\Database\Schema\Blueprint
in that migration, and run your normal migration workflow.Confirm the result
Enter a summary, submit the form and reopen the record. The same value should appear in the field, table and infolist. The column and entry use shared display CSS without loading the field’s interactive JavaScript. Two fields on the same page must keep independent values and consumer identities.Understand the package
Learn which generated files to change and which build outputs to distribute.
Configure an existing child
Add relationships, queries and callback configuration through trusted PHP.