diff --git a/src/components/GroupsOverlay.tsx b/src/components/GroupsOverlay.tsx index 042bd5fb..afe274c3 100644 --- a/src/components/GroupsOverlay.tsx +++ b/src/components/GroupsOverlay.tsx @@ -332,116 +332,10 @@ function GroupControls({ groupId, zoom }: GroupControlsProps) { )} - {/* Expanded controls - shown when menu is open */} - {showMenu && ( -
- {/* Color Picker */} -
- - {showColorPicker && ( - <> - {/* Invisible backdrop to catch clicks outside */} -
setShowColorPicker(false)} - /> -
- {COLOR_OPTIONS.map(({ color, label }, index) => { - const totalItems = COLOR_OPTIONS.length; - const arcSpread = 180; - const startAngle = -90 - arcSpread / 2; - const angleStep = arcSpread / (totalItems - 1); - const angle = startAngle + index * angleStep; - const radius = 55; - const rad = (angle * Math.PI) / 180; - const x = Math.cos(rad) * radius; - const y = Math.sin(rad) * radius; - const finalX = x - 12; - const finalY = y - 12; - - return ( - - ); - })} -
- - )} -
- - {/* Lock/Unlock Button */} - - - {/* Delete Button */} - -
- )} - - {/* Three-dot menu toggle - hidden when menu is open */} - {!showMenu && ( + {/* Three-dot menu toggle - always visible */} +
- )} + + {/* Vertical context menu - appears above the three-dot button */} + {showMenu && ( +
+ {/* Background color row */} +
+ + {showColorPicker && ( + <> +
setShowColorPicker(false)} + /> +
+ {COLOR_OPTIONS.map(({ color, label }, index) => { + const totalItems = COLOR_OPTIONS.length; + const arcSpread = 150; + const startAngle = -90 - arcSpread / 2; + const angleStep = arcSpread / (totalItems - 1); + const angle = startAngle + index * angleStep; + const radius = 55; + const rad = (angle * Math.PI) / 180; + const x = Math.cos(rad) * radius; + const y = Math.sin(rad) * radius; + const finalX = x; + const finalY = y - 12; + + return ( + + ); + })} +
+ + )} +
+ + {/* Lock/Unlock row */} + + + {/* Delete row */} + +
+ )} +