From 46892ee61c4604053bc1b6910ad653795670a1cc Mon Sep 17 00:00:00 2001 From: bsodfather Date: Sat, 11 Jul 2026 17:12:50 +0300 Subject: [PATCH] =?UTF-8?q?=D0=A3=D1=81=D0=B8=D0=BB=D0=B8=D1=82=D1=8C=20?= =?UTF-8?q?=D0=B1=D0=B5=D0=B7=D0=BE=D0=BF=D0=B0=D1=81=D0=BD=D0=BE=D1=81?= =?UTF-8?q?=D1=82=D1=8C=20=D0=B2=D0=B5=D0=B1-=D0=B8=D0=BD=D1=82=D0=B5?= =?UTF-8?q?=D1=80=D1=84=D0=B5=D0=B9=D1=81=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/ui/css/fonts.css | 97 +++++++++++++++++++++++ apps/ui/css/workspace-setup.css | 5 ++ apps/ui/html/agents.html | 8 +- apps/ui/html/api-keys.html | 2 +- apps/ui/html/fragments/lang-switcher.html | 4 +- apps/ui/html/login.html | 2 +- apps/ui/html/logs.html | 2 +- apps/ui/html/secrets.html | 2 +- apps/ui/html/settings.html | 6 +- apps/ui/html/usage.html | 2 +- apps/ui/html/wizard/index.html | 2 +- apps/ui/html/wizard/step2.html | 18 ++--- apps/ui/html/wizard/step3-rest.html | 10 +-- apps/ui/html/workspace-setup.html | 28 +++---- apps/ui/index.html | 2 +- apps/ui/js/api.js | 8 -- apps/ui/js/settings.js | 3 + apps/ui/js/vendor/alpine/cdn.min.js | 5 -- apps/ui/js/vendor/js-yaml/js-yaml.min.js | 2 - apps/ui/js/wizard.js | 31 ++++++++ apps/ui/js/workspace-setup.js | 11 +++ apps/ui/nginx.conf | 7 ++ apps/ui/package-lock.json | 20 +++++ apps/ui/package.json | 2 + apps/ui/scripts/build.js | 19 +++++ apps/ui/scripts/playwright-ui-server.js | 12 ++- 26 files changed, 250 insertions(+), 60 deletions(-) create mode 100644 apps/ui/css/fonts.css delete mode 100644 apps/ui/js/vendor/alpine/cdn.min.js delete mode 100644 apps/ui/js/vendor/js-yaml/js-yaml.min.js diff --git a/apps/ui/css/fonts.css b/apps/ui/css/fonts.css new file mode 100644 index 0000000..840912a --- /dev/null +++ b/apps/ui/css/fonts.css @@ -0,0 +1,97 @@ +/* Local font assets are copied from pinned @fontsource packages during the UI build. */ +@font-face { + font-family: 'Inter'; + font-style: normal; + font-display: swap; + font-weight: 400; + src: url('../fonts/inter-cyrillic-400-normal.woff2') format('woff2'); + unicode-range: U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116; +} +@font-face { + font-family: 'Inter'; + font-style: normal; + font-display: swap; + font-weight: 400; + src: url('../fonts/inter-latin-400-normal.woff2') format('woff2'); + unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; +} +@font-face { + font-family: 'Inter'; + font-style: normal; + font-display: swap; + font-weight: 500; + src: url('../fonts/inter-cyrillic-500-normal.woff2') format('woff2'); + unicode-range: U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116; +} +@font-face { + font-family: 'Inter'; + font-style: normal; + font-display: swap; + font-weight: 500; + src: url('../fonts/inter-latin-500-normal.woff2') format('woff2'); + unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; +} +@font-face { + font-family: 'Inter'; + font-style: normal; + font-display: swap; + font-weight: 600; + src: url('../fonts/inter-cyrillic-600-normal.woff2') format('woff2'); + unicode-range: U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116; +} +@font-face { + font-family: 'Inter'; + font-style: normal; + font-display: swap; + font-weight: 600; + src: url('../fonts/inter-latin-600-normal.woff2') format('woff2'); + unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; +} +@font-face { + font-family: 'Inter'; + font-style: normal; + font-display: swap; + font-weight: 700; + src: url('../fonts/inter-cyrillic-700-normal.woff2') format('woff2'); + unicode-range: U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116; +} +@font-face { + font-family: 'Inter'; + font-style: normal; + font-display: swap; + font-weight: 700; + src: url('../fonts/inter-latin-700-normal.woff2') format('woff2'); + unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; +} +@font-face { + font-family: 'JetBrains Mono'; + font-style: normal; + font-display: swap; + font-weight: 400; + src: url('../fonts/jetbrains-mono-cyrillic-400-normal.woff2') format('woff2'); + unicode-range: U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116; +} +@font-face { + font-family: 'JetBrains Mono'; + font-style: normal; + font-display: swap; + font-weight: 400; + src: url('../fonts/jetbrains-mono-latin-400-normal.woff2') format('woff2'); + unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; +} +@font-face { + font-family: 'JetBrains Mono'; + font-style: normal; + font-display: swap; + font-weight: 500; + src: url('../fonts/jetbrains-mono-cyrillic-500-normal.woff2') format('woff2'); + unicode-range: U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116; +} +@font-face { + font-family: 'JetBrains Mono'; + font-style: normal; + font-display: swap; + font-weight: 500; + src: url('../fonts/jetbrains-mono-latin-500-normal.woff2') format('woff2'); + unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; +} diff --git a/apps/ui/css/workspace-setup.css b/apps/ui/css/workspace-setup.css index de92225..4ee6f3b 100644 --- a/apps/ui/css/workspace-setup.css +++ b/apps/ui/css/workspace-setup.css @@ -37,7 +37,11 @@ color: var(--text-muted); text-decoration: none; padding: 6px 10px; + border: 0; + background: none; border-radius: 6px; + font-family: inherit; + cursor: pointer; transition: color 0.15s, background 0.15s; } .ws-setup-back:hover { color: var(--text-secondary); background: rgba(255,255,255,0.04); } @@ -107,6 +111,7 @@ .ws-color-swatch { width: 20px; height: 20px; + padding: 0; border-radius: 5px; cursor: pointer; border: 2px solid transparent; diff --git a/apps/ui/html/agents.html b/apps/ui/html/agents.html index a8a30f4..e9e0a85 100644 --- a/apps/ui/html/agents.html +++ b/apps/ui/html/agents.html @@ -5,7 +5,7 @@ Crank — Agents - + @@ -49,12 +49,12 @@
Crank
- + - diff --git a/apps/ui/html/api-keys.html b/apps/ui/html/api-keys.html index 3c79d8e..cca35f3 100644 --- a/apps/ui/html/api-keys.html +++ b/apps/ui/html/api-keys.html @@ -5,7 +5,7 @@ Crank — Agent Keys - + diff --git a/apps/ui/html/fragments/lang-switcher.html b/apps/ui/html/fragments/lang-switcher.html index 96a8403..b1faa7f 100644 --- a/apps/ui/html/fragments/lang-switcher.html +++ b/apps/ui/html/fragments/lang-switcher.html @@ -1,11 +1,11 @@
- - diff --git a/apps/ui/html/login.html b/apps/ui/html/login.html index e3b1c1f..d2ac0ea 100644 --- a/apps/ui/html/login.html +++ b/apps/ui/html/login.html @@ -5,7 +5,7 @@ Crank — Sign in - + diff --git a/apps/ui/html/logs.html b/apps/ui/html/logs.html index aa59b8f..9e53bcc 100644 --- a/apps/ui/html/logs.html +++ b/apps/ui/html/logs.html @@ -5,7 +5,7 @@ Crank — Logs - + diff --git a/apps/ui/html/secrets.html b/apps/ui/html/secrets.html index 8e3e0bb..ff4f8bc 100644 --- a/apps/ui/html/secrets.html +++ b/apps/ui/html/secrets.html @@ -5,7 +5,7 @@ Crank — Secrets - + diff --git a/apps/ui/html/settings.html b/apps/ui/html/settings.html index 0cbd5d8..508659b 100644 --- a/apps/ui/html/settings.html +++ b/apps/ui/html/settings.html @@ -5,7 +5,7 @@ Crank — Settings - + @@ -172,11 +172,11 @@
Interface display language
- - diff --git a/apps/ui/html/usage.html b/apps/ui/html/usage.html index 9d36600..8a0fe0b 100644 --- a/apps/ui/html/usage.html +++ b/apps/ui/html/usage.html @@ -5,7 +5,7 @@ Crank — Usage - + diff --git a/apps/ui/html/wizard/index.html b/apps/ui/html/wizard/index.html index e460acf..5b553f3 100644 --- a/apps/ui/html/wizard/index.html +++ b/apps/ui/html/wizard/index.html @@ -4,7 +4,7 @@ Crank — New Operation - + diff --git a/apps/ui/html/wizard/step2.html b/apps/ui/html/wizard/step2.html index 0337547..a65023d 100644 --- a/apps/ui/html/wizard/step2.html +++ b/apps/ui/html/wizard/step2.html @@ -30,7 +30,7 @@
-
+
Выберите API-хост…
@@ -45,7 +45,7 @@ - +
@@ -58,11 +58,11 @@
- +
-
+
@@ -89,7 +89,7 @@
- @@ -118,7 +118,7 @@
- @@ -149,7 +149,7 @@
- + Открыть страницу секретов
@@ -168,8 +168,8 @@
Необязательные заголовки без секретных значений. Токены, пароли и ключи храните через профиль авторизации.
- - + +
diff --git a/apps/ui/html/wizard/step3-rest.html b/apps/ui/html/wizard/step3-rest.html index 8854cde..d109c30 100644 --- a/apps/ui/html/wizard/step3-rest.html +++ b/apps/ui/html/wizard/step3-rest.html @@ -25,23 +25,23 @@
- - - - - diff --git a/apps/ui/html/workspace-setup.html b/apps/ui/html/workspace-setup.html index de8e75e..33fb5aa 100644 --- a/apps/ui/html/workspace-setup.html +++ b/apps/ui/html/workspace-setup.html @@ -5,7 +5,7 @@ Crank — Workspace - + @@ -24,10 +24,10 @@
Crank - +
@@ -48,27 +48,27 @@
Avatar is derived from your workspace name.
-
-
-
-
-
-
-
+ + + + + + +
- +
mcp.crank.io/ - +
Only lowercase letters, numbers, and hyphens. Used in MCP endpoint URLs.
@@ -81,8 +81,8 @@
- Cancel - + +