@itwin/itwinui-react
Version:
A react component library for iTwinUI
81 lines (80 loc) • 2.4 kB
JavaScript
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,
},
);