diff --git a/src/renderer/src/components/ui/context-menu/ContextMenu.vue b/src/renderer/src/components/ui/context-menu/ContextMenu.vue
new file mode 100644
index 0000000..a888b59
--- /dev/null
+++ b/src/renderer/src/components/ui/context-menu/ContextMenu.vue
@@ -0,0 +1,15 @@
+
+
+
+
+
+
+
diff --git a/src/renderer/src/components/ui/context-menu/ContextMenuCheckboxItem.vue b/src/renderer/src/components/ui/context-menu/ContextMenuCheckboxItem.vue
new file mode 100644
index 0000000..4a52e7c
--- /dev/null
+++ b/src/renderer/src/components/ui/context-menu/ContextMenuCheckboxItem.vue
@@ -0,0 +1,40 @@
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/renderer/src/components/ui/context-menu/ContextMenuContent.vue b/src/renderer/src/components/ui/context-menu/ContextMenuContent.vue
new file mode 100644
index 0000000..0082a4e
--- /dev/null
+++ b/src/renderer/src/components/ui/context-menu/ContextMenuContent.vue
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+
+
+
diff --git a/src/renderer/src/components/ui/context-menu/ContextMenuGroup.vue b/src/renderer/src/components/ui/context-menu/ContextMenuGroup.vue
new file mode 100644
index 0000000..b7458d7
--- /dev/null
+++ b/src/renderer/src/components/ui/context-menu/ContextMenuGroup.vue
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
diff --git a/src/renderer/src/components/ui/context-menu/ContextMenuItem.vue b/src/renderer/src/components/ui/context-menu/ContextMenuItem.vue
new file mode 100644
index 0000000..3421f8d
--- /dev/null
+++ b/src/renderer/src/components/ui/context-menu/ContextMenuItem.vue
@@ -0,0 +1,34 @@
+
+
+
+
+
+
+
diff --git a/src/renderer/src/components/ui/context-menu/ContextMenuLabel.vue b/src/renderer/src/components/ui/context-menu/ContextMenuLabel.vue
new file mode 100644
index 0000000..eb8ff47
--- /dev/null
+++ b/src/renderer/src/components/ui/context-menu/ContextMenuLabel.vue
@@ -0,0 +1,25 @@
+
+
+
+
+
+
+
diff --git a/src/renderer/src/components/ui/context-menu/ContextMenuPortal.vue b/src/renderer/src/components/ui/context-menu/ContextMenuPortal.vue
new file mode 100644
index 0000000..73dc714
--- /dev/null
+++ b/src/renderer/src/components/ui/context-menu/ContextMenuPortal.vue
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
diff --git a/src/renderer/src/components/ui/context-menu/ContextMenuRadioGroup.vue b/src/renderer/src/components/ui/context-menu/ContextMenuRadioGroup.vue
new file mode 100644
index 0000000..33273a7
--- /dev/null
+++ b/src/renderer/src/components/ui/context-menu/ContextMenuRadioGroup.vue
@@ -0,0 +1,19 @@
+
+
+
+
+
+
+
diff --git a/src/renderer/src/components/ui/context-menu/ContextMenuRadioItem.vue b/src/renderer/src/components/ui/context-menu/ContextMenuRadioItem.vue
new file mode 100644
index 0000000..252c403
--- /dev/null
+++ b/src/renderer/src/components/ui/context-menu/ContextMenuRadioItem.vue
@@ -0,0 +1,40 @@
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/renderer/src/components/ui/context-menu/ContextMenuSeparator.vue b/src/renderer/src/components/ui/context-menu/ContextMenuSeparator.vue
new file mode 100644
index 0000000..1221867
--- /dev/null
+++ b/src/renderer/src/components/ui/context-menu/ContextMenuSeparator.vue
@@ -0,0 +1,20 @@
+
+
+
+
+
diff --git a/src/renderer/src/components/ui/context-menu/ContextMenuShortcut.vue b/src/renderer/src/components/ui/context-menu/ContextMenuShortcut.vue
new file mode 100644
index 0000000..f758de7
--- /dev/null
+++ b/src/renderer/src/components/ui/context-menu/ContextMenuShortcut.vue
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+
diff --git a/src/renderer/src/components/ui/context-menu/ContextMenuSub.vue b/src/renderer/src/components/ui/context-menu/ContextMenuSub.vue
new file mode 100644
index 0000000..7abc360
--- /dev/null
+++ b/src/renderer/src/components/ui/context-menu/ContextMenuSub.vue
@@ -0,0 +1,19 @@
+
+
+
+
+
+
+
diff --git a/src/renderer/src/components/ui/context-menu/ContextMenuSubContent.vue b/src/renderer/src/components/ui/context-menu/ContextMenuSubContent.vue
new file mode 100644
index 0000000..f58e914
--- /dev/null
+++ b/src/renderer/src/components/ui/context-menu/ContextMenuSubContent.vue
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+
diff --git a/src/renderer/src/components/ui/context-menu/ContextMenuSubTrigger.vue b/src/renderer/src/components/ui/context-menu/ContextMenuSubTrigger.vue
new file mode 100644
index 0000000..bd28ae0
--- /dev/null
+++ b/src/renderer/src/components/ui/context-menu/ContextMenuSubTrigger.vue
@@ -0,0 +1,34 @@
+
+
+
+
+
+
+
+
diff --git a/src/renderer/src/components/ui/context-menu/ContextMenuTrigger.vue b/src/renderer/src/components/ui/context-menu/ContextMenuTrigger.vue
new file mode 100644
index 0000000..22e417b
--- /dev/null
+++ b/src/renderer/src/components/ui/context-menu/ContextMenuTrigger.vue
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
diff --git a/src/renderer/src/components/ui/context-menu/index.ts b/src/renderer/src/components/ui/context-menu/index.ts
new file mode 100644
index 0000000..157f7b1
--- /dev/null
+++ b/src/renderer/src/components/ui/context-menu/index.ts
@@ -0,0 +1,14 @@
+export { default as ContextMenu } from './ContextMenu.vue'
+export { default as ContextMenuTrigger } from './ContextMenuTrigger.vue'
+export { default as ContextMenuContent } from './ContextMenuContent.vue'
+export { default as ContextMenuGroup } from './ContextMenuGroup.vue'
+export { default as ContextMenuRadioGroup } from './ContextMenuRadioGroup.vue'
+export { default as ContextMenuItem } from './ContextMenuItem.vue'
+export { default as ContextMenuCheckboxItem } from './ContextMenuCheckboxItem.vue'
+export { default as ContextMenuRadioItem } from './ContextMenuRadioItem.vue'
+export { default as ContextMenuShortcut } from './ContextMenuShortcut.vue'
+export { default as ContextMenuSeparator } from './ContextMenuSeparator.vue'
+export { default as ContextMenuLabel } from './ContextMenuLabel.vue'
+export { default as ContextMenuSub } from './ContextMenuSub.vue'
+export { default as ContextMenuSubTrigger } from './ContextMenuSubTrigger.vue'
+export { default as ContextMenuSubContent } from './ContextMenuSubContent.vue'