mirror of
https://github.com/MBombeck/HealthLog.git
synced 2026-11-12 06:06:10 +00:00
chore(release): v1.6.0
Medication editor overhaul, route of administration, today-tile read-flip. - Route-of-administration column (ORAL | INJECTION | OTHER) decoupled from treatmentClass; injection-site picker surfaces for any injection. Migration 0088 backfills ORAL via a constant column default. - One-time injection (oneShot + deliveryForm = INJECTION) editor path. - Profile-photo upload card on Settings → Account. - Today-tile read-flip: /api/medications/intake?scope=today and /api/dashboard/summary gate through the canonical recurrence engine, matching the reminder worker for bi-weekly, rolling, RRULE, and one-time cadences. - Measurement note cap 25 → 200; dashboard range colors on semantic tokens; admin sidebar icons + shared-helper consolidation; API-tokens multi-language snippets restored. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
1 parent
d01d1d1dc9
commit
8ee7aaac44
53 files changed
+1049
-1017
No files matched your search
@@ -58,9 +58,31 @@ export interface ResponsiveSheetProps {
|
||||
* consumer renders its own close affordance inside the header.
|
||||
*/
|
||||
showCloseButton?: boolean;
|
||||
/**
|
||||
* Desktop (Dialog branch) content width. The bottom-sheet branch
|
||||
* always spans the viewport, so this prop only affects the `md+`
|
||||
* Dialog. Defaults to `"md"` (448 px) to preserve every existing
|
||||
* consumer; pass `"4xl"` for the wide medication editor's
|
||||
* two-column layout. The class is the only width utility applied —
|
||||
* the prior `cn("sm:max-w-md", className)` ordering let a
|
||||
* consumer-passed width silently collide with the hardcoded
|
||||
* default, so the width now resolves from this single source.
|
||||
*/
|
||||
contentWidth?: "md" | "lg" | "2xl" | "3xl" | "4xl";
|
||||
children: React.ReactNode;
|
||||
}
|
||||
|
||||
const CONTENT_WIDTH_CLASS: Record<
|
||||
NonNullable<ResponsiveSheetProps["contentWidth"]>,
|
||||
string
|
||||
> = {
|
||||
md: "sm:max-w-md",
|
||||
lg: "sm:max-w-lg",
|
||||
"2xl": "sm:max-w-2xl",
|
||||
"3xl": "sm:max-w-3xl",
|
||||
"4xl": "sm:max-w-4xl",
|
||||
};
|
||||
|
||||
/**
|
||||
* v1.4.27 R3d MB1 — shared mount primitive that flips between a
|
||||
* bottom-anchored `<Sheet>` on narrow viewports and the existing
|
||||
@@ -89,6 +111,7 @@ export function ResponsiveSheet({
|
||||
className,
|
||||
bodyClassName,
|
||||
showCloseButton = true,
|
||||
contentWidth = "md",
|
||||
children,
|
||||
}: ResponsiveSheetProps) {
|
||||
const isMobile = useIsMobile();
|
||||
@@ -160,7 +183,7 @@ export function ResponsiveSheet({
|
||||
showCloseButton={showCloseButton}
|
||||
data-slot="responsive-sheet-content"
|
||||
data-variant="dialog"
|
||||
className={cn("sm:max-w-md", className)}
|
||||
className={cn(CONTENT_WIDTH_CLASS[contentWidth], className)}
|
||||
>
|
||||
{hideHeader ? (
|
||||
<DialogHeader className="sr-only">
|
||||
|
||||
Reference in new issue
Block a user