@itwin/itwinui-react
Version:
A react component library for iTwinUI
47 lines (46 loc) • 1.68 kB
JavaScript
import * as React from 'react';
import cx from 'classnames';
import { polymorphic, Box } from '../../utils/index.js';
import { LinkAction } from '../LinkAction/LinkAction.js';
let ListItemComponent = React.forwardRef((props, ref) => {
let {
size = 'default',
disabled = false,
active = false,
actionable = false,
focused = false,
className,
...rest
} = props;
return React.createElement(Box, {
role: 'listitem',
className: cx('iui-list-item', className),
'data-iui-active': active ? 'true' : void 0,
'data-iui-disabled': disabled ? 'true' : void 0,
'data-iui-size': 'large' === size ? 'large' : void 0,
'data-iui-actionable': actionable ? 'true' : void 0,
'data-iui-focused': focused ? 'true' : void 0,
ref: ref,
...rest,
});
});
if ('development' === process.env.NODE_ENV)
ListItemComponent.displayName = 'ListItem';
let ListItemIcon = polymorphic.div('iui-list-item-icon');
if ('development' === process.env.NODE_ENV)
ListItemIcon.displayName = 'ListItem.Icon';
let ListItemContent = polymorphic.div('iui-list-item-content');
if ('development' === process.env.NODE_ENV)
ListItemContent.displayName = 'ListItem.Content';
let ListItemDescription = polymorphic.div('iui-list-item-description');
if ('development' === process.env.NODE_ENV)
ListItemDescription.displayName = 'ListItem.Description';
let ListItemAction = LinkAction;
if ('development' === process.env.NODE_ENV)
ListItemAction.displayName = 'ListItem.Action';
export const ListItem = Object.assign(ListItemComponent, {
Icon: ListItemIcon,
Content: ListItemContent,
Description: ListItemDescription,
Action: ListItemAction,
});