Widgets
Opinionated compositions built on the primitives. Each one wires two or more kit pieces together — switch the theme and the whole page follows.
- AlertDialogModal interruption for destructive confirmations. No outside dismiss.
- CalendarMonth grid for picking dates. Backs the DatePicker popup.
- DatePickerCalendar popup in field chrome. Empty reads --/--/--, muted, with no icon.
- DialogFormA real <form> for dialog bodies. Cmd/Ctrl+Enter submits; plain Enter in a textarea stays a newline. Promoted from the console.
- InfoWrapperLabelled container: hairline border, label and optional icon top left, formatted value top right, anything below.
- MenubarDesktop-style menu bar with per-menu content.
- RunTimelineAn automation's run history: one row per run with its status, trigger and time, expanding into the step trace with durations, errors and pretty-printed detail. Presentational only — onOpen tells the caller to fetch the trace, and `fallback` holds the row until it lands.
- RecordRowListAn InfoWrapper over a divided card of record rows: icon, title, and any number of formatted trailing values.
- SectionLabelThe mono uppercase caption that titles a section or a group of fields. One span, painted off data-slot="section-label" — the settings-panel popovers, the automation builder and the filter/sort editors all draw this rather than their own copy.
- SkeletonPulse bars for reserving layout, plus the Swap wrapper: delayed paint and minimum hold, so fast loads never blink.
- StatTileLabelled KPI number in a mandatory InfoWrapper shell. Promoted from the console after its third duplication.
- ConfirmDialogThe destructive confirmation every page was hand-rolling on AlertDialog: critical action, cancel, and a pending label that disables the action mid-flight.
- LoadingLineSpinner plus a label, at three weights: inline in a row, block between sections, and fill for a whole empty pane.
- LoadMoreRowCentered pagination button under a DataView. Reads “Loading…” and locks while a page is in flight.
- MetaLineSmall muted byline: falsy parts drop out, the rest join with a middot.
- RefreshButtonSecondary toolbar refresh: the arrows icon swaps to a spinner and the button locks while busy. Click the demo to toggle.
- TruncationNoticeThe “showing N of M” alert a list raises when the server capped the page.