// dudu 桌面端 · 系统托盘菜单 + 设置窗口 function TrayMenu() { const { Badge } = window.DuduDesignSystem_2e0172; const Item = ({ children, right, accent, onClick }) => { const [hover, setHover] = React.useState(false); return (
setHover(true)} onMouseLeave={() => setHover(false)} onClick={onClick} style={{ display: 'flex', justifyContent: 'space-between', alignItems: 'center', gap: 18, padding: '7px 14px', cursor: 'default', fontSize: 'var(--text-sm)', background: hover ? 'var(--accent)' : 'transparent', color: hover ? 'var(--text-on-accent)' : (accent ? 'var(--text-1)' : 'var(--text-1)'), transition: 'background var(--dur-fast) var(--ease-out)', }}> {children} {right && {right}}
); }; const Sep = () =>
; return (
dudu 语音输入 已就绪
}>启用快捷键 按住说话 设置… 时长余额 账号 wang*** 检查更新 退出 dudu
); } // 设置屏(2026-07-11 改版):分组从「灰字 + 通栏细线」改为卡片体块—— // 组标题在卡外、每组一张 radius-lg 卡片、卡内行以内嵌分隔线相隔; // 载入时分组 4 段轻微上浮淡入(对齐浮层动效语言,120/40ms 级差)。 const ddSettingsCss = ` @keyframes dd-set-in { from { opacity: 0; transform: translateY(4px); } } .dd-set-group { animation: dd-set-in var(--dur-base) var(--ease-out) both; } `; if (typeof document !== 'undefined' && !document.getElementById('dd-settings-css')) { const s = document.createElement('style'); s.id = 'dd-settings-css'; s.textContent = ddSettingsCss; document.head.appendChild(s); } function SettingsWindow({ theme, onThemeChange }) { const { Switch, SettingRow, HotkeyCombo, Button, Badge, ProgressBar, Select, Card } = window.DuduDesignSystem_2e0172; const [autostart, setAutostart] = React.useState(true); const [sound, setSound] = React.useState(false); const [mic, setMic] = React.useState('MacBook Pro 麦克风'); const Group = ({ title, order = 0, children }) => (
{title}
{children}
); const themeOptions = [['system', '跟随系统'], ['light', '浅色'], ['dark', '深色']]; return (