@@ -0,0 +1,462 @@
<!doctype html>
< html lang = "ru" >
< head >
< meta charset = "utf-8" >
< title > Новый диалог — выбор ассистента< / title >
< style >
* { box-sizing : border-box ; margin : 0 ; padding : 0 ; }
: root {
--bg : #121218 ; --panel : #17212B ; --panel2 : #1C2733 ; --line : #232B36 ;
--fg : #EBEBEB ; --dim : #768C9E ; --accent : #6AB2F2 ; --badge : #5EB5F7 ;
--err : #EC3942 ; --ok : #63C88A ; --user-bubble : #2B5278 ; --bot-bubble : #1C2733 ;
}
body {
font-family : - apple-system , BlinkMacSystemFont , "Segoe UI" , Roboto , "Helvetica Neue" , Arial , sans-serif ;
-webkit- font-smoothing : antialiased ;
background : #0A0A0F ; color : var ( - - fg ) ; line-height : 1.45 ;
display : flex ; flex-direction : column ; align-items : center ; justify-content : center ;
min-height : 100 vh ; padding : 24 px ; gap : 16 px ;
}
/* ============ переключатель состояний ============ */
. switcher { display : flex ; gap : 7 px ; flex-wrap : wrap ; justify-content : center ; max-width : 1180 px ; }
. switcher button {
padding : 7 px 13 px ; border-radius : 9 px ; border : 1 px solid var ( - - line ) ; background : var ( - - panel ) ;
color : var ( - - dim ) ; font-size : 12.5 px ; cursor : pointer ; font-family : inherit ;
}
. switcher button : hover { color : var ( - - fg ) ; }
. switcher button . on { background : var ( - - accent ) ; border-color : var ( - - accent ) ; color : #0F1922 ; font-weight : 600 ; }
/* пояснение к состоянию — это НЕ часть интерфейса */
. annot {
max-width : 1180 px ; width : 100 % ; border : 1 px dashed #3A4756 ; border-radius : 10 px ;
padding : 10 px 14 px ; font-size : 12.5 px ; color : var ( - - dim ) ; background : rgba ( 28 , 39 , 51 , .5 ) ;
}
. annot b { color : var ( - - fg ) ; font-weight : 600 ; }
. annot . tag {
display : inline-block ; font-size : 10.5 px ; letter-spacing : .04 em ; text-transform : uppercase ;
color : #0F1922 ; background : var ( - - dim ) ; border-radius : 5 px ; padding : 1 px 6 px ; margin-right : 8 px ;
font-weight : 700 ; vertical-align : 1 px ;
}
/* ============ окно клиента ============ */
. window {
width : 1180 px ; height : 740 px ; background : var ( - - bg ) ; border-radius : 12 px ;
display : flex ; overflow : hidden ; border : 1 px solid var ( - - line ) ; position : relative ;
box-shadow : 0 24 px 80 px rgba ( 0 , 0 , 0 , .6 ) ;
}
. sidebar { width : 320 px ; background : var ( - - panel ) ; border-right : 1 px solid var ( - - line ) ; display : flex ; flex-direction : column ; }
. sb-head { padding : 14 px 16 px 10 px ; }
. sb-title { font-size : 17 px ; font-weight : 600 ; display : flex ; align-items : center ; justify-content : space-between ; }
. search {
margin : 0 16 px 10 px ; padding : 8 px 11 px ; border-radius : 9 px ; border : 1 px solid transparent ;
background : var ( - - panel2 ) ; color : var ( - - fg ) ; font-size : 13 px ; outline : none ; font-family : inherit ;
}
. search :: placeholder { color : var ( - - dim ) ; }
. folders { display : flex ; gap : 6 px ; padding : 0 16 px 10 px ; overflow-x : auto ; }
. folder {
padding : 5 px 11 px ; border-radius : 14 px ; font-size : 12 px ; color : var ( - - dim ) ;
background : var ( - - panel2 ) ; cursor : pointer ; white-space : nowrap ; border : 1 px solid transparent ;
}
. folder . active { color : var ( - - fg ) ; border-color : var ( - - accent ) ; background : rgba ( 106 , 178 , 242 , .12 ) ; }
. folder . cnt { color : var ( - - badge ) ; font-weight : 600 ; margin-left : 4 px ; }
. chat-list { flex : 1 ; overflow-y : auto ; padding : 2 px 8 px 12 px ; }
. chat-row { display : flex ; gap : 11 px ; padding : 9 px 10 px ; border-radius : 10 px ; align-items : flex-start ; cursor : pointer ; }
. chat-row : hover { background : var ( - - panel2 ) ; }
. chat-row . active { background : #233040 ; }
. avatar {
width : 42 px ; height : 42 px ; border-radius : 50 % ; flex : 0 0 42 px ; display : grid ; place-items : center ;
font-size : 15 px ; font-weight : 600 ; color : #0F1922 ; background : var ( - - accent ) ;
}
. avatar . g2 { background : #86C99A ; }
. avatar . g3 { background : #C9A886 ; }
/* аватар-картинка: клиент показывает СВОЮ копию файла */
. avatar . pic {
background : url ( "data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 40 40'%3E%3Crect width='40' height='40' fill='%232F4A63'/%3E%3Ccircle cx='20' cy='15' r='6.5' fill='%23DCE6F0'/%3E%3Cpath d='M7 40c0-7.5 5.8-12 13-12s13 4.5 13 12z' fill='%23DCE6F0'/%3E%3C/svg%3E" ) center / cover ;
}
. chat-mid { flex : 1 ; min-width : 0 ; }
. chat-name { font-size : 14 px ; font-weight : 500 ; display : flex ; justify-content : space-between ; gap : 8 px ; }
. chat-time { font-size : 11 px ; color : var ( - - dim ) ; font-weight : 400 ; }
. chat-prev { font-size : 12.5 px ; color : var ( - - dim ) ; white-space : nowrap ; overflow : hidden ; text-overflow : ellipsis ; margin-top : 2 px ; }
. row-tail { flex : 0 0 auto ; }
. badge { background : var ( - - badge ) ; color : #0F1922 ; font-size : 11 px ; font-weight : 700 ; border-radius : 10 px ; padding : 1 px 7 px ; }
/* кнопка «+» рядом с заголовком. Состояние .hidden — при нуле ассистентов */
. ic-btn { width : 32 px ; height : 32 px ; border-radius : 8 px ; border : none ; background : transparent ;
color : var ( - - dim ) ; cursor : pointer ; font-size : 16 px ; }
. ic-btn : hover { background : var ( - - panel2 ) ; color : var ( - - fg ) ; }
. add-btn { font-size : 19 px ; color : var ( - - accent ) ; }
. add-btn . hidden { display : none ; }
/* пустой список */
. empty { padding : 44 px 26 px ; text-align : center ; }
. empty . big { font-size : 34 px ; opacity : .28 ; margin-bottom : 12 px ; }
. empty . ttl { font-size : 14 px ; font-weight : 600 ; margin-bottom : 7 px ; }
. empty . sub { font-size : 12.5 px ; color : var ( - - dim ) ; line-height : 1.55 ; }
. empty . link { color : var ( - - accent ) ; cursor : pointer ; text-decoration : none ; border-bottom : 1 px dashed var ( - - accent ) ; }
. main { flex : 1 ; display : flex ; flex-direction : column ; }
. chat-head { height : 58 px ; flex : 0 0 58 px ; border-bottom : 1 px solid var ( - - line ) ; display : flex ; align-items : center ; gap : 11 px ; padding : 0 16 px ; }
. chat-head . avatar { width : 36 px ; height : 36 px ; flex : 0 0 36 px ; font-size : 13 px ; }
. head-name { font-size : 14.5 px ; font-weight : 600 ; }
. head-sub { font-size : 11.5 px ; color : var ( - - dim ) ; }
. head-sub . dot { color : var ( - - ok ) ; }
. chat-head . ic-btn { margin-left : auto ; }
. messages { flex : 1 ; overflow-y : auto ; padding : 18 px 24 px ; display : flex ; flex-direction : column ; gap : 12 px ; }
. msg { max-width : 74 % ; padding : 9 px 13 px ; border-radius : 13 px ; font-size : 13.5 px ; }
. msg . user { align-self : flex-end ; background : var ( - - user - bubble ) ; border-bottom-right-radius : 4 px ; }
. msg . bot { align-self : flex-start ; background : var ( - - bot - bubble ) ; border-bottom-left-radius : 4 px ; }
/* ============ затемнение и окно ============ */
. scrim { position : absolute ; inset : 0 ; background : rgba ( 0 , 0 , 0 , .62 ) ; z-index : 100 ; display : none ; }
. scrim . on { display : block ; }
. layer { position : absolute ; inset : 0 ; display : none ; align-items : center ; justify-content : center ; z-index : 150 ; pointer-events : none ; }
. layer . on { display : flex ; }
. layer > * { pointer-events : auto ; }
. dialog {
width : 480 px ; min-width : 480 px ; flex : 0 0 auto ; max-height : 600 px ; background : var ( - - panel ) ;
border : 1 px solid var ( - - line ) ; border-radius : 14 px ; display : flex ; flex-direction : column ;
overflow : hidden ; box-shadow : 0 26 px 80 px rgba ( 0 , 0 , 0 , .7 ) ;
}
. d-head { display : flex ; align-items : center ; gap : 11 px ; padding : 16 px 18 px 14 px ; border-bottom : 1 px solid var ( - - line ) ; }
. d-head h2 { font-size : 16 px ; font-weight : 600 ; flex : 1 ; }
. x-btn { width : 30 px ; height : 30 px ; border-radius : 8 px ; border : none ; background : transparent ;
color : var ( - - dim ) ; cursor : pointer ; font-size : 17 px ; }
. x-btn : hover { background : var ( - - panel2 ) ; color : var ( - - fg ) ; }
. d-body { flex : 1 ; overflow-y : auto ; padding : 14 px 18 px 8 px ; }
. d-foot { padding : 13 px 18 px 16 px ; border-top : 1 px solid var ( - - line ) ; display : flex ; gap : 9 px ; }
. d-lead { font-size : 12.5 px ; color : var ( - - dim ) ; margin-bottom : 12 px ; }
/* ── вариант выбора ассистента ── */
. agent-opt {
display : flex ; align-items : center ; gap : 12 px ; padding : 11 px 12 px ; border-radius : 11 px ;
background : var ( - - panel2 ) ; margin-bottom : 9 px ; cursor : pointer ;
border : 1.5 px solid transparent ;
}
. agent-opt : hover { border-color : #33414F ; }
. agent-opt . on { border-color : var ( - - accent ) ; background : rgba ( 106 , 178 , 242 , .10 ) ; }
. agent-opt . avatar { width : 40 px ; height : 40 px ; flex : 0 0 40 px ; font-size : 13 px ; }
. ag-mid { flex : 1 ; min-width : 0 ; }
. ag-name { font-size : 14 px ; font-weight : 550 ; }
. ag-addr { font-size : 11.5 px ; color : var ( - - dim ) ; font-family : ui-monospace , "SF Mono" , Menlo , monospace ;
white-space : nowrap ; overflow : hidden ; text-overflow : ellipsis ; margin-top : 3 px ; }
. ag-state { font-size : 11 px ; display : flex ; align-items : center ; gap : 5 px ; margin-top : 4 px ; }
. ag-state . d { width : 7 px ; height : 7 px ; border-radius : 50 % ; background : var ( - - ok ) ; }
. ag-state . ok { color : var ( - - ok ) ; }
. ag-state . off { color : var ( - - dim ) ; } . ag-state . off . d { background : var ( - - dim ) ; }
. ag-state . err { color : var ( - - err ) ; } . ag-state . err . d { background : var ( - - err ) ; }
/* кружок-галочка выбора */
. pick { width : 20 px ; height : 20 px ; flex : 0 0 20 px ; border-radius : 50 % ; border : 2 px solid #3D4A58 ; }
. agent-opt . on . pick { border-color : var ( - - accent ) ; background : var ( - - accent ) ; position : relative ; }
. agent-opt . on . pick :: after {
content : "" ; position : absolute ; left : 5 px ; top : 1.5 px ; width : 5 px ; height : 9 px ;
border : solid #0F1922 ; border-width : 0 2 px 2 px 0 ; transform : rotate ( 42 deg ) ;
}
/* предупреждение под списком */
. warn {
display : none ; gap : 8 px ; align-items : flex-start ; margin-top : 4 px ; padding : 10 px 12 px ;
border-radius : 10 px ; background : rgba ( 236 , 57 , 66 , .09 ) ; border : 1 px solid rgba ( 236 , 57 , 66 , .32 ) ;
font-size : 12 px ; color : #F0A6AA ;
}
. warn . on { display : flex ; }
. warn . i { flex : 0 0 auto ; }
/* кнопки */
. btn {
padding : 10 px 16 px ; border-radius : 10 px ; border : 1 px solid var ( - - line ) ; background : var ( - - panel2 ) ;
color : var ( - - fg ) ; font-size : 13.5 px ; cursor : pointer ; font-family : inherit ;
}
. btn : hover { border-color : #3D4A58 ; }
. btn . prim { background : var ( - - accent ) ; border-color : var ( - - accent ) ; color : #0F1922 ; font-weight : 600 ; }
. btn . prim : disabled { background : #253544 ; border-color : #253544 ; color : #5C6B7A ; cursor : not-allowed ; }
< / style >
< / head >
< body >
< div class = "switcher" >
< button data-view = "pick" class = "on" > Выбор: 2 ассистента< / button >
< button data-view = "offline" > Третий не отвечает< / button >
< button data-view = "one" > Ассистент один< / button >
< button data-view = "zero" > Ассистентов нет< / button >
< button data-view = "made" > Диалог создан< / button >
< / div >
< div class = "annot" id = "annot" > < / div >
< div class = "window" >
<!-- ================= СПИСОК ДИАЛОГОВ ================= -->
< aside class = "sidebar" >
< div class = "sb-head" >
< div class = "sb-title" >
< span > Диалоги< / span >
< button class = "ic-btn add-btn" id = "newChatBtn" title = "Новый диалог" > + < / button >
< / div >
< / div >
< input class = "search" placeholder = "Поиск диалога…" id = "searchBox" >
< div class = "folders" id = "folders" >
< div class = "folder active" > Все чаты < span class = "cnt" id = "cnt" > 2< / span > < / div >
< div class = "folder" > Работа< / div >
< div class = "folder" > Дом< / div >
< div class = "folder" > + < / div >
< / div >
< div class = "chat-list" id = "chatList" > < / div >
< / aside >
<!-- ================= ЧАТ ================= -->
< main class = "main" id = "mainPane" >
< header class = "chat-head" >
< div class = "avatar" id = "headAv" > АГ< / div >
< div >
< div class = "head-name" id = "headName" > agentik · рабочий< / div >
< div class = "head-sub" > < span class = "dot" > ●< / span > на связи< / div >
< / div >
< button class = "ic-btn" title = "Настройки" > ⚙< / button >
< / header >
< div class = "messages" id = "msgs" >
< div class = "msg user" > Проверь, почему падает CI< / div >
< div class = "msg bot" > Нашёл: длинное тире в именах тестов ломает сборку. Починил, CI зелёный.< / div >
< / div >
< / main >
< div class = "scrim" id = "scrim" > < / div >
<!-- ================= ОКНО: НОВЫЙ ДИАЛОГ ================= -->
< div class = "layer" id = "layerNew" >
< div class = "dialog" >
< div class = "d-head" >
< h2 > Новый диалог< / h2 >
< button class = "x-btn" onclick = "closeDialog()" > ✕< / button >
< / div >
< div class = "d-body" >
< div class = "d-lead" id = "lead" > В каком ассистенте создать диалог?< / div >
< div id = "agentOpts" >
< div class = "agent-opt on" data-id = "a1" data-ok = "1" data-tag = "АГ" >
< div class = "avatar" > АГ< / div >
< div class = "ag-mid" >
< div class = "ag-name" > agentik · рабочий< / div >
< div class = "ag-addr" > http://192.168.88.135:8080/agentik< / div >
< div class = "ag-state ok" > < span class = "d" > < / span > на связи< / div >
< / div >
< div class = "pick" > < / div >
< / div >
< div class = "agent-opt" data-id = "a2" data-ok = "1" data-tag = "ДМ" >
< div class = "avatar g2" > ДМ< / div >
< div class = "ag-mid" >
< div class = "ag-name" > домашний< / div >
< div class = "ag-addr" > http://192.168.76.199:8080/agentik< / div >
< div class = "ag-state ok" > < span class = "d" > < / span > на связи< / div >
< / div >
< div class = "pick" > < / div >
< / div >
< div class = "agent-opt" data-id = "a3" data-ok = "0" data-tag = "КА" data-pic = "1" >
< div class = "avatar pic" > < / div >
< div class = "ag-mid" >
< div class = "ag-name" > Кот-ассистент< / div >
< div class = "ag-addr" > http://192.168.88.24:8080/agentik< / div >
< div class = "ag-state err" > < span class = "d" > < / span > не отвечает< / div >
< / div >
< div class = "pick" > < / div >
< / div >
< / div >
< div class = "warn" id = "warn" >
< span class = "i" > ⚠< / span >
< span id = "warnText" > Ассистент сейчас не отвечает. Диалог создать можно, но
сообщение не уйдёт, пока он не поднимется.< / span >
< / div >
< / div >
< div class = "d-foot" >
< button class = "btn" style = "flex:1" onclick = "closeDialog()" > Отмена< / button >
< button class = "btn prim" style = "flex:1" id = "createBtn" disabled > Создать диалог< / button >
< / div >
< / div >
< / div >
< / div >
< script >
const el = id => document . getElementById ( id ) ;
// ───────── данные состояний ─────────
const AG _ALL = `
<div class="agent-opt on" data-id="a1" data-ok="1">
<div class="avatar">АГ</div>
<div class="ag-mid">
<div class="ag-name">agentik · рабочий</div>
<div class="ag-addr">http://192.168.88.135:8080/agentik</div>
<div class="ag-state ok"><span class="d"></span>на связи</div>
</div>
<div class="pick"></div>
</div>
<div class="agent-opt" data-id="a2" data-ok="1">
<div class="avatar g2">ДМ</div>
<div class="ag-mid">
<div class="ag-name">домашний</div>
<div class="ag-addr">http://192.168.76.199:8080/agentik</div>
<div class="ag-state ok"><span class="d"></span>на связи</div>
</div>
<div class="pick"></div>
</div>
<div class="agent-opt" data-id="a3" data-ok="0">
<div class="avatar pic"></div>
<div class="ag-mid">
<div class="ag-name">Кот-ассистент</div>
<div class="ag-addr">http://192.168.88.24:8080/agentik</div>
<div class="ag-state err"><span class="d"></span>не отвечает</div>
</div>
<div class="pick"></div>
</div> ` ;
const CHATS _TWO = `
<div class="chat-row active">
<div class="avatar">АГ</div>
<div class="chat-mid">
<div class="chat-name"><span>agentik · рабочий</span><span class="chat-time">14:22</span></div>
<div class="chat-prev">Собрал отчёт, жду правок</div>
</div>
<div class="row-tail"><span class="badge">2</span></div>
</div>
<div class="chat-row">
<div class="avatar g2">ДМ</div>
<div class="chat-mid">
<div class="chat-name"><span>домашний</span><span class="chat-time">12:05</span></div>
<div class="chat-prev">Файл лежит на диске</div>
</div>
</div> ` ;
const CHATS _NEW = `
<div class="chat-row active">
<div class="avatar g2">ДМ</div>
<div class="chat-mid">
<div class="chat-name"><span>домашний</span><span class="chat-time">сейчас</span></div>
<div class="chat-prev">Новый диалог</div>
</div>
</div>
<div class="chat-row">
<div class="avatar">АГ</div>
<div class="chat-mid">
<div class="chat-name"><span>agentik · рабочий</span><span class="chat-time">14:22</span></div>
<div class="chat-prev">Собрал отчёт, жду правок</div>
</div>
<div class="row-tail"><span class="badge">2</span></div>
</div> ` ;
const CHATS _EMPTY = `
<div class="empty">
<div class="big">💬</div>
<div class="ttl">Диалогов пока нет</div>
<div class="sub">Ассистенты ещё не добавлены.<br>
Добавьте первого в <a class="link" onclick="alert('Откроется окно настроек — макет 004-settings-agents')">настройках</a>.</div>
</div> ` ;
// ───────── управление окном ─────────
function setAgents ( html ) { el ( 'agentOpts' ) . innerHTML = html ; bindOpts ( ) ; }
function bindOpts ( ) {
document . querySelectorAll ( '.agent-opt' ) . forEach ( o => o . onclick = ( ) => {
document . querySelectorAll ( '.agent-opt' ) . forEach ( x => x . classList . remove ( 'on' ) ) ;
o . classList . add ( 'on' ) ;
el ( 'createBtn' ) . disabled = false ;
el ( 'warn' ) . classList . toggle ( 'on' , o . dataset . ok === '0' ) ;
} ) ;
}
function openDialog ( ) {
el ( 'scrim' ) . classList . add ( 'on' ) ;
el ( 'layerNew' ) . classList . add ( 'on' ) ;
el ( 'createBtn' ) . disabled = false ;
}
function closeDialog ( ) {
el ( 'scrim' ) . classList . remove ( 'on' ) ;
el ( 'layerNew' ) . classList . remove ( 'on' ) ;
}
el ( 'newChatBtn' ) . onclick = openDialog ;
document . querySelectorAll ( '.switcher button' ) . forEach ( b => b . onclick = ( ) => {
document . querySelectorAll ( '.switcher button' ) . forEach ( x => x . classList . remove ( 'on' ) ) ;
b . classList . add ( 'on' ) ;
render ( b . dataset . view ) ;
} ) ;
function render ( v ) {
closeDialog ( ) ;
el ( 'warn' ) . classList . remove ( 'on' ) ;
if ( v === 'pick' ) {
el ( 'annot' ) . innerHTML = ` <span class="tag">выбор</span><b>Ассистентов больше одного</b> — по «+» открывается это окно.
Сверху подсказка, ниже список. Выбран первый по умолчанию — чтобы создать диалог, хватает одного нажатия. ` ;
el ( 'chatList' ) . innerHTML = CHATS _TWO ;
el ( 'folders' ) . style . display = '' ; el ( 'searchBox' ) . style . display = '' ;
el ( 'cnt' ) . textContent = '2' ;
el ( 'newChatBtn' ) . classList . remove ( 'hidden' ) ;
setAgents ( AG _ALL ) ;
el ( 'createBtn' ) . disabled = false ;
openDialog ( ) ;
}
if ( v === 'offline' ) {
el ( 'annot' ) . innerHTML = ` <span class="tag">не отвечает</span><b>Выбран ассистент, который не отвечает.</b>
Выбрать его можно, но окно сразу предупреждает: сообщение не уйдёт, пока он не поднимется.
Отключённых из списка не выкидываем — ассистент мог просто перезапускаться. ` ;
el ( 'chatList' ) . innerHTML = CHATS _TWO ;
el ( 'folders' ) . style . display = '' ; el ( 'searchBox' ) . style . display = '' ;
el ( 'cnt' ) . textContent = '2' ;
el ( 'newChatBtn' ) . classList . remove ( 'hidden' ) ;
setAgents ( AG _ALL ) ;
const off = document . querySelector ( '.agent-opt[data-ok="0"]' ) ;
document . querySelectorAll ( '.agent-opt' ) . forEach ( x => x . classList . remove ( 'on' ) ) ;
off . classList . add ( 'on' ) ;
el ( 'warn' ) . classList . add ( 'on' ) ;
el ( 'createBtn' ) . disabled = false ;
openDialog ( ) ;
}
if ( v === 'one' ) {
el ( 'annot' ) . innerHTML = ` <span class="tag">один</span><b>Ассистент один — окно не показывается.</b>
По «+» диалог создаётся сразу в нём: выбирать не из чего. Это видно по отсутствию затемнения. ` ;
el ( 'chatList' ) . innerHTML = CHATS _TWO ;
el ( 'folders' ) . style . display = '' ; el ( 'searchBox' ) . style . display = '' ;
el ( 'cnt' ) . textContent = '2' ;
el ( 'newChatBtn' ) . classList . remove ( 'hidden' ) ;
}
if ( v === 'zero' ) {
el ( 'annot' ) . innerHTML = ` <span class="tag">ноль</span><b>Ассистентов нет — кнопки «+» нет вообще.</b>
Создавать диалог не в ком. Пустой список объясняет, что делать, и ведёт в настройки. ` ;
el ( 'chatList' ) . innerHTML = CHATS _EMPTY ;
el ( 'folders' ) . style . display = 'none' ; el ( 'searchBox' ) . style . display = 'none' ;
el ( 'newChatBtn' ) . classList . add ( 'hidden' ) ;
}
if ( v === 'made' ) {
el ( 'annot' ) . innerHTML = ` <span class="tag">после выбора</span><b>Диалог создан в выбранном ассистенте.</b>
Новый диалог встал первым в списке, шапка чата показывает его ассистента (цвет и имя),
полей ввода нет — диалог пуст, писать можно сразу. ` ;
el ( 'chatList' ) . innerHTML = CHATS _NEW ;
el ( 'folders' ) . style . display = '' ; el ( 'searchBox' ) . style . display = '' ;
el ( 'cnt' ) . textContent = '2' ;
el ( 'newChatBtn' ) . classList . remove ( 'hidden' ) ;
el ( 'headAv' ) . textContent = 'ДМ' ; el ( 'headAv' ) . className = 'avatar g2' ;
el ( 'headName' ) . textContent = 'домашний' ;
}
}
bindOpts ( ) ;
render ( 'pick' ) ;
< / script >
< / body >
< / html >