@bongos/core 1.24.49 → 1.24.51
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/.bongos-core.json +33 -33
- package/docs/copy-inventory.md +91 -93
- package/docs/copy-registry.json +282 -290
- package/docs/module-api-changelog.md +4 -0
- package/docs/page-inventory.json +5 -4
- package/docs/page-readings.json +75 -91
- package/modules/status-ui/public/explore.html +14 -4
- package/modules/status-ui/public/index.html +67 -167
- package/modules/status-ui/public/index.states.json +3 -3
- package/modules/status-ui/public/status.js +77 -52
- package/modules/status-ui/public/style.css +638 -831
- package/package-lock.json +2 -2
- package/package.json +1 -1
- package/release-notes.json +12 -0
- package/scripts/status-mirror-sync.js +44 -45
- package/src/bongos/serve-internal.js +8 -7
- package/src/module-api.js +1 -1
- package/tests/loading_mark.mjs +6 -6
- package/tests/status_company_attribution.mjs +1 -1
- package/tests/status_page_chrome.mjs +195 -0
- package/tests/status_page_wording.mjs +129 -0
- package/modules/status-ui/public/cursors/arrow.png +0 -0
- package/modules/status-ui/public/cursors/hand-pointer.png +0 -0
|
@@ -3,138 +3,47 @@
|
|
|
3
3
|
<head>
|
|
4
4
|
<meta charset="utf-8">
|
|
5
5
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
6
|
-
<title>{{
|
|
7
|
-
<meta name="description" content="
|
|
6
|
+
<title>{{productName}} — build status</title>
|
|
7
|
+
<meta name="description" content="How {{worldName}} is being built, in the open: what shipped, what it cost, and who built it.">
|
|
8
8
|
<link rel="icon" href="/modules/ui-design/public/brand/favicon.svg" type="image/svg+xml">
|
|
9
|
-
<link rel="
|
|
10
|
-
|
|
11
|
-
|
|
9
|
+
<link rel="apple-touch-icon" href="/modules/ui-design/public/brand/apple-touch-icon.png">
|
|
10
|
+
<!-- The faces are the pack's: the server (and the off-box mirror) splice the pack's
|
|
11
|
+
font links, palette and favicon at the end of <head> (themeMarkup), so no face
|
|
12
|
+
is named here (task 1005089). -->
|
|
12
13
|
<link rel="stylesheet" href="/modules/ui-design/public/tokens.css">
|
|
13
|
-
<link rel="stylesheet" href="/
|
|
14
|
+
<link rel="stylesheet" href="/modules/hall-ui/public/controls.css">
|
|
15
|
+
<link rel="stylesheet" href="/style.css">
|
|
14
16
|
</head>
|
|
15
17
|
<body>
|
|
16
18
|
|
|
17
|
-
<!--
|
|
18
|
-
|
|
19
|
-
<
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
<svg
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
<line x1="21" y1="4" x2="21" y2="25"/>
|
|
29
|
-
<path d="M7 14 Q9 11 11 14 Q13 17 15 14"/>
|
|
30
|
-
<path d="M21 10 Q23 8 25 10 Q27 12 25 15"/>
|
|
31
|
-
</g>
|
|
32
|
-
</symbol>
|
|
33
|
-
|
|
34
|
-
<symbol id="sigil-amphora" viewBox="0 0 64 64">
|
|
35
|
-
<g fill="none" stroke="currentColor" stroke-width="1.4" stroke-linecap="round" stroke-linejoin="round">
|
|
36
|
-
<path d="M22 12 L42 12 L40 16 Q47 20 47 32 Q47 46 40 54 L24 54 Q17 46 17 32 Q17 20 24 16 Z"/>
|
|
37
|
-
<path d="M17 22 Q9 24 9 30 Q9 36 16 40"/>
|
|
38
|
-
<path d="M47 22 Q55 24 55 30 Q55 36 48 40"/>
|
|
39
|
-
<line x1="20" y1="32" x2="44" y2="32"/>
|
|
40
|
-
<line x1="20" y1="36" x2="44" y2="36"/>
|
|
41
|
-
<line x1="22" y1="12" x2="42" y2="12" stroke-width="2.2"/>
|
|
42
|
-
</g>
|
|
43
|
-
<g fill="currentColor">
|
|
44
|
-
<ellipse cx="32" cy="44" rx="1" ry="1"/>
|
|
45
|
-
</g>
|
|
46
|
-
</symbol>
|
|
47
|
-
|
|
48
|
-
<symbol id="orn-column" viewBox="0 0 32 32">
|
|
49
|
-
<g stroke="currentColor" stroke-width="1.1" stroke-linecap="round">
|
|
50
|
-
<rect x="4" y="2" width="24" height="2" fill="currentColor" stroke="none"/>
|
|
51
|
-
<rect x="6" y="4" width="20" height="2" fill="none"/>
|
|
52
|
-
<line x1="9" y1="6" x2="9" y2="26"/>
|
|
53
|
-
<line x1="13" y1="6" x2="13" y2="26"/>
|
|
54
|
-
<line x1="16" y1="6" x2="16" y2="26"/>
|
|
55
|
-
<line x1="19" y1="6" x2="19" y2="26"/>
|
|
56
|
-
<line x1="23" y1="6" x2="23" y2="26"/>
|
|
57
|
-
<rect x="6" y="26" width="20" height="2" fill="none"/>
|
|
58
|
-
<rect x="4" y="28" width="24" height="2" fill="currentColor" stroke="none"/>
|
|
59
|
-
</g>
|
|
60
|
-
</symbol>
|
|
61
|
-
|
|
62
|
-
<symbol id="orn-coin" viewBox="0 0 32 32">
|
|
63
|
-
<g fill="none" stroke="currentColor" stroke-width="1.1" stroke-linecap="round" stroke-linejoin="round">
|
|
64
|
-
<circle cx="16" cy="16" r="13"/>
|
|
65
|
-
<circle cx="16" cy="16" r="10"/>
|
|
66
|
-
<path d="M10 20 Q16 12 22 12"/>
|
|
67
|
-
</g>
|
|
68
|
-
<g fill="currentColor">
|
|
69
|
-
<ellipse cx="13" cy="17.5" rx="1.4" ry="0.7" transform="rotate(-35 13 17.5)"/>
|
|
70
|
-
<ellipse cx="15.5" cy="14.5" rx="1.4" ry="0.7" transform="rotate(-15 15.5 14.5)"/>
|
|
71
|
-
<ellipse cx="19" cy="13" rx="1.4" ry="0.7" transform="rotate(0 19 13)"/>
|
|
72
|
-
</g>
|
|
73
|
-
</symbol>
|
|
74
|
-
|
|
75
|
-
<symbol id="orn-scroll" viewBox="0 0 32 32">
|
|
76
|
-
<g fill="none" stroke="currentColor" stroke-width="1.1" stroke-linecap="round" stroke-linejoin="round">
|
|
77
|
-
<path d="M8 9 L24 9"/>
|
|
78
|
-
<path d="M8 23 L24 23"/>
|
|
79
|
-
<ellipse cx="6" cy="16" rx="2.2" ry="7"/>
|
|
80
|
-
<ellipse cx="26" cy="16" rx="2.2" ry="7"/>
|
|
81
|
-
<line x1="11" y1="13" x2="22" y2="13"/>
|
|
82
|
-
<line x1="11" y1="16" x2="22" y2="16"/>
|
|
83
|
-
<line x1="11" y1="19" x2="20" y2="19"/>
|
|
84
|
-
</g>
|
|
85
|
-
<g fill="currentColor">
|
|
86
|
-
<ellipse cx="6" cy="16" rx="0.8" ry="2.6"/>
|
|
87
|
-
<ellipse cx="26" cy="16" rx="0.8" ry="2.6"/>
|
|
88
|
-
</g>
|
|
89
|
-
</symbol>
|
|
90
|
-
|
|
91
|
-
<symbol id="orn-laurel" viewBox="0 0 32 32">
|
|
92
|
-
<g fill="none" stroke="currentColor" stroke-width="1.1" stroke-linecap="round" stroke-linejoin="round">
|
|
93
|
-
<path d="M16 29 Q5 24 5 14 Q5 6 11 3"/>
|
|
94
|
-
<path d="M16 29 Q27 24 27 14 Q27 6 21 3"/>
|
|
95
|
-
<path d="M14 29 L18 29"/>
|
|
96
|
-
</g>
|
|
97
|
-
<g fill="currentColor">
|
|
98
|
-
<ellipse cx="9" cy="22" rx="2.2" ry="1" transform="rotate(60 9 22)"/>
|
|
99
|
-
<ellipse cx="6" cy="18" rx="2.2" ry="1" transform="rotate(80 6 18)"/>
|
|
100
|
-
<ellipse cx="6" cy="13" rx="2.2" ry="1" transform="rotate(100 6 13)"/>
|
|
101
|
-
<ellipse cx="9" cy="8" rx="2.2" ry="1" transform="rotate(130 9 8)"/>
|
|
102
|
-
<ellipse cx="23" cy="22" rx="2.2" ry="1" transform="rotate(120 23 22)"/>
|
|
103
|
-
<ellipse cx="26" cy="18" rx="2.2" ry="1" transform="rotate(100 26 18)"/>
|
|
104
|
-
<ellipse cx="26" cy="13" rx="2.2" ry="1" transform="rotate(80 26 13)"/>
|
|
105
|
-
<ellipse cx="23" cy="8" rx="2.2" ry="1" transform="rotate(50 23 8)"/>
|
|
106
|
-
</g>
|
|
107
|
-
</symbol>
|
|
108
|
-
|
|
109
|
-
<symbol id="orn-diamond" viewBox="0 0 12 12">
|
|
110
|
-
<rect x="3" y="3" width="6" height="6" transform="rotate(45 6 6)" fill="currentColor"/>
|
|
111
|
-
</symbol>
|
|
112
|
-
</defs>
|
|
113
|
-
</svg>
|
|
19
|
+
<!-- The one top bar (task 1005089): the shared mark and the product name, with the
|
|
20
|
+
text-size control (task 1475, idea 280; wired + rendered by status.js). -->
|
|
21
|
+
<header class="topbar">
|
|
22
|
+
<div class="topbar__inner">
|
|
23
|
+
<span class="topbar__brand">
|
|
24
|
+
<svg class="topbar__mark" viewBox="0 0 200 200" aria-hidden="true"><use href="/modules/ui-design/public/brand/mark.svg#mark"/></svg>
|
|
25
|
+
<span class="topbar__name">{{productName}}</span>
|
|
26
|
+
</span>
|
|
27
|
+
<button class="ledger-zoom" id="ledger-zoom" type="button" aria-label="Text size"></button>
|
|
28
|
+
</div>
|
|
29
|
+
</header>
|
|
114
30
|
|
|
115
|
-
<
|
|
116
|
-
<
|
|
117
|
-
<
|
|
118
|
-
<p class="
|
|
119
|
-
<p class="herm__sub">A shipping container has washed ashore upon the coast south of Athens. About it a new civilization rises. Set out below: the city's affairs, openly recorded.</p>
|
|
31
|
+
<section class="herm" aria-labelledby="herm-title">
|
|
32
|
+
<h1 id="herm-title">{{worldName}}</h1>
|
|
33
|
+
<p class="herm__epigraph">Build status, in the open</p>
|
|
34
|
+
<p class="herm__sub">Everything here is built in public. This page shows what shipped, what it cost, and who built it, and it updates every minute.</p>
|
|
120
35
|
<p class="herm__meta">
|
|
121
|
-
<a href="{{publicOrigin}}" target="_blank" rel="noopener">
|
|
36
|
+
<a href="{{publicOrigin}}" target="_blank" rel="noopener">Go to {{productName}} →</a>
|
|
122
37
|
<span class="dot" aria-hidden="true">·</span>
|
|
123
|
-
<span class="herm__updated" id="last-updated">
|
|
38
|
+
<span class="herm__updated" id="last-updated">Checking for updates…</span>
|
|
124
39
|
</p>
|
|
125
|
-
</
|
|
126
|
-
|
|
127
|
-
<div class="rule rule--banner" aria-hidden="true">
|
|
128
|
-
<svg><use href="#orn-diamond"/></svg>
|
|
129
|
-
<svg><use href="#orn-diamond"/></svg>
|
|
130
|
-
<svg><use href="#orn-diamond"/></svg>
|
|
131
|
-
</div>
|
|
40
|
+
</section>
|
|
132
41
|
|
|
133
42
|
<!-- Sticky themed section nav — #409. Same design language as the hall
|
|
134
43
|
(public-builders/style.css .hall-nav__*). Built from a SECTIONS constant
|
|
135
44
|
in status.js. Empty until populated — [hidden] keeps the strip from
|
|
136
|
-
flashing as
|
|
137
|
-
<nav id="status-nav" class="status-nav" aria-label="Sections of the
|
|
45
|
+
flashing as an empty band before chips arrive. -->
|
|
46
|
+
<nav id="status-nav" class="status-nav" aria-label="Sections of the page" hidden>
|
|
138
47
|
<div class="status-nav__inner">
|
|
139
48
|
<ul class="status-nav__list" id="status-nav-list"></ul>
|
|
140
49
|
</div>
|
|
@@ -148,76 +57,72 @@
|
|
|
148
57
|
loadHeadline() in status.js, fed by the existing public endpoints
|
|
149
58
|
(recent-shipped, cost-summary, grades). -->
|
|
150
59
|
<section class="tablet tablet--headline" id="headline-tablet" aria-labelledby="headline-heading">
|
|
151
|
-
<h2 id="headline-heading" class="visually-hidden">
|
|
60
|
+
<h2 id="headline-heading" class="visually-hidden">At a glance</h2>
|
|
152
61
|
<div class="headline-grid">
|
|
153
62
|
<div class="stat headline-stat" id="headline-shipped">
|
|
154
63
|
<div class="stat__num" id="headline-shipped-num">—</div>
|
|
155
|
-
<div class="stat__label">
|
|
64
|
+
<div class="stat__label">tasks shipped, last 7 days</div>
|
|
156
65
|
</div>
|
|
157
66
|
<div class="stat headline-stat" id="headline-treasury">
|
|
158
67
|
<div class="stat__num" id="headline-treasury-num">—</div>
|
|
159
|
-
<div class="stat__label" id="headline-treasury-label">of
|
|
68
|
+
<div class="stat__label" id="headline-treasury-label">of this year's budget spent</div>
|
|
160
69
|
<div class="headline-bar" aria-hidden="true">
|
|
161
70
|
<div class="headline-bar__fill" id="headline-treasury-bar" style="width: 0%"></div>
|
|
162
71
|
</div>
|
|
163
72
|
</div>
|
|
164
73
|
<div class="stat headline-stat" id="headline-grade">
|
|
165
74
|
<div class="stat__num" id="headline-grade-num">—</div>
|
|
166
|
-
<div class="stat__label">passed
|
|
75
|
+
<div class="stat__label">passed review, last 7 days</div>
|
|
167
76
|
</div>
|
|
168
77
|
</div>
|
|
169
78
|
</section>
|
|
170
79
|
|
|
171
80
|
<section class="tablet" id="leader-tablet" aria-labelledby="leader-heading">
|
|
172
81
|
<div class="tablet__head">
|
|
173
|
-
<svg class="tablet__icon" aria-hidden="true"><use href="#orn-laurel"/></svg>
|
|
174
82
|
<div class="tablet__heading">
|
|
175
|
-
<h2 id="leader-heading">
|
|
176
|
-
<p class="tablet__subtitle">
|
|
83
|
+
<h2 id="leader-heading">Top builders</h2>
|
|
84
|
+
<p class="tablet__subtitle">Ranked by the {{currency}} each has earned.</p>
|
|
177
85
|
</div>
|
|
178
86
|
</div>
|
|
179
87
|
<ol id="leaderboard" class="leader">
|
|
180
|
-
<li class="empty">No
|
|
88
|
+
<li class="empty">No builders yet — be the first.</li>
|
|
181
89
|
</ol>
|
|
182
90
|
</section>
|
|
183
91
|
|
|
184
92
|
<section class="tablet" id="foundry-tablet" aria-labelledby="foundry-heading">
|
|
185
93
|
<div class="tablet__head">
|
|
186
|
-
<svg class="tablet__icon" aria-hidden="true"><use href="#orn-laurel"/></svg>
|
|
187
94
|
<div class="tablet__heading">
|
|
188
|
-
<h2 id="foundry-heading">
|
|
189
|
-
<p class="tablet__subtitle">
|
|
95
|
+
<h2 id="foundry-heading">How the work is changing</h2>
|
|
96
|
+
<p class="tablet__subtitle">Tasks shipped and the time each took, over the last 90 days. The project as a whole, never one builder.</p>
|
|
190
97
|
</div>
|
|
191
98
|
</div>
|
|
192
99
|
<div class="cost-summary" id="foundry-stats">
|
|
193
|
-
<div class="stat"><div class="stat__num" id="foundry-shipped">—</div><div class="stat__label">
|
|
194
|
-
<div class="stat"><div class="stat__num" id="foundry-builders">—</div><div class="stat__label">
|
|
195
|
-
<div class="stat"><div class="stat__num" id="foundry-duration">—</div><div class="stat__label">
|
|
100
|
+
<div class="stat"><div class="stat__num" id="foundry-shipped">—</div><div class="stat__label">tasks shipped (90 days)</div></div>
|
|
101
|
+
<div class="stat"><div class="stat__num" id="foundry-builders">—</div><div class="stat__label">active builders</div></div>
|
|
102
|
+
<div class="stat"><div class="stat__num" id="foundry-duration">—</div><div class="stat__label">average time per task</div></div>
|
|
196
103
|
</div>
|
|
197
104
|
<div class="foundry__charts" id="foundry-charts"></div>
|
|
198
105
|
<div class="foundry__kinds" id="foundry-kinds"></div>
|
|
199
|
-
<p class="chart-note" id="foundry-empty" hidden>Not enough shipped
|
|
106
|
+
<p class="chart-note" id="foundry-empty" hidden>Not enough tasks have shipped yet to draw a trend.</p>
|
|
200
107
|
</section>
|
|
201
108
|
|
|
202
109
|
<section class="tablet" id="versions-tablet" aria-labelledby="versions-heading">
|
|
203
110
|
<div class="tablet__head">
|
|
204
|
-
<svg class="tablet__icon" aria-hidden="true"><use href="#orn-column"/></svg>
|
|
205
111
|
<div class="tablet__heading">
|
|
206
|
-
<h2 id="versions-heading">
|
|
207
|
-
<p class="tablet__subtitle">The
|
|
112
|
+
<h2 id="versions-heading">In progress</h2>
|
|
113
|
+
<p class="tablet__subtitle">The versions being built now.</p>
|
|
208
114
|
</div>
|
|
209
115
|
</div>
|
|
210
116
|
<div id="versions" class="versions">
|
|
211
|
-
<p class="empty loading-mark" role="status">
|
|
117
|
+
<p class="empty loading-mark" role="status">Loading the versions…</p>
|
|
212
118
|
</div>
|
|
213
119
|
</section>
|
|
214
120
|
|
|
215
121
|
<section class="tablet" id="cost-tablet" aria-labelledby="cost-heading">
|
|
216
122
|
<div class="tablet__head">
|
|
217
|
-
<svg class="tablet__icon" aria-hidden="true"><use href="#orn-coin"/></svg>
|
|
218
123
|
<div class="tablet__heading">
|
|
219
|
-
<h2 id="cost-heading">
|
|
220
|
-
<p class="tablet__subtitle">
|
|
124
|
+
<h2 id="cost-heading">Spending</h2>
|
|
125
|
+
<p class="tablet__subtitle">What the build has cost, against the value it has produced.</p>
|
|
221
126
|
</div>
|
|
222
127
|
</div>
|
|
223
128
|
<div class="cost-summary">
|
|
@@ -227,21 +132,21 @@
|
|
|
227
132
|
</div>
|
|
228
133
|
<div class="stat">
|
|
229
134
|
<div class="stat__num" id="value-total">—</div>
|
|
230
|
-
<div class="stat__label">value
|
|
135
|
+
<div class="stat__label">value produced</div>
|
|
231
136
|
</div>
|
|
232
137
|
<div class="stat">
|
|
233
138
|
<div class="stat__num" id="cost-budget">5,000</div>
|
|
234
|
-
<div class="stat__label">
|
|
139
|
+
<div class="stat__label">yearly budget</div>
|
|
235
140
|
</div>
|
|
236
141
|
<div class="stat">
|
|
237
142
|
<div class="stat__num" id="cost-percent">—</div>
|
|
238
|
-
<div class="stat__label">of the
|
|
143
|
+
<div class="stat__label">of the budget</div>
|
|
239
144
|
</div>
|
|
240
145
|
</div>
|
|
241
146
|
<div class="chart-wrap">
|
|
242
|
-
<canvas id="cost-chart" aria-label="cumulative {{currency}} spent against cumulative value
|
|
147
|
+
<canvas id="cost-chart" aria-label="cumulative {{currency}} spent against cumulative value produced, day by day" role="img"></canvas>
|
|
243
148
|
</div>
|
|
244
|
-
<p class="chart-note">
|
|
149
|
+
<p class="chart-note">When the value line sits above the spend line, the work is worth more than it cost. <em>The chart always shows the whole project; the filters below change only the breakdown.</em></p>
|
|
245
150
|
<div class="cost-filters" role="group" aria-label="Filter the spend breakdown" style="display:flex;gap:14px;flex-wrap:wrap;align-items:flex-end;margin:6px 0 10px;">
|
|
246
151
|
<div class="tablet__filter">
|
|
247
152
|
<label for="cost-filter-source" class="tablet__filter-label">Source</label>
|
|
@@ -267,21 +172,20 @@
|
|
|
267
172
|
</div>
|
|
268
173
|
<p id="cost-filter-note" class="cost-split" aria-live="polite"></p>
|
|
269
174
|
<div id="cost-categories" class="cost-cats"></div>
|
|
270
|
-
<p class="chart-note">
|
|
175
|
+
<p class="chart-note">Spending by builder. <em>Unattributed</em> is shared cost: the infrastructure and domains the whole project pays for, plus early spending from before costs were tracked per builder. It is never charged to one builder.</p>
|
|
271
176
|
<p id="cost-attribution-split" class="cost-split" aria-live="polite"></p>
|
|
272
177
|
<div id="cost-builders" class="cost-cats"></div>
|
|
273
178
|
</section>
|
|
274
179
|
|
|
275
180
|
<section class="tablet" id="shipped-tablet" aria-labelledby="shipped-heading">
|
|
276
181
|
<div class="tablet__head">
|
|
277
|
-
<svg class="tablet__icon" aria-hidden="true"><use href="#orn-scroll"/></svg>
|
|
278
182
|
<div class="tablet__heading">
|
|
279
|
-
<h2 id="shipped-heading">
|
|
280
|
-
<p class="tablet__subtitle">
|
|
183
|
+
<h2 id="shipped-heading">Recently shipped</h2>
|
|
184
|
+
<p class="tablet__subtitle">The newest finished tasks.</p>
|
|
281
185
|
</div>
|
|
282
186
|
<div class="tablet__filter">
|
|
283
187
|
<label for="shipped-range" class="tablet__filter-label">Window</label>
|
|
284
|
-
<select id="shipped-range" class="tablet__filter-select" aria-label="Filter
|
|
188
|
+
<select id="shipped-range" class="tablet__filter-select" aria-label="Filter shipped tasks by date range">
|
|
285
189
|
<option value="7">Last 7 days</option>
|
|
286
190
|
<option value="30" selected>Last 30 days</option>
|
|
287
191
|
<option value="90">Last 90 days</option>
|
|
@@ -290,50 +194,46 @@
|
|
|
290
194
|
</div>
|
|
291
195
|
</div>
|
|
292
196
|
<ul id="shipped" class="shipped">
|
|
293
|
-
<li class="empty">
|
|
197
|
+
<li class="empty">Nothing has shipped yet.</li>
|
|
294
198
|
</ul>
|
|
295
|
-
<nav id="shipped-pager" class="shipped-pager" hidden aria-label="
|
|
296
|
-
<button type="button" id="shipped-prev" class="shipped-pager__btn" aria-label="Previous page">‹ earlier page</button>
|
|
199
|
+
<nav id="shipped-pager" class="shipped-pager" hidden aria-label="Recently shipped pages">
|
|
200
|
+
<button type="button" id="shipped-prev" class="btn btn--ghost btn--sm shipped-pager__btn" aria-label="Previous page">‹ earlier page</button>
|
|
297
201
|
<span id="shipped-pageinfo" class="shipped-pager__info" aria-live="polite">page 1 of 1</span>
|
|
298
|
-
<button type="button" id="shipped-next" class="shipped-pager__btn" aria-label="Next page">later page ›</button>
|
|
202
|
+
<button type="button" id="shipped-next" class="btn btn--ghost btn--sm shipped-pager__btn" aria-label="Next page">later page ›</button>
|
|
299
203
|
</nav>
|
|
300
204
|
</section>
|
|
301
205
|
|
|
302
206
|
<section class="tablet tablet--wide" id="world-tablet" aria-labelledby="world-heading">
|
|
303
207
|
<div class="tablet__head">
|
|
304
|
-
<svg class="tablet__icon" aria-hidden="true"><use href="#orn-map"/></svg>
|
|
305
208
|
<div class="tablet__heading">
|
|
306
|
-
<h2 id="world-heading">
|
|
307
|
-
<p class="tablet__subtitle">
|
|
209
|
+
<h2 id="world-heading">Snapshot</h2>
|
|
210
|
+
<p class="tablet__subtitle">{{worldName}} as it looks today, rendered from the live project.</p>
|
|
308
211
|
</div>
|
|
309
212
|
</div>
|
|
310
213
|
<div id="world-snapshot" class="world-snapshot">
|
|
311
|
-
<p class="empty loading-mark" role="status">
|
|
214
|
+
<p class="empty loading-mark" role="status">Loading the latest snapshot…</p>
|
|
312
215
|
</div>
|
|
313
216
|
<!-- #409: snapshot history collapsed behind a toggle. The latest snapshot
|
|
314
217
|
above is the prime view; the timeline of older snapshots is reference
|
|
315
218
|
material that previously ate ~300px of prime real estate. -->
|
|
316
219
|
<details class="world-history" id="world-history">
|
|
317
|
-
<summary class="world-history__summary">Show
|
|
220
|
+
<summary class="world-history__summary">Show earlier snapshots</summary>
|
|
318
221
|
<div id="world-timeline" class="world-timeline" aria-label="World snapshots over time"></div>
|
|
319
|
-
<p class="world-note" id="world-note" hidden>A new
|
|
222
|
+
<p class="world-note" id="world-note" hidden>A new snapshot is taken each time the project changes. Scroll to see how {{worldName}} has grown.</p>
|
|
320
223
|
</details>
|
|
321
224
|
</section>
|
|
322
225
|
|
|
323
226
|
</main>
|
|
324
227
|
|
|
325
228
|
<footer class="foot">
|
|
326
|
-
<
|
|
327
|
-
<svg><use href="#orn-diamond"/></svg>
|
|
328
|
-
</div>
|
|
329
|
-
<p class="foot__seal">By order of the Senate</p>
|
|
229
|
+
<p class="foot__seal">{{productName}} build status</p>
|
|
330
230
|
<!-- task 1002853: every company field is optional, so each clause drops whole when its pack field is empty -->
|
|
331
231
|
<!--brand-if:companyName--><p>{{worldName}} is the work of <!--brand-if:companySite--><a href="{{companySite}}" target="_blank" rel="noopener"><!--/brand-if:companySite--><strong>{{companyName}}</strong><!--brand-if:companySite--></a><!--/brand-if:companySite--><!--brand-if:companyTagline-->, {{companyTagline}}<!--/brand-if:companyTagline-->.</p><!--/brand-if:companyName-->
|
|
332
|
-
<p>{{Currency}} are
|
|
232
|
+
<p>{{Currency}} are awarded by review. They measure work done and are never money.</p>
|
|
333
233
|
</footer>
|
|
334
234
|
|
|
335
235
|
<script src="https://cdn.jsdelivr.net/npm/chart.js@4.4.1/dist/chart.umd.min.js"></script>
|
|
336
|
-
<script src="/status.js
|
|
236
|
+
<script src="/status.js"></script>
|
|
337
237
|
|
|
338
238
|
</body>
|
|
339
239
|
</html>
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
{
|
|
2
|
-
"_": "The status page's states for modules/ui-design/kit/render.js (task 1005053, its first): the ledger once its reads have answered, from the stub's public fixtures.
|
|
2
|
+
"_": "The status page's states for modules/ui-design/kit/render.js (task 1005053, its first): the ledger once its reads have answered, from the stub's public fixtures. Since task 1005089 the sheet is on the chrome world with its dark tier written twice (html[data-theme=\"dark\"] and the prefers-color-scheme twin), so `modes` names both; the page has no switch of its own, so there is no query to walk. The stub ships no world snapshots, so the World tablet keeps its still line: its loader stopped when the snapshot list 404'd, which is the failure path this state pictures. The stub ships no per-version done-when fixture either, and status.js reads each version's criteria best-effort (a failed read leaves the row without them), so those 404s are expected. The waiting state itself is looked at with the stub's LATENCY=<ms> (serve.js).",
|
|
3
3
|
"page": "/",
|
|
4
4
|
"surface": "status-ui",
|
|
5
|
-
"modes": ["light"],
|
|
5
|
+
"modes": ["dark", "light"],
|
|
6
6
|
"modeQuery": false,
|
|
7
|
-
"ignoreRequests": ["/snapshots/manifest\\.json$", "/api/(gds|bongos)/public/(grades|analytics/ecosystem)", "cdn\\.jsdelivr\\.net"],
|
|
7
|
+
"ignoreRequests": ["/snapshots/manifest\\.json$", "/api/(gds|bongos)/public/(grades|analytics/ecosystem)", "/api/(gds|bongos)/versions/[^/]+/done-when$", "cdn\\.jsdelivr\\.net"],
|
|
8
8
|
"ignoreConsole": ["status of 404", "snapshots", "ecosystem", "Failed to load resource"],
|
|
9
9
|
"states": {
|
|
10
10
|
"loaded": { "auth": false, "actions": [["wait", 600]], "expect": { "visible": ["#versions", "#world-snapshot"], "count": [["#versions .loading-mark", 0], ["#world-snapshot .loading-mark", 0]] } }
|