@bongos/core 1.19.726 → 1.19.727

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.
Files changed (226) hide show
  1. package/.bongos-core.json +176 -491
  2. package/.devcontainer/Dockerfile +1 -1
  3. package/.devcontainer/devcontainer.json +2 -2
  4. package/.devcontainer/healthcheck.sh +1 -1
  5. package/.devcontainer/init-firewall.sh +1 -1
  6. package/.devcontainer/post-create.sh +2 -2
  7. package/.env.local.example +1 -1
  8. package/Dockerfile +1 -1
  9. package/docs/copy-inventory.md +1 -1
  10. package/docs/copy-registry.json +9 -9
  11. package/docs/module-api-changelog.md +2 -0
  12. package/docs/recipes/devbox-app-release.md +4 -4
  13. package/modules/dev-box/app/scripts/dmgbuild-settings.py +5 -5
  14. package/modules/dev-box/app/scripts/gen-brand.js +1 -1
  15. package/modules/dev-box/app/src/brand.js +1 -1
  16. package/modules/dev-box/app/test/unit.mjs +16 -16
  17. package/modules/dev-box/box-access.js +1 -1
  18. package/modules/dev-box/routes/box.js +1 -1
  19. package/modules/discord/discord-approvals.js +1 -1
  20. package/modules/grading/grader-model.js +1 -1
  21. package/modules/grading/grader-prompt.js +1 -1
  22. package/modules/grading/grader-workers/quality.js +1 -1
  23. package/modules/hall-ui/module.json +1 -1
  24. package/modules/hall-ui/public/brand-apply.js +1 -1
  25. package/modules/hall-ui/public/shell.js +1 -1
  26. package/modules/hall-ui/public/work.js +1 -1
  27. package/modules/lifecycle/conflict-resolve.js +1 -1
  28. package/modules/lifecycle/db-analytics.js +1 -1
  29. package/modules/lifecycle/routes/analytics.js +1 -1
  30. package/modules/onboarding/approval-broadcast.js +1 -1
  31. package/modules/onboarding/onboarding.js +1 -1
  32. package/modules/provisioning/tests/liveness.mjs +1 -1
  33. package/modules/public-landing/public/index.html +1 -1
  34. package/modules/public-landing/public/projects-floor.states.json +2 -2
  35. package/modules/public-landing/public/projects.probes.json +4 -4
  36. package/modules/public-landing/public/projects.states.json +2 -2
  37. package/modules/status-ui/module.json +1 -1
  38. package/modules/status-ui/public/status.js +4 -4
  39. package/modules/status-ui/public/style.css +1 -1
  40. package/modules/ui-design/kit/fixtures/cost-summary.json +1 -1
  41. package/modules/ui-design/kit/fixtures/featured-hub.json +1 -1
  42. package/modules/ui-design/kit/fixtures/featured.json +1 -1
  43. package/modules/ui-design/kit/fixtures/leaderboard.json +1 -1
  44. package/modules/ui-design/kit/fixtures/my-projects.json +1 -1
  45. package/modules/ui-design/kit/fixtures/progress.json +1 -1
  46. package/modules/ui-design/kit/fixtures/recent-shipped.json +1 -1
  47. package/package-lock.json +2 -2
  48. package/package.json +1 -1
  49. package/scripts/cron/style_guide_audit.sh +1 -1
  50. package/scripts/discord/lib.js +1 -1
  51. package/scripts/discord/post.js +1 -1
  52. package/scripts/gds/audit-authorship.sh +1 -1
  53. package/scripts/gds/audit-replay.sh +29 -2
  54. package/scripts/gds/audit-ships.js +1 -1
  55. package/scripts/gds/backfill-sessions.js +2 -2
  56. package/scripts/gds/cf-tunnel.js +4 -4
  57. package/scripts/gds/claude-materialize.js +2 -2
  58. package/scripts/gds/cli-lib.js +6 -6
  59. package/scripts/gds/cutover-codemod.js +1 -1
  60. package/scripts/gds/dev-lib.js +2 -2
  61. package/scripts/gds/diagnose-achievements.js +2 -2
  62. package/scripts/gds/fitness-checks-identity.js +6 -4
  63. package/scripts/gds/gen-diagrams.js +1 -1
  64. package/scripts/gds/leak-scan-allowlist.js +293 -0
  65. package/scripts/gds/learning-capture.js +1 -1
  66. package/scripts/gds/linkify-refs.js +2 -2
  67. package/scripts/gds/local-preview-lib.js +1 -1
  68. package/scripts/gds/mirror-lineage-check.js +1 -1
  69. package/scripts/gds/mirror-redact.js +17 -2
  70. package/scripts/gds/newcomer-floor.templates.json +1 -1
  71. package/scripts/gds/package-core.js +18 -1
  72. package/scripts/gds/paste-token.js +1 -1
  73. package/scripts/gds/provision-units.js +2 -2
  74. package/scripts/gds/publish-manifest.js +15 -0
  75. package/scripts/gds/repo-metrics.js +1 -1
  76. package/scripts/gds/sandbox-stage.js +1 -1
  77. package/scripts/gds/seed-bongos-coreB-tranche1-tasks.js +1 -1
  78. package/scripts/gds/seed-bongos-coreB-tranche2-tasks.js +1 -1
  79. package/scripts/gds/seed-bongos-goal-hierarchy-tasks.js +1 -1
  80. package/scripts/gds/seed-bongos-tasks.js +2 -2
  81. package/scripts/gds/seed-gds-v4-tasks.js +1 -1
  82. package/scripts/gds/seed-medusa-tasks.js +10 -10
  83. package/scripts/gds/seed-module-upstreaming.js +1 -1
  84. package/scripts/gds/seed-productization-tasks.js +6 -6
  85. package/scripts/gds/seed-provisioning-tasks.js +2 -2
  86. package/scripts/gds/seed-staging.sh +19 -6
  87. package/scripts/gds/ship-deploy-target.js +1 -1
  88. package/scripts/gds/ship-flow.js +1 -1
  89. package/scripts/gds/smoke-gds.js +1 -1
  90. package/scripts/status-probe.mjs +2 -2
  91. package/src/bongos/auth-discord.js +2 -2
  92. package/src/bongos/live-channel.js +1 -1
  93. package/src/bongos/pool.js +1 -1
  94. package/src/bongos/routes/auth.js +11 -11
  95. package/src/bongos/routes/security.js +1 -1
  96. package/src/bongos/routes.js +1 -1
  97. package/src/branding.js +1 -1
  98. package/src/devbox-downloads.js +1 -1
  99. package/src/instance-config.js +2 -2
  100. package/src/module-api.js +1 -1
  101. package/src/module-loader/provenance.js +2 -2
  102. package/tests/art_stage.mjs +2 -2
  103. package/tests/auth_anthropic_identity.mjs +1 -1
  104. package/tests/auth_duplicate_cookie.mjs +1 -1
  105. package/tests/auth_error_brand.mjs +1 -1
  106. package/tests/auth_inactive_builder.mjs +1 -1
  107. package/tests/backup_cli.mjs +4 -4
  108. package/tests/bongos_box_connect.mjs +2 -2
  109. package/tests/bongos_downloads.mjs +2 -2
  110. package/tests/bongos_login.mjs +5 -5
  111. package/tests/box_connect_e2e.mjs +2 -2
  112. package/tests/box_dns_repoint.mjs +10 -10
  113. package/tests/box_host_keys.mjs +1 -1
  114. package/tests/box_onboard.mjs +9 -9
  115. package/tests/box_scope_session.mjs +1 -1
  116. package/tests/box_terminal_ssrf.mjs +7 -7
  117. package/tests/boxes.mjs +9 -9
  118. package/tests/branding.mjs +2 -2
  119. package/tests/bump_version.mjs +2 -2
  120. package/tests/cf_tunnel.mjs +40 -40
  121. package/tests/cli_token_reissue.mjs +7 -7
  122. package/tests/cloud_bongos_pack.mjs +1 -1
  123. package/tests/currency_label.mjs +8 -8
  124. package/tests/dev_lib.mjs +4 -4
  125. package/tests/devbox_dmg_backdrop.mjs +1 -1
  126. package/tests/devbox_downloads.mjs +2 -2
  127. package/tests/devbox_icons.mjs +1 -1
  128. package/tests/discord_approvals.mjs +1 -1
  129. package/tests/discord_oauth.mjs +2 -2
  130. package/tests/executed_closure.mjs +6 -1
  131. package/tests/first_admin_bootstrap.mjs +1 -1
  132. package/tests/gate_approvals.mjs +5 -5
  133. package/tests/grade_aggregates_unavailable.mjs +1 -1
  134. package/tests/hook_user_agents.mjs +2 -2
  135. package/tests/init.mjs +6 -6
  136. package/tests/instance_config.mjs +1 -1
  137. package/tests/instance_manifest.mjs +5 -5
  138. package/tests/instance_mismatch_guard.mjs +13 -13
  139. package/tests/leak_scan_allowlist.mjs +94 -0
  140. package/tests/migrate_root_resolution.mjs +4 -4
  141. package/tests/mirror_redact.mjs +28 -4
  142. package/tests/module_catalog.mjs +5 -5
  143. package/tests/module_submissions.mjs +3 -3
  144. package/tests/package_core.mjs +1 -1
  145. package/tests/parallel-load.mjs +6 -6
  146. package/tests/projects_hub.mjs +2 -2
  147. package/tests/provision.mjs +50 -50
  148. package/tests/provisioning_github_app_routes.mjs +1 -1
  149. package/tests/provisioning_onboard_mode.mjs +2 -2
  150. package/tests/publish_reconciler.mjs +4 -4
  151. package/tests/sandbox_stage.mjs +1 -1
  152. package/tests/scrubber_corpus.mjs +3 -3
  153. package/tests/search_isolation.mjs +1 -1
  154. package/tests/session_records.mjs +1 -1
  155. package/tests/ship_card.mjs +6 -6
  156. package/tests/ship_ci_deploy.mjs +1 -1
  157. package/tests/single_host_hall.mjs +9 -9
  158. package/tests/smoke_preflight.mjs +1 -1
  159. package/tests/smoke_target.mjs +1 -1
  160. package/tests/status-probe.mjs +1 -1
  161. package/tests/status_mirror_sync.mjs +1 -1
  162. package/docs/adr/0004-amazonprimea-name-and-trademark-acceptance.md +0 -45
  163. package/docs/design/mocks/_schemes.css +0 -604
  164. package/docs/design/mocks/component-sheet.html +0 -428
  165. package/docs/design/mocks/hall/_tokens.css +0 -370
  166. package/docs/design/mocks/hall/board/v1.html +0 -846
  167. package/docs/design/mocks/hall/board/v2.html +0 -858
  168. package/docs/design/mocks/hall/board/v3.html +0 -884
  169. package/docs/design/mocks/hall/goals/v1.html +0 -1212
  170. package/docs/design/mocks/hall/goals/v2.html +0 -1192
  171. package/docs/design/mocks/hall/goals/v3.html +0 -1205
  172. package/docs/design/mocks/hall/hall-sheet.html +0 -244
  173. package/docs/design/mocks/hall/reading/v1.html +0 -1125
  174. package/docs/design/mocks/hall/reading/v2.html +0 -1177
  175. package/docs/design/mocks/hall/reading/v3.html +0 -1150
  176. package/docs/design/mocks/hall/settings/v1.html +0 -1238
  177. package/docs/design/mocks/hall/settings/v2.html +0 -1235
  178. package/docs/design/mocks/hall/settings/v3.html +0 -1299
  179. package/docs/design/mocks/hall/task/v1.html +0 -633
  180. package/docs/design/mocks/hall/task/v2.html +0 -646
  181. package/docs/design/mocks/hall/task/v3.html +0 -647
  182. package/docs/design/mocks/hub/assets/r3-space-deepfield-half.jpg +0 -0
  183. package/docs/design/mocks/hub/assets/r3-space-deepfield-half.jpg.json +0 -13
  184. package/docs/design/mocks/hub/assets/r3-space-dust-half.jpg +0 -0
  185. package/docs/design/mocks/hub/assets/r3-space-dust-half.jpg.json +0 -13
  186. package/docs/design/mocks/hub/assets/r3-space-nebula-half.jpg +0 -0
  187. package/docs/design/mocks/hub/assets/r3-space-nebula-half.jpg.json +0 -13
  188. package/docs/design/mocks/hub/assets/r3-space-starfield-half.jpg +0 -0
  189. package/docs/design/mocks/hub/assets/r3-space-starfield-half.jpg.json +0 -13
  190. package/docs/design/mocks/hub/hub-sheet.html +0 -192
  191. package/docs/design/mocks/hub/mine.html +0 -465
  192. package/docs/design/mocks/hub/picker.html +0 -421
  193. package/docs/design/mocks/hub/planets.html +0 -356
  194. package/docs/design/mocks/hub/v1.html +0 -1209
  195. package/docs/design/mocks/hub/v2.html +0 -1257
  196. package/docs/design/mocks/hub/v3.html +0 -1496
  197. package/docs/design/mocks/hub/wizard.html +0 -421
  198. package/docs/design/mocks/landing/landing-sheet.html +0 -131
  199. package/docs/design/mocks/landing/v1.html +0 -956
  200. package/docs/design/mocks/landing/v2.html +0 -708
  201. package/docs/design/mocks/landing/v3.html +0 -911
  202. package/docs/design/mocks/landing-page-mock.html +0 -687
  203. package/docs/design/mocks/landing-palettes.html +0 -103
  204. package/docs/design/mocks/projects-hub-mock.html +0 -991
  205. package/docs/design/mocks/projects-hub-variants.html +0 -146
  206. package/docs/design/mocks/projects-page-mock.html +0 -167
  207. package/docs/design/mocks/world/blue-hud/_tokens.css +0 -246
  208. package/docs/design/mocks/world/blue-hud/hall.html +0 -595
  209. package/docs/design/mocks/world/blue-hud/landing.html +0 -424
  210. package/docs/design/mocks/world/blue-hud/status.html +0 -410
  211. package/docs/design/mocks/world/chrome-blobs/_tokens.css +0 -479
  212. package/docs/design/mocks/world/chrome-blobs/hall.html +0 -553
  213. package/docs/design/mocks/world/chrome-blobs/landing-b.html +0 -581
  214. package/docs/design/mocks/world/chrome-blobs/landing.html +0 -328
  215. package/docs/design/mocks/world/chrome-blobs/status.html +0 -416
  216. package/docs/design/mocks/world/natgeo-editorial/_tokens.css +0 -377
  217. package/docs/design/mocks/world/natgeo-editorial/hall.html +0 -649
  218. package/docs/design/mocks/world/natgeo-editorial/landing-b.html +0 -743
  219. package/docs/design/mocks/world/natgeo-editorial/landing.html +0 -475
  220. package/docs/design/mocks/world/natgeo-editorial/status.html +0 -437
  221. package/docs/design/mocks/world/organic-cards/_tokens.css +0 -462
  222. package/docs/design/mocks/world/organic-cards/hall.html +0 -625
  223. package/docs/design/mocks/world/organic-cards/landing-b.html +0 -736
  224. package/docs/design/mocks/world/organic-cards/landing.html +0 -420
  225. package/docs/design/mocks/world/organic-cards/status.html +0 -458
  226. package/docs/design/mocks/world/world-sheet.html +0 -156
@@ -1,410 +0,0 @@
1
- <!doctype html>
2
- <html lang="en">
3
- <head>
4
- <meta charset="utf-8">
5
- <script>
6
- (function(){try{var q=new URLSearchParams(location.search).get('mode');var m=(q==='light'||q==='dark')?q:localStorage.getItem('cb-color-mode');if(m==='light'||m==='dark')document.documentElement.setAttribute('data-mode',m);}catch(e){}})();
7
- </script>
8
- <meta name="viewport" content="width=device-width, initial-scale=1">
9
- <title>Cloud Bongos, the public ledger</title>
10
- <link rel="preconnect" href="https://fonts.googleapis.com">
11
- <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
12
- <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Antonio:wght@400;600;700&family=Azeret+Mono:wght@400;500&family=Barlow:wght@400;500;600&display=swap">
13
- <link rel="stylesheet" href="_tokens.css">
14
- <style>
15
- body { --fi: 26px; overflow-x: hidden; padding: 0 clamp(18px, 5.2vw, 76px); }
16
-
17
- /* ---------- the bezel: sharp registration marks over the whole viewport ---------- */
18
- .bezel { position: fixed; inset: 0; pointer-events: none; z-index: 0; }
19
- .head, .ledger, .foot { position: relative; z-index: 1; }
20
- .pbk { position: absolute; width: 34px; height: 34px; border: 0 solid var(--bracket-page); }
21
- .pbk-tl { top: var(--fi); left: var(--fi); border-top-width: 2px; border-left-width: 2px; }
22
- .pbk-tr { top: var(--fi); right: var(--fi); border-top-width: 2px; border-right-width: 2px; }
23
- .pbk-bl { bottom: var(--fi); left: var(--fi); border-bottom-width: 2px; border-left-width: 2px; }
24
- .pbk-br { bottom: var(--fi); right: var(--fi); border-bottom-width: 2px; border-right-width: 2px; }
25
- .hr { position: absolute; left: calc(var(--fi) + 52px); right: calc(var(--fi) + 52px); height: 0; border-top: var(--line) solid var(--rule); }
26
- .hr-t { top: calc(var(--fi) + 1px); }
27
- .hr-b { bottom: calc(var(--fi) + 1px); }
28
- .mk { position: absolute; color: var(--ink-faint); line-height: 0; }
29
- .mk svg { display: block; width: 17px; height: 17px; }
30
- .mk-t { top: calc(var(--fi) - 7px); left: 50%; margin-left: -8px; background: var(--bg); padding: 0 5px; }
31
- .mk-b { bottom: calc(var(--fi) - 7px); left: 50%; margin-left: -8px; background: var(--bg); padding: 0 5px; }
32
- .mk-l { left: calc(var(--fi) - 8px); top: 50%; margin-top: -8px; }
33
- .mk-r { right: calc(var(--fi) - 8px); top: 50%; margin-top: -8px; }
34
-
35
- /* ---------- title block + section rail ---------- */
36
- .head {
37
- display: grid; grid-template-columns: minmax(0, 580px) minmax(0, 1fr);
38
- gap: 30px; align-items: start; padding: clamp(48px, 7vh, 76px) 0 clamp(26px, 3.4vh, 40px);
39
- }
40
- h1 {
41
- margin: 0; font-family: var(--font-display); font-weight: 700;
42
- font-size: clamp(2.5rem, 6.2vw, 5.6rem); line-height: .88; letter-spacing: .004em;
43
- text-transform: uppercase; color: var(--ink);
44
- }
45
- .sub {
46
- margin: 4px 0 0; font-family: var(--font-display); font-weight: 700;
47
- font-size: clamp(1.55rem, 3.7vw, 3.3rem); line-height: 1; letter-spacing: .006em;
48
- text-transform: uppercase; color: var(--accent-ui);
49
- }
50
- .meta { margin: 14px 0 0; font: 400 13.5px/1 var(--font-body); color: var(--ink-faint); }
51
- .zoomrow { margin: 16px 0 0; display: flex; align-items: center; gap: 9px; }
52
- .zoomrow .cap { font: 600 10.5px/1 var(--font-body); letter-spacing: var(--label-track); text-transform: uppercase; color: var(--ink-faint); }
53
- .zoomrow button {
54
- min-width: 32px; height: 28px; padding: 0 9px; cursor: pointer;
55
- background: none; border: var(--line) solid var(--edge-ui); border-radius: var(--radius-pill);
56
- color: var(--ink-soft); font: 600 12px/1 var(--font-body); letter-spacing: .04em;
57
- }
58
- .zoomrow button:hover { color: var(--accent-text); border-color: var(--accent-text); }
59
-
60
- .srail { display: flex; flex-wrap: nowrap; gap: 2px; justify-content: flex-end; padding-top: 10px; }
61
- .srail a {
62
- display: block; max-width: 106px; padding: 7px 9px 8px; text-decoration: none;
63
- border-bottom: 2px solid transparent; border-radius: var(--radius-sm) var(--radius-sm) 0 0;
64
- color: var(--ink-soft); font: 500 11.2px/1.3 var(--font-body); letter-spacing: .1em; text-transform: uppercase;
65
- }
66
- .srail a:hover { color: var(--accent-text); }
67
- .srail a[aria-current="true"] { color: var(--accent-text); border-bottom-color: var(--accent-ui); }
68
-
69
- /* ---------- ledger grid ---------- */
70
- .ledger {
71
- --zoom: 1;
72
- --t-label: calc(11px * var(--zoom));
73
- --t-sub: calc(12.5px * var(--zoom));
74
- --t-body: calc(13.5px * var(--zoom));
75
- --t-row: calc(14.5px * var(--zoom));
76
- --t-h2: calc(25px * var(--zoom));
77
- --t-val: calc(38px * var(--zoom));
78
- display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 30px 24px;
79
- align-items: start; padding-bottom: 46px;
80
- }
81
- .ledger > section { min-width: 0; }
82
- h2 {
83
- margin: 0 0 5px; font: 700 var(--t-h2)/1.06 var(--font-display);
84
- letter-spacing: .05em; text-transform: uppercase; color: var(--ink);
85
- }
86
- .h2sub { margin: 0 0 15px; font: 400 var(--t-sub)/1.45 var(--font-body); color: var(--ink-faint); max-width: 62ch; }
87
- .card {
88
- background: var(--bg-card); border: var(--line) solid var(--rule); border-radius: var(--radius);
89
- box-shadow: var(--shadow-card);
90
- }
91
- .lbl { font: 600 var(--t-label)/1 var(--font-body); letter-spacing: var(--label-track); text-transform: uppercase; color: var(--ink-soft); }
92
- .tk { position: absolute; top: 10px; right: 12px; color: var(--ink-faint); line-height: 0; }
93
- .tk svg { display: block; width: 13px; height: 13px; }
94
-
95
- /* headline stats */
96
- #headline-tablet { grid-column: 1 / span 12; }
97
- .stats { display: grid; grid-template-columns: 1fr 1fr 1.5fr 1fr; gap: 14px; }
98
- .stat { padding: calc(15px * var(--zoom)) calc(15px * var(--zoom)) calc(16px * var(--zoom)); position: relative; }
99
- .stat .v {
100
- display: block; margin-top: calc(11px * var(--zoom)); font-family: var(--font-display); font-weight: 700;
101
- font-size: var(--t-val); line-height: .96; letter-spacing: .01em; text-transform: uppercase; color: var(--ink);
102
- }
103
- .stat .cap { display: block; margin-top: calc(9px * var(--zoom)); font: 400 calc(11.5px * var(--zoom))/1.35 var(--font-body); color: var(--ink-faint); }
104
- .stat.wide .top { display: flex; align-items: baseline; justify-content: space-between; gap: 10px; }
105
- .stat.wide .pct { font: 600 calc(15px * var(--zoom))/1 var(--font-mono); color: var(--accent-text); font-variant-numeric: tabular-nums; }
106
- .bar { height: 7px; border-radius: var(--radius-pill); background: var(--bg-deep); overflow: hidden; border: var(--line) solid var(--rule-soft); }
107
- .bar > i { display: block; height: 100%; background: var(--accent-ui); border-radius: var(--radius-pill); }
108
- .stat.wide .bar { margin-top: calc(16px * var(--zoom)); }
109
-
110
- /* the watch */
111
- #the-watch { grid-column: 1 / span 12; }
112
- .watch { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; }
113
- .pillar { display: flex; align-items: center; gap: 12px; padding: calc(14px * var(--zoom)) calc(16px * var(--zoom)); }
114
- .pillar .nm { font: 600 var(--t-row)/1 var(--font-body); letter-spacing: .1em; text-transform: uppercase; color: var(--ink); }
115
- .pillar .sp { flex: 1 1 auto; }
116
- .pillar .up { font: 400 calc(12.5px * var(--zoom))/1 var(--font-mono); color: var(--ink-faint); font-variant-numeric: tabular-nums; }
117
- .led { width: 13px; height: 13px; border-radius: 50%; background: var(--accent-ui); box-shadow: 0 0 11px var(--halo-bloom); flex: 0 0 auto; }
118
- .led.dim { background: none; border: var(--line) solid var(--edge-ui); box-shadow: none; }
119
-
120
- /* architects */
121
- #architects { grid-column: 1 / span 4; }
122
- .arch { padding: calc(6px * var(--zoom)) 0; position: relative; }
123
- .arch ol { margin: 0; padding: 0; list-style: none; }
124
- .arch li {
125
- display: flex; align-items: center; gap: 10px;
126
- padding: calc(9px * var(--zoom)) calc(15px * var(--zoom));
127
- border-top: var(--line) solid var(--rule-soft);
128
- }
129
- .arch li:first-child { border-top: 0; }
130
- .arch .n { width: calc(13px * var(--zoom)); font: 400 calc(12px * var(--zoom))/1 var(--font-mono); color: var(--ink-faint); font-variant-numeric: tabular-nums; }
131
- .arch .who { display: block; font: 500 var(--t-body)/1.2 var(--font-body); color: var(--ink); }
132
- .arch .rk { display: block; margin-top: 2px; font: 600 calc(10px * var(--zoom))/1 var(--font-body); letter-spacing: var(--label-track); text-transform: uppercase; color: var(--ink-faint); }
133
- .arch .cr { margin-left: auto; font: 500 var(--t-body)/1 var(--font-mono); color: var(--accent-text); font-variant-numeric: tabular-nums; }
134
- .arch svg { width: 17px; height: 17px; color: var(--ink-faint); flex: 0 0 auto; }
135
-
136
- /* works in progress */
137
- #works-in-progress { grid-column: 5 / span 4; }
138
- .wip { padding: calc(15px * var(--zoom)); }
139
- .wip + .wip { margin-top: 12px; }
140
- .wip .top { display: flex; align-items: baseline; justify-content: space-between; gap: 10px; }
141
- .wip .nm { font: 600 var(--t-body)/1.25 var(--font-body); color: var(--ink); }
142
- .wip .pct { font: 600 calc(13px * var(--zoom))/1 var(--font-mono); color: var(--accent-text); font-variant-numeric: tabular-nums; }
143
- .wip .bar { margin-top: calc(11px * var(--zoom)); }
144
- .wip .sh { margin: calc(9px * var(--zoom)) 0 0; font: 400 calc(11.5px * var(--zoom))/1 var(--font-mono); color: var(--ink-faint); font-variant-numeric: tabular-nums; }
145
- .steps { display: flex; gap: 6px; margin-top: calc(11px * var(--zoom)); }
146
- .steps i { flex: 1 1 auto; height: 4px; background: var(--bg-deep); border: var(--line) solid var(--rule-soft); }
147
- .steps i.met { background: var(--accent-ui); border-color: var(--accent-ui); }
148
-
149
- /* the world */
150
- #the-world { grid-column: 9 / span 4; }
151
- .world { margin: 0; }
152
- .world-frame {
153
- position: relative; overflow: hidden; border-radius: var(--radius);
154
- background: var(--world-ground); border: var(--line) solid var(--rule); aspect-ratio: 1 / 0.8;
155
- }
156
- .world-plate {
157
- position: absolute; inset: 0;
158
- background: url('../../../../../.impeccable/mocks/world-assets/hud-sphere.jpg') no-repeat center / auto 40%;
159
- mix-blend-mode: screen; opacity: .95;
160
- }
161
- .world-ring {
162
- position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%);
163
- height: 78%; width: auto; max-width: 78%; aspect-ratio: 1 / 1; border-radius: 50%; border: 2px solid var(--halo);
164
- box-shadow: 0 0 30px var(--halo-bloom), inset 0 0 26px var(--halo-bloom);
165
- }
166
- .world figcaption { margin-top: 10px; font: 400 var(--t-sub)/1.4 var(--font-body); color: var(--ink-faint); }
167
-
168
- /* the foundry */
169
- #the-foundry { grid-column: 1 / span 6; }
170
- .foundry { padding: calc(16px * var(--zoom)); }
171
- .weeks { display: flex; align-items: flex-end; gap: 8px; height: calc(122px * var(--zoom)); }
172
- /* the accent lights only the live week; the closed weeks stay neutral */
173
- .weeks i { flex: 1 1 0; background: var(--bar-quiet); border-radius: 2px 2px 0 0; min-width: 6px; }
174
- .weeks i.live { background: var(--accent-ui); }
175
- .foundry .cap { margin: calc(11px * var(--zoom)) 0 0; font: 400 calc(11.5px * var(--zoom))/1 var(--font-body); color: var(--ink-faint); }
176
-
177
- /* the treasury */
178
- #the-treasury { grid-column: 7 / span 6; }
179
- .treas { padding: calc(16px * var(--zoom)); }
180
- .treas .heads { display: flex; gap: 30px; flex-wrap: wrap; }
181
- .treas .fig { font-family: var(--font-display); font-weight: 700; font-size: calc(30px * var(--zoom)); line-height: 1; letter-spacing: .01em; color: var(--ink); }
182
- .treas .figc { display: block; margin-top: calc(6px * var(--zoom)); font: 400 calc(11.5px * var(--zoom))/1 var(--font-body); color: var(--ink-faint); }
183
- .cats { margin: calc(16px * var(--zoom)) 0 0; padding: 0; list-style: none; display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 10px; }
184
- .cats li { border-top: var(--line) solid var(--rule-soft); padding-top: calc(9px * var(--zoom)); }
185
- .cats .k { display: block; font: 600 calc(10px * var(--zoom))/1 var(--font-body); letter-spacing: var(--label-track); text-transform: uppercase; color: var(--ink-faint); }
186
- .cats .v { display: block; margin-top: calc(6px * var(--zoom)); font: 500 var(--t-body)/1 var(--font-mono); color: var(--ink); font-variant-numeric: tabular-nums; }
187
-
188
- /* lately inscribed */
189
- #lately-inscribed { grid-column: 1 / span 12; }
190
- .lately ul { margin: 0; padding: 0; list-style: none; }
191
- .lately li {
192
- display: flex; align-items: center; gap: 16px;
193
- padding: calc(12px * var(--zoom)) calc(16px * var(--zoom));
194
- border-top: var(--line) solid var(--rule-soft);
195
- }
196
- .lately li:first-child { border-top: 0; }
197
- .lately .id { font: 500 var(--t-body)/1 var(--font-mono); color: var(--accent-text); font-variant-numeric: tabular-nums; flex: 0 0 auto; }
198
- .lately .ttl { font: 400 var(--t-row)/1.3 var(--font-body); color: var(--ink); flex: 1 1 auto; min-width: 0; }
199
- .lately .st { display: inline-flex; align-items: center; gap: 7px; font: 600 calc(10.5px * var(--zoom))/1 var(--font-body); letter-spacing: var(--label-track); text-transform: uppercase; color: var(--ink-soft); flex: 0 0 auto; }
200
- .lately .st .led { width: 9px; height: 9px; }
201
- .lately .when { font: 400 calc(12px * var(--zoom))/1 var(--font-body); color: var(--ink-faint); flex: 0 0 auto; width: calc(74px * var(--zoom)); text-align: right; }
202
-
203
- .foot { padding: 22px 0 34px; border-top: var(--line) solid var(--rule-soft); }
204
- .foot p { margin: 0; font: 400 13.5px/1.4 var(--font-body); color: var(--ink-soft); }
205
-
206
- /* ---------- 390 ---------- */
207
- @media (max-width: 1080px) {
208
- #headline-tablet, #the-watch, #architects, #works-in-progress, #the-world,
209
- #the-foundry, #the-treasury, #lately-inscribed { grid-column: 1 / span 12; grid-row: auto; }
210
- .watch { grid-template-columns: 1fr 1fr; }
211
- }
212
- @media (max-width: 720px) {
213
- body { --fi: 12px; }
214
- .hr { left: calc(var(--fi) + 34px); right: calc(var(--fi) + 34px); }
215
- .pbk { width: 24px; height: 24px; }
216
- .mk-l, .mk-r { display: none; }
217
- .head { grid-template-columns: 1fr; gap: 20px; padding-top: 54px; }
218
- .srail { justify-content: flex-start; overflow-x: auto; gap: 0; padding-bottom: 4px; scrollbar-width: thin; scrollbar-color: var(--scroll-thumb) var(--scroll-track); }
219
- .srail a { max-width: none; white-space: nowrap; }
220
- .stats { grid-template-columns: 1fr 1fr; }
221
- .watch { grid-template-columns: 1fr; }
222
- .cats { grid-template-columns: 1fr 1fr; }
223
- .lately li { flex-wrap: wrap; gap: 8px 12px; }
224
- .lately .ttl { flex: 1 1 100%; order: 3; }
225
- .lately .when { margin-left: auto; }
226
- }
227
- .srail::-webkit-scrollbar { height: 8px; }
228
- .srail::-webkit-scrollbar-track { background: var(--scroll-track); }
229
- .srail::-webkit-scrollbar-thumb { background: var(--scroll-thumb); border-radius: var(--radius-pill); }
230
- </style>
231
- </head>
232
- <body>
233
- <div class="bezel" aria-hidden="true">
234
- <span class="pbk pbk-tl"></span><span class="pbk pbk-tr"></span>
235
- <span class="pbk pbk-bl"></span><span class="pbk pbk-br"></span>
236
- <span class="hr hr-t"></span><span class="hr hr-b"></span>
237
- <span class="mk mk-t"><svg viewBox="0 0 17 17" fill="none" stroke="currentColor" stroke-width="1"><circle cx="8.5" cy="8.5" r="4.6"/><path d="M8.5 0v3M8.5 14v3M0 8.5h3M14 8.5h3"/></svg></span>
238
- <span class="mk mk-b"><svg viewBox="0 0 17 17" fill="none" stroke="currentColor" stroke-width="1"><circle cx="8.5" cy="8.5" r="4.6"/><path d="M8.5 0v3M8.5 14v3M0 8.5h3M14 8.5h3"/></svg></span>
239
- <span class="mk mk-l"><svg viewBox="0 0 17 17" fill="none" stroke="currentColor" stroke-width="1"><path d="M8.5 0v17M0 8.5h17"/></svg></span>
240
- <span class="mk mk-r"><svg viewBox="0 0 17 17" fill="none" stroke="currentColor" stroke-width="1"><path d="M8.5 0v17M0 8.5h17"/></svg></span>
241
- </div>
242
-
243
- <header class="head">
244
- <div>
245
- <h1>Cloud Bongos</h1>
246
- <p class="sub">the public ledger</p>
247
- <p class="meta">updated 2 minutes ago</p>
248
- <div class="zoomrow" id="ledger-zoom">
249
- <span class="cap">Text size</span>
250
- <button type="button" id="zoom-down" aria-label="Smaller text">A-</button>
251
- <button type="button" id="zoom-up" aria-label="Larger text">A+</button>
252
- </div>
253
- </div>
254
- <nav class="srail" aria-label="Sections">
255
- <a href="#the-watch" aria-current="true">The Watch</a>
256
- <a href="#architects">Architects</a>
257
- <a href="#the-foundry">The Foundry</a>
258
- <a href="#works-in-progress">Works in Progress</a>
259
- <a href="#the-treasury">The Treasury</a>
260
- <a href="#lately-inscribed">Lately Inscribed</a>
261
- <a href="#the-world">The World</a>
262
- </nav>
263
- </header>
264
-
265
- <main class="ledger">
266
- <section id="headline-tablet">
267
- <h2 class="sr-only">The City At A Glance</h2>
268
- <div class="stats">
269
- <div class="card stat">
270
- <span class="lbl">Standing</span>
271
- <span class="v">holds</span>
272
- <span class="cap">3 of 3 pillars answering</span>
273
- </div>
274
- <div class="card stat">
275
- <span class="lbl">Shipped</span>
276
- <span class="v num">1,107</span>
277
- <span class="cap">works shipped on V1 of 1,561</span>
278
- </div>
279
- <div class="card stat wide">
280
- <div class="top"><span class="lbl">Treasury</span><span class="pct">74%</span><!-- sample --></div>
281
- <div class="bar"><i style="width:74%"></i></div><!-- sample -->
282
- <span class="cap">of the year's purse spent</span>
283
- </div>
284
- <div class="card stat">
285
- <span class="lbl">Grade</span>
286
- <span class="v">A</span><!-- sample -->
287
- <span class="cap">mean grade, last 90 days</span>
288
- </div>
289
- </div>
290
- </section>
291
-
292
- <section id="the-watch">
293
- <h2>The Watch</h2>
294
- <p class="h2sub">The standing of each pillar, whether it holds or has fallen.</p>
295
- <div class="watch">
296
- <div class="card pillar"><span class="nm">Site</span><span class="sp"></span><span class="up">99.9%</span><!-- sample --><span class="led"></span><span class="sr-only">holds</span></div>
297
- <div class="card pillar"><span class="nm">Hall</span><span class="sp"></span><span class="up">99.9%</span><!-- sample --><span class="led"></span><span class="sr-only">holds</span></div>
298
- <div class="card pillar"><span class="nm">API</span><span class="sp"></span><span class="up">99.9%</span><!-- sample --><span class="led"></span><span class="sr-only">holds</span></div>
299
- <div class="card pillar"><span class="nm">Database</span><span class="sp"></span><span class="up">unknown</span><span class="led dim"></span></div>
300
- </div>
301
- </section>
302
-
303
- <section id="architects">
304
- <h2>Architects of Cloud Bongos</h2>
305
- <p class="h2sub">Citizens who have set the most stone.</p>
306
- <div class="card arch">
307
- <ol>
308
- <li><span class="n num">1</span><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" aria-hidden="true"><circle cx="12" cy="8" r="4"/><path d="M4.6 20.4a7.4 7.4 0 0 1 14.8 0"/></svg><span><span class="who">lars589</span><span class="rk">Owner</span></span><span class="cr num">44,562</span></li>
309
- <li><span class="n num">2</span><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" aria-hidden="true"><circle cx="12" cy="8" r="4"/><path d="M4.6 20.4a7.4 7.4 0 0 1 14.8 0"/></svg><span><span class="who">Percy Jackson</span><span class="rk">Owner</span></span><span class="cr num">13,358</span></li>
310
- <li><span class="n num">3</span><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" aria-hidden="true"><circle cx="12" cy="8" r="4"/><path d="M4.6 20.4a7.4 7.4 0 0 1 14.8 0"/></svg><span><span class="who">IAMMASTERQUA</span><span class="rk">Owner</span></span><span class="cr num">3,316</span></li>
311
- <li><span class="n num">4</span><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" aria-hidden="true"><circle cx="12" cy="8" r="4"/><path d="M4.6 20.4a7.4 7.4 0 0 1 14.8 0"/></svg><span><span class="who">scootermack</span><span class="rk">Owner</span></span><span class="cr num">2,440</span></li>
312
- <li><span class="n num">5</span><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" aria-hidden="true"><circle cx="12" cy="8" r="4"/><path d="M4.6 20.4a7.4 7.4 0 0 1 14.8 0"/></svg><span><span class="who">LarsCode</span><span class="rk">Newcomer</span></span><span class="cr num">44</span></li>
313
- <li><span class="n num">6</span><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" aria-hidden="true"><circle cx="12" cy="8" r="4"/><path d="M4.6 20.4a7.4 7.4 0 0 1 14.8 0"/></svg><span><span class="who">kingaonline</span><span class="rk">Contributor</span></span><span class="cr num">36</span></li>
314
- </ol>
315
- </div>
316
- </section>
317
-
318
- <section id="works-in-progress">
319
- <h2>Works in Progress</h2>
320
- <p class="h2sub">The endeavours now underway in the city.</p>
321
- <div class="card wip">
322
- <div class="top"><span class="nm">Cloud Bongos, platform (V1)</span><span class="pct">71%</span></div>
323
- <div class="bar"><i style="width:71%"></i></div>
324
- <p class="sh">1,107 of 1,561 shipped</p>
325
- <div class="steps" role="img" aria-label="3 of 5 criteria met"><!-- sample --><i class="met"></i><i class="met"></i><i class="met"></i><i></i><i></i></div>
326
- </div>
327
- <div class="card wip">
328
- <div class="top"><span class="nm">Cloud Bongos, Customer-0 dogfood</span><span class="pct">66%</span></div>
329
- <div class="bar"><i style="width:66%"></i></div>
330
- <p class="sh">58 of 88 shipped</p>
331
- <div class="steps" role="img" aria-label="2 of 5 criteria met"><!-- sample --><i class="met"></i><i class="met"></i><i></i><i></i><i></i></div>
332
- </div>
333
- </section>
334
-
335
- <section id="the-world">
336
- <h2>The World</h2>
337
- <p class="h2sub">A portrait of Cloud Bongos as she stands today.</p>
338
- <figure class="world">
339
- <div class="world-frame">
340
- <div class="world-plate"></div>
341
- <div class="world-ring"></div>
342
- </div>
343
- <figcaption>rendered from the city's own stones</figcaption>
344
- </figure>
345
- </section>
346
-
347
- <section id="the-foundry">
348
- <h2>The Foundry</h2>
349
- <p class="h2sub">How the city's craft is changing, works shipped and time per work over the last ninety days.</p>
350
- <div class="card foundry">
351
- <div class="weeks" role="img" aria-label="Thirteen weeks of works shipped"><!-- sample -->
352
- <i style="height:38%"></i><i style="height:52%"></i><i style="height:44%"></i><i style="height:61%"></i>
353
- <i style="height:57%"></i><i style="height:72%"></i><i style="height:66%"></i><i style="height:81%"></i>
354
- <i style="height:74%"></i><i style="height:88%"></i><i style="height:79%"></i><i style="height:94%"></i>
355
- <i class="live" style="height:86%"></i>
356
- </div>
357
- <p class="cap">sample data</p>
358
- </div>
359
- </section>
360
-
361
- <section id="the-treasury">
362
- <h2>The Treasury</h2>
363
- <p class="h2sub">Credits spent, against the value wrought.</p>
364
- <div class="card treas">
365
- <div class="heads">
366
- <div><span class="fig num">$48,244</span><span class="figc">spent</span></div>
367
- <div><span class="fig num">69,751</span><span class="figc">credits of value</span></div>
368
- </div>
369
- <ul class="cats">
370
- <li><span class="k">api</span><span class="v">$47,880</span></li>
371
- <li><span class="k">infra</span><span class="v">$261</span></li>
372
- <li><span class="k">compute</span><span class="v">$84</span></li>
373
- <li><span class="k">domain</span><span class="v">$11</span></li>
374
- <li><span class="k">art</span><span class="v">$8</span></li>
375
- </ul>
376
- </div>
377
- </section>
378
-
379
- <section id="lately-inscribed">
380
- <h2>Lately Inscribed</h2>
381
- <p class="h2sub">Newest entries set down upon the ledger.</p>
382
- <div class="card lately">
383
- <ul>
384
- <li><span class="id">1002792</span><span class="ttl">A task's title can now be corrected after it's created</span><span class="st"><span class="led"></span>shipped</span><span class="when">today</span></li>
385
- <li><span class="id">1003239</span><span class="ttl">A same-tab GitHub return stays put</span><span class="st"><span class="led"></span>shipped</span><span class="when">today</span></li>
386
- <li><span class="id">1002889</span><span class="ttl">The wizard remembers a half-finished project</span><span class="st"><span class="led"></span>shipped</span><span class="when">yesterday</span></li>
387
- <li><span class="id">1003245</span><span class="ttl">The copy desk lands</span><span class="st"><span class="led"></span>shipped</span><span class="when">yesterday</span></li>
388
- </ul>
389
- </div>
390
- </section>
391
- </main>
392
-
393
- <footer class="foot">
394
- <p>Built by agents, on Cloud Bongos.</p>
395
- </footer>
396
-
397
- <script>
398
- (function () {
399
- var ledger = document.querySelector('.ledger');
400
- var z = 1;
401
- function set(next) {
402
- z = Math.min(1.4, Math.max(0.85, Math.round(next * 100) / 100));
403
- ledger.style.setProperty('--zoom', String(z));
404
- }
405
- document.getElementById('zoom-up').addEventListener('click', function () { set(z + 0.1); });
406
- document.getElementById('zoom-down').addEventListener('click', function () { set(z - 0.1); });
407
- })();
408
- </script>
409
- </body>
410
- </html>