diff --git a/panel/backend/Dockerfile b/panel/backend/Dockerfile index dd09d6d..7ad5876 100644 --- a/panel/backend/Dockerfile +++ b/panel/backend/Dockerfile @@ -7,7 +7,7 @@ RUN apt-get update && apt-get install -y --no-install-recommends git ca-certificates \ && rm -rf /var/lib/apt/lists/* -COPY panel/frontend/package.json panel/frontend/package-lock.json ./ +COPY panel/frontend/package.json panel/frontend/package-lock.json panel/frontend/.npmrc ./ RUN npm ci COPY panel/frontend/ ./ diff --git a/panel/frontend/.npmrc b/panel/frontend/.npmrc new file mode 100644 index 0000000..5a4ccab --- /dev/null +++ b/panel/frontend/.npmrc @@ -0,0 +1 @@ +allow-git=git.gnexus.space diff --git a/panel/frontend/package-lock.json b/panel/frontend/package-lock.json index ffd6570..d30bfc4 100644 --- a/panel/frontend/package-lock.json +++ b/panel/frontend/package-lock.json @@ -1092,8 +1092,8 @@ } }, "node_modules/gnexus-ui-kit": { - "version": "0.4.0", - "resolved": "git+https://git.gnexus.space/git/root/gnexus-ui-kit.git#5227ba022e5da5ef7df5a4b4ed463c25abd1f85b", + "version": "1.0.0", + "resolved": "git+https://git.gnexus.space/git/root/gnexus-ui-kit.git#e28f382b7bbf405f9f33e9f5d5b53ad64c1aabf3", "license": "UNLICENSED", "peerDependencies": { "vue": "^3.4.0" diff --git a/panel/frontend/public/favicon.svg b/panel/frontend/public/favicon.svg index cd8461d..9dae11b 100644 --- a/panel/frontend/public/favicon.svg +++ b/panel/frontend/public/favicon.svg @@ -1,10 +1,10 @@ - + - + - - + + \ No newline at end of file diff --git a/panel/frontend/public/logo.svg b/panel/frontend/public/logo.svg index cd8461d..9dae11b 100644 --- a/panel/frontend/public/logo.svg +++ b/panel/frontend/public/logo.svg @@ -1,10 +1,10 @@ - + - + - - + + \ No newline at end of file diff --git a/panel/frontend/src/App.vue b/panel/frontend/src/App.vue index b83f973..ae9af76 100644 --- a/panel/frontend/src/App.vue +++ b/panel/frontend/src/App.vue @@ -46,10 +46,4 @@ .tabs .tabs-panels { flex-basis: 100%; } - -/* Лого в топбаре — 48×48 */ -.nav-topbar-brand img { - width: 48px; - height: 48px; -} \ No newline at end of file diff --git a/panel/frontend/src/chartTheme.js b/panel/frontend/src/chartTheme.js index 31c6c08..d91d367 100644 --- a/panel/frontend/src/chartTheme.js +++ b/panel/frontend/src/chartTheme.js @@ -1,13 +1,13 @@ -// Тема графиков (chart.js): производные оттенков gnexus-ui-kit (Tokyo Night), +// Тема графиков (chart.js): производные оттенков gnexus-ui-kit 1.0 (Verdant), // зажатые в допустимый для тёмной поверхности диапазон светлоты. // Валидировано скриптом палитры: все проверки PASS (L 0.48–0.67, CVD, контраст). export const CHART_COLORS = [ - '#6B9B40', // зелёный ($color-neon-green) - '#5578D6', // синий ($color-electric-blue) - '#CC6A2E', // оранжевый ($color-orange) - '#8B6BD6', // фиолетовый ($color-purple) - '#B5822F', // жёлтый ($color-neon-yellow) + '#45AB7E', // зелёный (verdant $color-secondary) + '#4C86D2', // синий (контрастный партнёр для CVD) + '#C76A3A', // оранжевый (тёплый полюс) + '#957FCE', // фиолетовый + '#B08435', // жёлтый (тёмный amber) ] // Фиксированные сущности (цвет следует за сущностью, не за порядком) @@ -15,9 +15,9 @@ export const SERIES_OUT = CHART_COLORS[1] // сетевая отдача export const INK = { - text: '#C0CAF5', // $color-text-light — заголовки - muted: '#A9B1D6', // $color-text-medium — оси, легенда - grid: 'rgba(160, 170, 200, 0.08)', // сетка — максимально ненавязчивая - panel: '#1F2335', // $color-dark — тултип - border: 'rgba(160, 170, 200, 0.24)', // $border-color-muted + text: '#C3D6CB', // $color-text-light — заголовки + muted: '#A4B8AA', // $color-text-medium — оси, легенда + grid: 'rgba(163, 184, 170, 0.08)', // сетка — максимально ненавязчивая + panel: '#1E2522', // $color-dark — тултип + border: 'rgba(163, 184, 170, 0.24)', // $border-color-muted } \ No newline at end of file diff --git a/panel/frontend/src/main.js b/panel/frontend/src/main.js index 63f3975..998c561 100644 --- a/panel/frontend/src/main.js +++ b/panel/frontend/src/main.js @@ -1,5 +1,6 @@ // Точки входа. Стили кита обязательно подключаются в корне приложения. -import 'gnexus-ui-kit/dist/css/kit.css' +// Цветовая тема — Verdant (kit-verdant.css из gnexus-ui-kit 1.0). +import 'gnexus-ui-kit/dist/css/kit-verdant.css' import 'gnexus-ui-kit/dist/assets/fonts/phosphor-icons/src/css/icons.css' import { createApp } from 'vue' diff --git a/panel/frontend/src/pages/DashboardPage.vue b/panel/frontend/src/pages/DashboardPage.vue index 4d41ffe..54a6165 100644 --- a/panel/frontend/src/pages/DashboardPage.vue +++ b/panel/frontend/src/pages/DashboardPage.vue @@ -168,9 +168,9 @@ } .key-value { padding: 8px 12px; - border: 1px solid rgba(160, 170, 200, 0.24); + border: 1px solid rgba(163, 184, 170, 0.24); border-radius: 6px; - background: rgba(160, 170, 200, 0.08); + background: rgba(163, 184, 170, 0.08); word-break: break-all; } \ No newline at end of file diff --git a/panel/frontend/vite.config.js b/panel/frontend/vite.config.js index 26452ac..008f416 100644 --- a/panel/frontend/vite.config.js +++ b/panel/frontend/vite.config.js @@ -1,8 +1,19 @@ +import path from 'node:path' import { defineConfig } from 'vite' import vue from '@vitejs/plugin-vue' export default defineConfig({ plugins: [vue()], + // exports-карта кита 1.0 пропускает только kit.css (и ./dist/assets/*); + // файлы цветовых тем (kit-verdant и т.п.) не перечислены — отдаём файл + // напрямую мимо exports через алиас + resolve: { + alias: { + 'gnexus-ui-kit/dist/css/kit-verdant.css': path.resolve( + 'node_modules/gnexus-ui-kit/dist/css/kit-verdant.css', + ), + }, + }, server: { // в dev фронт на :5173, API проксируется на локальную панель proxy: {