Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 4 additions & 2 deletions src/client/App.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -480,7 +480,7 @@ export function App() {
>
<Clock3 size={17} />
<span>Scheduled & activity</span>
<small>{state.tasks.length}</small>
{state.tasks.length > 0 && <small>{state.tasks.length}</small>}
</button>
<button
className={`nav-item ${view === 'memories' ? 'active' : ''}`}
Expand All @@ -491,7 +491,9 @@ export function App() {
>
<BookOpen size={17} />
<span>Memories</span>
<small>{state.memories.length}</small>
{state.memories.length > 0 && (
<small>{state.memories.length}</small>
)}
</button>
<button
className="nav-item"
Expand Down
17 changes: 14 additions & 3 deletions src/client/WorkspaceDialog.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -363,9 +363,20 @@ export function WorkspaceDialog({
<div className="config-note">
<strong>Service setup</strong>
<p>
{workspace.setup.missing.length
? `Add ${workspace.setup.missing.join(', ')} to the server environment, then restart.`
: 'Text configuration is present. A successful conversation confirms connectivity.'}
{workspace.setup.missing.length ? (
<>
Add{' '}
{workspace.setup.missing.map((name, index) => (
<span key={name}>
{index > 0 && ', '}
<code>{name}</code>
</span>
))}{' '}
to the server environment, then restart.
</>
) : (
'Text configuration is present. A successful conversation confirms connectivity.'
)}
</p>
<p>
Slack: {workspace.setup.slack.replaceAll('_', ' ')}. Voice:{' '}
Expand Down
75 changes: 75 additions & 0 deletions src/client/style.css
Original file line number Diff line number Diff line change
Expand Up @@ -4001,3 +4001,78 @@ h3 {
font-size: 14px;
color: #c9e8dd;
}

/* Polish: one ink accent everywhere, readable secondary text (WCAG AA), and
disabled controls that look disabled. Later compact-chrome layers moved
the app to ink; these older lavender surfaces now follow it. */
.template-app {
--accent: #242424;
--accent-hover: #000;
--text-secondary: #6b6b6b;
--disabled-bg: #ececec;
--disabled-ink: #9a9a9a;
}
/* The call view is intentionally dark; it keeps the pale base focus ring. */
.template-app
:is(button, a, input, textarea, select):not(.call-view *):focus-visible {
outline: 2px solid var(--accent);
Comment thread
jerelvelarde marked this conversation as resolved.
outline-offset: 2px;
}
.template-app .primary {
background: var(--accent);
border-color: var(--accent);
color: #fff;
}
.template-app .primary:hover:not(:disabled) {
background: var(--accent-hover);
}
.template-app :is(.primary, .send-button):disabled {
background: var(--disabled-bg);
border-color: var(--disabled-bg);
color: var(--disabled-ink);
opacity: 1;
cursor: not-allowed;
}
.template-app :is(input[type='checkbox'], input[type='radio']) {
accent-color: var(--accent);
}
.template-app :is(.muted, .permission-row small, .config-note p) {
color: var(--text-secondary);
}
.template-app .config-note {
background: #fafafa;
border-color: var(--line);
}
.template-app :is(.config-note strong, .setup-card strong) {
color: var(--ink);
font-weight: 600;
}
.template-app :is(.config-note a, .setup-card a) {
color: var(--ink);
}
.template-app .config-note code {
padding: 1px 4px;
border: 1px solid var(--line);
border-radius: 4px;
background: #fff;
color: var(--ink);
font-size: 0.92em;
overflow-wrap: anywhere;
}
.template-app .setup-card p {
color: var(--text-secondary);
}
.template-app .setup-icon {
background: #f1f1f1;
color: var(--ink);
}
/* Dots and Spaces are sibling groups; give the second the same air. */
.template-app .sidebar > .nav-label ~ .nav-label {
margin-top: 18px;
}
.template-app .sidebar-bottom .nav-item span {
min-width: 0;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
Loading