# Proposal: Content Patterns

## Overview
Create reusable content components for data-dense views: DataTable, FilterBar, EmptyState, and LoadingState.

## Goals
- Create DataTable component wrapping TanStack Table with DaisyUI styling
- Create FilterBar component for reusable filter patterns
- Create EmptyState component for no-data placeholders
- Create LoadingState component with skeleton patterns

## Non-Goals
- Page implementations (done in p05)
- Specific business logic

## Priority
**MEDIUM** - Reusable patterns for pages

## Scope

### DataTable Component
- Wraps @tanstack/svelte-table
- DaisyUI table styling
- Sorting support
- Pagination support
- Row selection (optional)
- Loading state
- Empty state integration

### FilterBar Component
- Search input
- Filter dropdowns
- Date range picker integration
- Clear filters button
- Slot for custom filters

### EmptyState Component
- Icon display
- Title and description
- Optional action button
- Consistent styling

### LoadingState Component
- Skeleton patterns for different content types
- Table skeleton
- Card skeleton
- Text skeleton

## Success Criteria
- [ ] DataTable created with TanStack integration
- [ ] FilterBar created with search and dropdowns
- [ ] EmptyState created with icon and action
- [ ] LoadingState created with skeletons
- [ ] All tests pass

## Estimated Effort
3-4 hours

## Dependencies
- p02-app-layout
- p03-dashboard-enhancement (can start in parallel)

## Blocks
- p05-page-migrations
