diff --git a/.claude/launch.json b/.claude/launch.json index 068cf37..30063b4 100644 --- a/.claude/launch.json +++ b/.claude/launch.json @@ -4,8 +4,9 @@ { "name": "11ty dev server (live reload)", "runtimeExecutable": "npm", - "runtimeArgs": ["run", "dev"], - "port": 8080 + "runtimeArgs": ["run", "dev", "--", "--port=8088"], + "port": 8088, + "autoPort": false }, { "name": "Python HTTP Server (_site)", diff --git a/src/_includes/layouts/base.njk b/src/_includes/layouts/base.njk index 69178c1..1242118 100644 --- a/src/_includes/layouts/base.njk +++ b/src/_includes/layouts/base.njk @@ -4,7 +4,18 @@ {{ title }} + + + diff --git a/src/_includes/partials/header.njk b/src/_includes/partials/header.njk index 129cc53..3cebf08 100644 --- a/src/_includes/partials/header.njk +++ b/src/_includes/partials/header.njk @@ -10,6 +10,10 @@
+
+ + +
+7 (495) 937-94-60 ' + + 'Каталог' + + '' + + 'Bordeaux' + + '' + + 'Chateau Laroque Grand Cru'; + main.insertBefore(nav, detail.parentElement === main ? detail : main.firstChild); + } + + function ensureSplitContactFields() { + var form = document.querySelector('.contact-form'); + if (!form || form.dataset.v2Enhanced === '1') return; + var labels = form.querySelectorAll('label'); + for (var i = 0; i < labels.length; i++) { + if (/Телефон или email/i.test(labels[i].textContent)) { + var comboLabel = labels[i]; + comboLabel.setAttribute('data-v2-hide', '1'); + + var phoneLabel = document.createElement('label'); + phoneLabel.setAttribute('data-v2-only', 'split'); + phoneLabel.innerHTML = 'Телефон'; + + var emailLabel = document.createElement('label'); + emailLabel.setAttribute('data-v2-only', 'split'); + emailLabel.innerHTML = 'Email'; + + comboLabel.parentNode.insertBefore(phoneLabel, comboLabel.nextSibling); + comboLabel.parentNode.insertBefore(emailLabel, phoneLabel.nextSibling); + break; + } + } + form.dataset.v2Enhanced = '1'; + form.addEventListener('submit', function (e) { + if (root.getAttribute('data-design-version') !== 'v2') return; + e.preventDefault(); + if (form.querySelector('.form-success')) return; + var success = document.createElement('div'); + success.className = 'form-success'; + success.setAttribute('data-v2-only', 'success'); + success.textContent = 'Заявка отправлена. Менеджер свяжется с вами в ближайшее время.'; + form.appendChild(success); + var btn = form.querySelector('button[type="submit"]'); + if (btn) { + btn.disabled = true; + btn.textContent = 'Заявка отправлена'; + } + }); + } + + function enhanceDomV2() { + ensureBreadcrumbs(); + ensureSplitContactFields(); + } + + function apply(v) { + root.setAttribute('data-design-version', v); + syncButtons(v); + if (v === 'v2') enhanceDomV2(); + } + + document.addEventListener('click', function (e) { + var btn = e.target.closest && e.target.closest('.design-toggle__btn'); + if (!btn) return; + var v = btn.dataset.version; + if (!v) return; + setVersion(v); + apply(v); + }); + + if (document.readyState === 'loading') { + document.addEventListener('DOMContentLoaded', function () { apply(getVersion()); }); + } else { + apply(getVersion()); + } +})();