auto-sync: 2026-05-06 01:10:01

This commit is contained in:
Stream
2026-05-06 01:10:01 +03:00
parent a280fd24f0
commit e66256cd29
4 changed files with 117 additions and 6 deletions

View File

@@ -98,6 +98,7 @@ docker restart prototype-enduro-trails-1
| F-15 | "Народные треки" | OSM Traces, Wikiloc, Komoot, 4x4travel | ⏳ Бэклог | 8 |
| F-16 | Тёмная тема + редизайн | Две темы (авто/светлая/тёмная), SunCalc, мобильный UI, drag-and-drop точек, расстояние по маршруту | ✅ Готово | 5 |
| F-17 | PWA + офлайн | Service Worker, MBTiles, GPS-трекинг | ⏳ Бэклог | 7 |
| F-18 | Светлая карта | Создать `style-light.json` — светлый стиль карты для светлой темы. Сейчас при светлой теме карта остаётся тёмной (`style-light.json` отсутствует) | ⏳ Бэклог | 5.1 |
---

View File

@@ -126,7 +126,8 @@ html, body {
#map-controls-r {
position: fixed; right: 12px;
bottom: calc(80px + env(safe-area-inset-bottom, 0px) + 12px);
display: flex; flex-direction: column; gap: 8px; z-index: 200;
display: flex; flex-direction: column; gap: 8px; z-index: 400;
transition: bottom 0.2s ease;
}
.map-btn {
width: 48px; height: 48px;
@@ -629,7 +630,7 @@ body.has-map-mode #sheet-backdrop.visible { pointer-events: none; }
/* ── Mini Route Bar ───────────────────────── */
#sheet-route-mini {
position: fixed;
bottom: 72px; left: 0; right: 56px;
bottom: 72px; left: 0; right: 0;
height: 64px;
background: var(--surface);
border-top: 1px solid var(--border);

View File

@@ -476,10 +476,26 @@ function createWaypointMarkerEl(index, total) {
bg = '#0066ff'; label = String(index);
}
el.innerHTML = `<svg width="28" height="36" viewBox="0 0 28 36" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M14 1C6.82 1 1 6.82 1 14C1 24 14 35 14 35C14 35 27 24 27 14C27 6.82 21.18 1 14 1Z" fill="${bg}" stroke="white" stroke-width="1.5"/>
<text x="14" y="19" text-anchor="middle" font-family="system-ui,-apple-system,sans-serif" font-size="${label.length > 1 ? '9' : '11'}" font-weight="700" fill="white">${label}</text>
</svg>`;
if (label === 'F') {
const uid = Math.random().toString(36).slice(2);
el.innerHTML = `<svg width="28" height="36" viewBox="0 0 28 36" fill="none" xmlns="http://www.w3.org/2000/svg">
<defs>
<pattern id="chk-${uid}" x="0" y="0" width="8" height="8" patternUnits="userSpaceOnUse">
<rect width="4" height="4" fill="black"/>
<rect x="4" y="0" width="4" height="4" fill="white"/>
<rect x="0" y="4" width="4" height="4" fill="white"/>
<rect x="4" y="4" width="4" height="4" fill="black"/>
</pattern>
</defs>
<path d="M14 1C6.82 1 1 6.82 1 14C1 24 14 35 14 35C14 35 27 24 27 14C27 6.82 21.18 1 14 1Z" fill="url(#chk-${uid})" stroke="white" stroke-width="1.5"/>
<text x="14" y="19" text-anchor="middle" font-family="system-ui,-apple-system,sans-serif" font-size="11" font-weight="700" fill="white" stroke="black" stroke-width="0.5">F</text>
</svg>`;
} else {
el.innerHTML = `<svg width="28" height="36" viewBox="0 0 28 36" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M14 1C6.82 1 1 6.82 1 14C1 24 14 35 14 35C14 35 27 24 27 14C27 6.82 21.18 1 14 1Z" fill="${bg}" stroke="white" stroke-width="1.5"/>
<text x="14" y="19" text-anchor="middle" font-family="system-ui,-apple-system,sans-serif" font-size="${label.length > 1 ? '9' : '11'}" font-weight="700" fill="white">${label}</text>
</svg>`;
}
return el;
}
@@ -2126,12 +2142,18 @@ function showMiniRouteSheet() {
if (!routeResults || routeResults.length === 0) return;
updateMiniRouteCard();
document.getElementById('sheet-route-mini').classList.add('visible');
// Поднять кнопки карты над мини-баром (64px высота + 72px bottom + 8px отступ)
const ctrl = document.getElementById('map-controls-r');
if (ctrl) ctrl.style.bottom = '148px';
initMiniRouteInteraction();
}
function hideMiniRouteSheet() {
const el = document.getElementById('sheet-route-mini');
if (el) el.classList.remove('visible');
// Вернуть кнопки на место
const ctrl = document.getElementById('map-controls-r');
if (ctrl) ctrl.style.bottom = '';
}
function updateMiniRouteCard() {