qwen-code/packages/web-shell/client/components/dialogs/DialogShell.module.css
Jabrail 535dfd9a11
feat(web-shell): add PWA installability and Android development shell (#11722)
* feat(web-shell): add installable PWA support

* fix(build): skip incomplete Web Shell assets when bundling

* feat(web-shell): declare browser support matrix and compat fallbacks

* feat(web-shell): make the Web Shell installable as a PWA

Serves /manifest.webmanifest and /sw.js pre-auth, registers the worker
deferred to load, and replaces the earlier service-worker.js draft with
sw.js as a Vite entry (PNG icons included).

* feat(mobile-shell): add Android WebView shell skeleton

WebView shell around the daemon-served Web Shell (no second UI), profile
tuples of URL/token/display name with #token= fragment delivery, native
WebView version check at the Chrome 107 floor, and a foreground-service
skeleton for SSE/notifications.

* chore(web-shell): drop superseded service worker draft files

* test(web-shell): cover service worker routing and lifecycle

* chore(web-shell): align @playwright/test with main lockfile

* chore: register mobile-shell importer in pnpm lockfile

* test(web-shell): parse sidebar stylesheet with postcss for @supports nesting

* chore: register mobile-shell in pnpm rewrite set

* fix(web-shell): address PWA and Android acceptance blockers

* docs(mobile-shell): make remaining native acceptance limits explicit

* fix(web-shell): address fourth PWA review round

* fix(mobile-shell): restore web view on back

---------

Co-authored-by: Shaojin Wen <shaojin.wensj@alibaba-inc.com>
2026-09-17 22:23:58 +00:00

65 lines
1.8 KiB
CSS

.themeDark {
--background: #0d0d0d;
--foreground: #fafafa;
--muted: #161616;
--muted-foreground: #808598;
--secondary: #1e1e1e;
--border: #2a2a2a;
--agent-blue-500: #6785ff;
/* Chart series colors — mirror App.module.css .themeDark. DialogShell portals
to document.body, outside the app root that defines these, so the dialog's
own theme scope must carry them or SVG strokes resolve to `none`. */
--agent-blue-400: #8aa0ff;
--primary: #fafafa;
--success-color: #48bb78;
--warning-color: #ecc94b;
--error-color: #fc8181;
--font-mono:
'SF Mono', 'Fira Code', 'JetBrains Mono', 'Cascadia Code', monospace;
--font-sans:
-apple-system, BlinkMacSystemFont, 'Segoe UI', system-ui, sans-serif;
--radius: 6px;
--dialog-overlay: rgba(0, 0, 0, 0.62);
}
.themeLight {
--background: #ffffff;
--foreground: #0a0a0b;
--muted: #f3f3f5;
--muted-foreground: #a3a3a5;
--secondary: #f3f3f5;
--border: #e3e4e6;
--agent-blue-500: #0033ff;
/* Chart series colors — mirror App.module.css .themeLight (see .themeDark). */
--agent-blue-400: #335cff;
--primary: #151517;
--success-color: #1f7a3a;
--warning-color: #9a6a00;
--error-color: #c0362c;
--font-mono:
'SF Mono', 'Fira Code', 'JetBrains Mono', 'Cascadia Code', monospace;
--font-sans:
-apple-system, BlinkMacSystemFont, 'Segoe UI', system-ui, sans-serif;
--radius: 6px;
--dialog-overlay: rgba(10, 10, 11, 0.32);
}
.viewportPanel {
max-height: min(80vh, calc(100vh - 48px));
}
.viewportPanel[data-fullscreen] {
height: calc(100vh - 32px);
max-height: calc(100vh - 32px);
}
@supports (height: 100dvh) {
.viewportPanel {
max-height: min(80dvh, calc(100dvh - 48px));
}
.viewportPanel[data-fullscreen] {
height: calc(100dvh - 32px);
max-height: calc(100dvh - 32px);
}
}