@grafana/ui
Version:
Grafana Components Library
54 lines (49 loc) • 1.62 kB
JavaScript
;
Object.defineProperty(exports, '__esModule', { value: true });
var jsxRuntime = require('react/jsx-runtime');
var css = require('@emotion/css');
var React = require('react');
var ThemeContext = require('../../themes/ThemeContext.cjs');
var commonStyles = require('../Forms/commonStyles.cjs');
var Input = require('../Input/Input.cjs');
;
const InputControl = React.forwardRef(
function InputControl2({ focused, invalid, disabled, children, innerProps, prefix, ...otherProps }, ref) {
const styles = ThemeContext.useStyles2(getInputControlStyles, invalid, !!prefix);
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: styles.input, ...innerProps, ref, children: [
prefix && /* @__PURE__ */ jsxRuntime.jsx("div", { className: css.cx(styles.prefix), children: prefix }),
children
] });
}
);
const getInputControlStyles = (theme, invalid, withPrefix) => {
const styles = Input.getInputStyles({ theme, invalid });
return {
input: css.cx(
commonStyles.inputPadding(theme),
css.css({
width: "100%",
maxWidth: "100%",
display: "flex",
flexDirection: "row",
alignItems: "center",
flexWrap: "wrap",
justifyContent: "space-between",
paddingRight: 0,
position: "relative",
boxSizing: "border-box"
}),
withPrefix && css.css({
paddingLeft: 0
})
),
prefix: css.cx(
styles.prefix,
css.css({
position: "relative"
})
)
};
};
exports.InputControl = InputControl;
//# sourceMappingURL=InputControl.cjs.map