79b110afd0
后端: - 新增 POST /admin/kb/search:管理端跨租户检索,支持 mode 指定单路 (vector/fulltext/graph/hybrid),不走 scopedKB(否则会被强制锁到调用者 自己的 space,跨租户排障就没法做了) - KB 清单补 space_id(检索键是 <space_id>/<name>,缺它前端拼不出 key) 前端: - 数据源&RAG 页补「检索试验台」:同一 query 并排跑生产链路 + 四路诊断, 召回不准时能直接定位是向量/分词/图谱哪一环挂了 - 支付拆成「配置 / 订单与对账」两个子页,挂到运维 > 支付 下; 导航支持二级菜单(NavParent 命中子路由自动展开) - SettingsPage → ModelConfigPage「模型配置」,模型参数与计费规则合一 - 概览 → 仪表盘:并入计费与用量(UsagePage → UsageSection), 去掉系统健康拓扑(与服务状态页重复,同一份 /admin/status 数据) - 全局隐藏滚动条(保留滚动) Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
131 lines
2.8 KiB
CSS
131 lines
2.8 KiB
CSS
@tailwind base;
|
||
@tailwind components;
|
||
@tailwind utilities;
|
||
|
||
html,
|
||
body,
|
||
#root {
|
||
height: 100%;
|
||
margin: 0;
|
||
}
|
||
|
||
/* 全局隐藏滚动条(保留滚动功能)——官网与控制台所有页面、以及页内任意滚动区
|
||
(侧栏、表格 overflow-auto、Modal 等)统一生效。 */
|
||
* {
|
||
scrollbar-width: none; /* Firefox */
|
||
-ms-overflow-style: none; /* 旧 Edge/IE */
|
||
}
|
||
*::-webkit-scrollbar {
|
||
width: 0;
|
||
height: 0;
|
||
display: none; /* Chrome / Safari */
|
||
}
|
||
|
||
/* ══ 官网落地页设计 token(跟随 logo:青→蓝→紫)══
|
||
仅 src/site/ 的落地页组件用这些;admin 控制台用默认 gray/violet 调色板,互不影响。
|
||
bg-ground/text-ink 等只作用在 SiteLayout 的容器上(见 site-layout.tsx),不改 body。 */
|
||
:root {
|
||
--ground: #f5f7f9;
|
||
--surface: #ffffff;
|
||
--ink: #151c24;
|
||
--ink-2: #526069;
|
||
--ink-3: #8595a0;
|
||
--hairline: #e0e7ec;
|
||
--hairline-strong: #c6d2da;
|
||
--accent: #0284c7;
|
||
--accent-ink: #075985;
|
||
--accent-soft: #e0f2fe;
|
||
--code-bg: #ebf1f5;
|
||
--term-bg: #0e1620;
|
||
--term-ink: #c9e4f5;
|
||
--brand-g1: #0891b2;
|
||
--brand-g2: #2563eb;
|
||
--brand-g3: #9333ea;
|
||
}
|
||
|
||
.dark {
|
||
--ground: #0b1117;
|
||
--surface: #111925;
|
||
--ink: #e6edf3;
|
||
--ink-2: #93a6b4;
|
||
--ink-3: #62737f;
|
||
--hairline: #1f2c38;
|
||
--hairline-strong: #32434f;
|
||
--accent: #38bdf8;
|
||
--accent-ink: #7dd3fc;
|
||
--accent-soft: #0b3049;
|
||
--code-bg: #14202b;
|
||
--term-bg: #0a121b;
|
||
--term-ink: #bfe3f7;
|
||
--brand-g1: #22d3ee;
|
||
--brand-g2: #60a5fa;
|
||
--brand-g3: #c084fc;
|
||
}
|
||
|
||
/* v3 对 var() 色不支持 /opacity 修饰,用 color-mix 还原 bg-ground/85(sticky 头透底 + 模糊)。 */
|
||
.bg-ground-85 {
|
||
background-color: color-mix(in srgb, var(--ground) 85%, transparent);
|
||
}
|
||
|
||
/* 品牌渐变文字(logo 同源:青→蓝→紫),落地页克制使用 */
|
||
.text-brand-gradient {
|
||
background: linear-gradient(92deg, var(--brand-g1), var(--brand-g2) 55%, var(--brand-g3));
|
||
-webkit-background-clip: text;
|
||
background-clip: text;
|
||
color: transparent;
|
||
}
|
||
|
||
/* 终端光标 */
|
||
@keyframes caret-blink {
|
||
50% {
|
||
opacity: 0;
|
||
}
|
||
}
|
||
.caret-blink {
|
||
animation: caret-blink 1.1s steps(1) infinite;
|
||
}
|
||
|
||
/* 滚动进场(配合 Reveal 组件) */
|
||
.reveal {
|
||
opacity: 0;
|
||
transform: translateY(16px);
|
||
transition:
|
||
opacity 0.6s ease,
|
||
transform 0.6s ease;
|
||
}
|
||
.reveal-in {
|
||
opacity: 1;
|
||
transform: none;
|
||
}
|
||
|
||
/* 终端事件流:逐行浮现 */
|
||
@keyframes term-line-in {
|
||
from {
|
||
opacity: 0;
|
||
transform: translateY(6px);
|
||
}
|
||
to {
|
||
opacity: 1;
|
||
transform: none;
|
||
}
|
||
}
|
||
.term-line {
|
||
opacity: 0;
|
||
animation: term-line-in 0.45s ease forwards;
|
||
}
|
||
|
||
@media (prefers-reduced-motion: reduce) {
|
||
.caret-blink,
|
||
.term-line {
|
||
animation: none;
|
||
}
|
||
.term-line {
|
||
opacity: 1;
|
||
}
|
||
.reveal {
|
||
opacity: 1;
|
||
transform: none;
|
||
transition: none;
|
||
}
|
||
}
|