UNPKG

@itwin/itwinui-react

Version:

A react component library for iTwinUI

69 lines (68 loc) 1.63 kB
import cx from 'classnames'; import * as React from 'react'; import { useMergedRefs, Box } from '../../utils/index.js'; export const RadioTile = React.forwardRef((props, ref) => { let { icon, label, description, className, wrapperProps, iconProps, labelProps, subLabelProps, style, ...rest } = props; let inputElementRef = React.useRef(null); let refs = useMergedRefs(inputElementRef, ref); return React.createElement( Box, { as: 'label', 'data-iui-disabled': props.disabled ? 'true' : void 0, ...wrapperProps, className: cx('iui-radio-tile', wrapperProps?.className), }, React.createElement(Box, { as: 'input', ref: refs, className: cx('iui-radio-tile-input', className), style: style, type: 'radio', ...rest, }), icon && React.createElement( Box, { as: 'span', 'aria-hidden': true, ...iconProps, className: cx('iui-radio-tile-icon', iconProps?.className), }, icon, ), label && React.createElement( Box, { as: 'div', ...labelProps, className: cx('iui-radio-tile-label', labelProps?.className), }, label, ), description && React.createElement( Box, { as: 'div', ...subLabelProps, className: cx('iui-radio-tile-sublabel', subLabelProps?.className), }, description, ), ); }); if ('development' === process.env.NODE_ENV) RadioTile.displayName = 'RadioTile';