{"version":3,"file":"index.mjs","sources":["../../../../src/components/Input/index.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport RobustInputWrapper from '../InputWrapper/index.vue';\nimport { computed, inject, ref } from 'vue';\nimport { PhWarningCircle } from '@phosphor-icons/vue';\nimport { MaybeRef } from '@vueuse/core';\n\nconst props = defineProps({\n  title: {\n    type: String,\n    default: undefined,\n  },\n  hint: {\n    type: String,\n    default: undefined,\n  },\n  error: {\n    type: String,\n    default: undefined,\n  },\n  class: {\n    type: String,\n    default: undefined,\n  },\n  readonly: {\n    type: Boolean,\n  },\n  inputClass: {\n    type: String,\n    default: undefined,\n  },\n  modelValue: {\n    type: null,\n    default: undefined,\n  },\n  condensed: {\n    type: Boolean,\n  },\n  disabled: {\n    type: Boolean,\n  },\n  interactive: {\n    type: Boolean,\n  },\n});\n\nconst emit = defineEmits(['update:modelValue', 'input', 'change']);\n\nconst inputRef = ref();\n\nconst inputFieldValue = computed({\n  get() {\n    return props.modelValue;\n  },\n  set(value) {\n    emit('input', value);\n    emit('change', value);\n    emit('update:modelValue', value);\n  },\n});\nfunction focus() {\n  inputRef.value?.focus();\n}\n\nfunction clear() {\n  emit('update:modelValue', '');\n}\n\ndefineExpose({\n  inputRef,\n  focus,\n  clear,\n});\n</script>\n\n<template>\n  <RobustInputWrapper\n    :title=\"title\"\n    :hint=\"hint\"\n    :error=\"error\"\n    :class=\"$props.class\"\n    :readonly=\"readonly\"\n    :disabled=\"disabled\"\n    :condensed=\"condensed\"\n  >\n    <Component\n      :is=\"interactive ? 'button' : 'label'\"\n      v-if=\"$slots.prefix\"\n      class=\"flex h-full select-none items-center pr-2 text-gray-400\"\n      :class=\"[condensed ? 'pl-2' : 'pl-3']\"\n    >\n      <slot tag=\"div\" name=\"prefix\" />\n    </Component>\n    <input\n      ref=\"inputRef\"\n      v-bind=\"$attrs\"\n      v-model=\"inputFieldValue\"\n      :disabled=\"disabled\"\n      size=\"8\"\n      class=\"block h-full w-full bg-transparent text-current outline-none dark:placeholder-gray-500\"\n      :class=\"[\n        props.inputClass,\n        $slots.prefix || condensed ? 'pl-2' : 'pl-3',\n        error ? 'pr-10' : $slots.suffix || condensed ? 'pr-2' : 'pr-3',\n        {\n          'cursor-not-allowed': readonly,\n        },\n        disabled ? 'cursor-not-allowed text-gray-500' : '',\n      ]\"\n      :readonly=\"readonly\"\n    />\n    <Component\n      :is=\"interactive ? 'button' : 'label'\"\n      v-if=\"$slots.suffix || error\"\n      class=\"ml-auto flex h-full select-none items-center pl-2 text-gray-400\"\n      :class=\"[condensed ? 'pr-2' : 'pr-3']\"\n    >\n      <slot v-if=\"!error\" tag=\"div\" name=\"suffix\" />\n      <div v-else class=\"text-red-400\">\n        <PhWarningCircle size=\"20\" class=\"block\" />\n      </div>\n    </Component>\n  </RobustInputWrapper>\n</template>\n"],"names":["props","__props","emit","__emit","inputRef","ref","inputFieldValue","computed","value","focus","_a","clear","__expose"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAMA,UAAMA,IAAQC,GAuCRC,IAAOC,GAEPC,IAAWC,KAEXC,IAAkBC,EAAS;AAAA,MAC/B,MAAM;AACJ,eAAOP,EAAM;AAAA,MACf;AAAA,MACA,IAAIQ,GAAO;AACT,QAAAN,EAAK,SAASM,CAAK,GACnBN,EAAK,UAAUM,CAAK,GACpBN,EAAK,qBAAqBM,CAAK;AAAA,MACjC;AAAA,IAAA,CACD;AACD,aAASC,IAAQ;;AACf,OAAAC,IAAAN,EAAS,UAAT,QAAAM,EAAgB;AAAA,IAClB;AAEA,aAASC,IAAQ;AACf,MAAAT,EAAK,qBAAqB,EAAE;AAAA,IAC9B;AAEa,WAAAU,EAAA;AAAA,MACX,UAAAR;AAAA,MACA,OAAAK;AAAA,MACA,OAAAE;AAAA,IAAA,CACD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}