import "root:/modules/common" import "root:/services" import "root:/modules/common/functions/color_utils.js" as ColorUtils import QtQuick import QtQuick.Controls import QtQuick.Effects import QtQuick.Layouts import Quickshell import Quickshell.Services.Notifications RippleButton { // Expand button id: root required property int count required property bool expanded property real fontSize: Appearance?.font.pixelSize.small ?? 12 property real iconSize: Appearance?.font.pixelSize.normal ?? 16 implicitHeight: fontSize + 4 * 2 implicitWidth: Math.max(contentItem.implicitWidth + 5 * 2, 30) Layout.alignment: Qt.AlignVCenter Layout.fillHeight: false buttonRadius: Appearance.rounding.full colBackground: ColorUtils.mix(Appearance?.colors.colLayer2, Appearance?.colors.colLayer2Hover, 0.5) colBackgroundHover: Appearance?.colors.colLayer2Hover ?? "#E5DFED" colRipple: Appearance?.colors.colLayer2Active ?? "#D6CEE2" contentItem: Item { anchors.centerIn: parent implicitWidth: contentRow.implicitWidth RowLayout { id: contentRow anchors.centerIn: parent spacing: 3 StyledText { Layout.leftMargin: 4 visible: root.count > 1 text: root.count font.pixelSize: root.fontSize } MaterialSymbol { text: "keyboard_arrow_down" iconSize: root.iconSize color: Appearance.colors.colOnLayer2 rotation: expanded ? 180 : 0 Behavior on rotation { animation: Appearance.animation.elementMoveFast.numberAnimation.createObject(this) } } } } }