Loading skeleton component that renders a placeholder for `OrganizationIcon`/`VendorIcon` during async data fetching, preventing layout shifts by matching the icon's exact dimensions and styling. ## Key Components ### `OrganizationIconSkeletonProps` | Prop | Type | Default | Description | |------|------|---------|-------------| | `size` | `'xs' \| 'sm' \| 'md' \| 'lg' \| 'l' \| 'xl'` | `'md'` | Pixel size variant (24px–64px) | | `className` | `string` | `''` | Additional Tailwind/CSS classes | | `showBackground` | `boolean` | `true` | Toggles the container background and border | | `backgroundStyle` | `'dark' \| 'light' \| 'white'` | `'dark'` | Background color variant | ### `OrganizationIconSkeleton` The exported functional component. Renders an animated pulse placeholder (`animate-pulse`) sized to match the target icon exactly. **Size → class mapping:** | Size | Class | Pixels | |------|-------|--------| | `xs` | `w-6 h-6` | 24px | | `sm` | `w-8 h-8` | 32px | | `md` | `w-10 h-10` | 40px | | `lg` | `w-12 h-12` | 48px | | `l` | `w-14 h-14` | 56px | | `xl` | `w-16 h-16` | 64px | ## Usage Example ```typescript // Default — organizations table / dashboard // Devices table // Detail / profile view // Icon-only, no background container // White card background with extra margin ``` ## Source [`organization-icon-skeleton.tsx`](https://github.com/flamingo-stack/openframe-oss-lib/blob/main/organization-icon-skeleton.tsx)