{{ hour }}:{{ minute }}
{{ meridiem }}
diff --git a/packages/effects/layouts/src/widgets/preferences/preferences.vue b/packages/effects/layouts/src/widgets/preferences/preferences.vue
index 6ee226988..9479adb2f 100644
--- a/packages/effects/layouts/src/widgets/preferences/preferences.vue
+++ b/packages/effects/layouts/src/widgets/preferences/preferences.vue
@@ -55,7 +55,7 @@ const listen = computed(() => {
-
+
drawerApi.open()">
diff --git a/packages/utils/src/helpers/get-popup-container.ts b/packages/utils/src/helpers/get-popup-container.ts
new file mode 100644
index 000000000..717e2428c
--- /dev/null
+++ b/packages/utils/src/helpers/get-popup-container.ts
@@ -0,0 +1,3 @@
+export function getPopupContainer(node?: HTMLElement): HTMLElement {
+ return (node?.parentNode as HTMLElement) ?? document.body;
+}
diff --git a/packages/utils/src/helpers/index.ts b/packages/utils/src/helpers/index.ts
index 90c45a24f..da2cd8d7f 100644
--- a/packages/utils/src/helpers/index.ts
+++ b/packages/utils/src/helpers/index.ts
@@ -2,6 +2,7 @@ export * from './find-menu-by-path';
export * from './generate-menus';
export * from './generate-routes-backend';
export * from './generate-routes-frontend';
+export * from './get-popup-container';
export * from './merge-route-modules';
export * from './reset-routes';
export * from './unmount-global-loading';
diff --git a/vitest.workspace.ts b/vitest.workspace.ts
new file mode 100644
index 000000000..f00d6f686
--- /dev/null
+++ b/vitest.workspace.ts
@@ -0,0 +1,3 @@
+import { defineWorkspace } from 'vitest/config';
+
+export default defineWorkspace(['vitest.config.ts']);