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.