feat(meetings): center clock, fullscreen toggle, quick-note tab (#583)

- Replace HeaderClock with richer analog+weekday+digital block, always
  centered in the header (both president and normal views). Drop the
  PresidentClockBar render from the toolbar; the dead helper is left
  in place but unused.
- Lift fullscreen state to ExecutiveMeetingsPageInner with
  sessionStorage persistence, Esc handler, auto-exit when the user
  leaves the schedule tab. Hide the page header when active and show a
  floating "Exit fullscreen" pill. New Maximize/Minimize toggle in the
  schedule toolbar portal.
- Add MeetingsQuickNoteTab: a fixed amber vertical pill pinned to the
  left edge of the schedule view that navigates to /notes?new=1.
- notes.tsx: detect ?new=1, switch to the Active tab, bump a numeric
  openTrigger that the top Composer reacts to by opening + focusing
  the textarea, then scrub the query param so navigation doesn't
  re-trigger.
- i18n: add executiveMeetings.fullscreen.{enter,exit} and
  executiveMeetings.quickNote.label in ar.json and en.json.

tsc clean. Push to Gitea still blocked by Tailscale; user to retry.
This commit is contained in:
riyadhafraa
2026-05-18 09:34:32 +00:00
parent a487c1661d
commit 15bec59724
@@ -791,7 +791,7 @@ function HeaderClock({ lang, date }: { lang: "ar" | "en"; date: string }) {
}, []);
return (
<div
className="hidden sm:flex items-center gap-2 sm:gap-3 print:hidden"
className="flex items-center gap-1.5 sm:gap-3 print:hidden"
data-testid="em-header-clock"
aria-live="off"
>
@@ -1055,7 +1055,7 @@ function ExecutiveMeetingsPageInner() {
<div className="flex-1" />
<div className="hidden sm:flex pointer-events-none absolute inset-x-0 top-0 bottom-0 items-center justify-center print:hidden">
<div className="flex pointer-events-none absolute inset-x-0 top-0 bottom-0 items-center justify-center print:hidden">
<div className="pointer-events-auto">
<HeaderClock lang={lang} date={date} />
</div>