@voicenter-team/voicenter-ui-plus 3.0.4 → 3.0.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (26) hide show
  1. package/library/components/VcCheckbox/VcCheckbox.vue.mjs +1 -1
  2. package/library/components/VcDatePicker/VcDatePicker.vue.mjs +1 -1
  3. package/library/components/VcDropdown/VcDropdownItem.vue.mjs +1 -1
  4. package/library/components/VcForm/VcForm.vue.mjs +1 -1
  5. package/library/components/VcForm/VcFormItem.vue.mjs +1 -1
  6. package/library/components/VcHtmlEditor/VcHtmlEditorToolbar.vue.mjs +1 -1
  7. package/library/components/VcInput/VcInput.vue.mjs +1 -1
  8. package/library/components/VcMdEditor/VcMdEditor.vue.mjs +1 -1
  9. package/library/components/VcMdEditor/VcMdEditorToolbar.vue.mjs +1 -1
  10. package/library/components/VcPluginOverlays/VcPluginOverlays.vue.mjs +11 -6
  11. package/library/components/VcPopover/VcConfirmPopover.vue.mjs +4 -2
  12. package/library/components/VcRadio/VcRadio.vue.mjs +1 -1
  13. package/library/components/VcSelect/VcSelect.vue.mjs +1 -1
  14. package/library/components/VcSlider/VcSlider.vue.mjs +1 -1
  15. package/library/plugin.mjs +9 -3
  16. package/library/plugin.mjs.br +0 -0
  17. package/library/plugin.mjs.gz +0 -0
  18. package/library/types/components/VcPluginOverlays/VcPluginOverlays.vue.d.ts +4 -0
  19. package/library/types/components/VcPopover/VcConfirmPopover.vue.d.ts +8 -0
  20. package/library/types/types/Entry.types.d.ts +15 -0
  21. package/library/types/types/Overlay.types.d.ts +7 -0
  22. package/library/types/utils/mountPluginOverlays.d.ts +9 -3
  23. package/library/utils/globalSingleton.mjs +11 -1
  24. package/library/utils/mountPluginOverlays.mjs +11 -9
  25. package/package.json +1 -1
  26. /package/library/assets/node_modules/element-plus/theme-chalk/src/{tooltip.css → dropdown-item.css} +0 -0
@@ -1,6 +1,6 @@
1
1
  import { defineComponent, toRef, openBlock, createBlock, unref, normalizeClass, withCtx, renderSlot } from "vue";
2
2
  import { ElCheckbox } from "element-plus";
3
- import '../../assets/node_modules/element-plus/theme-chalk/src/popover.css';import '../../assets/node_modules/element-plus/theme-chalk/src/transfer.css';import '../../assets/node_modules/element-plus/theme-chalk/src/tree.css';import '../../assets/node_modules/element-plus/theme-chalk/src/text.css';import '../../assets/node_modules/element-plus/theme-chalk/src/slider.css';import '../../assets/node_modules/element-plus/theme-chalk/src/color-picker.css';import '../../assets/node_modules/element-plus/theme-chalk/src/color-picker-panel.css';import '../../assets/node_modules/element-plus/theme-chalk/src/tooltip.css';import '../../assets/node_modules/element-plus/theme-chalk/src/date-picker-panel.css';import '../../assets/node_modules/element-plus/theme-chalk/src/button.css';import '../../assets/node_modules/element-plus/theme-chalk/src/checkbox-group.css';import '../../assets/node_modules/element-plus/theme-chalk/src/checkbox.css';import '../../assets/node_modules/element-plus/theme-chalk/src/radio-button.css';import '../../assets/node_modules/element-plus/theme-chalk/src/radio-group.css';import '../../assets/node_modules/element-plus/theme-chalk/src/radio.css';import '../../assets/node_modules/element-plus/theme-chalk/src/select.css';import '../../assets/node_modules/element-plus/theme-chalk/src/option-group.css';import '../../assets/node_modules/element-plus/theme-chalk/src/option.css';import '../../assets/node_modules/element-plus/theme-chalk/src/tag.css';import '../../assets/node_modules/element-plus/theme-chalk/src/autocomplete.css';import '../../assets/node_modules/element-plus/theme-chalk/src/popper.css';import '../../assets/node_modules/element-plus/theme-chalk/src/scrollbar.css';import '../../assets/node_modules/element-plus/theme-chalk/src/input-number.css';import '../../assets/node_modules/element-plus/theme-chalk/src/input.css';import '../../assets/node_modules/element-plus/theme-chalk/src/form-item.css';import '../../assets/node_modules/element-plus/theme-chalk/src/form.css';import '../../assets/node_modules/element-plus/theme-chalk/src/base.css';
3
+ import '../../assets/node_modules/element-plus/theme-chalk/src/popover.css';import '../../assets/node_modules/element-plus/theme-chalk/src/transfer.css';import '../../assets/node_modules/element-plus/theme-chalk/src/tree.css';import '../../assets/node_modules/element-plus/theme-chalk/src/text.css';import '../../assets/node_modules/element-plus/theme-chalk/src/slider.css';import '../../assets/node_modules/element-plus/theme-chalk/src/color-picker.css';import '../../assets/node_modules/element-plus/theme-chalk/src/color-picker-panel.css';import '../../assets/node_modules/element-plus/theme-chalk/src/dropdown-item.css';import '../../assets/node_modules/element-plus/theme-chalk/src/date-picker-panel.css';import '../../assets/node_modules/element-plus/theme-chalk/src/button.css';import '../../assets/node_modules/element-plus/theme-chalk/src/checkbox-group.css';import '../../assets/node_modules/element-plus/theme-chalk/src/checkbox.css';import '../../assets/node_modules/element-plus/theme-chalk/src/radio-button.css';import '../../assets/node_modules/element-plus/theme-chalk/src/radio-group.css';import '../../assets/node_modules/element-plus/theme-chalk/src/radio.css';import '../../assets/node_modules/element-plus/theme-chalk/src/select.css';import '../../assets/node_modules/element-plus/theme-chalk/src/option-group.css';import '../../assets/node_modules/element-plus/theme-chalk/src/option.css';import '../../assets/node_modules/element-plus/theme-chalk/src/tag.css';import '../../assets/node_modules/element-plus/theme-chalk/src/autocomplete.css';import '../../assets/node_modules/element-plus/theme-chalk/src/popper.css';import '../../assets/node_modules/element-plus/theme-chalk/src/scrollbar.css';import '../../assets/node_modules/element-plus/theme-chalk/src/input-number.css';import '../../assets/node_modules/element-plus/theme-chalk/src/input.css';import '../../assets/node_modules/element-plus/theme-chalk/src/form-item.css';import '../../assets/node_modules/element-plus/theme-chalk/src/form.css';import '../../assets/node_modules/element-plus/theme-chalk/src/base.css';
4
4
  import '../../assets/components/VcCheckbox/VcCheckbox.css';/* empty css */
5
5
  /* empty css */
6
6
  /* empty css */
@@ -1,6 +1,6 @@
1
1
  import { defineComponent, ref, computed, markRaw, h, openBlock, createBlock, unref, mergeProps, createSlots, withCtx, renderSlot } from "vue";
2
2
  import { ElDatePicker } from "element-plus";
3
- import '../../assets/components/VcIcon/VcIcon.css';import '../../assets/node_modules/element-plus/theme-chalk/src/tooltip.css';import '../../assets/node_modules/element-plus/theme-chalk/src/date-picker-panel.css';import '../../assets/node_modules/element-plus/theme-chalk/src/button.css';import '../../assets/node_modules/element-plus/theme-chalk/src/scrollbar.css';import '../../assets/node_modules/element-plus/theme-chalk/src/input.css';import '../../assets/node_modules/element-plus/theme-chalk/src/popper.css';import '../../assets/node_modules/element-plus/theme-chalk/src/base.css';
3
+ import '../../assets/components/VcIcon/VcIcon.css';import '../../assets/node_modules/element-plus/theme-chalk/src/dropdown-item.css';import '../../assets/node_modules/element-plus/theme-chalk/src/date-picker-panel.css';import '../../assets/node_modules/element-plus/theme-chalk/src/button.css';import '../../assets/node_modules/element-plus/theme-chalk/src/scrollbar.css';import '../../assets/node_modules/element-plus/theme-chalk/src/input.css';import '../../assets/node_modules/element-plus/theme-chalk/src/popper.css';import '../../assets/node_modules/element-plus/theme-chalk/src/base.css';
4
4
  import '../../assets/components/VcDatePicker/VcDatePicker.css';/* empty css */
5
5
  /* empty css */
6
6
  /* empty css */
@@ -1,6 +1,6 @@
1
1
  import { defineComponent, openBlock, createBlock, unref, mergeProps, withCtx, createElementVNode, normalizeClass, renderSlot, createCommentVNode, toDisplayString } from "vue";
2
2
  import { ElDropdownItem } from "element-plus";
3
- import '../../assets/components/VcIcon/VcIcon.css';import '../../assets/node_modules/element-plus/theme-chalk/src/tooltip.css';import '../../assets/node_modules/element-plus/theme-chalk/src/base.css';
3
+ import '../../assets/components/VcIcon/VcIcon.css';import '../../assets/node_modules/element-plus/theme-chalk/src/dropdown-item.css';import '../../assets/node_modules/element-plus/theme-chalk/src/base.css';
4
4
  import '../../assets/components/VcDropdown/VcDropdownItem.css';/* empty css */
5
5
  /* empty css */
6
6
  import _sfc_main$1 from "../VcIcon/VcIcon.vue.mjs";
@@ -1,7 +1,7 @@
1
1
  import { defineComponent, inject, ref, computed, openBlock, createBlock, unref, mergeProps, withCtx, renderSlot } from "vue";
2
2
  import { convertToUnit } from "../../utils/helpers.mjs";
3
3
  import { ElForm } from "element-plus";
4
- import '../../assets/node_modules/element-plus/theme-chalk/src/popover.css';import '../../assets/node_modules/element-plus/theme-chalk/src/transfer.css';import '../../assets/node_modules/element-plus/theme-chalk/src/tree.css';import '../../assets/node_modules/element-plus/theme-chalk/src/text.css';import '../../assets/node_modules/element-plus/theme-chalk/src/slider.css';import '../../assets/node_modules/element-plus/theme-chalk/src/color-picker.css';import '../../assets/node_modules/element-plus/theme-chalk/src/color-picker-panel.css';import '../../assets/node_modules/element-plus/theme-chalk/src/tooltip.css';import '../../assets/node_modules/element-plus/theme-chalk/src/date-picker-panel.css';import '../../assets/node_modules/element-plus/theme-chalk/src/button.css';import '../../assets/node_modules/element-plus/theme-chalk/src/checkbox-group.css';import '../../assets/node_modules/element-plus/theme-chalk/src/checkbox.css';import '../../assets/node_modules/element-plus/theme-chalk/src/radio-button.css';import '../../assets/node_modules/element-plus/theme-chalk/src/radio-group.css';import '../../assets/node_modules/element-plus/theme-chalk/src/radio.css';import '../../assets/node_modules/element-plus/theme-chalk/src/select.css';import '../../assets/node_modules/element-plus/theme-chalk/src/option-group.css';import '../../assets/node_modules/element-plus/theme-chalk/src/option.css';import '../../assets/node_modules/element-plus/theme-chalk/src/tag.css';import '../../assets/node_modules/element-plus/theme-chalk/src/autocomplete.css';import '../../assets/node_modules/element-plus/theme-chalk/src/popper.css';import '../../assets/node_modules/element-plus/theme-chalk/src/scrollbar.css';import '../../assets/node_modules/element-plus/theme-chalk/src/input-number.css';import '../../assets/node_modules/element-plus/theme-chalk/src/input.css';import '../../assets/node_modules/element-plus/theme-chalk/src/form-item.css';import '../../assets/node_modules/element-plus/theme-chalk/src/form.css';import '../../assets/node_modules/element-plus/theme-chalk/src/base.css';/* empty css */
4
+ import '../../assets/node_modules/element-plus/theme-chalk/src/popover.css';import '../../assets/node_modules/element-plus/theme-chalk/src/transfer.css';import '../../assets/node_modules/element-plus/theme-chalk/src/tree.css';import '../../assets/node_modules/element-plus/theme-chalk/src/text.css';import '../../assets/node_modules/element-plus/theme-chalk/src/slider.css';import '../../assets/node_modules/element-plus/theme-chalk/src/color-picker.css';import '../../assets/node_modules/element-plus/theme-chalk/src/color-picker-panel.css';import '../../assets/node_modules/element-plus/theme-chalk/src/dropdown-item.css';import '../../assets/node_modules/element-plus/theme-chalk/src/date-picker-panel.css';import '../../assets/node_modules/element-plus/theme-chalk/src/button.css';import '../../assets/node_modules/element-plus/theme-chalk/src/checkbox-group.css';import '../../assets/node_modules/element-plus/theme-chalk/src/checkbox.css';import '../../assets/node_modules/element-plus/theme-chalk/src/radio-button.css';import '../../assets/node_modules/element-plus/theme-chalk/src/radio-group.css';import '../../assets/node_modules/element-plus/theme-chalk/src/radio.css';import '../../assets/node_modules/element-plus/theme-chalk/src/select.css';import '../../assets/node_modules/element-plus/theme-chalk/src/option-group.css';import '../../assets/node_modules/element-plus/theme-chalk/src/option.css';import '../../assets/node_modules/element-plus/theme-chalk/src/tag.css';import '../../assets/node_modules/element-plus/theme-chalk/src/autocomplete.css';import '../../assets/node_modules/element-plus/theme-chalk/src/popper.css';import '../../assets/node_modules/element-plus/theme-chalk/src/scrollbar.css';import '../../assets/node_modules/element-plus/theme-chalk/src/input-number.css';import '../../assets/node_modules/element-plus/theme-chalk/src/input.css';import '../../assets/node_modules/element-plus/theme-chalk/src/form-item.css';import '../../assets/node_modules/element-plus/theme-chalk/src/form.css';import '../../assets/node_modules/element-plus/theme-chalk/src/base.css';/* empty css */
5
5
  /* empty css */
6
6
  /* empty css */
7
7
  /* empty css */
@@ -1,6 +1,6 @@
1
1
  import { defineComponent, inject, ref, computed, openBlock, createBlock, unref, mergeProps, withCtx, renderSlot, normalizeClass, createSlots, createCommentVNode, createElementBlock, Fragment } from "vue";
2
2
  import { ElFormItem } from "element-plus";
3
- import '../../assets/components/VcForm/UiComponents/VcInputLabel.css';import '../../assets/node_modules/element-plus/theme-chalk/src/popover.css';import '../../assets/node_modules/element-plus/theme-chalk/src/transfer.css';import '../../assets/node_modules/element-plus/theme-chalk/src/tree.css';import '../../assets/node_modules/element-plus/theme-chalk/src/text.css';import '../../assets/node_modules/element-plus/theme-chalk/src/slider.css';import '../../assets/node_modules/element-plus/theme-chalk/src/color-picker.css';import '../../assets/node_modules/element-plus/theme-chalk/src/color-picker-panel.css';import '../../assets/node_modules/element-plus/theme-chalk/src/tooltip.css';import '../../assets/node_modules/element-plus/theme-chalk/src/date-picker-panel.css';import '../../assets/node_modules/element-plus/theme-chalk/src/button.css';import '../../assets/node_modules/element-plus/theme-chalk/src/checkbox-group.css';import '../../assets/node_modules/element-plus/theme-chalk/src/checkbox.css';import '../../assets/node_modules/element-plus/theme-chalk/src/radio-button.css';import '../../assets/node_modules/element-plus/theme-chalk/src/radio-group.css';import '../../assets/node_modules/element-plus/theme-chalk/src/radio.css';import '../../assets/node_modules/element-plus/theme-chalk/src/select.css';import '../../assets/node_modules/element-plus/theme-chalk/src/option-group.css';import '../../assets/node_modules/element-plus/theme-chalk/src/option.css';import '../../assets/node_modules/element-plus/theme-chalk/src/tag.css';import '../../assets/node_modules/element-plus/theme-chalk/src/autocomplete.css';import '../../assets/node_modules/element-plus/theme-chalk/src/popper.css';import '../../assets/node_modules/element-plus/theme-chalk/src/scrollbar.css';import '../../assets/node_modules/element-plus/theme-chalk/src/input-number.css';import '../../assets/node_modules/element-plus/theme-chalk/src/input.css';import '../../assets/node_modules/element-plus/theme-chalk/src/form-item.css';import '../../assets/node_modules/element-plus/theme-chalk/src/form.css';import '../../assets/node_modules/element-plus/theme-chalk/src/base.css';
3
+ import '../../assets/components/VcForm/UiComponents/VcInputLabel.css';import '../../assets/node_modules/element-plus/theme-chalk/src/popover.css';import '../../assets/node_modules/element-plus/theme-chalk/src/transfer.css';import '../../assets/node_modules/element-plus/theme-chalk/src/tree.css';import '../../assets/node_modules/element-plus/theme-chalk/src/text.css';import '../../assets/node_modules/element-plus/theme-chalk/src/slider.css';import '../../assets/node_modules/element-plus/theme-chalk/src/color-picker.css';import '../../assets/node_modules/element-plus/theme-chalk/src/color-picker-panel.css';import '../../assets/node_modules/element-plus/theme-chalk/src/dropdown-item.css';import '../../assets/node_modules/element-plus/theme-chalk/src/date-picker-panel.css';import '../../assets/node_modules/element-plus/theme-chalk/src/button.css';import '../../assets/node_modules/element-plus/theme-chalk/src/checkbox-group.css';import '../../assets/node_modules/element-plus/theme-chalk/src/checkbox.css';import '../../assets/node_modules/element-plus/theme-chalk/src/radio-button.css';import '../../assets/node_modules/element-plus/theme-chalk/src/radio-group.css';import '../../assets/node_modules/element-plus/theme-chalk/src/radio.css';import '../../assets/node_modules/element-plus/theme-chalk/src/select.css';import '../../assets/node_modules/element-plus/theme-chalk/src/option-group.css';import '../../assets/node_modules/element-plus/theme-chalk/src/option.css';import '../../assets/node_modules/element-plus/theme-chalk/src/tag.css';import '../../assets/node_modules/element-plus/theme-chalk/src/autocomplete.css';import '../../assets/node_modules/element-plus/theme-chalk/src/popper.css';import '../../assets/node_modules/element-plus/theme-chalk/src/scrollbar.css';import '../../assets/node_modules/element-plus/theme-chalk/src/input-number.css';import '../../assets/node_modules/element-plus/theme-chalk/src/input.css';import '../../assets/node_modules/element-plus/theme-chalk/src/form-item.css';import '../../assets/node_modules/element-plus/theme-chalk/src/form.css';import '../../assets/node_modules/element-plus/theme-chalk/src/base.css';
4
4
  import '../../assets/components/VcForm/VcFormItem.css';/* empty css */
5
5
  /* empty css */
6
6
  /* empty css */
@@ -1,6 +1,6 @@
1
1
  import { defineComponent, ref, computed, openBlock, createElementBlock, createElementVNode, createVNode, withCtx, Fragment, renderList, unref, toDisplayString, createBlock, createTextVNode, createCommentVNode } from "vue";
2
2
  import { ElTooltip } from "element-plus";
3
- import '../../assets/components/VcIcon/VcIcon.css';import '../../assets/components/VcButton/VcButtonIcon.css';import '../../assets/components/VcButton/VcButton.css';import '../../assets/components/VcPopover/VcPopover.css';import '../../assets/node_modules/element-plus/theme-chalk/src/tooltip.css';import '../../assets/node_modules/element-plus/theme-chalk/src/popper.css';import '../../assets/node_modules/element-plus/theme-chalk/src/base.css';/* empty css */
3
+ import '../../assets/components/VcIcon/VcIcon.css';import '../../assets/components/VcButton/VcButtonIcon.css';import '../../assets/components/VcButton/VcButton.css';import '../../assets/components/VcPopover/VcPopover.css';import '../../assets/node_modules/element-plus/theme-chalk/src/dropdown-item.css';import '../../assets/node_modules/element-plus/theme-chalk/src/popper.css';import '../../assets/node_modules/element-plus/theme-chalk/src/base.css';/* empty css */
4
4
  /* empty css */
5
5
  /* empty css */
6
6
  import { htmlHeadingMenuItems, htmlInsertMenuItems, getParameterDisplayLabel } from "./htmlEditor.config.mjs";
@@ -1,6 +1,6 @@
1
1
  import { defineComponent, ref, computed, withDirectives, openBlock, createBlock, unref, mergeProps, createSlots, withCtx, createVNode, normalizeStyle, normalizeClass, createCommentVNode } from "vue";
2
2
  import { ElInput } from "element-plus";
3
- import '../../assets/components/VcIcon/VcIcon.css';import '../../assets/node_modules/element-plus/theme-chalk/src/popover.css';import '../../assets/node_modules/element-plus/theme-chalk/src/transfer.css';import '../../assets/node_modules/element-plus/theme-chalk/src/tree.css';import '../../assets/node_modules/element-plus/theme-chalk/src/text.css';import '../../assets/node_modules/element-plus/theme-chalk/src/slider.css';import '../../assets/node_modules/element-plus/theme-chalk/src/color-picker.css';import '../../assets/node_modules/element-plus/theme-chalk/src/color-picker-panel.css';import '../../assets/node_modules/element-plus/theme-chalk/src/tooltip.css';import '../../assets/node_modules/element-plus/theme-chalk/src/date-picker-panel.css';import '../../assets/node_modules/element-plus/theme-chalk/src/button.css';import '../../assets/node_modules/element-plus/theme-chalk/src/checkbox-group.css';import '../../assets/node_modules/element-plus/theme-chalk/src/checkbox.css';import '../../assets/node_modules/element-plus/theme-chalk/src/radio-button.css';import '../../assets/node_modules/element-plus/theme-chalk/src/radio-group.css';import '../../assets/node_modules/element-plus/theme-chalk/src/radio.css';import '../../assets/node_modules/element-plus/theme-chalk/src/select.css';import '../../assets/node_modules/element-plus/theme-chalk/src/option-group.css';import '../../assets/node_modules/element-plus/theme-chalk/src/option.css';import '../../assets/node_modules/element-plus/theme-chalk/src/tag.css';import '../../assets/node_modules/element-plus/theme-chalk/src/autocomplete.css';import '../../assets/node_modules/element-plus/theme-chalk/src/popper.css';import '../../assets/node_modules/element-plus/theme-chalk/src/scrollbar.css';import '../../assets/node_modules/element-plus/theme-chalk/src/input-number.css';import '../../assets/node_modules/element-plus/theme-chalk/src/input.css';import '../../assets/node_modules/element-plus/theme-chalk/src/form-item.css';import '../../assets/node_modules/element-plus/theme-chalk/src/form.css';import '../../assets/node_modules/element-plus/theme-chalk/src/base.css';
3
+ import '../../assets/components/VcIcon/VcIcon.css';import '../../assets/node_modules/element-plus/theme-chalk/src/popover.css';import '../../assets/node_modules/element-plus/theme-chalk/src/transfer.css';import '../../assets/node_modules/element-plus/theme-chalk/src/tree.css';import '../../assets/node_modules/element-plus/theme-chalk/src/text.css';import '../../assets/node_modules/element-plus/theme-chalk/src/slider.css';import '../../assets/node_modules/element-plus/theme-chalk/src/color-picker.css';import '../../assets/node_modules/element-plus/theme-chalk/src/color-picker-panel.css';import '../../assets/node_modules/element-plus/theme-chalk/src/dropdown-item.css';import '../../assets/node_modules/element-plus/theme-chalk/src/date-picker-panel.css';import '../../assets/node_modules/element-plus/theme-chalk/src/button.css';import '../../assets/node_modules/element-plus/theme-chalk/src/checkbox-group.css';import '../../assets/node_modules/element-plus/theme-chalk/src/checkbox.css';import '../../assets/node_modules/element-plus/theme-chalk/src/radio-button.css';import '../../assets/node_modules/element-plus/theme-chalk/src/radio-group.css';import '../../assets/node_modules/element-plus/theme-chalk/src/radio.css';import '../../assets/node_modules/element-plus/theme-chalk/src/select.css';import '../../assets/node_modules/element-plus/theme-chalk/src/option-group.css';import '../../assets/node_modules/element-plus/theme-chalk/src/option.css';import '../../assets/node_modules/element-plus/theme-chalk/src/tag.css';import '../../assets/node_modules/element-plus/theme-chalk/src/autocomplete.css';import '../../assets/node_modules/element-plus/theme-chalk/src/popper.css';import '../../assets/node_modules/element-plus/theme-chalk/src/scrollbar.css';import '../../assets/node_modules/element-plus/theme-chalk/src/input-number.css';import '../../assets/node_modules/element-plus/theme-chalk/src/input.css';import '../../assets/node_modules/element-plus/theme-chalk/src/form-item.css';import '../../assets/node_modules/element-plus/theme-chalk/src/form.css';import '../../assets/node_modules/element-plus/theme-chalk/src/base.css';
4
4
  import '../../assets/components/VcInput/VcInput.css';/* empty css */
5
5
  /* empty css */
6
6
  /* empty css */
@@ -1,7 +1,7 @@
1
1
  import { defineComponent, useAttrs, ref, computed, onMounted, nextTick, openBlock, createBlock, unref, withCtx, createVNode, createElementVNode, normalizeStyle, normalizeClass, createElementBlock, createCommentVNode, mergeProps, isRef } from "vue";
2
2
  import { MilkdownProvider } from "@milkdown/vue";
3
3
  import _sfc_main$3 from "./VcMdEditorContent.vue.mjs";
4
- import '../../assets/components/VcButton/VcButtonIcon.css';import '../../assets/node_modules/element-plus/theme-chalk/src/tooltip.css';import '../../assets/node_modules/element-plus/theme-chalk/src/popper.css';import '../../assets/node_modules/element-plus/theme-chalk/src/base.css';import '../../assets/components/VcMdEditor/VcMdEditorContent.css';/* empty css */
4
+ import '../../assets/components/VcButton/VcButtonIcon.css';import '../../assets/node_modules/element-plus/theme-chalk/src/dropdown-item.css';import '../../assets/node_modules/element-plus/theme-chalk/src/popper.css';import '../../assets/node_modules/element-plus/theme-chalk/src/base.css';import '../../assets/components/VcMdEditor/VcMdEditorContent.css';/* empty css */
5
5
  import { useVModel } from "@vueuse/core";
6
6
  import { convertToUnit } from "../../utils/helpers.mjs";
7
7
  import { markdown } from "@codemirror/lang-markdown";
@@ -1,6 +1,6 @@
1
1
  import { defineComponent, ref, computed, openBlock, createElementBlock, createElementVNode, createVNode, withCtx, Fragment, renderList, unref, toDisplayString, createBlock, createCommentVNode, nextTick } from "vue";
2
2
  import _sfc_main$1 from "../VcPopover/VcPopover.vue.mjs";
3
- import '../../assets/components/VcIcon/VcIcon.css';import '../../assets/components/VcButton/VcButton.css';import '../../assets/node_modules/element-plus/theme-chalk/src/tooltip.css';import '../../assets/node_modules/element-plus/theme-chalk/src/popper.css';import '../../assets/node_modules/element-plus/theme-chalk/src/cascader-panel.css';import '../../assets/node_modules/element-plus/theme-chalk/src/virtual-list.css';import '../../assets/node_modules/element-plus/theme-chalk/src/scrollbar.css';import '../../assets/node_modules/element-plus/theme-chalk/src/radio.css';import '../../assets/node_modules/element-plus/theme-chalk/src/checkbox.css';import '../../assets/node_modules/element-plus/theme-chalk/src/base.css';import '../../assets/components/VcPopover/VcPopover.css';/* empty css */
3
+ import '../../assets/components/VcIcon/VcIcon.css';import '../../assets/components/VcButton/VcButton.css';import '../../assets/node_modules/element-plus/theme-chalk/src/dropdown-item.css';import '../../assets/node_modules/element-plus/theme-chalk/src/popper.css';import '../../assets/node_modules/element-plus/theme-chalk/src/cascader-panel.css';import '../../assets/node_modules/element-plus/theme-chalk/src/virtual-list.css';import '../../assets/node_modules/element-plus/theme-chalk/src/scrollbar.css';import '../../assets/node_modules/element-plus/theme-chalk/src/radio.css';import '../../assets/node_modules/element-plus/theme-chalk/src/checkbox.css';import '../../assets/node_modules/element-plus/theme-chalk/src/base.css';import '../../assets/components/VcPopover/VcPopover.css';/* empty css */
4
4
  import { headingMenuItems, listMenuItems, advancedMenuItems } from "./mdEditor.config.mjs";
5
5
  import { isGroupParameter } from "../../types/VcMdEditor.types.mjs";
6
6
  import { ElCascaderPanel, ElTooltip } from "element-plus";
@@ -7,7 +7,8 @@ import _sfc_main$3 from "../VcPopover/VcConfirmPopover.vue.mjs";
7
7
  const _sfc_main = /* @__PURE__ */ defineComponent({
8
8
  __name: "VcPluginOverlays",
9
9
  props: {
10
- notifications: { default: "default" }
10
+ notifications: { default: "default" },
11
+ appendTo: { default: "body" }
11
12
  },
12
13
  setup(__props) {
13
14
  const props = __props;
@@ -22,16 +23,20 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
22
23
  }
23
24
  return (_ctx, _cache) => {
24
25
  return openBlock(), createElementBlock(Fragment, null, [
25
- shouldRenderDefaultNotification.value ? (openBlock(), createBlock(_sfc_main$1, { key: 0 })) : createCommentVNode("", true),
26
+ shouldRenderDefaultNotification.value ? (openBlock(), createBlock(_sfc_main$1, {
27
+ key: 0,
28
+ "teleported-to": __props.appendTo
29
+ }, null, 8, ["teleported-to"])) : createCommentVNode("", true),
26
30
  (openBlock(true), createElementBlock(Fragment, null, renderList(notificationHosts.value, (item, index) => {
27
31
  return openBlock(), createBlock(_sfc_main$1, {
28
32
  key: notificationHostKey(item, index),
29
33
  group: item.group,
30
- position: item.position
31
- }, null, 8, ["group", "position"]);
34
+ position: item.position,
35
+ "teleported-to": __props.appendTo
36
+ }, null, 8, ["group", "position", "teleported-to"]);
32
37
  }), 128)),
33
- createVNode(_sfc_main$2),
34
- createVNode(_sfc_main$3)
38
+ createVNode(_sfc_main$2, { "append-to": __props.appendTo }, null, 8, ["append-to"]),
39
+ createVNode(_sfc_main$3, { "append-to": __props.appendTo }, null, 8, ["append-to"])
35
40
  ], 64);
36
41
  };
37
42
  }
@@ -21,7 +21,8 @@ const DEFAULT_PLACEMENT = "bottom-start";
21
21
  const _sfc_main = /* @__PURE__ */ defineComponent({
22
22
  __name: "VcConfirmPopover",
23
23
  props: {
24
- options: { default: () => ({}) }
24
+ options: { default: () => ({}) },
25
+ appendTo: { default: "body" }
25
26
  },
26
27
  emits: ["close", "confirm"],
27
28
  setup(__props, { expose: __expose, emit: __emit }) {
@@ -170,6 +171,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
170
171
  placement: placement.value,
171
172
  "popper-class": [BASE_CLASS, popoverOptions.value.popoverClass].join(" "),
172
173
  teleported: popoverOptions.value.teleported,
174
+ "append-to": __props.appendTo,
173
175
  "gpu-acceleration": false,
174
176
  "stop-popper-mouse-event": popoverOptions.value.mouseEvent,
175
177
  offset: popoverOptions.value.offset,
@@ -233,7 +235,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
233
235
  ])
234
236
  ]),
235
237
  _: 1
236
- }, 8, ["visible", "virtual-ref", "effect", "persistent", "placement", "popper-class", "teleported", "stop-popper-mouse-event", "offset", "hide-after"])) : createCommentVNode("", true);
238
+ }, 8, ["visible", "virtual-ref", "effect", "persistent", "placement", "popper-class", "teleported", "append-to", "stop-popper-mouse-event", "offset", "hide-after"])) : createCommentVNode("", true);
237
239
  };
238
240
  }
239
241
  });
@@ -1,6 +1,6 @@
1
1
  import { defineComponent, computed, openBlock, createBlock, unref, normalizeClass, withCtx, renderSlot, createTextVNode, toDisplayString } from "vue";
2
2
  import { ElRadio } from "element-plus";
3
- import '../../assets/node_modules/element-plus/theme-chalk/src/popover.css';import '../../assets/node_modules/element-plus/theme-chalk/src/transfer.css';import '../../assets/node_modules/element-plus/theme-chalk/src/tree.css';import '../../assets/node_modules/element-plus/theme-chalk/src/text.css';import '../../assets/node_modules/element-plus/theme-chalk/src/slider.css';import '../../assets/node_modules/element-plus/theme-chalk/src/color-picker.css';import '../../assets/node_modules/element-plus/theme-chalk/src/color-picker-panel.css';import '../../assets/node_modules/element-plus/theme-chalk/src/tooltip.css';import '../../assets/node_modules/element-plus/theme-chalk/src/date-picker-panel.css';import '../../assets/node_modules/element-plus/theme-chalk/src/button.css';import '../../assets/node_modules/element-plus/theme-chalk/src/checkbox-group.css';import '../../assets/node_modules/element-plus/theme-chalk/src/checkbox.css';import '../../assets/node_modules/element-plus/theme-chalk/src/radio-button.css';import '../../assets/node_modules/element-plus/theme-chalk/src/radio-group.css';import '../../assets/node_modules/element-plus/theme-chalk/src/radio.css';import '../../assets/node_modules/element-plus/theme-chalk/src/select.css';import '../../assets/node_modules/element-plus/theme-chalk/src/option-group.css';import '../../assets/node_modules/element-plus/theme-chalk/src/option.css';import '../../assets/node_modules/element-plus/theme-chalk/src/tag.css';import '../../assets/node_modules/element-plus/theme-chalk/src/autocomplete.css';import '../../assets/node_modules/element-plus/theme-chalk/src/popper.css';import '../../assets/node_modules/element-plus/theme-chalk/src/scrollbar.css';import '../../assets/node_modules/element-plus/theme-chalk/src/input-number.css';import '../../assets/node_modules/element-plus/theme-chalk/src/input.css';import '../../assets/node_modules/element-plus/theme-chalk/src/form-item.css';import '../../assets/node_modules/element-plus/theme-chalk/src/form.css';import '../../assets/node_modules/element-plus/theme-chalk/src/base.css';
3
+ import '../../assets/node_modules/element-plus/theme-chalk/src/popover.css';import '../../assets/node_modules/element-plus/theme-chalk/src/transfer.css';import '../../assets/node_modules/element-plus/theme-chalk/src/tree.css';import '../../assets/node_modules/element-plus/theme-chalk/src/text.css';import '../../assets/node_modules/element-plus/theme-chalk/src/slider.css';import '../../assets/node_modules/element-plus/theme-chalk/src/color-picker.css';import '../../assets/node_modules/element-plus/theme-chalk/src/color-picker-panel.css';import '../../assets/node_modules/element-plus/theme-chalk/src/dropdown-item.css';import '../../assets/node_modules/element-plus/theme-chalk/src/date-picker-panel.css';import '../../assets/node_modules/element-plus/theme-chalk/src/button.css';import '../../assets/node_modules/element-plus/theme-chalk/src/checkbox-group.css';import '../../assets/node_modules/element-plus/theme-chalk/src/checkbox.css';import '../../assets/node_modules/element-plus/theme-chalk/src/radio-button.css';import '../../assets/node_modules/element-plus/theme-chalk/src/radio-group.css';import '../../assets/node_modules/element-plus/theme-chalk/src/radio.css';import '../../assets/node_modules/element-plus/theme-chalk/src/select.css';import '../../assets/node_modules/element-plus/theme-chalk/src/option-group.css';import '../../assets/node_modules/element-plus/theme-chalk/src/option.css';import '../../assets/node_modules/element-plus/theme-chalk/src/tag.css';import '../../assets/node_modules/element-plus/theme-chalk/src/autocomplete.css';import '../../assets/node_modules/element-plus/theme-chalk/src/popper.css';import '../../assets/node_modules/element-plus/theme-chalk/src/scrollbar.css';import '../../assets/node_modules/element-plus/theme-chalk/src/input-number.css';import '../../assets/node_modules/element-plus/theme-chalk/src/input.css';import '../../assets/node_modules/element-plus/theme-chalk/src/form-item.css';import '../../assets/node_modules/element-plus/theme-chalk/src/form.css';import '../../assets/node_modules/element-plus/theme-chalk/src/base.css';
4
4
  import '../../assets/components/VcRadio/VcRadio.css';/* empty css */
5
5
  /* empty css */
6
6
  /* empty css */
@@ -1,6 +1,6 @@
1
1
  import { defineComponent, computed, markRaw, h, watch, openBlock, createBlock, unref, mergeProps, isRef, createSlots, withCtx, renderSlot, createElementBlock, Fragment, createVNode, createTextVNode, toDisplayString, createCommentVNode, renderList, createElementVNode, normalizeStyle, normalizeClass } from "vue";
2
2
  import { ElSelect } from "element-plus";
3
- import '../../assets/components/VcIcon/VcIcon.css';import '../../assets/components/VcForm/VcFormItem.css';import '../../assets/components/VcCheckbox/VcCheckbox.css';import '../../assets/components/VcSelect/VcSelectOption.css';import '../../assets/node_modules/element-plus/theme-chalk/src/popover.css';import '../../assets/node_modules/element-plus/theme-chalk/src/transfer.css';import '../../assets/node_modules/element-plus/theme-chalk/src/tree.css';import '../../assets/node_modules/element-plus/theme-chalk/src/text.css';import '../../assets/node_modules/element-plus/theme-chalk/src/slider.css';import '../../assets/node_modules/element-plus/theme-chalk/src/color-picker.css';import '../../assets/node_modules/element-plus/theme-chalk/src/color-picker-panel.css';import '../../assets/node_modules/element-plus/theme-chalk/src/tooltip.css';import '../../assets/node_modules/element-plus/theme-chalk/src/date-picker-panel.css';import '../../assets/node_modules/element-plus/theme-chalk/src/button.css';import '../../assets/node_modules/element-plus/theme-chalk/src/checkbox-group.css';import '../../assets/node_modules/element-plus/theme-chalk/src/checkbox.css';import '../../assets/node_modules/element-plus/theme-chalk/src/radio-button.css';import '../../assets/node_modules/element-plus/theme-chalk/src/radio-group.css';import '../../assets/node_modules/element-plus/theme-chalk/src/radio.css';import '../../assets/node_modules/element-plus/theme-chalk/src/select.css';import '../../assets/node_modules/element-plus/theme-chalk/src/option-group.css';import '../../assets/node_modules/element-plus/theme-chalk/src/option.css';import '../../assets/node_modules/element-plus/theme-chalk/src/tag.css';import '../../assets/node_modules/element-plus/theme-chalk/src/autocomplete.css';import '../../assets/node_modules/element-plus/theme-chalk/src/popper.css';import '../../assets/node_modules/element-plus/theme-chalk/src/scrollbar.css';import '../../assets/node_modules/element-plus/theme-chalk/src/input-number.css';import '../../assets/node_modules/element-plus/theme-chalk/src/input.css';import '../../assets/node_modules/element-plus/theme-chalk/src/form-item.css';import '../../assets/node_modules/element-plus/theme-chalk/src/form.css';import '../../assets/node_modules/element-plus/theme-chalk/src/base.css';
3
+ import '../../assets/components/VcIcon/VcIcon.css';import '../../assets/components/VcForm/VcFormItem.css';import '../../assets/components/VcCheckbox/VcCheckbox.css';import '../../assets/components/VcSelect/VcSelectOption.css';import '../../assets/node_modules/element-plus/theme-chalk/src/popover.css';import '../../assets/node_modules/element-plus/theme-chalk/src/transfer.css';import '../../assets/node_modules/element-plus/theme-chalk/src/tree.css';import '../../assets/node_modules/element-plus/theme-chalk/src/text.css';import '../../assets/node_modules/element-plus/theme-chalk/src/slider.css';import '../../assets/node_modules/element-plus/theme-chalk/src/color-picker.css';import '../../assets/node_modules/element-plus/theme-chalk/src/color-picker-panel.css';import '../../assets/node_modules/element-plus/theme-chalk/src/dropdown-item.css';import '../../assets/node_modules/element-plus/theme-chalk/src/date-picker-panel.css';import '../../assets/node_modules/element-plus/theme-chalk/src/button.css';import '../../assets/node_modules/element-plus/theme-chalk/src/checkbox-group.css';import '../../assets/node_modules/element-plus/theme-chalk/src/checkbox.css';import '../../assets/node_modules/element-plus/theme-chalk/src/radio-button.css';import '../../assets/node_modules/element-plus/theme-chalk/src/radio-group.css';import '../../assets/node_modules/element-plus/theme-chalk/src/radio.css';import '../../assets/node_modules/element-plus/theme-chalk/src/select.css';import '../../assets/node_modules/element-plus/theme-chalk/src/option-group.css';import '../../assets/node_modules/element-plus/theme-chalk/src/option.css';import '../../assets/node_modules/element-plus/theme-chalk/src/tag.css';import '../../assets/node_modules/element-plus/theme-chalk/src/autocomplete.css';import '../../assets/node_modules/element-plus/theme-chalk/src/popper.css';import '../../assets/node_modules/element-plus/theme-chalk/src/scrollbar.css';import '../../assets/node_modules/element-plus/theme-chalk/src/input-number.css';import '../../assets/node_modules/element-plus/theme-chalk/src/input.css';import '../../assets/node_modules/element-plus/theme-chalk/src/form-item.css';import '../../assets/node_modules/element-plus/theme-chalk/src/form.css';import '../../assets/node_modules/element-plus/theme-chalk/src/base.css';
4
4
  import '../../assets/components/VcSelect/VcSelect.css';/* empty css */
5
5
  /* empty css */
6
6
  /* empty css */
@@ -1,6 +1,6 @@
1
1
  import { defineComponent, openBlock, createBlock, unref, mergeProps } from "vue";
2
2
  import { ElSlider } from "element-plus";
3
- import '../../assets/node_modules/element-plus/theme-chalk/src/slider.css';import '../../assets/node_modules/element-plus/theme-chalk/src/input-number.css';import '../../assets/node_modules/element-plus/theme-chalk/src/input.css';import '../../assets/node_modules/element-plus/theme-chalk/src/tooltip.css';import '../../assets/node_modules/element-plus/theme-chalk/src/popper.css';import '../../assets/node_modules/element-plus/theme-chalk/src/base.css';
3
+ import '../../assets/node_modules/element-plus/theme-chalk/src/slider.css';import '../../assets/node_modules/element-plus/theme-chalk/src/input-number.css';import '../../assets/node_modules/element-plus/theme-chalk/src/input.css';import '../../assets/node_modules/element-plus/theme-chalk/src/dropdown-item.css';import '../../assets/node_modules/element-plus/theme-chalk/src/popper.css';import '../../assets/node_modules/element-plus/theme-chalk/src/base.css';
4
4
  import '../../assets/components/VcSlider/VcSlider.css';/* empty css */
5
5
  /* empty css */
6
6
  /* empty css */
@@ -323,9 +323,15 @@ const install = function installCore(app, config) {
323
323
  }
324
324
  loadTextFont();
325
325
  if ((config == null ? void 0 : config.mountOverlays) !== false) {
326
- mountPluginOverlays(app, _sfc_main$y, {
327
- notifications: (config == null ? void 0 : config.overlayNotifications) ?? "default"
328
- });
326
+ mountPluginOverlays(
327
+ app,
328
+ _sfc_main$y,
329
+ {
330
+ notifications: (config == null ? void 0 : config.overlayNotifications) ?? "default",
331
+ appendTo: (config == null ? void 0 : config.overlayAppendTo) ?? "body"
332
+ },
333
+ config == null ? void 0 : config.overlayContainer
334
+ );
329
335
  }
330
336
  };
331
337
  export {
Binary file
Binary file
@@ -1,12 +1,16 @@
1
1
  import type { OverlayNotificationsConfig } from '../../types/Overlay.types';
2
2
  interface IProps {
3
3
  notifications?: OverlayNotificationsConfig;
4
+ appendTo?: string | HTMLElement;
4
5
  }
5
6
  declare const _default: import("vue").DefineComponent<import("vue").ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToRuntimeProps<IProps>, {
6
7
  notifications: string;
8
+ appendTo: string;
7
9
  }>>, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToRuntimeProps<IProps>, {
8
10
  notifications: string;
11
+ appendTo: string;
9
12
  }>>> & Readonly<{}>, {
13
+ appendTo: string | HTMLElement;
10
14
  notifications: OverlayNotificationsConfig;
11
15
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
12
16
  export default _default;
@@ -2,12 +2,18 @@ import { TPopConfirmOptions } from '../../types';
2
2
  import type { TIcon } from '../../types/icons.types';
3
3
  interface IProps {
4
4
  options?: TPopConfirmOptions;
5
+ /**
6
+ * Teleport target for the popover content. Defaults to `'body'`. Pass an
7
+ * element inside a shadow root so the popover renders within the shadow DOM.
8
+ */
9
+ appendTo?: string | HTMLElement;
5
10
  }
6
11
  declare function clickOutside(evt: Event): void;
7
12
  declare function onCancel(): void;
8
13
  declare function onConfirm(): void;
9
14
  declare const _default: import("vue").DefineComponent<import("vue").ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToRuntimeProps<IProps>, {
10
15
  options: () => {};
16
+ appendTo: string;
11
17
  }>>, {
12
18
  onConfirm: typeof onConfirm;
13
19
  onCancel: typeof onCancel;
@@ -29,11 +35,13 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
29
35
  confirm: () => void;
30
36
  }, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToRuntimeProps<IProps>, {
31
37
  options: () => {};
38
+ appendTo: string;
32
39
  }>>> & Readonly<{
33
40
  onConfirm?: (() => any) | undefined;
34
41
  onClose?: (() => any) | undefined;
35
42
  }>, {
36
43
  options: TPopConfirmOptions;
44
+ appendTo: string | HTMLElement;
37
45
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
38
46
  export default _default;
39
47
  type __VLS_NonUndefinedable<T> = T extends undefined ? never : T;
@@ -25,4 +25,19 @@ export declare type UIConfig = {
25
25
  * - array — multiple `{ group, position }` hosts (pass matching `group` in `$notify.add`)
26
26
  */
27
27
  overlayNotifications?: OverlayNotificationsConfig;
28
+ /**
29
+ * Teleport target for the auto-mounted overlays (confirm modal, confirm
30
+ * popover, notifications). Defaults to `'body'`. Pass an element inside a
31
+ * shadow root (custom-element / web-component hosts) so the overlays render
32
+ * INSIDE the shadow DOM and pick up its scoped styles, instead of escaping
33
+ * to `document.body`.
34
+ */
35
+ overlayAppendTo?: string | HTMLElement;
36
+ /**
37
+ * Where to append the overlay host element that `VcPluginOverlays` mounts
38
+ * into. Defaults to `document.body`. For shadow-DOM hosts pass the shadow
39
+ * root (or an element inside it) so the overlay host itself lives within
40
+ * the shadow tree.
41
+ */
42
+ overlayContainer?: Element | DocumentFragment;
28
43
  };
@@ -12,4 +12,11 @@ export type OverlayNotificationHost = {
12
12
  export type OverlayNotificationsConfig = 'default' | 'none' | OverlayNotificationHost[];
13
13
  export type VcPluginOverlaysProps = {
14
14
  notifications?: OverlayNotificationsConfig;
15
+ /**
16
+ * Teleport target for the overlay hosts (confirm modal, confirm popover,
17
+ * notifications). Defaults to `'body'`. Pass an element inside a shadow
18
+ * root so the overlays render INSIDE the shadow DOM (custom-element hosts)
19
+ * and inherit its scoped styles.
20
+ */
21
+ appendTo?: string | HTMLElement;
15
22
  };
@@ -1,10 +1,16 @@
1
1
  import type { App, Component } from 'vue';
2
2
  /**
3
3
  * Mounts singleton overlay components (confirm modal/popover, notifications)
4
- * into `document.body` with the consumer app's context so globally registered
5
- * components, directives, i18n, and provide/inject all resolve correctly.
4
+ * with the consumer app's context so globally registered components,
5
+ * directives, i18n, and provide/inject all resolve correctly.
6
+ *
7
+ * The host element is appended to `container` (defaults to `document.body`).
8
+ * For shadow-DOM / custom-element hosts pass the shadow root (or an element
9
+ * inside it) so the overlays live within the shadow tree and inherit its
10
+ * scoped styles — pair it with the `appendTo` prop so the teleported content
11
+ * stays inside the same root.
6
12
  *
7
13
  * Plugin mode calls this automatically. Tree-shake consumers can either mount
8
14
  * `<VcPluginOverlays />` in App.vue or call this helper after `createApp`.
9
15
  */
10
- export declare function mountPluginOverlays(app: App, component: Component, props?: Record<string, unknown>): () => void;
16
+ export declare function mountPluginOverlays(app: App, component: Component, props?: Record<string, unknown>, container?: Element | DocumentFragment): () => void;
@@ -1,9 +1,19 @@
1
+ import { reactive } from "vue";
1
2
  const NS = "voicenter-ui-plus";
2
3
  function globalSymbol(name) {
3
4
  return Symbol.for(`${NS}:${name}`);
4
5
  }
6
+ const REGISTRY_KEY = Symbol.for(`${NS}:singletons`);
7
+ function getRegistry() {
8
+ try {
9
+ const host = reactive;
10
+ return host[REGISTRY_KEY] ?? (host[REGISTRY_KEY] = {});
11
+ } catch {
12
+ return globalThis.__voicenterUiPlusSingletons ?? (globalThis.__voicenterUiPlusSingletons = {});
13
+ }
14
+ }
5
15
  function globalSingleton(key, init) {
6
- const store = globalThis.__voicenterUiPlusSingletons ?? (globalThis.__voicenterUiPlusSingletons = {});
16
+ const store = getRegistry();
7
17
  return store[key] ?? (store[key] = init());
8
18
  }
9
19
  export {
@@ -1,22 +1,24 @@
1
1
  import { createVNode, render } from "vue";
2
2
  const HOST_ATTR = "data-vc-plugin-overlays";
3
- function mountPluginOverlays(app, component, props) {
3
+ function mountPluginOverlays(app, component, props, container) {
4
4
  if (typeof document === "undefined") {
5
5
  return () => {
6
6
  };
7
7
  }
8
- let container = document.querySelector(`[${HOST_ATTR}]`);
9
- if (!container) {
10
- container = document.createElement("div");
11
- container.setAttribute(HOST_ATTR, "");
12
- document.body.appendChild(container);
8
+ const mountRoot = container ?? document.body;
9
+ let existingHost = mountRoot.querySelector(`[${HOST_ATTR}]`);
10
+ if (!existingHost) {
11
+ existingHost = document.createElement("div");
12
+ existingHost.setAttribute(HOST_ATTR, "");
13
+ mountRoot.appendChild(existingHost);
13
14
  }
15
+ const host = existingHost;
14
16
  const vnode = createVNode(component, props);
15
17
  vnode.appContext = app._context;
16
- render(vnode, container);
18
+ render(vnode, host);
17
19
  return () => {
18
- render(null, container);
19
- container.remove();
20
+ render(null, host);
21
+ host.remove();
20
22
  };
21
23
  }
22
24
  export {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@voicenter-team/voicenter-ui-plus",
3
- "version": "3.0.4",
3
+ "version": "3.0.6",
4
4
  "scripts": {
5
5
  "dev": "vite",
6
6
  "build": "vite build",