import React from 'react';
import { U as UI } from './ui-40a4a170.js';
/**
* Props for the List component.
*
* Combines native HTML list element props with custom styling and accessibility features.
* The List component provides a flexible, type-safe way to create ordered, unordered,
* and definition lists with built-in accessibility support and customizable styling.
*
* @example
* ```tsx
* // Unordered list (default)
*
* Item 1
* Item 2
*
* ```
*
* @example
* ```tsx
* // Ordered list with custom styling
*
* First step
* Second step
*
* ```
*
* @example
* ```tsx
* // Definition list
*
* Term
* Definition
*
* ```
*/
type ListProps = {
/**
* Type of list element to render.
*
* - `'ul'` - Unordered list (default) - Use for items where order doesn't matter
* - `'ol'` - Ordered list - Use for sequential steps or ranked items
* - `'dl'` - Definition list - Use for term-definition pairs
*
* @default 'ul'
* @example
* ```tsx
* type="ol" // Renders an ordered list with numbers
* type="dl" // Renders a definition list
* ```
*/
type?: "ul" | "ol" | "dl";
/**
* Variant for custom styling through CSS.
* Applied as `data-variant` attribute for CSS targeting.
*
* Common variants might include:
* - `'inline'` - Display items horizontally
* - `'none'` - Remove list markers
* - `'custom'` - Custom marker styling
*
* @optional
* @example
* ```tsx
* variant="inline" // Horizontal list for navigation
* variant="none" // Clean list without bullets
* ```
*/
variant?: string;
/**
* ARIA role override.
*
* Note: Only override the default role when necessary for accessibility.
* Native list elements have semantic meaning that should be preserved.
*
* Use `role="list"` when CSS `list-style: none` is applied, as some screen
* readers remove list semantics when list styling is removed.
*
* @optional
* @see {@link https://www.scottohara.me/blog/2019/01/12/lists-and-safari.html}
* @example
* ```tsx
* // Restore list semantics when using list-style: none
*
* Navigation item
*
* ```
*/
role?: string;
/**
* Inline CSS styles to apply to the list element.
* Can include CSS custom properties for theming.
*
* @optional
* @example
* ```tsx
* styles={{
* '--list-gap': '1rem',
* '--list-marker-color': '#0066cc'
* }}
* ```
*/
styles?: React.CSSProperties;
/**
* CSS class names to apply to the list element.
*
* @optional
* @example
* ```tsx
* classes="navigation-list"
* ```
*/
classes?: string;
/**
* HTML id attribute for the list element.
*
* @optional
* @example
* ```tsx
* id="main-navigation"
* ```
*/
id?: string;
/**
* Accessible label for screen readers.
*
* Use when the list's purpose isn't clear from context or when
* multiple lists exist on the page.
*
* @optional
* @example
* ```tsx
* aria-label="Product features"
* aria-labelledby="features-heading"
* ```
*/
"aria-label"?: string;
"aria-labelledby"?: string;
/**
* Child elements (typically ListItem components).
*
* @required
* @example
* ```tsx
*
* Item 1
* Item 2
*
* ```
*/
children: React.ReactNode;
} & Partial>;
/**
* Props for the ListItem component.
*
* Provides a flexible list item that can render as different HTML elements
* depending on the parent list type (li, dt, dd).
*
* @example
* ```tsx
* // Standard list item (li) - default
* Regular item
* ```
*
* @example
* ```tsx
* // Definition term (dt)
* Term to define
* ```
*
* @example
* ```tsx
* // Definition description (dd)
* The definition
* ```
*/
type ListItemProps = {
/**
* Type of list item element to render.
*
* - `'li'` - Standard list item (default) - For ul and ol
* - `'dt'` - Definition term - For dl (term being defined)
* - `'dd'` - Definition description - For dl (the definition itself)
*
* @default 'li'
* @example
* ```tsx
* // In a definition list
*
* React
* A JavaScript library for building user interfaces
*
* ```
*/
type?: "li" | "dt" | "dd";
/**
* HTML id attribute for the list item.
*
* @optional
* @example
* ```tsx
* id="feature-1"
* ```
*/
id?: string;
/**
* Inline CSS styles to apply to the list item.
*
* @optional
* @example
* ```tsx
* styles={{ paddingLeft: '1rem' }}
* ```
*/
styles?: React.CSSProperties;
/**
* CSS class names to apply to the list item.
*
* @optional
* @example
* ```tsx
* classes="list-item-active"
* ```
*/
classes?: string;
/**
* Child elements to render inside the list item.
*
* @required
* @example
* ```tsx
*
* Bold text and regular text
*
* ```
*/
children: React.ReactNode;
} & Partial>;
export { ListItemProps as L, ListProps as a };