3.3. Дизайн UI/UX
Текущий UI в кодовой базе - это desktop-first authoring workbench с двумя frontend-поверхностями:
-
Qt/QML GUI для основного сценария работы
-
FTXUI TUI для базовых операций без полноценного GUI
Сейчас отдельного design-system документа или Figma-пакета в репозитории нет, поэтому эта страница фиксирует фактические пользовательские сценарии, реализованные в коде.
1. Навигационная модель GUI
В Main.qml реализована четырехсекционная навигация:
-
Blocks- библиотека блоков, поиск, дерево папок, просмотр версий и редактор -
Compositions- список композиций, версии, редактор, normalization и rewrite -
Render- выбор композиции, параметры рантайма, preview raw/rendered/normalized -
Settings- session settings и AI provider configuration
UI защищает от случайной потери данных:
-
при переходе между разделами проверяются dirty-state block editor и composition editor
-
закрытие вкладок block editor и выход из editor workflow проходят через confirm/discard flow
2. Blocks UX
Основной сценарий в BlocksPage.qml и BlockEditorWorkspace:
-
tree-view по namespace-папкам с expand/collapse и reload
-
поиск по
block id, description, template и tags -
просмотр деталей выбранного блока и доступных версий
-
create/edit workflow в tabbed editor, а не в одиночном modal
-
ручное сохранение новой версии с
Minor/Majorbump
AI-assisted сценарии для блоков:
-
Generateсоздает черновик блока из user instruction -
Reviseиспользует текущий блок как основу для новой AI suggestion -
AI никогда не публикует блок автоматически; результат попадает в editor form
3. Compositions UX
Основной сценарий в CompositionsPage.qml и CompositionEditorWindow:
-
список композиций с поиском, reload и context actions
-
просмотр version history, state, revision comment и fragment summary
-
composition editor с drag-and-drop reorder
-
вставка
BlockRef, static text и separators -
clipboard-like actions: cut, paste before/after, insert mode
-
utility actions:
Insert \n,Clean Seps, save новой версии
AI-assisted сценарии для композиций:
-
Normalizeсоздает derived normalized composition с сохранением структуры -
Rewrite Blocksоткрывает preview/apply workflow для block-preserving rewrite -
Update Blocks To Latestпомогает подтянуть block refs к последним версиям -
compare flow показывает diff между текущей и актуальной версией
4. Render UX
RenderPage.qml поддерживает три режима предпросмотра:
-
Raw- composition snapshot без final deterministic render -
Rendered- deterministic render с runtime params -
Normalized- explicit AI-normalized variant поверх rendered text
Доступные пользовательские операции:
-
выбор composition id и версии
-
ввод runtime parameters в формате
key=value -
запуск deterministic render
-
copy/export результата
-
optional normalization по
SemanticStyle
Style-панель expose-ит текущие поля semantic rewrite:
-
tone
-
tense
-
target language
-
person
-
rewrite strength
-
audience
-
locale
-
terminology rigidity
-
preserve formatting
-
preserve examples
5. Settings UX
SettingsPage.qml управляет как runtime-сессией, так и AI integration:
-
projectKey -
dataPath -
strictMode -
default newline delimiter for new compositions
-
preview font size
-
aiBaseUrl -
aiModel -
aiApiKey -
HTTP timeout
Особенности поведения:
-
API key хранится через
QtKeychain, а не в plain-text настройках -
base URL, model и timeout сохраняются в
QSettings -
после изменения AI settings engine пересобирается
6. TUI Coverage
TUI пока покрывает не весь GUI-функционал, но поддерживает базовые workflows:
-
Blocks: browse folders, create/edit block
-
Compositions: browse/create/edit composition
-
Render: deterministic render и copy через OSC52
-
Settings: session parameters
Пробелы относительно GUI:
-
нет полного AI authoring UX parity
-
нет богатого compare/rewrite preview
-
нет visual editor уровня QML composition workspace