{"version":3,"file":"ExpansionPanel.cjs","sources":["../../common/ExpansionPanel/ExpansionPanel.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { VNode } from \"vue\";\n\nimport { Icon } from \"../Icon\";\nimport { ExpansionPanelClassesKey, ExpansionPanelProps } from \"./types\";\n\nconst {\n  expand = false,\n  flushedPanel = false,\n  borderRadiusTop = true,\n  borderRadiusBottom = false,\n  showArrowIcon = true,\n  title = \"\",\n  text = \"\",\n  id = \"\",\n  classes = {} as Partial<Record<ExpansionPanelClassesKey, string>>,\n  arrowDownIcon = \"chevron-down-solid-icon\",\n  arrowUpIcon = \"chevron-up-solid-icon\",\n} = defineProps<ExpansionPanelProps>();\n\ndefineSlots<{\n  panelTitle?(): VNode;\n  panelArrowIcon?(): VNode;\n  panelBody?(): VNode;\n}>();\n\nconst emits = defineEmits<{\n  (e: \"onToggle\", panelExpand: boolean): void;\n}>();\n</script>\n\n<template>\n  <div\n    :id=\"id\"\n    data-accordion=\"collapse\"\n    :class=\"[classes?.container]\"\n    :aria-expanded=\"expand\"\n    :aria-controls=\"text || 'expansion-panel-control'\"\n    :aria-label=\"title || 'expansion-panel-label'\"\n    data-testid=\"expansion-root\"\n  >\n    <h2>\n      <button\n        type=\"button\"\n        :class=\"[\n          'panel-heading',\n          { 'panel-active': classes?.activePanel || expand, 'panel-flushed': classes?.flushedPanel || flushedPanel, 'rounded-t-lg': borderRadiusTop },\n          classes?.headingContainer,\n        ]\"\n        :data-accordion-target=\"`#accordion-collapse-body-${id || '0'}`\"\n        :aria-expanded=\"expand\"\n        data-testid=\"expansion-title\"\n        aria-controls=\"accordion-collapse-body\"\n        @click=\"emits('onToggle', expand)\"\n      >\n        <span v-if=\"!$slots?.panelTitle && title\" :class=\"['flex-1']\">{{ title }}</span>\n        <span v-if=\"$slots?.panelTitle\" :class=\"['flex-1']\">\n          <slot name=\"panelTitle\" />\n        </span>\n        <Icon\n          v-if=\"!$slots?.panelArrowIcon && showArrowIcon\"\n          :name=\"expand ? arrowUpIcon : arrowDownIcon\"\n          size=\"24\"\n          :class=\"['w-6', classes?.arrowIcon || '']\"\n        />\n        <template v-if=\"$slots?.panelArrowIcon && showArrowIcon\">\n          <slot name=\"panelArrowIcon\" />\n        </template>\n      </button>\n    </h2>\n    <div :class=\"[{ hidden: !expand }]\" aria-labelledby=\"accordion-collapse-heading\">\n      <div\n        :class=\"[\n          'panel-body',\n          { 'rounded-b-lg': borderRadiusBottom, 'panel-flushed': classes?.flushedPanel || flushedPanel },\n          classes?.bodyContainer,\n        ]\"\n        data-testid=\"expansion-description\"\n      >\n        <span v-if=\"!$slots?.panelBody && text\">{{ text }}</span>\n        <template v-if=\"$slots?.panelBody\">\n          <slot name=\"panelBody\" />\n        </template>\n      </div>\n    </div>\n  </div>\n</template>\n\n<style scoped>\n@reference \"../../styles/main.css\";\n\n.panel-heading {\n  @apply flex items-center bg-app-white w-full p-5 font-medium text-base text-left text-app-gray-500 border border-app-gray-200 hover:bg-app-gray-100 dark:hover:bg-app-gray-800 dark:border-app-gray-700 dark:bg-app-gray-900 dark:text-app-gray-400;\n}\n\n.panel-body {\n  @apply text-app-gray-500 text-sm p-5 font-normal border border-app-gray-200 bg-app-white dark:border-app-gray-700 dark:bg-app-gray-900 dark:text-app-gray-400;\n}\n\n.panel-active {\n  @apply text-app-gray-900 bg-app-gray-100 dark:bg-app-gray-800 dark:text-app-white;\n}\n\n.panel-flushed {\n  @apply bg-transparent border-t-0 border-x-0;\n}\n</style>\n"],"names":["emits","__emit","_createElementBlock","__props","_normalizeClass","_createElementVNode","_cache","$event","$slots","_hoisted_3","_toDisplayString","_openBlock","_hoisted_4","_renderSlot","_ctx","_createBlock","_unref","Icon"],"mappings":"wzBA0BA,MAAMA,EAAQC,8BAMZC,EAAAA,mBAqDM,MAAA,CApDH,GAAIC,EAAA,GACL,iBAAe,WACd,MAAKC,EAAAA,eAAA,CAAGD,EAAA,SAAS,SAAS,CAAA,EAC1B,gBAAeA,EAAA,OACf,gBAAeA,EAAA,MAAI,0BACnB,aAAYA,EAAA,OAAK,wBAClB,cAAY,gBAAA,GAEZE,EAAAA,mBA4BK,KAAA,KAAA,CA3BHA,EAAAA,mBA0BS,SAAA,CAzBP,KAAK,SACJ,MAAKD,EAAAA,eAAA,iCAA2DD,EAAA,SAAS,aAAeA,EAAA,OAAM,gBAAmBA,EAAA,SAAS,cAAgBA,EAAA,aAAY,eAAkBA,EAAA,eAAA,EAA6BA,EAAA,SAAS,gBAAA,GAK9M,oDAAmDA,EAAA,IAAE,GAAA,GACrD,gBAAeA,EAAA,OAChB,cAAY,kBACZ,gBAAc,0BACb,QAAKG,EAAA,CAAA,IAAAA,EAAA,CAAA,EAAAC,GAAEP,EAAK,WAAaG,EAAA,MAAM,EAAA,IAEnBK,EAAAA,QAAQ,YAAcL,EAAA,qBAAnCD,qBAAgF,OAAhFO,EAAgFC,EAAAA,gBAAfP,EAAA,KAAK,EAAA,CAAA,+BAC1DK,EAAAA,QAAQ,YAApBG,EAAAA,YAAAT,EAAAA,mBAEO,OAFPU,EAEO,CADLC,EAAAA,WAA0BC,EAAA,OAAA,aAAA,CAAA,EAAA,OAAA,EAAA,CAAA,iCAGnBN,EAAAA,QAAQ,gBAAkBL,EAAA,6BADnCY,EAAAA,YAKEC,QAAAC,EAAAA,SAAA,EAAA,OAHC,KAAMd,EAAA,OAASA,EAAA,YAAcA,EAAA,cAC9B,KAAK,KACJ,MAAKC,EAAAA,eAAA,CAAA,MAAUD,EAAA,SAAS,WAAS,EAAA,CAAA,CAAA,wDAEpBK,EAAAA,QAAQ,gBAAkBL,EAAA,cACxCU,EAAAA,WAA8BC,EAAA,OAAA,iBAAA,CAAA,IAAA,GAAA,OAAA,EAAA,uCAIpCT,EAAAA,mBAcM,MAAA,CAdA,iCAAmBF,EAAA,MAAA,CAAM,CAAA,EAAK,kBAAgB,4BAAA,GAClDE,EAAAA,mBAYM,MAAA,CAXH,MAAKD,EAAAA,eAAA,cAAwD,CAAA,eAAAD,EAAA,mBAAkB,gBAAmBA,EAAA,SAAS,cAAgBA,EAAA,YAAA,EAA0BA,EAAA,SAAS,aAAA,GAK/J,cAAY,uBAAA,IAECK,EAAAA,QAAQ,WAAaL,EAAA,MAAlCQ,EAAAA,YAAAT,qBAAyD,2BAAdC,EAAA,IAAI,EAAA,CAAA,+BAC/BK,EAAAA,QAAQ,UACtBK,EAAAA,WAAyBC,EAAA,OAAA,YAAA,CAAA,IAAA,CAAA,EAAA,OAAA,EAAA"}