Mobile-specific chat panel header component that renders a full-screen-aware header with back navigation, title, contextual actions menu, and a mandatory close button for drawer dismissal. ## Key Components ### `ChatPanelHeaderMobile` The primary export. Renders a vertically-aligned header card with: - **Back chevron** — conditionally shown via `showBack`; uses a 44px outlined `Button` with `Chevron02LeftIcon` - **Title** — `text-h2` truncated text, bottom-aligned under a tall header via `xl` top padding - **Actions menu (`⋯`)** — an `ActionsMenuDropdown` built from view-dependent items (archive, restore, rename, open archive); hidden entirely when no items apply - **Close button** — `XmarkIcon` button; required on mobile since the full-screen drawer has no tappable backdrop ### `ChatPanelHeaderMobileProps` Extends [`ChatPanelHeaderProps`](https://github.com/flamingo-stack/openframe-oss-lib/blob/main/src/components/chat/chat-panel-header.tsx) and adds an optional `className` for layout overrides. ### Menu item construction Items are conditionally assembled based on current view state: | Condition | Item | |---|---| | `!showBack && onOpenArchive` | Chat archive | | `isArchivedView && onRestore` | Unarchive chat | | `!isArchivedView && onRename` | Rename chat | | `!isArchivedView && onArchive` | Archive chat | ## Usage Example ```typescript import { ChatPanelHeaderMobile } from './chat-panel-header-mobile' setDrawerOpen(false)} onRename={() => openRenameDialog()} onArchive={() => archiveChat(chatId)} onOpenArchive={() => navigateTo('archive')} /> ``` > The orchestrator renders `ChatPanelHeaderMobile` on mobile viewports and the desktop bar at `md+`. The close button (`onClose`) should always be provided since the full-screen drawer has no visible backdrop.