@@ -64,67 +64,69 @@ export function BrandContextMenu({ children, ...rest }: BrandContextMenuProps) {
6464 } }
6565 />
6666 </ DropdownMenu . Trigger >
67- < DropdownMenu . Content
68- sideOffset = { 4 }
69- align = "start"
70- className = "z-50 min-w-48 rounded-md border border-gray-200 bg-white p-1 text-sm shadow-lg dark:border-gray-700 dark:bg-gray-900/50 backdrop-blur-md"
71- >
72- { [
73- {
74- label : 'Logo as SVG (Black)' ,
75- url : '/images/logos/logo-black.svg' ,
76- } ,
77- {
78- label : 'Logo as SVG (White)' ,
79- url : '/images/logos/logo-white.svg' ,
80- darkBg : true ,
81- } ,
82- {
83- label : 'Wordmark as SVG (Black)' ,
84- url : '/images/logos/logo-word-black.svg' ,
85- } ,
86- {
87- label : 'Wordmark as SVG (White)' ,
88- url : '/images/logos/logo-word-white.svg' ,
89- darkBg : true ,
90- } ,
91- ] . map ( ( { label, url, darkBg } ) => (
92- < DropdownMenu . Item
93- key = { label }
94- className = { twMerge (
95- 'flex cursor-pointer select-none items-center gap-2 rounded px-3 py-1 outline-none hover:bg-gray-500/20'
96- ) }
97- onSelect = { async ( ) => {
98- try {
99- const res = await fetch ( url )
100- const text = await res . text ( )
101- await copyText ( text )
102- } catch ( err ) {
103- console . error ( 'Failed to copy logo' , err )
104- }
105- } }
106- >
107- { label }
108- < div
67+ < DropdownMenu . Portal >
68+ < DropdownMenu . Content
69+ sideOffset = { 4 }
70+ align = "start"
71+ className = "relative z-[50] min-w-48 rounded-md border border-gray-200 bg-white p-1 text-sm shadow-lg dark:border-gray-700 dark:bg-gray-900/50 backdrop-blur-md"
72+ >
73+ { [
74+ {
75+ label : 'Logo as SVG (Black)' ,
76+ url : '/images/logos/logo-black.svg' ,
77+ } ,
78+ {
79+ label : 'Logo as SVG (White)' ,
80+ url : '/images/logos/logo-white.svg' ,
81+ darkBg : true ,
82+ } ,
83+ {
84+ label : 'Wordmark as SVG (Black)' ,
85+ url : '/images/logos/logo-word-black.svg' ,
86+ } ,
87+ {
88+ label : 'Wordmark as SVG (White)' ,
89+ url : '/images/logos/logo-word-white.svg' ,
90+ darkBg : true ,
91+ } ,
92+ ] . map ( ( { label, url, darkBg } ) => (
93+ < DropdownMenu . Item
94+ key = { label }
10995 className = { twMerge (
110- 'p-1 rounded-full' ,
111- darkBg
112- ? 'bg-black text-white shadow-lg shadow-white/20'
113- : 'bg-white text-black shadow-lg'
96+ 'flex cursor-pointer select-none items-center gap-2 rounded px-3 py-1 outline-none hover:bg-gray-500/20'
11497 ) }
98+ onSelect = { async ( ) => {
99+ try {
100+ const res = await fetch ( url )
101+ const text = await res . text ( )
102+ await copyText ( text )
103+ } catch ( err ) {
104+ console . error ( 'Failed to copy logo' , err )
105+ }
106+ } }
115107 >
116- < img src = { url } alt = { label } className = "h-6" />
117- </ div >
108+ { label }
109+ < div
110+ className = { twMerge (
111+ 'p-1 rounded-full' ,
112+ darkBg
113+ ? 'bg-black text-white shadow-lg shadow-white/20'
114+ : 'bg-white text-black shadow-lg'
115+ ) }
116+ >
117+ < img src = { url } alt = { label } className = "h-6" />
118+ </ div >
119+ </ DropdownMenu . Item >
120+ ) ) }
121+ < DropdownMenu . Separator className = "my-1 h-px bg-gray-200 dark:bg-gray-700" />
122+ < DropdownMenu . Item
123+ className = "flex cursor-pointer select-none items-center gap-2 rounded px-3 py-2 outline-none hover:bg-gray-100 dark:hover:bg-gray-700"
124+ onSelect = { ( ) => navigate ( { to : '/brand-guide' } ) }
125+ >
126+ Brand Guide & All Assets
118127 </ DropdownMenu . Item >
119- ) ) }
120- < DropdownMenu . Separator className = "my-1 h-px bg-gray-200 dark:bg-gray-700" />
121- < DropdownMenu . Item
122- className = "flex cursor-pointer select-none items-center gap-2 rounded px-3 py-2 outline-none hover:bg-gray-100 dark:hover:bg-gray-700"
123- onSelect = { ( ) => navigate ( { to : '/brand-guide' } ) }
124- >
125- Brand Guide & All Assets
126- </ DropdownMenu . Item >
127- </ DropdownMenu . Content >
128+ </ DropdownMenu . Content >
129+ </ DropdownMenu . Portal >
128130 </ DropdownMenu . Root >
129131 </ div >
130132 )
0 commit comments