import { WORKSPACES, type UiSettings } from "../app/model"; import { Icon } from "../components/icons"; import { WorkspaceHeader } from "../components/states"; type SettingsViewProps = { settings: UiSettings; saveNotice: string; storageFailed: boolean; storageConfirmed: boolean; onChange: (patch: Partial) => void; onReset: () => void; }; type OptionCardProps = { checked: boolean; description: string; name: string; onChange: () => void; title: string; }; function OptionCard({ checked, description, name, onChange, title }: OptionCardProps) { const inputId = `${name}-${title.toLowerCase().replace(/[^a-z0-9]+/g, "-")}`; return ( ); } export function SettingsView({ settings, saveNotice, storageFailed, storageConfirmed, onChange, onReset }: SettingsViewProps) { const headerAction = (
{storageConfirmed && !storageFailed ? Saved automatically in this browser : null} {saveNotice}
); return ( <>

Display & time

Choose a stable forensic reference or a local reading context.

Timestamp display
onChange({ timestampDisplay: "utc" })} /> onChange({ timestampDisplay: "local" })} />
Interface density
onChange({ density: "comfortable" })} /> onChange({ density: "compact" })} />

Investigation defaults

New investigations use these defaults; matching display/export controls update immediately.

); }