create-pmos 0.512.0 → 0.514.0
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/package.json +27 -95
- package/payload/KIT-VERSION +1 -1
- package/payload/planning/evals/eval-calibration.md +1 -1
- package/payload/planning/okrs/health-budgets.md +1 -1
- package/payload/state/discoveries.md +1 -1
- package/workspace/briefing-premium-adddoc-test.js +3 -3
- package/workspace/briefing-premium-board-test.js +2 -2
- package/workspace/briefing-premium-initiative-test.js +3 -3
- package/workspace/briefing-premium-insights-test.js +2 -2
- package/workspace/briefing-premium-sources-test.js +4 -5
- package/workspace/briefing-premium-test.js +2 -2
- package/workspace/changelog.json +26 -0
- package/workspace/guide/home.md +1 -1
- package/workspace/intel-report-ui-test.js +1 -1
- package/workspace/intelligence-gaps-ui-test.js +1 -1
- package/workspace/lib/premium-console-type.js +15 -12
- package/workspace/lib/routes-boards.js +18 -6
- package/workspace/metric-drafts-ui-test.js +2 -2
- package/workspace/package-lock.json +2 -2
- package/workspace/package.json +1 -1
- package/workspace/premium-menu-rows-test.js +1 -1
- package/workspace/premium-vw-doc-test.js +1 -1
- package/workspace/public/pm/bd-pin-card.css +4 -4
- package/workspace/public/pm/bd-publish.css +11 -11
- package/workspace/public/pm/bd-shared.css +17 -17
- package/workspace/public/pm/c3-capture.css +9 -9
- package/workspace/public/pm/c3-initiatives.css +23 -23
- package/workspace/public/pm/c3-listen.css +1 -1
- package/workspace/public/pm/components.css +572 -572
- package/workspace/public/pm/console3.css +374 -373
- package/workspace/public/pm/cozy-adler.css +4 -4
- package/workspace/public/pm/cozy-aud.css +1 -1
- package/workspace/public/pm/cozy-board.css +328 -328
- package/workspace/public/pm/cozy-ev.css +78 -78
- package/workspace/public/pm/cozy-home-rows.css +32 -32
- package/workspace/public/pm/cozy-home.css +240 -240
- package/workspace/public/pm/cozy-insights.css +200 -200
- package/workspace/public/pm/cozy-live-pill.css +5 -5
- package/workspace/public/pm/cozy-mtg-present.css +28 -28
- package/workspace/public/pm/cozy-onboard.css +15 -15
- package/workspace/public/pm/cozy-panel.css +39 -39
- package/workspace/public/pm/cozy-pick.css +5 -5
- package/workspace/public/pm/cozy-rec-now.css +23 -23
- package/workspace/public/pm/cozy-rec-present.css +11 -11
- package/workspace/public/pm/cozy-rec-tab.css +13 -13
- package/workspace/public/pm/cozy-steps.css +14 -14
- package/workspace/public/pm/cozy-today.css +95 -95
- package/workspace/public/pm/cozy-viewer.css +27 -27
- package/workspace/public/pm/cozy-vw-mtg.css +113 -113
- package/workspace/public/pm/cozy-vw-rp.css +79 -79
- package/workspace/public/pm/cozy-vw-shell.css +43 -43
- package/workspace/public/pm/cozy-vw.css +129 -129
- package/workspace/public/pm/cozy-xv.css +15 -15
- package/workspace/public/pm/cozy.css +53 -21
- package/workspace/public/pm/dash-view.css +27 -27
- package/workspace/public/pm/hi-pop.css +26 -26
- package/workspace/public/pm/home-impact.css +8 -8
- package/workspace/public/pm/home-ini.css +36 -36
- package/workspace/public/pm/home-line.css +7 -7
- package/workspace/public/pm/impact.css +9 -9
- package/workspace/public/pm/ini-view.css +243 -243
- package/workspace/public/pm/load-shapes.css +1 -1
- package/workspace/public/pm/loose-props.css +14 -14
- package/workspace/public/pm/metric-drafts.css +20 -20
- package/workspace/public/pm/ms-suggest.css +9 -9
- package/workspace/public/pm/ov-view.css +14 -14
- package/workspace/public/pm/premium-insights.js +3 -3
- package/workspace/public/pm/premium-report-frame.css +1 -1
- package/workspace/public/pm/premium-report-intel.css +17 -17
- package/workspace/public/pm/premium-report-print.css +1 -1
- package/workspace/public/pm/premium-vw-backlog.css +13 -13
- package/workspace/public/pm/premium-vw-cal.css +32 -32
- package/workspace/public/pm/premium-vw-copy.css +7 -7
- package/workspace/public/pm/premium-vw-doc.css +69 -69
- package/workspace/public/pm/premium-vw-item.css +12 -12
- package/workspace/public/pm/premium-vw-jira.css +39 -39
- package/workspace/public/pm/premium-vw-meet.css +28 -28
- package/workspace/public/pm/premium-vw-notepad.css +13 -13
- package/workspace/public/pm/premium-vw-notes.css +11 -11
- package/workspace/public/pm/premium-vw-rec.css +27 -27
- package/workspace/public/pm/premium-vw-report.css +21 -21
- package/workspace/public/pm/premium-vw-slides.css +28 -28
- package/workspace/public/pm/premium.css +618 -618
- package/workspace/public/pm/prog-order.css +6 -6
- package/workspace/public/pm/prog-page.css +17 -17
- package/workspace/public/pm/program-charter.css +33 -33
- package/workspace/public/pm/ready-lib.css +6 -6
- package/workspace/public/pm/sort-order.css +1 -1
- package/workspace/public/pm/split-merge.css +18 -18
- package/workspace/public/pm/task-card.css +24 -24
- package/workspace/public/pm/tk-tasks.css +42 -42
- package/workspace/public/pm/tk-view.css +6 -6
- package/workspace/public/pm/wf-page.css +31 -31
- package/workspace/public/premium-aud.html +1 -1
- package/workspace/public/premium-board.html +1 -1
- package/workspace/public/premium-intelligence.html +1 -1
- package/workspace/public/premium-rec.html +1 -1
- package/workspace/public/premium-viewer.html +1 -1
- package/workspace/public/premium-workflows.html +1 -1
- package/workspace/public/premium.html +1 -1
- package/workspace/public/vendor/plus-jakarta-sans-var.woff2 +0 -0
- package/workspace/server.js +1 -0
- package/workspace/third-party/README.md +2 -1
- package/workspace/third-party/plus-jakarta-sans-OFL.LICENSE +93 -0
|
@@ -6,10 +6,10 @@
|
|
|
6
6
|
.tk-gh { position: relative; display: flex; align-items: center; }
|
|
7
7
|
.tk-ghb { display: flex; align-items: center; gap: 8px; width: 100%; min-height: 44px; margin: 6px 0 2px; padding: 0 8px; background: none; border: 0; font: inherit; color: var(--cz-ink); text-align: left; cursor: pointer; border-radius: 12px; }
|
|
8
8
|
.tk-gh.s .tk-ghb { padding-right: 8px; }
|
|
9
|
-
.tk-ghb b { flex: 1; min-width: 0; font-size: var(--fs-
|
|
9
|
+
.tk-ghb b { flex: 1; min-width: 0; font-size: var(--fs-row); font-weight: var(--fw-strong); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; line-height: var(--lh-row); }
|
|
10
10
|
.tk-gh.s .tk-ghb b { padding-right: 44px; }
|
|
11
|
-
.tk-ghb[aria-expanded="false"] b { color: var(--cz-ink2); font-weight:
|
|
12
|
-
.tk-ghr { display: inline-flex; align-items: center; gap: 2px; font-size: var(--fs-
|
|
11
|
+
.tk-ghb[aria-expanded="false"] b { color: var(--cz-ink2); font-weight: var(--fw-strong); }
|
|
12
|
+
.tk-ghr { display: inline-flex; align-items: center; gap: 2px; font-size: var(--fs-label); font-weight: var(--fw-strong); color: var(--cz-ink3); line-height: var(--lh-label); }
|
|
13
13
|
.tk-ghb:focus-visible, .tk-snd:focus-visible, .tk-row:focus-visible, .tk-fold:focus-visible { outline: 2px solid var(--cz-blue); outline-offset: -2px; }
|
|
14
14
|
/* the send icon sits before the count, inside the header row (PgTkList .gh .r) */
|
|
15
15
|
.tk-snd { position: absolute; right: 52px; top: 50%; transform: translateY(-50%); width: 36px; height: 36px; border-radius: 999px; border: 0; background: none; color: var(--cz-ink2); display: inline-flex; align-items: center; justify-content: center; cursor: pointer; }
|
|
@@ -23,55 +23,55 @@
|
|
|
23
23
|
.tk-sq.doing { background: var(--cz-blue); }
|
|
24
24
|
.tk-sq.done { background: var(--cz-ok); }
|
|
25
25
|
.tk-t { flex: 1; min-width: 0; display: flex; flex-direction: column; }
|
|
26
|
-
.tk-t b { font-size: var(--fs-
|
|
27
|
-
.tk-t span { font-size: var(--fs-
|
|
26
|
+
.tk-t b { font-size: var(--fs-row); font-weight: var(--fw-strong); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; line-height: var(--lh-row); }
|
|
27
|
+
.tk-t span { font-size: var(--fs-meta); color: var(--cz-ink3); line-height: var(--lh-meta); }
|
|
28
28
|
.tk-mk { width: 8px; height: 8px; border-radius: 50%; flex: none; display: inline-block; }
|
|
29
29
|
.tk-mk.warn { background: var(--cz-risk); }
|
|
30
30
|
.tk-mk.info { background: var(--cz-blue); }
|
|
31
|
-
.tk-av { width: 24px; height: 24px; border-radius: 50%; background: var(--cz-well); color: var(--cz-ink2); font-size: var(--fs-
|
|
32
|
-
.tk-fold { position: relative; display: flex; align-items: center; width: 100%; min-height: 44px; padding: 0 14px 0 42px; background: none; border: 0; font:
|
|
33
|
-
.tk-read { margin: 8px 8px 0; font-size: var(--fs-
|
|
31
|
+
.tk-av { width: 24px; height: 24px; border-radius: 50%; background: var(--cz-well); color: var(--cz-ink2); font-size: var(--fs-badge); font-weight: var(--fw-strong); display: inline-flex; align-items: center; justify-content: center; flex: none; line-height: var(--lh-badge); }
|
|
32
|
+
.tk-fold { position: relative; display: flex; align-items: center; width: 100%; min-height: 44px; padding: 0 14px 0 42px; background: none; border: 0; font: var(--fw-strong) var(--fs-row)/var(--lh-row) var(--cz-sans); color: var(--cz-ink2); cursor: pointer; text-align: left; justify-content: space-between; border-radius: 16px; }
|
|
33
|
+
.tk-read { margin: 8px 8px 0; font-size: var(--fs-meta); color: var(--cz-ink3); line-height: var(--lh-meta); }
|
|
34
34
|
.tk-card { background: var(--cz-card); border-radius: 20px; padding: 12px 14px; box-shadow: 0 8px 24px -20px rgba(42, 46, 53, .35); }
|
|
35
35
|
.tk-empty { display: flex; flex-direction: column; gap: 10px; align-items: flex-start; }
|
|
36
|
-
.tk-empty p { margin: 0; font-size: var(--fs-
|
|
36
|
+
.tk-empty p { margin: 0; font-size: var(--fs-meta); line-height: 1.45; color: var(--cz-ink2); }
|
|
37
37
|
.hi-v .tk-g.hi-tg { border-radius: 0; }
|
|
38
38
|
|
|
39
39
|
/* ── T2 · one drafted ticket ── */
|
|
40
40
|
.tk-v { display: flex; flex-direction: column; gap: 14px; padding-bottom: 8px; position: relative; }
|
|
41
|
-
.tk-crumb { margin: 0; font-size: var(--fs-
|
|
42
|
-
.tk-flag { margin: 0; display: flex; align-items: center; gap: 8px; font-size: var(--fs-
|
|
41
|
+
.tk-crumb { margin: 0; font-size: var(--fs-label); font-weight: var(--fw-strong); color: var(--cz-ink3); line-height: var(--lh-label); }
|
|
42
|
+
.tk-flag { margin: 0; display: flex; align-items: center; gap: 8px; font-size: var(--fs-meta); color: var(--cz-ink2); line-height: var(--lh-meta); }
|
|
43
43
|
.tk-fields { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
|
|
44
44
|
.tk-f { background: var(--cz-card); border: 0; border-radius: 14px; padding: 8px 12px; min-height: 52px; display: flex; flex-direction: column; justify-content: center; text-align: left; font: inherit; color: var(--cz-ink); cursor: pointer; box-shadow: 0 8px 24px -20px rgba(42, 46, 53, .35); }
|
|
45
45
|
.tk-f:hover { background: color-mix(in srgb, var(--cz-well) 45%, var(--cz-card)); }
|
|
46
46
|
.tk-f:focus-visible { outline: 2px solid var(--cz-blue); outline-offset: 2px; }
|
|
47
|
-
.tk-fl { font-size: var(--fs-
|
|
48
|
-
.tk-fv { font-size: var(--fs-
|
|
49
|
-
.tk-fv.mut, .tk-mut { color: var(--cz-ink3); font-weight:
|
|
47
|
+
.tk-fl { font-size: var(--fs-badge); font-weight: var(--fw-strong); color: var(--cz-ink3); line-height: var(--lh-badge); }
|
|
48
|
+
.tk-fv { font-size: var(--fs-row); font-weight: var(--fw-strong); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; line-height: var(--lh-row); }
|
|
49
|
+
.tk-fv.mut, .tk-mut { color: var(--cz-ink3); font-weight: var(--fw-strong); }
|
|
50
50
|
.tk-sh { display: flex; align-items: center; gap: 8px; margin-bottom: 4px; }
|
|
51
|
-
.tk-sh h3 { flex: 1; margin: 0; font-size: var(--fs-
|
|
52
|
-
.tk-sec2 p, .tk-cb2 p { margin: 0 0 6px; font-size: var(--fs-
|
|
53
|
-
.tk-sec2 ol, .tk-sec2 ul, .tk-cb2 ol, .tk-cb2 ul { margin: 0 0 6px; padding-left: 20px; font-size: var(--fs-
|
|
54
|
-
.tk-ac { display: flex; gap: 8px; font-size: var(--fs-
|
|
51
|
+
.tk-sh h3 { flex: 1; margin: 0; font-size: var(--fs-label); font-weight: var(--fw-strong); color: var(--cz-ink3); line-height: var(--lh-label); }
|
|
52
|
+
.tk-sec2 p, .tk-cb2 p { margin: 0 0 6px; font-size: var(--fs-body); line-height: 1.45; }
|
|
53
|
+
.tk-sec2 ol, .tk-sec2 ul, .tk-cb2 ol, .tk-cb2 ul { margin: 0 0 6px; padding-left: 20px; font-size: var(--fs-body); line-height: 1.45; }
|
|
54
|
+
.tk-ac { display: flex; gap: 8px; font-size: var(--fs-body); line-height: 1.4; padding: 6px 0; border-top: 1px solid var(--cz-hair); }
|
|
55
55
|
.tk-ac:first-of-type { border-top: 0; }
|
|
56
|
-
.tk-ac em { font-style: normal; font-weight:
|
|
57
|
-
.tk-miss { margin: 0; display: flex; align-items: center; gap: 8px; font-size: var(--fs-
|
|
56
|
+
.tk-ac em { font-style: normal; font-weight: var(--fw-strong); color: var(--cz-ink3); flex: none; }
|
|
57
|
+
.tk-miss { margin: 0; display: flex; align-items: center; gap: 8px; font-size: var(--fs-meta); color: var(--cz-ink2); line-height: var(--lh-meta); }
|
|
58
58
|
.tk-ib { width: 32px; height: 32px; border-radius: 999px; border: 0; background: none; color: var(--cz-ink3); display: inline-flex; align-items: center; justify-content: center; cursor: pointer; }
|
|
59
59
|
.tk-ib:hover { background: var(--cz-well); color: var(--cz-ink); }
|
|
60
60
|
.tk-folds { padding: 0 14px; }
|
|
61
61
|
.tk-coll + .tk-coll { border-top: 1px solid var(--cz-hair); }
|
|
62
62
|
.tk-cr { display: flex; align-items: center; gap: 8px; width: 100%; min-height: 44px; padding: 0; background: none; border: 0; font: inherit; color: var(--cz-ink); cursor: pointer; text-align: left; }
|
|
63
|
-
.tk-cr b { flex: 1; font-size: var(--fs-
|
|
64
|
-
.tk-cn { font-size: var(--fs-
|
|
63
|
+
.tk-cr b { flex: 1; font-size: var(--fs-row); font-weight: var(--fw-strong); line-height: var(--lh-row); }
|
|
64
|
+
.tk-cn { font-size: var(--fs-label); color: var(--cz-ink3); font-weight: var(--fw-strong); line-height: var(--lh-label); }
|
|
65
65
|
.tk-cr svg { color: var(--cz-ink3); }
|
|
66
66
|
.tk-cb2 { padding: 0 0 10px; }
|
|
67
67
|
.tk-cba { display: flex; justify-content: flex-end; }
|
|
68
68
|
.tk-ed { display: flex; flex-direction: column; gap: 8px; }
|
|
69
|
-
.tk-ed textarea { width: 100%; box-sizing: border-box; min-height: 120px; border: 1px solid var(--cz-hair); border-radius: 12px; padding: 10px 12px; font: var(--fs-
|
|
69
|
+
.tk-ed textarea { width: 100%; box-sizing: border-box; min-height: 120px; border: 1px solid var(--cz-hair); border-radius: 12px; padding: 10px 12px; font: var(--fs-body)/1.45 var(--cz-sans); color: var(--cz-ink); background: var(--cz-card); resize: vertical; }
|
|
70
70
|
.tk-eda { display: flex; gap: 8px; }
|
|
71
71
|
.tk-vh { position: absolute; left: -9999px; }
|
|
72
72
|
.tk-fab { position: sticky; bottom: 16px; align-self: flex-end; margin-top: 0; width: 52px; height: 52px; border-radius: 50%; border: 0; background: var(--cz-solid); color: var(--cz-onsolid); display: inline-flex; align-items: center; justify-content: center; cursor: pointer; box-shadow: 0 14px 34px -12px rgba(42, 46, 53, .45); z-index: 2; }
|
|
73
73
|
.tk-fab:focus-visible { outline: 2px solid var(--cz-blue); outline-offset: 3px; }
|
|
74
|
-
.tk-msg { margin: 0; font-size: var(--fs-
|
|
74
|
+
.tk-msg { margin: 0; font-size: var(--fs-body); color: var(--cz-late); min-height: 0; line-height: var(--lh-body); }
|
|
75
75
|
.tk-msg:empty { display: none; }
|
|
76
76
|
|
|
77
77
|
/* ── T3 · the Send sheet ── */
|
|
@@ -81,39 +81,39 @@
|
|
|
81
81
|
.tk-sheet.phone { left: 0; right: 0; bottom: 0; top: auto; transform: none; width: auto; max-height: calc(100vh - 150px); border-radius: 28px 28px 0 0; padding: 10px 18px 20px; }
|
|
82
82
|
.tk-grab { display: none; width: 40px; height: 5px; border-radius: 3px; background: var(--cz-hair); margin: 0 auto 4px; }
|
|
83
83
|
.tk-sheet.phone .tk-grab { display: block; }
|
|
84
|
-
.tk-h { margin: 0; font-size: var(--fs-
|
|
85
|
-
.tk-note { margin: 0; font-size: var(--fs-
|
|
84
|
+
.tk-h { margin: 0; font-size: var(--fs-panel); font-weight: var(--fw-strong); line-height: var(--lh-panel); }
|
|
85
|
+
.tk-note { margin: 0; font-size: var(--fs-meta); color: var(--cz-ink2); line-height: var(--lh-meta); }
|
|
86
86
|
.tk-where { background: var(--cz-well); border-radius: 18px; overflow: hidden; }
|
|
87
|
-
.tk-wr { display: flex; align-items: center; gap: 10px; padding: 10px 14px; min-height: 46px; font-size: var(--fs-
|
|
87
|
+
.tk-wr { display: flex; align-items: center; gap: 10px; padding: 10px 14px; min-height: 46px; font-size: var(--fs-body); box-sizing: border-box; line-height: var(--lh-body); }
|
|
88
88
|
.tk-wr + .tk-wr, .tk-where > .tk-wr ~ .tk-wr { border-top: 1px solid var(--cz-hair); }
|
|
89
|
-
.tk-wl { width: 64px; flex: none; font-size: var(--fs-
|
|
90
|
-
.tk-wv { flex: 1; min-width: 0; font-weight:
|
|
91
|
-
.tk-wv.mut { color: var(--cz-ink3); font-weight:
|
|
92
|
-
.tk-sel { flex: 1; font:
|
|
93
|
-
.tk-chg { margin-left: auto; display: inline-flex; align-items: center; gap: 2px; background: none; border: 0; font:
|
|
89
|
+
.tk-wl { width: 64px; flex: none; font-size: var(--fs-label); font-weight: var(--fw-strong); color: var(--cz-ink3); line-height: var(--lh-label); }
|
|
90
|
+
.tk-wv { flex: 1; min-width: 0; font-weight: var(--fw-strong); }
|
|
91
|
+
.tk-wv.mut { color: var(--cz-ink3); font-weight: var(--fw-strong); }
|
|
92
|
+
.tk-sel { flex: 1; font: var(--fw-strong) var(--fs-row)/var(--lh-row) var(--cz-sans); color: var(--cz-ink); background: none; border: 0; }
|
|
93
|
+
.tk-chg { margin-left: auto; display: inline-flex; align-items: center; gap: 2px; background: none; border: 0; font: var(--fw-strong) var(--fs-label)/var(--lh-label) var(--cz-sans); color: var(--cz-ink3); cursor: pointer; min-height: 36px; }
|
|
94
94
|
.tk-chgbox { display: flex; flex-direction: column; gap: 8px; padding: 0 14px 12px; }
|
|
95
|
-
.tk-opt { display: flex; flex-direction: column; align-items: flex-start; gap: 2px; text-align: left; background: var(--cz-card); border: 1px solid var(--cz-hair); border-radius: 14px; padding: 8px 12px; font:
|
|
95
|
+
.tk-opt { display: flex; flex-direction: column; align-items: flex-start; gap: 2px; text-align: left; background: var(--cz-card); border: 1px solid var(--cz-hair); border-radius: 14px; padding: 8px 12px; font: var(--fw-strong) var(--fs-row)/var(--lh-row) var(--cz-sans); color: var(--cz-ink); cursor: pointer; }
|
|
96
96
|
.tk-opt.on { border-color: var(--cz-blue); }
|
|
97
|
-
.tk-opt em { font-style: normal; font-weight:
|
|
98
|
-
.tk-fld { display: flex; flex-direction: column; gap: 4px; font-size: var(--fs-
|
|
97
|
+
.tk-opt em { font-style: normal; font-weight: var(--fw-strong); font-size: var(--fs-label); color: var(--cz-ink3); line-height: var(--lh-label); }
|
|
98
|
+
.tk-fld { display: flex; flex-direction: column; gap: 4px; font-size: var(--fs-label); font-weight: var(--fw-strong); color: var(--cz-ink3); line-height: var(--lh-label); }
|
|
99
99
|
.tk-row2 { display: flex; gap: 8px; }
|
|
100
|
-
.tk-fld input { flex: 1; min-width: 0; height: 40px; border: 1px solid var(--cz-hair); border-radius: 12px; padding: 0 12px; font: var(--fs-
|
|
101
|
-
.tk-use { height: 40px; padding: 0 14px; border-radius: 999px; border: 0; background: var(--cz-solid); color: var(--cz-onsolid); font:
|
|
100
|
+
.tk-fld input { flex: 1; min-width: 0; height: 40px; border: 1px solid var(--cz-hair); border-radius: 12px; padding: 0 12px; font: var(--fs-body)/var(--lh-body) var(--cz-sans); color: var(--cz-ink); background: var(--cz-card); }
|
|
101
|
+
.tk-use { height: 40px; padding: 0 14px; border-radius: 999px; border: 0; background: var(--cz-solid); color: var(--cz-onsolid); font: var(--fw-strong) var(--fs-row)/var(--lh-row) var(--cz-sans); cursor: pointer; }
|
|
102
102
|
.tk-sec { display: flex; flex-direction: column; gap: 8px; }
|
|
103
|
-
.tk-sn { margin: 0; font-size: var(--fs-
|
|
103
|
+
.tk-sn { margin: 0; font-size: var(--fs-label); font-weight: var(--fw-strong); color: var(--cz-ink3); line-height: var(--lh-label); }
|
|
104
104
|
.tk-items { display: flex; flex-direction: column; }
|
|
105
105
|
.tk-it { display: flex; align-items: center; gap: 12px; min-height: 44px; padding: 8px 0; background: none; border: 0; border-top: 1px solid var(--cz-hair); font: inherit; color: var(--cz-ink); text-align: left; cursor: pointer; }
|
|
106
106
|
.tk-it:first-child { border-top: 0; }
|
|
107
107
|
.tk-itx { flex: 1; min-width: 0; display: flex; flex-direction: column; }
|
|
108
|
-
.tk-it b { font-size: var(--fs-
|
|
108
|
+
.tk-it b { font-size: var(--fs-row); font-weight: var(--fw-strong); line-height: var(--lh-row); }
|
|
109
109
|
.tk-it[aria-disabled="true"] { cursor: default; color: var(--cz-ink3); }
|
|
110
110
|
.tk-it:focus-visible { outline: 2px solid var(--cz-blue); outline-offset: 2px; border-radius: 8px; }
|
|
111
|
-
.tk-why { font-size: var(--fs-
|
|
111
|
+
.tk-why { font-size: var(--fs-label); font-weight: var(--fw-strong); color: var(--cz-ink3); line-height: var(--lh-label); }
|
|
112
112
|
.tk-cb { width: 20px; height: 20px; border-radius: 6px; background: var(--cz-solid); color: var(--cz-onsolid); display: inline-flex; align-items: center; justify-content: center; flex: none; box-sizing: border-box; }
|
|
113
113
|
.tk-cb.off { background: transparent; border: 1.5px solid var(--cz-ink3); opacity: .6; }
|
|
114
114
|
.tk-acts { margin-top: auto; display: flex; gap: 8px; }
|
|
115
|
-
.tk-acts button, .tk-go.sm, .tk-c.sm { flex: 1; height: 50px; border-radius: 999px; font:
|
|
116
|
-
.tk-go.sm, .tk-c.sm { flex: none; height: 38px; padding: 0 16px; font-size: var(--fs-
|
|
115
|
+
.tk-acts button, .tk-go.sm, .tk-c.sm { flex: 1; height: 50px; border-radius: 999px; font: var(--fw-strong) var(--fs-row)/var(--lh-row) var(--cz-sans); display: inline-flex; align-items: center; justify-content: center; cursor: pointer; }
|
|
116
|
+
.tk-go.sm, .tk-c.sm { flex: none; height: 38px; padding: 0 16px; font-size: var(--fs-meta); line-height: var(--lh-meta); }
|
|
117
117
|
.tk-c { background: var(--cz-card); border: 1px solid var(--cz-hair); color: var(--cz-ink); }
|
|
118
118
|
.tk-go { background: var(--cz-solid); border: 0; color: var(--cz-onsolid); }
|
|
119
119
|
.tk-go:disabled { opacity: .45; cursor: default; }
|
|
@@ -1,21 +1,21 @@
|
|
|
1
1
|
/* pm/tk-view.css — the one Jira ticket Viewer (tk-view.js; canvas OvViewers "Jira ticket"), over ov-view.css and cozy.css's tokens. */
|
|
2
|
-
.tkv { display: flex; flex-direction: column; gap: 16px; padding: 6px 2px 18px; font-size: var(--fs-
|
|
2
|
+
.tkv { display: flex; flex-direction: column; gap: 16px; padding: 6px 2px 18px; font-size: var(--fs-body); color: var(--cz-ink); line-height: var(--lh-body); }
|
|
3
3
|
.tkv .czs-sum { margin: 0; }
|
|
4
|
-
.tkv .nt { border: 0; outline: 0; resize: none; field-sizing: content; min-height: 44px; border-radius: 12px; padding: 6px 8px; margin: 0 -8px; font: inherit; font-size: var(--fs-
|
|
4
|
+
.tkv .nt { border: 0; outline: 0; resize: none; field-sizing: content; min-height: 44px; border-radius: 12px; padding: 6px 8px; margin: 0 -8px; font: inherit; font-size: var(--fs-body); line-height: 1.55; color: var(--cz-ink); background: transparent; }
|
|
5
5
|
.tkv .nt::placeholder { color: var(--cz-ink3); }
|
|
6
6
|
.tkv .nt:hover { background: var(--cz-well); }
|
|
7
7
|
.tkv .nt:focus { background: var(--cz-card); box-shadow: 0 0 0 1.5px var(--cz-blue), 0 0 0 5px var(--cz-bluebg); }
|
|
8
8
|
.tkv .czs-secs { margin: 0; }
|
|
9
|
-
.tkv-ac, .tkv-sub, .tkv-ln { list-style: none; margin: 0; padding: 0 0 4px; display: flex; flex-direction: column; gap: 6px; font-size: var(--fs-
|
|
9
|
+
.tkv-ac, .tkv-sub, .tkv-ln { list-style: none; margin: 0; padding: 0 0 4px; display: flex; flex-direction: column; gap: 6px; font-size: var(--fs-meta); line-height: 1.5; }
|
|
10
10
|
.tkv-ac li { position: relative; padding-left: 16px; }
|
|
11
11
|
.tkv-ac li::before { content: ""; position: absolute; left: 4px; top: .62em; width: 5px; height: 5px; border-radius: 50%; background: var(--cz-ink3); }
|
|
12
12
|
.tkv-sub li { display: flex; align-items: center; gap: 8px; color: var(--cz-ink2); }
|
|
13
13
|
.tkv-sub li.d { color: var(--cz-ink3); }
|
|
14
14
|
.tkv-sub li.d span { text-decoration: line-through; }
|
|
15
15
|
.tkv-ln li { display: flex; align-items: baseline; gap: 8px; }
|
|
16
|
-
.tkv-ln em { font-style: normal; color: var(--cz-ink3); font-size: var(--fs-
|
|
16
|
+
.tkv-ln em { font-style: normal; color: var(--cz-ink3); font-size: var(--fs-meta); min-width: 72px; line-height: var(--lh-meta); }
|
|
17
17
|
.tkv-ln button { border: 0; background: transparent; padding: 0; font: inherit; color: var(--cz-blueink); cursor: pointer; text-align: left; }
|
|
18
18
|
.tkv-ln button:hover { text-decoration: underline; }
|
|
19
|
-
.tkv-q { margin: 0 0 4px; font-size: var(--fs-
|
|
20
|
-
.tkv-msg { margin: 0; font-size: var(--fs-
|
|
19
|
+
.tkv-q { margin: 0 0 4px; font-size: var(--fs-meta); color: var(--cz-ink3); line-height: var(--lh-meta); }
|
|
20
|
+
.tkv-msg { margin: 0; font-size: var(--fs-body); color: var(--cz-red); line-height: var(--lh-body); }
|
|
21
21
|
.tkv-msg:empty { display: none; }
|
|
@@ -3,9 +3,9 @@
|
|
|
3
3
|
body.wf-page { min-height: 100vh; overflow: hidden; font-family: var(--cz-sans); color: var(--cz-ink); background: var(--cz-well2); }
|
|
4
4
|
.wf-page button { font-family: var(--cz-sans); }
|
|
5
5
|
.wf-vh { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
|
|
6
|
-
.wf-small { font-size: var(--fs-
|
|
6
|
+
.wf-small { font-size: var(--fs-meta); line-height: 1.45; }
|
|
7
7
|
.wf-mut { color: var(--cz-ink3); }
|
|
8
|
-
.wf-err { color: var(--cz-red); font-size: var(--fs-
|
|
8
|
+
.wf-err { color: var(--cz-red); font-size: var(--fs-meta); margin: 0; line-height: var(--lh-meta); }
|
|
9
9
|
.wf-err:empty { display: none; }
|
|
10
10
|
.wf-pad { padding: 8px 10px; }
|
|
11
11
|
.wf-page p { margin: 0; }
|
|
@@ -13,15 +13,15 @@ body.wf-page { min-height: 100vh; overflow: hidden; font-family: var(--cz-sans);
|
|
|
13
13
|
/* ── the list ── */
|
|
14
14
|
.wf-list { gap: 2px; overflow: auto; }
|
|
15
15
|
.wf-list .lhead { display: flex; align-items: center; justify-content: space-between; padding: 4px 6px 10px 10px; }
|
|
16
|
-
.wf-list h2 { margin: 0; font-size: var(--fs-
|
|
16
|
+
.wf-list h2 { margin: 0; font-size: var(--fs-section); font-weight: var(--fw-strong); line-height: var(--lh-section); }
|
|
17
17
|
.wf-page .ib { width: 36px; height: 36px; border-radius: 12px; display: inline-grid; place-items: center; border: 0; background: none; color: var(--cz-ink2); cursor: pointer; padding: 0; flex: none; }
|
|
18
18
|
.wf-page .ib.sm { width: 30px; height: 30px; border-radius: 10px; }
|
|
19
19
|
.wf-page .ib:hover { background: var(--cz-well2); }
|
|
20
20
|
.wfl { display: flex; align-items: center; gap: 10px; padding: 9px 10px; border-radius: 14px; width: 100%; border: 0; background: none; color: var(--cz-ink); cursor: pointer; text-align: left; }
|
|
21
21
|
.wfl:hover { background: var(--cz-well2); }
|
|
22
22
|
.wfl.sel { background: var(--cz-card); box-shadow: 0 6px 18px -10px rgba(42,46,53,.25); }
|
|
23
|
-
.wfl .t { font-size: var(--fs-
|
|
24
|
-
.wfl .n { font-size: var(--fs-
|
|
23
|
+
.wfl .t { font-size: var(--fs-row); font-weight: var(--fw-strong); flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; line-height: var(--lh-row); }
|
|
24
|
+
.wfl .n { font-size: var(--fs-label); color: var(--cz-ink3); font-weight: var(--fw-strong); line-height: var(--lh-label); }
|
|
25
25
|
.wfl.arch .t { color: var(--cz-ink3); }
|
|
26
26
|
.wfl .wfb { display: flex; align-items: center; gap: 10px; flex: 1; min-width: 0; padding: 0; border: 0; background: none; color: inherit; font: inherit; cursor: pointer; text-align: left; }
|
|
27
27
|
.wfl .wfb:focus-visible, .wfl .wfs:focus-visible { outline: 2px solid var(--cz-blue); outline-offset: 2px; border-radius: 8px; }
|
|
@@ -31,7 +31,7 @@ body.wf-page { min-height: 100vh; overflow: hidden; font-family: var(--cz-sans);
|
|
|
31
31
|
.wfl .wfs:hover { background: var(--cz-card); color: var(--cz-ink2); box-shadow: 0 0 0 1px var(--cz-hair); }
|
|
32
32
|
.wfl .wfs.on, .wfl .wfs.on:hover { color: var(--cz-risk); }
|
|
33
33
|
@media (hover: none) { .wfl .wfs { opacity: 1; } }
|
|
34
|
-
.wf-sub { font-size: var(--fs-
|
|
34
|
+
.wf-sub { font-size: var(--fs-badge); font-weight: var(--fw-strong); color: var(--cz-ink3); padding: 14px 10px 4px; line-height: var(--lh-badge); }
|
|
35
35
|
.wf-page .wfi { display: inline-flex; align-items: center; justify-content: center; width: 18px; height: 18px; border-radius: 6px; background: var(--cz-well); color: var(--cz-ink2); flex: none; }
|
|
36
36
|
.wfl .wfi, .wf-head .wfi { background: var(--cz-well2); }
|
|
37
37
|
.wfl.sel .wfi { background: var(--cz-well); }
|
|
@@ -44,71 +44,71 @@ body.wf-page { min-height: 100vh; overflow: hidden; font-family: var(--cz-sans);
|
|
|
44
44
|
.wf-main { flex: 1 1 auto; min-width: 0; min-height: 0; overflow: auto; padding: 6px 6px 0 4px; display: flex; flex-direction: column; gap: 14px; }
|
|
45
45
|
.wf-head { display: flex; align-items: center; gap: 10px; min-height: 40px; }
|
|
46
46
|
.wf-push { margin-left: auto; }
|
|
47
|
-
.wf-h1 { margin: 0; font-size: var(--fs-
|
|
48
|
-
.wf-h2 { margin: 0; font-size: var(--fs-
|
|
49
|
-
.wf-h3 { font-size: var(--fs-
|
|
47
|
+
.wf-h1 { margin: 0; font-size: var(--fs-page); font-weight: var(--fw-strong); letter-spacing: -.01em; line-height: var(--lh-page); }
|
|
48
|
+
.wf-h2 { margin: 0; font-size: var(--fs-panel); font-weight: var(--fw-strong); flex: 1; line-height: var(--lh-panel); }
|
|
49
|
+
.wf-h3 { font-size: var(--fs-section); font-weight: var(--fw-strong); line-height: var(--lh-section); }
|
|
50
50
|
.wf-rn { font: inherit; color: inherit; background: none; border: 0; padding: 2px 6px; margin: -2px -6px; border-radius: 10px; cursor: text; text-align: left; }
|
|
51
51
|
.wf-rn:hover { background: var(--cz-well); }
|
|
52
52
|
.wf-ren { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; }
|
|
53
|
-
.wf-ren input { font:
|
|
53
|
+
.wf-ren input { font: var(--fw-strong) var(--fs-panel)/var(--lh-panel) var(--cz-sans); color: var(--cz-ink); border: 1.5px solid var(--cz-blue); border-radius: 12px; padding: 4px 10px; min-width: 260px; background: var(--cz-card); }
|
|
54
54
|
.wf-sv { width: 32px; height: 32px; border-radius: 10px; border: 0; background: var(--cz-blueink); color: var(--cz-card); display: grid; place-items: center; cursor: pointer; }
|
|
55
55
|
.wf-ren .wf-err { flex-basis: 100%; }
|
|
56
56
|
.wf-cols { flex: none; display: flex; gap: 8px; min-height: 420px; }
|
|
57
57
|
.wf-col { flex: 1 1 0; min-width: 0; background: var(--cz-well); border-radius: 18px; padding: 10px 8px 8px; display: flex; flex-direction: column; gap: 6px; }
|
|
58
|
-
.wf-col h3 { margin: 0; padding: 2px 6px; font-size: var(--fs-
|
|
58
|
+
.wf-col h3 { margin: 0; padding: 2px 6px; font-size: var(--fs-section); font-weight: var(--fw-strong); line-height: var(--lh-section); }
|
|
59
59
|
.wf-col.wf-end { flex: .9 1 0; background: transparent; border: 1.5px dashed var(--cz-hair2, var(--cz-hair)); }
|
|
60
60
|
.wf-col.wf-end p { padding: 0 6px; }
|
|
61
61
|
.wf-drop { display: flex; flex-direction: column; gap: 6px; min-height: 40px; border-radius: 12px; }
|
|
62
62
|
.wf-drop.over { outline: 2px dashed var(--cz-blue); outline-offset: 2px; }
|
|
63
|
-
.wf-card { display: flex; align-items: center; gap: 8px; width: 100%; padding: 7px 10px; border-radius: 14px; background: var(--cz-card); border: 1px solid var(--cz-hair); box-shadow: 0 1px 2px rgba(42,46,53,.05); color: var(--cz-ink); cursor: pointer; text-align: left; font-size: var(--fs-
|
|
63
|
+
.wf-card { display: flex; align-items: center; gap: 8px; width: 100%; padding: 7px 10px; border-radius: 14px; background: var(--cz-card); border: 1px solid var(--cz-hair); box-shadow: 0 1px 2px rgba(42,46,53,.05); color: var(--cz-ink); cursor: pointer; text-align: left; font-size: var(--fs-meta); line-height: var(--lh-meta); }
|
|
64
64
|
.wf-card[draggable="true"] { cursor: grab; }
|
|
65
65
|
.wf-card:hover { border-color: var(--cz-blue); }
|
|
66
66
|
.wf-card.opt { border-style: dashed; box-shadow: none; }
|
|
67
67
|
.wf-card.drag { opacity: .45; }
|
|
68
68
|
.wf-grip { color: var(--cz-ink3); display: inline-flex; width: 14px; flex: none; }
|
|
69
|
-
.wf-num { width: 16px; font-weight:
|
|
69
|
+
.wf-num { width: 16px; font-weight: var(--fw-strong); color: var(--cz-ink3); flex: none; font-size: var(--fs-label); line-height: var(--lh-label); }
|
|
70
70
|
.wf-ct { flex: 1; min-width: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
|
|
71
|
-
.wf-pill { display: inline-flex; align-items: center; gap: 4px; height: 22px; padding: 0 8px; border-radius: 999px; font-size: var(--fs-
|
|
71
|
+
.wf-pill { display: inline-flex; align-items: center; gap: 4px; height: 22px; padding: 0 8px; border-radius: 999px; font-size: var(--fs-badge); font-weight: var(--fw-strong); background: var(--cz-well); color: var(--cz-ink2); flex: none; max-width: 52%; line-height: var(--lh-badge); }
|
|
72
72
|
.wf-pill span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
|
|
73
73
|
.wf-pill.dash { background: transparent; border: 1.5px dashed var(--cz-ink3); color: var(--cz-ink3); }
|
|
74
74
|
.wf-pill.y { background: var(--cz-riskbg); color: var(--cz-risk); }
|
|
75
75
|
.wf-box { background: var(--cz-well); border-radius: 14px; padding: 10px 12px; }
|
|
76
76
|
.wf-how { display: flex; flex-direction: column; gap: 4px; }
|
|
77
|
-
.wf-btn { display: inline-flex; align-items: center; gap: 6px; height: 38px; padding: 0 16px; border-radius: 999px; border: 0; font-size: var(--fs-
|
|
78
|
-
.wf-btn.sm { height: 32px; padding: 0 12px; font-size: var(--fs-
|
|
77
|
+
.wf-btn { display: inline-flex; align-items: center; gap: 6px; height: 38px; padding: 0 16px; border-radius: 999px; border: 0; font-size: var(--fs-row); font-weight: var(--fw-strong); cursor: pointer; background: var(--cz-well); color: var(--cz-ink); line-height: var(--lh-row); }
|
|
78
|
+
.wf-btn.sm { height: 32px; padding: 0 12px; font-size: var(--fs-meta); line-height: var(--lh-meta); }
|
|
79
79
|
.wf-btn.dark { background: var(--cz-ink); color: var(--cz-card); }
|
|
80
80
|
.wf-btn.ghost { background: transparent; color: var(--cz-ink2); }
|
|
81
81
|
.wf-btn.ghost:hover { background: var(--cz-well2); }
|
|
82
82
|
.wf-col > .wf-btn { align-self: flex-start; }
|
|
83
|
-
.wf-link { border: 0; background: none; padding: 0; color: var(--cz-blueink); font: inherit; font-weight:
|
|
83
|
+
.wf-link { border: 0; background: none; padding: 0; color: var(--cz-blueink); font: inherit; font-weight: var(--fw-strong); cursor: pointer; display: inline-flex; align-items: center; gap: 6px; }
|
|
84
84
|
.wf-acts { display: flex; gap: 8px; }
|
|
85
85
|
|
|
86
86
|
/* ── the stage panel and the condition (the Viewer) ── */
|
|
87
87
|
.wf-stage { padding: 4px 22px 22px; display: flex; flex-direction: column; gap: 12px; }
|
|
88
|
-
.wf-lbl { font-size: var(--fs-
|
|
88
|
+
.wf-lbl { font-size: var(--fs-label); font-weight: var(--fw-strong); color: var(--cz-ink3); line-height: var(--lh-label); }
|
|
89
89
|
.wf-sgrid { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 18px; align-items: start; }
|
|
90
90
|
.wf-scol { display: flex; flex-direction: column; gap: 14px; min-width: 0; }
|
|
91
91
|
.wf-field { display: flex; flex-direction: column; gap: 6px; }
|
|
92
|
-
.wf-fl { font-size: var(--fs-
|
|
93
|
-
.wf-inp { font:
|
|
92
|
+
.wf-fl { font-size: var(--fs-label); font-weight: var(--fw-strong); color: var(--cz-ink2); line-height: var(--lh-label); }
|
|
93
|
+
.wf-inp { font: var(--fw-strong) var(--fs-row)/var(--lh-row) var(--cz-sans); color: var(--cz-ink); background: var(--cz-card); border: 1px solid var(--cz-hair2, var(--cz-hair)); border-radius: 12px; padding: 8px 12px; min-width: 0; box-sizing: border-box; }
|
|
94
94
|
.wf-inp:focus { outline: 2px solid var(--cz-blue); outline-offset: 0; }
|
|
95
95
|
.wf-inp.bare { flex: 1; border-color: transparent; background: transparent; padding: 4px 6px; }
|
|
96
96
|
.wf-inp.bare:hover { border-color: var(--cz-hair); }
|
|
97
97
|
.wf-inp.ta { width: 100%; min-height: 72px; resize: vertical; line-height: 1.45; }
|
|
98
98
|
.wf-inp:disabled { color: var(--cz-ink2); background: var(--cz-well); }
|
|
99
99
|
.wf-seg { display: inline-flex; background: var(--cz-well); border-radius: 999px; padding: 3px; gap: 2px; flex-wrap: wrap; align-self: flex-start; }
|
|
100
|
-
.wf-seg .sb { border: 0; background: none; border-radius: 999px; height: 30px; padding: 0 12px; font-size: var(--fs-
|
|
100
|
+
.wf-seg .sb { border: 0; background: none; border-radius: 999px; height: 30px; padding: 0 12px; font-size: var(--fs-label); font-weight: var(--fw-strong); color: var(--cz-ink2); cursor: pointer; line-height: var(--lh-label); }
|
|
101
101
|
.wf-seg .sb[aria-checked="true"] { background: var(--cz-card); color: var(--cz-ink); box-shadow: 0 2px 6px -3px rgba(42,46,53,.3); }
|
|
102
102
|
.wf-seg .sb:disabled { cursor: default; opacity: .7; }
|
|
103
103
|
.wf-chips { display: flex; flex-wrap: wrap; gap: 6px; }
|
|
104
|
-
.wf-chip { height: 30px; padding: 0 12px; border-radius: 999px; border: 1px solid var(--cz-hair2, var(--cz-hair)); background: var(--cz-card); font-size: var(--fs-
|
|
104
|
+
.wf-chip { height: 30px; padding: 0 12px; border-radius: 999px; border: 1px solid var(--cz-hair2, var(--cz-hair)); background: var(--cz-card); font-size: var(--fs-label); font-weight: var(--fw-strong); color: var(--cz-ink2); cursor: pointer; line-height: var(--lh-label); }
|
|
105
105
|
.wf-chip.on { background: var(--cz-bluebg); border-color: var(--cz-blue); color: var(--cz-blueink); }
|
|
106
106
|
.wf-chip:disabled { cursor: default; }
|
|
107
107
|
/* a workflow that ships with PMOS: its controls read as settled, not as presses that fail */
|
|
108
108
|
.wf-chip:disabled, .wf-sw:disabled, .wf-pick:disabled { cursor: default; opacity: .55; }
|
|
109
109
|
.wf-fin { padding: 4px 8px 4px 10px; display: flex; flex-direction: column; }
|
|
110
110
|
.wf-fi { display: flex; align-items: center; gap: 6px; }
|
|
111
|
-
.wf-addi { padding: 6px 0; font-size: var(--fs-
|
|
111
|
+
.wf-addi { padding: 6px 0; font-size: var(--fs-meta); line-height: var(--lh-meta); }
|
|
112
112
|
.wf-cond { display: flex; align-items: center; gap: 8px; }
|
|
113
113
|
.wf-cond span { flex: 1; }
|
|
114
114
|
.wf-then { display: flex; flex-direction: column; gap: 8px; }
|
|
@@ -116,8 +116,8 @@ body.wf-page { min-height: 100vh; overflow: hidden; font-family: var(--cz-sans);
|
|
|
116
116
|
.wf-wrap { flex-wrap: wrap; }
|
|
117
117
|
.wf-grow { flex: 1; min-width: 160px; }
|
|
118
118
|
.wf-stage select { max-width: 100%; min-width: 0; text-overflow: ellipsis; }
|
|
119
|
-
.wf-pick { font:
|
|
120
|
-
.wf-swl { display: flex; align-items: center; gap: 10px; font-size: var(--fs-
|
|
119
|
+
.wf-pick { font: var(--fw-strong) var(--fs-label)/var(--lh-label) var(--cz-sans); color: var(--cz-ink); height: 32px; border-radius: 10px; border: 1px solid var(--cz-hair2, var(--cz-hair)); background: var(--cz-card); padding: 0 8px; max-width: 220px; }
|
|
120
|
+
.wf-swl { display: flex; align-items: center; gap: 10px; font-size: var(--fs-meta); cursor: pointer; line-height: var(--lh-meta); }
|
|
121
121
|
.wf-sw { width: 32px; height: 20px; border-radius: 999px; background: var(--cz-hair2, var(--cz-ink3)); position: relative; flex: none; border: 0; padding: 0; cursor: pointer; }
|
|
122
122
|
.wf-sw i { position: absolute; top: 3px; left: 3px; width: 14px; height: 14px; border-radius: 50%; background: var(--cz-card); transition: left .12s; }
|
|
123
123
|
.wf-sw[aria-checked="true"] { background: var(--cz-blue); }
|
|
@@ -127,7 +127,7 @@ body.wf-page { min-height: 100vh; overflow: hidden; font-family: var(--cz-sans);
|
|
|
127
127
|
.wf-draft { padding: 4px 22px 22px; display: flex; flex-direction: column; gap: 4px; min-height: 100%; box-sizing: border-box; }
|
|
128
128
|
.wf-dh { display: flex; align-items: center; gap: 8px; }
|
|
129
129
|
.wf-draft .wf-lbl { margin: 10px 0 2px; }
|
|
130
|
-
.wf-trow { display: flex; gap: 8px; padding: 7px 2px; align-items: flex-start; border-bottom: 1px solid var(--cz-hair); font-size: var(--fs-
|
|
130
|
+
.wf-trow { display: flex; gap: 8px; padding: 7px 2px; align-items: flex-start; border-bottom: 1px solid var(--cz-hair); font-size: var(--fs-body); line-height: var(--lh-body); }
|
|
131
131
|
.wf-trow .wf-pill { margin-top: 3px; }
|
|
132
132
|
.wf-dacts { margin-top: auto; padding-top: 12px; }
|
|
133
133
|
|
|
@@ -146,12 +146,12 @@ body.wf-page { min-height: 100vh; overflow: hidden; font-family: var(--cz-sans);
|
|
|
146
146
|
.wf-mv b { flex: 1; }
|
|
147
147
|
.wf-mvl { display: flex; flex-direction: column; gap: 8px; }
|
|
148
148
|
.wf-menu { position: fixed; z-index: 90; min-width: 180px; background: var(--cz-card); border-radius: 14px; box-shadow: var(--cz-sheet); padding: 6px; display: flex; flex-direction: column; }
|
|
149
|
-
.wf-menu button { border: 0; background: none; text-align: left; padding: 9px 12px; border-radius: 10px; font:
|
|
149
|
+
.wf-menu button { border: 0; background: none; text-align: left; padding: 9px 12px; border-radius: 10px; font: var(--fw-strong) var(--fs-row)/var(--lh-row) var(--cz-sans); color: var(--cz-ink); cursor: pointer; }
|
|
150
150
|
.wf-menu button:hover, .wf-menu button:focus { background: var(--cz-well); outline: none; }
|
|
151
151
|
.wf-menu button.danger { color: var(--cz-red); }
|
|
152
|
-
.wf-toast { position: fixed; left: 50%; bottom: 28px; transform: translateX(-50%); z-index: 95; background: var(--cz-ink); color: var(--cz-card); border-radius: 999px; padding: 10px 18px; font-size: var(--fs-
|
|
152
|
+
.wf-toast { position: fixed; left: 50%; bottom: 28px; transform: translateX(-50%); z-index: 95; background: var(--cz-ink); color: var(--cz-card); border-radius: 999px; padding: 10px 18px; font-size: var(--fs-row); font-weight: var(--fw-strong); display: flex; gap: 10px; align-items: center; line-height: var(--lh-row); }
|
|
153
153
|
.wf-toast[hidden] { display: none; }
|
|
154
|
-
.wf-undo { border: 0; background: none; color: var(--cz-bluebg); font: inherit; font-weight:
|
|
154
|
+
.wf-undo { border: 0; background: none; color: var(--cz-bluebg); font: inherit; font-weight: var(--fw-strong); cursor: pointer; padding: 0; }
|
|
155
155
|
|
|
156
156
|
/* ── a phone: the list is the page; a workflow opens over it with ← (the columns stack) ── */
|
|
157
157
|
@media (max-width: 760px) {
|
|
@@ -163,7 +163,7 @@ body.wf-page { min-height: 100vh; overflow: hidden; font-family: var(--cz-sans);
|
|
|
163
163
|
.wf-main { padding: 0; overflow: visible; }
|
|
164
164
|
.wf-cols { flex-direction: column; min-height: 0; }
|
|
165
165
|
.wf-col.wf-end { flex: none; }
|
|
166
|
-
.wf-h1 { font-size: var(--fs-
|
|
166
|
+
.wf-h1 { font-size: var(--fs-panel); line-height: var(--lh-panel); }
|
|
167
167
|
.wf-head { flex-wrap: wrap; }
|
|
168
168
|
.wf-head > .wf-small { flex-basis: 100%; order: 3; padding-left: 40px; }
|
|
169
169
|
.wf-ren input { min-width: 0; width: 100%; }
|
|
@@ -180,5 +180,5 @@ body.wf-page { min-height: 100vh; overflow: hidden; font-family: var(--cz-sans);
|
|
|
180
180
|
.wf-brr { display: flex; align-items: center; gap: 10px; padding: 8px 0; border-top: 1px solid var(--cz-hair); }
|
|
181
181
|
.wf-brr span { flex: 1; min-width: 0; }
|
|
182
182
|
.wf-brr svg { flex: none; color: var(--cz-ink3); }
|
|
183
|
-
.wf-brr select { min-width: 170px; min-height: 36px; font: inherit; font-weight:
|
|
183
|
+
.wf-brr select { min-width: 170px; min-height: 36px; font: inherit; font-weight: var(--fw-strong); color: var(--cz-blueink); background: var(--cz-bluebg); border: 0; border-radius: 12px; padding: 6px 10px; }
|
|
184
184
|
.wf-br > .wf-small:last-child { padding-top: 10px; border-top: 1px solid var(--cz-hair); margin: 0; }
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
<!-- The audience tab (batch 12 item 1, S3; canvas XrtA9Present): what the call sees while the PM presents from the recording tab. It shows
|
|
9
9
|
the stage only. The recording tab's presenter (pm/cozy-rec-present.js) says what to show over BroadcastChannel('pmos-present');
|
|
10
10
|
this page reads the material itself and draws it (pm/cozy-aud.js). It has no controls and writes nothing. -->
|
|
11
|
-
<link rel="preload" href="/vendor/
|
|
11
|
+
<link rel="preload" href="/vendor/plus-jakarta-sans-var.woff2" as="font" type="font/woff2" crossorigin />
|
|
12
12
|
<link rel="stylesheet" href="/pm/cozy.css" />
|
|
13
13
|
<link rel="stylesheet" href="/pm/premium-vw-slides.css" />
|
|
14
14
|
<link rel="stylesheet" href="/pm/cozy-mtg-present.css" />
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
across the six stages and two milestones, with progress toward its current output from Jira. It reads GET /api/board-premium. The floating place menu
|
|
10
10
|
(pm/cozy-nav.js) replaces the rail on screen; the rail stays in the markup so premium-shell.js keeps its wiring. Discuss in chat on a panel opens Home's chat
|
|
11
11
|
about it in a panel on the Board (pm/page-chat.js); a phone goes to Home. -->
|
|
12
|
-
<link rel="preload" href="/vendor/
|
|
12
|
+
<link rel="preload" href="/vendor/plus-jakarta-sans-var.woff2" as="font" type="font/woff2" crossorigin />
|
|
13
13
|
<link rel="stylesheet" href="/pm/cozy.css" />
|
|
14
14
|
<link rel="stylesheet" href="/pm/cozy-pick.css" />
|
|
15
15
|
<link rel="stylesheet" href="/pm/cozy-board.css" />
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
One bar: the product picker, the tabs Goals, Outcomes and Library, the view, the period and the icon tools. No page header; the floating place menu
|
|
14
14
|
(pm/cozy-nav.js) replaces the rail. It reads GET /api/insights-premium (the KR metric records, the board's initiatives, the report files and setups)
|
|
15
15
|
and GET /api/board-metrics-premium for the Delivery trends tiles, whose one press sets a target (POST /api/board-metric-targets/save). -->
|
|
16
|
-
<link rel="preload" href="/vendor/
|
|
16
|
+
<link rel="preload" href="/vendor/plus-jakarta-sans-var.woff2" as="font" type="font/woff2" crossorigin />
|
|
17
17
|
<link rel="stylesheet" href="/pm/cozy.css" />
|
|
18
18
|
<link rel="stylesheet" href="/pm/cozy-pick.css" />
|
|
19
19
|
<link rel="stylesheet" href="/pm/cozy-insights.css" />
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
<!-- The recording tab (batch 12 item 1): ?note=<id>[&ws=][&go=1]. It holds the recorder and never navigates away, so its links open
|
|
9
9
|
in the other PMOS tab (named pmos-main by rec-tab-core.js). pm/cozy-rec-tab.js draws it. -->
|
|
10
10
|
<base target="pmos-main" />
|
|
11
|
-
<link rel="preload" href="/vendor/
|
|
11
|
+
<link rel="preload" href="/vendor/plus-jakarta-sans-var.woff2" as="font" type="font/woff2" crossorigin />
|
|
12
12
|
<link rel="stylesheet" href="/pm/cozy.css" />
|
|
13
13
|
<link rel="stylesheet" href="/pm/cozy-rec-tab.css" />
|
|
14
14
|
</head>
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
<!-- The Viewer on its own page (initiative premium-agreed-design, area viewer). It is the address "Open in a new tab" gives an item:
|
|
9
9
|
?open=meeting¬e=<id> or &event=<id>&date=YYYY-MM-DD, ?open=calendar, ?open=notes, ?open=report&path=reports/<cadence>/<date>.md,
|
|
10
10
|
each with an optional &ws=. The item opens in the same Viewer card Home shows (cozy-viewer.js), here as the whole page. -->
|
|
11
|
-
<link rel="preload" href="/vendor/
|
|
11
|
+
<link rel="preload" href="/vendor/plus-jakarta-sans-var.woff2" as="font" type="font/woff2" crossorigin />
|
|
12
12
|
<link rel="stylesheet" href="/pm/cozy.css" />
|
|
13
13
|
<link rel="stylesheet" href="/pm/cozy-vw.css" />
|
|
14
14
|
</head>
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
<!-- Settings › Workflows (initiative workflows per initiative, D99; canvas WfAModel, WfAStage, WfACond, WfARemove, WfANew, WfADraft). The list of
|
|
9
9
|
workflows on the left; the picked one as one numbered list across To do, In progress and Done; a stage opens in the Viewer. + opens the normal
|
|
10
10
|
chat, scoped "New workflow", and PMOS drafts the workflow into the Viewer. pm/wf-page.js draws it; pm/wf-stage.js is the stage panel. -->
|
|
11
|
-
<link rel="preload" href="/vendor/
|
|
11
|
+
<link rel="preload" href="/vendor/plus-jakarta-sans-var.woff2" as="font" type="font/woff2" crossorigin />
|
|
12
12
|
<link rel="stylesheet" href="/pm/cozy.css" />
|
|
13
13
|
<link rel="stylesheet" href="/pm/cozy-home.css" />
|
|
14
14
|
<link rel="stylesheet" href="/pm/cozy-today.css" />
|
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
<meta name="apple-mobile-web-app-title" content="PMOS" />
|
|
17
17
|
<meta name="apple-mobile-web-app-status-bar-style" content="black" />
|
|
18
18
|
<link rel="apple-touch-icon" href="/icons/apple-touch-icon.png" />
|
|
19
|
-
<link rel="preload" href="/vendor/
|
|
19
|
+
<link rel="preload" href="/vendor/plus-jakarta-sans-var.woff2" as="font" type="font/woff2" crossorigin />
|
|
20
20
|
<link rel="stylesheet" href="/pm/cozy.css" />
|
|
21
21
|
<link rel="stylesheet" href="/pm/cozy-pick.css" />
|
|
22
22
|
<link rel="stylesheet" href="/pm/cozy-home.css" />
|
|
Binary file
|
package/workspace/server.js
CHANGED
|
@@ -7110,6 +7110,7 @@ async function handleRequest(req, res) {
|
|
|
7110
7110
|
if (p === '/vendor/space-grotesk-var.woff2') return serveFile(res, path.join(PUB, 'vendor', 'space-grotesk-var.woff2'));
|
|
7111
7111
|
if (p === '/vendor/geist-var.woff2') return serveFile(res, path.join(PUB, 'vendor', 'geist-var.woff2'));
|
|
7112
7112
|
if (p === '/vendor/nunito-var.woff2') return serveFile(res, path.join(PUB, 'vendor', 'nunito-var.woff2')); // the Agreed design's face (premium-agreed-design)
|
|
7113
|
+
if (p === '/vendor/plus-jakarta-sans-var.woff2') return serveFile(res, path.join(PUB, 'vendor', 'plus-jakarta-sans-var.woff2')); // the workspace face since feedback batch 26 item 6 (2026-11-03)
|
|
7113
7114
|
if (p === '/vendor/geist-mono-var.woff2') return serveFile(res, path.join(PUB, 'vendor', 'geist-mono-var.woff2'));
|
|
7114
7115
|
if (p === '/vendor/ibm-plex-mono-400.woff2') return serveFile(res, path.join(PUB, 'vendor', 'ibm-plex-mono-400.woff2'));
|
|
7115
7116
|
// 500 joined 400/700 with the four-panel design, whose section labels and pills are medium-weight
|
|
@@ -57,6 +57,7 @@ Two binary font faces are vendored under `public/vendor/` for `public/premium.ht
|
|
|
57
57
|
| Geist (variable) | SIL Open Font License 1.1 | `public/vendor/geist-var.woff2` | `19f9c92546aa300c312235e3125af1b81394d8db9a4bc4a425cd5b641d2d54e1` |
|
|
58
58
|
| Geist Mono (variable) | SIL Open Font License 1.1 | `public/vendor/geist-mono-var.woff2` | `684ad5b531f81d43c1e8c7038262d5db7cdc1f68006e04d6c7769efa8d33c8cc` |
|
|
59
59
|
| Nunito (variable, latin) | SIL Open Font License 1.1 | `public/vendor/nunito-var.woff2` | `ba344451eab25b217a165363b1982048a5e5830a0daf36577973955a04cac793` |
|
|
60
|
+
| Plus Jakarta Sans (variable, latin; @fontsource-variable/plus-jakarta-sans 5.3.0) | SIL Open Font License 1.1 | `public/vendor/plus-jakarta-sans-var.woff2` | `153fc85b70298beeb1d61a5f723331649e7f23bb77302a66e61cb3e2fbdb5e79` |
|
|
60
61
|
|
|
61
|
-
The licences are in this folder: [geist-OFL.LICENSE](geist-OFL.LICENSE)
|
|
62
|
+
The licences are in this folder: [geist-OFL.LICENSE](geist-OFL.LICENSE), [geist-mono-OFL.LICENSE](geist-mono-OFL.LICENSE) and [plus-jakarta-sans-OFL.LICENSE](plus-jakarta-sans-OFL.LICENSE). Plus Jakarta Sans is the workspace face since feedback batch 26 item 6 (2026-11-03); Nunito stays for the report templates' standard look. The files are the ones in `prototype/premium-ux-concept/fonts/`.
|
|
62
63
|
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
Copyright 2020 The Plus Jakarta Sans Project Authors (https://github.com/tokotype/PlusJakartaSans) PlusJakartaSans-Italic[wght].ttf: Copyright 2020 The Plus Jakarta Sans Project Authors (https://github.com/tokotype/PlusJakartaSans)
|
|
2
|
+
|
|
3
|
+
This Font Software is licensed under the SIL Open Font License, Version 1.1.
|
|
4
|
+
This license is copied below, and is also available with a FAQ at:
|
|
5
|
+
http://scripts.sil.org/OFL
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
-----------------------------------------------------------
|
|
9
|
+
SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
|
|
10
|
+
-----------------------------------------------------------
|
|
11
|
+
|
|
12
|
+
PREAMBLE
|
|
13
|
+
The goals of the Open Font License (OFL) are to stimulate worldwide
|
|
14
|
+
development of collaborative font projects, to support the font creation
|
|
15
|
+
efforts of academic and linguistic communities, and to provide a free and
|
|
16
|
+
open framework in which fonts may be shared and improved in partnership
|
|
17
|
+
with others.
|
|
18
|
+
|
|
19
|
+
The OFL allows the licensed fonts to be used, studied, modified and
|
|
20
|
+
redistributed freely as long as they are not sold by themselves. The
|
|
21
|
+
fonts, including any derivative works, can be bundled, embedded,
|
|
22
|
+
redistributed and/or sold with any software provided that any reserved
|
|
23
|
+
names are not used by derivative works. The fonts and derivatives,
|
|
24
|
+
however, cannot be released under any other type of license. The
|
|
25
|
+
requirement for fonts to remain under this license does not apply
|
|
26
|
+
to any document created using the fonts or their derivatives.
|
|
27
|
+
|
|
28
|
+
DEFINITIONS
|
|
29
|
+
"Font Software" refers to the set of files released by the Copyright
|
|
30
|
+
Holder(s) under this license and clearly marked as such. This may
|
|
31
|
+
include source files, build scripts and documentation.
|
|
32
|
+
|
|
33
|
+
"Reserved Font Name" refers to any names specified as such after the
|
|
34
|
+
copyright statement(s).
|
|
35
|
+
|
|
36
|
+
"Original Version" refers to the collection of Font Software components as
|
|
37
|
+
distributed by the Copyright Holder(s).
|
|
38
|
+
|
|
39
|
+
"Modified Version" refers to any derivative made by adding to, deleting,
|
|
40
|
+
or substituting -- in part or in whole -- any of the components of the
|
|
41
|
+
Original Version, by changing formats or by porting the Font Software to a
|
|
42
|
+
new environment.
|
|
43
|
+
|
|
44
|
+
"Author" refers to any designer, engineer, programmer, technical
|
|
45
|
+
writer or other person who contributed to the Font Software.
|
|
46
|
+
|
|
47
|
+
PERMISSION & CONDITIONS
|
|
48
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
|
49
|
+
a copy of the Font Software, to use, study, copy, merge, embed, modify,
|
|
50
|
+
redistribute, and sell modified and unmodified copies of the Font
|
|
51
|
+
Software, subject to the following conditions:
|
|
52
|
+
|
|
53
|
+
1) Neither the Font Software nor any of its individual components,
|
|
54
|
+
in Original or Modified Versions, may be sold by itself.
|
|
55
|
+
|
|
56
|
+
2) Original or Modified Versions of the Font Software may be bundled,
|
|
57
|
+
redistributed and/or sold with any software, provided that each copy
|
|
58
|
+
contains the above copyright notice and this license. These can be
|
|
59
|
+
included either as stand-alone text files, human-readable headers or
|
|
60
|
+
in the appropriate machine-readable metadata fields within text or
|
|
61
|
+
binary files as long as those fields can be easily viewed by the user.
|
|
62
|
+
|
|
63
|
+
3) No Modified Version of the Font Software may use the Reserved Font
|
|
64
|
+
Name(s) unless explicit written permission is granted by the corresponding
|
|
65
|
+
Copyright Holder. This restriction only applies to the primary font name as
|
|
66
|
+
presented to the users.
|
|
67
|
+
|
|
68
|
+
4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
|
|
69
|
+
Software shall not be used to promote, endorse or advertise any
|
|
70
|
+
Modified Version, except to acknowledge the contribution(s) of the
|
|
71
|
+
Copyright Holder(s) and the Author(s) or with their explicit written
|
|
72
|
+
permission.
|
|
73
|
+
|
|
74
|
+
5) The Font Software, modified or unmodified, in part or in whole,
|
|
75
|
+
must be distributed entirely under this license, and must not be
|
|
76
|
+
distributed under any other license. The requirement for fonts to
|
|
77
|
+
remain under this license does not apply to any document created
|
|
78
|
+
using the Font Software.
|
|
79
|
+
|
|
80
|
+
TERMINATION
|
|
81
|
+
This license becomes null and void if any of the above conditions are
|
|
82
|
+
not met.
|
|
83
|
+
|
|
84
|
+
DISCLAIMER
|
|
85
|
+
THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
|
86
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
|
|
87
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
|
|
88
|
+
OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
|
|
89
|
+
COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
|
90
|
+
INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
|
|
91
|
+
DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
|
92
|
+
FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
|
|
93
|
+
OTHER DEALINGS IN THE FONT SOFTWARE.
|