frontend: chat/meetings/messages/settings UX fixes

- settings: keep tab nav on its own row so "Developers" no longer wraps
- chat: show the "Veil active" chip once per conversation, not every turn
- chat: record cards only offer "Click for more" when they have detail
- chat: chat-history panel (pill + sheet) top-left of the AI chat with
  "Start new chat"; rename sidebar "New chat" -> "Ask temetro" (Sparkles)
- meetings: disable past dates, add an Upcoming Meetings list, and use the
  Empty component for empty days; scheduler can be pre-targeted via ?with
- messages: add a call button left of each inbox row -> Meetings (?with)
- toast: add a dismiss (x) button; call invites now ring 30s with "Accept"

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
Khalid Abdi
2026-06-20 18:34:48 +03:00
parent 913a217e1d
commit 1d9b1b1d22
11 changed files with 360 additions and 30 deletions
@@ -43,15 +43,15 @@ export function SettingsView() {
return (
<div className="mx-auto w-full max-w-3xl px-6 py-10">
<div className="flex flex-col gap-5 sm:flex-row sm:items-center sm:justify-between">
<div className="flex flex-col gap-4">
<h1 className="text-2xl font-semibold tracking-tight">
{t(`settings.tabs.${activeTab}`)}
</h1>
<nav className="flex flex-wrap items-center gap-1">
<nav className="-mx-1 flex flex-nowrap items-center gap-1 overflow-x-auto px-1 [scrollbar-width:none] [&::-webkit-scrollbar]:hidden">
{visibleTabs.map((item) => (
<button
className={cn(
"rounded-lg px-3 py-1.5 text-sm transition-colors",
"shrink-0 rounded-lg px-3 py-1.5 text-sm transition-colors",
activeTab === item.id
? "bg-muted text-foreground"
: "text-muted-foreground hover:text-foreground"