- Accordion
- Agent Thinking
- Alert
- Alert Dialog
- Announcement
- Aspect Ratio
- Attachment
- Avatar
- Badge
- Breadcrumb
- Bubble
- Button
- Button Group
- Calendar
- Card
- Carousel
- Checkbox
- Checkbox Card
- Code Block
- Collapsible
- Color Picker
- Combobox
- Command
- Composer
- Composer Loader
- Context Menu
- Data Grid
- Data Table
- Date Picker
- Dialog
- Direction
- Drawer
- Dropdown Menu
- Empty
- Field
- File Upload
- Hover Card
- Input
- Input Group
- Input Otp
- Item
- Kbd
- Label
- Marker
- Menubar
- Message
- Message Scroller
- Meter
- Native Select
- Navigation Menu
- Number Field
- Pagination
- Period Switcher
- Popover
- Progress
- Questionnaire
- Radio Card
- Radio Group
- Resizable
- Reveal
- Scroll Area
- Search Field
- Select
- Separator
- Sheet
- Sidebar
- Skeleton
- Slider
- Social Button
- Sonner
- Spinner
- Status Dot
- Switch
- Switch Card
- Table
- Tabs
- Tag Group
- Textarea
- Theme Toggle
- Time Field
- Toggle
- Toggle Group
- Tooltip
- Trace
- Tree View
- Agent Creator 01
- Agent Limits Card 01
- Agent Progress 01
- AI Chat 01
- AI Image Generation 01
- AI Profile 01
- Alerts Card 01
- Auth Card 01
- Calendar 01
- Composer 01
- Composer Attachments 01
- Composer Panel 01
- Finance Dashboard 01
- Home Dashboard 01
- Marketing Dashboard 01
- Medical Profile 01
- Meeting Scheduler 01
- Multi Agent Chat 01
- Notification Center 01
- Patient Info Card 01
- Project Board 01
- Questionnaire 01
- Settings Modal 01
- Sidebar 01
- Stat Cards 01
- Task List 01
- Web Search 01
- Activity Rings Card 01
- Area Chart Card 01
- Bar List Card 01
- Combo Chart Card 01
- Contributions Card 01
- Earnings Chart Card 01
- Funnel Chart Card 01
- Heatmap Chart Card 01
- Line Chart Card 01
- Most Active Days Card 01
- Orders Chart Card 01
- Radar Chart Card 01
- Radial Chart Card 01
- Revenue Chart Card 01
- Sankey Chart Card 01
- Scatter Chart Card 01
- Sleep Score Card 01
- Stage Bars Card 01
- Steps Card 01
JD
Jordan Davis
Date of birth
12 March, 1989Gender
FemaleBlood type
O positivePrimary doctor
Alex MorganSteps
28,520total steps
29 Jun - 5 Jul
Mon
Tue
Wed
Thu
Fri
Sat
Sun
Sleep score
Restful
29 Jun - 5 Jul
85
Activity calendar
July
137,480 steps this month
Jul
Jul
| Su | Mo | Tu | We | Th | Fr | Sa |
|---|---|---|---|---|---|---|
Aug
Aug
| Su | Mo | Tu | We | Th | Fr | Sa |
|---|---|---|---|---|---|---|
Sep
Sep
| Su | Mo | Tu | We | Th | Fr | Sa |
|---|---|---|---|---|---|---|
Daily activity · July 10, 2026
- Energy
326 kcal
- Training
31 min
- Distance
2.4 km
Recent alerts
0
this week29 Jun - 5 Jul
Activity check
Your activity was higher than usual during your afternoon walk.
Profile updated
Your emergency contact information has been saved.
Results available
Your latest report is ready to review in your account.
Reminder
You have a scheduled reminder for this evening.
Sleep update
Your sleep schedule changed over the past week.
Daily summary
Your daily summary is ready to view.
Total Results
540 patients
| Admission | Status | Condition | Actions | |||
|---|---|---|---|---|---|---|
| AHAvery Hale | Recovering | Hypertension | Jul 1, 2026 | |||
| IEIndigo Ellis | Under observation | AsthmaMigraine | Aug 6, 2026 | |||
| PPParker Pike | Stable | DiabetesAnemia | Sep 11, 2026 | |||
| WBWren Brook | In treatment | Migraine | Oct 16, 2026 | |||
| EMEmery Marsh | Critical | AnemiaHypertension | Nov 21, 2026 | |||
| MSMarlow Shaw | Recovering | ArthritisAsthma | Dec 26, 2026 | |||
| TJTatum Joyce | Under observation | Hypertension | Jul 4, 2026 | |||
| BLBlake Lane | Stable | AsthmaMigraine | Aug 9, 2026 | |||
| JGJules Grant | In treatment | DiabetesAnemia | Sep 14, 2026 | |||
| QSQuinn Stone | Critical | Migraine | Oct 19, 2026 | |||
| YDYael Dunn | Recovering | AnemiaHypertension | Nov 24, 2026 | |||
| FOFinley Orr | Under observation | ArthritisAsthma | Dec 2, 2026 |
Page 1 of 45
…
Installation
Set up the @cobalt registry first, as described in Installation, then add the block:
$ pnpm dlx shadcn@latest add @cobalt/medical-profile-01
The example uses local sample data and requires no server. Pass popupClassName when a scoped theme needs to follow select menus into their portal.
Source
"use client";
import { cn } from "cn";
import * as React from "react";
import { AlertsCard } from "@/components/blocks/alerts-card-01/components/alerts-card";
import {
activity,
periods,
weeks,
} from "@/components/blocks/medical-profile-01/components/medical-profile-data";
import { MedicalProfilePatientsTable } from "@/components/blocks/medical-profile-01/components/medical-profile-patients-table";
import { MostActiveDaysCard } from "@/components/blocks/most-active-days-card-01/components/most-active-days-card";
import { PatientInfoCard } from "@/components/blocks/patient-info-card-01/components/patient-info-card";
import { SleepScoreCard } from "@/components/blocks/sleep-score-card-01/components/sleep-score-card";
import { StepsCard } from "@/components/blocks/steps-card-01/components/steps-card";
import { Reveal } from "@/components/ui/reveal";
// 500ms, 12px rise, each row 40ms after the last. The cards inside a row do
// not animate again.
function Row({
step,
className,
children,
}: {
step: number;
className?: string;
children: React.ReactNode;
}) {
return (
<Reveal index={step} className="min-w-0">
<div className={className}>{children}</div>
</Reveal>
);
}
/**
* The body of a medical profile: identity, steps, sleep, activity calendar,
* alerts and a patient table. It carries no navigation or heading, so it
* drops into an app shell or any page. Pass `popupClassName` (a theme scope)
* so menus and tooltips rendered outside the block pick up the same tokens.
*/
export function MedicalProfile({
className,
popupClassName,
}: {
className?: string;
popupClassName?: string;
}) {
return (
<div className={cn("@container flex min-w-0 flex-col gap-4", className)}>
<Row step={0} className="grid min-w-0 gap-4 @4xl:grid-cols-3">
<PatientInfoCard />
<StepsCard
weeks={weeks}
title="Steps"
unit="total steps"
className="max-w-none"
/>
<SleepScoreCard periods={periods} className="max-w-none" />
</Row>
<Row step={1} className="grid min-w-0 gap-4 @4xl:grid-cols-3">
<MostActiveDaysCard
data={activity}
initialDate="2026-07-10"
className="@4xl:col-span-2"
/>
<AlertsCard />
</Row>
<Row step={2}>
<MedicalProfilePatientsTable popupClassName={popupClassName} />
</Row>
</div>
);
} On this page