{/* The top bar's band, so the two bottom borders draw one line;
the control sits where the open day keeps its own. */}
@@ -343,6 +359,7 @@ function DayLayer() {
shell={shell}
onClose={shell === "docked" ? collapse : closeDay}
onStep={onStep}
+ onPick={onPick}
Title={Title}
titleId={titleId}
titleRef={titleRef}
@@ -363,7 +380,7 @@ function DayLayer() {
// A short fade, not a slide: the column takes its width at once
// (the page beside it reflows in the same frame either way), so
// only its content eases in. None under reduced motion.
- className="bg-card text-card-foreground border-border motion-safe:animate-in motion-safe:fade-in-0 flex h-full w-105 shrink-0 flex-col border-l motion-safe:duration-150"
+ className="bg-card text-card-foreground border-border motion-safe:animate-in motion-safe:fade-in-0 order-2 flex h-full w-105 shrink-0 flex-col border-l motion-safe:duration-150"
>
{view(DockedTitle, {
// No status-bar inset here: the docked column sits inside
diff --git a/src/components/day/day-view.tsx b/src/components/day/day-view.tsx
index dbe4c8baa..1cfd7d6b1 100644
--- a/src/components/day/day-view.tsx
+++ b/src/components/day/day-view.tsx
@@ -30,6 +30,7 @@ import { resolveIntlLocale } from "@/lib/format-locale";
import { useTranslations } from "@/lib/i18n/context";
import { cn } from "@/lib/utils";
+import { DayDatePicker } from "./day-date-picker";
import type { DayFocus } from "./day-layer-controller";
import {
DayEvents,
@@ -76,6 +77,8 @@ export interface DayViewProps {
shell: "docked" | "sheet" | "bottom";
onClose: () => void;
onStep: (delta: number) => void;
+ /** Open another day, picked from the header's calendar. */
+ onPick: (date: DateKey) => void;
/** The heading element: an `h2`, or the sheet primitive's title. */
Title: ComponentType<{
id?: string;
@@ -113,6 +116,7 @@ export function DayView({
shell,
onClose,
onStep,
+ onPick,
Title,
titleId,
titleRef,
@@ -176,7 +180,7 @@ export function DayView({
? [
tCount("day.countValues", data.counts.values),
tCount("day.countEntries", data.counts.entries),
- ].join(" · ")
+ ].join(", ")
: null;
const compact = shell === "bottom";
const closeLabel = shell === "docked" ? t("day.hidePanel") : t("day.close");
@@ -228,14 +232,23 @@ export function DayView({
tabIndex={-1}
className="min-w-0 flex-1 truncate px-1 text-base leading-snug font-semibold focus-visible:outline-none"
>
- {compact ? (
- <>
-
{shortLabel(date)}
-
{longLabel(date)}
- >
- ) : (
- longLabel(date)
- )}
+ {/* The date is the way to any other day: a calendar opens from
+ it, so the header needs no icon of its own. */}
+
+ {shortLabel(date)}
+ {longLabel(date)}
+ >
+ ) : (
+ longLabel(date)
+ )
+ }
+ />