{"version":3,"file":"drawer2.mjs","sources":["../../../../../../packages/components/drawer/src/drawer.vue"],"sourcesContent":["<template>\n  <teleport v-if=\"isClient\" to=\"body\" :disabled=\"!appendToBody\">\n    <transition\n      :name=\"ns.b('fade')\"\n      @after-enter=\"afterEnter\"\n      @after-leave=\"afterLeave\"\n      @before-leave=\"beforeLeave\"\n    >\n      <b-overlay\n        v-show=\"visible\"\n        :mask=\"modal\"\n        :overlay-class=\"modalClass\"\n        :z-index=\"zIndex\"\n        @click=\"onModalClick\"\n      >\n        <b-focus-trap\n          loop\n          :trapped=\"visible\"\n          :focus-trap-el=\"drawerRef\"\n          :focus-start-el=\"focusStartRef\"\n          @release-requested=\"onCloseRequested\"\n        >\n          <div\n            ref=\"drawerRef\"\n            aria-modal=\"true\"\n            :aria-label=\"title || undefined\"\n            :aria-labelledby=\"!title ? titleId : undefined\"\n            :aria-describedby=\"bodyId\"\n            :class=\"[ns.b(), direction, visible && 'open', containerClass]\"\n            :style=\"\n              isHorizontal ? 'width: ' + drawerSize : 'height: ' + drawerSize\n            \"\n            role=\"dialog\"\n            data-test-name=\"drawer\"\n            data-test-variant=\"\"\n            data-test-state=\"\"\n            @click.stop\n          >\n            <span ref=\"focusStartRef\" :class=\"ns.e('sr-focus')\" tabindex=\"-1\" />\n            <header v-if=\"withHeader\" :class=\"ns.e('header')\">\n              <slot\n                name=\"header\"\n                :close=\"handleClose\"\n                :title-id=\"titleId\"\n                :title-class=\"ns.e('title')\"\n              >\n                <h4 :id=\"titleId\" role=\"heading\" :class=\"ns.e('title')\">\n                  {{ title }}\n                </h4>\n              </slot>\n\n              <b-button\n                v-if=\"showClose\"\n                small\n                ghost\n                :aria-label=\"t('b.drawer.close')\"\n                :icon=\"Close\"\n                @click=\"handleClose\"\n              />\n            </header>\n            <template v-if=\"rendered\">\n              <div :id=\"bodyId\" :class=\"ns.e('body')\">\n                <slot />\n              </div>\n            </template>\n            <div v-if=\"$slots.footer\" :class=\"ns.e('footer')\">\n              <slot name=\"footer\" />\n            </div>\n          </div>\n        </b-focus-trap>\n      </b-overlay>\n    </transition>\n  </teleport>\n</template>\n\n<script lang=\"ts\">\nimport { computed, defineComponent, ref } from 'vue'\nimport { useMounted } from '@vueuse/core'\nimport { Close } from '@bigin/icons-vue'\n\nimport { BOverlay } from '@bigin/components/overlay'\nimport BFocusTrap from '@bigin/components/focus-trap'\nimport { useDialog } from '@bigin/components/dialog'\nimport BButton from '@bigin/components/button'\nimport { addUnit } from '@bigin/utils'\nimport { useLocale, useNamespace } from '@bigin/hooks'\nimport { drawerEmits, drawerProps } from './drawer'\n\nexport default defineComponent({\n  name: 'BDrawer',\n  components: {\n    BOverlay,\n    BFocusTrap,\n    BButton,\n  },\n  props: drawerProps,\n  emits: drawerEmits,\n\n  setup(props) {\n    const drawerRef = ref<HTMLElement>()\n    const focusStartRef = ref<HTMLElement>()\n    const ns = useNamespace('drawer')\n    const { t } = useLocale()\n    const isClient = useMounted()\n\n    const isHorizontal = computed(\n      () => props.direction === 'rtl' || props.direction === 'ltr'\n    )\n    const drawerSize = computed(() =>\n      addUnit(isHorizontal.value ? props.width : props.height)\n    )\n\n    return {\n      ...useDialog(props, drawerRef),\n      drawerRef,\n      focusStartRef,\n      isHorizontal,\n      drawerSize,\n      ns,\n      t,\n      Close,\n      isClient,\n    }\n  },\n})\n</script>\n"],"names":["_openBlock","_createBlock","_Teleport","_createVNode","_Transition","_withDirectives","_createElementVNode","_normalizeClass","_normalizeStyle","_withModifiers","_createElementBlock","_renderSlot","_toDisplayString","_createCommentVNode"],"mappings":"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"}