╭ changed ────────╮ │src/main_wasm.zig│ ╰─────────────────╯ ╭───────────╮ │← all files│ ╰───────────╯ ╭──────────────────────────────────────────────────────────────────────────────────────────────────╮ │53 // in-memory only; logged-in web persistence goes through the /ansi POST. │ │54 session.applyPending(); │ │55 │ │56 + // bind the UI to the browser viewport (cols x rows) like the terminal: │ │57 + // min == max height fills it exactly, and each Scroll clips to its │ │58 + // viewport while handing its full content to a native-scrollable element. │ │59 + // a full-height page instead grows to its content and the browser scrolls │ │60 + // the whole page, which the overlay's absolute positions track. │ │61 + const max_height: ?u32 = if (session.data.current_page.fullHeight()) null else min_height;│ │62 try root_ptr.build(allocator, .{ │ │57 - // bind the UI to the browser viewport (cols x rows) like the terminal: │ │58 - // min == max height fills it exactly, and each Scroll clips to its │ │59 - // viewport while handing its full content to a native-scrollable element. │ │63 .min_size = .{ .width = null, .height = min_height }, │ │61 - .max_size = .{ .width = max_width, .height = min_height }, │ │64 + .max_size = .{ .width = max_width, .height = max_height }, │ │65 }, root_ptr.getFocus()); │ │66 │ │67 // mirror the page Header settled on into the browser URL. these are │ ╰──────────────────────────────────────────────────────────────────────────────────────────────────╯