Skip to main content
Version: 1.0.3

List View

A fully-featured list/table view designed for content libraries, admin panels, and resource browsers. Ships with debounced search, multi-group checkbox filters, sort dropdown, pagination or infinite scroll, light/dark theming, row selection, and three built-in modals (View, Edit, Delete) — all controllable from the outside or driven by sensible defaults. Drop-in replacement for hand-rolled tables, with zero dependencies on host UI primitives beyond Button, Input, Badge, and Avatar.

Library

Components

15 items

  • Button Component v2.4

    Refined button component with new size variants, loading state, and improved focus ring. Adds support for icon-only buttons and better accessibility for screen readers.

    PublishedApr 18, 2026Components
    UIFormAccessibility
    AM
    Aarav Mehta
  • Data Table Pagination Pattern

    Reusable pagination primitive for the data table family. Supports cursor-based and offset-based modes, configurable page sizes, and a compact mobile layout.

    In ReviewApr 16, 2026Patterns
    DataNavigation
    LP
    Lena Park
  • Dialog & Modal Guidelines

    Updated guidance on when to use dialogs versus drawers and inline panels. Includes focus management rules, escape behavior, and stacking conventions.

    PublishedApr 14, 2026Guidelines
    OverlayUX
    KW
    Kenji Watanabe
  • Color System Tokens

    Refresh of the semantic color tokens for surface, content, and border roles. Adds three new accent ramps and a curated dark theme variant.

    DraftApr 12, 2026Foundations
    ThemingTokens
    IB
    Imani Brooks
  • Toast Notification API

    Imperative toast API with stacking, swipe-to-dismiss on touch devices, and pause-on-hover. Includes promise helper for async flows.

    PublishedApr 10, 2026Components
    FeedbackAsync
    SR
    Sofia Romero

Showing 15 of 15

Installation

ignix add component list-view-page

Props

ListView Props

PropTypeDefaultDescription
itemsListItem[]RequiredItems to render for the current page.
totalCountnumberitems.lengthTotal items across all pages (drives the footer + pagination math).
loadingbooleanfalseRenders a skeleton state while fetching.
errorstring | nullnullRenders the error state with this message instead of the list.
theme"light" | "dark"-Applies a dark class wrapper. Uncontrolled when omitted.
mode"pagination" | "infinite-scroll""pagination"Switches between paginated footer and infinite-scroll sentinel.
querystring""Controlled search query.
onQueryChange(q: string) => void-Debounced search callback.
sortSortState-Controlled sort state.
onSortChange(sort: SortState) => void-Fires when the user picks a sort key or flips direction.
sortOptionsSortOption[][]Options shown in the Sort dropdown.
filtersFiltersState{}Controlled filter selections (group id → selected values).
onFiltersChange(filters: FiltersState) => void-Fires when filter checkboxes change.
filterGroupsFilterGroup[][]Filter sections to render in the filter dropdown.
pagenumber1Controlled current page (1-indexed).
onPageChange(page: number) => void-Fires when the user clicks a page number or arrow.
pageSizenumber10Page size used for pagination math (server slice or client slice).
onLoadMore() => void-Fires when the infinite-scroll sentinel scrolls into view.
selectedIdstring | null-Controlled selected row id.
onSelectedIdChange(id: string | null) => void-Fires when the user clicks a row.
onView(item: ListItem) => void | Promise<void>-Enables the View action. Opens the built-in View dialog.
onEdit(item: ListItem) => void | Promise<void>-Enables the Edit action. Called with the updated item from the built-in Edit dialog's Save.
onDelete(item: ListItem) => void | Promise<void>-Enables the Delete action. Confirmed via built-in Delete dialog.
statusStylesRecord<string, StatusStyle>{}Map status string → Tailwind classes for the status badge.
labelsListViewLabels{}Override any user-facing string.
classNamestring-Additional CSS classes for the root container.

ListItem fields

FieldTypeDescription
idstringUnique row id. Used for selection and React keys.
titlestringRow heading.
descriptionstringOptional secondary line below the title.
statusstringStatus key — looked up in statusStyles.
categorystringOptional category label.
tagsstring[]Tag chips rendered as pulsing badges.
datestringPre-formatted date string, rendered as-is.
authorListItemAuthor{ name, initials }.
metaRecord<string, unknown>Arbitrary payload available in callbacks.

StatusStyle Props

PropTypeDescription
classNamestringTailwind classes for the badge background, text, and ring.
dotClassNamestringTailwind class for the small leading dot.

ListViewLabels Props

PropTypeDefaultDescription
titlestring'Items'Heading shown in the header.
subtitlestring''Small label above the title.
searchPlaceholderstring'Search…'Placeholder for the search input.
emptyTitlestring'No items match your filters'Title for the empty state.
emptyDescriptionstring'Try clearing filters or adjusting your search.'Body for the empty state.
errorTitlestring"Couldn't load items"Title for the error state.
errorDescriptionstring'Something went wrong. Please try again.'Body for the error state.
deleteTitlestring'Delete this item?'Title shown in the delete confirmation.
deleteDescriptionstring'You\'re about to delete "{title}". …'Body in delete confirmation. {title} is interpolated.
deleteConfirmTextstring'Delete'Delete button text.
editConfirmTextstring'Edit'Edit button text.
updateTextstring'Update'Update button text.