import clsx from 'clsx'; // Skeleton loading previews. The base block uses Tailwind's animate-pulse and // the light-gray surface tokens so placeholders match real card/table styling. // Composites below mirror the layouts they stand in for (event cards, admin // tables, FAQ accordions, article bodies) to avoid layout shift when data lands. interface SkeletonProps { className?: string; } export function Skeleton({ className, tone = 'default', }: SkeletonProps & { /** `on-dark` lightens the surface for placeholders over a dark hero. */ tone?: 'default' | 'on-dark'; }) { return (