// ~/src/siteplane/components/frame/frame.tsx import type * as React from "react"; import { surfaceClassNames } from "../../system/styles/surface"; import { cn } from "../../system/utils/cn"; import { slotClass } from "../../system/utils/slot-class"; // The frame's 4 px gap spaces its panels, and a hidden part leaves none. The // header and the footer take it from their own padding, so the space around // them stays 16 px on both sides. export function Frame({ className, ...props }: React.ComponentProps<"div">): React.ReactElement { return (
); } export function FramePanel({ className, ...props }: React.ComponentProps<"div">): React.ReactElement { return (
); } // Frame headers and footers are plain blocks, not banner or contentinfo // landmarks: a page holds many frames. export function FrameHeader({ className, ...props }: React.ComponentProps<"div">): React.ReactElement { return (
); } export function FrameTitle({ className, ...props }: React.ComponentProps<"div">): React.ReactElement { return (
); } export function FrameDescription({ className, ...props }: React.ComponentProps<"div">): React.ReactElement { return (
); } export function FrameFooter({ className, ...props }: React.ComponentProps<"div">): React.ReactElement { return (
); } // ~/src/siteplane/components/frame/index.ts export * from "./frame";