import type { Meta, StoryObj } from "@storybook/react-vite" import { Button, Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from "@hm-design/ui" import { StoryPage, StoryPageHeader, StorySection } from "@/components/story-page" // Tooltip is a Radix overlay (Portal) with short, non-interactive text. The representative Story shows real triggers // (hover or focus to open); the verification Story starts one open. Interactive content belongs in Popover / Hover Card. const longText = "긴 설명은 최대 폭에서 줄바꿈됩니다. 이 정도 길이가 Tooltip의 한계이며, 더 긴 내용은 Popover나 Hover Card를 사용합니다." function Basic({ defaultOpen }: { defaultOpen?: boolean }) { return ( 저장하지 않은 변경 사항이 있습니다 ) } function Placements() { return (
{(["top", "right", "bottom", "left"] as const).map((side) => ( {`side="${side}"`} ))}
) } function LongText() { return ( {longText} ) } function Disabled() { // A disabled button gets no pointer events, so the trigger is a wrapper element. return ( 권한이 없어 사용할 수 없습니다 ) } const meta = { title: "Components/Overlay/Tooltip", component: Tooltip, parameters: { layout: "centered" } } satisfies Meta export default meta type Story = StoryObj export const All: Story = { name: "Tooltip", parameters: { layout: "fullscreen", controls: { disable: true } }, render: () => (
), } export const Open: Story = { tags: ["verification"], parameters: { layout: "fullscreen" }, render: () => (
), }