- vite.config.di2.ts + client-di2/tsconfig.json: алиас @skin → client/src/themes (tokens, skins, generated-skins.css — единый источник токенов) - client-di2/src/themes/Di2ThemeProvider.tsx: порт логики ThemeProvider основного клиента (localStorage['skin'] → скин организации → 'iistwin'; runtime CSS кастомных скинов через generateSkinCss; data-skin/data-theme/class light|dark на <html>; контекст с toggleTheme). Ключи 'skin'/'theme' общие с iistwin — выбор синхронизируется между приложениями - main.tsx: обёртка <Di2ThemeProvider> вокруг App - tailwind.config.ts DI2: цвета hsl(var(--x) / <alpha-value>) → var(--x), радиусы → var(--radius) с каскадом calc, добавлены warning/success/info - client-di2/src/index.css: собственные HSL-тройки заменены fallback-блоками основного клиента (до гидратации), первой строкой @import общего generated-skins.css; DI2-only переменные (--card-border, --popover-border, *-border, --button-outline, --badge-outline) переопределены через color-mix от семантических токенов; удалены --opaque-button-border-intensity и hsl(from ...) relative-color вычисления; жёсткие --font-sans: Open Sans убраны (шрифты эмитит generateSkinCss из токенов скина) - client-di2/index.html: lang=ru, viewport без maximum-scale + interactive-widget=resizes-content, мега-link Google Fonts (23 семейства) заменён на Inter + DM Mono как в основном клиенте - Alpha-модификаторы семантических цветов (166 мест: bg-muted/50, border-primary/30 и т.п.) заменены на arbitrary values color-mix(in oklab, var(--x) NN%, transparent) — Tailwind v3 молча не генерирует /NN для var()-цветов; палитровые цвета (green-500/10 и т.п.) не тронуты
25 lines
976 B
TypeScript
25 lines
976 B
TypeScript
import { defineConfig } from "vite";
|
|
import react from "@vitejs/plugin-react";
|
|
import path from "path";
|
|
|
|
// Сборка субаппа Data-Insight2 (client-di2) как отдельного SPA под base "/di2/".
|
|
// Вывод — dist/public-di2, который сервер отдаёт на маршруте /di2 (server/index.ts).
|
|
|
|
export default defineConfig({
|
|
base: "/di2/",
|
|
root: path.resolve(import.meta.dirname, "client-di2"),
|
|
plugins: [react()],
|
|
resolve: {
|
|
alias: {
|
|
"@": path.resolve(import.meta.dirname, "client-di2", "src"),
|
|
"@shared": path.resolve(import.meta.dirname, "client-di2", "shared"),
|
|
// Общий код тем/скинов iistwin (чистый TS + generated-skins.css) — единый источник токенов
|
|
"@skin": path.resolve(import.meta.dirname, "client", "src", "themes"),
|
|
},
|
|
},
|
|
build: {
|
|
outDir: path.resolve(import.meta.dirname, "dist/public-di2"),
|
|
emptyOutDir: true,
|
|
},
|
|
});
|