blob: 2b11425112ce818cf0e0ade0355da3cef97017a8 [file]
/* Model + thinking sit as one left-footer pair after permission. */
.maka-model-selection-controls {
display: inline-flex;
align-items: center;
gap: var(--space-1);
min-width: 0;
max-width: 100%;
}
/* The composer footer's model and thinking pickers are ghost-button
DropdownMenus — the same toolbar primitive as + and permission, so their
resting, hover, focus, and disabled chrome all derive from the Astryx
Button and no product overlay is needed here. Trigger geometry (min/max
width) is owned by composer.css, the one real context these triggers
render in; the Button's label span truncates inside that cap. */
/* Connection group heading inside the model menus. Mirrors Astryx's
data-driven DropdownMenu section title (supporting role, secondary ink,
sm menu padding) so the compound menu reads like a native sectioned one. */
.maka-model-menu-group-heading {
padding-block: var(--space-1);
padding-inline: var(--space-2);
font: var(--maka-text-supporting);
color: var(--foreground-secondary);
user-select: none;
white-space: nowrap;
}
.maka-model-picker-root {
display: inline-flex;
min-width: 0;
max-width: 100%;
}
/* The project picker's trigger is now a ghost-button DropdownMenu like the
model and thinking chips beside it (workspace-picker.tsx), so resting,
hover, focus, disabled and tooltip chrome all derive from Astryx Button —
no field overlay needed here.
Geometry sizes to the project name rather than holding the model pair's
column width: it is the last control in a row that already wraps, so a
fixed width would spend space the model chip beside it needs. The cap is
what keeps a long directory name from pushing the send button off the
row. */
.maka-workspace-picker {
min-width: 0;
max-width: min(280px, 60vw);
flex: 0 0 auto;
}
/* Cursor: product-wide native-cursor.css (maka.legacy) owns default vs pointer. */
/* The one rem that stays, and the reason is the icon scale rather than the
root. Everywhere else in product CSS rem was a stale habit — a length
written in root-relative units that had to become absolute once the root
stopped being a density knob. This is an icon box, and Astryx authors its
icon sizes in rem against a 16px root (12/16/20/24, see Icon.tsx), so 1rem
IS the `sm` icon box next to body text. Under the old 13px root it rendered
13px, i.e. one step below Astryx's own smallest body-text icon; it now
renders the 16px it always meant. chat-shell-layout-contract.test.ts pins
the square so flex cannot squash it. */
.modelPickerProviderMark {
display: inline-flex;
align-items: center;
justify-content: center;
width: 1rem;
height: 1rem;
flex: 0 0 1rem;
color: var(--foreground);
}
.modelPickerProviderMark svg,
.modelPickerProviderMark img,
.modelPickerProviderMark .providerAssetMask {
width: 100%;
height: 100%;
}
.modelPickerOption {
min-width: 0;
}
.modelPickerOptionLabel {
display: block;
min-width: 0;
max-width: min(260px, 56vw);
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}