diff --git a/components/ContextMenu/index.scss b/components/ContextMenu/index.scss new file mode 100644 index 00000000..c011889c --- /dev/null +++ b/components/ContextMenu/index.scss @@ -0,0 +1,6 @@ +.ContextMenu { + background: var(--menu-bg); + border-radius: $input-corner; + padding: $unit 0; + margin-top: $unit-fourth; +} diff --git a/components/ContextMenu/index.tsx b/components/ContextMenu/index.tsx new file mode 100644 index 00000000..c3787dd9 --- /dev/null +++ b/components/ContextMenu/index.tsx @@ -0,0 +1,36 @@ +import React from 'react' +import classNames from 'classnames' +import * as DropdownMenu from '@radix-ui/react-dropdown-menu' + +import './index.scss' + +interface Props + extends React.DetailedHTMLProps< + React.DialogHTMLAttributes, + HTMLDivElement + > { + align?: 'start' | 'center' | 'end' +} + +export const ContextMenuContent = React.forwardRef( + function ContextMenu({ children, ...props }, forwardedRef) { + const classes = classNames( + { + ContextMenu: true, + }, + props.className + ) + + return ( + + + {children} + + + ) + } +) + +export const ContextMenu = DropdownMenu.Root +export const ContextMenuGroup = DropdownMenu.Group +export const ContextMenuTrigger = DropdownMenu.Trigger diff --git a/components/ContextMenuItem/index.scss b/components/ContextMenuItem/index.scss new file mode 100644 index 00000000..ee14622d --- /dev/null +++ b/components/ContextMenuItem/index.scss @@ -0,0 +1,11 @@ +.ContextItem { + color: var(--menu-text); + font-size: $font-regular; + padding: ($unit * 1.5) $unit-2x; + + &:hover { + background: var(--menu-bg-item-hover); + color: var(--text-primary); + cursor: pointer; + } +} diff --git a/components/ContextMenuItem/index.tsx b/components/ContextMenuItem/index.tsx new file mode 100644 index 00000000..15600c52 --- /dev/null +++ b/components/ContextMenuItem/index.tsx @@ -0,0 +1,26 @@ +import React from 'react' +import classNames from 'classnames' +import { DropdownMenuItem } from '@radix-ui/react-dropdown-menu' + +import './index.scss' + +interface Props + extends React.DetailedHTMLProps< + React.DialogHTMLAttributes, + HTMLDivElement + > {} + +const ContextMenuItem = React.forwardRef( + function ContextMenu({ children, ...props }, forwardedRef) { + const classes = classNames( + { + ContextItem: true, + }, + props.className + ) + + return {children} + } +) + +export default ContextMenuItem