@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.
- package/.bongos-core.json +176 -491
- package/.devcontainer/Dockerfile +1 -1
- package/.devcontainer/devcontainer.json +2 -2
- package/.devcontainer/healthcheck.sh +1 -1
- package/.devcontainer/init-firewall.sh +1 -1
- package/.devcontainer/post-create.sh +2 -2
- package/.env.local.example +1 -1
- package/Dockerfile +1 -1
- package/docs/copy-inventory.md +1 -1
- package/docs/copy-registry.json +9 -9
- package/docs/module-api-changelog.md +2 -0
- package/docs/recipes/devbox-app-release.md +4 -4
- package/modules/dev-box/app/scripts/dmgbuild-settings.py +5 -5
- package/modules/dev-box/app/scripts/gen-brand.js +1 -1
- package/modules/dev-box/app/src/brand.js +1 -1
- package/modules/dev-box/app/test/unit.mjs +16 -16
- package/modules/dev-box/box-access.js +1 -1
- package/modules/dev-box/routes/box.js +1 -1
- package/modules/discord/discord-approvals.js +1 -1
- package/modules/grading/grader-model.js +1 -1
- package/modules/grading/grader-prompt.js +1 -1
- package/modules/grading/grader-workers/quality.js +1 -1
- package/modules/hall-ui/module.json +1 -1
- package/modules/hall-ui/public/brand-apply.js +1 -1
- package/modules/hall-ui/public/shell.js +1 -1
- package/modules/hall-ui/public/work.js +1 -1
- package/modules/lifecycle/conflict-resolve.js +1 -1
- package/modules/lifecycle/db-analytics.js +1 -1
- package/modules/lifecycle/routes/analytics.js +1 -1
- package/modules/onboarding/approval-broadcast.js +1 -1
- package/modules/onboarding/onboarding.js +1 -1
- package/modules/provisioning/tests/liveness.mjs +1 -1
- package/modules/public-landing/public/index.html +1 -1
- package/modules/public-landing/public/projects-floor.states.json +2 -2
- package/modules/public-landing/public/projects.probes.json +4 -4
- package/modules/public-landing/public/projects.states.json +2 -2
- package/modules/status-ui/module.json +1 -1
- package/modules/status-ui/public/status.js +4 -4
- package/modules/status-ui/public/style.css +1 -1
- package/modules/ui-design/kit/fixtures/cost-summary.json +1 -1
- package/modules/ui-design/kit/fixtures/featured-hub.json +1 -1
- package/modules/ui-design/kit/fixtures/featured.json +1 -1
- package/modules/ui-design/kit/fixtures/leaderboard.json +1 -1
- package/modules/ui-design/kit/fixtures/my-projects.json +1 -1
- package/modules/ui-design/kit/fixtures/progress.json +1 -1
- package/modules/ui-design/kit/fixtures/recent-shipped.json +1 -1
- package/package-lock.json +2 -2
- package/package.json +1 -1
- package/scripts/cron/style_guide_audit.sh +1 -1
- package/scripts/discord/lib.js +1 -1
- package/scripts/discord/post.js +1 -1
- package/scripts/gds/audit-authorship.sh +1 -1
- package/scripts/gds/audit-replay.sh +29 -2
- package/scripts/gds/audit-ships.js +1 -1
- package/scripts/gds/backfill-sessions.js +2 -2
- package/scripts/gds/cf-tunnel.js +4 -4
- package/scripts/gds/claude-materialize.js +2 -2
- package/scripts/gds/cli-lib.js +6 -6
- package/scripts/gds/cutover-codemod.js +1 -1
- package/scripts/gds/dev-lib.js +2 -2
- package/scripts/gds/diagnose-achievements.js +2 -2
- package/scripts/gds/fitness-checks-identity.js +6 -4
- package/scripts/gds/gen-diagrams.js +1 -1
- package/scripts/gds/leak-scan-allowlist.js +293 -0
- package/scripts/gds/learning-capture.js +1 -1
- package/scripts/gds/linkify-refs.js +2 -2
- package/scripts/gds/local-preview-lib.js +1 -1
- package/scripts/gds/mirror-lineage-check.js +1 -1
- package/scripts/gds/mirror-redact.js +17 -2
- package/scripts/gds/newcomer-floor.templates.json +1 -1
- package/scripts/gds/package-core.js +18 -1
- package/scripts/gds/paste-token.js +1 -1
- package/scripts/gds/provision-units.js +2 -2
- package/scripts/gds/publish-manifest.js +15 -0
- package/scripts/gds/repo-metrics.js +1 -1
- package/scripts/gds/sandbox-stage.js +1 -1
- package/scripts/gds/seed-bongos-coreB-tranche1-tasks.js +1 -1
- package/scripts/gds/seed-bongos-coreB-tranche2-tasks.js +1 -1
- package/scripts/gds/seed-bongos-goal-hierarchy-tasks.js +1 -1
- package/scripts/gds/seed-bongos-tasks.js +2 -2
- package/scripts/gds/seed-gds-v4-tasks.js +1 -1
- package/scripts/gds/seed-medusa-tasks.js +10 -10
- package/scripts/gds/seed-module-upstreaming.js +1 -1
- package/scripts/gds/seed-productization-tasks.js +6 -6
- package/scripts/gds/seed-provisioning-tasks.js +2 -2
- package/scripts/gds/seed-staging.sh +19 -6
- package/scripts/gds/ship-deploy-target.js +1 -1
- package/scripts/gds/ship-flow.js +1 -1
- package/scripts/gds/smoke-gds.js +1 -1
- package/scripts/status-probe.mjs +2 -2
- package/src/bongos/auth-discord.js +2 -2
- package/src/bongos/live-channel.js +1 -1
- package/src/bongos/pool.js +1 -1
- package/src/bongos/routes/auth.js +11 -11
- package/src/bongos/routes/security.js +1 -1
- package/src/bongos/routes.js +1 -1
- package/src/branding.js +1 -1
- package/src/devbox-downloads.js +1 -1
- package/src/instance-config.js +2 -2
- package/src/module-api.js +1 -1
- package/src/module-loader/provenance.js +2 -2
- package/tests/art_stage.mjs +2 -2
- package/tests/auth_anthropic_identity.mjs +1 -1
- package/tests/auth_duplicate_cookie.mjs +1 -1
- package/tests/auth_error_brand.mjs +1 -1
- package/tests/auth_inactive_builder.mjs +1 -1
- package/tests/backup_cli.mjs +4 -4
- package/tests/bongos_box_connect.mjs +2 -2
- package/tests/bongos_downloads.mjs +2 -2
- package/tests/bongos_login.mjs +5 -5
- package/tests/box_connect_e2e.mjs +2 -2
- package/tests/box_dns_repoint.mjs +10 -10
- package/tests/box_host_keys.mjs +1 -1
- package/tests/box_onboard.mjs +9 -9
- package/tests/box_scope_session.mjs +1 -1
- package/tests/box_terminal_ssrf.mjs +7 -7
- package/tests/boxes.mjs +9 -9
- package/tests/branding.mjs +2 -2
- package/tests/bump_version.mjs +2 -2
- package/tests/cf_tunnel.mjs +40 -40
- package/tests/cli_token_reissue.mjs +7 -7
- package/tests/cloud_bongos_pack.mjs +1 -1
- package/tests/currency_label.mjs +8 -8
- package/tests/dev_lib.mjs +4 -4
- package/tests/devbox_dmg_backdrop.mjs +1 -1
- package/tests/devbox_downloads.mjs +2 -2
- package/tests/devbox_icons.mjs +1 -1
- package/tests/discord_approvals.mjs +1 -1
- package/tests/discord_oauth.mjs +2 -2
- package/tests/executed_closure.mjs +6 -1
- package/tests/first_admin_bootstrap.mjs +1 -1
- package/tests/gate_approvals.mjs +5 -5
- package/tests/grade_aggregates_unavailable.mjs +1 -1
- package/tests/hook_user_agents.mjs +2 -2
- package/tests/init.mjs +6 -6
- package/tests/instance_config.mjs +1 -1
- package/tests/instance_manifest.mjs +5 -5
- package/tests/instance_mismatch_guard.mjs +13 -13
- package/tests/leak_scan_allowlist.mjs +94 -0
- package/tests/migrate_root_resolution.mjs +4 -4
- package/tests/mirror_redact.mjs +28 -4
- package/tests/module_catalog.mjs +5 -5
- package/tests/module_submissions.mjs +3 -3
- package/tests/package_core.mjs +1 -1
- package/tests/parallel-load.mjs +6 -6
- package/tests/projects_hub.mjs +2 -2
- package/tests/provision.mjs +50 -50
- package/tests/provisioning_github_app_routes.mjs +1 -1
- package/tests/provisioning_onboard_mode.mjs +2 -2
- package/tests/publish_reconciler.mjs +4 -4
- package/tests/sandbox_stage.mjs +1 -1
- package/tests/scrubber_corpus.mjs +3 -3
- package/tests/search_isolation.mjs +1 -1
- package/tests/session_records.mjs +1 -1
- package/tests/ship_card.mjs +6 -6
- package/tests/ship_ci_deploy.mjs +1 -1
- package/tests/single_host_hall.mjs +9 -9
- package/tests/smoke_preflight.mjs +1 -1
- package/tests/smoke_target.mjs +1 -1
- package/tests/status-probe.mjs +1 -1
- package/tests/status_mirror_sync.mjs +1 -1
- package/docs/adr/0004-amazonprimea-name-and-trademark-acceptance.md +0 -45
- package/docs/design/mocks/_schemes.css +0 -604
- package/docs/design/mocks/component-sheet.html +0 -428
- package/docs/design/mocks/hall/_tokens.css +0 -370
- package/docs/design/mocks/hall/board/v1.html +0 -846
- package/docs/design/mocks/hall/board/v2.html +0 -858
- package/docs/design/mocks/hall/board/v3.html +0 -884
- package/docs/design/mocks/hall/goals/v1.html +0 -1212
- package/docs/design/mocks/hall/goals/v2.html +0 -1192
- package/docs/design/mocks/hall/goals/v3.html +0 -1205
- package/docs/design/mocks/hall/hall-sheet.html +0 -244
- package/docs/design/mocks/hall/reading/v1.html +0 -1125
- package/docs/design/mocks/hall/reading/v2.html +0 -1177
- package/docs/design/mocks/hall/reading/v3.html +0 -1150
- package/docs/design/mocks/hall/settings/v1.html +0 -1238
- package/docs/design/mocks/hall/settings/v2.html +0 -1235
- package/docs/design/mocks/hall/settings/v3.html +0 -1299
- package/docs/design/mocks/hall/task/v1.html +0 -633
- package/docs/design/mocks/hall/task/v2.html +0 -646
- package/docs/design/mocks/hall/task/v3.html +0 -647
- package/docs/design/mocks/hub/assets/r3-space-deepfield-half.jpg +0 -0
- package/docs/design/mocks/hub/assets/r3-space-deepfield-half.jpg.json +0 -13
- package/docs/design/mocks/hub/assets/r3-space-dust-half.jpg +0 -0
- package/docs/design/mocks/hub/assets/r3-space-dust-half.jpg.json +0 -13
- package/docs/design/mocks/hub/assets/r3-space-nebula-half.jpg +0 -0
- package/docs/design/mocks/hub/assets/r3-space-nebula-half.jpg.json +0 -13
- package/docs/design/mocks/hub/assets/r3-space-starfield-half.jpg +0 -0
- package/docs/design/mocks/hub/assets/r3-space-starfield-half.jpg.json +0 -13
- package/docs/design/mocks/hub/hub-sheet.html +0 -192
- package/docs/design/mocks/hub/mine.html +0 -465
- package/docs/design/mocks/hub/picker.html +0 -421
- package/docs/design/mocks/hub/planets.html +0 -356
- package/docs/design/mocks/hub/v1.html +0 -1209
- package/docs/design/mocks/hub/v2.html +0 -1257
- package/docs/design/mocks/hub/v3.html +0 -1496
- package/docs/design/mocks/hub/wizard.html +0 -421
- package/docs/design/mocks/landing/landing-sheet.html +0 -131
- package/docs/design/mocks/landing/v1.html +0 -956
- package/docs/design/mocks/landing/v2.html +0 -708
- package/docs/design/mocks/landing/v3.html +0 -911
- package/docs/design/mocks/landing-page-mock.html +0 -687
- package/docs/design/mocks/landing-palettes.html +0 -103
- package/docs/design/mocks/projects-hub-mock.html +0 -991
- package/docs/design/mocks/projects-hub-variants.html +0 -146
- package/docs/design/mocks/projects-page-mock.html +0 -167
- package/docs/design/mocks/world/blue-hud/_tokens.css +0 -246
- package/docs/design/mocks/world/blue-hud/hall.html +0 -595
- package/docs/design/mocks/world/blue-hud/landing.html +0 -424
- package/docs/design/mocks/world/blue-hud/status.html +0 -410
- package/docs/design/mocks/world/chrome-blobs/_tokens.css +0 -479
- package/docs/design/mocks/world/chrome-blobs/hall.html +0 -553
- package/docs/design/mocks/world/chrome-blobs/landing-b.html +0 -581
- package/docs/design/mocks/world/chrome-blobs/landing.html +0 -328
- package/docs/design/mocks/world/chrome-blobs/status.html +0 -416
- package/docs/design/mocks/world/natgeo-editorial/_tokens.css +0 -377
- package/docs/design/mocks/world/natgeo-editorial/hall.html +0 -649
- package/docs/design/mocks/world/natgeo-editorial/landing-b.html +0 -743
- package/docs/design/mocks/world/natgeo-editorial/landing.html +0 -475
- package/docs/design/mocks/world/natgeo-editorial/status.html +0 -437
- package/docs/design/mocks/world/organic-cards/_tokens.css +0 -462
- package/docs/design/mocks/world/organic-cards/hall.html +0 -625
- package/docs/design/mocks/world/organic-cards/landing-b.html +0 -736
- package/docs/design/mocks/world/organic-cards/landing.html +0 -420
- package/docs/design/mocks/world/organic-cards/status.html +0 -458
- package/docs/design/mocks/world/world-sheet.html +0 -156
|
@@ -1,437 +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=Hanken+Grotesk:wght@300;400;500;700&family=JetBrains+Mono:wght@400&display=swap">
|
|
13
|
-
<link rel="stylesheet" href="_tokens.css">
|
|
14
|
-
<style>
|
|
15
|
-
*{box-sizing:border-box}
|
|
16
|
-
html,body{margin:0;padding:0}
|
|
17
|
-
body{
|
|
18
|
-
background:var(--bg); color:var(--ink);
|
|
19
|
-
font-family:var(--font-body); font-weight:400;
|
|
20
|
-
font-variant-numeric:tabular-nums;
|
|
21
|
-
-webkit-font-smoothing:antialiased;
|
|
22
|
-
min-height:100dvh;
|
|
23
|
-
}
|
|
24
|
-
::selection{background:var(--sel-bg); color:var(--sel-ink)}
|
|
25
|
-
a{color:inherit}
|
|
26
|
-
:focus-visible{outline:none; box-shadow:0 0 0 2px var(--bg), 0 0 0 4px var(--focus)}
|
|
27
|
-
.vh{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;border:0}
|
|
28
|
-
.wrap{max-width:1180px;margin:0 auto;padding:0 40px}
|
|
29
|
-
|
|
30
|
-
/* ---------- masthead ---------- */
|
|
31
|
-
.topline{height:4px;background:var(--accent)}
|
|
32
|
-
header{padding:66px 0 30px;text-align:center}
|
|
33
|
-
h1{
|
|
34
|
-
margin:0;font-family:var(--font-display);font-weight:700;
|
|
35
|
-
font-size:calc(5rem * var(--zoom));line-height:1;letter-spacing:-.038em;color:var(--ink);
|
|
36
|
-
}
|
|
37
|
-
.sub{
|
|
38
|
-
margin:16px 0 0;display:flex;justify-content:center;align-items:center;gap:20px;
|
|
39
|
-
font-weight:300;font-size:calc(1.375rem * var(--zoom));color:var(--ink-soft);
|
|
40
|
-
}
|
|
41
|
-
.sub .bar-sep{width:1px;height:calc(1.25rem * var(--zoom));background:var(--rule)}
|
|
42
|
-
.sub .quiet{font-size:calc(1.0625rem * var(--zoom));color:var(--ink-faint)}
|
|
43
|
-
|
|
44
|
-
/* ---------- section rail ---------- */
|
|
45
|
-
.railbar{
|
|
46
|
-
border-top:var(--line) solid var(--rule);
|
|
47
|
-
border-bottom:var(--line) solid var(--rule);
|
|
48
|
-
}
|
|
49
|
-
.railbar > .wrap{display:flex;align-items:stretch;gap:26px}
|
|
50
|
-
.railbar nav{flex:1 1 auto;min-width:0;overflow-x:auto;scrollbar-width:thin;scrollbar-color:var(--scroll-thumb) var(--scroll-track)}
|
|
51
|
-
.railbar nav::-webkit-scrollbar{height:6px}
|
|
52
|
-
.railbar nav::-webkit-scrollbar-thumb{background:var(--scroll-thumb)}
|
|
53
|
-
.railbar nav::-webkit-scrollbar-track{background:var(--scroll-track)}
|
|
54
|
-
.railbar ul{list-style:none;margin:0;padding:0;display:flex;justify-content:space-between;gap:24px}
|
|
55
|
-
.railbar a{
|
|
56
|
-
display:block;white-space:nowrap;text-decoration:none;color:var(--ink-soft);
|
|
57
|
-
font-size:calc(1rem * var(--zoom));padding:16px 2px;
|
|
58
|
-
border-top:3px solid transparent;margin-top:-1px;
|
|
59
|
-
}
|
|
60
|
-
.railbar a:hover{color:var(--ink)}
|
|
61
|
-
.railbar a[aria-current="true"]{color:var(--ink);border-top-color:var(--accent)}
|
|
62
|
-
.tools{display:flex;align-items:center;gap:10px;flex:0 0 auto}
|
|
63
|
-
#ledger-zoom{display:flex;align-items:center;gap:8px}
|
|
64
|
-
.rnd{
|
|
65
|
-
width:30px;height:30px;border-radius:50%;cursor:pointer;
|
|
66
|
-
border:var(--line) solid var(--rule);background:transparent;color:var(--ink-soft);
|
|
67
|
-
font:inherit;font-size:.8125rem;font-weight:500;line-height:1;
|
|
68
|
-
display:grid;place-items:center;
|
|
69
|
-
}
|
|
70
|
-
.rnd:hover{color:var(--ink);border-color:var(--ink-faint)}
|
|
71
|
-
.mode-toggle{
|
|
72
|
-
width:56px;height:30px;border:0;cursor:pointer;
|
|
73
|
-
background:var(--bg-card);color:var(--ink-soft);
|
|
74
|
-
border-radius:var(--radius-pill);display:grid;place-items:center;
|
|
75
|
-
box-shadow:inset 0 0 0 var(--line) var(--rule);
|
|
76
|
-
}
|
|
77
|
-
.mode-toggle:hover{color:var(--ink)}
|
|
78
|
-
.mode-toggle svg{width:17px;height:17px;display:block}
|
|
79
|
-
.mode-toggle .i-moon{display:var(--moon-display)}
|
|
80
|
-
.mode-toggle .i-sun{display:var(--sun-display)}
|
|
81
|
-
|
|
82
|
-
/* ---------- sections ---------- */
|
|
83
|
-
main{padding-bottom:20px}
|
|
84
|
-
section{
|
|
85
|
-
padding:30px 30px 34px;margin-bottom:26px;
|
|
86
|
-
background:var(--bg-card);border:var(--line) solid var(--rule);
|
|
87
|
-
}
|
|
88
|
-
h2{
|
|
89
|
-
margin:0;font-family:var(--font-display);font-weight:500;
|
|
90
|
-
font-size:calc(1.75rem * var(--zoom));letter-spacing:-.022em;color:var(--ink);
|
|
91
|
-
}
|
|
92
|
-
.subtitle{margin:8px 0 26px;font-size:calc(.9375rem * var(--zoom));color:var(--ink-soft);max-width:62ch;line-height:1.5}
|
|
93
|
-
.lbl{
|
|
94
|
-
font-size:calc(.75rem * var(--zoom));letter-spacing:.08em;text-transform:uppercase;
|
|
95
|
-
color:var(--ink-faint);
|
|
96
|
-
}
|
|
97
|
-
|
|
98
|
-
/* headline stats */
|
|
99
|
-
#headline-tablet{padding:34px 0 30px;margin-bottom:0;background:transparent;border:0}
|
|
100
|
-
.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr))}
|
|
101
|
-
.stat{padding:0 30px}
|
|
102
|
-
.stat:first-child{padding-left:0}
|
|
103
|
-
.stat + .stat{border-left:var(--line) solid var(--rule)}
|
|
104
|
-
.stat .k{display:block;font-size:calc(.9375rem * var(--zoom));color:var(--ink-soft)}
|
|
105
|
-
.stat .v{
|
|
106
|
-
display:block;margin-top:6px;font-family:var(--font-display);font-weight:500;
|
|
107
|
-
font-size:calc(4rem * var(--zoom));line-height:1.02;letter-spacing:-.035em;color:var(--ink);
|
|
108
|
-
}
|
|
109
|
-
.stat .c{display:block;margin-top:12px;font-size:calc(.8125rem * var(--zoom));color:var(--ink-faint);line-height:1.45}
|
|
110
|
-
.bar{height:5px;background:var(--accent-track);margin-top:14px;overflow:hidden}
|
|
111
|
-
.bar i{display:block;height:100%;background:var(--accent);width:var(--w);animation:grow 900ms cubic-bezier(.16,1,.3,1) both}
|
|
112
|
-
@keyframes grow{from{width:0}}
|
|
113
|
-
|
|
114
|
-
/* two column region */
|
|
115
|
-
.cols{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:0 26px;align-items:start}
|
|
116
|
-
|
|
117
|
-
/* the watch */
|
|
118
|
-
.watch{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr))}
|
|
119
|
-
.watch li{padding:0 18px}
|
|
120
|
-
.watch li:first-child{padding-left:0}
|
|
121
|
-
.watch li + li{border-left:var(--line) solid var(--rule)}
|
|
122
|
-
.watch .wn{display:block;font-size:calc(1rem * var(--zoom));color:var(--ink)}
|
|
123
|
-
.watch .ws{display:flex;align-items:center;gap:8px;margin-top:10px;font-size:calc(.8125rem * var(--zoom));color:var(--ink-soft)}
|
|
124
|
-
.lamp{width:9px;height:9px;border-radius:50%;background:var(--accent);flex:0 0 9px}
|
|
125
|
-
.lamp.off{background:transparent;box-shadow:inset 0 0 0 1px var(--ink-faint)}
|
|
126
|
-
.watch li.dim .wn,.watch li.dim .ws{color:var(--ink-faint)}
|
|
127
|
-
|
|
128
|
-
/* architects */
|
|
129
|
-
.arch{list-style:none;margin:0;padding:0}
|
|
130
|
-
.arch li{
|
|
131
|
-
display:grid;grid-template-columns:26px minmax(0,1fr) auto auto;
|
|
132
|
-
align-items:center;gap:14px;padding:11px 0;
|
|
133
|
-
border-bottom:var(--line) solid var(--rule-soft);
|
|
134
|
-
font-size:calc(.9375rem * var(--zoom));
|
|
135
|
-
}
|
|
136
|
-
.arch li:first-child{border-top:var(--line) solid var(--rule-soft)}
|
|
137
|
-
.arch .n{color:var(--ink-faint)}
|
|
138
|
-
.arch .who{color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
|
|
139
|
-
.pill{
|
|
140
|
-
border:var(--line) solid var(--rule);border-radius:var(--radius-pill);
|
|
141
|
-
padding:3px 10px;font-size:calc(.6875rem * var(--zoom));
|
|
142
|
-
letter-spacing:.08em;text-transform:uppercase;color:var(--ink-faint);white-space:nowrap;
|
|
143
|
-
}
|
|
144
|
-
.arch .cr{color:var(--ink-soft);text-align:right;min-width:5.5em}
|
|
145
|
-
|
|
146
|
-
/* works in progress */
|
|
147
|
-
.wip{margin:0;padding:0;list-style:none}
|
|
148
|
-
.wip > li{padding:16px 0;border-bottom:var(--line) solid var(--rule-soft)}
|
|
149
|
-
.wip > li:first-child{border-top:var(--line) solid var(--rule-soft)}
|
|
150
|
-
.wip .top{display:flex;justify-content:space-between;align-items:baseline;gap:16px;font-size:calc(.9375rem * var(--zoom))}
|
|
151
|
-
.wip .title{color:var(--ink)}
|
|
152
|
-
.wip .pct{color:var(--ink-soft)}
|
|
153
|
-
.wip .meta{margin-top:4px;font-size:calc(.8125rem * var(--zoom));color:var(--ink-faint)}
|
|
154
|
-
.steps{display:flex;gap:6px;margin-top:12px;list-style:none;padding:0}
|
|
155
|
-
.steps li{width:26px;height:5px;box-shadow:inset 0 0 0 1px var(--rule)}
|
|
156
|
-
.steps li.met{background:var(--ink-soft);box-shadow:none}
|
|
157
|
-
|
|
158
|
-
/* the world */
|
|
159
|
-
#world .map{width:100%;display:block;height:auto;background:transparent}
|
|
160
|
-
#world .land{fill:var(--map-land)}
|
|
161
|
-
#world .route{fill:none;stroke:var(--accent);stroke-width:1.4;opacity:.8}
|
|
162
|
-
#world .pt{fill:var(--accent)}
|
|
163
|
-
.cap{margin:16px 0 0;font-size:calc(.8125rem * var(--zoom));color:var(--ink-faint)}
|
|
164
|
-
|
|
165
|
-
/* the foundry */
|
|
166
|
-
.foundry{display:flex;align-items:flex-end;gap:10px;height:120px;border-bottom:var(--line) solid var(--rule);padding-bottom:0}
|
|
167
|
-
.foundry i{flex:1 1 0;background:var(--ink-faint);opacity:.55;display:block}
|
|
168
|
-
.foundry i:last-child{opacity:.9}
|
|
169
|
-
|
|
170
|
-
/* the treasury */
|
|
171
|
-
.purse{display:flex;gap:56px;flex-wrap:wrap;margin-bottom:26px}
|
|
172
|
-
.purse div span{display:block}
|
|
173
|
-
.purse .v{font-family:var(--font-display);font-weight:500;font-size:calc(2.25rem * var(--zoom));letter-spacing:-.03em;color:var(--ink)}
|
|
174
|
-
.purse .k{margin-top:4px;font-size:calc(.8125rem * var(--zoom));color:var(--ink-soft)}
|
|
175
|
-
.cats{margin:0;padding:0;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));border-top:var(--line) solid var(--rule)}
|
|
176
|
-
.cats > div{padding:16px 18px 0}
|
|
177
|
-
.cats > div:first-child{padding-left:0}
|
|
178
|
-
.cats > div + div{border-left:var(--line) solid var(--rule-soft)}
|
|
179
|
-
.cats dt{font-size:calc(.75rem * var(--zoom));letter-spacing:.08em;text-transform:uppercase;color:var(--ink-faint)}
|
|
180
|
-
.cats dd{margin:8px 0 0;font-size:calc(1.125rem * var(--zoom));color:var(--ink)}
|
|
181
|
-
|
|
182
|
-
/* lately inscribed */
|
|
183
|
-
.inscribed{list-style:none;margin:0;padding:0}
|
|
184
|
-
.inscribed li{
|
|
185
|
-
display:grid;grid-template-columns:7.5em minmax(0,1fr) auto 6em;
|
|
186
|
-
gap:18px;align-items:baseline;padding:14px 0;
|
|
187
|
-
border-bottom:var(--line) solid var(--rule-soft);
|
|
188
|
-
font-size:calc(.9375rem * var(--zoom));
|
|
189
|
-
}
|
|
190
|
-
.inscribed li:first-child{border-top:var(--line) solid var(--rule-soft)}
|
|
191
|
-
.inscribed .id{color:var(--ink-faint)}
|
|
192
|
-
.inscribed .t{color:var(--ink)}
|
|
193
|
-
.inscribed .st{color:var(--ink-soft);font-size:calc(.75rem * var(--zoom));letter-spacing:.08em;text-transform:uppercase}
|
|
194
|
-
.inscribed .ago{color:var(--ink-faint);text-align:right}
|
|
195
|
-
|
|
196
|
-
footer{
|
|
197
|
-
border-top:var(--line) solid var(--rule);margin-top:44px;
|
|
198
|
-
padding:26px 0 40px;font-size:calc(.875rem * var(--zoom));color:var(--ink-faint);
|
|
199
|
-
}
|
|
200
|
-
|
|
201
|
-
@media (max-width:1000px){
|
|
202
|
-
.cols{grid-template-columns:minmax(0,1fr);gap:0}
|
|
203
|
-
}
|
|
204
|
-
@media (max-width:760px){
|
|
205
|
-
.wrap{padding:0 20px}
|
|
206
|
-
section{padding:20px 18px 24px;margin-bottom:18px}
|
|
207
|
-
header{padding:40px 0 22px}
|
|
208
|
-
h1{font-size:calc(2.75rem * var(--zoom))}
|
|
209
|
-
.sub{font-size:calc(1rem * var(--zoom));gap:12px}
|
|
210
|
-
.stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px 0}
|
|
211
|
-
.stat{padding:0 18px}
|
|
212
|
-
.stat:nth-child(odd){padding-left:0}
|
|
213
|
-
.stat:nth-child(odd){border-left:0}
|
|
214
|
-
.stat .v{font-size:calc(2.75rem * var(--zoom))}
|
|
215
|
-
.watch{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px 0}
|
|
216
|
-
.watch li:nth-child(odd){padding-left:0;border-left:0}
|
|
217
|
-
.cats{grid-template-columns:repeat(2,minmax(0,1fr))}
|
|
218
|
-
.cats > div:nth-child(odd){padding-left:0;border-left:0}
|
|
219
|
-
.inscribed li{grid-template-columns:minmax(0,1fr);gap:4px}
|
|
220
|
-
.inscribed .ago{text-align:left}
|
|
221
|
-
.railbar > .wrap{flex-direction:column;gap:0}
|
|
222
|
-
.tools{padding:10px 0;border-top:var(--line) solid var(--rule-soft)}
|
|
223
|
-
}
|
|
224
|
-
</style>
|
|
225
|
-
</head>
|
|
226
|
-
<body>
|
|
227
|
-
|
|
228
|
-
<div class="topline" aria-hidden="true"></div>
|
|
229
|
-
|
|
230
|
-
<header>
|
|
231
|
-
<div class="wrap">
|
|
232
|
-
<h1>Cloud Bongos</h1>
|
|
233
|
-
<p class="sub">
|
|
234
|
-
<span>the public ledger</span>
|
|
235
|
-
<span class="bar-sep" aria-hidden="true"></span>
|
|
236
|
-
<span class="quiet">updated 2 minutes ago</span>
|
|
237
|
-
</p>
|
|
238
|
-
</div>
|
|
239
|
-
</header>
|
|
240
|
-
|
|
241
|
-
<div class="railbar">
|
|
242
|
-
<div class="wrap">
|
|
243
|
-
<nav aria-label="Sections">
|
|
244
|
-
<ul>
|
|
245
|
-
<li><a href="#watch" aria-current="true">The Watch</a></li>
|
|
246
|
-
<li><a href="#architects">Architects</a></li>
|
|
247
|
-
<li><a href="#foundry">The Foundry</a></li>
|
|
248
|
-
<li><a href="#wip">Works in Progress</a></li>
|
|
249
|
-
<li><a href="#treasury">The Treasury</a></li>
|
|
250
|
-
<li><a href="#inscribed">Lately Inscribed</a></li>
|
|
251
|
-
<li><a href="#world">The World</a></li>
|
|
252
|
-
</ul>
|
|
253
|
-
</nav>
|
|
254
|
-
<div class="tools">
|
|
255
|
-
<div id="ledger-zoom">
|
|
256
|
-
<button class="rnd" type="button" id="zoomOut" aria-label="Smaller text">A-</button>
|
|
257
|
-
<button class="rnd" type="button" id="zoomIn" aria-label="Larger text">A+</button>
|
|
258
|
-
</div>
|
|
259
|
-
<button class="mode-toggle" id="mode" type="button" aria-label="Toggle light or dark">
|
|
260
|
-
<svg class="i-moon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M20.2 14.8A8.6 8.6 0 0 1 9.2 3.8a7.6 7.6 0 1 0 11 11Z"/></svg>
|
|
261
|
-
<svg class="i-sun" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><circle cx="12" cy="12" r="4"/><path d="M12 3v2M12 19v2M4.6 4.6l1.4 1.4M18 18l1.4 1.4M3 12h2M19 12h2M4.6 19.4 6 18M18 6l1.4-1.4"/></svg>
|
|
262
|
-
</button>
|
|
263
|
-
</div>
|
|
264
|
-
</div>
|
|
265
|
-
</div>
|
|
266
|
-
|
|
267
|
-
<main>
|
|
268
|
-
<div class="wrap">
|
|
269
|
-
|
|
270
|
-
<section id="headline-tablet">
|
|
271
|
-
<h2 class="vh">The City At A Glance</h2>
|
|
272
|
-
<div class="stats">
|
|
273
|
-
<div class="stat">
|
|
274
|
-
<span class="k">Standing</span>
|
|
275
|
-
<span class="v">holds</span>
|
|
276
|
-
<span class="c">3 of 3 pillars answering</span>
|
|
277
|
-
</div>
|
|
278
|
-
<div class="stat">
|
|
279
|
-
<span class="k">Shipped</span>
|
|
280
|
-
<span class="v">1,107</span>
|
|
281
|
-
<span class="c">works shipped on V1 of 1,561</span>
|
|
282
|
-
</div>
|
|
283
|
-
<div class="stat">
|
|
284
|
-
<span class="k">Treasury</span>
|
|
285
|
-
<span class="v">74%</span><!-- sample -->
|
|
286
|
-
<div class="bar"><i style="--w:74%"></i></div><!-- sample -->
|
|
287
|
-
<span class="c">of the year's purse spent</span>
|
|
288
|
-
</div>
|
|
289
|
-
<div class="stat">
|
|
290
|
-
<span class="k">Grade</span>
|
|
291
|
-
<span class="v">A</span><!-- sample -->
|
|
292
|
-
<span class="c">mean grade, last 90 days</span>
|
|
293
|
-
</div>
|
|
294
|
-
</div>
|
|
295
|
-
</section>
|
|
296
|
-
|
|
297
|
-
<div class="cols">
|
|
298
|
-
<div>
|
|
299
|
-
<section id="watch">
|
|
300
|
-
<h2>The Watch</h2>
|
|
301
|
-
<p class="subtitle">The standing of each pillar, whether it holds or has fallen.</p>
|
|
302
|
-
<ul class="watch">
|
|
303
|
-
<li><span class="wn">Site</span><span class="ws"><i class="lamp"></i>99.9%<!-- sample --></span></li>
|
|
304
|
-
<li><span class="wn">Hall</span><span class="ws"><i class="lamp"></i>99.9%<!-- sample --></span></li>
|
|
305
|
-
<li><span class="wn">API</span><span class="ws"><i class="lamp"></i>99.9%<!-- sample --></span></li>
|
|
306
|
-
<li class="dim"><span class="wn">Database</span><span class="ws"><i class="lamp off"></i>unknown</span></li>
|
|
307
|
-
</ul>
|
|
308
|
-
</section>
|
|
309
|
-
|
|
310
|
-
<section id="architects">
|
|
311
|
-
<h2>Architects of Cloud Bongos</h2>
|
|
312
|
-
<p class="subtitle">Citizens who have set the most stone.</p>
|
|
313
|
-
<ol class="arch">
|
|
314
|
-
<li><span class="n">1</span><span class="who">lars589</span><span class="pill">Owner</span><span class="cr">44,562</span></li>
|
|
315
|
-
<li><span class="n">2</span><span class="who">Percy Jackson</span><span class="pill">Owner</span><span class="cr">13,358</span></li>
|
|
316
|
-
<li><span class="n">3</span><span class="who">IAMMASTERQUA</span><span class="pill">Owner</span><span class="cr">3,316</span></li>
|
|
317
|
-
<li><span class="n">4</span><span class="who">scootermack</span><span class="pill">Owner</span><span class="cr">2,440</span></li>
|
|
318
|
-
<li><span class="n">5</span><span class="who">LarsCode</span><span class="pill">Newcomer</span><span class="cr">44</span></li>
|
|
319
|
-
<li><span class="n">6</span><span class="who">kingaonline</span><span class="pill">Contributor</span><span class="cr">36</span></li>
|
|
320
|
-
</ol>
|
|
321
|
-
</section>
|
|
322
|
-
|
|
323
|
-
<section id="wip">
|
|
324
|
-
<h2>Works in Progress</h2>
|
|
325
|
-
<p class="subtitle">The endeavours now underway in the city.</p>
|
|
326
|
-
<ul class="wip">
|
|
327
|
-
<li>
|
|
328
|
-
<div class="top"><span class="title">Cloud Bongos, platform (V1)</span><span class="pct">71%</span></div>
|
|
329
|
-
<div class="meta">building, 1,107 of 1,561 shipped</div>
|
|
330
|
-
<div class="bar"><i style="--w:71%"></i></div>
|
|
331
|
-
<ul class="steps"><li class="met"></li><li class="met"></li><li class="met"></li><li></li><li></li></ul><!-- sample -->
|
|
332
|
-
</li>
|
|
333
|
-
<li>
|
|
334
|
-
<div class="top"><span class="title">Cloud Bongos, Customer-0 dogfood</span><span class="pct">66%</span></div>
|
|
335
|
-
<div class="meta">building, 58 of 88 shipped</div>
|
|
336
|
-
<div class="bar"><i style="--w:66%"></i></div>
|
|
337
|
-
<ul class="steps"><li class="met"></li><li class="met"></li><li></li><li></li><li></li></ul><!-- sample -->
|
|
338
|
-
</li>
|
|
339
|
-
</ul>
|
|
340
|
-
</section>
|
|
341
|
-
</div>
|
|
342
|
-
|
|
343
|
-
<div>
|
|
344
|
-
<section id="world">
|
|
345
|
-
<h2>The World</h2>
|
|
346
|
-
<p class="subtitle">A portrait of Cloud Bongos as she stands today.</p>
|
|
347
|
-
<svg class="map" viewBox="0 0 1000 420" role="img" aria-label="A world map with four stations and two routes">
|
|
348
|
-
<path class="land" d="M41.7 83.3 L69.4 52.8 L152.8 55.6 L236.1 47.2 L305.6 47.2 L344.4 97.2 L333.3 125 L305.6 133.3 L277.8 177.8 L236.1 169.4 L230.6 200 L269.4 225 L240 210 L194.4 186.1 L155.6 138.9 L125 91.7 Z
|
|
349
|
-
M375 83.3 L347.2 55.6 L388.9 19.4 L444.4 38.9 L430.6 61.1 Z
|
|
350
|
-
M286.1 219.4 L333.3 222.2 L402.8 263.9 L394.4 286.1 L366.7 319.4 L347.2 347.2 L327.8 361.1 L305.6 402.8 L297.2 361.1 L286.1 283.3 L275 255.6 Z
|
|
351
|
-
M452.8 158.3 L527.8 147.2 L588.9 163.9 L619.4 216.7 L641.7 219.4 L613.9 255.6 L611.1 277.8 L611.1 311.1 L569.4 344.4 L541.7 325 L533.3 286.1 L525 250 L513.9 236.1 L491.7 236.1 L452.8 208.3 Z
|
|
352
|
-
M475 144.4 L494.4 127.8 L486.1 111.1 L488.9 88.9 L519.4 75 L575 52.8 L694.4 47.2 L777.8 38.9 L888.9 50 L1000 66.7 L944.4 94.4 L902.8 111.1 L855.6 144.4 L833.3 166.7 L800 216.7 L786.1 244.4 L763.9 205.6 L747.2 188.9 L716.7 227.8 L694.4 188.9 L672.2 180.6 L658.3 186.1 L625 213.9 L597.2 172.2 L600 150 L564 144.4 L538.9 138.9 L511.1 130.6 Z
|
|
353
|
-
M816.7 311.1 L866.7 283.3 L902.8 291.7 L925 327.8 L911.1 355.6 L875 347.2 L819.4 344.4 Z"/>
|
|
354
|
-
<path class="route" d="M250 140 C 340 92, 430 90, 520 120"/>
|
|
355
|
-
<path class="route" d="M520 120 C 600 148, 660 172, 716 206 C 790 248, 842 288, 884 320"/>
|
|
356
|
-
<circle class="pt" cx="250" cy="140" r="4.5"/>
|
|
357
|
-
<circle class="pt" cx="520" cy="120" r="4.5"/>
|
|
358
|
-
<circle class="pt" cx="716" cy="206" r="4.5"/>
|
|
359
|
-
<circle class="pt" cx="884" cy="320" r="4.5"/>
|
|
360
|
-
</svg>
|
|
361
|
-
<p class="cap">rendered from the city's own stones</p>
|
|
362
|
-
</section>
|
|
363
|
-
<section id="foundry">
|
|
364
|
-
<h2>The Foundry</h2>
|
|
365
|
-
<p class="subtitle">How the city's craft is changing, works shipped and time per work over the last ninety days.</p>
|
|
366
|
-
<div class="foundry" role="img" aria-label="Thirteen weeks of works shipped, sample data"><!-- sample -->
|
|
367
|
-
<i style="height:38%"></i><i style="height:52%"></i><i style="height:44%"></i><i style="height:61%"></i>
|
|
368
|
-
<i style="height:49%"></i><i style="height:72%"></i><i style="height:58%"></i><i style="height:80%"></i>
|
|
369
|
-
<i style="height:66%"></i><i style="height:91%"></i><i style="height:74%"></i><i style="height:86%"></i>
|
|
370
|
-
<i style="height:100%"></i>
|
|
371
|
-
</div>
|
|
372
|
-
<p class="cap">sample data</p>
|
|
373
|
-
</section>
|
|
374
|
-
</div>
|
|
375
|
-
</div>
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
<section id="treasury">
|
|
379
|
-
<h2>The Treasury</h2>
|
|
380
|
-
<p class="subtitle">Credits spent, against the value wrought.</p>
|
|
381
|
-
<div class="purse">
|
|
382
|
-
<div><span class="v">$48,244</span><span class="k">spent</span></div>
|
|
383
|
-
<div><span class="v">69,751</span><span class="k">credits of value</span></div>
|
|
384
|
-
</div>
|
|
385
|
-
<dl class="cats">
|
|
386
|
-
<div><dt>api</dt><dd>$47,880</dd></div>
|
|
387
|
-
<div><dt>infra</dt><dd>$261</dd></div>
|
|
388
|
-
<div><dt>compute</dt><dd>$84</dd></div>
|
|
389
|
-
<div><dt>domain</dt><dd>$11</dd></div>
|
|
390
|
-
<div><dt>art</dt><dd>$8</dd></div>
|
|
391
|
-
</dl>
|
|
392
|
-
</section>
|
|
393
|
-
|
|
394
|
-
<section id="inscribed">
|
|
395
|
-
<h2>Lately Inscribed</h2>
|
|
396
|
-
<p class="subtitle">Newest entries set down upon the ledger.</p>
|
|
397
|
-
<ul class="inscribed">
|
|
398
|
-
<li><span class="id">1002792</span><span class="t">A task's title can now be corrected after it's created</span><span class="st">shipped</span><span class="ago">today</span></li>
|
|
399
|
-
<li><span class="id">1003239</span><span class="t">A same-tab GitHub return stays put</span><span class="st">shipped</span><span class="ago">today</span></li>
|
|
400
|
-
<li><span class="id">1002889</span><span class="t">The wizard remembers a half-finished project</span><span class="st">shipped</span><span class="ago">yesterday</span></li>
|
|
401
|
-
<li><span class="id">1003245</span><span class="t">The copy desk lands</span><span class="st">shipped</span><span class="ago">yesterday</span></li>
|
|
402
|
-
</ul>
|
|
403
|
-
</section>
|
|
404
|
-
|
|
405
|
-
</div>
|
|
406
|
-
</main>
|
|
407
|
-
|
|
408
|
-
<footer>
|
|
409
|
-
<div class="wrap">Built by agents, on Cloud Bongos.</div>
|
|
410
|
-
</footer>
|
|
411
|
-
|
|
412
|
-
<script>
|
|
413
|
-
(function(){
|
|
414
|
-
var root=document.documentElement;
|
|
415
|
-
function isDark(){
|
|
416
|
-
var m=root.getAttribute('data-mode');
|
|
417
|
-
if(m==='dark')return true;
|
|
418
|
-
if(m==='light')return false;
|
|
419
|
-
return window.matchMedia('(prefers-color-scheme: dark)').matches;
|
|
420
|
-
}
|
|
421
|
-
document.getElementById('mode').addEventListener('click',function(){
|
|
422
|
-
var next=isDark()?'light':'dark';
|
|
423
|
-
root.setAttribute('data-mode',next);
|
|
424
|
-
try{localStorage.setItem('cb-color-mode',next);}catch(e){}
|
|
425
|
-
});
|
|
426
|
-
|
|
427
|
-
var z=1;
|
|
428
|
-
function setZoom(v){
|
|
429
|
-
z=Math.min(1.35,Math.max(.85,Math.round(v*20)/20));
|
|
430
|
-
root.style.setProperty('--zoom',String(z));
|
|
431
|
-
}
|
|
432
|
-
document.getElementById('zoomIn').addEventListener('click',function(){setZoom(z+.05);});
|
|
433
|
-
document.getElementById('zoomOut').addEventListener('click',function(){setZoom(z-.05);});
|
|
434
|
-
})();
|
|
435
|
-
</script>
|
|
436
|
-
</body>
|
|
437
|
-
</html>
|