╭ changed ────────╮ │src/main_wasm.zig│ ╰─────────────────╯ ╭───────────╮ │← all files│ ╰───────────╯ ╭───────────────────────────────────────────────────────────────────────────────────╮ │52 // apply actions queued during input. the wasm path has no repo, so this is│ │53 // in-memory only; logged-in web persistence goes through the /ansi POST. │ │54 session.applyPending(); │ │55 - │ │55 // bind the UI to the browser viewport (cols x rows) like the terminal: │ │56 // min == max height fills it exactly, and each Scroll clips to its │ │57 // viewport while handing its full content to a native-scrollable element. │ ╰───────────────────────────────────────────────────────────────────────────────────╯ ╭───────────────────────────────────────────────────────────────────────────────────╮ │168 extern fn _focusInput(focus_id: u32) void; │ │169 extern fn _navigate(arg: [*]const u8, len: u32) void; │ │170 extern fn _scrollToFocus(focus_id: u32) void; │ │172 - │ │171 /// js calls this first to get a wasm pointer it can write the page json into.│ │172 export fn _alloc(len: u32) ?[*]u8 { │ │173 const slice = allocator.alloc(u8, len) catch return null; │ ╰───────────────────────────────────────────────────────────────────────────────────╯