@bongos/core 1.19.622 → 1.19.623

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.
@@ -1693,5 +1693,7 @@ is load-bearing: the script throws rather than guess if it is missing, and
1693
1693
  landed since 1.19.620 with no explicit bump. run 34321546662. (task 1002620)
1694
1694
  1.19.622 — CI auto-patch (publish-on-merge, ADR 0161): carrier for merges
1695
1695
  landed since 1.19.621 with no explicit bump. run 34322091367. (task 1002620)
1696
+ 1.19.623 — CI auto-patch (publish-on-merge, ADR 0161): carrier for merges
1697
+ landed since 1.19.622 with no explicit bump. run 34323141703. (task 1002620)
1696
1698
  ---------------------------------------------------------------------------
1697
1699
  ```
@@ -0,0 +1,83 @@
1
+ /* board-room.css — Page-local styles for the Board Room (/builders/board-room).
2
+
3
+ Carved out of government.css by ADR 0266, with the room itself: these rules
4
+ were the `#board-room` tab's and nothing on the government page reads them
5
+ any more, so leaving them there would have been dead weight on a sheet two
6
+ other rooms still load. What lives here is what only this page has — the
7
+ sitting card in task 1003270's order (title, ballot, the idea, the
8
+ apparatus) and the ballot controls. The panel is the shell's .scroll and the
9
+ rows are the oversight family's (oversight.css); the ?v= cache-bust is
10
+ stamped from this file's content hash at boot (src/asset-version.js).
11
+
12
+ TWO RULES ARE DUPLICATED FROM government.css, KNOWINGLY. `.gov-grid-note` is
13
+ the government family's framing-line voice, and the sitting card spends it in
14
+ three places (decidedByHtml, the own-idea note, the objection hint) — while
15
+ the Constitution panel still spends it over there. Copying two short rules is
16
+ the cheaper of two bad options: the alternative is this page loading a
17
+ stylesheet named for a different room in order to inherit them, which is what
18
+ the first cut of this carve did and what the review called out. The NAMES stay
19
+ `gov-*` because board-room.js emits them and
20
+ tests/government_board_room_copy.mjs reads them as literal markup. */
21
+
22
+ /* The framing line under a heading — the family voice, duplicated per the header
23
+ note above rather than inherited across pages. */
24
+ .gov-grid-note { margin: 0 0 14px; font-size: 13.5px; line-height: 1.5; color: var(--ink-soft); max-width: var(--measure); }
25
+ .gov-grid-note strong { color: var(--ink); font-weight: 500; }
26
+ .gov-grid-note code { font-family: var(--font-mono); font-size: 12.5px; color: var(--ink); overflow-wrap: anywhere; }
27
+
28
+ /* "your vote" beside the reader's own row in the open ballot. */
29
+ .gov-held-note { font-size: 12.5px; color: var(--ok); white-space: nowrap; }
30
+
31
+ /* ---- the Board Room: one sitting, one panel -------------------------------------
32
+ The card order is task 1003270's (title, ballot, the idea, the apparatus); the
33
+ surface is the shell's .scroll (task 1003469). The subject of the vote is the
34
+ panel heading; the ballot sits directly under it; the idea is prose; the
35
+ constitutional apparatus stays one disclosure away with the tally on its summary. */
36
+ .gov-item__head { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 6px 14px; }
37
+ .gov-item__title {
38
+ margin: 0 0 8px;
39
+ min-width: 0;
40
+ font-family: var(--font-display);
41
+ font-weight: 300;
42
+ font-size: 21px;
43
+ line-height: 1.15;
44
+ letter-spacing: -0.03em;
45
+ color: var(--ink);
46
+ text-shadow: var(--type-halo);
47
+ overflow-wrap: anywhere;
48
+ }
49
+ .gov-item__title a { color: inherit; text-decoration: none; }
50
+ .gov-item__title a:hover { color: var(--accent-ink); text-decoration: underline; text-underline-offset: 3px; }
51
+ .gov-item__title .fact-pill { vertical-align: middle; margin-left: 10px; text-shadow: none; }
52
+ .gov-item__state { display: inline-flex; align-items: center; gap: 10px; font-size: 12.5px; color: var(--ink-faint); font-variant-numeric: tabular-nums; }
53
+ .gov-item__amend { margin: 0 0 12px; font-size: 13.5px; line-height: 1.5; color: var(--ink-soft); max-width: var(--measure); overflow-wrap: anywhere; }
54
+ .gov-item__act { margin: 8px 0 4px; }
55
+ .gov-item__cast { margin: 0; font-size: 13.5px; color: var(--ink-soft); }
56
+ .gov-item__meta { margin: var(--sp-sm) 0 0; border-top: var(--line) solid var(--rule-soft); }
57
+ .gov-item__summary { padding: 12px 0 0; min-height: 24px; cursor: pointer; font-size: 12.5px; color: var(--ink-soft); list-style-position: inside; }
58
+ .gov-item__summary:hover { color: var(--ink); }
59
+ .gov-item__metabody { padding: 12px 0 0; }
60
+ .gov-item__metabody .gov-grid-note { margin: 0 0 8px; }
61
+ .gov-item__metabody .gov-grid-note:last-child { margin-bottom: 0; }
62
+ .gov-item__metabody .ov-rows { margin-top: 12px; }
63
+ /* The head over the closed sittings sits on the ground between panels, so it
64
+ carries the air a panel would. */
65
+ .gov-board__divider { margin: var(--sp-md) 0 var(--sp-sm); }
66
+
67
+ /* ---- the ballot controls ------------------------------------------------------ */
68
+ /* The two ballot controls sit on one row; the objection disclosure takes the
69
+ whole row only once it is open, so its form drops under both buttons. */
70
+ .gov-vote { display: flex; flex-wrap: wrap; align-items: flex-start; gap: 10px; }
71
+ .gov-vote > .gov-grid-note { flex: 1 1 100%; margin: 0; }
72
+ .gov-vote__no { flex: 0 1 auto; }
73
+ .gov-vote__no[open] { flex: 1 1 100%; }
74
+ /* The disclosure IS the secondary button, so its marker must go — otherwise the
75
+ triangle sits inside the pill. */
76
+ .gov-vote__no > summary { display: inline-flex; cursor: pointer; }
77
+ .gov-vote__no > summary::marker { content: ''; }
78
+ .gov-vote__no > summary::-webkit-details-marker { display: none; }
79
+ .gov-vote__no > *:not(summary) { margin-top: 10px; }
80
+ .gov-vote__no textarea { display: block; width: 100%; max-width: var(--measure); box-sizing: border-box; }
81
+ .gov-vote__sections { display: flex; flex-wrap: wrap; gap: 6px 16px; }
82
+ .gov-vote__section { display: inline-flex; align-items: center; gap: 8px; min-height: 24px; font-size: 13px; color: var(--ink); cursor: pointer; }
83
+ .gov-vote__section input { width: 16px; height: 16px; margin: 0; }
@@ -0,0 +1,70 @@
1
+ <!doctype html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="utf-8">
5
+ <meta name="viewport" content="width=device-width, initial-scale=1">
6
+ <title>Board Room — {{worldName}}</title>
7
+ <meta name="description" content="The Board Room — where a Full Idea that cleared the completeness grade is ratified, and where the constitution itself is amended.">
8
+ <link rel="icon" href="data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'><text x='16' y='24' font-size='24' text-anchor='middle' font-family='sans-serif'>⌂</text></svg>">
9
+ <link rel="preconnect" href="https://fonts.googleapis.com">
10
+ <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
11
+ <link rel="stylesheet" href="/builders/style.css?v=2026-07-02-shell1">
12
+ <link rel="stylesheet" href="/builders/oversight.css">
13
+ <!-- The room's own sheet: the sitting card and the ballot controls moved here
14
+ out of government.css with the room (ADR 0266), so neither page carries the
15
+ other's rules. board-room.css's header records the two family rules it
16
+ duplicates rather than inherit across pages. -->
17
+ <link rel="stylesheet" href="/builders/board-room.css">
18
+ </head>
19
+ <body data-page="board-room" data-page-title="Board Room">
20
+
21
+ <div class="app">
22
+ <aside class="app-sidebar" id="app-sidebar" aria-label="Primary"></aside>
23
+ <div class="app-scrim" id="app-scrim" hidden></div>
24
+ <div class="app-body">
25
+ <header class="app-topbar" id="app-topbar"></header>
26
+ <div class="app-content">
27
+ <!-- The board page head (task 1003307): the LABEL voice, not a display
28
+ line, because on a working surface the page's own name is the least
29
+ interesting thing on it. -->
30
+ <div class="page-head page-head--board">
31
+ <h1 class="page-head__h">Board Room</h1>
32
+ <p class="page-head__sub" id="board-sub">Loading…</p>
33
+ </div>
34
+
35
+ <main id="hall-main">
36
+ <!-- task 1003469: the sealed state is a panel with a heading, not a bare
37
+ line on the ground. board-room.js writes the floor into the lede from
38
+ the pack's rank label, so the copy cannot drift. Unlike its
39
+ neighbours this page's floor is the VOTE atom (xenos), so the sealed
40
+ state is what a signed-out or ineligible visitor sees, not a rank
41
+ notice — see ADR 0266. -->
42
+ <section class="scroll" id="board-sealed" aria-labelledby="board-sealed-h" hidden>
43
+ <h2 class="scroll__h" id="board-sealed-h">Restricted</h2>
44
+ <p class="scroll__lede" id="board-sealed-body">This page is for members of the board.</p>
45
+ </section>
46
+
47
+ <!-- A sitting IS the panel (task 1003469), so the room itself is bare
48
+ ground: the lede sits over the sittings, each of which is a .scroll.
49
+ The <h1> above is the room's name, so there is no second heading. -->
50
+ <section id="board-body" hidden>
51
+ <p class="gov-grid-note">Read an idea, then decide. An objection needs a reason and the section it faults.</p>
52
+ <div id="gov-board"><span class="kit-skel"></span></div>
53
+ </section>
54
+ </main>
55
+
56
+ <footer class="app-foot" id="app-foot"></footer>
57
+ </div>
58
+ </div>
59
+ </div>
60
+
61
+ <div id="toast" class="toast" role="status" aria-live="polite" data-visible="0"></div>
62
+
63
+ <script src="/builders/shell.js?v=2026-07-02-shell1"></script>
64
+ <!-- jump palette (Ctrl/Cmd-K). Optional by design: without it the shell's slot stays hidden. -->
65
+ <script src="/builders/palette.js" defer></script>
66
+ <script src="/builders/dom-utils.js?v=2026-06-16-board"></script>
67
+ <script src="/builders/hall-kit.js"></script>
68
+ <script src="/builders/board-room.js?v=2026-09-09-board-carve"></script>
69
+ </body>
70
+ </html>