import { html } from '@design.estate/dees-element'; import type * as interfaces from '../../interfaces/index.js'; export const demoFunc = () => html`
console.log('Dashboard clicked'), badge: 3, badgeVariant: 'warning' }, { key: 'Projects', iconName: 'lucide:folder', action: () => console.log('Projects clicked'), badge: 'new', badgeVariant: 'success' }, { key: 'Analytics', iconName: 'lucide:barChart2', action: () => console.log('Analytics clicked') }, ] as interfaces.ISecondaryMenuItemTab[] }, // Group 2: Actions { name: 'Actions', iconName: 'lucide:zap', items: [ { type: 'action', key: 'Create New', iconName: 'lucide:plus', action: () => alert('Create New clicked!') }, { type: 'action', key: 'Import Data', iconName: 'lucide:upload', action: () => alert('Import Data clicked!') }, { type: 'divider' }, { type: 'action', key: 'Delete All', iconName: 'lucide:trash2', variant: 'danger', confirmMessage: 'Are you sure you want to delete all items?', action: () => alert('Deleted!') }, ] as interfaces.ISecondaryMenuItem[] }, // Group 3: Filters { name: 'Filters', iconName: 'lucide:filter', items: [ { type: 'header', label: 'Status' }, { type: 'filter', key: 'Show Active', iconName: 'lucide:checkCircle', active: true, onToggle: (active) => console.log('Show Active:', active) }, { type: 'filter', key: 'Show Archived', iconName: 'lucide:archive', active: false, onToggle: (active) => console.log('Show Archived:', active) }, { type: 'divider' }, { type: 'multiFilter', key: 'Categories', iconName: 'lucide:tag', collapsed: false, options: [ { key: 'frontend', label: 'Frontend', checked: true, iconName: 'lucide:monitor' }, { key: 'backend', label: 'Backend', checked: true, iconName: 'lucide:server' }, { key: 'devops', label: 'DevOps', checked: false, iconName: 'lucide:cloud' }, { key: 'design', label: 'Design', checked: false, iconName: 'lucide:palette' }, ], onChange: (keys) => console.log('Selected categories:', keys) }, ] as interfaces.ISecondaryMenuItem[] }, // Group 4: Links and misc { name: 'Resources', iconName: 'lucide:bookOpen', collapsed: true, items: [ { type: 'header', label: 'Documentation' }, { type: 'link', key: 'API Reference', iconName: 'lucide:fileText', href: 'https://api.example.com/docs' }, { type: 'link', key: 'User Guide', iconName: 'lucide:book', href: 'https://docs.example.com/guide' }, { type: 'divider' }, { type: 'header', label: 'Support' }, { type: 'link', key: 'Help Center', iconName: 'lucide:helpCircle', href: '/help', external: false }, { type: 'link', key: 'GitHub Issues', iconName: 'lucide:github', href: 'https://github.com/example/issues' }, ] as interfaces.ISecondaryMenuItem[] } ] as interfaces.ISecondaryMenuGroup[]} @item-select=${(e: CustomEvent) => console.log('Tab selected:', e.detail)} @action-click=${(e: CustomEvent) => console.log('Action clicked:', e.detail)} @filter-toggle=${(e: CustomEvent) => console.log('Filter toggled:', e.detail)} @multifilter-change=${(e: CustomEvent) => console.log('Multi-filter changed:', e.detail)} @link-click=${(e: CustomEvent) => console.log('Link clicked:', e.detail)} >

Secondary Menu Demo

This demo showcases all 8 item types:

Try the collapse toggle on the left edge!

`;