refine(cycle): consolidate disclaimer, align columns, unify tiles

Move the non-medical disclaimer to the cycle-tracking on-ramp and drop it
from the repeating in-feature surfaces (calendar tab, predictions panel);
delete the now-unused disclaimer component. Align the left ring column with
the tab content rather than the tab strip. Raise the settings subheading
sizes to the standard card-description scale. Reflow the reminder rows so a
wrapping label no longer collides with its button at narrow widths. Unify
the wheel and phase-education tile padding. Cite the symptothermal
double-check primary source under the second fertility sign.
This commit is contained in:
Marc-André Bombeck committed 2026-06-21 10:57:16 +02:00
1 parent b8fc648bfc
commit 75129c798d
12 files changed
+100 -125

No files matched your search

@@ -2,7 +2,7 @@
import { useMutation, useQuery, useQueryClient } from "@tanstack/react-query";
import Link from "next/link";
import { CalendarHeart } from "lucide-react";
import { CalendarHeart, Info } from "lucide-react";
import { Button } from "@/components/ui/button";
import { Label } from "@/components/ui/label";
@@ -79,6 +79,21 @@ export function CycleTrackingCard({
className="mt-0.5 shrink-0"
/>
</div>
{/* The single, prominent non-medical disclaimer for the whole cycle
vertical. It lives here at the on-ramp — where expectations are
set — instead of repeating beneath every prediction surface. */}
<div
data-slot="cycle-tracking-disclaimer"
className="border-border bg-muted/40 flex items-start gap-2.5 rounded-lg border-l-2 p-3"
>
<Info
className="text-muted-foreground mt-0.5 h-4 w-4 shrink-0"
aria-hidden="true"
/>
<p className="text-foreground/80 text-xs leading-relaxed">
{t("settings.cycleTracking.disclaimer")}
</p>
</div>
{enabled ? (
<Button
variant="outline"