---
url: "https://vueda.dev/v3/reference/api/vue/index.md"
title: "Vue Components"
---

# Vue Components

## Views

### [`_ActionBanner`](/v3/reference/api/vue/_ActionBanner.md)

### [`ActionForm`](/v3/reference/api/vue/ActionForm.md)

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) below the
form, or, with the `page` prop, a sticky action bar above it. When the form
has per-field errors that no rendered field shows beside itself, it also
renders a structured validation alert sourced from `formContext.state.errors`. The
alert sits with the non-field error block above the fields, so a reader meets
it before the first field and the submit control. 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`](/v3/reference/api/vue/AuthForm.md)

Renders a page-level authentication form with a title, subtitle, and action slot.
Delegates the form submission to an inner ActionForm.

By default the form's action needs a recent session, so a pending reauthentication flow sends the user to the
reauthenticate route. That flow belongs to the whole session, not to this form. Set `requireRecentAuth` to `false`
for a form whose action the server accepts without a recent session.

### [`AuthorizingForm`](/v3/reference/api/vue/AuthorizingForm.md)

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`](/v3/reference/api/vue/DetailView.md)

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`](/v3/reference/api/vue/ModelActionForm.md)

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 `page` prop renders the same
parts as a routed page instead: the confirm button moves into the sticky
action bar and the parts sit in the page gutter, as the detail views lay out
a page. The action views and `ViewDestroy` set `page`. The `bare` prop
suppresses the card chrome and banner, for a host that wraps the form in a
card of its own.

### [`ViewAction`](/v3/reference/api/vue/ViewAction.md)

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`](/v3/reference/api/vue/ViewActionNotFound.md)

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 the
closest model's actions by route name, sorted by string similarity to the
tried action (detail actions only when the tried route has a pk, which their
links reuse),
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`](/v3/reference/api/vue/ViewActionRouter.md)

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`](/v3/reference/api/vue/ViewActivate.md)

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`](/v3/reference/api/vue/ViewChangePassword.md)

Form that allows an authenticated user to change their password by providing their current
password and confirming the new one. The server checks the current password and does not require a recent
session, so the form sets `requireRecentAuth` to `false`.

### [`ViewCreate`](/v3/reference/api/vue/ViewCreate.md)

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`](/v3/reference/api/vue/ViewDeactivate.md)

View that renders a confirmation form for the deactivate action via ModelActionForm, then sends
a PATCH request to the deactivate endpoint when the user confirms. It shares its body with
ViewActivate: the selected objects, the page title, the "Go Back" action, warning confirmation,
and bulk requests. Attributes and slots pass through to ModelActionForm, so a wrapping page can
adapt it, for example to a self-service account page with `confirmText`, `bannerTitle`,
`actionSuccessSummary`, and the `confirm-message` slot.

### [`ViewDestroy`](/v3/reference/api/vue/ViewDestroy.md)

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.

Contributes its own page title ("Delete Widget", or "Delete 3 Widgets" for a bulk destroy)
through {@link usePageTitle}, so the layout's PageTitle display renders a heading here as it
does on the other CRUD views.

### [`ViewExecuteTransition`](/v3/reference/api/vue/ViewExecuteTransition.md)

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.

### [`ViewForgotPassword`](/v3/reference/api/vue/ViewForgotPassword.md)

Default forgot password view. Asks for an email address and requests a password reset link
for it, inside an AuthorizingForm card.

The server answers the same way whether or not an account uses the address, so the
confirmation does not say that one does. Replace pieces through the `field(email)`,
`widget(email)`, `action-bar`, and `suffix` slots; any other AuthorizingForm or ActionForm
slot is forwarded through.

### [`ViewHistoryList`](/v3/reference/api/vue/ViewHistoryList.md)

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`](/v3/reference/api/vue/ViewList.md)

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`](/v3/reference/api/vue/ViewLoading.md)

Compact loading status for route-level async resolution. Shows a loading icon
and label, with optional request details and dependency progress. After
`slowAfterMs`, shows a slow-load message and the optional `slow-actions` slot.

### [`ViewNotFound`](/v3/reference/api/vue/ViewNotFound.md)

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`](/v3/reference/api/vue/ViewRead.md)

Read-only detail view that fetches and displays a single model instance identified by its
primary key.

### [`ViewReauthenticate`](/v3/reference/api/vue/ViewReauthenticate.md)

Default reauthentication view. Confirms a signed-in user's identity before a reauthentication-guarded
action, with the proof the server requires for the account. `storeUser.authPendingFlow` names it:
`mfa_reauthenticate` renders `ViewTwoFactorAuth` submitting through `storeUser.twoFactorReauthenticate`;
`reauthenticate` renders a password form in an AuthorizingForm card submitting through
`storeUser.reauthenticate`. Both wait for `authPendingFlow` to clear before redirecting, so a user whose
session is already recent is sent on without a prompt.

The `header`, `subTitle`, and `toasts` set here are defaults: an attribute passed in with the same name falls
through to whichever form is showing and replaces it, as does any other AuthorizingForm prop such as `redirect`.
Integrators can replace pieces of the password form through the `field(password)`, `widget(password)`, and
`action-bar` slots; other slots are forwarded to the form being rendered.

### [`ViewRecoveryCodes`](/v3/reference/api/vue/ViewRecoveryCodes.md)

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.

### [`ViewResetPassword`](/v3/reference/api/vue/ViewResetPassword.md)

Default reset password view, the page a password reset email links to. Checks the link, then
asks for a new password and its confirmation inside an AuthorizingForm card.

The emailed link carries the account's `pk` in its path and the `token` in its query, so a
route passes both as props, for example `/reset-password/:pk` with
`props: (route) => ({ pk: route.params.pk, token: route.query.token })`. A link the server
rejects shows the `invalid-message` slot instead of the form. After a successful reset the view
goes to `signInTo`.

Replace pieces through the `field(password)`, `widget(password)`, `field(password_confirm)`,
`widget(password_confirm)`, `action-bar`, and `invalid-message` slots; any other
AuthorizingForm or ActionForm slot is forwarded through.

### [`ViewSelectedObjectsAction`](/v3/reference/api/vue/ViewSelectedObjectsAction.md)

Shared body of ViewActivate and ViewDeactivate: loads the selected objects,
contributes the page title, teleports a "Go Back" action into the title action zone, and runs
the action through ModelActionForm with a PATCH request. Every attribute, such as `tone` or
`confirmText`, and every slot passes through to ModelActionForm. The wrapping view owns the
root element, its theme key, and the action's defaults.

### [`ViewSetupDevice`](/v3/reference/api/vue/ViewSetupDevice.md)

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`](/v3/reference/api/vue/ViewSignIn.md)

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`, `toasts`, theme
overrides, all forwarded to AuthorizingForm), show a "Forgot password?" link with
`forgotPasswordTo`, or replace individual pieces through the `field(email)`,
`widget(email)`, `field(password)`, `widget(password)`, `action-bar`, and `suffix` slots.
Any other AuthorizingForm or ActionForm slot is forwarded through.

### [`ViewTwoFactorAuth`](/v3/reference/api/vue/ViewTwoFactorAuth.md)

Two-factor authentication challenge view. 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. A separate ghost CTA reveals a recovery-code path that swaps the form body to a single mono text input.

By default the code completes sign-in through `storeUser.twoFactorAuthenticate`. The `header`, `subTitle`,
and `runAction` set here are defaults: an attribute passed in with the same name falls through to the root
AuthorizingForm and replaces it. `ViewReauthenticate` passes `runAction` that way to confirm a signed-in
user's second factor through `storeUser.twoFactorReauthenticate`. The server lists methods and sends codes
for the user in the pending login stage or, failing that, the signed-in user, so one fetch serves both.

Once a who-is request has succeeded, an anonymous user with no second-factor flow pending has no sign-in to
finish here, for example because the pending sign-in expired. The view sends that user to the `sign-in` route,
keeping the `redirect` query, and shows a warning toast that explains why. A signed-out user whose methods
request is refused with an `UnauthorizedError` goes there too. Both paths share one redirect, so the user sees
one toast and one navigation when both react to the same refused request.

### [`ViewUpdate`](/v3/reference/api/vue/ViewUpdate.md)

Editable detail view that loads a model instance, presents it in a form, and submits changes
back to the server on save.

## Widgets

### [`WidgetBooleanReadOnly`](/v3/reference/api/vue/WidgetBooleanReadOnly.md)

Read-only presentation for boolean fields. Wraps {@link WidgetReadOnly} so the row keeps
its label association, theme slots, and lookup behavior, and fills the value with
{@link BooleanDisplay} instead of the raw serialized literal.

`fieldMappings` selects this widget through `readOnlyWidget` and supplies the per-type
labels through `readOnlyWidgetProps`, so a project that says "Enabled" and "Disabled"
sets them once in its own mapping rather than per field.

A consumer's own `default` slot still wins: this widget supplies the boolean rendering
only when the field has no `widget(fieldName)default` override.

### [`WidgetCheckbox`](/v3/reference/api/vue/WidgetCheckbox.md)

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`](/v3/reference/api/vue/WidgetCombobox.md)

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`](/v3/reference/api/vue/WidgetDateField.md)

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`](/v3/reference/api/vue/WidgetDateRangeField.md)

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.

### [`WidgetDateTimeReadOnly`](/v3/reference/api/vue/WidgetDateTimeReadOnly.md)

Read-only presentation for date, time, and datetime fields. Wraps
{@link WidgetReadOnly} so the row keeps its label association, theme slots,
and lookup behavior, and fills the value with {@link DateTimeDisplay} instead
of the raw serialized string.

`fieldMappings` selects this widget through `readOnlyWidget` and supplies the
per-type display options through `readOnlyWidgetProps`, which mirror the
`columnProps` that `columnMappings` gives `ColumnDateTime`. A read view and a
list therefore format the same field the same way, and an empty value renders
the same dash in both.

A consumer's own `default` slot still wins: this widget supplies the date
rendering only when the field has no `widget(fieldName)default` override.

### [`WidgetDuration`](/v3/reference/api/vue/WidgetDuration.md)

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 value is DRF's
duration string (`[D ]HH:MM:SS`), as a Django `DurationField` sends and reads it, or with
`seconds` a number of seconds, as `DurationSecondsField` sends and reads it. The shown units
split the value between them, so a duration of two days reads as 48 hours when days are hidden.
Clearing a unit while the rest of the value is zero sets the value to `null`. Entering `0` keeps a
zero duration. A negative value, such as Django's `-1 23:00:00` for minus one hour, shows a
"Negative" segment with a minus sign before the spinners. The spinners show the duration's size,
and editing them keeps the value negative.

### [`WidgetDurationReadOnly`](/v3/reference/api/vue/WidgetDurationReadOnly.md)

Read-only presentation for duration fields. Wraps {@link WidgetReadOnly} so the row keeps
its label association, theme slots, and lookup behavior, and fills the value with
{@link DurationDisplay} instead of the raw serialized literal.

`fieldMappings` selects this widget through `readOnlyWidget` and supplies the display
options through `readOnlyWidgetProps`, which mirror the `columnProps` that
`columnMappings` gives `ColumnDuration`. A read view and a list therefore word the same
field the same way, and an empty value renders the same dash in both.

A consumer's own `default` slot still wins: this widget supplies the duration rendering
only when the field has no `widget(fieldName)default` override.

### [`WidgetFile`](/v3/reference/api/vue/WidgetFile.md)

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.

### [`WidgetFileReadOnly`](/v3/reference/api/vue/WidgetFileReadOnly.md)

Read-only presentation for file and image fields. Wraps {@link WidgetReadOnly} so the row
keeps its label association, theme slots, and lookup behavior, and fills the value with
{@link FileDisplay}: a link labelled with the file name, instead of the `{ name, url }`
object that the plain read-only widget prints.

`fieldMappings` selects this widget through `readOnlyWidget`.

A consumer's own `default` slot still wins: this widget supplies the file rendering
only when the field has no `widget(fieldName)default` override.

### [`WidgetGenericAutoComplete`](/v3/reference/api/vue/WidgetGenericAutoComplete.md)

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`](/v3/reference/api/vue/WidgetHtml.md)

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`](/v3/reference/api/vue/WidgetImage.md)

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`](/v3/reference/api/vue/WidgetJson.md)

A JSON editor widget backed by CodeMirror. It edits real JSON values, not
stringified copies, so JSONField submissions keep their object/scalar shape.

### [`WidgetJsonReadOnly`](/v3/reference/api/vue/WidgetJsonReadOnly.md)

Read-only presentation for `JSON` fields. Wraps {@link WidgetReadOnly} so the row keeps
its label association, theme slots, and lookup behavior, and fills the value with
{@link JsonDisplay} instead of the one-line literal the plain read-only widget prints.

The block form is the point: a read view has the room to indent a nested payload, while
a list cell does not, so {@link ColumnJson} renders the same value inline. Both give a
null value the same dash.

`fieldMappings` selects this widget through `readOnlyWidget` and supplies the display
options through `readOnlyWidgetProps`.

A consumer's own `default` slot still wins: this widget supplies the `JSON` rendering
only when the field has no `widget(fieldName)default` override.

### [`WidgetModel`](/v3/reference/api/vue/WidgetModel.md)

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`](/v3/reference/api/vue/WidgetNativeSelect.md)

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`](/v3/reference/api/vue/WidgetNumberInput.md)

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.

### [`WidgetOTPInput`](/v3/reference/api/vue/WidgetOTPInput.md)

A one-time code widget that renders an InputOTP with form field integration.
Used for verification codes when paired with FormField. Renders one slot per character
unless the default slot supplies its own groups and slots.

### [`WidgetPreviewableTemplate`](/v3/reference/api/vue/WidgetPreviewableTemplate.md)

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`](/v3/reference/api/vue/WidgetRadioGroup.md)

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`](/v3/reference/api/vue/WidgetRangeSlider.md)

A range slider widget that renders a Slider with form field integration.
Used for numeric range inputs when paired with FormField.

### [`WidgetReadOnly`](/v3/reference/api/vue/WidgetReadOnly.md)

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`](/v3/reference/api/vue/WidgetSelectDropdown.md)

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.

### [`WidgetTagsInput`](/v3/reference/api/vue/WidgetTagsInput.md)

A tags input widget for a field that holds a list of values. Each entry becomes a removable tag,
and the field value is the array of entered strings. An entry is added on Enter, on the comma
delimiter, on paste, and when the input loses focus. Each entry is trimmed before it is added, so
` 2` next to an existing `2` is a duplicate. With `numeric`, only entries written as decimal
numbers are added, such as `12`, `-2.5`, `.5`, or `1e3`. A rejected entry stays in the input,
marked invalid, until it is edited.

### [`WidgetTemplateLegend`](/v3/reference/api/vue/WidgetTemplateLegend.md)

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`](/v3/reference/api/vue/WidgetTextInput.md)

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`](/v3/reference/api/vue/WidgetTextTextarea.md)

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`](/v3/reference/api/vue/WidgetTimeField.md)

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`](/v3/reference/api/vue/WidgetTimeRangeField.md)

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`](/v3/reference/api/vue/WidgetToggle.md)

A boolean toggle widget that renders a Switch with form field integration.
Used for BooleanField when paired with FormField.

### [`WidgetUnmapped`](/v3/reference/api/vue/WidgetUnmapped.md)

Renders a diagnostic when a form model resolves no widget for a field, either
because the field's type pair has no entry in the field mappings or because a
configured widget name does not resolve. Surfaces a misconfigured field
definition in the form rather than dropping the field silently.

## Controls

### [`Button`](/v3/reference/api/vue/Button.md)

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`](/v3/reference/api/vue/ButtonGroup.md)

A container that groups related buttons into a single visual unit.
Applies radius and edge adjustments to adjacent children based on orientation.

### [`ButtonGroupSeparator`](/v3/reference/api/vue/ButtonGroupSeparator.md)

A visual divider placed between items in a ButtonGroup.
Stretches to fill the button group's cross-axis.

### [`ButtonGroupText`](/v3/reference/api/vue/ButtonGroupText.md)

A text label element that can be placed inside a ButtonGroup.
Renders with muted background styling to visually complement adjacent buttons.

### [`Calendar`](/v3/reference/api/vue/Calendar.md)

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`](/v3/reference/api/vue/CalendarCell.md)

A styled wrapper for a single calendar cell, adding selection highlight and focus handling.

### [`CalendarCellTrigger`](/v3/reference/api/vue/CalendarCellTrigger.md)

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`](/v3/reference/api/vue/CalendarFooter.md)

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`](/v3/reference/api/vue/CalendarGrid.md)

A styled wrapper for the calendar grid table that contains weeks and day cells.

### [`CalendarGridBody`](/v3/reference/api/vue/CalendarGridBody.md)

A wrapper for the calendar grid's body element containing week rows.

### [`CalendarGridHead`](/v3/reference/api/vue/CalendarGridHead.md)

A wrapper for the calendar grid's header element containing day-of-week labels.

### [`CalendarGridRow`](/v3/reference/api/vue/CalendarGridRow.md)

A styled row within the calendar grid representing a single week.

### [`CalendarHeadCell`](/v3/reference/api/vue/CalendarHeadCell.md)

A styled header cell displaying a day-of-week abbreviation in the calendar grid.

### [`CalendarHeader`](/v3/reference/api/vue/CalendarHeader.md)

The header bar of the calendar containing navigation buttons and the month/year heading.

### [`CalendarHeading`](/v3/reference/api/vue/CalendarHeading.md)

Displays the current month and year label in the calendar header.
Exposes a headingValue slot prop for custom rendering.

### [`CalendarNextButton`](/v3/reference/api/vue/CalendarNextButton.md)

A navigation button that advances the calendar to the next month or year.

### [`CalendarPrevButton`](/v3/reference/api/vue/CalendarPrevButton.md)

A navigation button that moves the calendar to the previous month or year.

### [`Checkbox`](/v3/reference/api/vue/Checkbox.md)

A checkbox built on Reka UI's CheckboxRoot, displaying a check icon when checked
and a minus icon when indeterminate.

### [`Combobox`](/v3/reference/api/vue/Combobox.md)

Root of a Combobox widget. Combines a searchable input with a filtered option list.

### [`ComboboxAnchor`](/v3/reference/api/vue/ComboboxAnchor.md)

Anchor element that positions the ComboboxList relative to the trigger.

### [`ComboboxEmpty`](/v3/reference/api/vue/ComboboxEmpty.md)

Shown inside ComboboxList when no items match the current search.

### [`ComboboxGroup`](/v3/reference/api/vue/ComboboxGroup.md)

Groups related ComboboxItem elements with an optional heading.

### [`ComboboxInput`](/v3/reference/api/vue/ComboboxInput.md)

The search input for Combobox, rendered with a search icon.

### [`ComboboxItem`](/v3/reference/api/vue/ComboboxItem.md)

A selectable option within ComboboxList.

### [`ComboboxItemIndicator`](/v3/reference/api/vue/ComboboxItemIndicator.md)

Visual indicator shown when a ComboboxItem is selected.

### [`ComboboxList`](/v3/reference/api/vue/ComboboxList.md)

The dropdown list panel for Combobox, rendered in a portal.

### [`ComboboxSeparator`](/v3/reference/api/vue/ComboboxSeparator.md)

A visual divider between groups or items in ComboboxList.

### [`ComboboxTrigger`](/v3/reference/api/vue/ComboboxTrigger.md)

A button that opens the Combobox list.

### [`ComboboxViewport`](/v3/reference/api/vue/ComboboxViewport.md)

Scrollable viewport inside ComboboxList.

### [`ComboboxVirtualizer`](/v3/reference/api/vue/ComboboxVirtualizer.md)

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`](/v3/reference/api/vue/Command.md)

Root of a command palette with built-in filtering, providing context to child components.

### [`CommandDialog`](/v3/reference/api/vue/CommandDialog.md)

Wraps Command inside a modal dialog for use as a floating command palette.

### [`CommandEmpty`](/v3/reference/api/vue/CommandEmpty.md)

Shown inside CommandList when no items match the current search.

### [`CommandFooter`](/v3/reference/api/vue/CommandFooter.md)

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`](/v3/reference/api/vue/CommandGroup.md)

Groups related CommandItem elements with an optional heading.

### [`CommandInput`](/v3/reference/api/vue/CommandInput.md)

The search input for Command, bound to the shared filter state.

### [`CommandItem`](/v3/reference/api/vue/CommandItem.md)

A selectable command option within CommandList or CommandGroup.

### [`CommandList`](/v3/reference/api/vue/CommandList.md)

Scrollable container that renders the filtered list of command items.

### [`CommandSeparator`](/v3/reference/api/vue/CommandSeparator.md)

A visual divider between groups or items within CommandList.

### [`CommandShortcut`](/v3/reference/api/vue/CommandShortcut.md)

Displays a keyboard shortcut hint aligned to the right of a CommandItem.

### [`DateField`](/v3/reference/api/vue/DateField.md)

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`](/v3/reference/api/vue/DateFieldInput.md)

A single segment of a date field (year, month, day, hour, minute, etc.).
Renders an editable segment inside a DateField.

### [`DateRangeField`](/v3/reference/api/vue/DateRangeField.md)

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`](/v3/reference/api/vue/DateRangeFieldInput.md)

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`](/v3/reference/api/vue/FileUpload.md)

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`](/v3/reference/api/vue/Input.md)

A styled text input built on the native HTML input element, with support for v-model binding.

### [`InputGroup`](/v3/reference/api/vue/InputGroup.md)

A container that groups an input with inline addons, buttons, or text, with coordinated focus and error states.

### [`InputGroupAddon`](/v3/reference/api/vue/InputGroupAddon.md)

An addon element placed at the start, end, or above/below an input group, with optional click-to-focus behavior.

### [`InputGroupButton`](/v3/reference/api/vue/InputGroupButton.md)

A sized button emphasis designed for inline placement within an input group.

### [`InputGroupInput`](/v3/reference/api/vue/InputGroupInput.md)

A borderless input element styled for seamless placement inside an input group.

### [`InputGroupText`](/v3/reference/api/vue/InputGroupText.md)

A inline text or icon label displayed inside an input group alongside the input.

### [`InputGroupTextarea`](/v3/reference/api/vue/InputGroupTextarea.md)

A borderless textarea element styled for seamless placement inside an input group.

### [`InputOTP`](/v3/reference/api/vue/InputOTP.md)

A styled OTP (one-time password) input built on vue-input-otp's OTPInput, with slot forwarding for custom slot rendering.

### [`InputOTPGroup`](/v3/reference/api/vue/InputOTPGroup.md)

A flex container that groups OTP slot elements horizontally.

### [`InputOTPSeparator`](/v3/reference/api/vue/InputOTPSeparator.md)

A visual separator between OTP slot groups, rendering a minus icon by default.

### [`InputOTPSlot`](/v3/reference/api/vue/InputOTPSlot.md)

An individual OTP character slot that displays the current character and an animated caret when active.

### [`NativeSelect`](/v3/reference/api/vue/NativeSelect.md)

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`](/v3/reference/api/vue/NativeSelectOptGroup.md)

A styled wrapper for the native `<optgroup>` element used inside NativeSelect.

### [`NativeSelectOption`](/v3/reference/api/vue/NativeSelectOption.md)

A styled wrapper for the native `<option>` element used inside NativeSelect.

### [`NumberField`](/v3/reference/api/vue/NumberField.md)

A numeric input container built on Reka UI's NumberFieldRoot, providing
increment/decrement controls, min/max constraints, and v-model binding.

### [`NumberFieldContent`](/v3/reference/api/vue/NumberFieldContent.md)

A relative-positioned wrapper that manages padding around a NumberField input
when increment or decrement buttons are present.

### [`NumberFieldDecrement`](/v3/reference/api/vue/NumberFieldDecrement.md)

A decrement button for NumberField, absolutely positioned to the left
of the input and rendering a Minus icon by default.

### [`NumberFieldIncrement`](/v3/reference/api/vue/NumberFieldIncrement.md)

An increment button for NumberField, absolutely positioned to the right
of the input and rendering a Plus icon by default.

### [`NumberFieldInput`](/v3/reference/api/vue/NumberFieldInput.md)

The text input element within a NumberField, styled for centered
numeric entry and wired to the parent NumberFieldRoot context.

### [`RadioGroup`](/v3/reference/api/vue/RadioGroup.md)

A radio group container built on Reka UI's RadioGroupRoot,
providing keyboard navigation and v-model binding for a set of radio items.

### [`RadioGroupItem`](/v3/reference/api/vue/RadioGroupItem.md)

A single radio button within a RadioGroup, rendering a circular indicator
when selected and forwarding all native radio props to the underlying primitive.

### [`RangeCalendar`](/v3/reference/api/vue/RangeCalendar.md)

A full-featured date range calendar built on RangeCalendarRoot.
Supports range selection with configurable date constraints and navigation.

### [`RangeCalendarCell`](/v3/reference/api/vue/RangeCalendarCell.md)

A styled wrapper for a single range calendar cell with range selection highlights.

### [`RangeCalendarCellTrigger`](/v3/reference/api/vue/RangeCalendarCellTrigger.md)

The interactive trigger button within a range calendar cell that handles day selection.

### [`RangeCalendarGrid`](/v3/reference/api/vue/RangeCalendarGrid.md)

A styled wrapper for the range calendar grid table containing weeks and day cells.

### [`RangeCalendarGridBody`](/v3/reference/api/vue/RangeCalendarGridBody.md)

A wrapper for the range calendar grid's body element containing week rows.

### [`RangeCalendarGridHead`](/v3/reference/api/vue/RangeCalendarGridHead.md)

A wrapper for the range calendar grid's header element containing day-of-week labels.

### [`RangeCalendarGridRow`](/v3/reference/api/vue/RangeCalendarGridRow.md)

A styled row within the range calendar grid representing a single week.

### [`RangeCalendarHeadCell`](/v3/reference/api/vue/RangeCalendarHeadCell.md)

A styled header cell displaying a day-of-week abbreviation in the range calendar grid.

### [`RangeCalendarHeader`](/v3/reference/api/vue/RangeCalendarHeader.md)

The header bar of the range calendar containing navigation buttons and the month/year heading.

### [`RangeCalendarHeading`](/v3/reference/api/vue/RangeCalendarHeading.md)

Displays the current month and year label in the range calendar header.
Exposes a headingValue slot prop for custom rendering.

### [`RangeCalendarNextButton`](/v3/reference/api/vue/RangeCalendarNextButton.md)

A navigation button that advances the range calendar to the next month or year.

### [`RangeCalendarPrevButton`](/v3/reference/api/vue/RangeCalendarPrevButton.md)

A navigation button that moves the range calendar to the previous month or year.

### [`Select`](/v3/reference/api/vue/Select.md)

Root of a Select widget. Wrap with SelectTrigger and SelectContent.

### [`SelectContent`](/v3/reference/api/vue/SelectContent.md)

Dropdown content panel for Select, rendered in a portal with scroll buttons.

### [`SelectGroup`](/v3/reference/api/vue/SelectGroup.md)

Groups related SelectItem elements within SelectContent.

### [`SelectItem`](/v3/reference/api/vue/SelectItem.md)

A selectable option within SelectContent.

### [`SelectItemText`](/v3/reference/api/vue/SelectItemText.md)

The text portion of a SelectItem, used for typeahead and display.

### [`SelectLabel`](/v3/reference/api/vue/SelectLabel.md)

A label for a SelectGroup.

### [`SelectScrollDownButton`](/v3/reference/api/vue/SelectScrollDownButton.md)

Scroll-down affordance inside SelectContent.

### [`SelectScrollUpButton`](/v3/reference/api/vue/SelectScrollUpButton.md)

Scroll-up affordance inside SelectContent.

### [`SelectSeparator`](/v3/reference/api/vue/SelectSeparator.md)

A visual divider between groups or items in SelectContent.

### [`SelectTrigger`](/v3/reference/api/vue/SelectTrigger.md)

The button that opens the Select dropdown.

### [`SelectValue`](/v3/reference/api/vue/SelectValue.md)

Displays the currently selected value inside SelectTrigger.

### [`Slider`](/v3/reference/api/vue/Slider.md)

A range slider built on Reka UI's SliderRoot, rendering a track, range fill, and draggable thumbs.

### [`Switch`](/v3/reference/api/vue/Switch.md)

A toggle switch built on Reka UI's SwitchRoot, with a sliding thumb indicator.

### [`TagsInput`](/v3/reference/api/vue/TagsInput.md)

Root of a tags input control allowing users to add and remove tag values.

### [`TagsInputInput`](/v3/reference/api/vue/TagsInputInput.md)

The text input field within TagsInput where users type new tags.

### [`TagsInputItem`](/v3/reference/api/vue/TagsInputItem.md)

A single tag item within TagsInput.

### [`TagsInputItemDelete`](/v3/reference/api/vue/TagsInputItemDelete.md)

A delete button within a TagsInputItem that removes the tag when activated.

### [`TagsInputItemText`](/v3/reference/api/vue/TagsInputItemText.md)

Displays the text content of a TagsInputItem tag.

### [`Textarea`](/v3/reference/api/vue/Textarea.md)

A styled textarea built on the native HTML textarea element, with support for v-model binding.

### [`TimeField`](/v3/reference/api/vue/TimeField.md)

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`](/v3/reference/api/vue/TimeFieldInput.md)

A single segment of a time field (hour, minute, second, or day period).
Renders an editable segment inside a TimeField.

### [`Toggle`](/v3/reference/api/vue/Toggle.md)

A toggle button built on Reka UI's Toggle, supporting variant and size styles via the theme system.

### [`ToggleGroup`](/v3/reference/api/vue/ToggleGroup.md)

A group of toggle buttons that share variant and size context.

### [`ToggleGroupItem`](/v3/reference/api/vue/ToggleGroupItem.md)

An individual toggle button inside a ToggleGroup.

## Display

### [`AspectRatio`](/v3/reference/api/vue/AspectRatio.md)

Constrains content to a given aspect ratio using Reka UI's AspectRatio primitive.

### [`Avatar`](/v3/reference/api/vue/Avatar.md)

Root avatar container with fallback support via AvatarImage and AvatarFallback.

### [`AvatarFallback`](/v3/reference/api/vue/AvatarFallback.md)

Fallback content shown inside Avatar when the image fails to load.

### [`AvatarImage`](/v3/reference/api/vue/AvatarImage.md)

The image element inside a Avatar.

### [`Badge`](/v3/reference/api/vue/Badge.md)

A badge component built on Reka UI's Primitive, supporting variant styles.

### [`BooleanDisplay`](/v3/reference/api/vue/BooleanDisplay.md)

Presents a boolean as a word rather than its stored literal, so a read view says "Yes"
instead of `true`. A null or absent value renders the same dash {@link DateTimeDisplay}
uses for an empty date, which is the third state a `NullBooleanField` can hold.

A serializer that sends `1`, `0`, `"true"`, or `"false"` still lands on a word; only
null, undefined, and the empty string read as "no value recorded" and take the dash.

### [`ClickToCopyText`](/v3/reference/api/vue/ClickToCopyText.md)

Displays a text value alongside a button that copies it to the clipboard and shows a toast notification on success.

### [`ConsequencesBullets`](/v3/reference/api/vue/ConsequencesBullets.md)

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`](/v3/reference/api/vue/ConstraintsBar.md)

The active list-constraints band: one strip that hosts the scope chips, the
filter chips, and the sort chips on a single line, with a hairline divider
between each pair of active groups. The groups are told apart by their own
tint (info for scopes, primary for filters, neutral for sorts), so the band
reads as grouped categories rather than one undifferentiated pile. Each group
owns its own clear control.

Presentational only: the host supplies the chip groups via the `scopes`,
`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`](/v3/reference/api/vue/DateRangeDisplay.md)

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`](/v3/reference/api/vue/DateTimeDisplay.md)

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`](/v3/reference/api/vue/DiagnosticStrip.md)

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.

### [`DurationDisplay`](/v3/reference/api/vue/DurationDisplay.md)

Presents a duration in named units rather than its stored literal, so a read view says
"730 days" instead of `730 00:00:00`. A null or absent value renders the same dash
{@link DateTimeDisplay} uses for an empty date.

Both serialized shapes are accepted: the Django duration string DRF's `DurationField`
sends (`[-]D HH:MM:SS[.ffffff]`) and the number of seconds VUEDA's
`DurationSecondsField` sends. Units that hold zero are left out, so a value only names
the parts it has. A duration of zero names the smallest unit ("0 seconds"), which is a
recorded value and not the same as no value at all. Sub-second precision is dropped.

### [`ErrorDisplay`](/v3/reference/api/vue/ErrorDisplay.md)

Displays a dismissible error message card, reports the error to Sentry, and optionally renders a router-link for navigation.

### [`FieldPickerMenuList`](/v3/reference/api/vue/FieldPickerMenuList.md)

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.

### [`FileDisplay`](/v3/reference/api/vue/FileDisplay.md)

Presents a stored file as a link labelled with the file name, rather than the
`{ "name": ..., "url": ... }` object that VUEDA's file and image serializer fields send.
A plain string value is read as the file's URL and is also the label. A null, absent, or
empty value renders the same dash {@link DateTimeDisplay} uses for an empty date.

### [`JsonDisplay`](/v3/reference/api/vue/JsonDisplay.md)

Presents a `JSON` value as formatted text. The block form indents it over several
lines, so nesting is readable rather than one long line; the inline form keeps it
compact for a table cell and truncates it past `maxLength`. A null or absent value
renders the same dash {@link DateTimeDisplay} uses for an empty date.

An empty object or array is a recorded value, not an absent one, so it renders as `{}`
or `[]`. The empty string is the `JSON` string scalar here and renders as `""`, unlike
{@link BooleanDisplay} and {@link DurationDisplay}, whose serializers send `""` to mean
a blank field. A value that cannot be serialized (a circular structure) falls back to
plain coercion rather than rendering nothing.

### [`Kbd`](/v3/reference/api/vue/Kbd.md)

A keyboard key element with consistent styling.

### [`KbdGroup`](/v3/reference/api/vue/KbdGroup.md)

A container for grouping multiple Kbd key elements inline.

### [`LoadingHeartbeatStrip`](/v3/reference/api/vue/LoadingHeartbeatStrip.md)

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`](/v3/reference/api/vue/LoadingSkeletonGhost.md)

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`](/v3/reference/api/vue/LoadingSpinnerBlock.md)

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`](/v3/reference/api/vue/LoadingSpinnerInline.md)

Renders the configured inline loading icon. The icon entry is resolved from
`useIcons("LoadingSpinnerInline", props)`, falling back to `Default.loading`.

### [`ResponsiveMenu`](/v3/reference/api/vue/ResponsiveMenu.md)

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](/v3/reference/api/vue/SortControl.md)) and the filter add-menu
([FilterMenu](/v3/reference/api/vue/FilterMenu.md)) 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.

### [`ScopeChip`](/v3/reference/api/vue/ScopeChip.md)

Renders one list scope as a read-only pill. A scope is a list constraint
supplied by a link or by application code that has no editable input, so the
label segment only describes it; when the scope is clearable, a trailing
segment asks to clear it.

### [`ScopeGroup`](/v3/reference/api/vue/ScopeGroup.md)

Renders a list's active scopes as a strip of [ScopeChip](/v3/reference/api/vue/ScopeChip.md)s,
plus a Clear scopes control when more than one clearable scope is active. A scope is a
list constraint supplied by a link or by application code that has no editable
input: the chips describe it and offer removal, and the add-filter menu never
offers it. The scope-side counterpart to [FilterGroup](/v3/reference/api/vue/FilterGroup.md)'s chips.

Presentational only: the group reports which scopes the reader asked to clear,
and the host removes their values.

### [`SortChip`](/v3/reference/api/vue/SortChip.md)

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](/v3/reference/api/vue/FilterChip.md): neutral-tinted, since ordering
is not a predicate and the accent is reserved for filters, actions, and selection.

### [`SortControl`](/v3/reference/api/vue/SortControl.md)

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](/v3/reference/api/vue/ResponsiveMenu.md) (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](/v3/reference/api/vue/SortGroup.md) /
[SortChip](/v3/reference/api/vue/SortChip.md)), 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`](/v3/reference/api/vue/SortGroup.md)

Renders the active sort order as a strip of removable [SortChip](/v3/reference/api/vue/SortChip.md)s,
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](/v3/reference/api/vue/SortControl.md) add menu;
this strip is the always-visible read-out and the primary editing surface, the
sort-side counterpart to [FilterGroup](/v3/reference/api/vue/FilterGroup.md)'s chips.

### [`SuggestionList`](/v3/reference/api/vue/SuggestionList.md)

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`](/v3/reference/api/vue/SystemMessageCard.md)

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`](/v3/reference/api/vue/TriedUrlCallout.md)

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`](/v3/reference/api/vue/UserAvatar.md)

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`](/v3/reference/api/vue/Alert.md)

An alert box supporting variant styles.

### [`AlertActions`](/v3/reference/api/vue/AlertActions.md)

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`](/v3/reference/api/vue/AlertClose.md)

A close button for dismissing an alert. Renders a slotted button that emits a `close` event when clicked.

### [`AlertDescription`](/v3/reference/api/vue/AlertDescription.md)

The description element inside an Alert component.

### [`AlertTitle`](/v3/reference/api/vue/AlertTitle.md)

The title element inside an Alert component.

### [`Progress`](/v3/reference/api/vue/Progress.md)

A progress bar component built on Reka UI's ProgressRoot.

### [`Skeleton`](/v3/reference/api/vue/Skeleton.md)

A placeholder skeleton element that animates while content is loading.

### [`Sonner`](/v3/reference/api/vue/Sonner.md)

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.

It reads these icon names from the `Sonner` registry entry: `check` for success, `info`,
`triangleExclamation` for warning, `close` for error and for the close button, and `loading`.

## Form

### [`FieldRenderer`](/v3/reference/api/vue/FieldRenderer.md)

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.

### [`FieldSetInlineActionButton`](/v3/reference/api/vue/FieldSetInlineActionButton.md)

Default non-destroy action button shared by stacked and tabular inline rows.
Invokes the configured callback with the layout's row context, the action,
and the click event. Appearance comes from the shared Button theme.

### [`FieldSetMany`](/v3/reference/api/vue/FieldSetMany.md)

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. Every entry can be removed. Required lists need at
least one entry; optional lists may be empty. Added entries require a value.

### [`FieldSetRange`](/v3/reference/api/vue/FieldSetRange.md)

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`](/v3/reference/api/vue/FieldSetSingularStackedInline.md)

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`](/v3/reference/api/vue/FieldSetStackedInline.md)

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`](/v3/reference/api/vue/FieldSetStackedInlineRow.md)

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 editable new (unsaved) rows, even without a destroy action.
Editable existing rows show a destroy checkbox supplied by the parent inline.
Slot overrides are available for each.

### [`FieldSetTabularInline`](/v3/reference/api/vue/FieldSetTabularInline.md)

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`](/v3/reference/api/vue/FieldWarningsList.md)

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 (`label: message`) when it carries
exactly one message, or as its own sub-header plus list when it carries more.

A field is named by its label from `fieldDetails`, so the confirmation calls a field what the
form above it calls it. With no entry there it falls back to the start-cased field name.

The `entry` slot overrides one field's entire layout (the header/list/inline decision
included).

### [`FilterChip`](/v3/reference/api/vue/FilterChip.md)

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](/v3/reference/api/js/use/useModelChoices/functions/useModelChoices.md), and turns
destructive when the server rejected the value.

### [`FilterFieldForm`](/v3/reference/api/vue/FilterFieldForm.md)

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](/v3/reference/api/vue/FilterMenu.md)
drill-in (to add a filter) and inside a [FilterChip](/v3/reference/api/vue/FilterChip.md) edit
popover (to edit one). The surrounding popover owns visibility; this component
owns the form body and the apply/remove mutations.

### [`FilterForm`](/v3/reference/api/vue/FilterForm.md)

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`](/v3/reference/api/vue/FilterGroup.md)

Presentation host for a model list view's filter controls. It renders the
add-filter [FilterMenu](/v3/reference/api/vue/FilterMenu.md) (whose trigger teleports into the
toolbar) from the caller-resolved `filterables` / `filterableDetails` /
`validFilterables` and, when filters are active, a strip of removable
[FilterChip](/v3/reference/api/vue/FilterChip.md)s plus a Clear filters control. Resolving
which fields are filterable (typically via
[useViewList](/v3/reference/api/js/use/useViewList/functions/useViewList.md)),
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`](/v3/reference/api/vue/FilterMenu.md)

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](/v3/reference/api/vue/ResponsiveMenu.md)); picking one drills the menu in place
to that field's [FilterFieldForm](/v3/reference/api/vue/FilterFieldForm.md), with a back affordance
returning to the list. The trigger teleports into a toolbar zone supplied by
the host view.

### [`FormConfirmDialog`](/v3/reference/api/vue/FormConfirmDialog.md)

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`](/v3/reference/api/vue/FormField.md)

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`](/v3/reference/api/vue/FormGrid.md)

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 &gt;=720 px.

### [`FormMessage`](/v3/reference/api/vue/FormMessage.md)

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`](/v3/reference/api/vue/FormModel.md)

This component is a form model that renders fields based on the configuration for the model.

### [`FormModelField`](/v3/reference/api/vue/FormModelField.md)

Renders one field of the surrounding `FormModel` with that form model's per-field slots, such as
`#widget(sku)`, `#field(sku)label`, and `#field-errors`. Use it in a custom `#fields` layout, where
a plain `FieldRenderer` would not receive those slots.

It accepts every `FieldRenderer` prop and passes it through. A slot passed to `FormModelField`
directly wins over the form model's slot with the same name.

Uses a render function (not a template), because a template can only render the component's own
slots, not the slot functions that the form model provides.

### [`FormSection`](/v3/reference/api/vue/FormSection.md)

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`](/v3/reference/api/vue/FormSectionTitle.md)

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`](/v3/reference/api/vue/TypedConfirmField.md)

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`](/v3/reference/api/vue/Table.md)

A table wrapper component providing a framed, scrollable container and styled table element.

The frame sits outside the scroll container, so rows and sticky header cells scroll inside
it and never paint over its edge.

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`](/v3/reference/api/vue/TableBody.md)

The tbody element for a grid table, removing the bottom border on the last row.

### [`TableCaption`](/v3/reference/api/vue/TableCaption.md)

A caption element for a grid table, styled below the table content.

### [`TableCell`](/v3/reference/api/vue/TableCell.md)

A table data cell with consistent padding, alignment, and checkbox support.

### [`TableEmpty`](/v3/reference/api/vue/TableEmpty.md)

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`](/v3/reference/api/vue/TableFooter.md)

The tfoot element for a grid table with muted background and top border styling.

### [`TableHead`](/v3/reference/api/vue/TableHead.md)

A table header cell with fixed height, left-aligned text, and checkbox support.

### [`TableHeader`](/v3/reference/api/vue/TableHeader.md)

The thead element for a grid table, adding a bottom border to each header row.

### [`TableRow`](/v3/reference/api/vue/TableRow.md)

A table row with hover, selected-state, and border-bottom transition styles.

### [`TableRowActions`](/v3/reference/api/vue/TableRowActions.md)

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`](/v3/reference/api/vue/Breadcrumb.md)

A navigation breadcrumb root element.

### [`BreadcrumbEllipsis`](/v3/reference/api/vue/BreadcrumbEllipsis.md)

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`](/v3/reference/api/vue/BreadcrumbItem.md)

A single item within a breadcrumb list.

### [`BreadcrumbLink`](/v3/reference/api/vue/BreadcrumbLink.md)

A navigable link within a breadcrumb item.

### [`BreadcrumbList`](/v3/reference/api/vue/BreadcrumbList.md)

An ordered list of breadcrumb items.

### [`BreadcrumbPage`](/v3/reference/api/vue/BreadcrumbPage.md)

Represents the current page within a breadcrumb trail.

### [`BreadcrumbSeparator`](/v3/reference/api/vue/BreadcrumbSeparator.md)

A visual separator between breadcrumb items.

### [`ContextMenu`](/v3/reference/api/vue/ContextMenu.md)

The root provider for a context menu.

### [`ContextMenuCheckboxItem`](/v3/reference/api/vue/ContextMenuCheckboxItem.md)

A checkable item within a context menu.

### [`ContextMenuContent`](/v3/reference/api/vue/ContextMenuContent.md)

The content panel of a context menu, rendered inside a portal.

### [`ContextMenuGroup`](/v3/reference/api/vue/ContextMenuGroup.md)

Groups related context menu items together.

### [`ContextMenuItem`](/v3/reference/api/vue/ContextMenuItem.md)

An individual action item within a context menu.

### [`ContextMenuLabel`](/v3/reference/api/vue/ContextMenuLabel.md)

A non-interactive label within a context menu.

### [`ContextMenuPortal`](/v3/reference/api/vue/ContextMenuPortal.md)

Portals a context menu into a different part of the DOM.

### [`ContextMenuRadioGroup`](/v3/reference/api/vue/ContextMenuRadioGroup.md)

Groups radio items within a context menu.

### [`ContextMenuRadioItem`](/v3/reference/api/vue/ContextMenuRadioItem.md)

A radio item within a context menu radio group.

### [`ContextMenuSeparator`](/v3/reference/api/vue/ContextMenuSeparator.md)

A visual separator between context menu items or groups.

### [`ContextMenuShortcut`](/v3/reference/api/vue/ContextMenuShortcut.md)

Displays a keyboard shortcut hint within a context menu item.

### [`ContextMenuSub`](/v3/reference/api/vue/ContextMenuSub.md)

The root provider for a context submenu.

### [`ContextMenuSubContent`](/v3/reference/api/vue/ContextMenuSubContent.md)

The content panel of a context submenu.

### [`ContextMenuSubTrigger`](/v3/reference/api/vue/ContextMenuSubTrigger.md)

The trigger that opens a context submenu.

### [`ContextMenuTrigger`](/v3/reference/api/vue/ContextMenuTrigger.md)

The area that triggers a context menu on right-click.

### [`DropdownMenu`](/v3/reference/api/vue/DropdownMenu.md)

The root provider for a dropdown menu.

### [`DropdownMenuCheckboxItem`](/v3/reference/api/vue/DropdownMenuCheckboxItem.md)

A checkable item within a dropdown menu.

### [`DropdownMenuContent`](/v3/reference/api/vue/DropdownMenuContent.md)

The content panel of a dropdown menu, rendered inside a portal.

### [`DropdownMenuGroup`](/v3/reference/api/vue/DropdownMenuGroup.md)

Groups related dropdown menu items together.

### [`DropdownMenuItem`](/v3/reference/api/vue/DropdownMenuItem.md)

An individual action item within a dropdown menu.

### [`DropdownMenuLabel`](/v3/reference/api/vue/DropdownMenuLabel.md)

A non-interactive label within a dropdown menu.

### [`DropdownMenuRadioGroup`](/v3/reference/api/vue/DropdownMenuRadioGroup.md)

Groups radio items within a dropdown menu.

### [`DropdownMenuRadioItem`](/v3/reference/api/vue/DropdownMenuRadioItem.md)

A radio item within a dropdown menu radio group.

### [`DropdownMenuSeparator`](/v3/reference/api/vue/DropdownMenuSeparator.md)

A visual separator between dropdown menu items or groups.

### [`DropdownMenuShortcut`](/v3/reference/api/vue/DropdownMenuShortcut.md)

Displays a keyboard shortcut hint within a dropdown menu item.

### [`DropdownMenuSub`](/v3/reference/api/vue/DropdownMenuSub.md)

The root provider for a dropdown submenu.

### [`DropdownMenuSubContent`](/v3/reference/api/vue/DropdownMenuSubContent.md)

The content panel of a dropdown submenu.

### [`DropdownMenuSubTrigger`](/v3/reference/api/vue/DropdownMenuSubTrigger.md)

The trigger that opens a dropdown submenu.

### [`DropdownMenuTrigger`](/v3/reference/api/vue/DropdownMenuTrigger.md)

The button that toggles a dropdown menu open or closed.

### [`LinkModelView`](/v3/reference/api/vue/LinkModelView.md)

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`](/v3/reference/api/vue/Menubar.md)

A horizontal menu bar containing a set of menus.

### [`MenubarCheckboxItem`](/v3/reference/api/vue/MenubarCheckboxItem.md)

A checkable item within a menubar menu.

### [`MenubarContent`](/v3/reference/api/vue/MenubarContent.md)

The content panel of a menubar menu, rendered inside a portal.

### [`MenubarGroup`](/v3/reference/api/vue/MenubarGroup.md)

Groups related menubar items together.

### [`MenubarItem`](/v3/reference/api/vue/MenubarItem.md)

An individual action item within a menubar menu.

### [`MenubarLabel`](/v3/reference/api/vue/MenubarLabel.md)

A non-interactive label within a menubar menu.

### [`MenubarMenu`](/v3/reference/api/vue/MenubarMenu.md)

A single menu within a menubar.

### [`MenubarRadioGroup`](/v3/reference/api/vue/MenubarRadioGroup.md)

Groups radio items within a menubar menu.

### [`MenubarRadioItem`](/v3/reference/api/vue/MenubarRadioItem.md)

A radio item within a menubar menu radio group.

### [`MenubarSeparator`](/v3/reference/api/vue/MenubarSeparator.md)

A visual separator between menubar menu items or groups.

### [`MenubarShortcut`](/v3/reference/api/vue/MenubarShortcut.md)

Displays a keyboard shortcut hint within a menubar item.

### [`MenubarSub`](/v3/reference/api/vue/MenubarSub.md)

The root provider for a menubar submenu.

### [`MenubarSubContent`](/v3/reference/api/vue/MenubarSubContent.md)

The content panel of a menubar submenu, rendered inside a portal.

### [`MenubarSubTrigger`](/v3/reference/api/vue/MenubarSubTrigger.md)

The trigger that opens a menubar submenu.

### [`MenubarTrigger`](/v3/reference/api/vue/MenubarTrigger.md)

The button that opens a menu within a menubar.

### [`NavigationItem`](/v3/reference/api/vue/NavigationItem.md)

### [`NavigationMenu`](/v3/reference/api/vue/NavigationMenu.md)

The root provider for a navigation menu.

### [`NavigationMenuContent`](/v3/reference/api/vue/NavigationMenuContent.md)

The content panel of a navigation menu item.

### [`NavigationMenuIndicator`](/v3/reference/api/vue/NavigationMenuIndicator.md)

An optional indicator element displayed below the list of navigation menu items.

### [`NavigationMenuItem`](/v3/reference/api/vue/NavigationMenuItem.md)

An individual item within a navigation menu list.

### [`NavigationMenuLink`](/v3/reference/api/vue/NavigationMenuLink.md)

A navigable link within a navigation menu.

### [`NavigationMenuList`](/v3/reference/api/vue/NavigationMenuList.md)

A list of navigation menu items.

### [`NavigationMenuTrigger`](/v3/reference/api/vue/NavigationMenuTrigger.md)

The button that toggles a navigation menu item open or closed.

### [`NavigationMenuViewport`](/v3/reference/api/vue/NavigationMenuViewport.md)

A viewport that renders the active navigation menu content.

### [`Pagination`](/v3/reference/api/vue/Pagination.md)

Root pagination component built on Reka UI's PaginationRoot.

### [`PaginationBar`](/v3/reference/api/vue/PaginationBar.md)

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`](/v3/reference/api/vue/PaginationContent.md)

The list container for pagination items.

### [`PaginationEllipsis`](/v3/reference/api/vue/PaginationEllipsis.md)

An ellipsis indicator for skipped pages in a pagination control.

### [`PaginationFirst`](/v3/reference/api/vue/PaginationFirst.md)

A button to navigate to the first page in a pagination control.

### [`PaginationFooter`](/v3/reference/api/vue/PaginationFooter.md)

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`](/v3/reference/api/vue/PaginationItem.md)

A single page number button in a pagination control.

### [`PaginationLast`](/v3/reference/api/vue/PaginationLast.md)

A button to navigate to the last page in a pagination control.

### [`PaginationMeta`](/v3/reference/api/vue/PaginationMeta.md)

Mono supporting-text label for pagination summaries
(e.g. "441 invoices · page 7 of 23"). Sits inside `PaginationBar`.

### [`PaginationNext`](/v3/reference/api/vue/PaginationNext.md)

A button to navigate to the next page in a pagination control.

### [`PaginationPrevious`](/v3/reference/api/vue/PaginationPrevious.md)

A button to navigate to the previous page in a pagination control.

### [`Sidebar`](/v3/reference/api/vue/Sidebar.md)

The main sidebar container. Renders as an off-canvas sheet on mobile and a collapsible panel on desktop.

### [`SidebarContent`](/v3/reference/api/vue/SidebarContent.md)

The scrollable content area of the sidebar.

### [`SidebarFooter`](/v3/reference/api/vue/SidebarFooter.md)

The footer section of the sidebar.

### [`SidebarGroup`](/v3/reference/api/vue/SidebarGroup.md)

A group of related sidebar items with optional label and actions.

### [`SidebarGroupAction`](/v3/reference/api/vue/SidebarGroupAction.md)

An action button shown at the top-right of a sidebar group.

### [`SidebarGroupContent`](/v3/reference/api/vue/SidebarGroupContent.md)

The content container within a sidebar group.

### [`SidebarGroupLabel`](/v3/reference/api/vue/SidebarGroupLabel.md)

A label heading for a sidebar group.

### [`SidebarHeader`](/v3/reference/api/vue/SidebarHeader.md)

The header section of the sidebar.

### [`SidebarInput`](/v3/reference/api/vue/SidebarInput.md)

A search or filter input styled for use inside the sidebar.

### [`SidebarInset`](/v3/reference/api/vue/SidebarInset.md)

The main content area adjacent to an inset-variant sidebar.

### [`SidebarMenu`](/v3/reference/api/vue/SidebarMenu.md)

A list of sidebar menu items.

### [`SidebarMenuAction`](/v3/reference/api/vue/SidebarMenuAction.md)

A contextual action button shown alongside a sidebar menu button.

### [`SidebarMenuBadge`](/v3/reference/api/vue/SidebarMenuBadge.md)

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`](/v3/reference/api/vue/SidebarMenuButton.md)

A sidebar menu button that shows a tooltip when the sidebar is collapsed.

### [`SidebarMenuButtonChild`](/v3/reference/api/vue/SidebarMenuButtonChild.md)

Internal primitive element for SidebarMenuButton.

### [`SidebarMenuItem`](/v3/reference/api/vue/SidebarMenuItem.md)

A single item within a sidebar menu list.

### [`SidebarMenuSkeleton`](/v3/reference/api/vue/SidebarMenuSkeleton.md)

A skeleton placeholder for a sidebar menu item while content is loading.

### [`SidebarMenuSub`](/v3/reference/api/vue/SidebarMenuSub.md)

A nested sub-menu list inside a sidebar menu item.

### [`SidebarMenuSubButton`](/v3/reference/api/vue/SidebarMenuSubButton.md)

An interactive button inside a sidebar sub-menu.

### [`SidebarMenuSubItem`](/v3/reference/api/vue/SidebarMenuSubItem.md)

A single item within a sidebar sub-menu list.

### [`SidebarProvider`](/v3/reference/api/vue/SidebarProvider.md)

Provider component that manages sidebar state and provides context to all child sidebar components.

### [`SidebarRail`](/v3/reference/api/vue/SidebarRail.md)

A thin interactive rail on the sidebar edge that can be clicked to toggle the sidebar.

### [`SidebarSeparator`](/v3/reference/api/vue/SidebarSeparator.md)

A visual separator between sections of the sidebar.

### [`SidebarTrigger`](/v3/reference/api/vue/SidebarTrigger.md)

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`](/v3/reference/api/vue/SidebarUserBlock.md)

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

### [`ColumnBoolean`](/v3/reference/api/vue/ColumnBoolean.md)

Boolean list column adapter. Wraps {@link BooleanDisplay}, binding the cell's raw
`value` and forwarding the labels resolved from `columnMappings` (per field type) and
any `columnProps` override, so a list cell says "Yes" where the read view says "Yes".

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 BooleanDisplay root.
BooleanDisplay renders a dash for an empty value.

### [`ColumnDateTime`](/v3/reference/api/vue/ColumnDateTime.md)

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.

### [`ColumnDuration`](/v3/reference/api/vue/ColumnDuration.md)

Duration list column adapter. Wraps {@link DurationDisplay}, binding the cell's raw
`value` and forwarding the display options resolved from `columnMappings` (per field
type) and any `columnProps` override, so a list cell words a duration the way the read
view does.

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 DurationDisplay root.
DurationDisplay renders a dash for an empty value.

### [`ColumnFile`](/v3/reference/api/vue/ColumnFile.md)

File and image list column adapter. Wraps {@link FileDisplay} in its inline form, binding
the cell's raw `value`, so a cell shows a link labelled with the file name where the
{@link ColumnText} fallback printed the `{ name, url }` object as `JSON`.

The cell holds its own link, so `ViewList` does not wrap this adapter in the record's
detail link.

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 FileDisplay root.

### [`ColumnJson`](/v3/reference/api/vue/ColumnJson.md)

`JSON` list column adapter. Wraps {@link JsonDisplay} in its inline form, binding the
cell's raw `value` and forwarding the options resolved from `columnMappings` (per field
type) and any `columnProps` override.

A cell has one line to work with, so this renders compact `JSON` and truncates past
`maxLength`, while the read view indents the same value through
{@link WidgetJsonReadOnly}. That is a layout difference, not a wording one: both print
the same `JSON` and give a null value the same dash.

This replaces the {@link ColumnText} fallback that previously handled these cells. The
visible changes are the mono stack, the dash for a null, and `value` rather than
`formatted` as the source, so a cell reflects the stored payload rather than the grid's
pre-formatted copy of it.

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 JsonDisplay root.

### [`ColumnModelLink`](/v3/reference/api/vue/ColumnModelLink.md)

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`](/v3/reference/api/vue/ColumnText.md)

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`](/v3/reference/api/vue/ObjectsGrid.md)

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`](/v3/reference/api/vue/ObjectsGridBodyCell.md)

Renders a single data cell in the table-layout view of ObjectsGrid, exposing field value and metadata through the `value` slot.

### [`ObjectsGridBodyCellSkeleton`](/v3/reference/api/vue/ObjectsGridBodyCellSkeleton.md)

Renders a single table-layout body cell skeleton placeholder while
ObjectsGrid data is loading. Sizes the skeleton based on the field
definition.

### [`ObjectsGridCardCell`](/v3/reference/api/vue/ObjectsGridCardCell.md)

Renders a single field as a label/value pair in the card-layout view of ObjectsGrid.

### [`ObjectsGridCardCellSkeleton`](/v3/reference/api/vue/ObjectsGridCardCellSkeleton.md)

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`](/v3/reference/api/vue/ObjectsGridTableHeader.md)

Renders a column header cell in the table-layout view of ObjectsGrid, showing the field label.

## Shell

### [`Accordion`](/v3/reference/api/vue/Accordion.md)

Root accordion component built on Reka UI's AccordionRoot.

### [`AccordionContent`](/v3/reference/api/vue/AccordionContent.md)

The collapsible content area of an AccordionItem.

### [`AccordionItem`](/v3/reference/api/vue/AccordionItem.md)

An individual item in an Accordion component.

### [`AccordionTrigger`](/v3/reference/api/vue/AccordionTrigger.md)

The trigger button for an AccordionItem, wrapped in an AccordionHeader.

### [`AlertDialog`](/v3/reference/api/vue/AlertDialog.md)

Root alert dialog component built on Reka UI's AlertDialogRoot.

### [`AlertDialogAction`](/v3/reference/api/vue/AlertDialogAction.md)

The action button inside an AlertDialog, rendered through Button while preserving AlertDialog action behavior.

### [`AlertDialogCancel`](/v3/reference/api/vue/AlertDialogCancel.md)

The cancel button inside an AlertDialog, rendered through Button while preserving AlertDialog cancel behavior.

### [`AlertDialogContent`](/v3/reference/api/vue/AlertDialogContent.md)

The content panel of an AlertDialog, rendered in a portal with an overlay.

### [`AlertDialogDescription`](/v3/reference/api/vue/AlertDialogDescription.md)

The description text inside an AlertDialog.

### [`AlertDialogFooter`](/v3/reference/api/vue/AlertDialogFooter.md)

The footer area of an AlertDialog, used to arrange action and cancel buttons.

### [`AlertDialogHeader`](/v3/reference/api/vue/AlertDialogHeader.md)

The header area of an AlertDialog, used to arrange the title and description.

### [`AlertDialogTitle`](/v3/reference/api/vue/AlertDialogTitle.md)

The title inside an AlertDialog.

### [`AlertDialogTrigger`](/v3/reference/api/vue/AlertDialogTrigger.md)

The trigger button that opens an AlertDialog.

### [`Card`](/v3/reference/api/vue/Card.md)

A card container with a border, background, and shadow.

### [`CardAction`](/v3/reference/api/vue/CardAction.md)

An action slot positioned in the trailing column of a CardHeader grid.

### [`CardContent`](/v3/reference/api/vue/CardContent.md)

The main content area of a Card component.

### [`CardDescription`](/v3/reference/api/vue/CardDescription.md)

A muted description paragraph inside a CardHeader.

### [`CardFooter`](/v3/reference/api/vue/CardFooter.md)

The footer section of a Card component.

### [`CardHeader`](/v3/reference/api/vue/CardHeader.md)

The header section of a Card component.

### [`CardTitle`](/v3/reference/api/vue/CardTitle.md)

The title heading inside a CardHeader.

### [`Collapsible`](/v3/reference/api/vue/Collapsible.md)

Root collapsible component built on Reka UI's CollapsibleRoot.

### [`CollapsibleContent`](/v3/reference/api/vue/CollapsibleContent.md)

The content area that is shown or hidden by a Collapsible.

### [`CollapsibleTrigger`](/v3/reference/api/vue/CollapsibleTrigger.md)

The trigger button that toggles a Collapsible open or closed.

### [`Dialog`](/v3/reference/api/vue/Dialog.md)

Root dialog component built on Reka UI's DialogRoot.

### [`DialogClose`](/v3/reference/api/vue/DialogClose.md)

A button that closes the Dialog when clicked.

### [`DialogContent`](/v3/reference/api/vue/DialogContent.md)

The content panel of a Dialog, rendered in a portal with an overlay and optional close button.

### [`DialogDescription`](/v3/reference/api/vue/DialogDescription.md)

The description text inside a Dialog.

### [`DialogFooter`](/v3/reference/api/vue/DialogFooter.md)

The footer area of a Dialog, used to arrange action buttons and an optional close button.

### [`DialogHeader`](/v3/reference/api/vue/DialogHeader.md)

The header area of a Dialog, used to arrange the title and description.

### [`DialogOverlay`](/v3/reference/api/vue/DialogOverlay.md)

The overlay backdrop behind a Dialog.

### [`DialogScrollContent`](/v3/reference/api/vue/DialogScrollContent.md)

A scrollable Dialog content panel that renders in a portal with a scrollable overlay.

### [`DialogTitle`](/v3/reference/api/vue/DialogTitle.md)

The title inside a Dialog.

### [`DialogTrigger`](/v3/reference/api/vue/DialogTrigger.md)

The trigger button that opens a Dialog.

### [`Drawer`](/v3/reference/api/vue/Drawer.md)

Root Drawer component, a mobile-friendly dialog variant that slides in from an edge and supports drag-to-dismiss.

### [`DrawerClose`](/v3/reference/api/vue/DrawerClose.md)

A button that closes the Drawer when clicked.

### [`DrawerContent`](/v3/reference/api/vue/DrawerContent.md)

The content panel of a Drawer, rendered in a portal and sliding in from a chosen direction.

### [`DrawerDescription`](/v3/reference/api/vue/DrawerDescription.md)

A description rendered inside a Drawer to provide context to screen readers.

### [`DrawerFooter`](/v3/reference/api/vue/DrawerFooter.md)

Footer section of a Drawer, typically containing action buttons.

### [`DrawerHeader`](/v3/reference/api/vue/DrawerHeader.md)

Header section of a Drawer, typically containing the title and description.

### [`DrawerOverlay`](/v3/reference/api/vue/DrawerOverlay.md)

The overlay backdrop rendered behind the drawer content.

### [`DrawerTitle`](/v3/reference/api/vue/DrawerTitle.md)

The title of a Drawer, readable by assistive technology.

### [`DrawerTrigger`](/v3/reference/api/vue/DrawerTrigger.md)

A button that opens the Drawer when activated.

### [`Field`](/v3/reference/api/vue/Field.md)

A form field layout container that groups a label, control, and supporting text
with configurable vertical, horizontal, or responsive orientation.

### [`FieldContent`](/v3/reference/api/vue/FieldContent.md)

A flex column container that groups related controls within a field,
adding consistent spacing between the control and its supporting text.

### [`FieldDescription`](/v3/reference/api/vue/FieldDescription.md)

A paragraph that provides supplementary context for a field,
styled with muted text and link decorations.

### [`FieldGroup`](/v3/reference/api/vue/FieldGroup.md)

A vertical stack container for grouping multiple Field instances,
with consistent spacing and container-query support for responsive layouts.

### [`FieldLabel`](/v3/reference/api/vue/FieldLabel.md)

A field label built on Label that optionally wraps an inline control,
applying checked-state highlights when paired with a checkbox or radio.

### [`FieldLegend`](/v3/reference/api/vue/FieldLegend.md)

A fieldset legend styled as either a section heading or a field label,
controlled by the variant prop.

### [`FieldMessage`](/v3/reference/api/vue/FieldMessage.md)

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`](/v3/reference/api/vue/FieldSeparator.md)

A horizontal rule that visually divides sections within a field group,
optionally displaying a centered text label over the line.

### [`FieldSet`](/v3/reference/api/vue/FieldSet.md)

A semantic fieldset that groups related form controls with consistent vertical spacing,
adjusting gap for checkbox and radio groups automatically.

### [`FieldTitle`](/v3/reference/api/vue/FieldTitle.md)

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`](/v3/reference/api/vue/HoverCard.md)

Root hover card component built on Reka UI's HoverCardRoot.

### [`HoverCardContent`](/v3/reference/api/vue/HoverCardContent.md)

The content panel of a HoverCard, rendered in a portal.

### [`HoverCardTrigger`](/v3/reference/api/vue/HoverCardTrigger.md)

The trigger element that opens a HoverCard on hover.

### [`Item`](/v3/reference/api/vue/Item.md)

A flexible list item container that supports visual variants and sizes.
Renders via the Reka UI Primitive for polymorphic element support.

### [`ItemActions`](/v3/reference/api/vue/ItemActions.md)

A row of action controls (e.g. buttons) aligned at the end of a Item.

### [`ItemContent`](/v3/reference/api/vue/ItemContent.md)

The primary content area of a Item, arranged vertically with a flex column layout.

### [`ItemDescription`](/v3/reference/api/vue/ItemDescription.md)

A supporting description paragraph inside a Item, styled with muted text and line clamping.

### [`ItemFooter`](/v3/reference/api/vue/ItemFooter.md)

A footer row at the bottom of a Item that distributes content between its start and end.

### [`ItemGroup`](/v3/reference/api/vue/ItemGroup.md)

A vertical list container for grouping multiple Item components.

### [`ItemHeader`](/v3/reference/api/vue/ItemHeader.md)

A header row at the top of a Item that distributes content between its start and end.

### [`ItemMedia`](/v3/reference/api/vue/ItemMedia.md)

A media slot inside a Item for icons or images, with variant-based sizing and styling.

### [`ItemSeparator`](/v3/reference/api/vue/ItemSeparator.md)

A horizontal separator rule used to divide sections within a Item or ItemGroup.

### [`ItemTitle`](/v3/reference/api/vue/ItemTitle.md)

A title element inside a Item, rendered as an inline-flex row with icon support.

### [`Label`](/v3/reference/api/vue/Label.md)

A label component built on Reka UI's Label with consistent form label styling.

### [`PageActions`](/v3/reference/api/vue/PageActions.md)

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`](/v3/reference/api/vue/PageTitle.md)

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`](/v3/reference/api/vue/Popover.md)

Root popover component built on Reka UI's PopoverRoot.

### [`PopoverAnchor`](/v3/reference/api/vue/PopoverAnchor.md)

An anchor element for positioning a Popover relative to a reference element.

### [`PopoverContent`](/v3/reference/api/vue/PopoverContent.md)

The floating content panel of a popover, rendered inside a portal.
Positioned relative to the trigger or anchor element.

### [`PopoverTrigger`](/v3/reference/api/vue/PopoverTrigger.md)

The trigger button that opens a Popover.

### [`ResizableHandle`](/v3/reference/api/vue/ResizableHandle.md)

A drag handle for resizing panels in a ResizablePanelGroup.

### [`ResizablePanel`](/v3/reference/api/vue/ResizablePanel.md)

A resizable panel managed by a ResizablePanelGroup.

### [`ResizablePanelGroup`](/v3/reference/api/vue/ResizablePanelGroup.md)

A container that manages a group of resizable panels.

### [`ScrollArea`](/v3/reference/api/vue/ScrollArea.md)

A scroll area component built on Reka UI's ScrollAreaRoot with a custom scrollbar.

### [`ScrollBar`](/v3/reference/api/vue/ScrollBar.md)

The scrollbar track and thumb for a ScrollArea.

### [`Separator`](/v3/reference/api/vue/Separator.md)

A visual separator between content sections, built on Reka UI's Separator.

### [`Sheet`](/v3/reference/api/vue/Sheet.md)

Root Sheet component, a dialog variant that slides in from a side of the screen.

### [`SheetClose`](/v3/reference/api/vue/SheetClose.md)

A button that closes the Sheet when clicked.

### [`SheetContent`](/v3/reference/api/vue/SheetContent.md)

The content panel of a Sheet, rendered in a portal and sliding in from a chosen side.

### [`SheetDescription`](/v3/reference/api/vue/SheetDescription.md)

A description rendered inside a Sheet to provide context to screen readers.

### [`SheetFooter`](/v3/reference/api/vue/SheetFooter.md)

Footer section of a Sheet, typically containing action buttons.

### [`SheetHeader`](/v3/reference/api/vue/SheetHeader.md)

Header section of a Sheet, typically containing the title and description.

### [`SheetOverlay`](/v3/reference/api/vue/SheetOverlay.md)

The overlay backdrop rendered behind the sheet content.

### [`SheetTitle`](/v3/reference/api/vue/SheetTitle.md)

The title of a Sheet, readable by assistive technology.

### [`SheetTrigger`](/v3/reference/api/vue/SheetTrigger.md)

A button that opens the Sheet when activated.

### [`Stepper`](/v3/reference/api/vue/Stepper.md)

Root stepper component built on Reka UI's StepperRoot.

### [`StepperDescription`](/v3/reference/api/vue/StepperDescription.md)

The description text for a StepperItem.

### [`StepperIndicator`](/v3/reference/api/vue/StepperIndicator.md)

The visual indicator (icon or number) inside a StepperItem.

### [`StepperItem`](/v3/reference/api/vue/StepperItem.md)

An individual step item within a Stepper.

### [`StepperSeparator`](/v3/reference/api/vue/StepperSeparator.md)

A visual separator between StepperItems.

### [`StepperTitle`](/v3/reference/api/vue/StepperTitle.md)

The title text for a StepperItem.

### [`StepperTrigger`](/v3/reference/api/vue/StepperTrigger.md)

The clickable trigger area for a StepperItem.

### [`StickyBar`](/v3/reference/api/vue/StickyBar.md)

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 `scrollRoot` when it lives inside a scrollable region) and drives its own
  hide/reveal via `useScrollReveal`. The `reveal` strategy is selectable;
  `scroll-up-or-idle` is the default (and original) behavior.
- **Zone-managed (`zone` set).** The bar teleports its surface into a
  `StickyStackProvider` zone (via `StickyChrome`) 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`](/v3/reference/api/vue/StickyChrome.md)

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`](/v3/reference/api/vue/StickyStackProvider.md)

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`](/v3/reference/api/vue/Tabs.md)

Root tabs component built on Reka UI's TabsRoot.

### [`TabsContent`](/v3/reference/api/vue/TabsContent.md)

The content panel for a single tab in a Tabs component.

### [`TabsList`](/v3/reference/api/vue/TabsList.md)

The list of tab triggers in a Tabs component.

### [`TabsTrigger`](/v3/reference/api/vue/TabsTrigger.md)

A tab trigger button that activates its associated TabsContent.

### [`Tooltip`](/v3/reference/api/vue/Tooltip.md)

Root tooltip component built on Reka UI's TooltipRoot.

### [`TooltipContent`](/v3/reference/api/vue/TooltipContent.md)

The content panel of a Tooltip, rendered in a portal with an arrow.

### [`TooltipProvider`](/v3/reference/api/vue/TooltipProvider.md)

Provides tooltip configuration context to all descendant Tooltip components.

### [`TooltipTrigger`](/v3/reference/api/vue/TooltipTrigger.md)

The trigger element that shows a Tooltip on hover or focus.

## Support

### [`EmptyComponent`](/v3/reference/api/vue/EmptyComponent.md)

### [`LazyRender`](/v3/reference/api/vue/LazyRender.md)

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.
