blob: 5e4f01cbd955cd682af6f79b8fa981b081e7d3ae [file]
/* ============================================================================
Chat header bar + chat shell layout
----------------------------------------------------------------------------
#546 PR2 (relocate — zero visual change) split the overlay surfaces that
used to live here into their own files: palette.css, help.css,
error.css, hero.css. The composer streaming top-sweep moved to
composer.css. What remains is the unified session context layer, the #1032
composer-adjacent health notice, and the chat shell layout
(`.maka-chat-shell` / `.maka-chatContent`). Astryx ChatLayout owns the
scroll container, dock, blur layer, and scroll-to-bottom control. */
/* #1032: hard-block session health notice sits above the composer,
outside the message scroll area (sibling of maka-composer-interaction-slot).
It is a peer of the composer form, so it must resolve to the SAME box as the
composer card: capped at the chat measure, centered, and inset by the
composer's own `--space-6` gutters plus Astryx balanced dock's `--space-3`.
The old `margin: 0 var(--space-3)` left it
uncapped, so on a wide window the notice ran the full chat column while the
composer stayed at 680px — a visibly mismatched edge. Same formula as
`.maka-composer-no-model-hint` / `.maka-composer-revision-notice`.
#1629: the boundary-unreadable notice stands in for the composer it replaces,
so it is the same kind of peer and shares the formula rather than restating
it. `.maka-session-health-notice` stays last in each group — the
session-health-notice layout contract reads its rule body by matching the
selector immediately before the brace. */
.maka-boundary-unreadable-notice,
.maka-workspace-readiness-notice,
.maka-session-health-notice {
width: min(
var(--maka-chat-measure),
calc(100% - (2 * var(--space-6)) - (2 * var(--space-3)))
);
max-width: var(--maka-chat-measure);
margin: 0 auto var(--space-2);
-webkit-app-region: no-drag;
}
.maka-boundary-unreadable-notice-alert,
.maka-workspace-readiness-notice-alert,
.maka-session-health-notice-alert {
width: 100%;
box-sizing: border-box;
}
/* PR-REMOVE-CHAT-TAB (WAWQAQ msg d401938d 2026-06-23): the
browser-style session tab + the duplicate "新建对话" plus button at
the top-left of the chat header are removed. ~95 LOC of .maka-chat-tab*
rules came out with them. Session name + model live in the sidebar;
create-session lives in the sidebar new-task button. */
/* Session lineage, revisions, modes, and autonomous-goal state share one
structural layer. The layer is omitted when no extra context exists. */
.maka-session-context {
flex: 0 0 auto;
min-width: 0;
/* Visual System 2.0 (T2): same pixels, findable name. This band is flush
inside the conversation plate, so it paints the plate's own tier — the
point is that it stays INVISIBLE against it. `--background` resolves here
too (DESIGN.md §2 lists it as a raised alias), but it reads like "the page
color" at a call site, which is the one thing it is not. */
background: var(--surface-raised);
container-type: inline-size;
-webkit-app-region: no-drag;
}
.maka-session-context__inner {
min-width: 0;
min-height: 40px;
display: grid;
grid-template-columns: minmax(0, 1fr) minmax(0, auto);
align-items: center;
gap: var(--space-3);
padding: var(--space-1-5) var(--space-3);
}
.maka-session-context__lineage,
.maka-session-context__cluster {
min-width: 0;
}
.maka-session-context__breadcrumbs {
min-width: 0;
overflow: hidden;
}
.maka-session-context__breadcrumbs > ol {
min-width: 0;
flex-wrap: nowrap;
overflow: hidden;
}
.maka-session-context__breadcrumbs > ol > li {
min-width: 0;
overflow: hidden;
}
.maka-session-context__breadcrumb-label {
display: block;
min-width: 0;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.maka-session-context__cluster {
width: min(100%, 560px);
justify-self: end;
}
.maka-session-context__item,
.maka-session-context__revision,
.maka-session-context__goal {
min-width: 0;
display: inline-flex;
align-items: center;
}
.maka-session-context__revision,
.maka-session-context__goal {
gap: var(--space-1);
white-space: nowrap;
}
@container (max-width: 620px) {
.maka-session-context__inner {
grid-template-columns: minmax(0, 1fr);
gap: var(--space-1);
}
.maka-session-context__cluster {
width: 100%;
justify-self: stretch;
}
}
@container (max-width: 420px) {
.maka-session-context__inner {
padding-inline: var(--space-2);
}
}
.maka-chatContent {
position: relative;
width: 100%;
box-sizing: border-box;
padding-inline: clamp(var(--space-3), 4vw, var(--space-10));
}
.maka-chat-layout {
width: 100%;
min-height: 0;
flex: 1 1 auto;
display: flex;
flex-direction: column;
overscroll-behavior: contain;
}
/*
* Compatibility with Astryx #2573 until its fixed ChatLayout ships in a
* stable package. Published 0.2.0 gives the message area min-height: 100%,
* then adds the in-flow dock below it, creating a dock-height phantom range.
* These are the upstream flex contracts and can be removed on that upgrade.
*/
.maka-chat-layout > :first-child {
min-height: 0;
flex: 1 0 auto;
}
.maka-chat-layout > :last-child {
flex-shrink: 0;
}
.maka-chat-shell {
position: relative;
min-height: 0;
display: flex;
flex-direction: column;
flex: 1;
}