diff --git a/libs/a2ui/package.json b/libs/a2ui/package.json index d2431ee4c..902aa7a24 100644 --- a/libs/a2ui/package.json +++ b/libs/a2ui/package.json @@ -1,6 +1,6 @@ { "name": "@ngaf/a2ui", - "version": "0.0.38", + "version": "0.0.39", "license": "MIT", "repository": { "type": "git", diff --git a/libs/ag-ui/package.json b/libs/ag-ui/package.json index fa0c52953..8c6bff202 100644 --- a/libs/ag-ui/package.json +++ b/libs/ag-ui/package.json @@ -1,6 +1,6 @@ { "name": "@ngaf/ag-ui", - "version": "0.0.38", + "version": "0.0.39", "peerDependencies": { "@ngaf/chat": "*", "@ngaf/licensing": "*", diff --git a/libs/chat/package.json b/libs/chat/package.json index d72e65d66..e4608882f 100644 --- a/libs/chat/package.json +++ b/libs/chat/package.json @@ -1,6 +1,6 @@ { "name": "@ngaf/chat", - "version": "0.0.38", + "version": "0.0.39", "exports": { ".": { "types": "./index.d.ts", diff --git a/libs/chat/src/lib/styles/chat-project-list.styles.spec.ts b/libs/chat/src/lib/styles/chat-project-list.styles.spec.ts index 10214dfcf..4fc4bbbc1 100644 --- a/libs/chat/src/lib/styles/chat-project-list.styles.spec.ts +++ b/libs/chat/src/lib/styles/chat-project-list.styles.spec.ts @@ -41,3 +41,12 @@ describe('CHAT_PROJECT_LIST_STYLES — New project button', () => { ); }); }); + +describe('CHAT_PROJECT_LIST_STYLES — active item', () => { + const normalized = CHAT_PROJECT_LIST_STYLES.replace(/\s+/g, ' '); + it('does NOT use a left-accent box-shadow for the active item (symmetric bg-only indication)', () => { + expect(normalized).not.toMatch( + /\.chat-project-list__item\[data-active="true"\]\s*\{[^}]*box-shadow:\s*inset\s+2px\s+0\s+0/, + ); + }); +}); diff --git a/libs/chat/src/lib/styles/chat-project-list.styles.ts b/libs/chat/src/lib/styles/chat-project-list.styles.ts index ae0d3914f..ab57a684d 100644 --- a/libs/chat/src/lib/styles/chat-project-list.styles.ts +++ b/libs/chat/src/lib/styles/chat-project-list.styles.ts @@ -31,7 +31,6 @@ export const CHAT_PROJECT_LIST_STYLES = ` .chat-project-list__item[data-active="true"] { background: var(--ngaf-chat-surface-alt); font-weight: 500; - box-shadow: inset 2px 0 0 var(--a2ui-primary, var(--ngaf-chat-primary)); } .chat-project-list__kebab { flex-shrink: 0; diff --git a/libs/chat/src/lib/styles/chat-sidenav.styles.spec.ts b/libs/chat/src/lib/styles/chat-sidenav.styles.spec.ts index 298836b6a..7ee7a53b1 100644 --- a/libs/chat/src/lib/styles/chat-sidenav.styles.spec.ts +++ b/libs/chat/src/lib/styles/chat-sidenav.styles.spec.ts @@ -41,3 +41,43 @@ describe('CHAT_SIDENAV_STYLES — New chat button', () => { ); }); }); + +describe('CHAT_SIDENAV_STYLES — Archived disclosure', () => { + const normalized = CHAT_SIDENAV_STYLES.replace(/\s+/g, ' '); + + it('uses sidenav-nav-item padding (8px 12px) — not the small 8px 12px 4px label padding', () => { + expect(normalized).toMatch( + /\.chat-sidenav__archived-heading\s*\{[^}]*padding:\s*8px\s+12px\s*;/, + ); + }); + + it('uses 8px border-radius so it reads as a clickable nav item', () => { + expect(normalized).toMatch( + /\.chat-sidenav__archived-heading\s*\{[^}]*border-radius:\s*8px\s*;/, + ); + }); + + it('uses --ngaf-chat-text color (full strength, not muted)', () => { + expect(normalized).toMatch( + /\.chat-sidenav__archived-heading\s*\{[^}]*color:\s*var\(--ngaf-chat-text\)\s*;/, + ); + }); + + it('uses sm font-size — not the 11px label size', () => { + expect(normalized).toMatch( + /\.chat-sidenav__archived-heading\s*\{[^}]*font-size:\s*var\(--ngaf-chat-font-size-sm\)\s*;/, + ); + }); + + it('no longer uppercases the label', () => { + expect(normalized).not.toMatch( + /\.chat-sidenav__archived-heading\s*\{[^}]*text-transform:\s*uppercase/, + ); + }); + + it('hovers to surface-alt (matching .chat-sidenav__action)', () => { + expect(normalized).toMatch( + /\.chat-sidenav__archived-heading:hover\s*\{[^}]*background:\s*var\(--ngaf-chat-surface-alt\)/, + ); + }); +}); diff --git a/libs/chat/src/lib/styles/chat-sidenav.styles.ts b/libs/chat/src/lib/styles/chat-sidenav.styles.ts index 915fa2949..ee9a87de1 100644 --- a/libs/chat/src/lib/styles/chat-sidenav.styles.ts +++ b/libs/chat/src/lib/styles/chat-sidenav.styles.ts @@ -273,20 +273,22 @@ export const CHAT_SIDENAV_STYLES = ` .chat-sidenav__archived-heading { display: flex; align-items: center; - gap: 6px; + gap: 8px; width: 100%; - padding: 8px 12px 4px; + padding: 8px 12px; border: 0; + border-radius: 8px; background: transparent; - color: var(--ngaf-chat-text-muted); + color: var(--ngaf-chat-text); font: inherit; - font-size: 11px; - text-transform: uppercase; - letter-spacing: 0.4px; + font-size: var(--ngaf-chat-font-size-sm); text-align: left; cursor: pointer; } - .chat-sidenav__archived-heading:hover { color: var(--ngaf-chat-text); } + .chat-sidenav__archived-heading:hover { + background: var(--ngaf-chat-surface-alt); + color: var(--ngaf-chat-text); + } .chat-sidenav__archived-heading:focus-visible { outline: 2px solid var(--ngaf-chat-primary); outline-offset: 2px; diff --git a/libs/chat/src/lib/styles/chat-thread-list.styles.spec.ts b/libs/chat/src/lib/styles/chat-thread-list.styles.spec.ts new file mode 100644 index 000000000..8108e33c1 --- /dev/null +++ b/libs/chat/src/lib/styles/chat-thread-list.styles.spec.ts @@ -0,0 +1,12 @@ +// SPDX-License-Identifier: MIT +import { describe, it, expect } from 'vitest'; +import { CHAT_THREAD_LIST_STYLES } from './chat-thread-list.styles'; + +describe('CHAT_THREAD_LIST_STYLES — active item', () => { + const normalized = CHAT_THREAD_LIST_STYLES.replace(/\s+/g, ' '); + it('does NOT use a left-accent box-shadow for the active item (symmetric bg-only indication)', () => { + expect(normalized).not.toMatch( + /\.chat-thread-list__item\[data-active="true"\]\s*\{[^}]*box-shadow:\s*inset\s+2px\s+0\s+0/, + ); + }); +}); diff --git a/libs/chat/src/lib/styles/chat-thread-list.styles.ts b/libs/chat/src/lib/styles/chat-thread-list.styles.ts index 79b3fe9cf..307d792a5 100644 --- a/libs/chat/src/lib/styles/chat-thread-list.styles.ts +++ b/libs/chat/src/lib/styles/chat-thread-list.styles.ts @@ -23,7 +23,6 @@ export const CHAT_THREAD_LIST_STYLES = ` .chat-thread-list__item[data-active="true"] { background: var(--ngaf-chat-surface-alt); font-weight: 500; - box-shadow: inset 2px 0 0 var(--a2ui-primary, var(--ngaf-chat-primary)); } .chat-thread-list__item-title { overflow: hidden; diff --git a/libs/langgraph/package.json b/libs/langgraph/package.json index e4c7167ff..ce2de0f68 100644 --- a/libs/langgraph/package.json +++ b/libs/langgraph/package.json @@ -1,6 +1,6 @@ { "name": "@ngaf/langgraph", - "version": "0.0.38", + "version": "0.0.39", "peerDependencies": { "@ngaf/chat": "*", "@ngaf/licensing": "*", diff --git a/libs/licensing/package.json b/libs/licensing/package.json index 80f4f4445..23315509e 100644 --- a/libs/licensing/package.json +++ b/libs/licensing/package.json @@ -1,6 +1,6 @@ { "name": "@ngaf/licensing", - "version": "0.0.38", + "version": "0.0.39", "license": "MIT", "repository": { "type": "git", diff --git a/libs/render/package.json b/libs/render/package.json index 9d1910d6b..bd4b60c25 100644 --- a/libs/render/package.json +++ b/libs/render/package.json @@ -1,6 +1,6 @@ { "name": "@ngaf/render", - "version": "0.0.38", + "version": "0.0.39", "peerDependencies": { "@angular/core": "^20.0.0 || ^21.0.0", "@angular/common": "^20.0.0 || ^21.0.0", diff --git a/libs/telemetry/package.json b/libs/telemetry/package.json index fd98e07e0..f0cd9be46 100644 --- a/libs/telemetry/package.json +++ b/libs/telemetry/package.json @@ -1,6 +1,6 @@ { "name": "@ngaf/telemetry", - "version": "0.0.38", + "version": "0.0.39", "license": "MIT", "publishConfig": { "access": "public"