diff --git a/src/components/settings/about-section.tsx b/src/components/settings/about-section.tsx
index 787c5b46a..4f746ea83 100644
--- a/src/components/settings/about-section.tsx
+++ b/src/components/settings/about-section.tsx
@@ -13,6 +13,7 @@ import {
} from "lucide-react";
import { Button } from "@/components/ui/button";
+import { SettingsCard } from "@/components/settings/settings-card";
import { SettingsCardHeader } from "@/components/settings/_card-header";
import { useFormatters, useTranslations } from "@/lib/i18n/context";
import { queryKeys } from "@/lib/query-keys";
@@ -191,7 +192,7 @@ export function AboutSection() {
stacked the license under the version inside its own boxed Badge,
which read as a separate field even though the two values belong
on the same row. */}
-
+
@@ -665,7 +666,7 @@ export function AccountSection() {
{t("settings.changePassword")}
-
+
{/* v1.18.1 (D1) — the "Tour neu starten" card moved to Settings →
Erweitert. It is a maintenance / reset action, not a profile or
@@ -1096,7 +1097,7 @@ function AvatarSection() {
const busy = upload.isPending || remove.isPending;
return (
-
+
)}
-
+
);
}
diff --git a/src/components/settings/advanced-section.tsx b/src/components/settings/advanced-section.tsx
index 7650cefee..52cb08886 100644
--- a/src/components/settings/advanced-section.tsx
+++ b/src/components/settings/advanced-section.tsx
@@ -19,6 +19,7 @@ import { Button } from "@/components/ui/button";
import { Switch } from "@/components/ui/switch";
import { ResearchModeAcknowledgmentDialog } from "@/components/medications/ResearchModeAcknowledgmentDialog";
import { formatDateTime } from "@/lib/format";
+import { SettingsCard } from "@/components/settings/settings-card";
import { SettingsCardHeader } from "@/components/settings/_card-header";
import { useTranslations } from "@/lib/i18n/context";
import { queryKeys } from "@/lib/query-keys";
@@ -139,8 +140,7 @@ function ResearchModeCard() {
}
return (
-
-
+
);
}
@@ -254,8 +254,7 @@ function DataResetCard() {
}
return (
-
{/* v1.4.43 QoL (L5) — dropped the `AlertTriangle` icon and
@@ -338,7 +337,7 @@ function DataResetCard() {
{msg}
)}
-
+
);
}
@@ -402,8 +401,7 @@ function AccountDeleteCard() {
}
return (
-
@@ -482,6 +480,6 @@ function AccountDeleteCard() {
{msg}
)}
-
+
);
}
diff --git a/src/components/settings/api-section.tsx b/src/components/settings/api-section.tsx
index 417b081de..41636a6a7 100644
--- a/src/components/settings/api-section.tsx
+++ b/src/components/settings/api-section.tsx
@@ -19,6 +19,7 @@ import {
import { Badge } from "@/components/ui/badge";
import { Button } from "@/components/ui/button";
import { Input } from "@/components/ui/input";
+import { SettingsCard } from "@/components/settings/settings-card";
import { SettingsCardHeader } from "@/components/settings/_card-header";
import { useAuth } from "@/hooks/use-auth";
import { formatDate, formatDateTime } from "@/lib/format";
@@ -66,7 +67,7 @@ function ApiEndpointsCard() {
];
return (
-
+
))}
-
+
);
}
@@ -229,7 +230,7 @@ function ApiTokensCard() {
}, null);
return (
-
+
)}
-
+
);
}
diff --git a/src/components/settings/medications-section.tsx b/src/components/settings/medications-section.tsx
index a1421aba9..9d488a10d 100644
--- a/src/components/settings/medications-section.tsx
+++ b/src/components/settings/medications-section.tsx
@@ -8,6 +8,7 @@ import {
type ReorderMedication,
} from "@/components/medications/medication-order-editor";
import { MedicationViewToggle } from "@/components/medications/medication-view-toggle";
+import { SettingsCard } from "@/components/settings/settings-card";
import { SettingsCardHeader } from "@/components/settings/_card-header";
import { InjectionSitesCard } from "@/components/settings/injection-sites-card";
import { useAuth } from "@/hooks/use-auth";
@@ -79,9 +80,9 @@ export function MedicationsSection() {
{/* View preference — cards vs table. The shared header toggle
writes optimistically, so there is no Save button here. */}
-
)}
-
+
{/* Manual order — applies to both list views. */}
-
)}
-
+
{/* v1.18.0 (S5) — injection-site exclusions are a medication setting;
they moved here from the account profile so all medication-specific
diff --git a/src/components/settings/mood-section.tsx b/src/components/settings/mood-section.tsx
index dff7c7019..f05539029 100644
--- a/src/components/settings/mood-section.tsx
+++ b/src/components/settings/mood-section.tsx
@@ -2,6 +2,7 @@
import { Archive, Folders, Loader2, Tags } from "lucide-react";
+import { SettingsCard } from "@/components/settings/settings-card";
import { SettingsCardHeader } from "@/components/settings/_card-header";
import { ArchivedTagsCard } from "@/components/mood/manage/archived-tags-card";
import { TagGroupsCard } from "@/components/mood/manage/tag-groups-card";
@@ -45,30 +46,30 @@ export function MoodSection() {
return (
{/* Groups — picker group order + own groups. */}
-
{isLoading || !catalog ? loading : }
-
+
{/* Tags — visibility, order, edit, move, create. */}
-
{isLoading || !catalog ? loading : }
-
+
{/* Archived custom tags — restore / hard delete. */}
-
)}
-
+
);
}
diff --git a/src/components/settings/notification-status-card.tsx b/src/components/settings/notification-status-card.tsx
index eea9c5763..f13ac3c96 100644
--- a/src/components/settings/notification-status-card.tsx
+++ b/src/components/settings/notification-status-card.tsx
@@ -32,6 +32,7 @@ import {
import { Badge } from "@/components/ui/badge";
import { Button } from "@/components/ui/button";
import { useAuth } from "@/hooks/use-auth";
+import { SettingsCard } from "@/components/settings/settings-card";
import { SettingsCardHeader } from "@/components/settings/_card-header";
import { useFormatters, useTranslations } from "@/lib/i18n/context";
import { queryKeys } from "@/lib/query-keys";
@@ -114,9 +115,9 @@ export function NotificationStatusCard() {
if (isLoading) {
return (
-
+
-
+
);
}
@@ -128,8 +129,7 @@ export function NotificationStatusCard() {
const channels = Array.isArray(data) ? data : [];
if (channels.length === 0) {
return (
-
-
+
);
}
return (
-
+
))}
-
+
);
}