A React skeleton loading component that renders an animated placeholder UI for profile content while data is being fetched. ## Key Components - **`ProfileLoadingSkeleton`** — Named export functional component that renders a two-section animated skeleton: - **Header skeleton** — Circular avatar placeholder (`h-16 w-16`) alongside two text line placeholders - **Content skeleton** — Three progressively narrower text line placeholders (`full`, `3/4`, `1/2` widths) - **`ProfileLoadingSkeletonProps`** — Interface accepting an optional `className` string for layout customization - **`cn`** utility — Merges Tailwind class names, allowing consumers to extend or override base styles ## Usage Example ```typescript import { ProfileLoadingSkeleton } from './components/ProfileLoadingSkeleton' // Basic usage function ProfilePage() { const { data, isLoading } = useProfile() if (isLoading) { return } return } // With custom className for layout overrides function SidebarProfile() { return ( ) } ``` ## Notes - Uses the `ods-skeleton` design token (via `bg-ods-skeleton`) for consistent skeleton coloring across the OpenFrame Design System - Animation is handled entirely via Tailwind's `animate-pulse` — no additional animation dependencies required - The `className` prop is merged at the root `div`, making it straightforward to control width, padding, or margin from the parent **Source:** [`flamingo-stack/openframe-oss-lib`](https://github.com/flamingo-stack/openframe-oss-lib/blob/main/ProfileLoadingSkeleton.tsx)