"use client"; import type { Map as MapLibreMap } from "maplibre-gl"; import { Home, Minus, Plus, type LucideIcon } from "lucide-react"; import { type RefObject, useCallback } from "react"; import { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from "@/shared/ui/tooltip"; import { cn } from "@/lib/utils"; import { MAP_CONTROL_HOVER_CLASS_NAME, MAP_CONTROL_RADIUS_CLASS_NAME, MAP_ICON_CELL_RADIUS_CLASS_NAME, MAP_CONTROL_SURFACE_CLASS_NAME } from "./map-control-styles"; type MapZoomProps = { mapRef: RefObject; mapReady: boolean; onHome: () => void; className?: string; }; export function MapZoom({ mapRef, mapReady, onHome, className = "" }: MapZoomProps) { const handleZoomIn = useCallback(() => { mapRef.current?.zoomIn({ duration: 260 }); }, [mapRef]); const handleZoomOut = useCallback(() => { mapRef.current?.zoomOut({ duration: 260 }); }, [mapRef]); return (
); } type ControlButtonProps = { icon: LucideIcon; label: string; disabled: boolean; onClick: () => void; }; function ControlButton({ icon: Icon, label, disabled, onClick }: ControlButtonProps) { return ( {label} ); } function Divider() { return (