feat(ai): section Fournisseur & modele compacte + correctifs menus @/ (#82, BUG-007, BUG-008)
Refonte de la section Fournisseur & modele de l'assistant : capacites regroupees dans une bulle d'information (survol/clic/appui long) au lieu d'une liste permanente, et liste de modeles avec recherche. Correctifs : detection Unicode + filtrage insensible aux accents des commandes / et mentions @, navigation clavier fiable, et prise en compte du contexte ad-hoc en mode General cote backend.
This commit is contained in:
+41
-2
@@ -9362,8 +9362,47 @@ body.bookslm-resizing { cursor: ew-resize; user-select: none; }
|
||||
.bookslm-modal-actions button { padding: 7px 14px; border-radius: 8px; border: 1px solid var(--border);
|
||||
background: var(--surface); color: var(--text-primary); cursor: pointer; font-size: 13px; }
|
||||
.bookslm-modal-actions button.primary { background: var(--accent); color: #fff; border-color: var(--accent); }
|
||||
/* Model capability checklist in the picker. */
|
||||
.ai-picker-caps-host { flex-basis: 100%; }
|
||||
/* ── Provider/model picker (compact, shared by assistant + editor) ── */
|
||||
.ai-picker { display: inline-flex; align-items: center; gap: 6px;
|
||||
font-size: 0.7rem; color: var(--text-secondary); flex-shrink: 0; position: relative; }
|
||||
.ai-picker-label { white-space: nowrap; }
|
||||
.ai-picker select { font-size: 0.7rem; background: var(--surface); color: var(--text-primary);
|
||||
border: 1px solid var(--border); border-radius: 4px; padding: 2px 4px; cursor: pointer; }
|
||||
/* Searchable model combobox. */
|
||||
.ai-picker-model-combo { position: relative; display: inline-flex; }
|
||||
.ai-picker-model-trigger { display: inline-flex; align-items: center; gap: 4px; max-width: 220px;
|
||||
font-size: 0.7rem; background: var(--surface); color: var(--text-primary);
|
||||
border: 1px solid var(--border); border-radius: 4px; padding: 3px 6px; cursor: pointer; }
|
||||
.ai-picker-model-trigger:hover { border-color: var(--accent); }
|
||||
.ai-picker-model-name { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
|
||||
.ai-picker-model-chevron { opacity: 0.6; font-size: 0.6rem; }
|
||||
.ai-picker-model-pop { position: absolute; top: calc(100% + 4px); left: 0; z-index: 60;
|
||||
min-width: 220px; max-width: 320px; background: var(--bg-primary);
|
||||
border: 1px solid var(--border); border-radius: 8px; box-shadow: 0 8px 24px rgba(0,0,0,0.35);
|
||||
padding: 6px; }
|
||||
.ai-picker-model-pop.hidden { display: none; }
|
||||
.ai-picker-model-search { width: 100%; box-sizing: border-box; font-size: 0.72rem;
|
||||
background: var(--bg-secondary); color: var(--text-primary); border: 1px solid var(--border);
|
||||
border-radius: 6px; padding: 5px 8px; margin-bottom: 4px; }
|
||||
.ai-picker-model-list { max-height: 200px; overflow-y: auto; display: flex; flex-direction: column; }
|
||||
.ai-picker-model-option { text-align: left; font-size: 0.72rem; padding: 5px 8px; border-radius: 5px;
|
||||
background: none; border: none; color: var(--text-primary); cursor: pointer;
|
||||
overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
|
||||
.ai-picker-model-option:hover, .ai-picker-model-option.active { background: var(--surface2); }
|
||||
.ai-picker-model-empty { font-size: 0.7rem; color: var(--text-secondary); padding: 6px 8px; text-align: center; }
|
||||
/* Capability info button (ⓘ) + informational bubble. */
|
||||
.ai-picker-caps-host { position: relative; display: inline-flex; }
|
||||
.ai-picker-info { background: none; border: none; cursor: pointer; color: var(--text-secondary);
|
||||
font-size: 0.85rem; line-height: 1; padding: 2px 4px; border-radius: 4px; }
|
||||
.ai-picker-info:hover, .ai-picker-info:focus { color: var(--accent); }
|
||||
.ai-picker-info.hidden { display: none; }
|
||||
.ai-picker-caps-pop { position: absolute; top: calc(100% + 4px); right: 0; z-index: 60;
|
||||
min-width: 220px; max-width: 300px; background: var(--bg-primary);
|
||||
border: 1px solid var(--border); border-radius: 8px; box-shadow: 0 8px 24px rgba(0,0,0,0.35);
|
||||
padding: 8px 10px; }
|
||||
.ai-picker-caps-pop.hidden { display: none; }
|
||||
.ai-picker-caps-title { font-size: 0.7rem; font-weight: 600; color: var(--text-secondary);
|
||||
text-transform: uppercase; letter-spacing: .04em; margin-bottom: 4px; }
|
||||
.ai-picker-caps { display: flex; flex-wrap: wrap; gap: 4px 10px; margin-top: 4px; font-size: 10px;
|
||||
color: var(--text-secondary); }
|
||||
.ai-cap-item { white-space: nowrap; opacity: 0.65; }
|
||||
|
||||
Reference in New Issue
Block a user