diff --git a/frontend/admin.html b/frontend/admin.html index e00a60e..24ee3fb 100644 --- a/frontend/admin.html +++ b/frontend/admin.html @@ -486,7 +486,23 @@ .tst-empty { text-align: center; padding: 20px; color: var(--text-3); font-size: 0.82rem; } .src-toggle { display: flex; gap: 6px; flex-wrap: wrap; margin-bottom: 16px; } /* formula bar */ - .formula-bar { display: flex; gap: 4px; align-items: center; flex-wrap: wrap; padding: 8px 12px; background: #f0f2ff; border-radius: 10px; margin-bottom: 8px; } + /* Formula bar: hidden by default, toggled via #qf-fml-toggle */ + .formula-bar { display: none; gap: 4px; align-items: center; flex-wrap: wrap; padding: 8px 12px; background: #f0f2ff; border-radius: 10px; margin-bottom: 8px; } + .formula-bar.visible { display: flex; } + .fml-toggle { + display: inline-flex; align-items: center; gap: 5px; + padding: 4px 10px; margin-bottom: 6px; + border: 1px solid var(--border); border-radius: 999px; + background: transparent; color: var(--text-3); cursor: pointer; + font-family: 'Manrope', sans-serif; font-size: 0.74rem; font-weight: 700; + transition: all .12s; + } + .fml-toggle:hover { border-color: var(--violet); color: var(--violet); } + .fml-toggle.open { background: #f0f2ff; color: var(--violet); border-color: rgba(155,93,229,.3); } + .fml-toggle .fml-chev { width: 11px; height: 11px; transition: transform .18s; } + .fml-toggle.open .fml-chev { transform: rotate(180deg); } + /* Preview: hidden by default, visible when textarea has content */ + .q-preview-wrap.hidden { display: none; } .fml { padding: 4px 9px; border: 1px solid rgba(155,93,229,0.2); border-radius: 6px; background: #fff; font-family: 'Manrope', sans-serif; font-size: 0.82rem; font-weight: 600; color: var(--violet); cursor: pointer; transition: background 0.15s; } .fml:hover { background: rgba(155,93,229,0.08); } /* preview */ @@ -1624,6 +1640,10 @@ +
Формулы: @@ -1652,9 +1672,9 @@
0 / 500
-
+
diff --git a/frontend/js/admin/admin.js b/frontend/js/admin/admin.js index afffc1a..0480983 100644 --- a/frontend/js/admin/admin.js +++ b/frontend/js/admin/admin.js @@ -364,12 +364,23 @@ function updateQPreview() { clearTimeout(_prevTimer); _prevTimer = setTimeout(() => { - const text = document.getElementById('qf-text').value || 'Введите текст вопроса…'; + const text = (document.getElementById('qf-text').value || '').trim(); const el = document.getElementById('q-preview-text'); + const wrap = document.getElementById('q-preview-wrap'); + // Hide preview entirely when text is empty — saves vertical space in modal + wrap.classList.toggle('hidden', !text); + if (!text) return; el.textContent = text; renderMath(el); }, 150); } + // Formula bar toggle (default collapsed) + window.toggleFormulaBar = function () { + const bar = document.getElementById('formula-bar'); + const btn = document.getElementById('qf-fml-toggle'); + const open = bar.classList.toggle('visible'); + btn.classList.toggle('open', open); + }; // Wire textarea input to preview setTimeout(() => { const ta = document.getElementById('qf-text');