A loading skeleton placeholder for the users data grid, rendering an animated pulsing table with header columns and configurable blank rows while user data is being fetched. ## Key Components - **`UsersGridSkeleton`** — Default export component that renders a full-width table skeleton with five fixed columns: Name, Email, Role, Created, and Last Sign-In. - **`Props`** — Interface accepting `rows` (number of skeleton rows to render, defaults to `10`) and an optional `className` for style overrides. ## Usage Example ```typescript import { UsersGridSkeleton } from "./users-grid-skeleton" // Default: 10 skeleton rows // Custom row count and additional styling ``` ## Notes - Uses `animate-pulse` for the loading shimmer effect via Tailwind CSS. - Columns are statically defined as `['Name', 'Email', 'Role', 'Created', 'Last Sign-In']` — matching the expected shape of the users table. - Each skeleton cell renders a full-width `h-4` bar using the `ods-border` design token, consistent with the OpenFrame design system. - The `cn` utility (from [`utils/cn`](https://github.com/flamingo-stack/openframe-oss-lib/blob/main/utils/cn.ts)) merges class names, allowing external `className` overrides without conflicts.