@bongos/core 1.24.49 → 1.24.50

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.
@@ -3352,5 +3352,7 @@ is load-bearing: the script throws rather than guess if it is missing, and
3352
3352
  landed since 1.24.47 with no explicit bump. run 42356516568. (task 1002620)
3353
3353
  1.24.49 — CI auto-patch (publish-on-merge, ADR 0161): carrier for merges
3354
3354
  landed since 1.24.48 with no explicit bump. run 42360265278. (task 1002620)
3355
+ 1.24.50 — CI auto-patch (publish-on-merge, ADR 0161): carrier for merges
3356
+ landed since 1.24.49 with no explicit bump. run 42362323844. (task 1002620)
3355
3357
  ---------------------------------------------------------------------------
3356
3358
  ```
@@ -1789,8 +1789,8 @@
1789
1789
  "module": "status-ui",
1790
1790
  "page": "explore",
1791
1791
  "id_from": "file-name",
1792
- "title": "Explore — projects on the map",
1793
- "document_title": "Explore — projects on the map",
1792
+ "title": "Explore — projects on the map · {{productName}}",
1793
+ "document_title": "Explore — projects on the map · {{productName}}",
1794
1794
  "path": "/explore",
1795
1795
  "url": "https://status.{apex}/explore",
1796
1796
  "files": [
@@ -1806,13 +1806,14 @@
1806
1806
  "module": "status-ui",
1807
1807
  "page": "index",
1808
1808
  "id_from": "file-name",
1809
- "title": "{{worldName}} — the public ledger",
1810
- "document_title": "{{worldName}} — the public ledger",
1809
+ "title": "{{productName}} — the public ledger",
1810
+ "document_title": "{{productName}} — the public ledger",
1811
1811
  "path": "/",
1812
1812
  "url": "https://status.{apex}/",
1813
1813
  "files": [
1814
1814
  "modules/status-ui/public/index.html",
1815
1815
  "modules/ui-design/public/tokens.css",
1816
+ "modules/hall-ui/public/controls.css",
1816
1817
  "modules/status-ui/public/style.css",
1817
1818
  "modules/status-ui/public/status.js"
1818
1819
  ],
@@ -5,7 +5,7 @@
5
5
  "adr": "0341 D3",
6
6
  "reread": "node scripts/bongos/page-reader.js --stale",
7
7
  "how": ["Generated by node scripts/bongos/page-reader.js (BV2.TW04, task 1004315; ADR 0341 D3). Do not hand-edit.","One entry per page of docs/page-inventory.json. Lines are in page order: the default state first, and a line only another state shows sits where that state shows it, with its state named.","placement: placed = a docs/copy-registry.json row renders it (file, line, string_id); shared = shell text every page of the surface carries (top bar, sidebar, footer), with its row when the registry has one; unplaced = the registry cannot place it (a rewrite becomes an engineer task, ADR 0341 D4).","text keeps {…} where the registry row has a hole, or where a value the page read from its API was filled in. A string that is only such data is counted under omitted.data, not listed.","reading_hash is over the non-shared lines (key, section, text); files_hash is over the page's inventory files. --check compares files_hash only and never opens a browser.","Rendered through the hall-preview harness (hall) and the ui-design kit stub (landing, status), at 1280x800 with the clock pinned, so a reading is the fixture world's page."],
8
- "counts": {"pages":45,"lines":4577,"placed":1579,"shared":438,"unplaced":2560,"omitted_data":3310},
8
+ "counts": {"pages":45,"lines":4577,"placed":1583,"shared":434,"unplaced":2560,"omitted_data":3311},
9
9
  "pages": [
10
10
  {
11
11
  "id": "builders:ai-studio",
@@ -5057,16 +5057,16 @@
5057
5057
  {
5058
5058
  "id": "status:explore",
5059
5059
  "surface": "status",
5060
- "title": "Explore — projects on the map",
5060
+ "title": "Explore — projects on the map · {{productName}}",
5061
5061
  "states_read": ["default"],
5062
- "files_hash": "063645ed1b3be9e1",
5062
+ "files_hash": "4fc0ab5327ca9977",
5063
5063
  "reading_hash": "ca43dc90d4523670",
5064
5064
  "counts": {"lines":7,"placed":0,"shared":2,"unplaced":5},
5065
5065
  "omitted": {"data":6},
5066
5066
  "notes": [],
5067
5067
  "lines": [
5068
5068
  {"key":"L0001","section":"top bar","text":"Explore","placement":"shared"},
5069
- {"key":"L0002","section":"top bar","text":"Projects on the map, and how each one stands on it.","placement":"shared","file":"modules/status-ui/public/explore.html","line":105,"string_id":"f1b103f87df2"},
5069
+ {"key":"L0002","section":"top bar","text":"Projects on the map, and how each one stands on it.","placement":"shared","file":"modules/status-ui/public/explore.html","line":115,"string_id":"f1b103f87df2"},
5070
5070
  {"key":"L0003","section":"page top","text":"Public","placement":"unplaced"},
5071
5071
  {"key":"L0004","section":"{…}","text":"example.com","placement":"unplaced"},
5072
5072
  {"key":"L0005","section":"{…}","text":"Public","placement":"unplaced","occurrences":2},
@@ -5077,18 +5077,18 @@
5077
5077
  {
5078
5078
  "id": "status:index",
5079
5079
  "surface": "status",
5080
- "title": "{{worldName}} — the public ledger",
5080
+ "title": "{{productName}} — the public ledger",
5081
5081
  "states_read": ["loaded"],
5082
- "files_hash": "faa0a7af4cdaca47",
5083
- "reading_hash": "9a0df38e258e0720",
5084
- "counts": {"lines":82,"placed":45,"shared":13,"unplaced":24},
5085
- "omitted": {"data":89},
5082
+ "files_hash": "534137c03abb4bf8",
5083
+ "reading_hash": "8dfeade7c163442e",
5084
+ "counts": {"lines":82,"placed":49,"shared":9,"unplaced":24},
5085
+ "omitted": {"data":90},
5086
5086
  "notes": [],
5087
5087
  "lines": [
5088
- {"key":"L0001","section":"top bar","text":"The Public Ledger of the City's Making","placement":"shared","file":"modules/status-ui/public/index.html","line":118,"string_id":"acdf97805931"},
5089
- {"key":"L0002","section":"top bar","text":"A shipping container has washed ashore upon the coast south of Athens. About it a new civilization rises. Set out below: the city's affairs, openly recorded.","placement":"shared","file":"modules/status-ui/public/index.html","line":119,"string_id":"f4a664041da5"},
5090
- {"key":"L0003","section":"top bar","text":"Cross into the city →","placement":"shared","file":"modules/status-ui/public/index.html","line":121,"string_id":"3aa071ef1142"},
5091
- {"key":"L0004","section":"top bar","text":"tablet last consulted at {…}","placement":"shared","file":"modules/status-ui/public/status.js","line":1043,"string_id":"c1e3c2212207"},
5088
+ {"key":"L0001","section":"{…}","text":"The Public Ledger of the City's Making","placement":"placed","file":"modules/status-ui/public/index.html","line":33,"string_id":"acdf97805931"},
5089
+ {"key":"L0002","section":"{…}","text":"A shipping container has washed ashore upon the coast south of Athens. About it a new civilization rises. Set out below: the city's affairs, openly recorded.","placement":"placed","file":"modules/status-ui/public/index.html","line":34,"string_id":"f4a664041da5"},
5090
+ {"key":"L0003","section":"{…}","text":"Cross into the city →","placement":"placed","file":"modules/status-ui/public/index.html","line":36,"string_id":"3aa071ef1142"},
5091
+ {"key":"L0004","section":"{…}","text":"tablet last consulted at {…}","placement":"placed","file":"modules/status-ui/public/status.js","line":1066,"string_id":"c1e3c2212207"},
5092
5092
  {"key":"L0005","section":"navigation","text":"Pulse","placement":"shared"},
5093
5093
  {"key":"L0006","section":"navigation","text":"Architects","placement":"shared"},
5094
5094
  {"key":"L0007","section":"navigation","text":"Foundry","placement":"shared"},
@@ -5096,46 +5096,46 @@
5096
5096
  {"key":"L0009","section":"navigation","text":"Treasury","placement":"shared"},
5097
5097
  {"key":"L0010","section":"navigation","text":"Inscribed","placement":"shared"},
5098
5098
  {"key":"L0011","section":"navigation","text":"World","placement":"shared"},
5099
- {"key":"L0012","section":"page top","text":"works wrought, last 7 days","placement":"placed","file":"modules/status-ui/public/index.html","line":155,"string_id":"71a303e1ba09"},
5100
- {"key":"L0013","section":"page top","text":"{{currency}} spent","placement":"placed","file":"modules/status-ui/public/index.html","line":226,"string_id":"35872b9ecc49"},
5101
- {"key":"L0014","section":"page top","text":"passed the inspector, last 7 days","placement":"placed","file":"modules/status-ui/public/index.html","line":166,"string_id":"1d0fbe3e5927"},
5102
- {"key":"L0015","section":"Architects of {{worldName}}","text":"Architects of {{worldName}}","placement":"placed","file":"modules/status-ui/public/index.html","line":175,"string_id":"1fb3f6a598cd"},
5103
- {"key":"L0016","section":"Architects of {{worldName}}","text":"Citizens who have set the most stone.","placement":"placed","file":"modules/status-ui/public/index.html","line":176,"string_id":"21f644463d57"},
5104
- {"key":"L0017","section":"The Foundry","text":"The Foundry","placement":"placed","file":"modules/status-ui/public/index.html","line":188,"string_id":"e4073b17b693"},
5105
- {"key":"L0018","section":"The Foundry","text":"How the city's craft is changing — works shipped and time per work over the last ninety days. The whole, not the hands.","placement":"placed","file":"modules/status-ui/public/index.html","line":189,"string_id":"b8e9f90e225c"},
5106
- {"key":"L0019","section":"The Foundry","text":"works shipped (90d)","placement":"placed","file":"modules/status-ui/public/index.html","line":193,"string_id":"b97f429c33fe"},
5107
- {"key":"L0020","section":"The Foundry","text":"hands at the forge","placement":"placed","file":"modules/status-ui/public/index.html","line":194,"string_id":"c2db58231e50"},
5108
- {"key":"L0021","section":"The Foundry","text":"avg time / work","placement":"placed","file":"modules/status-ui/public/index.html","line":195,"string_id":"ebdc5ecf315c"},
5109
- {"key":"L0022","section":"The Foundry","text":"Not enough shipped works yet to draw the curve.","placement":"placed","file":"modules/status-ui/public/index.html","line":199,"string_id":"2df94faddc8c"},
5110
- {"key":"L0023","section":"Works in Progress","text":"Works in Progress","placement":"placed","file":"modules/status-ui/public/index.html","line":206,"string_id":"6cc811f31b3a"},
5111
- {"key":"L0024","section":"Works in Progress","text":"The endeavours now underway in the city.","placement":"placed","file":"modules/status-ui/public/index.html","line":207,"string_id":"3890ae78799a"},
5099
+ {"key":"L0012","section":"{…}","text":"works wrought, last 7 days","placement":"placed","file":"modules/status-ui/public/index.html","line":64,"string_id":"71a303e1ba09"},
5100
+ {"key":"L0013","section":"{…}","text":"{{currency}} spent","placement":"placed","file":"modules/status-ui/public/index.html","line":131,"string_id":"35872b9ecc49"},
5101
+ {"key":"L0014","section":"{…}","text":"passed the inspector, last 7 days","placement":"placed","file":"modules/status-ui/public/index.html","line":75,"string_id":"1d0fbe3e5927"},
5102
+ {"key":"L0015","section":"Architects of {{worldName}}","text":"Architects of {{worldName}}","placement":"placed","file":"modules/status-ui/public/index.html","line":83,"string_id":"1fb3f6a598cd"},
5103
+ {"key":"L0016","section":"Architects of {{worldName}}","text":"Citizens who have set the most stone.","placement":"placed","file":"modules/status-ui/public/index.html","line":84,"string_id":"21f644463d57"},
5104
+ {"key":"L0017","section":"The Foundry","text":"The Foundry","placement":"placed","file":"modules/status-ui/public/index.html","line":95,"string_id":"e4073b17b693"},
5105
+ {"key":"L0018","section":"The Foundry","text":"How the city's craft is changing — works shipped and time per work over the last ninety days. The whole, not the hands.","placement":"placed","file":"modules/status-ui/public/index.html","line":96,"string_id":"b8e9f90e225c"},
5106
+ {"key":"L0019","section":"The Foundry","text":"works shipped (90d)","placement":"placed","file":"modules/status-ui/public/index.html","line":100,"string_id":"b97f429c33fe"},
5107
+ {"key":"L0020","section":"The Foundry","text":"hands at the forge","placement":"placed","file":"modules/status-ui/public/index.html","line":101,"string_id":"c2db58231e50"},
5108
+ {"key":"L0021","section":"The Foundry","text":"avg time / work","placement":"placed","file":"modules/status-ui/public/index.html","line":102,"string_id":"ebdc5ecf315c"},
5109
+ {"key":"L0022","section":"The Foundry","text":"Not enough shipped works yet to draw the curve.","placement":"placed","file":"modules/status-ui/public/index.html","line":106,"string_id":"2df94faddc8c"},
5110
+ {"key":"L0023","section":"Works in Progress","text":"Works in Progress","placement":"placed","file":"modules/status-ui/public/index.html","line":112,"string_id":"6cc811f31b3a"},
5111
+ {"key":"L0024","section":"Works in Progress","text":"The endeavours now underway in the city.","placement":"placed","file":"modules/status-ui/public/index.html","line":113,"string_id":"3890ae78799a"},
5112
5112
  {"key":"L0025","section":"Works in Progress","text":"{…}% complete · weighted by priority","placement":"placed","file":"modules/status-ui/public/status.js","line":412,"string_id":"78c552726882","occurrences":2},
5113
5113
  {"key":"L0026","section":"Works in Progress","text":"The work, in brief","placement":"placed","file":"modules/status-ui/public/status.js","line":435,"string_id":"c1ab82f376ec","occurrences":2},
5114
- {"key":"L0027","section":"The Treasury","text":"The Treasury","placement":"placed","file":"modules/status-ui/public/index.html","line":219,"string_id":"0dd5f86e182c"},
5115
- {"key":"L0028","section":"The Treasury","text":"{{Currency}} spent, against the value wrought.","placement":"placed","file":"modules/status-ui/public/index.html","line":220,"string_id":"89aa84ef4595"},
5116
- {"key":"L0029","section":"The Treasury","text":"{{currency}} spent","placement":"placed","file":"modules/status-ui/public/index.html","line":226,"string_id":"35872b9ecc49"},
5117
- {"key":"L0030","section":"The Treasury","text":"value wrought","placement":"placed","file":"modules/status-ui/public/index.html","line":230,"string_id":"fefb0130c7ae"},
5118
- {"key":"L0031","section":"The Treasury","text":"year's purse","placement":"placed","file":"modules/status-ui/public/index.html","line":234,"string_id":"24ea04f49b3d"},
5119
- {"key":"L0032","section":"The Treasury","text":"of the purse","placement":"placed","file":"modules/status-ui/public/index.html","line":238,"string_id":"5b653a87c53c"},
5120
- {"key":"L0033","section":"The Treasury","text":"The line of value above the line of spend means the city is wrought richer than it is dear.","placement":"placed","file":"modules/status-ui/public/index.html","line":244,"string_id":"a40c05981183"},
5121
- {"key":"L0034","section":"The Treasury","text":"The chart above always shows the whole project; the filters below slice the breakdown.","placement":"placed","file":"modules/status-ui/public/index.html","line":244,"string_id":"308949fbd4a0"},
5114
+ {"key":"L0027","section":"The Treasury","text":"The Treasury","placement":"placed","file":"modules/status-ui/public/index.html","line":124,"string_id":"0dd5f86e182c"},
5115
+ {"key":"L0028","section":"The Treasury","text":"{{Currency}} spent, against the value wrought.","placement":"placed","file":"modules/status-ui/public/index.html","line":125,"string_id":"89aa84ef4595"},
5116
+ {"key":"L0029","section":"The Treasury","text":"{{currency}} spent","placement":"placed","file":"modules/status-ui/public/index.html","line":131,"string_id":"35872b9ecc49"},
5117
+ {"key":"L0030","section":"The Treasury","text":"value wrought","placement":"placed","file":"modules/status-ui/public/index.html","line":135,"string_id":"fefb0130c7ae"},
5118
+ {"key":"L0031","section":"The Treasury","text":"year's purse","placement":"placed","file":"modules/status-ui/public/index.html","line":139,"string_id":"24ea04f49b3d"},
5119
+ {"key":"L0032","section":"The Treasury","text":"of the purse","placement":"placed","file":"modules/status-ui/public/index.html","line":143,"string_id":"5b653a87c53c"},
5120
+ {"key":"L0033","section":"The Treasury","text":"The line of value above the line of spend means the city is wrought richer than it is dear.","placement":"placed","file":"modules/status-ui/public/index.html","line":149,"string_id":"a40c05981183"},
5121
+ {"key":"L0034","section":"The Treasury","text":"The chart above always shows the whole project; the filters below slice the breakdown.","placement":"placed","file":"modules/status-ui/public/index.html","line":149,"string_id":"308949fbd4a0"},
5122
5122
  {"key":"L0035","section":"The Treasury","text":"Source","placement":"unplaced"},
5123
- {"key":"L0036","section":"The Treasury","text":"All sources","placement":"placed","file":"modules/status-ui/public/index.html","line":249,"string_id":"cb7eae1a30d5"},
5123
+ {"key":"L0036","section":"The Treasury","text":"All sources","placement":"placed","file":"modules/status-ui/public/index.html","line":154,"string_id":"cb7eae1a30d5"},
5124
5124
  {"key":"L0037","section":"The Treasury","text":"Category","placement":"unplaced"},
5125
- {"key":"L0038","section":"The Treasury","text":"All categories","placement":"placed","file":"modules/status-ui/public/index.html","line":255,"string_id":"155d14ab692a"},
5125
+ {"key":"L0038","section":"The Treasury","text":"All categories","placement":"placed","file":"modules/status-ui/public/index.html","line":160,"string_id":"155d14ab692a"},
5126
5126
  {"key":"L0039","section":"The Treasury","text":"Window","placement":"unplaced"},
5127
- {"key":"L0040","section":"The Treasury","text":"All time","placement":"placed","file":"modules/status-ui/public/index.html","line":261,"string_id":"a072071b893c"},
5128
- {"key":"L0041","section":"The Treasury","text":"Last 7 days","placement":"placed","file":"modules/status-ui/public/index.html","line":262,"string_id":"b3bb6b729d30"},
5129
- {"key":"L0042","section":"The Treasury","text":"Last 30 days","placement":"placed","file":"modules/status-ui/public/index.html","line":263,"string_id":"41cc7f5ec97e"},
5130
- {"key":"L0043","section":"The Treasury","text":"Last 90 days","placement":"placed","file":"modules/status-ui/public/index.html","line":264,"string_id":"726d3470f7a0"},
5127
+ {"key":"L0040","section":"The Treasury","text":"All time","placement":"placed","file":"modules/status-ui/public/index.html","line":166,"string_id":"a072071b893c"},
5128
+ {"key":"L0041","section":"The Treasury","text":"Last 7 days","placement":"placed","file":"modules/status-ui/public/index.html","line":167,"string_id":"b3bb6b729d30"},
5129
+ {"key":"L0042","section":"The Treasury","text":"Last 30 days","placement":"placed","file":"modules/status-ui/public/index.html","line":168,"string_id":"41cc7f5ec97e"},
5130
+ {"key":"L0043","section":"The Treasury","text":"Last 90 days","placement":"placed","file":"modules/status-ui/public/index.html","line":169,"string_id":"726d3470f7a0"},
5131
5131
  {"key":"L0044","section":"The Treasury","text":"· 47,930 dr.","placement":"unplaced"},
5132
5132
  {"key":"L0045","section":"The Treasury","text":"· 261 dr.","placement":"unplaced"},
5133
5133
  {"key":"L0046","section":"The Treasury","text":"· 83.58 dr.","placement":"unplaced"},
5134
5134
  {"key":"L0047","section":"The Treasury","text":"· 11.16 dr.","placement":"unplaced"},
5135
5135
  {"key":"L0048","section":"The Treasury","text":"· 10.99 dr.","placement":"unplaced"},
5136
- {"key":"L0049","section":"The Treasury","text":"Split by hand — {{currency}} spent by each builder at the workshop.","placement":"placed","file":"modules/status-ui/public/index.html","line":270,"string_id":"0cc023b5f470"},
5136
+ {"key":"L0049","section":"The Treasury","text":"Split by hand — {{currency}} spent by each builder at the workshop.","placement":"placed","file":"modules/status-ui/public/index.html","line":175,"string_id":"0cc023b5f470"},
5137
5137
  {"key":"L0050","section":"The Treasury","text":"Unattributed","placement":"unplaced"},
5138
- {"key":"L0051","section":"The Treasury","text":"is the shared keep: infrastructure and domains the whole city pays for, plus the early days before each hand carried its own purse — never quietly charged to one builder.","placement":"placed","file":"modules/status-ui/public/index.html","line":270,"string_id":"20d61cef9be6"},
5138
+ {"key":"L0051","section":"The Treasury","text":"is the shared keep: infrastructure and domains the whole city pays for, plus the early days before each hand carried its own purse — never quietly charged to one builder.","placement":"placed","file":"modules/status-ui/public/index.html","line":175,"string_id":"20d61cef9be6"},
5139
5139
  {"key":"L0052","section":"The Treasury","text":"Attributed to builders: {…} · Shared keep (unattributed): {…} ({…}%).","placement":"placed","file":"modules/status-ui/public/status.js","line":559,"string_id":"4b16eed738cf"},
5140
5140
  {"key":"L0053","section":"The Treasury","text":"· 30,659 dr.","placement":"unplaced"},
5141
5141
  {"key":"L0054","section":"The Treasury","text":"· 13,067 dr.","placement":"unplaced"},
@@ -5149,24 +5149,24 @@
5149
5149
  {"key":"L0062","section":"The Treasury","text":"· 0.21 dr.","placement":"unplaced"},
5150
5150
  {"key":"L0063","section":"The Treasury","text":"· 0.11 dr.","placement":"unplaced"},
5151
5151
  {"key":"L0064","section":"The Treasury","text":"· 0.04 dr.","placement":"unplaced","occurrences":2},
5152
- {"key":"L0065","section":"Lately Inscribed","text":"Lately Inscribed","placement":"placed","file":"modules/status-ui/public/index.html","line":279,"string_id":"2634481c0143"},
5153
- {"key":"L0066","section":"Lately Inscribed","text":"Newest entries set down upon the ledger.","placement":"placed","file":"modules/status-ui/public/index.html","line":280,"string_id":"dc9eab0a02e2"},
5152
+ {"key":"L0065","section":"Lately Inscribed","text":"Lately Inscribed","placement":"placed","file":"modules/status-ui/public/index.html","line":183,"string_id":"2634481c0143"},
5153
+ {"key":"L0066","section":"Lately Inscribed","text":"Newest entries set down upon the ledger.","placement":"placed","file":"modules/status-ui/public/index.html","line":184,"string_id":"dc9eab0a02e2"},
5154
5154
  {"key":"L0067","section":"Lately Inscribed","text":"Window","placement":"unplaced"},
5155
- {"key":"L0068","section":"Lately Inscribed","text":"Last 7 days","placement":"placed","file":"modules/status-ui/public/index.html","line":262,"string_id":"b3bb6b729d30"},
5156
- {"key":"L0069","section":"Lately Inscribed","text":"Last 30 days","placement":"placed","file":"modules/status-ui/public/index.html","line":263,"string_id":"41cc7f5ec97e"},
5157
- {"key":"L0070","section":"Lately Inscribed","text":"Last 90 days","placement":"placed","file":"modules/status-ui/public/index.html","line":264,"string_id":"726d3470f7a0"},
5158
- {"key":"L0071","section":"Lately Inscribed","text":"All time","placement":"placed","file":"modules/status-ui/public/index.html","line":261,"string_id":"a072071b893c"},
5155
+ {"key":"L0068","section":"Lately Inscribed","text":"Last 7 days","placement":"placed","file":"modules/status-ui/public/index.html","line":167,"string_id":"b3bb6b729d30"},
5156
+ {"key":"L0069","section":"Lately Inscribed","text":"Last 30 days","placement":"placed","file":"modules/status-ui/public/index.html","line":168,"string_id":"41cc7f5ec97e"},
5157
+ {"key":"L0070","section":"Lately Inscribed","text":"Last 90 days","placement":"placed","file":"modules/status-ui/public/index.html","line":169,"string_id":"726d3470f7a0"},
5158
+ {"key":"L0071","section":"Lately Inscribed","text":"All time","placement":"placed","file":"modules/status-ui/public/index.html","line":166,"string_id":"a072071b893c"},
5159
5159
  {"key":"L0072","section":"Lately Inscribed","text":"inscribed by {…} · {…}","placement":"unplaced","occurrences":6},
5160
5160
  {"key":"L0073","section":"Lately Inscribed","text":"The site now has the three pages every real website needs — privacy, terms and a contact page — linked from the footer of the front page and the projects hub. The privacy page says plainly what is kept about a GitHub account and a project, who else sees it, and how long it stays; the contact page points at the two doors that actually exist, the repository and the builders' hall. Every project built on the platform gets the same pages under its own name, with the claims that are only true of the platform itself removed.","placement":"unplaced"},
5161
- {"key":"L0074","section":"Lately Inscribed","text":"‹ earlier page","placement":"placed","file":"modules/status-ui/public/index.html","line":296,"string_id":"6d0d64f10bd9"},
5162
- {"key":"L0075","section":"Lately Inscribed","text":"page {…} of {…}","placement":"placed","file":"modules/status-ui/public/status.js","line":853,"string_id":"4a00bdbfd9be"},
5163
- {"key":"L0076","section":"Lately Inscribed","text":"later page ›","placement":"placed","file":"modules/status-ui/public/index.html","line":298,"string_id":"9b019d632d3e"},
5164
- {"key":"L0077","section":"The World","text":"The World","placement":"placed","file":"modules/status-ui/public/index.html","line":306,"string_id":"3e465b62cea8"},
5165
- {"key":"L0078","section":"The World","text":"A true-to-life portrait of {{worldName}} as she stands today, rendered from the city's own stones.","placement":"placed","file":"modules/status-ui/public/index.html","line":307,"string_id":"623d6b7ae6b7"},
5166
- {"key":"L0079","section":"The World","text":"The cartographers are still at their survey…","placement":"placed","file":"modules/status-ui/public/index.html","line":311,"string_id":"16f6b8dcd3ec"},
5167
- {"key":"L0080","section":"The World","text":"Show history of earlier portraits","placement":"placed","file":"modules/status-ui/public/index.html","line":317,"string_id":"81cb441627b8"},
5168
- {"key":"L0081","section":"footer","text":"By order of the Senate","placement":"shared","file":"modules/status-ui/public/index.html","line":329,"string_id":"1fe8937399f5"},
5169
- {"key":"L0082","section":"footer","text":"{{Currency}} are wrought by the lawmen's review; they measure the work, and are never coin.","placement":"shared","file":"modules/status-ui/public/index.html","line":332,"string_id":"1b40dc1e9196"}
5161
+ {"key":"L0074","section":"Lately Inscribed","text":"‹ earlier page","placement":"placed","file":"modules/status-ui/public/index.html","line":200,"string_id":"6d0d64f10bd9"},
5162
+ {"key":"L0075","section":"Lately Inscribed","text":"page {…} of {…}","placement":"placed","file":"modules/status-ui/public/status.js","line":876,"string_id":"4a00bdbfd9be"},
5163
+ {"key":"L0076","section":"Lately Inscribed","text":"later page ›","placement":"placed","file":"modules/status-ui/public/index.html","line":202,"string_id":"9b019d632d3e"},
5164
+ {"key":"L0077","section":"The World","text":"The World","placement":"placed","file":"modules/status-ui/public/index.html","line":209,"string_id":"3e465b62cea8"},
5165
+ {"key":"L0078","section":"The World","text":"A true-to-life portrait of {{worldName}} as she stands today, rendered from the city's own stones.","placement":"placed","file":"modules/status-ui/public/index.html","line":210,"string_id":"623d6b7ae6b7"},
5166
+ {"key":"L0079","section":"The World","text":"The cartographers are still at their survey…","placement":"placed","file":"modules/status-ui/public/index.html","line":214,"string_id":"16f6b8dcd3ec"},
5167
+ {"key":"L0080","section":"The World","text":"Show history of earlier portraits","placement":"placed","file":"modules/status-ui/public/index.html","line":220,"string_id":"81cb441627b8"},
5168
+ {"key":"L0081","section":"footer","text":"By order of the Senate","placement":"shared","file":"modules/status-ui/public/index.html","line":229,"string_id":"1fe8937399f5"},
5169
+ {"key":"L0082","section":"footer","text":"{{Currency}} are wrought by the lawmen's review; they measure the work, and are never coin.","placement":"shared","file":"modules/status-ui/public/index.html","line":232,"string_id":"1b40dc1e9196"}
5170
5170
  ]
5171
5171
  }
5172
5172
  ]
@@ -3,14 +3,20 @@
3
3
  <head>
4
4
  <meta charset="utf-8">
5
5
  <meta name="viewport" content="width=device-width, initial-scale=1">
6
- <title>Explore — projects on the map</title>
6
+ <title>Explore — projects on the map · {{productName}}</title>
7
+ <link rel="icon" href="/modules/ui-design/public/brand/favicon.svg" type="image/svg+xml">
8
+ <!-- The faces, the palette and the favicon are the pack's: the server serves this
9
+ page through the same branding injection as the status page (task 1005089), so
10
+ the pack's font links land at the end of <head>. -->
7
11
  <style>
8
12
  /* Self-contained so the showcase renders correctly whether or not the host
9
13
  injects theme tokens. Warm Cloud Bongos defaults; overridable by the pack. */
10
14
  :root {
11
15
  /* a hand-written mirror of config/branding.neutral.json theme.ui.colors —
12
- this page is served without the branding injection, so a drifted value
13
- renders a palette the product no longer paints (tests/design_tokens_sync.mjs).
16
+ the FALLBACK for wherever this page is opened without the branding
17
+ injection (the server injects it since task 1005089, and the pack's :root
18
+ then wins); a drifted value would render a palette the product no longer
19
+ paints there (tests/design_tokens_sync.mjs).
14
20
  Chrome world, task 1003298. --accent-deep is the TEXT-safe accent: the
15
21
  salmon --accent is a fill and measures 2.1:1 as type on the card. */
16
22
  --bg: #edecee; --card: #fbfafc; --ink: #17181a; --ink-soft: #55565a;
@@ -92,8 +98,12 @@
92
98
  .card.anon:hover { transform: none; box-shadow: none; }
93
99
  .card.anon h2 { color: var(--ink-soft); font-weight: 600; }
94
100
 
101
+ /* dark, written twice, byte-identical, on the hall's pair: (0,1,1) outranks the
102
+ pack's spliced :root, so dark survives the injection */
103
+ html[data-theme="dark"] { --bg: #000000; --card: #101012; --ink: #ffffff; --ink-soft: #c0c0c0; --rule: rgba(255,255,255,.16);
104
+ --accent-deep: color-mix(in srgb, var(--accent) 45%, #ffffff); }
95
105
  @media (prefers-color-scheme: dark) {
96
- :root { --bg: #000000; --card: #101012; --ink: #ffffff; --ink-soft: #c0c0c0; --rule: rgba(255,255,255,.16);
106
+ html:not([data-theme]) { --bg: #000000; --card: #101012; --ink: #ffffff; --ink-soft: #c0c0c0; --rule: rgba(255,255,255,.16);
97
107
  --accent-deep: color-mix(in srgb, var(--accent) 45%, #ffffff); }
98
108
  }
99
109
  </style>
@@ -3,118 +3,33 @@
3
3
  <head>
4
4
  <meta charset="utf-8">
5
5
  <meta name="viewport" content="width=device-width, initial-scale=1">
6
- <title>{{worldName}} — the public ledger</title>
6
+ <title>{{productName}} — the public ledger</title>
7
7
  <meta name="description" content="The public ledger of {{worldName}} — {{currency}} spent, works wrought, and the citizens who shape her stones.">
8
8
  <link rel="icon" href="/modules/ui-design/public/brand/favicon.svg" type="image/svg+xml">
9
- <link rel="preconnect" href="https://fonts.googleapis.com">
10
- <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
11
- <link href="https://fonts.googleapis.com/css2?family=Cinzel:wght@500;700&family=EB+Garamond:ital,wght@0,400;0,500;0,600;1,400;1,500&display=swap" rel="stylesheet">
9
+ <link rel="apple-touch-icon" href="/modules/ui-design/public/brand/apple-touch-icon.png">
10
+ <!-- The faces are the pack's: the server (and the off-box mirror) splice the pack's
11
+ font links, palette and favicon at the end of <head> (themeMarkup), so no face
12
+ is named here (task 1005089). -->
12
13
  <link rel="stylesheet" href="/modules/ui-design/public/tokens.css">
13
- <link rel="stylesheet" href="/style.css?v=2026-06-12-wip3">
14
+ <link rel="stylesheet" href="/modules/hall-ui/public/controls.css">
15
+ <link rel="stylesheet" href="/style.css">
14
16
  </head>
15
17
  <body>
16
18
 
17
- <!-- task 1475 (idea 280): a fixed, always-reachable "enlarge the page" control
18
- for readability. Wired + rendered by the zoom block in status.js. -->
19
- <button class="ledger-zoom" id="ledger-zoom" type="button" aria-label="Text size"></button>
20
-
21
- <!-- Hidden SVG sprite — referenced via <use href="#id"> below. -->
22
- <svg width="0" height="0" style="position:absolute" aria-hidden="true">
23
- <defs>
24
- <symbol id="orn-map" viewBox="0 0 32 32">
25
- <g fill="none" stroke="currentColor" stroke-width="1.1" stroke-linecap="round" stroke-linejoin="round">
26
- <polygon points="3,4 11,7 21,4 29,7 29,28 21,25 11,28 3,25"/>
27
- <line x1="11" y1="7" x2="11" y2="28"/>
28
- <line x1="21" y1="4" x2="21" y2="25"/>
29
- <path d="M7 14 Q9 11 11 14 Q13 17 15 14"/>
30
- <path d="M21 10 Q23 8 25 10 Q27 12 25 15"/>
31
- </g>
32
- </symbol>
33
-
34
- <symbol id="sigil-amphora" viewBox="0 0 64 64">
35
- <g fill="none" stroke="currentColor" stroke-width="1.4" stroke-linecap="round" stroke-linejoin="round">
36
- <path d="M22 12 L42 12 L40 16 Q47 20 47 32 Q47 46 40 54 L24 54 Q17 46 17 32 Q17 20 24 16 Z"/>
37
- <path d="M17 22 Q9 24 9 30 Q9 36 16 40"/>
38
- <path d="M47 22 Q55 24 55 30 Q55 36 48 40"/>
39
- <line x1="20" y1="32" x2="44" y2="32"/>
40
- <line x1="20" y1="36" x2="44" y2="36"/>
41
- <line x1="22" y1="12" x2="42" y2="12" stroke-width="2.2"/>
42
- </g>
43
- <g fill="currentColor">
44
- <ellipse cx="32" cy="44" rx="1" ry="1"/>
45
- </g>
46
- </symbol>
47
-
48
- <symbol id="orn-column" viewBox="0 0 32 32">
49
- <g stroke="currentColor" stroke-width="1.1" stroke-linecap="round">
50
- <rect x="4" y="2" width="24" height="2" fill="currentColor" stroke="none"/>
51
- <rect x="6" y="4" width="20" height="2" fill="none"/>
52
- <line x1="9" y1="6" x2="9" y2="26"/>
53
- <line x1="13" y1="6" x2="13" y2="26"/>
54
- <line x1="16" y1="6" x2="16" y2="26"/>
55
- <line x1="19" y1="6" x2="19" y2="26"/>
56
- <line x1="23" y1="6" x2="23" y2="26"/>
57
- <rect x="6" y="26" width="20" height="2" fill="none"/>
58
- <rect x="4" y="28" width="24" height="2" fill="currentColor" stroke="none"/>
59
- </g>
60
- </symbol>
61
-
62
- <symbol id="orn-coin" viewBox="0 0 32 32">
63
- <g fill="none" stroke="currentColor" stroke-width="1.1" stroke-linecap="round" stroke-linejoin="round">
64
- <circle cx="16" cy="16" r="13"/>
65
- <circle cx="16" cy="16" r="10"/>
66
- <path d="M10 20 Q16 12 22 12"/>
67
- </g>
68
- <g fill="currentColor">
69
- <ellipse cx="13" cy="17.5" rx="1.4" ry="0.7" transform="rotate(-35 13 17.5)"/>
70
- <ellipse cx="15.5" cy="14.5" rx="1.4" ry="0.7" transform="rotate(-15 15.5 14.5)"/>
71
- <ellipse cx="19" cy="13" rx="1.4" ry="0.7" transform="rotate(0 19 13)"/>
72
- </g>
73
- </symbol>
74
-
75
- <symbol id="orn-scroll" viewBox="0 0 32 32">
76
- <g fill="none" stroke="currentColor" stroke-width="1.1" stroke-linecap="round" stroke-linejoin="round">
77
- <path d="M8 9 L24 9"/>
78
- <path d="M8 23 L24 23"/>
79
- <ellipse cx="6" cy="16" rx="2.2" ry="7"/>
80
- <ellipse cx="26" cy="16" rx="2.2" ry="7"/>
81
- <line x1="11" y1="13" x2="22" y2="13"/>
82
- <line x1="11" y1="16" x2="22" y2="16"/>
83
- <line x1="11" y1="19" x2="20" y2="19"/>
84
- </g>
85
- <g fill="currentColor">
86
- <ellipse cx="6" cy="16" rx="0.8" ry="2.6"/>
87
- <ellipse cx="26" cy="16" rx="0.8" ry="2.6"/>
88
- </g>
89
- </symbol>
90
-
91
- <symbol id="orn-laurel" viewBox="0 0 32 32">
92
- <g fill="none" stroke="currentColor" stroke-width="1.1" stroke-linecap="round" stroke-linejoin="round">
93
- <path d="M16 29 Q5 24 5 14 Q5 6 11 3"/>
94
- <path d="M16 29 Q27 24 27 14 Q27 6 21 3"/>
95
- <path d="M14 29 L18 29"/>
96
- </g>
97
- <g fill="currentColor">
98
- <ellipse cx="9" cy="22" rx="2.2" ry="1" transform="rotate(60 9 22)"/>
99
- <ellipse cx="6" cy="18" rx="2.2" ry="1" transform="rotate(80 6 18)"/>
100
- <ellipse cx="6" cy="13" rx="2.2" ry="1" transform="rotate(100 6 13)"/>
101
- <ellipse cx="9" cy="8" rx="2.2" ry="1" transform="rotate(130 9 8)"/>
102
- <ellipse cx="23" cy="22" rx="2.2" ry="1" transform="rotate(120 23 22)"/>
103
- <ellipse cx="26" cy="18" rx="2.2" ry="1" transform="rotate(100 26 18)"/>
104
- <ellipse cx="26" cy="13" rx="2.2" ry="1" transform="rotate(80 26 13)"/>
105
- <ellipse cx="23" cy="8" rx="2.2" ry="1" transform="rotate(50 23 8)"/>
106
- </g>
107
- </symbol>
108
-
109
- <symbol id="orn-diamond" viewBox="0 0 12 12">
110
- <rect x="3" y="3" width="6" height="6" transform="rotate(45 6 6)" fill="currentColor"/>
111
- </symbol>
112
- </defs>
113
- </svg>
19
+ <!-- The one top bar (task 1005089): the shared mark and the product name, with the
20
+ text-size control (task 1475, idea 280; wired + rendered by status.js). -->
21
+ <header class="topbar">
22
+ <div class="topbar__inner">
23
+ <span class="topbar__brand">
24
+ <svg class="topbar__mark" viewBox="0 0 200 200" aria-hidden="true"><use href="/modules/ui-design/public/brand/mark.svg#mark"/></svg>
25
+ <span class="topbar__name">{{productName}}</span>
26
+ </span>
27
+ <button class="ledger-zoom" id="ledger-zoom" type="button" aria-label="Text size"></button>
28
+ </div>
29
+ </header>
114
30
 
115
- <header class="herm">
116
- <svg class="herm__sigil" aria-hidden="true"><use href="#sigil-amphora"/></svg>
117
- <h1>{{worldName}}</h1>
31
+ <section class="herm" aria-labelledby="herm-title">
32
+ <h1 id="herm-title">{{worldName}}</h1>
118
33
  <p class="herm__epigraph">The Public Ledger of the City's Making</p>
119
34
  <p class="herm__sub">A shipping container has washed ashore upon the coast south of Athens. About it a new civilization rises. Set out below: the city's affairs, openly recorded.</p>
120
35
  <p class="herm__meta">
@@ -122,18 +37,12 @@
122
37
  <span class="dot" aria-hidden="true">·</span>
123
38
  <span class="herm__updated" id="last-updated">Tablet being consulted…</span>
124
39
  </p>
125
- </header>
126
-
127
- <div class="rule rule--banner" aria-hidden="true">
128
- <svg><use href="#orn-diamond"/></svg>
129
- <svg><use href="#orn-diamond"/></svg>
130
- <svg><use href="#orn-diamond"/></svg>
131
- </div>
40
+ </section>
132
41
 
133
42
  <!-- Sticky themed section nav — #409. Same design language as the hall
134
43
  (public-builders/style.css .hall-nav__*). Built from a SECTIONS constant
135
44
  in status.js. Empty until populated — [hidden] keeps the strip from
136
- flashing as a blank parchment band before chips arrive. -->
45
+ flashing as an empty band before chips arrive. -->
137
46
  <nav id="status-nav" class="status-nav" aria-label="Sections of the ledger" hidden>
138
47
  <div class="status-nav__inner">
139
48
  <ul class="status-nav__list" id="status-nav-list"></ul>
@@ -170,7 +79,6 @@
170
79
 
171
80
  <section class="tablet" id="leader-tablet" aria-labelledby="leader-heading">
172
81
  <div class="tablet__head">
173
- <svg class="tablet__icon" aria-hidden="true"><use href="#orn-laurel"/></svg>
174
82
  <div class="tablet__heading">
175
83
  <h2 id="leader-heading">Architects of {{worldName}}</h2>
176
84
  <p class="tablet__subtitle">Citizens who have set the most stone.</p>
@@ -183,7 +91,6 @@
183
91
 
184
92
  <section class="tablet" id="foundry-tablet" aria-labelledby="foundry-heading">
185
93
  <div class="tablet__head">
186
- <svg class="tablet__icon" aria-hidden="true"><use href="#orn-laurel"/></svg>
187
94
  <div class="tablet__heading">
188
95
  <h2 id="foundry-heading">The Foundry</h2>
189
96
  <p class="tablet__subtitle">How the city's craft is changing — works shipped and time per work over the last ninety days. The whole, not the hands.</p>
@@ -201,7 +108,6 @@
201
108
 
202
109
  <section class="tablet" id="versions-tablet" aria-labelledby="versions-heading">
203
110
  <div class="tablet__head">
204
- <svg class="tablet__icon" aria-hidden="true"><use href="#orn-column"/></svg>
205
111
  <div class="tablet__heading">
206
112
  <h2 id="versions-heading">Works in Progress</h2>
207
113
  <p class="tablet__subtitle">The endeavours now underway in the city.</p>
@@ -214,7 +120,6 @@
214
120
 
215
121
  <section class="tablet" id="cost-tablet" aria-labelledby="cost-heading">
216
122
  <div class="tablet__head">
217
- <svg class="tablet__icon" aria-hidden="true"><use href="#orn-coin"/></svg>
218
123
  <div class="tablet__heading">
219
124
  <h2 id="cost-heading">The Treasury</h2>
220
125
  <p class="tablet__subtitle">{{Currency}} spent, against the value wrought.</p>
@@ -274,7 +179,6 @@
274
179
 
275
180
  <section class="tablet" id="shipped-tablet" aria-labelledby="shipped-heading">
276
181
  <div class="tablet__head">
277
- <svg class="tablet__icon" aria-hidden="true"><use href="#orn-scroll"/></svg>
278
182
  <div class="tablet__heading">
279
183
  <h2 id="shipped-heading">Lately Inscribed</h2>
280
184
  <p class="tablet__subtitle">Newest entries set down upon the ledger.</p>
@@ -293,15 +197,14 @@
293
197
  <li class="empty">No works yet inscribed.</li>
294
198
  </ul>
295
199
  <nav id="shipped-pager" class="shipped-pager" hidden aria-label="Lately Inscribed pages">
296
- <button type="button" id="shipped-prev" class="shipped-pager__btn" aria-label="Previous page">‹ earlier page</button>
200
+ <button type="button" id="shipped-prev" class="btn btn--ghost btn--sm shipped-pager__btn" aria-label="Previous page">‹ earlier page</button>
297
201
  <span id="shipped-pageinfo" class="shipped-pager__info" aria-live="polite">page 1 of 1</span>
298
- <button type="button" id="shipped-next" class="shipped-pager__btn" aria-label="Next page">later page ›</button>
202
+ <button type="button" id="shipped-next" class="btn btn--ghost btn--sm shipped-pager__btn" aria-label="Next page">later page ›</button>
299
203
  </nav>
300
204
  </section>
301
205
 
302
206
  <section class="tablet tablet--wide" id="world-tablet" aria-labelledby="world-heading">
303
207
  <div class="tablet__head">
304
- <svg class="tablet__icon" aria-hidden="true"><use href="#orn-map"/></svg>
305
208
  <div class="tablet__heading">
306
209
  <h2 id="world-heading">The World</h2>
307
210
  <p class="tablet__subtitle">A true-to-life portrait of {{worldName}} as she stands today, rendered from the city's own stones.</p>
@@ -323,9 +226,6 @@
323
226
  </main>
324
227
 
325
228
  <footer class="foot">
326
- <div class="rule rule--small" aria-hidden="true">
327
- <svg><use href="#orn-diamond"/></svg>
328
- </div>
329
229
  <p class="foot__seal">By order of the Senate</p>
330
230
  <!-- task 1002853: every company field is optional, so each clause drops whole when its pack field is empty -->
331
231
  <!--brand-if:companyName--><p>{{worldName}} is the work of <!--brand-if:companySite--><a href="{{companySite}}" target="_blank" rel="noopener"><!--/brand-if:companySite--><strong>{{companyName}}</strong><!--brand-if:companySite--></a><!--/brand-if:companySite--><!--brand-if:companyTagline-->, {{companyTagline}}<!--/brand-if:companyTagline-->.</p><!--/brand-if:companyName-->
@@ -333,7 +233,7 @@
333
233
  </footer>
334
234
 
335
235
  <script src="https://cdn.jsdelivr.net/npm/chart.js@4.4.1/dist/chart.umd.min.js"></script>
336
- <script src="/status.js?v=2026-06-12-wip3"></script>
236
+ <script src="/status.js"></script>
337
237
 
338
238
  </body>
339
239
  </html>
@@ -1,10 +1,10 @@
1
1
  {
2
- "_": "The status page's states for modules/ui-design/kit/render.js (task 1005053, its first): the ledger once its reads have answered, from the stub's public fixtures. The status sheet has no dark rules, so `modes` names light alone and there is no query to walk. The stub ships no world snapshots, so the World tablet keeps its still line: its loader stopped when the snapshot list 404'd, which is the failure path this state pictures. The waiting state itself is looked at with the stub's LATENCY=<ms> (serve.js).",
2
+ "_": "The status page's states for modules/ui-design/kit/render.js (task 1005053, its first): the ledger once its reads have answered, from the stub's public fixtures. Since task 1005089 the sheet is on the chrome world with its dark tier written twice (html[data-theme=\"dark\"] and the prefers-color-scheme twin), so `modes` names both; the page has no switch of its own, so there is no query to walk. The stub ships no world snapshots, so the World tablet keeps its still line: its loader stopped when the snapshot list 404'd, which is the failure path this state pictures. The stub ships no per-version done-when fixture either, and status.js reads each version's criteria best-effort (a failed read leaves the row without them), so those 404s are expected. The waiting state itself is looked at with the stub's LATENCY=<ms> (serve.js).",
3
3
  "page": "/",
4
4
  "surface": "status-ui",
5
- "modes": ["light"],
5
+ "modes": ["dark", "light"],
6
6
  "modeQuery": false,
7
- "ignoreRequests": ["/snapshots/manifest\\.json$", "/api/(gds|bongos)/public/(grades|analytics/ecosystem)", "cdn\\.jsdelivr\\.net"],
7
+ "ignoreRequests": ["/snapshots/manifest\\.json$", "/api/(gds|bongos)/public/(grades|analytics/ecosystem)", "/api/(gds|bongos)/versions/[^/]+/done-when$", "cdn\\.jsdelivr\\.net"],
8
8
  "ignoreConsole": ["status of 404", "snapshots", "ecosystem", "Failed to load resource"],
9
9
  "states": {
10
10
  "loaded": { "auth": false, "actions": [["wait", 600]], "expect": { "visible": ["#versions", "#world-snapshot"], "count": [["#versions .loading-mark", 0], ["#world-snapshot .loading-mark", 0]] } }