diff --git a/.github/astro.instructions.md b/.github/astro.instructions.md index 90aa05e77..2da9248b4 100644 --- a/.github/astro.instructions.md +++ b/.github/astro.instructions.md @@ -338,11 +338,11 @@ Sidebar topics are defined in `config/sidebar/` as separate modules and aggregat ## Cookie Consent -The site uses `@jop-software/astro-cookieconsent` with a box modal at bottom-right. The consent modal has three buttons: **"Accept all"**, **"Reject all"**, and **"Manage preferences"**. This is relevant when automating browser interactions — always dismiss the cookie modal first. +The site uses Microsoft's **WCP** consent runtime (`wcp-consent.js`, loaded live from `wcpstatic.microsoft.com`), wired up in `src/components/starlight/Head.astro` and fully restyled by `src/styles/wcp-consent.css`. The banner is **geo-gated**: the CDN decides per region whether it appears, so where consent is not required (e.g. the US) **no banner shows** and the "Manage cookies" buttons are hidden (`html[data-consent-not-required]`). When it does appear (e.g. the EU) it is a **fixed strip at the top of the viewport** — not a bottom-right box — with **"Accept"**, **"Reject"**, and **"More info"** actions; "More info" opens a preferences dialog with per-category toggles and "Save changes" / "Reset all". Consent is persisted in the `MSCC` cookie. Because it is geo-gated, you usually will not see it in local/US automation — if it does appear, dismiss it first. ## Screenshots and Visual Verification with playwright-cli -When making visual changes or preparing PR screenshots, use the `playwright-cli` skill to automate browser interaction. This site has a cookie consent modal that appears on first visit and **must be dismissed before taking screenshots**. +When making visual changes or preparing PR screenshots, use the `playwright-cli` skill to automate browser interaction. This site _may_ show a WCP cookie banner on first visit, but it is **geo-gated** and usually absent in local/US runs — when it does appear (a fixed strip at the top of the viewport) **dismiss it before taking screenshots**. ### Workflow for Taking Screenshots @@ -352,10 +352,11 @@ When making visual changes or preparing PR screenshots, use the `playwright-cli` playwright-cli open http://localhost:4321 playwright-cli goto http://localhost:4321/path/to/page/ ``` -3. **Dismiss the cookie consent modal first** — click the "Reject all" button: +3. **Dismiss the cookie banner if one appears** — click the "Reject" button (often a + no-op locally, since the banner is geo-gated and typically does not render): ```bash playwright-cli snapshot - # Find the ref for the "Reject all" button in the snapshot + # If a banner is present, find the "Reject" ref in the snapshot and click it playwright-cli click ``` 4. Take the screenshot: @@ -370,7 +371,7 @@ When making visual changes or preparing PR screenshots, use the `playwright-cli` playwright-cli screenshot --filename=mobile.png ``` -Always dismiss the cookie modal before any screenshot or visual verification. The "Reject all" button avoids setting unnecessary cookies during development. +If a banner is present, dismiss it before any screenshot or visual verification. The "Reject" button avoids setting unnecessary cookies during development; in local/US runs no banner appears, so this step is usually unnecessary. ## Accessibility and Inclusive Writing diff --git a/.github/workflows/frontend-build.yml b/.github/workflows/frontend-build.yml index 9897e24ef..fa26c56c0 100644 --- a/.github/workflows/frontend-build.yml +++ b/.github/workflows/frontend-build.yml @@ -88,12 +88,6 @@ jobs: env: MODE: production ASTRO_TELEMETRY_DISABLED: 1 - # The built artifact is consumed by `astro preview` during the - # e2e shards. `config/cookie.config.ts` reads `E2E_TESTS` at - # build time to disable the cookie-consent bot check; without - # this, the preview serves a production-configured modal that - # playwright is mistaken for a bot and never opens. - E2E_TESTS: 1 run: pnpm build:production # Upload before the dist sanity-check so the artifact is always diff --git a/src/frontend/astro.config.mjs b/src/frontend/astro.config.mjs index 21a61b541..c47d03ed5 100644 --- a/src/frontend/astro.config.mjs +++ b/src/frontend/astro.config.mjs @@ -4,7 +4,6 @@ import { unified } from '@astrojs/markdown-remark'; import { sidebarTopics } from './config/sidebar/sidebar.topics.ts'; import { redirects } from './config/redirects.mjs'; import { iconPacks } from './config/icon-packs.mjs'; -import { cookieConfig } from './config/cookie.config'; import { locales } from './config/locales.ts'; import { headAttrs } from './config/head.attrs.ts'; import { socialConfig } from './config/socials.config.ts'; @@ -20,7 +19,6 @@ import starlightLlmsTxt from 'starlight-llms-txt'; import starlightScrollToTop from 'starlight-scroll-to-top'; import starlightSidebarTopics from 'starlight-sidebar-topics'; import starlightPageActions from 'starlight-page-actions'; -import jopSoftwarecookieconsent from '@jop-software/astro-cookieconsent'; import buildTiming from './config/build-timing.mjs'; import UnoCSS from 'unocss/astro'; import Icons from 'starlight-plugin-icons'; @@ -229,7 +227,6 @@ export default defineConfig({ optimize: true, gfm: true, }), - jopSoftwarecookieconsent(cookieConfig), ...(isBuildTimingEnabled ? [buildTiming()] : []), ], build: { diff --git a/src/frontend/config/cookie.config.ts b/src/frontend/config/cookie.config.ts deleted file mode 100644 index 0255f6d13..000000000 --- a/src/frontend/config/cookie.config.ts +++ /dev/null @@ -1,671 +0,0 @@ -import type { CookieConsentConfig } from '@jop-software/astro-cookieconsent'; - -export const cookieConfig: CookieConsentConfig = { - hideFromBots: false, - guiOptions: { - consentModal: { - layout: 'box', - position: 'bottom right', - equalWeightButtons: false, - }, - preferencesModal: { - layout: 'bar wide', - position: 'right', - equalWeightButtons: false, - }, - }, - categories: { - necessary: { - enabled: true, - readOnly: true, - }, - analytics: { - enabled: true, - readOnly: false, - }, - advertising: { - enabled: true, - readOnly: false, - }, - }, - language: { - default: 'en', - autoDetect: 'document', - translations: { - en: { - consentModal: { - title: 'This site uses cookies', - description: - 'We use cookies to enhance your browsing experience, analyze site traffic, and improve our services. By clicking "Accept all," you consent to our use of cookies.', - acceptAllBtn: 'Accept all', - acceptNecessaryBtn: 'Reject all', - showPreferencesBtn: 'Manage preferences', - footer: 'Privacy & Cookies', - }, - preferencesModal: { - title: 'Cookie preferences', - acceptAllBtn: 'Accept all', - acceptNecessaryBtn: 'Reject all', - savePreferencesBtn: 'Save preferences', - closeIconLabel: 'Close', - sections: [ - { - title: 'Cookie usage', - description: - 'We use cookies to provide essential website functionality and improve your experience.', - }, - { - title: 'Strictly necessary Always Enabled', - description: - 'Required for the website to function properly. These cannot be disabled.', - //this field will generate a toggle linked to the 'necessary' category - linkedCategory: 'necessary', - }, - { - title: 'Analytics', - description: - 'Help us understand how visitors interact with our website. All data is anonymized.', - linkedCategory: 'analytics', - }, - { - title: 'More information', - description: - 'For questions about our cookie policy, please contact us.', - }, - ], - }, - }, - de: { - consentModal: { - title: 'Diese Website verwendet Cookies', - description: - 'Wir verwenden Cookies, um Ihr Browsing-Erlebnis zu verbessern, den Website-Traffic zu analysieren und unsere Dienste zu verbessern. Indem Sie auf "Alle akzeptieren" klicken, stimmen Sie unserer Verwendung von Cookies zu.', - acceptAllBtn: 'Alle akzeptieren', - acceptNecessaryBtn: 'Alle ablehnen', - showPreferencesBtn: 'Einstellungen verwalten', - footer: - 'Datenschutz & Cookies', - }, - preferencesModal: { - title: 'Cookie-Einstellungen', - acceptAllBtn: 'Alle akzeptieren', - acceptNecessaryBtn: 'Alle ablehnen', - savePreferencesBtn: 'Einstellungen speichern', - closeIconLabel: 'Schließen', - sections: [ - { - title: 'Cookie-Verwendung', - description: - 'Wir verwenden Cookies, um wesentliche Website-Funktionen bereitzustellen und Ihre Erfahrung zu verbessern.', - }, - { - title: 'Unbedingt erforderlich Immer aktiviert', - description: - 'Erforderlich, damit die Website ordnungsgemäß funktioniert. Diese können nicht deaktiviert werden.', - linkedCategory: 'necessary', - }, - { - title: 'Analyse', - description: - 'Helfen Sie uns zu verstehen, wie Besucher mit unserer Website interagieren. Alle Daten werden anonymisiert.', - linkedCategory: 'analytics', - }, - { - title: 'Weitere Informationen', - description: - 'Bei Fragen zu unserer Cookie-Richtlinie kontaktieren Sie uns bitte.', - }, - ], - }, - }, - es: { - consentModal: { - title: 'Este sitio utiliza cookies', - description: - 'Utilizamos cookies para mejorar su experiencia de navegación, analizar el tráfico del sitio y mejorar nuestros servicios. Al hacer clic en "Aceptar todo", acepta nuestro uso de cookies.', - acceptAllBtn: 'Aceptar todo', - acceptNecessaryBtn: 'Rechazar todo', - showPreferencesBtn: 'Administrar preferencias', - footer: - 'Privacidad y cookies', - }, - preferencesModal: { - title: 'Preferencias de cookies', - acceptAllBtn: 'Aceptar todo', - acceptNecessaryBtn: 'Rechazar todo', - savePreferencesBtn: 'Guardar preferencias', - closeIconLabel: 'Cerrar', - sections: [ - { - title: 'Uso de cookies', - description: - 'Utilizamos cookies para proporcionar funcionalidad esencial del sitio web y mejorar su experiencia.', - }, - { - title: 'Estrictamente necesarias Siempre habilitado', - description: - 'Necesarias para que el sitio web funcione correctamente. No se pueden desactivar.', - linkedCategory: 'necessary', - }, - { - title: 'Analíticas', - description: - 'Nos ayudan a entender cómo los visitantes interactúan con nuestro sitio web. Todos los datos son anónimos.', - linkedCategory: 'analytics', - }, - { - title: 'Más información', - description: - 'Para preguntas sobre nuestra política de cookies, por favor contáctenos.', - }, - ], - }, - }, - ja: { - consentModal: { - title: 'このサイトはクッキーを使用しています', - description: - 'ブラウジング体験を向上させ、サイトのトラフィックを分析し、サービスを改善するためにクッキーを使用しています。「すべて受け入れる」をクリックすると、クッキーの使用に同意したことになります。', - acceptAllBtn: 'すべて受け入れる', - acceptNecessaryBtn: 'すべて拒否', - showPreferencesBtn: '設定を管理', - footer: - 'プライバシーとクッキー', - }, - preferencesModal: { - title: 'クッキーの設定', - acceptAllBtn: 'すべて受け入れる', - acceptNecessaryBtn: 'すべて拒否', - savePreferencesBtn: '設定を保存', - closeIconLabel: '閉じる', - sections: [ - { - title: 'クッキーの使用', - description: - 'ウェブサイトの基本的な機能を提供し、ユーザー体験を向上させるためにクッキーを使用しています。', - }, - { - title: '必須 常に有効', - description: - 'ウェブサイトが正常に機能するために必要です。無効にすることはできません。', - linkedCategory: 'necessary', - }, - { - title: '分析', - description: - '訪問者がウェブサイトとどのようにやり取りしているかを理解するのに役立ちます。すべてのデータは匿名化されています。', - linkedCategory: 'analytics', - }, - { - title: '詳細情報', - description: - 'クッキーポリシーに関するご質問は、お問い合わせください。', - }, - ], - }, - }, - fr: { - consentModal: { - title: 'Ce site utilise des cookies', - description: - 'Nous utilisons des cookies pour améliorer votre expérience de navigation, analyser le trafic du site et améliorer nos services. En cliquant sur "Tout accepter", vous consentez à notre utilisation de cookies.', - acceptAllBtn: 'Tout accepter', - acceptNecessaryBtn: 'Tout rejeter', - showPreferencesBtn: 'Gérer les préférences', - footer: - 'Confidentialité et cookies', - }, - preferencesModal: { - title: 'Préférences des cookies', - acceptAllBtn: 'Tout accepter', - acceptNecessaryBtn: 'Tout rejeter', - savePreferencesBtn: 'Enregistrer les préférences', - closeIconLabel: 'Fermer', - sections: [ - { - title: 'Utilisation des cookies', - description: - 'Nous utilisons des cookies pour fournir des fonctionnalités essentielles du site web et améliorer votre expérience.', - }, - { - title: 'Strictement nécessaires Toujours activé', - description: - 'Nécessaires au bon fonctionnement du site web. Ils ne peuvent pas être désactivés.', - linkedCategory: 'necessary', - }, - { - title: 'Analytiques', - description: - 'Nous aident à comprendre comment les visiteurs interagissent avec notre site web. Toutes les données sont anonymisées.', - linkedCategory: 'analytics', - }, - { - title: "Plus d'informations", - description: - 'Pour toute question concernant notre politique en matière de cookies, veuillez nous contacter.', - }, - ], - }, - }, - it: { - consentModal: { - title: 'Questo sito utilizza i cookie', - description: - 'Utilizziamo i cookie per migliorare la tua esperienza di navigazione, analizzare il traffico del sito e migliorare i nostri servizi. Cliccando su "Accetta tutto", acconsenti al nostro utilizzo dei cookie.', - acceptAllBtn: 'Accetta tutto', - acceptNecessaryBtn: 'Rifiuta tutto', - showPreferencesBtn: 'Gestisci preferenze', - footer: 'Privacy e cookie', - }, - preferencesModal: { - title: 'Preferenze dei cookie', - acceptAllBtn: 'Accetta tutto', - acceptNecessaryBtn: 'Rifiuta tutto', - savePreferencesBtn: 'Salva preferenze', - closeIconLabel: 'Chiudi', - sections: [ - { - title: 'Utilizzo dei cookie', - description: - 'Utilizziamo i cookie per fornire funzionalità essenziali del sito web e migliorare la tua esperienza.', - }, - { - title: 'Strettamente necessari Sempre abilitato', - description: - 'Necessari per il corretto funzionamento del sito web. Non possono essere disabilitati.', - linkedCategory: 'necessary', - }, - { - title: 'Analitici', - description: - 'Ci aiutano a capire come i visitatori interagiscono con il nostro sito web. Tutti i dati sono anonimizzati.', - linkedCategory: 'analytics', - }, - { - title: 'Ulteriori informazioni', - description: - 'Per domande sulla nostra politica sui cookie, contattaci.', - }, - ], - }, - }, - id: { - consentModal: { - title: 'Situs ini menggunakan cookie', - description: - 'Kami menggunakan cookie untuk meningkatkan pengalaman browsing Anda, menganalisis lalu lintas situs, dan meningkatkan layanan kami. Dengan mengklik "Terima semua", Anda menyetujui penggunaan cookie kami.', - acceptAllBtn: 'Terima semua', - acceptNecessaryBtn: 'Tolak semua', - showPreferencesBtn: 'Kelola preferensi', - footer: 'Privasi & Cookie', - }, - preferencesModal: { - title: 'Preferensi cookie', - acceptAllBtn: 'Terima semua', - acceptNecessaryBtn: 'Tolak semua', - savePreferencesBtn: 'Simpan preferensi', - closeIconLabel: 'Tutup', - sections: [ - { - title: 'Penggunaan cookie', - description: - 'Kami menggunakan cookie untuk menyediakan fungsi penting situs web dan meningkatkan pengalaman Anda.', - }, - { - title: 'Sangat diperlukan Selalu Diaktifkan', - description: - 'Diperlukan agar situs web berfungsi dengan baik. Ini tidak dapat dinonaktifkan.', - linkedCategory: 'necessary', - }, - { - title: 'Analitik', - description: - 'Membantu kami memahami bagaimana pengunjung berinteraksi dengan situs web kami. Semua data dianonimkan.', - linkedCategory: 'analytics', - }, - { - title: 'Informasi lebih lanjut', - description: - 'Untuk pertanyaan tentang kebijakan cookie kami, silakan hubungi kami.', - }, - ], - }, - }, - 'zh-cn': { - consentModal: { - title: '本网站使用Cookie', - description: - '我们使用Cookie来改善您的浏览体验,分析网站流量并改进我们的服务。点击"全部接受"即表示您同意我们使用Cookie。', - acceptAllBtn: '全部接受', - acceptNecessaryBtn: '全部拒绝', - showPreferencesBtn: '管理偏好设置', - footer: '隐私和Cookie', - }, - preferencesModal: { - title: 'Cookie偏好设置', - acceptAllBtn: '全部接受', - acceptNecessaryBtn: '全部拒绝', - savePreferencesBtn: '保存偏好设置', - closeIconLabel: '关闭', - sections: [ - { - title: 'Cookie使用', - description: '我们使用Cookie来提供基本的网站功能并改善您的体验。', - }, - { - title: '严格必要 始终启用', - description: '网站正常运行所必需的。这些无法禁用。', - linkedCategory: 'necessary', - }, - { - title: '分析', - description: '帮助我们了解访问者如何与我们的网站互动。所有数据都已匿名化。', - linkedCategory: 'analytics', - }, - { - title: '更多信息', - description: - '有关我们Cookie政策的问题,请联系我们。', - }, - ], - }, - }, - 'pt-br': { - consentModal: { - title: 'Este site usa cookies', - description: - 'Usamos cookies para melhorar sua experiência de navegação, analisar o tráfego do site e melhorar nossos serviços. Ao clicar em "Aceitar tudo", você consente com nosso uso de cookies.', - acceptAllBtn: 'Aceitar tudo', - acceptNecessaryBtn: 'Rejeitar tudo', - showPreferencesBtn: 'Gerenciar preferências', - footer: - 'Privacidade e Cookies', - }, - preferencesModal: { - title: 'Preferências de cookies', - acceptAllBtn: 'Aceitar tudo', - acceptNecessaryBtn: 'Rejeitar tudo', - savePreferencesBtn: 'Salvar preferências', - closeIconLabel: 'Fechar', - sections: [ - { - title: 'Uso de cookies', - description: - 'Usamos cookies para fornecer funcionalidade essencial do site e melhorar sua experiência.', - }, - { - title: 'Estritamente necessários Sempre ativado', - description: - 'Necessários para que o site funcione corretamente. Estes não podem ser desativados.', - linkedCategory: 'necessary', - }, - { - title: 'Análise', - description: - 'Nos ajudam a entender como os visitantes interagem com nosso site. Todos os dados são anonimizados.', - linkedCategory: 'analytics', - }, - { - title: 'Mais informações', - description: - 'Para dúvidas sobre nossa política de cookies, por favor entre em contato.', - }, - ], - }, - }, - - ko: { - consentModal: { - title: '이 사이트는 쿠키를 사용합니다', - description: - '브라우징 경험을 향상시키고 사이트 트래픽을 분석하며 서비스를 개선하기 위해 쿠키를 사용합니다. "모두 수락"을 클릭하면 쿠키 사용에 동의하는 것입니다.', - acceptAllBtn: '모두 수락', - acceptNecessaryBtn: '모두 거부', - showPreferencesBtn: '기본 설정 관리', - footer: '개인정보 및 쿠키', - }, - preferencesModal: { - title: '쿠키 기본 설정', - acceptAllBtn: '모두 수락', - acceptNecessaryBtn: '모두 거부', - savePreferencesBtn: '기본 설정 저장', - closeIconLabel: '닫기', - sections: [ - { - title: '쿠키 사용', - description: - '필수 웹사이트 기능을 제공하고 사용자 경험을 개선하기 위해 쿠키를 사용합니다.', - }, - { - title: '필수 항상 활성화됨', - description: '웹사이트가 제대로 작동하는 데 필요합니다. 비활성화할 수 없습니다.', - linkedCategory: 'necessary', - }, - { - title: '분석', - description: - '방문자가 웹사이트와 상호 작용하는 방식을 이해하는 데 도움이 됩니다. 모든 데이터는 익명화됩니다.', - linkedCategory: 'analytics', - }, - { - title: '추가 정보', - description: - '쿠키 정책에 대한 질문은 문의하십시오.', - }, - ], - }, - }, - tr: { - consentModal: { - title: 'Bu site çerez kullanıyor', - description: - 'Gezinme deneyiminizi geliştirmek, site trafiğini analiz etmek ve hizmetlerimizi iyileştirmek için çerezler kullanıyoruz. "Tümünü kabul et"i tıklayarak çerez kullanımımızı onaylamış olursunuz.', - acceptAllBtn: 'Tümünü kabul et', - acceptNecessaryBtn: 'Tümünü reddet', - showPreferencesBtn: 'Tercihleri yönet', - footer: - 'Gizlilik ve Tanımlama Bilgileri', - }, - preferencesModal: { - title: 'Çerez tercihleri', - acceptAllBtn: 'Tümünü kabul et', - acceptNecessaryBtn: 'Tümünü reddet', - savePreferencesBtn: 'Tercihleri kaydet', - closeIconLabel: 'Kapat', - sections: [ - { - title: 'Çerez kullanımı', - description: - 'Temel web sitesi işlevselliği sağlamak ve deneyiminizi geliştirmek için çerezler kullanıyoruz.', - }, - { - title: 'Kesinlikle gerekli Her Zaman Etkin', - description: - 'Web sitesinin düzgün çalışması için gereklidir. Bunlar devre dışı bırakılamaz.', - linkedCategory: 'necessary', - }, - { - title: 'Analitik', - description: - 'Ziyaretçilerin web sitemizle nasıl etkileşime girdiğini anlamamıza yardımcı olur. Tüm veriler anonimleştirilir.', - linkedCategory: 'analytics', - }, - { - title: 'Daha fazla bilgi', - description: - 'Çerez politikamız hakkında sorularınız için lütfen bizimle iletişime geçin.', - }, - ], - }, - }, - ru: { - consentModal: { - title: 'Этот сайт использует файлы cookie', - description: - 'Мы используем файлы cookie для улучшения вашего опыта просмотра, анализа трафика сайта и улучшения наших услуг. Нажимая "Принять все", вы соглашаетесь на использование нами файлов cookie.', - acceptAllBtn: 'Принять все', - acceptNecessaryBtn: 'Отклонить все', - showPreferencesBtn: 'Управление настройками', - footer: - 'Конфиденциальность и файлы cookie', - }, - preferencesModal: { - title: 'Настройки файлов cookie', - acceptAllBtn: 'Принять все', - acceptNecessaryBtn: 'Отклонить все', - savePreferencesBtn: 'Сохранить настройки', - closeIconLabel: 'Закрыть', - sections: [ - { - title: 'Использование файлов cookie', - description: - 'Мы используем файлы cookie для обеспечения основных функций веб-сайта и улучшения вашего опыта.', - }, - { - title: 'Строго необходимые Всегда включено', - description: 'Необходимы для правильной работы веб-сайта. Их нельзя отключить.', - linkedCategory: 'necessary', - }, - { - title: 'Аналитика', - description: - 'Помогают нам понять, как посетители взаимодействуют с нашим веб-сайтом. Все данные анонимизированы.', - linkedCategory: 'analytics', - }, - { - title: 'Дополнительная информация', - description: - 'По вопросам о нашей политике в отношении файлов cookie, пожалуйста, свяжитесь с нами.', - }, - ], - }, - }, - hi: { - consentModal: { - title: 'यह साइट कुकीज़ का उपयोग करती है', - description: - 'हम आपके ब्राउज़िंग अनुभव को बेहतर बनाने, साइट ट्रैफ़िक का विश्लेषण करने और अपनी सेवाओं को बेहतर बनाने के लिए कुकीज़ का उपयोग करते हैं। "सभी स्वीकार करें" पर क्लिक करके, आप हमारे कुकीज़ के उपयोग के लिए सहमति देते हैं।', - acceptAllBtn: 'सभी स्वीकार करें', - acceptNecessaryBtn: 'सभी अस्वीकार करें', - showPreferencesBtn: 'प्राथमिकताएँ प्रबंधित करें', - footer: 'गोपनीयता और कुकीज़', - }, - preferencesModal: { - title: 'कुकी प्राथमिकताएँ', - acceptAllBtn: 'सभी स्वीकार करें', - acceptNecessaryBtn: 'सभी अस्वीकार करें', - savePreferencesBtn: 'प्राथमिकताएँ सहेजें', - closeIconLabel: 'बंद करें', - sections: [ - { - title: 'कुकी उपयोग', - description: - 'हम आवश्यक वेबसाइट कार्यक्षमता प्रदान करने और आपके अनुभव को बेहतर बनाने के लिए कुकीज़ का उपयोग करते हैं।', - }, - { - title: 'सख्ती से आवश्यक हमेशा सक्षम', - description: - 'वेबसाइट के ठीक से काम करने के लिए आवश्यक। इन्हें अक्षम नहीं किया जा सकता।', - linkedCategory: 'necessary', - }, - { - title: 'विश्लेषण', - description: - 'आगंतुकों के हमारी वेबसाइट के साथ कैसे इंटरैक्ट करते हैं, यह समझने में हमारी मदद करें। सभी डेटा गुमनाम है।', - linkedCategory: 'analytics', - }, - { - title: 'अधिक जानकारी', - description: - 'हमारी कुकी नीति के बारे में प्रश्नों के लिए, कृपया हमसे संपर्क करें।', - }, - ], - }, - }, - da: { - consentModal: { - title: 'Dette site bruger cookies', - description: - 'Vi bruger cookies til at forbedre din browseroplevelse, analysere webstedstrafik og forbedre vores tjenester. Ved at klikke på "Acceptér alle" giver du samtykke til vores brug af cookies.', - acceptAllBtn: 'Acceptér alle', - acceptNecessaryBtn: 'Afvis alle', - showPreferencesBtn: 'Administrer præferencer', - footer: - 'Beskyttelse af personlige oplysninger og cookies', - }, - preferencesModal: { - title: 'Cookie-præferencer', - acceptAllBtn: 'Acceptér alle', - acceptNecessaryBtn: 'Afvis alle', - savePreferencesBtn: 'Gem præferencer', - closeIconLabel: 'Luk', - sections: [ - { - title: 'Cookie-brug', - description: - 'Vi bruger cookies til at levere essentiel webstedsfunktionalitet og forbedre din oplevelse.', - }, - { - title: 'Strengt nødvendige Altid aktiveret', - description: 'Krævet for at webstedet fungerer korrekt. Disse kan ikke deaktiveres.', - linkedCategory: 'necessary', - }, - { - title: 'Analyse', - description: - 'Hjælper os med at forstå, hvordan besøgende interagerer med vores websted. Alle data er anonymiserede.', - linkedCategory: 'analytics', - }, - { - title: 'Mere information', - description: - 'For spørgsmål om vores cookie-politik, bedes du kontakte os.', - }, - ], - }, - }, - uk: { - consentModal: { - title: 'Цей сайт використовує файли cookie', - description: - 'Ми використовуємо файли cookie для покращення вашого досвіду перегляду, аналізу трафіку сайту та покращення наших послуг. Натискаючи "Прийняти все", ви погоджуєтесь на використання нами файлів cookie.', - acceptAllBtn: 'Прийняти все', - acceptNecessaryBtn: 'Відхилити все', - showPreferencesBtn: 'Керувати налаштуваннями', - footer: - 'Конфіденційність і файли cookie', - }, - preferencesModal: { - title: 'Налаштування файлів cookie', - acceptAllBtn: 'Прийняти все', - acceptNecessaryBtn: 'Відхилити все', - savePreferencesBtn: 'Зберегти налаштування', - closeIconLabel: 'Закрити', - sections: [ - { - title: 'Використання файлів cookie', - description: - 'Ми використовуємо файли cookie для забезпечення основних функцій веб-сайту та покращення вашого досвіду.', - }, - { - title: 'Суворо необхідні Завжди ввімкнено', - description: 'Необхідні для правильної роботи веб-сайту. Їх не можна вимкнути.', - linkedCategory: 'necessary', - }, - { - title: 'Аналітика', - description: - 'Допомагають нам зрозуміти, як відвідувачі взаємодіють з нашим веб-сайтом. Усі дані анонімізовані.', - linkedCategory: 'analytics', - }, - { - title: 'Додаткова інформація', - description: - 'З питань про нашу політику щодо файлів cookie, будь ласка, зв\'яжіться з нами.', - }, - ], - }, - }, - }, - }, -}; diff --git a/src/frontend/package.json b/src/frontend/package.json index cf49a837e..be704a0a2 100644 --- a/src/frontend/package.json +++ b/src/frontend/package.json @@ -70,7 +70,6 @@ "@fontsource-variable/outfit": "^5.3.0", "@fontsource-variable/rubik": "^5.3.0", "@fontsource/poppins": "^5.3.0", - "@jop-software/astro-cookieconsent": "^3.0.1", "@lunariajs/core": "^0.1.1", "@lunariajs/starlight": "^0.1.1", "asciinema-player": "^3.17.0", @@ -94,8 +93,7 @@ "starlight-page-actions": "^0.7.0", "starlight-plugin-icons": "^1.1.6", "starlight-scroll-to-top": "^1.0.1", - "starlight-sidebar-topics": "^0.8.0", - "vanilla-cookieconsent": "^3.1.0" + "starlight-sidebar-topics": "^0.8.0" }, "devDependencies": { "@axe-core/playwright": "^4.12.1", diff --git a/src/frontend/playwright.api-markdown.config.mjs b/src/frontend/playwright.api-markdown.config.mjs index ebedc7077..427a8006b 100644 --- a/src/frontend/playwright.api-markdown.config.mjs +++ b/src/frontend/playwright.api-markdown.config.mjs @@ -14,7 +14,6 @@ export default defineConfig({ env: { ...process.env, ASTRO_TELEMETRY_DISABLED: '1', - E2E_TESTS: '1', }, url: 'http://127.0.0.1:4322', reuseExistingServer: false, diff --git a/src/frontend/playwright.config.mjs b/src/frontend/playwright.config.mjs index b467dc967..f0d57d03f 100644 --- a/src/frontend/playwright.config.mjs +++ b/src/frontend/playwright.config.mjs @@ -74,7 +74,6 @@ export default defineConfig({ env: { ...process.env, ASTRO_TELEMETRY_DISABLED: '1', - E2E_TESTS: '1', }, url: e2eBaseUrl, reuseExistingServer: false, diff --git a/src/frontend/pnpm-lock.yaml b/src/frontend/pnpm-lock.yaml index 8cd23dd0d..07d9de895 100644 --- a/src/frontend/pnpm-lock.yaml +++ b/src/frontend/pnpm-lock.yaml @@ -72,9 +72,6 @@ importers: '@fontsource/poppins': specifier: ^5.3.0 version: 5.3.0 - '@jop-software/astro-cookieconsent': - specifier: ^3.0.1 - version: 3.0.1(vanilla-cookieconsent@3.1.0) '@lunariajs/core': specifier: ^0.1.1 version: 0.1.1 @@ -147,9 +144,6 @@ importers: starlight-sidebar-topics: specifier: ^0.8.0 version: 0.8.0(@astrojs/starlight@0.41.3(@astrojs/markdown-remark@7.2.1)(astro@7.1.3(@astrojs/markdown-remark@7.2.1)(@emnapi/core@1.11.1)(@emnapi/runtime@1.11.1)(@types/node@24.13.3)(jiti@2.7.0)(tsx@4.23.1)(yaml@2.9.0))(typescript@6.0.3)) - vanilla-cookieconsent: - specifier: ^3.1.0 - version: 3.1.0 devDependencies: '@axe-core/playwright': specifier: ^4.12.1 @@ -989,11 +983,6 @@ packages: resolution: {integrity: sha512-AokJm4tuBHillT+FpMtxQ60n8ObyXBatq7jD2/JA9dxbDDokKQm8KMht5ibGzLVU9IJDIKK4TPKgMHEYMn3lMg==} engines: {node: '>=18'} - '@jop-software/astro-cookieconsent@3.0.1': - resolution: {integrity: sha512-UXo6aMR9/kEEmUIZoRTRJXDf/ADju9qQ0qNRWM1twdf0vRCh2s/ucHqaYOcs57Q2PcKmcq+Sc+0Tq0gSUgVDzA==} - peerDependencies: - vanilla-cookieconsent: ^3.0.0 - '@jridgewell/gen-mapping@0.3.13': resolution: {integrity: sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==} @@ -4043,9 +4032,6 @@ packages: typescript: optional: true - vanilla-cookieconsent@3.1.0: - resolution: {integrity: sha512-/McNRtm/3IXzb9dhqMIcbquoU45SzbN2VB+To4jxEPqMmp7uVniP6BhGLjU8MC7ZCDsNQVOp27fhQTM/ruIXAA==} - vfile-location@5.0.3: resolution: {integrity: sha512-5yXvWDEgqeiYiBe1lbxYF7UMAIm/IcopxMHrMQDq3nvKcjPKIhZklUKL+AE7J7uApI4kwe2snsK+eI6UTj9EHg==} @@ -4933,10 +4919,6 @@ snapshots: '@isaacs/cliui@9.0.0': {} - '@jop-software/astro-cookieconsent@3.0.1(vanilla-cookieconsent@3.1.0)': - dependencies: - vanilla-cookieconsent: 3.1.0 - '@jridgewell/gen-mapping@0.3.13': dependencies: '@jridgewell/sourcemap-codec': 1.5.5 @@ -8748,8 +8730,6 @@ snapshots: optionalDependencies: typescript: 6.0.3 - vanilla-cookieconsent@3.1.0: {} - vfile-location@5.0.3: dependencies: '@types/unist': 3.0.3 diff --git a/src/frontend/src/components/FooterSocials.astro b/src/frontend/src/components/FooterSocials.astro index f44417df5..81a47eab4 100644 --- a/src/frontend/src/components/FooterSocials.astro +++ b/src/frontend/src/components/FooterSocials.astro @@ -9,7 +9,7 @@ import CookiesSvg from '@assets/icons/cookies.svg';