import type { Meta, StoryObj } from '@storybook/nextjs' import { useState } from 'react' import CustomPopover from '.' type PopoverContentProps = { open?: boolean onClose?: () => void onClick?: () => void title: string description: string } const PopoverContent = ({ title, description, onClose }: PopoverContentProps) => { return (
{title}

{description}

) } const Template = ({ trigger = 'hover', position = 'bottom', manualClose, disabled, }: { trigger?: 'click' | 'hover' position?: 'bottom' | 'bl' | 'br' manualClose?: boolean disabled?: boolean }) => { const [hoverHint] = useState( trigger === 'hover' ? 'Hover over the badge to reveal quick tips.' : 'Click the badge to open the contextual menu.', ) return (

{hoverHint}

Popover trigger} htmlContent={ } />
) } const meta = { title: 'Base/Feedback/Popover', component: Template, parameters: { layout: 'centered', docs: { description: { component: 'Headless UI popover wrapper supporting hover and click triggers. These examples highlight alignment controls and manual closing.', }, }, }, argTypes: { trigger: { control: 'radio', options: ['hover', 'click'], }, position: { control: 'radio', options: ['bottom', 'bl', 'br'], }, manualClose: { control: 'boolean' }, disabled: { control: 'boolean' }, }, args: { trigger: 'hover', position: 'bottom', manualClose: false, disabled: false, }, tags: ['autodocs'], } satisfies Meta export default meta type Story = StoryObj export const HoverPopover: Story = {} export const ClickPopover: Story = { args: { trigger: 'click', position: 'br', }, } export const DisabledState: Story = { args: { disabled: true, }, }