mirror of
https://github.com/temetro/temetro.git
synced 2026-07-26 11:58:14 +00:00
a4fc9a4fe9
Several navigation/UX additions: - Command palette (⌘K): components/command-palette.tsx wraps the app shell (mounted in app/(app)/layout.tsx) with a controlled COSS CommandDialog listing the nav pages; a "Quick nav" Kbd button in the sidebar footer also opens it. Installed @coss/kbd. Extracted the nav list into lib/nav.ts so the sidebar and palette share one source of truth. - Clinic switcher moved from the sidebar body into the footer; its menu now opens a read-only "Clinic info" dialog and a "Create clinic" dialog instead of routing to /onboarding. Shared CreateClinicForm (components/clinic/) is reused by onboarding. - Patients: clicking a row opens a right-side Sheet with the full record (components/patients/patient-detail-sheet.tsx) instead of navigating to the chat; PatientResult gained a vertical "column" layout for the Sheet. - New Analysis page (app/(app)/analysis/) — a mock dashboard (revenue/profit, patient volume, appointments, operations) reusing Sparkline + Card + Badge. - Logo: set metadata.icons so the new mark appears as the browser-tab favicon. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
32 lines
766 B
TypeScript
32 lines
766 B
TypeScript
import type * as React from "react";
|
|
import { cn } from "@/lib/utils";
|
|
|
|
export function Kbd({
|
|
className,
|
|
...props
|
|
}: React.ComponentProps<"kbd">): React.ReactElement {
|
|
return (
|
|
<kbd
|
|
className={cn(
|
|
"pointer-events-none inline-flex h-5 min-w-5 select-none items-center justify-center gap-1 rounded-[.25rem] bg-muted px-1 font-medium font-sans text-muted-foreground text-xs [&_svg:not([class*='size-'])]:size-3",
|
|
className,
|
|
)}
|
|
data-slot="kbd"
|
|
{...props}
|
|
/>
|
|
);
|
|
}
|
|
|
|
export function KbdGroup({
|
|
className,
|
|
...props
|
|
}: React.ComponentProps<"kbd">): React.ReactElement {
|
|
return (
|
|
<kbd
|
|
className={cn("inline-flex items-center gap-1", className)}
|
|
data-slot="kbd-group"
|
|
{...props}
|
|
/>
|
|
);
|
|
}
|