code wiki / _hdl_build / nx_connect_ui.nx

nx_connect_ui.nx

buildroot/runtime/_hdl_build/nx_connect_ui.nx

27907 B417 linesdepth 0pulls 0 transitivereach 10 importersview sourcekind librarytopic connect
docsdependenciesstructsconstsfunctions

about

nx_connect_ui.nx -- the CONNECT APP-TIER UI emitter. PURE EMIT: no main, no syscalls, no imports, so a LIVE REQUEST-SERVING DAEMON can compose it per request (the reason it is not nx_ui_kit: that organ is a file->file CLI with a main(), a hardcoded ops nav, and a disk read per page -- structurally unusable inside an accept loop, and unimportable because of the main()). TOKEN SSOT: this kit carries the canonical sovereign design system knowledge/registry/nishi_ds.css token vocabulary VERBATIM (--bg/--surface/--surface-2/--border/--text/--muted/--faint/--accent/--good/ --warn/--bad/--shadow, fluid --fs-0..4, --sp-1..7, --radius, --dur) so CONNECT inherits the same design language as every other Nishi surface instead of drifting into a private palette. What it ADDS is the APP tier that a dashboard design system has no vocabulary for: tab navigation with aria-current, gradient avatars, roster rows, chat bubbles carrying a translation + correction line, a real composer, action banners, labelled meters, and empty states. ACCESSIBILITY BY CONSTRUCTION: every page gets lang, a skip-link, semantic header/nav/main/footer, real label[for]/control[id] pairing, aria-current on the active tab, role=status on action banners, and :focus-visible rings. Dual light/dark via prefers-color-scheme; motion honours prefers-reduced-motion. ZERO JavaScript and ZERO external assets (no CDN font, no remote image) -- avatars are computed gradients and icons are inline SVG, so the app renders identically offline, on a low-bandwidth link, and inside our own Nishi browser engine. Consumers: _hdl_build/nx_connect_serve (the live app core) + _hdl_build/nx_connect_ui_gate (the gate). license_tier: ORIGINAL

dependencies 0 imports · 2 importers

nx_connect_ui.nx nx_connect_serve.nx nx_connect_ui_gate.nx

imports: none

imported by: nx_connect_serve.nxnx_connect_ui_gate.nx

structs

none

consts

none

functions

26func cu_slen(s: *u8) -> i64 { var n: i64 = 0; while s[n] != (0 as u8) { n = n + 1 } return n }
called by 1: g_count
29func cu_puts(buf: *u8, off: i64, s: *u8) -> i64
40func cu_putn(buf: *u8, off: i64, v: i64) -> i64
58func cu_esc(buf: *u8, off: i64, s: *u8) -> i64
75func cu_css_tokens(buf: *u8, off: i64) -> i64
called by 1: cu_head calls 1: cu_puts
85func cu_css_base(buf: *u8, off: i64) -> i64
called by 1: cu_head calls 1: cu_puts
100func cu_css_app(buf: *u8, off: i64) -> i64
called by 1: cu_head calls 1: cu_puts
113func cu_css_chat(buf: *u8, off: i64) -> i64
called by 1: cu_head calls 1: cu_puts
123func cu_css_form(buf: *u8, off: i64) -> i64
called by 1: cu_head calls 1: cu_puts
136func cu_head(buf: *u8, off: i64, title: *u8) -> i64
151func cu_bar_open(buf: *u8, off: i64, brand: *u8, href: *u8) -> i64
called by 2: cs_shell_openmain calls 1: cu_puts
162func cu_tab(buf: *u8, off: i64, label: *u8, href: *u8, current: i64) -> i64
called by 1: main calls 1: cu_puts
173func cu_bar_close(buf: *u8, off: i64) -> i64 { return cu_puts(buf, off, "</nav></div></header><main id=\"main\"><div class=\"wrap\">" as *u8) }
called by 2: cs_shell_openmain calls 1: cu_puts
176func cu_foot(buf: *u8, off: i64, note: *u8) -> i64
called by 2: cs_footmain calls 1: cu_puts
186func cu_h1(buf: *u8, off: i64, title: *u8, lede: *u8) -> i64
193func cu_h2(buf: *u8, off: i64, text: *u8) -> i64
198func cu_note(buf: *u8, off: i64, html: *u8) -> i64
203func cu_empty(buf: *u8, off: i64, text: *u8) -> i64
210func cu_banner(buf: *u8, off: i64, kind: i64, title: *u8, body: *u8) -> i64
225func cu_badge(buf: *u8, off: i64, kind: i64, label: *u8) -> i64
237func cu_grid_open(buf: *u8, off: i64) -> i64 { return cu_puts(buf, off, "<div class=\"grid\">" as *u8) }
called by 1: cs_page_home calls 1: cu_puts
238func cu_grid_close(buf: *u8, off: i64) -> i64 { return cu_puts(buf, off, "</div>" as *u8) }
called by 1: cs_page_home calls 1: cu_puts
239func cu_card_open(buf: *u8, off: i64) -> i64 { return cu_puts(buf, off, "<section class=\"card\">" as *u8) }
240func cu_card_close(buf: *u8, off: i64) -> i64 { return cu_puts(buf, off, "</section>" as *u8) }
254func cu_stat(buf: *u8, off: i64, value: i64, label: *u8) -> i64
called by 1: cs_page_home calls 2: cu_putscu_putn
262func cu_rows_open(buf: *u8, off: i64) -> i64 { return cu_puts(buf, off, "<ul class=\"rows\">" as *u8) }
263func cu_rows_close(buf: *u8, off: i64) -> i64 { return cu_puts(buf, off, "</ul>" as *u8) }
269func cu_avatar(buf: *u8, off: i64, name: *u8, small: i64) -> i64
292func cu_person(buf: *u8, off: i64, name: *u8, meta: *u8, bkind: i64, blabel: *u8) -> i64
304func cu_thread_open(buf: *u8, off: i64) -> i64 { return cu_puts(buf, off, "<ul class=\"thread\">" as *u8) }
called by 2: cs_page_chatmain calls 1: cu_puts
305func cu_thread_close(buf: *u8, off: i64) -> i64 { return cu_puts(buf, off, "</ul>" as *u8) }
called by 2: cs_page_chatmain calls 1: cu_puts
309func cu_bubble_open(buf: *u8, off: i64, name: *u8, own: i64, text: *u8) -> i64
321func cu_bubble_tr(buf: *u8, off: i64, tr: *u8) -> i64
called by 2: cs_msg_rendermain calls 2: cu_putscu_esc
327func cu_bubble_corr(buf: *u8, off: i64, corr: *u8) -> i64
called by 2: cs_msg_rendermain calls 2: cu_putscu_esc
332func cu_bubble_close(buf: *u8, off: i64) -> i64 { return cu_puts(buf, off, "</div></li>" as *u8) }
called by 2: cs_msg_rendermain calls 1: cu_puts
335func cu_meter(buf: *u8, off: i64, label: *u8, value: i64, max: i64) -> i64
350func cu_form_open(buf: *u8, off: i64, action: *u8) -> i64
357func cu_input(buf: *u8, off: i64, id: *u8, label: *u8, ph: *u8, maxlen: i64) -> i64
374func cu_input_typed(buf: *u8, off: i64, id: *u8, label: *u8, ph: *u8, maxlen: i64, itype: *u8, ac: *u8) -> i64
393func cu_select_open(buf: *u8, off: i64, id: *u8, label: *u8) -> i64
404func cu_option(buf: *u8, off: i64, value: *u8, label: *u8) -> i64
411func cu_select_close(buf: *u8, off: i64) -> i64 { return cu_puts(buf, off, "</select></div>" as *u8) }
412func cu_submit(buf: *u8, off: i64, text: *u8) -> i64
417func cu_form_close(buf: *u8, off: i64) -> i64 { return cu_puts(buf, off, "</form>" as *u8) }