{"version":3,"file":"TextArea.cjs","sources":["../../common/TextArea/TextArea.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { computed, VNode } from \"vue\";\n\nimport { Icon } from \"../Icon\";\nimport { TextAreaProps } from \"./types\";\n\nconst props = withDefaults(defineProps<TextAreaProps>(), {\n  label: \"\",\n  placeholder: \"\",\n  modelValue: \"\",\n  disabled: false,\n  id: \"\",\n  helperText: \"\",\n  showToolPanel: false,\n  panelPlacement: \"down\",\n  success: false,\n  error: false,\n  toolTipIcon: \"information-circle-icon\",\n  showToolTipIcon: false,\n  classes: () => ({}),\n});\n\nconst emits = defineEmits([\"update:modelValue\", \"onTooltipClick\"]);\n\nconst value = computed({\n  get: () => props.modelValue,\n  set: (value2) => emits(\"update:modelValue\", value2),\n});\n\ndefineSlots<{\n  inputLabel?(): VNode;\n  tooltip?(): VNode;\n  panel?(): VNode;\n  inputHelperText?(): VNode;\n}>();\n\nconst getLabelStyle = computed(() => {\n  if (props.success && !props.disabled) {\n    return \"textArea-success-label\";\n  }\n  if (props.error && !props.disabled) {\n    return \"textArea-error-label\";\n  }\n\n  return \"textArea-default-label\";\n});\n\nconst getInputStyle = computed(() => {\n  if (props.success && !props.disabled) {\n    return \"textArea-success-input\";\n  }\n  if (props.error && !props.disabled) {\n    return \"textArea-error-input\";\n  }\n  return \"textArea-default-input\";\n});\n\nconst getHelperTextStyle = computed(() => {\n  if (props.success && !props.disabled) {\n    return \"success-msg\";\n  }\n  if (props.error && !props.disabled) {\n    return \"error-msg\";\n  }\n  return \"default-msg\";\n});\n</script>\n\n<template>\n  <div :class=\"['relative w-full items-stretch', $attrs.class, classes?.container]\">\n    <label v-if=\"label && !$slots?.inputLabel\" :for=\"id\" :class=\"[getLabelStyle, 'label', classes?.label]\">\n      {{ label }}\n      <Icon\n        v-if=\"showToolTipIcon && !$slots?.tooltip\"\n        :name=\"toolTipIcon\"\n        size=\"15\"\n        :class=\"['ml-1 w-[15px] cursor-pointer', classes?.tooltipIcon || '']\"\n        @click.stop=\"emits('onTooltipClick')\"\n      />\n      <slot v-if=\"showToolTipIcon && $slots?.tooltip\" name=\"tooltip\" />\n    </label>\n    <label v-if=\"$slots?.inputLabel\" :for=\"id\">\n      <slot name=\"inputLabel\" />\n    </label>\n    <div :class=\"['flex-col']\">\n      <div\n        v-if=\"showToolPanel && panelPlacement === 'up' && $slots?.panel\"\n        :class=\"[getInputStyle, 'textArea-panel rounded-t-lg !border-b-0', classes?.panel]\"\n      >\n        <slot name=\"panel\" />\n      </div>\n      <textarea\n        :id=\"id\"\n        v-model=\"value\"\n        aria-multiline=\"true\"\n        :aria-placeholder=\"placeholder || 'TextArea Placeholder'\"\n        :aria-labelledby=\"label || 'TextArea Label'\"\n        :disabled=\"disabled\"\n        :class=\"[\n          getInputStyle,\n          'cursor-pointer',\n          panelPlacement === 'down' && showToolPanel ? 'rounded-t-lg' : panelPlacement === 'up' && showToolPanel ? 'rounded-b-lg' : 'rounded-lg',\n          disabled && (classes?.disabled || 'disabled-textArea'),\n          classes?.textAreaInput,\n        ]\"\n        :placeholder=\"placeholder\"\n        v-bind=\"{ ...$attrs, class: '', style: {} }\"\n      />\n      <div\n        v-if=\"showToolPanel && panelPlacement === 'down' && $slots?.panel\"\n        :class=\"[getInputStyle, 'textArea-panel rounded-b-lg !border-t-0', classes?.panel]\"\n      >\n        <slot name=\"panel\" />\n      </div>\n    </div>\n    <p v-if=\"helperText && !$slots?.inputHelperText\" :class=\"['mt-1 text-xs font-normal', getHelperTextStyle, classes?.helperText]\">\n      {{ helperText }}\n    </p>\n    <p v-if=\"$slots?.inputHelperText\" :class=\"['mt-1 text-xs font-normal', getHelperTextStyle]\">\n      <slot name=\"inputHelperText\" />\n    </p>\n  </div>\n</template>\n\n<style scoped>\n@reference \"../../styles/main.css\";\n\n.textArea-default-input {\n  @apply block p-2.5 w-full text-sm bg-app-gray-50 border border-app-gray-300 text-app-gray-900 placeholder-app-gray-500 disabled:bg-app-gray-50 focus:outline-0 focus:ring-app-primary-600 focus:border-app-primary-600 dark:bg-app-gray-700 dark:border-app-gray-600 dark:placeholder-app-gray-400 dark:text-app-white dark:focus:ring-app-primary-500 dark:focus:border-app-primary-500 dark:disabled:bg-app-gray-700 dark:disabled:border-app-gray-600 dark:disabled:placeholder-app-gray-400;\n}\n\n.textArea-success-input {\n  @apply block p-2.5 w-full text-sm border bg-app-green-50 border-app-green-500 text-app-green-700 placeholder-app-green-500 disabled:bg-app-gray-50 focus:outline-0 focus:ring-app-green-600 focus:border-app-green-600 disabled:border-app-gray-300 disabled:placeholder-app-gray-500 dark:border-app-green-500 dark:placeholder-app-green-500 dark:text-app-green-700 dark:disabled:bg-app-gray-700 dark:disabled:border-app-gray-600 dark:disabled:placeholder-app-gray-400;\n}\n\n.textArea-error-input {\n  @apply block p-2.5 w-full text-sm border bg-app-red-50 border-app-red-500 text-app-red-700 placeholder-app-red-500 disabled:bg-app-gray-50 disabled:border-app-gray-300 disabled:placeholder-app-gray-500 dark:border-app-red-500 dark:placeholder-app-red-500 dark:text-app-red-700 dark:disabled:bg-app-gray-700 dark:disabled:border-app-gray-600 dark:disabled:placeholder-app-gray-400;\n}\n\n.label {\n  @apply mb-2 p-0 text-sm font-medium flex justify-start;\n}\n\n.textArea-default-label {\n  @apply text-app-gray-900 dark:text-app-white;\n}\n\n.textArea-success-label {\n  @apply text-app-green-700 dark:text-app-green-400;\n}\n\n.textArea-error-label {\n  @apply text-app-red-700 dark:text-app-red-400;\n}\n\n.default-msg {\n  @apply text-app-gray-500 dark:text-app-gray-400;\n}\n\n.success-msg {\n  @apply text-app-green-600 dark:text-app-green-400;\n}\n\n.error-msg {\n  @apply text-app-red-600 dark:text-app-red-400;\n}\n\n.textArea-panel {\n  @apply h-auto;\n}\n\n.disabled-textArea {\n  @apply text-app-gray-400! dark:text-app-gray-500! cursor-not-allowed! placeholder-app-gray-400! dark:placeholder-app-gray-500!;\n}\n\ntextarea:focus {\n  outline: 0 !important;\n}\n</style>\n"],"names":["props","__props","emits","__emit","value","computed","value2","getLabelStyle","getInputStyle","getHelperTextStyle","_createElementBlock","$attrs","$slots","_normalizeClass","_createTextVNode","_toDisplayString","_createBlock","_unref","Icon","_renderSlot","_ctx","_createElementVNode","_hoisted_3","_withDirectives","_mergeProps","$event","_hoisted_4"],"mappings":"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"}