UNPKG

@coconut-software/ui

Version:

React components for faster and easier web development.

41 lines (40 loc) 1.97 kB
import React from 'react'; import type { Dispatch, EventHandler, ReactElement, FocusEventHandler, KeyboardEvent, MouseEvent, MouseEventHandler, ReactNode } from 'react'; import type { NestedListActions } from './Actions'; import { NestedListActionTypes } from './Actions'; export type ItemState = { itemState: ListItemStateType; nestedListId: string | undefined; open: boolean; }; export declare const ItemContext: React.Context<UseItemValues | null>; export type ListItemEndAdornmentType = 'element' | 'icon' | 'icon-button'; export type ListItemStartAdornmentType = 'avatar' | 'checkbox' | 'icon'; export type ListItemStateType = 'default' | 'disabled' | 'selected' | 'inverse'; export interface ItemProps { children?: ReactElement; defaultOpen?: boolean; disabled?: boolean; endAdornment?: ReactNode; endAdornmentType?: ListItemEndAdornmentType; inset?: ListItemStartAdornmentType; inverse?: boolean; onBlur?: FocusEventHandler<HTMLElement>; onClick?: EventHandler<KeyboardEvent | MouseEvent>; onFocus?: FocusEventHandler<HTMLElement>; onMouseEnter?: MouseEventHandler<HTMLElement>; onMouseLeave?: MouseEventHandler<HTMLElement>; primary?: ReactNode; secondary?: ReactNode; selected?: boolean; startAdornment?: ReactNode; startAdornmentType?: ListItemStartAdornmentType; } export type ItemReducers = { [ActionType in NestedListActionTypes]: (state: ItemState, action: NestedListActions) => ItemState; }; export declare const reducers: ItemReducers; type UseItemValues = [ItemState, Dispatch<NestedListActions> | null]; export declare const useItem: () => UseItemValues; declare function Item({ children, defaultOpen, disabled, endAdornment, endAdornmentType, inset, inverse, onBlur, onClick, onFocus, onMouseEnter, onMouseLeave, primary, secondary, selected, startAdornment, startAdornmentType, }: ItemProps): JSX.Element; export default Item;