@blockstack/ui
Version:
Blockstack UI components built using React and styled-components with styled-system.
64 lines (55 loc) • 2.01 kB
JavaScript
import { objectWithoutPropertiesLoose as _objectWithoutPropertiesLoose } from '../_virtual/_rollupPluginBabelHelpers.js';
import React__default, { Children, cloneElement } from 'react';
import { Box } from '../box/index.esm.js';
import '../hooks/use-controllable.esm.js';
import '../hooks/use-previous.esm.js';
import '../hooks/use-disclosure.esm.js';
import '../hooks/use-latest-ref.esm.js';
import '../hooks/use-event-listener.esm.js';
import '../hooks/use-force-update.esm.js';
import '../hooks/use-id.esm.js';
import '../hooks/use-merge-refs.esm.js';
import '../hooks/use-safe-layout-effect.esm.js';
import '../hooks/use-timeout.esm.js';
import { useTheme } from '../hooks/use-theme.esm.js';
import '../hooks/use-color-mode.esm.js';
import { inputSizes } from '../input/styles.esm.js';
import { InputLeftElement, InputRightElement } from '../input-element/index.esm.js';
import { Input } from '../input/index.esm.js';
var InputGroup = function InputGroup(_ref) {
var children = _ref.children,
_ref$size = _ref.size,
size = _ref$size === void 0 ? 'default' : _ref$size,
props = _objectWithoutPropertiesLoose(_ref, ["children", "size"]);
var _useTheme = useTheme(),
sizes = _useTheme.sizes;
var height = inputSizes[size] && inputSizes[size].height;
var pl = null;
var pr = null;
return React__default.createElement(Box, Object.assign({
display: "flex",
position: "relative"
}, props), Children.map(children, function (child) {
if (!React__default.isValidElement(child)) {
return null;
}
if (child.type === InputLeftElement) {
pl = sizes[height];
}
if (child.type === InputRightElement) {
pr = sizes[height];
}
if (child.type === Input) {
return cloneElement(child, {
width: '100%',
pl: child.props.pl || pl,
pr: child.props.pr || pr
});
}
return cloneElement(child, {
size: size
});
}));
};
export { InputGroup };
//# sourceMappingURL=index.esm.js.map