# Daily Summary

> One day at a glance with water, meals by safety, caffeine by kind, focus sessions, shutdown violations, steps, sleep, energy, heart rate and weight, plus a day switcher.

Source: https://docs.nasaqui.com/components/daily-summary

## Install

```bash
npx shadcn@latest add https://docs.nasaqui.com/r/daily-summary.json
```

The rollup for one civil day. Protocol figures (water, meals, caffeine, shutdown violations, focus sessions) come
first, then body and activity (steps, sleep, energy, resting heart rate, weight). A figure the device did not send
reads "Not synced"; it is never shown as zero. Meals and caffeine are split by kind with an icon and a word for each
kind, so colour is never the only signal.

## When to use

- The "today" or "yesterday" screen of a health app.
- Anywhere a person steps through days one at a time.

## When not to use

- Trends over weeks: use [`HealthReport`](https://docs.nasaqui.com/components/health-reports).
- Body readings and targets: use [`Vitals`](https://docs.nasaqui.com/components/vitals).

## Import

```tsx
import { DailySummary } from "@fadymondy/nasaq/web";
// inside this monorepo: "@nasaq/web"
```

## Quick start

```tsx
import { DailySummary } from "@fadymondy/nasaq/web";

export function Today({ summary, load }: { summary: DailySummaryData; load: (date: string) => void }) {
  return <DailySummary summary={summary} waterGoalMl={3000} maxDate="2026-09-29" onDateChange={load} />;
}
```

## Anatomy

```
DailySummary                  data-slot="daily-summary"  data-date
├─ header                     previous, date heading, next, source Badge
├─ Protocol                   water (Meter against your goal), meals, caffeine, shutdown, focus sessions
└─ Body and activity          StatCards
```

## API

| Prop | Type | Notes |
| --- | --- | --- |
| `summary` | `DailySummaryData` | One row per day. Every figure is optional. |
| `date` | `string` | The day shown while `summary` is absent. |
| `maxDate` | `string` | The next button stops here. |
| `onDateChange` | `(date: string) => void` | Called with the neighbouring civil date. Omit to hide the switcher. |
| `waterGoalMl` | `number` | The person's own goal. Nothing is drawn without one. |
| `loading`, `error`, `onRetry` | | Skeleton, the server's message, retry. |
| `labels` | `Partial<DailySummaryLabels>` | Override any string. |

`addCivilDays`, `isCivilDate`, `isAfter`, `minutesToSeconds` and `unclassifiedCount` are exported from the folder for hosts.

## Code

### React

```tsx
import { DailySummary } from "@fadymondy/nasaq/web";

export function Today({ summary, load }: { summary: DailySummaryData; load: (date: string) => void }) {
  return <DailySummary summary={summary} waterGoalMl={3000} maxDate="2026-09-29" onDateChange={load} />;
}
```

### shadcn

```tsx
import { DailySummary } from "@/components/ui/daily-summary";

export function Today({ summary, load }: { summary: DailySummaryData; load: (date: string) => void }) {
  return <DailySummary summary={summary} waterGoalMl={3000} maxDate="2026-09-29" onDateChange={load} />;
}
```

### Vue

```vue
<script setup lang="ts">
import { ref } from "vue";
import { NqDailySummary, addCivilDays, type DailySummaryData } from "@fadymondy/nasaq/vue";

const summary = ref<DailySummaryData>({
  date: "2026-09-29",
  waterMl: 2400,
  meals: { total: 4, safe: 3, unsafe: 1 },
  caffeine: { total: 2, clean: 2, sugar: 0 },
  pomodorosCompleted: 5,
  shutdownViolations: 0,
  steps: 8421,
  sleepMinutes: 432,
  activeEnergyKcal: 512,
  restingHeartRate: 61,
  source: "watch",
});

// A real app loads the neighbouring day here.
function load(date: string) {
  summary.value = { ...summary.value, date };
}
</script>

<template>
  <NqDailySummary :summary="summary" :water-goal-ml="3000" max-date="2026-09-29" :on-date-change="load" />
</template>
```

### Blade

```blade
<x-nq::daily-summary
    :summary="[
        'date' => '2026-09-29',
        'waterMl' => 2400,
        'meals' => ['total' => 4, 'safe' => 3, 'unsafe' => 1],
        'caffeine' => ['total' => 2, 'clean' => 2, 'sugar' => 0],
        'pomodorosCompleted' => 5,
        'shutdownViolations' => 0,
        'steps' => 8421,
        'sleepMinutes' => 432,
        'activeEnergyKcal' => 512,
        'restingHeartRate' => 61,
        'source' => 'watch',
    ]"
    :water-goal-ml="3000"
    max-date="2026-09-29"
    switcher
/>
```

### HTML + Alpine

```html
<section data-slot="daily-summary"  data-date="2026-09-29" aria-labelledby="nq-daily-summary-bcf7fbb5"  x-data="nqDailySummary"
    class="flex flex-col gap-6">
    <header class="flex flex-wrap items-center justify-between gap-3">
        <div class="flex min-w-0 items-center gap-2">
                            <button data-slot="button"
     type="button"                         aria-label="Previous day" x-on:click="step(-1)" class="inline-flex shrink-0 select-none items-center justify-center gap-2 whitespace-nowrap rounded-control border font-sans text-label transition-colors duration-150 ease-nq min-h-[var(--nq-touch-min,0px)] outline-none focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-nq-focus disabled:pointer-events-none disabled:opacity-50 data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 border-border bg-card text-foreground hover:bg-nq-hover size-control p-0">
        <svg aria-hidden="true" class="rtl:-scale-x-100" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
  <path d="m15 18-6-6 6-6"/>
</svg></button>
                        <h2 id="nq-daily-summary-bcf7fbb5" class="min-w-0 text-h3 text-foreground">Tuesday, September 29, 2026</h2>
                            <button data-slot="button"
     type="button"                  disabled      data-disabled     aria-label="Next day" x-on:click="step(1)" class="inline-flex shrink-0 select-none items-center justify-center gap-2 whitespace-nowrap rounded-control border font-sans text-label transition-colors duration-150 ease-nq min-h-[var(--nq-touch-min,0px)] outline-none focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-nq-focus disabled:pointer-events-none disabled:opacity-50 data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 border-border bg-card text-foreground hover:bg-nq-hover size-control p-0">
        <svg aria-hidden="true" class="rtl:-scale-x-100" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
  <path d="m9 18 6-6-6-6"/>
</svg></button>
                    </div>
                    <span data-slot="badge"     class="inline-flex h-5 shrink-0 items-center gap-1 whitespace-nowrap rounded-[4px] border px-1.5 text-caption font-medium [&_svg]:size-3 border-border text-muted-foreground"><svg aria-hidden="true" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
  <path d="M12 10v2.2l1.6 1"/>
  <path d="m16.13 7.66-.81-4.05a2 2 0 0 0-2-1.61h-2.68a2 2 0 0 0-2 1.61l-.78 4.05"/>
  <path d="m7.88 16.36.8 4a2 2 0 0 0 2 1.61h2.72a2 2 0 0 0 2-1.61l.81-4.05"/>
  <circle cx="12" cy="12" r="6"/>
</svg>                <span class="sr-only">Source: </span>
                Apple Watch</span>
            </header>
            <section aria-label="Protocol" class="flex flex-col gap-3">
            <h3 class="text-label text-muted-foreground">Protocol</h3>
            <div data-slot="stat-grid" class="grid grid-cols-[repeat(auto-fit,minmax(min(100%,14rem),1fr))] gap-3"><div data-slot="daily-summary-water" class="flex flex-col gap-3 rounded-card border border-border bg-card px-4 py-4 text-card-foreground">
                    <div class="flex items-center gap-2">
    <span aria-hidden="true" class="grid size-8 shrink-0 place-items-center rounded-control bg-secondary text-muted-foreground [&_svg]:size-4"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
  <path d="M7 16.3c2.2 0 4-1.83 4-4.05 0-1.16-.57-2.26-1.71-3.19S7.29 6.75 7 5.3c-.29 1.45-1.14 2.84-2.29 3.76S3 11.1 3 12.25c0 2.22 1.8 4.05 4 4.05z"/>
  <path d="M12.56 6.6A10.97 10.97 0 0 0 14 3.02c.5 2.5 2 4.9 4 6.5s3 3.5 3 5.5a6.98 6.98 0 0 1-11.91 4.97"/>
</svg></span>
    <div class="min-w-0 truncate text-body-sm text-muted-foreground">Water</div>
</div>
                    <div class="text-h2 leading-tight text-foreground tabular-nums"><bdi data-slot="measure" data-numeric="" dir="ltr" class="tabular-nums [unicode-bidi:isolate]">2,400 mL</bdi></div>
                                            <div data-slot="meter" data-tone="default" role="meter"  aria-labelledby="nq-meter-7c118614-label"     aria-valuemin="0" aria-valuemax="3000" aria-valuenow="2400" aria-valuetext="2,400%"
    class="flex w-full flex-col gap-1.5">
            <div data-slot="progress-head" class="flex items-baseline justify-between gap-3 text-body-sm">
            <span id="nq-meter-7c118614-label" class="text-label text-foreground">Water against your goal</span>            <span aria-hidden="true" class="text-muted-foreground tabular-nums">3,000 mL</span>        </div>
        <div data-slot="meter-track" class="relative block w-full overflow-hidden rounded-full bg-nq-surface-soft h-2">
        <div data-slot="meter-indicator" style="inset-inline-start:0;width:80%" class="block h-full rounded-full transition-[width] duration-300 ease-nq motion-reduce:transition-none bg-primary"></div>
    </div>
</div>
                                    </div>
                <div data-slot="daily-summary-tally" class="flex flex-col gap-3 rounded-card border border-border bg-card px-4 py-4 text-card-foreground">
    <div class="flex items-center gap-2">
    <span aria-hidden="true" class="grid size-8 shrink-0 place-items-center rounded-control bg-secondary text-muted-foreground [&_svg]:size-4"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
  <path d="M3 2v7c0 1.1.9 2 2 2h4a2 2 0 0 0 2-2V2"/>
  <path d="M7 2v20"/>
  <path d="M21 15V2a5 5 0 0 0-5 5v6c0 1.1.9 2 2 2h3Zm0 0v7"/>
</svg></span>
    <div class="min-w-0 truncate text-body-sm text-muted-foreground">Meals</div>
</div>
    <div class="text-h2 leading-tight text-foreground tabular-nums">4 meals</div>
            <ul class="m-0 flex list-none flex-wrap gap-x-4 gap-y-1 p-0 text-body-sm">
                            <li>
                    <span data-slot="status" data-tone="success" class="inline-flex min-w-0 items-center gap-1.5 text-body-sm text-foreground">
            <svg aria-hidden="true" class="size-3.5 shrink-0 text-nq-success-text" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
  <circle cx="12" cy="12" r="10"/>
  <path d="m9 12 2 2 4-4"/>
</svg>        <span class="truncate"  title="Safe 3" >Safe <bdi data-slot="measure" data-numeric="" dir="ltr" class="tabular-nums [unicode-bidi:isolate]">3</bdi></span>
</span>
                </li>
                            <li>
                    <span data-slot="status" data-tone="warning" class="inline-flex min-w-0 items-center gap-1.5 text-body-sm text-foreground">
            <svg aria-hidden="true" class="size-3.5 shrink-0 text-nq-warning-text" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
  <circle cx="12" cy="12" r="10"/>
  <line x1="12" x2="12" y1="8" y2="12"/>
  <line x1="12" x2="12.01" y1="16" y2="16"/>
</svg>        <span class="truncate"  title="Unsafe 1" >Unsafe <bdi data-slot="measure" data-numeric="" dir="ltr" class="tabular-nums [unicode-bidi:isolate]">1</bdi></span>
</span>
                </li>
                    </ul>
    </div>
                <div data-slot="daily-summary-tally" class="flex flex-col gap-3 rounded-card border border-border bg-card px-4 py-4 text-card-foreground">
    <div class="flex items-center gap-2">
    <span aria-hidden="true" class="grid size-8 shrink-0 place-items-center rounded-control bg-secondary text-muted-foreground [&_svg]:size-4"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
  <path d="M10 2v2"/>
  <path d="M14 2v2"/>
  <path d="M16 8a1 1 0 0 1 1 1v8a4 4 0 0 1-4 4H7a4 4 0 0 1-4-4V9a1 1 0 0 1 1-1h14a4 4 0 1 1 0 8h-1"/>
  <path d="M6 2v2"/>
</svg></span>
    <div class="min-w-0 truncate text-body-sm text-muted-foreground">Caffeine</div>
</div>
    <div class="text-h2 leading-tight text-foreground tabular-nums">2 drinks</div>
            <ul class="m-0 flex list-none flex-wrap gap-x-4 gap-y-1 p-0 text-body-sm">
                            <li>
                    <span data-slot="status" data-tone="success" class="inline-flex min-w-0 items-center gap-1.5 text-body-sm text-foreground">
            <svg aria-hidden="true" class="size-3.5 shrink-0 text-nq-success-text" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
  <circle cx="12" cy="12" r="10"/>
  <path d="m9 12 2 2 4-4"/>
</svg>        <span class="truncate"  title="Clean 2" >Clean <bdi data-slot="measure" data-numeric="" dir="ltr" class="tabular-nums [unicode-bidi:isolate]">2</bdi></span>
</span>
                </li>
                            <li>
                    <span data-slot="status" data-tone="warning" class="inline-flex min-w-0 items-center gap-1.5 text-body-sm text-foreground">
            <svg aria-hidden="true" class="size-3.5 shrink-0 text-nq-warning-text" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
  <circle cx="12" cy="12" r="10"/>
  <line x1="12" x2="12" y1="8" y2="12"/>
  <line x1="12" x2="12.01" y1="16" y2="16"/>
</svg>        <span class="truncate"  title="With sugar 0" >With sugar <bdi data-slot="measure" data-numeric="" dir="ltr" class="tabular-nums [unicode-bidi:isolate]">0</bdi></span>
</span>
                </li>
                    </ul>
    </div>
                <div data-slot="daily-summary-shutdown" class="flex flex-col gap-3 rounded-card border border-border bg-card px-4 py-4 text-card-foreground">
                    <div class="flex items-center gap-2">
    <span aria-hidden="true" class="grid size-8 shrink-0 place-items-center rounded-control bg-secondary text-muted-foreground [&_svg]:size-4"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
  <path d="M20.985 12.486a9 9 0 1 1-9.473-9.472c.405-.022.617.46.402.803a6 6 0 0 0 8.268 8.268c.344-.215.825-.004.803.401"/>
</svg></span>
    <div class="min-w-0 truncate text-body-sm text-muted-foreground">Shutdown violations</div>
</div>
                    <div class="flex flex-col gap-1">
                        <div class="text-h2 leading-tight text-foreground tabular-nums"><bdi data-slot="measure" data-numeric="" dir="ltr" class="tabular-nums [unicode-bidi:isolate]">0</bdi></div>
                                                    <span data-slot="status" data-tone="success" class="inline-flex min-w-0 items-center gap-1.5 text-body-sm text-foreground">
            <svg aria-hidden="true" class="size-3.5 shrink-0 text-nq-success-text" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
  <circle cx="12" cy="12" r="10"/>
  <path d="m9 12 2 2 4-4"/>
</svg>        <span class="truncate"  title="None" >None</span>
</span>
                                            </div>
                </div>
                <div data-slot="stat-card"   class="flex flex-col gap-3 rounded-card border border-border bg-card px-4 py-4 text-card-foreground">
            <div class="flex items-center gap-2">
                            <span data-slot="stat-card-icon" aria-hidden="true" class="grid size-8 shrink-0 place-items-center rounded-control bg-secondary text-muted-foreground [&_svg]:size-4"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
  <line x1="10" x2="14" y1="2" y2="2"/>
  <line x1="12" x2="15" y1="14" y2="11"/>
  <circle cx="12" cy="14" r="8"/>
</svg></span>
                        <div data-slot="stat-card-label" class="min-w-0 truncate text-body-sm text-muted-foreground">Focus sessions</div>
        </div>
        <div class="flex items-end justify-between gap-3">
            <div class="flex min-w-0 flex-col gap-1">
                <div data-slot="stat-card-value" class="text-h2 leading-tight text-foreground tabular-nums">
                                            <bdi data-slot="measure" data-numeric="" dir="ltr" class="tabular-nums [unicode-bidi:isolate]">5</bdi>
                                    </div>
                            </div>
                    </div>
    </div></div>
        </section>
        <section aria-label="Body and activity" class="flex flex-col gap-3">
            <h3 class="text-label text-muted-foreground">Body and activity</h3>
            <div data-slot="stat-grid" class="grid grid-cols-[repeat(auto-fit,minmax(min(100%,14rem),1fr))] gap-3"><div data-slot="stat-card"   class="flex flex-col gap-3 rounded-card border border-border bg-card px-4 py-4 text-card-foreground">
            <div class="flex items-center gap-2">
                            <span data-slot="stat-card-icon" aria-hidden="true" class="grid size-8 shrink-0 place-items-center rounded-control bg-secondary text-muted-foreground [&_svg]:size-4"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
  <path d="M4 16v-2.38C4 11.5 2.97 10.5 3 8c.03-2.72 1.49-6 4.5-6C9.37 2 10 3.8 10 5.5c0 3.11-2 5.66-2 8.68V16a2 2 0 1 1-4 0Z"/>
  <path d="M20 20v-2.38c0-2.12 1.03-3.12 1-5.62-.03-2.72-1.49-6-4.5-6C14.63 6 14 7.8 14 9.5c0 3.11 2 5.66 2 8.68V20a2 2 0 1 0 4 0Z"/>
  <path d="M16 17h4"/>
  <path d="M4 13h4"/>
</svg></span>
                        <div data-slot="stat-card-label" class="min-w-0 truncate text-body-sm text-muted-foreground">Steps</div>
        </div>
        <div class="flex items-end justify-between gap-3">
            <div class="flex min-w-0 flex-col gap-1">
                <div data-slot="stat-card-value" class="text-h2 leading-tight text-foreground tabular-nums">
                                            <bdi data-slot="measure" data-numeric="" dir="ltr" class="tabular-nums [unicode-bidi:isolate]">8,421 steps</bdi>
                                    </div>
                            </div>
                    </div>
    </div>
                <div data-slot="stat-card"   class="flex flex-col gap-3 rounded-card border border-border bg-card px-4 py-4 text-card-foreground">
            <div class="flex items-center gap-2">
                            <span data-slot="stat-card-icon" aria-hidden="true" class="grid size-8 shrink-0 place-items-center rounded-control bg-secondary text-muted-foreground [&_svg]:size-4"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
  <path d="M2 20v-8a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v8"/>
  <path d="M4 10V6a2 2 0 0 1 2-2h12a2 2 0 0 1 2 2v4"/>
  <path d="M12 4v6"/>
  <path d="M2 18h20"/>
</svg></span>
                        <div data-slot="stat-card-label" class="min-w-0 truncate text-body-sm text-muted-foreground">Sleep</div>
        </div>
        <div class="flex items-end justify-between gap-3">
            <div class="flex min-w-0 flex-col gap-1">
                <div data-slot="stat-card-value" class="text-h2 leading-tight text-foreground tabular-nums">
                                            <bdi data-slot="duration" data-numeric="" dir="ltr" class="tabular-nums [unicode-bidi:isolate]">7 hr 12 min</bdi>
                                    </div>
                            </div>
                    </div>
    </div>
                <div data-slot="stat-card"   class="flex flex-col gap-3 rounded-card border border-border bg-card px-4 py-4 text-card-foreground">
            <div class="flex items-center gap-2">
                            <span data-slot="stat-card-icon" aria-hidden="true" class="grid size-8 shrink-0 place-items-center rounded-control bg-secondary text-muted-foreground [&_svg]:size-4"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
  <path d="M12 3q1 4 4 6.5t3 5.5a1 1 0 0 1-14 0 5 5 0 0 1 1-3 1 1 0 0 0 5 0c0-2-1.5-3-1.5-5q0-2 2.5-4"/>
</svg></span>
                        <div data-slot="stat-card-label" class="min-w-0 truncate text-body-sm text-muted-foreground">Active energy</div>
        </div>
        <div class="flex items-end justify-between gap-3">
            <div class="flex min-w-0 flex-col gap-1">
                <div data-slot="stat-card-value" class="text-h2 leading-tight text-foreground tabular-nums">
                                            <bdi data-slot="measure" data-numeric="" dir="ltr" class="tabular-nums [unicode-bidi:isolate]">512 kcal</bdi>
                                    </div>
                            </div>
                    </div>
    </div>
                <div data-slot="stat-card"   class="flex flex-col gap-3 rounded-card border border-border bg-card px-4 py-4 text-card-foreground">
            <div class="flex items-center gap-2">
                            <span data-slot="stat-card-icon" aria-hidden="true" class="grid size-8 shrink-0 place-items-center rounded-control bg-secondary text-muted-foreground [&_svg]:size-4"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
  <path d="M2 9.5a5.5 5.5 0 0 1 9.591-3.676.56.56 0 0 0 .818 0A5.49 5.49 0 0 1 22 9.5c0 2.29-1.5 4-3 5.5l-5.492 5.313a2 2 0 0 1-3 .019L5 15c-1.5-1.5-3-3.2-3-5.5"/>
</svg></span>
                        <div data-slot="stat-card-label" class="min-w-0 truncate text-body-sm text-muted-foreground">Resting heart rate</div>
        </div>
        <div class="flex items-end justify-between gap-3">
            <div class="flex min-w-0 flex-col gap-1">
                <div data-slot="stat-card-value" class="text-h2 leading-tight text-foreground tabular-nums">
                                            <bdi data-slot="measure" data-numeric="" dir="ltr" class="tabular-nums [unicode-bidi:isolate]">61 bpm</bdi>
                                    </div>
                            </div>
                    </div>
    </div>
                <div data-slot="stat-card"   class="flex flex-col gap-3 rounded-card border border-border bg-card px-4 py-4 text-card-foreground">
            <div class="flex items-center gap-2">
                            <span data-slot="stat-card-icon" aria-hidden="true" class="grid size-8 shrink-0 place-items-center rounded-control bg-secondary text-muted-foreground [&_svg]:size-4"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
  <path d="M12 3v18"/>
  <path d="m19 8 3 8a5 5 0 0 1-6 0zV7"/>
  <path d="M3 7h1a17 17 0 0 0 8-2 17 17 0 0 0 8 2h1"/>
  <path d="m5 8 3 8a5 5 0 0 1-6 0zV7"/>
  <path d="M7 21h10"/>
</svg></span>
                        <div data-slot="stat-card-label" class="min-w-0 truncate text-body-sm text-muted-foreground">Weight</div>
        </div>
        <div class="flex items-end justify-between gap-3">
            <div class="flex min-w-0 flex-col gap-1">
                <div data-slot="stat-card-value" class="text-h2 leading-tight text-foreground tabular-nums">
                                            <span class="text-body-sm font-normal text-muted-foreground">Not synced</span>
                                    </div>
                            </div>
                    </div>
    </div></div>
        </section>
    </section>
```
