using Gtk 4.0;template $BzInstalledTile: $BzListTile {accessibility {labelled-by: title_label;described-by: description_label;}child: Box {orientation: horizontal;spacing: 10;$BzTransactIcon {margin-start: 10;margin-top: 10;margin-bottom: 10;width-request: 64;height-request: 64;valign: center;halign: center;info: $BzTransactIconInfo {group: bind template.group as <$BzEntryGroup>;paintable: bind template.group as <$BzEntryGroup>.ui-entry as <$BzResult>.object as <$BzEntry>.icon-paintable;};}Box {orientation: vertical;valign: center;spacing: 4;Label title_label {xalign: 0.0;ellipsize: end;single-line-mode: true;tooltip-text: bind template.group as <$BzEntryGroup>.id;label: bind template.group as <$BzEntryGroup>.title;}Label description_label {halign: start;ellipsize: end;single-line-mode: true;label: bind $format_description(template.group as <$BzEntryGroup>.installed-size, template.group as <$BzEntryGroup>.installed-versions) as <string>;styles ["dimmed", "caption", "installed-size"]}Label {xalign: 0.0;ellipsize: end;single-line-mode: true;visible: bind template.group as <$BzEntryGroup>.installed-eol;label: _("Stopped Receiving Updates");styles ["warning", "caption"]}}Button support_button {styles ["circular","flat","suggested-action","support"]tooltip-text: bind template.group as <$BzEntryGroup>.donation-url;width-request: 32;height-request: 32;valign: center;icon-name: "heart-filled-symbolic";visible: bind $invert_boolean($is_null(template.group as <$BzEntryGroup>.donation-url) as <bool>) as <bool>;clicked => $support_cb() swapped;accessibility {label: _("Donate");}}Box {orientation: horizontal;spacing: 8;margin-end: 8;hexpand: true;halign: end;Button addons_button {styles ["flat"]tooltip-text: _("Manage Add-Ons");visible: bind $invert_boolean($is_zero(template.group as <$BzEntryGroup>.n-addons as <int>) as <bool>) as <bool>;valign: center;icon-name: "application-x-addon-symbolic";clicked => $install_addons_cb() swapped;}Button remove_button {styles ["flat",]tooltip-text: _("Remove");valign: center;icon-name: "user-trash-symbolic";visible: bind $invert_boolean($is_zero(template.group as <$BzEntryGroup>.removable) as <bool>) as <bool>;sensitive: bind $invert_boolean($is_zero(template.group as <$BzEntryGroup>.removable-and-available) as <bool>) as <bool>;clicked => $remove_cb() swapped;}Image {pixel-size: 14;icon-name: "go-next-symbolic";margin-end: 4;styles ["dimmed"]}}};}