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.
17 lines
443 B
TypeScript
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>
|
|
);
|
|
}
|