Skip to main content
For a manifest-backed family, declare the package version, namespace and supported core protocol separately from configuration and saved-value versions. The current protocol accepts PHP ABI 1 and JS ABI 1; these are not Filament versions. A mismatch is rejected before the family can enter the registry. Composer continues to resolve PHP package dependency versions. The following example uses your RatingField, RatingColumn and RatingEntry classes. Load their views as usual in your provider. Their classes must extend the appropriate Filament field, column or entry base; FLEX validates the class without constructing a field or resolving a record.
You can supply only the surfaces your package offers; field, column, entry, display and action are supported. Include every declared surface in this family collection. Shared style owners or helpers may accompany them. Each surface has a different component identity and an independent asset consumer. A column or entry loads only the runtime it explicitly declares through its definition and dependencies. Namespaces are lowercase kebab-case, up to 48 characters. Component identities and manifest entry/style/helper roots belong under that prefix. Packages cannot occupy another package’s namespace or register conflicting package versions in the same boot snapshot. Package versions use bounded SemVer release identifiers, including prerelease/build metadata. Configuration and value versions are independent positive integers up to 65535. These numbers identify formats; they do not migrate or validate saved data automatically. Keep your field validation in the server-side save path. The opt-in family schema adapter provides typed configuration, configuration migration and dispatch through form/table/infolist builders. After boot you can inspect the frozen definitions through ComponentRegistry:
Import Bjanczak\FilamentFlexFields\Support\Components\ComponentRegistry in that example. Lookup returns metadata and does not instantiate or configure the renderer. Use your class’s normal lifecycle when building a form, table or infolist. The compatibility registerFamily()/collectFamily() APIs remain available for existing registrations that do not yet declare semantic surfaces.

Continue reading

Extension guides · Definition and registration reference
Last modified on October 17, 2026