duaer-spec 0.27.2 → 0.27.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.duaer/active-job.json +3 -3
- package/.duaer/specs/281-release-0272/delivery.json +8 -0
- package/.duaer/specs/281-release-0272/tasks.md +1 -1
- package/.duaer/specs/282-dispatch-confirm-lock/delivery.json +12 -0
- package/.duaer/specs/282-dispatch-confirm-lock/spec.md +26 -0
- package/.duaer/specs/282-dispatch-confirm-lock/tasks.md +5 -0
- package/.duaer/specs/283-desk-theme-compact/delivery.json +12 -0
- package/.duaer/specs/283-desk-theme-compact/spec.md +26 -0
- package/.duaer/specs/283-desk-theme-compact/tasks.md +5 -0
- package/.duaer/specs/284-dispatch-graph-regen/delivery.json +12 -0
- package/.duaer/specs/284-dispatch-graph-regen/spec.md +33 -0
- package/.duaer/specs/284-dispatch-graph-regen/tasks.md +5 -0
- package/.duaer/specs/285-desk-light-compact/delivery.json +11 -0
- package/.duaer/specs/285-desk-light-compact/spec.md +13 -0
- package/.duaer/specs/285-desk-light-compact/tasks.md +5 -0
- package/.duaer/specs/286-modules-bug-theme/delivery.json +10 -0
- package/.duaer/specs/286-modules-bug-theme/spec.md +26 -0
- package/.duaer/specs/286-modules-bug-theme/tasks.md +5 -0
- package/.duaer/specs/287-progress-modules-ux/delivery.json +10 -0
- package/.duaer/specs/287-progress-modules-ux/spec.md +31 -0
- package/.duaer/specs/287-progress-modules-ux/tasks.md +5 -0
- package/.duaer/specs/288-settings-close-compact/delivery.json +10 -0
- package/.duaer/specs/288-settings-close-compact/spec.md +17 -0
- package/.duaer/specs/288-settings-close-compact/tasks.md +5 -0
- package/.duaer/specs/289-settings-close-click/delivery.json +10 -0
- package/.duaer/specs/289-settings-close-click/spec.md +16 -0
- package/.duaer/specs/289-settings-close-click/tasks.md +4 -0
- package/.duaer/specs/290-remove-quicknav/delivery.json +10 -0
- package/.duaer/specs/290-remove-quicknav/spec.md +11 -0
- package/.duaer/specs/290-remove-quicknav/tasks.md +4 -0
- package/.duaer/specs/291-release-0273/spec.md +12 -0
- package/.duaer/specs/291-release-0273/tasks.md +4 -0
- package/CHANGELOG.md +56 -0
- package/bin/duaer-live.mjs +11 -20
- package/bin/live-modules.mjs +23 -3
- package/docs/agent/e2e-test-plan.md +16 -5
- package/docs/agent/live-desk.md +24 -11
- package/package.json +1 -1
- package/web/live-dev/app.js +329 -167
- package/web/live-dev/dispatch-center.html +29 -1
- package/web/live-dev/dispatch-center.js +25 -1
- package/web/live-dev/i18n-de.js +5 -0
- package/web/live-dev/i18n-es.js +5 -0
- package/web/live-dev/i18n-fr.js +5 -0
- package/web/live-dev/i18n-ja.js +5 -0
- package/web/live-dev/i18n-ko.js +5 -0
- package/web/live-dev/i18n-pt-BR.js +5 -0
- package/web/live-dev/i18n-ru.js +5 -0
- package/web/live-dev/i18n-vi.js +5 -0
- package/web/live-dev/i18n-zh-TW.js +5 -0
- package/web/live-dev/i18n.js +10 -0
- package/web/live-dev/index.html +31 -32
- package/web/live-dev/styles.css +296 -315
- package/web/live-dev/task-graph.mjs +4 -1
- package/web/live-dev/theme.mjs +63 -0
|
@@ -216,7 +216,10 @@ export function buildPreviewPoolForBug(modules) {
|
|
|
216
216
|
const list = (Array.isArray(modules) ? modules : []).filter(
|
|
217
217
|
(m) => m && m.status === "confirmed",
|
|
218
218
|
);
|
|
219
|
-
const m =
|
|
219
|
+
const m =
|
|
220
|
+
list.find((x) => x.id === "bug") ||
|
|
221
|
+
list[0] ||
|
|
222
|
+
{ id: "bug", title: "Bug", card: {} };
|
|
220
223
|
const title = String(m.title || m.id || "Bug").slice(0, 80);
|
|
221
224
|
const card = m.card && typeof m.card === "object" ? m.card : {};
|
|
222
225
|
const tasks = [];
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Desk color theme: light | dark (persisted).
|
|
3
|
+
* Apply `data-theme` on <html> before paint via the head boot script.
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
const STORAGE_KEY = "duaer.live.theme";
|
|
7
|
+
|
|
8
|
+
/** @returns {"light"|"dark"} */
|
|
9
|
+
export function getTheme() {
|
|
10
|
+
const attr = document.documentElement.getAttribute("data-theme");
|
|
11
|
+
if (attr === "light" || attr === "dark") return attr;
|
|
12
|
+
return "dark";
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* @param {"light"|"dark"} theme
|
|
17
|
+
*/
|
|
18
|
+
export function setTheme(theme) {
|
|
19
|
+
const next = theme === "light" ? "light" : "dark";
|
|
20
|
+
document.documentElement.setAttribute("data-theme", next);
|
|
21
|
+
try {
|
|
22
|
+
localStorage.setItem(STORAGE_KEY, next);
|
|
23
|
+
} catch {
|
|
24
|
+
/* ignore */
|
|
25
|
+
}
|
|
26
|
+
document.dispatchEvent(
|
|
27
|
+
new CustomEvent("duaer-theme", { detail: { theme: next } }),
|
|
28
|
+
);
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
export function toggleTheme() {
|
|
32
|
+
setTheme(getTheme() === "light" ? "dark" : "light");
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
/**
|
|
36
|
+
* Resolve initial theme: stored → system preference → dark.
|
|
37
|
+
* @returns {"light"|"dark"}
|
|
38
|
+
*/
|
|
39
|
+
export function resolveInitialTheme() {
|
|
40
|
+
try {
|
|
41
|
+
const stored = localStorage.getItem(STORAGE_KEY);
|
|
42
|
+
if (stored === "light" || stored === "dark") return stored;
|
|
43
|
+
} catch {
|
|
44
|
+
/* ignore */
|
|
45
|
+
}
|
|
46
|
+
try {
|
|
47
|
+
if (window.matchMedia("(prefers-color-scheme: light)").matches) {
|
|
48
|
+
return "light";
|
|
49
|
+
}
|
|
50
|
+
} catch {
|
|
51
|
+
/* ignore */
|
|
52
|
+
}
|
|
53
|
+
return "dark";
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
/** Ensure html[data-theme] is set (safe if head boot already ran). */
|
|
57
|
+
export function initTheme() {
|
|
58
|
+
const current = document.documentElement.getAttribute("data-theme");
|
|
59
|
+
if (current !== "light" && current !== "dark") {
|
|
60
|
+
setTheme(resolveInitialTheme());
|
|
61
|
+
}
|
|
62
|
+
return getTheme();
|
|
63
|
+
}
|