import type { Meta, StoryObj } from '@storybook/vue3' import { USidebar, UApp, UIcon, UInput, USidebarLogo, UAvatarGroup, UAvatar, UListItemGroup, UListItem, UCard, } from '../components' import { USidebarProps } from '../components/USidebar/USidebar' import { ExtractPropTypes, ref, Transition } from 'vue' const meta: Meta = { title: 'Example/Sidebar', component: USidebar, tags: ['autodocs'], argTypes: { variant: { control: 'select', options: ['primary', 'gray'] }, style: { control: 'select', options: ['simple', 'dual-tier', 'slim'] }, theme: { control: 'select', options: ['light', 'dark'] }, location: { control: 'select', options: ['left', 'right', 'top'] }, transitionDuration: { control: 'select', options: ['0', '75', '100', '150', '200', '300', '500', '700', '1000'], }, border: { control: 'boolean', defaultValue: false }, elevation: { control: 'boolean', defaultValue: false }, }, } export default meta type Story = StoryObj export const TemporaryDrawer: Story = { render: (args: ExtractPropTypes) => ({ components: { USidebar, UApp, UIcon, USidebarLogo, UInput, UAvatarGroup }, setup() { const drawer = ref(false) const toggleDrawer = () => { drawer.value = !drawer.value } return { args, drawer, toggleDrawer } }, template: `
$menu2
  • $homeLine Home
  • $barChartSquare2 Dashboard
  • $layersThree1 Projects
  • $checkDone1 Tasks
  • $users1 Users
  • $lifeBuoy1 Support
  • $settings1 Settings
`, }), args: {} as USidebarProps, } export const ExpandOnHoverDrawer: Story = { render: (args: ExtractPropTypes) => ({ components: { USidebar, UApp, UIcon, UAvatar }, setup() { const drawer = ref(false) return { args, drawer } }, template: `
  • $homeLine
  • $barChartSquare2
  • $layersThree1
  • $checkDone1
  • $users1
  • $lifeBuoy1
  • $settings1
`, }), args: { // } as USidebarProps, } export const PermanentDrawer: Story = { render: (args: ExtractPropTypes) => ({ components: { USidebar, UApp, UIcon, UInput, USidebarLogo, UAvatarGroup }, setup() { const drawer = ref(false) return { args, drawer } }, template: `
  • $homeLine Home
  • $barChartSquare2 Dashboard
  • $layersThree1 Projects
  • $checkDone1 Tasks
  • $users1 Users
  • $lifeBuoy1 Support
  • $settings1 Settings
`, }), args: { // } as USidebarProps, } export const PermanentTopDrawer: Story = { render: (args: ExtractPropTypes) => ({ components: { USidebar, UApp, USidebarLogo, UAvatar, UIcon }, setup() { const drawer = ref(false) return { args, drawer } }, template: `
  • Home
  • Dashboard
  • Projects
  • Tasks
  • Users
  • $lifeBuoy1
  • $settings1
`, }), args: { // } as USidebarProps, } export const GuestListSidebar: Story = { render: (args: USidebarProps) => ({ components: { USidebar, UApp, UIcon, UListItemGroup, UListItem, UCard, Transition, }, setup() { const rail = ref(true) const cardIsVisible = ref(true) const currentItemId = ref('') const listItems = [ { title: 'Overview', badge: 0, itemId: 'overviewScreen', prependIcon: 'activity', }, { title: 'Notifications', badge: 10, itemId: 'notificationsScreen', prependIcon: 'notificationBox', }, { title: 'Analytics', itemId: 'analyticsScreen', prependIcon: 'barLineChart', }, { title: 'Saved reports', itemId: 'savedReportssScreen', prependIcon: 'star1', }, { title: 'Scheduled reports', itemId: 'scheduledReportsScreen', prependIcon: 'clockFastForward', }, ] const currentItemIdChange = (index: string) => { if (currentItemId.value != index) { currentItemId.value = index } else { currentItemId.value = '' } } const listItemClick = (e: MouseEvent) => { console.log(e) } const hideCard = () => { cardIsVisible.value = false } return { args, currentItemId, currentItemIdChange, listItemClick, rail, hideCard, cardIsVisible, listItems, } }, template: `
$menu2
Dashboard Guest List Messages Service Requests Shop Orders Application
`, }), args: { currentItemId: '', } as USidebarProps, }