{"version":3,"file":"JAlert.vue.cjs","sources":["../../../../src/components/molecules/JAlert.vue"],"sourcesContent":["<script setup lang=\"ts\">\r\nimport type { HTMLAttributes } from \"vue\"\r\nimport { Alert, AlertTitle, AlertDescription } from '@/components/shadcn'\r\nimport { JButton } from '@/components/atoms'\r\nimport { cn } from \"@/lib/utils\"\r\n\r\nconst props = withDefaults(\r\n  defineProps<{\r\n    /** Alert 자체의 클래스 */\r\n    class?: HTMLAttributes[\"class\"]\r\n    /** Alert variant 스타일 */\r\n    variant?: \"default\" | \"destructive\"\r\n    /** Alert 제목 (Header) */\r\n    title?: string\r\n    /** Alert 설명/내용 (Body) */\r\n    description?: string\r\n    /** Footer에 표시할 버튼 텍스트 */\r\n    buttonText?: string\r\n    /** Footer 버튼 클릭 핸들러 */\r\n    onConfirm?: () => void\r\n    /** Footer 표시 여부 */\r\n    showFooter?: boolean\r\n  }>(),\r\n  {\r\n    variant: \"default\",\r\n    showFooter: true,\r\n    buttonText: \"확인\"\r\n  }\r\n)\r\n\r\nconst emit = defineEmits<{\r\n  confirm: []\r\n}>()\r\n\r\nconst handleConfirm = () => {\r\n  props.onConfirm?.()\r\n  emit('confirm')\r\n}\r\n</script>\r\n\r\n<template>\r\n  <Alert :variant=\"props.variant\" :class=\"cn(props.class)\">\r\n    <!-- Header -->\r\n    <AlertTitle v-if=\"title\">\r\n      <slot name=\"header\">{{ title }}</slot>\r\n    </AlertTitle>\r\n    \r\n    <!-- Body -->\r\n    <AlertDescription>\r\n      <slot>{{ description }}</slot>\r\n    </AlertDescription>\r\n    \r\n    <!-- Footer -->\r\n    <div v-if=\"showFooter\" class=\"mt-4 flex justify-end gap-2\">\r\n      <slot name=\"footer\">\r\n        <JButton \r\n          :variant=\"variant === 'destructive' ? 'secondary' : 'default'\"\r\n          size=\"sm\"\r\n          @click=\"handleConfirm\"\r\n        >\r\n          {{ buttonText }}\r\n        </JButton>\r\n      </slot>\r\n    </div>\r\n  </Alert>\r\n</template>\r\n"],"names":["props","__props","emit","__emit","handleConfirm","_createBlock","_unref","Alert","_normalizeClass","cn","AlertTitle","_renderSlot","_ctx","_createVNode","AlertDescription","_openBlock","_createElementBlock","_hoisted_1","JButton"],"mappings":"yzCAMA,MAAMA,EAAQC,EAwBRC,EAAOC,EAIPC,EAAgB,IAAM,CAC1BJ,EAAM,YAAA,EACNE,EAAK,SAAS,CAChB,8BAIEG,EAAAA,YAuBQC,EAAAA,MAAAC,EAAAA,OAAA,EAAA,CAvBA,QAASP,EAAM,QAAU,MAAKQ,EAAAA,eAAEF,EAAAA,MAAAG,EAAAA,EAAA,EAAGT,EAAM,KAAK,CAAA,CAAA,qBAEpD,IAEa,CAFKC,EAAA,qBAAlBI,EAAAA,YAEaC,QAAAI,EAAAA,OAAA,EAAA,CAAA,IAAA,GAAA,mBADX,IAAsC,CAAtCC,EAAAA,WAAsCC,qBAAtC,IAAsC,qCAAfX,EAAA,KAAK,EAAA,CAAA,CAAA,wCAI9BY,EAAAA,YAEmBP,EAAAA,MAAAQ,SAAA,EAAA,KAAA,mBADjB,IAA8B,CAA9BH,EAAAA,WAA8BC,sBAA9B,IAA8B,qCAArBX,EAAA,WAAW,EAAA,CAAA,CAAA,WAIXA,EAAA,YAAXc,EAAAA,UAAA,EAAAC,EAAAA,mBAUM,MAVNC,EAUM,CATJN,EAAAA,WAQOC,qBARP,IAQO,CAPLC,cAMUP,EAAAA,MAAAY,EAAAA,OAAA,EAAA,CALP,QAASjB,EAAA,UAAO,cAAA,YAAA,UACjB,KAAK,KACJ,QAAOG,CAAA,qBAER,IAAgB,qCAAbH,EAAA,UAAU,EAAA,CAAA,CAAA"}