@reservoir0x/relay-kit-ui
Version:
Relay is the Fastest and Cheapest Way to Bridge and Transact Across Chains.
49 lines • 2.23 kB
JavaScript
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
import { forwardRef, useState } from 'react';
import * as DropdownMenuPrimitive from '@radix-ui/react-dropdown-menu';
import { cva, css as designCss } from '@reservoir0x/relay-design-system/css';
const DropdownMenuContentCss = cva({
base: {
mx: '4',
p: '3',
borderRadius: 8,
zIndex: 5,
background: 'modal-background',
boxShadow: '0px 0px 50px 0px #0000001F',
border: 'dropdown-border'
}
});
const DropdownMenuContent = forwardRef(({ children, css, ...props }, forwardedRef) => {
return (_jsx(DropdownMenuPrimitive.DropdownMenuContent, { ...props, ref: forwardedRef, className: designCss(DropdownMenuContentCss.raw(), designCss.raw(css)), children: children }));
});
const DropdownMenuItemCss = cva({
base: {
display: 'flex',
alignItems: 'center',
fontSize: 16,
color: 'text-default',
background: 'modal-background',
p: '3',
outline: 'none',
cursor: 'pointer',
transition: 'backdrop-filter 250ms linear',
_hover: {
backdropFilter: 'brightness(95%)',
backgroundColor: 'gray/10'
},
'&:focus': {
backdropFilter: 'brightness(95%)',
backgroundColor: 'gray/10'
}
}
});
const DropdownMenuItem = forwardRef(({ children, css, ...props }, forwardedRef) => {
return (_jsx(DropdownMenuPrimitive.DropdownMenuItem, { ...props, ref: forwardedRef, className: designCss(DropdownMenuItemCss.raw(), designCss.raw(css)), children: children }));
});
const Dropdown = forwardRef(({ children, trigger, contentProps, ...props }, forwardedRef) => {
const [open, setOpen] = useState(false);
return (_jsxs(DropdownMenuPrimitive.Root, { ...props, open: props.open ?? open, onOpenChange: props.onOpenChange ?? setOpen, children: [_jsx(DropdownMenuPrimitive.Trigger, { asChild: true, children: trigger }), (props.open || open) && (_jsx(DropdownMenuContent, { ref: forwardedRef, ...contentProps, children: children }))] }));
});
Dropdown.displayName = 'Dropdown';
export { Dropdown, DropdownMenuContent, DropdownMenuItem };
//# sourceMappingURL=Dropdown.js.map