Files
DevRunbook-Public/packages/ui/src/primitives/surface.tsx
T
DevRunbook release export cfd2804e27
Managed validation / full (push) Successful in 3m18s
Publish DevRunbook source
2026-09-03 04:09:17 +02:00

34 lines
743 B
TypeScript

import type { HTMLAttributes, ReactNode } from 'react'
import { classNames } from '../lib/class-names'
export type SurfaceElement = 'div' | 'section' | 'article' | 'aside'
export type SurfaceElevation = 'flat' | 'raised' | 'overlay'
export interface SurfaceProps extends HTMLAttributes<HTMLElement> {
readonly as?: SurfaceElement
readonly elevation?: SurfaceElevation
readonly children: ReactNode
}
export function Surface({
as: Component = 'div',
elevation = 'flat',
className,
children,
...props
}: SurfaceProps) {
return (
<Component
className={classNames(
'drb-surface',
`drb-surface--${elevation}`,
className,
)}
{...props}
>
{children}
</Component>
)
}