From df68cae94bb2b27bafab152fe0ecb296f6c481b0 Mon Sep 17 00:00:00 2001 From: Server <10.9.8.250@reg.snw.su> Date: Mon, 10 Aug 2026 18:44:03 +0000 Subject: [PATCH] Hide desktop refresh control --- README.md | 2 +- docslib/__init__.py | 2 +- docslib/templates/client.css | 2 +- pyproject.toml | 2 +- tests/test_server.py | 3 ++- uv.lock | 2 +- 6 files changed, 7 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index 381a0fd..64b37f2 100644 --- a/README.md +++ b/README.md @@ -15,7 +15,7 @@ SharedDocsLib — небольшой Python-фреймворк для докум UI не содержит языко-зависимых служебных подписей. Базовый шрифт — `system-ui 16px`; служебные UTF-8-пиктограммы используют Arial, а навигационные стрелки остаются в `system-ui`. AMOLED-тема включена по умолчанию и сохраняется локально после переключения. -На десктопе компактный header содержит полное название документации и search/theme/refresh, а слева постоянно видны header-кнопки и дерево страниц. Поисковый placeholder медленно печатает первые слова случайного названия, добавляет троеточие только в конце и сохраняет готовый текст 5 секунд; при вводе поле раскрывает ранжированные результаты вниз. Кнопка `⟳` вращается во время проверки manifest; при наведении она заменяет поиск и тему, показывая ISO-дату и короткий `revision`, а при нажатии запускает повторную фоновую проверку обновления. +На десктопе компактный header содержит полное название документации, поиск и переключатель темы, а слева постоянно видны header-кнопки и дерево страниц. Поисковый placeholder медленно печатает первые слова случайного названия, добавляет троеточие только в конце и сохраняет готовый текст 5 секунд; при вводе поле раскрывает ранжированные результаты вниз. Проверка manifest выполняется автоматически в фоне без отдельной кнопки обновления. На мобильных устройствах используется viewport `100dvh` и нижний dock. Кнопка `☰` заменяет содержимое страницы копией desktop-sidebar. Ввод в нижний поиск заменяет содержимое результатами, расположенными снизу вверх по релевантности. Тема и обновление на мобильном скрыты. diff --git a/docslib/__init__.py b/docslib/__init__.py index d91e53a..ba8cfbe 100644 --- a/docslib/__init__.py +++ b/docslib/__init__.py @@ -5,4 +5,4 @@ from .server import build, create_app, run from .ui import HeaderButton __all__ = ["Component", "HeaderButton", "Page", "build", "create_app", "run"] -__version__ = "0.3.2" +__version__ = "0.3.3" diff --git a/docslib/templates/client.css b/docslib/templates/client.css index 1e5abc2..7791f7e 100644 --- a/docslib/templates/client.css +++ b/docslib/templates/client.css @@ -88,7 +88,7 @@ button { color: inherit; } .theme-button { width: 44px; height: 44px; max-width: 44px; flex: 0 0 44px; border-radius: 50%; color: var(--text); background: var(--control); font-size: 1.3rem; transition: max-width .24s ease, opacity .16s ease, transform .24s ease; } .theme-button:hover { background: var(--active); } -.refresh-button { display: flex; width: 44px; max-width: min(320px, 38vw); height: 44px; flex: 0 0 auto; align-items: center; justify-content: flex-start; gap: 8px; overflow: hidden; padding: 0; border: 0; border-radius: 24px; color: var(--text); background: var(--control); cursor: pointer; transition: width .26s ease, background .16s ease; } +.refresh-button { display: none; width: 44px; max-width: min(320px, 38vw); height: 44px; flex: 0 0 auto; align-items: center; justify-content: flex-start; gap: 8px; overflow: hidden; padding: 0; border: 0; border-radius: 24px; color: var(--text); background: var(--control); cursor: pointer; transition: width .26s ease, background .16s ease; } .refresh-button:hover { background: var(--active); } .refresh-glyph { display: grid; width: 44px; height: 44px; flex: 0 0 44px; place-items: center; font-size: 1.45rem; } .refresh-button.loading .refresh-glyph { animation: refresh-spin .8s linear infinite; } diff --git a/pyproject.toml b/pyproject.toml index 9bd94ec..fe41337 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "hatchling.build" [project] name = "shared-docs-lib" -version = "0.3.2" +version = "0.3.3" description = "Build self-contained, Obsidian-like documentation sites from Python functions." readme = "README.md" requires-python = ">=3.10" diff --git a/tests/test_server.py b/tests/test_server.py index c78ea5b..63f00d6 100644 --- a/tests/test_server.py +++ b/tests/test_server.py @@ -142,6 +142,7 @@ def test_all_endpoints_and_self_contained_build(tmp_path): assert ".sidebar-header-buttons .header-link.active { color: #050505; background: #f0f0f0; }" not in html assert "--tree-line: #2c2c2c" in html assert "height: 44px" in html + assert ".refresh-button { display: none;" in html assert "refresh-expanded" in html assert "mobile-search-open" in html assert "flex-direction: column-reverse" in html @@ -164,7 +165,7 @@ def test_all_endpoints_and_self_contained_build(tmp_path): def test_build_writes_static_bundle(tmp_path): - assert __version__ == "0.3.2" + assert __version__ == "0.3.3" @Page("1", "Static page") def static_page(): diff --git a/uv.lock b/uv.lock index acc49dd..e00fdb0 100644 --- a/uv.lock +++ b/uv.lock @@ -452,7 +452,7 @@ wheels = [ [[package]] name = "shared-docs-lib" -version = "0.3.2" +version = "0.3.3" source = { editable = "." } dependencies = [ { name = "fastapi" },