schema/schema library

Classes

BooleanComponent
CardBadge
CardLayout
How one record renders as a list card — the mobile answer to Filament's data table. Laravel derives a default from the table columns; a resource may override any slot. Every slot is optional: a card with only a title is a valid list tile.
CardLeading
CardMeta
ColorComponent
ColorPicker. The panel declares one of four string formats via ->hex()/->hsl()/->rgb()/->rgba()getFormat() is the ONLY accessor ColorPicker exposes (measured in vendor/filament/forms/src/ Components/ColorPicker.php), and the value on the wire is a plain string in that format. This client never converts it to another one: an rgb field gets rgb back, byte for byte, everywhere it did not itself edit the text.
DateComponent
date / datetime / time. One class, because the three differ only in which parts of a moment they carry.
EntryComponent
A read-only infolist entry. All five kinds display one field, so they share one class; the extra slots are per-kind and null elsewhere.
FileComponent
A file upload field. readOnly defaults to true so an older server that never publishes the key — meaning it predates upload support entirely — reads as inert rather than a renderer guessing it can accept one. A current server publishes false for a writable field, single or multiple.
KeyValueComponent
A keyvalue field: a free-form set of string key/value pairs.
LayoutComponent
A container node. Holds no value, so name is always null; the renderer decides how each kind frames its children.
MediaItem
One file from Spatie's medialibrary — the client's read of an entry in the <field>.__media sibling a medialibrary-backed field publishes alongside its raw value (a media-uuid string, or a list of them for a multi-file field). The raw value is what a form submits back; this is what a screen renders.
MediaSet
The parsed <field>.__media sibling: every MediaItem the server could resolve for a medialibrary-backed field's raw uuid token(s).
NumberComponent
PanelSchema
The whole panel document. Contains only the resources the authenticated user may view — the server filters, the client never decides.
RelationDescriptor
One relation manager published for a resource: a related list of records rendered as cards, e.g. a banner's tags. Absent from the contract entirely on a server predating P6d — that reads as no relations, not an error.
RepeaterComponent
A repeater field: a list of rows built from a single item template.
ResourceBadge
The web sidebar's count badge for one resource — the value is whatever string the panel renders (usually a count), the colour the same semantic vocabulary card badges use (success, warning, …).
ResourceLabels
Display strings for a resource. Already localised by Laravel — the client uses them verbatim.
ResourcePermissions
What the authenticated user may do with a resource, as decided by the Laravel policies. Every flag denies by default: a missing key must never read as permission.
ResourceSchema
One Filament resource, rendered as a list of cards plus create/edit/view pages. Construct it directly for a Dart-defined override, or via ResourceSchema.fromJson for the server-served schema — same class, same renderer, one code path.
ResourceSearch
ResourceSort
RichAttrs
The attrs a node in the closed vocabulary carries: textAlign on paragraph/heading, level on heading, src on image. All three live on one small value type rather than a RichNode subclass per node kind, since no node carries more than one of them.
RichDocument
A parsed rich-text document — the client's read of the ProseMirror tree TipTap/Filament's RichContentRenderer publishes as <path>.__rich.doc, alongside the flattened <path>.__rich.text a card reads instead (design spec, "Wire shape"). The sibling is absent entirely when there is nothing to convert — absence means unavailable, and every consumer falls back to the raw string; that fallback happens above this parser, which only ever sees a sibling that exists.
RichMark
A mark applied to a text node — bold, italic, link, strike, underline or code. Only link carries an attribute in the closed vocabulary (design spec), so href is the one typed extra rather than a generic bag.
RichNode
One node of the ProseMirror tree: doc, paragraph, text, heading, bulletList, orderedList, listItem, blockquote, horizontalRule, image — or a type this build does not recognise, carried through by its raw string rather than rejected (see RichDocument's doc).
SchemaComponent
One node of a Filament schema tree.
SelectComponent
Covers select and multiselect, and — via optionsUrl — BelongsTo relations. A relation is a select with a URL, not a separate concept.
SelectOption
One choice in a SelectComponent. value stays untyped because the contract allows ints (foreign keys) and strings (enums) alike.
SliderComponent
slider. min/max/step are presentation bounds for the control; the enforceable half of the same declaration already arrives as the node's ordinary rules (required/numeric/min/max, which Filament's Slider force-registers server-side), so client-side validation needs no slider-specific machinery at all.
TagsComponent
A tags field: a free-form list of strings.
TextComponent
text, textarea, email and password in one class: they differ only by keyboard, obscurity and line count, all of which the renderer derives from kind.
ToggleButtonsComponent
toggle_buttons. Carries the same flattened option shape select/radio publish (SelectOption), but never an optionsUrl — the type has no search affordance server-side, so an over-cap field inlines its full list and this client renders however many options arrive.
UnknownComponent
A component type this build does not know how to render.
ValidationRules
Client-side hints for immediate feedback only. The server revalidates every submission, so anything not expressible here is simply omitted rather than approximated.

Enums

BooleanKind
ColorFormat
DateKind
EntryKind
LayoutKind
PanelDirection
The panel's layout direction, published on the wire as a closed set.
TextKind

Exceptions / Errors

SchemaFormatException
Thrown when the panel JSON does not match the contract.
UnsupportedSchemaVersionException
Thrown when the server speaks a newer contract than this build understands.