import QtQuick import qs.config Item { id: root property string label: "" property string action: "" property bool actionEnabled: true signal actionTriggered implicitHeight: 24 Text { anchors.left: parent.left anchors.verticalCenter: parent.verticalCenter text: root.label.toUpperCase() color: Theme.fgMuted font.family: Theme.fontFamily font.pixelSize: Theme.fontSizeSmall font.weight: Font.DemiBold font.letterSpacing: 0.9 } Text { id: actionLabel anchors.right: parent.right anchors.verticalCenter: parent.verticalCenter visible: root.action !== "" text: root.action color: root.actionEnabled ? (actionMouse.containsMouse ? Theme.accentAlt : Theme.accent) : Theme.fgMuted font.family: Theme.fontFamily font.pixelSize: Theme.fontSizeSmall font.weight: Font.Medium Behavior on color { ColorAnimation { duration: Theme.durFast } } MouseArea { id: actionMouse anchors.fill: parent anchors.margins: -6 enabled: root.actionEnabled hoverEnabled: true cursorShape: enabled ? Qt.PointingHandCursor : Qt.ArrowCursor onClicked: root.actionTriggered() } } }