import React from 'react'; import { Breadcrumbs, Breadcrumb, BreadcrumbsSlot } from './Breadcrumbs'; import { ChevronrightIcon, FolderIcon, HomeIcon, MoreoptionsIcon, PageIcon, } from '../../components/icons'; import { Button } from '../Button/Button'; import { Menu, MenuItem, MenuTrigger } from '../Menu/Menu'; import type { Meta, StoryObj } from '@storybook/react-vite'; const meta = { title: 'Basic/Breadcrumbs', component: Breadcrumbs, tags: ['autodocs'], parameters: { layout: 'centered', }, decorators: [(Story) => ], } satisfies Meta; export default meta; type Story = StoryObj; export const Default: Story = { render: (args) => ( Home Folder Page ), }; export const DefaultWithSeparator: Story = { render: (args) => ( }> Home }> Folder Page ), }; export const DefaultUsingCollection: Story = { render: (args) => ( {(item) => ( {item.title} )} ), args: { root: { '@id': '/', title: 'Home', icon: }, items: [ { '@id': '/folder', title: 'Folder' }, { '@id': '/folder/page', title: 'Page' }, ], }, }; export const DefaultUsingCollectionWithSeparator: Story = { render: (args) => ( {(item) => ( } > {item.title} )} ), args: { root: { '@id': '/', title: 'Home', icon: }, items: [ { '@id': '/folder', title: 'Folder' }, { '@id': '/folder/page', title: 'Page' }, ], }, }; export const NoRoot: Story = { render: (args) => ( {(item) => ( {item.title} )} ), args: { items: [ { '@id': '/folder', title: 'Folder' }, { '@id': '/folder/page', title: 'Page' }, ], }, }; export const SlotWithRootWithIcons: Story = { render: (args) => , args: { root: { '@id': '/', title: 'Home', icon: }, items: [ { '@id': '/folder', title: 'Folder', icon: }, { '@id': '/folder/page', title: 'Page', icon: }, ], }, }; const longItems = [ { '@id': '/folder', title: 'Folder' }, { '@id': '/folder/folderB', title: 'Folder with long name' }, { '@id': '/folder/folderB/folderC', title: 'Folder with long name and a bit more', }, { '@id': '/folder/folderB/folderC/folderD', title: 'Folder with long name even more long', }, { '@id': '/folder/folderB/folderC/folderD/folderE', title: 'Folder', }, { '@id': '/folder/page', title: 'Page' }, ]; export const LotsOfItems: Story = { render: (args) => { const first = longItems ? longItems[0] : null; const last = longItems ? longItems[longItems.length - 1] : null; const inner = longItems ? longItems.slice(1, longItems.length - 1) : []; return ( {args.root && ( {args.root.icon} {args.root.title} )} {first?.title} {(item) => ( {item.title} )} {last?.title} ); }, args: { root: { '@id': '/', title: 'Home', icon: }, }, }; export const LotsOfItemsWithSeparator: Story = { render: (args) => { const first = longItems ? longItems[0] : null; const last = longItems ? longItems[longItems.length - 1] : null; const inner = longItems ? longItems.slice(1, longItems.length - 1) : []; return ( {args.root && ( } > {args.root.icon} {args.root.title} )} } > {first?.title} }> {(item) => ( {item.title} )} } > {last?.title} ); }, args: { root: { '@id': '/', title: 'Home', icon: }, }, };