{"version":3,"file":"DialogRoot.cjs","sources":["../../src/Dialog/DialogRoot.vue"],"sourcesContent":["<script lang=\"ts\">\nimport type { Ref } from 'vue'\nimport { createContext } from '@/shared'\n\nexport interface DialogRootProps {\n  /** The controlled open state of the dialog. Can be binded as `v-model:open`. */\n  open?: boolean\n  /** The open state of the dialog when it is initially rendered. Use when you do not need to control its open state. */\n  defaultOpen?: boolean\n  /**\n   * The modality of the dialog When set to `true`, <br>\n   * interaction with outside elements will be disabled and only dialog content will be visible to screen readers.\n   */\n  modal?: boolean\n}\n\nexport type DialogRootEmits = {\n  /** Event handler called when the open state of the dialog changes. */\n  'update:open': [value: boolean]\n}\n\nexport interface DialogRootContext {\n  open: Readonly<Ref<boolean>>\n  modal: Ref<boolean>\n  openModal: () => void\n  onOpenChange: (value: boolean) => void\n  onOpenToggle: () => void\n  triggerElement: Ref<HTMLElement | undefined>\n  contentElement: Ref<HTMLElement | undefined>\n  contentId: string\n  titleId: string\n  descriptionId: string\n}\n\nexport const [injectDialogRootContext, provideDialogRootContext]\n  = createContext<DialogRootContext>('DialogRoot')\n</script>\n\n<script setup lang=\"ts\">\nimport { ref, toRefs } from 'vue'\nimport { useVModel } from '@vueuse/core'\n\ndefineOptions({\n  inheritAttrs: false,\n})\n\nconst props = withDefaults(defineProps<DialogRootProps>(), {\n  open: undefined,\n  defaultOpen: false,\n  modal: true,\n})\nconst emit = defineEmits<DialogRootEmits>()\n\ndefineSlots<{\n  default: (props: {\n    /** Current open state */\n    open: typeof open.value\n  }) => any\n}>()\n\nconst open = useVModel(props, 'open', emit, {\n  defaultValue: props.defaultOpen,\n  passive: (props.open === undefined) as false,\n}) as Ref<boolean>\n\nconst triggerElement = ref<HTMLElement>()\nconst contentElement = ref<HTMLElement>()\nconst { modal } = toRefs(props)\n\nprovideDialogRootContext({\n  open,\n  modal,\n  openModal: () => {\n    open.value = true\n  },\n  onOpenChange: (value) => {\n    open.value = value\n  },\n  onOpenToggle: () => {\n    open.value = !open.value\n  },\n  contentId: '',\n  titleId: '',\n  descriptionId: '',\n  triggerElement,\n  contentElement,\n})\n</script>\n\n<template>\n  <slot :open=\"open\" />\n</template>\n"],"names":["createContext","useVModel","ref","toRefs"],"mappings":";;;;;;AAkCO,MAAM,CAAC,uBAAA,EAAyB,wBAAwB,CAAA,GAC3DA,mCAAiC,YAAY;;;;;;;;;;;;;AAWjD,IAAA,MAAM,KAAQ,GAAA,OAAA;AAKd,IAAA,MAAM,IAAO,GAAA,MAAA;AASb,IAAA,MAAM,IAAO,GAAAC,cAAA,CAAU,KAAO,EAAA,MAAA,EAAQ,IAAM,EAAA;AAAA,MAC1C,cAAc,KAAM,CAAA,WAAA;AAAA,MACpB,OAAA,EAAU,MAAM,IAAS,KAAA;AAAA,KAC1B,CAAA;AAED,IAAA,MAAM,iBAAiBC,OAAiB,EAAA;AACxC,IAAA,MAAM,iBAAiBA,OAAiB,EAAA;AACxC,IAAA,MAAM,EAAE,KAAA,EAAU,GAAAC,UAAA,CAAO,KAAK,CAAA;AAE9B,IAAyB,wBAAA,CAAA;AAAA,MACvB,IAAA;AAAA,MACA,KAAA;AAAA,MACA,WAAW,MAAM;AACf,QAAA,IAAA,CAAK,KAAQ,GAAA,IAAA;AAAA,OACf;AAAA,MACA,YAAA,EAAc,CAAC,KAAU,KAAA;AACvB,QAAA,IAAA,CAAK,KAAQ,GAAA,KAAA;AAAA,OACf;AAAA,MACA,cAAc,MAAM;AAClB,QAAK,IAAA,CAAA,KAAA,GAAQ,CAAC,IAAK,CAAA,KAAA;AAAA,OACrB;AAAA,MACA,SAAW,EAAA,EAAA;AAAA,MACX,OAAS,EAAA,EAAA;AAAA,MACT,aAAe,EAAA,EAAA;AAAA,MACf,cAAA;AAAA,MACA;AAAA,KACD,CAAA;;;;;;;;;;"}