Barrel export file for the skeleton/loading component library, consolidating all skeleton UI components used across the Flamingo/OpenFrame platform into a single import surface.
## Key Components
### Page Layout Skeletons
| Export | Source |
|--------|--------|
| `AnnouncementBarSkeleton`, `HeroSkeleton`, `SearchContainerSkeleton` | `./page-layout-skeleton` |
| `TwoColumnLayoutSkeleton`, `ArticleLayoutSkeleton`, `VendorDetailLayoutSkeleton` | `./page-layout-skeleton` |
| `BlogCardGridSkeleton`, `VendorGridSkeleton`, `StatsSectionSkeleton` | `./page-layout-skeleton` |
### Card & Content Skeletons
- **`CardSkeleton`, `CardSkeletonGrid`** — Generic card placeholders
- **`ParagraphSkeleton`, `ListSkeleton`, `TableSkeleton`, `FormSkeleton`** — Content-type specific loaders
- **`ProfileSkeleton`, `CommentSkeleton`, `TimelineSkeleton`, `PricingSkeleton`** — Specialized content skeletons
### Unified / Dynamic Systems
- **`UnifiedSkeleton`, `TextSkeleton`, `MediaSkeleton`, `InteractiveSkeleton`** — Composable primitives
- **`DynamicSkeleton`, `SkeletonPresets`, `PlatformSkeletonContainer`, `ProgressiveSkeleton`** — ODS-aware adaptive skeletons
- **`ContentLoadingContainer`, `useContentLoading`** — Hook + container for loading state management
### Domain-Specific Skeletons
- **`ProfileLoadingSkeleton`, `MspProfileFormSkeleton`** — MSP profile flows
- **`OrganizationCardSkeleton`, `OrganizationCardSkeletonGrid`** — Organization management
- **`DeviceCardSkeleton`, `DeviceCardSkeletonGrid`** — Device listing views
- **`WizardLayoutSkeleton`**, **`MarginReportSkeleton`**, **`UsersGridSkeleton`** — Wizard, reporting, and admin views
## Usage Example
```typescript
// Import any skeleton from a single entry point
import {
TwoColumnLayoutSkeleton,
DynamicSkeleton,
useContentLoading
} from '@/components/skeletons'
export default function PageShell() {
const { isLoading } = useContentLoading()
if (isLoading) return
return
}
```
> ⚠️ **Important:** `OpenmspHeartbeatLoader` is intentionally **excluded** from this barrel — it is client-only and must be imported directly from `./openmsp-heartbeat` in client components to avoid breaking server-side rendering.