{"version":3,"file":"JSectionTitle.vue2.cjs","sources":["../../../../src/components/atoms/JSectionTitle.vue"],"sourcesContent":["<template>\n  <div :class=\"cn('j-section-title', variantClasses, props.class)\">\n    <div class=\"j-section-title-content\">\n      <JIcon v-if=\"icon\" :name=\"icon\" class=\"j-section-title-icon\" />\n      <div class=\"j-section-title-text-wrapper\">\n        <h3 class=\"j-section-title-text\">{{ title }}</h3>\n        <p v-if=\"subtitle\" class=\"j-section-subtitle-text\">{{ subtitle }}</p>\n      </div>\n    </div>\n  </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed } from 'vue'\nimport { cn } from '@/lib/utils'\nimport { JIcon } from '@/components/atoms'\nimport type { JSectionTitleProps, SectionTitleVariant } from '@/types/section-title.types'\n\nconst props = withDefaults(defineProps<JSectionTitleProps>(), {\n  variant: 'default',\n})\n\nconst VARIANT_STYLES: Record<SectionTitleVariant, string> = {\n  default: 'border-l-border text-foreground dark:border-l-border',\n  primary: 'border-l-primary text-primary',\n  secondary: 'border-l-secondary text-secondary',\n  accent: 'border-l-accent text-accent',\n}\n\nconst variantClasses = computed(() => {\n  return VARIANT_STYLES[props.variant] || VARIANT_STYLES.default\n})\n</script>\n\n<style scoped>\n.j-section-title {\n  position: relative;\n  display: flex;\n  flex-direction: column;\n  gap: 0.375rem;\n  padding: 0.75rem 1rem;\n  border-left: 3px solid;\n  border-radius: 0.375rem;\n  background: hsl(var(--card));\n  box-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05);\n  transition: all 0.2s ease;\n  overflow: hidden;\n}\n\n.j-section-title::before {\n  content: '';\n  position: absolute;\n  top: 0;\n  left: 0;\n  right: 0;\n  height: 2px;\n  background: currentColor;\n  opacity: 0.15;\n}\n\n.j-section-title:hover {\n  box-shadow: 0 2px 4px 0 rgb(0 0 0 / 0.08);\n  transform: translateY(-1px);\n}\n\n.j-section-title-content {\n  display: flex;\n  align-items: flex-start;\n  gap: 0.625rem;\n}\n\n.j-section-title-icon {\n  width: 1.125rem;\n  height: 1.125rem;\n  flex-shrink: 0;\n  margin-top: 0.125rem;\n  color: currentColor;\n}\n\n.j-section-title-text-wrapper {\n  flex: 1;\n  display: flex;\n  flex-direction: column;\n  gap: 0.25rem;\n}\n\n.j-section-title-text {\n  font-size: 0.9375rem;\n  font-weight: 600;\n  color: hsl(var(--foreground));\n  line-height: 1.3;\n  letter-spacing: -0.01em;\n}\n\n.j-section-title-subtitle-text {\n  font-size: 0.8125rem;\n  color: hsl(var(--muted-foreground));\n  line-height: 1.4;\n}\n</style>\n"],"names":["props","__props","VARIANT_STYLES","variantClasses","computed","_createElementBlock","_unref","cn","_createElementVNode","_hoisted_1","_createBlock","JIcon","_hoisted_2","_hoisted_3","_toDisplayString","_hoisted_4"],"mappings":"8qCAkBA,MAAMA,EAAQC,EAIRC,EAAsD,CAC1D,QAAS,uDACT,QAAS,gCACT,UAAW,oCACX,OAAQ,6BAAA,EAGJC,EAAiBC,EAAAA,SAAS,IACvBF,EAAeF,EAAM,OAAO,GAAKE,EAAe,OACxD,8BA9BCG,EAAAA,mBAQM,MAAA,CARA,uBAAOC,EAAAA,MAAAC,IAAA,EAAE,kBAAoBJ,QAAgBH,EAAM,KAAK,CAAA,CAAA,GAC5DQ,EAAAA,mBAMM,MANNC,EAMM,CALSR,EAAA,oBAAbS,EAAAA,YAA+DJ,EAAAA,MAAAK,EAAAA,OAAA,EAAA,OAA3C,KAAMV,EAAA,KAAM,MAAM,sBAAA,gDACtCO,EAAAA,mBAGM,MAHNI,EAGM,CAFJJ,EAAAA,mBAAiD,KAAjDK,EAAiDC,EAAAA,gBAAbb,EAAA,KAAK,EAAA,CAAA,EAChCA,EAAA,wBAATI,EAAAA,mBAAqE,IAArEU,EAAqED,EAAAA,gBAAfb,EAAA,QAAQ,EAAA,CAAA"}