"use client"; import { InfoIcon } from "lucide-react"; import { useSyncExternalStore, type ReactNode } from "react"; import { Drawer, DrawerContent, DrawerDescription, DrawerHeader, DrawerTitle, DrawerTrigger, } from "@/components/ui/drawer"; import { HoverCard, HoverCardContent, HoverCardTrigger, } from "@/components/ui/hover-card"; const finePointerQuery = "(hover: hover) and (pointer: fine)"; function subscribe(callback: () => void) { const query = window.matchMedia(finePointerQuery); query.addEventListener("change", callback); return () => query.removeEventListener("change", callback); } function getSnapshot() { return window.matchMedia(finePointerQuery).matches; } function Trigger({ label, showIcon }: { label: ReactNode; showIcon: boolean }) { return ( {label} {showIcon ? ); } export function TermDetail({ label, title, detail, showIcon = true, interactive = false, }: { label: ReactNode; title: string; detail: string; showIcon?: boolean; interactive?: boolean; }) { const finePointer = useSyncExternalStore(subscribe, getSnapshot, () => false); if (finePointer && !interactive) { return (

{title}

{detail}

); } return ( {title} {detail}
); }