@bongos/core 1.24.43 → 1.24.44
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 +70 -75
- package/docs/copy-inventory.md +33 -65
- package/docs/copy-registry.json +78 -437
- package/docs/file-map.md +1 -1
- package/docs/module-api-changelog.md +2 -0
- package/docs/page-inventory.json +8 -36
- package/docs/page-readings.json +188 -245
- package/modules/hall-ui/public/ai-studio.html +2 -2
- package/modules/hall-ui/public/atlas.html +2 -2
- package/modules/hall-ui/public/blockers.html +2 -2
- package/modules/hall-ui/public/board-room.html +2 -2
- package/modules/hall-ui/public/city.html +2 -2
- package/modules/hall-ui/public/collab.html +2 -2
- package/modules/hall-ui/public/commands.html +2 -2
- package/modules/hall-ui/public/copy-desk.html +2 -2
- package/modules/hall-ui/public/craft-mode.js +1 -1
- package/modules/hall-ui/public/deploy.html +2 -2
- package/modules/hall-ui/public/goal-map.html +2 -2
- package/modules/hall-ui/public/goals.html +14 -2
- package/modules/hall-ui/public/government.html +2 -2
- package/modules/hall-ui/public/idea.html +2 -2
- package/modules/hall-ui/public/ideas.html +2 -2
- package/modules/hall-ui/public/index.html +2 -2
- package/modules/hall-ui/public/market-watch-item.html +2 -2
- package/modules/hall-ui/public/market-watch-rules.html +2 -2
- package/modules/hall-ui/public/market-watch.html +2 -2
- package/modules/hall-ui/public/modules.html +2 -2
- package/modules/hall-ui/public/money.html +2 -2
- package/modules/hall-ui/public/my-agents.html +2 -2
- package/modules/hall-ui/public/primer.html +2 -2
- package/modules/hall-ui/public/profile.html +2 -2
- package/modules/hall-ui/public/project-settings.html +2 -2
- package/modules/hall-ui/public/roadmap.css +7 -138
- package/modules/hall-ui/public/roadmap.js +35 -293
- package/modules/hall-ui/public/roster.html +2 -2
- package/modules/hall-ui/public/settings.html +2 -2
- package/modules/hall-ui/public/shell.js +3 -3
- package/modules/hall-ui/public/street.html +2 -2
- package/modules/hall-ui/public/studio.html +2 -2
- package/modules/hall-ui/public/task.html +2 -2
- package/modules/hall-ui/public/thinking.html +2 -2
- package/modules/hall-ui/public/tweak-editor.html +2 -2
- package/modules/hall-ui/public/watch.html +2 -2
- package/modules/hall-ui/public/work.html +3 -3
- package/modules/onboarding/founding-mode.js +2 -1
- package/package-lock.json +2 -2
- package/package.json +1 -1
- package/release-notes.json +6 -0
- package/scripts/bongos/gen-hall-sitemap.js +1 -0
- package/src/bongos/serve-internal.js +6 -6
- package/src/module-api.js +1 -1
- package/tests/craft_mode_nav.mjs +2 -1
- package/tests/founding_mode.mjs +5 -3
- package/tests/hall_goals_band.mjs +88 -0
- package/tests/hall_kit_charts.mjs +4 -3
- package/tests/hall_nav.mjs +5 -2
- package/tests/hall_page_gate_map.mjs +5 -1
- package/tests/hall_reading_world.mjs +17 -18
- package/tests/hall_sitemap.mjs +2 -1
- package/tests/nav_permission_atoms.mjs +3 -2
- package/modules/hall-ui/public/roadmap.html +0 -58
- package/modules/hall-ui/public/roadmap.states.json +0 -31
|
@@ -88,8 +88,8 @@
|
|
|
88
88
|
|
|
89
89
|
<script src="/builders/dom-utils.js?v=2026-11-05-numbers"></script>
|
|
90
90
|
<script src="/builders/shell-trail.js?v=2026-11-05-numbers"></script>
|
|
91
|
-
<script src="/builders/craft-mode.js?v=2026-11-05-
|
|
92
|
-
<script src="/builders/shell.js?v=2026-11-05-
|
|
91
|
+
<script src="/builders/craft-mode.js?v=2026-11-05-goals"></script>
|
|
92
|
+
<script src="/builders/shell.js?v=2026-11-05-goals"></script>
|
|
93
93
|
<script src="/builders/palette.js" defer></script>
|
|
94
94
|
<script src="/builders/tweak-editor-lib.js?v=2026-09-28-tw23"></script>
|
|
95
95
|
<script src="/builders/studio-lib.js?v=2026-10-09-day"></script>
|
|
@@ -91,8 +91,8 @@
|
|
|
91
91
|
|
|
92
92
|
<script src="/builders/dom-utils.js?v=2026-11-05-numbers"></script>
|
|
93
93
|
<script src="/builders/shell-trail.js?v=2026-11-05-numbers"></script>
|
|
94
|
-
<script src="/builders/craft-mode.js?v=2026-11-05-
|
|
95
|
-
<script src="/builders/shell.js?v=2026-11-05-
|
|
94
|
+
<script src="/builders/craft-mode.js?v=2026-11-05-goals"></script>
|
|
95
|
+
<script src="/builders/shell.js?v=2026-11-05-goals"></script>
|
|
96
96
|
<!-- jump palette (Ctrl/Cmd-K). Optional by design: without it the shell's slot stays hidden. -->
|
|
97
97
|
<script src="/builders/palette.js" defer></script>
|
|
98
98
|
<script src="/builders/atlas.js?v=2026-09-02-index" defer></script>
|
|
@@ -60,8 +60,8 @@
|
|
|
60
60
|
chrome exists before the page script runs. -->
|
|
61
61
|
<script src="/builders/dom-utils.js?v=2026-11-05-numbers"></script>
|
|
62
62
|
<script src="/builders/shell-trail.js?v=2026-11-05-numbers"></script>
|
|
63
|
-
<script src="/builders/craft-mode.js?v=2026-11-05-
|
|
64
|
-
<script src="/builders/shell.js?v=2026-11-05-
|
|
63
|
+
<script src="/builders/craft-mode.js?v=2026-11-05-goals"></script>
|
|
64
|
+
<script src="/builders/shell.js?v=2026-11-05-goals"></script>
|
|
65
65
|
<!-- jump palette (Ctrl/Cmd-K). Optional by design: without it the shell's slot stays hidden. -->
|
|
66
66
|
<script src="/builders/palette.js" defer></script>
|
|
67
67
|
<!-- the branding pack's currency label, loaded BEFORE blockers.js. -->
|
|
@@ -62,8 +62,8 @@
|
|
|
62
62
|
|
|
63
63
|
<script src="/builders/dom-utils.js?v=2026-11-05-numbers"></script>
|
|
64
64
|
<script src="/builders/shell-trail.js?v=2026-11-05-numbers"></script>
|
|
65
|
-
<script src="/builders/craft-mode.js?v=2026-11-05-
|
|
66
|
-
<script src="/builders/shell.js?v=2026-11-05-
|
|
65
|
+
<script src="/builders/craft-mode.js?v=2026-11-05-goals"></script>
|
|
66
|
+
<script src="/builders/shell.js?v=2026-11-05-goals"></script>
|
|
67
67
|
<!-- jump palette (Ctrl/Cmd-K). Optional by design: without it the shell's slot stays hidden. -->
|
|
68
68
|
<script src="/builders/palette.js" defer></script>
|
|
69
69
|
<script src="/builders/hall-kit.js"></script>
|
|
@@ -107,8 +107,8 @@
|
|
|
107
107
|
|
|
108
108
|
<script src="/builders/dom-utils.js?v=2026-11-05-numbers"></script>
|
|
109
109
|
<script src="/builders/shell-trail.js?v=2026-11-05-numbers" defer></script>
|
|
110
|
-
<script src="/builders/craft-mode.js?v=2026-11-05-
|
|
111
|
-
<script src="/builders/shell.js?v=2026-11-05-
|
|
110
|
+
<script src="/builders/craft-mode.js?v=2026-11-05-goals" defer></script>
|
|
111
|
+
<script src="/builders/shell.js?v=2026-11-05-goals" defer></script>
|
|
112
112
|
<script src="/builders/palette.js" defer></script>
|
|
113
113
|
<script src="/builders/gov-living.js?v=2026-10-09-positions1" defer></script>
|
|
114
114
|
<script src="/builders/gov-feeds.js?v=2026-10-09-living3" defer></script>
|
|
@@ -161,8 +161,8 @@
|
|
|
161
161
|
|
|
162
162
|
<script src="/builders/dom-utils.js?v=2026-11-05-numbers"></script>
|
|
163
163
|
<script src="/builders/shell-trail.js?v=2026-11-05-numbers"></script>
|
|
164
|
-
<script src="/builders/craft-mode.js?v=2026-11-05-
|
|
165
|
-
<script src="/builders/shell.js?v=2026-11-05-
|
|
164
|
+
<script src="/builders/craft-mode.js?v=2026-11-05-goals"></script>
|
|
165
|
+
<script src="/builders/shell.js?v=2026-11-05-goals"></script>
|
|
166
166
|
<script src="/builders/palette.js" defer></script>
|
|
167
167
|
<script src="/builders/collab-lib.js?v=2026-09-24-archive"></script>
|
|
168
168
|
<script src="/builders/collab.js?v=2026-09-24-archive"></script>
|
|
@@ -53,8 +53,8 @@
|
|
|
53
53
|
|
|
54
54
|
<script src="/builders/dom-utils.js?v=2026-11-05-numbers"></script>
|
|
55
55
|
<script src="/builders/shell-trail.js?v=2026-11-05-numbers"></script>
|
|
56
|
-
<script src="/builders/craft-mode.js?v=2026-11-05-
|
|
57
|
-
<script src="/builders/shell.js?v=2026-11-05-
|
|
56
|
+
<script src="/builders/craft-mode.js?v=2026-11-05-goals"></script>
|
|
57
|
+
<script src="/builders/shell.js?v=2026-11-05-goals"></script>
|
|
58
58
|
<!-- jump palette (Ctrl/Cmd-K). Optional by design: without it the shell's slot stays hidden. -->
|
|
59
59
|
<script src="/builders/palette.js" defer></script>
|
|
60
60
|
<script src="/builders/hall-kit.js"></script>
|
|
@@ -179,8 +179,8 @@
|
|
|
179
179
|
|
|
180
180
|
<script src="/builders/dom-utils.js?v=2026-11-05-numbers"></script>
|
|
181
181
|
<script src="/builders/shell-trail.js?v=2026-11-05-numbers"></script>
|
|
182
|
-
<script src="/builders/craft-mode.js?v=2026-11-05-
|
|
183
|
-
<script src="/builders/shell.js?v=2026-11-05-
|
|
182
|
+
<script src="/builders/craft-mode.js?v=2026-11-05-goals"></script>
|
|
183
|
+
<script src="/builders/shell.js?v=2026-11-05-goals"></script>
|
|
184
184
|
<script src="/builders/palette.js" defer></script>
|
|
185
185
|
<script src="/builders/hall-kit.js"></script>
|
|
186
186
|
<script src="/builders/copy-desk.js?v=2026-09-01-redesign"></script>
|
|
@@ -104,7 +104,7 @@
|
|
|
104
104
|
var ALWAYS_TABS = ['roster', 'collab', 'profile', 'my-agents',
|
|
105
105
|
'primer', 'commands', 'atlas', 'modules', 'apidocs'];
|
|
106
106
|
var MODE_TABS = {
|
|
107
|
-
building: ['home', '
|
|
107
|
+
building: ['home', 'goals', 'goal-map', 'work', 'blockers', 'thinking', 'studio',
|
|
108
108
|
'market-watch'],
|
|
109
109
|
artistry: ['studio', 'goals', 'thinking'],
|
|
110
110
|
ideating: ['goal-map', 'thinking', 'goals', 'market-watch'],
|
|
@@ -80,8 +80,8 @@
|
|
|
80
80
|
|
|
81
81
|
<script src="/builders/dom-utils.js?v=2026-11-05-numbers"></script>
|
|
82
82
|
<script src="/builders/shell-trail.js?v=2026-11-05-numbers"></script>
|
|
83
|
-
<script src="/builders/craft-mode.js?v=2026-11-05-
|
|
84
|
-
<script src="/builders/shell.js?v=2026-11-05-
|
|
83
|
+
<script src="/builders/craft-mode.js?v=2026-11-05-goals"></script>
|
|
84
|
+
<script src="/builders/shell.js?v=2026-11-05-goals"></script>
|
|
85
85
|
<script src="/builders/palette.js" defer></script>
|
|
86
86
|
<script src="/builders/hall-kit.js"></script>
|
|
87
87
|
<!-- the shared ask card the move is drawn with (task 1004829) -->
|
|
@@ -139,8 +139,8 @@
|
|
|
139
139
|
|
|
140
140
|
<script src="/builders/dom-utils.js?v=2026-11-05-numbers"></script>
|
|
141
141
|
<script src="/builders/shell-trail.js?v=2026-11-05-numbers"></script>
|
|
142
|
-
<script src="/builders/craft-mode.js?v=2026-11-05-
|
|
143
|
-
<script src="/builders/shell.js?v=2026-11-05-
|
|
142
|
+
<script src="/builders/craft-mode.js?v=2026-11-05-goals"></script>
|
|
143
|
+
<script src="/builders/shell.js?v=2026-11-05-goals"></script>
|
|
144
144
|
<script src="/builders/palette.js" defer></script>
|
|
145
145
|
|
|
146
146
|
<script src="/builders/idea-objects.js?v=2026-09-27-split"></script>
|
|
@@ -17,6 +17,8 @@
|
|
|
17
17
|
styles now live in style.css's hall-kit section. -->
|
|
18
18
|
<link rel="stylesheet" href="/builders/hall-ask.css">
|
|
19
19
|
<link rel="stylesheet" href="/builders/goals.css">
|
|
20
|
+
<!-- task 1005051: the version band (the Roadmap page folded in) draws with its sheet. -->
|
|
21
|
+
<link rel="stylesheet" href="/builders/roadmap.css">
|
|
20
22
|
<link rel="stylesheet" href="/builders/notes-panel.css">
|
|
21
23
|
</head>
|
|
22
24
|
<body data-page="goals" data-page-title="Goals">
|
|
@@ -44,6 +46,13 @@
|
|
|
44
46
|
on the shell's .scroll. It used to be a bar of twelve controls on the
|
|
45
47
|
ground over one panel PER GROUP. -->
|
|
46
48
|
<section id="goals-list-view" aria-labelledby="goals-list-h">
|
|
49
|
+
<!-- task 1005051 (owner decision 2026-11-03, idea 1001315): Goals opens with
|
|
50
|
+
the version's progress and the timeline — the Roadmap page folded in,
|
|
51
|
+
and /roadmap redirects here. roadmap.js fills #rm-root. -->
|
|
52
|
+
<div class="scroll" id="goals-version" aria-labelledby="goals-version-h">
|
|
53
|
+
<h2 id="goals-version-h" class="sr-only">The version</h2>
|
|
54
|
+
<div id="rm-root"><div class="hall-loading" role="status">Loading the version…</div></div>
|
|
55
|
+
</div>
|
|
47
56
|
<h2 id="goals-list-h" class="sr-only">All goals</h2>
|
|
48
57
|
<div class="scroll goals-panel">
|
|
49
58
|
<!-- task 2171: the filter bar is built by OTBKit.makeFilterBar —
|
|
@@ -243,8 +252,8 @@
|
|
|
243
252
|
|
|
244
253
|
<script src="/builders/dom-utils.js?v=2026-11-05-numbers"></script>
|
|
245
254
|
<script src="/builders/shell-trail.js?v=2026-11-05-numbers"></script>
|
|
246
|
-
<script src="/builders/craft-mode.js?v=2026-11-05-
|
|
247
|
-
<script src="/builders/shell.js?v=2026-11-05-
|
|
255
|
+
<script src="/builders/craft-mode.js?v=2026-11-05-goals"></script>
|
|
256
|
+
<script src="/builders/shell.js?v=2026-11-05-goals"></script>
|
|
248
257
|
<!-- jump palette (Ctrl/Cmd-K). Optional by design: without it the shell's slot stays hidden. -->
|
|
249
258
|
<script src="/builders/palette.js" defer></script>
|
|
250
259
|
<!-- task 1004727: the ONE karma vote control every task/idea list renders -->
|
|
@@ -281,5 +290,8 @@
|
|
|
281
290
|
<script src="/builders/notes-panel.js"></script>
|
|
282
291
|
<script src="/builders/goals-render.js?v=2026-09-30-uat2"></script>
|
|
283
292
|
<script src="/builders/goals-page.js?v=2026-09-30-uat2"></script>
|
|
293
|
+
<!-- task 1005051: the version band — the timeline's builder, then the band. -->
|
|
294
|
+
<script src="/builders/roadmap-timeline.js"></script>
|
|
295
|
+
<script src="/builders/roadmap.js?v=2026-11-05-goals"></script>
|
|
284
296
|
</body>
|
|
285
297
|
</html>
|
|
@@ -156,8 +156,8 @@
|
|
|
156
156
|
|
|
157
157
|
<script src="/builders/dom-utils.js?v=2026-11-05-numbers"></script>
|
|
158
158
|
<script src="/builders/shell-trail.js?v=2026-11-05-numbers"></script>
|
|
159
|
-
<script src="/builders/craft-mode.js?v=2026-11-05-
|
|
160
|
-
<script src="/builders/shell.js?v=2026-11-05-
|
|
159
|
+
<script src="/builders/craft-mode.js?v=2026-11-05-goals"></script>
|
|
160
|
+
<script src="/builders/shell.js?v=2026-11-05-goals"></script>
|
|
161
161
|
<!-- jump palette (Ctrl/Cmd-K). Optional by design: without it the shell's slot stays hidden. -->
|
|
162
162
|
<script src="/builders/palette.js" defer></script>
|
|
163
163
|
<script src="/builders/hall-kit.js"></script>
|
|
@@ -52,8 +52,8 @@
|
|
|
52
52
|
|
|
53
53
|
<script src="/builders/dom-utils.js?v=2026-11-05-numbers"></script>
|
|
54
54
|
<script src="/builders/shell-trail.js?v=2026-11-05-numbers"></script>
|
|
55
|
-
<script src="/builders/craft-mode.js?v=2026-11-05-
|
|
56
|
-
<script src="/builders/shell.js?v=2026-11-05-
|
|
55
|
+
<script src="/builders/craft-mode.js?v=2026-11-05-goals"></script>
|
|
56
|
+
<script src="/builders/shell.js?v=2026-11-05-goals"></script>
|
|
57
57
|
<script src="/builders/palette.js" defer></script>
|
|
58
58
|
<!-- task-detail.js still owns the #/idea/N and #/blocker/N overlay, so a ref
|
|
59
59
|
written inside an idea's own prose keeps resolving from this page. -->
|
|
@@ -227,8 +227,8 @@
|
|
|
227
227
|
|
|
228
228
|
<script src="/builders/dom-utils.js?v=2026-11-05-numbers"></script>
|
|
229
229
|
<script src="/builders/shell-trail.js?v=2026-11-05-numbers"></script>
|
|
230
|
-
<script src="/builders/craft-mode.js?v=2026-11-05-
|
|
231
|
-
<script src="/builders/shell.js?v=2026-11-05-
|
|
230
|
+
<script src="/builders/craft-mode.js?v=2026-11-05-goals"></script>
|
|
231
|
+
<script src="/builders/shell.js?v=2026-11-05-goals"></script>
|
|
232
232
|
<script src="/builders/palette.js" defer></script>
|
|
233
233
|
<!-- task 1004727: the ONE karma vote control every task/idea list renders -->
|
|
234
234
|
<script src="/builders/vote-control.js"></script>
|
|
@@ -108,8 +108,8 @@
|
|
|
108
108
|
before the craft picker so the two never stack. Home only. -->
|
|
109
109
|
<script src="/builders/welcome-boot.js?v=2026-10-23-city1" defer></script>
|
|
110
110
|
<script src="/builders/shell-trail.js?v=2026-11-05-numbers" defer></script>
|
|
111
|
-
<script src="/builders/craft-mode.js?v=2026-11-05-
|
|
112
|
-
<script src="/builders/shell.js?v=2026-11-05-
|
|
111
|
+
<script src="/builders/craft-mode.js?v=2026-11-05-goals" defer></script>
|
|
112
|
+
<script src="/builders/shell.js?v=2026-11-05-goals" defer></script>
|
|
113
113
|
<!-- jump palette (Ctrl/Cmd-K). Optional by design: without it the shell's slot stays hidden. -->
|
|
114
114
|
<script src="/builders/palette.js" defer></script>
|
|
115
115
|
<!-- task 2166: the shared component kit (window.OTBKit) — pager/ledger/rail.
|
|
@@ -73,8 +73,8 @@
|
|
|
73
73
|
|
|
74
74
|
<script src="/builders/dom-utils.js?v=2026-11-05-numbers"></script>
|
|
75
75
|
<script src="/builders/shell-trail.js?v=2026-11-05-numbers"></script>
|
|
76
|
-
<script src="/builders/craft-mode.js?v=2026-11-05-
|
|
77
|
-
<script src="/builders/shell.js?v=2026-11-05-
|
|
76
|
+
<script src="/builders/craft-mode.js?v=2026-11-05-goals"></script>
|
|
77
|
+
<script src="/builders/shell.js?v=2026-11-05-goals"></script>
|
|
78
78
|
<script src="/builders/palette.js" defer></script>
|
|
79
79
|
<script src="/builders/hall-kit.js"></script>
|
|
80
80
|
<script src="/builders/market-watch-lib.js"></script>
|
|
@@ -42,8 +42,8 @@
|
|
|
42
42
|
|
|
43
43
|
<script src="/builders/dom-utils.js?v=2026-11-05-numbers"></script>
|
|
44
44
|
<script src="/builders/shell-trail.js?v=2026-11-05-numbers"></script>
|
|
45
|
-
<script src="/builders/craft-mode.js?v=2026-11-05-
|
|
46
|
-
<script src="/builders/shell.js?v=2026-11-05-
|
|
45
|
+
<script src="/builders/craft-mode.js?v=2026-11-05-goals"></script>
|
|
46
|
+
<script src="/builders/shell.js?v=2026-11-05-goals"></script>
|
|
47
47
|
<!-- jump palette (Ctrl/Cmd-K). Optional by design: without it the shell's slot stays hidden. -->
|
|
48
48
|
<script src="/builders/palette.js" defer></script>
|
|
49
49
|
<script src="/builders/hall-kit.js"></script>
|
|
@@ -187,8 +187,8 @@
|
|
|
187
187
|
|
|
188
188
|
<script src="/builders/dom-utils.js?v=2026-11-05-numbers"></script>
|
|
189
189
|
<script src="/builders/shell-trail.js?v=2026-11-05-numbers"></script>
|
|
190
|
-
<script src="/builders/craft-mode.js?v=2026-11-05-
|
|
191
|
-
<script src="/builders/shell.js?v=2026-11-05-
|
|
190
|
+
<script src="/builders/craft-mode.js?v=2026-11-05-goals"></script>
|
|
191
|
+
<script src="/builders/shell.js?v=2026-11-05-goals"></script>
|
|
192
192
|
<script src="/builders/palette.js" defer></script>
|
|
193
193
|
<script src="/builders/hall-kit.js"></script>
|
|
194
194
|
<script src="/builders/market-watch-lib.js"></script>
|
|
@@ -127,8 +127,8 @@
|
|
|
127
127
|
|
|
128
128
|
<script src="/builders/dom-utils.js?v=2026-11-05-numbers"></script>
|
|
129
129
|
<script src="/builders/shell-trail.js?v=2026-11-05-numbers"></script>
|
|
130
|
-
<script src="/builders/craft-mode.js?v=2026-11-05-
|
|
131
|
-
<script src="/builders/shell.js?v=2026-11-05-
|
|
130
|
+
<script src="/builders/craft-mode.js?v=2026-11-05-goals"></script>
|
|
131
|
+
<script src="/builders/shell.js?v=2026-11-05-goals"></script>
|
|
132
132
|
<!-- jump palette (Ctrl/Cmd-K). Optional by design: without it the shell's slot stays hidden. -->
|
|
133
133
|
<script src="/builders/palette.js" defer></script>
|
|
134
134
|
<script src="/builders/brand-apply.js"></script>
|
|
@@ -81,8 +81,8 @@
|
|
|
81
81
|
|
|
82
82
|
<script src="/builders/dom-utils.js?v=2026-11-05-numbers"></script>
|
|
83
83
|
<script src="/builders/shell-trail.js?v=2026-11-05-numbers"></script>
|
|
84
|
-
<script src="/builders/craft-mode.js?v=2026-11-05-
|
|
85
|
-
<script src="/builders/shell.js?v=2026-11-05-
|
|
84
|
+
<script src="/builders/craft-mode.js?v=2026-11-05-goals"></script>
|
|
85
|
+
<script src="/builders/shell.js?v=2026-11-05-goals"></script>
|
|
86
86
|
<!-- jump palette (Ctrl/Cmd-K). Optional by design: without it the shell's slot stays hidden. -->
|
|
87
87
|
<script src="/builders/palette.js" defer></script>
|
|
88
88
|
<script src="/builders/hall-kit.js"></script>
|
|
@@ -83,8 +83,8 @@
|
|
|
83
83
|
|
|
84
84
|
<script src="/builders/dom-utils.js?v=2026-11-05-numbers"></script>
|
|
85
85
|
<script src="/builders/shell-trail.js?v=2026-11-05-numbers"></script>
|
|
86
|
-
<script src="/builders/craft-mode.js?v=2026-11-05-
|
|
87
|
-
<script src="/builders/shell.js?v=2026-11-05-
|
|
86
|
+
<script src="/builders/craft-mode.js?v=2026-11-05-goals"></script>
|
|
87
|
+
<script src="/builders/shell.js?v=2026-11-05-goals"></script>
|
|
88
88
|
<!-- jump palette (Ctrl/Cmd-K). Optional by design: without it the shell's slot stays hidden. -->
|
|
89
89
|
<script src="/builders/palette.js" defer></script>
|
|
90
90
|
<script src="/builders/gov-living.js?v=2026-10-10-real1"></script>
|
|
@@ -112,8 +112,8 @@
|
|
|
112
112
|
|
|
113
113
|
<script src="/builders/dom-utils.js?v=2026-11-05-numbers"></script>
|
|
114
114
|
<script src="/builders/shell-trail.js?v=2026-11-05-numbers"></script>
|
|
115
|
-
<script src="/builders/craft-mode.js?v=2026-11-05-
|
|
116
|
-
<script src="/builders/shell.js?v=2026-11-05-
|
|
115
|
+
<script src="/builders/craft-mode.js?v=2026-11-05-goals"></script>
|
|
116
|
+
<script src="/builders/shell.js?v=2026-11-05-goals"></script>
|
|
117
117
|
<!-- jump palette (Ctrl/Cmd-K). Optional by design: without it the shell's slot stays hidden. -->
|
|
118
118
|
<script src="/builders/palette.js" defer></script>
|
|
119
119
|
<!-- the shared markdown reader (window.OTBMdReader) — primer.js renders through
|
|
@@ -248,8 +248,8 @@
|
|
|
248
248
|
chrome exists before the page script runs. -->
|
|
249
249
|
<script src="/builders/dom-utils.js?v=2026-11-05-numbers"></script>
|
|
250
250
|
<script src="/builders/shell-trail.js?v=2026-11-05-numbers"></script>
|
|
251
|
-
<script src="/builders/craft-mode.js?v=2026-11-05-
|
|
252
|
-
<script src="/builders/shell.js?v=2026-11-05-
|
|
251
|
+
<script src="/builders/craft-mode.js?v=2026-11-05-goals"></script>
|
|
252
|
+
<script src="/builders/shell.js?v=2026-11-05-goals"></script>
|
|
253
253
|
<!-- jump palette (Ctrl/Cmd-K). Optional by design: without it the shell's slot stays hidden. -->
|
|
254
254
|
<script src="/builders/palette.js" defer></script>
|
|
255
255
|
<!-- task 1004727: the ONE karma vote control every task/idea list renders -->
|
|
@@ -76,8 +76,8 @@
|
|
|
76
76
|
|
|
77
77
|
<script src="/builders/dom-utils.js?v=2026-11-05-numbers"></script>
|
|
78
78
|
<script src="/builders/shell-trail.js?v=2026-11-05-numbers"></script>
|
|
79
|
-
<script src="/builders/craft-mode.js?v=2026-11-05-
|
|
80
|
-
<script src="/builders/shell.js?v=2026-11-05-
|
|
79
|
+
<script src="/builders/craft-mode.js?v=2026-11-05-goals"></script>
|
|
80
|
+
<script src="/builders/shell.js?v=2026-11-05-goals"></script>
|
|
81
81
|
<!-- jump palette (Ctrl/Cmd-K). Optional by design: without it the shell's slot stays hidden. -->
|
|
82
82
|
<script src="/builders/palette.js" defer></script>
|
|
83
83
|
<script src="/builders/hall-kit.js"></script>
|
|
@@ -1,12 +1,14 @@
|
|
|
1
|
-
/* roadmap.css — the
|
|
1
|
+
/* roadmap.css — the version band at the top of Goals (task 1005051: the Roadmap
|
|
2
|
+
page folded into Goals and /roadmap redirects there). Once the Roadmap
|
|
3
|
+
"command deck" (task 1002426; lifted out of the
|
|
2
4
|
page's inline <style> by task 1002176; rebuilt into the chrome world by task
|
|
3
5
|
1003306, goal 1000081). The ?v= cache-bust is stamped automatically from this
|
|
4
6
|
file's content hash at boot (src/asset-version.js).
|
|
5
7
|
|
|
6
|
-
THE
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
8
|
+
THE BAND: each version in flight (the focus version first) — its phase, name,
|
|
9
|
+
ring, task count and lifecycle bar — then the timeline. The program hero, the
|
|
10
|
+
per-version goal summaries and the staged / parked / shipped cards it drew as
|
|
11
|
+
a page went with the page; the goals are the list right below the band.
|
|
10
12
|
|
|
11
13
|
It is a reading room by task, not by archetype: nothing here is long-form, so
|
|
12
14
|
it does not load room.css. What it takes from the world is the world itself —
|
|
@@ -28,13 +30,6 @@
|
|
|
28
30
|
|
|
29
31
|
`--line` is a WIDTH; the hairline's colour is --rule / --rule-soft. */
|
|
30
32
|
|
|
31
|
-
body[data-page="roadmap"] {
|
|
32
|
-
--rm-plan: color-mix(in srgb, var(--ink) 16%, var(--bg));
|
|
33
|
-
--rm-terra-weak: color-mix(in srgb, var(--terracotta) 13%, var(--bg-card));
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
.rm-num { font-variant-numeric: tabular-nums; }
|
|
37
|
-
|
|
38
33
|
/* ---- shared atoms ----
|
|
39
34
|
The chips are the deck's label voice: they name a KIND, so they take the
|
|
40
35
|
label tokens rather than a hand-written uppercase of their own. */
|
|
@@ -66,56 +61,11 @@ body[data-page="roadmap"] {
|
|
|
66
61
|
.rm-ring b { position:relative; z-index:1; font-family:var(--font-display); font-size:16px; font-weight:300;
|
|
67
62
|
font-variant-numeric:tabular-nums; letter-spacing:-.02em; }
|
|
68
63
|
.rm-ring b i { font-style:normal; font-size:9.5px; font-weight:400; color:var(--ink-faint); }
|
|
69
|
-
|
|
70
|
-
/* goal-status bar (segmented by goal COUNT: achieved / in progress / not started) */
|
|
71
|
-
.rm-gbar { display:flex; height:8px; border-radius:var(--radius-pill); overflow:hidden;
|
|
72
|
-
background:var(--rule-soft); }
|
|
73
|
-
.rm-gbar__s { height:100%; }
|
|
74
|
-
.rm-gbar__s--ach { background:var(--ok); }
|
|
75
|
-
.rm-gbar__s--prog { background:var(--accent); }
|
|
76
|
-
.rm-gbar__s--plan { background:var(--rm-plan); }
|
|
77
|
-
|
|
78
|
-
/* ---- program hero ----
|
|
79
|
-
v3's figure band: one glass strip of numbers, not a tinted card. The old
|
|
80
|
-
accent gradient spent the warm colour on something nobody can press. */
|
|
81
|
-
.rm-hero { background:var(--glass); border:var(--line) solid var(--glass-edge);
|
|
82
|
-
-webkit-backdrop-filter:blur(var(--glass-blur)); backdrop-filter:blur(var(--glass-blur));
|
|
83
|
-
border-radius:var(--radius); padding:var(--sp-md); margin-bottom:var(--sp-md); }
|
|
84
|
-
.rm-hero__top { display:grid; grid-template-columns:auto 1fr; gap:26px; align-items:center; }
|
|
85
|
-
.rm-big { display:flex; align-items:baseline; gap:3px; }
|
|
86
|
-
.rm-big .n { font-family:var(--font-display); font-size:52px; font-weight:300; line-height:.95;
|
|
87
|
-
letter-spacing:-.03em; font-variant-numeric:tabular-nums; }
|
|
88
|
-
.rm-big .u { font-size:18px; font-weight:400; color:var(--ink-faint); }
|
|
89
|
-
/* The cap is load-bearing — the hero's left column is `auto`, so without it the
|
|
90
|
-
caption sizes to its content and never wraps under the figure. It is a length
|
|
91
|
-
and not a `ch`: this is a label in the mono face, and a `ch` there is the zero
|
|
92
|
-
glyph's width, which is the measurement that put 90 characters on the primer. */
|
|
93
|
-
.rm-lab { font-family:var(--label-face); font-size:var(--label-size); font-weight:400;
|
|
94
|
-
letter-spacing:var(--label-space); text-transform:var(--label-case); color:var(--ink-faint);
|
|
95
|
-
margin-top:7px; max-width:8rem; }
|
|
96
|
-
.rm-hbar { height:15px; }
|
|
97
|
-
.rm-stats { display:flex; flex-wrap:wrap; gap:9px 24px; margin-top:14px; }
|
|
98
|
-
.rm-stat { display:flex; flex-direction:column; gap:1px; }
|
|
99
|
-
.rm-stat .v { font-family:var(--font-display); font-size:19px; font-weight:300;
|
|
100
|
-
font-variant-numeric:tabular-nums; letter-spacing:-.01em; }
|
|
101
|
-
.rm-stat .k { font-size:11.5px; color:var(--ink-faint); }
|
|
102
|
-
.rm-stat .v.sh { color:var(--ok); } .rm-stat .v.co { color:var(--info); } .rm-stat .v.cm { color:var(--warn); }
|
|
103
|
-
.rm-hgoals { display:flex; align-items:center; gap:14px; flex-wrap:wrap; margin-top:16px; padding-top:15px;
|
|
104
|
-
border-top:var(--line) solid var(--rule-soft); }
|
|
105
|
-
.rm-hgoals .glab { font-family:var(--label-face); font-size:var(--label-size); font-weight:400;
|
|
106
|
-
letter-spacing:var(--label-space); text-transform:var(--label-case); color:var(--ink-faint); }
|
|
107
|
-
.rm-hgoals .rm-gbar { width:200px; max-width:44vw; }
|
|
108
|
-
.rm-hgoals .gleg { font-size:12.5px; color:var(--ink-soft); }
|
|
109
|
-
.rm-hgoals .gleg b { color:var(--ink); font-weight:500; font-variant-numeric:tabular-nums; }
|
|
110
|
-
|
|
111
64
|
/* ---- section rhythm ---- */
|
|
112
65
|
.rm-sec { margin-top:var(--sp-md); }
|
|
113
66
|
.rm-sec__h { display:flex; align-items:center; gap:10px; margin:0 2px 13px; }
|
|
114
67
|
.rm-sec__dot { width:8px; height:8px; border-radius:50%; }
|
|
115
68
|
.rm-sec__dot--flight { background:var(--ok); }
|
|
116
|
-
.rm-sec__dot--staged { background:var(--accent); }
|
|
117
|
-
.rm-sec__dot--parked { background:var(--ink-faint); }
|
|
118
|
-
.rm-sec__dot--shipped { background:var(--sea); }
|
|
119
69
|
.rm-sec__t { font-family:var(--label-face); font-size:var(--label-size); font-weight:400;
|
|
120
70
|
letter-spacing:var(--label-space); text-transform:var(--label-case); color:var(--ink); }
|
|
121
71
|
.rm-sec__n { font-size:11.5px; color:var(--ink-faint); font-variant-numeric:tabular-nums;
|
|
@@ -129,10 +79,6 @@ body[data-page="roadmap"] {
|
|
|
129
79
|
.rm-card { background:var(--bg-card); border:var(--line) solid transparent;
|
|
130
80
|
border-radius:var(--radius); padding:var(--sp-md); }
|
|
131
81
|
.rm-card--feat { grid-column:1 / -1; }
|
|
132
|
-
.rm-card--parked { background:var(--glass); }
|
|
133
|
-
/* staged is the one card that IS a drawn edge, and it earns it: a dashed border
|
|
134
|
-
is the deck's whole signal that the version is not real yet. */
|
|
135
|
-
.rm-card--staged { background:none; border-style:dashed; border-color:var(--rule); }
|
|
136
82
|
.rm-row { display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
|
|
137
83
|
.rm-name { font-family:var(--font-display); font-size:19px; font-weight:300; line-height:1.15;
|
|
138
84
|
letter-spacing:-.03em; margin:9px 0 0; }
|
|
@@ -143,46 +89,8 @@ body[data-page="roadmap"] {
|
|
|
143
89
|
.rm-cardprog { margin-top:14px; }
|
|
144
90
|
.rm-count { display:flex; justify-content:space-between; gap:10px; font-size:12.5px; color:var(--ink-soft); margin-bottom:6px; }
|
|
145
91
|
.rm-count b { color:var(--ink); font-weight:500; font-variant-numeric:tabular-nums; }
|
|
146
|
-
.rm-featgrid { display:grid; grid-template-columns:1.05fr 1fr; gap:22px; align-items:start; }
|
|
147
|
-
.rm-featgrid__l { min-width:0; }
|
|
148
92
|
.rm-feat-top { display:flex; align-items:flex-start; gap:16px; }
|
|
149
93
|
.rm-feat-top .rt { flex:1; min-width:0; }
|
|
150
|
-
|
|
151
|
-
/* ---- goals block ---- */
|
|
152
|
-
.rm-goals { min-width:0; }
|
|
153
|
-
.rm-goals__frame { background:var(--glass); border:var(--line) solid var(--glass-edge);
|
|
154
|
-
border-radius:var(--radius-sm); padding:var(--sp-sm); }
|
|
155
|
-
.rm-goals__h { display:flex; align-items:baseline; justify-content:space-between; gap:8px; margin-bottom:10px; }
|
|
156
|
-
.rm-goals__h .t { font-family:var(--label-face); font-size:var(--label-size); font-weight:400;
|
|
157
|
-
letter-spacing:var(--label-space); text-transform:var(--label-case); color:var(--ink-faint); }
|
|
158
|
-
.rm-goals__h .n { font-size:12px; color:var(--ink-soft); font-variant-numeric:tabular-nums; }
|
|
159
|
-
.rm-gdist { display:flex; gap:12px; flex-wrap:wrap; margin-top:9px; font-size:12.5px; color:var(--ink-soft); }
|
|
160
|
-
.rm-gdist span { display:inline-flex; align-items:center; gap:6px; }
|
|
161
|
-
.rm-gdist i { width:9px; height:9px; border-radius:2px; }
|
|
162
|
-
.rm-gdist i.rm-ach { background:var(--ok); } .rm-gdist i.rm-prog { background:var(--accent); } .rm-gdist i.rm-plan { background:var(--rm-plan); }
|
|
163
|
-
.rm-gdist b { color:var(--ink); font-weight:500; font-variant-numeric:tabular-nums; }
|
|
164
|
-
.rm-ginp { margin-top:14px; }
|
|
165
|
-
.rm-ginp__cap { font-family:var(--label-face); font-size:var(--label-size); font-weight:400;
|
|
166
|
-
letter-spacing:var(--label-space); text-transform:var(--label-case); color:var(--ink-faint); margin-bottom:2px; }
|
|
167
|
-
.rm-goal { display:flex; align-items:center; gap:10px; padding:4px 0; }
|
|
168
|
-
.rm-goal + .rm-goal { border-top:var(--line) solid var(--rule-soft); }
|
|
169
|
-
.rm-goal__dot { flex:none; width:8px; height:8px; border-radius:50%; background:var(--accent); }
|
|
170
|
-
/* THE 24px FLOOR, BOTH AXES (task 1003304's rule, applied here). This is a link
|
|
171
|
-
in a row whose only height was its 13px line box plus 7px of row padding —
|
|
172
|
-
measured 20px, and it is the deck's most-clicked target. The row's padding
|
|
173
|
-
comes down by the same amount the link's goes up, so the target grows and the
|
|
174
|
-
list does not re-space around it. */
|
|
175
|
-
.rm-goal__t { flex:1; min-width:0; display:flex; align-items:center; min-height:24px; padding:3px 0;
|
|
176
|
-
font-size:13px; color:var(--ink); text-decoration:none;
|
|
177
|
-
overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
|
|
178
|
-
a.rm-goal__t:hover { color:var(--accent-ink); text-decoration:underline; }
|
|
179
|
-
.rm-goal__ready { flex:none; font-family:var(--label-face); font-size:10px; font-weight:400;
|
|
180
|
-
letter-spacing:var(--label-space); text-transform:var(--label-case);
|
|
181
|
-
color:var(--ok); background:var(--ok-weak); padding:3px 7px; border-radius:var(--radius-pill); }
|
|
182
|
-
.rm-goal__meter { flex:none; width:70px; height:5px; border-radius:var(--radius-pill); background:var(--rule-soft); overflow:hidden; }
|
|
183
|
-
.rm-goal__meter i { display:block; height:100%; background:var(--accent); }
|
|
184
|
-
.rm-goal__n { flex:none; font-size:11.5px; color:var(--ink-soft); font-variant-numeric:tabular-nums; min-width:28px; text-align:right; }
|
|
185
|
-
.rm-goal__seed { flex:none; font-size:11.5px; color:var(--ink-faint); }
|
|
186
94
|
/* the same floor: this link measured 19px */
|
|
187
95
|
.rm-gmore { display:inline-flex; align-items:center; gap:6px; min-height:24px; margin-top:10px; padding:3px 0;
|
|
188
96
|
font-size:12.5px; font-weight:500; color:var(--accent-ink); text-decoration:none; }
|
|
@@ -194,49 +102,10 @@ a.rm-goal__t:hover { color:var(--accent-ink); text-decoration:underline; }
|
|
|
194
102
|
above zero (see admissionNote). */
|
|
195
103
|
.rm-gadm { font-size:12.5px; color:var(--warn); margin:10px 0 0; }
|
|
196
104
|
.rm-gadm b { font-weight:600; }
|
|
197
|
-
|
|
198
|
-
/* parked note + staged state */
|
|
199
|
-
.rm-parknote { display:flex; gap:9px; font-size:12.5px; color:var(--ink-soft); background:var(--bg-card);
|
|
200
|
-
border-radius:var(--radius-sm); padding:10px 12px; margin-top:13px; }
|
|
201
|
-
.rm-parknote svg { flex:none; width:15px; height:15px; margin-top:1px; color:var(--ink-faint); }
|
|
202
|
-
.rm-staged-state { display:flex; align-items:center; gap:11px; margin-top:15px; padding:12px 14px;
|
|
203
|
-
border:var(--line) dashed var(--rule); border-radius:var(--radius-sm); }
|
|
204
|
-
.rm-staged-state svg { flex:none; width:18px; height:18px; color:var(--accent); }
|
|
205
|
-
.rm-staged-state .s1 { font-size:13px; font-weight:500; color:var(--ink); }
|
|
206
|
-
.rm-staged-state .s2 { font-size:12.5px; color:var(--ink-soft); margin-top:1px; }
|
|
207
|
-
.rm-staged-state .s2 b { color:var(--ink); font-weight:500; font-variant-numeric:tabular-nums; }
|
|
208
|
-
|
|
209
|
-
/* shipped strip */
|
|
210
|
-
.rm-shipstrip { display:flex; flex-wrap:wrap; gap:10px; }
|
|
211
|
-
.rm-shippill { display:flex; align-items:center; gap:11px; min-height:38px; background:var(--bg-card);
|
|
212
|
-
border:var(--line) solid transparent; border-radius:var(--radius-pill); padding:8px 15px 8px 10px; text-decoration:none; }
|
|
213
|
-
.rm-shippill:hover { border-color:var(--rule); }
|
|
214
|
-
.rm-shippill .ok { width:20px; height:20px; border-radius:50%; background:var(--ok-weak); color:var(--ok);
|
|
215
|
-
display:grid; place-items:center; font-size:11px; }
|
|
216
|
-
.rm-shippill .nm { font-size:13px; font-weight:500; color:var(--ink); }
|
|
217
|
-
.rm-shippill .mt { font-size:11.5px; color:var(--ink-faint); font-variant-numeric:tabular-nums; }
|
|
218
|
-
|
|
219
105
|
@media (max-width:820px) {
|
|
220
106
|
.rm-grid { grid-template-columns:1fr; }
|
|
221
|
-
.rm-featgrid { grid-template-columns:1fr; }
|
|
222
|
-
.rm-hero__top { grid-template-columns:1fr; gap:14px; }
|
|
223
107
|
}
|
|
224
108
|
|
|
225
|
-
/* A goal row is dot + title + ready pill + meter + count on ONE line, and the
|
|
226
|
-
title is the only flexible item — so at 320 the four fixed ones eat the row
|
|
227
|
-
and `flex: 1; min-width: 0` resolves the title to ZERO width. Measured: a
|
|
228
|
-
0x26 link, which passes the 24px floor's height and fails its width, and is
|
|
229
|
-
invisible either way. The row wraps here instead: the title takes the first
|
|
230
|
-
line whole and the meters follow under it. */
|
|
231
|
-
@media (max-width:400px) {
|
|
232
|
-
.rm-goal { flex-wrap:wrap; row-gap:2px; }
|
|
233
|
-
/* the title takes the first line whole; the meter, count and ready pill
|
|
234
|
-
follow under it. The dot goes — it is a decorative repeat of a state the
|
|
235
|
-
meter already carries, and left in place it would sit alone above the
|
|
236
|
-
title on a line of its own. */
|
|
237
|
-
.rm-goal__dot { display:none; }
|
|
238
|
-
.rm-goal__t { flex:1 0 100%; white-space:normal; }
|
|
239
|
-
}
|
|
240
109
|
/* Focus star (task 1004551): ink-faint when off, accent when on. */
|
|
241
110
|
.rm-star { margin-left:auto; font-size:17px; line-height:1; color:var(--ink-faint); background:none; border:0; padding:0 2px; }
|
|
242
111
|
.rm-star--on { color:var(--accent); }
|