import type { Meta, StoryObj } from "@storybook/react"; import { Home, MoreHorizontal, Settings } from "lucide-react"; import { Sidebar } from "."; import { InternalLink } from "../Link"; import "./story.css"; // Define the metadata for the Sidebar component const meta: Meta = { title: "Components/Sidebar", component: Sidebar, tags: ["autodocs"], argTypes: { side: { control: "select", options: ["left", "right"], description: "Position of the sidebar", }, variant: { control: "select", options: ["sidebar", "floating", "inset"], description: "Visual style of the sidebar", }, collapsible: { control: "select", options: ["offcanvas", "icon", "none"], description: "Collapsible behavior of the sidebar", }, }, }; export default meta; type Story = StoryObj; // Default story showcasing the Sidebar components together // Default story showcasing the Sidebar components together const Template: Story = (args) => ( {/* Main Sidebar component with configurable props */}

Sidebar

{/* Navigation Group */} Navigation Home Settings 5 General Account {/* Loading Group with Skeleton */} Loading Group Settings
{/* Main content area */}

Main Content

This is the main content area.

); export const Default: Story = Template.bind({}); Default.args = { side: "left", variant: "sidebar", collapsible: "offcanvas", }; // Variant stories for specific configurations export const RightSidebar = Template.bind({}); RightSidebar.args = { side: "right", }; export const FloatingVariant = Template.bind({}); FloatingVariant.args = { variant: "floating", }; export const InsetVariant = Template.bind({}); InsetVariant.args = { variant: "inset", }; export const CollapsedToIcons = Template.bind({}); CollapsedToIcons.args = { collapsible: "icon", };