Vue Components
Views
_ActionBanner
ActionForm
Form shell that executes a server action, handles dry-run validation, shows success/error toasts, and provides confirm and cancel button slots.
Renders a pinned actions strip (confirm + cancel + optional hint) and, when the form has unresolved per-field errors, a structured validation alert sourced from formContext.state.errors. Also mounts a FormConfirmDialog bound to the action's confirmation controller, so actions the server gates behind warning acknowledgement (HTTP 409) can be confirmed and retried. ActionForm renders no warnings content of its own; a consumer that needs to render them (e.g. a bulk action grouping per-object warnings by their display name) supplies the form-confirm-dialog-warnings slot, which forwards FormConfirmDialog's warnings slot scope (warnings, the controller's raw warnings mapping). Without that slot, FormConfirmDialog's own default rendering shows through.
AuthForm
Renders a page-level authentication form with a title, subtitle, and action slot. Handles reauthentication redirects and MFA pending-flow detection automatically, delegating the actual form submission to an inner ActionForm.
AuthorizingForm
Authentication wrapper that monitors login state and redirects the user after a successful sign-in, rendering a header, subtitle, and delegating to ActionForm for the actual credential form.
DetailView
Renders a full detail page for a single model instance, including a page title, a sticky action bar with available object actions and workflow transitions, and a FormModel that displays or edits the object's fields. Fetches the object from the API automatically using the provided app, model, and pk props.
ModelActionForm
Wraps ActionForm to execute a named action (such as delete or a custom bulk operation) against one or more model instances. It displays the selected objects, a confirmation message, and handles submission, dry-run validation, and post-action redirect to the appropriate list or detail view.
Renders a tone-tracked confirmation card with a banner, a selected-objects chip-row panel, and a confirm-prompt panel. The bare prop suppresses the card chrome and banner so a parent view (such as ViewDestroy) can wrap the form in its own toned card.
ViewAction
Full-page view for executing a model action. Renders a page title with a "Go Back" button and embeds a ModelActionForm for the specified app, model, and action. Accepts an optional primary key and initial form values to pre-populate the form.
ViewActionNotFound
Error view displayed when a requested model action route does not exist. Composes SystemMessageCard(tone="info") with a "404" crest showing the unrecognized app/model/action key, a TriedUrlCallout highlighting the action segment as the error, a SuggestionList(shape="action") listing all model-defined actions sorted by string similarity to the tried action, a DiagnosticStrip debug footer, and a Back + Browse all actions actions row. HTTP verb chips in the action shape remain empty until the server exposes per-action verb metadata.
ViewActionRouter
Resolves the correct view component for a given model action at runtime, delegating to CRUD views, workflow transition views, or dynamically imported custom action views as appropriate.
ViewActivate
View that renders a confirmation form for the activate action via ModelActionForm, then sends a PATCH request to the activate endpoint when the user confirms. Contributes its title to the layout's PageTitle display via usePageTitle and teleports its "Go Back" action into the title action zone via PageActions, matching sibling action-router views (ViewAction, ViewExecuteTransition, ViewHistoryList).
ViewChangePassword
Form that allows an authenticated user to change their password by providing their current password and confirming the new one.
ViewCreate
Form view for creating a new model instance, including a page title, a sticky submit button bar, and a FormModel that renders the configured fields.
ViewDeactivate
Self-service account deactivation view. Wraps the deactivate action in a warning-toned SystemMessageCard chassis: an icon crest identifies the action, an optional ConsequencesBullets list communicates the impact, and a TypedConfirmField gates the destructive button on the operator typing their own email address. Sends a PATCH to the model's deactivate endpoint on confirmation.
ViewDestroy
View that presents a confirmation form and displays a list of selected items to be deleted via ModelActionForm, then sends a DELETE request when the user confirms.
Wraps the ModelActionForm in a destructive-toned card with a danger banner so the blast radius is legible at a glance. The banner exposes a linkedObjectCounts prop and a banner slot for surfacing cascading-delete summaries when the server provides them.
ViewExecuteTransition
Framework confirmation view for a workflow transition code that has no project-supplied override. Renders a page title with a "Go Back" button and embeds a ModelActionForm, whose submit runs through storeWorkflow.executeTransition instead of the generic model-action endpoint. ViewActionRouter resolves this as the final fallback for a recognized transition code, after any ViewAction{App}{Model}{Code}.vue or ViewAction{Code}.vue project override.
A transition confirmation submits no form values: run-action forwards only the dry-run and warning-acknowledgement arguments to storeWorkflow.executeTransition. A project supplying fields through the extra-fields slot renders and validates them, but their values never reach the request; forward them through a project-supplied override instead.
ViewHistoryList
Paginated list view showing the history of one model instance as the actions that produced it. Each action groups the events it wrote, and each event lists its field changes with old and new values, in a table or card layout.
ViewList
Full-page list view for a Django model. Renders a paginated, sortable, and searchable data grid with support for column hiding, filter groups, bulk actions, targetless actions, workflow transitions, column totals, and switching between paginated and show-all display. Persists sort order, visible columns, and active filters across page visits via the list preference store.
ViewLoading
Full-page loading placeholder for route-level async resolution. Composes a SystemMessageCard(tone="loading") with a spinner crest, an optional verb-path crest label, a body row for what is loading and one-line context, a LoadingSkeletonGhost claiming layout space, and a LoadingHeartbeatStrip showing elapsed time and dependency progress. Once elapsedMs exceeds slowAfterMs the card flips to tone="warning", the spinner swaps for an hourglass, the heartbeat dot turns amber, and the slow-path body is shown. A slow-actions slot populates the card actions footer (e.g. Cancel, View queue).
ViewNotFound
Full-page 404 error view displayed when a route path does not match any registered route. Composes SystemMessageCard(tone="info") with a "404" crest, a TriedUrlCallout highlighting the segments of the typed path that diverge from the closest matching route, a SuggestionList(shape="route") of N-best scored matches, a DiagnosticStrip debug footer, and a Back + Go to home actions row.
ViewRead
Read-only detail view that fetches and displays a single model instance identified by its primary key.
ViewRecoveryCodes
Account security page for managing two-factor authentication recovery codes. Displays the user's unused recovery codes (when a TOTP device is configured) with options to copy, download, or print them, and provides a button to generate a fresh set of codes.
ViewSetupDevice
Multi-step form that guides the user through enrolling a two-factor authentication device. Presents a method-selection step (TOTP app, email, or SMS), then a verification step where the user confirms the device with a one-time code, then a confirmation step.
ViewSignIn
Default sign-in view. Renders an email and password credential form inside an AuthorizingForm card. Post-login routing and MFA pending-flow detection come from AuthorizingForm (via useSignInFlow); submission, loading, and server-side validation mapping come from the inner ActionForm.
Integrators can use this view as-is, adjust copy and behaviour through props (header, subTitle, redirect, formProps, requireRecentLogin, theme overrides, all forwarded to AuthorizingForm), or replace individual pieces through the field(email), widget(email), field(password), widget(password), and action-bar slots. Any other AuthorizingForm or ActionForm slot is forwarded through.
ViewTwoFactorAuth
Two-factor authentication challenge view presented after initial login. Lets the user select an available verification method (TOTP, SMS, email), request a code to be sent for applicable methods (with a 60-second resend cooldown), and submit the code to complete authentication. A separate ghost CTA reveals a recovery-code path that swaps the form body to a single mono text input.
ViewUpdate
Editable detail view that loads a model instance, presents it in a form, and submits changes back to the server on save.
Widgets
WidgetCheckbox
A checkbox widget that renders a Checkbox with form field integration. Supports tri-state (checked, unchecked, indeterminate) for NullBooleanField, translating null field values to the indeterminate visual state.
WidgetCombobox
A combobox widget supporting static options or API-backed search, single or multiple selection, grouping, and read-only display. Replaces WidgetSearchableSelect, WidgetAutoComplete, and WidgetMultiSelect.
Provide either options (static mode) or both app and model (API mode). The multiple prop works in both modes.
WidgetDateField
A date or datetime picker widget that combines segment-based input with a calendar popover. Uses DateField for keyboard-friendly segment editing and Calendar for visual date selection. Set granularity to "minute" or "second" for datetime input.
WidgetDateRangeField
A date or datetime range picker widget that combines segment-based input with a range calendar popover. Uses DateRangeField for keyboard-friendly segment editing and RangeCalendar for visual range selection. Set granularity to "minute" or "second" for datetime range input.
WidgetDuration
A duration input widget that renders separate numeric spinners for days, hours, minutes, and seconds. Each time unit can be shown or hidden independently via props; the combined value is stored as an object with the corresponding numeric fields.
WidgetFile
A file-upload widget that displays an existing file as a labelled download link with remove and download actions, and falls back to a file-uploader input when no file is selected.
WidgetGenericAutoComplete
A generic foreign-key widget for Django content-type style relations. Renders a type selector combobox paired with an object search combobox, storing a { content_type, object_id } value pair.
WidgetHtml
A rich-text editor widget backed by Tiptap. Stores and emits HTML string content, and accepts an optional editorHeight prop to control the editor's visible area.
WidgetImage
An image upload widget that shows a file picker when no image is selected and a preview with a remove button once one has been chosen. The widget value is the raw File object selected by the user.
WidgetJson
A JSON editor widget backed by CodeMirror. It edits real JSON values, not stringified copies, so JSONField submissions keep their object/scalar shape.
WidgetModel
Renders a select, multi-select, or radio widget populated with choices fetched from a Django model. Choices are loaded lazily: the API request is deferred until the field is focused or already has a value. Pass the type prop to choose between select, multiSelect, and radio presentations.
WidgetNativeSelect
A native select dropdown widget that renders a NativeSelect with option elements for each entry. Used for choice fields when a lightweight native dropdown is preferred over the headless Select.
WidgetNumberInput
A numeric input widget that assembles NumberField sub-components with increment and decrement buttons. Converts between string field values and numeric display values. Optionally displays a unit label suffix.
WidgetPreviewableTemplate
A widget that combines an editable input (HTML editor, plain input, or textarea) with a live preview pane that substitutes $variable placeholders using dependency data.
WidgetRadioGroup
A radio group widget that renders a RadioGroup with RadioGroupItem children for each option. Used for choice fields (e.g. BooleanField with choices) when paired with FormField.
WidgetRangeSlider
A range slider widget that renders a Slider with form field integration. Used for numeric range inputs when paired with FormField.
WidgetReadOnly
Renders a field value as non-editable text, with optional prefix and suffix strings. When app and model props are provided, the raw foreign-key value is resolved to a human-readable name and rendered as a link to the related record's detail view.
WidgetSelectDropdown
A dropdown select widget that assembles Select sub-components for static choice fields. Used when a styled dropdown is preferred over a native select element.
WidgetTemplateLegend
A read-only widget that displays a legend of available $variable substitution tags, rendered as a labelled list with click-to-copy tag values; the default slot can replace the entire list.
WidgetTextInput
A text input widget that renders a Input with form field integration. Used for CharField and similar string-based fields when paired with FormField. Supports optional input masking via the mask prop.
WidgetTextTextarea
A textarea widget that renders a Textarea with form field integration. Used for CharField (TextField variant) and similar multi-line string fields when paired with FormField.
WidgetTimeField
A time picker widget using segment-based input. Users tab through hour, minute, and optional second segments. No calendar popover is shown since this handles time-only values.
WidgetTimeRangeField
A time range picker widget that renders two segment-based time inputs for start and end values. Converts between the field's { lower, upper } object format and @internationalized/date Time objects.
WidgetToggle
A boolean toggle widget that renders a Switch with form field integration. Used for BooleanField when paired with FormField.
WidgetUnmapped
Renders an error message when a field's widget name is not mapped to any known widget component. Useful as a development-time diagnostic to surface misconfigured field definitions.
Controls
Button
A button control built on Reka UI's Primitive. Its look resolves on two axes, tone (color) and emphasis (structure). A bare button rests at neutral fill; the primary fill is opt-in with tone="primary". Size styles also resolve via the theme system.
ButtonGroup
A container that groups related buttons into a single visual unit. Applies radius and edge adjustments to adjacent children based on orientation.
ButtonGroupSeparator
A visual divider placed between items in a ButtonGroup. Stretches to fill the button group's cross-axis.
ButtonGroupText
A text label element that can be placed inside a ButtonGroup. Renders with muted background styling to visually complement adjacent buttons.
Calendar
A full-featured calendar component built on CalendarRoot with optional month/year navigation dropdowns. Supports single and multiple date selection, date range constraints, and configurable heading layouts.
CalendarCell
A styled wrapper for a single calendar cell, adding selection highlight and focus handling.
CalendarCellTrigger
The interactive trigger button within a calendar cell that handles day selection. Applies button ghost styling with additional state-based modifiers for selection, disabled, and unavailable states.
CalendarFooter
A chin below Calendar / RangeCalendar that surfaces a range summary label and apply / clear actions. The default slot replaces the layout entirely; the named summary slot fills the leading mono summary line and actions fills the trailing button row.
CalendarGrid
A styled wrapper for the calendar grid table that contains weeks and day cells.
CalendarGridBody
A wrapper for the calendar grid's body element containing week rows.
CalendarGridHead
A wrapper for the calendar grid's header element containing day-of-week labels.
CalendarGridRow
A styled row within the calendar grid representing a single week.
CalendarHeadCell
A styled header cell displaying a day-of-week abbreviation in the calendar grid.
CalendarHeader
The header bar of the calendar containing navigation buttons and the month/year heading.
CalendarHeading
Displays the current month and year label in the calendar header. Exposes a headingValue slot prop for custom rendering.
CalendarNextButton
A navigation button that advances the calendar to the next month or year.
CalendarPrevButton
A navigation button that moves the calendar to the previous month or year.
Checkbox
A checkbox built on Reka UI's CheckboxRoot, displaying a check icon when checked and a minus icon when indeterminate.
Combobox
Root of a Combobox widget. Combines a searchable input with a filtered option list.
ComboboxAnchor
Anchor element that positions the ComboboxList relative to the trigger.
ComboboxEmpty
Shown inside ComboboxList when no items match the current search.
ComboboxGroup
Groups related ComboboxItem elements with an optional heading.
ComboboxInput
The search input for Combobox, rendered with a search icon.
ComboboxItem
A selectable option within ComboboxList.
ComboboxItemIndicator
Visual indicator shown when a ComboboxItem is selected.
ComboboxList
The dropdown list panel for Combobox, rendered in a portal.
ComboboxSeparator
A visual divider between groups or items in ComboboxList.
ComboboxTrigger
A button that opens the Combobox list.
ComboboxViewport
Scrollable viewport inside ComboboxList.
ComboboxVirtualizer
Virtualizes the list of items inside ComboboxViewport for large datasets. Requires manual filtering of options before passing them in.
Uses a render function (not a template) to pass slots directly to reka-ui's ComboboxVirtualizer without adding an extra renderSlot Fragment layer. A template-based wrapper would produce two nested Fragments, causing ListboxVirtualizer's depth-1 VNode search to return undefined and crash.
Command
Root of a command palette with built-in filtering, providing context to child components.
CommandDialog
Wraps Command inside a modal dialog for use as a floating command palette.
CommandEmpty
Shown inside CommandList when no items match the current search.
CommandFooter
A chin below CommandList that surfaces keyboard-navigation hints and custom action labels. The default slot replaces the layout entirely; the named start and end slots fill the leading hint group and the trailing hint.
CommandGroup
Groups related CommandItem elements with an optional heading.
CommandInput
The search input for Command, bound to the shared filter state.
CommandItem
A selectable command option within CommandList or CommandGroup.
CommandList
Scrollable container that renders the filtered list of command items.
CommandSeparator
A visual divider between groups or items within CommandList.
CommandShortcut
Displays a keyboard shortcut hint aligned to the right of a CommandItem.
DateField
A segment-based date input built on Reka UI's DateFieldRoot. Users tab through individual year, month, day (and optional time) segments. Supports granularity for date-only or datetime input.
DateFieldInput
A single segment of a date field (year, month, day, hour, minute, etc.). Renders an editable segment inside a DateField.
DateRangeField
A segment-based date range input built on Reka UI's DateRangeFieldRoot. Renders start and end date segments that users tab through individually. Supports granularity for date-only or datetime range input.
DateRangeFieldInput
A single segment of a date range field (year, month, day, hour, minute, etc.). Renders an editable segment for either the start or end date inside a DateRangeField.
FileUpload
A file-upload control with a hidden native file input, a styled trigger button, and an optional drag-and-drop zone. Emits the selected File via v-model.
Input
A styled text input built on the native HTML input element, with support for v-model binding.
InputGroup
A container that groups an input with inline addons, buttons, or text, with coordinated focus and error states.
InputGroupAddon
An addon element placed at the start, end, or above/below an input group, with optional click-to-focus behavior.
InputGroupButton
A sized button emphasis designed for inline placement within an input group.
InputGroupInput
A borderless input element styled for seamless placement inside an input group.
InputGroupText
A inline text or icon label displayed inside an input group alongside the input.
InputGroupTextarea
A borderless textarea element styled for seamless placement inside an input group.
InputOTP
A styled OTP (one-time password) input built on vue-input-otp's OTPInput, with slot forwarding for custom slot rendering.
InputOTPGroup
A flex container that groups OTP slot elements horizontally.
InputOTPSeparator
A visual separator between OTP slot groups, rendering a minus icon by default.
InputOTPSlot
An individual OTP character slot that displays the current character and an animated caret when active.
NativeSelect
A styled native <select> element with a custom chevron icon overlay. Supports v-model binding and forwards all extra attributes to the underlying select.
NativeSelectOptGroup
A styled wrapper for the native <optgroup> element used inside NativeSelect.
NativeSelectOption
A styled wrapper for the native <option> element used inside NativeSelect.
NumberField
A numeric input container built on Reka UI's NumberFieldRoot, providing increment/decrement controls, min/max constraints, and v-model binding.
NumberFieldContent
A relative-positioned wrapper that manages padding around a NumberField input when increment or decrement buttons are present.
NumberFieldDecrement
A decrement button for NumberField, absolutely positioned to the left of the input and rendering a Minus icon by default.
NumberFieldIncrement
An increment button for NumberField, absolutely positioned to the right of the input and rendering a Plus icon by default.
NumberFieldInput
The text input element within a NumberField, styled for centered numeric entry and wired to the parent NumberFieldRoot context.
RadioGroup
A radio group container built on Reka UI's RadioGroupRoot, providing keyboard navigation and v-model binding for a set of radio items.
RadioGroupItem
A single radio button within a RadioGroup, rendering a circular indicator when selected and forwarding all native radio props to the underlying primitive.
RangeCalendar
A full-featured date range calendar built on RangeCalendarRoot. Supports range selection with configurable date constraints and navigation.
RangeCalendarCell
A styled wrapper for a single range calendar cell with range selection highlights.
RangeCalendarCellTrigger
The interactive trigger button within a range calendar cell that handles day selection.
RangeCalendarGrid
A styled wrapper for the range calendar grid table containing weeks and day cells.
RangeCalendarGridBody
A wrapper for the range calendar grid's body element containing week rows.
RangeCalendarGridHead
A wrapper for the range calendar grid's header element containing day-of-week labels.
RangeCalendarGridRow
A styled row within the range calendar grid representing a single week.
RangeCalendarHeadCell
A styled header cell displaying a day-of-week abbreviation in the range calendar grid.
RangeCalendarHeader
The header bar of the range calendar containing navigation buttons and the month/year heading.
RangeCalendarHeading
Displays the current month and year label in the range calendar header. Exposes a headingValue slot prop for custom rendering.
RangeCalendarNextButton
A navigation button that advances the range calendar to the next month or year.
RangeCalendarPrevButton
A navigation button that moves the range calendar to the previous month or year.
Select
Root of a Select widget. Wrap with SelectTrigger and SelectContent.
SelectContent
Dropdown content panel for Select, rendered in a portal with scroll buttons.
SelectGroup
Groups related SelectItem elements within SelectContent.
SelectItem
A selectable option within SelectContent.
SelectItemText
The text portion of a SelectItem, used for typeahead and display.
SelectLabel
A label for a SelectGroup.
SelectScrollDownButton
Scroll-down affordance inside SelectContent.
SelectScrollUpButton
Scroll-up affordance inside SelectContent.
SelectSeparator
A visual divider between groups or items in SelectContent.
SelectTrigger
The button that opens the Select dropdown.
SelectValue
Displays the currently selected value inside SelectTrigger.
Slider
A range slider built on Reka UI's SliderRoot, rendering a track, range fill, and draggable thumbs.
Switch
A toggle switch built on Reka UI's SwitchRoot, with a sliding thumb indicator.
TagsInput
Root of a tags input control allowing users to add and remove tag values.
TagsInputInput
The text input field within TagsInput where users type new tags.
TagsInputItem
A single tag item within TagsInput.
TagsInputItemDelete
A delete button within a TagsInputItem that removes the tag when activated.
TagsInputItemText
Displays the text content of a TagsInputItem tag.
Textarea
A styled textarea built on the native HTML textarea element, with support for v-model binding.
TimeField
A segment-based time input built on Reka UI's TimeFieldRoot. Users tab through individual hour, minute, and optional second segments. Supports 12-hour and 24-hour formats via the hourCycle prop.
TimeFieldInput
A single segment of a time field (hour, minute, second, or day period). Renders an editable segment inside a TimeField.
Toggle
A toggle button built on Reka UI's Toggle, supporting variant and size styles via the theme system.
ToggleGroup
A group of toggle buttons that share variant and size context.
ToggleGroupItem
An individual toggle button inside a ToggleGroup.
Display
AspectRatio
Constrains content to a given aspect ratio using Reka UI's AspectRatio primitive.
Avatar
Root avatar container with fallback support via AvatarImage and AvatarFallback.
AvatarFallback
Fallback content shown inside Avatar when the image fails to load.
AvatarImage
The image element inside a Avatar.
Badge
A badge component built on Reka UI's Primitive, supporting variant styles.
ClickToCopyText
Displays a text value alongside a button that copies it to the clipboard and shows a toast notification on success.
ConsequencesBullets
Bulleted list of destructive-action consequences. Each item renders an optional leading icon, a bold label, and an optional muted description inside a 2-column grid (icon · label/sub stack). Per-item tone (default | warn | danger) tints only the leading icon so the consequence list communicates relative severity without overwhelming the surrounding card.
Icons resolve via useIcons("ConsequencesBullets", props)(item.icon). When the lookup returns null (icon name missing or unregistered), the icon cell still renders so labels stay aligned across rows.
ConstraintsBar
The active list-constraints band: one strip that hosts the filter chips and the sort chips on a single line, separated by a hairline divider. Filters and sorts are told apart by their own tint (primary for filters, neutral for sorts), so the band reads as two grouped categories rather than one undifferentiated pile. Each group owns its own clear control.
Presentational only: the host supplies the two chip groups via the filters and sort slots and tells the band which groups are active. The band collapses (height 0) when nothing is active, so an unconstrained list spends no vertical chrome. The chip groups stay mounted (the band is clipped, not unmounted) so their toolbar triggers keep working while the band is collapsed.
DateRangeDisplay
Displays a formatted date range from a start and end value (ISO strings or Luxon DateTimes). Renders a single date when both values fall on the same day, and omits redundant year or month segments when the range stays within the same month or year.
DateTimeDisplay
Displays a datetime value (ISO string, JS Date, or Luxon DateTime) in absolute, relative, inline, or break format, with an optional tooltip showing the complementary representation. The relative label updates automatically every minute (and every second for very recent times).
DiagnosticStrip
Two-column dl grid debug strip for system views. Each row renders a 10 px uppercase sans label (dt) paired with an 11 px value (dd). Intended as a copy-paste footer inside SystemMessageCard body slots so an operator can paste request id, route, and session into a ticket.
ErrorDisplay
Displays a dismissible error message card, reports the error to Sentry, and optionally renders a router-link for navigation.
FieldPickerMenuList
The list step shared by the sort and filter add-menus: an eyebrow, a scrollable list of pickable fields, and an empty state. Picking a row emits pick with the field value; the host decides what happens next (the sort menu appends the field, the filter menu drills into that field's form). Centralizes the field-row styling so the two menus cannot drift.
Kbd
A keyboard key element with consistent styling.
KbdGroup
A container for grouping multiple Kbd key elements inline.
LoadingHeartbeatStrip
Live-updating status footer for loading views. Renders a flex justify-between strip with mono text: request id and elapsed time on the left, resolved/total dependency count and a pulsing dot on the right. The dot animates a box-shadow halo; tone="slow" flips it from primary blue to amber to signal an unusually long wait.
LoadingSkeletonGhost
Multi-bar layout skeleton that claims vertical space while real content loads. Stacks N Skeleton bars at varying widths inside a bordered card-radius container with a shimmer sweep on the wrapper. Pass bars as a width-percent array or pick a pattern preset (form | table | card).
LoadingSpinnerBlock
Renders the configured loading icon for block-level loading placeholders. The icon entry is resolved from useIcons("LoadingSpinnerBlock", props), falling back to Default.loading.
LoadingSpinnerInline
Renders the configured inline loading icon. The icon entry is resolved from useIcons("LoadingSpinnerInline", props), falling back to Default.loading.
ResponsiveMenu
Responsive menu shell for a toolbar control: a teleported trigger button (leading icon, label, caret) that opens its slotted content as a popover on desktop and a full-screen dialog on mobile. Shared by the sort add-menu (SortControl) and the filter add-menu (FilterMenu) so both pick their surface by viewport the same way. Presentational: the host supplies the menu body via the default slot and owns what the menu does; this component owns only the trigger, open/close state, and the popover/dialog choice. keepOpenOverNestedPopper is applied so a nested popper (a Select or date picker inside the body) does not dismiss the menu.
SortChip
Renders a single active sort field as a removable pill. A leading priority ordinal (shown only when showOrdinal is set) doubles as the drag handle for reordering within the host strip. The label segment shows the field's human label and a direction glyph; clicking it toggles ascending/descending. The trailing segment removes the field from the sort, and is present only when removable is set. This is the sort-side counterpart to FilterChip: neutral-tinted, since ordering is not a predicate and the accent is reserved for filters, actions, and selection.
SortControl
Toolbar entry point for multi-field sorting. The trigger opens an add-field menu of the sortable fields not yet in the sort, presented by ResponsiveMenu (a popover on desktop, a full-screen dialog on mobile). Picking a field appends it to the sort; the menu stays open so several fields can be added in a row. Reordering, direction, and removal happen on the active-sort chips (see SortGroup / SortChip), so this control is add-only. The trigger teleports into a toolbar zone supplied by the host view. This is the layout-independent companion to column-header sorting; both write the same sorted array.
SortGroup
Renders the active sort order as a strip of removable SortChips, plus a Reset sort control (shown only when the active sort differs from defaultSorted). Each chip toggles its own direction; removing a chip drops that field from the sort (the remove control itself is hidden once only one chip remains, since there is nothing left to remove down to); dragging a chip by its priority ordinal reorders the sort. Adding fields stays with the SortControl add menu; this strip is the always-visible read-out and the primary editing surface, the sort-side counterpart to FilterGroup's chips.
SuggestionList
Typed "Did you mean?" suggestion list for system 404 views. Renders an uppercase head row with a mono source label above a bordered list of clickable router-link rows. Two layout shapes are supported: route (similarity score chip in the trailing column) and action (HTTP verb chip). Each row is a 4-column grid: 24 px icon · 1fr label+sub · auto trailing · auto chevron. Kit canon: "At scale, 'Did you mean?' is a piece of UI, not a sentence."
SystemMessageCard
Centered card chassis for system-level messages: 404, action-not-found, loading, and deactivate confirmation. Provides a tone-tracked 36 px crest icon tile above a border separator, with a meta column (eyebrow + kind label), an optional trailing status code, a default body slot, and an optional actions footer.
Tone drives icon-tile background and ink color via the group/system-message-card named scope; the optional iconName prop resolves the visible crest icon through the icon registry.
TriedUrlCallout
Small bordered callout surfacing the URL path or action key that the user attempted, with bad segments tinted destructive. Used in ViewNotFound and ViewActionNotFound to ground the suggestion list without explaining the typo in prose.
UserAvatar
Initials chip representing a user. Composed by SidebarUserBlock at 32 px and ViewHistoryList's history-user column at 22 px. Initials-only for now; a src photo prop is reserved for a later iteration.
Initials algorithm: when name has two or more whitespace-separated tokens, uses the first character of the first and last tokens. Otherwise uses the first two characters of the single token. Always uppercased. An explicit initials prop, when set, takes precedence and is uppercased verbatim.
Feedback
Alert
An alert box supporting variant styles.
AlertActions
A trailing action row inside an Alert. Aligns with the Alert grid's second column (matching title and description), so dismiss / primary action buttons sit flush under the description text.
AlertClose
A close button for dismissing an alert. Renders a slotted button that emits a close event when clicked.
AlertDescription
The description element inside an Alert component.
AlertTitle
The title element inside an Alert component.
Progress
A progress bar component built on Reka UI's ProgressRoot.
Skeleton
A placeholder skeleton element that animates while content is loading.
Sonner
A toast notification container built on vue-sonner, providing styled toast popups with registry-backed icons for success, info, warning, error, loading, and close states.
Form
FieldRenderer
Resolves and renders a single form field and its widget for a given formModelName key. It reads the field and widget components, props, and slot configuration from a formModel context object, then composes them into the correct layout with override slots passed through from the parent.
FieldSetMany
A field that manages a list of values by rendering one instance of manyComponent per entry. Provides Add and Remove buttons so users can grow or shrink the list, and the first entry is always required while subsequent entries are optional.
FieldSetRange
Composite field that renders a pair of sub-fields for the lower and upper boundaries of a range, deriving their field names from the parent field name combined with the configured suffixes. Validates that the lower bound does not exceed the upper bound.
FieldSetSingularStackedInline
A stacked inline fieldset for editing a single related object (one-to-one style). Renders a separator with a title, an optional Create button when no value is present, and a single stacked-inline row when a value exists. Supports show/hide toggling and auto-creates the initial object when the field is required or autoCreateWhenEmpty is set.
FieldSetStackedInline
A stacked inline fieldset for editing a list of related objects. Renders each object as a separate stacked row beneath a separator header, with Create and optional toggle buttons. Supports show/hide toggling and row deletion.
FieldSetStackedInlineRow
Renders a single row within a stacked inline field set, including all non-action fields and a row-level action bar. The action bar shows a delete button for new (unsaved) rows and a destroy checkbox for existing rows, with slot overrides available for each.
FieldSetTabularInline
A tabular inline fieldset for editing a list of related objects in a grid layout. Renders rows through an ObjectsGrid, adapts between table and card views based on breakpoint, and provides Create, Delete, and custom item-action buttons alongside optional show/hide toggling.
FieldWarningsList
Renders a warnings mapping keyed by field (the shape both get_warnings() and get_transition_warnings() return for a single object: {field: [messages]}, with non_field_errors for messages not tied to a field). non_field_errors renders first as a plain, unlabeled list; every other field renders inline (field: message) when it carries exactly one message, or as its own sub-header plus list when it carries more.
The entry slot overrides one field's entire layout (the header/list/inline decision included).
FilterChip
Renders a single active filter as a removable pill. The label segment shows the field name and its current value and opens the field's edit form in a popover; the trailing segment removes the filter. The chip resolves choice values to their human labels via useModelChoices, and turns destructive when the server rejected the value.
FilterFieldForm
Renders and controls the filter form for a single filterable field. It hosts the per-field form state (initial values seeded from the URL query, validation, and lazy choice fetching) and applies or removes the field's entry in the shared active-filter list. It is mounted on demand inside the FilterMenu drill-in (to add a filter) and inside a FilterChip edit popover (to edit one). The surrounding popover owns visibility; this component owns the form body and the apply/remove mutations.
FilterForm
Renders the body of a filter popover for a single filterable field. It displays a heading, the appropriate field widget via FieldRenderer, and an Apply button that submits the filter value back to the parent FilterFieldForm.
FilterGroup
Presentation host for a model list view's filter controls. It renders the add-filter FilterMenu (whose trigger teleports into the toolbar) from the caller-resolved filterables / filterableDetails / validFilterables and, when filters are active, a strip of removable FilterChips plus a Clear filters control. Resolving which fields are filterable (typically via useViewList), restoring the active-filter list from the URL, mirroring it to query parameters, and persisting it as a preference are all the caller's responsibility; this component only renders the v-model list and threads add/edit/remove edits back through it.
FilterMenu
Toolbar entry point for adding filters. The trigger opens a menu listing the fields not yet applied (a popover on desktop, a full-screen dialog on mobile, via ResponsiveMenu); picking one drills the menu in place to that field's FilterFieldForm, with a back affordance returning to the list. The trigger teleports into a toolbar zone supplied by the host view.
FormConfirmDialog
Confirmation dialog shown when a submission is valid but the server reports advisory warnings that must be acknowledged (HTTP 409). Bind it to the confirmation controller returned by useObjectForm or useActionForm: confirming retries the submission with the warnings acknowledged, cancelling leaves it unsaved with the warnings still displayed.
FormField
Generic form field component that provides field context, dispatches type-specific validation via a validation key, and optionally renders layout (label, description, errors) using the Field family.
FormGrid
12-column form-field grid for ViewCreate/ViewUpdate long-form layouts. Direct children default to a full 12-column span and collapse to a single column under 720 px. Children stamped with data-col="3|4|6|8|9" claim that many columns at >=720 px.
FormMessage
Renders form-scope non-field validation feedback as a single Alert. When multiple messages are present, they are rendered as a list inside one Alert rather than as a stack of separate alerts.
FormModel
This component is a form model that renders fields based on the configuration for the model.
FormSection
Light grouping for long forms: an eyebrow title row with an optional aside (e.g. "required", "optional during create"), a single bottom hairline closing the head, and a slotted body below for fields and grids. Composes inside ViewCreate/ViewUpdate #fields slots.
FormSectionTitle
Eyebrow-style title for a FormSection's title slot. Renders an h3 carrying the 11 px / 600 / uppercase / 0.06 em recipe (§ 3.3 Eyebrow micro-text) tinted muted-foreground.
TypedConfirmField
Anti-mistake confirmation field that gates a destructive action until the operator types the exact expectedValue. The default chrome is the canonical "type it to mean it" recipe: a bordered, muted-tinted box containing a small sans label with an inline mono chip showing the expected literal, followed by a mono text input.
Consumers read the match state via v-model:match (or the match event) and disable their submit control while it is false. The raw typed value is exposed via v-model for callers that need to inspect or echo it.
Grid
Table
A table wrapper component providing a scrollable container and styled table element.
Supports a sticky-header mode (sticky prop) that pins thead cells to the top of the scroll container, and a three-tier density mode (density prop: default | compact | condensed) that drives data-density on the <table> element so descendant TableHead and TableCell primitives pick up the matching row heights.
TableBody
The tbody element for a grid table, removing the bottom border on the last row.
TableCaption
A caption element for a grid table, styled below the table content.
TableCell
A table data cell with consistent padding, alignment, and checkbox support.
TableEmpty
An empty-state row for a grid table, spanning columns with centered content.
The variant prop drives data-variant on the content wrapper so that descendants marked data-slot="icon" pick up variant-specific treatment: loading spins the icon, error recolors it to --destructive, and empty / filtered keep the muted default. The slot content (icon, title, description, actions) is consumer-provided.
TableFooter
The tfoot element for a grid table with muted background and top border styling.
TableHead
A table header cell with fixed height, left-aligned text, and checkbox support.
TableHeader
The thead element for a grid table, adding a bottom border to each header row.
TableRow
A table row with hover, selected-state, and border-bottom transition styles.
TableRowActions
Inline action group for a table row that stays hidden until the parent <tr> is hovered, focus-within, or carries data-state="selected". Drop inside a TableCell near the right edge of each row; the slot is meant to carry small icon buttons.
Navigation
Breadcrumb
A navigation breadcrumb root element.
BreadcrumbEllipsis
An ellipsis indicator for collapsed breadcrumb items. Defaults to an ornamental span; set interactive to render a focusable button suitable for triggering a dropdown of collapsed trail levels.
BreadcrumbItem
A single item within a breadcrumb list.
BreadcrumbLink
A navigable link within a breadcrumb item.
BreadcrumbList
An ordered list of breadcrumb items.
BreadcrumbPage
Represents the current page within a breadcrumb trail.
BreadcrumbSeparator
A visual separator between breadcrumb items.
ContextMenu
The root provider for a context menu.
ContextMenuCheckboxItem
A checkable item within a context menu.
ContextMenuContent
The content panel of a context menu, rendered inside a portal.
ContextMenuGroup
Groups related context menu items together.
ContextMenuItem
An individual action item within a context menu.
ContextMenuLabel
A non-interactive label within a context menu.
ContextMenuPortal
Portals a context menu into a different part of the DOM.
ContextMenuRadioGroup
Groups radio items within a context menu.
ContextMenuRadioItem
A radio item within a context menu radio group.
ContextMenuSeparator
A visual separator between context menu items or groups.
ContextMenuShortcut
Displays a keyboard shortcut hint within a context menu item.
ContextMenuSub
The root provider for a context submenu.
ContextMenuSubContent
The content panel of a context submenu.
ContextMenuSubTrigger
The trigger that opens a context submenu.
ContextMenuTrigger
The area that triggers a context menu on right-click.
DropdownMenu
The root provider for a dropdown menu.
DropdownMenuCheckboxItem
A checkable item within a dropdown menu.
DropdownMenuContent
The content panel of a dropdown menu, rendered inside a portal.
DropdownMenuGroup
Groups related dropdown menu items together.
DropdownMenuItem
An individual action item within a dropdown menu.
DropdownMenuLabel
A non-interactive label within a dropdown menu.
DropdownMenuRadioGroup
Groups radio items within a dropdown menu.
DropdownMenuRadioItem
A radio item within a dropdown menu radio group.
DropdownMenuSeparator
A visual separator between dropdown menu items or groups.
DropdownMenuShortcut
Displays a keyboard shortcut hint within a dropdown menu item.
DropdownMenuSub
The root provider for a dropdown submenu.
DropdownMenuSubContent
The content panel of a dropdown submenu.
DropdownMenuSubTrigger
The trigger that opens a dropdown submenu.
DropdownMenuTrigger
The button that toggles a dropdown menu open or closed.
LinkModelView
Renders a VUEDA Button control that navigates to a named model view (such as read, update, or a custom action) for a given app, model, and optional pk. Renders as a link by default, or as a standard button when the button prop is set.
Styling resolves in two modes. In action styling mode (any of primary, tone, or emphasis is set) the button's look comes from the two-layer action mapping (see utils/actionVariant.js): the action's intrinsic tone (a delete/destroy action is destructive) crossed with the placement emphasis (emphasis, or fill when primary). Otherwise it renders as the plain navigation affordance: primary fill for button, primary link for anchor links.
Menubar
A horizontal menu bar containing a set of menus.
MenubarCheckboxItem
A checkable item within a menubar menu.
MenubarContent
The content panel of a menubar menu, rendered inside a portal.
MenubarGroup
Groups related menubar items together.
MenubarItem
An individual action item within a menubar menu.
MenubarLabel
A non-interactive label within a menubar menu.
MenubarMenu
A single menu within a menubar.
MenubarRadioGroup
Groups radio items within a menubar menu.
MenubarRadioItem
A radio item within a menubar menu radio group.
MenubarSeparator
A visual separator between menubar menu items or groups.
MenubarShortcut
Displays a keyboard shortcut hint within a menubar item.
MenubarSub
The root provider for a menubar submenu.
MenubarSubContent
The content panel of a menubar submenu, rendered inside a portal.
MenubarSubTrigger
The trigger that opens a menubar submenu.
MenubarTrigger
The button that opens a menu within a menubar.
NavigationItem
NavigationMenu
The root provider for a navigation menu.
NavigationMenuContent
The content panel of a navigation menu item.
NavigationMenuIndicator
An optional indicator element displayed below the list of navigation menu items.
NavigationMenuItem
An individual item within a navigation menu list.
NavigationMenuLink
A navigable link within a navigation menu.
NavigationMenuList
A list of navigation menu items.
NavigationMenuTrigger
The button that toggles a navigation menu item open or closed.
NavigationMenuViewport
A viewport that renders the active navigation menu content.
Pagination
Root pagination component built on Reka UI's PaginationRoot.
PaginationBar
Compound bar for data-grid footers. Provides the flex row chrome (border-top, card surface, bottom card-radius caps) and exposes a default slot so consumers compose PaginationMeta, Pagination, and any per-page selector inside it.
PaginationContent
The list container for pagination items.
PaginationEllipsis
An ellipsis indicator for skipped pages in a pagination control.
PaginationFirst
A button to navigate to the first page in a pagination control.
PaginationFooter
Pagination footer for data views. Composes the PaginationBar substrate with a "Showing X to Y of N" range read-out (PaginationMeta), a rows-per-page selector (whose final "All" entry loads every page), and the first / previous / next / last navigation cluster with a "Page N of M" indicator.
PaginationItem
A single page number button in a pagination control.
PaginationLast
A button to navigate to the last page in a pagination control.
PaginationMeta
Mono supporting-text label for pagination summaries (e.g. "441 invoices · page 7 of 23"). Sits inside PaginationBar.
PaginationNext
A button to navigate to the next page in a pagination control.
PaginationPrevious
A button to navigate to the previous page in a pagination control.
Sidebar
The main sidebar container. Renders as an off-canvas sheet on mobile and a collapsible panel on desktop.
SidebarContent
The scrollable content area of the sidebar.
SidebarFooter
The footer section of the sidebar.
SidebarGroup
A group of related sidebar items with optional label and actions.
SidebarGroupAction
An action button shown at the top-right of a sidebar group.
SidebarGroupContent
The content container within a sidebar group.
SidebarGroupLabel
A label heading for a sidebar group.
SidebarHeader
The header section of the sidebar.
SidebarInput
A search or filter input styled for use inside the sidebar.
SidebarInset
The main content area adjacent to an inset-variant sidebar.
SidebarMenu
A list of sidebar menu items.
SidebarMenuAction
A contextual action button shown alongside a sidebar menu button.
SidebarMenuBadge
A badge displayed at the right of a sidebar menu button. Tone controls the chromatic treatment: neutral auto-promotes to a sidebar-primary tint when the ancestor menu button is active; primary and destructive force the corresponding tint regardless of active state.
SidebarMenuButton
A sidebar menu button that shows a tooltip when the sidebar is collapsed.
SidebarMenuButtonChild
Internal primitive element for SidebarMenuButton.
SidebarMenuItem
A single item within a sidebar menu list.
SidebarMenuSkeleton
A skeleton placeholder for a sidebar menu item while content is loading.
SidebarMenuSub
A nested sub-menu list inside a sidebar menu item.
SidebarMenuSubButton
An interactive button inside a sidebar sub-menu.
SidebarMenuSubItem
A single item within a sidebar sub-menu list.
SidebarProvider
Provider component that manages sidebar state and provides context to all child sidebar components.
SidebarRail
A thin interactive rail on the sidebar edge that can be clicked to toggle the sidebar.
SidebarSeparator
A visual separator between sections of the sidebar.
SidebarTrigger
A button that toggles the sidebar open or closed. The toggle glyph resolves through useIcons("SidebarTrigger", props)("toggle"); consumers register a default (canon is fa-regular fa-rectangle-list) via setIcons or replace per-instance via iconOverride.
SidebarUserBlock
Sidebar footer user block: 32 px avatar chip + name + role + a slot for a 20 px ghost kebab trigger. Composes UserAvatar with the sidebar tone so the chip belongs to the sidebar surface rather than the primary palette.
Objects-grid
ColumnDateTime
Date/time/datetime list column adapter. Wraps {@link DateTimeDisplay}, binding the cell's raw value and forwarding display configuration resolved from columnMappings (per field type) and any columnProps override.
Receives the ObjectsGrid value slot props; only value is consumed for rendering. inheritAttrs is disabled so the remaining cell context props (field, formatted, obj, etc.) are not leaked as DOM attributes onto the DateTimeDisplay root. DateTimeDisplay renders a dash for empty/invalid values.
The default format is "absolute" (clean absolute text with the relative time on hover), which reads better in a dense table than the inline default.
ColumnModelLink
Foreign-key list column adapter. Renders the related object as a link to its detail view via {@link LinkModelView}, falling back to plain label text when the link target or pk is unavailable. Collapses the hand-written FK-link boilerplate (target/pk/label resolution + no-pk guard) that consuming list views previously repeated per column.
Receives the ObjectsGrid value slot props. Note the cell's pk slot prop is the row primary key, not the FK target; the target pk is derived from value, so pk is intentionally not consumed here. inheritAttrs is disabled so surplus cell-context props are not leaked as DOM attributes.
Target resolution prefers the field's own related-model identity (populated by the server for writable relations) and falls back to app/model supplied via columnProps, then to label-only text.
ColumnText
Default list column adapter. Renders the cell's pre-formatted value as plain text, reproducing ObjectsGrid's historical default cell content. Used as the fallback adapter when no type-specific column component is resolved.
Receives the ObjectsGrid value slot props (field, value, formatted, obj, pk, etc.); only formatted is consumed. String/number/boolean values render as-is. Object and array values (an inlined related object, or a JSON field, that has no more specific column adapter) render as compact JSON, truncated when very large, so they read sensibly instead of [object Object].
ObjectsGrid
Renders a list of objects as either a table or a card grid depending on the current breakpoint. Supports skeleton loading rows, field-level slot overrides, and per-field class customization.
ObjectsGridBodyCell
Renders a single data cell in the table-layout view of ObjectsGrid, exposing field value and metadata through the value slot.
ObjectsGridBodyCellSkeleton
Renders a single table-layout body cell skeleton placeholder while ObjectsGrid data is loading. Sizes the skeleton based on the field definition.
ObjectsGridCardCell
Renders a single field as a label/value pair in the card-layout view of ObjectsGrid.
ObjectsGridCardCellSkeleton
Renders a single card-layout cell skeleton placeholder while ObjectsGrid data is loading. Displays the field label alongside a sized skeleton for the value area.
ObjectsGridTableHeader
Renders a column header cell in the table-layout view of ObjectsGrid, showing the field label.
Shell
Accordion
Root accordion component built on Reka UI's AccordionRoot.
AccordionContent
The collapsible content area of an AccordionItem.
AccordionItem
An individual item in an Accordion component.
AccordionTrigger
The trigger button for an AccordionItem, wrapped in an AccordionHeader.
AlertDialog
Root alert dialog component built on Reka UI's AlertDialogRoot.
AlertDialogAction
The action button inside an AlertDialog, rendered through Button while preserving AlertDialog action behavior.
AlertDialogCancel
The cancel button inside an AlertDialog, rendered through Button while preserving AlertDialog cancel behavior.
AlertDialogContent
The content panel of an AlertDialog, rendered in a portal with an overlay.
AlertDialogDescription
The description text inside an AlertDialog.
AlertDialogFooter
The footer area of an AlertDialog, used to arrange action and cancel buttons.
AlertDialogHeader
The header area of an AlertDialog, used to arrange the title and description.
AlertDialogTitle
The title inside an AlertDialog.
AlertDialogTrigger
The trigger button that opens an AlertDialog.
Card
A card container with a border, background, and shadow.
CardAction
An action slot positioned in the trailing column of a CardHeader grid.
CardContent
The main content area of a Card component.
CardDescription
A muted description paragraph inside a CardHeader.
CardFooter
The footer section of a Card component.
CardHeader
The header section of a Card component.
CardTitle
The title heading inside a CardHeader.
Collapsible
Root collapsible component built on Reka UI's CollapsibleRoot.
CollapsibleContent
The content area that is shown or hidden by a Collapsible.
CollapsibleTrigger
The trigger button that toggles a Collapsible open or closed.
Dialog
Root dialog component built on Reka UI's DialogRoot.
DialogClose
A button that closes the Dialog when clicked.
DialogContent
The content panel of a Dialog, rendered in a portal with an overlay and optional close button.
DialogDescription
The description text inside a Dialog.
DialogFooter
The footer area of a Dialog, used to arrange action buttons and an optional close button.
DialogHeader
The header area of a Dialog, used to arrange the title and description.
DialogOverlay
The overlay backdrop behind a Dialog.
DialogScrollContent
A scrollable Dialog content panel that renders in a portal with a scrollable overlay.
DialogTitle
The title inside a Dialog.
DialogTrigger
The trigger button that opens a Dialog.
Drawer
Root Drawer component, a mobile-friendly dialog variant that slides in from an edge and supports drag-to-dismiss.
DrawerClose
A button that closes the Drawer when clicked.
DrawerContent
The content panel of a Drawer, rendered in a portal and sliding in from a chosen direction.
DrawerDescription
A description rendered inside a Drawer to provide context to screen readers.
DrawerFooter
Footer section of a Drawer, typically containing action buttons.
DrawerHeader
Header section of a Drawer, typically containing the title and description.
DrawerOverlay
The overlay backdrop rendered behind the drawer content.
DrawerTitle
The title of a Drawer, readable by assistive technology.
DrawerTrigger
A button that opens the Drawer when activated.
Field
A form field layout container that groups a label, control, and supporting text with configurable vertical, horizontal, or responsive orientation.
FieldContent
A flex column container that groups related controls within a field, adding consistent spacing between the control and its supporting text.
FieldDescription
A paragraph that provides supplementary context for a field, styled with muted text and link decorations.
FieldGroup
A vertical stack container for grouping multiple Field instances, with consistent spacing and container-query support for responsive layouts.
FieldLabel
A field label built on Label that optionally wraps an inline control, applying checked-state highlights when paired with a checkbox or radio.
FieldLegend
A fieldset legend styled as either a section heading or a field label, controlled by the variant prop.
FieldMessage
Displays field messages (errors or warnings) from a slot or an array of strings, arrays of strings (e.g. multiple server messages under one error code), or objects with a message property, deduplicating and rendering a list when multiple messages are present.
FieldSeparator
A horizontal rule that visually divides sections within a field group, optionally displaying a centered text label over the line.
FieldSet
A semantic fieldset that groups related form controls with consistent vertical spacing, adjusting gap for checkbox and radio groups automatically.
FieldTitle
A non-interactive label-styled div for titling a field when a semantic label element is not appropriate, such as when the field contains its own label.
HoverCard
Root hover card component built on Reka UI's HoverCardRoot.
HoverCardContent
The content panel of a HoverCard, rendered in a portal.
HoverCardTrigger
The trigger element that opens a HoverCard on hover.
Item
A flexible list item container that supports visual variants and sizes. Renders via the Reka UI Primitive for polymorphic element support.
ItemActions
A row of action controls (e.g. buttons) aligned at the end of a Item.
ItemContent
The primary content area of a Item, arranged vertically with a flex column layout.
ItemDescription
A supporting description paragraph inside a Item, styled with muted text and line clamping.
ItemFooter
A footer row at the bottom of a Item that distributes content between its start and end.
ItemGroup
A vertical list container for grouping multiple Item components.
ItemHeader
A header row at the top of a Item that distributes content between its start and end.
ItemMedia
A media slot inside a Item for icons or images, with variant-based sizing and styling.
ItemSeparator
A horizontal separator rule used to divide sections within a Item or ItemGroup.
ItemTitle
A title element inside a Item, rendered as an inline-flex row with icon support.
Label
A label component built on Reka UI's Label with consistent form label styling.
PageActions
Wraps page-level action buttons and renders them into the page-title action zone bound by a display component (see usePageTitle). When no zone exists, the actions render inline where this component is placed, so a view degrades gracefully if the layout omits a title display.
PageTitle
Page-level header bar that an integrator places in their layout (above <RouterView>). It reads the active view's title and loading state from usePageTitle and hosts the page-action zone that PageActions teleports into. The view supplies the data; this component decides where the page <h1> and its actions appear, so the title is a layout concern rather than baked into each view.
Popover
Root popover component built on Reka UI's PopoverRoot.
PopoverAnchor
An anchor element for positioning a Popover relative to a reference element.
PopoverContent
The floating content panel of a popover, rendered inside a portal. Positioned relative to the trigger or anchor element.
PopoverTrigger
The trigger button that opens a Popover.
ResizableHandle
A drag handle for resizing panels in a ResizablePanelGroup.
ResizablePanel
A resizable panel managed by a ResizablePanelGroup.
ResizablePanelGroup
A container that manages a group of resizable panels.
ScrollArea
A scroll area component built on Reka UI's ScrollAreaRoot with a custom scrollbar.
ScrollBar
The scrollbar track and thumb for a ScrollArea.
Separator
A visual separator between content sections, built on Reka UI's Separator.
Sheet
Root Sheet component, a dialog variant that slides in from a side of the screen.
SheetClose
A button that closes the Sheet when clicked.
SheetContent
The content panel of a Sheet, rendered in a portal and sliding in from a chosen side.
SheetDescription
A description rendered inside a Sheet to provide context to screen readers.
SheetFooter
Footer section of a Sheet, typically containing action buttons.
SheetHeader
Header section of a Sheet, typically containing the title and description.
SheetOverlay
The overlay backdrop rendered behind the sheet content.
SheetTitle
The title of a Sheet, readable by assistive technology.
SheetTrigger
A button that opens the Sheet when activated.
Stepper
Root stepper component built on Reka UI's StepperRoot.
StepperDescription
The description text for a StepperItem.
StepperIndicator
The visual indicator (icon or number) inside a StepperItem.
StepperItem
An individual step item within a Stepper.
StepperSeparator
A visual separator between StepperItems.
StepperTitle
The title text for a StepperItem.
StepperTrigger
The clickable trigger area for a StepperItem.
StickyBar
Renders a sticky toolbar that hides when the user scrolls down past its initial position and reappears when they scroll back up or the scroll pauses.
Two modes:
- Standalone (default). The bar self-stickies to the window's scroll (or to
scrollRootwhen it lives inside a scrollable region) and drives its own hide/reveal viauseScrollReveal. Therevealstrategy is selectable;scroll-up-or-idleis the default (and original) behavior. - Zone-managed (
zoneset). The bar teleports its surface into aStickyStackProviderzone (viaStickyChrome) and lets that zone own the positioning and reveal, so it stacks with the page title and other chrome. When no provider is present the surface renders inline where the bar is placed.
Exposes named primary (submit / primary actions, pushed to the start) and secondary (read-only actions, contextual info) slots; falls back to the default slot when neither named slot is bound.
StickyChrome
Teleports a view's sticky chrome into one of the StickyStackProvider zones (top or bottom) and registers the reveal behavior that zone should adopt while this chrome is mounted (see useStickyStack). When no provider zone exists above, the chrome renders inline where this component is placed, so a view degrades gracefully if the layout omits the provider.
StickyStackProvider
Hosts the framework-owned sticky chrome stack for a layout. Place it around the scrolling region (inside the layout's main content area, wrapping <RouterView>); the window remains the scroll container, so this component introduces no overflow. It renders an ordered stack of independently-revealing sticky bars pinned to the top and bottom of the viewport, establishes the useStickyStack context so the active view can teleport chrome into either zone (via StickyChrome), and publishes the visible top-stack height as --vueda-sticky-stack-top for descendants (such as a sticky grid header) to offset against.
The page title goes in the top slot (plain composition); it is the always-pinned first bar of the top stack, and the view's chrome (filters, form actions) stacks below it, each revealing on its own schedule. Each bar's sticky offset is the cumulative height of the visible bars between it and the viewport edge, so hiding one bar compacts the rest with no offsets crossing the layout boundary.
Tabs
Root tabs component built on Reka UI's TabsRoot.
TabsContent
The content panel for a single tab in a Tabs component.
TabsList
The list of tab triggers in a Tabs component.
TabsTrigger
A tab trigger button that activates its associated TabsContent.
Tooltip
Root tooltip component built on Reka UI's TooltipRoot.
TooltipContent
The content panel of a Tooltip, rendered in a portal with an arrow.
TooltipProvider
Provides tooltip configuration context to all descendant Tooltip components.
TooltipTrigger
The trigger element that shows a Tooltip on hover or focus.
Support
EmptyComponent
LazyRender
Defers rendering its default slot until the component scrolls into the viewport, using an IntersectionObserver. Before the content is visible, a placeholder slot is rendered instead, allowing callers to supply a skeleton or spacer.