import type { HTMLAttributes, ReactNode } from 'react'
import { cx } from '../../utils/cx'
import { renderAsChild } from '../../utils/asChild'
import { usePressFeedback } from '../../hooks/usePressFeedback'
/**
* `elevated` floats above the page and is the only variant that casts a
* shadow. `grouped` is the iOS Settings card — the same surface, separated
* from the page by VALUE alone. `nested` is the darker fill a card takes when
* it sits inside another card. `plain` is structure without a surface.
*
* There is no `outlined` variant: nothing in this system is separated by a
* stroke, and a card is exactly where that temptation is strongest.
*/
export type CardVariant = 'elevated' | 'grouped' | 'nested' | 'plain'
/** Padding rung. `none` lets a `List` or an image sit flush to the corners. */
export type CardPadding = 'none' | 'xs' | 'sm' | 'md' | 'lg'
export interface CardProps extends Omit, 'onClick'> {
children?: ReactNode
/** @default 'elevated' */
variant?: CardVariant
/** @default 'md' */
padding?: CardPadding
/**
* Makes the whole card activatable: press feedback, a hover lift, and a real
* `