diff --git a/src/lib/components/menu/menu.svelte b/src/lib/components/menu/menu.svelte
index 6e7e3a030..c74c43e87 100644
--- a/src/lib/components/menu/menu.svelte
+++ b/src/lib/components/menu/menu.svelte
@@ -1,23 +1,39 @@
diff --git a/src/lib/components/menu/store.ts b/src/lib/components/menu/store.ts
index 571b30b82..829d2b6e6 100644
--- a/src/lib/components/menu/store.ts
+++ b/src/lib/components/menu/store.ts
@@ -1,3 +1,17 @@
import { writable } from 'svelte/store';
+import type { createMenubar } from '@melt-ui/svelte';
export const menuOpen = writable(false);
+
+export const activeMenuId = writable(null);
+
+/**
+ * Full menu context passed to submenus —
+ * includes `builders` and shared `separator`.
+ */
+export type MenuContext = {
+ separator: ReturnType<
+ ReturnType['builders']['createMenu']
+ >['elements']['separator'];
+ builders: ReturnType['builders']['createMenu']>['builders'];
+};
diff --git a/src/lib/components/menu/subMenu.svelte b/src/lib/components/menu/subMenu.svelte
index 66186bf2a..e6e8e326d 100644
--- a/src/lib/components/menu/subMenu.svelte
+++ b/src/lib/components/menu/subMenu.svelte
@@ -1,15 +1,12 @@