╭──────────╮ │← previous│ ╰──────────╯ ╭ changed ─────────────╮ │src/ui/Repo/Header.zig│ ╰──────────────────────╯ ╭────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │238 │ │239 // patches tab │ │240 { │ │241 - var text_box = try wgt.TextBox.init(allocator, patches_tab_label, .{ .border_style = .single, .round_corners = true, .wrap_kind = .none });│ │241 + var text_box = try wgt.TextBox.init(allocator, patches_tab_label, .{ .border = .single, .round_corners = true, .wrap_kind = .none }); │ │242 errdefer text_box.deinit(allocator); │ │243 text_box.getFocus().mode = .all; │ │244 text_box.getFocus().kind = .{ .custom = patches_link }; │ ╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ ╭────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │253 │ │254 // discuss tab │ │255 { │ │256 - var text_box = try wgt.TextBox.init(allocator, discuss_tab_label, .{ .border_style = .single, .round_corners = true, .wrap_kind = .none });│ │256 + var text_box = try wgt.TextBox.init(allocator, discuss_tab_label, .{ .border = .single, .round_corners = true, .wrap_kind = .none }); │ │257 errdefer text_box.deinit(allocator); │ │258 text_box.getFocus().mode = .all; │ │259 text_box.getFocus().kind = .{ .custom = discussions_link }; │ ╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ ╭───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │268 │ │269 // events, which a server only shows to whoever it shows undo to │ │270 if (page.handle.canWrite()) { │ │271 - var text_box = try wgt.TextBox.init(allocator, events_tab_label, .{ .border_style = .single, .round_corners = true, .wrap_kind = .none });│ │271 + var text_box = try wgt.TextBox.init(allocator, events_tab_label, .{ .border = .single, .round_corners = true, .wrap_kind = .none }); │ │272 errdefer text_box.deinit(allocator); │ │273 text_box.getFocus().mode = .all; │ │274 text_box.getFocus().kind = .{ .custom = events_link }; │ ╰───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ ╭─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │283 │ │284 if (page.undo != null) { │ │285 const route = ui.RoutablePage.repoUndoRoute(identity, null) orelse return error.RouteTooLong; │ │286 - var text_box = try wgt.TextBox.init(allocator, "undo", .{ .border_style = .single, .round_corners = true, .wrap_kind = .none });│ │286 + var text_box = try wgt.TextBox.init(allocator, "undo", .{ .border = .single, .round_corners = true, .wrap_kind = .none }); │ │287 errdefer text_box.deinit(allocator); │ │288 text_box.getFocus().mode = .all; │ │289 text_box.getFocus().kind = .{ .custom = try ui.inPageTabLink(session, route, current_tag == .repo_undo) }; │ ╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ ╭─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │298 │ │299 if (page.settings != null) { │ │300 const route = ui.RoutablePage.repoRepoRoute(identity) orelse return error.RouteTooLong; │ │301 - var text_box = try wgt.TextBox.init(allocator, ui.Repo.Settings.tab_label, .{ .border_style = .single, .round_corners = true, .wrap_kind = .none });│ │301 + var text_box = try wgt.TextBox.init(allocator, ui.Repo.Settings.tab_label, .{ .border = .single, .round_corners = true, .wrap_kind = .none }); │ │302 errdefer text_box.deinit(allocator); │ │303 text_box.getFocus().mode = .all; │ │304 text_box.getFocus().kind = .{ .custom = try ui.inPageTabLink(session, route, current_tag == .repo_repo) }; │ ╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ ╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │325 │ │326 // new repo tab with a login, new user tab without one outside local mode │ │327 if (session.data.user_id != null) { │ │328 - var text_box = try wgt.TextBox.init(allocator, new_tab_label, .{ .border_style = .single, .round_corners = true, .wrap_kind = .none, .bottom_label = new_repo_tab_bottom_label }); │ │328 + var text_box = try wgt.TextBox.init(allocator, new_tab_label, .{ .border = .single, .round_corners = true, .wrap_kind = .none, .bottom_label = .{ .text = new_repo_tab_bottom_label } });│ │329 errdefer text_box.deinit(allocator); │ │330 text_box.getFocus().mode = .all; │ │331 text_box.getFocus().kind = .{ .custom = new_repo_link }; │ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ ╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │337 .min_size = .{ .width = new_tab_label.len + 2, .height = null }, │ │338 }); │ │339 } else if (session.data.host_kind == .server) { │ │340 - var text_box = try wgt.TextBox.init(allocator, new_tab_label, .{ .border_style = .single, .round_corners = true, .wrap_kind = .none, .bottom_label = new_user_tab_bottom_label }); │ │340 + var text_box = try wgt.TextBox.init(allocator, new_tab_label, .{ .border = .single, .round_corners = true, .wrap_kind = .none, .bottom_label = .{ .text = new_user_tab_bottom_label } });│ │341 errdefer text_box.deinit(allocator); │ │342 text_box.getFocus().mode = .all; │ │343 text_box.getFocus().kind = .{ .custom = new_user_link }; │ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ ╭────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │353 // user tab. local mode has no users, so it has none. │ │354 if (session.data.host_kind == .server) { │ │355 const label = ui.UserLogout.tabLabel(session); │ │356 - var text_box = try wgt.TextBox.init(allocator, label, .{ .border_style = .single, .round_corners = true, .wrap_kind = .none });│ │356 + var text_box = try wgt.TextBox.init(allocator, label, .{ .border = .single, .round_corners = true, .wrap_kind = .none }); │ │357 errdefer text_box.deinit(allocator); │ │358 text_box.getFocus().mode = .all; │ │359 text_box.getFocus().kind = .{ .custom = user_link }; │ ╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ ╭────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │368 │ │369 // quit tab │ │370 if (session.is_terminal) { │ │371 - var text_box = try wgt.TextBox.init(allocator, ui.Quit.tab_label, .{ .border_style = .single, .round_corners = true, .wrap_kind = .none });│ │371 + var text_box = try wgt.TextBox.init(allocator, ui.Quit.tab_label, .{ .border = .single, .round_corners = true, .wrap_kind = .none }); │ │372 errdefer text_box.deinit(allocator); │ │373 text_box.getFocus().mode = .all; │ │374 text_box.getFocus().kind = .{ .custom = ui.Quit.tab_kind }; │ ╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ ╭ changed ───────────────╮ │src/ui/Repo/Markdown.zig│ ╰────────────────────────╯ ╭─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │116 pub fn init(allocator: std.mem.Allocator, text: []const u8, label: []const u8, bottom_label: []const u8, page_arena: *std.heap.ArenaAllocator) !Frame { │ │117 const doc = try md.parseText(page_arena.allocator(), text); │ │118 │ │119 - var box = try wgt.Box(ui.Widget).init(allocator, .{ .border_style = .single, .round_corners = true, .direction = .vert, .label = label, .bottom_label = bottom_label }); │ │119 + var box = try wgt.Box(ui.Widget).init(allocator, .{ .border = .single, .round_corners = true, .direction = .vert, .top_label = .{ .text = label }, .bottom_label = .{ .text = bottom_label } });│ │120 errdefer box.deinit(allocator); │ │121 var markdown = try View.init(allocator, doc, null, "", page_arena); │ │122 errdefer markdown.deinit(allocator); │ ╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ ╭──────╮ │next →│ ╰──────╯