新增 - 本地识别改用 transcribe.cpp(GGUF/ggml):可选模型从 2 个扩到 5 个 (SenseVoice Small、Fun-ASR Nano、Qwen3-ASR 0.6B/1.7B/1.7B 高精度), 支持 Vulkan 显卡加速并可手动切回 CPU,加载后预热一次推理,空闲可卸载 - AI 服务改为卡片式管理:一张卡一套完整配置,可测连通性与响应延迟并分档留痕 - 应用 Prompt 规则支持用户自建,含「检测当前应用」自动填进程名 - 快捷键支持 Ctrl+Win 这类纯修饰键组合,三类快捷键之间做冲突检测 - 配置导出可按需选择,导入前给出新增/更新/跳过的变更预览 - 热词组、文本替换、润色模式支持拖拽排序 变更 - 移除 sherpa-onnx:安装体积与首次响应都由新引擎接管,旧 ONNX 权重开机自动回收 - 「格式规范」仅在未开 AI 整理时生效,开启后排版交给 AI;文本替换始终生效 - 单次录音上限提前在设置页说明,最后一分钟显示剩余时间 - 全应用统一称「AI 整理」(此前有三种叫法) 修复 - 本地模式下模型未下载时仍能开始录音 - 历史记录可同时播放多条录音 - 设置页开关与选择器在读回已保存值时出现一次跳变 - 应用规则误匹配(在 Outlook 中写标题含 Teams 的邮件被 Teams 规则抢走) - 弹窗遮罩未覆盖整个窗口 构建 - 客户端构建新增 CMake 与 Vulkan SDK 前置,README/CONTRIBUTING 已同步 - 打包随附 VC++ 运行库(app-local),并在发版前校验安装包内容 详细变更见 CHANGELOG.md。
89 lines
3.2 KiB
JavaScript
89 lines
3.2 KiB
JavaScript
/** @type {import('tailwindcss').Config} */
|
||
module.exports = {
|
||
darkMode: ["class"],
|
||
content: ["./index.html", "./overlay.html", "./src/**/*.{ts,tsx}"],
|
||
theme: {
|
||
extend: {
|
||
colors: {
|
||
border: "hsl(var(--border))",
|
||
input: "hsl(var(--input))",
|
||
ring: "hsl(var(--ring))",
|
||
background: "hsl(var(--background))",
|
||
foreground: "hsl(var(--foreground))",
|
||
primary: {
|
||
DEFAULT: "hsl(var(--primary))",
|
||
foreground: "hsl(var(--primary-foreground))",
|
||
},
|
||
secondary: {
|
||
DEFAULT: "hsl(var(--secondary))",
|
||
foreground: "hsl(var(--secondary-foreground))",
|
||
},
|
||
destructive: {
|
||
DEFAULT: "hsl(var(--destructive))",
|
||
foreground: "hsl(var(--destructive-foreground))",
|
||
// strong = 直接画在页面底色上的文字色(对比度达标版),见 src/themes/types.ts
|
||
strong: "hsl(var(--destructive-strong))",
|
||
},
|
||
muted: {
|
||
DEFAULT: "hsl(var(--muted))",
|
||
foreground: "hsl(var(--muted-foreground))",
|
||
},
|
||
accent: {
|
||
DEFAULT: "hsl(var(--accent))",
|
||
foreground: "hsl(var(--accent-foreground))",
|
||
},
|
||
card: {
|
||
DEFAULT: "hsl(var(--card))",
|
||
foreground: "hsl(var(--card-foreground))",
|
||
},
|
||
// 区域色
|
||
sidebar: {
|
||
DEFAULT: "hsl(var(--sidebar-bg))",
|
||
border: "hsl(var(--sidebar-border))",
|
||
"item-active": "hsl(var(--sidebar-item-active-bg))",
|
||
"item-hover": "hsl(var(--sidebar-item-hover-bg))",
|
||
text: "hsl(var(--sidebar-text))",
|
||
"text-active": "hsl(var(--sidebar-text-active))",
|
||
},
|
||
titlebar: {
|
||
DEFAULT: "hsl(var(--titlebar-bg))",
|
||
text: "hsl(var(--titlebar-text))",
|
||
"close-hover": "hsl(var(--titlebar-close-hover-bg))",
|
||
"close-hover-text": "hsl(var(--titlebar-close-hover-text))",
|
||
},
|
||
// 表单控件色
|
||
"input-bg": "hsl(var(--input-bg))",
|
||
"input-border": "hsl(var(--input-border))",
|
||
"input-focus-border": "hsl(var(--input-focus-border))",
|
||
"input-focus-ring": "hsl(var(--input-focus-ring))",
|
||
"input-placeholder": "hsl(var(--input-placeholder))",
|
||
// 状态色。三个变体的分工见 src/themes/types.ts:
|
||
// DEFAULT = 色块本体(圆点 / 进度条 / 10% 淡底)
|
||
// foreground = 压在色块本体上的文字
|
||
// strong = 直接画在页面或卡片底色上的文字(对比度 ≥4.5:1)
|
||
success: {
|
||
DEFAULT: "hsl(var(--success))",
|
||
foreground: "hsl(var(--success-foreground))",
|
||
strong: "hsl(var(--success-strong))",
|
||
},
|
||
warning: {
|
||
DEFAULT: "hsl(var(--warning))",
|
||
foreground: "hsl(var(--warning-foreground))",
|
||
strong: "hsl(var(--warning-strong))",
|
||
},
|
||
info: {
|
||
DEFAULT: "hsl(var(--info))",
|
||
foreground: "hsl(var(--info-foreground))",
|
||
strong: "hsl(var(--info-strong))",
|
||
},
|
||
},
|
||
borderRadius: {
|
||
lg: "var(--radius)",
|
||
md: "calc(var(--radius) - 2px)",
|
||
sm: "calc(var(--radius) - 4px)",
|
||
},
|
||
},
|
||
},
|
||
plugins: [require("tailwindcss-animate")],
|
||
}
|