diff --git a/src/components/dropdownMenu/DropdownMenu.scss b/src/components/dropdownMenu/DropdownMenu.scss
index 1b5fd1f39..e1da2aec1 100644
--- a/src/components/dropdownMenu/DropdownMenu.scss
+++ b/src/components/dropdownMenu/DropdownMenu.scss
@@ -8,6 +8,12 @@
.dropdown-menu {
position: absolute;
+ .radix-menuitem {
+ &:focus-visible {
+ outline: none;
+ }
+ }
+
&--mobile {
bottom: 55px;
top: auto;
diff --git a/src/components/dropdownMenu/DropdownMenuItem.tsx b/src/components/dropdownMenu/DropdownMenuItem.tsx
index 5532dbaae..f9759cc3d 100644
--- a/src/components/dropdownMenu/DropdownMenuItem.tsx
+++ b/src/components/dropdownMenu/DropdownMenuItem.tsx
@@ -1,10 +1,11 @@
-import React from "react";
import {
getDropdownMenuItemClassName,
useHandleDropdownMenuItemClick,
} from "./common";
import MenuItemContent from "./DropdownMenuItemContent";
+import * as DropdownMenuPrimitive from "@radix-ui/react-dropdown-menu";
+
const DropdownMenuItem = ({
icon,
onSelect,
@@ -22,17 +23,19 @@ const DropdownMenuItem = ({
const handleClick = useHandleDropdownMenuItemClick(rest.onClick, onSelect);
return (
-
+
+
+
);
};
diff --git a/src/components/dropdownMenu/DropdownMenuSubItem.tsx b/src/components/dropdownMenu/DropdownMenuSubItem.tsx
index ade5139bc..f27033a43 100644
--- a/src/components/dropdownMenu/DropdownMenuSubItem.tsx
+++ b/src/components/dropdownMenu/DropdownMenuSubItem.tsx
@@ -4,6 +4,8 @@ import {
useHandleDropdownMenuItemClick,
} from "./common";
+import * as DropdownMenuPrimitive from "@radix-ui/react-dropdown-menu";
+
const DropdownMenuSubItem = ({
icon,
onSelect,
@@ -21,17 +23,19 @@ const DropdownMenuSubItem = ({
const handleClick = useHandleDropdownMenuItemClick(rest.onClick, onSelect);
return (
-
+
+
+
);
};
diff --git a/src/components/dropdownMenu/DropdownMenuSubTrigger.tsx b/src/components/dropdownMenu/DropdownMenuSubTrigger.tsx
index ab6ef353a..5d3087566 100644
--- a/src/components/dropdownMenu/DropdownMenuSubTrigger.tsx
+++ b/src/components/dropdownMenu/DropdownMenuSubTrigger.tsx
@@ -8,19 +8,24 @@ const DropdownMenuSubTrigger = ({
icon,
shortcut,
className,
+ ...rest
}: {
children: React.ReactNode;
icon?: JSX.Element;
shortcut?: string;
className?: string;
-}) => {
+} & React.HTMLAttributes) => {
return (
-
-
- {children}
-
+
+
+
+ {children}
+
+
);
};
diff --git a/src/packages/excalidraw/example/App.tsx b/src/packages/excalidraw/example/App.tsx
index 4707a63da..d944fd68e 100644
--- a/src/packages/excalidraw/example/App.tsx
+++ b/src/packages/excalidraw/example/App.tsx
@@ -507,9 +507,45 @@ export default function App({ appTitle, useCustom, customArgs }: AppProps) {
return (
- Trigger
+
+
+
+ }
+ >
+ Trigger
+
+
+
+ }
onSelect={() => window.alert("You clicked on sub item")}
>
Sub item
@@ -523,10 +559,30 @@ export default function App({ appTitle, useCustom, customArgs }: AppProps) {
isCollaborating={isCollaborating}
onSelect={() => window.alert("You clicked on collab button")}
/>
+
+ Trigger
+
+ window.alert("You clicked on sub item")}
+ >
+ Sub item
+
+
+
-
+ {/* */}
+
+ Trigger
+
+ window.alert("You clicked on sub item")}
+ >
+ Sub item
+
+
+