- 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>)
109 lines
4.1 KiB
TypeScript
109 lines
4.1 KiB
TypeScript
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;
|