diff --git a/frontend/web/package-lock.json b/frontend/web/package-lock.json index 8ba45baaf..324c38ea1 100644 --- a/frontend/web/package-lock.json +++ b/frontend/web/package-lock.json @@ -10,9 +10,6 @@ "dependencies": { "@fontsource-variable/geist": "^5.2.9", "@fontsource-variable/geist-mono": "^5.2.8", - "@fortawesome/fontawesome-svg-core": "^7.3.0", - "@fortawesome/free-solid-svg-icons": "^7.3.0", - "@fortawesome/react-fontawesome": "^3.4.0", "@tanstack/react-query": "^5.59.0", "@xyflow/react": "12.11.1", "katex": "^0.18.5", @@ -38,13 +35,13 @@ "@types/three": "^0.186.0", "@vitejs/plugin-react": "^6.0.5", "autoprefixer": "^10.4.20", + "micromark-util-types": "2.0.2", "postcss": "^8.5.26", "react-test-renderer": "18.3.1", "tailwindcss": "^3.4.14", "typescript": "^5.6.3", "vite": "^8.2.1", - "vitest": "^4.1.10", - "micromark-util-types": "2.0.2" + "vitest": "^4.1.10" } }, "node_modules/@alloc/quick-lru": { @@ -85,52 +82,6 @@ "url": "https://github.com/sponsors/ayuhito" } }, - "node_modules/@fortawesome/fontawesome-common-types": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-common-types/-/fontawesome-common-types-7.3.1.tgz", - "integrity": "sha512-k0C0sdHmZtAo6dRDtd1Z/qcpyHbL0CKsjV8seMY/21xGhY5Wsv0XRmiI/xEEH4y2c9b1+jvgNs/3EqhV27yUEA==", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/@fortawesome/fontawesome-svg-core": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-svg-core/-/fontawesome-svg-core-7.3.1.tgz", - "integrity": "sha512-BoxVN3PKnMbgStHhjoaky/oWdxHomDqmBVA24IA3KEmssFGeI7u9YT/BJceOjIum/t6TpPa/vcMKaVYQeIQ/3Q==", - "license": "MIT", - "dependencies": { - "@fortawesome/fontawesome-common-types": "7.3.1" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/@fortawesome/free-solid-svg-icons": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/@fortawesome/free-solid-svg-icons/-/free-solid-svg-icons-7.3.1.tgz", - "integrity": "sha512-v0BLa0eqg7ubvVWeNSHVBs8fWH/GJicERZoJaxJ3FE/lj67VSqzoMg9pzfZVOfLMX10y0pGwQAuxoRVVH2patg==", - "license": "(CC-BY-4.0 AND MIT)", - "dependencies": { - "@fortawesome/fontawesome-common-types": "7.3.1" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/@fortawesome/react-fontawesome": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/@fortawesome/react-fontawesome/-/react-fontawesome-3.5.0.tgz", - "integrity": "sha512-63mlRr6fiBbJ0wjr1Cf6dsDGtP2lNvk9lnatKgxs/fIkhslsZT291hIUzJkuUkI9yr69ZvWnWfgb2qXm4QyVaA==", - "license": "MIT", - "engines": { - "node": ">=20" - }, - "peerDependencies": { - "@fortawesome/fontawesome-svg-core": "~6 || ~7", - "react": "^18.0.0 || ^19.0.0" - } - }, "node_modules/@jridgewell/gen-mapping": { "version": "0.3.13", "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz", diff --git a/frontend/web/package.json b/frontend/web/package.json index 11a635855..f63b05453 100644 --- a/frontend/web/package.json +++ b/frontend/web/package.json @@ -14,9 +14,6 @@ "dependencies": { "@fontsource-variable/geist": "^5.2.9", "@fontsource-variable/geist-mono": "^5.2.8", - "@fortawesome/fontawesome-svg-core": "^7.3.0", - "@fortawesome/free-solid-svg-icons": "^7.3.0", - "@fortawesome/react-fontawesome": "^3.4.0", "@tanstack/react-query": "^5.59.0", "@xyflow/react": "12.11.1", "katex": "^0.18.5", diff --git a/frontend/web/src/App.tsx b/frontend/web/src/App.tsx index 0aa133587..df90e9c24 100644 --- a/frontend/web/src/App.tsx +++ b/frontend/web/src/App.tsx @@ -818,7 +818,7 @@ export default function App() { const proj: PaletteItem[] = projects.map((p) => ({ id: `p-${p.id}`, label: shownName(p, locale === 'zh-CN', t('sidebar.unnamedSession')), - hint: p.daemon_alive ? `● ${t('common.live')}` : '○', + hint: p.daemon_alive ? t('common.live') : undefined, keywords: `${p.id} ${p.display_name ?? ''} ${p.daemon_alive ? 'live running' : 'stopped idle'}`, group: t('palette.project'), run: () => selectProject(p.id), @@ -883,16 +883,6 @@ export default function App() { onManage={requestManageSession} onOpenPanel={(panel) => setOverlay(panel)} onOpenLearning={openLearningLibrary} - onOpenResults={() => { - const selection = defaultDeliverySelection(deliveryHistory); - if (selection) openDelivery(selection.receipt, selection.path); - else { - setPreviewPathRequest(current => ({ path: FILES_PATH, token: current.token + 1 })); - openPreview(); - } - setSidebarOpen(false); - }} - resultsCount={deliveryCount} onNew={() => { startNewSession(); setSidebarOpen(false); }} onSearch={() => setSearchOpen(true)} // The trial portal owns sign-in; a token kept here is this browser's own. @@ -932,7 +922,7 @@ export default function App() { snapshotStale={snapQ.isError} readOnly={kiosk} /> : -
+
{shownName(projects.find(project => project.id === activeSid) ?? {}, locale === 'zh-CN', t('sidebar.unnamedSession'))}
} diff --git a/frontend/web/src/components/ArtifactModal.tsx b/frontend/web/src/components/ArtifactModal.tsx index 3f752ca9c..c3cd2a903 100644 --- a/frontend/web/src/components/ArtifactModal.tsx +++ b/frontend/web/src/components/ArtifactModal.tsx @@ -166,7 +166,7 @@ export function ArtifactModal({ {/* On a phone the file's tools wrap onto their own rows under its name. */}
-

+

{info?.name ?? path ?? t('artifact.title')}

diff --git a/frontend/web/src/components/BrowserNotificationSettings.tsx b/frontend/web/src/components/BrowserNotificationSettings.tsx index a2f338b8c..c9807e1b6 100644 --- a/frontend/web/src/components/BrowserNotificationSettings.tsx +++ b/frontend/web/src/components/BrowserNotificationSettings.tsx @@ -20,7 +20,7 @@ export function BrowserNotificationSettings({ notifications }: { ; diff --git a/frontend/web/src/components/ChiefNeeds.tsx b/frontend/web/src/components/ChiefNeeds.tsx index 40d8e7aed..66a639988 100644 --- a/frontend/web/src/components/ChiefNeeds.tsx +++ b/frontend/web/src/components/ChiefNeeds.tsx @@ -21,7 +21,7 @@ export function ChiefNeeds({ zh, onStart }: { }; return (

-

{zh ? '你的总负责人' : 'Your chief'}

+

{zh ? '你的总负责人' : 'Your chief'}

{zh ? '它照看你所有的项目,盯着你关心的方向,有值得说的会主动来找你。勾选你需要的就行。' : 'It looks after all your projects, follows your directions, and comes to you when something is worth it. Tick what you need.'}

diff --git a/frontend/web/src/components/CommandPalette.tsx b/frontend/web/src/components/CommandPalette.tsx index 7e024503d..970bf004c 100644 --- a/frontend/web/src/components/CommandPalette.tsx +++ b/frontend/web/src/components/CommandPalette.tsx @@ -103,7 +103,7 @@ export function CommandPalette({ aria-autocomplete="list" aria-controls="command-palette-results" aria-activedescendant={filtered[sel] ? `palette-${filtered[sel].id}` : undefined} - className="w-full bg-transparent font-mono text-sm text-ink outline-none placeholder:text-ink-faint" + className="w-full bg-transparent text-[15px] text-ink outline-none placeholder:text-ink-faint" />
@@ -112,7 +112,7 @@ export function CommandPalette({ )} {groups.map((g) => (
-
+
{g.name}
{g.items.map((it) => { @@ -127,8 +127,8 @@ export function CommandPalette({ aria-selected={active} onMouseEnter={() => setSel(filtered.indexOf(it))} onClick={() => choose(it)} - className={`flex w-full items-center justify-between px-4 py-1.5 text-left text-sm transition-colors ${ - active ? 'bg-blue-deep/20 text-ink' : 'text-ink-dim hover:bg-panel/60' + className={`mx-2 flex w-[calc(100%-1rem)] items-center justify-between rounded-lg px-3 py-2 text-left text-sm transition-colors ${ + active ? 'bg-sunken text-ink' : 'text-ink-dim' }`} > {it.label} diff --git a/frontend/web/src/components/CredentialsSettings.tsx b/frontend/web/src/components/CredentialsSettings.tsx index e082852ee..c01deb8f8 100644 --- a/frontend/web/src/components/CredentialsSettings.tsx +++ b/frontend/web/src/components/CredentialsSettings.tsx @@ -36,7 +36,7 @@ export function CredentialsSettings() { catch (reason) { setError(requestFailureText(reason, t).text); } finally { setBusy(false); } }; - const fieldClass = 'mt-1 w-full min-w-0 rounded border border-line bg-bg px-3 py-2 text-sm text-ink outline-none focus:border-blue'; + const fieldClass = 'mt-2 w-full min-w-0 rounded-xl border border-line bg-bg px-3 py-2 text-sm text-ink outline-none focus:border-ink-faint'; return

{zh ? '传给角色的环境变量' : 'Environment for roles'}

{zh @@ -51,7 +51,7 @@ export function CredentialsSettings() {