import { styled } from '@linaria/react';
import { InputStyle } from '../Styled/index.js';
import { Typo } from '../Typo/index.js';
import { InputNumber as InputNumber$2 } from 'antd';
import cs from 'classnames';
import React__default from '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__*/() => InputNumber$2;
const _exp2 = /*#__PURE__*/() => props => props.controls ? "initial" : "none";
const _exp3 = /*#__PURE__*/() => props => `"${props.suffix ? props.suffix : ""}"`;
const _exp4 = /*#__PURE__*/() => ({
  suffix
}) => suffix ? "flex" : "none";
const _exp5 = /*#__PURE__*/() => props => `"${props.prefix ? props.prefix : ""}"`;
const _exp6 = /*#__PURE__*/() => ({
  prefix
}) => prefix ? "flex" : "none";
const AntdInputNumberStyled = /*#__PURE__*/styled(_exp())({
  name: "AntdInputNumberStyled",
  class: "E_4100_0_7_a1wfy30z",
  propsAsIs: true,
  vars: {
    "a1wfy30z-0": [_exp2()],
    "a1wfy30z-1": [_exp3()],
    "a1wfy30z-2": [_exp4()],
    "a1wfy30z-3": [_exp5()],
    "a1wfy30z-4": [_exp6()]
  }
});
const InputNumber = _a => {
  var _b = _a,
    {
      className,
      error,
      size = "middle",
      suffix,
      prefix,
      controls = true,
      "data-testid": dataTestId
    } = _b,
    props = __objRest(_b, ["className", "error", "size", "suffix", "prefix", "controls", "data-testid"]);
  const typo = {
    large: Typo.Label.l2_regular,
    middle: Typo.Label.l3_regular,
    small: Typo.Label.l4_regular
  }[size];
  const ref = React__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.createElement(AntdInputNumberStyled, __spreadProps(__spreadValues({
    ref
  }, props), {
    size,
    controls,
    "data-test": props.name,
    suffix: controls ? "" : suffix,
    prefix,
    className: cs(className, InputStyle, typo, error ? "error" : "")
  }));
};
var InputNumber$1 = InputNumber;

export { AntdInputNumberStyled, InputNumber$1 as default };
