╭ changed ───────────────╮ │src/ui/widget/thread.zig│ ╰────────────────────────╯ ╭───────────╮ │← all files│ ╰───────────╯ ╭──────────╮ │← previous│ ╰──────────╯ ╭────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │1774 │ │1775 // frame the detail pane inside the master-detail split │ │1776 { │ │1777 - var frame = try wgt.Box(Widget).init(allocator, .{ .border_style = .hidden, .direction = .vert });│ │1777 + var frame = try wgt.Box(Widget).init(allocator, .{ .border = .hidden, .direction = .vert }); │ │1778 errdefer frame.deinit(allocator); │ │1779 frame.getFocus().mode = .mouse; │ │1780 var detail_view = try DetailType.init(allocator, data, session, null, .{}); │ ╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ ╭───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │1792 // `record` when given. its form: subtree makes the web renderer POST │ │1793 // the inputs to `action`'s route. │ │1794 fn initThreadForm(allocator: std.mem.Allocator, session: *ui.Session, data: *const Self, action: []const u8, record: ?*const Event.Record) !wgt.Box(Widget) {│ │1795 - var box = try wgt.Box(Widget).init(allocator, .{ .border_style = null, .direction = .vert }); │ │1795 + var box = try wgt.Box(Widget).init(allocator, .{ .border = null, .direction = .vert }); │ │1796 errdefer box.deinit(allocator); │ │1797 box.getFocus().kind = .{ .custom = action }; │ │1798 │ ╰───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ ╭────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │1800 const saved_fields = if (saved_form) |saved| saved.fields else null; │ │1801 │ │1802 { │ │1803 - var title = try wgt.TextInput.init(allocator, .{ .label = " title ", .name = "title", .visible_width = null, .round_corners = true, .render_content = session.is_terminal }); │ │1803 + var title = try wgt.TextInput.init(allocator, .{ .top_label = .{ .text = " title " }, .name = "title", .visible_width = null, .round_corners = true, .render_content = session.is_terminal });│ │1804 errdefer title.deinit(allocator); │ │1805 title.getFocus().mode = .all; │ │1806 if (saved_fields) |saved| │ ╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ ╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │1812 } │ │1813 │ │1814 { │ │1815 - var labels = try wgt.TextInput.init(allocator, .{ .label = " labels (separate with spaces) ", .name = "labels", .visible_width = null, .round_corners = true, .render_content = session.is_terminal }); │ │1815 + var labels = try wgt.TextInput.init(allocator, .{ .top_label = .{ .text = " labels (separate with spaces) " }, .name = "labels", .visible_width = null, .round_corners = true, .render_content = session.is_terminal });│ │1816 errdefer labels.deinit(allocator); │ │1817 labels.getFocus().mode = .all; │ │1818 if (saved_fields) |saved| │ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ ╭───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │1823 } │ │1824 │ │1825 { │ │1826 - var description = try wgt.TextInput.init(allocator, .{ .label = " description (markdown supported) ", .name = "description", .visible_width = null, .round_corners = true, .render_content = session.is_terminal, .multiline = true, .scroll = .{ .fill = true } }); │ │1826 + var description = try wgt.TextInput.init(allocator, .{ .top_label = .{ .text = " description (markdown supported) " }, .name = "description", .visible_width = null, .round_corners = true, .render_content = session.is_terminal, .multiline = true, .scroll = .{ .fill = true } });│ │1827 errdefer description.deinit(allocator); │ │1828 description.getFocus().mode = .all; │ │1829 if (saved_fields) |saved| │ ╰───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ ╭─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │1840 } │ │1841 │ │1842 if (supports_drafts) { │ │1843 - var target = try wgt.TextInput.init(allocator, .{ .label = " target branch ", .name = "target_branch", .visible_width = null, .round_corners = true, .render_content = session.is_terminal }); │ │1843 + var target = try wgt.TextInput.init(allocator, .{ .top_label = .{ .text = " target branch " }, .name = "target_branch", .visible_width = null, .round_corners = true, .render_content = session.is_terminal });│ │1844 errdefer target.deinit(allocator); │ │1845 target.getFocus().mode = .all; │ │1846 const content = if (saved_fields) |saved| saved.target_branch else if (record) |r| r.event.target_branch else data.default_target_branch; │ ╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ ╭────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │1854 } │ │1855 │ │1856 fn initCommentForm(allocator: std.mem.Allocator, session: *ui.Session, action: []const u8, author: ui.Author, parent_route: ui.RoutablePage, initial_body: ?[]const u8) !wgt.Box(Widget) {│ │1857 - var box = try wgt.Box(Widget).init(allocator, .{ .border_style = null, .direction = .vert }); │ │1857 + var box = try wgt.Box(Widget).init(allocator, .{ .border = null, .direction = .vert }); │ │1858 errdefer box.deinit(allocator); │ │1859 box.getFocus().kind = .{ .custom = action }; │ │1860 │ ╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ ╭───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │1861 { │ │1862 var parent = try ui.authorBox(allocator, session.page_arena, author); │ │1863 errdefer parent.deinit(allocator); │ │1864 - parent.options.label = " replying to "; │ │1864 + parent.options.top_label.text = " replying to "; │ │1865 parent.getFocus().kind = .{ .custom = try session.page_arena.allocator().print("a:{s}", .{try parent_route.toUrl(session.page_arena)}) }; │ │1866 try box.children.put(allocator, parent.getFocus().id, .{ .widget = .{ .text_box = parent }, .rect = null, .min_size = .{ .width = null, .height = 3 } });│ │1867 box.getFocus().child_id = parent.getFocus().id; │ ╰───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ ╭─────────────────────────────────────────────────────────────────────────────────────╮ │1869 │ │1870 { │ │1871 var body = try wgt.TextInput.init(allocator, .{ │ │1872 - .label = " comment (markdown supported) ", │ │1872 + .top_label = .{ .text = " comment (markdown supported) " },│ │1873 .name = "body", │ │1874 .visible_width = null, │ │1875 .round_corners = true, │ ╰─────────────────────────────────────────────────────────────────────────────────────╯ ╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │1895 }; │ │1896 │ │1897 fn initConfirmationForm(allocator: std.mem.Allocator, action: []const u8, buttons: []const ConfirmationButton) !Center {│ │1898 - var box = try wgt.Box(Widget).init(allocator, .{ .border_style = null, .round_corners = true, .direction = .vert });│ │1898 + var box = try wgt.Box(Widget).init(allocator, .{ .border = null, .round_corners = true, .direction = .vert }); │ │1899 errdefer box.deinit(allocator); │ │1900 box.getFocus().kind = .{ .custom = action }; │ │1901 │ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ ╭──────╮ │next →│ ╰──────╯