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.