UNPKG

@itwin/itwinui-react

Version:

A react component library for iTwinUI

59 lines (58 loc) 1.31 kB
import * as React from 'react'; import cx from 'classnames'; import { Box } from './Box.js'; import { Label } from '../../core/Label/Label.js'; import { StatusMessage } from '../../core/StatusMessage/StatusMessage.js'; export const InputContainer = React.forwardRef((props, forwardedRef) => { let { label, disabled, required, status, message, icon, isLabelInline, children, className, style, statusMessage, inputId, labelId, ...rest } = props; return React.createElement( Box, { className: cx('iui-input-grid', className), 'data-iui-status': status, 'data-iui-label-placement': isLabelInline ? 'inline' : void 0, style: style, ref: forwardedRef, ...rest, }, label && React.createElement( Label, { as: inputId && 'label' !== props.as ? 'label' : 'div', required: required, disabled: disabled, htmlFor: inputId, id: labelId, }, label, ), children, statusMessage ? statusMessage : message && React.createElement( StatusMessage, { startIcon: icon, status: status, }, message, ), ); });