{ "$schema": "https://ui.shadcn.com/schema/registry-item.json", "name": "context-menu", "title": "Context Menu", "description": "Terminal-style right-click context menu: selection inversion, ✓/● indicators, ▸ submenu glyph, no hover/radius/shadow. Includes checkbox, radio, sub-menu, shortcut, separator.", "dependencies": [ "@radix-ui/react-context-menu" ], "registryDependencies": [ "utils", "theme-catppuccin-mocha", "font-jetbrains-mono" ], "files": [ { "path": "registry/ui/context-menu.tsx", "content": "import * as React from \"react\";\nimport * as ContextMenuPrimitive from \"@radix-ui/react-context-menu\";\nimport { cn } from \"@/lib/utils\";\n\nfunction ContextMenu({\n\t...props\n}: React.ComponentProps) {\n\treturn ;\n}\n\nfunction ContextMenuTrigger({\n\t...props\n}: React.ComponentProps) {\n\treturn (\n\t\t\n\t);\n}\n\nfunction ContextMenuPortal({\n\t...props\n}: React.ComponentProps) {\n\treturn (\n\t\t\n\t);\n}\n\nfunction ContextMenuContent({\n\tclassName,\n\t...props\n}: React.ComponentProps) {\n\treturn (\n\t\t\n\t\t\t\n\t\t\n\t);\n}\n\nfunction ContextMenuItem({\n\tclassName,\n\tinset,\n\t...props\n}: React.ComponentProps & {\n\tinset?: boolean;\n}) {\n\treturn (\n\t\t\n\t);\n}\n\nfunction ContextMenuCheckboxItem({\n\tclassName,\n\tchildren,\n\tchecked,\n\t...props\n}: React.ComponentProps) {\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t✓\n\t\t\t\t\n\t\t\t\n\t\t\t{children}\n\t\t\n\t);\n}\n\nfunction ContextMenuRadioGroup({\n\t...props\n}: React.ComponentProps) {\n\treturn (\n\t\t\n\t);\n}\n\nfunction ContextMenuRadioItem({\n\tclassName,\n\tchildren,\n\t...props\n}: React.ComponentProps) {\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t●\n\t\t\t\t\n\t\t\t\n\t\t\t{children}\n\t\t\n\t);\n}\n\nfunction ContextMenuLabel({\n\tclassName,\n\tinset,\n\t...props\n}: React.ComponentProps & {\n\tinset?: boolean;\n}) {\n\treturn (\n\t\t\n\t);\n}\n\nfunction ContextMenuSeparator({\n\tclassName,\n\t...props\n}: React.ComponentProps) {\n\treturn (\n\t\t\n\t);\n}\n\nfunction ContextMenuShortcut({\n\tclassName,\n\t...props\n}: React.ComponentProps<\"span\">) {\n\treturn (\n\t\t\n\t);\n}\n\nfunction ContextMenuGroup({\n\t...props\n}: React.ComponentProps) {\n\treturn (\n\t\t\n\t);\n}\n\nfunction ContextMenuSub({\n\t...props\n}: React.ComponentProps) {\n\treturn (\n\t\t\n\t);\n}\n\nfunction ContextMenuSubTrigger({\n\tclassName,\n\tinset,\n\tchildren,\n\t...props\n}: React.ComponentProps & {\n\tinset?: boolean;\n}) {\n\treturn (\n\t\t\n\t\t\t{children}\n\t\t\t\n\t\t\n\t);\n}\n\nfunction ContextMenuSubContent({\n\tclassName,\n\t...props\n}: React.ComponentProps) {\n\treturn (\n\t\t\n\t);\n}\n\nexport {\n\tContextMenu,\n\tContextMenuTrigger,\n\tContextMenuPortal,\n\tContextMenuContent,\n\tContextMenuItem,\n\tContextMenuCheckboxItem,\n\tContextMenuRadioGroup,\n\tContextMenuRadioItem,\n\tContextMenuLabel,\n\tContextMenuSeparator,\n\tContextMenuShortcut,\n\tContextMenuGroup,\n\tContextMenuSub,\n\tContextMenuSubTrigger,\n\tContextMenuSubContent,\n};\n", "type": "registry:ui" } ], "css": { "@keyframes termcn-fade": { "from": { "opacity": "0" }, "to": { "opacity": "1" } }, "@keyframes termcn-fade-out": { "from": { "opacity": "1" }, "to": { "opacity": "0" } } }, "type": "registry:ui" }