From 39a14a18f982337dbaaa277dd9967b3393bc9dae Mon Sep 17 00:00:00 2001 From: ajnart Date: Sat, 1 Aug 2026 18:25:48 +0200 Subject: [PATCH] fix: polish assistant widget interactions --- .../assistant/assistant-panel.module.css | 17 +++++++++++++++++ .../components/assistant/assistant-panel.tsx | 11 +++++++++-- .../components/assistant/assistant-widget.tsx | 2 +- packages/translation/src/lang/en.json | 6 ++++-- .../src/_inputs/widget-dynamic-select-input.tsx | 2 ++ 5 files changed, 33 insertions(+), 5 deletions(-) diff --git a/apps/nextjs/src/components/assistant/assistant-panel.module.css b/apps/nextjs/src/components/assistant/assistant-panel.module.css index 2077217c5..b42abd95b 100644 --- a/apps/nextjs/src/components/assistant/assistant-panel.module.css +++ b/apps/nextjs/src/components/assistant/assistant-panel.module.css @@ -93,6 +93,8 @@ } .floatingPanel { + container-name: assistant-widget; + container-type: size; position: fixed; z-index: 290; inset-inline-start: 50%; @@ -259,6 +261,21 @@ .runtimeButton { padding-inline: 0.5rem; } + + .reasoningButton { + width: 2.5rem; + min-width: 2.5rem; + max-width: 2.5rem; + } + + .reasoningButton :global(.mantine-Button-label), + .reasoningButton :global(.mantine-Button-section[data-position="right"]) { + display: none; + } + + .reasoningButton :global(.mantine-Button-section[data-position="left"]) { + margin-inline: 0; + } } @container assistant-widget (max-width: 18rem) { diff --git a/apps/nextjs/src/components/assistant/assistant-panel.tsx b/apps/nextjs/src/components/assistant/assistant-panel.tsx index 9e28ab3a5..5e04172db 100644 --- a/apps/nextjs/src/components/assistant/assistant-panel.tsx +++ b/apps/nextjs/src/components/assistant/assistant-panel.tsx @@ -985,11 +985,11 @@ const ThreadHistory = ({ onSelect }: { onSelect: () => void }) => { {t("conversations")} - + - + ); @@ -1002,6 +1002,7 @@ const ConversationHistory = () => { setOpened(false)} position="bottom-end" width="min(22rem, calc(100vw - 1rem))" shadow="md" @@ -1016,6 +1017,12 @@ const ConversationHistory = () => { leftSection={} classNames={{ section: classes.historyButtonSection, label: classes.historyButtonLabel }} onClick={() => setOpened((current) => !current)} + onKeyDown={(event) => { + if (event.key === "Escape" && opened) { + event.stopPropagation(); + setOpened(false); + } + }} aria-label={opened ? t("closeHistory") : t("openHistory")} > {t("conversations")} diff --git a/apps/nextjs/src/components/assistant/assistant-widget.tsx b/apps/nextjs/src/components/assistant/assistant-widget.tsx index cedd55018..b5311a5d6 100644 --- a/apps/nextjs/src/components/assistant/assistant-widget.tsx +++ b/apps/nextjs/src/components/assistant/assistant-widget.tsx @@ -147,7 +147,7 @@ const CompactAssistantWidget = ({ onOpen }: { onOpen: () => void }) => {