import type { Meta, StoryObj } from '@storybook/react' import { SidebarDropZone } from './sidebar-drop-zone' import { FolderOpen } from 'lucide-react' const meta: Meta = { title: 'Primitives/SidebarDropZone', component: SidebarDropZone, parameters: { layout: 'centered', backgrounds: { default: 'dark' } }, args: { onDrop: (files) => console.log('dropped', files), }, decorators: [ (Story) => (
Workspace Files
index.ts
utils.ts
config.json
), ], } export default meta type Story = StoryObj export const Persistent: Story = { name: 'Persistent (always visible)', args: { persistent: true, title: 'Drop files here', description: 'Uploads to workspace', }, } export const PersistentNoDescription: Story = { name: 'Persistent — title only', args: { persistent: true, title: 'Upload to workspace', }, } /** Static drag-over appearance — mirrors what the component renders when dragOver=true */ export const DragOverPreview: Story = { name: 'Drag-over state (static preview)', render: () => (

Drop files here

Uploads to workspace

), } export const CustomIcon: Story = { name: 'Custom Icon', args: { persistent: true, title: 'Add folder', description: 'Drop a folder to sync', icon: , }, } export const WithAcceptFilter: Story = { name: 'Accept filter (.pdf, .csv)', args: { persistent: true, accept: '.pdf,.csv', title: 'Drop CSV or PDF', description: 'Only structured data files', }, } export const Disabled: Story = { name: 'Disabled', args: { persistent: true, disabled: true, title: 'Uploads disabled', }, }