import type { ReactNode } from "react";
import { Rule } from "@unlocalhosted/metalui";
import { Box } from "./ui";
/*
* The settings pages' form plates, in MetalUI's settings anatomy: a heading engraved just above a
* raised card (Settings.Section's look), for the parts that are forms with Save rather than rows.
* Server-safe: no hooks, only serializable props on MetalUI parts.
*/
/** A titled group: the engraved heading, then a raised plate holding a form or a list. */
export function PlateSection({ title, children, className = "" }: { title: string; children: ReactNode; className?: string }) {
return (
);
}
/** The plate's content: the fields, stacked 20 apart. */
export function PlateBody({ children, className = "" }: { children: ReactNode; className?: string }) {
return
{children}
;
}
/** The plate's actions, at the end under an inset engraved rule: the one that does the thing last. */
export function PlateFooter({ children, className = "" }: { children: ReactNode; className?: string }) {
return (
<>
{children}
>
);
}
/** A thing in a settings list: a lead, its name and engraved meta, then one control. */
export function ListRow({
lead,
title,
meta,
children,
}: {
lead?: ReactNode;
title: ReactNode;
meta?: ReactNode;
children?: ReactNode;
}) {
return (
{lead}
{children &&
{children}
}
);
}
/** A glyph sunk in a small well, leading a list row. */
export function RowGlyph({ children }: { children: ReactNode }) {
return {children};
}