DI2 внедрение, таск 2: клиентский субапп Data-Insight2 (client-di2)
- client-di2/: копия фронтенда DI2 + shared/schema.ts, main.tsx обёрнут в wouter Router base=/di2, favicon относительный - client-di2/tailwind.config.ts (свои токены DI2) подключён через @config в index.css — иначе postcss взял бы корневой конфиг iistwin - vite.config.di2.ts: base /di2/, root client-di2, outDir dist/public-di2 - package.json: build/check через && включают сборку и typecheck di2 (build:di2, check:di2), новых зависимостей нет - Навигация финансов: ссылка «Data-Insight (полная версия)» → /di2 (target=_blank) в FinanceSidebar и FinanceBottomNav - Типовые фиксы предсуществующих ошибок DI2 (casts, ruleLogic в mutation-типах, Set<string>)
This commit is contained in:
108
client-di2/tailwind.config.ts
Normal file
108
client-di2/tailwind.config.ts
Normal file
@@ -0,0 +1,108 @@
|
||||
import type { Config } from "tailwindcss";
|
||||
|
||||
export default {
|
||||
darkMode: ["class"],
|
||||
// Глобы относительно cwd сборки (корень репозитория) — npm-скрипты всегда запускаются оттуда
|
||||
content: ["./client-di2/index.html", "./client-di2/src/**/*.{js,jsx,ts,tsx}"],
|
||||
theme: {
|
||||
extend: {
|
||||
borderRadius: {
|
||||
lg: ".5625rem", /* 9px */
|
||||
md: ".375rem", /* 6px */
|
||||
sm: ".1875rem", /* 3px */
|
||||
},
|
||||
colors: {
|
||||
// Flat / base colors (regular buttons)
|
||||
background: "hsl(var(--background) / <alpha-value>)",
|
||||
foreground: "hsl(var(--foreground) / <alpha-value>)",
|
||||
border: "hsl(var(--border) / <alpha-value>)",
|
||||
input: "hsl(var(--input) / <alpha-value>)",
|
||||
card: {
|
||||
DEFAULT: "hsl(var(--card) / <alpha-value>)",
|
||||
foreground: "hsl(var(--card-foreground) / <alpha-value>)",
|
||||
border: "hsl(var(--card-border) / <alpha-value>)",
|
||||
},
|
||||
popover: {
|
||||
DEFAULT: "hsl(var(--popover) / <alpha-value>)",
|
||||
foreground: "hsl(var(--popover-foreground) / <alpha-value>)",
|
||||
border: "hsl(var(--popover-border) / <alpha-value>)",
|
||||
},
|
||||
primary: {
|
||||
DEFAULT: "hsl(var(--primary) / <alpha-value>)",
|
||||
foreground: "hsl(var(--primary-foreground) / <alpha-value>)",
|
||||
border: "var(--primary-border)",
|
||||
},
|
||||
secondary: {
|
||||
DEFAULT: "hsl(var(--secondary) / <alpha-value>)",
|
||||
foreground: "hsl(var(--secondary-foreground) / <alpha-value>)",
|
||||
border: "var(--secondary-border)",
|
||||
},
|
||||
muted: {
|
||||
DEFAULT: "hsl(var(--muted) / <alpha-value>)",
|
||||
foreground: "hsl(var(--muted-foreground) / <alpha-value>)",
|
||||
border: "var(--muted-border)",
|
||||
},
|
||||
accent: {
|
||||
DEFAULT: "hsl(var(--accent) / <alpha-value>)",
|
||||
foreground: "hsl(var(--accent-foreground) / <alpha-value>)",
|
||||
border: "var(--accent-border)",
|
||||
},
|
||||
destructive: {
|
||||
DEFAULT: "hsl(var(--destructive) / <alpha-value>)",
|
||||
foreground: "hsl(var(--destructive-foreground) / <alpha-value>)",
|
||||
border: "var(--destructive-border)",
|
||||
},
|
||||
ring: "hsl(var(--ring) / <alpha-value>)",
|
||||
chart: {
|
||||
"1": "hsl(var(--chart-1) / <alpha-value>)",
|
||||
"2": "hsl(var(--chart-2) / <alpha-value>)",
|
||||
"3": "hsl(var(--chart-3) / <alpha-value>)",
|
||||
"4": "hsl(var(--chart-4) / <alpha-value>)",
|
||||
"5": "hsl(var(--chart-5) / <alpha-value>)",
|
||||
},
|
||||
sidebar: {
|
||||
ring: "hsl(var(--sidebar-ring) / <alpha-value>)",
|
||||
DEFAULT: "hsl(var(--sidebar) / <alpha-value>)",
|
||||
foreground: "hsl(var(--sidebar-foreground) / <alpha-value>)",
|
||||
border: "hsl(var(--sidebar-border) / <alpha-value>)",
|
||||
},
|
||||
"sidebar-primary": {
|
||||
DEFAULT: "hsl(var(--sidebar-primary) / <alpha-value>)",
|
||||
foreground: "hsl(var(--sidebar-primary-foreground) / <alpha-value>)",
|
||||
border: "var(--sidebar-primary-border)",
|
||||
},
|
||||
"sidebar-accent": {
|
||||
DEFAULT: "hsl(var(--sidebar-accent) / <alpha-value>)",
|
||||
foreground: "hsl(var(--sidebar-accent-foreground) / <alpha-value>)",
|
||||
border: "var(--sidebar-accent-border)"
|
||||
},
|
||||
status: {
|
||||
online: "rgb(34 197 94)",
|
||||
away: "rgb(245 158 11)",
|
||||
busy: "rgb(239 68 68)",
|
||||
offline: "rgb(156 163 175)",
|
||||
},
|
||||
},
|
||||
fontFamily: {
|
||||
sans: ["var(--font-sans)"],
|
||||
serif: ["var(--font-serif)"],
|
||||
mono: ["var(--font-mono)"],
|
||||
},
|
||||
keyframes: {
|
||||
"accordion-down": {
|
||||
from: { height: "0" },
|
||||
to: { height: "var(--radix-accordion-content-height)" },
|
||||
},
|
||||
"accordion-up": {
|
||||
from: { height: "var(--radix-accordion-content-height)" },
|
||||
to: { height: "0" },
|
||||
},
|
||||
},
|
||||
animation: {
|
||||
"accordion-down": "accordion-down 0.2s ease-out",
|
||||
"accordion-up": "accordion-up 0.2s ease-out",
|
||||
},
|
||||
},
|
||||
},
|
||||
plugins: [require("tailwindcss-animate"), require("@tailwindcss/typography")],
|
||||
} satisfies Config;
|
||||
Reference in New Issue
Block a user