"use client"; import { RiDashboardLine, RiMenuLine } from "@remixicon/react"; import { usePathname } from "next/navigation"; import { useState } from "react"; import { CalculatorDialogContent } from "@/shared/components/calculator/calculator-dialog"; import { Button } from "@/shared/components/ui/button"; import { Dialog } from "@/shared/components/ui/dialog"; import { NavigationMenu, NavigationMenuContent, NavigationMenuItem, NavigationMenuList, NavigationMenuTrigger, } from "@/shared/components/ui/navigation-menu"; import { Sheet, SheetContent, SheetHeader, SheetTitle, SheetTrigger, } from "@/shared/components/ui/sheet"; import { cn } from "@/shared/utils/ui"; import { MobileLink, MobileSectionLabel } from "./mobile-link"; import { NavDropdown } from "./nav-dropdown"; import { NAV_SECTIONS } from "./nav-items"; import { NavPill } from "./nav-pill"; import { MobileTools, NavToolsDropdown } from "./nav-tools"; const triggerClass = "h-9! px-2! py-0! bg-transparent! capitalize! [&_svg]:text-current! text-primary-foreground/75! hover:text-primary-foreground! hover:bg-primary-foreground/10! focus:text-primary-foreground! focus:bg-primary-foreground/10! focus-visible:ring-primary-foreground/20! data-[state=open]:text-primary-foreground! data-[state=open]:bg-primary-foreground/10! dark:text-foreground/75! dark:hover:text-foreground! dark:hover:bg-foreground/10! dark:focus:text-foreground! dark:focus:bg-foreground/10! dark:focus-visible:ring-foreground/20! dark:data-[state=open]:text-foreground! dark:data-[state=open]:bg-foreground/10!"; const triggerActiveClass = "bg-primary-foreground/15! text-primary-foreground! dark:bg-foreground/15! dark:text-foreground!"; export function NavMenu() { const pathname = usePathname(); const [sheetOpen, setSheetOpen] = useState(false); const [calculatorOpen, setCalculatorOpen] = useState(false); const close = () => setSheetOpen(false); const openCalculator = () => setCalculatorOpen(true); return ( <> {/* Desktop */} Dashboard {NAV_SECTIONS.map((section) => { const isSectionActive = section.items.some( (item) => pathname === item.href || pathname.startsWith(`${item.href}/`), ); return ( {section.label} ); })} Ferramentas {/* Mobile - order-[-1] places hamburger before logo visually */} Abrir menu Menu } onClick={close} preservePeriod > dashboard {NAV_SECTIONS.map((section) => { const mobileItems = section.items.filter( (item) => !item.hideOnMobile, ); if (mobileItems.length === 0) return null; return ( {mobileItems.map((item) => ( {item.label} ))} ); })} > ); }