diff --git a/frontend/components/settings/settings-ai.tsx b/frontend/components/settings/settings-ai.tsx index 695eb3b..42eef40 100644 --- a/frontend/components/settings/settings-ai.tsx +++ b/frontend/components/settings/settings-ai.tsx @@ -211,6 +211,7 @@ export function AIPanel() { {policy ? ( {isAdmin ? ( diff --git a/frontend/components/settings/settings-parts.tsx b/frontend/components/settings/settings-parts.tsx index 94dc315..4b30423 100644 --- a/frontend/components/settings/settings-parts.tsx +++ b/frontend/components/settings/settings-parts.tsx @@ -14,6 +14,7 @@ import { CardFrameTitle, } from "@/components/ui/card"; import { Switch } from "@/components/ui/switch"; +import { cn } from "@/lib/utils"; // A settings section rendered inside the COSS "frame" surface: a titled header // above one or more cards. @@ -34,15 +35,23 @@ export function SettingsFrame({ action, children, className, + separated = false, }: { title: string; description?: string; action?: ReactNode; children: ReactNode; className?: string; + /** + * COSS "Separated Panels": add a 1rem gap so sibling panels read as distinct + * cards instead of one flush joined list. The `gap-4` matches CardFrame's + * built-in `--clip-top/--clip-bottom: -1rem`, which keeps each panel's rounded + * corners clipping correctly across the gap. Leave off for a joined list. + */ + separated?: boolean; }) { return ( - + {title} {description ? ( @@ -63,14 +72,22 @@ export function SettingsSection({ description, action, children, + separated = false, }: { title: string; description?: string; action?: ReactNode; children: ReactNode; + /** See {@link SettingsFrame}'s `separated` — spaces sibling panels apart. */ + separated?: boolean; }) { return ( - + {children} ); diff --git a/frontend/components/settings/settings-preferences.tsx b/frontend/components/settings/settings-preferences.tsx index 27e0fae..b9de7dd 100644 --- a/frontend/components/settings/settings-preferences.tsx +++ b/frontend/components/settings/settings-preferences.tsx @@ -339,6 +339,7 @@ export function ProfilePanel() { {patientNotifications.map((item) => ( @@ -356,6 +357,7 @@ export function ProfilePanel() { {accountNotifications.map((item) => (