chakra-ui
Version:
Responsive and accessible React UI components built with React and Emotion
50 lines (46 loc) • 1.69 kB
JavaScript
import _extends from "@babel/runtime/helpers/extends";
import _defineProperty from "@babel/runtime/helpers/defineProperty";
import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
/** @jsx jsx */
import { jsx } from "@emotion/core";
import { forwardRef } from "react";
import Center from "../Center";
import { inputSizes } from "../Input/styles";
var InputElement = forwardRef(function (_ref, ref) {
var size = _ref.size,
children = _ref.children,
_ref$placement = _ref.placement,
placement = _ref$placement === void 0 ? "left" : _ref$placement,
_ref$disablePointerEv = _ref.disablePointerEvents,
disablePointerEvents = _ref$disablePointerEv === void 0 ? false : _ref$disablePointerEv,
props = _objectWithoutProperties(_ref, ["size", "children", "placement", "disablePointerEvents"]);
var _inputSizes$size = inputSizes[size],
height = _inputSizes$size.height,
fontSize = _inputSizes$size.fontSize;
var placementProp = _defineProperty({}, placement, "0");
return jsx(Center, _extends({
position: "absolute",
height: height,
width: height,
fontSize: fontSize,
top: "0",
zIndex: 1,
ref: ref
}, disablePointerEvents && {
pointerEvents: "none"
}, placementProp, props), children);
});
var InputLeftElement = forwardRef(function (props, ref) {
return jsx(InputElement, _extends({
ref: ref,
placement: "left"
}, props));
});
var InputRightElement = forwardRef(function (props, ref) {
return jsx(InputElement, _extends({
ref: ref,
placement: "right"
}, props));
});
export { InputLeftElement, InputRightElement };
export default InputElement;