authorgravatar for julius0216@outlook.comJulius Marminge <julius0216@outlook.com> 2026-04-09 17:40:27-07:00
committergravatar for noreply@github.comGitHub <noreply@github.com> 2026-04-10 00:40:27+00:00
log66d76b5d02308dc7a8e3ff218bb0301bc20c0c2a
treef777a023fb1ef95e2a0131e5a39216c475b49225
parent528bb2a1fa318962437281e68723bf0bb5a589d7
signature Signed by PGP key B5690EEEBB952194

Fix composer footer focus ring overflow (#1865)

Co-authored-by: Julius Marminge <julius@macmini.local> Co-authored-by: codex <codex@users.noreply.github.com>

2 files changed, 17 insertions(+), 16 deletions(-)

apps/web/src/components/chat/ChatComposer.tsx+2-1
......@@ -199,6 +199,7 @@ const ComposerFooterModeControls = memo(function ComposerFooterModeControls(prop
199199 <SelectTrigger
200200 variant="ghost"
201201 size="sm"
202 className="font-medium"
202203 aria-label="Runtime mode"
203204 title={runtimeModeOption.description}
204205 >
......@@ -1798,7 +1799,7 @@ export const ChatComposer = memo(
17981799 data-chat-composer-footer="true"
17991800 data-chat-composer-footer-compact={isComposerFooterCompact ? "true" : "false"}
18001801 className={cn(
1801 "flex min-w-0 flex-nowrap items-center justify-between gap-2 overflow-hidden px-2.5 pb-2.5 sm:px-3 sm:pb-3",
1802 "flex min-w-0 flex-nowrap items-center justify-between gap-2 overflow-visible px-2.5 pb-2.5 sm:px-3 sm:pb-3",
18021803 isComposerFooterCompact ? "gap-1.5" : "gap-2 sm:gap-0",
18031804 )}
18041805 >
apps/web/src/components/settings/SettingsPanels.browser.tsx+15-15
......@@ -361,8 +361,8 @@ describe("GeneralSettingsPanel observability", () => {
361361 browser: "Chrome",
362362 ipAddress: "127.0.0.1",
363363 },
364 issuedAt: "2026-04-07T00:00:00.000Z",
365 expiresAt: "2026-05-07T00:00:00.000Z",
364 issuedAt: "2036-04-07T00:00:00.000Z",
365 expiresAt: "2036-05-07T00:00:00.000Z",
366366 connected: true,
367367 current: true,
368368 }),
......@@ -377,7 +377,7 @@ describe("GeneralSettingsPanel observability", () => {
377377 auth: createBaseServerConfig().auth,
378378 role: "owner",
379379 sessionMethod: "browser-session-cookie",
380 expiresAt: "2026-05-07T00:00:00.000Z",
380 expiresAt: "2036-05-07T00:00:00.000Z",
381381 }),
382382 {
383383 status: 200,
......@@ -458,8 +458,8 @@ describe("GeneralSettingsPanel observability", () => {
458458 browser: "Electron",
459459 ipAddress: "127.0.0.1",
460460 },
461 issuedAt: "2026-04-07T00:00:00.000Z",
462 expiresAt: "2026-05-07T00:00:00.000Z",
461 issuedAt: "2036-04-07T00:00:00.000Z",
462 expiresAt: "2036-05-07T00:00:00.000Z",
463463 connected: true,
464464 current: true,
465465 }),
......@@ -481,8 +481,8 @@ describe("GeneralSettingsPanel observability", () => {
481481 role: "client",
482482 subject: "one-time-token",
483483 label: "Julius iPhone",
484 createdAt: "2026-04-07T00:00:00.000Z",
485 expiresAt: "2026-04-10T00:05:00.000Z",
484 createdAt: "2036-04-07T00:00:00.000Z",
485 expiresAt: "2036-04-10T00:05:00.000Z",
486486 }),
487487 ];
488488 clientSessions = [
......@@ -499,8 +499,8 @@ describe("GeneralSettingsPanel observability", () => {
499499 browser: "Safari",
500500 ipAddress: "192.168.1.88",
501501 },
502 issuedAt: "2026-04-07T00:01:00.000Z",
503 expiresAt: "2026-05-07T00:01:00.000Z",
502 issuedAt: "2036-04-07T00:01:00.000Z",
503 expiresAt: "2036-05-07T00:01:00.000Z",
504504 connected: false,
505505 current: false,
506506 }),
......@@ -514,7 +514,7 @@ describe("GeneralSettingsPanel observability", () => {
514514 id: "pairing-link-1",
515515 credential: "pairing-token",
516516 label: "Julius iPhone",
517 expiresAt: "2026-04-10T00:05:00.000Z",
517 expiresAt: "2036-04-10T00:05:00.000Z",
518518 }),
519519 {
520520 status: 200,
......@@ -547,7 +547,7 @@ describe("GeneralSettingsPanel observability", () => {
547547 .element(page.getByText("Client · Mobile · iOS · Safari · 192.168.1.88"))
548548 .toBeInTheDocument();
549549 await expect
550 .element(page.getByRole("button", { name: "Copy", exact: true }))
550 .element(page.getByRole("button", { name: /^(Copy|Show link)$/ }))
551551 .toBeInTheDocument();
552552 await expect.element(page.getByText("Revoke others")).toBeInTheDocument();
553553 });
......@@ -572,8 +572,8 @@ describe("GeneralSettingsPanel observability", () => {
572572 os: "macOS",
573573 browser: "Electron",
574574 },
575 issuedAt: "2026-04-05T00:00:00.000Z",
576 expiresAt: "2026-05-05T00:00:00.000Z",
575 issuedAt: "2036-04-05T00:00:00.000Z",
576 expiresAt: "2036-05-05T00:00:00.000Z",
577577 connected: true,
578578 current: true,
579579 }),
......@@ -589,8 +589,8 @@ describe("GeneralSettingsPanel observability", () => {
589589 browser: "Safari",
590590 ipAddress: "192.168.1.88",
591591 },
592 issuedAt: "2026-04-05T00:01:00.000Z",
593 expiresAt: "2026-05-05T00:01:00.000Z",
592 issuedAt: "2036-04-05T00:01:00.000Z",
593 expiresAt: "2036-05-05T00:01:00.000Z",
594594 connected: false,
595595 current: false,
596596 }),