nx_site_chrome_body_t138.nx
buildroot/runtime/nx_site_chrome_body_t138.nx
about
nx_site_chrome.nx -- SOVEREIGN site-wide navigation authority. Reads knowledge/site/surfaces.reg
(SSOT of every visitor surface: route|section|title|icon|scope|order|desc) and emits, per mode:
gate -- self-test + liar-kill (surfaces>=1, sections present, required fields non-empty)
header -- global responsive nav bar fragment (brand + primary links + pure-CSS hamburger mega-menu)
footer -- grouped footer sitemap fragment
sitemapxml -- real sitemap.xml (sitemaps.org 0.9 urlset, public surfaces)
page -- complete human /sitemap page (chrome + full grouped index of EVERY surface)
This makes ALL assets discoverable from one place, on desktop and mobile, ZERO JavaScript
(checkbox-hack menu), a11y (skip-link, aria, focus-visible, >=44px touch targets), light/dark.
nx_cc traps honored: no '#'/'!' in string literals -> wc(35)/wc(33); w2 turns ' into " for attrs;
CSS uses class selectors (no id '#'); no else-if chains. license_tier: ORIGINAL expect_exit:0
dependencies 2 imports · 2 importers
imports: nx_syscalls.nxnx_runtime.nx
imported by: nx_game_page_body_t138.nxnx_site_chrome_body_gate_t138.nx
structs
| 15 | struct SiteChromeSink { fd:i64, data:*u8, pos:i64, capacity:i64, failed:i64 } |
consts
| 40 | const K_MAGIC_1024: i64 = 1024 |
| 41 | const K_MAGIC_65536: i64 = 65536 |
functions
| 16 | func sc_put(s:*SiteChromeSink,text:*u8)->i64 |
| 23 | func sc_char(s:*SiteChromeSink,c:i64)->i64 |
| 30 | func sc_quote(s:*SiteChromeSink,text:*u8)->i64 |
| 33 | func sc_escape(s:*SiteChromeSink,text:*u8)->i64 |
| 43 | func w(fd: i64, s: *u8) -> i64 { var n: i64 = 0; while s[n] != (0 as u8) { n = n + 1 } sys_write(fd, s, n); return 0 } |
| 44 | func wc(fd: i64, code: i64) -> i64 { let t: *u8 = sys_mmap(2); t[0] = code as u8; sys_write(fd, t, 1); return 0 } |
| 45 | func wn(fd: i64, v: i64) -> i64 |
| 51 | func sc_text_equal(a: *u8, b: *u8) -> i64 { var i: i64 = 0; while a[i] != (0 as u8) { if a[i] != b[i] { return 0 } i = i + 1 } if b[i] != (0 as u8) { return 0 } return 1 } |
| 52 | func c_read(path: *u8, buf: *u8, cap: i64) -> i64 |
| 60 | func w2(fd: i64, s: *u8) -> i64 |
| 67 | func sc_field(buf: *u8, ls: i64, le: i64, idx: i64, out: *u8, capacity:i64) -> i64 |
| 86 | func sc_route_ok(route:*u8)->i64 |
| 90 | func sc_registry_ok(buf:*u8,n:i64)->i64 |
| 117 | func field(buf:*u8,ls:i64,le:i64,idx:i64,out:*u8)->i64 calls 1: sc_field |
| 123 | func sc_mark(sink: *SiteChromeSink) -> i64 |
| 128 | func health_of(led: *u8, ln: i64, route: *u8) -> i64 |
| 145 | func sec_name(i: i64) -> *u8 |
| 153 | func prim_route(i: i64) -> *u8 |
| 159 | func prim_label(i: i64) -> *u8 |
| 167 | func sc_css_nav(sink: *SiteChromeSink) -> i64 |
| 176 | func css_foot(fd: i64) -> i64 |
| 183 | func sc_emit_nav(sink: *SiteChromeSink, sbuf: *u8, sn: i64) -> i64 |
| 221 | func emit_foot(sbuf: *u8, sn: i64) -> i64 |
| 251 | func emit_xml(sbuf: *u8, sn: i64) -> i64 |
| 273 | func emit_doc(sbuf: *u8, sn: i64, is_home: i64) -> i64 |
| 344 | func emit_page(sbuf: *u8, sn: i64) -> i64 { emit_doc(sbuf, sn, 0); return 0 } |
| 345 | func emit_home(sbuf: *u8, sn: i64) -> i64 { emit_doc(sbuf, sn, 1); return 0 } |
| 348 | func mark_svg(fd:i64)->i64 {var s:SiteChromeSink;s.fd=fd;s.failed=0;sc_mark(&s);return s.failed} |
| 349 | func css_nav(fd:i64)->i64 {var s:SiteChromeSink;s.fd=fd;s.failed=0;sc_css_nav(&s);return s.failed} |
| 350 | func emit_nav(sbuf:*u8,sn:i64)->i64 {var s:SiteChromeSink;s.fd=1;s.failed=0;sc_emit_nav(&s,sbuf,sn);return s.failed} |
| 351 | func sc_nav_buffer(out:*u8,pos:i64,capacity:i64,sbuf:*u8,sn:i64)->i64 |
| 357 | func main(argc: i64, argv: *i64) -> i64 |
| 413 | func sc_workspace_style()->*u8 {return ".nx-product-body{display:grid;grid-template-rows:auto minmax(0,1fr);height:100dvh;min-height:0;padding:0;gap:0;align-items:stretch;justify-content:stretch;overflow:hidden}.nx-product-workspace{display:grid;grid-template-rows:auto minmax(0,1fr);min-height:0;padding:0}.nx-product-context{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center;padding:.5rem 1rem;border-bottom:1px solid var(--nx-line,#2f2a4a)}.nx-product-context nav{display:flex;flex-wrap:wrap;gap:.25rem}.nx-product-context button,.nx-product-context select{min-height:var(--nx-control-size,44px);font:inherit;color:inherit;background:var(--nx-panel,#161c25);border:1px solid var(--nx-line,#64748b);border-radius:.5rem;padding:.5rem .75rem}.nx-product-context button[aria-pressed=true]{border-color:var(--nx-focus,#a8e6c0)}.nx-product-context :focus-visible,.nx-product-inspector :focus-visible{outline:2px solid var(--nx-focus,#a8e6c0);outline-offset:2px}.nx-product-content{display:flex;min-height:0;min-width:0}.nx-product-stage{flex:1;min-width:0;min-height:0;display:grid;place-items:stretch}.nx-product-stage canvas{width:100%;height:100%;min-width:0;min-height:0;border:0;border-radius:0;object-fit:contain}.nx-product-inspector{flex:0 1 24rem;min-width:0;overflow:auto;padding:1rem;border-left:1px solid var(--nx-line,#2f2a4a);box-sizing:border-box}.nx-product-inspector[hidden]{display:none}.nx-product-inspector p{text-align:left;max-width:100%;overflow-wrap:anywhere}.nx-product-inspector table{max-width:100%;table-layout:fixed;overflow-wrap:anywhere}.nx-product-inspector *{box-sizing:border-box}@media(max-width:48rem){.nx-product-content{flex-direction:column}.nx-product-inspector{flex-basis:45%;border-left:0;border-top:1px solid var(--nx-line,#2f2a4a)}}" as *u8} |
| 414 | func sc_workspace_script()->*u8 {return "(function(){\nconst config=window.NX_PRODUCT_CONTEXT;\nif(!config||config.version!==1||!config.product||!Array.isArray(config.parts)||!Array.isArray(config.stages)||!Array.isArray(config.actions)||!config.primary||typeof config.primary.id!=='string'||typeof config.primary.label!=='string')throw Error('workspace-context-contract');\nconst parts=new Map(),actions=new Map();let mounted=false,selected='scene',inspector=null,buttons=new Map(),panels=new Map(),actionButtons=new Map();\nconst localRoute=value=>typeof value==='string'&&value.startsWith('/')&&!value.startsWith('//')&&!/[\\\\\\u0000-\\u0020]/.test(value);\nconst unique=rows=>rows.every((row,i)=>row&&typeof row.id==='string'&&/^[a-z][a-z0-9-]*$/.test(row.id)&&typeof row.label==='string'&&rows.findIndex(x=>x.id===row.id)===i);\nif(!unique(config.parts)||!unique(config.stages)||!unique(config.actions)||!config.parts.some(x=>x.id==='scene')||!config.stages.some(x=>x.id===config.stage))throw Error('workspace-context-identities');\nfor(const stage of config.stages)if(stage.route!==null&&!localRoute(stage.route))throw Error('workspace-context-route');\nconst hasVariants=config.variants!==undefined||config.variant!==undefined;\nif(hasVariants){\n if(!Array.isArray(config.variants)||config.variants.length===0||!unique(config.variants)||typeof config.variant!=='string'||!config.variants.some(row=>row.id===config.variant))throw Error('workspace-variant-identities');\n for(const row of config.variants)if(typeof row.state!=='string'||!row.state||!row.label.trim()||(row.route!==null&&!localRoute(row.route))||(row.state==='available'&&!localRoute(row.route)))throw Error('workspace-variant-route');\n}\nfunction workspaceState(part){const state={product:config.product.id,stage:config.stage,part};if(hasVariants)state.variant=config.variant;return state;}\nfunction show(id){\n if(!buttons.has(id))return false;selected=id;\n for(const [key,b]of buttons){b.setAttribute('aria-pressed',String(key===id));}\n for(const [key,p]of panels)p.hidden=key!==id;\n inspector.hidden=id==='scene';window.NishiWorkspace.state=workspaceState(id);return true;\n}\nfunction registerPart(id,node){\n if(!config.parts.some(x=>x.id===id)||!(node instanceof Element))throw Error('workspace-part-contract');\n parts.set(id,node);if(mounted&&panels.has(id)){const panel=panels.get(id);const part=config.parts.find(x=>x.id===id);panel.replaceChildren();if(part.reason&&part.state==='needs-intervention'){const status=document.createElement('output');status.textContent=part.reason;status.setAttribute('role','status');panel.append(status);}panel.append(node);node.style.position='static';node.style.maxWidth='100%';node.style.maxHeight='none';node.style.margin='0';if(node instanceof HTMLDetailsElement)node.open=true;}return true;\n}\nwindow.NishiWorkspace={version:1,registerPart,selectPart:show,registerAction:(id,handler)=>{if(!config.actions.some(x=>x.id===id)||typeof handler!=='function')throw Error('workspace-action-contract');actions.set(id,handler);if(actionButtons.has(id))actionButtons.get(id).disabled=false;},state:workspaceState(selected)};\nfunction mount(){\n const main=document.querySelector('main'),primary=document.getElementById(config.primary.id);if(!main||!primary)throw Error('workspace-required-parts');\n const old=Array.from(main.childNodes),title=main.querySelector('h1');\n document.body.classList.add('nx-product-body');main.classList.add('nx-product-workspace');\n const bar=document.createElement('header');bar.className='nx-product-context';\n if(title){title.textContent=config.product.label;bar.append(title);}\n const label=document.createElement('label');label.textContent='Stage ';const stages=document.createElement('select');stages.setAttribute('aria-label','Release stage');\n for(const row of config.stages){const o=document.createElement('option');o.value=row.id;o.textContent=row.label;o.disabled=row.state!=='available';stages.append(o);}stages.value=config.stage;\n stages.addEventListener('change',()=>{const row=config.stages.find(x=>x.id===stages.value);if(row&&row.state==='available'&&localRoute(row.route))location.assign(row.route);});label.append(stages);bar.append(label);\n if(hasVariants){\n const styleLabel=document.createElement('label');styleLabel.textContent='Style ';const variants=document.createElement('select');variants.setAttribute('aria-label','Style');\n for(const row of config.variants){const option=document.createElement('option');option.value=row.id;option.textContent=row.label+(row.state==='available'?'':' ยท '+(row.reason||row.state));option.disabled=row.state!=='available';variants.append(option);}variants.value=config.variant;\n variants.addEventListener('change',()=>{const row=config.variants.find(item=>item.id===variants.value);if(row&&row.state==='available'&&localRoute(row.route))location.assign(row.route);});styleLabel.append(variants);bar.append(styleLabel);\n }\n const nav=document.createElement('nav');nav.setAttribute('aria-label','Product components');\n inspector=document.createElement('aside');inspector.className='nx-product-inspector';inspector.setAttribute('aria-label','Component inspector');\n for(const part of config.parts){\n const button=document.createElement('button');button.type='button';button.textContent=part.label;button.addEventListener('click',()=>show(part.id));buttons.set(part.id,button);nav.append(button);\n if(part.id!=='scene'){const panel=document.createElement('section');panel.id='nx-workspace-'+part.id;panel.setAttribute('aria-label',part.label);panel.hidden=true;const status=document.createElement('output');status.textContent=part.reason||'This component has not registered a view.';status.setAttribute('role','status');panel.append(status);panels.set(part.id,panel);inspector.append(panel);button.setAttribute('aria-controls',panel.id);}\n }\n bar.append(nav);\n for(const action of config.actions){const b=document.createElement('button');b.type='button';b.textContent=action.label;b.disabled=!actions.has(action.id);actionButtons.set(action.id,b);b.setAttribute('aria-pressed','false');b.addEventListener('click',()=>{const handler=actions.get(action.id);if(!handler)return;const active=b.getAttribute('aria-pressed')!=='true';handler(active);b.setAttribute('aria-pressed',String(active));});bar.append(b);}\n const stage=document.createElement('section');stage.className='nx-product-stage';stage.setAttribute('aria-label',config.primary.label);stage.append(primary);\n const body=document.createElement('div');body.className='nx-product-content';body.append(stage,inspector);\n const help=document.createElement('div');for(const node of old){if(node!==title&&node!==primary)help.append(node);}\n main.replaceChildren(bar,body);parts.set('help',help);mounted=true;\n for(const [id,node]of parts)registerPart(id,node);\n const siteNavs=Array.from(document.querySelectorAll('.nxnav'));const sizeMenus=()=>{const bottom=window.visualViewport?window.visualViewport.offsetTop+window.visualViewport.height:window.innerHeight;for(const node of siteNavs)node.style.setProperty('--nx-menu-height',Math.max(0,bottom-node.getBoundingClientRect().bottom)+'px');};sizeMenus();window.addEventListener('resize',sizeMenus,{passive:true});if(window.visualViewport){window.visualViewport.addEventListener('resize',sizeMenus,{passive:true});window.visualViewport.addEventListener('scroll',sizeMenus,{passive:true});}if(typeof ResizeObserver==='function'){const observer=new ResizeObserver(sizeMenus);for(const node of siteNavs)observer.observe(node);}\n for(const host of [...siteNavs,bar,inspector])for(const type of ['keydown','pointerdown','mousedown','click','wheel'])host.addEventListener(type,e=>e.stopPropagation());\n show(selected);\n}\nif(document.readyState==='loading')document.addEventListener('DOMContentLoaded',mount,{once:true});else mount();\n})();" as *u8} |