UNPKG

@itwin/itwinui-react

Version:

A react component library for iTwinUI

81 lines (80 loc) 2.4 kB
import * as React from 'react'; import { Box, InputFlexContainer, InputFlexContainerButton, InputFlexContainerIcon, useSafeContext, } from '../../utils/index.js'; let InputWithDecorationsContext = React.createContext(void 0); if ('development' === process.env.NODE_ENV) InputWithDecorationsContext.displayName = 'InputWithDecorationsContext'; let InputWithDecorationsComponent = React.forwardRef((props, ref) => { let { children, size, isDisabled, ...rest } = props; return React.createElement( InputWithDecorationsContext.Provider, { value: { size, isDisabled, }, }, React.createElement( InputFlexContainer, { isDisabled: isDisabled, size: size, ref: ref, ...rest, }, children, ), ); }); if ('development' === process.env.NODE_ENV) InputWithDecorationsComponent.displayName = 'InputWithDecorations'; let InputWithDecorationsInput = React.forwardRef((props, ref) => { let { id: idProp, size, disabled: localDisabled, ...rest } = props; let { size: contextSize, isDisabled } = useSafeContext( InputWithDecorationsContext, ); return React.createElement(Box, { as: 'input', ref: ref, 'data-iui-size': size ?? contextSize, disabled: localDisabled ?? isDisabled, id: idProp, ...rest, }); }); if ('development' === process.env.NODE_ENV) InputWithDecorationsInput.displayName = 'InputWithDecorations.Input'; let InputWithDecorationsButton = React.forwardRef((props, ref) => { let { children, size, disabled: localDisabled, ...rest } = props; let { size: contextSize, isDisabled } = useSafeContext( InputWithDecorationsContext, ); return React.createElement( InputFlexContainerButton, { ref: ref, size: size ?? contextSize, disabled: localDisabled ?? isDisabled, ...rest, }, children, ); }); if ('development' === process.env.NODE_ENV) InputWithDecorationsButton.displayName = 'InputWithDecorations.Button'; let InputWithDecorationsIcon = InputFlexContainerIcon; if ('development' === process.env.NODE_ENV) InputWithDecorationsIcon.displayName = 'InputWithDecorations.Icon'; export const InputWithDecorations = Object.assign( InputWithDecorationsComponent, { Input: InputWithDecorationsInput, Button: InputWithDecorationsButton, Icon: InputWithDecorationsIcon, }, );