pragma ComponentBehavior: Bound import QtQuick import QtQuick.Layouts import Caelestia.Config import qs.components import qs.components.controls import qs.services import qs.modules.nexus.common ConnectedRect { id: root property alias label: label.text property string subtext property real value property real from: 0 property real to: 99 property real stepSize: 1 signal moved(value: real) implicitHeight: rowLayout.implicitHeight + rowLayout.anchors.margins * 2 RowLayout { id: rowLayout anchors.fill: parent anchors.margins: Tokens.padding.medium anchors.leftMargin: Tokens.padding.largeIncreased anchors.rightMargin: Tokens.padding.largeIncreased spacing: Tokens.spacing.medium ColumnLayout { Layout.fillWidth: true spacing: 0 StyledText { id: label Layout.fillWidth: true font: Tokens.font.body.small elide: Text.ElideRight } StyledText { Layout.fillWidth: true visible: root.subtext text: root.subtext color: Colours.palette.m3outline font: Tokens.font.label.small elide: Text.ElideRight } } CustomSpinBox { min: root.from max: root.to step: root.stepSize value: root.value onValueModified: v => root.moved(v) } } }