--- interface Props { as?: keyof HTMLElementTagNameMap; class?: string; variant?: 'accent' | 'default' | 'subtle'; [key: string]: unknown; } const { as = 'article', class: className = '', variant = 'default', ...rest } = Astro.props; const variantClasses = { default: 'surface-card', accent: 'surface-card-accent', subtle: 'surface-card-muted', }; const Tag = as; ---