import qs.components import qs.services import qs.config import Quickshell.Services.SystemTray import QtQuick StyledRect { id: root readonly property alias items: items clip: true visible: width > 0 && height > 0 // To avoid warnings about being visible with no size implicitWidth: Config.bar.sizes.innerWidth implicitHeight: layout.implicitHeight + (Config.bar.tray.background ? Appearance.padding.normal : Appearance.padding.small) * 2 color: Qt.alpha(Colours.tPalette.m3surfaceContainer, Config.bar.tray.background ? Colours.tPalette.m3surfaceContainer.a : 0) radius: Appearance.rounding.full Column { id: layout anchors.centerIn: parent spacing: Appearance.spacing.small add: Transition { NumberAnimation { properties: "scale" from: 0 to: 1 duration: Appearance.anim.durations.normal easing.type: Easing.BezierSpline easing.bezierCurve: Appearance.anim.curves.standardDecel } } move: Transition { NumberAnimation { properties: "scale" to: 1 duration: Appearance.anim.durations.normal easing.type: Easing.BezierSpline easing.bezierCurve: Appearance.anim.curves.standardDecel } NumberAnimation { properties: "x,y" duration: Appearance.anim.durations.normal easing.type: Easing.BezierSpline easing.bezierCurve: Appearance.anim.curves.standard } } Repeater { id: items model: SystemTray.items TrayItem {} } } Behavior on implicitWidth { NumberAnimation { duration: Appearance.anim.durations.normal easing.type: Easing.BezierSpline easing.bezierCurve: Appearance.anim.curves.emphasized } } Behavior on implicitHeight { NumberAnimation { duration: Appearance.anim.durations.normal easing.type: Easing.BezierSpline easing.bezierCurve: Appearance.anim.curves.emphasized } } }