Files
cobble/src/pages/admin/settings/(partials)/settings-group.tsx
T
tbenandClaude Opus 5.5 c44048dbab Add bot schedules (routines), open Activity, add Help and a Desktop computer view
Bots create, list, update and delete schedules (cron_jobs, Bun.cron in UTC);
a per-minute cron queues due runs as tasks. Routines, Activity (super admins)
and Help get their own rail aside. Help covers familiar problems, starting
with signing in to Google through Cookie-Editor over the new Desktop (noVNC)
view.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-19 10:52:32 +01:00

39 lines
1.3 KiB
TypeScript

import type { ReactNode } from "react";
import Stack from "@moduletrace/twui/layout/Stack";
import H2 from "@moduletrace/twui/layout/H2";
import Span from "@moduletrace/twui/layout/Span";
type Props = {
title: string;
description?: ReactNode;
children: ReactNode;
/**
* An anchor, so a link can open the page at this block.
*/
id?: string;
};
/**
* One block of settings: what it is on the left, the controls on the right.
* Stacks below 768px. Blocks are separated by hairlines, never cards.
*/
export default function SettingsGroup({ title, description, children, id }: Props) {
return (
<Stack id={id} className="w-full scroll-mt-4 gap-4! md:grid md:grid-cols-[200px_1fr] md:gap-10! py-8 border-0 border-b border-solid border-hairline last:border-b-0">
<Stack className="gap-1! min-w-0">
<H2 className="text-sm! leading-5! tracking-normal! font-bold text-ink mb-0!">
{title}
</H2>
{description ? (
<Span className="text-[13px] leading-[18px] text-ink-secondary">
{description}
</Span>
) : null}
</Stack>
<Stack className="gap-4! min-w-0 w-full items-stretch">
{children}
</Stack>
</Stack>
);
}