pragma ComponentBehavior: Bound import QtQuick import QtQuick.Layouts import Quickshell.Services.SystemTray import qs.Components import ZShell.Config import qs.Modules import qs.Services CustomClippingRect { id: root required property bool horizontal 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 shortSize: Config.bar.height 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 ? shortSize : size implicitWidth: horizontal ? size : shortSize 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 } } } }