import { ArrowLeftRight, Gauge, LucideIcon, Minimize2, MousePointer, Move, MoveHorizontal, Scissors, Split, } from "lucide-react" import { Button } from "@/components/ui/button" import { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from "@/components/ui/tooltip" import { cn } from "@/lib/utils" import { useEditModeContext } from "../hooks/use-edit-mode" import { EDIT_MODE_CONFIGS } from "../types/edit-modes" // Map icon names to Lucide components const ICON_MAP: Record = { MousePointer, Scissors, ArrowLeftRight, Minimize2, Move, MoveHorizontal, Split, Gauge, } interface EditModeSelectorProps { className?: string size?: "sm" | "md" | "lg" orientation?: "horizontal" | "vertical" } export function EditModeSelector({ className, size = "md", orientation = "horizontal" }: EditModeSelectorProps) { const { editMode, setEditMode } = useEditModeContext() const buttonSize = { sm: "h-8 w-8", md: "h-10 w-10", lg: "h-12 w-12", }[size] const iconSize = { sm: 16, md: 20, lg: 24, }[size] return (
{Object.values(EDIT_MODE_CONFIGS).map((config) => { const Icon = ICON_MAP[config.icon] const isActive = editMode === config.mode return (
{config.name} {config.hotkey}
{config.description}
) })}
) } // Compact version for toolbar integration interface EditModeButtonGroupProps { className?: string } export function EditModeButtonGroup({ className }: EditModeButtonGroupProps) { const { editMode, setEditMode } = useEditModeContext() return (
{Object.values(EDIT_MODE_CONFIGS) .slice(0, 4) .map((config, index) => { const Icon = ICON_MAP[config.icon] const isActive = editMode === config.mode return ( ) })}
) }