import { cn } from '@/lib/utils'; /** * A hardware illustration with the real app running inside it. * * This is the entry screen on a desktop browser: rather than describing the * product in prose, it shows the actual running app — the same , the same * drag gesture, the same data — inside a phone. Everything inside `children` is * live and interactive, not a screenshot. * * On a phone there is no frame. Drawing a picture of a phone on a phone is * absurd, and it would waste the ~24px of width the deck actually needs, so * below `sm` the bezel collapses and the app simply fills the viewport. */ export function PhoneFrame({ className, children, }: { className?: string; children: React.ReactNode; }) { return (
{/* The screen. overflow-hidden is what makes a swiped card disappear at the bezel instead of flying across the page. */}
{/* Dynamic Island. Pointer-events-none so it never eats a drag that starts near the top of the card. */}
{children} {/* Home indicator. */}
); }