mirror of
https://github.com/MBombeck/HealthLog.git
synced 2026-11-11 05:42:19 +00:00
chore(ui): repair stray motion-reduce tokens that bled into JSDoc comments and pair the mood chart spinner
This commit is contained in:
1 parent
3d3402e3af
commit
9b0b1c6b84
9 files changed
+10
-10
No files matched your search
@@ -170,7 +170,7 @@ export function ApiTokenOverviewSection() {
|
||||
) : !tokens?.length ? (
|
||||
// v1.4.15 phase-C5: empty state explains where tokens come
|
||||
// from (native client sign-in / Settings → Account) so a
|
||||
// fresh admin doesn motion-reduce:animate-none't think they need to create them here.
|
||||
// fresh admin doesn't think they need to create them here.
|
||||
<EmptyState
|
||||
icon={<Key className="size-6" />}
|
||||
title={t("admin.tokensEmptyTitle")}
|
||||
|
||||
@@ -1164,7 +1164,7 @@ export function HealthChart({
|
||||
) : !chartData?.length ? null : (chartData?.length ?? 0) < 3 ? (
|
||||
// v1.4.16 B1a — sparse-data placeholder. <3 daily points is too
|
||||
// few to render a meaningful trend; paint a friendly hint
|
||||
// instead so the dashboard doesn motion-reduce:animate-none't look broken.
|
||||
// instead so the dashboard doesn't look broken.
|
||||
<ChartEmptyState
|
||||
title={t("charts.emptyStateTitle")}
|
||||
description={t("charts.emptyStateDescription")}
|
||||
|
||||
@@ -620,7 +620,7 @@ export function MoodChart({
|
||||
<CardContent>
|
||||
{isLoading ? (
|
||||
<div className="flex h-48 items-center justify-center">
|
||||
<Loader2 className="text-primary h-6 w-6 animate-spin" />
|
||||
<Loader2 className="text-primary h-6 w-6 animate-spin motion-reduce:animate-none" />
|
||||
</div>
|
||||
) : !chartData?.length ? (
|
||||
<div className="text-muted-foreground flex h-48 items-center justify-center text-sm">
|
||||
|
||||
@@ -430,7 +430,7 @@ export function Glp1Tile() {
|
||||
}
|
||||
|
||||
/**
|
||||
* v1.4.27 B1 — small segmented-control button used by the tile motion-reduce:animate-none's
|
||||
* v1.4.27 B1 — small segmented-control button used by the tile's
|
||||
* tab strip. Carved into its own component so the active/inactive
|
||||
* styling lives in one place and the test can pin the data-slot
|
||||
* markers per tab.
|
||||
|
||||
@@ -365,7 +365,7 @@ function GatedPlaceholder({
|
||||
// Three distinguishable states:
|
||||
// - Research Mode is off entirely.
|
||||
// - Research Mode is on but the acknowledged version is stale.
|
||||
// - We don motion-reduce:animate-none't know yet (server returned null) — still render the
|
||||
// - We don't know yet (server returned null) — still render the
|
||||
// opt-in CTA so the user has a path forward.
|
||||
const stale = !!knownState?.enabled && !versionsAligned;
|
||||
return (
|
||||
|
||||
@@ -511,5 +511,5 @@ function siteSuffix(site: InjectionSiteKey): string {
|
||||
.join("");
|
||||
}
|
||||
|
||||
/** Re-export so the parent doesn motion-reduce:animate-none't need to import describeInjectionSite. */
|
||||
/** Re-export so the parent doesn't need to import describeInjectionSite. */
|
||||
export { describeInjectionSite };
|
||||
@@ -265,7 +265,7 @@ export function AboutSection() {
|
||||
{/* Updates — proper heading + last-check timestamp + manual button
|
||||
that proxies through `/api/version/check-updates`. The v1.4.2
|
||||
version called `api.github.com` directly from the browser, which
|
||||
the production CSP blocked silently — that motion-reduce:animate-none's why "nothing
|
||||
the production CSP blocked silently — that's why "nothing
|
||||
happened" when the user clicked the button. */}
|
||||
{version && (
|
||||
<div className="bg-card border-border rounded-xl border p-6">
|
||||
|
||||
@@ -407,7 +407,7 @@ export function AccountSection() {
|
||||
wide on sm+). Date of birth is the bottom of the
|
||||
biological-profile block; language is the only UI
|
||||
preference on this card. They sit together to close the
|
||||
"single-cell row" gap that broke the form motion-reduce:animate-none's grid. */}
|
||||
"single-cell row" gap that broke the form's grid. */}
|
||||
<div className="grid gap-4 sm:grid-cols-2">
|
||||
<div className="space-y-2">
|
||||
<Label htmlFor="dob">{t("settings.dateOfBirth")}</Label>
|
||||
@@ -728,7 +728,7 @@ function PasskeyListSection({ isAuthenticated }: { isAuthenticated: boolean }) {
|
||||
which on a 393px viewport hid the right-most column —
|
||||
including the destructive delete action. Render the desktop
|
||||
table only at `≥ md`, and at `< md` paint a card-list where
|
||||
every passkey motion-reduce:animate-none's name, device type, backup status, created
|
||||
every passkey's name, device type, backup status, created
|
||||
date, and delete action are all visible without scrolling. */}
|
||||
<div className="border-border mt-3 hidden overflow-x-auto rounded-lg border md:block">
|
||||
<table className="w-full text-sm">
|
||||
|
||||
@@ -716,7 +716,7 @@ function CodexProviderForm({
|
||||
/* ────────────────────────────────────────────────────────────────
|
||||
* OpenAI form — API key + model select + collapsed Base URL override.
|
||||
* Save mutation flips both `aiProvider` (for the legacy single-result
|
||||
* resolver) and `aiOpenaiKeyEncrypted` (the user motion-reduce:animate-none's key) so an OPENAI
|
||||
* resolver) and `aiOpenaiKeyEncrypted` (the user's key) so an OPENAI
|
||||
* pick is visible to every code path that reads the row.
|
||||
* ──────────────────────────────────────────────────────────────── */
|
||||
|
||||
|
||||
Reference in new issue
Block a user