{"version":3,"file":"JKbd.vue.cjs","sources":["../../../../src/components/atoms/JKbd.vue"],"sourcesContent":["<script setup lang=\"ts\">\r\nimport { computed } from 'vue'\r\nimport Kbd from '@/components/shadcn/Kbd.vue'\r\n\r\ntype StyleType =\r\n  | 'default'   // 기본 스타일\r\n  | 'primary'   // 강조 스타일 (파랑)\r\n  | 'success'   // 성공 스타일 (초록)\r\n  | 'warning'   // 경고 스타일 (주황)\r\n  | 'danger'    // 위험 스타일 (빨강)\r\n\r\ntype SizeType = 'xs' | 'sm' | 'md' | 'lg'\n\r\nconst props = withDefaults(\r\n  defineProps<{\r\n    class?: string\r\n    /** 스타일 프리셋 */\r\n    styletype?: StyleType\r\n    /** 키보드 키 크기 */\r\n    size?: SizeType\r\n  }>(),\r\n  {\n    styletype: 'default',\n    size: 'sm',\n  },\n)\r\n\r\n/**\r\n * styletype -> class 매핑\r\n */\r\nconst STYLE_PRESETS: Record<StyleType, { class: string }> = {\r\n  default: { class: '' },\r\n  primary: { \r\n    class: 'bg-blue-100 text-blue-800 border-blue-200',\r\n  },\r\n  success: { \r\n    class: 'bg-green-100 text-green-800 border-green-200',\r\n  },\r\n  warning: { \r\n    class: 'bg-amber-100 text-amber-800 border-amber-200',\r\n  },\r\n  danger: { \r\n    class: 'bg-red-100 text-red-800 border-red-200',\r\n  },\r\n}\r\n\r\n/**\r\n * size -> class 매핑\r\n */\r\nconst SIZE_PRESETS: Record<SizeType, { class: string }> = {\n  xs: { \n    class: 'h-3.5 px-0.5 text-[10px] min-w-[14px]',\n  },\n  sm: { \n    class: 'h-4 px-1 text-xs min-w-[16px]',\n  },\n  md: { \n    class: 'h-5 px-1.5 text-xs',\n  },\n  lg: { \n    class: 'h-6 px-2 text-sm',\n  },\n}\n\r\n/** 최종 바인딩: styletype과 size를 병합하여 최종 클래스 생성 */\r\nconst mapped = computed(() => {\r\n  const stylePreset = STYLE_PRESETS[props.styletype!]\r\n  const sizePreset = SIZE_PRESETS[props.size!]\r\n  const finalClass = [stylePreset.class, sizePreset.class, props.class].filter(Boolean).join(' ')\r\n  \r\n  return {\r\n    class: finalClass,\r\n  }\r\n})\r\n</script>\r\n\r\n<template>\r\n  <Kbd v-bind=\"mapped\">\r\n    <slot />\r\n  </Kbd>\r\n</template>\r\n"],"names":["props","__props","STYLE_PRESETS","SIZE_PRESETS","mapped","computed","stylePreset","sizePreset","_openBlock","_createBlock","Kbd","_renderSlot","_ctx"],"mappings":"qRAaA,MAAMA,EAAQC,EAiBRC,EAAsD,CAC1D,QAAS,CAAE,MAAO,EAAA,EAClB,QAAS,CACP,MAAO,2CAAA,EAET,QAAS,CACP,MAAO,8CAAA,EAET,QAAS,CACP,MAAO,8CAAA,EAET,OAAQ,CACN,MAAO,wCAAA,CACT,EAMIC,EAAoD,CACxD,GAAI,CACF,MAAO,uCAAA,EAET,GAAI,CACF,MAAO,+BAAA,EAET,GAAI,CACF,MAAO,oBAAA,EAET,GAAI,CACF,MAAO,kBAAA,CACT,EAIIC,EAASC,EAAAA,SAAS,IAAM,CAC5B,MAAMC,EAAcJ,EAAcF,EAAM,SAAU,EAC5CO,EAAaJ,EAAaH,EAAM,IAAK,EAG3C,MAAO,CACL,MAHiB,CAACM,EAAY,MAAOC,EAAW,MAAOP,EAAM,KAAK,EAAE,OAAO,OAAO,EAAE,KAAK,GAAG,CAGrF,CAEX,CAAC,gBAICQ,EAAAA,UAAA,EAAAC,EAAAA,YAEMC,EAAAA,8CAFON,EAAA,KAAM,CAAA,EAAA,mBACjB,IAAQ,CAARO,aAAQC,EAAA,OAAA,SAAA,CAAA"}