feat(FN-4611): add themed quick chat session dropdown

- Replace the quick chat header mode toggle with a session picker dropdown styled from dashboard theme tokens
- Surface chat room entries alongside sessions and keep active room/session switching in the same menu
- Add QuickChatFAB and CSS regression coverage for the new dropdown behavior and token-based styling
- Add a changeset note for the quick chat session picker update

Fusion-Task-Id: FN-4611
Fusion-Task-Id: FN-4634
Fusion-Task-Lineage: 87cc75e7-ba50-4cb5-bb9f-6d86f49268e0
This commit is contained in:
Fusion
2026-05-15 09:39:30 -07:00
committed by gsxdsm
parent 4d99a72c94
commit ea9ec50a1d
5 changed files with 340 additions and 24 deletions

View File

@@ -381,6 +381,91 @@
padding: calc(var(--space-sm) - (var(--space-xs) / 4)) calc(var(--space-md) - (var(--space-xs) / 4));
}
.quick-chat-session-menu {
position: relative;
}
.quick-chat-session-trigger {
width: 100%;
justify-content: flex-start;
gap: var(--space-sm);
background: var(--surface);
color: var(--text);
border-color: var(--border);
border-radius: var(--radius-md);
padding: var(--space-sm);
transition: background var(--transition-fast), border-color var(--transition-fast), color var(--transition-fast);
}
.quick-chat-session-trigger > span {
min-width: 0;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.quick-chat-session-trigger > svg:last-child {
margin-left: auto;
color: var(--text-muted);
}
.quick-chat-session-trigger:hover {
background: var(--card-hover);
}
.quick-chat-session-trigger:focus-visible {
outline: none;
box-shadow: var(--focus-ring-strong);
}
.quick-chat-session-dropdown {
position: absolute;
top: calc(100% + var(--space-xs));
left: 0;
width: 100%;
max-height: calc(var(--space-xl) * 10);
overflow-y: auto;
background: var(--surface);
border: var(--btn-border-width) solid var(--border);
border-radius: var(--radius-md);
box-shadow: var(--shadow-lg);
padding: var(--space-xs);
z-index: 4;
}
.quick-chat-session-dropdown-group-label {
margin: var(--space-xs) var(--space-sm);
color: var(--text-muted);
font-size: var(--space-sm);
font-weight: 600;
letter-spacing: calc(var(--space-xs) / 8);
text-transform: uppercase;
}
.quick-chat-session-option {
width: 100%;
border: none;
background: transparent;
color: var(--text);
border-radius: var(--radius-sm);
padding: var(--space-sm);
text-align: left;
transition: background var(--transition-fast), color var(--transition-fast);
}
.quick-chat-session-option:hover {
background: var(--card-hover);
}
.quick-chat-session-option:focus-visible {
outline: none;
box-shadow: var(--focus-ring-strong);
}
.quick-chat-session-option--active {
background: color-mix(in srgb, var(--todo) 12%, transparent);
}
.quick-chat-panel-messages {
flex: 1;
min-height: 0;
@@ -791,6 +876,13 @@
z-index: 1100;
}
.quick-chat-session-dropdown {
left: 0;
right: 0;
width: auto;
max-height: calc(100vh - var(--header-height) - var(--mobile-nav-height));
}
.quick-chat-resize-handle {
display: none;
}