learning_ai_common_plat/packages/dashboard-components/src/LoadingSkeleton.tsx
saravanakumardb1 359d6e18a5 feat: Platform Acceleration + A/B Testing Framework
Platform Acceleration Phase 1:
- @bytelyst/sync package: Offline-first sync engine with conflict resolution
  - Storage adapters: LocalStorage, InMemory, MMKV
  - Deduplication, retry with backoff, auto-flush on reconnect
  - 12 comprehensive tests
- @bytelyst/dashboard-components package: Shared React components
  - ErrorPage, NotFoundPage, LoadingSpinner, LoadingSkeleton, EmptyState, PageHeader
  - Theme-aware with CSS custom properties

A/B Testing Framework (Complete):
- Admin UI at /ops/ab-testing with experiments list, variant performance, AI suggestions
- Sidebar navigation with Beaker icon
- 40 tests passing in ab-testing module

All 909 platform-service tests pass.
2026-03-03 19:47:47 -08:00

17 lines
443 B
TypeScript

import type { ReactNode } from 'react';
interface LoadingSkeletonProps {
rows?: number;
className?: string;
}
export function LoadingSkeleton({ rows = 3, className = '' }: LoadingSkeletonProps): ReactNode {
return (
<div className={`space-y-3 ${className}`}>
{Array.from({ length: rows }).map((_, i) => (
<div key={i} className="h-12 bg-gray-200 dark:bg-gray-700 rounded animate-pulse" />
))}
</div>
);
}