import type { Meta, StoryObj } from '@storybook/html'; import { MegaMenu, type MegaMenuOptions } from '@42/core/mega-menu'; import '@42/styles/mega-menu.css'; const snippet = `import { MegaMenu } from '@42/core/mega-menu'; import '@42/styles/mega-menu.css'; const menu = new MegaMenu(document.querySelector('[data-c42-mega-menu]')!, { openOnHover: true, closeDelay: 150, }); menu.on('megamenu:open', (e) => console.log('opened', e.detail.value));`; const meta: Meta = { title: 'Core/Navigation/MegaMenu', tags: ['autodocs'], parameters: { docs: { source: { code: snippet, language: 'ts' }, }, }, argTypes: { openOnHover: { control: 'boolean' }, openDelay: { control: { type: 'number', min: 0, step: 50 } }, closeDelay: { control: { type: 'number', min: 0, step: 50 } }, }, args: { openOnHover: true, openDelay: 0, closeDelay: 150, }, render: (args) => { const root = document.createElement('nav'); root.dataset.c42MegaMenu = ''; root.setAttribute('aria-label', 'Main'); root.innerHTML = ` `; new MegaMenu(root, args); return root; }, }; export default meta; type Story = StoryObj; export const Default: Story = {}; export const ClickOnly: Story = { args: { openOnHover: false }, };