diff --git a/image-ai/bun.lockb b/image-ai/bun.lockb index e6235a2..38a7163 100644 Binary files a/image-ai/bun.lockb and b/image-ai/bun.lockb differ diff --git a/image-ai/src/components/hint.tsx b/image-ai/src/components/hint.tsx new file mode 100644 index 0000000..2037344 --- /dev/null +++ b/image-ai/src/components/hint.tsx @@ -0,0 +1,47 @@ +import { + Tooltip, + TooltipContent, + TooltipProvider, + TooltipTrigger, +} from "@/components/ui/tooltip"; + +export interface HintProps { + label: string; + children: React.ReactNode; + side?: "top" | "bottom" | "left" | "right"; + align?: "start" | "center" | "end"; + sideOffset?: number; + alightOffset?: number; +}; + +export const Hint = ({ + label, + children, + side, + align, + sideOffset, + alightOffset, +}: HintProps) => { + return ( + + + + {/* asChild는 기능은 그대로 children 태그를 대신 렌더링.*/} + {children} + + +

+ {label} +

+
+
+
+ + ) +}; \ No newline at end of file diff --git a/image-ai/src/features/editor/components/navbar.tsx b/image-ai/src/features/editor/components/navbar.tsx index 6f4ade4..3b7ba1c 100644 --- a/image-ai/src/features/editor/components/navbar.tsx +++ b/image-ai/src/features/editor/components/navbar.tsx @@ -1,10 +1,12 @@ "use client"; +import {ChevronDown, MousePointerClick, Undo2} from "lucide-react"; +import {CiFileOn} from "react-icons/ci"; import {Logo} from "./logo"; +import {Hint} from "@/components/hint"; -import {ChevronDown} from "lucide-react"; -import {CiFileOn} from "react-icons/ci"; import {Button} from "@/components/ui/button"; +import {Separator} from "@/components/ui/separator"; import { DropdownMenu, DropdownMenuItem, @@ -12,6 +14,7 @@ import { DropdownMenuTrigger, } from "@/components/ui/dropdown-menu"; + export const Navbar = () => { return ( );