import QtQuick import QtQuick.Layouts import qs.Components import ZShell.Config import qs.Services ConnectedRect { id: root property alias active: splitButton.active property alias fallbackIcon: splitButton.fallbackIcon property alias fallbackText: splitButton.fallbackText property alias menuItems: splitButton.menuItems property alias menuOnTop: splitButton.menuOnTop property string subtext property alias text: label.text signal selected(item: MenuItem) Layout.fillWidth: true clip: false implicitHeight: rowLayout.implicitHeight + rowLayout.anchors.margins * 2 z: splitButton.expanded ? 1 : 0 RowLayout { id: rowLayout anchors.fill: parent anchors.leftMargin: Tokens.padding.largeIncreased anchors.margins: Tokens.padding.small anchors.rightMargin: Tokens.padding.largeIncreased spacing: Tokens.spacing.small ColumnLayout { Layout.fillWidth: true spacing: 0 CustomText { id: label Layout.fillWidth: true elide: Text.ElideRight font.pointSize: Tokens.font.size.smaller } CustomText { Layout.fillWidth: true color: Colors.palette.m3outline elide: Text.ElideRight font.pointSize: Tokens.font.size.small text: root.subtext visible: root.subtext } } SplitButton { id: splitButton type: SplitButton.Tonal menu.onItemSelected: item => root.selected(item) stateLayer.onClicked: splitButton.expanded = !splitButton.expanded } } }