"use strict";
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
const event = require("../../../constants/event.js");
const shared_esmBundler = require("../../../../../@vue/shared/dist/shared.esm-bundler.js");
const runtime = require("../../../utils/vue/props/runtime.js");
const icon = require("../../../utils/vue/icon.js");
const typescript = require("../../../utils/typescript.js");
const index$2 = require("../../../hooks/use-size/index.js");
const index = require("../../../hooks/use-aria/index.js");
const index$1 = require("../../../../../@element-plus/icons-vue/dist/index.js");
const Vue = require("vue");
const inputProps = runtime.buildProps({
  id: {
    type: String,
    default: void 0
  },
  size: index$2.useSizeProp,
  disabled: {
    type: Boolean,
    default: void 0
  },
  modelValue: {
    type: runtime.definePropType([
      String,
      Number,
      Object
    ]),
    default: ""
  },
  modelModifiers: {
    type: runtime.definePropType(Object),
    default: () => ({})
  },
  maxlength: { type: [String, Number] },
  minlength: { type: [String, Number] },
  type: {
    type: runtime.definePropType(String),
    default: "text"
  },
  resize: {
    type: String,
    values: [
      "none",
      "both",
      "horizontal",
      "vertical"
    ]
  },
  autosize: {
    type: runtime.definePropType([Boolean, Object]),
    default: false
  },
  autocomplete: {
    type: runtime.definePropType(String),
    default: "off"
  },
  formatter: { type: Function },
  parser: { type: Function },
  placeholder: { type: String },
  form: { type: String },
  readonly: Boolean,
  clearable: Boolean,
  clearIcon: {
    type: icon.iconPropType,
    default: index$1.CircleClose
  },
  showPassword: Boolean,
  showWordLimit: Boolean,
  wordLimitPosition: {
    type: String,
    values: ["inside", "outside"],
    default: "inside"
  },
  suffixIcon: { type: icon.iconPropType },
  prefixIcon: { type: icon.iconPropType },
  containerRole: {
    type: String,
    default: void 0
  },
  tabindex: {
    type: [String, Number],
    default: 0
  },
  validateEvent: {
    type: Boolean,
    default: true
  },
  inputStyle: {
    type: runtime.definePropType([
      Object,
      Array,
      String
    ]),
    default: () => typescript.mutable({})
  },
  autofocus: Boolean,
  rows: {
    type: Number,
    default: 2
  },
  ...index.useAriaProps(["ariaLabel"]),
  inputmode: {
    type: runtime.definePropType(String),
    default: void 0
  },
  name: String
});
const inputEmits = {
  [event.UPDATE_MODEL_EVENT]: (value) => shared_esmBundler.isString(value),
  input: (value) => shared_esmBundler.isString(value),
  change: (value, evt) => shared_esmBundler.isString(value) && (evt instanceof Event || evt === void 0),
  focus: (evt) => evt instanceof FocusEvent,
  blur: (evt) => evt instanceof FocusEvent,
  clear: (evt) => evt === void 0 || evt instanceof MouseEvent,
  mouseleave: (evt) => evt instanceof MouseEvent,
  mouseenter: (evt) => evt instanceof MouseEvent,
  keydown: (evt) => evt instanceof Event,
  compositionstart: (evt) => evt instanceof CompositionEvent,
  compositionupdate: (evt) => evt instanceof CompositionEvent,
  compositionend: (evt) => evt instanceof CompositionEvent
};
({
  clearIcon: Vue.markRaw(index$1.CircleClose)
});
exports.inputEmits = inputEmits;
exports.inputProps = inputProps;
