code wiki / (root) / nx_site_chrome_composable_t48.nx

nx_site_chrome_composable_t48.nx

buildroot/runtime/nx_site_chrome_composable_t48.nx

36670 B416 linesdepth 2pulls 2 transitivereach 14 importersview sourcekind librarytopic site
docsdependenciesstructsconstsfunctions

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 1 imports · 5 importers

nx_syscalls.nx nx_site_chrome_composable_t48. nx_game_page_authored_material_t54 nx_game_page_workspace_body_t49.nx nx_game_page_workspace_body_t59.nx nx_game_page_workspace_t48.nx nx_site_chrome_composable_gate_t48

imports: nx_syscalls.nx

imported by: nx_game_page_authored_material_t54.nxnx_game_page_workspace_body_t49.nxnx_game_page_workspace_body_t59.nxnx_game_page_workspace_t48.nxnx_site_chrome_composable_gate_t48.nx

structs

14struct SiteChromeSink { fd:i64, data:*u8, pos:i64, capacity:i64, failed:i64 }

consts

39const K_MAGIC_1024: i64 = 1024
40const K_MAGIC_65536: i64 = 65536

functions

15func sc_put(s:*SiteChromeSink,text:*u8)->i64
called by 2: sc_escapesc_emit_nav calls 1: sys_write
22func sc_char(s:*SiteChromeSink,c:i64)->i64
called by 2: sc_quotesc_escape calls 1: sys_write
29func sc_quote(s:*SiteChromeSink,text:*u8)->i64
32func sc_escape(s:*SiteChromeSink,text:*u8)->i64
called by 1: sc_emit_nav calls 2: sc_putsc_char
42func 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 }
called by 2: wnemit_foot calls 1: sys_write
43func wc(fd: i64, code: i64) -> i64 { let t: *u8 = sys_mmap(2); t[0] = code as u8; sys_write(fd, t, 1); return 0 }
called by 1: w2 calls 2: sys_mmapsys_write
44func wn(fd: i64, v: i64) -> i64
50func streq(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 }
51func c_read(path: *u8, buf: *u8, cap: i64) -> i64
59func w2(fd: i64, s: *u8) -> i64
called by 3: css_footemit_footemit_xml calls 1: wc
66func sc_field(buf: *u8, ls: i64, le: i64, idx: i64, out: *u8, capacity:i64) -> i64
85func sc_route_ok(route:*u8)->i64
called by 2: mainsc_registry_ok
89func sc_registry_ok(buf:*u8,n:i64)->i64
116func field(buf:*u8,ls:i64,le:i64,idx:i64,out:*u8)->i64
calls 1: sc_field
122func sc_mark(sink: *SiteChromeSink) -> i64
called by 1: sc_emit_nav calls 1: sc_quote
127func health_of(led: *u8, ln: i64, route: *u8) -> i64
144func sec_name(i: i64) -> *u8
152func prim_route(i: i64) -> *u8
called by 1: sc_emit_nav
158func prim_label(i: i64) -> *u8
called by 1: sc_emit_nav
166func sc_css_nav(sink: *SiteChromeSink) -> i64
called by 1: sc_emit_nav calls 1: sc_quote
175func css_foot(fd: i64) -> i64
called by 1: emit_foot calls 1: w2
182func sc_emit_nav(sink: *SiteChromeSink, sbuf: *u8, sn: i64) -> i64
223func emit_foot(sbuf: *u8, sn: i64) -> i64
253func emit_xml(sbuf: *u8, sn: i64) -> i64
calls 3: sys_mmapw2streq
275func emit_doc(sbuf: *u8, sn: i64, is_home: i64) -> i64
346func emit_page(sbuf: *u8, sn: i64) -> i64 { emit_doc(sbuf, sn, 0); return 0 }
347func emit_home(sbuf: *u8, sn: i64) -> i64 { emit_doc(sbuf, sn, 1); return 0 }
350func mark_svg(fd:i64)->i64 {var s:SiteChromeSink;s.fd=fd;s.failed=0;sc_mark(&s);return s.failed}
351func css_nav(fd:i64)->i64 {var s:SiteChromeSink;s.fd=fd;s.failed=0;sc_css_nav(&s);return s.failed}
352func 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}
353func sc_nav_buffer(out:*u8,pos:i64,capacity:i64,sbuf:*u8,sn:i64)->i64
359func main(argc: i64, argv: *i64) -> i64
415func 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}
416func 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');\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={product:config.product.id,stage:config.stage,part: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:{product:config.product.id,stage:config.stage,part: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 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 for(const host of [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}