UNPKG

@itwin/itwinui-react

Version:

A react component library for iTwinUI

99 lines (98 loc) 2.57 kB
'use strict'; Object.defineProperty(exports, '__esModule', { value: true, }); Object.defineProperty(exports, 'InputGroup', { enumerable: true, get: function () { return InputGroup; }, }); const _interop_require_default = require('@swc/helpers/_/_interop_require_default'); const _interop_require_wildcard = require('@swc/helpers/_/_interop_require_wildcard'); const _react = /*#__PURE__*/ _interop_require_wildcard._(require('react')); const _classnames = /*#__PURE__*/ _interop_require_default._( require('classnames'), ); const _index = require('../../utils/index.js'); const _InputGrid = require('../InputGrid/InputGrid.js'); const _Label = require('../Label/Label.js'); const _StatusMessage = require('../StatusMessage/StatusMessage.js'); const InputGroup = _react.forwardRef((props, forwardedRef) => { let { className, children, disabled = false, displayStyle = 'default', label, status, required = false, labelProps, innerProps, message, svgIcon, messageProps, ...rest } = props; return _react.createElement( _InputGrid.InputGrid, { ref: forwardedRef, as: 'div', labelPlacement: displayStyle, className: (0, _classnames.default)('iui-input-group-wrapper', className), 'data-iui-status': status, ...rest, }, label && _react.createElement( _Label.Label, { as: 'label', required: required, disabled: disabled, ...labelProps, }, label, ), _react.createElement( _index.Box, { as: 'div', ...innerProps, className: (0, _classnames.default)( 'iui-input-group', innerProps?.className, ), }, children, ), _react.createElement(BottomMessage, { message: message, status: status, svgIcon: svgIcon, displayStyle: displayStyle, messageProps: messageProps, }), ); }); if ('development' === process.env.NODE_ENV) InputGroup.displayName = 'InputGroup'; const BottomMessage = (props) => { let { message, status, svgIcon, displayStyle, messageProps } = props; if (message && 'string' != typeof message) return message; if (message || status || svgIcon) return _react.createElement( _StatusMessage.StatusMessage, { iconProps: { 'aria-hidden': true, }, startIcon: svgIcon, status: status, ...messageProps, }, 'inline' !== displayStyle && message, ); return null; };