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}
{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}
}>
}
>
{last?.title}
);
},
args: {
root: { '@id': '/', title: 'Home', icon: },
},
};