ListItem

A versatile list item component with leading and trailing content slots, link and click support, selection highlighting, loading skeleton, and configurable dividers. Pairs with the List wrapper for automatic divider management.

Import

import { ListItem, List } from '@wavebooking/aqua-fusion';

Preview

Loading preview...

Usage

<List divider="full">
  <ListItem
    title="Beginner Surf Lesson"
    description="Bondi Beach - 9:00 AM"
    leading={<Avatar src="/instructor.jpg" />}
    trailing={<Badge variant="success">Active</Badge>}
    href="/lessons/123"
    showChevron
  />
  <ListItem
    title="Advanced Techniques"
    description="Manly Beach - 2:00 PM"
    leading={<Avatar src="/instructor2.jpg" />}
    trailing={<Badge variant="default">Draft</Badge>}
    onClick={() => openLesson('456')}
  />
</List>

ListItem Props

PropTypeDefaultDescription
title*ReactNode-Primary content or title text.
descriptionReactNode-Secondary content or description text.
leadingReactNode-Left-side content such as an icon, avatar, or checkbox.
trailingReactNode-Right-side content such as a badge, action button, or metadata.
onClick() => void-Click handler. Makes the item interactive.
hrefstring-Link URL. Makes the entire item a clickable Next.js Link.
showChevronbooleanfalseWhether to show a chevron-right icon at the end.
selectedbooleanfalseWhether the item is in a selected state.
disabledbooleanfalseWhether the item is disabled.
loadingbooleanfalseWhether to show a skeleton loading placeholder.
divider'none' | 'full' | 'inset''none'Divider style between items.
size'sm' | 'md' | 'lg''md'Size variant controlling padding and text sizes.
classNamestring-Additional CSS classes.

List Props

PropertyTypeDefaultDescription
childrenReactNode--List items to render.
divider'none' | 'full' | 'inset''none'Divider style applied between items.
classNamestring--Additional CSS classes.