'use strict';

var react = require('@linaria/react');
var index$1 = require('../Styled/index.js');
var index = require('../Typo/index.js');
var antd = require('antd');
var cs = require('classnames');
var React = require('react');

function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }

var cs__default = /*#__PURE__*/_interopDefault(cs);
var React__default = /*#__PURE__*/_interopDefault(React);

var __defProp = Object.defineProperty;
var __defProps = Object.defineProperties;
var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
var __hasOwnProp = Object.prototype.hasOwnProperty;
var __propIsEnum = Object.prototype.propertyIsEnumerable;
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, {
  enumerable: true,
  configurable: true,
  writable: true,
  value
}) : obj[key] = value;
var __spreadValues = (a, b) => {
  for (var prop in b || (b = {})) if (__hasOwnProp.call(b, prop)) __defNormalProp(a, prop, b[prop]);
  if (__getOwnPropSymbols) for (var prop of __getOwnPropSymbols(b)) {
    if (__propIsEnum.call(b, prop)) __defNormalProp(a, prop, b[prop]);
  }
  return a;
};
var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
var __objRest = (source, exclude) => {
  var target = {};
  for (var prop in source) if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0) target[prop] = source[prop];
  if (source != null && __getOwnPropSymbols) for (var prop of __getOwnPropSymbols(source)) {
    if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop)) target[prop] = source[prop];
  }
  return target;
};
const _exp = /*#__PURE__*/() => antd.Input;
const StyledAntdInput = /*#__PURE__*/react.styled(_exp())({
  name: "StyledAntdInput",
  class: "E_4100_0_7_sx1bpnu",
  propsAsIs: true
});
const Input = _a => {
  var _b = _a,
    {
      className,
      error,
      size = "middle",
      "data-testid": dataTestId
    } = _b,
    props = __objRest(_b, ["className", "error", "size", "data-testid"]);
  const typo = {
    large: index.Typo.Label.l2_regular,
    middle: index.Typo.Label.l3_regular,
    small: index.Typo.Label.l4_regular
  }[size];
  const ref = React__default.default.useCallback(instance => {
    const el = instance == null ? void 0 : instance.input;
    if (!el) return;
    if (dataTestId) {
      el.setAttribute("data-testid", dataTestId);
    } else {
      el.removeAttribute("data-testid");
    }
  }, [dataTestId]);
  return /* @__PURE__ */React__default.default.createElement(StyledAntdInput, __spreadProps(__spreadValues({
    ref
  }, props), {
    size,
    "data-test": props.name,
    className: cs__default.default(className, index$1.InputStyle, typo, error ? "error" : "")
  }));
};
var Input$1 = Input;

module.exports = Input$1;
