Skip to content

ViewList

Source: client/lib/theme/vueda-tailwind/views/index.js

Class forwarded to the selected_ checkbox column on the embedded ObjectsGrid. Collapses the column to w-0 at the lg+ table breakpoint so card layouts keep room for the selection toggle while the table layout absorbs it into the row chrome. The breakpoint is hard-coded rather than derived from the tableBreakpoint prop because Tailwind purges classes it cannot see at build time; keep this aligned with the prop default.

Vue component: ViewList

SlotDefault classesDescription
selectedCheckboxlg:w-0Class forwarded to the selected_ checkbox column on the embedded ObjectsGrid. Collapses the column to w-0 at the lg+ table breakpoint so card layouts keep room for the selection toggle while the table layout absorbs it into the row chrome. The breakpoint is hard-coded rather than derived from the tableBreakpoint prop because Tailwind purges classes it cannot see at build time; keep this aligned with the prop default.
searchInputlg:max-w-[30ch]Class forwarded to the InputGroupInput inside the search slot. Caps the input at 30ch on lg+ so the search field does not consume the entire control bar on wide viewports.
bulkActionButtongrow sm:grow-0Per-button class applied to bulk-action LinkModelView entries inside the bulk-actions strip. grow on narrow viewports lets each button claim its share of the row width; sm:grow-0 reverts to natural width once the row can hold the buttons inline.
targetlessActionButtonPer-button class applied to targetless-action entries rendered in the PageTitle.buttons cluster. Empty by default; the buttons inherit the PageTitle cluster layout and only need an override when a consumer wants action-specific chrome.
filterControlsflex items-center gap-2Left cluster of the under-actions bar: the add-filter trigger (teleported in from FilterGroup) and the mobile sort affordance, opposite the right-aligned ViewList.listControlBar.
filterTriggerZonecontentsTeleport landing zone for the FilterGroup add-filter trigger. contents so the teleported trigger participates directly in the ViewList.filterControls flex row rather than nesting in an extra box.
objectsGridw-full rounded-none !shadow-noneClass forwarded to the embedded ObjectsGrid.root. Suppresses the grid's own card edge and radius so the ViewList strips above and below own the visible chrome; the grid renders as a flush slab between the filter strip and the pagination strip. The edge is the hairline inset box-shadow, not a border, so it takes !shadow-none: a plain shadow-none and hairline are both single-class utilities, and stylesheet order, not array order, would pick the winner.
underActionsBar2 classesStrip beneath the title row that holds the search input and the column-hiding select. Card-toned with a bottom hairline; shares the page-chrome rhythm with the title row above and the NavigationPaginationBar below, so the chrome reads as a matched frame around the grid.
bulkActionsBar2 classesBulk-actions strip that surfaces once one or more rows are selected. 6 %-mix primary fill and 12 px / 500 type so it reads as an active selection band, not a passive section. Sits in the sticky-stack bottom zone just above the PaginationFooter; the top hairline separates it from the grid above, mirroring the pagination strip's rhythm so the chrome below the grid reads as a matched pair.
selectionCountflex items-center gap-2Selection read-out at the leading edge of the bulk-actions strip ("✓ N selected"). Inline flex row that holds the check glyph, the count, and the trailing word; sits before ViewList.actionButtonGroupBar so the count anchors the band.
selectionCountIcontext-primaryCheck glyph leading the selection read-out. Tinted --primary so the confirm mark carries the accent while the surrounding count text stays in the strip's --foreground tone.
selectionCountValuefont-semibold tabular-numsThe numeric count inside the selection read-out. font-semibold lifts it one weight above the strip's 500 body so the figure reads first; tabular-nums keeps its width stable as the selection grows.
actionButtonGroupBarflex flex-wrap gap-1 2xl:gap-2 w-full sm:w-fit sm:max-w-maxButton cluster inside the bulk-actions strip. Wraps so a large action menu folds across rows rather than overflowing the strip; sm:w-fit sm:max-w-max snaps the cluster to its content width once the viewport can hold all buttons inline.
listControlBarflex flex-row gap-1 2xl:gap-2 ml-autoRight-aligned control cluster inside ViewList.underActionsBar (search input + columns select). ml-auto pushes the cluster to the end of the strip so the title row above and this row align on the right.
columnTotalCellborder-t-2Cell class for the column-totals row appended below the body rows when any column declares a total. The 2 px top border separates the totals row from the data rows above it; the cell otherwise inherits ObjectsGridBodyCell chrome.

selectedCheckbox

Class forwarded to the selected_ checkbox column on the embedded ObjectsGrid. Collapses the column to w-0 at the lg+ table breakpoint so card layouts keep room for the selection toggle while the table layout absorbs it into the row chrome. The breakpoint is hard-coded rather than derived from the tableBreakpoint prop because Tailwind purges classes it cannot see at build time; keep this aligned with the prop default.

Default classes:

lg:w-0

Source: client/lib/theme/vueda-tailwind/views/ViewList.theme.js:17

searchInput

Class forwarded to the InputGroupInput inside the search slot. Caps the input at 30ch on lg+ so the search field does not consume the entire control bar on wide viewports.

Default classes:

lg:max-w-[30ch]

Source: client/lib/theme/vueda-tailwind/views/ViewList.theme.js:21

bulkActionButton

Per-button class applied to bulk-action LinkModelView entries inside the bulk-actions strip. grow on narrow viewports lets each button claim its share of the row width; sm:grow-0 reverts to natural width once the row can hold the buttons inline.

Default classes:

grow sm:grow-0

Source: client/lib/theme/vueda-tailwind/views/ViewList.theme.js:25

targetlessActionButton

Per-button class applied to targetless-action entries rendered in the PageTitle.buttons cluster. Empty by default; the buttons inherit the PageTitle cluster layout and only need an override when a consumer wants action-specific chrome.

Source: client/lib/theme/vueda-tailwind/views/ViewList.theme.js:29

filterControls

Left cluster of the under-actions bar: the add-filter trigger (teleported in from FilterGroup) and the mobile sort affordance, opposite the right-aligned ViewList.listControlBar.

Default classes:

flex items-center gap-2

Source: client/lib/theme/vueda-tailwind/views/ViewList.theme.js:33

filterTriggerZone

Teleport landing zone for the FilterGroup add-filter trigger. contents so the teleported trigger participates directly in the ViewList.filterControls flex row rather than nesting in an extra box.

Default classes:

contents

Source: client/lib/theme/vueda-tailwind/views/ViewList.theme.js:37

objectsGrid

Class forwarded to the embedded ObjectsGrid.root. Suppresses the grid's own card edge and radius so the ViewList strips above and below own the visible chrome; the grid renders as a flush slab between the filter strip and the pagination strip. The edge is the hairline inset box-shadow, not a border, so it takes !shadow-none: a plain shadow-none and hairline are both single-class utilities, and stylesheet order, not array order, would pick the winner.

Default classes:

w-full rounded-none !shadow-none

Source: client/lib/theme/vueda-tailwind/views/ViewList.theme.js:41

underActionsBar

Strip beneath the title row that holds the search input and the column-hiding select. Card-toned with a bottom hairline; shares the page-chrome rhythm with the title row above and the NavigationPaginationBar below, so the chrome reads as a matched frame around the grid.

Default classes:

text
w-full flex items-center flex-wrap gap-3 px-5 py-3
border-b-hairline bg-card text-foreground

Source: client/lib/theme/vueda-tailwind/views/ViewList.theme.js:45

bulkActionsBar

Bulk-actions strip that surfaces once one or more rows are selected. 6 %-mix primary fill and 12 px / 500 type so it reads as an active selection band, not a passive section. Sits in the sticky-stack bottom zone just above the PaginationFooter; the top hairline separates it from the grid above, mirroring the pagination strip's rhythm so the chrome below the grid reads as a matched pair.

Default classes:

text
w-full flex items-center flex-wrap gap-[10px] px-5 py-[10px]
border-t-hairline bg-primary/[0.06] text-foreground text-[12px] font-medium

Source: client/lib/theme/vueda-tailwind/views/ViewList.theme.js:49

selectionCount

Selection read-out at the leading edge of the bulk-actions strip ("✓ N selected"). Inline flex row that holds the check glyph, the count, and the trailing word; sits before ViewList.actionButtonGroupBar so the count anchors the band.

Default classes:

flex items-center gap-2

Source: client/lib/theme/vueda-tailwind/views/ViewList.theme.js:56

selectionCountIcon

Check glyph leading the selection read-out. Tinted --primary so the confirm mark carries the accent while the surrounding count text stays in the strip's --foreground tone.

Default classes:

text-primary

Source: client/lib/theme/vueda-tailwind/views/ViewList.theme.js:60

selectionCountValue

The numeric count inside the selection read-out. font-semibold lifts it one weight above the strip's 500 body so the figure reads first; tabular-nums keeps its width stable as the selection grows.

Default classes:

font-semibold tabular-nums

Source: client/lib/theme/vueda-tailwind/views/ViewList.theme.js:64

actionButtonGroupBar

Button cluster inside the bulk-actions strip. Wraps so a large action menu folds across rows rather than overflowing the strip; sm:w-fit sm:max-w-max snaps the cluster to its content width once the viewport can hold all buttons inline.

Default classes:

flex flex-wrap gap-1 2xl:gap-2 w-full sm:w-fit sm:max-w-max

Source: client/lib/theme/vueda-tailwind/views/ViewList.theme.js:68

listControlBar

Right-aligned control cluster inside ViewList.underActionsBar (search input + columns select). ml-auto pushes the cluster to the end of the strip so the title row above and this row align on the right.

Default classes:

flex flex-row gap-1 2xl:gap-2 ml-auto

Source: client/lib/theme/vueda-tailwind/views/ViewList.theme.js:72

columnTotalCell

Cell class for the column-totals row appended below the body rows when any column declares a total. The 2 px top border separates the totals row from the data rows above it; the cell otherwise inherits ObjectsGridBodyCell chrome.

Default classes:

border-t-2

Source: client/lib/theme/vueda-tailwind/views/ViewList.theme.js:76

Documents matching: server v3.0.0a1.post1client v3.0.0-alpha.2