import type { Slot } from 'vue'; import type { AvInteractiveProps } from '../../../../types/interfaces.types.js'; /** * AvListItem component props. */ export interface AvListItemProps extends AvInteractiveProps { /** * The theme of the list item, affecting its overall styling. */ theme?: 'PRIMARY' | 'SECONDARY' | 'TERTIARY'; /** * The icon name according to the naming convention of Iconify-vue. */ icon?: string; /** * The icon size. * @default 1.3125 */ iconSize?: number; /** * The title text. */ title?: string; /** * The description text. */ description?: string; /** * Whether the list item is clickable. * @default false */ clickable?: boolean; /** * Whether the list item is selected/active. * @default false */ selected?: boolean; /** * Function called when list item is clicked. * @param event The click MouseEvent */ onClick?: ($event: MouseEvent) => void; /** * ARIA label for the list item when clickable. */ ariaLabel?: string; /** * ID of an element that describes the list item. */ ariaDescribedby?: string; /** * HTML tag to use for the root element when clickable. * @default 'button' */ tag?: 'button' | 'div' | 'a'; /** * Href attribute when tag is 'a'. */ href?: string; /** * Target attribute when tag is 'a'. */ target?: string; /** * Rel attribute when tag is 'a'. */ rel?: string; /** * ARIA role for the list item. If not provided, defaults based on context. */ role?: string; /** * Type of list item, affecting styling. 'main' for primary items, 'sub' for nested items. * @default 'main' */ type?: 'main' | 'sub'; /** * Enables the tooltip on the button. The tooltip will display the content of the `label` prop. * @default false */ enableTooltip?: boolean; /** * Maximum number of lines to display for the title of the list item. If the title exceeds this number of lines, it will be truncated with an ellipsis. * @default undefined * @example 2 → "This is a long title that will be truncated..." (if it exceeds 2 lines) * @example 3 → "This is a long title that will be truncated..." (if it exceeds 3 lines) * @example undefined → No truncation, the title will take as many lines as needed */ titleMaxLines?: number; } /** * Slots available in the AvListItem component. */ type __VLS_Slots = { /** * Default slot for custom content. */ default?: Slot; }; declare const __VLS_component: import("vue").DefineComponent & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>; declare const _default: __VLS_WithSlots; export default _default; type __VLS_WithSlots = T & { new (): { $slots: S; }; };