╭ changed ────────╮ │src/ui/widget.zig│ ╰─────────────────╯ ╭───────────╮ │← all files│ ╰───────────╯ ╭─────────────────────────────────────────────────────────────────────────╮ │76 new_user: ui.NewUser.View, │ │77 user_login: ui.UserLogin.View, │ │78 user_settings: ui.UserSettings.View, │ │79 + user_notifications: ui.UserNotifications.View, │ │80 footer: Footer, │ │81 │ │82 pub fn deinit(self: *Widget, allocator: std.mem.Allocator) void {│ ╰─────────────────────────────────────────────────────────────────────────╯ ╭───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │118 // whether moving up should return to the page header │ │119 pub fn atTop(self: *Widget, root_focus: *Focus) bool { │ │120 return switch (self.*) { │ │120 - inline .home_about, .home_users, .user_repos, .flow_box_scroll, .new_repo, .new_user, .user_login, .user_settings, .quit, .repo_files, .repo_commits, .diff_view, .repo_refs, .repo_issues, .repo_patches, .repo_discussions, .repo_events, .repo_undo, .repo_settings, .repo_settings_form, .repo_roles => |*view| view.atTop(), │ │121 - inline .repo_patch_detail => |*view| view.atTop(root_focus), │ │121 + inline .home_about, .home_users, .user_repos, .flow_box_scroll, .new_repo, .new_user, .user_login, .user_notifications, .quit, .repo_files, .repo_commits, .diff_view, .repo_refs, .repo_issues, .repo_patches, .repo_discussions, .repo_events, .repo_undo, .repo_settings, .repo_settings_form, .repo_roles => |*view| view.atTop(),│ │122 + inline .repo_patch_detail, .user_settings => |*view| view.atTop(root_focus), │ │123 else => false, │ │124 }; │ │125 } │ ╰───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ ╭────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │383 │ │384 // one flow item: its display text plus an optional link and bottom label. a │ │385 // non-empty `link` sets the item's focus kind such as `.{ .custom = "a:/user/foo" }`, │ │385 - // which the web renderer turns into an anchor. │ │386 - pub const Item = struct { text: []const u8, link: []const u8 = "", bottom_label: []const u8 = "" }; │ │386 + // which the web renderer turns into an anchor. `bold` covers the text and the label. │ │387 + pub const Item = struct { text: []const u8, link: []const u8 = "", bottom_label: []const u8 = "", bold: bool = false };│ │388 │ │389 // the text box copies the item text; links and bottom labels are copied into │ │390 // the arena, so the caller's slices needn't outlive this call. │ ╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ ╭───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │401 self.focus.child_id = null; │ │402 │ │403 for (items) |item| { │ │403 - var text_box = try wgt.TextBox.init(allocator, item.text, .{ .border = .hidden, .round_corners = true, .wrap_kind = .word, .bottom_label = .{ .text = try aa.dupe(u8, item.bottom_label) } }); │ │404 + const style: Grid.Style = .{ .bold = item.bold }; │ │405 + var text_box = try wgt.TextBox.init(allocator, item.text, .{ .border = .hidden, .round_corners = true, .wrap_kind = .word, .bottom_label = .{ .text = try aa.dupe(u8, item.bottom_label), .style = style }, .style = style });│ │406 errdefer text_box.deinit(allocator); │ │407 text_box.getFocus().mode = .all; │ │408 │ ╰───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯