pragma ComponentBehavior: Bound import QtQuick import QtQuick.Layouts import Quickshell.Services.SystemTray import ZShell.Config import qs.Components import qs.Modules.Bar.Components.Common import qs.Modules.Bar.Components.Tray import qs.Modules.Bar.Popouts import qs.Services WidgetBase { id: root readonly property alias items: repeater readonly property alias layout: sysGrid required property GridLayout loader readonly property int padding: Tokens.padding.small required property Wrapper popouts readonly property real size: horizontal ? sysGrid.implicitWidth + Tokens.padding.small : sysGrid.implicitHeight + Tokens.padding.small bottomLeftRadius: horizontal ? Tokens.rounding.full : Tokens.rounding.smallest / 2 bottomRightRadius: Tokens.rounding.smallest / 2 color: Colors.tPalette.m3surfaceContainer implicitHeight: horizontal ? baseSize : size implicitWidth: horizontal ? size : baseSize radius: Tokens.rounding.full topRightRadius: horizontal ? Tokens.rounding.smallest / 2 : Tokens.rounding.full GridLayout { id: sysGrid anchors.centerIn: parent columns: root.horizontal ? -1 : 1 rowSpacing: -2 Repeater { id: repeater model: SystemTray.items TrayItem { id: trayItem required property int index required property SystemTrayItem modelData implicitHeight: 34 implicitWidth: 34 ind: index item: modelData loader: root.loader popouts: root.popouts } } } }