chore(release): renumber group calls as v6.7.0
CodeQL Analysis / Analyze CodeQL (push) Canceled after 0s
Deploy Application / deploy (push) Canceled after 0s
Mirror to Codeberg / mirror (push) Canceled after 0s
Mirror to PrivacyGuides / mirror (push) Canceled after 0s

Group calls are a new capability, and 6.6.6 only landed as a patch because the
version was bumped once per deploy while the feature was being tested. The
number is the release's, not the deploy's.

No code changes: version, badge, changelog heading, docs and build stamp.

Claude-Session: https://claude.ai/code/session_01XSxAkET3hQTkYDQfbjCQwZ
This commit is contained in:
lockbitchat
2026-09-01 01:12:58 -04:00
parent 113bb107d3
commit 8ad4b4558d
21 changed files with 327 additions and 327 deletions
+1 -1
View File
@@ -1,6 +1,6 @@
# Changelog # Changelog
## v6.6.6 — Group calls ## v6.7.0 — Group calls
Groups can call now. Press the handset in a group's header for voice, the camera Groups can call now. Press the handset in a group's header for voice, the camera
for video, and everyone in the group gets a ring. Whoever joins appears as a tile for video, and everyone in the group gets a ring. Whoever joins appears as a tile
+1 -1
View File
@@ -9,7 +9,7 @@
No accounts. No servers storing your messages. No installation required. No accounts. No servers storing your messages. No installation required.
[![License: MIT](https://img.shields.io/badge/License-MIT-f0892a.svg)](LICENSE) [![License: MIT](https://img.shields.io/badge/License-MIT-f0892a.svg)](LICENSE)
[![Version](https://img.shields.io/badge/version-6.6.6-3ecf8e.svg)](CHANGELOG.md) [![Version](https://img.shields.io/badge/version-6.7.0-3ecf8e.svg)](CHANGELOG.md)
[![PWA](https://img.shields.io/badge/PWA-installable-3ecf8e.svg)](#install-as-an-app) [![PWA](https://img.shields.io/badge/PWA-installable-3ecf8e.svg)](#install-as-an-app)
[![Encryption](https://img.shields.io/badge/crypto-ECDH%20P--384%20%C2%B7%20AES--256--GCM-blue.svg)](#security-model) [![Encryption](https://img.shields.io/badge/crypto-ECDH%20P--384%20%C2%B7%20AES--256--GCM-blue.svg)](#security-model)
[![Forward secrecy](https://img.shields.io/badge/forward%20secrecy-Double%20Ratchet-3ecf8e.svg)](#forward-secrecy) [![Forward secrecy](https://img.shields.io/badge/forward%20secrecy-Double%20Ratchet-3ecf8e.svg)](#forward-secrecy)
+24 -24
View File
@@ -30,7 +30,7 @@
<!-- PWA Manifest --> <!-- PWA Manifest -->
<link rel="manifest" href="/ar/manifest.json"> <link rel="manifest" href="/ar/manifest.json">
<link rel="icon" type="image/x-icon" href="/logo/favicon.ico?v=1788237895492"> <link rel="icon" type="image/x-icon" href="/logo/favicon.ico?v=1788239352576">
<!-- PWA Meta Tags --> <!-- PWA Meta Tags -->
<meta name="mobile-web-app-capable" content="yes"> <meta name="mobile-web-app-capable" content="yes">
@@ -96,7 +96,7 @@
<link rel="apple-touch-startup-image" media="screen and (device-width: 744px) and (device-height: 1133px) and (-webkit-device-pixel-ratio: 2) and (orientation: portrait)" href="/logo/splash/splash_screens/8.3__iPad_Mini_portrait.png"> <link rel="apple-touch-startup-image" media="screen and (device-width: 744px) and (device-height: 1133px) and (-webkit-device-pixel-ratio: 2) and (orientation: portrait)" href="/logo/splash/splash_screens/8.3__iPad_Mini_portrait.png">
<!-- Apple Touch Icons --> <!-- Apple Touch Icons -->
<link rel="apple-touch-icon" href="/logo/icon-180x180.png?v=1788237895492"> <link rel="apple-touch-icon" href="/logo/icon-180x180.png?v=1788239352576">
<link rel="apple-touch-icon" sizes="57x57" href="/logo/icon-57x57.png"> <link rel="apple-touch-icon" sizes="57x57" href="/logo/icon-57x57.png">
<link rel="apple-touch-icon" sizes="60x60" href="/logo/icon-60x60.png"> <link rel="apple-touch-icon" sizes="60x60" href="/logo/icon-60x60.png">
<link rel="apple-touch-icon" sizes="72x72" href="/logo/icon-72x72.png"> <link rel="apple-touch-icon" sizes="72x72" href="/logo/icon-72x72.png">
@@ -105,7 +105,7 @@
<link rel="apple-touch-icon" sizes="120x120" href="/logo/icon-120x120.png"> <link rel="apple-touch-icon" sizes="120x120" href="/logo/icon-120x120.png">
<link rel="apple-touch-icon" sizes="144x144" href="/logo/icon-144x144.png"> <link rel="apple-touch-icon" sizes="144x144" href="/logo/icon-144x144.png">
<link rel="apple-touch-icon" sizes="152x152" href="/logo/icon-152x152.png"> <link rel="apple-touch-icon" sizes="152x152" href="/logo/icon-152x152.png">
<link rel="apple-touch-icon" sizes="180x180" href="/logo/icon-180x180.png?v=1788237895492"> <link rel="apple-touch-icon" sizes="180x180" href="/logo/icon-180x180.png?v=1788239352576">
<!-- Microsoft Tiles --> <!-- Microsoft Tiles -->
<meta name="msapplication-TileColor" content="#ff6b35"> <meta name="msapplication-TileColor" content="#ff6b35">
@@ -222,7 +222,7 @@
<!-- Render-blocking JS is deferred: classic deferred scripts and module scripts <!-- Render-blocking JS is deferred: classic deferred scripts and module scripts
both execute in document order after parsing, so React still runs before the both execute in document order after parsing, so React still runs before the
app modules below, but the parser / first paint is no longer blocked. --> app modules below, but the parser / first paint is no longer blocked. -->
<script defer src="/config/ice-servers.js?v=1788237895492"></script> <script defer src="/config/ice-servers.js?v=1788239352576"></script>
<script defer src="/libs/react/react.production.min.js"></script> <script defer src="/libs/react/react.production.min.js"></script>
<script defer src="/libs/react-dom/react-dom.production.min.js"></script> <script defer src="/libs/react-dom/react-dom.production.min.js"></script>
<!-- Prism syntax highlighting (vendored, offline). Tokenizes code as TEXT only — <!-- Prism syntax highlighting (vendored, offline). Tokenizes code as TEXT only —
@@ -230,8 +230,8 @@
Its CSS is loaded async via load-async-css.js (not paint-critical). --> Its CSS is loaded async via load-async-css.js (not paint-critical). -->
<script defer src="/libs/prism/prism.js"></script> <script defer src="/libs/prism/prism.js"></script>
<!-- Critical, paint-defining CSS stays render-blocking (avoids FOUC / layout shift). --> <!-- Critical, paint-defining CSS stays render-blocking (avoids FOUC / layout shift). -->
<link rel="stylesheet" href="/assets/tailwind.css?v=1788237895492"> <link rel="stylesheet" href="/assets/tailwind.css?v=1788239352576">
<link rel="icon" type="image/x-icon" href="/logo/favicon.ico?v=1788237895492"> <link rel="icon" type="image/x-icon" href="/logo/favicon.ico?v=1788239352576">
<!-- Preload only the fonts needed for first paint. fa-solid covers the bulk of UI <!-- Preload only the fonts needed for first paint. fa-solid covers the bulk of UI
icons; fa-regular/fa-brands are loaded on demand by their CSS (rarely on the icons; fa-regular/fa-brands are loaded on demand by their CSS (rarely on the
first screen). Inter latin 400/700 cover body text and headings/buttons. --> first screen). Inter latin 400/700 cover body text and headings/buttons. -->
@@ -239,38 +239,38 @@
<link rel="preload" href="/assets/fonts/inter/files/inter-latin-400.woff2" as="font" type="font/woff2" crossorigin> <link rel="preload" href="/assets/fonts/inter/files/inter-latin-400.woff2" as="font" type="font/woff2" crossorigin>
<link rel="preload" href="/assets/fonts/inter/files/inter-latin-700.woff2" as="font" type="font/woff2" crossorigin> <link rel="preload" href="/assets/fonts/inter/files/inter-latin-700.woff2" as="font" type="font/woff2" crossorigin>
<link rel="stylesheet" href="/assets/fonts/inter/inter.css"> <link rel="stylesheet" href="/assets/fonts/inter/inter.css">
<link rel="stylesheet" href="/src/styles/main.css?v=1788237895492"> <link rel="stylesheet" href="/src/styles/main.css?v=1788239352576">
<link rel="stylesheet" href="/src/styles/animations.css?v=1788237895492"> <link rel="stylesheet" href="/src/styles/animations.css?v=1788239352576">
<link rel="stylesheet" href="/src/styles/components.css?v=1788237895492"> <link rel="stylesheet" href="/src/styles/components.css?v=1788239352576">
<!-- Loads after components.css on purpose: press feedback, material weight, <!-- Loads after components.css on purpose: press feedback, material weight,
size-specific tracking and the reduced-motion / -transparency / -contrast size-specific tracking and the reduced-motion / -transparency / -contrast
answers all need to settle arguments with the sheets above on source order. --> answers all need to settle arguments with the sheets above on source order. -->
<link rel="stylesheet" href="/src/styles/apple-motion.css?v=1788237895492"> <link rel="stylesheet" href="/src/styles/apple-motion.css?v=1788239352576">
<!-- Last of the hand-written sheets: the mirroring rules must win over anything <!-- Last of the hand-written sheets: the mirroring rules must win over anything
above them, and they only ever apply under [dir="rtl"]. --> above them, and they only ever apply under [dir="rtl"]. -->
<link rel="stylesheet" href="/src/styles/rtl.css?v=1788237895492"> <link rel="stylesheet" href="/src/styles/rtl.css?v=1788239352576">
<!-- Non-critical CSS (FontAwesome ~102KB, Prism) loaded async — no longer blocks paint. --> <!-- Non-critical CSS (FontAwesome ~102KB, Prism) loaded async — no longer blocks paint. -->
<script defer src="/src/scripts/load-async-css.js?v=1788237895492"></script> <script defer src="/src/scripts/load-async-css.js?v=1788239352576"></script>
<noscript> <noscript>
<link rel="stylesheet" href="/assets/fontawesome/css/all.min.css"> <link rel="stylesheet" href="/assets/fontawesome/css/all.min.css">
<link rel="stylesheet" href="/libs/prism/prism.css"> <link rel="stylesheet" href="/libs/prism/prism.css">
</noscript> </noscript>
<script defer src="/src/scripts/fa-check.js?v=1788237895492"></script> <script defer src="/src/scripts/fa-check.js?v=1788239352576"></script>
<!-- Update Manager - система принудительного обновления --> <!-- Update Manager - система принудительного обновления -->
<script defer src="/src/utils/updateManager.js?v=1788237895492"></script> <script defer src="/src/utils/updateManager.js?v=1788239352576"></script>
<script type="module" src="/src/components/UpdateChecker.jsx?v=1788237895492"></script> <script type="module" src="/src/components/UpdateChecker.jsx?v=1788239352576"></script>
<script type="module" src="/dist/qr-local.js?v=1788237895492"></script> <script type="module" src="/dist/qr-local.js?v=1788239352576"></script>
<script type="module" src="/src/components/QRScanner.js?v=1788237895492"></script> <script type="module" src="/src/components/QRScanner.js?v=1788239352576"></script>
</head> </head>
<body> <body>
<div id="root"></div> <div id="root"></div>
<script type="module" src="/dist/app-boot.js?v=1788237895492"></script> <script type="module" src="/dist/app-boot.js?v=1788239352576"></script>
<script type="module" src="/dist/app.js?v=1788237895492"></script> <script type="module" src="/dist/app.js?v=1788239352576"></script>
<script defer src="/src/scripts/pwa-register.js?v=1788237895492"></script> <script defer src="/src/scripts/pwa-register.js?v=1788239352576"></script>
<script src="/src/pwa/install-prompt.js?v=1788237895492" type="module"></script> <script src="/src/pwa/install-prompt.js?v=1788239352576" type="module"></script>
<script src="/src/pwa/pwa-manager.js?v=1788237895492" type="module"></script> <script src="/src/pwa/pwa-manager.js?v=1788239352576" type="module"></script>
<script defer src="/src/scripts/pwa-offline-test.js?v=1788237895492"></script> <script defer src="/src/scripts/pwa-offline-test.js?v=1788239352576"></script>
<link rel="stylesheet" href="/src/styles/pwa.css?v=1788237895492"> <link rel="stylesheet" href="/src/styles/pwa.css?v=1788239352576">
</body> </body>
</html> </html>
+24 -24
View File
@@ -30,7 +30,7 @@
<!-- PWA Manifest --> <!-- PWA Manifest -->
<link rel="manifest" href="/de/manifest.json"> <link rel="manifest" href="/de/manifest.json">
<link rel="icon" type="image/x-icon" href="/logo/favicon.ico?v=1788237895492"> <link rel="icon" type="image/x-icon" href="/logo/favicon.ico?v=1788239352576">
<!-- PWA Meta Tags --> <!-- PWA Meta Tags -->
<meta name="mobile-web-app-capable" content="yes"> <meta name="mobile-web-app-capable" content="yes">
@@ -96,7 +96,7 @@
<link rel="apple-touch-startup-image" media="screen and (device-width: 744px) and (device-height: 1133px) and (-webkit-device-pixel-ratio: 2) and (orientation: portrait)" href="/logo/splash/splash_screens/8.3__iPad_Mini_portrait.png"> <link rel="apple-touch-startup-image" media="screen and (device-width: 744px) and (device-height: 1133px) and (-webkit-device-pixel-ratio: 2) and (orientation: portrait)" href="/logo/splash/splash_screens/8.3__iPad_Mini_portrait.png">
<!-- Apple Touch Icons --> <!-- Apple Touch Icons -->
<link rel="apple-touch-icon" href="/logo/icon-180x180.png?v=1788237895492"> <link rel="apple-touch-icon" href="/logo/icon-180x180.png?v=1788239352576">
<link rel="apple-touch-icon" sizes="57x57" href="/logo/icon-57x57.png"> <link rel="apple-touch-icon" sizes="57x57" href="/logo/icon-57x57.png">
<link rel="apple-touch-icon" sizes="60x60" href="/logo/icon-60x60.png"> <link rel="apple-touch-icon" sizes="60x60" href="/logo/icon-60x60.png">
<link rel="apple-touch-icon" sizes="72x72" href="/logo/icon-72x72.png"> <link rel="apple-touch-icon" sizes="72x72" href="/logo/icon-72x72.png">
@@ -105,7 +105,7 @@
<link rel="apple-touch-icon" sizes="120x120" href="/logo/icon-120x120.png"> <link rel="apple-touch-icon" sizes="120x120" href="/logo/icon-120x120.png">
<link rel="apple-touch-icon" sizes="144x144" href="/logo/icon-144x144.png"> <link rel="apple-touch-icon" sizes="144x144" href="/logo/icon-144x144.png">
<link rel="apple-touch-icon" sizes="152x152" href="/logo/icon-152x152.png"> <link rel="apple-touch-icon" sizes="152x152" href="/logo/icon-152x152.png">
<link rel="apple-touch-icon" sizes="180x180" href="/logo/icon-180x180.png?v=1788237895492"> <link rel="apple-touch-icon" sizes="180x180" href="/logo/icon-180x180.png?v=1788239352576">
<!-- Microsoft Tiles --> <!-- Microsoft Tiles -->
<meta name="msapplication-TileColor" content="#ff6b35"> <meta name="msapplication-TileColor" content="#ff6b35">
@@ -222,7 +222,7 @@
<!-- Render-blocking JS is deferred: classic deferred scripts and module scripts <!-- Render-blocking JS is deferred: classic deferred scripts and module scripts
both execute in document order after parsing, so React still runs before the both execute in document order after parsing, so React still runs before the
app modules below, but the parser / first paint is no longer blocked. --> app modules below, but the parser / first paint is no longer blocked. -->
<script defer src="/config/ice-servers.js?v=1788237895492"></script> <script defer src="/config/ice-servers.js?v=1788239352576"></script>
<script defer src="/libs/react/react.production.min.js"></script> <script defer src="/libs/react/react.production.min.js"></script>
<script defer src="/libs/react-dom/react-dom.production.min.js"></script> <script defer src="/libs/react-dom/react-dom.production.min.js"></script>
<!-- Prism syntax highlighting (vendored, offline). Tokenizes code as TEXT only — <!-- Prism syntax highlighting (vendored, offline). Tokenizes code as TEXT only —
@@ -230,8 +230,8 @@
Its CSS is loaded async via load-async-css.js (not paint-critical). --> Its CSS is loaded async via load-async-css.js (not paint-critical). -->
<script defer src="/libs/prism/prism.js"></script> <script defer src="/libs/prism/prism.js"></script>
<!-- Critical, paint-defining CSS stays render-blocking (avoids FOUC / layout shift). --> <!-- Critical, paint-defining CSS stays render-blocking (avoids FOUC / layout shift). -->
<link rel="stylesheet" href="/assets/tailwind.css?v=1788237895492"> <link rel="stylesheet" href="/assets/tailwind.css?v=1788239352576">
<link rel="icon" type="image/x-icon" href="/logo/favicon.ico?v=1788237895492"> <link rel="icon" type="image/x-icon" href="/logo/favicon.ico?v=1788239352576">
<!-- Preload only the fonts needed for first paint. fa-solid covers the bulk of UI <!-- Preload only the fonts needed for first paint. fa-solid covers the bulk of UI
icons; fa-regular/fa-brands are loaded on demand by their CSS (rarely on the icons; fa-regular/fa-brands are loaded on demand by their CSS (rarely on the
first screen). Inter latin 400/700 cover body text and headings/buttons. --> first screen). Inter latin 400/700 cover body text and headings/buttons. -->
@@ -239,38 +239,38 @@
<link rel="preload" href="/assets/fonts/inter/files/inter-latin-400.woff2" as="font" type="font/woff2" crossorigin> <link rel="preload" href="/assets/fonts/inter/files/inter-latin-400.woff2" as="font" type="font/woff2" crossorigin>
<link rel="preload" href="/assets/fonts/inter/files/inter-latin-700.woff2" as="font" type="font/woff2" crossorigin> <link rel="preload" href="/assets/fonts/inter/files/inter-latin-700.woff2" as="font" type="font/woff2" crossorigin>
<link rel="stylesheet" href="/assets/fonts/inter/inter.css"> <link rel="stylesheet" href="/assets/fonts/inter/inter.css">
<link rel="stylesheet" href="/src/styles/main.css?v=1788237895492"> <link rel="stylesheet" href="/src/styles/main.css?v=1788239352576">
<link rel="stylesheet" href="/src/styles/animations.css?v=1788237895492"> <link rel="stylesheet" href="/src/styles/animations.css?v=1788239352576">
<link rel="stylesheet" href="/src/styles/components.css?v=1788237895492"> <link rel="stylesheet" href="/src/styles/components.css?v=1788239352576">
<!-- Loads after components.css on purpose: press feedback, material weight, <!-- Loads after components.css on purpose: press feedback, material weight,
size-specific tracking and the reduced-motion / -transparency / -contrast size-specific tracking and the reduced-motion / -transparency / -contrast
answers all need to settle arguments with the sheets above on source order. --> answers all need to settle arguments with the sheets above on source order. -->
<link rel="stylesheet" href="/src/styles/apple-motion.css?v=1788237895492"> <link rel="stylesheet" href="/src/styles/apple-motion.css?v=1788239352576">
<!-- Last of the hand-written sheets: the mirroring rules must win over anything <!-- Last of the hand-written sheets: the mirroring rules must win over anything
above them, and they only ever apply under [dir="rtl"]. --> above them, and they only ever apply under [dir="rtl"]. -->
<link rel="stylesheet" href="/src/styles/rtl.css?v=1788237895492"> <link rel="stylesheet" href="/src/styles/rtl.css?v=1788239352576">
<!-- Non-critical CSS (FontAwesome ~102KB, Prism) loaded async — no longer blocks paint. --> <!-- Non-critical CSS (FontAwesome ~102KB, Prism) loaded async — no longer blocks paint. -->
<script defer src="/src/scripts/load-async-css.js?v=1788237895492"></script> <script defer src="/src/scripts/load-async-css.js?v=1788239352576"></script>
<noscript> <noscript>
<link rel="stylesheet" href="/assets/fontawesome/css/all.min.css"> <link rel="stylesheet" href="/assets/fontawesome/css/all.min.css">
<link rel="stylesheet" href="/libs/prism/prism.css"> <link rel="stylesheet" href="/libs/prism/prism.css">
</noscript> </noscript>
<script defer src="/src/scripts/fa-check.js?v=1788237895492"></script> <script defer src="/src/scripts/fa-check.js?v=1788239352576"></script>
<!-- Update Manager - система принудительного обновления --> <!-- Update Manager - система принудительного обновления -->
<script defer src="/src/utils/updateManager.js?v=1788237895492"></script> <script defer src="/src/utils/updateManager.js?v=1788239352576"></script>
<script type="module" src="/src/components/UpdateChecker.jsx?v=1788237895492"></script> <script type="module" src="/src/components/UpdateChecker.jsx?v=1788239352576"></script>
<script type="module" src="/dist/qr-local.js?v=1788237895492"></script> <script type="module" src="/dist/qr-local.js?v=1788239352576"></script>
<script type="module" src="/src/components/QRScanner.js?v=1788237895492"></script> <script type="module" src="/src/components/QRScanner.js?v=1788239352576"></script>
</head> </head>
<body> <body>
<div id="root"></div> <div id="root"></div>
<script type="module" src="/dist/app-boot.js?v=1788237895492"></script> <script type="module" src="/dist/app-boot.js?v=1788239352576"></script>
<script type="module" src="/dist/app.js?v=1788237895492"></script> <script type="module" src="/dist/app.js?v=1788239352576"></script>
<script defer src="/src/scripts/pwa-register.js?v=1788237895492"></script> <script defer src="/src/scripts/pwa-register.js?v=1788239352576"></script>
<script src="/src/pwa/install-prompt.js?v=1788237895492" type="module"></script> <script src="/src/pwa/install-prompt.js?v=1788239352576" type="module"></script>
<script src="/src/pwa/pwa-manager.js?v=1788237895492" type="module"></script> <script src="/src/pwa/pwa-manager.js?v=1788239352576" type="module"></script>
<script defer src="/src/scripts/pwa-offline-test.js?v=1788237895492"></script> <script defer src="/src/scripts/pwa-offline-test.js?v=1788239352576"></script>
<link rel="stylesheet" href="/src/styles/pwa.css?v=1788237895492"> <link rel="stylesheet" href="/src/styles/pwa.css?v=1788239352576">
</body> </body>
</html> </html>
+1 -1
View File
@@ -31684,7 +31684,7 @@ var SecureMasterKeyManager = class {
var import_NotificationIntegration = __toESM(require_NotificationIntegration()); var import_NotificationIntegration = __toESM(require_NotificationIntegration());
// package.json // package.json
var version = "6.6.6"; var version = "6.7.0";
// src/components/ui/LanguageSwitcher.jsx // src/components/ui/LanguageSwitcher.jsx
var LanguageSwitcher = () => { var LanguageSwitcher = () => {
+1 -1
View File
File diff suppressed because one or more lines are too long
+2 -2
View File
@@ -7,7 +7,7 @@ this document describes.
| | | | | |
| --- | --- | | --- | --- |
| Release | v6.6.6 | | Release | v6.7.0 |
| Protocol version | 4.1 | | Protocol version | 4.1 |
| Ratchet wire version | 1 | | Ratchet wire version | 1 |
@@ -347,5 +347,5 @@ no leg may stop a capture it borrowed.
## Scope ## Scope
This describes the browser implementation as it stands in v6.6.6. It is not a This describes the browser implementation as it stands in v6.7.0. It is not a
substitute for independent cryptographic review. substitute for independent cryptographic review.
+24 -24
View File
@@ -30,7 +30,7 @@
<!-- PWA Manifest --> <!-- PWA Manifest -->
<link rel="manifest" href="/es/manifest.json"> <link rel="manifest" href="/es/manifest.json">
<link rel="icon" type="image/x-icon" href="/logo/favicon.ico?v=1788237895492"> <link rel="icon" type="image/x-icon" href="/logo/favicon.ico?v=1788239352576">
<!-- PWA Meta Tags --> <!-- PWA Meta Tags -->
<meta name="mobile-web-app-capable" content="yes"> <meta name="mobile-web-app-capable" content="yes">
@@ -96,7 +96,7 @@
<link rel="apple-touch-startup-image" media="screen and (device-width: 744px) and (device-height: 1133px) and (-webkit-device-pixel-ratio: 2) and (orientation: portrait)" href="/logo/splash/splash_screens/8.3__iPad_Mini_portrait.png"> <link rel="apple-touch-startup-image" media="screen and (device-width: 744px) and (device-height: 1133px) and (-webkit-device-pixel-ratio: 2) and (orientation: portrait)" href="/logo/splash/splash_screens/8.3__iPad_Mini_portrait.png">
<!-- Apple Touch Icons --> <!-- Apple Touch Icons -->
<link rel="apple-touch-icon" href="/logo/icon-180x180.png?v=1788237895492"> <link rel="apple-touch-icon" href="/logo/icon-180x180.png?v=1788239352576">
<link rel="apple-touch-icon" sizes="57x57" href="/logo/icon-57x57.png"> <link rel="apple-touch-icon" sizes="57x57" href="/logo/icon-57x57.png">
<link rel="apple-touch-icon" sizes="60x60" href="/logo/icon-60x60.png"> <link rel="apple-touch-icon" sizes="60x60" href="/logo/icon-60x60.png">
<link rel="apple-touch-icon" sizes="72x72" href="/logo/icon-72x72.png"> <link rel="apple-touch-icon" sizes="72x72" href="/logo/icon-72x72.png">
@@ -105,7 +105,7 @@
<link rel="apple-touch-icon" sizes="120x120" href="/logo/icon-120x120.png"> <link rel="apple-touch-icon" sizes="120x120" href="/logo/icon-120x120.png">
<link rel="apple-touch-icon" sizes="144x144" href="/logo/icon-144x144.png"> <link rel="apple-touch-icon" sizes="144x144" href="/logo/icon-144x144.png">
<link rel="apple-touch-icon" sizes="152x152" href="/logo/icon-152x152.png"> <link rel="apple-touch-icon" sizes="152x152" href="/logo/icon-152x152.png">
<link rel="apple-touch-icon" sizes="180x180" href="/logo/icon-180x180.png?v=1788237895492"> <link rel="apple-touch-icon" sizes="180x180" href="/logo/icon-180x180.png?v=1788239352576">
<!-- Microsoft Tiles --> <!-- Microsoft Tiles -->
<meta name="msapplication-TileColor" content="#ff6b35"> <meta name="msapplication-TileColor" content="#ff6b35">
@@ -222,7 +222,7 @@
<!-- Render-blocking JS is deferred: classic deferred scripts and module scripts <!-- Render-blocking JS is deferred: classic deferred scripts and module scripts
both execute in document order after parsing, so React still runs before the both execute in document order after parsing, so React still runs before the
app modules below, but the parser / first paint is no longer blocked. --> app modules below, but the parser / first paint is no longer blocked. -->
<script defer src="/config/ice-servers.js?v=1788237895492"></script> <script defer src="/config/ice-servers.js?v=1788239352576"></script>
<script defer src="/libs/react/react.production.min.js"></script> <script defer src="/libs/react/react.production.min.js"></script>
<script defer src="/libs/react-dom/react-dom.production.min.js"></script> <script defer src="/libs/react-dom/react-dom.production.min.js"></script>
<!-- Prism syntax highlighting (vendored, offline). Tokenizes code as TEXT only — <!-- Prism syntax highlighting (vendored, offline). Tokenizes code as TEXT only —
@@ -230,8 +230,8 @@
Its CSS is loaded async via load-async-css.js (not paint-critical). --> Its CSS is loaded async via load-async-css.js (not paint-critical). -->
<script defer src="/libs/prism/prism.js"></script> <script defer src="/libs/prism/prism.js"></script>
<!-- Critical, paint-defining CSS stays render-blocking (avoids FOUC / layout shift). --> <!-- Critical, paint-defining CSS stays render-blocking (avoids FOUC / layout shift). -->
<link rel="stylesheet" href="/assets/tailwind.css?v=1788237895492"> <link rel="stylesheet" href="/assets/tailwind.css?v=1788239352576">
<link rel="icon" type="image/x-icon" href="/logo/favicon.ico?v=1788237895492"> <link rel="icon" type="image/x-icon" href="/logo/favicon.ico?v=1788239352576">
<!-- Preload only the fonts needed for first paint. fa-solid covers the bulk of UI <!-- Preload only the fonts needed for first paint. fa-solid covers the bulk of UI
icons; fa-regular/fa-brands are loaded on demand by their CSS (rarely on the icons; fa-regular/fa-brands are loaded on demand by their CSS (rarely on the
first screen). Inter latin 400/700 cover body text and headings/buttons. --> first screen). Inter latin 400/700 cover body text and headings/buttons. -->
@@ -239,38 +239,38 @@
<link rel="preload" href="/assets/fonts/inter/files/inter-latin-400.woff2" as="font" type="font/woff2" crossorigin> <link rel="preload" href="/assets/fonts/inter/files/inter-latin-400.woff2" as="font" type="font/woff2" crossorigin>
<link rel="preload" href="/assets/fonts/inter/files/inter-latin-700.woff2" as="font" type="font/woff2" crossorigin> <link rel="preload" href="/assets/fonts/inter/files/inter-latin-700.woff2" as="font" type="font/woff2" crossorigin>
<link rel="stylesheet" href="/assets/fonts/inter/inter.css"> <link rel="stylesheet" href="/assets/fonts/inter/inter.css">
<link rel="stylesheet" href="/src/styles/main.css?v=1788237895492"> <link rel="stylesheet" href="/src/styles/main.css?v=1788239352576">
<link rel="stylesheet" href="/src/styles/animations.css?v=1788237895492"> <link rel="stylesheet" href="/src/styles/animations.css?v=1788239352576">
<link rel="stylesheet" href="/src/styles/components.css?v=1788237895492"> <link rel="stylesheet" href="/src/styles/components.css?v=1788239352576">
<!-- Loads after components.css on purpose: press feedback, material weight, <!-- Loads after components.css on purpose: press feedback, material weight,
size-specific tracking and the reduced-motion / -transparency / -contrast size-specific tracking and the reduced-motion / -transparency / -contrast
answers all need to settle arguments with the sheets above on source order. --> answers all need to settle arguments with the sheets above on source order. -->
<link rel="stylesheet" href="/src/styles/apple-motion.css?v=1788237895492"> <link rel="stylesheet" href="/src/styles/apple-motion.css?v=1788239352576">
<!-- Last of the hand-written sheets: the mirroring rules must win over anything <!-- Last of the hand-written sheets: the mirroring rules must win over anything
above them, and they only ever apply under [dir="rtl"]. --> above them, and they only ever apply under [dir="rtl"]. -->
<link rel="stylesheet" href="/src/styles/rtl.css?v=1788237895492"> <link rel="stylesheet" href="/src/styles/rtl.css?v=1788239352576">
<!-- Non-critical CSS (FontAwesome ~102KB, Prism) loaded async — no longer blocks paint. --> <!-- Non-critical CSS (FontAwesome ~102KB, Prism) loaded async — no longer blocks paint. -->
<script defer src="/src/scripts/load-async-css.js?v=1788237895492"></script> <script defer src="/src/scripts/load-async-css.js?v=1788239352576"></script>
<noscript> <noscript>
<link rel="stylesheet" href="/assets/fontawesome/css/all.min.css"> <link rel="stylesheet" href="/assets/fontawesome/css/all.min.css">
<link rel="stylesheet" href="/libs/prism/prism.css"> <link rel="stylesheet" href="/libs/prism/prism.css">
</noscript> </noscript>
<script defer src="/src/scripts/fa-check.js?v=1788237895492"></script> <script defer src="/src/scripts/fa-check.js?v=1788239352576"></script>
<!-- Update Manager - система принудительного обновления --> <!-- Update Manager - система принудительного обновления -->
<script defer src="/src/utils/updateManager.js?v=1788237895492"></script> <script defer src="/src/utils/updateManager.js?v=1788239352576"></script>
<script type="module" src="/src/components/UpdateChecker.jsx?v=1788237895492"></script> <script type="module" src="/src/components/UpdateChecker.jsx?v=1788239352576"></script>
<script type="module" src="/dist/qr-local.js?v=1788237895492"></script> <script type="module" src="/dist/qr-local.js?v=1788239352576"></script>
<script type="module" src="/src/components/QRScanner.js?v=1788237895492"></script> <script type="module" src="/src/components/QRScanner.js?v=1788239352576"></script>
</head> </head>
<body> <body>
<div id="root"></div> <div id="root"></div>
<script type="module" src="/dist/app-boot.js?v=1788237895492"></script> <script type="module" src="/dist/app-boot.js?v=1788239352576"></script>
<script type="module" src="/dist/app.js?v=1788237895492"></script> <script type="module" src="/dist/app.js?v=1788239352576"></script>
<script defer src="/src/scripts/pwa-register.js?v=1788237895492"></script> <script defer src="/src/scripts/pwa-register.js?v=1788239352576"></script>
<script src="/src/pwa/install-prompt.js?v=1788237895492" type="module"></script> <script src="/src/pwa/install-prompt.js?v=1788239352576" type="module"></script>
<script src="/src/pwa/pwa-manager.js?v=1788237895492" type="module"></script> <script src="/src/pwa/pwa-manager.js?v=1788239352576" type="module"></script>
<script defer src="/src/scripts/pwa-offline-test.js?v=1788237895492"></script> <script defer src="/src/scripts/pwa-offline-test.js?v=1788239352576"></script>
<link rel="stylesheet" href="/src/styles/pwa.css?v=1788237895492"> <link rel="stylesheet" href="/src/styles/pwa.css?v=1788239352576">
</body> </body>
</html> </html>
+24 -24
View File
@@ -30,7 +30,7 @@
<!-- PWA Manifest --> <!-- PWA Manifest -->
<link rel="manifest" href="/fa/manifest.json"> <link rel="manifest" href="/fa/manifest.json">
<link rel="icon" type="image/x-icon" href="/logo/favicon.ico?v=1788237895492"> <link rel="icon" type="image/x-icon" href="/logo/favicon.ico?v=1788239352576">
<!-- PWA Meta Tags --> <!-- PWA Meta Tags -->
<meta name="mobile-web-app-capable" content="yes"> <meta name="mobile-web-app-capable" content="yes">
@@ -96,7 +96,7 @@
<link rel="apple-touch-startup-image" media="screen and (device-width: 744px) and (device-height: 1133px) and (-webkit-device-pixel-ratio: 2) and (orientation: portrait)" href="/logo/splash/splash_screens/8.3__iPad_Mini_portrait.png"> <link rel="apple-touch-startup-image" media="screen and (device-width: 744px) and (device-height: 1133px) and (-webkit-device-pixel-ratio: 2) and (orientation: portrait)" href="/logo/splash/splash_screens/8.3__iPad_Mini_portrait.png">
<!-- Apple Touch Icons --> <!-- Apple Touch Icons -->
<link rel="apple-touch-icon" href="/logo/icon-180x180.png?v=1788237895492"> <link rel="apple-touch-icon" href="/logo/icon-180x180.png?v=1788239352576">
<link rel="apple-touch-icon" sizes="57x57" href="/logo/icon-57x57.png"> <link rel="apple-touch-icon" sizes="57x57" href="/logo/icon-57x57.png">
<link rel="apple-touch-icon" sizes="60x60" href="/logo/icon-60x60.png"> <link rel="apple-touch-icon" sizes="60x60" href="/logo/icon-60x60.png">
<link rel="apple-touch-icon" sizes="72x72" href="/logo/icon-72x72.png"> <link rel="apple-touch-icon" sizes="72x72" href="/logo/icon-72x72.png">
@@ -105,7 +105,7 @@
<link rel="apple-touch-icon" sizes="120x120" href="/logo/icon-120x120.png"> <link rel="apple-touch-icon" sizes="120x120" href="/logo/icon-120x120.png">
<link rel="apple-touch-icon" sizes="144x144" href="/logo/icon-144x144.png"> <link rel="apple-touch-icon" sizes="144x144" href="/logo/icon-144x144.png">
<link rel="apple-touch-icon" sizes="152x152" href="/logo/icon-152x152.png"> <link rel="apple-touch-icon" sizes="152x152" href="/logo/icon-152x152.png">
<link rel="apple-touch-icon" sizes="180x180" href="/logo/icon-180x180.png?v=1788237895492"> <link rel="apple-touch-icon" sizes="180x180" href="/logo/icon-180x180.png?v=1788239352576">
<!-- Microsoft Tiles --> <!-- Microsoft Tiles -->
<meta name="msapplication-TileColor" content="#ff6b35"> <meta name="msapplication-TileColor" content="#ff6b35">
@@ -222,7 +222,7 @@
<!-- Render-blocking JS is deferred: classic deferred scripts and module scripts <!-- Render-blocking JS is deferred: classic deferred scripts and module scripts
both execute in document order after parsing, so React still runs before the both execute in document order after parsing, so React still runs before the
app modules below, but the parser / first paint is no longer blocked. --> app modules below, but the parser / first paint is no longer blocked. -->
<script defer src="/config/ice-servers.js?v=1788237895492"></script> <script defer src="/config/ice-servers.js?v=1788239352576"></script>
<script defer src="/libs/react/react.production.min.js"></script> <script defer src="/libs/react/react.production.min.js"></script>
<script defer src="/libs/react-dom/react-dom.production.min.js"></script> <script defer src="/libs/react-dom/react-dom.production.min.js"></script>
<!-- Prism syntax highlighting (vendored, offline). Tokenizes code as TEXT only — <!-- Prism syntax highlighting (vendored, offline). Tokenizes code as TEXT only —
@@ -230,8 +230,8 @@
Its CSS is loaded async via load-async-css.js (not paint-critical). --> Its CSS is loaded async via load-async-css.js (not paint-critical). -->
<script defer src="/libs/prism/prism.js"></script> <script defer src="/libs/prism/prism.js"></script>
<!-- Critical, paint-defining CSS stays render-blocking (avoids FOUC / layout shift). --> <!-- Critical, paint-defining CSS stays render-blocking (avoids FOUC / layout shift). -->
<link rel="stylesheet" href="/assets/tailwind.css?v=1788237895492"> <link rel="stylesheet" href="/assets/tailwind.css?v=1788239352576">
<link rel="icon" type="image/x-icon" href="/logo/favicon.ico?v=1788237895492"> <link rel="icon" type="image/x-icon" href="/logo/favicon.ico?v=1788239352576">
<!-- Preload only the fonts needed for first paint. fa-solid covers the bulk of UI <!-- Preload only the fonts needed for first paint. fa-solid covers the bulk of UI
icons; fa-regular/fa-brands are loaded on demand by their CSS (rarely on the icons; fa-regular/fa-brands are loaded on demand by their CSS (rarely on the
first screen). Inter latin 400/700 cover body text and headings/buttons. --> first screen). Inter latin 400/700 cover body text and headings/buttons. -->
@@ -239,38 +239,38 @@
<link rel="preload" href="/assets/fonts/inter/files/inter-latin-400.woff2" as="font" type="font/woff2" crossorigin> <link rel="preload" href="/assets/fonts/inter/files/inter-latin-400.woff2" as="font" type="font/woff2" crossorigin>
<link rel="preload" href="/assets/fonts/inter/files/inter-latin-700.woff2" as="font" type="font/woff2" crossorigin> <link rel="preload" href="/assets/fonts/inter/files/inter-latin-700.woff2" as="font" type="font/woff2" crossorigin>
<link rel="stylesheet" href="/assets/fonts/inter/inter.css"> <link rel="stylesheet" href="/assets/fonts/inter/inter.css">
<link rel="stylesheet" href="/src/styles/main.css?v=1788237895492"> <link rel="stylesheet" href="/src/styles/main.css?v=1788239352576">
<link rel="stylesheet" href="/src/styles/animations.css?v=1788237895492"> <link rel="stylesheet" href="/src/styles/animations.css?v=1788239352576">
<link rel="stylesheet" href="/src/styles/components.css?v=1788237895492"> <link rel="stylesheet" href="/src/styles/components.css?v=1788239352576">
<!-- Loads after components.css on purpose: press feedback, material weight, <!-- Loads after components.css on purpose: press feedback, material weight,
size-specific tracking and the reduced-motion / -transparency / -contrast size-specific tracking and the reduced-motion / -transparency / -contrast
answers all need to settle arguments with the sheets above on source order. --> answers all need to settle arguments with the sheets above on source order. -->
<link rel="stylesheet" href="/src/styles/apple-motion.css?v=1788237895492"> <link rel="stylesheet" href="/src/styles/apple-motion.css?v=1788239352576">
<!-- Last of the hand-written sheets: the mirroring rules must win over anything <!-- Last of the hand-written sheets: the mirroring rules must win over anything
above them, and they only ever apply under [dir="rtl"]. --> above them, and they only ever apply under [dir="rtl"]. -->
<link rel="stylesheet" href="/src/styles/rtl.css?v=1788237895492"> <link rel="stylesheet" href="/src/styles/rtl.css?v=1788239352576">
<!-- Non-critical CSS (FontAwesome ~102KB, Prism) loaded async — no longer blocks paint. --> <!-- Non-critical CSS (FontAwesome ~102KB, Prism) loaded async — no longer blocks paint. -->
<script defer src="/src/scripts/load-async-css.js?v=1788237895492"></script> <script defer src="/src/scripts/load-async-css.js?v=1788239352576"></script>
<noscript> <noscript>
<link rel="stylesheet" href="/assets/fontawesome/css/all.min.css"> <link rel="stylesheet" href="/assets/fontawesome/css/all.min.css">
<link rel="stylesheet" href="/libs/prism/prism.css"> <link rel="stylesheet" href="/libs/prism/prism.css">
</noscript> </noscript>
<script defer src="/src/scripts/fa-check.js?v=1788237895492"></script> <script defer src="/src/scripts/fa-check.js?v=1788239352576"></script>
<!-- Update Manager - система принудительного обновления --> <!-- Update Manager - система принудительного обновления -->
<script defer src="/src/utils/updateManager.js?v=1788237895492"></script> <script defer src="/src/utils/updateManager.js?v=1788239352576"></script>
<script type="module" src="/src/components/UpdateChecker.jsx?v=1788237895492"></script> <script type="module" src="/src/components/UpdateChecker.jsx?v=1788239352576"></script>
<script type="module" src="/dist/qr-local.js?v=1788237895492"></script> <script type="module" src="/dist/qr-local.js?v=1788239352576"></script>
<script type="module" src="/src/components/QRScanner.js?v=1788237895492"></script> <script type="module" src="/src/components/QRScanner.js?v=1788239352576"></script>
</head> </head>
<body> <body>
<div id="root"></div> <div id="root"></div>
<script type="module" src="/dist/app-boot.js?v=1788237895492"></script> <script type="module" src="/dist/app-boot.js?v=1788239352576"></script>
<script type="module" src="/dist/app.js?v=1788237895492"></script> <script type="module" src="/dist/app.js?v=1788239352576"></script>
<script defer src="/src/scripts/pwa-register.js?v=1788237895492"></script> <script defer src="/src/scripts/pwa-register.js?v=1788239352576"></script>
<script src="/src/pwa/install-prompt.js?v=1788237895492" type="module"></script> <script src="/src/pwa/install-prompt.js?v=1788239352576" type="module"></script>
<script src="/src/pwa/pwa-manager.js?v=1788237895492" type="module"></script> <script src="/src/pwa/pwa-manager.js?v=1788239352576" type="module"></script>
<script defer src="/src/scripts/pwa-offline-test.js?v=1788237895492"></script> <script defer src="/src/scripts/pwa-offline-test.js?v=1788239352576"></script>
<link rel="stylesheet" href="/src/styles/pwa.css?v=1788237895492"> <link rel="stylesheet" href="/src/styles/pwa.css?v=1788239352576">
</body> </body>
</html> </html>
+24 -24
View File
@@ -30,7 +30,7 @@
<!-- PWA Manifest --> <!-- PWA Manifest -->
<link rel="manifest" href="/fr/manifest.json"> <link rel="manifest" href="/fr/manifest.json">
<link rel="icon" type="image/x-icon" href="/logo/favicon.ico?v=1788237895492"> <link rel="icon" type="image/x-icon" href="/logo/favicon.ico?v=1788239352576">
<!-- PWA Meta Tags --> <!-- PWA Meta Tags -->
<meta name="mobile-web-app-capable" content="yes"> <meta name="mobile-web-app-capable" content="yes">
@@ -96,7 +96,7 @@
<link rel="apple-touch-startup-image" media="screen and (device-width: 744px) and (device-height: 1133px) and (-webkit-device-pixel-ratio: 2) and (orientation: portrait)" href="/logo/splash/splash_screens/8.3__iPad_Mini_portrait.png"> <link rel="apple-touch-startup-image" media="screen and (device-width: 744px) and (device-height: 1133px) and (-webkit-device-pixel-ratio: 2) and (orientation: portrait)" href="/logo/splash/splash_screens/8.3__iPad_Mini_portrait.png">
<!-- Apple Touch Icons --> <!-- Apple Touch Icons -->
<link rel="apple-touch-icon" href="/logo/icon-180x180.png?v=1788237895492"> <link rel="apple-touch-icon" href="/logo/icon-180x180.png?v=1788239352576">
<link rel="apple-touch-icon" sizes="57x57" href="/logo/icon-57x57.png"> <link rel="apple-touch-icon" sizes="57x57" href="/logo/icon-57x57.png">
<link rel="apple-touch-icon" sizes="60x60" href="/logo/icon-60x60.png"> <link rel="apple-touch-icon" sizes="60x60" href="/logo/icon-60x60.png">
<link rel="apple-touch-icon" sizes="72x72" href="/logo/icon-72x72.png"> <link rel="apple-touch-icon" sizes="72x72" href="/logo/icon-72x72.png">
@@ -105,7 +105,7 @@
<link rel="apple-touch-icon" sizes="120x120" href="/logo/icon-120x120.png"> <link rel="apple-touch-icon" sizes="120x120" href="/logo/icon-120x120.png">
<link rel="apple-touch-icon" sizes="144x144" href="/logo/icon-144x144.png"> <link rel="apple-touch-icon" sizes="144x144" href="/logo/icon-144x144.png">
<link rel="apple-touch-icon" sizes="152x152" href="/logo/icon-152x152.png"> <link rel="apple-touch-icon" sizes="152x152" href="/logo/icon-152x152.png">
<link rel="apple-touch-icon" sizes="180x180" href="/logo/icon-180x180.png?v=1788237895492"> <link rel="apple-touch-icon" sizes="180x180" href="/logo/icon-180x180.png?v=1788239352576">
<!-- Microsoft Tiles --> <!-- Microsoft Tiles -->
<meta name="msapplication-TileColor" content="#ff6b35"> <meta name="msapplication-TileColor" content="#ff6b35">
@@ -222,7 +222,7 @@
<!-- Render-blocking JS is deferred: classic deferred scripts and module scripts <!-- Render-blocking JS is deferred: classic deferred scripts and module scripts
both execute in document order after parsing, so React still runs before the both execute in document order after parsing, so React still runs before the
app modules below, but the parser / first paint is no longer blocked. --> app modules below, but the parser / first paint is no longer blocked. -->
<script defer src="/config/ice-servers.js?v=1788237895492"></script> <script defer src="/config/ice-servers.js?v=1788239352576"></script>
<script defer src="/libs/react/react.production.min.js"></script> <script defer src="/libs/react/react.production.min.js"></script>
<script defer src="/libs/react-dom/react-dom.production.min.js"></script> <script defer src="/libs/react-dom/react-dom.production.min.js"></script>
<!-- Prism syntax highlighting (vendored, offline). Tokenizes code as TEXT only — <!-- Prism syntax highlighting (vendored, offline). Tokenizes code as TEXT only —
@@ -230,8 +230,8 @@
Its CSS is loaded async via load-async-css.js (not paint-critical). --> Its CSS is loaded async via load-async-css.js (not paint-critical). -->
<script defer src="/libs/prism/prism.js"></script> <script defer src="/libs/prism/prism.js"></script>
<!-- Critical, paint-defining CSS stays render-blocking (avoids FOUC / layout shift). --> <!-- Critical, paint-defining CSS stays render-blocking (avoids FOUC / layout shift). -->
<link rel="stylesheet" href="/assets/tailwind.css?v=1788237895492"> <link rel="stylesheet" href="/assets/tailwind.css?v=1788239352576">
<link rel="icon" type="image/x-icon" href="/logo/favicon.ico?v=1788237895492"> <link rel="icon" type="image/x-icon" href="/logo/favicon.ico?v=1788239352576">
<!-- Preload only the fonts needed for first paint. fa-solid covers the bulk of UI <!-- Preload only the fonts needed for first paint. fa-solid covers the bulk of UI
icons; fa-regular/fa-brands are loaded on demand by their CSS (rarely on the icons; fa-regular/fa-brands are loaded on demand by their CSS (rarely on the
first screen). Inter latin 400/700 cover body text and headings/buttons. --> first screen). Inter latin 400/700 cover body text and headings/buttons. -->
@@ -239,38 +239,38 @@
<link rel="preload" href="/assets/fonts/inter/files/inter-latin-400.woff2" as="font" type="font/woff2" crossorigin> <link rel="preload" href="/assets/fonts/inter/files/inter-latin-400.woff2" as="font" type="font/woff2" crossorigin>
<link rel="preload" href="/assets/fonts/inter/files/inter-latin-700.woff2" as="font" type="font/woff2" crossorigin> <link rel="preload" href="/assets/fonts/inter/files/inter-latin-700.woff2" as="font" type="font/woff2" crossorigin>
<link rel="stylesheet" href="/assets/fonts/inter/inter.css"> <link rel="stylesheet" href="/assets/fonts/inter/inter.css">
<link rel="stylesheet" href="/src/styles/main.css?v=1788237895492"> <link rel="stylesheet" href="/src/styles/main.css?v=1788239352576">
<link rel="stylesheet" href="/src/styles/animations.css?v=1788237895492"> <link rel="stylesheet" href="/src/styles/animations.css?v=1788239352576">
<link rel="stylesheet" href="/src/styles/components.css?v=1788237895492"> <link rel="stylesheet" href="/src/styles/components.css?v=1788239352576">
<!-- Loads after components.css on purpose: press feedback, material weight, <!-- Loads after components.css on purpose: press feedback, material weight,
size-specific tracking and the reduced-motion / -transparency / -contrast size-specific tracking and the reduced-motion / -transparency / -contrast
answers all need to settle arguments with the sheets above on source order. --> answers all need to settle arguments with the sheets above on source order. -->
<link rel="stylesheet" href="/src/styles/apple-motion.css?v=1788237895492"> <link rel="stylesheet" href="/src/styles/apple-motion.css?v=1788239352576">
<!-- Last of the hand-written sheets: the mirroring rules must win over anything <!-- Last of the hand-written sheets: the mirroring rules must win over anything
above them, and they only ever apply under [dir="rtl"]. --> above them, and they only ever apply under [dir="rtl"]. -->
<link rel="stylesheet" href="/src/styles/rtl.css?v=1788237895492"> <link rel="stylesheet" href="/src/styles/rtl.css?v=1788239352576">
<!-- Non-critical CSS (FontAwesome ~102KB, Prism) loaded async — no longer blocks paint. --> <!-- Non-critical CSS (FontAwesome ~102KB, Prism) loaded async — no longer blocks paint. -->
<script defer src="/src/scripts/load-async-css.js?v=1788237895492"></script> <script defer src="/src/scripts/load-async-css.js?v=1788239352576"></script>
<noscript> <noscript>
<link rel="stylesheet" href="/assets/fontawesome/css/all.min.css"> <link rel="stylesheet" href="/assets/fontawesome/css/all.min.css">
<link rel="stylesheet" href="/libs/prism/prism.css"> <link rel="stylesheet" href="/libs/prism/prism.css">
</noscript> </noscript>
<script defer src="/src/scripts/fa-check.js?v=1788237895492"></script> <script defer src="/src/scripts/fa-check.js?v=1788239352576"></script>
<!-- Update Manager - система принудительного обновления --> <!-- Update Manager - система принудительного обновления -->
<script defer src="/src/utils/updateManager.js?v=1788237895492"></script> <script defer src="/src/utils/updateManager.js?v=1788239352576"></script>
<script type="module" src="/src/components/UpdateChecker.jsx?v=1788237895492"></script> <script type="module" src="/src/components/UpdateChecker.jsx?v=1788239352576"></script>
<script type="module" src="/dist/qr-local.js?v=1788237895492"></script> <script type="module" src="/dist/qr-local.js?v=1788239352576"></script>
<script type="module" src="/src/components/QRScanner.js?v=1788237895492"></script> <script type="module" src="/src/components/QRScanner.js?v=1788239352576"></script>
</head> </head>
<body> <body>
<div id="root"></div> <div id="root"></div>
<script type="module" src="/dist/app-boot.js?v=1788237895492"></script> <script type="module" src="/dist/app-boot.js?v=1788239352576"></script>
<script type="module" src="/dist/app.js?v=1788237895492"></script> <script type="module" src="/dist/app.js?v=1788239352576"></script>
<script defer src="/src/scripts/pwa-register.js?v=1788237895492"></script> <script defer src="/src/scripts/pwa-register.js?v=1788239352576"></script>
<script src="/src/pwa/install-prompt.js?v=1788237895492" type="module"></script> <script src="/src/pwa/install-prompt.js?v=1788239352576" type="module"></script>
<script src="/src/pwa/pwa-manager.js?v=1788237895492" type="module"></script> <script src="/src/pwa/pwa-manager.js?v=1788239352576" type="module"></script>
<script defer src="/src/scripts/pwa-offline-test.js?v=1788237895492"></script> <script defer src="/src/scripts/pwa-offline-test.js?v=1788239352576"></script>
<link rel="stylesheet" href="/src/styles/pwa.css?v=1788237895492"> <link rel="stylesheet" href="/src/styles/pwa.css?v=1788239352576">
</body> </body>
</html> </html>
+24 -24
View File
@@ -30,7 +30,7 @@
<!-- PWA Manifest --> <!-- PWA Manifest -->
<link rel="manifest" href="/he/manifest.json"> <link rel="manifest" href="/he/manifest.json">
<link rel="icon" type="image/x-icon" href="/logo/favicon.ico?v=1788237895492"> <link rel="icon" type="image/x-icon" href="/logo/favicon.ico?v=1788239352576">
<!-- PWA Meta Tags --> <!-- PWA Meta Tags -->
<meta name="mobile-web-app-capable" content="yes"> <meta name="mobile-web-app-capable" content="yes">
@@ -96,7 +96,7 @@
<link rel="apple-touch-startup-image" media="screen and (device-width: 744px) and (device-height: 1133px) and (-webkit-device-pixel-ratio: 2) and (orientation: portrait)" href="/logo/splash/splash_screens/8.3__iPad_Mini_portrait.png"> <link rel="apple-touch-startup-image" media="screen and (device-width: 744px) and (device-height: 1133px) and (-webkit-device-pixel-ratio: 2) and (orientation: portrait)" href="/logo/splash/splash_screens/8.3__iPad_Mini_portrait.png">
<!-- Apple Touch Icons --> <!-- Apple Touch Icons -->
<link rel="apple-touch-icon" href="/logo/icon-180x180.png?v=1788237895492"> <link rel="apple-touch-icon" href="/logo/icon-180x180.png?v=1788239352576">
<link rel="apple-touch-icon" sizes="57x57" href="/logo/icon-57x57.png"> <link rel="apple-touch-icon" sizes="57x57" href="/logo/icon-57x57.png">
<link rel="apple-touch-icon" sizes="60x60" href="/logo/icon-60x60.png"> <link rel="apple-touch-icon" sizes="60x60" href="/logo/icon-60x60.png">
<link rel="apple-touch-icon" sizes="72x72" href="/logo/icon-72x72.png"> <link rel="apple-touch-icon" sizes="72x72" href="/logo/icon-72x72.png">
@@ -105,7 +105,7 @@
<link rel="apple-touch-icon" sizes="120x120" href="/logo/icon-120x120.png"> <link rel="apple-touch-icon" sizes="120x120" href="/logo/icon-120x120.png">
<link rel="apple-touch-icon" sizes="144x144" href="/logo/icon-144x144.png"> <link rel="apple-touch-icon" sizes="144x144" href="/logo/icon-144x144.png">
<link rel="apple-touch-icon" sizes="152x152" href="/logo/icon-152x152.png"> <link rel="apple-touch-icon" sizes="152x152" href="/logo/icon-152x152.png">
<link rel="apple-touch-icon" sizes="180x180" href="/logo/icon-180x180.png?v=1788237895492"> <link rel="apple-touch-icon" sizes="180x180" href="/logo/icon-180x180.png?v=1788239352576">
<!-- Microsoft Tiles --> <!-- Microsoft Tiles -->
<meta name="msapplication-TileColor" content="#ff6b35"> <meta name="msapplication-TileColor" content="#ff6b35">
@@ -222,7 +222,7 @@
<!-- Render-blocking JS is deferred: classic deferred scripts and module scripts <!-- Render-blocking JS is deferred: classic deferred scripts and module scripts
both execute in document order after parsing, so React still runs before the both execute in document order after parsing, so React still runs before the
app modules below, but the parser / first paint is no longer blocked. --> app modules below, but the parser / first paint is no longer blocked. -->
<script defer src="/config/ice-servers.js?v=1788237895492"></script> <script defer src="/config/ice-servers.js?v=1788239352576"></script>
<script defer src="/libs/react/react.production.min.js"></script> <script defer src="/libs/react/react.production.min.js"></script>
<script defer src="/libs/react-dom/react-dom.production.min.js"></script> <script defer src="/libs/react-dom/react-dom.production.min.js"></script>
<!-- Prism syntax highlighting (vendored, offline). Tokenizes code as TEXT only — <!-- Prism syntax highlighting (vendored, offline). Tokenizes code as TEXT only —
@@ -230,8 +230,8 @@
Its CSS is loaded async via load-async-css.js (not paint-critical). --> Its CSS is loaded async via load-async-css.js (not paint-critical). -->
<script defer src="/libs/prism/prism.js"></script> <script defer src="/libs/prism/prism.js"></script>
<!-- Critical, paint-defining CSS stays render-blocking (avoids FOUC / layout shift). --> <!-- Critical, paint-defining CSS stays render-blocking (avoids FOUC / layout shift). -->
<link rel="stylesheet" href="/assets/tailwind.css?v=1788237895492"> <link rel="stylesheet" href="/assets/tailwind.css?v=1788239352576">
<link rel="icon" type="image/x-icon" href="/logo/favicon.ico?v=1788237895492"> <link rel="icon" type="image/x-icon" href="/logo/favicon.ico?v=1788239352576">
<!-- Preload only the fonts needed for first paint. fa-solid covers the bulk of UI <!-- Preload only the fonts needed for first paint. fa-solid covers the bulk of UI
icons; fa-regular/fa-brands are loaded on demand by their CSS (rarely on the icons; fa-regular/fa-brands are loaded on demand by their CSS (rarely on the
first screen). Inter latin 400/700 cover body text and headings/buttons. --> first screen). Inter latin 400/700 cover body text and headings/buttons. -->
@@ -239,38 +239,38 @@
<link rel="preload" href="/assets/fonts/inter/files/inter-latin-400.woff2" as="font" type="font/woff2" crossorigin> <link rel="preload" href="/assets/fonts/inter/files/inter-latin-400.woff2" as="font" type="font/woff2" crossorigin>
<link rel="preload" href="/assets/fonts/inter/files/inter-latin-700.woff2" as="font" type="font/woff2" crossorigin> <link rel="preload" href="/assets/fonts/inter/files/inter-latin-700.woff2" as="font" type="font/woff2" crossorigin>
<link rel="stylesheet" href="/assets/fonts/inter/inter.css"> <link rel="stylesheet" href="/assets/fonts/inter/inter.css">
<link rel="stylesheet" href="/src/styles/main.css?v=1788237895492"> <link rel="stylesheet" href="/src/styles/main.css?v=1788239352576">
<link rel="stylesheet" href="/src/styles/animations.css?v=1788237895492"> <link rel="stylesheet" href="/src/styles/animations.css?v=1788239352576">
<link rel="stylesheet" href="/src/styles/components.css?v=1788237895492"> <link rel="stylesheet" href="/src/styles/components.css?v=1788239352576">
<!-- Loads after components.css on purpose: press feedback, material weight, <!-- Loads after components.css on purpose: press feedback, material weight,
size-specific tracking and the reduced-motion / -transparency / -contrast size-specific tracking and the reduced-motion / -transparency / -contrast
answers all need to settle arguments with the sheets above on source order. --> answers all need to settle arguments with the sheets above on source order. -->
<link rel="stylesheet" href="/src/styles/apple-motion.css?v=1788237895492"> <link rel="stylesheet" href="/src/styles/apple-motion.css?v=1788239352576">
<!-- Last of the hand-written sheets: the mirroring rules must win over anything <!-- Last of the hand-written sheets: the mirroring rules must win over anything
above them, and they only ever apply under [dir="rtl"]. --> above them, and they only ever apply under [dir="rtl"]. -->
<link rel="stylesheet" href="/src/styles/rtl.css?v=1788237895492"> <link rel="stylesheet" href="/src/styles/rtl.css?v=1788239352576">
<!-- Non-critical CSS (FontAwesome ~102KB, Prism) loaded async — no longer blocks paint. --> <!-- Non-critical CSS (FontAwesome ~102KB, Prism) loaded async — no longer blocks paint. -->
<script defer src="/src/scripts/load-async-css.js?v=1788237895492"></script> <script defer src="/src/scripts/load-async-css.js?v=1788239352576"></script>
<noscript> <noscript>
<link rel="stylesheet" href="/assets/fontawesome/css/all.min.css"> <link rel="stylesheet" href="/assets/fontawesome/css/all.min.css">
<link rel="stylesheet" href="/libs/prism/prism.css"> <link rel="stylesheet" href="/libs/prism/prism.css">
</noscript> </noscript>
<script defer src="/src/scripts/fa-check.js?v=1788237895492"></script> <script defer src="/src/scripts/fa-check.js?v=1788239352576"></script>
<!-- Update Manager - система принудительного обновления --> <!-- Update Manager - система принудительного обновления -->
<script defer src="/src/utils/updateManager.js?v=1788237895492"></script> <script defer src="/src/utils/updateManager.js?v=1788239352576"></script>
<script type="module" src="/src/components/UpdateChecker.jsx?v=1788237895492"></script> <script type="module" src="/src/components/UpdateChecker.jsx?v=1788239352576"></script>
<script type="module" src="/dist/qr-local.js?v=1788237895492"></script> <script type="module" src="/dist/qr-local.js?v=1788239352576"></script>
<script type="module" src="/src/components/QRScanner.js?v=1788237895492"></script> <script type="module" src="/src/components/QRScanner.js?v=1788239352576"></script>
</head> </head>
<body> <body>
<div id="root"></div> <div id="root"></div>
<script type="module" src="/dist/app-boot.js?v=1788237895492"></script> <script type="module" src="/dist/app-boot.js?v=1788239352576"></script>
<script type="module" src="/dist/app.js?v=1788237895492"></script> <script type="module" src="/dist/app.js?v=1788239352576"></script>
<script defer src="/src/scripts/pwa-register.js?v=1788237895492"></script> <script defer src="/src/scripts/pwa-register.js?v=1788239352576"></script>
<script src="/src/pwa/install-prompt.js?v=1788237895492" type="module"></script> <script src="/src/pwa/install-prompt.js?v=1788239352576" type="module"></script>
<script src="/src/pwa/pwa-manager.js?v=1788237895492" type="module"></script> <script src="/src/pwa/pwa-manager.js?v=1788239352576" type="module"></script>
<script defer src="/src/scripts/pwa-offline-test.js?v=1788237895492"></script> <script defer src="/src/scripts/pwa-offline-test.js?v=1788239352576"></script>
<link rel="stylesheet" href="/src/styles/pwa.css?v=1788237895492"> <link rel="stylesheet" href="/src/styles/pwa.css?v=1788239352576">
</body> </body>
</html> </html>
+24 -24
View File
@@ -30,7 +30,7 @@
<!-- PWA Manifest --> <!-- PWA Manifest -->
<link rel="manifest" href="/hi/manifest.json"> <link rel="manifest" href="/hi/manifest.json">
<link rel="icon" type="image/x-icon" href="/logo/favicon.ico?v=1788237895492"> <link rel="icon" type="image/x-icon" href="/logo/favicon.ico?v=1788239352576">
<!-- PWA Meta Tags --> <!-- PWA Meta Tags -->
<meta name="mobile-web-app-capable" content="yes"> <meta name="mobile-web-app-capable" content="yes">
@@ -96,7 +96,7 @@
<link rel="apple-touch-startup-image" media="screen and (device-width: 744px) and (device-height: 1133px) and (-webkit-device-pixel-ratio: 2) and (orientation: portrait)" href="/logo/splash/splash_screens/8.3__iPad_Mini_portrait.png"> <link rel="apple-touch-startup-image" media="screen and (device-width: 744px) and (device-height: 1133px) and (-webkit-device-pixel-ratio: 2) and (orientation: portrait)" href="/logo/splash/splash_screens/8.3__iPad_Mini_portrait.png">
<!-- Apple Touch Icons --> <!-- Apple Touch Icons -->
<link rel="apple-touch-icon" href="/logo/icon-180x180.png?v=1788237895492"> <link rel="apple-touch-icon" href="/logo/icon-180x180.png?v=1788239352576">
<link rel="apple-touch-icon" sizes="57x57" href="/logo/icon-57x57.png"> <link rel="apple-touch-icon" sizes="57x57" href="/logo/icon-57x57.png">
<link rel="apple-touch-icon" sizes="60x60" href="/logo/icon-60x60.png"> <link rel="apple-touch-icon" sizes="60x60" href="/logo/icon-60x60.png">
<link rel="apple-touch-icon" sizes="72x72" href="/logo/icon-72x72.png"> <link rel="apple-touch-icon" sizes="72x72" href="/logo/icon-72x72.png">
@@ -105,7 +105,7 @@
<link rel="apple-touch-icon" sizes="120x120" href="/logo/icon-120x120.png"> <link rel="apple-touch-icon" sizes="120x120" href="/logo/icon-120x120.png">
<link rel="apple-touch-icon" sizes="144x144" href="/logo/icon-144x144.png"> <link rel="apple-touch-icon" sizes="144x144" href="/logo/icon-144x144.png">
<link rel="apple-touch-icon" sizes="152x152" href="/logo/icon-152x152.png"> <link rel="apple-touch-icon" sizes="152x152" href="/logo/icon-152x152.png">
<link rel="apple-touch-icon" sizes="180x180" href="/logo/icon-180x180.png?v=1788237895492"> <link rel="apple-touch-icon" sizes="180x180" href="/logo/icon-180x180.png?v=1788239352576">
<!-- Microsoft Tiles --> <!-- Microsoft Tiles -->
<meta name="msapplication-TileColor" content="#ff6b35"> <meta name="msapplication-TileColor" content="#ff6b35">
@@ -222,7 +222,7 @@
<!-- Render-blocking JS is deferred: classic deferred scripts and module scripts <!-- Render-blocking JS is deferred: classic deferred scripts and module scripts
both execute in document order after parsing, so React still runs before the both execute in document order after parsing, so React still runs before the
app modules below, but the parser / first paint is no longer blocked. --> app modules below, but the parser / first paint is no longer blocked. -->
<script defer src="/config/ice-servers.js?v=1788237895492"></script> <script defer src="/config/ice-servers.js?v=1788239352576"></script>
<script defer src="/libs/react/react.production.min.js"></script> <script defer src="/libs/react/react.production.min.js"></script>
<script defer src="/libs/react-dom/react-dom.production.min.js"></script> <script defer src="/libs/react-dom/react-dom.production.min.js"></script>
<!-- Prism syntax highlighting (vendored, offline). Tokenizes code as TEXT only — <!-- Prism syntax highlighting (vendored, offline). Tokenizes code as TEXT only —
@@ -230,8 +230,8 @@
Its CSS is loaded async via load-async-css.js (not paint-critical). --> Its CSS is loaded async via load-async-css.js (not paint-critical). -->
<script defer src="/libs/prism/prism.js"></script> <script defer src="/libs/prism/prism.js"></script>
<!-- Critical, paint-defining CSS stays render-blocking (avoids FOUC / layout shift). --> <!-- Critical, paint-defining CSS stays render-blocking (avoids FOUC / layout shift). -->
<link rel="stylesheet" href="/assets/tailwind.css?v=1788237895492"> <link rel="stylesheet" href="/assets/tailwind.css?v=1788239352576">
<link rel="icon" type="image/x-icon" href="/logo/favicon.ico?v=1788237895492"> <link rel="icon" type="image/x-icon" href="/logo/favicon.ico?v=1788239352576">
<!-- Preload only the fonts needed for first paint. fa-solid covers the bulk of UI <!-- Preload only the fonts needed for first paint. fa-solid covers the bulk of UI
icons; fa-regular/fa-brands are loaded on demand by their CSS (rarely on the icons; fa-regular/fa-brands are loaded on demand by their CSS (rarely on the
first screen). Inter latin 400/700 cover body text and headings/buttons. --> first screen). Inter latin 400/700 cover body text and headings/buttons. -->
@@ -239,38 +239,38 @@
<link rel="preload" href="/assets/fonts/inter/files/inter-latin-400.woff2" as="font" type="font/woff2" crossorigin> <link rel="preload" href="/assets/fonts/inter/files/inter-latin-400.woff2" as="font" type="font/woff2" crossorigin>
<link rel="preload" href="/assets/fonts/inter/files/inter-latin-700.woff2" as="font" type="font/woff2" crossorigin> <link rel="preload" href="/assets/fonts/inter/files/inter-latin-700.woff2" as="font" type="font/woff2" crossorigin>
<link rel="stylesheet" href="/assets/fonts/inter/inter.css"> <link rel="stylesheet" href="/assets/fonts/inter/inter.css">
<link rel="stylesheet" href="/src/styles/main.css?v=1788237895492"> <link rel="stylesheet" href="/src/styles/main.css?v=1788239352576">
<link rel="stylesheet" href="/src/styles/animations.css?v=1788237895492"> <link rel="stylesheet" href="/src/styles/animations.css?v=1788239352576">
<link rel="stylesheet" href="/src/styles/components.css?v=1788237895492"> <link rel="stylesheet" href="/src/styles/components.css?v=1788239352576">
<!-- Loads after components.css on purpose: press feedback, material weight, <!-- Loads after components.css on purpose: press feedback, material weight,
size-specific tracking and the reduced-motion / -transparency / -contrast size-specific tracking and the reduced-motion / -transparency / -contrast
answers all need to settle arguments with the sheets above on source order. --> answers all need to settle arguments with the sheets above on source order. -->
<link rel="stylesheet" href="/src/styles/apple-motion.css?v=1788237895492"> <link rel="stylesheet" href="/src/styles/apple-motion.css?v=1788239352576">
<!-- Last of the hand-written sheets: the mirroring rules must win over anything <!-- Last of the hand-written sheets: the mirroring rules must win over anything
above them, and they only ever apply under [dir="rtl"]. --> above them, and they only ever apply under [dir="rtl"]. -->
<link rel="stylesheet" href="/src/styles/rtl.css?v=1788237895492"> <link rel="stylesheet" href="/src/styles/rtl.css?v=1788239352576">
<!-- Non-critical CSS (FontAwesome ~102KB, Prism) loaded async — no longer blocks paint. --> <!-- Non-critical CSS (FontAwesome ~102KB, Prism) loaded async — no longer blocks paint. -->
<script defer src="/src/scripts/load-async-css.js?v=1788237895492"></script> <script defer src="/src/scripts/load-async-css.js?v=1788239352576"></script>
<noscript> <noscript>
<link rel="stylesheet" href="/assets/fontawesome/css/all.min.css"> <link rel="stylesheet" href="/assets/fontawesome/css/all.min.css">
<link rel="stylesheet" href="/libs/prism/prism.css"> <link rel="stylesheet" href="/libs/prism/prism.css">
</noscript> </noscript>
<script defer src="/src/scripts/fa-check.js?v=1788237895492"></script> <script defer src="/src/scripts/fa-check.js?v=1788239352576"></script>
<!-- Update Manager - система принудительного обновления --> <!-- Update Manager - система принудительного обновления -->
<script defer src="/src/utils/updateManager.js?v=1788237895492"></script> <script defer src="/src/utils/updateManager.js?v=1788239352576"></script>
<script type="module" src="/src/components/UpdateChecker.jsx?v=1788237895492"></script> <script type="module" src="/src/components/UpdateChecker.jsx?v=1788239352576"></script>
<script type="module" src="/dist/qr-local.js?v=1788237895492"></script> <script type="module" src="/dist/qr-local.js?v=1788239352576"></script>
<script type="module" src="/src/components/QRScanner.js?v=1788237895492"></script> <script type="module" src="/src/components/QRScanner.js?v=1788239352576"></script>
</head> </head>
<body> <body>
<div id="root"></div> <div id="root"></div>
<script type="module" src="/dist/app-boot.js?v=1788237895492"></script> <script type="module" src="/dist/app-boot.js?v=1788239352576"></script>
<script type="module" src="/dist/app.js?v=1788237895492"></script> <script type="module" src="/dist/app.js?v=1788239352576"></script>
<script defer src="/src/scripts/pwa-register.js?v=1788237895492"></script> <script defer src="/src/scripts/pwa-register.js?v=1788239352576"></script>
<script src="/src/pwa/install-prompt.js?v=1788237895492" type="module"></script> <script src="/src/pwa/install-prompt.js?v=1788239352576" type="module"></script>
<script src="/src/pwa/pwa-manager.js?v=1788237895492" type="module"></script> <script src="/src/pwa/pwa-manager.js?v=1788239352576" type="module"></script>
<script defer src="/src/scripts/pwa-offline-test.js?v=1788237895492"></script> <script defer src="/src/scripts/pwa-offline-test.js?v=1788239352576"></script>
<link rel="stylesheet" href="/src/styles/pwa.css?v=1788237895492"> <link rel="stylesheet" href="/src/styles/pwa.css?v=1788239352576">
</body> </body>
</html> </html>
+24 -24
View File
@@ -30,7 +30,7 @@
<!-- PWA Manifest --> <!-- PWA Manifest -->
<link rel="manifest" href="/manifest.json"> <link rel="manifest" href="/manifest.json">
<link rel="icon" type="image/x-icon" href="/logo/favicon.ico?v=1788237895492"> <link rel="icon" type="image/x-icon" href="/logo/favicon.ico?v=1788239352576">
<!-- PWA Meta Tags --> <!-- PWA Meta Tags -->
<meta name="mobile-web-app-capable" content="yes"> <meta name="mobile-web-app-capable" content="yes">
@@ -96,7 +96,7 @@
<link rel="apple-touch-startup-image" media="screen and (device-width: 744px) and (device-height: 1133px) and (-webkit-device-pixel-ratio: 2) and (orientation: portrait)" href="/logo/splash/splash_screens/8.3__iPad_Mini_portrait.png"> <link rel="apple-touch-startup-image" media="screen and (device-width: 744px) and (device-height: 1133px) and (-webkit-device-pixel-ratio: 2) and (orientation: portrait)" href="/logo/splash/splash_screens/8.3__iPad_Mini_portrait.png">
<!-- Apple Touch Icons --> <!-- Apple Touch Icons -->
<link rel="apple-touch-icon" href="/logo/icon-180x180.png?v=1788237895492"> <link rel="apple-touch-icon" href="/logo/icon-180x180.png?v=1788239352576">
<link rel="apple-touch-icon" sizes="57x57" href="/logo/icon-57x57.png"> <link rel="apple-touch-icon" sizes="57x57" href="/logo/icon-57x57.png">
<link rel="apple-touch-icon" sizes="60x60" href="/logo/icon-60x60.png"> <link rel="apple-touch-icon" sizes="60x60" href="/logo/icon-60x60.png">
<link rel="apple-touch-icon" sizes="72x72" href="/logo/icon-72x72.png"> <link rel="apple-touch-icon" sizes="72x72" href="/logo/icon-72x72.png">
@@ -105,7 +105,7 @@
<link rel="apple-touch-icon" sizes="120x120" href="/logo/icon-120x120.png"> <link rel="apple-touch-icon" sizes="120x120" href="/logo/icon-120x120.png">
<link rel="apple-touch-icon" sizes="144x144" href="/logo/icon-144x144.png"> <link rel="apple-touch-icon" sizes="144x144" href="/logo/icon-144x144.png">
<link rel="apple-touch-icon" sizes="152x152" href="/logo/icon-152x152.png"> <link rel="apple-touch-icon" sizes="152x152" href="/logo/icon-152x152.png">
<link rel="apple-touch-icon" sizes="180x180" href="/logo/icon-180x180.png?v=1788237895492"> <link rel="apple-touch-icon" sizes="180x180" href="/logo/icon-180x180.png?v=1788239352576">
<!-- Microsoft Tiles --> <!-- Microsoft Tiles -->
<meta name="msapplication-TileColor" content="#ff6b35"> <meta name="msapplication-TileColor" content="#ff6b35">
@@ -222,7 +222,7 @@
<!-- Render-blocking JS is deferred: classic deferred scripts and module scripts <!-- Render-blocking JS is deferred: classic deferred scripts and module scripts
both execute in document order after parsing, so React still runs before the both execute in document order after parsing, so React still runs before the
app modules below, but the parser / first paint is no longer blocked. --> app modules below, but the parser / first paint is no longer blocked. -->
<script defer src="/config/ice-servers.js?v=1788237895492"></script> <script defer src="/config/ice-servers.js?v=1788239352576"></script>
<script defer src="/libs/react/react.production.min.js"></script> <script defer src="/libs/react/react.production.min.js"></script>
<script defer src="/libs/react-dom/react-dom.production.min.js"></script> <script defer src="/libs/react-dom/react-dom.production.min.js"></script>
<!-- Prism syntax highlighting (vendored, offline). Tokenizes code as TEXT only — <!-- Prism syntax highlighting (vendored, offline). Tokenizes code as TEXT only —
@@ -230,8 +230,8 @@
Its CSS is loaded async via load-async-css.js (not paint-critical). --> Its CSS is loaded async via load-async-css.js (not paint-critical). -->
<script defer src="/libs/prism/prism.js"></script> <script defer src="/libs/prism/prism.js"></script>
<!-- Critical, paint-defining CSS stays render-blocking (avoids FOUC / layout shift). --> <!-- Critical, paint-defining CSS stays render-blocking (avoids FOUC / layout shift). -->
<link rel="stylesheet" href="/assets/tailwind.css?v=1788237895492"> <link rel="stylesheet" href="/assets/tailwind.css?v=1788239352576">
<link rel="icon" type="image/x-icon" href="/logo/favicon.ico?v=1788237895492"> <link rel="icon" type="image/x-icon" href="/logo/favicon.ico?v=1788239352576">
<!-- Preload only the fonts needed for first paint. fa-solid covers the bulk of UI <!-- Preload only the fonts needed for first paint. fa-solid covers the bulk of UI
icons; fa-regular/fa-brands are loaded on demand by their CSS (rarely on the icons; fa-regular/fa-brands are loaded on demand by their CSS (rarely on the
first screen). Inter latin 400/700 cover body text and headings/buttons. --> first screen). Inter latin 400/700 cover body text and headings/buttons. -->
@@ -239,38 +239,38 @@
<link rel="preload" href="/assets/fonts/inter/files/inter-latin-400.woff2" as="font" type="font/woff2" crossorigin> <link rel="preload" href="/assets/fonts/inter/files/inter-latin-400.woff2" as="font" type="font/woff2" crossorigin>
<link rel="preload" href="/assets/fonts/inter/files/inter-latin-700.woff2" as="font" type="font/woff2" crossorigin> <link rel="preload" href="/assets/fonts/inter/files/inter-latin-700.woff2" as="font" type="font/woff2" crossorigin>
<link rel="stylesheet" href="/assets/fonts/inter/inter.css"> <link rel="stylesheet" href="/assets/fonts/inter/inter.css">
<link rel="stylesheet" href="/src/styles/main.css?v=1788237895492"> <link rel="stylesheet" href="/src/styles/main.css?v=1788239352576">
<link rel="stylesheet" href="/src/styles/animations.css?v=1788237895492"> <link rel="stylesheet" href="/src/styles/animations.css?v=1788239352576">
<link rel="stylesheet" href="/src/styles/components.css?v=1788237895492"> <link rel="stylesheet" href="/src/styles/components.css?v=1788239352576">
<!-- Loads after components.css on purpose: press feedback, material weight, <!-- Loads after components.css on purpose: press feedback, material weight,
size-specific tracking and the reduced-motion / -transparency / -contrast size-specific tracking and the reduced-motion / -transparency / -contrast
answers all need to settle arguments with the sheets above on source order. --> answers all need to settle arguments with the sheets above on source order. -->
<link rel="stylesheet" href="/src/styles/apple-motion.css?v=1788237895492"> <link rel="stylesheet" href="/src/styles/apple-motion.css?v=1788239352576">
<!-- Last of the hand-written sheets: the mirroring rules must win over anything <!-- Last of the hand-written sheets: the mirroring rules must win over anything
above them, and they only ever apply under [dir="rtl"]. --> above them, and they only ever apply under [dir="rtl"]. -->
<link rel="stylesheet" href="/src/styles/rtl.css?v=1788237895492"> <link rel="stylesheet" href="/src/styles/rtl.css?v=1788239352576">
<!-- Non-critical CSS (FontAwesome ~102KB, Prism) loaded async — no longer blocks paint. --> <!-- Non-critical CSS (FontAwesome ~102KB, Prism) loaded async — no longer blocks paint. -->
<script defer src="/src/scripts/load-async-css.js?v=1788237895492"></script> <script defer src="/src/scripts/load-async-css.js?v=1788239352576"></script>
<noscript> <noscript>
<link rel="stylesheet" href="/assets/fontawesome/css/all.min.css"> <link rel="stylesheet" href="/assets/fontawesome/css/all.min.css">
<link rel="stylesheet" href="/libs/prism/prism.css"> <link rel="stylesheet" href="/libs/prism/prism.css">
</noscript> </noscript>
<script defer src="/src/scripts/fa-check.js?v=1788237895492"></script> <script defer src="/src/scripts/fa-check.js?v=1788239352576"></script>
<!-- Update Manager - система принудительного обновления --> <!-- Update Manager - система принудительного обновления -->
<script defer src="/src/utils/updateManager.js?v=1788237895492"></script> <script defer src="/src/utils/updateManager.js?v=1788239352576"></script>
<script type="module" src="/src/components/UpdateChecker.jsx?v=1788237895492"></script> <script type="module" src="/src/components/UpdateChecker.jsx?v=1788239352576"></script>
<script type="module" src="/dist/qr-local.js?v=1788237895492"></script> <script type="module" src="/dist/qr-local.js?v=1788239352576"></script>
<script type="module" src="/src/components/QRScanner.js?v=1788237895492"></script> <script type="module" src="/src/components/QRScanner.js?v=1788239352576"></script>
</head> </head>
<body> <body>
<div id="root"></div> <div id="root"></div>
<script type="module" src="/dist/app-boot.js?v=1788237895492"></script> <script type="module" src="/dist/app-boot.js?v=1788239352576"></script>
<script type="module" src="/dist/app.js?v=1788237895492"></script> <script type="module" src="/dist/app.js?v=1788239352576"></script>
<script defer src="/src/scripts/pwa-register.js?v=1788237895492"></script> <script defer src="/src/scripts/pwa-register.js?v=1788239352576"></script>
<script src="/src/pwa/install-prompt.js?v=1788237895492" type="module"></script> <script src="/src/pwa/install-prompt.js?v=1788239352576" type="module"></script>
<script src="/src/pwa/pwa-manager.js?v=1788237895492" type="module"></script> <script src="/src/pwa/pwa-manager.js?v=1788239352576" type="module"></script>
<script defer src="/src/scripts/pwa-offline-test.js?v=1788237895492"></script> <script defer src="/src/scripts/pwa-offline-test.js?v=1788239352576"></script>
<link rel="stylesheet" href="/src/styles/pwa.css?v=1788237895492"> <link rel="stylesheet" href="/src/styles/pwa.css?v=1788239352576">
</body> </body>
</html> </html>
+24 -24
View File
@@ -30,7 +30,7 @@
<!-- PWA Manifest --> <!-- PWA Manifest -->
<link rel="manifest" href="/ko/manifest.json"> <link rel="manifest" href="/ko/manifest.json">
<link rel="icon" type="image/x-icon" href="/logo/favicon.ico?v=1788237895492"> <link rel="icon" type="image/x-icon" href="/logo/favicon.ico?v=1788239352576">
<!-- PWA Meta Tags --> <!-- PWA Meta Tags -->
<meta name="mobile-web-app-capable" content="yes"> <meta name="mobile-web-app-capable" content="yes">
@@ -96,7 +96,7 @@
<link rel="apple-touch-startup-image" media="screen and (device-width: 744px) and (device-height: 1133px) and (-webkit-device-pixel-ratio: 2) and (orientation: portrait)" href="/logo/splash/splash_screens/8.3__iPad_Mini_portrait.png"> <link rel="apple-touch-startup-image" media="screen and (device-width: 744px) and (device-height: 1133px) and (-webkit-device-pixel-ratio: 2) and (orientation: portrait)" href="/logo/splash/splash_screens/8.3__iPad_Mini_portrait.png">
<!-- Apple Touch Icons --> <!-- Apple Touch Icons -->
<link rel="apple-touch-icon" href="/logo/icon-180x180.png?v=1788237895492"> <link rel="apple-touch-icon" href="/logo/icon-180x180.png?v=1788239352576">
<link rel="apple-touch-icon" sizes="57x57" href="/logo/icon-57x57.png"> <link rel="apple-touch-icon" sizes="57x57" href="/logo/icon-57x57.png">
<link rel="apple-touch-icon" sizes="60x60" href="/logo/icon-60x60.png"> <link rel="apple-touch-icon" sizes="60x60" href="/logo/icon-60x60.png">
<link rel="apple-touch-icon" sizes="72x72" href="/logo/icon-72x72.png"> <link rel="apple-touch-icon" sizes="72x72" href="/logo/icon-72x72.png">
@@ -105,7 +105,7 @@
<link rel="apple-touch-icon" sizes="120x120" href="/logo/icon-120x120.png"> <link rel="apple-touch-icon" sizes="120x120" href="/logo/icon-120x120.png">
<link rel="apple-touch-icon" sizes="144x144" href="/logo/icon-144x144.png"> <link rel="apple-touch-icon" sizes="144x144" href="/logo/icon-144x144.png">
<link rel="apple-touch-icon" sizes="152x152" href="/logo/icon-152x152.png"> <link rel="apple-touch-icon" sizes="152x152" href="/logo/icon-152x152.png">
<link rel="apple-touch-icon" sizes="180x180" href="/logo/icon-180x180.png?v=1788237895492"> <link rel="apple-touch-icon" sizes="180x180" href="/logo/icon-180x180.png?v=1788239352576">
<!-- Microsoft Tiles --> <!-- Microsoft Tiles -->
<meta name="msapplication-TileColor" content="#ff6b35"> <meta name="msapplication-TileColor" content="#ff6b35">
@@ -222,7 +222,7 @@
<!-- Render-blocking JS is deferred: classic deferred scripts and module scripts <!-- Render-blocking JS is deferred: classic deferred scripts and module scripts
both execute in document order after parsing, so React still runs before the both execute in document order after parsing, so React still runs before the
app modules below, but the parser / first paint is no longer blocked. --> app modules below, but the parser / first paint is no longer blocked. -->
<script defer src="/config/ice-servers.js?v=1788237895492"></script> <script defer src="/config/ice-servers.js?v=1788239352576"></script>
<script defer src="/libs/react/react.production.min.js"></script> <script defer src="/libs/react/react.production.min.js"></script>
<script defer src="/libs/react-dom/react-dom.production.min.js"></script> <script defer src="/libs/react-dom/react-dom.production.min.js"></script>
<!-- Prism syntax highlighting (vendored, offline). Tokenizes code as TEXT only — <!-- Prism syntax highlighting (vendored, offline). Tokenizes code as TEXT only —
@@ -230,8 +230,8 @@
Its CSS is loaded async via load-async-css.js (not paint-critical). --> Its CSS is loaded async via load-async-css.js (not paint-critical). -->
<script defer src="/libs/prism/prism.js"></script> <script defer src="/libs/prism/prism.js"></script>
<!-- Critical, paint-defining CSS stays render-blocking (avoids FOUC / layout shift). --> <!-- Critical, paint-defining CSS stays render-blocking (avoids FOUC / layout shift). -->
<link rel="stylesheet" href="/assets/tailwind.css?v=1788237895492"> <link rel="stylesheet" href="/assets/tailwind.css?v=1788239352576">
<link rel="icon" type="image/x-icon" href="/logo/favicon.ico?v=1788237895492"> <link rel="icon" type="image/x-icon" href="/logo/favicon.ico?v=1788239352576">
<!-- Preload only the fonts needed for first paint. fa-solid covers the bulk of UI <!-- Preload only the fonts needed for first paint. fa-solid covers the bulk of UI
icons; fa-regular/fa-brands are loaded on demand by their CSS (rarely on the icons; fa-regular/fa-brands are loaded on demand by their CSS (rarely on the
first screen). Inter latin 400/700 cover body text and headings/buttons. --> first screen). Inter latin 400/700 cover body text and headings/buttons. -->
@@ -239,38 +239,38 @@
<link rel="preload" href="/assets/fonts/inter/files/inter-latin-400.woff2" as="font" type="font/woff2" crossorigin> <link rel="preload" href="/assets/fonts/inter/files/inter-latin-400.woff2" as="font" type="font/woff2" crossorigin>
<link rel="preload" href="/assets/fonts/inter/files/inter-latin-700.woff2" as="font" type="font/woff2" crossorigin> <link rel="preload" href="/assets/fonts/inter/files/inter-latin-700.woff2" as="font" type="font/woff2" crossorigin>
<link rel="stylesheet" href="/assets/fonts/inter/inter.css"> <link rel="stylesheet" href="/assets/fonts/inter/inter.css">
<link rel="stylesheet" href="/src/styles/main.css?v=1788237895492"> <link rel="stylesheet" href="/src/styles/main.css?v=1788239352576">
<link rel="stylesheet" href="/src/styles/animations.css?v=1788237895492"> <link rel="stylesheet" href="/src/styles/animations.css?v=1788239352576">
<link rel="stylesheet" href="/src/styles/components.css?v=1788237895492"> <link rel="stylesheet" href="/src/styles/components.css?v=1788239352576">
<!-- Loads after components.css on purpose: press feedback, material weight, <!-- Loads after components.css on purpose: press feedback, material weight,
size-specific tracking and the reduced-motion / -transparency / -contrast size-specific tracking and the reduced-motion / -transparency / -contrast
answers all need to settle arguments with the sheets above on source order. --> answers all need to settle arguments with the sheets above on source order. -->
<link rel="stylesheet" href="/src/styles/apple-motion.css?v=1788237895492"> <link rel="stylesheet" href="/src/styles/apple-motion.css?v=1788239352576">
<!-- Last of the hand-written sheets: the mirroring rules must win over anything <!-- Last of the hand-written sheets: the mirroring rules must win over anything
above them, and they only ever apply under [dir="rtl"]. --> above them, and they only ever apply under [dir="rtl"]. -->
<link rel="stylesheet" href="/src/styles/rtl.css?v=1788237895492"> <link rel="stylesheet" href="/src/styles/rtl.css?v=1788239352576">
<!-- Non-critical CSS (FontAwesome ~102KB, Prism) loaded async — no longer blocks paint. --> <!-- Non-critical CSS (FontAwesome ~102KB, Prism) loaded async — no longer blocks paint. -->
<script defer src="/src/scripts/load-async-css.js?v=1788237895492"></script> <script defer src="/src/scripts/load-async-css.js?v=1788239352576"></script>
<noscript> <noscript>
<link rel="stylesheet" href="/assets/fontawesome/css/all.min.css"> <link rel="stylesheet" href="/assets/fontawesome/css/all.min.css">
<link rel="stylesheet" href="/libs/prism/prism.css"> <link rel="stylesheet" href="/libs/prism/prism.css">
</noscript> </noscript>
<script defer src="/src/scripts/fa-check.js?v=1788237895492"></script> <script defer src="/src/scripts/fa-check.js?v=1788239352576"></script>
<!-- Update Manager - система принудительного обновления --> <!-- Update Manager - система принудительного обновления -->
<script defer src="/src/utils/updateManager.js?v=1788237895492"></script> <script defer src="/src/utils/updateManager.js?v=1788239352576"></script>
<script type="module" src="/src/components/UpdateChecker.jsx?v=1788237895492"></script> <script type="module" src="/src/components/UpdateChecker.jsx?v=1788239352576"></script>
<script type="module" src="/dist/qr-local.js?v=1788237895492"></script> <script type="module" src="/dist/qr-local.js?v=1788239352576"></script>
<script type="module" src="/src/components/QRScanner.js?v=1788237895492"></script> <script type="module" src="/src/components/QRScanner.js?v=1788239352576"></script>
</head> </head>
<body> <body>
<div id="root"></div> <div id="root"></div>
<script type="module" src="/dist/app-boot.js?v=1788237895492"></script> <script type="module" src="/dist/app-boot.js?v=1788239352576"></script>
<script type="module" src="/dist/app.js?v=1788237895492"></script> <script type="module" src="/dist/app.js?v=1788239352576"></script>
<script defer src="/src/scripts/pwa-register.js?v=1788237895492"></script> <script defer src="/src/scripts/pwa-register.js?v=1788239352576"></script>
<script src="/src/pwa/install-prompt.js?v=1788237895492" type="module"></script> <script src="/src/pwa/install-prompt.js?v=1788239352576" type="module"></script>
<script src="/src/pwa/pwa-manager.js?v=1788237895492" type="module"></script> <script src="/src/pwa/pwa-manager.js?v=1788239352576" type="module"></script>
<script defer src="/src/scripts/pwa-offline-test.js?v=1788237895492"></script> <script defer src="/src/scripts/pwa-offline-test.js?v=1788239352576"></script>
<link rel="stylesheet" href="/src/styles/pwa.css?v=1788237895492"> <link rel="stylesheet" href="/src/styles/pwa.css?v=1788239352576">
</body> </body>
</html> </html>
+7 -7
View File
@@ -1,10 +1,10 @@
{ {
"version": "1788237895492", "version": "1788239352576",
"buildVersion": "1788237895492", "buildVersion": "1788239352576",
"appVersion": "6.6.6", "appVersion": "6.7.0",
"buildTime": "2026-09-01T04:44:55.550Z", "buildTime": "2026-09-01T05:09:12.623Z",
"buildId": "1788237895492-5e32f54", "buildId": "1788239352576-113bb10",
"gitHash": "5e32f54", "gitHash": "113bb10",
"generated": true, "generated": true,
"generatedAt": "2026-09-01T04:44:55.553Z" "generatedAt": "2026-09-01T05:09:12.625Z"
} }
+1 -1
View File
@@ -1,6 +1,6 @@
{ {
"name": "securebit-chat", "name": "securebit-chat",
"version": "6.6.6", "version": "6.7.0",
"description": "Secure P2P Communication Application with End-to-End Encryption", "description": "Secure P2P Communication Application with End-to-End Encryption",
"main": "index.html", "main": "index.html",
"scripts": { "scripts": {
+24 -24
View File
@@ -30,7 +30,7 @@
<!-- PWA Manifest --> <!-- PWA Manifest -->
<link rel="manifest" href="/ru/manifest.json"> <link rel="manifest" href="/ru/manifest.json">
<link rel="icon" type="image/x-icon" href="/logo/favicon.ico?v=1788237895492"> <link rel="icon" type="image/x-icon" href="/logo/favicon.ico?v=1788239352576">
<!-- PWA Meta Tags --> <!-- PWA Meta Tags -->
<meta name="mobile-web-app-capable" content="yes"> <meta name="mobile-web-app-capable" content="yes">
@@ -96,7 +96,7 @@
<link rel="apple-touch-startup-image" media="screen and (device-width: 744px) and (device-height: 1133px) and (-webkit-device-pixel-ratio: 2) and (orientation: portrait)" href="/logo/splash/splash_screens/8.3__iPad_Mini_portrait.png"> <link rel="apple-touch-startup-image" media="screen and (device-width: 744px) and (device-height: 1133px) and (-webkit-device-pixel-ratio: 2) and (orientation: portrait)" href="/logo/splash/splash_screens/8.3__iPad_Mini_portrait.png">
<!-- Apple Touch Icons --> <!-- Apple Touch Icons -->
<link rel="apple-touch-icon" href="/logo/icon-180x180.png?v=1788237895492"> <link rel="apple-touch-icon" href="/logo/icon-180x180.png?v=1788239352576">
<link rel="apple-touch-icon" sizes="57x57" href="/logo/icon-57x57.png"> <link rel="apple-touch-icon" sizes="57x57" href="/logo/icon-57x57.png">
<link rel="apple-touch-icon" sizes="60x60" href="/logo/icon-60x60.png"> <link rel="apple-touch-icon" sizes="60x60" href="/logo/icon-60x60.png">
<link rel="apple-touch-icon" sizes="72x72" href="/logo/icon-72x72.png"> <link rel="apple-touch-icon" sizes="72x72" href="/logo/icon-72x72.png">
@@ -105,7 +105,7 @@
<link rel="apple-touch-icon" sizes="120x120" href="/logo/icon-120x120.png"> <link rel="apple-touch-icon" sizes="120x120" href="/logo/icon-120x120.png">
<link rel="apple-touch-icon" sizes="144x144" href="/logo/icon-144x144.png"> <link rel="apple-touch-icon" sizes="144x144" href="/logo/icon-144x144.png">
<link rel="apple-touch-icon" sizes="152x152" href="/logo/icon-152x152.png"> <link rel="apple-touch-icon" sizes="152x152" href="/logo/icon-152x152.png">
<link rel="apple-touch-icon" sizes="180x180" href="/logo/icon-180x180.png?v=1788237895492"> <link rel="apple-touch-icon" sizes="180x180" href="/logo/icon-180x180.png?v=1788239352576">
<!-- Microsoft Tiles --> <!-- Microsoft Tiles -->
<meta name="msapplication-TileColor" content="#ff6b35"> <meta name="msapplication-TileColor" content="#ff6b35">
@@ -222,7 +222,7 @@
<!-- Render-blocking JS is deferred: classic deferred scripts and module scripts <!-- Render-blocking JS is deferred: classic deferred scripts and module scripts
both execute in document order after parsing, so React still runs before the both execute in document order after parsing, so React still runs before the
app modules below, but the parser / first paint is no longer blocked. --> app modules below, but the parser / first paint is no longer blocked. -->
<script defer src="/config/ice-servers.js?v=1788237895492"></script> <script defer src="/config/ice-servers.js?v=1788239352576"></script>
<script defer src="/libs/react/react.production.min.js"></script> <script defer src="/libs/react/react.production.min.js"></script>
<script defer src="/libs/react-dom/react-dom.production.min.js"></script> <script defer src="/libs/react-dom/react-dom.production.min.js"></script>
<!-- Prism syntax highlighting (vendored, offline). Tokenizes code as TEXT only — <!-- Prism syntax highlighting (vendored, offline). Tokenizes code as TEXT only —
@@ -230,8 +230,8 @@
Its CSS is loaded async via load-async-css.js (not paint-critical). --> Its CSS is loaded async via load-async-css.js (not paint-critical). -->
<script defer src="/libs/prism/prism.js"></script> <script defer src="/libs/prism/prism.js"></script>
<!-- Critical, paint-defining CSS stays render-blocking (avoids FOUC / layout shift). --> <!-- Critical, paint-defining CSS stays render-blocking (avoids FOUC / layout shift). -->
<link rel="stylesheet" href="/assets/tailwind.css?v=1788237895492"> <link rel="stylesheet" href="/assets/tailwind.css?v=1788239352576">
<link rel="icon" type="image/x-icon" href="/logo/favicon.ico?v=1788237895492"> <link rel="icon" type="image/x-icon" href="/logo/favicon.ico?v=1788239352576">
<!-- Preload only the fonts needed for first paint. fa-solid covers the bulk of UI <!-- Preload only the fonts needed for first paint. fa-solid covers the bulk of UI
icons; fa-regular/fa-brands are loaded on demand by their CSS (rarely on the icons; fa-regular/fa-brands are loaded on demand by their CSS (rarely on the
first screen). Inter latin 400/700 cover body text and headings/buttons. --> first screen). Inter latin 400/700 cover body text and headings/buttons. -->
@@ -239,38 +239,38 @@
<link rel="preload" href="/assets/fonts/inter/files/inter-latin-400.woff2" as="font" type="font/woff2" crossorigin> <link rel="preload" href="/assets/fonts/inter/files/inter-latin-400.woff2" as="font" type="font/woff2" crossorigin>
<link rel="preload" href="/assets/fonts/inter/files/inter-latin-700.woff2" as="font" type="font/woff2" crossorigin> <link rel="preload" href="/assets/fonts/inter/files/inter-latin-700.woff2" as="font" type="font/woff2" crossorigin>
<link rel="stylesheet" href="/assets/fonts/inter/inter.css"> <link rel="stylesheet" href="/assets/fonts/inter/inter.css">
<link rel="stylesheet" href="/src/styles/main.css?v=1788237895492"> <link rel="stylesheet" href="/src/styles/main.css?v=1788239352576">
<link rel="stylesheet" href="/src/styles/animations.css?v=1788237895492"> <link rel="stylesheet" href="/src/styles/animations.css?v=1788239352576">
<link rel="stylesheet" href="/src/styles/components.css?v=1788237895492"> <link rel="stylesheet" href="/src/styles/components.css?v=1788239352576">
<!-- Loads after components.css on purpose: press feedback, material weight, <!-- Loads after components.css on purpose: press feedback, material weight,
size-specific tracking and the reduced-motion / -transparency / -contrast size-specific tracking and the reduced-motion / -transparency / -contrast
answers all need to settle arguments with the sheets above on source order. --> answers all need to settle arguments with the sheets above on source order. -->
<link rel="stylesheet" href="/src/styles/apple-motion.css?v=1788237895492"> <link rel="stylesheet" href="/src/styles/apple-motion.css?v=1788239352576">
<!-- Last of the hand-written sheets: the mirroring rules must win over anything <!-- Last of the hand-written sheets: the mirroring rules must win over anything
above them, and they only ever apply under [dir="rtl"]. --> above them, and they only ever apply under [dir="rtl"]. -->
<link rel="stylesheet" href="/src/styles/rtl.css?v=1788237895492"> <link rel="stylesheet" href="/src/styles/rtl.css?v=1788239352576">
<!-- Non-critical CSS (FontAwesome ~102KB, Prism) loaded async — no longer blocks paint. --> <!-- Non-critical CSS (FontAwesome ~102KB, Prism) loaded async — no longer blocks paint. -->
<script defer src="/src/scripts/load-async-css.js?v=1788237895492"></script> <script defer src="/src/scripts/load-async-css.js?v=1788239352576"></script>
<noscript> <noscript>
<link rel="stylesheet" href="/assets/fontawesome/css/all.min.css"> <link rel="stylesheet" href="/assets/fontawesome/css/all.min.css">
<link rel="stylesheet" href="/libs/prism/prism.css"> <link rel="stylesheet" href="/libs/prism/prism.css">
</noscript> </noscript>
<script defer src="/src/scripts/fa-check.js?v=1788237895492"></script> <script defer src="/src/scripts/fa-check.js?v=1788239352576"></script>
<!-- Update Manager - система принудительного обновления --> <!-- Update Manager - система принудительного обновления -->
<script defer src="/src/utils/updateManager.js?v=1788237895492"></script> <script defer src="/src/utils/updateManager.js?v=1788239352576"></script>
<script type="module" src="/src/components/UpdateChecker.jsx?v=1788237895492"></script> <script type="module" src="/src/components/UpdateChecker.jsx?v=1788239352576"></script>
<script type="module" src="/dist/qr-local.js?v=1788237895492"></script> <script type="module" src="/dist/qr-local.js?v=1788239352576"></script>
<script type="module" src="/src/components/QRScanner.js?v=1788237895492"></script> <script type="module" src="/src/components/QRScanner.js?v=1788239352576"></script>
</head> </head>
<body> <body>
<div id="root"></div> <div id="root"></div>
<script type="module" src="/dist/app-boot.js?v=1788237895492"></script> <script type="module" src="/dist/app-boot.js?v=1788239352576"></script>
<script type="module" src="/dist/app.js?v=1788237895492"></script> <script type="module" src="/dist/app.js?v=1788239352576"></script>
<script defer src="/src/scripts/pwa-register.js?v=1788237895492"></script> <script defer src="/src/scripts/pwa-register.js?v=1788239352576"></script>
<script src="/src/pwa/install-prompt.js?v=1788237895492" type="module"></script> <script src="/src/pwa/install-prompt.js?v=1788239352576" type="module"></script>
<script src="/src/pwa/pwa-manager.js?v=1788237895492" type="module"></script> <script src="/src/pwa/pwa-manager.js?v=1788239352576" type="module"></script>
<script defer src="/src/scripts/pwa-offline-test.js?v=1788237895492"></script> <script defer src="/src/scripts/pwa-offline-test.js?v=1788239352576"></script>
<link rel="stylesheet" href="/src/styles/pwa.css?v=1788237895492"> <link rel="stylesheet" href="/src/styles/pwa.css?v=1788239352576">
</body> </body>
</html> </html>
+1 -1
View File
@@ -11,7 +11,7 @@ let DYNAMIC_CACHE = 'securebit-pwa-dynamic-v4.7.56';
// Build stamp — rewritten by scripts/post-build.js on every release so this file's // Build stamp — rewritten by scripts/post-build.js on every release so this file's
// bytes change each deploy. That is what makes the browser detect a new Service Worker, // bytes change each deploy. That is what makes the browser detect a new Service Worker,
// reinstall it, drop stale caches and (via controllerchange) prompt the page to update. // reinstall it, drop stale caches and (via controllerchange) prompt the page to update.
const SW_BUILD_VERSION = '1788237895492'; const SW_BUILD_VERSION = '1788239352576';
// Locale subdirectories, rewritten by scripts/build-i18n.js. Each localized page is a // Locale subdirectories, rewritten by scripts/build-i18n.js. Each localized page is a
// separate document at its own URL, so the shell has to be cached and served per // separate document at its own URL, so the shell has to be cached and served per
+24 -24
View File
@@ -30,7 +30,7 @@
<!-- PWA Manifest --> <!-- PWA Manifest -->
<link rel="manifest" href="/uk/manifest.json"> <link rel="manifest" href="/uk/manifest.json">
<link rel="icon" type="image/x-icon" href="/logo/favicon.ico?v=1788237895492"> <link rel="icon" type="image/x-icon" href="/logo/favicon.ico?v=1788239352576">
<!-- PWA Meta Tags --> <!-- PWA Meta Tags -->
<meta name="mobile-web-app-capable" content="yes"> <meta name="mobile-web-app-capable" content="yes">
@@ -96,7 +96,7 @@
<link rel="apple-touch-startup-image" media="screen and (device-width: 744px) and (device-height: 1133px) and (-webkit-device-pixel-ratio: 2) and (orientation: portrait)" href="/logo/splash/splash_screens/8.3__iPad_Mini_portrait.png"> <link rel="apple-touch-startup-image" media="screen and (device-width: 744px) and (device-height: 1133px) and (-webkit-device-pixel-ratio: 2) and (orientation: portrait)" href="/logo/splash/splash_screens/8.3__iPad_Mini_portrait.png">
<!-- Apple Touch Icons --> <!-- Apple Touch Icons -->
<link rel="apple-touch-icon" href="/logo/icon-180x180.png?v=1788237895492"> <link rel="apple-touch-icon" href="/logo/icon-180x180.png?v=1788239352576">
<link rel="apple-touch-icon" sizes="57x57" href="/logo/icon-57x57.png"> <link rel="apple-touch-icon" sizes="57x57" href="/logo/icon-57x57.png">
<link rel="apple-touch-icon" sizes="60x60" href="/logo/icon-60x60.png"> <link rel="apple-touch-icon" sizes="60x60" href="/logo/icon-60x60.png">
<link rel="apple-touch-icon" sizes="72x72" href="/logo/icon-72x72.png"> <link rel="apple-touch-icon" sizes="72x72" href="/logo/icon-72x72.png">
@@ -105,7 +105,7 @@
<link rel="apple-touch-icon" sizes="120x120" href="/logo/icon-120x120.png"> <link rel="apple-touch-icon" sizes="120x120" href="/logo/icon-120x120.png">
<link rel="apple-touch-icon" sizes="144x144" href="/logo/icon-144x144.png"> <link rel="apple-touch-icon" sizes="144x144" href="/logo/icon-144x144.png">
<link rel="apple-touch-icon" sizes="152x152" href="/logo/icon-152x152.png"> <link rel="apple-touch-icon" sizes="152x152" href="/logo/icon-152x152.png">
<link rel="apple-touch-icon" sizes="180x180" href="/logo/icon-180x180.png?v=1788237895492"> <link rel="apple-touch-icon" sizes="180x180" href="/logo/icon-180x180.png?v=1788239352576">
<!-- Microsoft Tiles --> <!-- Microsoft Tiles -->
<meta name="msapplication-TileColor" content="#ff6b35"> <meta name="msapplication-TileColor" content="#ff6b35">
@@ -222,7 +222,7 @@
<!-- Render-blocking JS is deferred: classic deferred scripts and module scripts <!-- Render-blocking JS is deferred: classic deferred scripts and module scripts
both execute in document order after parsing, so React still runs before the both execute in document order after parsing, so React still runs before the
app modules below, but the parser / first paint is no longer blocked. --> app modules below, but the parser / first paint is no longer blocked. -->
<script defer src="/config/ice-servers.js?v=1788237895492"></script> <script defer src="/config/ice-servers.js?v=1788239352576"></script>
<script defer src="/libs/react/react.production.min.js"></script> <script defer src="/libs/react/react.production.min.js"></script>
<script defer src="/libs/react-dom/react-dom.production.min.js"></script> <script defer src="/libs/react-dom/react-dom.production.min.js"></script>
<!-- Prism syntax highlighting (vendored, offline). Tokenizes code as TEXT only — <!-- Prism syntax highlighting (vendored, offline). Tokenizes code as TEXT only —
@@ -230,8 +230,8 @@
Its CSS is loaded async via load-async-css.js (not paint-critical). --> Its CSS is loaded async via load-async-css.js (not paint-critical). -->
<script defer src="/libs/prism/prism.js"></script> <script defer src="/libs/prism/prism.js"></script>
<!-- Critical, paint-defining CSS stays render-blocking (avoids FOUC / layout shift). --> <!-- Critical, paint-defining CSS stays render-blocking (avoids FOUC / layout shift). -->
<link rel="stylesheet" href="/assets/tailwind.css?v=1788237895492"> <link rel="stylesheet" href="/assets/tailwind.css?v=1788239352576">
<link rel="icon" type="image/x-icon" href="/logo/favicon.ico?v=1788237895492"> <link rel="icon" type="image/x-icon" href="/logo/favicon.ico?v=1788239352576">
<!-- Preload only the fonts needed for first paint. fa-solid covers the bulk of UI <!-- Preload only the fonts needed for first paint. fa-solid covers the bulk of UI
icons; fa-regular/fa-brands are loaded on demand by their CSS (rarely on the icons; fa-regular/fa-brands are loaded on demand by their CSS (rarely on the
first screen). Inter latin 400/700 cover body text and headings/buttons. --> first screen). Inter latin 400/700 cover body text and headings/buttons. -->
@@ -239,38 +239,38 @@
<link rel="preload" href="/assets/fonts/inter/files/inter-latin-400.woff2" as="font" type="font/woff2" crossorigin> <link rel="preload" href="/assets/fonts/inter/files/inter-latin-400.woff2" as="font" type="font/woff2" crossorigin>
<link rel="preload" href="/assets/fonts/inter/files/inter-latin-700.woff2" as="font" type="font/woff2" crossorigin> <link rel="preload" href="/assets/fonts/inter/files/inter-latin-700.woff2" as="font" type="font/woff2" crossorigin>
<link rel="stylesheet" href="/assets/fonts/inter/inter.css"> <link rel="stylesheet" href="/assets/fonts/inter/inter.css">
<link rel="stylesheet" href="/src/styles/main.css?v=1788237895492"> <link rel="stylesheet" href="/src/styles/main.css?v=1788239352576">
<link rel="stylesheet" href="/src/styles/animations.css?v=1788237895492"> <link rel="stylesheet" href="/src/styles/animations.css?v=1788239352576">
<link rel="stylesheet" href="/src/styles/components.css?v=1788237895492"> <link rel="stylesheet" href="/src/styles/components.css?v=1788239352576">
<!-- Loads after components.css on purpose: press feedback, material weight, <!-- Loads after components.css on purpose: press feedback, material weight,
size-specific tracking and the reduced-motion / -transparency / -contrast size-specific tracking and the reduced-motion / -transparency / -contrast
answers all need to settle arguments with the sheets above on source order. --> answers all need to settle arguments with the sheets above on source order. -->
<link rel="stylesheet" href="/src/styles/apple-motion.css?v=1788237895492"> <link rel="stylesheet" href="/src/styles/apple-motion.css?v=1788239352576">
<!-- Last of the hand-written sheets: the mirroring rules must win over anything <!-- Last of the hand-written sheets: the mirroring rules must win over anything
above them, and they only ever apply under [dir="rtl"]. --> above them, and they only ever apply under [dir="rtl"]. -->
<link rel="stylesheet" href="/src/styles/rtl.css?v=1788237895492"> <link rel="stylesheet" href="/src/styles/rtl.css?v=1788239352576">
<!-- Non-critical CSS (FontAwesome ~102KB, Prism) loaded async — no longer blocks paint. --> <!-- Non-critical CSS (FontAwesome ~102KB, Prism) loaded async — no longer blocks paint. -->
<script defer src="/src/scripts/load-async-css.js?v=1788237895492"></script> <script defer src="/src/scripts/load-async-css.js?v=1788239352576"></script>
<noscript> <noscript>
<link rel="stylesheet" href="/assets/fontawesome/css/all.min.css"> <link rel="stylesheet" href="/assets/fontawesome/css/all.min.css">
<link rel="stylesheet" href="/libs/prism/prism.css"> <link rel="stylesheet" href="/libs/prism/prism.css">
</noscript> </noscript>
<script defer src="/src/scripts/fa-check.js?v=1788237895492"></script> <script defer src="/src/scripts/fa-check.js?v=1788239352576"></script>
<!-- Update Manager - система принудительного обновления --> <!-- Update Manager - система принудительного обновления -->
<script defer src="/src/utils/updateManager.js?v=1788237895492"></script> <script defer src="/src/utils/updateManager.js?v=1788239352576"></script>
<script type="module" src="/src/components/UpdateChecker.jsx?v=1788237895492"></script> <script type="module" src="/src/components/UpdateChecker.jsx?v=1788239352576"></script>
<script type="module" src="/dist/qr-local.js?v=1788237895492"></script> <script type="module" src="/dist/qr-local.js?v=1788239352576"></script>
<script type="module" src="/src/components/QRScanner.js?v=1788237895492"></script> <script type="module" src="/src/components/QRScanner.js?v=1788239352576"></script>
</head> </head>
<body> <body>
<div id="root"></div> <div id="root"></div>
<script type="module" src="/dist/app-boot.js?v=1788237895492"></script> <script type="module" src="/dist/app-boot.js?v=1788239352576"></script>
<script type="module" src="/dist/app.js?v=1788237895492"></script> <script type="module" src="/dist/app.js?v=1788239352576"></script>
<script defer src="/src/scripts/pwa-register.js?v=1788237895492"></script> <script defer src="/src/scripts/pwa-register.js?v=1788239352576"></script>
<script src="/src/pwa/install-prompt.js?v=1788237895492" type="module"></script> <script src="/src/pwa/install-prompt.js?v=1788239352576" type="module"></script>
<script src="/src/pwa/pwa-manager.js?v=1788237895492" type="module"></script> <script src="/src/pwa/pwa-manager.js?v=1788239352576" type="module"></script>
<script defer src="/src/scripts/pwa-offline-test.js?v=1788237895492"></script> <script defer src="/src/scripts/pwa-offline-test.js?v=1788239352576"></script>
<link rel="stylesheet" href="/src/styles/pwa.css?v=1788237895492"> <link rel="stylesheet" href="/src/styles/pwa.css?v=1788239352576">
</body> </body>
</html> </html>
+24 -24
View File
@@ -30,7 +30,7 @@
<!-- PWA Manifest --> <!-- PWA Manifest -->
<link rel="manifest" href="/ur/manifest.json"> <link rel="manifest" href="/ur/manifest.json">
<link rel="icon" type="image/x-icon" href="/logo/favicon.ico?v=1788237895492"> <link rel="icon" type="image/x-icon" href="/logo/favicon.ico?v=1788239352576">
<!-- PWA Meta Tags --> <!-- PWA Meta Tags -->
<meta name="mobile-web-app-capable" content="yes"> <meta name="mobile-web-app-capable" content="yes">
@@ -96,7 +96,7 @@
<link rel="apple-touch-startup-image" media="screen and (device-width: 744px) and (device-height: 1133px) and (-webkit-device-pixel-ratio: 2) and (orientation: portrait)" href="/logo/splash/splash_screens/8.3__iPad_Mini_portrait.png"> <link rel="apple-touch-startup-image" media="screen and (device-width: 744px) and (device-height: 1133px) and (-webkit-device-pixel-ratio: 2) and (orientation: portrait)" href="/logo/splash/splash_screens/8.3__iPad_Mini_portrait.png">
<!-- Apple Touch Icons --> <!-- Apple Touch Icons -->
<link rel="apple-touch-icon" href="/logo/icon-180x180.png?v=1788237895492"> <link rel="apple-touch-icon" href="/logo/icon-180x180.png?v=1788239352576">
<link rel="apple-touch-icon" sizes="57x57" href="/logo/icon-57x57.png"> <link rel="apple-touch-icon" sizes="57x57" href="/logo/icon-57x57.png">
<link rel="apple-touch-icon" sizes="60x60" href="/logo/icon-60x60.png"> <link rel="apple-touch-icon" sizes="60x60" href="/logo/icon-60x60.png">
<link rel="apple-touch-icon" sizes="72x72" href="/logo/icon-72x72.png"> <link rel="apple-touch-icon" sizes="72x72" href="/logo/icon-72x72.png">
@@ -105,7 +105,7 @@
<link rel="apple-touch-icon" sizes="120x120" href="/logo/icon-120x120.png"> <link rel="apple-touch-icon" sizes="120x120" href="/logo/icon-120x120.png">
<link rel="apple-touch-icon" sizes="144x144" href="/logo/icon-144x144.png"> <link rel="apple-touch-icon" sizes="144x144" href="/logo/icon-144x144.png">
<link rel="apple-touch-icon" sizes="152x152" href="/logo/icon-152x152.png"> <link rel="apple-touch-icon" sizes="152x152" href="/logo/icon-152x152.png">
<link rel="apple-touch-icon" sizes="180x180" href="/logo/icon-180x180.png?v=1788237895492"> <link rel="apple-touch-icon" sizes="180x180" href="/logo/icon-180x180.png?v=1788239352576">
<!-- Microsoft Tiles --> <!-- Microsoft Tiles -->
<meta name="msapplication-TileColor" content="#ff6b35"> <meta name="msapplication-TileColor" content="#ff6b35">
@@ -222,7 +222,7 @@
<!-- Render-blocking JS is deferred: classic deferred scripts and module scripts <!-- Render-blocking JS is deferred: classic deferred scripts and module scripts
both execute in document order after parsing, so React still runs before the both execute in document order after parsing, so React still runs before the
app modules below, but the parser / first paint is no longer blocked. --> app modules below, but the parser / first paint is no longer blocked. -->
<script defer src="/config/ice-servers.js?v=1788237895492"></script> <script defer src="/config/ice-servers.js?v=1788239352576"></script>
<script defer src="/libs/react/react.production.min.js"></script> <script defer src="/libs/react/react.production.min.js"></script>
<script defer src="/libs/react-dom/react-dom.production.min.js"></script> <script defer src="/libs/react-dom/react-dom.production.min.js"></script>
<!-- Prism syntax highlighting (vendored, offline). Tokenizes code as TEXT only — <!-- Prism syntax highlighting (vendored, offline). Tokenizes code as TEXT only —
@@ -230,8 +230,8 @@
Its CSS is loaded async via load-async-css.js (not paint-critical). --> Its CSS is loaded async via load-async-css.js (not paint-critical). -->
<script defer src="/libs/prism/prism.js"></script> <script defer src="/libs/prism/prism.js"></script>
<!-- Critical, paint-defining CSS stays render-blocking (avoids FOUC / layout shift). --> <!-- Critical, paint-defining CSS stays render-blocking (avoids FOUC / layout shift). -->
<link rel="stylesheet" href="/assets/tailwind.css?v=1788237895492"> <link rel="stylesheet" href="/assets/tailwind.css?v=1788239352576">
<link rel="icon" type="image/x-icon" href="/logo/favicon.ico?v=1788237895492"> <link rel="icon" type="image/x-icon" href="/logo/favicon.ico?v=1788239352576">
<!-- Preload only the fonts needed for first paint. fa-solid covers the bulk of UI <!-- Preload only the fonts needed for first paint. fa-solid covers the bulk of UI
icons; fa-regular/fa-brands are loaded on demand by their CSS (rarely on the icons; fa-regular/fa-brands are loaded on demand by their CSS (rarely on the
first screen). Inter latin 400/700 cover body text and headings/buttons. --> first screen). Inter latin 400/700 cover body text and headings/buttons. -->
@@ -239,38 +239,38 @@
<link rel="preload" href="/assets/fonts/inter/files/inter-latin-400.woff2" as="font" type="font/woff2" crossorigin> <link rel="preload" href="/assets/fonts/inter/files/inter-latin-400.woff2" as="font" type="font/woff2" crossorigin>
<link rel="preload" href="/assets/fonts/inter/files/inter-latin-700.woff2" as="font" type="font/woff2" crossorigin> <link rel="preload" href="/assets/fonts/inter/files/inter-latin-700.woff2" as="font" type="font/woff2" crossorigin>
<link rel="stylesheet" href="/assets/fonts/inter/inter.css"> <link rel="stylesheet" href="/assets/fonts/inter/inter.css">
<link rel="stylesheet" href="/src/styles/main.css?v=1788237895492"> <link rel="stylesheet" href="/src/styles/main.css?v=1788239352576">
<link rel="stylesheet" href="/src/styles/animations.css?v=1788237895492"> <link rel="stylesheet" href="/src/styles/animations.css?v=1788239352576">
<link rel="stylesheet" href="/src/styles/components.css?v=1788237895492"> <link rel="stylesheet" href="/src/styles/components.css?v=1788239352576">
<!-- Loads after components.css on purpose: press feedback, material weight, <!-- Loads after components.css on purpose: press feedback, material weight,
size-specific tracking and the reduced-motion / -transparency / -contrast size-specific tracking and the reduced-motion / -transparency / -contrast
answers all need to settle arguments with the sheets above on source order. --> answers all need to settle arguments with the sheets above on source order. -->
<link rel="stylesheet" href="/src/styles/apple-motion.css?v=1788237895492"> <link rel="stylesheet" href="/src/styles/apple-motion.css?v=1788239352576">
<!-- Last of the hand-written sheets: the mirroring rules must win over anything <!-- Last of the hand-written sheets: the mirroring rules must win over anything
above them, and they only ever apply under [dir="rtl"]. --> above them, and they only ever apply under [dir="rtl"]. -->
<link rel="stylesheet" href="/src/styles/rtl.css?v=1788237895492"> <link rel="stylesheet" href="/src/styles/rtl.css?v=1788239352576">
<!-- Non-critical CSS (FontAwesome ~102KB, Prism) loaded async — no longer blocks paint. --> <!-- Non-critical CSS (FontAwesome ~102KB, Prism) loaded async — no longer blocks paint. -->
<script defer src="/src/scripts/load-async-css.js?v=1788237895492"></script> <script defer src="/src/scripts/load-async-css.js?v=1788239352576"></script>
<noscript> <noscript>
<link rel="stylesheet" href="/assets/fontawesome/css/all.min.css"> <link rel="stylesheet" href="/assets/fontawesome/css/all.min.css">
<link rel="stylesheet" href="/libs/prism/prism.css"> <link rel="stylesheet" href="/libs/prism/prism.css">
</noscript> </noscript>
<script defer src="/src/scripts/fa-check.js?v=1788237895492"></script> <script defer src="/src/scripts/fa-check.js?v=1788239352576"></script>
<!-- Update Manager - система принудительного обновления --> <!-- Update Manager - система принудительного обновления -->
<script defer src="/src/utils/updateManager.js?v=1788237895492"></script> <script defer src="/src/utils/updateManager.js?v=1788239352576"></script>
<script type="module" src="/src/components/UpdateChecker.jsx?v=1788237895492"></script> <script type="module" src="/src/components/UpdateChecker.jsx?v=1788239352576"></script>
<script type="module" src="/dist/qr-local.js?v=1788237895492"></script> <script type="module" src="/dist/qr-local.js?v=1788239352576"></script>
<script type="module" src="/src/components/QRScanner.js?v=1788237895492"></script> <script type="module" src="/src/components/QRScanner.js?v=1788239352576"></script>
</head> </head>
<body> <body>
<div id="root"></div> <div id="root"></div>
<script type="module" src="/dist/app-boot.js?v=1788237895492"></script> <script type="module" src="/dist/app-boot.js?v=1788239352576"></script>
<script type="module" src="/dist/app.js?v=1788237895492"></script> <script type="module" src="/dist/app.js?v=1788239352576"></script>
<script defer src="/src/scripts/pwa-register.js?v=1788237895492"></script> <script defer src="/src/scripts/pwa-register.js?v=1788239352576"></script>
<script src="/src/pwa/install-prompt.js?v=1788237895492" type="module"></script> <script src="/src/pwa/install-prompt.js?v=1788239352576" type="module"></script>
<script src="/src/pwa/pwa-manager.js?v=1788237895492" type="module"></script> <script src="/src/pwa/pwa-manager.js?v=1788239352576" type="module"></script>
<script defer src="/src/scripts/pwa-offline-test.js?v=1788237895492"></script> <script defer src="/src/scripts/pwa-offline-test.js?v=1788239352576"></script>
<link rel="stylesheet" href="/src/styles/pwa.css?v=1788237895492"> <link rel="stylesheet" href="/src/styles/pwa.css?v=1788239352576">
</body> </body>
</html> </html>
+24 -24
View File
@@ -30,7 +30,7 @@
<!-- PWA Manifest --> <!-- PWA Manifest -->
<link rel="manifest" href="/zh/manifest.json"> <link rel="manifest" href="/zh/manifest.json">
<link rel="icon" type="image/x-icon" href="/logo/favicon.ico?v=1788237895492"> <link rel="icon" type="image/x-icon" href="/logo/favicon.ico?v=1788239352576">
<!-- PWA Meta Tags --> <!-- PWA Meta Tags -->
<meta name="mobile-web-app-capable" content="yes"> <meta name="mobile-web-app-capable" content="yes">
@@ -96,7 +96,7 @@
<link rel="apple-touch-startup-image" media="screen and (device-width: 744px) and (device-height: 1133px) and (-webkit-device-pixel-ratio: 2) and (orientation: portrait)" href="/logo/splash/splash_screens/8.3__iPad_Mini_portrait.png"> <link rel="apple-touch-startup-image" media="screen and (device-width: 744px) and (device-height: 1133px) and (-webkit-device-pixel-ratio: 2) and (orientation: portrait)" href="/logo/splash/splash_screens/8.3__iPad_Mini_portrait.png">
<!-- Apple Touch Icons --> <!-- Apple Touch Icons -->
<link rel="apple-touch-icon" href="/logo/icon-180x180.png?v=1788237895492"> <link rel="apple-touch-icon" href="/logo/icon-180x180.png?v=1788239352576">
<link rel="apple-touch-icon" sizes="57x57" href="/logo/icon-57x57.png"> <link rel="apple-touch-icon" sizes="57x57" href="/logo/icon-57x57.png">
<link rel="apple-touch-icon" sizes="60x60" href="/logo/icon-60x60.png"> <link rel="apple-touch-icon" sizes="60x60" href="/logo/icon-60x60.png">
<link rel="apple-touch-icon" sizes="72x72" href="/logo/icon-72x72.png"> <link rel="apple-touch-icon" sizes="72x72" href="/logo/icon-72x72.png">
@@ -105,7 +105,7 @@
<link rel="apple-touch-icon" sizes="120x120" href="/logo/icon-120x120.png"> <link rel="apple-touch-icon" sizes="120x120" href="/logo/icon-120x120.png">
<link rel="apple-touch-icon" sizes="144x144" href="/logo/icon-144x144.png"> <link rel="apple-touch-icon" sizes="144x144" href="/logo/icon-144x144.png">
<link rel="apple-touch-icon" sizes="152x152" href="/logo/icon-152x152.png"> <link rel="apple-touch-icon" sizes="152x152" href="/logo/icon-152x152.png">
<link rel="apple-touch-icon" sizes="180x180" href="/logo/icon-180x180.png?v=1788237895492"> <link rel="apple-touch-icon" sizes="180x180" href="/logo/icon-180x180.png?v=1788239352576">
<!-- Microsoft Tiles --> <!-- Microsoft Tiles -->
<meta name="msapplication-TileColor" content="#ff6b35"> <meta name="msapplication-TileColor" content="#ff6b35">
@@ -222,7 +222,7 @@
<!-- Render-blocking JS is deferred: classic deferred scripts and module scripts <!-- Render-blocking JS is deferred: classic deferred scripts and module scripts
both execute in document order after parsing, so React still runs before the both execute in document order after parsing, so React still runs before the
app modules below, but the parser / first paint is no longer blocked. --> app modules below, but the parser / first paint is no longer blocked. -->
<script defer src="/config/ice-servers.js?v=1788237895492"></script> <script defer src="/config/ice-servers.js?v=1788239352576"></script>
<script defer src="/libs/react/react.production.min.js"></script> <script defer src="/libs/react/react.production.min.js"></script>
<script defer src="/libs/react-dom/react-dom.production.min.js"></script> <script defer src="/libs/react-dom/react-dom.production.min.js"></script>
<!-- Prism syntax highlighting (vendored, offline). Tokenizes code as TEXT only — <!-- Prism syntax highlighting (vendored, offline). Tokenizes code as TEXT only —
@@ -230,8 +230,8 @@
Its CSS is loaded async via load-async-css.js (not paint-critical). --> Its CSS is loaded async via load-async-css.js (not paint-critical). -->
<script defer src="/libs/prism/prism.js"></script> <script defer src="/libs/prism/prism.js"></script>
<!-- Critical, paint-defining CSS stays render-blocking (avoids FOUC / layout shift). --> <!-- Critical, paint-defining CSS stays render-blocking (avoids FOUC / layout shift). -->
<link rel="stylesheet" href="/assets/tailwind.css?v=1788237895492"> <link rel="stylesheet" href="/assets/tailwind.css?v=1788239352576">
<link rel="icon" type="image/x-icon" href="/logo/favicon.ico?v=1788237895492"> <link rel="icon" type="image/x-icon" href="/logo/favicon.ico?v=1788239352576">
<!-- Preload only the fonts needed for first paint. fa-solid covers the bulk of UI <!-- Preload only the fonts needed for first paint. fa-solid covers the bulk of UI
icons; fa-regular/fa-brands are loaded on demand by their CSS (rarely on the icons; fa-regular/fa-brands are loaded on demand by their CSS (rarely on the
first screen). Inter latin 400/700 cover body text and headings/buttons. --> first screen). Inter latin 400/700 cover body text and headings/buttons. -->
@@ -239,38 +239,38 @@
<link rel="preload" href="/assets/fonts/inter/files/inter-latin-400.woff2" as="font" type="font/woff2" crossorigin> <link rel="preload" href="/assets/fonts/inter/files/inter-latin-400.woff2" as="font" type="font/woff2" crossorigin>
<link rel="preload" href="/assets/fonts/inter/files/inter-latin-700.woff2" as="font" type="font/woff2" crossorigin> <link rel="preload" href="/assets/fonts/inter/files/inter-latin-700.woff2" as="font" type="font/woff2" crossorigin>
<link rel="stylesheet" href="/assets/fonts/inter/inter.css"> <link rel="stylesheet" href="/assets/fonts/inter/inter.css">
<link rel="stylesheet" href="/src/styles/main.css?v=1788237895492"> <link rel="stylesheet" href="/src/styles/main.css?v=1788239352576">
<link rel="stylesheet" href="/src/styles/animations.css?v=1788237895492"> <link rel="stylesheet" href="/src/styles/animations.css?v=1788239352576">
<link rel="stylesheet" href="/src/styles/components.css?v=1788237895492"> <link rel="stylesheet" href="/src/styles/components.css?v=1788239352576">
<!-- Loads after components.css on purpose: press feedback, material weight, <!-- Loads after components.css on purpose: press feedback, material weight,
size-specific tracking and the reduced-motion / -transparency / -contrast size-specific tracking and the reduced-motion / -transparency / -contrast
answers all need to settle arguments with the sheets above on source order. --> answers all need to settle arguments with the sheets above on source order. -->
<link rel="stylesheet" href="/src/styles/apple-motion.css?v=1788237895492"> <link rel="stylesheet" href="/src/styles/apple-motion.css?v=1788239352576">
<!-- Last of the hand-written sheets: the mirroring rules must win over anything <!-- Last of the hand-written sheets: the mirroring rules must win over anything
above them, and they only ever apply under [dir="rtl"]. --> above them, and they only ever apply under [dir="rtl"]. -->
<link rel="stylesheet" href="/src/styles/rtl.css?v=1788237895492"> <link rel="stylesheet" href="/src/styles/rtl.css?v=1788239352576">
<!-- Non-critical CSS (FontAwesome ~102KB, Prism) loaded async — no longer blocks paint. --> <!-- Non-critical CSS (FontAwesome ~102KB, Prism) loaded async — no longer blocks paint. -->
<script defer src="/src/scripts/load-async-css.js?v=1788237895492"></script> <script defer src="/src/scripts/load-async-css.js?v=1788239352576"></script>
<noscript> <noscript>
<link rel="stylesheet" href="/assets/fontawesome/css/all.min.css"> <link rel="stylesheet" href="/assets/fontawesome/css/all.min.css">
<link rel="stylesheet" href="/libs/prism/prism.css"> <link rel="stylesheet" href="/libs/prism/prism.css">
</noscript> </noscript>
<script defer src="/src/scripts/fa-check.js?v=1788237895492"></script> <script defer src="/src/scripts/fa-check.js?v=1788239352576"></script>
<!-- Update Manager - система принудительного обновления --> <!-- Update Manager - система принудительного обновления -->
<script defer src="/src/utils/updateManager.js?v=1788237895492"></script> <script defer src="/src/utils/updateManager.js?v=1788239352576"></script>
<script type="module" src="/src/components/UpdateChecker.jsx?v=1788237895492"></script> <script type="module" src="/src/components/UpdateChecker.jsx?v=1788239352576"></script>
<script type="module" src="/dist/qr-local.js?v=1788237895492"></script> <script type="module" src="/dist/qr-local.js?v=1788239352576"></script>
<script type="module" src="/src/components/QRScanner.js?v=1788237895492"></script> <script type="module" src="/src/components/QRScanner.js?v=1788239352576"></script>
</head> </head>
<body> <body>
<div id="root"></div> <div id="root"></div>
<script type="module" src="/dist/app-boot.js?v=1788237895492"></script> <script type="module" src="/dist/app-boot.js?v=1788239352576"></script>
<script type="module" src="/dist/app.js?v=1788237895492"></script> <script type="module" src="/dist/app.js?v=1788239352576"></script>
<script defer src="/src/scripts/pwa-register.js?v=1788237895492"></script> <script defer src="/src/scripts/pwa-register.js?v=1788239352576"></script>
<script src="/src/pwa/install-prompt.js?v=1788237895492" type="module"></script> <script src="/src/pwa/install-prompt.js?v=1788239352576" type="module"></script>
<script src="/src/pwa/pwa-manager.js?v=1788237895492" type="module"></script> <script src="/src/pwa/pwa-manager.js?v=1788239352576" type="module"></script>
<script defer src="/src/scripts/pwa-offline-test.js?v=1788237895492"></script> <script defer src="/src/scripts/pwa-offline-test.js?v=1788239352576"></script>
<link rel="stylesheet" href="/src/styles/pwa.css?v=1788237895492"> <link rel="stylesheet" href="/src/styles/pwa.css?v=1788239352576">
</body> </body>
</html> </html>