import { PageSkeleton, Skeleton } from "./index"; import { DocsPage } from "@shared/stories/DocsTemplate"; import type { Meta, StoryObj } from "@storybook/react"; const meta: Meta = { title: "Components/Skeleton", component: Skeleton, tags: ["autodocs"], parameters: { layout: "centered", docs: { page: DocsPage, description: { component: "Loading skeleton components for displaying placeholder content while data is being loaded.", }, }, }, argTypes: { count: { control: { type: "number" }, description: "Number of skeleton lines to display", }, className: { control: { type: "text" }, description: "Additional CSS classes", }, }, args: { count: 1, }, }; export default meta; type Story = StoryObj; // Default skeleton export const Default: Story = { args: {}, }; // Multiple counts export const Multiple: Story = { args: { count: 3, }, }; // Custom styling export const CustomStyling: Story = { args: { count: 2, className: "h-12 rounded-lg", }, }; // Different counts export const DifferentCounts: Story = { render: () => (

Single Line

Three Lines

Five Lines

), parameters: { docs: { description: { story: "Skeleton with different line counts.", }, }, }, }; // Page skeleton export const PageSkeletonExample: Story = { render: () => (
), parameters: { layout: "fullscreen", docs: { description: { story: "PageSkeleton component for full page loading states.", }, }, }, }; // In card export const InCard: Story = { render: () => (
), parameters: { docs: { description: { story: "Skeleton used within a card layout.", }, }, }, }; // List skeleton export const ListSkeleton: Story = { render: () => (
{[1, 2, 3, 4, 5].map(i => (
))}
), parameters: { docs: { description: { story: "Skeleton used for loading list items.", }, }, }, }; // All variants showcase export const AllVariants: Story = { render: () => (

Basic Skeleton

Custom Styled

In Card

Page Skeleton

), parameters: { docs: { description: { story: "Showcase of all skeleton variants and use cases.", }, }, }, };