feat(ai): rendu Markdown, liens fichiers/paths et sessions (#80)
CI / lint (push) Successful in 57s
CI / security (push) Successful in 43s
CI / test (push) Successful in 1m14s
CI / build (push) Successful in 37s
CI / e2e (push) Successful in 10m36s
Desktop Build / build-windows (push) Canceled after 0s
Desktop Build / build-linux (push) Canceled after 0s
CI / lint (push) Successful in 57s
CI / security (push) Successful in 43s
CI / test (push) Successful in 1m14s
CI / build (push) Successful in 37s
CI / e2e (push) Successful in 10m36s
Desktop Build / build-windows (push) Canceled after 0s
Desktop Build / build-linux (push) Canceled after 0s
Assistant IA (BooksLM) : - renderer Markdown complet (titres, listes, tableaux, citations, code) avec echappement HTML - mentions fichiers/paths cliquables : ouverture du fichier / revelation dans l'arborescence - gestion multi-sessions par contexte (historique, rechargement, suppression, migration) - i18n FR/EN, aide in-app, styles, tests frontend (24)
This commit is contained in:
@@ -9226,6 +9226,58 @@ body.popup-mode .content-area {
|
||||
.bookslm-suggestion { padding: 8px 12px; border-radius: 8px; border: 1px solid var(--border);
|
||||
background: var(--surface); color: var(--text-secondary); cursor: pointer; font-size: 13px; text-align: left; }
|
||||
.bookslm-suggestion:hover { background: var(--surface2); color: var(--text-primary); border-color: var(--accent); }
|
||||
/* Formatted markdown inside assistant answers. */
|
||||
.bookslm-bubble.assistant > *:first-child { margin-top: 0; }
|
||||
.bookslm-bubble.assistant > *:last-child { margin-bottom: 0; }
|
||||
.bookslm-bubble.assistant p { margin: 6px 0; }
|
||||
.bookslm-bubble.assistant h1,
|
||||
.bookslm-bubble.assistant h2,
|
||||
.bookslm-bubble.assistant h3,
|
||||
.bookslm-bubble.assistant h4,
|
||||
.bookslm-bubble.assistant h5,
|
||||
.bookslm-bubble.assistant h6 { margin: 10px 0 6px; line-height: 1.3; font-weight: 600; }
|
||||
.bookslm-bubble.assistant h1 { font-size: 1.35em; }
|
||||
.bookslm-bubble.assistant h2 { font-size: 1.2em; }
|
||||
.bookslm-bubble.assistant h3 { font-size: 1.1em; }
|
||||
.bookslm-bubble.assistant h4,
|
||||
.bookslm-bubble.assistant h5,
|
||||
.bookslm-bubble.assistant h6 { font-size: 1em; }
|
||||
.bookslm-bubble.assistant ul,
|
||||
.bookslm-bubble.assistant ol { margin: 6px 0; padding-left: 20px; }
|
||||
.bookslm-bubble.assistant li { margin: 2px 0; }
|
||||
.bookslm-bubble.assistant blockquote { margin: 8px 0; padding: 4px 10px;
|
||||
border-left: 3px solid var(--accent); background: rgba(0,0,0,0.12);
|
||||
border-radius: 0 4px 4px 0; color: var(--text-secondary); }
|
||||
.bookslm-bubble.assistant hr { border: none; border-top: 1px solid var(--border); margin: 10px 0; }
|
||||
.bookslm-bubble.assistant table { border-collapse: collapse; margin: 8px 0; width: 100%;
|
||||
display: block; overflow-x: auto; }
|
||||
.bookslm-bubble.assistant th,
|
||||
.bookslm-bubble.assistant td { border: 1px solid var(--border); padding: 4px 8px;
|
||||
font-size: 0.92em; text-align: left; }
|
||||
.bookslm-bubble.assistant th { background: rgba(0,0,0,0.15); }
|
||||
.bookslm-bubble.assistant pre { max-width: 100%; }
|
||||
.bookslm-bubble.assistant a { color: var(--accent); }
|
||||
.bookslm-path-link { color: var(--accent); cursor: pointer;
|
||||
text-decoration: underline; text-decoration-style: dotted; text-underline-offset: 2px; }
|
||||
.bookslm-path-link:hover { text-decoration-style: solid; }
|
||||
/* Session history dropdown. */
|
||||
.bookslm-history-menu { position: absolute; top: 48px; right: 10px; z-index: 20;
|
||||
width: min(320px, calc(100% - 20px)); max-height: 60vh; overflow-y: auto;
|
||||
background: var(--bg-primary); border: 1px solid var(--border); border-radius: 10px;
|
||||
box-shadow: 0 8px 24px rgba(0,0,0,0.35); padding: 6px; }
|
||||
.bookslm-history-menu.hidden { display: none; }
|
||||
.bookslm-history-item { display: flex; align-items: stretch; gap: 4px; border-radius: 8px; }
|
||||
.bookslm-history-item:hover { background: var(--surface2); }
|
||||
.bookslm-history-item.active { background: var(--surface2); outline: 1px solid var(--accent); }
|
||||
.bookslm-history-open { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 2px;
|
||||
background: none; border: none; cursor: pointer; text-align: left; padding: 7px 8px;
|
||||
color: var(--text-primary); border-radius: 8px; }
|
||||
.bookslm-history-title { font-size: 12px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
|
||||
.bookslm-history-date { font-size: 10px; color: var(--text-secondary); }
|
||||
.bookslm-history-delete { background: none; border: none; cursor: pointer; color: var(--text-secondary);
|
||||
padding: 0 8px; border-radius: 6px; display: flex; align-items: center; }
|
||||
.bookslm-history-delete:hover { color: #f87171; background: rgba(248,113,113,0.12); }
|
||||
.bookslm-history-empty { padding: 10px; font-size: 12px; color: var(--text-secondary); text-align: center; }
|
||||
@media (max-width: 768px) {
|
||||
.bookslm-panel {
|
||||
width: 100%;
|
||||
|
||||
Reference in New Issue
Block a user